U.S. patent application number 10/640410 was filed with the patent office on 2004-08-12 for system and method for identification and insertion of advertising in broadcast programs.
Invention is credited to Lewis, Kevin, Paxton, Brian, Robinson, Dominic Andrew.
Application Number | 20040158858 10/640410 |
Document ID | / |
Family ID | 9952873 |
Filed Date | 2004-08-12 |
United States Patent
Application |
20040158858 |
Kind Code |
A1 |
Paxton, Brian ; et
al. |
August 12, 2004 |
System and method for identification and insertion of advertising
in broadcast programs
Abstract
A broadcast system and method for identification and insertion
of advertising in broadcast programs includes receiving a broadcast
data stream, identifying an advertisement in the broadcast data
stream, and updating an advertisement schedule including
information identifying the advertisement and a location of the
advertisement within a program in the broadcast data stream. On
playback, the advertisement or a replacement advertisement is
inserted into the program at the location or at another location
within the program.
Inventors: |
Paxton, Brian; (Ware,
GB) ; Robinson, Dominic Andrew; (Stevenage, GB)
; Lewis, Kevin; (Bishop's Stortford, GB) |
Correspondence
Address: |
BUCKLEY, MASCHOFF, TALWALKAR LLC
5 ELM STREET
NEW CANAAN
CT
06840
US
|
Family ID: |
9952873 |
Appl. No.: |
10/640410 |
Filed: |
August 13, 2003 |
Current U.S.
Class: |
725/42 ;
348/E7.073; 725/32; 725/34; 725/35 |
Current CPC
Class: |
H04N 21/4586 20130101;
H04N 21/26603 20130101; H04N 21/23106 20130101; H04N 21/23418
20130101; H04N 21/25883 20130101; H04N 21/47202 20130101; H04N
21/2362 20130101; H04N 21/4331 20130101; H04N 21/23424 20130101;
H04N 21/6587 20130101; H04N 21/4755 20130101; H04N 21/2668
20130101; H04N 7/17354 20130101; H04N 21/23109 20130101; H04N
21/2747 20130101; H04N 21/47214 20130101; H04N 21/858 20130101;
H04N 21/44016 20130101; H04N 21/812 20130101; H04N 21/84 20130101;
H04N 21/4348 20130101; H04N 7/17336 20130101; H04N 21/25891
20130101; H04N 21/2225 20130101 |
Class at
Publication: |
725/042 ;
725/032; 725/034; 725/035 |
International
Class: |
H04N 007/025; G06F
003/00; H04N 007/10 |
Foreign Application Data
Date |
Code |
Application Number |
Feb 12, 2003 |
GB |
GB0303176.2 |
Claims
What is claimed is:
1. A broadcast method, comprising: receiving a broadcast data
stream; identifying an advertisement in said broadcast data stream;
and updating an advertisement schedule including information
identifying said advertisement and a location of said advertisement
within a program in said broadcast data stream.
2. The broadcast method of claim 1, further comprising: extracting
service information associated with said program; and updating a
program schedule using said service information associated with
said program.
3. The broadcast method of claim 2, wherein said identifying an
advertisement further comprises: extracting service information
associated with said advertisement, wherein said information
identifying said advertisement and said location are based on said
service information.
4. The broadcast method of claim 3, further comprising associating
said advertisement schedule with said program.
5. The broadcast method of claim 1, wherein said information
identifying a location of said advertisement includes information
identifying a location of said advertisement within said program
and a duration of said advertisement.
6. The broadcast method of claim 1, wherein said information
identifying said advertisement includes information identifying at
least one of: an advertiser, a targeted audience, and a time period
for play.
7. The broadcast method of claim 1, further comprising; creating an
archive copy of said program, said archive copy stored at a
location identified by said program schedule.
8. The broadcast method of claim 7, further comprising: receiving,
from a subscriber, a request for said archive copy of said program;
identifying a location of said archive copy of said program using
said program schedule; and identifying said location of said
advertisement within said program.
9. The broadcast method of claim 8, further comprising: selecting a
replacement advertisement, based at least in part on said program,
said subscriber, and said advertisement information.
10. The broadcast method of claim 9, further comprising:
transmitting said archive copy of said program to said subscriber;
and inserting said replacement advertisement at said location
within said program.
11. A broadcast system, comprising: means for receiving a broadcast
data stream; means for identifying an advertisement in said
broadcast data stream; and means for updating an advertisement
schedule including information identifying said advertisement and a
location of said advertisement within a program in said broadcast
data stream.
12. The broadcast system of claim 11, further comprising: means for
extracting service information associated with said program; means
for extracting service information associated with said
advertisement, said information identifying said advertisement and
said location of said advertisement based from said service
information; and means for updating a program schedule using said
service information associated with said program, said program
schedule identifying a storage location of a copy of said
program.
13. The broadcast system of claim 12, further comprising: means for
uni-casting said copy of said program to a subscriber; and means
for inserting a replacement advertisement in said program at said
location during said uni-casting.
14. A broadcast system, comprising: a head end, coupled to receive
an input broadcast channel data stream including a program having
an advertisement; a service information processor, in communication
with said head end and retrieving service information associated
with said program and said advertisement including information
identifying a location of said advertisement within said program; a
storage server, in communication with said head end and said
service information processor, storing a copy of said program and
associating a storage location of said copy with service
information associated with said program; an advertising server, in
communication with said service information processor, storing a
copy of said advertisement and further storing a replacement
advertisement and service information associated with said
advertisement; and a distribution system, coupled to said storage
server and said advertising server, operable to transmit said copy
of said program to a subscriber and to insert a selected
replacement advertisement at said location.
15. The broadcast system of claim 14, wherein said replacement
advertisement is selected based at least in part on an identity of
said subscriber and an identity of said program.
16. A subscriber-initiated method for viewing a program,
comprising: interacting with a program schedule displayed on a
display device to select a desired program stored in an archive;
transmitting information identifying the subscriber and information
identifying the desired program; receiving a uni-cast transmission
of said desired program; and receiving a uni-cast transmission of a
replacement advertisement embedded within said program, said
replacement advertisement different than an advertisement included
in a live broadcast of said program.
17. A broadcast method, comprising: receiving, from a subscriber, a
request to play an archive copy of a program; identifying a
location of said archive copy of said program; selecting at least a
first advertisement based at least in part on information
associated with said program; and inserting said at least first
advertisement into said program.
18. The broadcast method of claim 17, wherein said inserting
further comprises: identifying an advertising slot within said
program; and inserting said at least first advertisement into said
program in said advertising slot.
19. The broadcast method of claim 17, wherein said at least first
advertisement includes a link to further promotional materials.
20. The broadcast method of claim 19, further comprising: playing
said program and said advertisement for said subscriber, wherein
said playing said advertisement causes said further promotional
materials to be displayed to said subscriber.
Description
CROSS-REFERENCE
[0001] This application is related to, hereby incorporates by
reference for all purposes, and claims priority to GB Application
Serial No. GB0303176.2, filed 12 Feb. 2003, and titled "A SYSTEM
FOR CAPTURE AND SELECTIVE PLAYBACK OF BROADCAST PROGRAMMES", this
application is also related to, and hereby incorporates by
reference for all purposes, co-pending and commonly assigned U.S.
patent application Ser. No. ______ (Attorney Docket No. V01.001),
filed on even date herewith, for "SYSTEM FOR CAPTURE AND SELECTIVE
PLAYBACK OF BROADCAST PROGRAMS".
FIELD
[0002] Embodiments relate to the broadcast of programs. More
particularly, embodiments relate to systems, methods, computer
program code, and means for the identification and insertion of
advertising in broadcast programs.
BACKGROUND
[0003] A television viewer can receive a television signal in many
ways including: VHF/UHF antenna; cable; satellite receiver dish;
and copper wire (telephone, power line). The viewer can receive
television content directly from content providers, for instance by
receiving UHF television signals, or indirectly from a
re-broadcaster, for instance from a cable service provider.
Re-broadcasters take the output of content providers and
re-distribute it.
[0004] In broadcast television, advertisements are inserted between
sections of main programs by the broadcaster. Advertisements are
often scheduled to air at a particular time to coincide with the
scheduled broadcasting of a particular main program, for example
sportsware being advertised during the broadcast televising of
sporting events. Broad regional variations can be reflected in the
broadcast output of a single television channel by providing
different sets of advertisements to respective television
transmitters. These regional variations are somewhat limited in
that each advertising slot has a predetermined duration.
[0005] Advertisements can therefore be broadcast with reference to
the context of a corresponding program event, and to the
demographics of the viewers served by any given transmitter, but
with very little correlation to the personal context of any
particular viewer.
[0006] When the viewer makes use of a video cassette recorder (VCR)
to "time shift" (i.e., to delay playback), the advertisements are
recorded along with the main program. Recent technological
advances, including personal video recording devices (PVRs) and
digital video recorders (DVRs), provide viewers with greater
flexibility in recording programs. These so-called `super-video`
devices can provide personalized functionality by building up a
profile of TV usage and attempting to record similar programs.
`Super-video` devices are also known to provide a `time-shift
functionality, whereby the broadcast video stream is recorded at
the same time as it is being played back, so that a video stream of
the main program being played back can be halted at any desired
point and resumed later, even while later parts of the same main
program are being broadcast.
[0007] Furthermore, certain PVRs can be configured to allow viewers
to fast forward through advertisements so that a main program can
be viewed without the intervening advertisements. While this
`super-video` functionality might be attractive to a viewer, it
presents a challenge to broadcasters' advertising revenues. If
every viewer used their `super-video` device to playback the output
of commercial television channels, it can be expected that a
significant proportion of these viewers would opt never to watch
the advertisements at all. Advertising through the television would
be correspondingly less effective for advertisers, and
advertisements would be placed elsewhere. Consequently, the
broadcaster or re-broadcaster would accrue less profit as a result
of advertising.
[0008] In addition to broadcasting television programs, certain
television suppliers provide subscribers with further "view on
demand" facilities (including systems providing "near video on
demand" or NVOD and systems providing "video on demand" or VOD).
Typically, a broadcaster will offer to broadcast a restricted
number of selected events (such as movies), at regular time
intervals. Viewers may subscribe to receive a particular broadcast
of the event. After subscription, the event will be broadcast
directly to the viewer's set top box, using satellite or cable
distribution methods, for example. The broadcast times of the
events themselves cannot however be controlled by the viewer.
[0009] Broadcasters often broadcast "view on demand" events without
advertisements. Generally, "view on demand" events command a
premium that compensates for any loss in advertising revenue. When,
however, view on demand facilities are provided by a re-broadcaster
to allow time-shifting, the suppression or lack of advertisements
represents a loss of potential revenue--viewers watching the
re-broadcast are able to view the program without paying the
original premium and without advertisements.
[0010] In many copyright jurisdictions, a "client-side" device,
such as a VCR or a super-video device, is treated in a different
way from a "server-side" device. As a result, a viewer with a
client-side device can effectively make recordings of television
programs for personal use without infringing copyright. Any
broadcast service provider using a server-side device that provides
a subscriber with the same facility would breach copyright both by
recording the broadcast program and by re-broadcasting the same
program at a later time. Broadcast service providers that wish to
provide a time-shift functionality for their subscribers using
server-side devices must therefore have a license from the content
providers. Since advertising is an important source of revenue for
the majority of content providers, it is likely that any potential
reduction in advertising effectiveness will result in either a
corresponding increase in license royalties or an outright refusal
to license.
[0011] It would be desirable to provide a rebroadcast service that
maintains the advertisements provided by content providers. It
would also be desirable to provide a rebroadcast service that
increases the effectiveness of advertisements in general.
SUMMARY
[0012] To alleviate problems inherent in the prior art, the present
invention introduces systems, methods, apparatus, computer program
code and means for the identification and insertion of advertising
in broadcast programs includes receiving a broadcast data stream,
identifying an advertisement in the broadcast data stream, and
updating an advertisement schedule including information
identifying the advertisement and a location of the advertisement
within a program in the broadcast data stream. On playback, the
advertisement or a replacement advertisement is inserted into the
program at the location.
[0013] In some embodiments, the replacement advertisement is
selected based at least in part on information associated with the
subscriber requesting playback, information associated with the
requested program, or information associated with the original
advertisement. In some embodiments, broadcast method includes
receiving, from a subscriber, a request to play an archive copy of
a program, identifying a location of the archive copy of the
program, selecting an advertisement based at least in part on
information associated with the program, and inserting the
advertisement into the program. In some embodiments, this selected
advertisement is inserted into the program in a time slot which
included an advertisement when the program was originally
broadcast. In some embodiments, the selected advertisement is
inserted into a new advertising slot of the program. In some
embodiments, inserted advertisements may include a link or
reference to additional promotional materials which may be viewed
when the advertisement is played. With these and other advantages
and features of the invention that will become hereinafter
apparent, the invention may be more clearly understood by reference
to the following detailed description of the invention, the
appended claims, and the drawings attached herein.
BRIEF DESCRIPTION OF THE DRAWINGS
[0014] FIG. 1 is a block diagram of a broadcast system pursuant to
some embodiments;
[0015] FIG. 2 is a block diagram of a broadcast system pursuant to
some embodiments;
[0016] FIG. 3 is a block diagram of a broadcast system pursuant to
some embodiments;
[0017] FIGS. 4A-4D are diagrams depicting data structures in a
broadcast data channel stream;
[0018] FIG. 5 is a flow diagram showing a process for identifying
and processing advertisements in some embodiments;
[0019] FIG. 6 is a flow diagram showing a process for playing a
program and inserting advertisements pursuant to some embodiments;
and
[0020] FIG. 7 is a further block diagram of a broadcast system
pursuant to some embodiments.
DETAILED DESCRIPTION
[0021] Embodiments relate to systems, methods, computer program
code and means for the identification and insertion of advertising
in broadcast programs. Pursuant to some embodiments, features of
the present invention may be implemented in a broadcast system such
as the broadcast system described in our co-pending,
commonly-assigned U.S. patent application Ser. No. ______ filed on
even date herewith (Attorney Docket No. Vo1.001). For example, as
will be discussed below, embodiments allow the identification and
insertion of advertising in programs broadcast by a broadcast
service provider, including programs broadcast "live" or programs
broadcast from archives (including short and longer-term archives).
Upon reading this disclosure, those skilled in the art will
recognize that features of embodiments may be implemented in other
broadcast systems as well.
[0022] For convenience, and ease of exposition, a number of terms
are used herein. For example, the term "subscriber" is used to
refer to an individual or entity which has a subscriber
relationship with a broadcast service provider to receive and view
broadcast data (either live broadcast data or archived broadcast
data or both). A subscriber, for example, may be associated with a
particular set top box identifying the subscriber. "Subscribers"
may also be referred to herein as "users" or "viewers". As used
herein, the term "set top box" is generally used to refer to
devices associated with subscribers which receive broadcast data
from a broadcast data service provider. A set top box may be a
dedicated device designed to receive broadcast data, or it may be
implemented as a component or function associated with a personal
computer or other computing device.
[0023] The term "broadcast service provider" or "service provider"
may be used to refer to an entity (or entities) which operate
components of broadcast systems pursuant to embodiments described
herein to deliver live broadcast data and archived broadcast data
to subscribers. For example, in some embodiments, a "broadcast
service provider" may be an entity which operates (or is associated
with) one or more systems configured to transmit programs to
subscribers. In some embodiments, broadcast service providers
operate systems including exchanges or central offices that are
configured to deliver digital data to subscribers over the twisted
pair communication lines that are present in many households and
businesses around the world (e.g., such as telephone or copper
wires). In some embodiments, broadcast service providers deliver
this data using digital subscriber line ("DSL") techniques. In one
illustrative embodiment to be discussed herein, a broadcast service
provider delivers digital data using asymmetric DSL ("ADSL")
techniques, although those skilled in the art will recognize that
other DSL techniques (generally referred to as "xDSL" may also be
utilized). Further, although wired communication techniques are
discussed, those skilled in the art will appreciate that features
of embodiments may also be implemented using wireless
techniques.
[0024] As used herein, the term "live broadcast data" or "live
broadcast program" refers to broadcast data viewed at the time
scheduled and broadcast by the broadcasting entity. As used herein,
the term "archived broadcast data" or "archived programs" refers to
broadcast data or programs which is stored for viewing at a time
later than the "live broadcast". Embodiments provide two different
types of data archives: short-term archives (e.g., where programs
are stored for a relatively short period such as 24-72 hours), and
longer-term archives (e.g., where programs may be stored for a
longer time period). For example, longer-term archives may allow
storage of programs indefinitely. As another example, in some
embodiments, a broadcast service provider may store programs for up
to a set period (e.g., such as one month or one year). As yet
another example, a broadcast service provider may periodically
query subscribers to determine whether the archived program should
be deleted from the archive.
[0025] As used herein, the term "advertisement" is generally used
to refer to a promotion or solicitation which generally includes
video and audio data (but which may include teletext, video, or
audio data) which is embedded or inserted into a stream of
broadcast data. Advertisements may be positioned at numerous
locations within a broadcast data stream, including at the
beginning of programs, at various times during programs, at the end
of programs, etc.
[0026] By way of introduction, features of some embodiments will
now be described by first referring to FIG. 1, where a depiction of
a broadcast system 50 pursuant to some embodiments is shown.
Broadcast system 50 includes one or more broadcast service
providers 51 delivering content to one or more subscribers 54a-n.
The delivered content can include both broadcast programs (either
live or archived) and advertisements.
[0027] Pursuant to some embodiments, subscribers may receive
broadcast program data in several ways. For example, subscribers
(such as subscriber 54n) may receive "live" broadcast programs;
that is, the subscriber way view a program at the time at which it
is being broadcast. As an illustrative example, (which will be
continued throughout this description) a "live" broadcast program
may be the "Evening News", broadcast every weeknight starting at 6
pm local time. Broadcast system 50 allows subscribers, such as
subscriber 54n, to view this program at its designated time (at 6
pm local time). As used herein, (and as further defined below) the
term "live" is used to generally refer to the actual and planned
time of broadcast of a broadcast program (and is not necessarily
intended to refer to a program which is both filmed and viewed at
the same time). Pursuant to some embodiments, to minimize traffic
on the backhaul to the ADSL central office or exchange, these
"live" broadcasts are transmitted to subscribers 54 via multicast
to avoid duplications of traffic. In this manner, embodiments
increase the system's ability to transmit video and audio program
data to a large number of subscribers without impairing the
capacity of the backhaul (and thereby allowing a larger number of
subscribers to interact with the system to selectively view
archived programs as described below).
[0028] In some embodiments, subscribers are added to multi-cast
broadcasts of programs using techniques such as those described by
Internet Group Management Protocol (IGMP), IETF RFC 3376 (October
2002) (available at www.ietf.org) the contents of which are
incorporated herein by reference for all purposes.
[0029] These live broadcasts may include advertisements in addition
to programs. For example, the "Evening News" program may include
groups of two or three (or more) advertisements located at the
beginning of the program, every 15 minutes during the program, and
at the end of the program. Pursuant to some embodiments, broadcast
service provider 51 may capture and identify these advertisements
during broadcast and, in some embodiments, may replace some or all
of the advertisements with advertisements specifically directed to
one or more subscribers 54.
[0030] Embodiments allow subscribers (such as subscriber 54b) to
view a program at some time after the "live" broadcast time.
Embodiments generate and store a short-term archive copy of all
broadcast programs received by broadcast service provider 51.
Further details of how this short-term archive copy is generated
and stored will be provided below. In general, broadcast service
provider 51 includes a storage device 53 (or group of devices)
adapted to store copies of broadcast programs for a number of
different broadcast channels. In some embodiments, sufficient
storage space is provided to store 24-72 hours of broadcast
programs for a number of different channels. In conjunction with
the generation and storage of these short-term archive copies; a
schedule of programs is created. Subscribers wishing to view a
program within 24-72 hours of the time at which it originally aired
(that is, after the "live" broadcast) may interact with the
schedule of programs to select the program and cause the program to
be streamed to the subscriber. In some embodiments, these programs
are stored in a manner which allows the subscriber to fast forward,
pause, and rewind while viewing the program. As an example,
subscriber 54b may choose to view the "Evening News" at 6:15 pm
rather than at the "live" broadcast time of 6 pm. Further,
subscriber 54b may fast forward, rewind, or pause as desired during
his viewing of the program.
[0031] Embodiments further allow subscribers (such as the
subscriber 54a) to select particular programs for longer-term
archival. For example, broadcast service provider 51 or a
subscriber (such as subscriber 54a as shown in FIG. 1) may wish to
create a longer-term copy of a particular broadcast of the "Evening
News". Subscriber 54a may indicate this desire by communicating
with broadcast service provider 51 (e.g., via a set top box or
other device as will be discussed further below). A copy of the
broadcast may then be stored on a storage device 52 used for
longer-term storage of programs. In some embodiments, the copy of
the program is associated with information uniquely identifying the
subscriber 54a so that the subscriber 54a may be allowed access to
the program as desired. Subscriber 54a may then view the program as
desired. For example, subscriber 54a may view the particular
episode of the "Evening News" weeks after it aired. Subscriber 54a
may repeatedly view the same episode until the episode is deleted
from the archive (e.g., at the subscriber's request or once an
archive period has expired). In some embodiments, to reduce storage
needs, multiple subscribers may have access to a copy of a program
stored in a longer-term archive. For example, information
identifying each customer who has requested the creation of a copy
of a program may be given access permissions to share access to an
archive.
[0032] Embodiments allow each of these types of broadcasts to be
selectively delivered to subscribers, providing subscribers with
greater choice, control and flexibility in viewing. Pursuant to
some embodiments, subscribers may access these broadcasts via
telephone wires such as the copper telephone wires currently
installed in many households. Some embodiments deliver broadcast
and archived programs to subscribers using asymmetric digital
subscriber line (ADSL) techniques (although those skilled in the
art will appreciate that other techniques now known or later
developed may be used to deliver programs pursuant to embodiments
disclosed herein). In some embodiments, programs are delivered
using encoding schemes such as the widely-used "Moving Picture
Experts Group version 2" (MPEG-2) scheme, although those skilled in
the art will appreciate that other encoding schemes may also be
utilized.
[0033] Pursuant to some embodiments, broadcast data is delivered
from broadcast service provider 51 to subscribers 54 using constant
bit rate (CBR) encoding techniques, thereby providing a maximum
bitrate that is used for both video and audio data. Applicants have
found that the use of CBR encoding provides reliable and consistent
content delivery over ADSL networks, despite issues with distance
from the ADSL exchange (or "central office") and despite the
demands for high bitrates to provide quality video services. Where
video bitrates for particular programs vary, embodiments utilize
encoders configured to pad or "stuff" the video data extra (blank)
data to create an actual constant bitrate. Further, in some
embodiments, the backhaul to the ADSL central office or exchange is
"overbooked" to assume a particular level of contention which
ensures sufficient bandwidth is available to subscribers. For
example, in some embodiments, the backhaul may be designed such
that 33% of all subscribers serviced by the backhaul are assumed to
be active at any time. This may be implemented, in some
embodiments, by reducing the number of subscribers associated with
each digital subscriber line access multiplexor (DSLAM) associated
with a particular exchange or central office.
[0034] Pursuant to some embodiments, broadcast service provider 51
further operates to identify and capture advertisements in
conjunction with the creation of archive copies of broadcast
programs. In some embodiments, a variety of different types of
information about advertisements is captured. For example, when a
program is broadcast, broadcast service provider 51 may generate
information identifying the location of each advertisement in the
program as well as information identifying details of the
advertisement and the advertisement's audio and video data. This
information may be stored in longer-term or short-term archives 52,
53 or may be stored in separate advertisement databases (not
shown). The information is used when a program is transmitted to a
subscriber for viewing and allows broadcast service provider 51 to
identify the point in the transmission where an advertisement
should be inserted. This information also allows broadcast service
provider 51 to select an appropriate advertisement for insertion
(e.g., by targeting a subscriber's particular demographic). That
is, broadcast service provider 51 may select different
advertisements for insertion into a program. In some embodiments,
different subscribers may be presented with different
advertisements. In some embodiments, when a program is viewed at
different times, different advertisements are inserted (for
example, if a program is viewed in July, an advertisement for an
amusement park may be played; if the program is viewed in December,
an advertisement for a ski area may be displayed). Embodiments
allow great control over the selection and insertion of
advertisements in programs that are broadcast to subscribers,
thereby increasing advertiser revenue and ensuring that
time-shifted programs are able to generate advertising
revenues.
[0035] Pursuant to some embodiments, broadcast service provider 51
operates to select appropriate advertisements for insertion into
programs that are transmitted to subscribers. These selected
advertisements may be inserted at the location where original
advertisements were included during the original broadcast of a
program, or they may be inserted at other locations. For example, a
movie which originally contained advertisements every 20 minutes
may be transmitted with advertisements every 30 minutes. As another
example, a movie which was originally broadcast on demand and which
did not include any advertisements may be transmitted by broadcast
service provider 51 with a number of advertisements inserted. In
some embodiments, the advertisements inserted by broadcast service
provider 51 include service information which has a link to
additional promotional information which is presented to the
subscriber when the advertisement is viewed. In some embodiments,
the system of the present invention may further be configured to
allow subscribers to skip some or all advertisements. For example,
broadcast service provider 51 may operate a "premium" service which
subscribers may pay additional fees to participate in and which
allows participating subscribers to skip or fast forward through
advertisements.
[0036] Further details of some embodiments will now be described by
referring to FIG. 2, where a system pursuant to some embodiments is
depicted. The system of FIG. 2 depicts a number of different
components that may be operated by (or on behalf of) a broadcast
service provider to allow a subscriber to view both live broadcast
programs and archived programs on a television 9. A number of
components of the system of FIG. 2 may be operated by, or on behalf
of, a service provider offering broadcast and archived programs to
subscribers. Some or all of the components may be implemented on
one or more computing devices configured to perform the functions
described herein. Although some components are shown as separate
devices, some or all of the functionality described herein may be
implemented on one or more computing devices or networks of
computing devices.
[0037] In FIG. 2 a broadcast channel source 1 generates a data feed
of broadcast channels which are provided to a broadcast
distribution head-end 2 (BDHE). For example, broadcast channel
source 1 may be any of a number of different types of sources of
broadcast data, such as, for example, sources of television, video,
audio, or other data. Each data feed includes video and audio
information for each channel as well as service information (SI)
for each program broadcast on each channel. The service information
includes information about each program including start time and
duration, and a synopsis of the program.
[0038] As used herein, the term "service information" (or "program
specific information", or SI) refers to information embedded in the
MPEG-2 transport stream as additional transport packets having
unique packet identifiers. For example, SI may include electronic
program guide information such as the nature of a program, the
timing and channel on which it is located, and other information
identifying the type, content, and timing of a particular program.
In some embodiments, SI may include additional information such as
a "service description table" (or SDT) providing information
identifying the service provider of a program, an "event
information table" (or EIT) containing program names, start times,
durations, etc., and other timing and event information.
[0039] Broadcast data may be transmitted using a variety of
communications media. For example, the broadcast channel source 1
may provide a number of channels of broadcast data as digital or
analogue television captured by digital satellite, digital
terrestrial, cable, digital subscriber line (xDSL), or as analogue
or direct feeds over a network. In some currently preferred
embodiments, the broadcast data is received from a digital source
(or is otherwise converted into digital broadcast data prior to
receipt by BDHE 2). Further, the digital broadcast data may be
encoded using an encoding scheme such as the MPEG-2 encoding
scheme, although other encoding schemes may also be utilized. Use
of an encoding scheme such as MPEG-2 allows the receipt of digital
broadcast data which includes encapsulated MPEG-2 transport stream
service information associated with the digital broadcast data.
This service information, as will be described further herein,
provides for accurate timing of programs.
[0040] A number of broadcast channel sources 1 may be utilized in
the system of FIG. 2. For example, in some embodiments, the system
may receive dozens or even hundreds of different channel data feeds
from various broadcast channel sources. Each channel data feed
consists of a number of programs. These channel data feeds are
acquired by BDHE 2. BDHE 2 includes video acquisition equipment and
may also include encoders to compress the channel data into a form
which is suitable for a set top box to decode and display on a
television. The BDHE 2 may also include multiplexing equipment to
multiplex the data. In some embodiments, the broadcast data is
encoded into a digital video broadcast (DVB) standard, such as the
MPEG-2 video and audio and encapsulated in an MPEG-2 transport
stream. Further details of some embodiments of BDHE 2 will be
discussed in conjunction with FIG. 3 below.
[0041] Following acquisition, encoding and multiplexing, each of
the broadcast channels are directed, encapsulated in the MPEG-2
transport stream, to a timeslip server 3 and broadcast schedule
server 4 under instruction from a video server manager 5. In some
embodiments, the same output is sent to each server. In some
embodiments, separate data is transmitted to a service information
processor (not shown, but which may be configured as part of BDHE 2
or as a separate component) and then used to create schedule
information at broadcast schedule server 4. The use of a service
information processor will be described further below in
conjunction with FIG. 3.
[0042] Timeslip server 3 is typically a computer system (or network
of computer systems) with a storage capacity that allows it to save
the data from the broadcast feeds locally. In some embodiments, all
programs from each of the broadcast channels are stored at least
for a period of time. For example, in some embodiments, timeslip
server 3 may store 24-72 hours of programming from each of the
broadcast channels, allowing subscribers to view programs from the
broadcast channels for some period (e.g., 24-72 hours) after the
time the program is originally broadcast. As will be described
further below, timeslip server 3 also operates to allow subscribers
to selectively archive broadcast programs for viewing at a time of
their choosing. These longer-term archives may be stored at (or
accessible by) archive content server 10.
[0043] Although further details will be provided below, in general,
the timeslip server 3 receives a number of encoded channels of
broadcast data from BDHE 2 and stores the video and audio data for
each channel on a disk as a continuous stream. The timeslip server
3 also functions to accurately identify the start and end of each
program as well as the locations where each program is stored on
disk. This information allows the timeslip server 3 to quickly and
accurately retrieve programs when requested by subscribers.
Further, in some embodiments, the timeslip server 3 functions to
store broadcast channel data so that it may be efficiently and
accurately rewound or fast-forwarded upon request by subscribers.
Further details of these features will be discussed further
below.
[0044] The broadcast schedule server 4 interacts with the timeslip
server 3 (and with other sources of schedule information) to
construct an accurate historical schedule of programs. This
schedule information is presented to subscribers who can interact
with the schedule to select a desired program to view or to
archive. Broadcast schedule server 4, as will be discussed further
below, may create and maintain different types of schedules (e.g.,
including a long form, or detailed schedule, and a short form, or
summary schedule). These schedules may be presented to subscribers
and used by subscribers to interactively identify programs for
viewing or archival (e.g., a subscriber may interact with a
schedule to select one or more programs for viewing from the
short-term archive, or to select one or more programs to be stored
in the longer-term archive for later viewing).
[0045] The video server manager 5 controls the distribution of the
digital broadcast data to viewers for live broadcasting of each
channel. Video server manager 5 also stores (or has access to)
customer information. For example, customer information may include
information associating a particular customer or subscriber with
the unique identifier assigned to the customer's set top box 8.
Customer information may also include information used to track
customer viewing preferences, demographic information, etc. In some
embodiments, video server manager 5 also stores (or has access to)
advertisement information, including advertisement data identifying
the location of advertisement slots in programs that have been
archived as well as data identifying the advertisement that was
originally broadcast with each program. Further, video server
manager 5 may also store (or have access to) new or replacement
advertisements including the video and audio data associated with
the advertisement.
[0046] In some embodiments, video server manager 5 uses this
advertisement data to select a replacement advertisement and
provide the replacement advertisement to switching and routing
network 6 for transmission to a subscriber in an appropriate
location within a program. In some embodiments, advertisements may
be selected for transmission based at least in part on information
associated with a subscriber (e.g., such as customer demographic
information retrieved from the customer database), information
associated with the original advertisement (e.g., a rule may be
implemented which ensures that if the original advertising slot was
paid for by Coca-Cola, Inc., the replacement advertisement must be
a Coca-Cola advertisement), and information associated with the
program (e.g., a rule may be implemented which ensures that if the
program is a cartoon intended for young children, the replacement
advertisement cannot be an advertisement targeted to an older
audience such as a beer commercial).
[0047] Other information may also be provided as will be discussed
below. The video server manager 5 provides control of switching and
routing facilities 6 including unicast, multicast and broadcast of
each channel. Each broadcast channel is transmitted across a
network 7 to the set top box 8 which directs the data to the
television 9. Network 7 may be any of a number of different types
of networks or combinations of networks. For example, in some
embodiments, network 7 is a wide area distribution network to local
exchanges and local loop delivery using ADSL. Network 7 allows
broadcast data to be delivered to subscriber set to boxes 8, and
also allows the transmission of data from set top box 8 to
switching and routing facilities 6 (e.g., to select programs for
archive, for play of programs, etc.). Subscribers may also be able
to access service or program information related to the current
program via the set top box 8.
[0048] Set top box 8 may be any device configured to receive
digital broadcast data at a subscriber's home. In some embodiments,
where digital broadcast data is delivered to subscribers via ADSL
techniques, set top box 8 includes a modem or receiver allowing the
receipt and transmission of data over telephone wires. In
embodiments where broadcast data is delivered in MPEG formats, set
top box 8 includes an ability to decode the received MPEG data. In
some embodiments, set top box 8 includes information uniquely
identifying the subscriber associated with the set top box. For
example, in some embodiments, set top box 8 may include a unique
identifier such as a digital signature or other cryptographic
identifier. This identifier may be provided on a tamper resistant
device such as, for example, a smart card. This unique subscriber
identifier may be appended to messages transmitted from the set top
box 8 to the broadcast service provider, allowing the broadcast
service provider to identify the subscriber. Further, the unique
identifier may be used in setting up unicast sessions between the
switching and routing 6 and individual set top boxes 8. Set top box
8 may be equipped with an infra red or other sensor, allowing a
subscriber to interact with set top box 8 using a remote control
device.
[0049] Embodiments provide subscribers with the ability to view
live broadcast programs, view archived broadcast programs some
period after the initial live broadcast (e.g., for a period of
24-72 hours after initial broadcast), or store and view specific
programs in a longer-term archive for later viewing. For programs
which are viewed after the initial live broadcast, subscribers are
able to interactively control the play of the programs (e.g.,
subscribers may pause play, fast forward, or rewind as desired).
Further, because embodiments create an accurate historical program
schedule based on the actual broadcast data received by a broadcast
service provider, subscribers can view and interact with a detailed
and accurate schedule to select programs for viewing or for
archival. Embodiments also allow the creation of an accurate
historical advertisement database, including information
identifying the location or position of each advertisement in each
program. This advertisement database may be used to control the
insertion (and, if appropriate) replacement of advertisements in
programs broadcast to subscribers. Further, each of these viewing
options is provided using relatively low bandwidth technologies
such as ADSL, allowing subscribers to view and interact with a wide
variety of broadcast programs over existing home telephone
wires.
[0050] Further details of some embodiments will now be described by
reference to FIG. 3, where an embodiment of a broadcast system 50
is shown. Broadcast system 50 includes one or more broadcast
channel provider/rights owner(s) 12 which generates (or causes to
be generated) broadcast data that is provided to BDHE 2 for
distribution to subscribers via a number of set top boxes 8. In the
depicted embodiment, digital broadcast channel data is received at
BDHE 2 via one or more digital channel sources 30 (e.g., such as
digital terrestrial, digital satellite, or digital cable sources).
In some embodiments, this digital broadcast channel data is
received encoded in MPEG (or similar) formats. As shown, digital
broadcast channel data received in MPEG-2 format from digital
channel source 30 is typically received in a "multiple program
transport stream" (or MPTS) (that is, in a transport stream of
packets having multiple programs encoded therein).
[0051] This MPTS of channel information is provided to a decoder 31
which decodes the digital broadcast channel data into serial
digital information for each channel. Operation of decoder 31
causes the service information associated with individual programs
to be lost. Pursuant to some embodiments, this service information
(or at least portions thereof) is preserved by passing the digital
broadcast channel data received at digital channel source 30 to a
service information ("SI") processor 19. This SI processor 19 may
be implemented as part of BDHE 2 or it may be implemented as a
separate component in communication with BDHE 2.
[0052] SI processor 19 receives the digital broadcast channel data
in MPTS format and then parses information from each broadcast
channel to obtain detailed program information associated with each
channel. For example, in some embodiments, SI processor 19 parses
incoming data to obtain a "service description table" (SDT) and
"event information tables" (EIT) for each broadcast channel. These
tables provide information about each program as well as about
upcoming programs on each channel. For example, the tables provide
information identifying the name of the program, a description of
the program, a duration of the program, start and end times
(scheduled and actual) and information about the program's
genre.
[0053] SI processor 19 returns information to BDHE 2 for
multiplexing with the video and audio information for each channel.
BDHE 2 re-encodes each channel into "single program transport
streams" (or SPTS) using an encoder 32. This encoded audio and
video information is associated with the SI information from SI
processor 19 using a multiplexor 33. In some embodiments, SI
processor 19 returns an MPEG transport stream containing program
access table (PAT) and program map table (PMT) service information
as well as private data carried on multiple program identifiers
(PIDs) for each channel. Multiplexor 33 inserts these private PIDs
alongside the audio and video data for each channel. To ensure
playback consistency, in some embodiments, the total bandwidth used
by each of the private data PIDs is at a constant bit rate (CBR).
In general, the total bandwidth allocated to each private data PID
which is re-associated with the audio and video data by multiplexor
33 is kept relatively small in comparison to the video and audio
bandwidth.
[0054] Each of the MPTS transport streams are then divided into
multiple individual single program transport streams (including SI
data for each program) using a network interface 34. In some
embodiments, network interface 34 is an MPEG-2 transport stream
aware interface. The multiple single program transport streams are
passed to the switching and routing devices 6 for routing (under
direction of the video server manager 5) as live broadcast data to
appropriate set top boxes 8.
[0055] Pursuant to some embodiments, SI processor 19 also parses
broadcast data streams to identify and retrieve information
associated with advertisements. Examples of broadcast data streams
parsed to retrieve advertisement information will now be provided
by briefly referring to FIGS. 4A-4D. As shown in FIG. 4A, a
broadcast data stream (such as the stream received at BDHE 2) may
include a number of programs without advertisements (e.g., such as
programs received from a channel which does not receive income from
advertisements). Such a broadcast data stream may include EIT
information (shown as "E1", "E2" and "E3") separating each program.
EIT information "E1" occurs at time "t1" and has a duration equal
to the difference "d" between "t1" and "t2" (the ending time of the
program). This information is extracted by SI processor 19 for use
in creating an accurate historical program schedule (e.g., stored
at broadcast schedule server 4) and program archives.
[0056] As shown in FIG. 4B, a broadcast data stream may include a
number of programs, each having advertisements placed within the
program. As shown, a program begins at time "t1" indicated by EIT
"E1". Placed within the program are three advertisements, which are
indicated by EIT information "Ea1", "Ea2" and "Ea3", and having
times "ta1", etc. This information is extracted by SI processor 19
to create an accurate historical program schedule as well as to
create advertisement information (e.g., which may be stored at, or
accessible to, video server manager 5). This advertisement
information is used to select and insert advertisements when the
program is played. In particular, on playback, the advertisement
information extracted by SI processor 19 is used to identify the
appropriate time in a program at which to insert an advertisement
(such as a replacement advertisement targeted to the
subscriber).
[0057] In particular, in the data stream of FIG. 4B, on playback, a
playback timer will identify the time ("ta1") during playback at
which an advertisement was originally located when the program was
broadcast. Playback of the program may be paused and an
advertisement may be inserted at time "ta1" and played. A second
advertisement may be inserted at time "ta2", and a third at "ta3".
Play of the program is resumed at a time equal to
"ta1+da1+da2+da3". Additional advertisements may be inserted at
times "ta4" and "ta5". For each of the types of data streams of
FIG. 4, advertisement information extracted by SI processor 19 may
also include information which identifies the content of the
advertisement. For example, EIT information may include information
identifying an advertiser, information identifying the particular
commercial, information identifying the target audience,
information identifying the dates during which the advertisement
should be played, etc. This information, along with the timing and
duration information, is stored and used to allow the selection and
insertion of advertisements during program playback.
[0058] As shown in FIG. 4C, a broadcast data stream may include a
number of programs, each having a block of advertisements embedded
within the program. For example, as shown, a program begins at time
"t1" indicated by EIT "E1". An "ad break" is located within the
program and is identified by EIT information "Ea1" at "ta1". The ad
break may be sufficiently large to include more than one
advertisement. Unlike the data stream of FIG. 4B, the data stream
of FIG. 4C does not utilize separate EIT information for each
individual advertisement.
[0059] As shown in FIG. 4D, a broadcast data stream may include a
number of programs which have embedded advertisements which are not
identified by EIT information. It may not be possible for SI
processor 19 to parse and identify these advertisements. As an
alternative, embodiments may utilize other indicators to identify
these advertisements. For example, in some embodiments, an operator
may manually view the broadcast data stream and identify the start
and end of each advertisement or block of advertisements.
[0060] Referring again to FIG. 3, in some embodiments, SI processor
19 may be configured to save further bandwidth by selectively
parsing and using particular types of service information. For
example, in some embodiments, subtitle information may be
manipulated to reduce bandwidth. As a particular example, SI
processor 19 extracts teletext subtitles from the MPTS data
received from BDHE 2 by parsing the complete teletext stream and
extracting only the subtitle information from the stream. For
example, some broadcast systems include teletext subtitles in a
particular "page" of teletext information associated with a
broadcast. In some systems, the subtitles are include in teletext
"page 888". In such an system, SI processor 19 is configured to
repackage the "page 888" packets, and optionally inserts a new
packet (e.g., such as a "page 100" packet) into the stream using
another private data PID (again, in CBR).
[0061] The dropped teletext pages may, in some embodiments, be
stored on a teletext server or database (not shown in FIG. 3) which
can later be queried by a subscriber's set top box 8 during viewing
of the broadcast program. As another example, DVB subtitles (where
present) can also be extracted by SI processor 19 to reduce
bandwidth. For example, SI processor 19 may parse the subtitle
information and translate the subtitles into a bandwidth-reduced
form (e.g., the information may be stored on a server and displayed
only in response to particular queries from set top boxes 8). In
this manner, SI processor 19 can operate in conjunction with BDHE 2
to remove certain types of service information from the transport
stream, while ensuring that needed service information remains
associated the correct programs.
[0062] SI processor 19 may also be configured to handle radio
channels (e.g., by identifying radio channels as having audio-only
PIDs). The audio-only PIDs may be passed directly to multiplexor 33
without need for re-encoding. Further, SI processor 19 may also be
configured to extract interactive applications (which may be stored
by video server manager 5 for use on-demand), thereby avoiding the
need to use carouselling systems typically used in broadcast
environments. In some broadcast environments, such as conventional
satellite and cable systems, there is often no back channel which
can be used to request interactive applications and associated
assets. Previous systems overcome this lack of a back channel by
using a carousel. For example, a channel provider repeatedly
transmits (or "carousels") the interactive application and
associated assets on a separate MPEG PID. These previous systems
rely on the set top box to identify, retrieve, and cache this
information. This can lead to problems. For example, if a viewer
moves within an application, or moves from one application to
another, the needed information may not have been cached, and the
set top box must wait until the channel provider retransmits the
data (or until the data reappears on the carousel).
[0063] One protocol which is used to implement such carouselling
techniques is specified by the Digital Storage Media Command and
Control (DSM-CC) extensions of MPEG-2, Part 6. Embodiments
disclosed herein allow broadcast systems to broadcast interactive
applications without need for such carouselling techniques.
Further, pursuant to some embodiments, alternative versions of
interactive applications may be delivered to subscribers based on
access rules or permissions established by channel providers or
content owners (e.g., to ensure that only the latest version of a
particular interactive application is made available to
subscribers, etc.).
[0064] In addition to providing processed service information to
the head-end for recombination with audio and video data for each
program, SI processor 19 also provides the processed service
information to broadcast schedule server 4 for use in creating
accurate schedule data 15. By utilizing service information based
on digital broadcast channel data as it is actually received by
BDHE 2, embodiments are able to create a historical schedule with
accurate information about the actual start and end times for
broadcast programs on each of the broadcast channels received at
BDHE 2. This information may be combined with published schedule
data (e.g., such as broadcast schedule data published by broadcast
channel providers/channel owners 12) to create schedule data 15
having substantially complete and accurate program information.
[0065] As an example, many programs, such as live sporting events,
have a scheduled broadcast time which is an estimated time. This
estimated time is used by the broadcast channel provider/rights
owner 12 to produce a program schedule. Often, however, such
programs may finish early (or late). Embodiments allow the creation
of schedule data 15 which accurately identifies the actual schedule
for the program. This information may be utilized to accurately and
efficiently archive programs for later playback (e.g., a sporting
event that actually lasts for 47 minutes will be identified as
lasting 47 minutes rather than some estimated time such as an
hour).
[0066] The network interface 34 of BDHE 2 also provides the
de-multiplexed SPTS data to timeslip server 3. As shown, timeslip
server 3 has a number of different functional components. In
particular, each of the de-multiplexed channels of SPTS data are
provided to an acquire and store channel 42 which operates to read
the received transport stream and store it onto the correct storage
location in the next available storage device. Acquire and store
channel 42 also operates to wrap around the end of each storage
device and to maintain a circular buffer. In some embodiments, the
transport stream received from BDHE 2 is stored in an unaltered
format (i.e., it is stored in the format in which it is received).
As depicted, the data is stored in separate storage devices 43, 44
(or storage areas) for each channel. In some embodiments, each
storage device (or storage area) is configured to act as a circular
or wrap-around buffer sized to store a certain amount of broadcast
data (e.g., if the short-term archive function is intended to
provide 24 hours of short-term archived programs, each buffer is
sized to accommodate 24 hours of data). When the end of the buffer
is reached, the oldest programs in the buffer are overwritten with
the most recent broadcast programs for each channel.
[0067] Acquire and store channel 42 also operates to parse the
private data SI packets from the transport stream. The private data
SI packets are passed to a schedule table 41, along with storage
information identifying where the program associated with
particular SI data is stored. For example, schedule table 41 may
include an information record for each program which includes the
SI information for the program, along with disk location
information particularly identifying the disk storage location on
which the program is stored (e.g., such as a buffer location in a
particular channel data store such as data stores 43 or 44). In
some embodiments, the SPTS stream received by acquire and store
channel 42 is CBR, allowing acquire and store channel 42 to
reliably predict the amount of storage required for each program
and to ensure the timeliness of reading data back off disk upon
playout. CBR ensures that the output rate of a stream on playout
equals the input rate.
[0068] Schedule table 41 may be configured to contain information
identifying a list of channels, each of which is associated with
records containing an event or program identifier, an event time,
and a disk position at which the program is stored. This allows the
start and end times of programs to be accurately located for
playout. In some embodiments, the start and end positions are
located at program boundaries. For example, the start and end
positions may always be located on a video "group of programs"
(GOP) or audio "packetized elementary stream" (PES) boundary to
ensure that playback always begins at a safe point. In some
embodiments, program information in schedule table 41 is removed
once the circular buffer of programs wraps past the program.
[0069] Timeslip server 3 also includes a video and audio stream
analyzer 45. Video and audio stream analyzer 45 operates to
uniquely identify each video GOP boundary. The streams received by
acquire and store channel 42 are parsed to identify these
boundaries. The disk position of each GOP on each channel is stored
in a GOP list 46. A GOP can span many MPEG transport stream packets
(and may typically include approximately 12 video frames, including
Intra or I frames, Predicted or P frames, and Bi-directional or B
frames). Pursuant to the MPEG-2 standard, a GOP always starts with
an I frame. In some embodiments, video and audio stream analyzer 45
is configured to identify these boundaries and to associate them
with storage locations. Analyzer 45 further analyzes the streams to
identify audio PES packet locations. Those skilled in the art will
recognize that embodiments may be used with other standards as well
(e.g., by parsing streams to identify boundaries established by
those other standards).
[0070] Timeslip server 3 also includes a fast forward ("FF")/rewind
("REW") frame extractor 47 which is configured to extract I frames
from video streams as they are being stored by timeslip server 3.
In this manner, expensive and time consuming searches for 1 frames
in response to subscriber requests are avoided. Both an FF and a
REW stream are created by extracting the I frames and wrapping them
in an MPEG transport stream. Transport stream timing information
including PTS/DTS and PCR clock information are generated by
timeslip server 3.
[0071] Embodiments utilize the placement of I frames at the start
of each GOP to identify boundaries. GOPs do not necessarily contain
the same number of frames; for example, encoders may sometimes
terminate a GOP to insert an I frame on scene changes. Embodiments
ensure an appropriate FF/REW playback speed by monitoring (and
adjusting, if appropriate) the rate at which I frames are stored to
disk. Unlike regular program playback, the output rate of FF/REW
playback is not determined by the input rate (that is, the FF/REW
information need not be stored at the same rate that it will be
played back). Instead, the playback rate is configurable by
specifying a desired interval between I frames. When writing FF/REW
information to database 46, FF/REW frame extractor 47 may drop
certain I frames in the feed received from the acquire and store
channel 42. In this manner, the playback rate can be configured for
consistency.
[0072] The time and storage location relationship between the
FF/REW streams and the original content stream is stored (e.g., at
data store 46) to allow timeslip server 3 to locate the correct
FF/REW point when requested and to ensure that after completion of
a FF/REW that the correct point of the program is located to resume
play. Playback pacing is controlled by timeslip server 3 by using
switching and routing 6 (or other output device) as an accurate
timing source (e.g., in an ATM environment, the ATM switch may be
used as a timing source).
[0073] Timeslip server 3 also includes a playout module 49 to
control playout of archived programs. Playout involves locating the
start of a requested program and streaming the content off the
appropriate storage device to the particular set top box 8
associated with the subscriber who requested the content. A request
message submitted from a set top box 8 will include information
identifying the particular subscriber making the request (as well
as information to allow switching and routing devices 6 to set up a
unicast session with the set top box). When a subscriber requests a
program, the request is routed to timeslip server 3 through playout
module 49 which causes schedule table 41 to be consulted to
identify the start point of the requested program. In some
embodiments, the start point of each program is aligned to a GOP or
audio PES packet to ensure a clean start to the playback. Playout
continues until the end of the program is reached or until other
instructions are received, such as, for example, a request to stop
playout, a request to skip, or a request to view another
program.
[0074] If a program is skipped or another program is selected, the
current program continues to play until the end of the video GOP
(or audio PES packet) is reached. Once reached, a message is
transmitted to set top box 8 using a private data PID packet
warning the set top box 8 of an impending discontinuity. Playback
continues from the start of the next program or nearest GOP (or
audio PES) frame to the skip point. Timeslip server 3 may be
configured to play back from either the nearest video GOP frame (or
audio PES packet), allowing different types of set top boxes to be
used with the system (as different set top boxes may respond
differently to discontinuities in playout).
[0075] As discussed above, embodiments permit subscribers to
selectively request the creation of an archive copy of a program
for storage in a longer-term archive. Timeslip server 3, under
direction from video server manager 5, may operate to cause one or
more programs to be saved by an archive content server 10. For
example, a subscriber may request that a particular program be
archived for future viewing by the subscriber. This request is
transmitted from the subscriber's set top box 8 to video server
manager 5 which causes a request to be sent to the timeslip server
3. When the SPTS packets including the requested program are
received by timeslip server 3, timeslip server 3 functions to
initiate the transmission of a copy of the program to archive
content server 10 for storage in an archive data store 17.
[0076] In some embodiments, these archive features may result in
the storage of at least two copies of a program: one copy in
archive data store 17 (the "longer-term" archive, for later
retrieval by the subscriber(s) requesting the archival) and one
copy in timeslip server 3 (the "short term" archive, for viewing by
any subscriber desiring to view a program during the period in
which the system stores broadcast programs). As a result,
embodiments provide for greater longevity and choice of viewing of
programs. The version stored by timeslip server 3 may be viewed as
a more ephemeral content store providing a viewing window of, for
example, several days after the program is broadcast, while the
version stored by archive content server 10 may provide for longer
term storage and viewing of the program. That is, in some
embodiments, timeslip server 3 provides a circular buffer of
archived programs for each channel, while archive content server 10
provides dedicated long term storage of selected programs.
[0077] In some embodiments, a number of different storage
configurations may be used for storing program information. For
example, hard disks or tape drives may be used. Entire disks may be
used, or partitioned disks. As a further protection against
failure, RAID partitions may be employed. In some embodiments,
multiple disks per channel may be used. In some embodiments,
multiple redundant disks may be used to store identical content,
reducing failure and potentially allowing for automated fail-over
recovery. Further, such a configuration may provide improved
overall performance by spreading the load on very popular channels
over multiple disks. In this manner, live broadcast data may be
delivered to authorized subscribers while generating service
information data, archiving programs, and constructing an accurate
historical schedule.
[0078] In some embodiments, not all channels are provided to all
timeslip servers. For example, in some embodiments, the allocation
of channels to timeslip servers is dependent on the popularity of
programs available on that channel. The allocation of channels to
timeslip servers is done in such a way to result in the set of
timeslip servers being capable of satisfying peak time simultaneous
viewing.
[0079] In some embodiments, playback of a program (e.g., either
from a longer-term or short term archive) may also include the
selection and insertion of advertisements into the program for
transmission to a subscriber. In some embodiments, this selection
and insertion is performed under control of video server manager 5
which has access to information identifying the location of
advertisements in each program and channel (e.g., based on the
information extracted by SI processor 19). Video server manager 5
may also have access to a database of advertisements (e.g., such as
ad database 20). Pursuant to some embodiments, video server manager
5 may select a replacement advertisement for inclusion in a program
transmitted to a subscriber. Further details of such embodiments
will now be described by first referring to FIG. 5, where a flow
diagram is shown representing a method pursuant to some embodiments
of the present invention. The flow diagram of FIG. 5 (and other
flow diagrams contained herein) include a number of process steps.
These process steps need not be performed in the sequence shown;
those skilled in the art will appreciate that different sequences
consistent with embodiments discussed herein may be used.
[0080] FIG. 5 depicts a process 300 for identifying advertisements
in a broadcast data stream. Process 300 may be implemented using
the broadcast system of FIGS. 1-3, although those skilled in the
art will appreciate that other systems and configurations may also
be used. Process 300 begins at 302 where a broadcast data stream is
received. For example, in the system of FIG. 3, the broadcast data
stream is a digital data stream received by BDHE 2.
[0081] Processing continues at 304 where advertisements are
identified. According to some embodiments, advertisements are
identified by SI processor 19. BDHE 2 transmits the data stream to
SI processor 19 where service information is parsed and identified.
In some embodiments, where advertisements are identified by EIT
information (such as the data streams of FIG. 4B or 4C discussed
above), SI processor 19 identifies the location of each
advertisement based on the EIT information. In some embodiments,
where EIT information is not provided for advertisements, an
operator may be used to monitor the broadcast data stream to
identify the location of advertisements in the stream.
[0082] Processing continues at 306 where the EIT or other location
information is used to create or update a schedule table including
advertisement information and location. In some embodiments, the
EIT information (or manually-captured location information) is
provided from SI processor 19 to broadcast schedule server 4 to
construct a schedule of advertisements associated with the
broadcast schedule created by broadcast schedule server 4. For
example, for each program, an advertising event schedule is created
indicating the position of each advertisement in the program.
Information may also be captured identifying details associated
with the advertisement (e.g., such as the advertiser, the genre,
the target audience, a description or identifier, suggested dates
of play, etc.). A copy of the advertisement is also stored. In some
embodiments, broadcast schedule server 4 stores schedule
information and video server manager 5 stores advertisement data
20. When a program is played back (as will be discussed below) both
sets of information are used to insert advertisements into
programs.
[0083] In some embodiments, the system of the present invention may
be configured to insert targeted promotions and advertising
directed to particular subscribers. For example, such advertising
may be inserted at the start, end or at some other point in the
playback of programs from either the short-term or the longer-term
archives (or during the multi-cast of live programs to
subscribers). Targeting may be achieved by consulting the customer
database 14 for information including, but not limited to,
subscriber preferences, subscriber viewing history, age, sex and
demographic information.
[0084] Referring now to FIG. 6, a process 400 is shown for
selecting and inserting advertisements into a program (e.g., such
as a live broadcast program or an archived program). In some
embodiments, the process 400 is performed using the system of FIGS.
1-3, although those skilled in the art will appreciate that other
systems may utilize features of the present invention to select and
insert advertisements into programs. Process 400 begins at 402
where a request is received from a subscriber to play a
program.
[0085] For example, the request received at 402 may be a request to
play an archived copy of a program (e.g., such as a
recently-broadcast program stored in a short-term archive
associated with timeslip server 3 or a program stored in a
longer-term archive such as an archive associated with the
subscriber maintained by archive content server 10). The request
received at 402 includes information identifying the program. The
request also includes information identifying the subscriber (e.g.,
such as a subscriber identifier or an identifier associated with a
set top box assigned to the subscriber).
[0086] Processing continues at 404 where a broadcast system
operates to identify a location of the requested program and
advertising information associated with the program. For example,
processing at 404 may include determining if the requested program
is a program in the short-term archive associated with timeslip
server 3 or if it is a program stored in the longer-term archive
associated with the archive content server 10. Processing at 404
also includes identifying a storage location of the program, e.g.,
by consulting schedule table 41 or other resources indicating the
particular storage location of the program. Information about the
advertisements associated with the program are also identified at
404. In some embodiments, this advertisement information is the
information extracted by the SI processor 19 when the program was
originally broadcast. For example, the advertisement information
may include information identifying where advertisements are
located in the program as well as information identifying the
length of each advertisement spot and information identifying the
advertisement (including the advertiser, the name or identifier of
the advertisement, the target audience, the dates during which the
advertisement is to be played, etc.).
[0087] In some embodiments, if the requested program did not
include any advertisements (e.g., the program was broadcast over a
commercial-free channel), processing may continue at 410 where the
requested program is played without inserting any advertisements.
In some embodiments, advertisements may be selected for insertion
at 408 even if the program was originally broadcast without
advertisements (for example, a movie may have been originally
broadcast as a video on demand without advertisements, but will be
rebroadcast from an archive with one or more advertisements
inserted).
[0088] If the requested program includes advertising, processing
continues at 406 where information associated with the subscriber
requesting the program are retrieved. For example, processing at
406 may include retrieving information from customer database 14 to
identify demographic and other information associated with the
subscriber as well as any entitlement information needed to confirm
that the subscriber is authorized to view the requested
program.
[0089] Processing continues at 408 where advertisement(s) are
selected for insertion. This selection, in some embodiments, is
performed under control of video server manager 5 in communication
with timeslip server 3 (and/or in communication with archive
content server 10). In some embodiments, the advertisements
selected for insertion are the same advertisements which were
extracted from the program when the program was originally
broadcast (e.g., at step 304 of the process of FIG. 5). In some
embodiments, the advertisements selected for insertion are
different advertisements than the advertisements which were
originally broadcast with the program. For example, replacement
advertisements are selected which more appropriately match the
subscriber's demographics or the genre of the program. Further, the
replacement advertisement may be selected to fit in the time slot
as originally broadcast (e.g., a 30-second ad is used in a
30-second slot). Other considerations may also be used in selecting
advertisements. In some embodiments, replacement advertisements are
inserted into the program at different locations. For example, a
program may have been broadcast with advertising slots every 20
minutes. A broadcast service provider may determine that the
advertising slots are better located every 30 minutes. On playback
(at 410), the new timeslots may be used.
[0090] Processing continues at 410 where the program is played back
for the subscriber with the selected advertisements inserted into
the advertising slots of the program. If the program is an archived
program requested from a short-term or longer-term archive, the
program is transmitted to the subscriber via a uni-cast session
established with the subscriber's set top box. The video and audio
data associated with each advertisement may be multiplexed into the
data stream as the program is being transmitted. The advertisement
data is inserted at the position indicated by the EIT information
originally extracted from the program. For example, when the time
to play an advertisement occurs (that is, the playback has reached
the location where the advertising event time matches the playback
time), playback of the archived program is temporarily stopped and
the video server manager 5 causes the archive content server (or
other server storing advertising content) to play the advertisement
selected at 408. If the program is being played in a uni-cast
session, the selected advertisement is also played in the same
uni-cast session. When play of the advertisement is complete, the
video server manager 5 returns control of playback to the timeslip
server 3 for restarting of the program. The timeslip server 3
restarts playback from the point where the original advertisement
would have completed.
[0091] In some embodiments, an advertisement may be associated with
further promotional material (such as a promotional offer). For
example, an advertisement (including an advertisement identified at
304 of FIG. 5 and an advertisement selected at 408) may include SI
associated with an advertisement may include information
identifying one or more promotional links. For example, a sponsor
of a program may provide promotional information or products in
association with a program or in association with a particular
advertisement. The advertisement may have SI which includes a link
(e.g., such as an Internet URL or the like) to the promotional
offer. When such an advertisement is played at 410, the
subscriber's set top box displays an indicator that a promotion is
associated with the advertisement. The subscriber can view the
promotional information by selecting the promotion via a remote
control device. If the subscriber selects to view the promotional
information, the set top box is routed to the link included in the
SI, and the promotional information is displayed. The subscriber
may then view the promotional information (which may be, for
example, a product offering, a product description, a promotional
video, a purchase offer, a link to an operator to make a purchase,
etc.). When the subscriber is finished viewing the promotional
information, he may return to either the point he left the original
advertisement, to the end of the advertisement or to the end of the
advertisement break.
[0092] This playback and insertion process is repeated until the
program is completed. If multiple advertisements are to be played
in series, control will revert to timeslip server 3 after each of
the advertisements have been played. In some embodiments, such a
series of advertisements may be combined into a single packet or
file for insertion into the broadcast data stream, thereby
minimizing the need to switch control between the video server
manager 5 and the timeslip server 3. In such embodiments, the video
server manager 5 may also control the selection of the order of
play of the advertisements in the series.
[0093] In some embodiments, video and audio data associated with
each advertisement is also stored at (or accessible to) timeslip
server 3, allowing timeslip server 3 to efficiently insert
advertisements during playback. In some embodiments, some
advertisements in a program are replaced and some are played in the
form as originally broadcast. In some embodiments, the ability to
FF or REW through an advertisement may be disabled to prevent
subscribers from skipping advertisements.
[0094] As discussed above, embodiments allow the insertion of
targeted advertisements into programs transmitted to subscribers.
This targeting may be performed in a number of ways. Referring now
to FIG. 7, an embodiment of broadcast system 50 is shown in which
broadcast service provider 51 maintains (or has access to) customer
data and advertising data used to target advertisements and
promotions to subscribers 54. For convenience, only selected
components of broadcast system 50 are depicted in FIG. 7.
[0095] In the embodiment depicted, broadcast service provider 51
operates to provide live broadcast data to subscribers 54.
Broadcast service provider 51 additionally provides archived
programs to subscribers 54, including programs from a short term
archive 53 and a longer-term archive 52. The transmission of these
programs to particular subscribers is controlled, in part, by video
server manager 5. For example, video server manager 5 may consult
customer database 14 to determine if a particular subscriber is
authorized to view a particular program or a particular archived
copy of the program or whether the subscriber is authorized to
cause a longer-term copy of a program to be archived. Broadcast
service provider 51 may also use this customer data to monitor
subscriber viewing habits, identify trends, and select and target
advertisements and promotions to individual subscribers.
[0096] In some embodiments, customer database 14 includes data
identifying individuals having a subscriber relationship with
broadcast service provider 51. This data may include, for example:
a unique subscriber identifier (which may be the same as, or
associated with, a unique identifier of a set top box issued to the
subscriber); demographic information of the subscriber (e.g.,
including the subscriber's age, gender, marital status, family
size, etc.); geographic information (e.g., including the
subscriber's address); and subscription information (e.g.,
including information identifying particular channels and
entitlements associated with each subscriber). This information may
be used by video server manager 5 to control subscriber access to
live and archived programs. In some embodiments, subscription
information may also include information specifying whether a
subscriber is authorized to make copies of programs from the
subscriber's set top box or television. For example, a subscriber
may attach a video cassette recorder or rewritable CD-ROM or a DVR
to his television or set top box and make copies of some programs
broadcast using embodiments of the present invention. Pursuant to
some embodiments, a subscriber's ability to make copies may be
restricted by including copy protection measures in certain
programs that are transmitted to the subscriber. In some
embodiments, the copy protection measures may be specified for
particular programs.
[0097] In some embodiments, customer database 14 also includes
information about subscriber viewing habits associated with live
broadcasts. For example, in some embodiments, video server manager
5 tracks and identifies each request received from a subscriber to
join a multicast of a live broadcast. Video server manager 5 then
captures (and stores in customer database 14) information
identifying the name, genre, channel, and broadcast time of each
program requested by each subscriber. In this manner, broadcast
service provider 51 may capture, maintain, and track detailed live
broadcast viewing information for each subscriber.
[0098] In some embodiments, customer database 14 also includes
information about subscriber viewing habits associated with
programs stored in short-term and longer-term archives. For
example, video server manager 5 tracks and identifies each request
received from a subscriber to view a program stored in short-term
archive 53 (e.g., including information identifying the program
name, genre, channel, and time of each request). Video server
manager 5 also tracks and identifies each request received from a
subscriber to create a copy of a program for storage in longer-term
archive 52, as well as each request to view a program from the
longer-term archive 52 (e.g., including information identifying the
program name, genre, channel, and time of viewing request). In this
manner, broadcast service provider 51 is able to create, maintain,
and update customer database 14 with relevant and timely
information about each subscriber's viewing habits and
preferences.
[0099] In some embodiments, this customer database information
associated with each subscriber is used in conjunction with
advertisement and promotional data stored at (or accessible to)
broadcast service provider 51. For example, as shown in FIG. 7,
video server manager 5 is in communication with an advertisement
database 20. Advertisement database 20, in some embodiments,
includes information about a number of different types of
advertisements or promotions, and the ability to stream these to a
subscriber. For example, advertisement database 20 may include
regular broadcast advertisements, such as 30 or 60-second
advertisements. Advertisement database 20 may also include banner
advertisements created to be displayed across the top or bottom of
a television screen. Advertisement database 20 may store the video
and audio portions of advertisements in MPEG or other formats.
Other types of advertisements or promotions may also be
provided.
[0100] In some embodiments, advertisement database 20 includes
identifying information associated with each advertisement or
promotion. For example, each advertisement is identified by a
unique identifier. This unique identifier is used by broadcast
service provider 51 to track and manage advertisements and
promotions. For example, video server manager 5 may request play of
a particular advertisement by reference to this unique identifier.
Advertisement database 20 may also include other information
associated with each advertisement, including information
identifying an audience to which the advertisement should be
targeted. For example, a brewing company may create a beer
advertisement which is intended to be displayed to males aged
21-35. This demographic information identifying the advertisement's
intended target audience is stored in advertisement database 20 in
a record associated with the advertisement itself. Pursuant to some
embodiments, video server manager 5 uses this information, in
conjunction with information from the customer database 14, to
provide targeted advertisements to subscribers in conjunction with
the transmission of live or archived broadcast data.
[0101] For example, when a subscriber joins a multi-cast of a live
broadcast program, the subscriber submits a program selection
request to broadcast service provider 51 through a set top box.
This program selection request message includes information
identifying the subscriber (or information identifying the set top
box associated with the subscriber). Video server manager 5
utilizes this identifying information to determine if the
subscriber has access permission to view the requested program,
and, if so, adds the subscriber to the multi-cast of the
program.
[0102] Pursuant to some embodiments, video server manager 5 may
also selectively cause one or more advertisements or promotions to
be transmitted to the subscriber. These advertisements or
promotions may be selected based on information associated with the
subscriber, information associated with the program requested by
the subscriber, and/or information associated with the
advertisement which was originally broadcast with the program. For
example, if the subscriber is a 25 year-old male, and the
subscriber submits a request to view a live broadcast of a sporting
event, video server manager 5 may identify one or more
advertisements which are targeted to the subscriber (because of the
subscriber's demographics, the genre of the program requested, or a
combination of both sets of information). For example, the beer
commercial discussed above may be selected (because the
subscriber's demographic information matches the target audience
information associated with the beer commercial) for broadcast to
the subscriber. Video server manager 5 may cause the selected
advertisement (or advertisements) to be broadcast to the subscriber
in conjunction with the broadcast of the program by causing the
advertisement to be inserted at a location identified by EIT
information extracted by SI processor 19 (shown in FIG. 3).
[0103] Similar targeting may be performed in conjunction with the
broadcast of programs from the short-term or longer-term archives.
In this manner, embodiments allow accurate targeting of
advertisements or promotions to subscribers based on information
about the subscriber, information about the program, information
about the advertisement or promotion, or a combination of this
information. Further, in some embodiments, advertisements or
promotions may be transmitted to subscribers in a way which
prevents the subscriber from skipping or fast-forwarding through
the advertisement. For example, advertisements may be transmitted
as banner advertisements which are displayed along a top or bottom
portion of a screen during a program.
[0104] As another example, advertisements may be transmitted for
display during a period in which the subscriber has paused playback
of a program. As yet another example, advertisements may be
transmitted for play at the beginning of a requested program, and
must be viewed before the program is viewed. In this manner,
advertisers may accurately target select audiences, reducing
inefficiencies related to existing television advertising
techniques.
[0105] In some embodiments, when a subscriber views an archived
program (e.g., from either the short-term or longer-term archives)
some or all of the advertisements that were originally broadcast
with the live broadcast of the program are replaced with one or
more targeted advertisements which are specifically targeted to the
subscriber.
[0106] Embodiments of the present invention have been described in
terms of several embodiments solely for the purpose of
illustration. Persons skilled in the art will recognize from this
description that the invention is not limited to the embodiments
described, but may be practiced with modifications and alterations
limited only by the spirit and scope of the appended claims. For
example, while embodiments have been described with reference to
the MPEG-2 standard, those skilled in the art will appreciate, upon
reading this disclosure, that other encoding technologies may be
utilized. For example, other standards currently used or may also
be utilized (e.g., such as MPEG-4 and/or H.264, etc.).
* * * * *
References