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.
Description
BACKGROUND OF THE DISCLOSURE

1. Field of the Invention


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.


2. Description of the Background Art


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.


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.


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.


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.


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).


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.


Therefore, it is desirable to provide a method and apparatus for encoding an interactive program guide.


SUMMARY OF THE INVENTION

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.


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.


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.


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

The teachings of the present invention can be readily understood by considering the following detailed description in conjunction with the accompanying drawings, in which:



FIG. 1 depicts a high-level block diagram of an information distribution system that uses the interactive program guide of the present invention;



FIG. 2 depicts a block diagram of an IPG generator of the present invention;



FIG. 3 depicts a block diagram of a compositor unit that produces background/informational frame sequence in accordance with the present invention;



FIG. 4 depicts a block diagram of an IPG compositor that inserts an IPG graphic into the background/informational frame sequence;



FIGS. 5A–5C depicts a series of illustrative IPG pages;



FIG. 6 depicts another example of an IPG page that can be produced by the invention; and



FIG. 7 depicts a PID map for a set of IPG pages encoded by the invention.





To facilitate understanding, identical reference numerals have been used, where possible, to designate identical elements that are common to the figures.


DETAILED DESCRIPTION


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™ system provided by DIVA Systems Corporation of Menlo Park, Calif.


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 1061, 1062, . . . , 106n, 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.


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.


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.



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.


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.


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.


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™ system the modulation is quadrature amplitude modulation (QAM); however, other modulation formats could be used.


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 5101 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.



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.


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 2021, 2022, 2023, . . . , 20215 (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.


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 2041, 2042, 2043, . . . 204n (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.


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.


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 indentifiers 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.


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.


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.


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 PID's 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.



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 (g1, g2 . . . g15) 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.


An exemplary transport stream consists of N programs multiplexed together into one transport stream. Each program has it's own video PID, which contains all the MPEG bits for a single guide page. All the programs share the same audio and PCR.


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.


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.


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.


The invention provides the act of synchronization of a plurality of streams that provides seamless switching at the STT.


Three methods are provided for that purpose:


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.


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.


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.


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).


The same principles of splicing and synchronization techniques are applicable to a plurality of different transport stream forms, including recombinant stream.


The teachings of the above three methods can be extended apply to similar synchronization problems and to rive similar methods.


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).


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.



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.


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.


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.



FIG. 4 depicts a block diagram of one of the IPG grid compositors 202, e.g., compositor 2021. The compositor 2021 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.


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.



FIG. 5A depicts a first illustrative IPG page layout 5001 as decoded by the decoder of the subscriber equipment. The page 500 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 on Jul. 22, 1999 and herein incorporated by reference.


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 5101 to 5102. 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.


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 on Jul. 22, 1999 and herein incorporated by reference.


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.


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.

