U.S. patent application number 11/486267 was filed with the patent office on 2006-11-09 for method and apparatus for encoding a user interface.
This patent application is currently assigned to SEDNA PATENT SERVICES, LLC. Invention is credited to Sadik Bayrakeri, Donald F. Gordon, Edward A. Ludvig, Nathan W. Osborn.
Application Number | 20060253868 11/486267 |
Document ID | / |
Family ID | 27492681 |
Filed Date | 2006-11-09 |
United States Patent
Application |
20060253868 |
Kind Code |
A1 |
Ludvig; Edward A. ; et
al. |
November 9, 2006 |
Method and apparatus for encoding a user interface
Abstract
A method and apparatus for combining video frame sequences with
a video display of an interactive program guide (IPG). The
apparatus comprises a plurality of compositors that combine
background information, video frame sequences and program guide
graphics into a single video frame sequence. The sequence is then
digitally encoded to form an MPEG-like bitstream. The same
background information and informational video is composited with a
different program guide graphic to form another video sequence that
is also encoded. A plurality of such sequences are produced with
each sequence having a different program guide graphic. Each
sequence is encoded and then multiplexed into a transport stream
such that all the encoded sequences are transmitted to a
subscriber's terminal using a single transport stream. As such, the
subscriber can transition from one program guide to the next
without interruption of the background or video display as the
program guide graphic is changed.
Inventors: |
Ludvig; Edward A.; (Redwood
City, CA) ; Gordon; Donald F.; (Los Altos, CA)
; Osborn; Nathan W.; (Menlo Park, CA) ; Bayrakeri;
Sadik; (Foster City, CA) |
Correspondence
Address: |
PATTERSON & SHERIDAN, LLP/;SEDNA PATENT SERVICES, LLC
595 SHREWSBURY AVENUE
SUITE 100
SHREWSBURY
NJ
07702
US
|
Assignee: |
SEDNA PATENT SERVICES, LLC
|
Family ID: |
27492681 |
Appl. No.: |
11/486267 |
Filed: |
July 13, 2006 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
09359561 |
Jul 22, 1999 |
7091968 |
|
|
11486267 |
Jul 13, 2006 |
|
|
|
09293526 |
Apr 15, 1999 |
6754905 |
|
|
11486267 |
Jul 13, 2006 |
|
|
|
09201528 |
Nov 30, 1998 |
6415437 |
|
|
11486267 |
Jul 13, 2006 |
|
|
|
60093891 |
Jul 23, 1998 |
|
|
|
Current U.S.
Class: |
725/50 ;
348/E5.105; 348/E5.112; 348/E7.061; 348/E7.063; 375/E7.268; 725/39;
725/54 |
Current CPC
Class: |
H04N 7/165 20130101;
H04N 21/4532 20130101; H04N 5/44543 20130101; H04N 21/2365
20130101; H04N 21/482 20130101; H04N 21/47 20130101; H04N 7/163
20130101; H04N 21/6547 20130101; H04N 21/4347 20130101; H04N
21/4821 20130101; H04N 21/4314 20130101; H04N 21/84 20130101; H04N
5/45 20130101 |
Class at
Publication: |
725/050 ;
725/039; 725/054 |
International
Class: |
H04N 5/445 20060101
H04N005/445; G06F 3/00 20060101 G06F003/00; G06F 13/00 20060101
G06F013/00 |
Claims
1. A method of encoding a plurality of program guide pages,
comprising: encoding each program guide page to form a plurality of
program guide page representative bitstreams; determining a longest
bitstream; associating null packets with at least some of the
bitstreams to provide a plurality of bitstreams having
substantially similar lengths; and associating at least one
switching packet with the end of each bitstream.
2. The method of claim 1, wherein said plurality of bitstreams are
stored in a buffer, said step of determining comprising determining
how much of said buffer is occupied by each bitstream.
3. The method of claim 2, further comprising: retrieving the
bitstreams from the buffer; and adapting the retrieved bitstreams
to form respective transport streams having substantially similar
lengths.
4. The method of claim 1, wherein the NULL packets are added to the
bitstreams.
5. The method of claim 1, wherein the switching packets are added
to the buffered bitstreams.
6. The method of claim 3, wherein said NULL packets are added to
the transport streams.
7. The method of claim 3, wherein said switching packets are added
to the transport streams.
8. The method of claim 1, wherein the encoding of each program
guide page is performed contemporaneously for program guide pages
representing a common time period.
9. The method of claim 8, wherein said switching packets are
inserted into switching packets are placed in the bitstreams at a
common point.
10. The method of claim 9, wherein the common point represents at
least one of a common point in time and a common bitstream byte
count.
11. The method of claim 1, wherein the bitstreams are adapted to
enable at a decoder a substantially seamless switching between
bitstreams.
12. The method of claim 11, wherein the substantially seamless
switching between bitstreams enables a visually smooth transition
between presented program guide pages.
13. A method of encoding a plurality of program guide pages
comprising the steps of: encoding each program guide page to form a
respective bitstream; buffering the bitstreams for all the guide
pages; retrieving said bitstreams from a buffer; ordering the
bitstreams into a transport stream to equate the length of the
transport stream with the length of other transport streams; and
adding switching packets to the transport stream.
14. A method of encoding a plurality of program guide pages
comprising the steps of: contemporaneously encoding each program
guide page to form respective bitstreams; assembling a transport
stream containing each bitstream in successive order; adding
switching packets into the transport stream after the bitstreams.
Description
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application is a continuation of commonly assigned
pending U.S. patent application Ser. No. 09/359,561 filed Jul. 22,
1999 which application claims benefit of U.S. provisional patent
application Ser. No. 60/093,891 filed Jul. 23, 1998 which is hereby
incorporated herein by reference. U.S. patent application Ser. No.
09/359,561 is also a continuation-in-part of commonly assigned U.S.
patent application Ser. No. 09/293,526 filed Apr. 15, 1999 and
commonly assigned U.S. patent application Ser. No. 09/201,528 filed
Nov. 30, 1998. All of the prior applications are hereby
incorporated herein by reference.
BACKGROUND OF THE DISCLOSURE
[0002] 1. Field of the Invention
[0003] The invention relates to electronic program guides and, more
particularly, the invention relates to a technique for encoding a
user interface of an information distribution system.
[0004] 2. Description of the Background Art
[0005] In several communications systems, the data to be
transmitted is compressed so that the available transmission
bandwidth is used more efficiently. For example, the Moving
Pictures Experts Group (MPEG) has promulgated several standards
relating to digital data delivery systems. The first, known as
MPEG-1 refers to ISO/IEC standards 11172 and is incorporated herein
by reference. The second, known as MPEG-2, refers to ISO/IEC
standards 13818 and is also incorporated herein by reference. A
compressed digital video system is described in the Advanced
Television Systems Committee (ATSC) digital television standard
document A/53, and is incorporated herein by reference.
[0006] The above-referenced standards describe data processing and
manipulation techniques that are well suited to the compression and
delivery of video, audio and other information using fixed or
variable rate digital communications systems. In particular, the
above-referenced standards, and other "MPEG-like" standards and
techniques, compress, illustratively, video information using
intra-frame coding techniques (such as run-length coding, Huffman
coding and the like) and inter-frame coding techniques (such as
forward and backward predictive coding, motion compensation and the
like). Specifically, in the case of video processing systems, MPEG
and MPEG-like video processing systems are characterized by
prediction-based compression encoding of video frames with or
without intra- and/or inter-frame motion compensation encoding.
[0007] Over the past few years, television has seen a
transformation in a variety of means by which its programming is
distributed to consumers. Cable television systems are doubling or
even tripling system bandwidth with the migration to hybrid fiber
coax (HFC) cable plant thereby offering a larger number of channels
to the viewer. Customers unsatisfied with their local cable systems
have switched in high numbers to direct broadcast satellite (DBS)
systems. And, a variety of other approaches have been attempted
focusing primarily on high bandwidth digital technologies,
intelligent two way set top boxes, or other methods of trying to
offer service differentiated from standard cable and over the air
broadcast systems.
[0008] With this increase in bandwidth, the number of programming
choices has also increased. Leveraging off the availability of more
intelligent set top boxes, several companies such as Starsight and
Prevue Guide have developed elaborate systems for providing an
interactive listing of a vast array of channel offerings, expanded
textual information about individual programs, the ability to look
forward to plan television viewing as much as several weeks in
advance, and the option of automatically programming a VCR to
record a future broadcast of a television program.
[0009] Unfortunately, the existing program guides have several
drawbacks. They tend to require a lot of memory, some of them
needing upwards of one megabyte of set top terminal (STT) memory.
They are very slow to acquire their current database when they are
activated for the first time or are subsequently restarted (e.g., a
large database may be downloaded to a STT using only a vertical
blanking interval (VBI) data insertion technique).
Disadvantageously, such slow database acquisition may result in out
of date database information or, in the case of a pay per view
(PPV) or video-on-demand (VOD) system, limited scheduling
flexibility for the information provider. The user interface to
existing program guides does not usually look like a typical
television control interface; rather looks like a 1980's style
computer display (i.e., blocky, ill-formed text and/or
graphics).
[0010] Additionally, the present program guides may provide an
advertising or preview region along with the program guide
graphics. However, the insertion of these additional video signals
is performed using an analog compositor that merely inserts
(overlays) the additional imagery into the broadcast stream. The
analog compositing process is accomplished and then the new analog
video containing an advertisement or preview and the program guide
are recorded on tape for subsequent broadcast. This compositing
process is not accomplished in real time at the head end of the
cable system and, consequently, the program guide can not contain
targeted advertising for a particular household or a particular
neighborhood or region. The program guide with its associated
preview or advertising is broadcast to all subscribers connected to
the head end of the cable system. Additionally, these program
guides are generally passive, in that, the viewer sees the program
guide information change on the screen to indicate different
programs and their associated channels. However, there is no
provision enabling a viewer to interact with the program guide
display to scroll through the channel or channels that are
available. Because such scrolling in an analog system requires a
splice to a new program guide video sequence, the program guides
that are interactive do not include advertising video or other
video information with the program guide.
[0011] Therefore, it is desirable to provide a method and apparatus
for encoding an interactive program guide.
SUMMARY OF THE INVENTION
[0012] The disadvantages associated with the prior art are overcome
by the present invention of a method and apparatus for encoding
user interface of an information distribution system. One
embodiment of such user interface is an interactive program guide
(IPG) that forms an IPG screen or page containing a graphical guide
region and a video region playing at least one video sequence. The
invention is a method and apparatus for performing ensemble
encoding of one or more IPG pages. The invention comprises a
plurality of compositors that combine background information,
informational video and program guide graphics into a single
sequence of video frames. The sequence is then digitally encoded to
form an MPEG-like bitstream. The same background information and
informational video is composited with a different program guide
graphic to form another video sequence that is also encoded. A
plurality of such bitstreams are produced with each sequence
containing a different program guide graphic. The encoding is
performed using a common coding profile and a common clock for each
of the encoders. The encoded sequences are then multiplexed into at
least one transport stream such that all the encoded sequences are
transmitted to subscriber equipment using one or more transport
streams. As such, the subscriber can transition from one program
guide page to the next without interruption of the background or
informational video as the program guide page graphic is
changed.
[0013] The informational video may appear in multiple locations
upon the IPG screen. Promotional or advertising video may appear in
one portion while an animated graphic appears in another location.
Each of the informational video streams may have a different rate
of display. The encoders handle different video rates by using
slice based encoding of the composite image sequence.
[0014] One example of a program guide that is encoded in accordance
with the invention has each graphic containing a set of programs
(e.g., channels) listed along a left, vertical axis and each
program associated with the channel is identified in a rectangular
cell that extends toward the right. The horizontal axis represents
time and about 1.5 hour of programming for ten channels is shown in
each program guide graphic page. The informational video is
generally contained in one or more regions above the program
graphic.
[0015] In another example of a program guide that is encoded in
accordance with the invention has each graphic containing a set of
programs (e.g., channels) listed along a left, vertical axis and
each program associated with the channel is identified in a cell
that is listed beneath a time axis. The horizontal axis represents
time and about 1.5 hours of programming for eight channels is shown
in each program guide graphic page. Each channel is associated with
text that represents three programming slots, one for each half
hour in the time axis. The informational video is generally
contained in one or more regions next to the program graphic, i.e.,
a guide region is on the left half of the screen and the video
region is on the right half of the screen or vice versa.
BRIEF DESCRIPTION OF THE DRAWINGS
[0016] The teachings of the present invention can be readily
understood by considering the following detailed description in
conjunction with the accompanying drawings, in which:
[0017] FIG. 1 depicts a high-level block diagram of an information
distribution system that uses the interactive program guide of the
present invention;
[0018] FIG. 2 depicts a block diagram of an IPG generator of the
present invention;
[0019] FIG. 3 depicts a block diagram of a compositor unit that
produces background/informational frame sequence in accordance with
the present invention;
[0020] FIG. 4 depicts a block diagram of an IPG compositor that
inserts an IPG graphic into the background/informational frame
sequence;
[0021] FIG. 5A-5C depicts a series of illustrative IPG pages;
[0022] FIG. 6 depicts another example of an IPG page that can be
produced by the invention; and
[0023] FIG. 7 depicts a PID map for a set of IPG pages encoded by
the invention.
[0024] To facilitate understanding, identical reference numerals
have been used, where possible, to designate identical elements
that are common to the figures.
DETAILED DESCRIPTION
[0025] FIG. 1 depicts a high-level block diagram of an information
distribution system 100, e.g., a video-on-demand system or digital
cable system, that incorporates the present invention. The system
100 contains service provider equipment (SPE) 102 (e.g., a head
end), a distribution network 104 (e.g., hybrid fiber-coax network)
and subscriber equipment (SE) 106. This form of information
distribution system is disclosed in commonly assigned U.S. Pat. No.
6,253,375, issued Jun. 26, 2001. The system is known as the
OnSet.TM. system provided by DIVA Systems Corporation of Menlo
Park, Calif.
[0026] In general, the SPE 102 produces a plurality of digital
bitstreams that contain encoded information (e.g., television
programming in an MPEG-like compressed form). These bitstreams are
modulated using a modulation format that is compatible with the
distribution network 104. The subscriber equipment 106, at each
subscriber location 106.sub.1, 106.sub.2, . . . , 106.sub.n,
comprises a demodulator/decoder 124 and a display 126. Upon
receiving a bitstream, the subscriber equipment decoder 124
extracts the information from the received signal and decodes the
stream to produce the information on the display, i.e., produce a
television program or program guide page.
[0027] In an interactive information distribution system such as
the one described in commonly assigned U.S. Pat. No. 6,253,375,
issued Jun. 26, 2001, the program bitstreams are addressed to
particular subscriber equipment locations that requested the
information through an interactive menu. An appropriate interactive
menu structure for requesting video on demand is disclosed in
commonly assigned U.S. Pat. No. 6,208,335, issued Mar. 27,
2001.
[0028] To assist a subscriber (or other viewer) in selecting
programming, the SPE 102 produces a interactive program guide (IPG)
in accordance with the present invention. The IPG of the present
invention contains program information, e.g., title, time, channel,
program duration and the like, as well at least one region
displaying full motion video, i.e., a television advertisement or
promotion. Such informational video is provided in various
locations within the program guide screen.
[0029] FIG. 5A illustrates a first example of an IPG 500 that is
produced in accordance with the present invention. The IPG 500
contains a background 502, a plurality of video display regions
504, 506, and 508, and a program guide graphic 510. The program
guide graphic 510 contains a left (or right), vertical axis 512
representing the available channels and a bottom (or top),
horizontal axis 514 represents time. Generally, about 1.5 to 2
hours of programming are displayed in the guide graphic 510. Each
program (e.g., P1, P2, P3, and so on) is identified by a program
title within a rectangular cell. The extent of the cell (its
length) indicates the duration of the program and the starting
location of the left edge of the cell indicates the starting time
of the program. The arrangement of the program identification cells
in this manner is a conventional arrangement in which programming
guides have been organized in print for years.
[0030] Returning to FIG. 1, the invention produces the IPG (500 of
FIG. 5A) using a novel compositing technique that enables full
motion video to be positioned within an IPG and have the video
seamlessly transition from one IPG page to another. FIG. 1 depicts
the components that are necessary to produce an IPG page that
contains at least one video region. The embodiment of the invention
is described as having advertising displayed in the video region or
regions. However, advertising is merely illustrative of a type of
informational video and any sequence of video or graphic
information can be displayed in these regions. To this end, the SPE
102 contains a video storage device 108, an informational video
selection and monitoring system 110, an IPG generator 116 (an
ensemble encoder), a background storage device 118, a controller
114, an IPG grid generator 120, and a digital video modulator 122.
The video selection and monitoring system 110 controls timing of
the informational video display and, if the video is an
advertisement, tracks video utilization to facilitate billing to an
advertiser whenever a particular advertisement is transmitted.
Thus, the video selection and monitoring system 110 requests that
the storage device 108 (e.g., a disk drive or magneto-optical
drive) recall and send to the IPG generator 116 a particular video
sequence. The video is stored in the storage device 108 as
frame-based digital video (i.e., 601 format video) and associated
audio. Alternatively, compressed or uncompressed analog video as
well as other formats of video information may be stored in the
storage device 108. These formats are converted to 601 format prior
to sending the video to the IPG generator 116.
[0031] As the video is recalled from device 108, each video
sequence is coupled to the IPG generator 116. As such, three video
streams and one audio stream (e.g., an audio stream associated with
one of the advertisements) are provided to the IPG generator 116.
Additionally, a background image is recalled from the storage
device 118 under instructions from the controller 114. The
background image is generally a static graphic, but it may be a
video frame sequence containing moving imagery. Lastly, the IPG
grid generator 120 provides a program guide graphic to the IPG
generator 116. The IPG data for the graphic can be provided from
any one of a number of sources such as a network cable feed, an
internet site, a satellite feed, and the like. The guide program
data is formatted, for example, into the rectangular grid graphic
of program cells (screen 500 of FIG. 5A) by the IPG grid generator
120. As shall be discussed below with respect to FIG. 6, other IPG
page layouts may be used and are considered to be within the scope
of this invention.
[0032] The IPG generator 116 performs ensemble encoding by
combining the three video sequences, the background and the guide
graphics into a comprehensive IPG display such as the one depicted
as IPG page 500 in FIG. 5A or IPG page 600 in FIG. 6. As shall be
described in detail below, the informational video is overlaid onto
the background to form a background/video composite and then
various IPG grids are overlaid upon the background/video composite.
In this manner, a number of IPG "pages", for example, fifteen of
them, are produced, where each page depicts ten channels of
programming information. Each of these IPG pages is encoded within
the IPG generator 116 into a compressed digital bitstream, e.g., an
MPEG compliant bitstream. The bitstream is then modulated by the
digital video modulator 122 using a modulation format that is
compatible with the distribution network 104. For example, in the
OnSet.TM. system the modulation is quadrature amplitude modulation
(QAM); however, other modulation formats could be used.
[0033] The subscriber equipment 106 contains a demodulator/decoder
124 and a display 126 (e.g., a television). The demodulator/decoder
124 demodulates the signals carried by the distribution network 104
and decodes the demodulated signals to extract the IPG pages from
the bitstream. As shall be described below, each of the IPG pages
is identified with a unique program identification code (known as a
PID) that is used by the demodulator/decoder 124 to select a
bitstream for decoding. The decoded IPG page is displayed, as shown
in FIG. 5A, to the subscriber or viewer. As the viewer selects
another IPG page containing other program information, generally by
scrolling to the bottom of the IPG graphic 510 using a remote
control interface 128 or some other input device, the IPG page
stream associated with the next PID is decoded. The only change the
viewer sees is the IPG graphic changes (from, for example, graphic
510, to 5102), the informational video and its associated audio
seamlessly continues playing. This seamless play occurs because
each of the IPG pages contains the same, frame synchronized
background and informational video and only the IPG graphic changes
from page to page. As such, the decoder seamlessly transitions from
one IPG page to another.
[0034] FIG. 2 depicts a block diagram of the IPG generator 116. The
IPG generator 116 contains a compositor unit 200, a plurality of
IPG grid compositors 202, a plurality of video encoders 204 (e.g.,
MPEG-2 compliant encoders), a common profile and clock generator
250, a transport stream multiplexer 206, an audio delay 208, an
audio encoder 210 (e.g., an Dolby AC-3 audio encoder) and the IPG
grid generator 120. The compositor unit 200 positions the
informational video sequences (vs2, vs3, vs4) upon the background
video imagery (vs1). To facilitate positioning, the controller (114
in FIG. 1) provides the compositor unit 200 with the coordinates of
one corner of each informational video and provides a size
indicator for each rectangular region in which the video will be
displayed relative to the background. The compositor unit 200
performs the placement and fusing of the imagery to form
background/information video frame sequence. Further detail of this
compositing process is provided below with respect to FIG. 3.
[0035] The composite image (e.g., three, full motion video frame
sequences positioned upon a background image, the
background/informational video) is coupled to a plurality of IPG
grid compositors 202.sub.1, 202.sub.2, 202.sub.3, . . . ,
202.sub.15 (collectively referred to as compositors 202). The
compositors 202 combine the respective IPG graphics with the
background/informational video combination to produce a plurality
of video frame sequences containing a composite of the background,
the informational video, and the IPG graphics. There is one frame
sequence for each IPG graphic, e.g., fifteen sequences in all. As
discussed previously, the IPG graphic is produced by the IPG grid
generator 120. The IPG grid generator 120 actually produces two
items, one is the IPG grid background image (the IPG grid graphic
discussed above and shown as graphic 510 in FIG. 5A), and IPG grid
foreground overlay graphic data that is used to generate
highlighting and other special effects in the displayed IPG screen.
Additionally, this data attributes functionality to the highlighted
elements such as selecting another IPG page, selecting a program to
view, exiting the system, and the like. These special effects and
functionality are discussed below with respect to FIGS. 5A, 5B and
5C.
[0036] Each of the frame sequences (IPG screen sequences V1, V2,
V3, V15) are coupled from the compositors 202 to the plurality of
video encoders, e.g., real time MPEG-2 encoders 204.sub.1,
204.sub.2, 204.sub.3, . . . 204.sub.n (collectively encoders 204).
Each encoder 204 encodes an IPG screen sequence to form a
compressed video bitstream, e.g., an MPEG-2 compliant bitstream.
The encoders use a common encoding profile and common clock
supplied by the encoding profile and clock generator 250. As such,
each sequence of IPG frames are synchronously encoded in the same
manner.
[0037] The IPG grid foreground overlay graphics data is also
coupled to the multiplexer 206 from the IPG grid generator 120.
This graphics data is generally sent as "user data" or "private
data" within the transport stream. Further discussion of the
graphics data is provided below.
[0038] If the informational video in each IPG page have differing
amounts of motion, the encoders can encode the video in a
slice-based manner. As such, each frame is divided into a plurality
of horizontal stripes of macroblocks. Each frame contains stripe
start and stop identifiers. The information (pixels and/or
macroblocks) between the start and stop identifiers can be encoded
in a different manner than other portions of a given stripe.
Consequently, a two dimensional region comprising portions of
adjacent stripes can be encoded differently from other portions of
the frame. The encoded information from the two dimensional region
forms a bitstream that is identified by its own program identifier.
At the subscriber equipment, the demodulator/decoder decodes the
information in each slice, then reassembles the frame by placing
the decoded slices into appropriate locations as identified by the
slice start/stop identifiers. The two dimensional regions can be
specified to align with the informational video such that the
regions can contain video having different motion, i.e., fast
versus slow motion. Consequently, one region could contain a slow
moving animated character while another region could contain a fast
moving sporting event promotion and both regions would be coded and
decoded accurately.
[0039] All the compressed video streams (E1, E2, E3, . . . , E15)
containing program guide information are multiplexed into a
transport stream using multiplexer 206. These compressed video
streams may contain the stripe-based encoded streams as well. In
addition to the video information, audio information associated
with one of the informational videos is also encoded and supplied
to the multiplexer 206. The audio signal is delayed in audio delay
208, then encoded in the audio encoder 210. The delay compensates
for the time required to perform video encoding of the associated
video vis-a-vis the audio encoding. The compressed audio data is
coupled to the multiplexer 206 for incorporation into the transport
stream.
[0040] A transport stream, as defined in ISO standard 13818-1
(commonly known as the MPEG-2 Systems specification), is a sequence
of equal sized packets, each 188 bytes in length. Each packet has a
4-byte header and 184 bytes of data. The header contains a number
of fields, including packet identification number (PID). The PID
field contains 13 bits and uniquely identifies each packet that
contains a portion of a "stream" of video information as well as
audio information and data. As such, to decode a particular video
bitstream (or audio bitstream or data) for viewing, the decoder in
the subscriber equipment extracts packets containing a particular
PID and decodes those packets to create the video (and audio) for
viewing.
[0041] Each of the fifteen bitstreams representing the IPG page
sequences within a particular transport stream are uniquely
identified by a PID. In the preferred embodiment, fifteen PIDs are
multiplexed into a single transport stream. Certainly, less of more
IPG bitstreams can be included in a transport stream as bandwidth
permits. Additionally, more than one transport stream can be used
to transmit the IPG bitstreams. For example, additional IPG pages
may be encoded that represent additional time within a day or
additional channels. The bitstreams representing the additional IPG
pages are transmitted in additional transport streams. As such,
many IPG pages representing 24 hours of programming on hundreds of
channels can be broadcast to the subscriber equipment for selective
display to a viewer.
[0042] FIG. 7 depicts a graphical representation of PID assignment
to each IPG page. The graph 700 contains a PID axis 702 and a time
axis 704. At time 1 (t1) and, more than likely, within a single
transport stream, the graphics 706 for a first IPG page and the
video 708 for a first IPG page are sent in PID1. Then, in PID2, the
graphics 710 for a second IPG page and the video 708 for the second
IPG page are sent. Note that the video is the same in each IPG page
that is sent at time 1 and only the graphics (g.sub.1, g.sub.2 . .
. g.sub.15) change from IPG page to IPG page. The change in
graphics may represent either different time intervals or different
channel groupings shown in the IPG pages. In time 2, the grouping
and encoding is repeated using different video. The process is
repeated until all the IPG pages are generated to cover all
available channels over a 24 hour period. The transport streams
carrying the encoded IPG pages are then broadcast to all
viewers.
[0043] An exemplary transport stream consists of N programs
multiplexed together into one transport stream. Each program has
its own video PID, which contains all the MPEG bits for a single
guide page. All the programs share the same audio and PCR.
[0044] To change pages in the guide, it is required to switch
between programs (video PIDs) in a seamless manner. This cannot be
done cleanly using a standard channel change by the STT switching
from PID to PID directly, because such an operation flushes the
video and audio buffers and typically gives half a second blank
screen.
[0045] To have seamless decoder switching, a splice countdown (or
random access indicator) method is employed at the end of each
video sequence to indicate the point at which the video should be
switched from one PID to another.
[0046] Using the same profile and constant bit rate coding for each
encoding unit, the generated streams for different IPG pages are
formed in a similar length compared to each other. This is due to
the fact that the source material is almost identical differing
only in the characters in the guide from one page to another. In
this way, while streams are generated in close lengths, they are
not exactly the same lengths. For example, for any given sequence
of 15 video frames, the number of transport packets in the sequence
varies from one guide page to another. Thus a finer adjustment is
required to synchronize the beginnings and ends of each sequence
across all guide pages in order for the countdown switching to
work.
[0047] The invention provides the act of synchronization of a
plurality of streams that provides seamless switching at the
STT.
[0048] Three methods are provided for that purpose:
[0049] First, for each sequence you can count the longest guide
page for that particular sequence, and then add sufficient null
packets to the end of each other guide page so that all the guide
pages become the same lengths. Then add the switching packets at
the end of the sequence, after all the null packets.
[0050] The second method requires buffering of all the packets for
all guide pages for each sequence. If this is allowed in the
considered system, then the packets can be ordered in the transport
stream such that the packets for each guide page appear at slightly
higher or lower frequencies, so that they all finish at the same
point. Then the switching packets are added at the end of each
stream without the null padding.
[0051] A third method is to start each sequence together, and then
wait until all the packets for all the guide pages have been
generated. Once the generation of all packets is completed,
switching packets are placed in the streams at the same time and
point in each stream.
[0052] Depending on the implementation of STT decoder units and
requirements of the considered application, each one of the methods
can be applied with advantages. For example, the first method,
which is null-padding, can be applied to avoid bursts of N packets
of the same PID into a decoder's video buffer faster than the MPEG
specified rate (e.g., 1.5 Mbit).
[0053] The same principles of splicing and synchronization
techniques are applicable to a plurality of different transport
stream forms, including recombinant stream.
[0054] The teachings of the above three methods can be extended
apply to similar synchronization problems and to derive similar
methods.
[0055] Returning to FIG. 1, the transport stream is coupled to a
digital video modulator 122 where it is modulated onto a carrier
that is appropriate for transmission through the distribution
network 104. For a hybrid fiber coax based distribution network
104, the modulation is quadrature amplitude modulation (QAM).
[0056] The subscriber equipment 106 is connected to the network 104
and receives the transport stream from the network 104. A
demodulator/decoder 124 in each of the terminals extracts the
transport stream from the modulation, demultiplexes the bitstreams
within the transport stream, and decodes a selected program guide
video sequence. Since the program guide bitstreams are contained in
the transport stream, the terminal selects a particular program
guide using its unique packet identifier (PID) that causes a video
demodulator/decoder 124 to decode the program guide bitstream
identified by that PID (or PIDs in the case of slice based
encoding). When the user selects another program guide, another
stream is decoded based upon the newly selected PID or PIDs. By
transmitting many program guide streams in a common transport
stream and by frame locking the program guide source, encoding and
decoding processes, the latency experienced as a subscriber selects
one guide page after another is undetectable. Also, because the
informational video is the same and frame synchronized in each
program guide bitstream with the only difference being a different
guide graphic, the subscriber sees a transition in the guide
graphic, but the informational audio and video is seamlessly
presented to the viewer.
[0057] FIG. 3 depicts a detailed block diagram of the compositor
unit 200. The compositor unit 200 contains a plurality of
serial-to-parallel converter modules 300 and 304, a plurality of
image compositors 302, 306, and 308, an optional parallel-to-serial
converter module 310 and a PCI bus 312. The informational video
signals vs2, vs3, vs4 are assumed to be supplied as a conventional
pixilated video signal in a 601 format (digital video) having each
frame of 601 video synchronized with the frames of the other
advertisement video signals. Generally, 601 video is supplied as a
serial bitstream that is converted into parallel stream, i.e., one
complete video frame is coupled to the compositor at a time.
[0058] More specifically, the background imagery vs1 and the first
informational video vs2 are coupled to the serial-to-parallel
converter module 300. The frames of each of these video signals are
then coupled to the compositor 302. In operation, the compositor
302 synchronizes the frames, resizes the informational video to fit
into a predefined rectangular region, positions the rectangular
region on the background and merges the two video frame sequences.
The controller 114 of FIG. 1 uses the PCI bus 312 to instruct the
compositor as to the size of the informational video region and its
position on the background. A commercially available compositor is
used to perform the foregoing operations using 601 video
signals.
[0059] The composited video sequence containing the background and
first informational video is then coupled to the second compositor
306 such that the second informational video is composited onto the
background and first video. The third compositor 308 performs a
similar function to produce a frame sequence having the background
and three informational video sequences composited into a single
sequence. The size and position of the informational video display
regions is controlled by signals from the controller via the PCI
bus 312. The output sequence from the third compositor 308 is
optionally coupled to the parallel-to-serial converter module 310
to produce a serial bitstream. Generally, the parallel data is
coupled directly to the IPG grid compositors (202 in FIG. 2);
however, if the compositor unit 200 is not physically near the
compositors 202, then the parallel-to-serial converter 310 may be
used to improve the integrity of the data as it is communicated
over a distance. Although only three informational videos were
added to the background using three compositors, clearly more
compositors can be used if additional informational video sequences
are desired.
[0060] FIG. 4 depicts a block diagram of one of the IPG grid
compositors 202, e.g., compositor 202.sub.1. The compositor
202.sub.1 contains an alpha framestore 400, a video framestore 402
and a compositor 406. The alpha framestore 402 stores a bitmap
array of weighting functions that control the degree of
transparency that the IPG grid will have with respect to the
background/informational frame sequence, i.e., the bitmap contains
a value of transparency for each and every pixel in the IPG
graphic. As such, the alpha framestore information controls the
amount of background/advertising video scene that can be viewed
"through" the IPG graphic. The video frame store 402 buffers the
IPG graphic on a frame-by-frame basis to ensure alignment with the
background/informational video frames. The compositor 406 combines
the IPG graphic with the background/informational frames produced
by the compositor unit 200 in FIG. 2. The position and size of the
IPG graphic with respect to the background is controlled, via the
control signal coupled to the compositor 406, by the controller 114
of FIG. 1.
[0061] Each of the IPG graphics, e.g., fifteen, are separately
composited in this manner with the background and the advertising.
As such, fifteen separate bitstreams, one contains each IPG
graphic, are encoded and arranged in the transport stream.
[0062] FIG. 5A depicts a first illustrative IPG page layout
500.sub.1 as decoded by the decoder of the subscriber equipment.
The page 500.sub.1 is one of the fifteen available screens
(collectively referred to as IPG pages 500) that can be decoded by
appropriate selection of a screen PID within a transport stream.
Similar IPG screens can be also decoded from other transport
streams that are broadcast to the subscriber equipment from the
head end equipment. As decoded, the informational video in regions
504, 506 and 508 plays as any decoded video streams. The audio
signal associated with one of the informational video sequences
also is decoded and plays in conjunction with the video (i.e.,
audio follows video). The first IPG graphic 510 contains, for
example, program information concerning channels 1 through 10. The
subscriber, by manipulating an input device, can scroll through the
program selections. As the scrolling function transitions from one
cell to another, the cell is highlighted by a change in the
on-screen display graphics. These graphics are sent to the
subscriber equipment as "user data" and/or "private data" within
the transport stream. A detailed description of the operation of
the IPG 500 is presented in commonly assigned U.S. patent
application Ser. No. 09/359,560, filed Jul. 22, 1999 and herein
incorporated by reference.
[0063] When the subscriber reaches the bottom of the IPG graphic,
i.e., the last cell or a special icon (arrow), a different PID is
selected for decoding, i.e., the PID for the next IPG page
containing channels 11 through 20. The decoder begins decoding the
next stream as soon as it is selected. The connection between IPG
pages is a functional attribute that is generally transmitted to
the subscriber equipment as user data within the transport stream.
Since the background and the informational video were synchronously
added to the video sequence that become the IPG pages, the
informational video seamlessly transitions from one screen to
another without any visible anomalies. The IPG graphic is the only
portion that changes from 510.sub.1 to 510.sub.2. The process of
transitioning from one IPG page to another can be accomplished by
incrementing or decrementing through the IPG pages. Additionally,
parallel pages may be available to display additional time slots.
As such, IPG pages representing programming in other time periods
could be accessed by, for example, left and right arrows. These
parallel pages may be carried in additional transport streams or in
the same transport stream.
[0064] A second illustrative IPG page layout 600 is shown in FIG.
6. This IPG page layout is encoded in the exact same manner as the
layout 500 of FIGS. 5A-5C. The IPG of FIG. 6 operates in a similar
manner to that of IPG layout 500. The layout 600 is divided
vertically such that the informational video, e.g., a video barker,
appears on the right half of the layout and the guide region
appears on the left. The guide graphics, graphical icons,
background imagery, and informational video are combined and then
encoded in the same manner as discussed above. A detailed
description of the IPG 600 is presented in commonly assigned U.S.
patent application Ser. No. 09/359,560, filed Jul. 22, 1999 and
herein incorporated by reference.
[0065] Although the foregoing description illustratively disclosed
encoding an IPG page, the invention finds use in encoding any form
of mixed graphical and video information screens. For example, the
invention can be used to encode a HTML web page in the graphics
region and a related television program in the video region.
Alternatively, the informational video can be a television program
that is displayed within a program guide while a viewer reviews the
schedule information. Selecting the video region would enlarge the
video to the entire screen, while selecting a program title in the
program guide may initiate a preview video to play in second video
window. As such, the invention should be interpreted as
encompassing any combination of video and graphics that is encoded
as a digital bit stream and broadcast from a head end of an
information distribution system.
[0066] Although various embodiments which incorporate the teachings
of the present invention have been shown and described in detail
herein, those skilled in the art can readily devise many other
varied embodiments that still incorporate these teachings.
* * * * *