This application relates generally to providing video programming to customer premises. More specifically, this application relates to providing video programming to customer premises on demand by customers.
In recent years, there has been steadily increasing consumer demand for video-on-demand programming. In broad terms, “video-on-demand” refers to programming functionality that permits a customer to order a particular video program at his convenience, without the constraint of a predetermined broadcast schedule. Such video-on-demand programs have been available for some time now in settings where the potential number of viewers is relatively small. For example, many hotels now offer a portion of their programming on a video-on-demand basis so that guests may view such programming at their convenience.
Extension of video-on-demand services to large populations has been hampered by the need to ensure availability of the programs to large numbers of customers, many of whom may wish to view the same program near, but not exactly at, the same time. While relatively small numbers of customers may be accommodated by providing a dedicated video stream for each user of the system regardless of whether multiple users are viewing the same content, this approach quickly becomes unmanageable as the number of users increases. Providing such dedicated video streams results in a need to maintain multiple copies of the same content, thereby creating tremendous distribution requirements in the network that services the users. For large distribution systems, such as might be provided by cable-television systems, the resulting complexity has acted as a barrier to widespread implementation of full video-on-demand services. Instead, some implementations have attempted to provide much more limited versions that mimic aspects of video-on-demand services, without providing the full functionality being demanded by consumers.
There is accordingly a need in the art for methods and systems for providing video on demand that avoid these limitations.
Embodiments of the invention thus provide methods and systems for providing video on demand. From the perspective of a customer of the video-on-demand service, these embodiments permit the customer to specify a video segment that he wishes to watch and to have that video segment transmitted to his premises at the time he desires. During the transmission of the video segment, the customer may exert control over the transmission of the segment with commands such as fast-forward, reverse, freeze-frame, slow-motion, and the like. In addition to meeting these demands by customers, the implementation of the services may be performed without certain limitations of the prior art.
In one set of embodiments, a method provides a selected video segment to customer premises equipment. A request is received from the customer premises equipment for transmission of the selected video segment. A copy of the selected video segment is transferred to one of a plurality of buffers. One of the plurality of buffers is mapped through a routing network to a port interfaced with the customer premises equipment. The selected video segment is transmitted from the one of the plurality of buffers through the routing network and port to the customer premises equipment. In some instances, the selected video segment may comprise a selected video program.
In some such embodiments, transmitting the selected video segment is performed substantially contemporaneously with receiving the request for transmission of the selected video segment. In other embodiments, a request for the copy of the selected video segment is transmitted to a central video library that comprises the selected video segment. The request for the copy may comprise indexing information for the selected video segment. In other embodiments, the copy of the selected video segment is received from a central video library that comprises the selected video segment. In further embodiments, a transmission instruction may be received from the customer premises equipment, with transmission of the selected video segment being modified in accordance with the transmission instruction. In some embodiments, the copy of the selected video segment may be deleted from the one of the plurality of buffers. In other embodiments, the copy of the selected video segment may be maintained in a video library local to the plurality of buffers.
Methods of the invention may accommodate multiple transmissions of the video. For example, in a further embodiment, a second request for transmission of the selected video segment is received from a second customer premises. A second copy of the selected video segment is transferred to a second of the plurality of buffers. The second plurality of buffers is mapped through the routing network to a port interfaced with the second customer premises. The selected video segment is transmitted from the second plurality of buffers through the routing network and second port to the second customer premises equipment. Transmitting the selected video segment from the second of the plurality of buffers may be time-shifted with respect to transmitting the selected video segment from the one of the plurality of buffers. In addition, methods of the invention may combine multiple video segments. In such embodiments the selected video program is combined with a second video program, and a combination of the selected video program and second video program is transferred to the one of the plurality of buffers.
In another set of embodiments, a system provides a selected video segment to customer premises equipment. The system comprises a content-transfer server interfaced with a head end having a central video library that houses a copy of the selected video segment. The content-transfer server is adapted to generate multiple streams of content received from the head end and to control transmission of the multiple streams of content in accordance with transmission instructions received from the customer premises equipment. The system may also comprise a routing network interfaced with the content-transfer server and adapted to implement a mapping of the multiple streams of content. A plurality of ports are adapted to transmit the mapped streams of content over a transmission medium, with one of the plurality of ports being interfaced with the customer premises equipment with the transmission medium.
The transmission instructions may, for example, comprise a request for transmission of the selected video segment or a request to modify transmission of the selected video segment. In some instances a plurality of content-transfer servers may be used. In some cases, a plurality of routing networks may also be used, with each of the routing networks interfaced with one of the content-transfer servers. The content-transfer server may comprise a local video library adapted to store a copy of the selected video segment. A plurality of buffers are adapted to exchange content with the routing network. An index module may be then be used to load frames of the selected video segment from the local video library into the buffers. In one embodiment, the index module is adapted to load frames into different buffers on a time-shifted basis.
In a further set of embodiments, a system provides video programming. A head end is provided with a central video library that houses a plurality of video segments. A plurality of node terminals are adapted to exchange content with a plurality of customer premises equipment, and a distribution network is provided to interface the head end with the plurality of node terminals. Each of the node terminals is adapted to retrieve a copy of a selected video segment from the head end in response to a request for transmission of the selected video segment from one of the plurality of customer premises equipment. In addition, the node terminal transmits the selected video segment to the one of the plurality of customer premises equipment at a time specified by the request.
In some such embodiments, the head end may further comprise an index framer in communication with the central video library and adapted to encode each of the plurality of video segments into indexed frames. At least one of the node terminals may comprise a content-transfer server adapted to generate multiple streams of content received from the head end and to control transmission of the multiple streams of content in accordance with transmission instructions received from the customer premises equipment. In addition, that node terminal may comprise a plurality of ports adapted to transmit the multiple streams of content over transmission media to the customer premises equipment. In some instances, that node terminal may additionally comprise a routing network adapted to implement a mapping of the multiple streams from the content-transfer server to the plurality of ports. In addition, that node terminal may comprise a local video library adapted to store a copy of at least one of the plurality of video segments. A plurality of buffers adapted to exchange content with the routing network may also be provided, with an index module adapted to load frames from the local video library into the buffers.
A further understanding of the nature and advantages of the present invention may be realized by reference to the remaining portions of the specification and the drawings wherein like reference numerals are used throughout the several drawings to refer to similar components. In some instances, a sublabel is associated with a reference numeral and follows a hyphen to denote one of multiple similar components. When reference is made to a reference numeral without specification to an existing sublabel, it is intended to refer to all such multiple similar components.
Embodiments of the invention provide methods and systems for providing a selected video segment to customer premises equipment. These embodiments permit the use of a single source of the selected video segment, although as is evident from the discussion below, the use of a single source is not a requirement of the invention and alternative embodiments may use multiple source copies of the selected video segment. As used herein, a “video segment” may form part or all of a video program, and is intended to refer to content that includes a video component, although it may include other components such as audio components, and may be configured for interactivity with a user, changing in response to commands received from the user.
A structural overview of embodiments of the invention is provided with the schematic block diagram of
In the embodiments illustrated in
The head end 104 may also include an index framer 112, which is configured to format the content so that it may be indexed for easier retrieval. The frames may be time-based, scene-based, a combination of time- and scene-based, and the like. The granularity of the indexing may affect the level of control that a user may have on modifying transmission of the content as described below. While the index framer 112 is shown in the exemplary embodiment disposed after the central video library 108 along the transmission route from the central video library 108 to customer premises equipment 124, it may in alternative embodiments be disposed before the central video library 108. Disposition before the central video library 108 has the advantage that video segments may be encoded into frames and indexed before a request is received for a selected video segment, permitting such a request to be addressed more efficiently. Normally, the video segment is encoded into frames and indexed to facilitate coordination of subsequent retrieval. In some embodiments, supplementary classification information may additionally be associated with each of the video segments to make it easier for a user to identify a selected video segment. Merely by way of example, the classification information could include an alphabetic arrangement of the titles of the video segments; could include category information, such as “Drama,” “Comedy,” “Romance,” and the like; could include ratings information, such as “G,” “PG,” “PG-13,” “R” “NC-17,” and the like; could include a quality index such as might be calculated from averages of reviews of the content by recognized newspaper sources; and so forth. In some instances, the index framer may be adapted to index objectionable scenes and/or language, permitting that material to be bypassed during transmission as part of a parental-control feature.
The head end 104 may be interfaced with the remainder of the network through a distribution network 116, which is configured to provide distribution connections between the head end and smaller nodes in the network. The distribution network 116 may be provided using any suitable transport media known to those of skill in the art. For example, it may be provided as a fiber-based distribution network, as a copper-based distribution network, or as a wireless distribution network. Node terminals 120 may be provided at the smaller nodes of the network to coordinate distribution of content originating from the head end 104 to users of the system. While
The interaction between the user and the network thus takes place in the form of interaction between the customer premises equipment 124 and one of the node terminals 120, usually through an access network 122 that may comprise, for example, a copper-based, fiber-based, or wireless based network.
A structure for a content-transfer server 204 is illustrated with the schematic block diagram provided in
Operation of the local video library 304 and the index module 308 may be coordinated by a controller 312, which may, for example, be any type of microprocessor known to those of skill in the art. In addition, the controller 312 may be adapted to keep the buffers 316 relatively full, or may flush the buffers 316 as needed to respond to transmission-modification commands such as fast-forward and rewind. The controller 312 may be adapted to duplicate data for implementing freeze-frame and slow-motion functions, or may be adapted to drop frames to implement fast-motion functions. In a particular set of embodiments, the controller 312 is adapted to combine multiple content streams into a single buffer. Such combination may be used to support picture-in-picture applications, to support the transmission of banners or other multimedia objects, or even to permit simultaneous transmission of a web browser to permit web surfing while viewing a video segment.
When a request is received from a user, as noted at block 412, the request is processed by one of the node terminals 120. At block 416, the node terminal 120 that receives the request determines whether a copy of the selected video segment already exists locally at the node terminal 120. Such a copy may exist locally because it has recently been requested by another user and is being transmitted to the other user, or may exist locally within a local video library 304 comprised by one of the content-transfer servers 204 because application of a retention algorithm indicated that a copy of that video segment should be maintained locally. The use of such a retention algorithm is discussed further below. In some embodiments, the architecture is used to store a distributed library in the local video libraries 304 instead of maintaining the central library 108 at the head end 104.
If no copy exists local to the node terminal 120, a request for a copy of the selected video segment is transmitted to the central video library at block 420. In response to the request, the head end 104 retrieves the selected video segment from the central video library 108 and transmits a copy of it to the node terminal at block 424. Upon receipt of the copy of the selected video segment at block 428, the node terminal 120 downloads the indexed copy to the local video library 304 of one of its available content-transfer servers 204, which in turn transfers the indexed copy or portion thereof to one of its buffers 316 at block 432. The content-transfer server need not wait for receipt of a complet copy of the selected video segment before it begins to generate multiple streams, but preferably receives the content at a faster rate than it will be viewed at the customer premises equipment 124. It is similarly preferable that the rate of the transfer to one of the buffers 316 be high, particularly at a sufficient rate to avoid a buffer under-run while the user is viewing the selected video segment. In embodiments where the rate of transfer is many times the speed of playback of the selected video segment, the user will advantageously be able to access any part of the segment without significant delay.
In an alternative embodiment, the controller 312 loads a portion of a video segment into, a buffer 316, the contents of which are transmitted over the access network 122 to the customer premises equipment 124. As the buffer 316 empties, it signals back to the controller 312, which causes another portion of the video segment to be loaded. When full, the buffer 316 signals back to the controller 312 to wait. If there is a transmission-control request such as a rewind or fast-forward request, the controller 312 may insert content reflecting the requested action, flush the buffer of the data that are no longer appropriate, and begin to fill the buffer 316 with data from the newly requested index point.
If it is instead determined at block 416 that a copy of the selected video segment does exist local to the node terminal 120, then the node terminal 120 may simply transfer the transmission request to the content-transfer server 204 that already has a copy of the selected video segment at block 436. Transferring the customer's request for transmission of the selected video segment in this manner is more efficient than transferring a new copy of the selected video segment. At block 432, the content-transfer server 204 transfers a copy of the selected video segment to a buffer 316 from the local video library 304. In some instances, the presence of the locally available copy signals that the content-transfer server 204 is already serving at least one other customer and transmitting the selected video segment to that customer. Accordingly, additional transmission of the selected video segment through another buffer 316 of the content-transfer server 204 results in the content-transfer server 204 serving multiple customers simultaneously by transferring the selected video segment to respective buffers 316. The frame indexing of the selected video segment permits receipt of the segment by those multiple customers to be time-shifted, and for each of those customers to exert independent control over their respective transmissions independently.
At block 440, the content-transfer server 204 determines a mapping from the buffer 316 to which the selected video segment is being transmitted to a port 212 interfaced with the customer premises equipment 124 through an appropriate physical layer medium. This mapping is then used to effect transmission of the selected video segment from the buffer 316 to the customer premises equipment 124 over the routing network 208 internal to the node terminal 120 at block 444. Transmission may be requested by the customer immediately or may be requested at a later specified time. When transmission of the segment begins at block 444 substantially contemporaneously with receipt of the request for transmission at block 412, i.e. after no more than a few seconds or minutes, the transmission corresponds to a “live” video-on-demand presentation. In other instances, where there is a substantial time gap between the two, the transmission corresponds to a “preprogrammed” video-on-demand presentation; such a preprogramming feature allows a customer to conveniently order a selected video segment at one time in the day for viewing at a later time or even on a different day. In normal operation, the transmission at block 444 will be at substantially the normal playback rate of the selected video segment so that it may be viewed by the customer at the customer premises. In some instances, the customer may be provided with additional control over the transmission, such as by mimicking the controls that are provided by a video-cassette or digital versatile disk (“DVD”) player.
In particular, the node terminal 120 monitors at block 448 whether transmission of the selected video segment has been completed, either because all of the frames have been transmitted to the customer premises equipment 124 or because an instruction to end transmission has been received from the customer via the customer premises equipment 124. As long as transmission of the selected video segment continues, the node terminal 120 monitors at block 452 for the receipt of a transmission instruction from the customer via the customer premises equipment 124. Such a transmission instruction may correspond, for example, to a fast-forward, rewind, repeat, freeze-frame, resume-play, slow-motion, or similar command. A further example of such a transmission instruction is to jump to a particular specified frame according to the indexing of the selected video segment.
Effect may be given to each of these commands at block 456 by a modification in the transmission that is implemented with a change in playback speed, playback direction, and/or playback point. For example, a fast-forward function may be implemented by increasing the speed of transmission from the corresponding buffer 316 in the normal playback direction. Alternatively, a fast-forward function may be implemented by dropping a fraction of the frames and duplicating remaining frames. A rewind function may be implemented by an increased speed of transmission in the opposite playback direction or by a dropping of frames. A repeat function may be implemented by shifting to a preceding playback point and then continuing transmission at normal speed in the normal playback direction. A freeze-frame function may be implemented by continuously transmitting a specific frame with zero playback speed until a contrary transmission instruction is received, such as a resume-play command, which may be implemented by resuming transmission at normal speed in the normal playback direction. A slow-motion function may be implemented by reducing the playback speed while maintaining the normal playback direction. A jump function may be implemented similarly to a repeat function by shifting to a specified playback point, either preceding or subsequent to the current playback point, and continuing transmission at normal speed in the normal playback direction. In some embodiments, these functions may be enhanced by using a subindexing capability of the buffer 316 or index module 308, particularly for functions such as freeze-frame and slow-motion functions.
In some instances, the actual content of the selected video segment may be dependent on receipt of a transmission instruction. For example, when the selected video segment is an interactive video segment, there may be a number of decision points at which different paths may be selected for presentation of the selected video segment depending on a response by the user. In these embodiments, giving effect to receipt of the transmission instruction thus results in a determination of which content to transmit to the user.
Once transmission of the selected video segment has been completed, as checked at block 448, a decision may be made at block 460 whether to retain a copy of the selected video segment in the local video library 304 even when no user is currently viewing that segment. Depending on the type of retention algorithm being applied at block 460, the selected video segment is either stored at block 464 or deleted at block 468. In some embodiments, the advantage to keeping space available for other segments as they are requested by users may be exploited by always deleting the copy after transmission if it has been completed. There are, however, also advantages to maintaining a local copy, particularly in increasing the efficiency with which transmission may be begun in response to a request from a user. Accordingly, many embodiments apply a retention algorithm that selectively attempts to identify which video segments are likely to be in high demand in the near future. Such algorithms may, for example, dictate retention of any video segment that has been released within less than a month or some other time period. The algorithms may alternatively determine retention based on the actual number of times a particular video segment has been transmitted to customers from a certain content-transfer server 204. In some instances, a sliding window of retention might be used; such a retention algorithm is especially suitable for accommodating broadcast programming. In other embodiments, more sophisticated algorithms that make use of techniques such as neural networks may be used to monitor popularity of video segments and thereby increase the efficiency with which storage space in local video libraries 304 is used.
It should be appreciated that while
An illustration of the time-shifting aspects that may be used in embodiments of the invention is shown in combination with implementation of exemplary transmission instructions that may be provided by a user in
The example in
In some embodiments, the duplication of frame transmission during, say, a slow-motion playback may be avoided by using a subindexing capacity of the buffer 316. In such instances, a given frame is subindexed the frame into a plurality of indexed subframes, which may then be transmitted sequentially in a fashion analogous to that shown for frames in
Thus, having described several embodiments, it will be recognized by those of skill in the art that various modifications, alternative constructions, and equivalents may be used without departing from the spirit of the invention. Accordingly, the above description should not be taken as limiting the scope of the invention, which is defined in the following claims.
Number | Name | Date | Kind |
---|---|---|---|
5132992 | Yurt et al. | Jul 1992 | A |
5583561 | Baker et al. | Dec 1996 | A |
5659539 | Porter et al. | Aug 1997 | A |
5696905 | Reimer et al. | Dec 1997 | A |
5757417 | Aras et al. | May 1998 | A |
5764893 | Okamoto et al. | Jun 1998 | A |
5793971 | Fujita et al. | Aug 1998 | A |
5815146 | Youden et al. | Sep 1998 | A |
5815662 | Ong | Sep 1998 | A |
5862312 | Mann et al. | Jan 1999 | A |
5898456 | Wahl | Apr 1999 | A |
5905845 | Okada et al. | May 1999 | A |
5924116 | Aggarwal et al. | Jul 1999 | A |
5940738 | Rao | Aug 1999 | A |
5974503 | Venkatesh et al. | Oct 1999 | A |
6081840 | Zhao | Jun 2000 | A |
6112226 | Weaver et al. | Aug 2000 | A |
6138221 | Korst et al. | Oct 2000 | A |
6144375 | Jain et al. | Nov 2000 | A |
6192186 | Murashima et al. | Feb 2001 | B1 |
6226793 | Kwoh | May 2001 | B1 |
6286143 | Asamizuya et al. | Sep 2001 | B1 |
6321381 | Yuen et al. | Nov 2001 | B1 |
6378130 | Adams | Apr 2002 | B1 |
6381746 | Urry | Apr 2002 | B1 |
6385771 | Gordon | May 2002 | B1 |
6401126 | Douceur et al. | Jun 2002 | B1 |
6463444 | Jain et al. | Oct 2002 | B1 |
6543053 | Li et al. | Apr 2003 | B1 |
6557030 | Hoang | Apr 2003 | B1 |
6570070 | Nakajima et al. | May 2003 | B1 |
6704491 | Revis | Mar 2004 | B1 |
6714723 | Abecassis | Mar 2004 | B2 |
6796555 | Blahut | Sep 2004 | B1 |
6829781 | Bhagavath et al. | Dec 2004 | B1 |
6877010 | Smith-Semedo et al. | Apr 2005 | B2 |
6882793 | Fu et al. | Apr 2005 | B1 |
6925499 | Chen et al. | Aug 2005 | B1 |
6944585 | Pawson | Sep 2005 | B1 |
6973461 | Fleming et al. | Dec 2005 | B1 |
6973666 | Jacobs et al. | Dec 2005 | B1 |
7028096 | Lee | Apr 2006 | B1 |
7080400 | Navar | Jul 2006 | B1 |
7093191 | Jain et al. | Aug 2006 | B1 |
7143433 | Duan et al. | Nov 2006 | B1 |
7155735 | Ngo et al. | Dec 2006 | B1 |
7188357 | Rieschl et al. | Mar 2007 | B1 |
7293279 | Asmussen | Nov 2007 | B1 |
7440674 | Plotnick et al. | Oct 2008 | B2 |
20010014975 | Gordon et al. | Aug 2001 | A1 |
20010018693 | Jain et al. | Aug 2001 | A1 |
20010025377 | Hinderks | Sep 2001 | A1 |
20020049977 | Miller et al. | Apr 2002 | A1 |
20020059394 | Sanders | May 2002 | A1 |
20020059619 | Lebar | May 2002 | A1 |
20020069420 | Russell et al. | Jun 2002 | A1 |
20020078174 | Sim et al. | Jun 2002 | A1 |
20020147782 | Dimitrova et al. | Oct 2002 | A1 |
20020152318 | Menon et al. | Oct 2002 | A1 |
20020199188 | Sie et al. | Dec 2002 | A1 |
20030005457 | Faibish et al. | Jan 2003 | A1 |
20030028884 | Swart et al. | Feb 2003 | A1 |
20030074670 | Penk et al. | Apr 2003 | A1 |
20030115421 | McHenry et al. | Jun 2003 | A1 |
20030118243 | Sezer et al. | Jun 2003 | A1 |
20030131350 | Peiffer et al. | Jul 2003 | A1 |
20030204856 | Buxton | Oct 2003 | A1 |
20040103437 | Allegrezza et al. | May 2004 | A1 |
20060029038 | Jungck | Feb 2006 | A1 |
20060184979 | Bayrakeri et al. | Aug 2006 | A1 |
20070033533 | Sull | Feb 2007 | A1 |
20090282444 | Laksono et al. | Nov 2009 | A1 |
Number | Date | Country | |
---|---|---|---|
20040187160 A1 | Sep 2004 | US |