/ / improvements in the field of programme delivery
Abstract
A receiver comprising means for receiving a program stream and means for replacing a portion of the program stream with a locally stored program is disclosed. Another aspect of the invention is also provided.Receiver, Decoder, Program Stream

Term
Term ended
Expired 11 June 2022, 4.3 years ago.
- Priority
- Filed
- Granted
- Expired
- Today
148 claims: 139 independent, 9 dependent
- 1디지털 텔레비젼 시스템(500)의 리시버/디코더(2000)로서, 각각 복수의 프로그램들을 포함하는 복수의 방송 채널들을 수신하는 수신수단(2012,2014,2016,2018);상기 수신한 복수의 프로그램들을 저장하는 저장수단(2100);및 상기 저장된 프로그램들중 하나를 출력하기 위해 선택하는 선택수단(2002)을 포함하고, 상기 선택수단(2002)은 리시버/디코더(2000)에 의해 수신된 방송 메시지(7060)에 응답하고, 상기 방송 메시지(7060)는 타임 슬롯 동안 출력을 위해 상기 저장수단(2100)에 저장된 프로그램들 중 선택될 프로그램을 지시하는 것을 특징으로 하는 리시버/디코더.
- 2제1항에 있어서, 상기 선택 수단은 상기 메시지내의 식별자(7072)에 응답하고, 상기 식별자는 선택될 프로그램의 카테고리를 식별하는 것을 특징으로 하는 리시버/디코더.
- 3제1항 또는 제2항에 있어서, 상기 메시지는 상기 타임 슬롯에 관한 타이밍 정보를 포함하는 것을 특징으로 하는 리시버/디코더.
- 4제3항에 있어서, 상기 메시지는 상기 선택된 프로그램들이 출력되는 상기 타임 슬롯의 시간(7074)을 포함하는 것을 특징으로 하는 리시버/디코더.
- 5제1항 또는 제2항에 있어서, 상기 타임 슬롯은 방송 채널의 프로그램 브레이크에 대응하는 것을 특징으로 하는 리시버/디코더.
- 6제1항 또는 제2항에 있어서, 상기 메시지는 상기 타임 슬롯동안 출력을 위하여 선택될 최소 및 최대 프로그램수를 나타내는 것을 특징으로 하는 리시버/디코더.
- 7제1항 또는 제2항에 있어서, 상기 선택된 프로그램들의 로그 파일을 작성하는 수단을 더 포함하는 것을 특징으로 하는 리시버/디코더.
- 8제1항 또는 제2항에 있어서, 프로그램 시퀀스 룰들을 저장하는 수단을 더 포함하고, 상기 선택 수단은 이들 프로그램 시퀀스 룰들을 상기 프로그램 선택에 적용하는 것을 특징으로 하는 리시버/디코더.
- 9제1항 또는 제2항에 있어서, 적어도 하나의 사용자 프로파일을 저장하는 수단을 더 포함하고, 상기 선택 수단은 상기 적어도 하나의 사용자 프로파일 및 상기 프로그램들을 특성화하는 제어 데이터의 기능으로서 프로그램을 선택하는 것을 특징으로 하는 리시버/디코더.
- 10디지털 텔레비젼 시스템(500)의 리시버/디코더(2000)내의 프로그램들을 관리하는 방법으로서, 각각 복수의 프로그램들을 포함하는 복수의 방송 채널들을 수신하는 단계;상기 수신한 복수의 프로그램들을 저장하는 단계;상기 저장된 프로그램을 출력하기 위해 선택하는 단계;상기 저장된 프로그램이 타임 슬롯동안 출력을 위하여 선택되어야하는 지를 나타내는 메시지(7060)를 수신하는 단계;및 상기 메시지에 응답하여 저장된 프로그램을 선택 및 출력하는 단계를 포함하는 것을 특징으로 하는 디지털 텔레비젼 시스템의 리시버/디코더내의 프로그램들을 관리하는 방법.
- 11제10항에 있어서, 상기 저장된 프로그램의 선택은 상기 메시지내의 프로그램 카테고리 식별자의 함수인 것을 특징으로 하는 디지털 텔레비젼 시스템의 리시버/디코더내의 프로그램들을 관리하는 방법.
- 12제10항 또는 제11항에 있어서, 상기 프로그램에 이은 다음 프로그램을 상기 프로그램의 출력동안 선택하는 단계를 더 포함하는 것을 특징으로 하는 디지털 텔레비젼 시스템의 리시버/디코더내의 프로그램들을 관리하는 방법.
- 13삭제
- 14삭제
- 15삭제
- 16삭제
- 17삭제
- 18삭제
- 19삭제
- 20삭제
- 21삭제
- 22삭제
- 23삭제
- 24삭제
- 25삭제
- 26삭제
- 27삭제
- 28삭제
- 29삭제
- 30삭제
- 31삭제
- 32삭제
- 33삭제
- 34삭제
- 35삭제
- 36삭제
- 37삭제
- 38삭제
- 39삭제
- 40삭제
- 41삭제
- 42삭제
- 43삭제
- 44삭제
- 45삭제
- 46삭제
- 47삭제
- 48삭제
- 49삭제
- 50삭제
- 51삭제
- 52삭제
- 53삭제
- 54삭제
- 55삭제
- 56삭제
- 57삭제
- 58삭제
- 59삭제
- 60삭제
- 61삭제
- 62삭제
- 63삭제
- 64삭제
- 65삭제
- 66삭제
- 67삭제
- 68삭제
- 69삭제
- 70삭제
- 71삭제
- 72삭제
- 73삭제
- 74삭제
- 75삭제
- 76삭제
- 77삭제
- 78삭제
- 79삭제
- 80삭제
- 81삭제
- 82삭제
- 83삭제
- 84삭제
- 85삭제
- 86삭제
- 87삭제
- 88삭제
- 89삭제
- 90삭제
- 91삭제
- 92삭제
- 93삭제
- 94삭제
- 95삭제
- 96삭제
- 97삭제
- 98삭제
- 99삭제
- 100삭제
- 101삭제
- 102삭제
- 103삭제
- 104삭제
- 105삭제
- 106삭제
- 107삭제
- 108삭제
- 109삭제
- 110삭제
- 111삭제
- 112삭제
- 113삭제
- 114삭제
- 115삭제
- 116삭제
- 117삭제
- 118삭제
- 119삭제
- 120삭제
- 121삭제
- 122삭제
- 123삭제
- 124삭제
- 125삭제
- 126삭제
- 127삭제
- 128삭제
- 129삭제
- 130삭제
- 131삭제
- 132삭제
- 133삭제
- 134삭제
- 135삭제
- 136삭제
- 137삭제
- 138삭제
- 139삭제
- 140삭제
- 141삭제
- 142삭제
- 143삭제
- 144삭제
- 145삭제
- 146삭제
- 147삭제
- 148삭제
Independent claims148
335 paragraphs, as filed
A receiver/decoder of a digital television system and a method of managing programs in a receiver/decoder of a digital television system
The present invention relates to a receiver/decoder, an apparatus for managing a program, a method for managing a program stream, a method for managing a program, a method for controlling a receiver/decoder, a broadcasting system, a message, an MPEG personal table, a computer program product, a computer readable media, and signals. This is particularly applicable in the broadcast and display of personalized advertisements, and in "virtual" television channels.
Digital television systems transmit television channels to viewers in digital, rather than analog, form. A digital channel is encoded into a digital data stream at the transmitting side and decoded using a receiver/decoder at the receiving side. To enable interactivity, an uplink may be provided, either through the same medium carrying the television channel, or through another medium, such as a telephone link. Moreover, data types such as digital voice, software and interactive data can or are broadcast. As used herein, the term "digital television system" includes, for example, all satellite, terrestrial, cable, and the like systems.
The term "receiver/decoder" as used herein refers to an encoded or unencoded signal, eg a television and/or radio signal, preferably in MPEG format, which may be broadcast or transmitted by any other means. It means the receiver that receives the form. The term can also refer to a decoder that decodes a received signal. An embodiment of such a receiver/decoder is a decoder complex with a receiver that decodes the received signal, which may include, for example, a "set-top box" form, which functions as a decoder with a physically separate receiver and , or such a decoder, has additional functions, such as a web browser, video recorder, or television.
The term MPEG refers to a data transmission standard developed by the Working Group "Motion Picture Expert Group" of the International Standards Association, which was developed specifically for digital television and was developed in the documents ISO 13818-1, ISO 13818-2, ISO MPEG-2 as described in 13818-3 and ISO 13818-4, and MPEG-4 and other upcoming MPEG standards. In the context of the present application, this term includes any variant, modification, or development of the MPEG format applicable to the field of digital data transmission.
Digital television systems are often characterized as having numerous (typically hundreds) of basic audiovisual channels, which the user can browse through and display at will (depending on the corresponding access rights obtained for each channel). Therefore, the range of data that can be viewed at one time is considerable, allowing the user to customize his viewing range. However, the task of tracking all available material, the precise classification of material according to taste, and the scheduling of programs of interest are largely beyond the capabilities or tendencies of the user.
Moreover, broadcast advertising, a real and often indispensable source of income for broadcasters, is typically of interest only to a relatively small class of viewers. However, targeting of advertisements is often difficult - otherwise impossible in most existing digital television systems - and inefficient.
U.S. Patent No. 5,848,397 discloses a method of scheduling advertisement presentations to e-mail users. The server system has an advertisement distribution scheduler that targets a specific user based on statistical information stored in a database management system inherent in the server system. Downloaded advertisements are stored in an advertisement queue on the client system. The position of the waiting advertisement is determined by the priority assigned to the advertisement in advance by the server system. Then, the pending advertisements are shown to the user in order.
In the system of US Pat. No. 5,848,397, it is necessary to obtain statistical information and store it centrally on a server. This is accomplished by requiring the user to complete a survey, or membership profile, upon first access to the client system.
To target advertisements to selected users, the server system of US Pat. No. 5,848,397 transmits only selected advertisements to each client system, using a 'point-to-point' transport protocol.
Another information and advertisement distribution system and method is disclosed in US Pat. No. 5,740,549. In a preferred embodiment, the local area network (LAN) server downloads all new items to its local database. Numerous subscribers, each with their own user profile, are connected to this LAN. A screen protection procedure is run by each subscriber. The screen saving procedure filters out new items that do not match each subscriber's user profile from the local information database of the LAN server, and shows each subscriber only combinations of new items that correspond to the subscriber's user profile. Filtering of news stories is handled during the data download process by downloading only new items corresponding to the subscriber's user profile on the single subscriber's computer.
The present invention is intended to improve the problems of the prior art described above.
Accordingly, in a first aspect of the present invention, there is provided a receiver/decoder for receiving and decoding a stream of programs, comprising means for storing a plurality of programs (such as a mass storage device), selecting one of the stored programs according to a user profile (program and means (such as attached memory), means for replacing a portion of the program stream with the selected program (such as the same or different processor and attached memory and/or output).
This in turn provides greater flexibility, especially higher efficiency by selecting programs using user profiles only when needed (such calculations can be very complex). In addition, since multiple programs can be stored indiscriminately, even if the user profile is changed after multiple programs are stored, the target program can still be selected.
The term "program" as used herein preferably means content such as audio/video, typically broadcast to a receiver/decoder. News reports, movies, advertisements, subtitles, webcasts, webcams, and radio broadcasts are examples of programs in this sense. The term "audio/video" as used herein preferably means audio or video, or a combination of both. In the context of a broadcast signal received by a receiver/decoder, the term includes subtitles, teletext, synchronization, and other data transmitted closely with the audio and video elements constituting a television program.
Preferably the receiver/decoder is a means (such as a receiver) for receiving multiple programs from a single communication channel, more preferably from a communication channel that is the same channel carrying the program stream. The communication channel may be a conventional multiple transmission system such as a cable, satellite or terrestrial television system, and may also be the Internet or any network connection capable of digital (or even analog) transmission. This allows the receiver/decoder to be configured more simply.
Likewise, multiple programs may also be received on different channels, each with respect to one another or with respect to a program stream. In this case, multiple programs may be received simultaneously, each with respect to one another or with respect to a program stream.
The receiver/decoder further comprises means (such as the same or different receivers) for receiving a plurality of programs at regular scheduled intervals, thereby improving the reliability of the system. In particular, event modules (such as processors and attached memories) may be provided to ensure that they receive multiple programs.
Moreover, the receiver/decoder preferably comprises means for maintaining a user profile (such as a processor and attached memory), means for selecting a program according to the user profile (such as a processor and attached memory), and outputting the program (such as output) ) means, further comprising a program operating in response to a request to output the program. This request may take the form of an 'external' request, such as, for example, a user pressing a button on a remote control to change channels, or an 'internal' request, such as communication between devices inside the receiver/decoder. The request may further constitute an idea, indicating that another program selection is being requested, such as execution of a particular portion of computer code. This can further improve the efficiency of the system, with the advantage that selection based on the user profile is performed only upon request again. In contrast, a system that is stuck with a full program schedule lacks flexibility, such as, for example, that there must be a change in the user profile during the scheduling process. Nevertheless, the present invention can be applied to create a schedule of multiple programs.
This important feature is provided independently. Accordingly, in another aspect of the invention, means for maintaining a user profile (such as a processor and attached memory), means for selecting a program according to the user profile (such as a processor and attached memory), and outputting the program (such as an output and same) means, and the means for outputting is means for making a selection to operate in response to a request to output a program.
The means for selecting a program may be adapted to select another program conforming to the first program, and may be adapted to select another program while outputting the first program. This provides for a more responsive user introduction, for example, user profiles should be changed quickly over time. By selecting programs in this way, there is no need to maintain a 'play list' of scheduled programs.
In a related aspect of the present invention, there is provided a method for managing a stream of programs in a receiver/decoder, the method comprising the steps of storing a plurality of programs, selecting one of the stored programs according to a user profile, and programming with the selected program. replacing part of the stream of The method further comprises transmitting the plurality of programs to the receiver/decoder, preferably via a single communication channel.
The method further includes sending the plurality of programs at regular scheduled intervals, more preferably sending the plurality of programs through the television broadcasting system at a time when the few television channels are broadcasting. This time may be, for example, between 2 and 4 am, or between 3 and 5 am, when less bandwidth is requested by the scheduled service.
The method includes maintaining a user profile, selecting a program according to the user profile, and outputting the program, wherein the step of selecting the program is taken in response to a request to output the program.
In another related aspect of the present invention, a method of controlling a receiver/decoder is provided, the method comprising the steps of maintaining a user profile, selecting a program according to the user profile, outputting the program, The selecting step is taken to correspond to a request to output a program. The method preferably further comprises, during the step of outputting the program, selecting another program following the program.
In another related aspect of the invention, there is provided a computer program product, in this case and in the following in the form of one or more soft modules, for receiving and decoding a program stream, the product comprising: means for storing a plurality of programs, a user means for selecting one of the stored programs according to the profile, and means for replacing a portion of the program stream with the selected program. The computer program product preferably further comprises means for receiving a plurality of programs from a single communication channel, and more preferably further comprising means for receiving a plurality of programs at regular scheduled intervals.
The computer program product comprises means for maintaining a user profile, means for selecting a program according to the user profile, and means for outputting the program, the means for selecting the program being operative in response to a request to output the program .
In another related aspect of the invention, a computer program product is provided, the product comprising: means for maintaining a user profile, means for selecting a program according to the user profile, and means for outputting the program, said selection means comprising: It will act in response to the request to print the program. The means for selecting a program may be adapted to select another program following the first program, and may also be adapted to select another program while outputting the first program.
In another aspect of the present invention, a receiver/decoder is provided, the receiver/decoder comprising means for receiving a program stream (such as a receiver) and replacing a portion of the program stream with a locally stored program (a processor and an attached memory and / or such as a switch).
By replacing part of the program stream with a locally stored program, a customized program can be provided by the receiver/decoder itself.
The receiver/decoder preferably includes means for receiving (such as a receiver) a plurality of programs suitable for a range of users, and for selecting at least one program suitable for at least one user from the plurality of programs (with a processor and an attached memory). same) means. He or each user is preferably associated with a receiver/decoder.
By selecting from multiple programs, further customization can be provided. This important feature is also provided independently, as the program is not required to be saved before being output.
Accordingly, in a related aspect, a receiver/decoder is provided, the receiver/decoder comprising means for receiving (such as a receiver) a plurality of programs suitable for a range of users, and at least one suitable for at least one user from the plurality of programs. means (such as a processor and attached memory) for selecting a program of As above, he or each user is preferably associated with a receiver/decoder.
The or each program may be an advertisement. By handling advertisements, in essence the shortest form of programs, the adjustment of programs can be simplified and - among other things - relatively small (bandwidth or storage) capacity can be required to handle advertisements. Moreover, the targeted nature of advertising means that the selection process is relatively important.
The receiver/decoder further comprises means (such as a mass storage device) for storing the plurality of programs. By storing multiple programs, customized content can be created at various times other than just when multiple programs are broadcast or transmitted to the receiver/decoder.
Preferably the receiver/decoder further comprises means (such as output) for outputting its or respective programs. Such means may be, for example, an MPEG decoder, a graphics engine, a television modulator, and/or a physical connection. This enhances the receiver/decoder's unique customization capabilities.
The receiver/decoder may include means (such as a processor and attached memory) for removing from storage one of a plurality of stored programs, not selected for output.
The or each program may be removed after a certain time limit has elapsed, such as when it falls below a certain 'preferred' criterion, when a new program arrives, or a combination of the above.
This frees up valuable storage space inside the receiver/decoder and allows that or each program to be replaced by possibly newer and more appropriate programs. Typically, 50 programs are stored, with the desired program being first replaced by at least any new program at any one time. Nearly 100, 200, 500 or 1000 programs may alternatively be stored.
The receiver/decoder may comprise means (such as a decoder) for extracting multiple programs from the broadcast bit stream. Likewise, multiple programs may be received by other means, such as through an Internet connection and/or a broadband cable connection, for example. This may simplify provision of customized content to multiple receivers/decoders, since the need for point-to-point transmission of customized content to receivers/decoders may be eliminated.
In one embodiment, the receiver/decoder is further adapted to receive multiple programs during a first transmit slot and output the program during a second transmit slot.
The first transmission slot preferably occurs at a scheduled time. This scheduled time is, for example, between 2 and 4 am. This allows multiple programs to be broadcast to the receiver/decoder at times when the 'extra' (or at least discounted) bandwidth is adequate.
The second transmission slot may be a program break during the broadcast channel. It may alternatively be the equivalent of a scheduled program, such as a regular 30-minute slot or an extended film slot. As used herein, the term "program break" preferably means any interruption between scheduled programs on a given television channel, such as, for example, an advertisement break.
The first transmission slot and the second transmission slot may be simultaneous, corresponding to a 'live' broadcast situation in effect, where the receiver/decoder shows a live 'virtual channel' to the user. This may require a relatively fast process to select a program, but may eliminate the need to store a large number of programs.
Preferably the receiver/decoder further comprises means for receiving a message (such as a receiver) indicating that a program should be selected during the second transmission slot, preferably for processing the message (such as a processor and attached memory) means are also included.
This message may be received in a broadcast program stream and may preferably include timing information associated with the second transmission slot. This provides the advantage that the customization process can be controlled remotely from the broadcast center, for example by use of messages sent to the receiver/decoder.
Moreover, this message may preferably include the desired program genre or type. Such a genre or type may be a program category, such as news, sports, or movies, or within a given category, a specific genre such as a horror movie, or an advertisement related to health and fitness. Other message specifications, eg, advertisement types selected, may be sent on specific program channels and/or specific time or date ranges, rather than being applied to specific time slots. By having a message containing an indication that a program should be selected for a given timeslot as well as the details of the desired program genre or type, data transfer from an external entity, such as a broadcast center, to the receiver/decoder can be made more efficient. .
The receiver/decoder may preferably include means for maintaining a user profile (such as a processor and attached memory), which may enhance the customization of the program to user preferences. The profile is preferably associated with the receiver/decoder's user. Alternatively, the profile relates to the receiver/decoder's subscription or other smartcard holder.
The receiver/decoder preferably further comprises means (such as a receiver) for receiving control data related to each of the plurality of programs. The receiver/decoder is preferably adapted to receive the control data at substantially the same time as the plurality of programs. Furthermore, the control data relating to each of the individual programs is preferably inserted between each of the respective programs, and is in the form of a single data block containing the individual programs and the associated control data, which is usually a receiver/decoder for such data. requires less storage capacity. Alternatively, all control data may be received immediately in a single block, and may generally be descriptive of multiple programs, rather than corresponding one-to-one to individual programs.
The receiver/decoder is further preferably adapted to select a program according to the received control data, thereby improving the controllability of the customization process from the external receiver/decoder.
Preferably the control data comprises profile data, and the receiver/decoder further comprises means (such as a processor and attached memory) for selecting a program whose relevant profile data closely matches the user profile. This reduces the number of displayed programs, which the user may not be interested in, and thus increases the efficiency of the system.
The receiver/decoder includes means (such as a receiver) for receiving a second plurality of programs, and means (such as a processor and attached memory) for selecting a second program from the second plurality of programs. Preferably the receiver/decoder also has means for outputting (such as output) a second program and/or scheduling the first or second selected program for a transmission slot (such as the same or a different processor and attached memory) includes means. This enables 'virtual channel' operation.
Preferably the receiver/decoder also comprises means (such as a receiver) for receiving control data associated with a second plurality of programs, the second program being again preferably selected according to the associated control data.
The receiver/decoder may also be adapted to select the second program at or after the end of the first program. As noted above, this can help meet flexible systems, allowing live 'virtual channels', where the selection of programs can be computed 'on the fly' and thus does not require local storage to function.
Preferably the receiver/decoder further comprises means for calculating a degree of compatibility with respect to the first program with respect to the second plurality of programs using the program order rule, further configured to select a program having a high degree of compatibility. This allows still more powerful customizations, for example tracking the history of the program and adjusting the output accordingly.
This important feature is also provided independently. Accordingly, in a related aspect of the invention, means for selecting a first program from a first plurality of programs (such as a processor and attached memory), and a second program from a second plurality of programs according to program order rules applied to the first program A receiver/decoder is provided, comprising means for selecting a program (such as the same or a different processor and attached memory).
Program order rules place limits on the number of program repetitions of a particular genre or type, within detailed time limits. Thus, this rule may, for example, prevent a rival advertisement being shown to the user immediately afterwards. Alternatively, the rule may stipulate, for example, a minimum number of advertisements or news reports that need to be shown within a given time frame.
Program order rules may also dictate preferred combinations and/or order of genres and types of programs. So, for example, you can have an order rule that determines before and after a movie an advertisement should start.
Preferably, the receiver/decoder further comprises means (such as a receiver) for receiving a message comprising at least part of the program order rules at the receiver/decoder. This provides the user with a more user-friendly way to customize the presentation of the 'virtual channel', without requiring any data from the receiver/decoder. Preferably the receiver/decoder is adapted to receive the message as part of the broadcast bit stream, but may be adapted to receive the message by means such as, for example, a point-to-point connection via the Internet.
The receiver/decoder may comprise means (such as a processor and attached memory) for replacing at least a portion of the received new program order rule with the program order rule. This allows customizations to be managed in a dynamic and updatable manner, without requiring input from a receiver/decoder in the process. This is especially important in some jurisdictions where privacy laws prohibit transmissions from receivers/decoders to other parts, although in most cases not.
The means for receiving the message may be adapted to decode the MPEG private table containing the message. This MPEG private table may be an action notification table (ANT), which will be described later, or a virtual channel management table (VCMT), which will also be described later. When the MPEG private table is efficient for message transmission, it can improve the efficiency of the system.
In a related aspect of the invention, a receiver/receiver comprising means (such as a receiver) for receiving a stream of programs, and means (such as a processor and attached memory, and/or a switch) for replacing portions of the program with locally stored advertisements. A decoder is provided.
In another aspect of the invention, there is provided an apparatus for managing a program comprising means (such as a processor and attached memory) for generating a message comprising program order rules applied to a program output by a receiver/decoder.
The device preferably further comprises means (such as a transmitter) for sending a message to the receiver/decoder. These features are provided independently. The apparatus preferably further comprises means (such as a broadcast system connection) for broadcasting the message via the broadcast medium.
The means for generating the message preferably addresses the information in the message such that it is decoded only by a receiver/decoder having certain characteristics. In addition, the means for generating the message will generate the MPEG private table corresponding to the message.
In another aspect of the present invention, a method for managing a program stream is provided, the method comprising receiving the program stream and replacing a portion of the program stream with a locally stored program.
The method preferably includes receiving a plurality of programs suitable for a range of users, and selecting from the plurality of programs at least one program suitable for a user associated with a receiver/decoder.
In another related aspect of the present invention, a method for managing programs is provided, the method comprising the steps of: receiving at a receiver/decoder a plurality of programs suitable for a range of users, and in the plurality of programs suitable for at least one user and selecting at least one program. He or each user is preferably associated with a receiver/decoder from which an output is generated. As above, the plurality of programs may be advertisements.
The method further comprises removing from storage at least one of the plurality of stored programs not selected for output.
A plurality of programs are preferably received during a first transmission slot, and the programs are preferably output during a second transmission slot.
The first transmission slot preferably occurs at a scheduled time, and the second transmission slot may be a program break during the broadcast channel. The first transmission slot and the second transmission slot may occur simultaneously.
Selecting the program may further include receiving a message indicating that the program should be selected during the second transmission slot, and selecting the program. This message is preferably received in a broadcast program stream and preferably includes timing information related to the second transmission slot. This gives the advantage that the customization process can be controlled remotely, for example from a broadcast station, by using a message to the receiver/decoder.
This message preferably includes the desired program genre or type.
The method further includes receiving control data associated with each of the plurality of programs, which may simplify management of customization of the programs.
The program is preferably selected according to received control data, preferably the control data comprises profile data, wherein the selecting of the program compares this profile data with a user profile associated with the user of the receiver/decoder and selecting a program associated with the profile data that closely matches the user profile.
Preferably at least part of the user profile is adjustable by the user. This program can be selected according to the desired program genre or type. Alternatively, this program may be selected according to the user and/or the receiver/decoder.
The method includes receiving a second plurality of programs, selecting a second program from the second plurality of programs, and outputting the second program. Advantageously the method further comprises scheduling the first or second selected program for the transmission slot.
Preferably the method also comprises receiving control data associated with a second plurality of programs, wherein the second program is preferably selected according to the associated control data. The second program may be selected at or after the end of the first program.
Selecting the second program preferably includes calculating a degree of compatibility of the first program with respect to the second plurality of programs by using a program order rule, and selecting a program with a high degree of compatibility. .
These important features are provided independently. Accordingly, in another aspect of the present invention, there is provided a method for managing programs, the method comprising: selecting a first program from a first plurality of programs; a second plurality according to a program order rule applied in relation to the first program; and selecting a second program from the programs of
The method preferably further comprises receiving at the receiver/decoder a message comprising at least a portion of the program order rules. The method includes replacing at least a portion of the received program order rule with the new program order rule.
The method preferably further comprises the step of sending (and additionally receiving at the receiver/decoder) a message comprising the program order rules to the receiver/decoder. These and other important features are also provided independently.
Accordingly, in another aspect of the present invention, a method of controlling a receiver/decoder is provided, the method comprising the step of sending a message to the receiver/decoder comprising the program order rules applied by the receiver/decoder to program output .
This message is preferably broadcast over a broadcast medium. As noted, this can provide a very simple way to manage the customization of content for a large number of receivers/decoders.
This message may contain address information, such that the message is only decoded by a receiver/decoder with a given characteristic. This can further simplify and improve the management of customization by targeting the schedule rule information only to a part of the receivers/decoders that can receive the broadcast message.
The method further includes sending a message to the receiver/decoder that includes timing information associated with the transmission slot and instructions to display a customized program during the transmission slot. The message further includes a genre or type related to the program. These features are provided independently.
The method also includes sending control data related to the program to the receiver/decoder, which control data also includes profile data, timing information and preferably category information.
The method includes receiving and storing a plurality of programs during a first transmission slot, receiving and outputting a scheduled program during a second transmission slot, selecting one of the stored programs according to a stored profile, and a selected stored program outputting the . This feature is provided independently.
The method comprises the steps of selecting a first program having control data matching a stored user profile, receiving a selected first program on a first channel during a first transmission slot, having control data matching a stored user profile; selecting a second program, switching to a second channel, and receiving the selected second program in the second channel during a second transmission slot, wherein the switching step is performed between the first and second transmission slots. Synchronized program is performed during breaks. These features are also provided independently.
A method of scheduling a program is provided, the method comprising: receiving and storing two or more programs; receiving at least one rule; and scheduling the stored program according to a scheduling algorithm included in the received rule(s).
The method includes selecting a portion of a plurality of transmitted programs according to a stored profile; and storing a portion of the selected transmission program.
The present invention also provides a method for modifying a schedule algorithm, the scheduling algorithm being configured to create a schedule for determining the sequence of program presentation to a user, the schedule algorithm being stored in the user's side system, the method comprising: and sending the rule to the user-side system for integration.
The present invention further provides a method for centrally controlling the scheduling algorithm performed by the user-side system. Thus, a new rule can be sent at any time to update its scheduling algorithm.
The present invention also provides a method of transmitting a program, the method comprising: transmitting a first program in a first channel during a first transmission slot; transmitting a second program on a second channel during a second transmission slot; and transmitting control data associated with the first and second programs, wherein the first and second slots are preferably separated by a synchronized program break. Control data related to the second program is preferably transmitted during a synchronized program break.
The present invention provides a method for switching between programs during program breaks, or 'crosspoints' between transmission slots. By synchronizing program breaks, a uniform sequence of programs can be presented to the user.
The present invention also provides a method for controlling a virtual channel, the method comprising: receiving and storing first and second programs; selecting and retrieving a stored first program according to the stored profile; and deleting or overwriting the unselected second program.
Each program is preferably transmitted simultaneously to two or more users. Preferably at least one of the programs includes advertisements. Each of the programs preferably includes video and/or audio elements.
In another aspect of the present invention, there is provided a broadcast system including the receiver/decoder as described above, and the device as described above.
In another aspect of the present invention, a message for receiver/decoder transmission is provided and includes instructions for selecting a program during a predetermined transmission slot and timing information regarding the transmission slot. This message preferably further includes the desired program genre or type.
In another aspect of the present invention, a message for receiver/decoder transmission comprising a program sequence rule is provided. This message preferably further includes address information.
Control data is provided which also includes profile data, timing information and preferably category information.
In another aspect of the present invention, an MPEG private table including the above message is provided.
In another aspect of the present invention, a computer program product for performing the above method is provided.
In a related aspect of the present invention, a computer program product for modifying a receiver/decoder to perform the above method is provided.
In another related aspect of the invention, a computer program comprising means for selecting from a plurality of advertisements one advertisement suitable for a user associated with a receiver/decoder, in this case and in subsequent cases typically in the form of one or more software modules. product is provided.
The computer program product preferably comprises means for receiving and storing on a receiver/decoder a plurality of programs suitable for a range of users, means for selecting one program suitable for a user associated with the receiver/decoder from said stored plurality of programs, and It further includes means for outputting the program.
The plurality of programs are preferably advertisements. The computer program product preferably further comprises means for removing from storage means at least one of said stored plurality of programs not selected for output.
The means for receiving and storing the plurality of programs preferably comprises means for extracting the plurality of programs from the broadcast bitstream. A number of programs are preferably received during a first transmit slot and the programs are output during a second transmit slot. The first transmission slot preferably occurs at a scheduled time. The second transmission slot is preferably a program break during the broadcast channel. The first transmission slot and the second transmission slot preferably occur simultaneously.
The means for transmitting the program may further include means for receiving a message indicating that a program should be selected during the second transmission slot and means for selecting the program. This message preferably includes the desired program genre or type. The computer program product preferably further comprises means for receiving control data associated with each of the plurality of programs. The program is preferably selected according to the received control data. The control data preferably comprises profile data, the means for selecting a program preferably comprising means for comparing such profile data with a user profile associated with the user of the receiver/decoder, the associated profile data closely matching the user profile and means for selecting a program to be used. At least a portion of the user profile is preferably adjustable by the user.
The program is preferably selected according to the desired program genre or type. The program may be selected according to the characteristics of the user and/or the receiver/decoder. The computer program product may further comprise means for receiving the second plurality of programs, means for selecting the second program from the second plurality of programs, and means for outputting the second program. The second program may be selected at or after the end of the first program. The means for selecting the second program preferably includes means for calculating a degree of compatibility in relation to the first program for the second plurality of programs using a program sequence rule, and means for selecting a program having a sufficiently high degree of compatibility. include
The present invention provides means for receiving a first plurality of programs, means for selecting and outputting a first program in a first plurality of programs, means for receiving a second plurality of programs, and a second program in a second plurality of programs. There is also provided a computer program product comprising means for selecting and outputting, wherein the second program is selected according to a program sequence rule applied in relation to the first program.
Program sequence rules may place restrictions on the number of repetitions of a specific type or genre of a program within a specific time limit. A program sequence rule may specify a desired combination and/or sequence of types or genres of programs. The computer program product may further comprise means for receiving, with the receiver/decoder, a message comprising at least a portion of the program sequence rules. The computer program product may further comprise means for replacing at least a portion of the program sequence rules with the received new program sequence rules.
A computer program product is provided comprising means for transmitting a message comprising a program sequence rule to a receiver/decoder. This message is preferably broadcast via a broadcast medium. A message may contain address information so that the message is decoded only by a receiver/decoder with certain characteristics.
In another aspect of the present invention, a signal implementing such a computer program product is provided. These signals may be a series of Internet packets, or a series of messages broadcast on a digital television system.
In another aspect of the present invention, a computer-readable medium embodying the above computer program product is provided. Such a computer-readable medium may be, for example, a CD-ROM.
The present invention provides a computer program and computer program product for performing any of the methods described herein and/or implementing any of the devices described herein, and a program for performing any of the methods described herein stored therein. and/or a computer program product embodying any of the device features described herein.
The present invention comprises a signal embodying a computer program for performing any of the methods described herein and/or implementing any of the device features described herein, performing any of the methods described herein and/or or a computer product having an operating system that supports a computer program implementing any of the device features described herein.
The present invention extends to a method and/or apparatus substantially as described herein with reference to the accompanying drawings.
Features of one aspect of the present invention may be applied to other features of the present invention in appropriate combinations. In particular, a method aspect may be applied to an apparatus aspect, and an apparatus aspect may be applied to a method aspect.
Preferred features of the present invention are described by way of example only with reference to the accompanying drawings.
1 is a schematic diagram of a satellite digital television system;
2 is a schematic diagram of a cable digital television system;
Fig. 3 is a view of the entire system in which the upper part is shown in more detail;
4 is a structural diagram of a receiver/decoder;
Fig. 5 is a diagram showing a software structure of a receiver/decoder;
FIG. 6 is a view showing the upper middle of FIG. 5 in more detail;
Fig. 7 is a view showing in more detail the lower middle of Fig. 5;
Fig. 8 is a view showing another embodiment of the lower middle of Fig. 5;
9 a, b, and c are diagrams illustrating personalized advertisements.
10 is a diagram showing the structure of a virtual channel information message (VCIM).
11 is a diagram illustrating a format of a broadcast advertisement.
12 is a diagram illustrating an example of four virtual channels provided to four different users;
Fig. 13 shows an example illustrating the selective recording of a program broadcast on three separate channels;
14 is a diagram illustrating a virtual channel method for switching between channels at a crosspoint;
15 is a flow diagram illustrating a method for evaluating the relevance of an advertisement.
16 is a flow chart illustrating in more detail a method for evaluating the adequacy of an advertisement.
<b>System overview</b>
A schematic of a digital system 500 is shown in FIG. 1 . As described below, system 500 includes broadcast center 100 , receiver/decoder 2000 , software/hardware architecture of receiver/decoder 3000 , interactive system 4000 , and conditional access system 5000 . includes
This system 500 includes the most conventional digital television system 502 that uses the known MPEG-2 compression system to transmit compressed digital signals. More specifically, the MPEG-2 compressor 1010 of the broadcasting center 1000 receives a digital signal stream (typically a video signal stream). Compressor 1010 is connected to multiplexer and scrambler 1030 via link 1020 .
A multiplexer 1030 receives a plurality of input signals, assembles a transport stream, and transmits a compressed digital signal to a transmitter 510 of a broadcast center via a link 1022, the link 1022 comprising a communication link. It can, of course, take various forms. Transmitter 510 transmits electromagnetic signals via uplink 514 to satellite transponder 520, which is a fictitious downlink 516 to dish-shaped terrestrial receiver 512 owned or rented by an end user. processed and broadcast electronically through Transmission channels for data transmission such as terrestrial broadcasting, cable transmission, satellite/cable links, and telephone networks are of course possible.
The signals received by receiver 512 are transmitted to an integrated receiver/decoder 2000 that is owned or rented by the end user and connected to the end user's television set 10000 . The receiver/decoder 2000 decodes the compressed MPEG-2 signal into a television signal for the television set 10000. Although a separate receiver/decoder is shown in Figure 1, the receiver/decoder may be part of an integrated digital television. As used herein, the term "receiver/decoder" includes individual receivers/decoders such as set-top boxes.
In the receiver/decoder 2000, a hard disk 2100 in which data such as video and audio can be stored is provided. Thereby, the program received by the receiver/decoder can be recorded and reproduced, and a large amount of data such as electronic program guide data can be stored in the receiver/decoder.
The receiver/decoder's content management and protection system (CMPS) 2300 (not shown) provides the ability to securely and flexibly record and replay data on the hard disk 2100 (such as storage).
In a multi-channel system, the multiplexer 1030 processes video and audio information received from a plurality of parallel sources and interacts with the transmitter 510 to broadcast information according to the number of channels. In addition to audio and video information, digital data such as messages or applications may be introduced into some or all channels interspersed with transmitted digital audio and video information.
The interactive system 4000 is connected to the multiplexer 103 and the receiver/decoder 2000, and is located partly in the broadcast center and partly in the receiver/decoder. This allows the end user to interact with various applications via the back channel 570 . The back channel may be, for example, a public switched telephone network (PSTN) channel (eg, a modemized back channel) or an out-of-band (OOB) channel.
A conditional access system 5000, coupled to the multiplexer 1030 and receiver/decoder 2000, and located in part at the broadcast center and partly at the receiver/decoder, allows end users to access digital television broadcasts from one or more broadcast providers. do. A smart card capable of decrypting messages associated with a commercial offering (ie, one or several television programs sold by a broadcast provider) may be inserted into the receiver/decoder 200 . Using the receiver/decoder 2000 and smart card, end users can purchase commercial offerings in subscriber mode or pay mode. Typically this is achieved using the back channel 570 used by the interactive system 4000 .
As described above, the program transmitted by the system is scrambled in the multiplexer 1030, and the encryption key applied to a given transmission is determined by the access control system 5000. The transmission of scrambled data in this way is known in the field of pay-mode TV systems. Typically, scrambled data is transmitted together with a control word for decryption of the data, and the control word itself is encrypted by a so-called use key and transmitted in an encrypted form.
Then, the scrambled data and the encrypted control word decrypt the encrypted control word and then in the receiver/decoder 2000 accessible to the use key and equivalent stored in the smart card inserted in the receiver/decoder to decrypt the transmitted data. is received by The paying subscriber will receive, for example, the usage key needed to decrypt the encrypted control word in an air defense monthly EMM (Entitlement Management Message).
2 illustrates another embodiment of a digital television system 504 that uses a cable network as a broadcast medium for compressed digital signals. In this figure, like parts are denoted by like reference numerals.
The satellite transponder and transmit/receive stations are replaced by a cable network 550 . Also in this embodiment, the modemized back channel between the receiver/decoder 2000 and the interactive system 4000 and the conditional access system 5000 is eliminated, and the cable network 550 and the conditional access system 5000 and Links 554,556 between the two-way systems 4000, respectively. Accordingly, the receiver/decoder 2000 can communicate with other systems through the cable network 550 using means such as a cable modem, so that it can transmit and receive data through the same link that received data from the broadcasting center. have.
The cable network 550 may be any type of wide area network (WAN), such as a dedicated connection, the Internet, a local cable distribution network, a wireless connection, or a combination thereof. In this embodiment, a hybrid fiber coax (HFC) network is used. Various means of communication between the receiver/decoder 2000 and elements of the television system are replaceable.
<b>conditional access system</b>
Referring to FIG. 3 , a conditional access system 5000 includes a subscriber authentication system (SAS) 5200 . The SAS 5200 is coupled to one or more subscriber management systems (SMS) 1100 , one SMS for each broadcast provider, and may be a TCP-IP link by link 1044 , or the like. Also, one SMS may be shared between two commercial operators, or two SMSs may be used by one operator.
A first encryption unit in the form of a decryption unit 5100 using a "mother" smartcard is connected to the SAS via a link 1042 . A second encryption unit in the form of an encryption unit 5102 using a mother smartcard 5112 is connected to the multiplexer 1030 via a link 1040 . Receiver/decoder 2000 receives "daughter" smartcard 5500 . The receiver/decoder is coupled directly to the SAS 5200 via a communication server 1200 and a modemized back channel 570 . SAS transfers subscriber rights to the daughter smartcard on demand.
In various preferred embodiments, an Internet or cable connection complements or replaces PSTN 570 and Communication Server 1200 .
Smartcards contain confidential information from one or more commercial operators. The "mother" smartcard encrypts different kinds of messages and the "daughter" smartcard decrypts the messages.
Referring to FIG. 3 , in a broadcasting center, a digital video signal is first compressed (or bit rate reduced) using an MPEG-2 compressor 1010 . Then, the compressed signal is transmitted to the multiplexer and scrambler 1030 to be multiplexed into the same data as other compressed data.
The scrambler is used for the scrambling process and generates a control word included in the MPEG-2 stream of the multiplexer 1030 . The control word is generated internally and allows the end user's integrated receiver/decoder 200 to descramble the program.
Access criteria are added to the MPEG-2 stream indicating how the program is to be commercialized. Programs may be commercialized in one or more of a number of "subscribe" modes and/or in one or more of a number of "pay-out" (PPV) modes. In subscription mode, end users subscribe to one or more commercial offerings, i. In payment mode, the end user is provided with the ability to purchase the event he wants.
The control word and access criteria are used to build the ECM, which is a message sent in relation to one scrambled program, and this message contains the control word (which can descramble the program) and the access criteria of the broadcast program. do. The access criteria and control word are transmitted to the second encryption unit 5102 via link 1040 . In this unit, the ECM is generated, encrypted and sent to the multiplexer and scrambler 1030 .
Each service broadcast by a broadcast provider of data scram includes a plurality of components, for example, a television program includes a video component, an audio component, a caption component, and the like. Each of these service elements is individually scrambled and encrypted for subsequent broadcasts. For each scrambled service element, a separate ECM is required.
The multiplexer 1030 receives an electrical signal including an EMM encrypted from the SAS 5200 , an ECM encrypted from the second encryption unit 5102 , and a compressed program from the compressor 1010 . The multiplexer 1030 transmits the scrambled program, the encrypted EMM, and the encrypted ECM as electrical signals to the broadcasting system 600 , which may be, for example, the satellite system shown in FIG. 1 or the like. The receiver/decoder 2000 demultiplexes the signal to obtain an encrypted EMM and a scrambled program of the encrypted ECM.
The receiver/decoder receives the broadcast signal and extracts the MPEG-2 data stream. Once the program is scrambled, the receiver/decoder 2000 extracts the corresponding ECM from the MPEG-2 stream and transmits the ECM to the end user's "daughter" smart card 5500 . It is housed in the housing of the receiver/decoder 2000 . The daughter smartcard 5500 controls whether the end user has the authority to decrypt the ECM and access the program. Otherwise, a negative state is sent to the receiver/decoder 2000 indicating that the program cannot be descrambled. If the end user has authority, the ECM is decrypted and the control word is extracted. And, the decoder 2000 may descramble the program using this control word. The MPEC-2 stream is decompressed and converted into a video signal for transmission to the TV set 10000 .
If the program is not scrambled, the ECM cannot be transmitted as an MPEG-2 stream and the receiver/decoder 2000 decompresses the data and converts the signal to a video signal for the television set 10000.
Subscriber Management System (SMS) 1100 includes a database 1150 that manages data regarding commercial offerings (rates and giveaways), subscriptions, PPV details, and end-user consumption and authentication. The SMS may be physically separated from the SAS.
SMS 1100 sends a message to SAS 5200 containing a variant or creation of the EMM to be sent to the end user. SMS 1100 sends a message to SAS 5200 that does not contain variations or creations of the EMM, but only changes the end user's state (relating to the end user's authenticator ordering the product or quantity the end user will add). do. The SAS 5200 transmits a message (requesting information such as call-back information or billing information) to the SMS 1100 to communicate between the two in two ways.
<b>receiver/decoder</b>
4, various elements of receiver/decoder 2000 are described in terms of functional blocks.
Receiver/decoder 2000, which may be for example a digital set top box (DSTB), includes a central host processor 2002 and a digital TV coprocessor 2004, both of which have associated memory elements (not shown); coupled by a coprocessor bus 2006 . The coprocessor 2004 includes a USB interface 2070, a serial interface 2072, a parallel interface (not shown), a modem 2074 (connected to the modem back channel 570 in FIG. 1), and a front panel of the decoder ( 2054) receives input data from the switch contact.
The receiver/decoder receives input from an infrared remote control 2080 (and optionally a wireless peripheral 2082 such as a Bluetooth enabled device) and two smartcards for reading bank and subscription smartcards 2060 and 2062 respectively. Readers 2050 and 2052 are included. The subscription smart card reader 2052 is coupled with the inserted subscription card 2062 and a conditional access unit (not shown) and supplies the necessary control words to the demultiplexer/descrambler/remultiplexer unit 2010 to transmit an encrypted broadcast signal. can be descrambled. The decoder includes a conventional tuner 2016 and a demodulator 2012 to receive and demodulate the satellite transmission before being filtered and demultiplexed by the demodulator/descrambler unit 2010 . A second tuner 2018 and a second demodulator 2014 are provided to allow the second channel to be received and decoded in parallel with the first.
A hard disk 2100 is also provided that enables storage of program and application data received and generated by the receiver/decoder. Two tuners (2016, 2018), two demodulators (2012, 2014), descrambler/demultiplexer/remultiplexer (2010), and data decoder 2024 and voice decoder 2026, while watching other programs Improved recording and playback features are provided that allow simultaneous recording of one or more programs, and more general transfer from a hard disk to a display device and/or to input and output.
Audio output 2038 and video output 2040 of the receiver/decoder are to PCM mixer 2030 and audio DAC 2034, MPEG video decoder 2028, graphics engine 2032, and PAL/SECAM encoder 2036. supplied by Other or complementary outputs may of course be provided.
The application used herein is preferably some kind of computer code for controlling the high-level functions of the receiver/decoder 2000 . For example, when the end user places the focus of the remote control 2080 on a button object shown on the screen of a television set (not shown) and presses the OK key, the command sequence associated with the button is executed. The application and associated middleware are executed by the host processor 2002 , and a remote procedure call (RPC) is executed over the coprocessor bus 2006 to the digital TV coprocessor 2004 .
Interactive applications suggest menus, execute commands on demand by the end user, and provide data relevant to the purpose of the application. The application is stored in the resident application, that is, the ROM (or non-volatile memory such as FLASH) of the receiver/decoder 2000, or it can be broadcast and downloaded to the RAM, FLASH memory or hard disk of the receiver/decoder 2000. .
The application is stored in the memory of the receiver/decoder 2000 and is expressed as a resource file. The resource file includes a graphic object description unit file, a variable block unit file, an instruction sequence file, an application file, and a data file.
The receiver/decoder includes a memory (not shown) partitioned into at least one RAM volume, a FLASH volume and at least one ROM volume, but this physical configuration is distinct from a logical configuration. Memory may be further divided into memory volumes associated with various interfaces. In one aspect, memory may be considered as part of the hardware, and in another aspect, memory may be considered to support or include the entire system presented separately from the hardware.
<b>Receiver/Decoder Structure</b>
Referring to FIG. 5 , the software/hardware structure 3000 of the receiver/decoder includes five software layers, so that the software can be executed in any receiver/decoder and any operating system. The various software layers include an application layer 3100 , an application programming interface (API) layer 3300 , a virtual machine layer 3500 , a device interface layer 3700 (abbreviated as 'device layer') and a system software/hardware layer 3900 . )am.
The application layer 3100 includes applications 3120 that reside in the receiver/decoder or are downloaded. This may be an interactive application used by the customer, for example written in a language such as Java, HTML, MHEG-5, or for example, an application used by a receiver/decoder for the purpose of running an interactive application can be This layer is based on the application programming interface (API) provided by the virtual machine layer. The system allows applications to be downloaded to the receiver/decoder's hard disk, flash memory or RAM memory. Application code may be transmitted in compressed or uncompressed format using protocols such as Data Storage Media Command and Control (DSMCC), Network File Server (NFS), and the like.
The API layer 3300 provides high-level utilities for developing interactive applications. It includes several packages that make up this high-level API. This package provides all the functionality needed to run interactive applications. The package is accessible by the application.
In a preferred embodiment, the API is for an application written in a programming language such as Java, PanTalk, or the like. In addition, it facilitates the interpretation of formats such as HTML such as MHEG-5. In addition to this, it includes other packages and service modules that are detachable and extensible as required.
The virtual machine layer 3500 is composed of a language interpreter and various modules and systems. Managed by the kernel 3650 (not shown), this layer contains everything needed to receive and run the receiver/decoder's applications.
The device interface layer 3700 includes a device manager and a software device (hereinafter referred to as a 'device'). A device is a software module composed of logical resources necessary for management of external mappings and physical interfaces. Under the control of the device manager, the device interface layer manages the communication channel between the driver and the application and provides improved error exception checking. Some examples of managed (hardware) devices include card reader 3722 (not shown), modem 3730 (not shown), network 3732 (not shown), Personal Computer Memory Card International Association (PCMCIA) on), LED display, etc. Because the API layer controls the device, the programmer does not have to deal with this layer directly.
The system software/hardware layer 3900 is provided by the manufacturer of the receiver/decoder. Because of the modularity of the system and the services provided by the high-level operating system (such as event scheduling and memory management) are part of the virtual machine and kernel, the upper layers are not tied to a specific real-time operating system (RTOS) or specific processor.
Typically virtual machine layer 3500 in conjunction with device interface layer 3700 and/or API 3300 is referred to as 'middleware' of the receiver/decoder.
Referring to FIG. 6 , the software structure of the receiver/decoder 3000 corresponding to the upper middle of FIG. 5 (including the application layer 3100 , the API layer 3300 and the virtual machine layer 3500 ) is shown in more detail. described.
Interactive applications are applications with which users interact to obtain products and services such as electronic program guides, telebanking applications, and games.
In addition to the application manager 3110, there are two types of applications in the application layer 3100. There are interactive applications such as web browser 3130 that can be added at the point of conforming to API 3300, and there are resident applications that manage and support interactive applications. Resident applications are substantially permanent and include:
* Boot. The boot application 3142 is an application that is first started when the receiver/decoder is turned on. The boot application starts the application manager 3110 and the "manager" software modules of the virtual machine 3500, such as the memory manager 3544 and the mapping manager 3546.
* Application manager. The application manager 3110 is an interactive application running on the receiver/decoder, ie, starting, stopping, pausing, resuming, processing, and communicating between applications. This allows multiple applications to run immediately and is therefore included in the deployment of resources. This application is completely transparent to the user.
* set up. The purpose of the setup application 3144 is to somehow adjust the receiver/decoder when first used. It does things like scanning TV channels, setting the date and time, setting user preferences, etc. However, the setup application can always be used by the user to change the receiver/decoder configuration.
* Zapping. The zapping application 3146 is used to change channels using program-up, program-down, and numeric keys. For example, if another form of zapping is used through a banner (pilot) application, the zapping application is stopped.
* Callbacks. The callback application 3148 extracts the values of the various parameters stored in the receiver/decoder memory and returns these values to the commercial operator via means such as a modemized back channel 1070 (not shown).
Other applications of the application layer 3100 include a program guide application 3132 , a payment application 3134 , a banner (pilot) application 3136 , a home banking application 3138 , a software download application 3140 , and a personal video recorder (PVR). application 3154 (see below).
As described above, the application programming interface (API) layer 3300 includes several packages. It includes a virtual machine used to access features of the software architecture unique to the software vendor, a DAVIC package 3320 , and a base system package 3310 used to access the basic features of a private package 3330 .
Virtual machine 3500 includes:
* Language interface (3510). Another interpreter may be installed to confirm the type of application to be read. This includes a Java parser 3512 , a Pantalk parser 3514 , an HTML parser 3516 , an MHEG-5 parser 3518 , and the like.
* Service Information (SI) engine. The SI engine 3540 loads and monitors a Common Digital Video Broadcast (DVB) or Program System Information Protocol (PSIP) table and caches it. This makes these tables accessible by applications that need the data contained in them.
* Scheduler (3542). This module enables pre-emptive, multithreaded scheduling with each thread having its own mapping queue.
* Memory manager (3544). This module manages access to memory. It automatically compresses data into memory when necessary and performs automatic closed area retrieval.
* Event Manager (3546). This module allows mappings to be triggered based on priority. It manages timers and map grabbing and allows applications to send maps to each other.
* Dynamic Linker (3548). This module enables the resolution of the addresses of Java functions, loads native methods from Java classes downloaded into RAM and resolves calls with native code downloaded into ROM.
* Graphics system (3550). This system is an object-oriented and optimized system. It includes a vector font engine with multilingual support as well as graphical windows and object management.
* Class Manager (3552). This module loads classes and solves any class reference problems.
* File system (3554). This module is optimized to manage multiple ROM, Flash, RAM and hierarchical file systems of DSMCC volumes. Flash integrity is guaranteed in any event.
* Security Manager (3556). This module authenticates the application and controls the application's access to areas of the set-top box, such as sense memory.
* Downloader (3558). This module uses automatic data downloaded from a remote DSMCC carousel or NFS protocol where downloaded files are accessed in the same way. Memory tidying, compression and authentication are provided.
In addition, the DAVIC resource notification model is supported so that client resources are sufficiently managed.
The kernel 3650 manages various processes executed in the virtual machine 3500 and the device interface layer 3700 (not shown). For efficiency and reliability reasons, the kernel implements the relevant part of the POSIX surface of the operating system.
Under the control of the kernel, it runs a virtual machine (which runs Java and Pantalk applications) in its own thread, independent of the 'server' element of the operating system, such as the mass storage server 3850 (not shown). Corresponding preparations, such as requesting a thread ID to be transmitted as a parameter of a system call, are made in the API layer 3300 so that the application 3120 can benefit from a multithreaded environment.
More stability can be achieved by providing multiple threads. For example, if the virtual machine 3500 stops operating for some reason, critical parts of the system, such as a hard disk server, may continue to operate by crashing or blocking for a long time by an application trying to access the device. .
A hard disk video recorder (HDVR) module 3850, as well as a virtual machine 3500 and kernel 3650, is provided to handle the recording and playback of functions of the hard disk 2210 or other attached mass storage element. The server includes two independent threads 3854 and 3856 for record processing, one thread 3858 handles playback, and a file system library 3852 interacts with the mass storage element.
A suitable one of the threads 3854, 3856, 3858 of the hard disk video recorder (HDVR) 3850 is, for example, from a client such as a personal video recorder (PVR) application 3154 in response to a user pressing a 'record' button. Receive commands (such as the start command of a specific program record).
The thread then interacts with the service device 3736 (shown in FIG. 7) to establish and synchronize the part of the receiver/decoder that processes the bitstream to be recorded or reproduced. At the same time, the thread interacts with the filesystem library 3852 to coordinate the recording or playback of operations at the appropriate location on the hard disk 2210 (not shown).
And filesystem library 3852 sends commands to mass storage device 3728 (shown in Figure 7), which mass storage device 3728 is a sub-transport stream (STS) for transport through (FIFO buffer) and The hard disk is a mass storage device 3728 on which the target stream is to be stored. The allocation of clusters and general file management on the hard disk is performed by the file system library 3852, and the mass storage device itself is involved in low-level operations.
The above-mentioned service device 3736 is unique among devices that are not related to the physical part of the receiver/decoder. It provides a high-level interface that groups together the tuner, demultiplexer, remultiplexer and hard disk devices of the receiver/decoder into a single 'instance' which frees the high-level process from the difficulty of coordinating the various subdevices.
Referring to FIG. 7 , the software structure of the receiver/decoder 3000 corresponding to the lower half of FIG. 5 (including the device interface layer 3700 and the system software and hardware layer 3900 ) is described in more detail.
Other devices provided in the device layer include conditional access device 3720, tuner device 3724 corresponding to two (or more) tuners 2016, 2018 of FIG. 4, video device 3734, I/O port device ( 3726 , and a service device 3736 and a mass storage device 3728 .
In a broad sense, a device can be considered to define a logical interface, such that two different devices can be coupled to a common physical port. Certain devices can communicate with themselves, and all devices operate under the control of the kernel 3650 .
Before using any device's services, a program (such as an application command sequence) must be declared as a "client", i.e. a logical access way to the device or device manager 3710. The administrator gives the client a client number that will be referenced in all accesses to the device. A device can have several clients, and the number of clients for each device is specified according to the type of device. The client is introduced into the device by the procedure "device: open channel". This procedure assigns a client number to a client. The client can be obtained from the device manager 3710 client list by the procedure "device:close channel".
Access to the device provided by the device manager 3710 may be either synchronized or unsynchronized. For synchronous access, the procedure "Device:Call" is used. This is a means of accessing ready-to-use data or functionality that does not involve waiting for a desired response. For asynchronous access, the procedure "Device:I/O" is used. This is a means of accessing data containing waiting for a response, such as scanning a tuner frequency to find a multiplexer or get a table from an MPEG stream. If the desired result is available, an event can be placed in the engine's queue to signal its arrival. Another procedure "Device:Event" provides a means for managing unpredicted events.
In the second embodiment of the receiver/decoder, the lower middle of the receiver/decoder structure is replaced by the hierarchy shown in FIG.
In this embodiment, an extended device layer interface (EDLI) 3600 is installed between the virtual machine 3500 (not shown) and the device interface layer 3700 , and the abstract device interface 3800 is the device interface layer 3700 . ) and the system software/hardware layer 3900 . Likewise, like parts are assigned like reference numerals.
The EDLI 3600 provides a dedicated interface between the virtual machine 3500 and the device interface layer 3700 and generally provides multithreading support to the device interface layer. EDLI's functions include routing asynchronous mappings (since the device interface layer does not require multithreading to support) and routing messages between threads to the appropriate threads in the middleware.
The abstract device interface 3800 provides an interface between the device interface layer 3700 and the device driver 3910 of the system software/hardware layer 3900 . By providing such an interface, the bulk of the complex device layer 3700 becomes hardware independent.
One of the applications 3120 shown in Fig. 6 is a profile manager for creating and editing profiles. The Profile Manager is a resident application that prompts the end user to enter profile data using the remote control 2080 . The profile data may include the end user's residence, marital status, age, or interest (indicating whether the end user is interested in sports, news and action movies). The profile data is stored in the hard disk 2100 by the profile manager, and the end user can edit the stored profile data at any time.
In another example, a profile manager may create a profile by monitoring end-user viewing of habits and setting up a profile. For example, a profile manager can keep an eye on whether end-users watch a lot of sports, news and action movies, and log profile data to see if end-users have been offered programs in this category. In another preferred embodiment, a part of an application and/or middleware such as a setup application performs the role of the profile manager as described above.
Three different types of 'virtual channel' systems are described with reference to FIGS. 9 to 12 (first and second embodiments), 13 (third embodiment) and 14 (fourth embodiment).
<b>personalized advertising</b>
As described above, various types of programs can be recorded on the hard disk of the receiver/decoder for later viewing under the control of the user of the receiver/decoder. The receiver/decoder is programmed to record various types of programs or genres of programs, but the process maintains time-shifting operation.
The first embodiment shown in Figs. 9A,B,C, 10,11 and 12 uses a hard disk to pre-record a series of advertisements, and inserts advertisements between scheduled programs broadcasted to the receiver/decoder. 9A, B and C, like parts are denoted by like reference numerals.
Referring to FIG. 9A , a broadcasting center 1000 and a receiver/decoder 2000 are shown, and the receiver/decoder includes a video decoding circuit 2250 and a hard disk 2100 . At regular scheduled intervals (eg, every day between 3 am and 5 am, when few TV channels are broadcast and more wavelength bands are available), the broadcast center 1000 may transmit via a broadcasting medium (cable or satellite) A series of advertisements 840 are sent to the receiver/decoder 2000 . In addition, the receiver/decoder 2000 stores advertisements in a specific location 7050 of the hard disk 2100 .
Advertisement data 840 is broadcast in a single channel. Under the management of the Ad Manager application, a download mechanism such as the ANT (Action Notification Table) of the receiver/decoder is required by one of the tuners (2016, 2018) during the scheduled timeslot (in this case between 3am and 5am). It checks whether the channel is tuned, and commands the storage of data to the hard disk 2100 . A number of advertisements (eg 50) may be stored.
As a variant of the preferred embodiment, advertisements 840 are transmitted via other means using a point-to-point connection such as the Internet or a telephone connection or broadcasting means such as radio, cable and satellite links. In another variant of the preferred embodiment, another type of recording device, such as an analog video recorder or a digital video recorder, is used in place of the hard disk 2100 .
Referring to FIG. 9B , which shows a broadcasting system at another timefor example, tomorrowa broadcast center 1000 broadcasts a program content 850 to a receiver/decoder 2000 . The program content is processed by video decoding circuitry 2250 and output on video output 2040, which is then displayed on television 10000 (not shown).
At some time, such as onset of the ad break, a virtual channel information message (VCIM) 7060 (not shown) is inserted into the program content 850 and received by the ad manager application.
Referring to FIG. 9C , the Ad Manager application initiates playback of one or more appropriate advertisements from stored advertisements 7050 , preferably having target data associated with each advertisement (see below) and a profile created with respect to the current user. Match the selection profile information of VCIM (see below).
The format of a virtual channel information message (VCIM) 7060 is described with reference to FIG. 10 . The VCIM 7060 includes a head 7070 , a category code 7072 , a schedule information block 7074 , selection profile information 7076 , and a selection signature 7078 . The header 7070 contains a magic number that identifies the type of message and one field of the header specifies the length of the message. Category code 7072 identifies the type of programming required, ie, advertisement. The schedule information block 7074 includes several identifying the minimum and maximum number of program elements (such as individual advertisements) that can be combined to obtain the required length of programming (or more specifically advertising breaks) and required duration. contains fields. Optional profile information 7076 provides other profile information or individual advertisements (described above) to supply, replace, or bias profile information supplied by the end user.
As will be described in more detail below, the suitability of each program, such as stored advertisements, is considered in terms of accessibility of matches between the stored advertisements, etc. programs and other factors such as time and local user profiles or target data stored in other factors, such as time. The advertisement is repeated a predetermined number of times, and time elapses since the advertisement has been received.
The profile information 7076 provides 'fine tuning' for a predetermined user's advertisement selection. For example, users (selected or inferred) of profiles with suggested preferences for sports-related programming are more likely to view sports-related advertisements than food-related advertisements. For example, for a late-night cooking program, the profile information 7076 of the VCIM 7060 transmitted at the beginning of an advertisement break specifies a negative bias for sports preference and a positive bias for food preference, and a positive bias for sports shoes. An advertisement for the pasta sauce displayed in response to the advertisement's preference may be driven.
As a variant of the preferred embodiment, information related to features such as scheduling of personalized advertisements is supplied "offline" in advance of a program to be scheduled in a scheduled broadcast using a predetermined program ID (PID). Alternatively, a simple marketplace message is transmitted in the broadcast bit stream when personalized advertising is desired. In this case, the selection of advertisements or programs does not affect other profile information since nothing is specified.
The advertisement data itself has the format shown in FIG. Along with video and audio, advertisement data includes target data. For example, a set of advertisement data shown in FIG. 11 is composed of an image element 7002 , an audio element 7003 , and a target element 7004 . Target element 7004 indicates that the advertisement is targeted to end-users living in Paris who are interested in soccer. The following advertisement has a target element 7011 indicating that the advertisement is aimed at end users residing in Marcel (France) who are interested in marriage and travel.
To illustrate the above principle, Fig. 12 shows a program presented to four users during five adjacent time slots. During the first time slot, the broadcast center broadcasts the provided movie 8000 to each of the four end users simultaneously. During the advertisement time slot following the movie 8000, the advertisement manager residing in the receiver/decoder 2000 of each user compares the target data with the profile data stored in the hard disk 2100, and matches the profile of the end user. select Thus, in the example of FIG. 12, each end user has a different profile presented in a different advertisement 8001-8004. During the third and fourth scheduled time slots, the user is presented with a new story 8010 and serial 8002 . In arbitration of advertisement time slots, four users are presented with different advertisements 8011-8014.
Because disk space is limited, when the next set of advertisements airs (eg between 3 and 5 am the next day), the Ads Manager can overwrite advertisements that do not match the provided or saved profile.
In a preferred embodiment, the advertisement manager application is provided independently of the virtual channel manager application. However, in a variant of the preferred embodiment, the advertisement manager application forms part of the more general virtual channel manager application. Alternatively, certain functions performed by the two applications of the preferred embodiment are performed by an application such as a Personal Video Recorder (PVR) application 3154 .
A log of provided advertisements may be transmitted to the broadcast center if a back channel connection is available to process this kind of information for any commercial or market purpose. In a preferred embodiment, the log file lists the content ID of each advertisement played along with the date, time and channel name to be displayed.
The structure of the end-user, audience data and profile information is described in more detail later.
<b>virtual channel</b>
The preparation of a virtual channel based on content generated on the basis of locally stored content in the receiver/decoder or transmitted on a different live stream (in this case the virtual channel consists of part of each stream) is described (two aspects) hybrid streams combining
In a second embodiment, the program content is transmitted to a receiver/decoder and stored on a mass storage device, such as a hard disk, using the same system used to transmit and store advertisements.
In common with the playback of advertisements, virtual channels rely on user profiles to order program output. Features such as program storage and 'closed area recovery' operate in a manner similar to a personalized advertising system. As a variant of the preferred embodiment, a system such as a virtual channel and personalized advertisement file processing is combined.
However, in contrast to personalized advertising, playback of content that is entirely personalized within the control of the receiver/decoder (unless an external control is desired) is continuous and non-prompted. In addition, the program conformance rule is required and will be described later.
You can use different rules to 'configure' channels, and combine live and stored outputs to logically construct one or more 'virtual channels' from stored content.
Referring to the third embodiment shown in FIG. 13 , the broadcasting center 1000 simultaneously broadcasts a scheduled program through a plurality of channels. In this example, advertisement 9000, movie 9001, advertisement 992, and sports event 9003 are broadcast on the first channel, and advertisement 9010, news report 9011, advertisement 9012, and movie ( 9013 is broadcast on the second channel, and the commercial 9020, movie 9021, commercial 9022, and movie 9023 are broadcast on the third channel.
Each broadcast program includes video, audio, timestamp and category elements. For example, the movie 9021 includes a video element 9030 , an audio element 9031 , a time stamp element 9032 , and a category element 9033 . The timestamp element 9032 represents the duration of the movie 9021 . The category element 9033 represents a category (eg, action movie) of the movie 9021 . In addition to the elements described above, advertisements include target data. For example, the advertisement 9022 includes a video element 9040 , an audio element 9041 , a time stamp element 9042 , a category element 9043 , and a target element 9044 . The target element 9044 represents the type of user targeted for the advertisement.
As above, a virtual channel manager application is provided. When available, the virtual channel manager application scans through different channels and selects a program that matches the profile created by the profile manager. Accordingly, in the example of FIG. 11 , the advertisement 9000 may be a car advertisement having a target element indicating whether the advertisement is sent to a male user over 30 years of age. The virtual channel manager compares the target element with the stored profile, and if the profiles match, the virtual channel manager tunes the tuner 2016 to the first channel and stores the advertisement 9000 on the hard disk 2100 with a unique file name. . At the end of advertisement 9000, the virtual channel manager scans through the channel until it finds the start of the next program with the category (in this case news report 9011) and/or the target element that matches the stored file. Following the selection, the virtual channel manager tunes the tuner 2016 to the second channel and saves the news report to the hard disk 2100 . At the end of the news report 9011, the virtual channel manager scans through the channel until it finds the start of the next program (in this case advertisement 9002) that matches the stored profile. The virtual channel manager continues this process (until there is free space on the hard disk 2100) and compiles a library of program data whose time path is of the type shown in FIG.
<tables id="1"><table colsep="0" frame="top" id="1" rowsep="0"><title><b>program data library</b></title><tgroup align="left" cols="4" colsep="0" rowsep="0"><colspec align="left" char="0" charoff="0" colname="1" colnum="1" colsep="0" colwidth="2670" rowsep="0" /><colspec align="left" char="0" charoff="0" colname="2" colnum="2" colsep="0" colwidth="2670" rowsep="0" /><colspec align="left" char="0" charoff="0" colname="3" colnum="3" colsep="0" colwidth="2670" rowsep="0" /><colspec align="left" char="0" charoff="0" colname="4" colnum="4" colsep="0" colwidth="2670" rowsep="0" /><tbody valign="top"><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"><b>file#</b></entry><entry align="left" morerows="0" nameend="2" namest="2"><b>category</b></entry><entry align="left" morerows="0" nameend="3" namest="3"><b>Target</b></entry><entry align="left" morerows="0" nameend="4" namest="4"><b>hours (minutes)</b></entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1">#1</entry><entry align="left" morerows="0" nameend="2" namest="2">action movie</entry><entry align="left" morerows="0" nameend="3" namest="3" /><entry align="left" morerows="0" nameend="4" namest="4"> 120</entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1">#2</entry><entry align="left" morerows="0" nameend="2" namest="2">horror movie</entry><entry align="left" morerows="0" nameend="3" namest="3" /><entry align="left" morerows="0" nameend="4" namest="4"> 110</entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1">#3</entry><entry align="left" morerows="0" nameend="2" namest="2">drama</entry><entry align="left" morerows="0" nameend="3" namest="3" /><entry align="left" morerows="0" nameend="4" namest="4"> 135</entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1">#4</entry><entry align="left" morerows="0" nameend="2" namest="2">Renault Car Advertisement</entry><entry align="left" morerows="0" nameend="3" namest="3">men over 30</entry><entry align="left" morerows="0" nameend="4" namest="4"> 2</entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1">#5</entry><entry align="left" morerows="0" nameend="2" namest="2">bank advertisement</entry><entry align="left" morerows="0" nameend="3" namest="3">Adults over 16 years of age</entry><entry align="left" morerows="0" nameend="4" namest="4"> 1</entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1">#6</entry><entry align="left" morerows="0" nameend="2" namest="2">rover car advertisement</entry><entry align="left" morerows="0" nameend="3" namest="3">Adults between the ages of 20 and 30</entry><entry align="left" morerows="0" nameend="4" namest="4"> 1</entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1">#7</entry><entry align="left" morerows="0" nameend="2" namest="2">domestic news</entry><entry align="left" morerows="0" nameend="3" namest="3" /><entry align="left" morerows="0" nameend="4" namest="4"> 10</entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1">#8</entry><entry align="left" morerows="0" nameend="2" namest="2">international news</entry><entry align="left" morerows="0" nameend="3" namest="3" /><entry align="left" morerows="0" nameend="4" namest="4"> 15</entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1">#9</entry><entry align="left" morerows="0" nameend="2" namest="2">baseball game</entry><entry align="left" morerows="0" nameend="3" namest="3" /><entry align="left" morerows="0" nameend="4" namest="4"> 120</entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1">#10</entry><entry align="left" morerows="0" nameend="2" namest="2">rugby match</entry><entry align="left" morerows="0" nameend="3" namest="3" /><entry align="left" morerows="0" nameend="4" namest="4"> 100</entry></row></tbody></tgroup></table></tables>
At any time, the user can watch one of the broadcast channel shown in FIG. 13 or the pre-recorded virtual channel. If the user wants to watch the virtual channel, the user may select the virtual channel using the remote controller 2080 . In this regard, the virtual channel manager implements a scheduling algorithm based on various rules described below (such as application-specific rules, general rules, and user-defined rules). The schedule algorithm constructs a virtual channel play schedule from the program data library. A typical schedule example is shown in Table 2.
<tables id="2"><table colsep="0" frame="top" id="2" rowsep="0"><title><b>Virtual Channel Play Schedule</b></title><tgroup align="left" cols="4" colsep="0" rowsep="0"><colspec align="left" char="0" charoff="0" colname="1" colnum="1" colsep="0" colwidth="2670" rowsep="0" /><colspec align="left" char="0" charoff="0" colname="2" colnum="2" colsep="0" colwidth="2670" rowsep="0" /><colspec align="left" char="0" charoff="0" colname="3" colnum="3" colsep="0" colwidth="2670" rowsep="0" /><colspec align="left" char="0" charoff="0" colname="4" colnum="4" colsep="0" colwidth="2670" rowsep="0" /><tbody valign="top"><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"><b>file#</b></entry><entry align="left" morerows="0" nameend="2" namest="2"><b>category</b></entry><entry align="left" morerows="0" nameend="3" namest="3"><b>start time</b></entry><entry align="left" morerows="0" nameend="4" namest="4"><b>end time</b></entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1">#1</entry><entry align="left" morerows="0" nameend="2" namest="2">action movie</entry><entry align="left" morerows="0" nameend="3" namest="3"> 1500</entry><entry align="left" morerows="0" nameend="4" namest="4"> 1700</entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1">#4</entry><entry align="left" morerows="0" nameend="2" namest="2">Linult Car Advertisement</entry><entry align="left" morerows="0" nameend="3" namest="3"> 1700</entry><entry align="left" morerows="0" nameend="4" namest="4"> 1702</entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1">#10</entry><entry align="left" morerows="0" nameend="2" namest="2">rugby match</entry><entry align="left" morerows="0" nameend="3" namest="3"> 1702</entry><entry align="left" morerows="0" nameend="4" namest="4"> 1842</entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1">#5</entry><entry align="left" morerows="0" nameend="2" namest="2">bank advertisement</entry><entry align="left" morerows="0" nameend="3" namest="3"> 1842</entry><entry align="left" morerows="0" nameend="4" namest="4"> 1843</entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1">#7</entry><entry align="left" morerows="0" nameend="2" namest="2">domestic news</entry><entry align="left" morerows="0" nameend="3" namest="3"> 1843</entry><entry align="left" morerows="0" nameend="4" namest="4"> 1853</entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1">#6</entry><entry align="left" morerows="0" nameend="2" namest="2">rubber car advertisement</entry><entry align="left" morerows="0" nameend="3" namest="3"> 1853</entry><entry align="left" morerows="0" nameend="4" namest="4"> 1854</entry></row></tbody></tgroup></table></tables>
Referring to the fourth embodiment shown in Fig. 14, a scheduled program is simultaneously broadcast to a user through a plurality of channels. In the example illustrated in FIG. 13, only three channels are shown, but in general any number of channels are possible. The movie channel broadcasts movies (9550 and 9551) preceded by advertisements (9552 and 9553). Sports channels broadcast sports events (9560 and 9561) preceding advertisements (9562 and 9563). The new channel broadcasts news 9570 and 9571 followed by advertisements 9572 and 9573.
The start and stop times of the program are shown in FIG. 14 as times t1-t8. FIG. 14 may be contrasted with FIG. 13 . In Fig. 13, the start and stop times of the program are asynchronous. 14, the programs all stop and start at the same time. That is, advertisements 9552, 9562, and 9572 stop and start at times t1 and t2, respectively, and programs 9550, 9560, and 9570 stop and start at times t3 and t4, respectively.
The format of the broadcast program shown in FIG. 14 is similar to that shown in FIG. 13 . However, in the case of Fig. 14, control data associated with each program (ie, time stamp element, category element, target element, and rule element) is simultaneously generated (during program times t1-t2, t3-t4, t5-t6, t7-t8). broadcast during program breaks t2-t3, t4-t5 and t6-t7 prior to video and audio elements (which are broadcast and displayed).
The virtual channel manager application switches between different channels according to a virtual channel algorithm similar to the schedule algorithm described above with reference to the second embodiment. More specifically, during program break time t2-t3 , the virtual channel manager application receives control data related to movies 9550 , sports events 9560 and news 9570 . And the virtual channel algorithm analyzes the control according to a set of rules and determines the channel to be selected (in this case, the sports channel). Accordingly, in the example of FIG. 14 , the virtual channel manager selects an advertisement 9552 from a movie channel, a sports event 9560 from a sports channel, an advertisement 9553 from a movie channel, and news 9571 from a news channel.
<b>Program Compatibility Rules</b>
As described above, the virtual channel algorithm for selecting a channel enables the use of various rules, and may include application-specific rules, general rules, and user-defined rules. This rule may be stored or received as control data of the program break.
An example of a specific rule is shown in FIG. 13 . The advertisement 9012 includes a video element 9050 , an audio element 9051 , a time stamp element 9052 , a category element 9053 , a target element 9054 , and a rule element 9055 . The rule element is dictated by the advertiser and may be a program-specific rule associated with a particular advertisement, such as "this advertisement must be presented to the user of the advertisement slot without any advertisements". Alternatively, the rule element may be a general rule such as "at least one advertisement must be provided immediately before and after each movie".
Other examples of general rules (either some default for the application or later sent by the broadcast center 100) include "at least one advertisement must follow the movie" and "at least one news report is 4 hours long." must occur every time slot". Another example of an application-specific rule dictated by an advertiser is "A car advertisement from a competitor cannot be displayed within 2 hours of this advertisement."
Other examples include "News bullpen displayed between 7 and 9 a.m.", "Adult program after 8 p.m.". Include rules such as "'Cruel' movies are not displayed before 10 am", "Some movies cannot be viewed more than once", and so on.
A user can create virtual channel play rules that are included in the profile by the profile manager. An example of a user-defined rule is "Likes each movie after sports thought".
Some rules allow the use of time elements sent to the program. For example, a general rule may state "an ad slot cannot run for more than 3 minutes". Thus, the scheduling algorithm may compile an advertisement time slot into three one-minute advertisements, or one three-minute advertisement.
Users have a certain amount of control in terms of virtual channels by profile (of which programs are stored in the library) and by user-defined rules (affecting schedules). However, the content and/or schedule of the virtual channel may be centrally controlled by application-specific and general rules.
As above, various rules are equally applicable to more specific applications of personalized advertising.
<b>Transmission of profile rules</b>
A set of virtual channel play rules is provided by default in the virtual channel manager application, and is transmitted along with the rest of the application to the receiver/decoder (or the application is provided if the application is supplied by a non-broadcast means). This may be a rule written by the creator of the application, or may be dictated by a content provider such as an advertiser. Once installed or loaded, the rules are stored on the hard disk 2100 as part of the virtual channel manager application. In a variant of the preferred embodiment, the rules are maintained in flash memory (eg a smart card for compatibility and portability) or in general RAM (if mass storage or flash memory is not available).
The default rule may be edited or augmented by subsequent download from the broadcasting center 1000, for example, by transmitting a new rule of a predetermined program ID (PID) together with the program data shown in FIG. 13 .
The ability to completely update the set of rules applied by the receiver/decoder 2000 (not shown) from a remote location is a secret law allowing specific (or all) information from the receiver/decoder by parts of the broadcast system, such as the head-end. It can be used especially when the reading of is prohibited. The ability to transmit new rules at any time in relation to a particular time, user, receiver/decoder, program or channel would eliminate the need for direct intervention by the broadcaster, for example to influence certain advertising or programming methods. can
In a preferred embodiment, a generic MPEG 'Private' table is used to transmit the rules to the receiver/decoder 2000. A rule of this type is described in more detail in European Patent Application No. 01306315 .1, the content of which is incorporated herein by reference.
The management and structure of this table and the content to the receiver/decoder and application for the transmission of rules are described.
In order to interpret the table structure described below, an analysis is provided as part of the software operation of the set-top box. The construction of such an analysis to give a defined data structure can be readily performed by one of ordinary skill in the art. Accordingly, only the basic requirements are outlined here.
The analysis layer, which includes the analysis, provides an abstraction layer between the application layer and the MPEG table acceptance and filtering layer, and extracts the information transmitted to the broadcasting center through the program stream.
The effect of this abstraction is that different applications should not specifically apply to multiple table formats for different kinds of data processing. The analysis processes the received table part, extracts relevant information, and sends it to an application in the application layer, such as an advertisement manager.
The general table format described below allows different types of data to be organized within the same table structure. As a set of common and specific attribute descriptions, individual data items stored in table sections contain information required by the application. The descriptive term format can be varied, and a simple header is provided in the above example containing tags specifying the information type and size attributes so that the analysis can correctly extract the information and send it to the application.
In addition, since the size of the descriptor list is provided in the form of a Common_Descriptor_info_length field and an Extra_Identifier_descriptor_length field, they can be accurately extracted. There is no need to relate the meaning or function of individual data items to the analysis itself, it just sends the data to the application. Thus, the analysis need not be aware of the different types of information it can receive, and the interpretation of the information is performed by the application. The analysis simply strips the transmission-related information contained in the header and conveys the actual data contents of the table to the application in a generic form. Thus, different types of variable-length tables can be processed. The design of the analysis is governed by the design of general purpose tables, not by the different types of information used by different applications.
To enable other table section formats, the current format provides a parsing format field (Data_Parsing_Format). Before this field, the header section maintains a constant with the size of all table formats so that the field can be correctly identified, which can be used to determine the format of an individual table section and choose the appropriate method to parse it.
In this case, Table 3 shows a high-level structure table ('virtual channel management table', VCMT) used to convey advertisement sequence rules to a receiver/decoder. It can be seen that this format is necessarily generic and can be applied to applications such as the ANT (Action Notification Table) described below.
<tables id="3"><table colsep="0" frame="top" id="3" rowsep="0"><title><b>Virtual Channel Management Table</b></title><tgroup align="left" cols="4" colsep="0" rowsep="0"><colspec align="left" char="0" charoff="0" colname="1" colnum="1" colsep="0" colwidth="4900" rowsep="0" /><colspec align="left" char="0" charoff="0" colname="2" colnum="2" colsep="0" colwidth="1644" rowsep="0" /><colspec align="left" char="0" charoff="0" colname="3" colnum="3" colsep="0" colwidth="1742" rowsep="0" /><colspec align="left" char="0" charoff="0" colname="4" colnum="4" colsep="0" colwidth="2337" rowsep="0" /><tbody valign="top"><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"><b>name</b></entry><entry align="left" morerows="0" nameend="2" namest="2"><b>unit</b></entry><entry align="left" morerows="0" nameend="3" namest="3"><b>size (bit)</b></entry><entry align="left" morerows="0" nameend="4" namest="4"><b>default value</b></entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1">Long_Private_secton(){</entry><entry align="left" morerows="0" nameend="2" namest="2" /><entry align="left" morerows="0" nameend="3" namest="3" /><entry align="left" morerows="0" nameend="4" namest="4" /></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> table_id</entry><entry align="left" morerows="0" nameend="2" namest="2">uimsbf</entry><entry align="left" morerows="0" nameend="3" namest="3"> 8</entry><entry align="left" morerows="0" nameend="4" namest="4" /></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> Section_syntax_indicator</entry><entry align="left" morerows="0" nameend="2" namest="2">bslbf</entry><entry align="left" morerows="0" nameend="3" namest="3"> 1</entry><entry align="left" morerows="0" nameend="4" namest="4"> 1b</entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> Private_syntax_indicator</entry><entry align="left" morerows="0" nameend="2" namest="2">bslbf</entry><entry align="left" morerows="0" nameend="3" namest="3"> 1</entry><entry align="left" morerows="0" nameend="4" namest="4"> 1b</entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> ISO reserved</entry><entry align="left" morerows="0" nameend="2" namest="2">bslbf</entry><entry align="left" morerows="0" nameend="3" namest="3"> 2</entry><entry align="left" morerows="0" nameend="4" namest="4"> 11b</entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> Section_length</entry><entry align="left" morerows="0" nameend="2" namest="2">uimsbf</entry><entry align="left" morerows="0" nameend="3" namest="3"> 12</entry><entry align="left" morerows="0" nameend="4" namest="4"> Maximum = OxFFD</entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> Tid_extension</entry><entry align="left" morerows="0" nameend="2" namest="2">uimsbf</entry><entry align="left" morerows="0" nameend="3" namest="3"> 16</entry><entry align="left" morerows="0" nameend="4" namest="4"> Tid_ext</entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> Reserved</entry><entry align="left" morerows="0" nameend="2" namest="2">bslbf</entry><entry align="left" morerows="0" nameend="3" namest="3"> 2</entry><entry align="left" morerows="0" nameend="4" namest="4"> 11b</entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> Version_number</entry><entry align="left" morerows="0" nameend="2" namest="2">uimsbf</entry><entry align="left" morerows="0" nameend="3" namest="3"> 5</entry><entry align="left" morerows="0" nameend="4" namest="4" /></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> Current_next_indicator</entry><entry align="left" morerows="0" nameend="2" namest="2">bslbf</entry><entry align="left" morerows="0" nameend="3" namest="3"> 1</entry><entry align="left" morerows="0" nameend="4" namest="4"> 1b</entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> Section_number</entry><entry align="left" morerows="0" nameend="2" namest="2">uimsbf</entry><entry align="left" morerows="0" nameend="3" namest="3" /><entry align="left" morerows="0" nameend="4" namest="4" /></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> Last_section_number</entry><entry align="left" morerows="0" nameend="2" namest="2">uimsbf</entry><entry align="left" morerows="0" nameend="3" namest="3" /><entry align="left" morerows="0" nameend="4" namest="4" /></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> filter_extension</entry><entry align="left" morerows="0" nameend="2" namest="2">uimsbf</entry><entry align="left" morerows="0" nameend="3" namest="3" /><entry align="left" morerows="0" nameend="4" namest="4" /></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> Data_parsing_format</entry><entry align="left" morerows="0" nameend="2" namest="2">uimsbf</entry><entry align="left" morerows="0" nameend="3" namest="3" /><entry align="left" morerows="0" nameend="4" namest="4" /></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> Priority</entry><entry align="left" morerows="0" nameend="2" namest="2">bslbf</entry><entry align="left" morerows="0" nameend="3" namest="3" /><entry align="left" morerows="0" nameend="4" namest="4" /></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> Data_parsing_format_flag</entry><entry align="left" morerows="0" nameend="2" namest="2">bslbf</entry><entry align="left" morerows="0" nameend="3" namest="3" /><entry align="left" morerows="0" nameend="4" namest="4" /></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> Reserved</entry><entry align="left" morerows="0" nameend="2" namest="2">bslbf</entry><entry align="left" morerows="0" nameend="3" namest="3" /><entry align="left" morerows="0" nameend="4" namest="4" /></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> Common_descriptor_info_length</entry><entry align="left" morerows="0" nameend="2" namest="2">uimsbf</entry><entry align="left" morerows="0" nameend="3" namest="3" /><entry align="left" morerows="0" nameend="4" namest="4" /></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> For(i=0;i<N1;i++){</entry><entry align="left" morerows="0" nameend="2" namest="2" /><entry align="left" morerows="0" nameend="3" namest="3" /><entry align="left" morerows="0" nameend="4" namest="4" /></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> Descriptor()</entry><entry align="left" morerows="0" nameend="2" namest="2" /><entry align="left" morerows="0" nameend="3" namest="3" /><entry align="left" morerows="0" nameend="4" namest="4" /></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> }</entry><entry align="left" morerows="0" nameend="2" namest="2" /><entry align="left" morerows="0" nameend="3" namest="3" /><entry align="left" morerows="0" nameend="4" namest="4" /></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> For(i=0;i<N2;i++){</entry><entry align="left" morerows="0" nameend="2" namest="2" /><entry align="left" morerows="0" nameend="3" namest="3" /><entry align="left" morerows="0" nameend="4" namest="4" /></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> Extra_identifier_length</entry><entry align="left" morerows="0" nameend="2" namest="2">uimsbf</entry><entry align="left" morerows="0" nameend="3" namest="3" /><entry align="left" morerows="0" nameend="4" namest="4" /></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> extra_identifier</entry><entry align="left" morerows="0" nameend="2" namest="2">uimsbf</entry><entry align="left" morerows="0" nameend="3" namest="3" /><entry align="left" morerows="0" nameend="4" namest="4" /></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> Reserved</entry><entry align="left" morerows="0" nameend="2" namest="2">bslbf</entry><entry align="left" morerows="0" nameend="3" namest="3" /><entry align="left" morerows="0" nameend="4" namest="4" /></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> Extra_identifier_descriptor_length</entry><entry align="left" morerows="0" nameend="2" namest="2">uimsbf</entry><entry align="left" morerows="0" nameend="3" namest="3" /><entry align="left" morerows="0" nameend="4" namest="4" /></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> For(i=0;i<N3;i++){</entry><entry align="left" morerows="0" nameend="2" namest="2" /><entry align="left" morerows="0" nameend="3" namest="3" /><entry align="left" morerows="0" nameend="4" namest="4" /></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> Descriptor()</entry><entry align="left" morerows="0" nameend="2" namest="2" /><entry align="left" morerows="0" nameend="3" namest="3" /><entry align="left" morerows="0" nameend="4" namest="4" /></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> }</entry><entry align="left" morerows="0" nameend="2" namest="2" /><entry align="left" morerows="0" nameend="3" namest="3" /><entry align="left" morerows="0" nameend="4" namest="4" /></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> }</entry><entry align="left" morerows="0" nameend="2" namest="2" /><entry align="left" morerows="0" nameend="3" namest="3" /><entry align="left" morerows="0" nameend="4" namest="4" /></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> CRC_32</entry><entry align="left" morerows="0" nameend="2" namest="2">Rpchof</entry><entry align="left" morerows="0" nameend="3" namest="3" /><entry align="left" morerows="0" nameend="4" namest="4" /></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> }</entry><entry align="left" morerows="0" nameend="2" namest="2" /><entry align="left" morerows="0" nameend="3" namest="3" /><entry align="left" morerows="0" nameend="4" namest="4" /></row></tbody></tgroup></table></tables>
This unit is designed for digital video broadcasting (DVB) standards, e.g. for unassigned integers. <i>uimsbf</i> For standard (most significant bit), and bit string <i>bslbf </i>It is a well-known abbreviation in terms of the standard (left bit).
<i>data_parsing_format </i>The setting is helpful for general table analysis in case the data format is changed to a later version. <i>data_parsing_format</i> Value modulo 256 gives the table format version number.
<i>priority </i>The setting takes one of four values depending on the priority associated with private data (0 being the highest priority and 3 being the lowest priority).
<i>data_parsing_format_flag</i>Is <i>data_parsing_format</i> It is defined according to the value.
<i>extra_identifier_length</i> setting is <i>extra_identifier </i>used to define a field, <i>extra_identifier</i> A field is an identifier or group of identifiers described in the descriptor loop below.
One application of the general MPEG structure given in ANT (Action Notification Table), Table 3 is described.
ANT is based on a general purpose table structure of the type previously described. It can be used to instruct a set-top box or group of set-top boxes to perform a specific action.
Examples of actions to be performed by the receiver/decoder include downloading software, automatic channel scanning, rebooting the receiver/decoder, refreshing program catalogs (such as video-on-demand catalogs), and display of messages to set-top box users (public messaging). The table ID extension field is used by ANT to identify the required execution.
An ANT may be targeted by a target descriptor to a set-top box of a specific type (eg, a specific manufacturer) or to an individual set-top box. This may be placed, for example, in a common descriptor loop of the ANT table. By processing the target descriptor of the common descriptor loop, the set-top box can determine if it was executed by this set-top box. The processing of this target and execution information may be performed by, for example, an application program executed in a set-top box.
Table 4 below describes a scheduled_content_download_descriptor data structure used to transmit specific information related to a schedule of downloading content to a hard disk. This descriptor forms part of the ANT (Action Notification Table) based on the general data structure shown in Table 3.
<tables id="4"><table colsep="0" frame="top" id="4" rowsep="0"><title><b>SCHEDULED_CONTENT_DOWNLOAD_DESCRIPTOR</b></title><tgroup align="left" cols="4" colsep="0" rowsep="0"><colspec align="left" char="0" charoff="0" colname="1" colnum="1" colsep="0" colwidth="5745" rowsep="0" /><colspec align="left" char="0" charoff="0" colname="2" colnum="2" colsep="0" colwidth="1114" rowsep="0" /><colspec align="left" char="0" charoff="0" colname="3" colnum="3" colsep="0" colwidth="1377" rowsep="0" /><colspec align="left" char="0" charoff="0" colname="4" colnum="4" colsep="0" colwidth="2445" rowsep="0" /><tbody valign="top"><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"><b>name</b></entry><entry align="left" morerows="0" nameend="2" namest="2"><b>unit</b></entry><entry align="left" morerows="0" nameend="3" namest="3"><b>size (bit)</b></entry><entry align="left" morerows="0" nameend="4" namest="4"><b>default value</b></entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1">Scheduled_content_download_descriptor(){</entry><entry align="left" morerows="0" nameend="2" namest="2" /><entry align="left" morerows="0" nameend="3" namest="3" /><entry align="left" morerows="0" nameend="4" namest="4" /></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> Descriptor_tag</entry><entry align="left" morerows="0" nameend="2" namest="2">uimsbf</entry><entry align="left" morerows="0" nameend="3" namest="3"> 8</entry><entry align="left" morerows="0" nameend="4" namest="4">Tbd</entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> Descriptor_length</entry><entry align="left" morerows="0" nameend="2" namest="2">uimsbf</entry><entry align="left" morerows="0" nameend="3" namest="3"> 8</entry><entry align="left" morerows="0" nameend="4" namest="4" /></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> Download_flag</entry><entry align="left" morerows="0" nameend="2" namest="2">bslbf</entry><entry align="left" morerows="0" nameend="3" namest="3"> 1</entry><entry align="left" morerows="0" nameend="4" namest="4">0: Auto 1: Manual</entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> Type</entry><entry align="left" morerows="0" nameend="2" namest="2">bslbf</entry><entry align="left" morerows="0" nameend="3" namest="3"> 2</entry><entry align="left" morerows="0" nameend="4" namest="4">0: Scheduled 1: Immediate 2,3: Reserved for future use</entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> Periodicity</entry><entry align="left" morerows="0" nameend="2" namest="2">bslbf</entry><entry align="left" morerows="0" nameend="3" namest="3"> 2</entry><entry align="left" morerows="0" nameend="4" namest="4">0: Not periodic 1: Daily 2: Weekly 3: Monthly</entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> Reserved</entry><entry align="left" morerows="0" nameend="2" namest="2">bslbf</entry><entry align="left" morerows="0" nameend="3" namest="3"> 3</entry><entry align="left" morerows="0" nameend="4" namest="4">111b</entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> Content_id</entry><entry align="left" morerows="0" nameend="2" namest="2">bslbf</entry><entry align="left" morerows="0" nameend="3" namest="3"> 8</entry><entry align="left" morerows="0" nameend="4" namest="4" /></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> Original_network_id</entry><entry align="left" morerows="0" nameend="2" namest="2">uimsbf</entry><entry align="left" morerows="0" nameend="3" namest="3"> 16</entry><entry align="left" morerows="0" nameend="4" namest="4" /></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> Transport_stream_id</entry><entry align="left" morerows="0" nameend="2" namest="2">uimsbf</entry><entry align="left" morerows="0" nameend="3" namest="3"> 16</entry><entry align="left" morerows="0" nameend="4" namest="4" /></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> UTC_date_time_start</entry><entry align="left" morerows="0" nameend="2" namest="2">uimsbf</entry><entry align="left" morerows="0" nameend="3" namest="3"> 40</entry><entry align="left" morerows="0" nameend="4" namest="4" /></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> UTC_date_time_estimated_stop</entry><entry align="left" morerows="0" nameend="2" namest="2">uimsbf</entry><entry align="left" morerows="0" nameend="3" namest="3"> 40</entry><entry align="left" morerows="0" nameend="4" namest="4" /></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1">}</entry><entry align="left" morerows="0" nameend="2" namest="2" /><entry align="left" morerows="0" nameend="3" namest="3" /><entry align="left" morerows="0" nameend="4" namest="4" /></row></tbody></tgroup></table></tables>
<i>download_flag</i> Possible values for is:
<table colsep="0" frame="top" id="5" rowsep="0"><title /><tgroup align="left" cols="2" colsep="0" rowsep="0"><colspec align="left" char="0" charoff="0" colname="1" colnum="1" colsep="0" colwidth="859" rowsep="0" /><colspec align="left" char="0" charoff="0" colname="2" colnum="2" colsep="0" colwidth="9822" rowsep="0" /><tbody valign="top"><row rowsep="0" valign="middle"><entry align="left" nameend="1" namest="1"><b>value</b></entry><entry align="left" nameend="2" namest="2"><b>Explanation</b></entry></row><row rowsep="0" valign="middle"><entry align="left" nameend="1" namest="1">0</entry><entry align="left" nameend="2" namest="2">Download is performed automatically from the main broadcast stream</entry></row><row rowsep="0" valign="middle"><entry align="left" nameend="1" namest="1">1</entry><entry align="left" nameend="2" namest="2">Download is performed via IP network access with user consent</entry></row></tbody></tgroup></table>
<i>type </i>Possible values for is:
<table colsep="0" frame="top" id="6" rowsep="0"><title /><tgroup align="left" cols="2" colsep="0" rowsep="0"><colspec align="left" char="0" charoff="0" colname="1" colnum="1" colsep="0" colwidth="1328" rowsep="0" /><colspec align="left" char="0" charoff="0" colname="2" colnum="2" colsep="0" colwidth="9353" rowsep="0" /><tbody valign="top"><row rowsep="0" valign="middle"><entry align="left" nameend="1" namest="1"><b>value</b></entry><entry align="left" nameend="2" namest="2"><b>Explanation</b></entry></row><row rowsep="0" valign="middle"><entry align="left" nameend="1" namest="1">0</entry><entry align="left" nameend="2" namest="2">Download immediately</entry></row><row rowsep="0" valign="middle"><entry align="left" nameend="1" namest="1">1</entry><entry align="left" nameend="2" namest="2">download on schedule</entry></row><row rowsep="0" valign="middle"><entry align="left" nameend="1" namest="1">2</entry><entry align="left" nameend="2" namest="2">reservation for future use</entry></row><row rowsep="0" valign="middle"><entry align="left" nameend="1" namest="1">3</entry><entry align="left" nameend="2" namest="2">reservation for future use</entry></row></tbody></tgroup></table>
By the schedule download setting described above, automatic content download is programmed periodically (for example, once a day at 3:00 am every month) until the operation is successful.
<i>periodicity </i>The settings define the behavior of the receiver/decoder when the download process starts as scheduled. This periodicity is the basis for the execution of the schedule.<i>UTC_date_time_start</i>Wow <i>UTC_date_time_estimated_stop</i> It can be used between values.
<i>UTC_date_time_start </i>The setting gives a schedule date and time for the downloaded content. It is encoded in universal time code (UTC) in the same format as specified by the DVB standard of TDT and TOT tables.
<i>UTC_date_time_estimated_stop</i> The setting indicates available dates for code downloads based on the estimated download duration.
Table 5 below describes the display_rule_descriptor structure, which is used in combination with the general table shown in Table 3 and includes information related to rules to be applied to a specific program.
<tables id="5"><table colsep="0" frame="top" id="7" rowsep="0"><title><b>DISPLAY_RULE_DESCRIPTOR</b></title><tgroup align="left" cols="2" colsep="0" rowsep="0"><colspec align="left" char="0" charoff="0" colname="1" colnum="1" colsep="0" colwidth="5340" rowsep="0" /><colspec align="left" char="0" charoff="0" colname="2" colnum="2" colsep="0" colwidth="5340" rowsep="0" /><tbody valign="top"><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"><b>name</b></entry><entry align="left" morerows="0" nameend="2" namest="2"><b>default value</b></entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1">Display_rule_descriptor(){</entry><entry align="left" morerows="0" nameend="2" namest="2" /></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> Descriptor_tag</entry><entry align="left" morerows="0" nameend="2" namest="2">TBD</entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> Descriptor_length</entry><entry align="left" morerows="0" nameend="2" namest="2" /></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> reserved</entry><entry align="left" morerows="0" nameend="2" namest="2" /></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> Content_id</entry><entry align="left" morerows="0" nameend="2" namest="2" /></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> Type of content</entry><entry align="left" morerows="0" nameend="2" namest="2" /></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> content classification</entry><entry align="left" morerows="0" nameend="2" namest="2" /></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> number of loop(n)</entry><entry align="left" morerows="0" nameend="2" namest="2" /></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> For(i=0;i<n;i++){</entry><entry align="left" morerows="0" nameend="2" namest="2" /></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> user profile maching criteria</entry><entry align="left" morerows="0" nameend="2" namest="2" /></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> }</entry><entry align="left" morerows="0" nameend="2" namest="2" /></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> number_of_allowed_display</entry><entry align="left" morerows="0" nameend="2" namest="2">0= no limitation</entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> number of loops(n2)</entry><entry align="left" morerows="0" nameend="2" namest="2" /></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> For(i=0;i<n2;i++){</entry><entry align="left" morerows="0" nameend="2" namest="2" /></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> forbidden preceding type</entry><entry align="left" morerows="0" nameend="2" namest="2">0= none</entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> depth of the constraint (number of events)</entry><entry align="left" morerows="0" nameend="2" namest="2">0= none</entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> depth of the constraint (minute)</entry><entry align="left" morerows="0" nameend="2" namest="2">0= none</entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> forbidden following type</entry><entry align="left" morerows="0" nameend="2" namest="2">0= none</entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> depth of the constraint (number of events)</entry><entry align="left" morerows="0" nameend="2" namest="2">0= none</entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> depth of the constraint (minutes)</entry><entry align="left" morerows="0" nameend="2" namest="2">0= none</entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> }</entry><entry align="left" morerows="0" nameend="2" namest="2" /></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> number of loops(n3)</entry><entry align="left" morerows="0" nameend="2" namest="2" /></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> For(i=0;i<n3;i++){</entry><entry align="left" morerows="0" nameend="2" namest="2" /></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> {</entry><entry align="left" morerows="0" nameend="2" namest="2" /></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> Forbidden_preceding_content_id</entry><entry align="left" morerows="0" nameend="2" namest="2">0= none</entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> Forbidden_following_content_id</entry><entry align="left" morerows="0" nameend="2" namest="2">0= none</entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> }</entry><entry align="left" morerows="0" nameend="2" namest="2" /></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> number of loops(n4)</entry><entry align="left" morerows="0" nameend="2" namest="2" /></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> For(i=0;i<n4;i++){</entry><entry align="left" morerows="0" nameend="2" namest="2" /></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> Allowed_display_day_time_slot</entry><entry align="left" morerows="0" nameend="2" namest="2" /></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> }</entry><entry align="left" morerows="0" nameend="2" namest="2" /></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> number of loops(n5)</entry><entry align="left" morerows="0" nameend="2" namest="2" /></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> For(i=0;i<n5;i++){</entry><entry align="left" morerows="0" nameend="2" namest="2" /></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> Forbidden_display_day_ tiem_slot</entry><entry align="left" morerows="0" nameend="2" namest="2" /></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"> }</entry><entry align="left" morerows="0" nameend="2" namest="2" /></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1" /><entry align="left" morerows="0" nameend="2" namest="2" /></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1" /><entry align="left" morerows="0" nameend="2" namest="2" /></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1" /><entry align="left" morerows="0" nameend="2" namest="2" /></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1" /><entry align="left" morerows="0" nameend="2" namest="2" /></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1" /><entry align="left" morerows="0" nameend="2" namest="2" /></row></tbody></tgroup></table></tables>
In the above example, the flexibility of the rule can be known in different specified parameters (forbidden preceding content ID, allowed day timeslot, etc.).
The scheduled_content_download_descriptor (Table 4) and display_rule_descriptor (Table 5) are related to one type of content uniquely identified by the content_id value.
The VCMT table and corresponding descriptors described above are merely examples. Other descriptors and means of transporting rules such as application-specific messages and tables are of course possible.
As a variant of the preferred embodiment, the Virtual Channel Information Message (VCIM) and/or other aspects of the personalized advertising and virtual channel system are replaced with the MPEG tables described above. The necessary modifications to the above table will not be described in more detail herein as they are not difficult for a person skilled in the art. Also, the use of the analysis described above eliminates the need for many changes to the relevant application to work with the new table.
The format of the profile data is described in more detail.
To aid in the manipulation of user profiles, a certain number of distinct profile categories are defined, each with a unique number, a corresponding name/tag, and a set of possible values. In some cases the possible values are inherently boolean (yes/no), in other cases the possible values correspond to a limited number of ranges (such as the x_preference category). However, in each case the profile category is (C's<i>enum </i>It can be expressed as an unassigned integer (similar to a type).
A typical set of categories is shown in Table 6.
<tables id="6"><table colsep="0" frame="top" id="8" rowsep="0"><title><b>Profile Category</b></title><tgroup align="left" cols="3" colsep="0" rowsep="0"><colspec align="left" char="0" charoff="0" colname="1" colnum="1" colsep="0" colwidth="3560" rowsep="0" /><colspec align="left" char="0" charoff="0" colname="2" colnum="2" colsep="0" colwidth="3560" rowsep="0" /><colspec align="left" char="0" charoff="0" colname="3" colnum="3" colsep="0" colwidth="3560" rowsep="0" /><tbody valign="top"><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"><b>number</b></entry><entry align="left" morerows="0" nameend="2" namest="2"><b>name</b></entry><entry align="left" morerows="0" nameend="3" namest="3"><b>possible values</b></entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1">1</entry><entry align="left" morerows="0" nameend="2" namest="2">House_type</entry><entry align="left" morerows="0" nameend="3" namest="3">{house, apartment t}</entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1">2</entry><entry align="left" morerows="0" nameend="2" namest="2">Age</entry><entry align="left" morerows="0" nameend="3" namest="3">{18 or less, 18 to 25,26 to 36, 37 to 49,50 to 59,60 or more}</entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1">3</entry><entry align="left" morerows="0" nameend="2" namest="2">Have_pets</entry><entry align="left" morerows="0" nameend="3" namest="3">{Yes No}</entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1">4</entry><entry align="left" morerows="0" nameend="2" namest="2">Region_type</entry><entry align="left" morerows="0" nameend="3" namest="3">{city, countryside}</entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1">5</entry><entry align="left" morerows="0" nameend="2" namest="2">Own_car</entry><entry align="left" morerows="0" nameend="3" namest="3">{Yes No}</entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1">6</entry><entry align="left" morerows="0" nameend="2" namest="2">Car_type</entry><entry align="left" morerows="0" nameend="3" namest="3">{owned, hatchback, sports car, off-road vehicle, van}</entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1">7</entry><entry align="left" morerows="0" nameend="2" namest="2">marital_status</entry><entry align="left" morerows="0" nameend="3" namest="3">{married, single}</entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1">8</entry><entry align="left" morerows="0" nameend="2" namest="2">Children</entry><entry align="left" morerows="0" nameend="3" namest="3">{Yes No}</entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1">9</entry><entry align="left" morerows="0" nameend="2" namest="2">Sex</entry><entry align="left" morerows="0" nameend="3" namest="3">{Male Female}</entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1">10</entry><entry align="left" morerows="0" nameend="2" namest="2">Country</entry><entry align="left" morerows="0" nameend="3" namest="3">{France, England, Germany...}</entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1">11</entry><entry align="left" morerows="0" nameend="2" namest="2">Region/County[within country]</entry><entry align="left" morerows="0" nameend="3" namest="3">(0,1,2,3,4,5,6,7...}</entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1">12</entry><entry align="left" morerows="0" nameend="2" namest="2">Region_type2</entry><entry align="left" morerows="0" nameend="3" namest="3">{inland, sea}</entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1">101</entry><entry align="left" morerows="0" nameend="2" namest="2">Sports_preference</entry><entry align="left" morerows="0" nameend="3" namest="3">{0,1,2,3,4}</entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1">102</entry><entry align="left" morerows="0" nameend="2" namest="2">Travel_preference</entry><entry align="left" morerows="0" nameend="3" namest="3">{0,1,2,3,4}</entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1">103</entry><entry align="left" morerows="0" nameend="2" namest="2">News_preference</entry><entry align="left" morerows="0" nameend="3" namest="3">{0,1,2,3,4}</entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1">104</entry><entry align="left" morerows="0" nameend="2" namest="2">Movies_preference</entry><entry align="left" morerows="0" nameend="3" namest="3">{0,1,2,3,4}</entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1">105</entry><entry align="left" morerows="0" nameend="2" namest="2">Music_preference</entry><entry align="left" morerows="0" nameend="3" namest="3">{0,1,2,3,4}</entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1">106</entry><entry align="left" morerows="0" nameend="2" namest="2">Food_preference</entry><entry align="left" morerows="0" nameend="3" namest="3">{0,1,2,3,4}</entry></row></tbody></tgroup></table></tables>
The profile manager maintains a table for each of the selected profile categories. Categories may be added or deleted by special messages from broadcast centers and/or conventional software downloads. Categories can be individually browsed and set by the user, and for various xxx_preference categories, for example, a slider set of 1 to 5, or an actual value of 0 to 4, such as "STRONG DISLIKE" to "STRONG LIKE" corresponding to ) can be adjusted.
As can be seen, categories - pets, children, etc. - that can only be transmitted by the user (either directly using the Profile Manager or indirectly by messages sent from the broadcast center in response to information supplied by the user as a broadcaster) and categories - such as the xxx_preference category - which can be set by observing the user's viewing habits. Other categories, such as country and region/state categories, are based on identifiers (transmitted IDs, cable network subnets, IP address ranges, router IDs, etc.) can be set by one entity.
A more detailed example of the target data structure is shown in Table 7.
<tables id="7"><table colsep="0" frame="top" id="9" rowsep="0"><title><b>Example of target data</b></title><tgroup align="left" cols="4" colsep="0" rowsep="0"><colspec align="left" char="0" charoff="0" colname="1" colnum="1" colsep="0" colwidth="3158" rowsep="0" /><colspec align="left" char="0" charoff="0" colname="2" colnum="2" colsep="0" colwidth="3008" rowsep="0" /><colspec align="left" char="0" charoff="0" colname="3" colnum="3" colsep="0" colwidth="2370" rowsep="0" /><colspec align="left" char="0" charoff="0" colname="4" colnum="4" colsep="0" colwidth="2145" rowsep="0" /><tbody valign="top"><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"><b>Profile Category</b></entry><entry align="left" morerows="0" nameend="2" namest="2"><b>value</b></entry><entry align="left" morerows="0" nameend="3" namest="3"><b>mandate</b></entry><entry align="left" morerows="0" nameend="4" namest="4"><b>addition</b></entry></row><row rowsep="0" valign="middle"><entry align="left" colname="1" morerows="0" nameend="4" namest="1"><i>SPORTS HOLIDAYS FOR CHILDREN</i></entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1">101 (Sports_preference)</entry><entry align="left" morerows="0" nameend="2" namest="2">4</entry><entry align="left" morerows="0" nameend="3" namest="3">no</entry><entry align="left" morerows="0" nameend="4" namest="4">1</entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1">8 (Children)</entry><entry align="left" morerows="0" nameend="2" namest="2">{Yes}</entry><entry align="left" morerows="0" nameend="3" namest="3">Yes</entry><entry align="left" morerows="0" nameend="4" namest="4">2</entry></row><row rowsep="0" valign="middle"><entry align="left" colname="1" morerows="0" nameend="4" namest="1"><i>BEAUTY TREATMENTS IN CHAIN OF SALONS</i></entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1">9 (Sex)</entry><entry align="left" morerows="0" nameend="2" namest="2">{female}</entry><entry align="left" morerows="0" nameend="3" namest="3">Yes</entry><entry align="left" morerows="0" nameend="4" namest="4">1</entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1">4(Region_type)</entry><entry align="left" morerows="0" nameend="2" namest="2">{city}</entry><entry align="left" morerows="0" nameend="3" namest="3">no</entry><entry align="left" morerows="0" nameend="4" namest="4">2</entry></row><row rowsep="0" valign="middle"><entry align="left" colname="1" morerows="0" nameend="4" namest="1"><i>BEACH HOLIDAY IN REGION 3 (Marseilles)</i></entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1">4(Region_type)</entry><entry align="left" morerows="0" nameend="2" namest="2">{3}[Marseilles]</entry><entry align="left" morerows="0" nameend="3" namest="3">Yes</entry><entry align="left" morerows="0" nameend="4" namest="4">-1</entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1">102 (Travel_preference)</entry><entry align="left" morerows="0" nameend="2" namest="2">4</entry><entry align="left" morerows="0" nameend="3" namest="3">no</entry><entry align="left" morerows="0" nameend="4" namest="4">1</entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1">12(Region_type2)</entry><entry align="left" morerows="0" nameend="2" namest="2">{inland}</entry><entry align="left" morerows="0" nameend="3" namest="3">Yes</entry><entry align="left" morerows="0" nameend="4" namest="4">3</entry></row><row rowsep="0" valign="middle"><entry align="left" colname="1" morerows="0" nameend="4" namest="1"><i>SUBSCRIPTION TO ADULT CHANNEL</i></entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1">2(Age)</entry><entry align="left" morerows="0" nameend="2" namest="2">{under 18 years old}</entry><entry align="left" morerows="0" nameend="3" namest="3">Yes</entry><entry align="left" morerows="0" nameend="4" namest="4">-1</entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1">9 (Sex)</entry><entry align="left" morerows="0" nameend="2" namest="2">{male}</entry><entry align="left" morerows="0" nameend="3" namest="3">no</entry><entry align="left" morerows="0" nameend="4" namest="4">1</entry></row></tbody></tgroup></table></tables>
It can be seen that values, delegations and additional flags have been provided to allow for more flexible customization. An addition of -1 (preferably in combination with delegation criteria) indicates that the given value should be avoided rather than matched.
An example of a profile (sent in VCIM) is shown in Table 8.
<tables id="8"><table colsep="0" frame="top" id="10" rowsep="0"><title><b>Example of profile information (in VCIM)</b></title><tgroup align="left" cols="3" colsep="0" rowsep="0"><colspec align="left" char="0" charoff="0" colname="1" colnum="1" colsep="0" colwidth="3560" rowsep="0" /><colspec align="left" char="0" charoff="0" colname="2" colnum="2" colsep="0" colwidth="3560" rowsep="0" /><colspec align="left" char="0" charoff="0" colname="3" colnum="3" colsep="0" colwidth="3560" rowsep="0" /><tbody valign="top"><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1"><b>Profile Category</b></entry><entry align="left" morerows="0" nameend="2" namest="2"><b>addition</b></entry><entry align="left" morerows="0" nameend="3" namest="3"><b>condition</b></entry></row><row rowsep="0" valign="middle"><entry align="left" colname="1" morerows="0" nameend="3" namest="1"><i>LATE NIGHT TIME SLOT</i></entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1">106 (Food_preference)</entry><entry align="left" morerows="0" nameend="2" namest="2">+3</entry><entry align="left" morerows="0" nameend="3" namest="3">-</entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1">2(Age)</entry><entry align="left" morerows="0" nameend="2" namest="2">-</entry><entry align="left" morerows="0" nameend="3" namest="3">{under 18} not</entry></row><row rowsep="0" valign="middle"><entry align="left" colname="1" morerows="0" nameend="3" namest="1"><i>EARLY AFTERNOON</i></entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1">2(Age)</entry><entry align="left" morerows="0" nameend="2" namest="2">-2</entry><entry align="left" morerows="0" nameend="3" namest="3">-</entry></row><row rowsep="0" valign="middle"><entry align="left" colname="1" morerows="0" nameend="3" namest="1"><i>MORNING</i></entry></row><row rowsep="0" valign="middle"><entry align="left" morerows="0" nameend="1" namest="1">103 (News_preference)</entry><entry align="left" morerows="0" nameend="2" namest="2">+2</entry><entry align="left" morerows="0" nameend="3" namest="3">-</entry></row></tbody></tgroup></table></tables>
<i>Profile Category</i> The value identifies the category for modification, <i>addition</i> The value indicates the adjustment to be applied to the user profile (typically xxx_preference). <i>condition</i> The field is very flexible, and in a preferred embodiment is encoded as a string containing the expression to be evaluated.
A system for evaluating the suitability of an advertisement based on the data structure is shown in FIG. 15 . Initially, the current_advertisement loop counter variable is reset in step 9600 . At step 9602, a check is made that the current advertisement (determined by current_advertisement) meets the required criteria, including checking that all delegated-to-attributes are met. Other criteria may include ensuring that advertisements have not been repeated within a predetermined amount of time.
At step 9604 (assuming the advertisement meets the criteria), a score is calculated for the advertisement and stored in a temporary array. At 9606 , the current_advertisement variable is incremented and tested at 9608 . At the end of the loop of step 9610, the array of scores is tested and the highest-scoring advertisement (which meets the necessary criteria) is selected.
The step of calculating a score for a particular advertisement is illustrated in more detail in FIG. 16 . In step 9700, the total_weight, score and cur_attribute variables are reset. First, in step 9702, the addition of the current attribute is tested. If negative - that is, if a forbidden value is specified - the attribute is ignored, and the loop terminates (by jumping to step 9716). In step 9704, the total addition is increased to an appropriate value. As can be seen in the following steps, the algorithm is designed so that the score is between 0 and 1.
At step 9706, various median values are computed (in this case for ease of illustration in the next step), the cur_category variable is set to the category (such as 101, Sports_preference) of the current attribute and cur_usr_profile is set to the category of the current user profile. is set to the actual value of In step 9708, the types of categories are tested so that categories with numerical ranges such as Sports_preference, Music_preference, etc. take into account the variability in which the profile values agree or disagree with the target values (step 9714). ) will be received. A simple category is subjected to a simple test in step 9710 so that if the values agree (step 9712), the score is incremented by appropriate additions, otherwise unchanged. In steps 9716 and 9718, the loop counter (cur_ attribute) is incremented and tested. Finally, a total added score is calculated in step 9720 .
The system does not take into account the additional profile information provided to the VCIM, but modifications (steps 9712 and 9714) can be performed along the same processor line to take this into account. Profile data matching systems with different complexity may be configured.
The exact description of the implementation of the various functions described above, and its distribution between hardware and software, will not be described in greater detail as the implementer may choose. However, dedicated integrated circuits capable of performing the necessary operations for the receiver/decoder are commercially available or can be easily designed, used as a base for a hardware accelerator, or more preferably dedicated to performing various operations. It can be modified to produce hardware accelerators, reducing the processing power required to run the software. However, the required operations may be performed in software if sufficient processing power is available.
Elements such as modules have been described in terms of the features and functions provided by each element, along with optional and desirable features. With the information and specification provided, the implementation of these features and details is left to the practitioner. By way of example, a reference module may be implemented in software, preferably software written in the C programming language and preferably compiled for execution on a processor used to run the application, although some elements may be executed on a separate processor. and some or all elements may be implemented with dedicated hardware.
The above modules and components are merely examples, and the present invention may be implemented in various ways, and in particular, some elements may be combined with other elements that perform similar functions, or some elements may be omitted for simplified implementation. . Hardware and software implementations of each function can be freely mixed between components and within a single element.
It will be readily understood that functions performed by hardware, computer software, etc. are performed using electrical signals. The software implementation may be stored in ROM or patched to FLASH.
It will be understood that the present invention has been described by way of example only and that changes in detail may be made within the scope of the present invention.
Each feature, (as appropriate) claims and drawings described in the specification may be provided independently or in any suitable combination.
Reference signs in the claims are by way of example only and should not limit the claims.
19 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14 Sheet 15 Sheet 16 Sheet 17 Sheet 18 Sheet 19
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| WO2000040021A1 | Cites | World Intellectual Property Organization (WIPO) | Search report |
104 members in 15 offices
Priority claims9
| Document | Office | Kind | Date |
|---|---|---|---|
| 014015127 | European Patent Office (EPO) | – | |
| 01401512 | European Patent Office (EPO) | A | |
| 013063151 | European Patent Office (EPO) | – | |
| 01306315 | European Patent Office (EPO) | A | |
| 014022024 | European Patent Office (EPO) | – | |
| 01402202 | European Patent Office (EPO) | A | |
| 013092184 | European Patent Office (EPO) | – | |
| 01309218 | European Patent Office (EPO) | A | |
| 0203232 | International Bureau of the World Intellectual Property Organization (WIPO) | W |
Members104
| Document | Office | Kind | |
|---|---|---|---|
| EP1182874A1 | European Patent Office (EPO) | A1 | |
| CA2420795A1 | Canada | A1 | |
| WO0217635A2 | World Intellectual Property Organization (WIPO) | A2 | |
| AU9020701A | Australia | A | |
| GB0209118D0 | United Kingdom | D0 | |
| GB0209119D0 | United Kingdom | D0 | |
| GB0209120D0 | United Kingdom | D0 | |
| GB0213748D0 | United Kingdom | D0 | |
| GB0213752D0 | United Kingdom | D0 | |
| GB0213755D0 | United Kingdom | D0 | |
| GB0216108D0 | United Kingdom | D0 | |
| EP1267572A2 | European Patent Office (EPO) | A2 | |
| EP1267579A2 | European Patent Office (EPO) | A2 | |
| CA2450134A1 | Canada | A1 | |
| CA2450417A1 | Canada | A1 | |
| WO02102081A2 | World Intellectual Property Organization (WIPO) | A2 | |
| WO02102082A2 | World Intellectual Property Organization (WIPO) | A2 | |
| AU2002328169A1 | Australia | A1 | |
| AU2002348896A1 | Australia | A1 | |
| EP1286262A1 | European Patent Office (EPO) | A1 | |
| EP1286349A1 | European Patent Office (EPO) | A1 | |
| EP1286351A2 | European Patent Office (EPO) | A2 | |
| EP1286537A2 | European Patent Office (EPO) | A2 | |
| EP1286549A2 | European Patent Office (EPO) | A2 | |
| WO03019931A2 | World Intellectual Property Organization (WIPO) | A2 | |
| WO02102082A3 | World Intellectual Property Organization (WIPO) | A3 | |
| EP1267579A3 | European Patent Office (EPO) | A3 | |
| EP1286549A3 | European Patent Office (EPO) | A3 | |
| EP1304871A2 | European Patent Office (EPO) | A2 | |
| US2003078930A1 | United States of America | A1 | |
| WO03034742A1 | World Intellectual Property Organization (WIPO) | A1 | |
| WO0217635A3 | World Intellectual Property Organization (WIPO) | A3 | |
| WO03019931A3 | World Intellectual Property Organization (WIPO) | A3 | |
| EP1304871A3 | European Patent Office (EPO) | A3 | |
| EP1332621A2 | European Patent Office (EPO) | A2 | |
| JP2003235012A | Japan | A | |
| JP2003250097A | Japan | A | |
| WO02102081A3 | World Intellectual Property Organization (WIPO) | A3 | |
| US2003182579A1 | United States of America | A1 | |
| US2003206553A1 | United States of America | A1 | |
| KR20040007697A | Republic of Korea | A | |
| KR20040019014A | Republic of Korea | A | |
| EP1396151A2 | European Patent Office (EPO) | A2 | |
| JP2004507826A | Japan | A | |
| EP1400125A2 | European Patent Office (EPO) | A2 | |
| KR20040027956A | Republic of Korea | A | |
| EP1421781A2 | European Patent Office (EPO) | A2 | |
| MXPA04001587A | Mexico | A | |
| IL160426A0 | Israel | A0 | |
| HUP0400162A2 | Hungary | A2 | |
| CN1526237A | China | A | |
| CN1541481A | China | A | |
| JP2004537198A | Japan | A | |
| US2004268387A1 | United States of America | A1 | |
| JP2005501484A | Japan | A | |
| CN1572106A | China | A | |
| CN1605205A | China | A | |
| US2005073579A1 | United States of America | A1 | |
| RU2003136280A | Russian Federation | A | |
| RU2003136754A | Russian Federation | A | |
| JP2005516430A | Japan | A | |
| US2005144646A1 | United States of America | A1 | |
| CN1245836C | China | C | |
| EP1286351A3 | European Patent Office (EPO) | A3 | |
| EP1667452A2 | European Patent Office (EPO) | A2 | |
| AU2002334278B2 | Australia | B2 | |
| US7342966B2 | United States of America | B2 | |
| RU2321965C2 | Russian Federation | C2 | |
| RU2329614C2 | Russian Federation | C2 | |
| CN100431352C | China | C | |
| MY136969A | Malaysia | A | |
| EP1667452A3 | European Patent Office (EPO) | A3 | |
| EP2028862A2 | European Patent Office (EPO) | A2 | |
| JP4257084B2 | Japan | B2 | |
| JP2009089421A | Japan | A | |
| CN100531295C | China | C | |
| US7593620B2 | United States of America | B2 | |
| JP4370159B2 | Japan | B2 | |
| KR100959147B1 | Republic of Korea | B1 | |
| KR100960573B1This record | Republic of Korea | B1 | |
| JP4491232B2 | Japan | B2 | |
| US7848521B2 | United States of America | B2 | |
| JP4650924B2 | Japan | B2 | |
| EP1286537A3 | European Patent Office (EPO) | A3 | |
| MY143609A | Malaysia | A | |
| US7984478B2 | United States of America | B2 | |
| CN102158750A | China | A | |
| CA2450417C | Canada | C | |
| EP1667452B1 | European Patent Office (EPO) | B1 | |
| AT536043T | Austria | T | |
| ATE536043T1 | Austria | T1 | |
| MY145515A | Malaysia | A | |
| JP2012085321A | Japan | A | |
| US2012124621A1 | United States of America | A1 | |
| EP1286351B1 | European Patent Office (EPO) | B1 | |
| EP2028862A3 | European Patent Office (EPO) | A3 | |
| JP5187900B2 | Japan | B2 | |
| CA2420795C | Canada | C | |
| CA2450134C | Canada | C | |
| US8607266B2 | United States of America | B2 |
10 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Annual fee paymentFPAY | FPAY | |
| Annual fee paymentFPAY | FPAY | |
| Annual fee paymentFPAY | FPAY | |
| Annual fee paymentFPAY | FPAY | |
| Written decision to grantGRNT | GRNT | |
| Trial decisionTRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20081120J301 | J301 | |
| Request for trial against refusal decisionJ201 | J201 | |
| Decision to refuse applicationE601 | E601 | |
| Notification of reason for refusalE902 | E902 | |
| Request for examinationA201 | A201 |
Numbers
- Publication
- 10-0960573
- Application
- 1020037016229
Titles2
- Korean
- 디지털 텔레비젼 시스템의 리시버/디코더 및 디지털 텔레비젼 시스템의 리시버/디코더내의 프로그램들을 관리하는 방법
- English
- A receiver/decoder of a digital television system and a method of managing programs in a receiver/decoder of a digital television system
Classification
- CPC, 34
- H04N5/76
- H04N21/435
- G11B27/005
- G11B27/105
- G11B27/329
- G11B2220/20
- H04N5/445
- H04N5/781
- H04N5/783
- H04N7/165
- H04N7/1675
- H04N7/52
- H04N9/8042
- H04N9/8715
- H04N9/89
- H04N21/235
- H04N21/4263
- H04N21/4331
- H04N21/4335
- H04N21/4431
- H04N21/4437
- H04N21/4532
- H04N21/454
- H04N21/458
- H04N21/478
- H04N21/6543
- H04N21/812
- H04N21/84
- H04N21/8455
- H04H20/106
- H04N19/61
- H04N21/426
- H04N5/44
- G11B27/10
- IPC, 23
- H04N7 173
- G06F17 00
- G11B27 00
- G11B27 10
- G11B27 32
- H04B1 16
- H04H20 00
- H04H20 10
- H04N5 00
- H04N5 44
- H04N5 445
- H04N5 76
- H04N5 765
- H04N5 781
- H04N5 783
- H04N7 16
- H04N7 167
- H04N7 24
- H04N7 50
- H04N7 52
- H04N9 804
- H04N9 87
- H04N9 89