Technique for delivering entertainment programming content including commercial content therein over a communications network
Claim Score by NHIP
Abstract
Although personal video recorders (also known as digital video recorders) provide certain conveniences to viewers of programming content, such devices facilitate manipulation or "skipping" of commercials, frustrating the intent of the advertisers of the commercials. In accordance with the invention, when a user fast-forwards (rewinds) a commercial, alternate commercial(s) may be accessed for display in place of the original commercial, which provides a full impression of the goods and service promoted, otherwise impossible to appreciate at the fast-forward (rewind) speed. The duration of the alternate commercial(s) corresponds to the duration of the original commercial at the fast-forward (rewind) speed controlled by the user. With the invention, the user advantageously realizes the convenience of manipulating programming content, and at the same time can appreciate the full impression of an alternate commercial to the original commercial, albeit in a shorter duration.

Term
Projected expiry 9 January 2027.
- Priority and filed
- Published
- Today
- Projected expiry
159 claims: 9 independent, 150 dependent
- 1A method for presenting programming content including a commercial therein, comprising:providing access to one or more alternate commercials;receiving a request for manipulation of a presentation of the programming content, the request including information concerning a manipulation speed affecting the presentation;and in response to the request, selecting at least one of the alternate commercials for presentation, in lieu of the commercial, as a function of the manipulation speed.
- 22A method for presenting programming content including a commercial therein, comprising:providing access to one or more alternate commercials which have different durations;receiving a request for manipulation of a presentation of the programming content, the request including a manipulation speed affecting the presentation;determining a commercial duration based upon at least the manipulation speed;and selecting at least one of the alternate commercials for presentation in lieu of the commercial, the alternate commercial being selected as a function of the commercial duration.
- 42A method for presenting programming content including a commercial therein, comprising:receiving a data stream containing the programming content, the data stream including a message concerning the commercial which precedes data representing the commercial in the data stream;providing a presentation of the programming content based on selected data in the data stream, the presentation being subject to a manipulation thereof;in response to the message, identifying one or more alternate commercials;and selecting at least one of the alternate commercials for presentation in lieu of the commercial when the presentation of the programming content is manipulated.
- 60Apparatus for presenting programming content including a commercial therein, comprising:a mechanism for providing access to one or more alternate commercials;an interface for receiving a request for manipulation of a presentation of the programming content, the request including information concerning a manipulation speed affecting the presentation;and a processing element responsive to the request for selecting at least one of the alternate commercials for presentation, in lieu of the commercial, as a function of the manipulation speed.
- 85A system for presenting programming content including a commercial therein, comprising:a mechanism for providing access to one or more alternate commercials which have different durations;an interface for receiving a request for manipulation of a presentation of the programming content, the request including a manipulation speed affecting the presentation;a controller for determining a commercial duration based upon at least the manipulation speed;and a processing element for selecting at least one of the alternate commercials for presentation in lieu of the commercial, the alternate commercial being selected as a function of the commercial duration.
- 107A system for presenting programming content including a commercial therein, comprising:an interface for receiving a data stream containing the programming content, the data stream including a message concerning the commercial which precedes data representing the commercial in the data stream;a mechanism for providing a presentation of the programming content based on selected data in the data stream, the presentation being subject to a manipulation thereof;and a processing element responsive to the message for identifying one or more alternate commercials, at least one of the alternate commercials being selected for presentation in lieu of the commercial when the presentation of the programming content is manipulated.
- 125Broadest claimClaim Score 91, very broad(NHIP)A method for presenting programming content including a commercial therein, comprising:receiving a request for presenting the programming content at a selected speed;and in response to the request, manipulating a presentation of the programming content, except the commercial, at the selected speed, and presenting a selected commercial in lieu of the commercial, the selected commercial having a predetermined duration.
- 136A method for presenting on a display programming content including a commercial therein, comprising:defining at least first and second portions of the display;receiving a request for manipulation of a presentation of the programming content;and in response to the request, presenting a manipulated version of the programming content on the first portion of the display, and presenting a selected commercial the second portion of the display.
- 159A method for providing programming content which contains an interactive commercial, and a program segment which follows the interactive commercial and is scheduled to begin at a selected time, the interactive commercial including an interactive option for obtaining commercial detail information, the method comprising:detecting a selection of the interactive option;presenting the commercial detail information upon a detection of the selection of the interactive option, a presentation of the commercial detail information ending after the selected time;and providing the program segment from a beginning thereof after the presentation of the commercial detail information.
Independent claims9
114 paragraphs in 5 sections, as filed
FIELD OF THE INVENTION
[0001] The invention relates to communications systems and methods, and more particularly to a system and method for delivering entertainment programs having commercials therein through a communications network, e.g., a cable TV network.
BACKGROUND OF THE INVENTION
[0002] With the advent of digital communications technology, many TV program streams are transmitted in digital formats. For example, Digital Satellite System (DSS), Digital Broadcast Services (DBS), and Advanced Television Standards Committee (ATSC) program streams are digitally formatted pursuant to the well known Moving Pictures Experts Group 2 (MPEG-2) standard. The MPEG-2 standard specifies, among others, the methodologies for video and audio data compressions which allow multiple programs, with different video and audio feeds, multiplexed in a transport stream traversing a single transmission channel. A digital TV receiver may be used to decode an MPEG-2 encoded transport stream, and extract the desired program therefrom.
MPEG-2 Background
[0003] In accordance with the MPEG-2 standard, video data may be compressed based on a sequence of groups of pictures (GOPs), made up of three types of picture frames—intra-coded picture frames (“I-frames”), forward predictive frames (“P-frames”) and bilinear frames (“B-frames”). Each GOP may, for example, begin with an I-frame which is obtained by spatially compressing a complete picture using discrete cosine transform (DCT). As a result, if an error or a channel switch occurs, it is possible to resume correct decoding at the next I-frame.
[0004] The GOP may represent additional frames by providing a much smaller block of digital data that indicates how small portions of the I-frame, referred to as macroblocks, move over time.
[0005] An I-frame is typically followed by multiple P- and B-frames in a GOP. Thus, for example, a P-frame occurs more frequently than an I-frame by a ratio of about 3 to 1. A P-frame is forward predictive and is encoded from the I- or P-frame that precedes it. A P-frame contains the difference between a current frame and the previous I- or P-frame.
[0006] A B-frame compares both the preceding and subsequent I- or P-frame data. The B-frame contains the average of matching macroblocks or motion vectors. Because a B-frame is encoded based upon both preceding and subsequent frame data, it effectively stores motion information.
[0007] Thus, MPEG-2 achieves its compression by assuming that only small portions of an image change over time, making the representation of these additional frames extremely compact. Although GOPs have no relationship between themselves, the frames within a GOP have a specific relationship which builds off the initial I-frame.
[0008] The compressed video and audio data are carried by continuous elementary streams, respectively, which are broken into access units or packets, resulting in packetized elementary streams (PESs). These packets are identified by headers that contain time stamps for synchronizing, and are used to form MPEG-2 transport streams. For digital broadcasting, multiple programs and their associated PESs are multiplexed into a single transport stream. A transport stream has PES packets further subdivided into short fixed-size data packets, in which multiple programs encoded with different clocks can be carried. A transport stream not only comprises a multiplex of audio and video PESs, but also other data such as MPEG-2 program specific information (sometimes referred to as metadata) describing the transport stream. The MPEG-2 metadata may include a program associated table (PAT) that lists every program in the transport stream. Each entry in the PAT points to an individual program map table (PMT) that lists the elementary streams making up each program. Some programs are open, but some programs may be subject to conditional access (encryption) and this information is also carried in the MPEG-2 transport stream, possibly as metadata.
[0009] The aforementioned fixed-size data packets in a transport stream each carry a packet identifier (PID) code. Packets in the same elementary streams all have the same PID, so that a decoder can select the elementary stream(s) it needs and reject the remainder. Packet-continuity counters may be implemented to ensure that every packet that is needed to decode a stream is received.
[0010] Use of personal video recorders (PVRs), also known as digital video recorder (DVRs), such as TiVo and ReplayTV devices, provide conveniences to viewers of television programming. For example, if a PVR user is watching an in-progress broadcast program, the user may rewind the recorded portion of the program to a certain point that has already been broadcast or may pause for subsequent playing, rewinding and/or fast-forwarding. Similarly, for programming that has already been broadcast and recorded, the user may also apply any of these PVR functions.
[0011] The cable TV industry has been fervently pursuing a “network PVR (NPVR)” approach allowing the user to perform the analogous PVR functions through use of a network, rather than a local PVR device. In fact, a network architecture and functionalities for implementing such an NPVR approach have been developed and are described, e.g., in copending commonly assigned application Ser. No. 10/263,015, filed on Oct. 2, 2002, hereby incorporated by reference.
[0012] In some instances, however, the aforementioned PVR functions may have an adverse effect on advertisers. For instance, if a PVR user decides to rewind or fast-forward past a commercial, the user would hardly realize the impression of the commercial at a high rewind or fast-forward speed, and thus appreciate its effect intended by the advertiser.
SUMMARY OF THE INVENTION
[0013] The invention overcomes the prior art limitations by use of one or more alternate commercials for substituting the original commercial in programming content when a user performs a PVR-like function (e.g., fast-forward, rewind and pause) on a presentation of the programming content. In accordance with the invention, access to the one or more alternate commercials is provided. When a request for manipulation of the presentation (e.g., fast-forwarding, rewind and pausing) of the programming content is received, which includes information concerning a manipulation speed affecting the presentation, at least one of the commercials (original or alternate) is selected for presentation as a function of the manipulation speed.
[0014] The one or more alternate commercials are in different lengths, and correspond to different manipulation speeds selectable by the user. The length of the selected alternate commercial(s) corresponds to the length of the original commercial played at the manipulation speed. The selected alternate commercials(s) replacing the original commercial may comprise a video, a series of slides, a still image, etc. for providing a full impression of the goods or service promoted, which the original commercial fails to provide at the manipulation speed.
BRIEF DESCRIPTION OF THE DRAWING
P-0015[0015] Further objects, features and advantages of the invention will become apparent from the following detailed description taken in conjunction with the accompanying drawing showing illustrative embodiments of the invention, in which:
P-0016[0016]FIG. 1 illustrates a tree structure demonstrating a “play list” concept in accordance with the invention;
P-0017[0017]FIG. 2 is a block diagram of a broadband communications system in accordance with the invention;
P-0018[0018]FIG. 3 illustrates a TV program comprising multiple program segments which is provided in the system of FIG. 2;
P-0019[0019]FIG. 4 illustrates a commercial branch table implementing the “play list” concept;
P-0020[0020]FIG. 5 illustrates a request for program material from a set-top terminal in the system of FIG. 2;
P-0021[0021]FIG. 6 is a flow chart depicting a process for providing program material in response to the request of FIG. 5;
P-0022[0022]FIG. 7 illustrates selected carriers for transmitting program materials in a forward passband of the system of FIG. 2;
P-0023[0023]FIG. 8 is a flow chart depicting a process for pausing a program in response to a pause message from a set-top terminal;
P-0024[0024]FIG. 9 is a flow chart depicting a process for rewinding a program in response to a rewind message from a set-top terminal;
P-0025[0025]FIG. 10 is a flow chart depicting a process for fast-forwarding a program in response to a fast-forward message from a set-top terminal;
P-0026[0026]FIG. 11 illustrates application of alternate commercials to an original commercial, which vary with different fast-forward speeds in accordance with the invention;
P-0027[0027]FIG. 12 illustrates a graphical user interface showing a commercial and manipulated programming content in accordance with an embodiment of the invention; and
P-0028[0028]FIG. 13 illustrates a set-top terminal incorporating storage of commercial content in an embodiment of the invention.
DETAILED DESCRIPTION
P-0029[0029] The invention is directed to delivering programming content, including commercials therein, to users through a broadband communications network, e.g., a cable TV network. The programming content may comprise a broadcast program, e.g., a TV show, which is interrupted by commercials. In an embodiment of the invention, a user at a set-top terminal may issue commands to perform PVR-like functions (e.g., fast-forward, rewind, and pause) on the TV show received from the cable TV network. In addition, the user may control variable speeds of fast-forwarding and rewinding the show, e.g., 2 times (2×) and 10 times (10×) the normal playing speed. Like a PVR user, the user here may take advantage of the PVR-like functions to try to fast-forward or rewind commercials while he/she is reviewing the TV show. However, in accordance with the invention, when the user fast-forwards or rewinds the TV show including a commercial at a selected speed, the commercial is replaced with an alternate impression thereof suitable for that speed, e.g., a sequence of still frames comprising a slide presentation.
P-0030[0030] The invention is predicated upon a “play list” concept which FIG. 1 illustrates using a simple tree structure. For example, trunk section <b>160</b> of the tree represents a TV show which includes commercial segments (e.g., <b>161</b>, <b>163</b> and <b>165</b>) and TV show segments (e.g., <b>162</b> and <b>164</b>) and progresses at a normal play speed. Branches (e.g., <b>171</b> and <b>181</b>) extend from each segment (e.g., <b>161</b>) of trunk <b>160</b>, which represent the content replacing the segment at alternative, fast-forwarding or rewinding speeds. The number of branches extending from each trunk segment correspond to the number of alternative speeds, which illustratively are 2× and 10× normal speed in this instance. In other words, the tree structure of FIG. 1 represents a play list, based on which programming content is shown to a user depending on the actual play speed chosen by the user. Thus, in accordance with the invention, if the user chooses to fast-forward (or rewind) a commercial in segment <b>161</b> at a 2× the normal speed, an alternate impression of the commercial suitable to that speed, represented by branch <b>181</b>, is shown to the user, instead. On the other hand, if the user chooses to fast-forward (or rewind) the same commercial at 10× the normal speed, a second alternate impression of the commercial suitable to that speed, represented by branch <b>171</b>, is shown to the user, instead. Similarly, if the user chooses to fast-forward (or rewind) show segment <b>162</b> at the 2× speed, a fast-forward (or rewind) trick file corresponding to that speed, represented by branch <b>172</b>, is played to the user, instead, to achieve the desired fast-forward (or rewind) effect. On the other hand, if the user chooses to fast-forward (or rewind) the same show segment at the 10× speed, a fast-forward (or rewind) trick file corresponding to that speed, represented by branch <b>182</b>, is played to the user, instead, to achieve the desired fast-forward (or rewind) effect.
P-0031[0031]FIG. 2 illustrates broadband communications system <b>100</b> for providing interactive programming and services to users, which implements the inventive “play list” concept described above. In particular, system <b>100</b> provides a user with PVR-like functions to manipulate programming content being reviewed, and with an alternate commercial to an original commercial when the user rewinds or fast-forwards, or otherwise manipulates the original commercial, in accordance with the invention. In this illustrative embodiment, system <b>100</b> includes a cable system for delivering information and entertainment programs (including TV shows, movies, etc.) to set-top terminals on the user premises. As shown in FIG. 2, system <b>100</b> includes headend <b>105</b>, hub <b>120</b>, hybrid fiber coax (HFC) cable network <b>140</b> and different service area nodes including node <b>150</b>, which in this instance is connected to set-top terminals <b>158</b>-<b>1</b> through <b>158</b>-L in a neighborhood, where L represents an integer.
P-0032[0032] Headend <b>105</b> receives programs and services from various providers and sources, 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 MPEG-2 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.
P-0033[0033] Acquisition/Staging (A/S) processor <b>109</b> in headend <b>105</b> processes program materials including, e.g., TV program streams, from one or more of the aforementioned sources in analog and digital forms. Analog TV program streams may be formatted according to the National Television Standards Committee (NTSC) or Phase Alternating Line (PAL) broadcast standard. Digital TV streams may be formatted according to the Digital Video Broadcasting (DVB), Society of Cable Telecommunications Engineers (SCTE), or Advanced Television Systems Committee (ATSC) standards. Processor <b>109</b>, 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 may be encoded at a variable bit rate (VBR). To avoid data burstiness, processor <b>109</b> may in a conventional manner re-encode such digital content at a constant bit rate (CBR) to form the aforementioned transport streams. Encoding digital content at a CBR may also eliminate the need for otherwise complex data rate-shaping or re-quantization downstream.
P-0034[0034] An MPEG-2 transport stream contains multiple programs with different video and audio elementary streams multiplexed for transmission through the same transmission channel. The programs are identified by respective program identifications (IDs) within a transport stream. It should be noted at this point that the term “transmission channel” should not be confused with a “program channel.” A “transmission channel” signifies a designated frequency band through which a transport stream is transmitted. On the other hand, a “program channel” signifies the source of the program material selected by a user to view. For example, a user may select program channel <b>2</b> to view program material provided by CBS, program channel <b>14</b> to view program material provided by ESPN; program channel <b>32</b> to view program material provided by MTV, etc.
P-0035[0035] In this illustrative embodiment, the transmission channels, each carrying a transport stream, may be 6 MHz bands populating a forward passband, e.g., 350-750 MHz band, of a coaxial cable, which is allocated for downstream communication from headend <b>105</b> to a set-top terminal.
P-0036[0036] A/S processor <b>109</b> may receive “assets” including pre-staged movie videos, commercials, news reports, sports events, etc. from content providers. However, processor <b>109</b> may also create “assets” in real time while processing received program materials which are not pre-staged by the content providers. In general, an “asset” is a container for any object or set of objects that may be desired to implement a program, service, including video, audio, images, application executables, scripts, configuration files, text, fonts, and HTML pages. In addition to the raw content, metadata is also a part of an asset object that describes characteristics of the asset. For example, asset metadata may describe attributes that are inherent in the content of the asset, such as the rating, format, duration, size, or encoding method. Values for asset metadata are determined at the time the asset is created. In this illustrative embodiment, an asset concerning a program may include a metadata file and trick files associated with the program (described below), in addition to the program content contained in a transport stream. An asset concerning a commercial may include a metadata file and commercial branch table associated with the commercial (described below), in addition to the commercial content contained in a transport stream.
P-0037[0037]FIG. 3 illustrates TV program <b>200</b> which spans from 7:00 p.m. to 7:30 p.m. Program <b>200</b> comprises a show interrupted by commercials, which is typical. Thus, the program content in this instance consists of show segments <b>231</b>, <b>233</b> and <b>235</b>, interleaved with commercial segments <b>221</b> and <b>227</b>. Without loss of generality, commercial segment <b>221</b> comprises commercial <b>221</b><i>a </i>whereas commercial segment <b>227</b> comprises commercials <b>227</b><i>a, </i><b>227</b><i>b </i>and <b>227</b><i>c </i>in this example.
P-0038[0038] In accordance with an aspect of the invention, the TV streams received by processor <b>109</b> are pre-processed, e.g., by the providers, to include delimiting messages, on which processor <b>109</b> relies to identify the demarcations (or edges) of different programs and program segments within each program. Thus, in this instance, before processor <b>109</b> processes the TV stream containing TV program <b>200</b>, a first delimiting message is inserted at the beginning of segment <b>231</b>, indicating the beginning of TV program <b>200</b>; second delimiting messages are inserted at the beginnings of segments <b>221</b> and <b>227</b>, indicating the beginnings of the respective commercial segments; third delimiting messages are inserted at the ends of segments <b>221</b> and <b>227</b>, indicating the ends of the respective commercial breaks; and a fourth delimiting message is inserted at the end of segment <b>235</b>, indicating the end of TV program <b>200</b>.
P-0039[0039] In this illustrative embodiment, the TV streams received by processor <b>109</b> are also pre-processed to include digital cue messages. Each digital cue message is associated with an upcoming commercial segment, and contains information concerning, e.g., the identities of the commercials appearing in the upcoming commercial segment, the duration of each commercial, identifiers of the beginning I-frame and last I-frame of each commercial (which is MPEG-2 encoded), etc. The commercials may be identified by different codes, respectively, and the commercial duration is typically 30 seconds long. For example, digital cue message <b>241</b> (<b>247</b>) is provided in advance of associated commercial segment <b>221</b> (<b>227</b>) by a predetermined period, e.g., six seconds in this instance. In response to digital cue message <b>241</b> (<b>247</b>), for each of approaching commercials <b>221</b><i>a </i>(<b>227</b><i>a, </i><b>227</b><i>b </i>and <b>227</b><i>c</i>), manager <b>124</b> generates a commercial branch table in anticipation of a user's manipulating (e.g., fast-forwarding and rewinding) the commercial, to implement the above-described “play list” concept.
P-0040[0040]FIG. 4 illustrates commercial branch table <b>300</b> corresponding to commercial <b>221</b><i>a </i>which is generated by manager <b>124</b> based on the information in digital cue message <b>241</b>. In generating table <b>300</b>, manager <b>124</b> looks up alternate commercials to original commercial <b>221</b><i>a </i>from an advertising table (not shown) stored in manager <b>124</b> or other location. In the advertising table, for each original commercial identified by its code, alternate commercials to the original commercial are listed in association therewith and identified by their respective codes. These alternate commercials correspond to different fast-forward and rewind speeds (e.g., 2×, 3×, 6× and 10× the normal play speed in this instance), or durations thereof in forward and reverse play directions. In accordance with the invention, an alternate commercial is played in lieu of the original commercial depending on the actual play speed or the allowed commercial duration resulting from such a play speed.
P-0041[0041] For example, in anticipation of the user's fast-forwarding (rewinding) original commercial <b>221</b><i>a </i>(e.g., 30 seconds long) at 2× the normal play speed, which would normally render commercial <b>221</b><i>a </i>unintelligible as in prior art, one of the alternate commercials here may be a 30/2=15 second commercial substitute for commercial <b>221</b><i>a </i>at the 2× speed to give the otherwise impossible full impression of the goods or service promoted, albeit with a shorter time allotment (i.e., 15 seconds vs. originally 30 seconds). Another alternate commercial may be a 30/3=10, second commercial substitute for commercial <b>221</b><i>a </i>at a 3× speed. Yet another alternate commercial may be a 30/6=5 second commercial substitute for commercial <b>221</b><i>a </i>at a 6× speed. Still yet another alternate commercial may be a 30/10=3 second commercial substitute for commercial <b>221</b><i>a </i>at a 10× speed. For example, the 15 and 10 second alternate commercials may comprise videos in the corresponding lengths promoting the goods or service in question; the 5 second alternate commercial may comprise a number of slides promoting the goods or service in question; and the 3 second alternate commercial may comprise a still image (e.g., a logo) representing the goods or service in question.
P-0042[0042] As shown in FIG. 4, manager <b>124</b> populates in column <b>321</b><i>a </i>of commercial branch table <b>300</b> codes A<b>1</b>, A<b>2</b>, A<b>3</b> and A<b>4</b> identifying alternate commercials to commercial <b>221</b><i>a </i>which correspond to the 10×, 6×, 3× and 2× fast-forward speeds (or 3 second, 5 second, 10 second and 15 second durations in the forward play direction), respectively; and in column <b>321</b><i>b </i>codes B<b>1</b>, B<b>2</b>, B<b>3</b> and B<b>4</b> identifying alternate commercials to commercial <b>221</b><i>a </i>which correspond to the 10×, 6×, 3× and 2× rewind speeds (or 3 second, 5 second, 10 second and 15 second durations in the reverse play direction), respectively. It suffices to know for now that the actual alternate commercial content identified by codes A<b>1</b>, A<b>2</b>, A<b>3</b>, A<b>4</b>, B<b>1</b>, B<b>2</b>, B<b>3</b> and B<b>4</b> are stored in advertisement (Ad) storage <b>126</b>, which are also MPEG-2 encoded. Storage <b>126</b> has a memory capacity on the order of, say, terabytes to adequately store the video, slide shows and/or still images that make up the array of alternate commercials. Manager <b>124</b> also populates in row <b>321</b> of table <b>300</b> the identifiers of the beginning I-frame (e.g., I<sub>1003</sub>) and ending I-frame of commercial <b>221</b><i>a </i>(e.g., I<sub>2501</sub>), which information is obtained from digital cue message <b>241</b>. Table <b>300</b> is made part of the asset concerning commercial <b>221</b><i>a, </i>and stored in association with commercial <b>221</b><i>a </i>in asset storage (not shown), which may reside in library manager <b>113</b> described below.
P-0043[0043] Processor <b>109</b> creates in real time trick files associated with show segment <b>231</b> (<b>233</b>, <b>235</b>) as part of its asset which are used to perform PVR-like functions (e.g., fast-forwarding and rewinding) on show segment <b>231</b> (<b>233</b>, <b>235</b>), in accordance with the above-described “play list” concept. In general, for each fast-forward play speed, a “fast-forward” trick file is provisioned, which contains an array of identifiers of I-frames in the program stream (MPEG-2 encoded as mentioned before) corresponding to show segment <b>231</b> (<b>233</b>, <b>235</b>) in a forward play direction. Another trick file is a “rewind” trick file which contains an array of identifiers of I-frames in the program stream corresponding to show segment <b>231</b> (<b>233</b>, <b>235</b>) in the reverse play direction. The I-frame identifiers in the trick files are used as indices or markers for rewinding and fast-forwarding of show segment <b>231</b> (<b>233</b>, <b>235</b>). It should be noted that not all of the I-frames associated with show segment <b>231</b> (<b>233</b>, <b>235</b>) are selected for the trick files. Rather, the I-frames are selected periodically along the program stream corresponding to show segment <b>231</b> (<b>233</b>, <b>235</b>). Thus, the shorter the period is, the closer the instants from which program <b>200</b> can be rewound, and to which program <b>200</b> can be fast-forwarded, thereby achieving finer adjustments.
P-0044[0044] For example, the fast-forward (rewind) trick files for a 2× play speed in this instance contain identifiers of the I-frames associated with show segment <b>231</b> (<b>233</b>, <b>235</b>) which are selected at a period P in the forward (reverse) play direction; the fast-forward (rewind) trick files for a 3× play speed in this instance contain identifiers of the I-frames selected at a period of 3/2=1.5 P in the forward (reverse) play direction; the fast-forward (rewind) trick files for a 6× play speed in this instance contain identifiers of the I-frames selected at a period of 6/2=3 P in the forward (reverse) play direction; and the fast-forward (rewind) trick files for a 10× play speed in this instance contain identifiers of the I-frames selected at a period of 10/2=5 P in the forward (reverse) play direction. The resulting trick files are made part of the asset concerning show segment <b>231</b> (<b>233</b>, <b>235</b>), and stored in association with show segment <b>231</b> (<b>233</b>, <b>235</b>) in the aforementioned asset storage.
P-0045[0045] In another embodiment, the actual trick files are not stored. Rather, the period P is stored in association with show segment <b>231</b> (<b>233</b>, <b>235</b>). Depending on the actual play speed selected by a user, media processor <b>119</b> (described below) reads the I-frames associated with show segment <b>231</b> (<b>233</b>, <b>235</b>) at an appropriate period to achieve the play speed effect. Specifically, the I-frames are read in a forward (reverse) play direction at a period P to achieve a 2× fast-forward (rewind) speed effect; they are read in a forward (reverse) play direction at a period 1.5 P to achieve a 3× fast-forward (rewind) speed effect; they are read in a forward (reverse) play direction at a period 3 P to achieve a 6× fast-forward (rewind) speed effect; and they are read in a forward (reverse) play direction at a period 5 P to achieve a 10× fast-forward (rewind) speed effect.
P-0046[0046] The transport streams generated by processor <b>109</b>, which contain live TV programs in this instance, are fed to cache manager <b>111</b> through play list manager <b>124</b>. Manager <b>111</b> includes a cache memory (not shown), e.g., a disk cache, having a memory capacity on the order of terabytes. Manager <b>111</b> copies the transport streams onto the cache memory, and also forwards the same to library manager <b>113</b> for long-term storage. The latter includes library storage having a memory capacity on the order of hundreds of terabytes, much larger than that of the cache memory such that the cache memory stores the last Y hours' worth of the TV programs while the library storage stores the last Z hours' worth of the TV program, where the value of Z is much greater than that of Y. It suffices to know for now that use of the cache memory, which affords faster access to its content than the library storage, facilitates a speedy retrieval of a requested program in the event of a “cache hit,” i.e., the requested program being within the last Y hour broadcast. Otherwise, a “cache miss” causes locating the requested program in the library storage, thereby incurring a delay in the retrieval of the program.
P-0047[0047] Network controller <b>125</b>, among others, assigns resources for transporting program materials to set-top terminals and communicates various data including system information with the terminals. Upstream data from a set-top terminal to network controller <b>125</b> is communicated via a reverse passband, e.g., 5-40 MHz band, of a coaxial cable. The reverse passband may comprise reverse data channels (RDCs) having a 1 MHz bandwidth in this instance, through which quaternary phase shift keying (QPSK) signals containing upstream data are transmitted. It should be noted that the 1 MHz bandwidth allocated for an RDC here is for illustrative purposes only. It will be appreciated that a person skilled in the art may allocate other bandwidths therefor depending on the actual implementations. A set-top terminal utilizes an RDC for sending both application data and control messages. For example, the Digital Audio Visual Council (DAVIC), a standard setting organization, has defined a contention-based access mechanism whereby multiple set-top terminals share an RDC. This mechanism enables the set-top terminals to transmit upstream messages without a dedicated connection to a QPSK demodulator. The mechanism also provides equal access to the set-top terminals that share the RDC, and enables detection and recovery from reverse path collisions that occur when two or more of the terminals transmit an upstream message simultaneously. It should be noted that a Data Over Cable Service Interface Specification (DOCSIS), another industry standard, may be used to specify the data format of an upstream message, and the method of, and equipment used in, the upstream transmission as well.
P-0048[0048] As also specified by DAVIC, for communications purposes, the set-top terminals and network controller <b>125</b> are identified by the Internet protocol (IP) addresses assigned thereto. However, these IP addresses may be randomly assigned each time when system <b>100</b> is reconfigured. As a result, the IP address of a set-top terminal or controller <b>125</b> may change after a system reconfiguration. Nevertheless, each set-top terminal and controller <b>125</b> is also assigned a media access control (MAC) address on a permanent basis, surviving any system reconfiguration.
P-0049[0049] Downstream data from network controller <b>125</b> to a set-top terminal is communicated via forward data channels (FDCs). These channels, often referred to as “out-of-band” channels, may occupy the 70-130 MHz band of a coaxial cable. QPSK signals containing system messages to a set-top terminal are transmitted through an FDC having a 1 MHz bandwidth in this instance. It should be noted that the 1 MHz bandwidth allocated for an FDC here is for illustrative purposes only. It will be appreciated that a person skilled in the art may allocate other bandwidths therefor depending on the actual implementations.
P-0050[0050] When a user at a set-top terminal, say, terminal <b>158</b>-<b>1</b>, turns on the TV associated therewith and selects a particular program channel, say, program channel <b>2</b>, or change from another channel to channel <b>2</b>, terminal <b>158</b>-<b>1</b> in a well known manner scans for any transport streams transporting programs to the neighborhood. In system <b>100</b>, each transport stream is identified by a unique transport stream identification (TSID).
P-0051[0051] Continuing the above example, once the TSIDs of the transport streams are detected, terminal <b>158</b>-<b>1</b> sends through QPSK modem pool <b>127</b> a request for program channel <b>2</b> material. FIG. 5 illustrates one such request (denoted <b>400</b>) sent from a set-top terminal to network controller <b>125</b> via an RDC. As shown in FIG. 5, request <b>400</b> includes, among others, destination field <b>403</b> which in this instance contains the IP address of network controller <b>125</b> for which request <b>400</b> is destined; request data field <b>406</b> which contains data concerning the detected TSIDs and the requested program channel material, e.g., program channel <b>2</b> material in this instance; and origination field <b>409</b> which in this instance contains the IP (and/or MAC) address of terminal <b>158</b>-<b>1</b> from which request <b>400</b> originates.
P-0052[0052] After receiving request <b>400</b>, network controller <b>125</b> reads the received request to learn the TSIDs, the identity of the requested program material, and the origination address therein, as indicated at step <b>503</b> in FIG. 6. Network controller <b>125</b> communicates with media processor <b>119</b> to determine the capacity required for transmitting the requested program material. Based on the required capacity, controller <b>125</b> at step <b>506</b> selects a transport stream among those identified by the received TSIDs which is suitable for transporting the requested program material. Controller <b>125</b> at step <b>508</b> identifies the carrier carrying the selected transport stream.
P-0053[0053] Referring also to FIG. 2, modulator bank <b>123</b> in this instance is located in hub <b>120</b> connected to headend <b>105</b> via IP transport on the one hand and to HFC cable network <b>140</b> on the other hand. Bank <b>123</b> includes multiple modulators, each of which is used to modulate transport streams onto different carriers. Each modulated carrier carrying a transport stream is transmitted through a transmission channel associated therewith. FIG. 7 illustrates M carriers, C<sub>1 </sub>through C<sub>M</sub>, associated with M transmission channels in the forward passband. As shown in FIG. 7, the carrier frequency of C<sub>1 </sub>is denoted CF<sub>1</sub>; the carrier frequency of C<sub>2 </sub>is denoted CF<sub>2</sub>; . . . ; and the carrier frequency of C<sub>M </sub>is denoted CF<sub>M</sub>. In this example, each program stream may contain 4.2 Mb/s video and audio program data. By using a 256-quadrature-amplitude-modulation (256-QAM) technique and 6 MHz transmission channel, each modulator in modulator bank <b>123</b> in this instance may modulate up to 9 program streams, multiplexed in a transport stream, onto the corresponding carrier. The resulting modulated carrier is transmitted through the transmission channel associated with the carrier. Network controller <b>125</b> may include therein a carrier assignment table which lists, for each carrier, the TSID of the transport stream carried thereby. The carrier identification by network controller <b>125</b> at aforementioned step <b>508</b> may be achieved by looking up from the table the carrier associated with the TSID of the selected transport stream. Based on the requested program channel, network controller <b>125</b> at step <b>509</b> determines the program ID identifying the program stream representing the requested program material, i.e., program channel <b>2</b> material in this instance, which is then multiplexed with other program streams in the selected transport stream. At step <b>512</b>, network controller <b>125</b> communicates to media processor <b>119</b> a first message containing the identity of the modulator in modulator bank <b>123</b> which corresponds to the carrier, say, C<sub>1</sub>, just determined, and the program ID associated with the requested program channel material just determined. Network controller <b>125</b> at step <b>515</b> sends, through QPSK modem pool <b>127</b>, a second message responsive to the received request to set-top terminal <b>158</b>-<b>1</b> identified by the origination IP (and/or MAC) address in field <b>409</b> of request <b>400</b>. This second message traversing an FDC contains the information concerning the carrier frequency, i.e., CF<sub>1 </sub>in this instance, to which terminal <b>158</b>-<b>1</b> should tune to receive the appropriate transport stream, and the program ID for extracting the desired program stream, representing in this instance program channel <b>2</b> material, within the transport stream.
P-0054[0054] In response to the first message, processor <b>119</b> directs cache manager <b>111</b> to deliver a copy of the program stream representing the requested program channel material thereto and causes the program stream to be multiplexed with any other program streams already in the transport stream identified by the selected TSID. In addition, processor <b>119</b> causes switching unit <b>117</b> to switch the resulting transport stream to the modulator corresponding to the carrier C<sub>1</sub>. Accordingly, the modulator modulates the carrier C<sub>1 </sub>with the received transport stream, and causes transmission of the modulated carrier through the transmission channel associated with CF<sub>1</sub>.
P-0055[0055] Based on the information in the second message, terminal <b>158</b>-<b>1</b> tunes to the carrier frequency CF<sub>1 </sub>to receive the transmitted transport stream, and extracts therefrom the desired program stream, representing program channel <b>2</b> material in this instance. In a well known manner, terminal <b>158</b>-<b>1</b> converts the extracted program stream to appropriate signals for the associated TV to play program channel <b>2</b> material.
P-0056[0056] While the program channel <b>2</b> material is being played, terminal <b>158</b>-<b>1</b> continuously registers the last I-frame identifier in the received transport stream. From time to time, terminal <b>158</b>-<b>1</b> sends a “heartbeat” containing the IP (and/or MAC) address identifying terminal <b>158</b>-<b>1</b> and the last I-frame identifier to media processor <b>119</b>. Processor <b>119</b> keeps, for terminal <b>158</b>-<b>1</b>, a record identified by the IP (and/or MAC) address of terminal <b>158</b>-<b>1</b>, and tracks the program being transmitted to terminal <b>158</b>-<b>1</b> and its I-frame progress. When processor <b>119</b> no longer receives heartbeats from terminal <b>158</b>-<b>1</b>, e.g., because of an off state of the terminal, processor <b>119</b> may cause the transmission of the transport stream to terminal <b>158</b>-<b>1</b> to be halted.
P-0057[0057] When the user issues a pause command to terminal <b>158</b>-<b>1</b>, e.g., by pressing a “pause” key on a remote control associated therewith to temporarily stop the progress of the program, terminal <b>158</b>-<b>1</b> issues a pause message to media processor <b>119</b> identified by its IP address. The pause message in this instance includes a pause initiation command, the last I-frame identifier registered by terminal <b>158</b>-<b>1</b>, and the IP and/or MAC address of terminal <b>158</b>-<b>1</b>. After issuing the pause message, terminal <b>158</b>-<b>1</b> enters a pause state and causes the picture corresponding to the next I-frame, say I-frame<sub>pause</sub>, to be frozen on the TV screen, thereby achieving the pause effect. After receiving the pause message, processor <b>119</b> reads the received pause message, as indicated at step <b>803</b> in FIG. 8. Processor <b>119</b> at step <b>806</b> causes the current transmission of the program material to set-top terminal <b>158</b>-<b>1</b> (identified by the received IP and/or MAC address) to be halted at the I-frame immediately following the last I-frame identified in the received message. Processor <b>119</b> at step <b>809</b> retrieves the record associated with terminal <b>158</b>-<b>1</b>. Processor <b>119</b> at step <b>812</b> notes in the record that the transmission of the program material to terminal <b>158</b>-<b>1</b> has been halted at I-frame<sub>pause</sub>.
P-0058[0058] When the user issues a command to resume viewing the program material, e.g., by toggling the pause key on the remote control, terminal <b>158</b>-<b>1</b> exits the pause state, sends a resumption message to processor <b>119</b>, and readies itself to receive the program material starting from I-frame<sub>pause</sub>. This resumption message includes a resumption command, and the IP and/or MAC address of terminal <b>158</b>-<b>1</b>. After reading the received resumption message, processor <b>119</b> retrieves the record associated with terminal <b>158</b>-<b>1</b> identified by the received IP and/or MAC address. In response to the resumption command, processor <b>119</b> causes the transmission of the program material to terminal <b>158</b>-<b>1</b> to be restarted from I-frame<sub>pause</sub>, and notes in the record the transmission resumption event. As a result, terminal <b>158</b>-<b>1</b> resumes receiving the program material in the same program stream delivered thereto before. It should be noted that use of a MAC address, instead of an IP address, to identify terminal <b>158</b>-<b>1</b> may be advantageous here especially when the pause state is long, so much so that a reconfiguration of system <b>100</b> may have occurred during such a state. In that case, the IP address identifying terminal <b>158</b>-<b>1</b> before the system reconfiguration may be different than that after the reconfiguration, and as a result, by using only the pre-reconfiguration IP address of terminal <b>158</b>-<b>1</b> for its identification, the resuming program stream would not be delivered to the intended terminal <b>158</b>-<b>1</b> after the reconfiguration. On the other hand, since the MAC address of terminal <b>158</b>-<b>1</b> is immutable and survives any system reconfiguration, by relying on the MAC address of terminal <b>158</b>-<b>1</b> for its identification here, the resuming program stream would be correctly delivered to terminal <b>158</b>-<b>1</b> even after a system reconfiguration.
P-0059[0059] While viewing a program, the user may issue a rewind command, e.g., by pressing a rewind key on the remote control, to rewind the program. In that case, terminal <b>158</b>-<b>1</b> issues a rewind message to processor <b>119</b> identified by its IP address. This rewind message includes a rewind initiation command, the rewind speed specified by the user, the last I-frame identifier registered by terminal <b>158</b>-<b>1</b>, and the IP address (and/or MAC address) identifying terminal <b>158</b>-<b>1</b>. As mentioned before, the user here is afforded variable rewind speeds, in accordance with an aspect of the invention. For example, by pressing the rewind key on the remote control once, the user in this instance indicates to terminal <b>158</b>-<b>1</b> that the specified rewind speed is 2× the normal play speed; by pressing the rewind key on the remote control twice in quick succession, the specified rewind speed is the 3× speed; by pressing the rewind key on the remote control three times in quick succession, the specified rewind speed is the 6× speed; and by pressing the rewind key on the remote control four times in quick succession, the specified rewind speed is the 10× speed.
P-0060[0060] After processor <b>119</b> reads the received rewind message, processor <b>119</b> retrieves the record associated with set-top terminal <b>158</b>-<b>1</b> identified by the received IP address (and/or MAC address). Knowing from the record the identity of the program being transmitted, and based on the last T-frame identifier in the received rewind message, processor <b>119</b> determines whether the rewind command is issued by the user during a show segment (e.g., <b>231</b>, <b>233</b>, <b>235</b>) or a commercial segment (e.g., <b>221</b>, <b>227</b>), as indicated at step <b>903</b> in FIG. 9.
P-0061[0061] In a first scenario where the rewind command is issued during a show segment, say, show segment <b>233</b>, processor <b>119</b> at step <b>906</b> retrieves from the aforementioned asset storage a rewind trick file associated with show segment <b>233</b>, followed by commercial branch table <b>300</b> associated with commercial <b>221</b><i>a, </i>a rewind trick file associated with show segment <b>231</b>, etc. in that order, which is reverse to the order in which their associated assets were stored in the asset storage. The rewind trick files as retrieved correspond to the rewind speed specified in the received rewind message, say, the 2× speed in this instance. Based on the last I-frame information in the received message, processor <b>119</b> at step <b>912</b> identifies the I-frame in the rewind trick file associated with show segment <b>233</b>, which either matches or is the closest to that last I-frame.
P-0062[0062] Processor <b>119</b> at step <b>915</b> reads the array of identifiers of the I-frames in the rewind trick file starting from that of the identified I-frame. Processor <b>119</b> at step <b>918</b> causes the program material, corresponding to the I-frame identifiers as read, to be retrieved from cache manager <b>111</b>, and to be transmitted in the transport stream to terminal <b>158</b>-<b>1</b>, thereby achieving the desired rewind effect. After reading the rewind trick file associated with show segment <b>233</b>, processor <b>119</b> at step <b>921</b> reads commercial branch table <b>300</b>. Processor <b>119</b> at step <b>924</b> identifies B<b>4</b> representative of the alternate commercial to original commercial <b>221</b><i>a </i>at the 2× rewind speed. Processor <b>119</b> at step <b>927</b> retrieves the alternate commercial represented by B<b>4</b> from Ad storage <b>126</b>. Processor <b>119</b> at step <b>930</b> causes the alternate commercial content to be transmitted in the transport stream to terminal <b>158</b>-<b>1</b>, thereby providing the user with the full impression of the alternate commercial, albeit 15 seconds long. After the transmission of the alternate commercial, processor <b>119</b> reads the rewind trick file associated with show segment <b>231</b> in a similar manner to reading the rewind trick file associated with show segment <b>233</b> described above; and so on and so forth.
P-0063[0063] In a second scenario where the rewind command is issued during a commercial segment, say, commercial segment <b>221</b>, processor <b>119</b> at step <b>931</b> retrieves from the aforementioned asset storage a commercial branch table (<b>300</b>) associated with each commercial (<b>221</b><i>a</i>) in commercial segment <b>221</b>, followed by a rewind trick file associated with show segment <b>231</b>, etc. The rewind trick file as retrieved corresponds to the rewind speed specified in the received rewind message, which is the 2× speed in this instance. Based on the last I-frame identifier specified in the received message, and the identifier of the beginning I frame of commercial <b>221</b><i>a </i>(e.g., I<sub>1003</sub>) in table <b>300</b>, processor <b>119</b> at step <b>934</b> determines how much time T of commercial <b>221</b><i>a </i>has elapsed before the user issues the rewind command, where
<i>T</i>=(1+number of I frames between beginning I frame of commercial and last I frame identified in received rewind message)×(I-frame period), [1]
P-0064[0064] where the I-frame period is predetermined. Processor <b>119</b> at step <b>937</b> determines the appropriate duration t of the alternate commercial to be played, where
<i>t=T</i>/(relative rewind speed). [2]
P-0065[0065] For example, t=T/2 if the rewind speed is the 2× speed, which is the case in this instance; t=T/3 if the rewind speed is the 3× speed; t=T/6 if the rewind speed is the 6× speed; and t=T/10 if the rewind speed is the 10× speed. After determining t, processor <b>119</b> at step <b>940</b> retrieves one or more alternate commercials from Ad storage <b>126</b> to occupy t. Processor <b>119</b> proceeds from step <b>940</b> to above-described step <b>930</b> where it causes the retrieved alternate commercial content to be transmitted in the transport stream to terminal <b>158</b>-<b>1</b>,
P-0066[0066] By way of example, let's say T=20 seconds. Accordingly, t=20/2=10 seconds in this instance. Knowing that it has a 10 second slot for one or more alternate commercials to fill, processor <b>119</b> identifies from table <b>300</b> B<b>3</b> representative of an alternate commercial which is 10 seconds long. Processor <b>119</b> retrieves the alternate commercial represented by B<b>3</b> from Ad storage <b>126</b>. Processor <b>119</b> then causes the alternate commercial content to be transmitted in the transport stream to terminal <b>158</b>-<b>1</b>, thereby providing the user with the full impression of the alternate commercial, albeit <b>10</b> seconds long.
P-0067[0067] In another example, let's say T=16 seconds. Accordingly, t=16/2=8 seconds in this instance. Knowing that it has a 8 second time slot for one or more alternate commercials to fill, processor <b>119</b> identifies B<b>2</b> representative the longest alternate commercial (i.e., 5 seconds long) in table <b>300</b> that can be fully displayed in that time slot (i.e., 8 seconds). Processor <b>119</b> first causes the alternate commercial content identified by B<b>2</b> to be transmitted in the transport stream to terminal <b>158</b>-<b>1</b>. For the remaining time in the time slot (i.e., 8−5=3 seconds), processor <b>119</b> in this instance causes transmission of a still image (e.g., a logo) representing the goods or service promoted to terminal <b>158</b>-<b>1</b> and a display thereof on the user's TV screen for 3 seconds. Such a still image in this instance is identified as B<b>1</b> in table <b>300</b>.
P-0068[0068] After the transmission of the alternate commercial(s) to commercial <b>221</b><i>a, </i>processor <b>119</b> reads the rewind trick file associated with show segment <b>231</b> in a similar manner to reading the rewind trick file associated with show segment <b>233</b> described above; and so on and so forth.
P-0069[0069] When the user issues a command to stop rewinding the program, e.g., by pressing a stop key on the remote control, terminal <b>158</b>-<b>1</b> sends a rewind termination message to processor <b>119</b>. This message includes a rewind termination command, and the IP address (and/or MAC address) of terminal <b>158</b>-<b>1</b>.
P-0070[0070] In a first scenario where the rewind termination command is received during a show segment, processor <b>119</b> stops reading the rewind trick file associated with the show segment. Processor <b>119</b> learns from the record associated with terminal <b>158</b>-<b>1</b> the last I-frame identifier read from the rewind trick file. Processor <b>119</b> causes retrieval of the show program material at the normal forward speed from cache manager <b>111</b> starting from the I-frame identified by the last read identifier, and transmission of the retrieved show program material to terminal <b>158</b>-<b>1</b>. As a result, terminal <b>158</b>-<b>1</b> resumes receiving the show program material at the normal forward speed in the same transport stream thereto.
P-0071[0071] In a second scenario where the rewind termination command is received during a display of an alternate commercial to, say, commercial <b>221</b><i>a, </i>processor <b>119</b> proceeds to finish playing the alternate commercial and in the meantime looks up from row <b>321</b> of table <b>300</b> the ending I-frame identifier (e.g., I<sub>2501</sub>) of commercial <b>221</b><i>a. </i>Processor <b>119</b> causes retrieval of the show program material (or another commercial, if any) at the normal forward speed from cache manager <b>111</b> starting from the I-frame immediately following I<sub>2501</sub>. As a result, terminal <b>158</b>-<b>1</b> resumes receiving the show program material (and any other commercials) at the normal forward speed in the same transport stream thereto.
P-0072[0072] After rewinding a program, the user may issue a fast-forward command, erg., by pressing a fast-forward key on the remote control, to fast-forward the program. In that case, terminal <b>158</b>-<b>1</b> issues a fast-forward message to processor <b>119</b> identified by its IP address. This fast-forward message includes a fast-forward initiation command, the fast-forward speed specified by the user, the last I-frame identifier registered by terminal <b>158</b>-<b>1</b>, and the IP address (and/or MAC address) identifying terminal <b>158</b>-<b>1</b>. As mentioned before, the user here is afforded variable fast-forward speeds. For example, by pressing the fast-forward key on the remote control once, the user in this instance indicates to terminal <b>158</b>-<b>1</b> that the specified fast-forward speed is 2× the normal play speed; by pressing the fast-forward key on the remote control twice in quick succession, the specified fast-forward speed is the 3× speed; by pressing the fast-forward key on the remote control three times in quick succession, the specified fast-forward speed is the 6× speed; and by pressing the fast-forward key on the remote control four times in quick succession, the specified fast-forward speed is the 10× speed.
P-0073[0073] After processor <b>119</b> reads the received fast-forward message, processor <b>119</b> retrieves the record associated with set-top terminal <b>158</b>-<b>1</b> identified by the received IP address (and/or MAC address). Knowing from the record the identity of the program being transmitted, and based on the last I-frame identifier in the received fast-forward message, processor <b>119</b> determines whether the fast-forward command is issued by the user during a show segment (e.g., <b>231</b>, <b>233</b>, <b>235</b>) or a commercial segment (e.g., <b>221</b>, <b>227</b>), as indicated at step <b>1003</b> in FIG. 10.
P-0074[0074] In a first scenario where the fast-forward command is issued during a show segment, say, show segment <b>231</b>, processor <b>119</b> at step <b>1006</b> retrieves from the aforementioned asset storage a fast-forward trick file associated with show segment <b>231</b>, followed by commercial branch table <b>300</b> associated with commercial <b>221</b><i>a, </i>a fast-forward trick file associated with show segment <b>233</b>, etc. in that order, which is the same as the order in which their associated assets were stored in the asset storage. The fast-forward trick files as retrieved correspond to the fast-forward speed specified in the received fast-forward message, say, the 2× speed in this instance. Based on the last I-frame information in the received message, processor <b>119</b> at step <b>1012</b> identifies the I-frame in the fast-forward trick file associated with show segment <b>231</b>, which either matches or is the closest to that last I-frame.
P-0075[0075] Processor <b>119</b> at step <b>1015</b> reads the array of identifiers of the I-frames in the fast-forward trick file starting from that of the identified I-frame. Processor <b>119</b> at step <b>1018</b> causes the show program material, corresponding to the I-frame identifiers as read, to be retrieved from cache manager <b>111</b>, and to be transmitted in the transport stream to terminal <b>158</b>-<b>1</b>, thereby achieving the desired fast-forward effect. After reading the fast-forward trick file associated with show segment <b>231</b>, processor <b>119</b> at step <b>1021</b> reads commercial branch table <b>300</b>. Processor <b>119</b> at step <b>1024</b> identifies A<b>4</b> representative of alternate commercial to commercial <b>221</b><i>a </i>at the 2× fast-forward speed. Processor <b>119</b> at step <b>1027</b> retrieves the alternate commercial represented by A<b>4</b> from Ad storage <b>126</b>. Processor <b>119</b> at step <b>1030</b> causes the alternate commercial content to be transmitted in the transport stream to terminal <b>158</b>-<b>1</b>, thereby providing the user with the full impression of the alternate commercial, albeit 15 seconds long. After the transmission of the alternate commercial, processor <b>119</b> reads the fast-forward trick file associated with show segment <b>233</b> in a similar manner to reading the rewind trick file associated with show segment <b>231</b> described above; and so on and so forth.
P-0076[0076] In a second scenario where the fast-forward command is issued during a commercial segment, say, commercial segment <b>221</b>, processor <b>119</b> at step <b>1031</b> retrieves from the aforementioned asset storage a commercial branch table (<b>300</b>) associated with each commercial (<b>221</b><i>a</i>) in commercial segment <b>221</b>, followed by a fast-forward trick file associated with show segment <b>233</b>, etc. The fast-forward trick file as retrieved corresponds to the fast-forward speed specified in the received fast-forward message, which is the 2× speed in this instance. Based on the last I-frame identifier specified in the received message, and the identifier of the ending I frame of commercial <b>221</b><i>a </i>(i.e., I<sub>2501</sub>) in table <b>300</b>, processor <b>119</b> at step <b>1034</b> determines how much time T′ of commercial <b>221</b><i>a </i>is remaining when the user issues the fast-forward command, where
<i>T</i>′=(1+number of I frames between last I frame identified in received fast-forward message and ending I frame of commercial)×(I-frame period), [3]
P-0077[0077] where as mentioned before, the I-frame period is predetermined. Processor <b>119</b> at step <b>1037</b> determines the appropriate duration t′ of the alternate commercials to be played, where
<i>t′=T</i>′/(relative fast-forward speed). [4]
P-0078[0078] For example, t′=T′/2 if the fast-forward speed is the 2× speed, which is the case in this instance; t′=T′/3 if the fast-forward speed is the 3× speed; t′=T′/6 if the fast-forward speed is the 6× speed; and t′=T′/10 if the fast-forward speed is the 10× speed. After determining t′, processor <b>119</b> at step <b>1040</b> retrieves one or more alternate commercials from Ad storage <b>126</b> to occupy t′. Processor <b>119</b> proceeds from step <b>1040</b> to above-described step <b>1030</b> where it causes the alternate commercial content to be transmitted in the transport stream to terminal <b>158</b>-<b>1</b>.
P-0079[0079] By way of example, let's say T′=20 seconds. Accordingly, t′=20/2=10 seconds in this instance. Knowing that it has a 10 second time slot for one or more alternate commercials to fill, processor <b>119</b> identifies from table <b>300</b> A<b>3</b> representative of an alternate commercial which is 10 seconds long. Processor <b>119</b> retrieves the alternate commercial represented by A<b>3</b> from Ad storage <b>126</b>. Processor <b>119</b> then causes the alternate commercial content to be transmitted in the transport stream to terminal <b>158</b>-<b>1</b>, thereby providing the user with the full impression of the alternate commercial, albeit 10 seconds long.
P-0080[0080] In another example, let's say T′=16 seconds. Accordingly, t′=16/2=8 seconds in this instance. Knowing that it has a 8 second time slot for one or more alternate commercials to fill, processor <b>119</b> identifies A<b>2</b> representative the longest alternate commercial (i.e., 5 seconds long) in table <b>300</b> that can be fully displayed in that time slot (i.e., 8 seconds). Processor <b>119</b> first causes the alternate commercial content identified by A<b>2</b> to be transmitted in the transport stream to terminal <b>158</b>-<b>1</b>. For the remaining time in the time slot (i.e., 8−5=3 seconds), processor <b>119</b> in this instance causes transmission of a still image (e.g., an MPEG still frame) of, for example, a logo representing the goods or service promoted to terminal <b>158</b>-<b>1</b> and a display thereof on the user's TV screen for 3 seconds. Such a still image in this instance is identified as A<b>1</b> in table <b>300</b>.
P-0081[0081] After the transmission of the alternate commercial(s) to commercial <b>221</b><i>a, </i>processor <b>119</b> reads the fast-forward trick file associated with show segment <b>233</b> in a similar manner to reading the fast-forward trick file associated with show segment <b>231</b> described above; and so on and so forth.
P-0082[0082] When the user issues a command to stop fast-forwarding the program, e.g., by pressing a stop key on the remote control, terminal <b>158</b>-<b>1</b> sends a fast-forward termination message to processor <b>119</b>. This message includes a fast-forward termination command, and the IP address (and/or MAC address) of terminal <b>158</b>-<b>1</b>.
P-0083[0083] In a first scenario where the fast-forward termination command is received during a show segment, processor <b>119</b> stops reading the fast-forward trick file associated with the show segment. Processor <b>119</b> learns from the record associated with terminal <b>158</b>-<b>1</b> the last I-frame identifier read from the fast-forward trick file. Processor <b>119</b> causes retrieval of the show program material at the normal forward speed from cache manager <b>111</b> starting from the I-frame identified by the last read identifier, and transmission of the retrieved show program material to terminal <b>158</b>-<b>1</b>. As a result, terminal <b>158</b>-<b>1</b> resumes receiving the show program material at the normal forward speed in the same transport stream thereto.
P-0084[0084] In a second scenario where the fast-forward termination command is received during a display of an alternate commercial to, say, commercial <b>221</b><i>a, </i>processor <b>119</b> proceeds to finish playing the alternate commercial and in the meantime looks up from row <b>321</b> of table <b>300</b> the ending I-frame identifier (e.g., I<sub>2501</sub>) of commercial <b>221</b><i>a. </i>Processor <b>119</b> causes retrieval of the show program material (or another commercial, if any) at the normal forward speed from cache manager <b>111</b> starting from the I-frame immediately following I<sub>2501</sub>. As a result, terminal <b>158</b>-<b>1</b> resumes receiving the show program material (and any other commercials) at the normal forward speed in the same transport stream thereto.
P-0085[0085] It should be pointed out at this juncture that in the event that while a user is fast-forwarding (rewinding) a commercial, the user changes the fast-forward (rewind) speed, say, from a 2× speed to a 3× speed, the above-described alternate-commercial placement process similarly applies. FIG. 11 illustrates the available times for an alternate commercial varying with different fast-forward speeds. In FIG. 11, let's say the user starts fast-forwarding commercial <b>221</b><i>a, </i>which is 30 seconds long, at the 2× fast-forward speed as soon as commercial <b>221</b><i>a </i>starts. In that case T′=30, and t′=30/2=15 seconds according to expression [4]. While the user is viewing alternate commercial A<b>4</b> selected by processor <b>119</b>, which is 15 seconds long, the user changes from the first 2× speed to the second 3× speed after, say, 7.5 seconds of alternate commercial A<b>4</b> has been played. Thus, in this example, the remaining time in t′ is 15−7.5=7.5 seconds. In response to the change in the speed, processor <b>119</b> in accordance with an aspect of the invention evaluates the available time τ′ for a second alternate commercial replacing alternate commercial A<b>4</b>, where
τ′=(remaining time in <i>t</i>′)/(ratio of second speed to first speed). [5]
P-0086[0086] It can be shown that expression [4] is actually a corollary of expression [5]. In this instance, since the remaining time in t′ is 7.5 seconds, and the ratio of the 3× speed to the 2× speed equals 3/2=1.5, τ′=7.5/1.5=5 seconds according to [5]. As a result, processor <b>119</b> selects alternate commercial A<b>2</b> replacing alternate commercial A<b>4</b> to fill the new 5 second time slot.
P-0087[0087] Based on the disclosure heretofore, it is apparent to a person skilled in the art that the methodology whereby alternate commercials are selected varying with different rewind speeds similarly follows, whose description is thus omitted.
P-0088[0088] In an alternative embodiment, when a user chooses to fast-forward (rewind) programming content, e.g., TV show <b>200</b>, at a high speed, e.g., the 10× speed, the application of such a high speed is limited only to its show segments, e.g., <b>231</b>, <b>233</b> and <b>235</b>, but not its commercial segments, e.g., <b>221</b> and <b>227</b>. In this alternative embodiment, media processor <b>119</b> replaces each original commercial, e.g., 30 seconds long, in the commercial segments with an abbreviated alternate thereto having a predetermined duration, e.g., 15 seconds long, regardless of the actual fast-forward (rewind) speed selected by the user. That is, the user in this instance is forced to watch alternate commercial A<b>4</b> (B<b>4</b>) corresponding to the 2× speed, as opposed to A<b>1</b> (B<b>1</b>) corresponding to the 10× speed selected by the user as in the previous embodiment.
P-0089[0089] Typically, when a user chooses to manipulate (e.g., fast-forward, rewind, pause) programming content, like the original programming content, the manipulated programming content is shown occupying the entire display, e.g., TV screen. However, FIG. 12 illustrates graphical user interface (GUI) <b>1200</b>, a display format by media processor <b>119</b> in accordance with an aspect of the invention which is applied when a user has issued a command to manipulate programming content. GUI <b>1200</b> illustrates the display of an alternate commercial, such as a banner advertisement that is accessed from, say, Ad storage <b>126</b>, when a commercial is being manipulated. The alternate commercial is displayed on a relatively large portion of a TV screen—alternate ad window <b>1220</b>—while the manipulated programming content is displayed on a relatively small portion of the TV screen—manipulated programming content window <b>1210</b>. The manipulated programming content is provided in window <b>1210</b> at the rewind, fast-forward or other manipulation speed selected by the user. It should be noted that window <b>1210</b> may be located anywhere on GUI <b>1200</b> but, in a preferred embodiment, window <b>1210</b> is situated in a corner of GUI <b>1200</b> to increase the user's view of alternate ad window <b>1220</b>.
P-0090[0090] Thus, for example, suppose a user has issued a command to fast-forward through a commercial at 2× the normal play speed. As illustrated by FIG. 12, the commercial would be displayed in window <b>1210</b> at 2× the normal play speed, and the other window <b>1220</b> would be dedicated to displaying an appropriate alternate commercial.
P-0091[0091] It should be noted that, in accordance with one embodiment of the invention, the multiple window arrangement illustrated in FIG. 12 is presented only when a commercial is manipulated. In another embodiment of the invention, the multiple window arrangement illustrated in FIG. 12 may be presented to a user during manipulation of any programming content, as opposed to only instances when commercials are manipulated. In such instances, the manipulated programming content may be displayed in window <b>1210</b> and alternate advertisement content, programming manipulation description (e.g., “program being rewound”), or some other informational/entertainment content (e.g., weather information, sports scores) may be displayed in window <b>1220</b>. In yet another embodiment, when a command to manipulate programming content is received, the display switches between the multiple window arrangement of FIG. 12 when commercials are manipulated and the typical simple window screen when programming content, other than a commercial, is manipulated.
Local Storage Of Alternate Commercials
P-0092[0092] In the above illustrative embodiment, alternate commercial content is stored in Ad storage <b>126</b> in headend <b>105</b>. However, in a second embodiment, the alternate commercial content is stored locally to set-top terminals, instead. For example, it may be stored in advertisement storage in a neighborhood or a household accessible by the set-top terminals in the same neighborhood or household. The advertisement storage may be connected to the terminals or incorporated in ones of the terminals. FIG. 13 illustrates one such advertisement (Ad) storage, denoted <b>1101</b>, incorporated in a set-top terminal, say terminal <b>158</b>-<b>1</b>. Terminal <b>158</b>-<b>1</b> may be connected to other set-top terminals in the same household in a master-slave configuration, where terminal <b>158</b>-<b>1</b> (master) serves the other terminals (slaves) with alternative commercials from its storage <b>1101</b> at the request of the slave terminals.
P-0093[0093] In this second embodiment, the program stream transmitted to terminal <b>158</b>-<b>1</b> after the user at the terminal issues a rewind or fast-forward command does not contain alternate commercial content itself. Rather, it contains play list messages concerning alternate commercials, based on which terminal <b>158</b>-<b>1</b> locally inserts into the program stream the appropriate alternate commercials from Ad storage <b>1101</b>. However, in both cases the user perceives the same rewind or fast-forward effect as described above, with alternate commercials substituting the original commercials. For example, a play list message may be generated by media processor <b>119</b>, and transmitted in the program stream in advance of an alternate commercial to be inserted by a predetermined period. The play list message may specify the appropriate alternate commercial to be inserted by its code. This alternate commercial may be identified by media processor <b>119</b> in a manner described before.
P-0094[0094] Thus, after receiving one such play list message, terminal <b>158</b>-<b>1</b> relies on a clock (not shown) to keep track of time elapsed from the receipt of the message, retrieves from Ad storage <b>1101</b> the content of the alternate commercial identified by its code in the message, and inserts the alternate commercial content in the received program stream as soon as the predetermined period from the receipt of the message expires. It should be noted that the alternate commercials in storage <b>1101</b> may be updated by headend <b>105</b>, which may from time to time transmit the updated commercial content via an out-of-band channel, e.g., FDC, to terminal <b>158</b>-<b>1</b>, without interrupting any program stream received by terminal <b>158</b>-<b>1</b> through an in-band channel.
P-0095[0095] The arrangement in this second embodiment is particularly advantageous to inserting commercials into a program stream which are targeted to the user at a set-top terminal. For example, Ad storage <b>1101</b> stores commercial content targeted to the user at terminal <b>158</b>-<b>1</b>. The stored commercial content may be based on (a) the user's personal information, e.g., his/her address, gender, education level, profession, etc., which may be obtained from the user when he/she registered with the cable service; and/or (b) the user's program viewing behavior/habit, e.g., the type of program channel to which the user tunes, the type of programming content being viewed, the time of day that the programming content is viewed, etc.
P-0096[0096] Thus, in this example, the play list message received by terminal <b>158</b>-<b>1</b> does not identify the alternate commercial to be inserted. Rather, the message specifies the appropriate duration of such an alternate commercial. Knowing such duration information, and the rewind or fast-forward mode it is in, terminal <b>158</b>-<b>1</b> selects from storage <b>1101</b> a targeted alternate commercial(s) of the appropriate duration and content. For example, the targeted commercial content may relate to the programming content being viewed by the user. Let's say the programming content being viewed is a sporting event, e.g., a NFL football game, the targeted commercial content selected from storage <b>1101</b> relates to sportswear, sneakers, exercise equipment, etc. which suits the user's age, gender and other criteria.
P-0097[0097] In accordance with another aspect of the invention, ones of the alternate commercials in Ad storage <b>1101</b> may also be selected to play on the TV screen while terminal <b>158</b>-<b>1</b> is in a pause mode triggered by the user's issuing a pause command to pause the programming content being viewed. For example, one such alternate commercial may comprise a still image or series of images promoting the goods or service targeted to the user, which is displayed in lieu of the paused (or frozen) programming image.
P-0098[0098] Based on the disclosure heretofore, it is apparent to a person skilled in the art that the above-described interactivities between a set-top terminal and media processor <b>119</b> and/or network controller <b>125</b> in serving a TV broadcast program similarly apply to serving other types of asset including, e.g., a commercial or other advertising content, music video, news event, weather report, traffic report, sports event, video-on-demand (VOD), an audio-on-demand, etc.
P-0099[0099] 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.
P-0100[0100] For example, the PVR-like functions (e.g., pausing, fast-forwarding and rewinding) described above are conducive to an enhanced program enjoyment, especially where an interactive commercial (say, commercial <b>221</b><i>a </i>in FIG. 3) is encountered in a program (say, TV program <b>200</b>). In prior art, if a user chooses to select an interactive option in such a commercial to obtain additional information, e.g., the specification of a particular product being advertised, the user is typically shown additional commercial displays which often results in prolonging the commercial at the expense of the in-progress show segment following the commercial, say, show segment <b>233</b>. That is, in prior art, after the user finishes viewing the prolonged interactive commercial which exceeds its normal time allotment, the user often is returned to the midst of the in-progress show segment, thereby undesirably missing a beginning portion of the show segment.
P-0101[0101] Thus, to enhance the user's program enjoyment in case of a prolonged interactive commercial, in accordance with another aspect of the invention, the beginning of the show segment following the commercial is “paused” to wait for the user's return. To that end, digital cue message <b>241</b> provides to play list manager <b>124</b> in advance such information as commercial <b>221</b><i>a </i>being an interactive commercial. In response, manager <b>124</b> stores in a buffer the identifier of the last I-frame of commercial segment <b>221</b> also from message <b>241</b>. In the event that media processor <b>119</b> is informed of a user selection of an interactive option in commercial <b>221</b><i>a, </i>processor <b>119</b> causes the necessary additional commercial displays (e.g., stored in Ad storage <b>126</b>) associated with commercial <b>221</b><i>a </i>to be provided to the user. In this instance the resulting interactive commercial exceeds the time allotment of commercial segment <b>221</b>. Processor <b>119</b> requests from manager <b>124</b> the identifier of the last I-frame of commercial segment <b>221</b>. As soon as processor <b>119</b> finishes providing the necessary additional commercial displays, processor <b>119</b> retrieves from cache manager <b>111</b> a copy of the program stream containing program <b>200</b> starting from the I-frame which immediately follows the last I-frame of commercial segment <b>221</b> identified, and which corresponds to the beginning of show segment <b>233</b>. Processor <b>119</b> then provides the copy of the program stream to the user, without depriving the user of any beginning portion of segment <b>233</b> as in prior art.
P-0102[0102] Moreover, in the disclosed embodiment, the transport streams generated by processor <b>109</b>, which contain, e.g., live TV broadcast, are recorded in cache manager <b>111</b>, followed by library manager <b>113</b>, before they are fed to the requesting set-top terminals. As a result, the transport streams received by the terminals actually are recorded copies of the streams generated by processor <b>109</b>. However, in another embodiment, the transport streams generated by processor <b>109</b> are fed to the requesting set-top terminals in real time, and at the same time switched to cache manager <b>111</b> and library manager <b>113</b> for recording thereof. Thus, in this second embodiment, when a user at a set-top terminal performs a PVR-like function on an in-progress TV broadcast program, say, rewinding the program, the real-time transport stream being received by the terminal is immediately replaced by a second transport stream containing a recorded copy of the TV program, e.g., from cache manager <b>111</b>. If after rewinding the program, the user invokes a fast-forwarding command to fast-forward the recorded TV program, there may come a point where the recorded TV program catches up with the in-progress program. In that case, the second transport stream being received by the terminal may be replaced back by the real-time transport stream containing the in-progress program.
P-0103[0103] In addition, in the disclosed embodiment, the network transport is illustratively realized using HFC cable network <b>140</b>. However, other networks such as digital subscriber line (DSL) networks, ethernet networks and satellite networks may be used instead.
P-0104[0104] Further, in the disclosed embodiment, delimiting messages are used to identify demarcations of different programs and program segments within each program. In accordance with another embodiment, such demarcations may be specified by schedule data from a storage device or server in communication with A/S processor <b>109</b>. Such data may be received from, for example, an electronic program guide (EPG) server or third party scheduler.
P-0105[0105] Moreover, in the disclosed embodiment, for each alternate commercial, a fast-forward version (e.g., A<b>1</b>, A<b>2</b>, A<b>3</b> and A<b>4</b>) and a rewind version (e.g., B<b>1</b>, B<b>2</b>, B<b>3</b>, B<b>4</b>) are provided, as illustrated in table <b>300</b>. However, it will be appreciated that a person skilled in the art may be able to manipulate only one of the two versions to realize the alternate commercial in both fast-forward and rewind directions.
P-0106[0106] In addition, in the disclosed embodiment, I-frames are used as positional markers in programming content. To more finely define positions in the programming content, one may rely on P-frames or B-frames which occur more frequently than the I-frames in a program stream.
P-0107[0107] Finally, system <b>100</b> is 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.
Contents5
8 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US2016042490A1 | Cited by | United States of America | Pre-grant |
| EP2388994A3 | Cited by | European Patent Office (EPO) | Search report |
| US2019289368A1 | Cited by | United States of America | Search report |
| US2009300676A1 | Cited by | United States of America | Pre-grant |
| WO2017172812A1 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| US9009753B2 | Cited by | United States of America | Applicant |
| US2002138831A1 | Cited by | United States of America | Pre-grant |
| US2011219399A1 | Cited by | United States of America | Pre-grant |
| US2019069005A1 | Cited by | United States of America | Search report |
| US2010071013A1 | Cited by | United States of America | Pre-grant |
| US8667521B2 | Cited by | United States of America | Search report |
| US2012317225A1 | Cited by | United States of America | Pre-grant |
| US2015063779A1 | Cited by | United States of America | Pre-grant |
| US2009080866A1 | Cited by | United States of America | Pre-grant |
| US8489683B2 | Cited by | United States of America | Search report |
| US12126852B2 | Cited by | United States of America | Applicant |
| US2023232074A1 | Cited by | United States of America | Search report |
| US7340760B2 | Cited by | United States of America | Applicant |
| US12154594B2 | Cited by | United States of America | Applicant |
| US2010061709A1 | Cited by | United States of America | Pre-grant |
| US12088663B2 | Cited by | United States of America | Applicant |
| US10467651B2 | Cited by | United States of America | Applicant |
| US7779437B2 | Cited by | United States of America | Applicant |
| US10051304B2 | Cited by | United States of America | Applicant |
| US2011219402A1 | Cited by | United States of America | Pre-grant |
| US2008152300A1 | Cited by | United States of America | Pre-grant |
| US2005166224A1 | Cited by | United States of America | Pre-grant |
| US2008240677A1 | Cited by | United States of America | Pre-grant |
| US9883231B2 | Cited by | United States of America | Search report |
| US2008109842A1 | Cited by | United States of America | Pre-grant |
| US2010122282A1 | Cited by | United States of America | Pre-grant |
| WO2008124548A1 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| US10051305B2 | Cited by | United States of America | Applicant |
| US2006294558A1 | Cited by | United States of America | Pre-grant |
| US2016044343A1 | Cited by | United States of America | Pre-grant |
| US2007098351A1 | Cited by | United States of America | Pre-grant |
| US2005060745A1 | Cited by | United States of America | Pre-grant |
| US10860987B2 | Cited by | United States of America | Applicant |
| US2020107066A1 | Cited by | United States of America | Search report |
| US2009199231A1 | Cited by | United States of America | Pre-grant |
| US9832246B2 | Cited by | United States of America | Applicant |
| US10587915B2 | Cited by | United States of America | Search report |
| US11122316B2 | Cited by | United States of America | Applicant |
| US2016066006A1 | Cited by | United States of America | Pre-grant |
| US2010095323A1 | Cited by | United States of America | Pre-grant |
| US10229473B2 | Cited by | United States of America | Applicant |
| US8321887B2 | Cited by | United States of America | Applicant |
| US2009220207A1 | Cited by | United States of America | Pre-grant |
| US10104445B2 | Cited by | United States of America | Applicant |
| US2009074384A1 | Cited by | United States of America | Pre-grant |
| US11979624B1 | Cited by | United States of America | Search report |
| US2017339456A1 | Cited by | United States of America | Pre-grant |
| US2001049820A1 | Cited by | United States of America | Pre-grant |
| US8620144B2 | Cited by | United States of America | Applicant |
| US8566862B2 | Cited by | United States of America | Applicant |
| US2011179356A1 | Cited by | United States of America | Pre-grant |
| US9873052B2 | Cited by | United States of America | Applicant |
| US10869094B2 | Cited by | United States of America | Applicant |
| GB2516789B | Cited by | United Kingdom | Search report |
| US8554046B2 | Cited by | United States of America | Search report |
| US10623462B2 | Cited by | United States of America | Applicant |
| US9769513B2 | Cited by | United States of America | Applicant |
| US10341713B2 | Cited by | United States of America | Search report |
| US9066131B1 | Cited by | United States of America | Search report |
| US2015110169A1 | Cited by | United States of America | Pre-grant |
| US2011145856A1 | Cited by | United States of America | Pre-grant |
| US9984388B2 | Cited by | United States of America | Applicant |
| US2011135276A1 | Cited by | United States of America | Pre-grant |
| US2009082087A1 | Cited by | United States of America | Pre-grant |
| US2012114305A1 | Cited by | United States of America | Pre-grant |
| US8438596B2 | Cited by | United States of America | Applicant |
| US10958948B2 | Cited by | United States of America | Applicant |
| US2009150941A1 | Cited by | United States of America | Pre-grant |
| US12063395B2 | Cited by | United States of America | Applicant |
| US8176512B2 | Cited by | United States of America | Applicant |
| US2010080529A1 | Cited by | United States of America | Pre-grant |
| US2014119709A1 | Cited by | United States of America | Pre-grant |
| US10667006B2 | Cited by | United States of America | Applicant |
| US9225998B2 | Cited by | United States of America | Applicant |
| US11195185B2 | Cited by | United States of America | Applicant |
| US12088963B2 | Cited by | United States of America | Applicant |
| US8910198B2 | Cited by | United States of America | Applicant |
| US2009222332A1 | Cited by | United States of America | Pre-grant |
| US11990157B2 | Cited by | United States of America | Applicant |
| US2014199053A1 | Cited by | United States of America | Pre-grant |
| US2010166389A1 | Cited by | United States of America | Pre-grant |
| US7647609B2 | Cited by | United States of America | Applicant |
| US8214857B2 | Cited by | United States of America | Search report |
| US2006080167A1 | Cited by | United States of America | Pre-grant |
| US10042987B2 | Cited by | United States of America | Applicant |
| US2008304809A1 | Cited by | United States of America | Pre-grant |
| US2010186032A1 | Cited by | United States of America | Pre-grant |
| US10390101B2 | Cited by | United States of America | Applicant |
| US10764388B2 | Cited by | United States of America | Search report |
| US2004221304A1 | Cited by | United States of America | Pre-grant |
| US9591365B2 | Cited by | United States of America | Applicant |
| US2005273828A1 | Cited by | United States of America | Pre-grant |
| US2007028275A1 | Cited by | United States of America | Pre-grant |
| US2010251289A1 | Cited by | United States of America | Pre-grant |
| US8819727B2 | Cited by | United States of America | Applicant |
4 members in 1 office
Priority claims2
| Document | Office | Kind | Date |
|---|---|---|---|
| 30329002 | United States of America | A | |
| US20020303290 | – | – | – |
Members4
| Document | Office | Kind | |
|---|---|---|---|
| US2004103429A1 | United States of America | A1 | |
| US7716700B2 | United States of America | B2 | |
| US2010251288A1 | United States of America | A1 | |
| US8151294B2 | United States of America | B2 |
56 transactions on the USPTO file
Allowed after 2 non-final rejections, 2 final rejections and 1 RCE.
- Non-final rejections
- 2
- Final rejections
- 2
- RCEs
- 1
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | |
|---|---|
| Payment of Maintenance Fee, 12th Year, Large Entity | |
| Payment of Maintenance Fee, 8th Year, Large Entity | |
| Recordation of Patent Grant Mailed | |
| Patent Issue Date Used in PTA CalculationAllowed | |
| Issue Notification MailedAllowed | |
| Dispatch to FDC | |
| Application Is Considered Ready for Issue | |
| Issue Fee Payment Verified | |
| Issue Fee Payment Received | |
| Mail Notice of AllowanceAllowed | |
| Notice of Allowance Data Verification CompletedAllowed | |
| Date Forwarded to Examiner | |
| Response after Final Action | |
| Mail Final Rejection (PTOL - 326)Final rejection | |
| Final RejectionFinal rejection | |
| Date Forwarded to Examiner | |
| Response after Non-Final Action | |
| Request for Extension of Time - Granted | |
| Mail Non-Final RejectionNon-final rejection | |
| Non-Final RejectionNon-final rejection | |
| Date Forwarded to Examiner | |
| Disposal for a RCE / CPA / R129 | |
| Request for Continued Examination (RCE) | |
| Request for Extension of Time - Granted | |
| Workflow - Request for RCE - Begin | |
| Mail Examiner Interview Summary (PTOL - 413) | |
| Interview Summary Record | |
| Miscellaneous Incoming Letter | |
| Miscellaneous Incoming Letter | |
| Case Docketed to Examiner in GAU | |
| Mail Final Rejection (PTOL - 326)Final rejection | |
| Final RejectionFinal rejection | |
| Date Forwarded to Examiner | |
| Response after Non-Final Action | |
| Request for Extension of Time - Granted | |
| Interview Summary Record | |
| Change in Power of Attorney (May Include Associate POA) | |
| Correspondence Address Change | |
| Mail Non-Final RejectionNon-final rejection | |
| Non-Final RejectionNon-final rejection | |
| Case Docketed to Examiner in GAU | |
| Case Docketed to Examiner in GAU | |
| Case Docketed to Examiner in GAU | |
| Case Docketed to Examiner in GAU | |
| Case Docketed to Examiner in GAU | |
| IFW TSS Processing by Tech Center Complete | |
| Case Docketed to Examiner in GAU | |
| Case Docketed to Examiner in GAU | |
| Application Dispatched from OIPE | |
| Application Is Now Complete | |
| Additional Application Filing Fees | |
| A statement by one or more inventors satisfying the requirement under 35 USC 115, Oath of the Applic | |
| Applicant has submitted new drawings to correct Corrected Papers problems | |
| Notice Mailed--Application Incomplete--Filing Date Assigned | |
| IFW Scan & PACR Auto Security Review | |
| Initial Exam Team nn |
20 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Maintenance fee paymentMAFP | MAFP | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| Maintenance fee paymentMAFP | MAFP | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| Fee paymentFPAY | FPAY | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS |
Numbers
- Publication, DOCDB
- 2004103429
- Publication, EPODOC
- US2004103429
- Application
- 10303290
- Application, DOCDB
- 30329002
- Application, EPODOC
- US20020303290
Titles
- English
- Technique for delivering entertainment programming content including commercial content therein over a communications network
Patent term adjustment
- A delay
- +1,294 daysthe office missed an examination deadline
- B delay
- +1,111 dayspendency past three years
- Overlap
- −624 daysdelays counted once
- Applicant delay
- −275 days
- Net adjustment
- 1,506 days
Classification
- CPC, 3
- H04N21/44016
- H04N7/163
- H04N21/812
- IPC, 1
- H04N7 16
- USPC, 6
- 725032000
- 348E05002
- 348E07061
- 725034000
- 725088000
- 725102000