Claims
  • 1. A method of producing an encoded user interface comprising: producing a video frame sequence representing an interactive program guide by combining, in a frame synchronized manner, background imagery with at least one video sequence and at least one graphic containing program guide information to form said video frame sequence;encoding said video frame sequence within a head end of an information distribution system distribution system;
  • 2. The method of claim 1 wherein said encoding step further comprises the step of: encoding the video frame sequence to compress information therein to form a digital bitstream.
  • 3. The method of claim 2 wherein said encoding step further comprises: separately encoding each of said program guide frame sequences to form a digital bitstream for each of the program guide frame sequences.
  • 4. The method of claim 3 further comprising the steps of: multiplexing each of the digital bitstreams into a common transport stream.
  • 5. The method of claim 4 wherein fifteen program guide sequences are formed, encoded, and contained in said common transport stream.
  • 6. The method of claim 3 further comprising: encoding an audio signal associated with one of the video sequences; andmultiplexing the encoded audio signal into the common transport stream.
  • 7. The method of claim 6 wherein said multiplexing step further comprises the step of: multiplexing foreground program guide data into said common transport stream.
  • 8. The method of claim 1 wherein the video frame sequence is a television program.
  • 9. The method of claim 1 wherein the video frame sequence is an advertising program.
  • 10. The method of claim 1 wherein the video frame sequence is encoded using slice based encoding.
  • 11. The method of claim 10 wherein slice based encoding encodes different regions in a different manner than the encoding that is performed upon other portions of the video frame sequence.
  • 12. The method of claim 11 wherein each region is assigned a unique program identifier.
  • 13. A method of producing an encoded user interface, said encoded user interface comprising a plurality of bitstreams representing respective interactive program guide (IPG) pages and forming thereby a sequence of IPG pages, said method comprising: combining, in a frame synchronized manner, background imagery with each of a plurality of video sequences to form a plurality of IPG video portions;overlaying a plurality of respective graphic images containing program guide information over respective ones of each of said plurality of IPG video portions to form a plurality of IPG page portions, each of said plurality of IPG page portions comprising a respective common video portion and a plurality of programming information portions, and wherein a plurality of IPG page sequences comprises common programming information portions and differing video portions per IPG page sequence;encoding each sequence of IPG pages within a head-end of an information distribution system to form said plurality of bitstreams;providing a unique packet identifier (PID) for each IPG page; providing an indicator in each bitstream where said video component may be switched from one PID to another PID; andmultiplexing said plurality of bitstreams in a common transport stream to subscriber equipment.
  • 14. The method of claim 13, wherein at any instance, each bitstream comprises a different graphical component and a matching video component.
  • 15. The method of claim 13, further comprising forming said IPG pages in a similar length compared to each other.
  • 16. The method of claim 15, further comprising: identifying a longest IPG page;inserting null packets into other IPG pages such that all of said IPG pages are equal in length; andadding switching packets at an end of said IPG sequence after said null packets.
  • 17. The method of claim 13, further comprising: buffering all packets for all IPG pages of each sequence of IPG pages prior to forming said transport stream;ordering packets of said IPG pages in said transport stream, wherein said finishing at a common point; andadding switching packets at an end of each sequence of IPG pages.
  • 18. The method of claim 13, further comprising: starting each IPG page sequence together;waiting until all packets for all of said IPG pages are generated; andinserting switching packets in said bitstreams at a common interval and location in said bitstreams.
CROSS REFERENCE TO RELATED APPLICATIONS

This 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. This application 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, both of which are hereby incorporated herein by reference.

