SELECTIVELY CACHING VIDEO TO IMPROVE ON-DEMAND RESPONSE TIME

Abstract: A technique for delivering on-demand broadcast program or other multimedia content by the selective deployment of specialized cache servers close to the subscriber side viewing device which accumulates data that represents on-demand material. A packet redirector within the cache server allows program content in the form of data packets to either be routed to the cache server for storage or straight through the redirector to the viewing device. The redirector thus permits previously cached packets to be inserted in line with content presently being delivered on the fly to the video server. In addition, a network level cache may be employed at a head end to locally cache all, or a portion of, particularly popular content. This allows the head end cache to offload broadcast multimedia server from certain responsibilities associated with on-demand delivery. As a result, the demand portion of the system is placed under control of the subscriber side thereby freeing the head end from the complexities of having to deliver content on demand, or to insert material specific to particular subscribers such as advertisements.

Description: SELECTIVELY CACHING VIDEO TO IMPROVE ON-DEMAND RESPONSE TIME FIELD OF THE INVENTION This invention relates generally to program content delivery and m particular to a technique for selectively caching the media program content at a subscriber location. BACKGROUND OF THE INVENTION During the twentieth century, continuous media services such as broadcast and cable television have become the primary vehicle for distributing entertainment, education, and other programs to the public at large. These services have traditionally used analog signaling, although emerging standards now define new formats for broadcast m digital form. In addition, devices such as cable modems are being distributed to the public to provide a mix of access to digital programming and computerized content delivery systems such as the Internet . Increasingly, the distinctions between these two content delivery systems, those optimized for television broadcast, and those optimized for distribution of data content are blurring. For example, definitions such as the Motion Picture Experts Group (MPEG) -2 standard and other encoding schemes specify how video signals may be digitized for efficient transfer. Other efforts such as the Internet Engineering Task Force (IETF) Audio/Video Transport (AVT) working group are developing specifications for transport protocols for real time transmission of video over User Datagram Protocol (UDP) and Internet Protocol (IP) (UDP/IP) type layered networks such as the Internet. The vision is that m the future, it will not be necessary to have a television tuner within the home or at another cable subscriber site. In particular, video programs will be routinely broadcast m digital form as packetized data using UDP/IP or other packetized protocols. Historically, the broadcast paradigm works well when the same content is delivered to all subscribers at the same time. For example, broadcast works well over analog cables for television. The same is true even for digitized content using UDP/IP or other networks. In particular, they tend to work well when the same content is sent at the same time to many places. However, concepts have also emerged for services such as on-demand video whereby the subscriber may request delivery of a particular program as needed. Historically, such video on-demand services work well when the number of subscribers is relatively small. However, as the number of subscribers increases, the cost per subscriber typically goes up. Therefore, it is presently believed that video on-demand type services do not necessarily scale well, even m small town suburban locations . In addition, with the growth of the Web and other activities on the Internet, it is increasingly important to find ways to manage a mix of text and visual data such as is associated with typical Web browsing activities and viewing video clips or other multimedia programs. High speed Internet connection services such as the Media One™ service support distribution of cable television signals and high speed Internet connections to the home using cable modems. These systems work by using a mixer at a centralized head end to combine the video programs and Internet access. A splitter at the subscriber site separates the television signals and routes them to a television monitor. The data signals are then routed to a computer interface . This architecture also permits the mixing of certain content at the head end. For example, during the broadcast of a cable television program, advertising material specific to a particular municipality may be inserted. This permits a viewer m one city to see a different ad than a viewer m another city. However, this is typically implemented by manually configuring mixers at the head end. The number of subscribers receiving a particular ad is therefore typically limited to hundreds or thousands of people at a minimum. Another problem with attempting to implement video on-demand using digitized video signals is that so many connections to a server at the head end have to be open for so long that the network infrastructure cannot handle the message traffic demand. SUMMARY OF THE INVENTION The present invention is a technique for delivering on-demand content by the selective deployment of a specialized cache server. The cache server is deployed close to the subscriber side viewing device, and accumulates data that represents the on-demand material. A packet redirector within the cache server allows multimedia program content m the form of data packets to either be routed to the cache server for storage, or directly through the redirector straight to the client side viewing device. The redirector also permits previously cached packets to be inserted m line with packets retrieved from the cache server on the fly. In addition, a network level cache may be employed at the head end to locally cache all, or a portion of, particular content. This allows a cache at the head end to offload a broadcast multimedia server from the certain responsibility associated with on-demand delivery of popular content. For example, a head end video server may disconnect from the subscriber much faster than would otherwise be possible, m turn reducing the size and complexity of the video server required to serve a given population. The invention has benefits m at least three specific applications of multimedia content delivery. First, the subscriber side redirecting cache server may be used to provide a video on-demand type service whereby the multimedia program may be broadcast from the head end at whatever time is convenient . The subscriber side cache retains a copy of the program, redirecting it to the viewing device only when the user requests it. Thus, the demand portion of the system is placed under the control of the subscriber side, thereby freeing the head end side from the complexities of having to deliver a program in real time and at precisely the time it is requested. Second, the subscriber side redirecting cache permits integration of Web content with other broadcast content such as television programs. For example, a broadcast program such as originating from a television network may be forwarded to a head end video server for being displayed in real time. However, should the subscriber wish to switch to access the Web or overlay other material during the watching of the broadcast, the local cache may continue to cache the video program without interfering with the video server operation. This allows the user to browse the Web or other activity while the system continues to cache the broadcast program from the head end. When browsing is complete, the original broadcast program can be restarted from the exact place at which it was left off by reading it out of the cache . Third, as a broadcast program flows through the message redirector, the message redirector and/or cache can be programmed to insert material specific to the particular subscriber. For example, the cache can be preprogrammed to store an advertisement particular to a specific subscriber based upon demographics or other behaviors of the subscriber such as a previously observed Web browsing behavior. It can thus be seen that by using a redirecting cache as a repository for program material to be played at a later time as an adjunct to a real time broadcast video stream, a number of advantages are achieved. The cache, m effect, works as a mixer on the subscriber side allowing the insertion and/or arrangement of content at subscriber end, depending upon the subscriber's request. The packet redirector also allows the subscriber side to select either the material currently being broadcast m real time or the cached content . BRIEF DESCRIPTION OF THE DRAWINGS The foregoing and other objects, features and advantages of the invention will be apparent from the following more particular description of preferred embodiments of the invention, as illustrated m the accompanying drawings m which like reference characters refer to the same parts throughout the different views. The drawings are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the invention. Fig. 1 is a block diagram of an on-demand video content system making use of a subscriber side cache facility according to the invention. Fig. 2 is a more detailed view of the cache and packet redirector as implemented at the subscriber location . Fig. 3 is a flow diagram of the states through which the cache and subscriber side equipment pass m providing on-demand video delivery. Fig. 4 is a flow chart of the operations which may be performed to provide integration of Web content with real time broadcast program content. Fig. 5 is a flow chart of the operations which may be performed to insert program material specific to a particular subscriber during the viewing of a real time broadcast program. DETAILED DESCRIPTION OF THE INVENTION Turning attention now to Fig. 1 m particular, there is shown a program content delivery system 100 such as a cable system or telecommunications-based data network. The system 100 consists of a head end 10 which provides program content m the form of digitized data over a physical media 20 to multiple subscriber units 30-1, 30-2, ..., 30-n (collectively referred to as "the subscriber units 30") . The transmission of digitized program content is packetized m the preferred embodiment using the standard protocols for routing digital information from the head end 10 to the subscriber units 30. For example, the head end 10 takes a broadcast program and converts it using an MPEG-2 type encoder 12. The digitized program content is then formatted into packets using, for example, a User Datagram Protocol/Internet Protocol (UDP/IP) packetizer 14. The head end router 16 then accepts the packetized broadcast program content and forwards it over the physical media 20 to the subscriber units 30. The router 16 may also be connected to provide other information content services such as to an Internet Service Provider (ISP) to provide access to electronic mail, the World Wide Web, and the like. Also deployed at the head end 10 may be a redirecting cache server 18 and associated cache storage device 19, the operation of which will be described m more detail below. An exemplary subscriber unit 30-1 contains a redirecting cache server 32 and cache storage device 34, as well as a video server 36 and associated monitor 38. The video server 36 typically includes a display interface 41, MPEG-2 decoder 42, network interface card (NIC) 43, and a central processing unit (CPU) 44. In addition, the video server 36 may permit a user to provide input via a mouse 45 or a keyboard 46. An exemplary redirecting cache server 18 or 32, shown more particularly m Fig. 2, consists of a pair of network interface cards 47, 48 and a cache controller 50. The cache controller 50 m turn includes several layers of application software, including a UDP/IP module 51 and a file server module 52. The network interface cards 47, 48 are configurable to selectively route packets straight through the redirecting cache server 32 or up to the cache controller 50. The input side network interface card 47 thus contains packet filtering software that determines whether the packet should cause a response from a file server 52 associated with the cache storage 34. The video server 36 receives the packets from the redirector 32 at the network interface card 43. The packets are then passed up to the MPEG-2 decoder 42 and then to the display interface 41 which, for example, contains a digital to analog converter and other video circuitry. The converted video signal is then fed to the monitor 38. Upon receipt of packets of a particular type, the cache controller 17 or 50 may insert replacement packets that have been previously stored in its cache 19 or 34. For example, if a redirecting cache server 32 is deployed at the subscriber 30 location, the cache controller 50 may insert user specific content associated with the particular subscriber unit 30-1. Alternatively, in the case of the redirecting cache server 18 deployed at the head end, content appropriate for a particular community of subscribers 30 may be inserted. With this scenario, it is possible for the head end 10 to avoid having to store broadcast content associated with a particular subscriber or group of subscribers . On-demand content delivery and other features can be provided at a cost which is relatively scalable as the number of subscribers 30 increases. For example, to approximate a video on-demand service, a broadcast program must first be received from a network by the head end 10 and stored in its own cache 19. Upon receipt of a request for a particular program from one of the subscriber units 30, such as by the subscriber unit 30 sending a message over the physical media 20 to a cache controller 17 located within the redirecting cache server 18 at the head end 10, the cache controller 17 enables the redirecting cache server 18 to source data packets from the cache 19 to the router 16, over the physical media 20, and down to the subscriber unit 30-1. If, however, the cache controller 17 determines that the requested program is not available m the cache 19, the cache server 18 has the capability of communicating with the broadcast network to request delivery of a particular program. Once the broadcast network begins delivering the program, the head end cache 19 or subscriber cache 34 can be used as a buffer to receive the content at the fully offered rate by the network and offering the content to the subscriber unit 30 only when it is possible to start delivery. The architecture also permits a solution to other problems such as overlaying or delaying of content delivery. The system 100 also provides features such as advertisement customization, content personalization, and integration of Web content with broadcast television program delivery. These applications will now be discussed m detail . For example, a sequence of steps performed by the system 100 to provide a video on-demand type of service are shown m Fig. 3. In a first state 100, it is determined whether the requested content is already available at the subscriber unit 30. If so, then no further delivery is required. If not, however, processing proceeds to state 104 where the cache controller 17 determines whether the program is available at the head end 10 such as is available m its cache 19. If this is not the case, then it proceeds to a state 108 in which it communicates with a network to request program delivery. Once program delivery starts m state 110, the cache controller 17 causes the program to be cached at the head end 10 such as in the cache storage 19. This can be accomplished by having the UDP/IP packetizer appropriately tag the packet so that the cache and redirector 18 can recognize packets that are to be fed to the cache 19 and not yet down to the router 16. A state 114 is eventually reached m which the broadcast program is ready to be sent to the subscriber 30 that requested it. The packets representing the broadcast program are then fed from the cache 19 through the packet redirector 18 to the router 16 and over the physical media 20 m the direction of the subscriber units 30. The particular subscriber unit 30 that requested the program then recognizes delivery of its content and begins caching it m its own cache 34 m state 116. It also should be recognized that these steps could be performed m anticipation of a subscriber requesting particular content so, for example, a next state 118 may be that the subscriber requests the particular program to be viewed. Finally, m a state 120, the program can be delivered from a subscriber cache 34 directly to the video server 36 and monitor 38. A subscriber unit 30 with a relatively modest sized cache storage device 34 such as containing ten gigabytes of storage is sufficient to hold the approximately ten hours of video programming content . The architecture avoids the need for the head end 10 to maintain many different video streams m real time. For example, a particular program selected from a menu of programs for a given day may be broadcast to the subscriber units 30 earlier m the day. When the users of the subscriber units 30 return home m the evening, they may request delivery of the video content at exactly the time they are ready to view it. Thus, a subscriber 30-1 may request that a movie begin, say at 8:00 p.m., while a subscriber 30-2 requests the same movie begin at 8:45 p.m. In this event, the subscribers 30 may request delivery of the same content at various times; however, the head end 10 need only broadcast the program content once at a common time for all subscribers 30. A second possible application is shown in Fig. 4. In this scenario, the cache 34 is used as a repository for program material that augments a broadcast video stream. In a first state 150, it is determined that particular content should be delivered to specific subscriber 30. In a next state 152, the advertising content is cached at the subscriber unit 30 in a manner similar to that which was previously described. However, in a state 154, broadcast program content begins transmission from the head end 10 being routed through the coder 12, packetizer 14, straight through the redirector 18, to the router 16 and physical media 20. There are inserted in the broadcast content various blanking segments such as specially tagged packets. In state 156, this enables the caching redirector 32 at the subscriber units 30 to recognize the blank segments and insert the previously cached content from the cache 34 into the stream. The user at the subscriber unit 30 thus not only sees the broadcast program from the head end 10, but also specialized content such as directed advertising material, community messages, and the like, as inserted into the blank segments. Thus, as broadcast content flies by the caching redirector 32, different targeted material can be inserted for different subscribers 30. The material inserted is completely up to and under control of the cache controller 17, which can be determined by the previously observed Web browser behavior of the user, the user's demographics or other specific information available about the user. It should also be understood that various combinations of the above processes may be implemented. For example, the customized advertising content described m Fig. 4 may either be video ads inserted into a broadcast program or may be Web-type ads inserted into a Web page downloaded from the Internet backbone. Finally, integration of broadcast program viewing and access to the Web can also be accomplished m the series of process steps as shown m Fig. 5. In a first state 200, a broadcast program is begun. In a next state 202, the broadcast program is cached by the cache redirector 32 m the local cache 34 as it is being sent. Thus, it is maintained m the cache 34 and at the same time it is forwarded to the video server 36. The broadcast program is then displayed m state 204. However, upon receipt of a request from one of the input devices 45 or 46 such as to view the contents of a Web page, a number of things occur beginning m state 210. A local browser program may be launched on the video server 36 to allow the user to view the Web content. The user may request that the broadcast program be stopped. In this case, the caching of the broadcast program is continued by the caching redirector 34, storing the broadcast program material m the cache 34. In state 212, the Web content being downloaded over the media 20 is overlaid on the display of the broadcast program on the monitor 38. The caching process for the broadcast program continues. Eventually, the user will exit the browser and, m state 214, the cached broadcast program can then continue to be viewed. Thus, for example, a user may be viewing a documentary program such as on PBS or on the Discovery Channel on a particular topic. The broadcast program may display a Uniform Resource Locator (URL) or other identifying indicia of Web content that the user may wish to view m context . The user then indicates via inputs to the browser program that they wish to view the Web content while delaying broadcast of the broadcast program. This causes the broadcast program to continue to be cached while the user is viewing the Web content. Once the user is finished with viewing the Web, then he can pick up with viewing the broadcast program at the point at which it was left off. The system 100 provides improved economics for on- demand multimedia delivery by selective caching being deployed at the head end m a cable system or near the point of presence m a telecom-based data network. By deploying one or two levels of caching close to the client side viewing device, the cache device accumulates data that drives the on-demand material. This allows a head end video server to disconnect from subscribers 30 much more quickly than currently available thereby reducing the size and complexity of a head end server required to service a given population. Secondly, caches deployed at the subscriber units can locally cache all or a portion of popular content. This allows the local cache to obtain the information extremely quickly and start on-demand viewing. Thus, the local cache can also be viewed as a repository for program material to augment broadcast program material sent to a larger population. As the broadcast material is received at the subscriber unit, the cache can be selectively enabled to insert different material for different subscribers. This insertion may depend upon demographics or specifically observed behaviors such as previously observed Web browsing behaviors at the subscriber . The redirecting cache 32 thus acts as a type of remote digital "mixer" to insert or arrange content at the subscriber end. The packet filter associated with the redirector acts as a splitter to either select the material presenting being broadcast over the physical media 20 or to select previously cached material from the cache 34. The architecture also permits integration of Web content with broadcast television content m a manner which permits the user to trigger the caching of broadcast video program content m order to enable them to view the Web at the same time without the fear of loss of broadcast content m the meantime. While this invention has been particularly shown and described with references to preferred embodiments thereof, it will be understood by those skilled m the art that various changes m form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims.

