Abstract:
Program content is received at a headend of a broadband communication system, along with data concerning scheduled start and end times of the program derived from electronic program guide (EPG) data. After the program is broadcast, the actual broadcast start and end times of the program are compared with the corresponding scheduled times to determine whether there is any start and/or end time variance. If a time variance is determined, the content of the program is redefined to include only its supposed content. The redefined content is then made part of an asset for later retrieval and distribution.

Description:
FIELD OF THE INVENTION  
         [0001]    The invention relates to communications systems and methods, and more particularly to a system and method for defining programming content in generating assets of broadcast programs.  
         BACKGROUND OF THE INVENTION  
         [0002]    Use of electronic program guides (EPGs) is ubiquitous nowadays to manage, identify and select programming content on many program channels made available by cable television (TV) networks. EPGs are also provided by personal video recorders (PVRs), also known as digital video recorders (DVRs), e.g., TiVo and ReplayTV devices, for users to conveniently select programming content to record, without having to set a timer. However, the user&#39;s ability to accurately record a broadcast program is contingent upon the accuracy of the broadcast start and end times of the program prescribed by EPG data (hereinafter “EPG start and end times”). In instances where the actual broadcast start or end time of a program is different than the EPG start or end time, the PVR often records programming content that the user did not want, or the PVR fails to record all of the programming content that the user intended to record.  
           [0003]    The actual start and end times for a given broadcast program may be different than the EPG start and end times for various reasons. For example, suppose a baseball game is scheduled to broadcast on a given evening from 7:30 PM to 10:30 PM, but because of extra innings or a rain delay, the game continues until 11:15 PM. Although the actual time of the game is from 7:30 PM to 11:15 PM, the start and end times listed and provided by the EPG will be 7:30 PM and 10:30 PM, respectively. Accordingly, if a user selects to record the baseball game using the EPG in this instance, the user would miss the last 45 minutes of the game (i.e., from 10:30 PM to 11:15 PM). Other examples include a Presidential Address or an awards ceremony which lasts for a time that is longer than that the program has been scheduled. Technical difficulties causing the content provider to broadcast a program at a time other than that which is scheduled may cause such a variance as well.  
           [0004]    In addition, when the time of one program provided on a specific channel is off schedule, subsequent programs provided by the channel may also be affected, unless the scheduled programming content is manipulated (e.g., certain show or commercial segments are skipped and therefore not broadcast). Thus, if a user records through an EPG a particular show which was scheduled to broadcast from 11:00 PM-11:30 PM, but it actually broadcast from 11:15 PM to 11:45 PM because of a prolonged baseball game, the user would not record the desired programming content. Instead, in this instance, the user&#39;s PVR would record the last fifteen minutes of the baseball game and only the first fifteen (out of thirty) minutes of that particular show.  
         SUMMARY OF THE INVENTION  
         [0005]    The invention overcomes the prior art limitations by defining the content of a program based upon the actual broadcast start and/or end time of the program. For example, a content provider provides the content of a first program to a broadband communications system (e.g., a cable TV system), which is scheduled to broadcast at a scheduled start time (or until a scheduled end time). The first program is preceded (or followed) by a second program in a subsequent broadcast of the first and second programs. Information concerning an end time (or a start time) of the second program in the broadcast is then provided to the system. In accordance with the invention, a determination is made whether a difference between the end time (or start time) of the second program and the scheduled start time (or the scheduled end time) of the first program is greater than a threshold. The content of the first program is redefined when it is determined that the difference is greater than the threshold.  
           [0006]    Alternatively, after the content of a program, and first data concerning a scheduled start (or end) time of a broadcast of the program are provided to the system, it receives second data concerning an actual start (or end) time of the broadcast of the program. In accordance with the invention, a determination is made whether a difference between the scheduled start (or end) time and the actual start (or end) time is greater than a threshold. The content of the program is adjusted when it is determined that the difference is greater than the threshold.  
           [0007]    The adjusted or re-defined content of a program is made part of an asset for later distribution to a user. Thus, with the invention, the user advantageously is able to receive the supposed content of a program in a given asset.  
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0008]    Further objects, features and advantages of the invention will become apparent from the following detailed description taken in conjunction with the accompanying drawings showing illustrative embodiments of the invention, in which:  
         [0009]    FIGS.  1 A- 1 D jointly illustrate broadcast programming content and redefinition thereof in accordance with the invention;  
         [0010]    [0010]FIG. 2 illustrates system components in a headend of a broadband communications system in accordance with an embodiment of the invention;  
         [0011]    [0011]FIG. 3 illustrates a first metadata file associated with an entertainment program in accordance with the invention;  
         [0012]    [0012]FIG. 4 is a flow chart depicting a process for allocating programming content to an asset in accordance with an embodiment of the invention; and  
         [0013]    [0013]FIG. 5 illustrates a second metadata file associated with an entertainment program in accordance with the invention 
     
    
     DETAILED DESCRIPTION  
       [0014]    The invention is directed to generating an asset which comprises entertainment programming content (e.g., the video and audio content of an entertainment program) and metadata that describes characteristics of the program. For example, the metadata may describe attributes of the programming content, such as the rating, format, duration, size, or encoding method thereof. The metadata may also include information relating to the broadcast start and end times of a program. In prior art, these start and end times are based on a broadcast schedule prescribed by EPG data (the “EPG start and end times”). However, such EPG start and end times may be different from the actual broadcast start and end times of a program because, for example, the program may be delayed by an unexpected prolongation of a prior broadcast program, or the EPG start and end times are simply inaccurate. As a result, in prior art the content of a broadcast program defined by the EPG start and end times may not encompass the intended programming content when its actual broadcast start and end times deviate from the corresponding EPG times.  
         [0015]    In accordance with the invention, the content of a broadcast program which is otherwise defined by inaccurate EPG start and end times is redefined (or resegmented) for storage using its actual broadcast start and end times. As described below, such actual start and end times may be provided, e.g., by human segmenters (or taggers) after the program has broadcast. The programming content is resegmented upon a determination that the EPG start and/or end time in the metadata associated with the program deviate from the actual start and/or end time by more than a predetermined threshold. FIGS.  1 A- 1 D illustrate resegmentation of content of a broadcast program having inaccurate EPG start and end times, in accordance with the invention.  
         [0016]    In this illustration, Program  1 , Program  2  and Program  3  were scheduled to broadcast at 5:00 PM-6:00 PM, 6:00 PM-7:00 PM and 7:00 PM-8:00 PM, respectively, and are reflected as such by the EPG data. However, because of an unexpected prolongation of program  1  (e.g., a live Presidential Address), they actually are broadcast at 5:00 PM-6:10 PM, 6:10 PM-7:10 PM and 7:10 PM-8:05 PM, respectively, as shown in FIG. 1A. As a result, Program  1  is extended at the expense of the time allocated for Programs  2 ,  3 , etc. Segmentation of the programming content based on the EPG data would result in Program  2  (as well as Programs  1  and  3 ) being defined improperly. Specifically, as shown in FIG. 1B, the program  2  programming content that was scheduled from 6:00 PM-7:00 PM would actually comprise the last 10 minutes of Program  1  (segment  122 ) and the first 50 minutes of Program  2  (segment  124 ), i.e., incorrectly defined content of Program  2 . In addition, as shown in FIG. 1C, the remaining 10 minutes of Program  2  (segment  142 ) would be combined with the first 50 minutes of Program  3  (segment  144 ), resulting in incorrectly defined content of Program  3 . By resegmenting the program  2  programming content in accordance with the invention, Program  2  is redefined to include the intended content of the program, which consists of segments  124  and  142 , as shown in FIG. 1D.  
         [0017]    In this illustrative embodiment, the actual time data associated with broadcast program content is generated by human taggers. Human taggers are employed to monitor program content that was broadcast, associate actual start and end times with programming content upon viewing such content, and record the actual start and end times of programs (and, in some instances, observe and record the start and end times of segments of programs). It will be appreciated that automated techniques other than such a manual technique for monitoring the actual start and end times of a program may be used, instead. For example, one such automated technique may involve automatic processing the broadcast signals to detect fade-to-black frames typically surrounding the beginning and end of a program and registering the times of such detections  
         [0018]    [0018]FIG. 2 illustrates certain components of headend  405  in a broadband communications system which embody the principles of the invention for generating assets. For example, headend  405  in this instance is part of a cable TV system for delivering information and entertainment programs to set-top terminals (not shown) located at the user premises. As shown in FIG. 2, headend  405  includes, inter alia, acquisition/staging (A/S) processor  410 , buffer  420 , resegmentation processor  430  and asset storage  440 .  
         [0019]    Headend  405  receives programs and services from various providers and sources  407 , e.g., analog and digital satellite sources, application servers, media servers, the Internet, etc. Analog and digital satellite sources typically provide the traditional forms of television broadcast programs and information services. Application servers typically provide executable code and data for application specific services such as database services, network management services, transactional electronic commerce services, system administration console services, application specific services (such as stock ticker, sports ticker, weather and interactive program guide data), resource management service, connection management services, subscriber cares services, billing services, operation system services, and object management services. Media servers provide time-critical media assets such as Moving Pictures Experts Group  2  (MPEG-2) standard encoded video and audio, MPEG-2 encoded still images, bit-mapped graphic images, PCM digital audio, three dimensional graphic objects, application programs, application data files, etc. Although specific examples of programs and services which may be provided by the aforementioned sources are given herein, other programs and services may also be provided by these or other sources without departing from the spirit and scope of the invention.  
         [0020]    Processor  410  in headend  405  processes program materials including, e.g., TV program streams, from one or more of providers and sources  407  in analog and digital forms. Analog TV program streams may be formatted according to the National Television Standards Committee (NTSC) or PAL broadcast standard. Digital TV streams may be formatted according to the Digital Satellite System (DSS), Digital Broadcast Services (DBS), or Advanced Television Standards Committee (ATSC) standard. Processor  410 , among other things, extracts program content in the analog and digital TV streams and reformats the content to form one or more MPEG-2 encoded transport streams. Such reformatting may even be applied to those received streams already in an MPEG-2 format. This stems from the fact that the digital content in the received MPEG-2 streams are typically encoded at a variable bit rate (VBR). To avoid data burstiness, processor  410  in a conventional manner re-encodes such digital content at a constant bit rate (CBR) to form transport streams.  
         [0021]    In broadcasting programs to users, the transport streams generated by processor  410  are transmitted from headend  405  through a hybrid fiber/coax cable (HFC) network to the set-top terminals at the user premises. In addition, the transport streams may be recorded in headend  405  so that the users at the set-top terminals may manipulate (e.g., pause, fast-forward or rewind) the programming content in the recorded streams in a manner described, e.g., in copending, commonly assigned application Ser. No. 10/263,015, filed Oct. 2, 2002, which is hereby incorporated by reference  
         [0022]    In addition, A/S processor  410  collects program guide data associated with different TV programs from an application server, which may be different from the sources of the TV programs themselves. Each program when presented to processor  410  is identified by a program identification code, which may be used to locate the corresponding EPG data. In particular, processor  410 , while processing a TV program, may locate the corresponding EPG data to create in real time a metadata file associated with the TV program.  
         [0023]    [0023]FIG. 3 illustrates various data in metadata file  200  associated with a broadcast TV program (e.g., Program  2 ) identified by code  202  therein. File  200  also includes EPG start time  204  and end time  206  of the program based on the aforementioned EPG data, program title  208 , program rating  210  (e.g., G, PG-13, R, etc.), program format  212 , duration of the program  214 , program size  216 , program type  218  (e.g., situation comedy), etc. In addition, for resegmentation purposes, file  200  includes program identification code  242  for identifying the program preceding the broadcast program in question (e.g., Program  1 ), and program identification code  248  for identifying the program succeeding the broadcast program in question (e.g., Program  3 ).  
         [0024]    In this instance, the content of each broadcast program and the associated metadata file are temporarily stored in buffer  420  for any program resegmentation performed by resegmentation processor  430  in accordance with the invention. FIG. 4 illustrates a process for carrying out any required resegmentation of content of a given program in buffer  420 . At step  505 , processor  430  receives from buffer  420  a copy of content of the given program and its associated metadata file, say, file  200 . Processor  430  at step  510  looks up EPG start time  204  and EPG end time  206  from file  200 . In addition, processor  430  at step  515  receives the actual broadcast start and end times of the given program from source  449  providing such data in the form of a metadata file (e.g., generated by the aforementioned human taggers). FIG. 5 illustrates one such metadata file, denoted  600 . As shown in FIG. 5, file  600  includes program identification code  602  identifying the broadcast TV program in question, its actual broadcast start time  604 , its actual broadcast end time  606 , etc.  
         [0025]    Processor  430  at step  520  subtracts the EPG start time  204  from actual broadcast start time  604 , resulting in a first time difference. Similarly, processor  430  at step  525  subtracts EPG end time  206  from actual broadcast end time  606 , resulting in a second time difference.  
         [0026]    It should be noted at this point that when comparing the EPG start time with the program&#39;s actual start time, the comparison may be made instead with the preceding program&#39;s actual end time as the preceding program&#39;s actual end time and the current program&#39;s actual start time are the same or substantially the same. Similarly when comparing the EPG end time with the program&#39;s actual end time, the comparison may be made instead with the succeeding program&#39;s actual start time as the succeeding program&#39;s actual start time and the current program&#39;s actual end time are the same or substantially the same.  
         [0027]    Processor  430  at step  530  determines whether the absolute value of the first difference is greater than a first predetermined threshold, having a zero or nonzero value. It will be appreciated that the actual first threshold value may vary from a fraction of a second to a few minutes, depending on the importance of the content in the beginning of the given program. The more important the beginning content is (e.g., breaking news in the beginning of a news report), the smaller the first threshold value. If it is determined that the absolute value of the first difference is not greater than the first predetermined threshold, processor  430  at step  535  determines whether the absolute value of the second difference is greater than a second predetermined threshold, having a zero or nonzero value. It will be appreciated that the actual second threshold value may vary from a fraction of a second to a few minutes, depending on the importance of the content close to the end of the given program. The more important the ending content is (e.g., the closing minutes of a football game), the smaller the second threshold value. If it is determined that the absolute value of the second difference is not greater than the second predetermined threshold, processor  430  concludes that the EPG start and end times are sufficiently accurate and no resegmentation is required, the process then comes to an end.  
         [0028]    If, however, the first time difference resulting from step  520  has an absolute value greater than the first predetermined threshold, and is a negative value, it follows that the received programming content from buffer  420  lacks a beginning portion of the given program. In that case, processor  430  at step  540  looks up from file  200  code  242  identifying the preceding program. At step  543 , processor  430  obtains from buffer  420  a copy of an end portion of the preceding program identified by code  242 , whose length corresponds to the first time difference. Processor  430  at step  545  attaches the end portion thus obtained to the beginning of the received programming content.  
         [0029]    If, however, the first time difference resulting from step  520  has an absolute value greater than the first predetermined threshold, and is a positive value, it follows that a portion of the preceding program is erroneously included in the beginning of the received programming content. In that case, processor  430  at step  550  removes the erroneous beginning portion of the received programming content therefrom, whose length corresponds to the first time difference.  
         [0030]    If, however, the second time difference resulting from step  525  has an absolute value greater than the second predetermined threshold, and is a negative value, it follows that a portion of the succeeding program is erroneously included in an end portion of the received programming content. In that case, processor  430  at step  555  removes the erroneous end portion of the received programming content therefrom, whose length corresponds to the second time difference.  
         [0031]    If, however, the second time difference resulting from step  525  has an absolute value greater than the second predetermined threshold, and is a positive value, it follows that the received programming content from buffer  420  lacks an end portion of the given program. In that case, processor  430  at step  560  looks up from file  200  code  248  identifying the succeeding program. At step  565 , processor  430  obtains from buffer  420  a copy of a beginning portion of the succeeding program identified by code  248 , whose length corresponds to the second time difference. Processor  430  at step  570  appends the beginning portion thus obtained to the received programming content.  
         [0032]    Thus, the output of the process of FIG. 4 includes the intended programming content of the given program. The resulting programming content is stored in asset storage  440  as part of the asset of the given program for later retrieval and distribution.  
         [0033]    The foregoing merely illustrates the principles of the invention. It will thus be appreciated that those skilled in the art will be able to devise numerous other arrangements which embody the principles of the invention and are thus within its spirit and scope.  
         [0034]    For example, although the resegmentation process of FIG. 4 involves redefining the beginning portion and end portion of an individual program, and such a process may be repeated for each program in succession, it should be appreciated that, in some instances, one achieves the same result by redefining only the beginning portions or end portions of the successive programs.  
         [0035]    Finally, the headend components in FIG. 1 are disclosed herein in a form in which various functions are performed by discrete functional blocks. However, any one or more of these functions could equally well be embodied in an arrangement in which the functions of any one or more of those blocks or indeed, all of the functions thereof, are realized, for example, by one or more appropriately programmed processors.