Abstract:
An apparatus and method for utilizing a first content item in accordance with an info segment which specifies interruption points. At an interruption point, a second content item is utilized. The info segment may prevent certain types of second content items from being utilized, may permit them to be avoided, may control their duration, and other aspects of their utilization. The info segment may specify with which first content item it is associated. The apparatus may include storage and/or retrieval mechanisms for accessing the first and second content items and the info segment.

Description:
Related Applications  
       [0001]    This application is related to application Ser. No. ______ and application Ser. No. ______, by these inventors and filed concurrently herewith. 
     
    
     
       BACKGROUND OF THE INVENTION  
         [0002]    1. Technical Field of the Invention  
           [0003]    The present invention relates generally to insertion of advertisements or the like into content such as a movie.  
           [0004]    2. Background Art  
           [0005]    In present content distribution systems, advertisements are permanently, directly attached to the content with which they are distributed, on the same distribution medium. Rental video tapes typically contain several advertisements at the beginning of the tape, before the movie content begins. In general, the content itself will have a much longer “shelf life” than the advertisements. For example, consider a videotape or DVD copy of a highly successful motion picture, with a commercial at the beginning of the tape or DVD advertising a different movie which had not yet reached theaters at the time the tape was originally released, and which may thereafter have proven to be a complete flop. That videotape or DVD may be rented for dozens of years to come, with the now-pointless advertisement playing each time. As another example, consider a home videotape copy of a Superbowl football game, during which were shown: a commercial for a new model automobile, a commercial for a limited-time home mortgage offer, and a commercial for an after-Christmas furniture sale. Those commercials become useless quickly, in some cases in mere days. 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0006]    The invention will be understood more fully from the detailed description given below and from the accompanying drawings of embodiments of the invention which, however, should not be taken to limit the invention to the specific embodiments described, but are for explanation and understanding only.  
         [0007]    [0007]FIG. 1 shows one embodiment of a system constructed according to the principles of this invention.  
         [0008]    [0008]FIG. 2 shows one embodiment of a program which includes a content item and an info segment.  
         [0009]    [0009]FIG. 3 shows the contents of one embodiment of an info segment such as may be used in practicing this invention.  
         [0010]    [0010]FIG. 4 shows the contents of one embodiment of an ad entry such as may be used in such an info segment.  
         [0011]    [0011]FIG. 5 shows another embodiment of a program which includes such an info segment used in conjunction with a content item which includes markers.  
         [0012]    [0012]FIG. 6 shows another embodiment of a program which includes a content item and info segment pointers which point to such an info segment.  
         [0013]    [0013]FIG. 7 shows an electronic programming guide which includes info segments for the respectively associated content items.  
         [0014]    [0014]FIG. 8 shows one embodiment of a method for generating an info segment such as that shown in FIG. 3.  
         [0015]    [0015]FIG. 9 shows one embodiment of a method for generating an ad entry such as that shown in FIG. 4.  
         [0016]    [0016]FIG. 10 shows one embodiment of a method for operating an ad server such as that shown in FIG. 1.  
         [0017]    [0017]FIG. 11 shows one embodiment of a method for operating an info segment server such as that shown in FIG. 1.  
         [0018]    [0018]FIG. 12 shows one embodiment of a method for operating a receiver such as that shown in FIG. 1. 
     
    
     DETAILED DESCRIPTION  
       [0019]    [0019]FIG. 1 illustrates one embodiment of a system  5  constructed according to the principles of this invention. The system includes a receiver  10  which is coupled over a presentation link  12  at a presentation device port  13  to a presentation device  14 . In various embodiments, the presentation device may be an audio speaker, a video screen, an audio-visual combination device, or other suitable apparatus over which a user may enjoy content such as entertainment programming. The presentation link may be a wire, a wireless connection, an infrared connection, or any other suitable communications mechanism. The port may be any form of suitable connection means.  
         [0020]    The receiver is further coupled over a content link  16  at a content port  17  to a content server  18  which includes a content store  20 . The content server may be, for example, a television broadcast station, a television cable head-end, a website, a movie production house, or any other producer or provider of user-consumable content, such as entertainment programming, television shows, movies, or the like.  
         [0021]    The receiver is also coupled over an ad link  22  at an ad port  23  to an ad server  24  which includes an ad store  26 . The ad link, ad server, and ad store will be discussed in terms of storing and delivering advertising content, but the skilled reader will understand that the teachings of this invention may be utilized in providing other types of content which is to interrupt the primary content from the content store. Examples of such other types of content may include digital gift certificates, hyperlinks, links to ATVEF presentations, questionnaires, or other content.  
         [0022]    The receiver is further coupled over an info segment link  28  at an info segment port  29  to an info segment server  30  which includes an info segment store  32 .  
         [0023]    The receiver may also optionally be coupled over an electronic programming guide (EPG) link  34  at an EPG port  35  to an EPG server  36  which includes an EPG store  38 .  
         [0024]    The content link, ad link, info segment link, and EPG link may each be a wire, a wireless broadcast mechanism, a coaxial cable system, a laser point-to-point link, the internet, a modem, a satellite dish network, a CD-ROM or DVD or the like, “sneakernet”, or other suitable delivery means. They may all be carried on a common link, or each may be a separate and different type of link, or any combination thereof.  
         [0025]    The receiver  10  includes a controller  40  which governs the operation of the receiver. To the controller are coupled a local content store  42 , a local ad store  44 , a local info segment store  46 , and an optional local EPG store  48 . In some embodiments, these local stores may be constructed as separate storage elements, while in other embodiments, various combinations of them may be constructed to share a common storage element. The storage element(s) may utilize videotape, digital videotape, hard disk, CD-R, CD-RW, DVD-R, semiconductor memory, or any other suitable storage mechanism(s).  
         [0026]    Various ones of the various ports and links may, in some embodiments, be internal to the receiver. In some embodiments, there may be more than one of each port and link. In some embodiments, various of the links may be combined.  
         [0027]    The phrase “server” is used by way of illustration. The skilled reader will appreciate that the principles of this invention are not limited to a server-client implementation model.  
         [0028]    Please make continued reference to FIG. 1 throughout the following explanation.  
         [0029]    [0029]FIG. 2 illustrates one embodiment of a program which includes an info segment and a content item. The info segment is provided to the receiver by the info segment server, and the content item is provided to the receiver by the content server. FIG. 2 may be understood to represent a data stream which contains the info segment and the content item. FIG. 2 may also be understood to represent a recording mechanism upon which are recorded the info segment and the content item. The reader will appreciate that there is not any order implied in the representation, and that the info segment could be recorded or transmitted at the start, at the end, in the middle, in a unitary block, scattered in pieces throughout the content item, as a single instance, as repeated instances, and so forth.  
         [0030]    [0030]FIG. 3 illustrates one exemplary embodiment of an info segment which may be provided over the info segment link from the info segment server. In some embodiments of the program of FIG. 2, there may be an implicit association between the info segment header and the content item. For example, if the program is provided on a videotape which contains only a single movie—the content item—there will be a single info segment for that movie. In such a case, the content identifier may be regarded as null. The null content identifier may be one that is ignored, or there may simply not be one. In other embodiments, in which the association between the info segment and the content item is not implicit, the info segment will contain a non-null content identifier (Content ID) which specifies with which content item the info segment is associated. In one embodiment, the content identifier may be, for example, a copy of (or a hashed value of) an initial portion of closed caption text in the content item. In another embodiment, the content identifier may be a programming guide reference number of the program, such as a VCR+ number. Other associative mechanisms will be apparent to the reader upon studying this disclosure.  
         [0031]    The info segment also contains one or more ad entries (Ad Entry 0-N), which may be stored in any suitable manner, such as a table, a linked list, or the like. The various fields of a given ad entry may be stored contiguously together, or like fields of the multiple ad entries may be stored together.  
         [0032]    [0032]FIG. 4 illustrates the contents of an exemplary ad entry. In various embodiments, various ones of the fields in an ad entry may be optional, as suitable for the implementation. In some embodiments, the ad entry may contain an interrupt point identification (Int Point) which indicates a point during the content item at which an advertisement should be inserted, interrupting the play of the content item. In some embodiments, play of the content item should be suspended until the advertisement is done. In other embodiments, play of the content item may continue during the advertisement; in such embodiments, the “interruption point” is really an “insertion point”. The interrupt point identification may specify the interruption point in any of a variety of fashions. In one embodiment, it may indicate a time, relative to the start of the content item, at which the ad should be inserted; e.g. “play commercial fifteen minutes into the movie”. In another embodiment, it may indicate a time relative to a most-recently-inserted advertisement; e.g. “play commercial ten minutes after the prior commercial”. In another embodiment, some metric other than time could be used, such as a byte or block count; e.g. “play commercial after one million blocks of the movie have been decoded and played”. In yet another embodiment, the interrupt point identification may specify a content-specific event such as “when the volume goes to zero, play a commercial” or “when there are two consecutive frames of all black, play a commercial” or the like. In yet another embodiment, the interrupt point identification may specify a play-specific factor such as “after the song has been played three times in one month, play a commercial”.  
         [0033]    In some embodiments, the ad entry may include an interrupt length (Int Length) specifier of how long the commercial is; e.g. “at this point, insert a thirty-second-long commercial”. A variant of that is “play a commercial, but if it tries to run longer than thirty seconds, cut it off and return to the content”.  
         [0034]    In some embodiments, the ad entry may include a resume indicator (Resume Indicator) which may further control the ability of the interrupting advertisement to seize undue control over the playing of the primary content item. One such resume indicator may be, for example, “insert a commercial, but allow the user to override it by hitting the &lt;enter&gt; button on the remote control”. One commercially interesting variant of this might be “insert a commercial, but terminate it if the user hits the &lt;payment&gt; button” upon which some nominal fee may be automatically charged to the user&#39;s predetermined account. Fees from such payments could be divided between the content provider and the advertiser.  
         [0035]    The ad entry may further include, in some embodiments, a permitted ad type identifier (Permitted Ad Type) and/or a prohibited ad type identifier (Prohibited Ad Type) which, when taken together or alone, may impose limitations upon the type, rating, source, content, or other aspect of advertisement which is allowed by the content provider, the advertiser, and/or the user to be inserted at the specified point. For example, Disney may not want its movies to be interrupted with advertisements which contain nudity. Similarly, Marlboro may wish to prevent its advertisements from being shown during any children&#39;s&#39; television program. Or a parent may wish to prevent any advertisements containing profanity, or advertising alcoholic beverages, from being played in their home at any time.  
         [0036]    The ad entry may also include additional fields to control various additional aspects of the content/advertisement/audience relationship. As one example, the ad entry may include an ad lock (Ad Lock) field which serves as an override to the interruption by the advertisement. In one embodiment, the ad lock field may be used to cause an advertisement to be played if the user has only rented the videotape, but to skip the advertisement if the user has purchased the videotape. Other uses or heuristics are of course conceivable. For example, the ad lock may permit suppression of the commercial if the time is after ten o&#39;clock at night, or if the user has already viewed twenty-five commercials that day, and so forth.  
         [0037]    It is not necessarily required that all ad entries in a given info segment contain exactly the same fields. For example, one ad entry may lack a permitted ad type specifier, while another ad entry in the same info segment may lack an ad lock, while yet another may lack everything but the interrupt point identifier. If it is desired that all ad entries be the same size, then the unused fields may simply be left blank, or they may be filled with some predetermined value indicating non-use. In other embodiments, it may be desirable to minimize the size of the info segment, and, in such cases, it may be suitable to permit ad entries of different sizes, so unused fields do not occupy any bytes.  
         [0038]    [0038]FIG. 5 illustrates an alternative embodiment of the program, in which the content item is not stored as a contiguous block, but is stored in separate blocks (Content 0-N) between which are interlaced one or more markers (Marker 0-M). In such an embodiment, rather than specifying specific offset times for commercial insertion, the info segment may instead specify that commercials should be inserted at markers. For example, if a viewer tunes in when the content broadcast has already progressed to point P0, the slot (Marker 0) for the first commercial has already passed. Rather than selling “the ad slot at time 15:00 into the broadcast” to the advertiser, it may be desirable to sell “the first ad slot that any given viewer encounters”. In this case, the first commercial will be inserted at the first slot (Marker 1) which this particular viewer encounters, rather than the slot (Marker 0) which has already passed. The reader will appreciate that this business model can be practiced without insertion of such markers; but that markers may be one advantageous embodiment.  
         [0039]    [0039]FIG. 6 illustrates another alternative embodiment of the program, in which the info segment is not actually inserted into the program. In the embodiment illustrated by FIG. 5, it was assumed that the info segment had been captured by the receiver, either at the time it was originally broadcast (even though the viewer had not yet tuned in that particular broadcast), or immediately when the viewer tuned in that program. This may not always be practical, in some cases due to the size o the info segment and the limited storage provided in the receiver. As illustrated in FIG. 6, the program may contain info segment pointers (Info Segment Pointer), such as URLs or the like, which take far less bandwidth and storage than the complete info segment. Thus, the pointers may be repeated periodically throughout the broadcast of the content item. The first time the receiver encounters a pointer, it may fetch the info segment.  
         [0040]    [0040]FIG. 7 illustrates an electronic programming guide (EPG) as modified for use with this invention. The EPG includes one or more program identifiers (Program ID 0-N), each of which provides programming guide information for a particular program, such as channel, start time, ending time, a textual or other listing of its stars and director, and so forth. Associated with each of one or more of the program identifiers is an info segment (Info Segment 0-N) which provides the mapping of advertisements for the associated program.  
         [0041]    [0041]FIG. 8 illustrates one embodiment of a method for generating an info segment, and should be read in conjunction with FIG. 3. The method begins at a starting point ( 51 ). If ( 52 ) there is an implicit association between the info segment and the content item to which it pertains, then the method may optionally skip the insertion ( 53 ) of the content identifier (Content ID). Then, the method inserts ( 54 ) at least one ad entry (Ad Entry 0). If ( 55 ) there are more ad entries to be inserted, then the method iterates through the insertion ( 54 ) of the ad entries until there are no more to be inserted. Then the method is finished ( 56 ). The reader will appreciate that an info segment may be ordered, structured, formatted, protected, encrypted, compressed, and so forth, according to the needs of the application.  
         [0042]    [0042]FIG. 9 illustrates one embodiment of a method for generating an ad entry, and should be read in conjunction with FIG. 4. The method shown in FIG. 9 may be utilized to perform the insertion of the ad entry, in FIG. 8. The method begins at a starting point ( 57 ). In embodiments where it is required, the method inserts ( 58 ) an interrupt point identification (Int Point). If ( 59 ) it is required, the method inserts ( 60 ) an interrupt length specifier. If ( 61 ) it is required, the method inserts ( 62 ) a resume indicator. If ( 63 ) it is required, the method inserts ( 64 ) a permitted ad type identifier. If ( 65 ) it is required, the method inserts ( 66 ) a prohibited ad type identifier. If ( 67 ) it is required, the method inserts ( 68 ) an ad lock. Finally, the method ends ( 69 ). The reader will appreciate that an ad entry may be ordered, structured, formatted, protected, encrypted, compressed, and so forth, according to the needs of the application.  
         [0043]    [0043]FIG. 10 illustrates one embodiment of a method for operating an Ad Server such as that shown in FIG. 1. The method begins at a starting point ( 70 ). The ad server may optionally ( 71 ) receive ads ( 72 ) from external sources. The ad server may also optionally ( 73 ) generate ads ( 74 ) itself. The ad server stores the ads in an ad store. In a “pull” model, the ad server waits ( 76 ) for requests for ads, then retrieves those ads from the ad store (or it could even generate or fetch them on the fly), and sends the ads ( 77 ) to the requester over an ad link. The ad server then returns to wait for additional requests. In a “push” model, the ad server would not wait for requests, but would proactively deliver ads without waiting for requests.  
         [0044]    [0044]FIG. 11 illustrates one embodiment of a method for operating an Info Segment Server such as that shown in FIG. 1. The method begins at a starting point ( 80 ). The info segment server may optionally ( 81 ) receive info segments ( 82 ) from external sources. The info segment server may also optionally ( 83 ) generate info segments ( 84 ) itself. The info segment server stores the info segments in an info segment store. In a “pull” model, the info segment server waits ( 86 ) for requests for info segments, then retrieves those info segments from the info segment store (or it could even generate or fetch them on the fly), and sends the info segments ( 77 ) to the requester over an info segment link. The info segment server then returns to wait for additional requests. In a “push” model, the info segment server would not wait for requests, but would proactively deliver info segments without waiting for requests.  
         [0045]    [0045]FIG. 12 illustrates one embodiment of a method for operating a Receiver such as that shown in FIG. 1, to which the reader should refer. The method begins at a starting point ( 100 ). The Receiver may receive ( 101 ) an electronic programming guide (EPG) from an EPG Server, or from the Local EPG Store if it has previously been received and cached. This may be done in the background, without direct user input. The user tunes in ( 102 ) a program, or the Receiver may do this automatically, such as if the user has programmed the Receiver to always tune in a particular program. The Receiver requests ( 103 ) content for that program, and then receives ( 104 ) the content from the Content Server or from the Local Content Store if it has previously been received and cached. The Receiver begins to play ( 105 ) the content on the Presentation Device. The Receiver requests ( 106 ) an info segment for that program, and receives ( 107 ) the info segment from the Info Segment Server, or from the Local Info Segment Store if it has previously been received and cached;  
         [0046]    in that case, it may then also check to see if the locally stored info segment is still valid or current.  
         [0047]    During play of the content, the receiver waits ( 108 ) until play reaches the first interruption point identified in the info segment. At that point, the receiver requests ( 109 ) an ad, and receives ( 110 ) the ad from the Ad Server or from the Local Ad Store if the ad has previously been received and cached. If ( 111 ) the ad and content do not, together, meet the criteria specified by the Permitted Ad Type and Prohibited Ad Type specifiers, the Receiver requests ( 109 ) another ad. If ( 112 ) the Ad Lock indicator says to this ad may not be skipped, or the requisite conditions are met for skipping the ad, then the Receiver interrupts play of the content and begins ( 113 ) playing the ad instead. If ( 114 ) the ad runs longer than permitted by the Int Length specifier, or the ad ends, the Receiver stops ( 115 ) playing the ad and resumes playing the content. If ( 116 ) there are more ad entries, control returns to wait for the next interruption point ( 108 ). If ( 112 ) the Ad Lock indicator permits the ad to be skipped, and if the requisite conditions are met, no ad will be played, and the method will check ( 116 ) if there are more ad entries; in such a case, it may be that the Receiver should play the already-retrieved ad rather than fetching a new one, at the next interruption point. Ultimately, the content is played ( 117 ) to its end and the method finishes ( 118 ).  
         [0048]    The reader should appreciate that FIGS.  8 - 12  each represents both a process for performing a respective method, as well as a recordable medium or other instruction delivery mechanism in which is encoded or recorded or otherwise represented a series of instructions, routines, firmware, or control codes or the like which, when executed by a computer device or loaded as firmware or control codes into a programmable hardware device or provided as inputs to a runtime interpreter or the like, cause such hardware or software to perform the respective method. The reader should also appreciate that FIGS.  2 - 7  each represents both a respective data entity and a recordable medium or other data delivery mechanism in which is encoded or recorded or otherwise represented that data entity. Instruction and data delivery mechanisms (and the various links described above) include, but are not limited to: magnetic tape, optical discs, DVD, DVD-R, DVD-RW, CD, CD-ROM, CD-R, CD-RW, floppy disk, hard drive, removable hard drive, semiconductor memory device, and the like, as well as down-the-wire, over-the-airwaves, wireless packet, cable television signal, laser-carried, internet protocol delivery, and other such forms of delivery mechanism.  
         [0049]    The reader should appreciate that, while the invention has been described with reference to the interruption of a first content item for the playing of a second content item which has been described above as being an advertisement, it is not necessary that the second content be a commercial advertisement. The invention may be used in interrupting any type of first content item for the play of any type of second content item. The content items may be video, audio, audio/video, text, or any other suitable form of data. The receiver may, in some embodiments, contain an integral presentation device. In others, the presentation device may be external. The invention may readily be utilized in a wide variety of applications; for example, the receiver may be a DVD player, a CD player, a video player, an audio player, an e-book viewer, or any other suitable device.  
         [0050]    Finally, the reader should appreciate that in various embodiments of the system, various of the servers&#39; functions may be performed by a single, combined entity. For example, the ad server and the info segment server could be a single server, or the content server and the info segment server could be built as a single entity, or all four servers could share a common platform, and so forth.  
         [0051]    Reference in the specification to “an embodiment,” “one embodiment,” “some embodiments,” or “other embodiments” means that a particular feature, structure, or characteristic described in connection with the embodiments is included in at least some embodiments, but not necessarily all embodiments, of the invention. The various appearances “an embodiment,” “one embodiment,” or “some embodiments” are not necessarily all referring to the same embodiments.  
         [0052]    If the specification states a component, feature, structure, or characteristic “may”, “might”, or “could” be included, that particular component, feature, structure, or characteristic is not required to be included. If the specification or claim refers to “a” or “an” element, that does not mean there is only one of the element. If the specification or claims refer to “an additional” element, that does not preclude there being more than one of the additional element.  
         [0053]    Those skilled in the art having the benefit of this disclosure will appreciate that many other variations from the foregoing description and drawings may be made within the scope of the present invention. Indeed, the invention is not limited to the details described above. Rather, it is the following claims including any amendments thereto that define the scope of the invention.