The present invention relates to a data switch and the methods of its use to control the distribution of one or more data streams to a number of target devices. The data switch can be used, for example, as part of a video delivery system to facilitate the delivery of video streams to a number of different users. The invention also relates to a data switch which can allow the incorporation of personalised content into data streams for delivery to different users.
Conventionally, television programmes have been broadcast to users via RF signals transmitted from terrestrial base stations, via signals transmitted from overhead satellites and via signals transmitted over cable to user premises. Each of these systems offers the user the ability to watch a number of different channels which can be selected by the user. These existing systems, however, require all of the channels to be transmitted to the user's television receiver, which then tunes into and displays one of the channels in accordance with the user's selection. Whilst this conventional technique is cost effective, it requires the use of a significant amount of bandwidth and does not allow for the transmission of personalised content to each user since each user receives the same channels.
In some of these conventional systems the user must subscribe to the service provider in order to be able to view some of the channels. However, since each user's television receiver receives all of the channels, users can still gain access to restricted channels using appropriate hacking equipment which can bypass the service provider's security.
Television broadcasters have also provided television channels over data networks to computers provided in users' homes. To be able to work effectively, these systems use a different protocol to transmit the audio and video data to that conventionally used to send, for example, e-mail over the Internet. In particular, these systems use a streaming protocol (such as UDP (User Datagram Protocol)) which allows some packets to be lost in the transmission process without the transmission stopping and restarting. There are currently two types of such data network video systems—one in which users directly receive a dedicated video stream from the video server and one in which a common video stream is transmitted from the video server using multi-cast techniques to duplicate the video stream for each of the users which is a party to the multi-cast transmission. The problem with the first approach is that it requires significant bandwidth between the video server and each user and the problem with the second approach is that it does not provide a truly one-to-one relationship between the user and the video server and hence limited personalisation of the video stream for each user can be achieved.
According to one aspect, the present invention provides a data switch which can be used, for example in the Internet, to control the delivery of a number of streams of data to a number of different users. The data streams may be representative of, for example, a video and/or an audio signal and may include personalised content such as an advert or the like. In the preferred embodiment, the data switch receives a number of incoming broadcast streams, efficiently selects the streams of interest and distributes them to the appropriate users. The selection of the streams of interest and their distribution is efficiently performed by the data switch in response to external commands provided by, for example, the users.
According to another aspect, the present invention provides a data switch for controlling the distribution of a plurality of data streams to one or more target devices, the data switch comprising: a buffer for receiving and storing data for each of a plurality of data streams; and a distributor for cyclically processing the data in the buffer to distribute, during each processing cycle, portions of the data streams to one or more target devices in accordance with stored distribution data which identifies which one or more data streams should be distributed to the or each target device.
According to another aspect, the present invention provides a data switch for controlling the distribution of a plurality of data streams to one or more target devices, the data switch comprising an input interface unit for receiving the plurality of data streams; buffer means for receiving and storing data from each of the received data streams from the input interface unit; a distributor for processing the data in the buffer to distribute the data streams to the one or more target devices in accordance with stored distribution data identifying which one or more data streams should be distributed to the or each of said target devices; and wherein the input interface unit is operable to group the data for each data stream into fixed sized blocks and to store the blocks for each data stream at predetermined memory locations within said buffer means and wherein the distributor is operable to read said blocks from the predetermined memory locations within the buffer during the distribution of the data streams to said one or more target devices.
According to another aspect, the present invention provides a data switch for controlling the distribution of a plurality of data streams to one or more target devices, the data switch comprising: a buffer for receiving and storing data from each of the received data streams; means for storing a current distribution list identifying which one or more data streams should be distributed to the or each target device at a current time point; means for storing a next distribution list identifying which one or more data streams should be distributed to the or each of said target devices at a next time point; a distributor responsive to the current stored distribution list for processing the data in the buffer to distribute the data streams to the one or more users in accordance with the current stored distribution list; and means for intermittently setting said next distribution list as said current distribution list to cause said distributor to change the way in which said data streams are distributed to said one or more target devices.
As mentioned above, the data switches described above can be used to control the distribution of data streams to one or more target devices. Since each target device receives a dedicated stream from the data switch, it is possible to personalise the data streams at the data switch. This may be done, for example, by adding personalised data into each stream, which personalised data may be stored locally to the data switch. The personalised data may be, for example, advert data which can be updated from time to time from a central store. Alternatively, one or more of the data streams transmitted to the users may be temporarily stored in a hard disc or the like providing the user with the ability to pause, fast-forward and rewind through the stored data stream.
Other features and aspects of the invention will become clear from the detailed description of the exemplary embodiments given below with reference to the accompanying drawings in which:
The central offices 5 are arranged to receive all or a proportion of the video streams transmitted from the data sources 3 as commanded by the command and control unit 1 which determines the streams to be transmitted to each central office based on data stored in a channel distribution database 10 and a rights and authorisations database 12. The channel distribution database 10 stores data defining which video streams are to be distributed to which central offices 5 and the rights and authorisations database stores data defining any restrictions on, for example, the times at which video streams may be distributed (for example, video streams having an adult theme may be prohibited from being. distributed at certain times of the day). Upon receiving the transmitted streams, the central offices 5 forward the video streams to the user devices 11 connected therewith in accordance with user selections. In particular, the central offices 5 receive user requests from the connected user devices 11 indicating the desired video streams for those users but only sends the requested video data streams to those users if they are allowed access to them. In this embodiment, this user access information is stored locally within a data switch (not shown) at each central office 5. The data switch in each central office 5 only stores the user access information for the users to which it delivers video data. The user access information for all of the users served by all of the central offices 5 is stored within a central user database 13 maintained by the command and control unit 1. From time to time the locally stored user access information is updated by the command and control unit 1 using the data within the central user database 13.
In this embodiment, the central offices 5 also transmit data back to the command and control unit 1 via the communications channel 7 detailing which video stream each user requests, the time of the requests and the time that each user stops receiving a video stream. This information is then used by the command and control unit 1 for billing purposes and for updating profiles of each user which are stored in the user database 13. For example, the command and control unit 1 can statistically analyse the viewing habits of all of the users to detect patterns in the users' behaviour and to determine the types of video streams each user likes to watch and those that each user dislikes. This information can then be used, for example, to provide each user with a tailor-made menu of video streams that the user may like to watch. The information received from each of the central offices 5 can also be used for collecting ratings information and for planning the content of the data streams for future delivery. For example, the analysis may identify that in one geographical region none of the users watch a particular type of video stream. The command and control unit 1 can therefore use this information to stop distributing that type of video stream to the central office 5 for that geographical region.
One of the novel features of the present invention is the way in which the central offices 5 receive the incoming video streams and distributes the appropriate video stream to each user. The description of the way in which the central offices 5 operate will now be described in more detail for an embodiment in which the video streams are transmitted as MPEG data over UDP over IP (Internet Protocol) over ATM (Asynchronous Transfer Mode) to the central offices 5 and then transmitted from the central offices 5 to the users as MPEG data over UDP over IP over Asymmetric Digital Subscriber Lines (ADSLs). In other words, the MPEG data packets transmitted to the central offices 5 include UDP header data, IP header data and ATM header data and the data transmitted to the user devices 11 is transmitted together with a UDP header, an IP header and transmitted in a form suitable for transmission over an ADSL.
In this embodiment, the central offices 5 also receive data from the user devices 11 connected thereto. The ATM switch 21 is arranged so that user requests relating to the delivery of a particular video stream are directed to the data switch 29 whereas all other user generated data is delivered to the IP router 25 which forwards them as required. In this embodiment, this is achieved by providing a dedicated virtual circuit between each user device 11 and the data switch 29. This virtual circuit may be provided, for example either by providing a dedicated time slot within the communications link between the user device 11 and the ATM switch 21 or by providing a dedicated frequency channel. In either case, the user requests relating to the delivery of the video will be delivered directly to the data switch 29 without the ATM switch 21 having to switch the requests via the IP router 25.
In this embodiment, in addition to the video data packets and the user request data packets which are received by the data switch 29, management data is also transmitted between the control processor 33 and the command and control unit 1 via the IP router 25. This management data is used in order to maintain and update the user profiles stored in the user database 43 and to identify to the control processor 33 the different video streams which it will receive and which it can therefore distribute to the users. The control processor 33 also logs each time that a user starts watching a video stream, changes video stream and stops watching a video stream. As mentioned above, this information is passed back to the command and control unit 1 for user billing, user profiling etc.
As will be described in more detail below, the data switch therefore operates: (i) to receive the video data packets and the user request data packets; (ii) to process the video data packets to distribute them to the. appropriate users in accordance with the received user requests; and (iii) to communicate with the command and control unit 1 to maintain up-to-date user profiles for the users it serves and to provide the viewing habits of those users to the command and control unit 1.
In this embodiment, each slot of the input interface buffer 57 can hold typically tens or hundreds of milliseconds of video data depending on the data rate of the video streams, the network latency etc. The data in each slot of the input interface buffer 57 is then read out in blocks of a predetermined (fixed) block size (which may or may not correspond to the block size of the video data within each video data packet) by a data blocker and tagging unit 59. In this embodiment, the size of the slots in the buffer are big enough to hold several of these blocks of data so that the buffer 57 can handle the reception of bursts of video data for each stream. Each block read out by the data blocker and tagging unit 59 is tagged with a number (N) identifying the number of users currently watching the video stream to which the data belongs. This information is obtained from the control processor 33 which keeps track of which users are watching each video stream from the received user requests. This tagging information is provided from the control processor 33 to the input network controller 53 which then passes it to the data blocker and tagging unit 59 via the buffer 57. Once a data block has been tagged in this way, it is stored in a respective slot of the buffer 35 shown in
Returning to
In order to distribute a data block to a user, the distributor 37 passes the data block 75 to the output network interface unit 39 together with the user number (e.g. U4) for the user that is to receive the data block 75.
The look-up table used by the output network controller 85 is provided to the output network interface unit 39 on the control line 89 from the control processor 33. This look-up table is generated and maintained by the control processor 33 from user profile data which is stored in the user database 43. The control processor 33 also uses the data stored in the user database 43 in order to control access to the video streams by the users. In particular, each time a request for a video channel is received from a user, the control processor 33 checks the user profile for that user which is stored in the user database 43 to ensure that the user is entitled to receive the requested video stream. If the user is entitled to receive the stream, then the control processor 33 updates the mapping table 41, otherwise it does not and it sends an appropriate error message back to the user. The control processor 33 is also operable to control the initialisation of the buffer 35 as and when required either via the control line 44 or indirectly via the input interface unit 31.
As will be apparent from the above description, one of the important processing elements of the data switch 29 is the distributor 37. It must cycle through the slots 71 in the buffer 35 extracting data for onward transmission to the users. In order that the distributor 37 can operate as efficiently as possible, it is designed, in this embodiment, to operate independently without interruption by the input network interface unit 31 or the control processor 33. In order that the distributor 37 can operate without interfering with the input network interface unit 31, they are arranged so that they will not try to read data from/write data to the same buffer address at the same time and in order to ensure that the distributor 37 is not interrupted by the operation of the control processor 33, two mapping tables are used by the data switch 29—a current mapping table and a next mapping table. The distributor 37 uses the current mapping table whilst it cycles through the slots 71 in the buffer 35 and whilst this is happening, the control processor 33 updates the next mapping table in response to received user requests. Once the distributor 37 completes one cycle of the buffer 35, it copies the next mapping table as the current mapping table and then the distributor 37 begins the next processing cycle of the buffer 35 using the thus updated current mapping table.
A more detailed description of the way in which the distributor 37 operates in this embodiment will now be given with reference to
As shown, in step S1, the distributor control unit 91 initialises a loop pointer (i) used to loop through each of the slots 71 (and hence each of the video streams) in the buffer 35. In this embodiment, i is initially set to the value of 1 so that the initial video stream to be processed is stream S1 from slot 71-1. The processing then proceeds to step S2 where the distributor determines whether or not a block is available for the current stream Si. The distributor does this by checking the current buffer address read pointer (j) for the current slot 71-i (which points to the storage location 73 within the current slot 71-i from which the distributor 37 is to read data) with the current buffer address write pointer used to point to the storage location 73 in the current slot 73-i into which the input network interface unit 31 is writing data. The buffer address selector 95 maintains the value of the current read pointer for the current slot 71-i and the current write pointer for the current slot 71-i is stored in that slot of the buffer 35. If the distributor control unit 91 determines that the read pointer and the write pointer are pointing to the same storage location 73 then there is no data block to be processed for the current stream Si and the processing proceeds to step S9 (which will be described below).
If on the other hand the distributor control unit 91 determines that the read pointer and the write pointer are pointing to different storage locations 73, then the processing proceeds to step S3 where the buffer reader 93 is instructed to retrieve the number of users (N) watching the current video stream Si from the storage location 73 pointed to by the read pointer (j) of the current slot 71-i. The processing then proceeds to step S5 where the distributor control unit 91 determines whether or not N equals zero (i.e. whether or not anybody is watching the current video stream Si). If no-one is watching the current video stream then the processing proceeds to step S7 where the current block of data 75-j is effectively discarded from the buffer 35. As shown in step S7, this is achieved by simply incrementing the current buffer address read pointer (j) associated with stream Si internally within the buffer address selector 95, so that the next time the distributor 37 processes video stream Si it will read data from the next storage location 73 from that slot 71. In fact, since there are only three storage locations 73 in each slot 71 in this embodiment, j will only be incremented up to a value of three and then at the next increment it will be set to a value of 1 again. In this way, the buffer address selector 95 causes the distributor 37 to cycle through the three buffer locations 73 within each buffer slot 71. The processing then proceeds to step S9 where the loop pointer i is incremented by 1 and then proceeds to step S11 where the distributor control unit 91 compares the current value of the loop pointer i with the maximum number of slots in the buffer M (which corresponds to the maximum number of video streams which can be processed by the data switch). Provided the loop pointer i is less than M, the processing returns to step S3 so that a similar process is performed on the next data stream in the next slot 71 of the buffer 35.
If at step S5 the distributor control unit 91 determines that one or more users are watching the current video stream Si (i.e. N does not equal zero), then the processing proceeds to step S13 where the distributor control unit 91 instructs the mapping table reader 97 to search the mapping table to find the first entry that is associated with the current video stream Si being processed. The processing then proceeds to step S15 where the distributor control unit 91 checks to see whether or not such a first entry has been found. Step S15 is needed since it is possible that the mapping table 41 may be updated to remove all of the entries for the current video stream before all of the old data blocks for that stream have been distributed by the distributor 37. If the mapping table reader 97 does not find an entry in the current mapping table 41 for the current stream Si, then the processing returns to step S7 where the current block of data 75-j is again discarded from the buffer 35.
If at step S15 a first entry is found within the mapping table 41, then the processing proceeds to step S17 where the distributor control unit 91 retrieves the current data block 75-j for the current video stream Si from the buffer 35 and passes it to the output network interface unit 39 together with the “CURRENT USER NUMBER” for the user found at the current entry in the mapping table 41. The processing then proceeds to step S19 where the distributor control unit 91 causes the mapping table reader 97 to retrieve the next entry from the mapping table (i.e. the entry immediately after the last entry that was retrieved). The video stream of this entry is set as “NEXT STREAM” and the user number is set as “NEXT USER NUMBER”. The processing then proceeds to step S21 where the distributor control unit 91 checks to see whether or not “NEXT STREAM” is the same as the current video stream being processed. If it is, then the processing proceeds to steps S23 and S25 where “CURRENT USER” is set to “NEXT USER NUMBER” and where “CURRENT ENTRY” is set as “NEXT ENTRY” respectively. The processing then returns to step S17 so that the same data 75-j from the same slot can then be transmitted to this new user. Once the distributor control unit 91 determines that “NEXT STREAM” is not the same as “CURRENT STREAM” the processing proceeds from step S21 back to step S17 where again the current data block 73-j is effectively deleted by incrementing the buffer address read pointer j for the current stream Si being processed.
This routine then continues until each slot 71 within the buffer 35 has been processed at which point the loop pointer i will be incremented in step S9 so that it has a value of M+1 and therefore the processing will proceed from step S11 to step S27. In step S27 the distributor control unit 91 checks if the processing should stop (e.g. because an error has occurred) or if it should continue. If it is to continue then the processing proceeds to step S29 where an appropriate wait state is introduced. This wait state is required in order to ensure that the distributor 37 distributes the data to the various users at a rate which corresponds to the maximum rate at which data is being written into the buffer 35. In particular, the rate at which the distributor 37 cycles through the data within the buffer (i.e. passes from processing step S1 through the flowchart shown in
In the above embodiment, the distributor 37 cycled through the slots 71 in the buffer 35, accessing the mapping table 41 where appropriate. Alternatively, the distributor 37 may access the mapping table 41 as the primary control data structure and then access the slots 71 in the buffer 35 according to the entries in the mapping table 41. The way in which such an embodiment would operate will now be described with reference to
Initially, in step S51, the distributor control unit 91 causes the mapping table reader 97 to read the first entry from the current mapping table 41 to obtain the current stream and the current user number from that entry. The processing then proceeds to step S52 where the current block of data for streams si to si-1 are deleted from the buffer 35 by incrementing the corresponding buffer address read pointers (j). However, this is done for these streams only if a data block exists for the stream. In particular, if the read pointer (j) points to the same storage location 73 as the write pointer then the read pointer is not incremented for that stream. The processing then proceeds to step S53 where the distributor control unit 91 retrieves the appropriate buffer address read pointer for the slot 71 associated with the current stream from the buffer address selector 95. The distributor control unit 91 then instructs the buffer reader 93 to retrieve the data block from that slot 71 in the buffer 35 and passes the data block to the output network interface unit 39 together with the current user number retrieved in step S51.
The processing then proceeds to step S55 where the distributor control unit 91 checks to see whether or not the current entry being processed is the last entry in the mapping table. If it is not then the processing proceeds to step S57 where the distributor control unit 91 reads the next entry (i.e. the entry immediately following the entry that was just processed) from the mapping table 41 to obtain the next stream and the next user number from that entry. The processing then proceeds to step S59 where the distributor control unit 91 sets CURRENT USER as NEXT USER. The processing then proceeds to step S61 where the distributor control unit 91 checks to see if NEXT STREAM is the same as CURRENT STREAM. If it is, then the processing returns to step S53 so that the data can be read again from the buffer 35 and output to the new current user. If, however, the distributor control unit 91 determines at step S61 that NEXT STREAM is not the same as CURRENT STREAM then the processing proceeds to step S63 where the distributor 37 effectively deletes the current data block from the current slot 71 being processed and the current data block for the streams between the current stream and the next stream. As in the first embodiment, this is achieved simply by incrementing the buffer address read pointer (j) associated with each of those streams (provided the read pointer is not pointing to the same storage location 73 as the write pointer). The processing then proceeds to step S65 where CURRENT STREAM is set as NEXT STREAM and then the processing returns to step S53 where the operation can be repeated except reading from the slot 71 associated with the new current stream.
The above processing continues until all of the entries in the mapping table 41 have been processed in this way. The processing then proceeds from step S55 to step S67 where the distributor control unit 91 checks to see whether or not the processing should stop. If it is not to stop then the processing continues to step S69 where the buffer address selector 95 increments the current buffer address read pointer (j) associated with the current stream that was just processed thereby effectively deleting the corresponding data block from the slot 71 in the buffer 35. The processing then proceeds to step S71 where the mapping table reader 97 copies the next mapping table to the current mapping table. The processing then proceeds to step S73 where an appropriate wait time is introduced into the processing cycle of the distributor 37 in order to ensure that it processes the data at the same rate that the data is being written into the buffer 35 by the input network interface unit 31. The processing then returns to step S51 where the processing commences again.
As those skilled in the art will appreciate from the above description, the systems described above provide an efficient technique for receiving a number of incoming broadcast streams, selecting the streams of interest and distributing them to the appropriate users. The selection of the streams of interest and the distribution is efficiently performed by a local mechanism in response to external commands. The result is that a relatively small number of incoming streams SMAX can be efficiently distributed to a much larger number of users UMAX. In addition, the embodiments described above provide a more secure way of delivering content to the end user than the prior art, since each user does not receive all of the broadcast streams and the control mechanism for allowing access to each stream to be delivered is not located at the end user's premises but is located at a remote location. As a result, unauthorised users cannot easily gain access to the content via appropriate hacking equipment.
Another advantage of the distributed nature of the data distribution systems described above is that they allow the personalisation of the individual user data streams, whilst not significantly increasing the bandwidth required between the command and control unit 1 and the central offices 5. The way in which this may be achieved will now be described in a system which allows the insertion of personalised adverts within the individual user video streams.
In operation, when the input network interface unit 31 receives data packets for an advert, it passes them to the advert playout system 123 on the control line 125. The advert playout system 123 then stores the adverts into the advert store 121 for future playout. In addition, the advert playout system 123 also receives user profile data from the control processor 33 on the control line 127. This profile data allows the advert playout system 123 to identify an appropriate advert to be played for each user. This is preferably pre-computed so that the advert playout system 123 has a list (not shown) detailing which advert should be played next for each user that the data switch 29 serves.
In this embodiment, some but not all of the video data streams include adverts. The breakpoints between the video programs and the adverts are identified by appropriate advert break data packets or other in-band or out-of-band data. When the input network interface unit 31 receives, for example such an advert break packet for one of the streams Si, the input network interface unit 31 informs the advert playout system that an advert break has started for that stream (Si). Additionally, in this embodiment, the distributor 37 informs the advert playout system 123 on control line 128 which slot 71 it is currently processing within the buffer 35. This informs the advert playout system 123 which video stream the distributor 37 is currently processing which it checks against the stream numbers provided by the input network interface unit 31. When the advert playout system 123 determines that the distributor 37 is processing a video stream which is in an advert break, it outputs a control signal on control line 129 to control the operation of the multiplexer 131. In particular, the multiplexer 131 is arranged to normally pass the data output from the distributor 37 directly to the output network interface unit 39. However, when it receives the control signal on control line 129, it connects the advert store 121 to the output network interface unit 39 rather than the distributor 37. Subsequently, when the distributor 37 outputs the data and the user number (for example in response to step S17 shown in
In addition to being able to insert personalised adverts for each of the users, the data switch 29 can also be modified to include a suitable hard disc (or other memory device) so that each of the users can, for example, pause their video stream. The way in which this may be achieved will now be described with reference to
As those skilled in the art will appreciate, in addition to the pause and restart requests, the user may also ask, for example, to fast-forward or rewind through the stored video stream or to return back to the original live video stream as it is received by the data switch 29. In either case, the playout control system 143 will receive the appropriate command from the control processor 33 and will take the necessary action in controlling the storing and output of the data from the hard disc 141.
In addition to being able to personalise each data stream, the data switch 29 can also change the encoding format of one or more of the data streams. This is particularly useful where, for example, the command and control unit 1 transmits all of the video data streams in MPEG 4 or DVB (Digital Video Broadcast) format whilst one or more of the user devices 11 can only decode data streams in, for example, MPEG 2 format. The appropriate encoding translation can be performed at various stages within the data switch 29 but is most conveniently performed either in the input network interface unit 31 or in the output network interface unit 39.
A number of embodiments have been described above which illustrate the way in which a data switch can be used to receive a number of incoming broadcast streams and to distribute the broadcast streams to a number of users in accordance with their requests. Whilst the embodiments described above have been specific, it will be apparent to those skilled in the art that a number of modifications can be made to these embodiments. Some of these modifications will now be described for illustration.
In the above embodiments, the data distribution system was used to distribute video streams from a command and control unit 1 to a number of remote user devices. As those skilled in the art will appreciate, the above system architecture and data switch can be used to distribute different types of streamed data, such as audio data or financial data such as the financial data provided by Reuters.
Whilst the above embodiments have described the operation of the data switch within the context of an IP packet-based data network, this is not essential. It does not matter how the data is transmitted to the data switch or how it is then delivered from the data switch to the users. For example, the data may be transmitted to the switch via satellite or via some other data network such as a switched Ethernet network and the data may then be transmitted to the end users via wireless links. Further, it is not essential to have a distributed architecture such as the one illustrated in
In the first embodiment described above, a separate address read pointer and a separate address write pointer for each slot within the buffer were used to control the writing of data to and from the buffer. Whilst this allowed the system to be able to write data to and read data from different address locations within each slot during any one processing time, it requires separate address pointers for each slot (both for the reading and for the writing process). In a simpler embodiment in which the data rate of all of the received streams is the same, a single address read pointer may be used for the distributor and a single address write pointer may be used for the input network interface unit so that at any one time the interface unit writes data to the same address within each slot and the distributor reads data from the same address within each slot. In this case, the flowchart shown in
In the embodiments described above, the distributor read out the data from the buffer and then passed it through to the output network interface unit. In practice, this may be achieved without the data having to pass through the distributor unit itself. For example, a common output bus from the buffer may be connected both to the distributor and to the output network interface unit, with the distributor applying the appropriate addresses to the buffer to control the reading of the data out therefrom.
In the above embodiments, the data for each data stream was stored in contiguous addresses of the buffer memory. As those skilled in the art will appreciate, this is not essential. All that is needed is that the input network interface unit writes the data blocks for each of the data streams to memory locations which are known to the distributor. This knowledge is preferably pre-stored within the distributor in order to maximise the speed at which the distributor can operate. However, if speed is not so important then the input network interface unit may dynamically tell the distributor where it has stored each data block.
In the above embodiment, the buffer was shown as a single buffer which was notionally divided into M slots, with each slot having three locations for data blocks. As those skilled in the art will appreciate, this is not essential. The buffer may be constituted by any number of separate buffer chips or it may form part of a larger integrated circuit. The number of storage locations within each slot may also be varied but should be at least two to allow the distributor to operate independently from the input network interface unit.
In the above embodiments, the mapping table was arranged so that entries corresponding to the same data stream were grouped together. The entries were also arranged in increasing stream number order. As those skilled in the art will appreciate, this is not essential but is used in order to minimise the time required by the distributor to search the mapping table to retrieve the appropriate entries.
In the above embodiments, the data switch received requests for specific data streams from the user and an appropriate data stream was then delivered to the user at the user's corresponding address. As those skilled in the art will appreciate, it is not essential that the request for the data stream comes from the particular user to which the data stream is to be supplied. The request may come from a third party such as the command and control unit.
In the above embodiment in which adverts were inserted within the data streams, the system may be further enhanced to provide the ability to enable users to interact with their adverts. For example, the system may be adapted to allow users to request further information about a product being advertised. In this case, the data switch would retrieve the appropriate additional information from the advert store and transmit it to that user. At the same time, if the video broadcast resumes playing at the end of the advert break whilst the user is still receiving this additional information, the switch may be arranged to store the stream for the user until the user wishes to return to the video program.
In the above embodiments, the user requests were transmitted to the data switch over the same data channel through which the data stream is ultimately transmitted to the user. It is also received by the data switch through the input network interface unit. As those skilled in the art will appreciate, this is not essential. The requests made by the users may be transmitted to the data switch by any appropriate connection. For example, a direct RF radio link may be provided between the control processor and each of the user devices.
As a further improvement to the video switch discussed above, the switch may be modified to provide the ability for each of the users to interact with the storyline within the video program, for example, by choosing the way in which the story unfolds. This may be implemented, for example, by the command and control unit 1 transmitting all of the possible storylines to the regional offices and then the data switch simply selecting the appropriate stream in accordance with the user's interaction. Alternatively, the different storylines may be stored locally within the data switch with the appropriate storyline being output to the user from the local store in accordance with their interaction.
In the above embodiments, the data switch was provided inline between a command and control unit and the users who receive the different data streams. In an alternative embodiment, the data switch may be configured to form part of a larger unit delivering video on demand as well as broadcast TV. In this case, the incoming content would be stored locally to the data switch and played out on demand to the users. This could be developed further by providing the ability to store a number of preferred movies for each user so that the user can access those movies at any time.
In the above embodiments, a single data stream was directed to each end user. As those skilled in the art will appreciate, the above system may operate to transmit a plurality of data streams to each user, provided the bandwidth between the user and the regional office is sufficiently large to accommodate this. If there is limited bandwidth then such a system could use video statistical multiplexing which looks at the content of the video and which allocates bandwidth depending on the amount of action in the scene. This type of statistical multiplexing would then allow more than one channel to be used down a more limited bandwidth link.
In the above embodiments, the data switch is preferably formed from hardware circuits which may be formed from separate integrated circuits or which may form a single application-specific integrated circuit. However, this is not essential and one or more of the components of the data switch may be implemented as software run on a programmable computer device. The software may be in the form of source code, object code, a code intermediate source and object code such as in partially compiled form or in any other form suitable for use in the implementation of the process according to the invention. The software may be provided on a carrier such as a ROM or CD or a transmissible carrier such as an electrical or optical signal which may be conveyed via electrical or optical cable or by radio or other means. preferred embodiment, the data switch receives a number of incoming broadcast streams, efficiently selects the streams of interest and distributes them to the appropriate users. The selection of the streams of interest and their distribution is efficiently performed by the data switch in response to external commands provided by, for example, the users.
Number | Date | Country | Kind |
---|---|---|---|
0125420.0 | Oct 2001 | GB | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/GB02/04747 | 10/22/2002 | WO |