US Referenced Citations (198)
Number Name Date Kind
4290063 Traster Sep 1981 A
4437093 Bradley Mar 1984 A
4496976 Swanson et al. Jan 1985 A
4520356 O'Keefe et al. May 1985 A
RE32187 Barda et al. Jun 1986 E
4600921 Thomas Jul 1986 A
4633297 Skerlos et al. Dec 1986 A
4706121 Young Nov 1987 A
4712239 Frezza et al. Dec 1987 A
4734764 Pocock et al. Mar 1988 A
4739318 Cohen Apr 1988 A
4742344 Nakagawa et al. May 1988 A
4745468 Von Kohorn May 1988 A
4751578 Reiter et al. Jun 1988 A
4792848 Nussrallah et al. Dec 1988 A
4792849 McCalley et al. Dec 1988 A
4829372 McCalley et al. May 1989 A
4829569 Seth-Smith et al. May 1989 A
4847825 Levine Jul 1989 A
4860123 McCalley et al. Aug 1989 A
4866770 Seth-Smith et al. Sep 1989 A
4876592 Von Kohorn Oct 1989 A
4885775 Lucas Dec 1989 A
4890321 Seth-Smith et al. Dec 1989 A
4905094 Pocock et al. Feb 1990 A
4908713 Levine Mar 1990 A
4926255 Von Kohorn May 1990 A
4941040 Pocock et al. Jul 1990 A
4963994 Levine Oct 1990 A
4977455 Young Dec 1990 A
4991011 Johnson et al. Feb 1991 A
4994908 Kuban et al. Feb 1991 A
5014125 Pocock et al. May 1991 A
5034807 Von Kohorn Jul 1991 A
5038211 Hallenbeck Aug 1991 A
5057915 Von Kohorn Oct 1991 A
5058160 Banker et al. Oct 1991 A
5109279 Ando Apr 1992 A
5113496 McCalley et al. May 1992 A
5119188 McCalley et al. Jun 1992 A
5123046 Levine Jun 1992 A
5128752 Von Kohorn Jul 1992 A
5146210 Heberle Sep 1992 A
5151789 Young Sep 1992 A
5191410 McCalley et al. Mar 1993 A
5195092 Wilson et al. Mar 1993 A
5208665 McCalley et al. May 1993 A
5227874 Von Kohorn Jul 1993 A
5231665 Auld et al. Jul 1993 A
5239540 Rovira et al. Aug 1993 A
5247364 Banker et al. Sep 1993 A
5249044 Von Kohorn Sep 1993 A
5260778 Kauffman et al. Nov 1993 A
5270809 Gammie et al. Dec 1993 A
5283734 Von Kohorn Feb 1994 A
5293357 Hallenbeck Mar 1994 A
5297204 Levine Mar 1994 A
5301028 Banker et al. Apr 1994 A
5303295 West et al. Apr 1994 A
5307173 Yuen et al. Apr 1994 A
5319454 Schutte Jun 1994 A
5319707 Wasilewski et al. Jun 1994 A
5335079 Yuen et al. Aug 1994 A
5353121 Young et al. Oct 1994 A
5365282 Levine Nov 1994 A
5373330 Levine Dec 1994 A
5382983 Kwoh et al. Jan 1995 A
5400401 Wasilewski et al. Mar 1995 A
5406558 Rovira et al. Apr 1995 A
5414448 Wada et al. May 1995 A
5414756 Levine May 1995 A
5420647 Levine May 1995 A
5422674 Hooper et al. Jun 1995 A
5428404 Ingram et al. Jun 1995 A
5438370 Primiano et al. Aug 1995 A
5440632 Bacon et al. Aug 1995 A
5473609 Chaney Dec 1995 A
5473704 Abe Dec 1995 A
5475382 Yuen et al. Dec 1995 A
5477262 Banker et al. Dec 1995 A
5479266 Young et al. Dec 1995 A
5479268 Young et al. Dec 1995 A
5485221 Banker et al. Jan 1996 A
5488409 Yuen et al. Jan 1996 A
5493339 Birch et al. Feb 1996 A
5493638 Hooper et al. Feb 1996 A
5502504 Marshall et al. Mar 1996 A
5508815 Levine Apr 1996 A
5515173 Mankovitz et al. May 1996 A
5523794 Mankovitz et al. Jun 1996 A
5523796 Marshall et al. Jun 1996 A
5532732 Yuen et al. Jul 1996 A
5532754 Young et al. Jul 1996 A
5534944 Egawa et al. Jul 1996 A
5539391 Yuen Jul 1996 A
5539822 Lett Jul 1996 A
5543852 Yuen et al. Aug 1996 A
5550576 Klosterman Aug 1996 A
5552837 Mankovitz Sep 1996 A
5553123 Chan et al. Sep 1996 A
5559548 Davis et al. Sep 1996 A
5559550 Mankovitz Sep 1996 A
5559870 Patton et al. Sep 1996 A
5568272 Levine Oct 1996 A
5579055 Hamilton et al. Nov 1996 A
5579057 Banker et al. Nov 1996 A
5581614 Ng et al. Dec 1996 A
5592551 Lett et al. Jan 1997 A
5598415 Nuber et al. Jan 1997 A
5600378 Wasilewski Feb 1997 A
5600711 Yuen Feb 1997 A
5604528 Edwards et al. Feb 1997 A
5619247 Russo Apr 1997 A
5619249 Billblock et al. Apr 1997 A
5619274 Roop et al. Apr 1997 A
5619383 Ngai Apr 1997 A
5621579 Yuen Apr 1997 A
5623308 Civanlar et al. Apr 1997 A
5625405 DuLac et al. Apr 1997 A
5630119 Aristides et al. May 1997 A
5633810 Mandal et al. May 1997 A
5644354 Thompson et al. Jul 1997 A
5652614 Okabayashi Jul 1997 A
5659367 Yuen Aug 1997 A
5673089 Yuen et al. Sep 1997 A
5675575 Wall, Jr. et al. Oct 1997 A
5684525 Klosterman Nov 1997 A
5692214 Levine Nov 1997 A
5701383 Russo et al. Dec 1997 A
5710601 Marshall et al. Jan 1998 A
5715515 Akins, III et al. Feb 1998 A
5716273 Yuen Feb 1998 A
5719646 Kikuchi et al. Feb 1998 A
5724203 Kwoh et al. Mar 1998 A
5724525 Beyers, II et al. Mar 1998 A
5724543 Ozden et al. Mar 1998 A
5727060 Young Mar 1998 A
5731844 Rauch et al. Mar 1998 A
5732217 Emura Mar 1998 A
5734589 Kostreski et al. Mar 1998 A
5734853 Hendricks et al. Mar 1998 A
5745710 Clanton, III et al. Apr 1998 A
5751282 Girard et al. May 1998 A
5754940 Smith et al. May 1998 A
5757416 Birch et al. May 1998 A
5758259 Lawler May 1998 A
5764739 Patton et al. Jun 1998 A
5768551 Bleiweiss et al. Jun 1998 A
5771064 Lett Jun 1998 A
5790172 Imanaka Aug 1998 A
5790198 Roop et al. Aug 1998 A
5790806 Koperda Aug 1998 A
5801753 Eyer et al. Sep 1998 A
5801787 Schein et al. Sep 1998 A
5805204 Thompson et al. Sep 1998 A
5808608 Young et al. Sep 1998 A
5809204 Young et al. Sep 1998 A
5812205 Milnes et al. Sep 1998 A
5812754 Lui et al. Sep 1998 A
5818439 Nagasaka et al. Oct 1998 A
5826110 Ozden et al. Oct 1998 A
5828420 Marshall et al. Oct 1998 A
5828945 Klosterman Oct 1998 A
RE35954 Levine Nov 1998 E
5838383 Chimoto et al. Nov 1998 A
5844620 Coleman et al. Dec 1998 A
5850218 Lajoie et al. Dec 1998 A
5852478 Kwoh Dec 1998 A
5854840 Cannella, Jr. Dec 1998 A
5870150 Yuen Feb 1999 A
5870474 Wasilewski et al. Feb 1999 A
5880768 Lemmons et al. Mar 1999 A
5915068 Levine Jun 1999 A
5917830 Chen et al. Jun 1999 A
5949476 Pocock et al. Sep 1999 A
5949792 Yasuda et al. Sep 1999 A
5966120 Arazi et al. Oct 1999 A
6002394 Schein et al. Dec 1999 A
6008803 Rowe et al. Dec 1999 A
6014184 Knee et al. Jan 2000 A
6064376 Berezowski et al. May 2000 A
6141448 Khansari Oct 2000 A
6147714 Terasawa et al. Nov 2000 A
6160545 Eyer et al. Dec 2000 A
6163345 Noguchi et al. Dec 2000 A
6177931 Alexander et al. Jan 2001 B1
6209129 Carr et al. Mar 2001 B1
6243142 Mugura et al. Jun 2001 B1
6388714 Schein et al. May 2002 B1
6389477 Simmon et al. May 2002 B1
6415437 Ludvig et al. Jul 2002 B1
6449654 Blackwell et al. Sep 2002 B1
6473425 Bellaton et al. Oct 2002 B1
6477705 Yuen et al. Nov 2002 B1
6588014 Hayashi Jul 2003 B1
6675385 Wang Jan 2004 B1
6763522 Kondo et al. Jul 2004 B1
20020120933 Knudson et al. Aug 2002 A1
Provisional Applications (1)
Number Date Country
60093891 Jul 1998 US
Continuation in Parts (2)
Number Date Country
Parent 09293526 Apr 1999 US
Child 09359561 US
Parent 09201528 Nov 1998 US
Child 09293526 US