Predictive tuning system

Abstract

A predictive tuning system is disclosed in order to reduce the tuning channel delay time in a cable TV architecture. The system comprises a set-top box (STB) configured to instantiate a given number of video decoding pipelines allowing for start broadcasting a particular set of channels which include a sub-set of pre-define channels, such as the antecessor and predecessor channels which are normally pre-tuned, and other sub-set of channels chosen using a predictive algorithm. This algorithm runs locally at the user interface level of the STB suggesting the more likely channels to be watched by the user according to his past behavior according to a specific time slot of a day.

Claims

1. A predictive tuning algorithm configured to be implemented in a set-top box architecture, comprising pre-tuning a pre-defined number of channels, c, according to the following steps: the set-top box, in every channel changed event, transmitting the following input variables to the predictive tuning algorithm: a user identification; a channel inputted by a user, c.sub.e; a respective time of watch, h; the pre-defined number of channels, c; a watched channels memory array corresponding to a time slot xxyy of h, wherein each time slot is comprised by a matrix of channels, channels_matrix_xxyy and a vector of channels memory_channels_list_xxyy; updating and analyzing the watched channels memory array according to the channel inputted by the user; outputting a number of the pre-defined number of channels, c, according to the watched channels memory array in that time slot and a fixed β channels that are always primed, wherein the channels_matrix_xxyy is a matrix with two rows and as many columns as the sum of the number of visualizations of the last x channels, and wherein the memory_channels_list_xxyy is a vector with a FIFO behavior and configurable number of columns, x, recording a channel's flow transition.

2. The predictive tuning algorithm according to claim 1, wherein the time slot has a configurable time period.

3. The predictive tuning algorithm according to claim 1, wherein the update of the watched channels memory array comprise the following steps: in the channels_matrix_xxyy a decrement in one unit of a number of visualizations of a channel that leaves the memory_channels_list_xxyy; and in response to the number of visualizations of the channel becoming zero, remove the channel from the channels_matrix_xxyy by eliminating its column; in the channels_matrix_xxyy an increment in one unit of a number of visualizations of a channel c.sub.e and record the channel in the memory_channels_list_xxyy; for a first time watch in a last x watch channels, the c.sub.e is added to the channels_matrix_xxyy and its visualization number is incremented in one unit.

4. The predictive tuning algorithm according to claim 1, wherein the output of c channels is comprised by the following steps: selecting (c+β) channels with the higher number of visualizations in the channels_matrix_xxyy and save the (c+β) channels in a favorite_channel_list; in response to the channel c.sub.e, or any of the β channels that are always primed, are not in the favorite_channel_list, select the pre-defined number of channels, c, in the favorite_channel_list; or in response to the channel c.sub.e, or any of the β channels that are always primed, are in the favorite_channel_list, select the pre-defined number of channels, c, of the list other than c.sub.e or any of β channels.

5. A non-transitory computer-readable medium storing set-top box application framework implemented at a middleware level configured to interconnect a set-top box software layer running the predictive tuning algorithm of claim 1 and a set-top box hardware implementation layer; said application framework being configured to instantiate a set of video decoding pipelines for pre-tuning a predefined number of channels, (c+β), wherein c is the number of pre-defined number of channels outputted from a predictive tuning algorithm, and β is the number of channels that are always primed.

6. The non-transitory computer-readable medium of claim 5, wherein the application framework is configured to pre-tune a predefined number of channels, β, in addition to the channels outputted from the predictive algorithm, c, representing the antecessor and the predecessor channels of the currently tuned channel.

7. A predictive tuning system characterized by a Set-top box architecture comprising: θ number of tuners at the physical level; a software layer configured to execute a predictive tuning algorithm comprising pre-tuning a pre-defined number of channels, c, according to the following steps: set-top box, in every channel changed event, transmitting the following input variables to the predictive tuning algorithm: a user identification; a channel inputted by the user, c.sub.e; respective time of watch, h; a pre-define number of channels, c; a watched channels memory array corresponding to the time slot xxyy of h; updating and analyzing the watched channels memory array according to the channel inputted by the user; outputting a number of c channels according to the watched channels memory array in that time slot and the fixed β channels that are always primed; a middleware layer comprising: the application framework of claim 6; and a client module configured to find a β number of fixed channels that are always primed.