Claims: CLAIMS What is claimed is: 1. An apparatus for processing data messages received from a head end broadcast server comprising: a message redirector for redirecting messages by selectively passing messages to a cache server or passing messages directly to a local content server; a packet inserter for selectively inserting previously cached messages in line with messages presently being received; and a subscriber unit for converting messages to a viewable format and presenting them to a subscriber viewing device. 2. An apparatus as in claim 1 in which the messages are sent using a transport protocol . 3. An apparatus as in claim 1 in which the content server serves multimedia program content. 4. An apparatus as in claim 3 in which the message redirector redirects messages representing content to be stored in the cache server before a subscriber viewing device begins playback of the multimedia program. 5. An apparatus as in claim 3 in which the cache server stores the multimedia program in progress while particular Web content is simultaneously presented to the subscriber viewing device. 6. An apparatus as m claim 3 m which the cache server is disposed at the head end broadcast server as a repository for multimedia program content to be delivered to multiple subscriber viewing devices . 7. An apparatus as m claim 6 wherein upon receipt of a request for broadcast program content, if the head end has stored it m its cache server, it serves the material on-demand. 8. An apparatus as m claim 7 wherein if the head end cache server does not contain the program content, it locates it elsewhere m the network and starts delivery to the subscriber viewing device upon receipt . 9. An apparatus as m claim 1 wherein the cache server stores cached customized content and selectively displays such cached customized content depending upon specified user information. 10. An apparatus as m claim 1 m which the cache server stores past user viewing behavior information and selects program content m response thereto.

Inventors: HEDDAYA ABDELSALAM A, JANZEN STEPHEN P, LEWIS KEVIN T, TAO WILLIAM Y, HEDDAYA, ABDELSALAM, A., JANZEN, STEPHEN, P., LEWIS, KEVIN, T., TAO, WILLIAM, Y.
Applicants: INFOLIBRIA INC, INFOLIBRIA, INC.
Application year: 2000
Main classification: H04N7
IPC codes: G06F13, H04H1, H04N7