VIDEO-ON-DEMAND SESSION MOBILITY IN A HOME NETWORK
CROSS-REFERENCE TO RELATED APPLICATIONS [0001] This application claims the benefit of U.S. Provisional Application No. 60/587,576 filed on July 13, 2004 and U.S. Provisional Application No. 60/607,571 filed on September 7, 2004. The disclosures of the above applications are incorporated herein by reference.
FIELD OF THE INVENTION [0002] The present invention relates generally to interactive television and, more particularly, to architecture that supports video-on-demand session mobility in a home network environment.
BACKGROUND OF THE INVENTION [0003] Interactive television describes any number of ways which allow a viewer to interact with the content they are viewing. One such interactive television service is video-on-demand. Briefly, video-on-demand allows a viewer to select and watch video content at times which are convenient to the viewer. In most instances, the video content may be paused, fast forward, rewound, etc. for more convenient viewing. In today's marketplace, such video sessions are typically available in the home environment on a single television having suitable point-of-deployment access technology. However, with the emergence of improved home networking technologies, it is becoming more desirable to order and view video-on-demand content on different types of network devices and at different locations within the home environment.
[0004] Therefore, it is desirable to provide an architecture that supports video-on-demand session mobility in a home network environment.
SUMMARY OF THE INVENTION [0005] In accordance with the present invention, a method is provided for enabling video session mobility amongst network devices residing in a packet switched network. The method includes: creating an entry into a content listing
directory upon receipt of a request for a video-on-demand session, where the content listing directory exposes the requested video session to the network devices residing in the packet switched network; receiving network address information for a network device requesting receipt of the requested video session at a primary receiving device in the packet switched network; accessing content associated with the requested video session at the primary receiving device; and forwarding the content for the requested video session from the primary receiving device to the requesting network device using the network address information. [0006] Further areas of applicability of the present invention will become apparent from the detailed description provided hereinafter. It should be understood that the detailed description and specific examples, while indicating the preferred embodiment of the invention, are intended for purposes of illustration only and are not intended to limit the scope of the invention.
BRIEF DESCRIPTION OF THE DRAWINGS
[0007] Figure 1 is a diagram illustrating an exemplary home network environment;
[0008] Figure 2A is a block diagram depicting an architecture that supports video-on-demand session mobility in a home network environment according to the principles of the present invention;
[0009] Figure 2B is a diagram depicting the command control message flow for establishing an IP flow between a VOD application on a requesting device and the primary receiving device; [0010] Figure 2C is a diagram depicting how electronic program guide information and other signaling carried in MPEG sections of an out-of-band channel is made available in real-time to other network devices;
[0011] Figure 3 is a diagram illustrating how a transport stream formatter is configured within a primary receiving device; [0012] Figure 4 is a diagram illustrating sequence steps for achieving session mobility from one network device to another network device in a home networking environment;
[0013] Figure 5 is a diagram illustrating how the architecture of the present invention may be used to view broadcast program content; and
[0014] Figures 6 and 7 illustrate exemplary copy protection methods for digital content transferable amongst different network devices.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0015] Figure 1 illustrates an exemplary home network environment
10. This exemplary environment is comprised generally of a plurality of network devices 12 interconnected by a packet switched network 14. One or more of the network devices may be configured to receive a digital transport stream from a broadcast source outside of the home network environment. These primary receiving devices are further configured to transport the transport stream over the packet switched network to another requesting device as will be further described below. While the following description is provided with reference to a home network, it is readily understood that the present invention extends to other types of packet switched networks.
[0016] Figure 2A depicts a software-implemented architecture for supporting video session mobility from one network device to another network device according to the principles of the present invention. A network device configured to receive a broadcast transport stream is referred to herein as a primary receiving device 20. The primary receiving device 20 includes one or more user interface applications 21 , an in-band tuner 22, an out-of-band tuner 23, a point-of-deployment access module 24 and a library of point-of-deployment host resources 25. In an exemplary embodiment, the primary receiving device is a television or a set-top box associated with a television. However, it is envisioned that the primary receiving device may be any network device configured in a manner as described herein.
[0017] An electronic program guide (EPG) application is an exemplary user interface application residing on the primary receiving device 20. The EPG application provides a viewer with a listing of the program content embodied in the broadcast transport stream and enables the viewer to select a particular channel for viewing. The in-band tuner 22 tunes to a selected data channel of
the transport stream and demodulates the selected data channel in a manner known in the art. A video-on-demand (VOD) application is another exemplary user interface application. The VOD application allows a viewer to order video- on-demand content. It is readily understood that other types of interactive viewing applications may also reside on the primary receiving device 20.
[0018] In order to receive scrambled cable services, the primary receiving device requires a security module which is commonly referred to as the point-of-deployment (POD) access module 24. The POD access module 24 primarily provides conditional access operation and network connectivity between the primary receiving device and the head end. For instance, the POD access module 24 provides an in-band interface for receiving an MPEG-2 transport stream from the head end. Likewise, the POD access module 24 provides an out-of-band interface for receiving and optionally sending data to the head end. In an exemplary embodiment, these out-of-band channels may be established in accordance with ANSI/SCTE 55-1 2002 Digital Broadband
Delivery System: Out of Band Transport Part 1 : Mode A or ANSI/SCTE 55-2
2002 Digital Broadband Delivery System: Out of Band Transport Part 2: Mode B.
[0019] The POD access module 24 also provides copy protection services. In particular, the POD access module 24 is operable to decrypt the selected data stream before it can be accessed by the primary receiving device. It is understood that the POD access module may provide other ancillary services which are not essential to the present invention. An exemplary point-of- deployment access module is a CableCARD device as defined in accordance with the OpenCable CableCARD Interface Specification. However, it is envisioned that other types of POD access modules (including downloadable software modules, DOCSIS DSG and embedded security modules) are within the scope of the present invention.
[0020] To provide such services, the POD access module may interface with a library of POD-related host resources 25. Host resource are a standardize set of services typically made available in a set-top box environment. Available host resources may include conditional access support, copy protection support, extended channel support, specific application support,
MMI, resource management as well as other types of resources as specified in OpenCable Cable CARD Interface 2.0 Specification OC-SP-CCI F2.0-D02- 041230..
[0021] A communication layer for interfacing to the other devices in the home network is provided by a virtual POD access component 26. The virtual POD access component provides all of the functionalities of a real POD to other POD-Iess devices in the home network, thereby enabling conditional access and communication between applications on the requesting device and the head¬ end. Using host resources, the virtual POD 26 is operable to establish a data communication session with the POD access module 24. In an exemplary embodiment, the data communication session employs an extended channel as is supported by most POD modules. Alternatively, the virtual POD may be configured to interface directly with the POD access module 24. Once established, data packets can be routed by the virtual POD 26 over the network to and from other network devices.
[0022] To properly route data packets within the primary receiving device, an IP router 27 may interface with the POD access module 24. The IP router 27 will direct data packets received from the POD access module 24 to a designated application, including the virtual POD 26, on the primary receiving device. Conversely, data packets received over the network from other network devices may be routed through the IP router 27. An exemplary IP routing function as provided by the IP router is described in the OpenCable CableCARD Interface 2.0 Specification OC-SP-CCIF2.0-D02-041230.
[0023] Referring to Figure 3, the primary receiving device 20 further includes a transport stream formatter 28. In general, the transport stream formatter 28 is a software component which can receive a selected video stream and translate the selected data stream into a series of data packets for transmission over the packet switched network. In a preferred embodiment, the transport stream formatter 28 receives an MPEG2 transport stream via a switch or splitter 29 from a serial output of the POD access module 24. It is also contemplated that the transport stream may be received in a decrypted state
from the POD access module 24 or, in the absence of a POD access module, directly from the in-band tuner 22.
[0024] To decrypt the stream content, program map tables must be acquired from the transport stream. The transport stream formatter 28 may extract the program map tables from the transport stream and send it to a local application 21 , such as the VOD application, for transmission to a requesting device. The VOD application then places the table information in data packets which are sent via the virtual POD 26 to the requesting device. The VOD application also feeds the program map tables via a conditional access host resource in the POD host resource library 25 to the POD access module 24. The POD access module 24 uses the program map tables to evaluate if the transport stream can be descrambled as is known in the art.
[0025] Alternatively, the program map tables may be sent by the transport stream formatter 28 to the requesting device. In one approach, the program map tables are extracted by the transport stream formatter 28 and sent as a separate file or an XML fragment to the transport stream extractor 35 on the requesting device. In another approach, the transport stream, including the program map tables, are sent to the transport stream extractor 35 which in turn extracts the tables on the requesting device. In either case, the transport stream extractor 35 sends the program map tables to the VOD application 31 on the requesting device 30. The VOD application sends the tables via the conditional access resource to the virtual POD 32 on the requesting device 30. The virtual POD 32 then sends the tables back to the virtual POD 26 on the primary device 20 which may employ the conditional access host resource to provide the tables to the POD access module 24.
[0026] In either case, the series of data packets may be pushed to or pulled by another requesting device in the home network. The data packets may also be stored temporarily in a buffer associated with transport stream formatter 28. Although transmission of the data packets is preferably effectuated using a streaming protocol, such as the Real Time Protocol, it is readily understood that other Internet protocols, such as TCP or HTTP, may be used to transmit the data packets over the packet switched network.
[0027] Returning to Figure 2A, a network device configured to access a video-on-demand session received by the primary receiving device is referred to herein as a requesting device 30. A requesting device 30 is configured with one or more user interface applications 31 , a virtual POD access component 32, corresponding library of POD-related resources 33, an IP router 34 and a transport stream extractor 35. The applications 31 are configured to communicate with the virtual POD 32 in a manner similar to which the applications on the primary receiving device communicate with the POD access module 24. The requesting device 30 may further include a rendering device for viewing a requested video session, but does not include a tuner. An exemplary requesting device may be a PDA or laptop computer which is configured as described herein.
[0028] Session mobility from one network device to another network device in a home networking environment may be achieved in a manner as described in relation to Figure 4. A viewer may use an EPG application or a VOD application on the primary receiving device to initiate a request for video- on-demand content at 41. In response to this request, the application cooperatively operates with the POD access module 24 to establish a requested video session with the head end. Although other protocols may be suitable, this session is preferably established in accordance with the DSMCC-UU standard. As a result, an order for the requested video session is placed via an out-of-band data channel with the head end. The head end in turn provides any information (e.g., decryption keys) needed to access the request video session back to the VOD application. [0029] When establishing a video session, the application creates an entry into a content listing directory at 43 which is accessible to other network devices. The entry will include an identifier (and/or description) for the movie selected, a validation period for the purchase, as well as a tune frequency needed to retrieve the video session from a suitable transport stream. It is envisioned that the entry may include other types of information which may facilitate retrieval of the video session.
[0030] In one exemplary embodiment, the content listing directory is queried by the other network devices to get a listing of available video sessions. Although the content listing directory preferably resides on the primary receiving device, it is envisioned that the directory may also reside at the head end. In such instances, the primary receiving device will query the directory on behalf of a requesting device and forward query results to the requesting device.
[0031] Alternatively, a subscription-based service may supplement the content listing directory on the primary receiving device. In operation, the subscription-based service sends event notification messages to subscribers when a new entry is placed in the content listing directory. An exemplary service is the Content Directory Service as provided by the Universal Plug and Play (UPnP) protocol. In either of these ways, the content listing directory exposes the available video sessions to the other network devices in the home networking environment. [0032] A viewer is now able to access the video session from a network device other than the primary receiving device. First, the viewer reviews a listing of the available video sessions at 44 using either an EPG application or a VOD application provided on the requesting device. In the case of the EPG application, if the selected content is a VOD session, then the EPG application launches the VOD application. Upon selection of a particular video session by the viewer, the VOD application initiates a request for the selected video session to the primary receiving device.
[0033] Figure 2B illustrates the command control message flow for establishing an IP flow between the VOD application on a requesting device and the primary receiving device. In one embodiment, the VOD applications on each device collaborate to provide this service. In an alternative approach, the VOD application of the requesting device communicates directly with the VOD server at the head-end via the primary receiving device. In this case, the IP session is between the VOD application on the requesting device and the server at the head-end.
[0034] A data session request is issued by the VOD application preferably in accordance the DSMCC-UU standard as is done in a primary
receiving device. Since the request is IP-based, it is received by the IP router 34 which based on routing information will route the request to the virtual POD 32. The virtual POD 32 in turn translates this request into data packets which may be sent over the network using a suitable protocol. [0035] During initialization, the IP router 27 in the primary device 20 may open an IP flow with the virtual POD 26 and POD access module 24 using an extended channel. Upon receipt of the data packets from the requesting device 30, the virtual POD 26 on the primary device routes the data packets to the IP router 27. Based on packet routing information, the IP router 27 routes the data packets to the POD access module 24. In this way, a communication link is established between the VOD application on the requesting device 30 and a VOD server application at the head-end. It is understood that the VOD application on the requesting device may also use this communication link to communicate with the VOD application on the primary device. Thus, the requesting device may use this communication link to access the content listing directory and/or initiate a selected video session on the primary receiving device. It is further understood that this IP flow may also be used to send data packets from the primary device to the requesting device.
[0036] Returning to Figure 4, the requesting device and primary receiving device will negotiate the transport mechanism for the requested video session, including but not limited to content format, transport communication protocol, and network address information such as port number. Since the video content is preferably transported across the network in a secure manner, the requesting device may also negotiate a key exchange which will allow it to decrypt the video content. As indicated at 46, this negotiation may be conducted between the VOD applications.
[0037] Next, the VOD application on the primary receiving device interfaces with the tuner to tune the requested data channel. A suitable tuning API may be employed to interface the VOD application with the tuner 22. In the case of a single tuner, a suitable mediation process may be employed to resolve concurrent requests for different channels which may be received from a second requesting device or from the primary receiving device. In the case of a primary
receiving device having multiple tuners, it is readily understood that the proposed architecture can support multiple video sessions at one or more network devices in the home network. Once tuned, the video content is streamed by the transport stream formatter 28 over the network to the requesting device. [0038] At the requesting device, the transport stream extractor 35 recombines the series of data packets to form streaming video which may be passed along to a suitable video rendering device 36. To the extent that the video content is encrypted, a local application cooperates with the transport stream extractor 35 to decrypt the streaming video. [0039] During the video session, control commands, such as fast forward, rewind or pause, may be sent from the requesting device back upstream to the primary receiving device. In one approach, the delivery of the video stream may be altered by the transport stream formatter 28. In other words, the transport stream formatter 28 continues to receive streaming video from the head end, but manipulates it through the use of a local buffer in accordance with the control commands received from the requesting device. In another approach, the VOD application on the primary device on behalf of the VOD application on the requesting device forwards the control commands via an out-of-band channel to the head end, where the video stream is altered in accordance with the commands. In yet another approach, the VOD application at the requesting device sends the control commands via the virtual POD module in the primary device directly to the head-end.
[0040] In any of these approaches, the primary receiving device may be configured to bookmark the current state of the video session. By storing needed access information in the content listing directory or some other local data store, an ordered video session may be paused on one requesting device (e.g., residing in the bedroom) and then resumed on yet another network device (e.g., residing in the basement).
[0041] In an alternative embodiment, a viewer may order the video-on- demand content from a secondary network device. In this case, the electronic program guide is made available to the viewer at the secondary device as shown in Figure 2C. To do so, the virtual POD on the primary receiving device opens
an extended channel for MPEG section through the library of host resources with the POD access module. The virtual POD then registers for the MPEG sections of interest (i.e., the EPG data). As these MPEG sections arrive at the POD of the primary device, these section are then made available to the virtual POD via an already established extended channel flow for MPEG sections. The virtual POD then sends these MPEG section to the virtual POD on the requesting device which in turn delivers them to the EPG application residing on the requesting device. In this way, all the signaling information (EPG data, XAIT, EAS, etc.) sent from the head-end are made available in real-time to other devices in the network.
[0042] The viewer may use the EPG application residing on the secondary device to select the desired video content. A request for the content is formulated and sent by the secondary device to a suitable application, such as the VOD application, residing on the primary device or directly with a server at the head-end. The VOD application in turn cooperates with the POD access module to establish the requested video session. Remaining steps for delivering the request video session to the secondary device are as described in relation to Figure 4. In this way, the video-on-demand content may be ordered as well as viewed from a network device other than the primary receiving device residing in the home environment.
[0043] In yet another embodiment, the viewer may order and/or receive the video-on-demand content on a mobile network device associated with the home network environment. For example, the viewer may wish to order and watch a particular movie on his laptop while sitting at the airport or some other location away from the home network environment. To do so, the mobile device must be able to establish a connection to the home network.
[0044] In an exemplary embodiment, the mobile device will be interconnected to the home network using the Session Initiation Protocol (SIP). A SIP Service may be used to import SIP capabilities into the network environment. The SIP Service exposes different interfaces which deal with SIP- specific functions, such as registration, eventing and messaging, as well as gateway-specific functions, such as SIP device registration with the framework's
registry. Further information regarding this exemplary SIP Service may be found in U.S. Patent Application Serial No. 10/894,469 entitled "SIP Service for Home
Network Device and Service Mobility" which is incorporated by reference herein.
[0045] Furthermore, the network devices may be configured to communicate in accordance with UPnP protocol. In this case, a SIP/UPnP bridging service provides a communication interface between SIP entities residing outside the home network and UPnP entities residing within the home network. For example, the bridging service translates SIP messages from the
SIP entities to a series of UPnP-specified APIs. Further information regarding an exemplary bridging bundle may be found in U.S. Patent Application Serial No. 11/023,752 entitled "Extending Universal Plug and Play Messaging beyond a Local Area Network".
[0046] When one of the network devices, including the primary receiving device, is configured with the SIP/UPnP bridging service, messages may be sent from the mobile device via the bridging service to the primary receiving device. Messages are transported from the virtual POD of the mobile device to the bridging service using SIP messaging and then transported from the bridging service to the virtual POD of the primary receiving device using UPnP transport mechanisms. A similar messaging scheme may be used to transport messages from the virtual POD of the primary receiving device to the virtual POD of the mobile device. However, it is readily understood that other architectures may be employed within the broader aspects of the present invention to interface with mobile devices residing outside of the home network.
[0047] In another aspect of the present invention, the proposed architecture may also be used to view broadcast program content at tunerless requesting devices in the home network as shown in Figure 5. A viewer may again use the EPG application 31 on a requesting device 30 to view the available broadcast content. Rather than initiating a video session, the EPG application interfaces with a tuning API 51 to formulate a request to tune the in- band tuner 22 residing on the primary receiving device 30. The tuning API 51 in turn interfaces with a virtual tuner 52 to translate the request for transmission over the packet switched network. In an exemplary embodiment, the virtual
tuner 52 is shown as a software component distinct from the virtual POD. However, it is readily understood that this functionality could be integrated with the functionality of the virtual tuner to form a single software component.
[0048] At the primary receiving device 20, the tune request is received by a tuning driver 54 which interfaces with the in-band tuner 22 to effectuate the tuning. Once tuned, the video content is streamed by the transport stream formatter 28 over the network to the requesting device. To the extent that broadcast content is scrambled, program map tables may be extracted from the transport stream in the manner described above. [0049] Two exemplary copy protection methods for downloadable digital content are further described below. Rather than a one-time viewing of a movie, the viewer may purchase a copy of the movie which is downloadable through digital transport stream. Once downloaded, the digital content may be moved amongst devices in the network in a manner as described above. Thus, additional copy protection mechanisms will be needed when a copy of the digital content is maintained in the home networking environment.
[0050] In a first exemplary approach, keys are physically co-located with the digital content as shown in Figure 6. In a first step, an initial content key 61 and corresponding digital content 62 are copied from an initial storage device 63 to a destination storage device 64. The initial content key 61 does not enable content access on the destination device 64 because it is tied to the initial storage device. Thus, the digital content remains accessible of the initial storage device 63 and is inaccessible on the destination device 64.
[0051] Next, a new destination content key 65 is created for and stored on the destination device 64. The presence of two keys constrains access to the content on the destination device 64. After confirming successful copying and creation of a new content key 65, the initial content key 61 and digital content 62 are removed from the initial storage device 63. At this point, the digital content is inaccessible on both the initial and destination devices. [0052] After confirming the content is unique to the network, the initial content key 61' is removed from the destination device 64, thereby enabling content access on the destination device. If the initial device crashes prior to this
step, the digital content 62' on the destination device 64 will be accessible because the content is not found elsewhere on the network. When the initial device 63 recovers, a service-initialization mechanism identifies the stale content key and content pair and purges them from that device. [0053] In a second exemplary approach, keys are physically located on a server within the network as shown in Figure 7. In a first step, the digital content 72 is copied from an initial storage device 73 to a destination storage device 74. An initial content key 71 is shown residing on the server 70. Since each content key is intrinsically associated with a specific device, the digital content remains accessible on the initial storage device 73, but is inaccessible on the destination device 74.
[0054] Next, a content key 75 is created for the destination device 74. Existent of two keys for the same digital content precludes access to the content on the destination device. Prior to the digital content becoming accessible on the destination device, the initial content key 71 is removed from the server 70 as shown in step 3. In addition, the digital content 72 is also removed from the initial device 73 as shown in step 4. Once the content is confirmed as unique on one location, it becomes accessible at that destination device.
[0055] The description of the invention is merely exemplary in nature and, thus, variations that do not depart from the gist of the invention are intended to be within the scope of the invention. Such variations are not to be regarded as a departure from the spirit and scope of the invention.