8. A predictive tuning system characterized by a Set-top box architecture comprising: θ number of tuners at the physical level; a software layer configured to execute a predictive tuning algorithm comprising pre-tuning a pre-defined number of channels, c, according to the following steps: set-top box, in every channel changed event, transmitting the following input variables to the predictive tuning algorithm: a user identification; a channel inputted by the user, c.sub.e; respective time of watch, h; a pre-define number of channels, c; a watched channels memory array corresponding to the time slot xxyy of h; updating and analyzing the watched channels memory array according to the channel inputted by the user; outputting a number of c channels according to the watched channels memory array in that time slot and the fixed β channels that are always primed; a middleware layer comprising: the application framework of claim 5; and a client module configured to find β number of fixed channels that are always primed.

9. The predictive tuning system according to claim 8, wherein the application framework is configured to instantiate a (c+β) number of video decoding pipelines for θ Transport Stream, wherein c is the predefined number of channels to be predicted.

10. The predictive tuning system according to claim 8, wherein the client module is configured to find the predecessor channel, c.sub.e (k)+1, and the antecessor channel, c.sub.e (k−1), of the currently tuned channel, c.sub.e.

11. The predictive tuning system according to claim 10, wherein each of the (c+β) video decoding pipelines, wherein β=2, are configured to: pre-tune the predecessor channel, c.sub.e (k)+1, of the channel c.sub.e; pre-tune the antecessor channel, c.sub.e (k−1), of the channel c.sub.e; pre-tune c channels.

12. The predictive tuning system according to claim 8, wherein each of the θ tuners are configured to tune a specific Transport Stream carrier.

Description

BRIEF DESCRIPTION OF DRAWINGS

(1) The features and advantages of the present invention disclosed herein can be better understood with reference to the following drawings, in which:

(2) FIG. 1 is a flowchart representing the predictive algorithm's first phase.

(3) FIG. 2 illustrates the block diagram A representing the algorithm's second phase.

(4) FIG. 3 represents the block level architecture relevant to the implementation of the predictive system.

(5) FIG. 4 illustrates the required APIs to implement the predictive system at the user interface level.

DESCRIPTION OF EMBODIMENTS

(6) With reference to the figures, certain methods of implementation are now described in more detail. However, they are not intended to limit the scope of this application.

(7) The system proposed herein solves the problem of reducing the tuning channel delay time, by predicting the user's behavior and it is characterized by an algorithm that suggest the more probable channels to be watched by the user. Said algorithm is supported by a STB architecture, with tree tuners, that is capable of not only pre-tuning a specific channel in a TS, but also to instantiate a given number of video decoding pipelines per TS.

(8) Due to processing constrains at the hardware level, there is a limitation on the use of video primers. Taking this in account, and for the purpose of this description, STB architecture assumes a viable number of 5 video primers, two of them fixed and three more for the fine tuning of the predictive algorithm herein disclosed.

(9) Considering this limitations, although there are 5 primers available, the STB only have 3 tuners. Therefore, the 5 most probable channels must belong to a maximum of 3 different transport streams (TS). Consider the following two cases: a) The predecessor and the successor channels belong to the same TS, for instance, TS1. It is possible to tune two more different TS, for instance, TS2 and TS3; b) The predecessor and the successor channels belong to different TS, for instance TS1 and TS2. It is possible to tune one more different TS, for instance, TS3.

(10) For the purpose of this preferred embodiment, it will be consider that the set-top box uses five primers and the algorithm suggest the three more probable channels to be watched by the user.

(11) In this algorithm implemented and tested by using seven random clients channel zapping historical, from the above referred data base. The success in predicting the zapping with 2 (up/down) channels or 5 (up/down+3favorite) channels is shown in the table 1.

(12) TABLE-US-00001 TABLE 1 Channel prediction success rate, with x = 100. Predictive Algorithm Client Client ID Up/Down (%) success (%) A 00D0374CD901 53.81 74.98 B 00D0374CDAF9 13.98 77.17 C 00D0374CDA93 17.46 48.28 D 00D0374CD0C4 6.48 60.1 E 00D0374CCFAA 11.55 67.38 F 00D0374CD604 14.37 72.51 G 00D0372F3A34 13.18 73.71 Average 19 67

(13) In general the up/down prediction is right ˜19% of the times while with the three favorite channels, the success rate is increased to ˜67%.

(14) Note that although the algorithm was tested with only 1% of the total number of different clients in the data base, these results also include the extreme clients. Client A uses a lot the up/down zapping procedure while client D doesn't. Even for these extreme cases, the success rate of the channel prediction is increased.