System and method for routing content
Claim Score by NHIP
Abstract
A system for transmitting information to a display includes one or more content sources, a network, a content processor, and a display device. The content sources are each capable of transmitting content to a content router in first formats according to packet-based communication protocol. The network selectively couples content sources to the content processor. The content processor requests and receives content from a selected content source. The content processor then modifies the first formats and generates a video stream based on the received content and transmits the video stream to the display device. The display device then displays the video stream.

Term
3.4 yearsto projected expiry
Projected expiry 12 February 2030, counted from filing; an application has no term until it is granted.
- Priority and filed
- Published
- Today
- Projected expiry
85 claims: 10 independent, 75 dependent
- 1A system for processing packet-based content over a communication network for delivery to a display comprising:a processor for receiving requests from users for information from a plurality of packet-based content sources, the content sources each generating information with different format characteristics, said information having incompatible format characteristics for transmission over the communication network and for viewing on a display;said processor operable to request and receive said information from different ones of said content sources;said processor operable to identify an algorithm suitable to modify said information to be compatible for transmission over the communication network and for viewing on the display;and said processor operable to modify said information based on said identified algorithm.
- 8Broadest claimClaim Score 78, broad(NHIP)A method for processing packet-based content over a communication network to a display comprising:receiving requests from users for information from a plurality of packet-based content sources, said information each having different characteristics incompatible for transmission over the communication network and for viewing on a display;requesting said information from said content sources;receiving said requested information from said content sources;and modifying said requested information to be compatible for transmission over the communication network and for viewing on the display.
- 15A system for processing packet-based content over a communication network to a display comprising:means for receiving requests from users for information from a plurality of packet-based content sources, said information from at least one of the content sources being different from at least one other and having incompatible characteristics for transmission over the communication network and for viewing on a display;means for requesting said information from said content sources;means for identifying and receiving said requested information from said content sources;and means for modifying said requested information to be compatible for transmission over the communication network and for viewing on the display.
- 23A system for enabling video content from a plurality of Internet content sources to be viewed by displays incompatible for receiving the Internet content comprising:a video translator connectable between the Internet and a plurality of the displays;said translator operable to receive and identify packet-based Internet protocol formatted information from the plurality of Internet content sources;said translator having circuitry for modifying the Internet protocol formatted information to be compatible with viewing by the displays, wherein the displays can display the video content.
- 31A system for transmitting video content received from a plurality of content sources to a streaming server comprising:a video processor interposed between a plurality of Internet-based content sources and the streaming server;said video processor operable to: receive and identify requested video content from a selected one or more of the Internet-based content sources;and said video processor including a translator for modifying the requested video content from a first format to a second format;said video processing further including a router for routing said translated-formatted video content to the streaming server;wherein the streaming server transmits the translated-format video content to a plurality of locations for viewing;and
- 42A method for transmitting video content received from a plurality of content sources to a streaming server, the Internet-based content sources generating information having differing characteristics, the method comprising:requesting video content from a selected one of a plurality of Internet-based content sources, wherein at least one of the content sources is capable of transmitting information having different transmission characteristics;receiving the requested video content at a video processor interposed between the Internet-based content sources and a streaming server;identifying and modifying the requested video content from a first format to a second format;routing the modified-format video content to the streaming server;and transmitting the modified-format video content from the streaming server to a plurality of locations for viewing.
- 52A system for modifying video content received from a plurality of Internet-based content sources and transmitting the received video content to a content service provider, the content service provider utilizing a streaming server to transmit video content to a plurality of displays serviced by the content service provider, the system comprising:a routing module operable to request and receive selected video content from a plurality of Internet-based content sources having differing characteristics;and a translating module operable to dynamically modify the selected video content to be compatible for transmission to a display.
- 63A method for transmitting video content, comprising:requesting video content from a plurality of Internet-based content sources, ones of the content sources generating content with differing characteristics, receiving and identifying video content from the plurality of Internet-based content sources, each operable to transmit content having different transmission characteristics, dynamically modifying the received video content to be compatible for transmission to a display, transmitting the modified video content to a streaming server operated by a content service provider, and streaming the video content from the streaming server to a plurality of displays serviced by the content service provider.
- 74A system for processing packet-based content transmitted over a communication network to a display comprising:a processor operable to receive configuration information from a user, wherein the configuration information identifies a packet-based content source;request and receive video content from the identified packet-based content source;receive a video stream from a content provider;transmit the video content requested from the identified packet-based content source and the video stream received from the content provider to a display in a manner so that the video content requested from the packet-based content source and the video stream received from the content provider can be displayed simultaneously by the display.
- 80A method for transmitting content to a display comprising:receiving configuration information from a user, wherein the configuration information identifies a packet-based content source;requesting and receive video content from the identified packet-based content source;receiving a video stream from a content provider;transmitting the video content requested from the identified packet-based content source and the video stream received from the content provider to a display in a manner so that the video content requested from the packet-based content source and the video stream received from the content provider can be displayed simultaneously by the display.
Independent claims10
88 paragraphs in 5 sections, as filed
TECHNICAL FIELD OF THE INVENTION
0001This invention relates in general to multimedia-content delivery systems, and more particularly, to a method and system for routing and translating content from one viewing media to another.
BACKGROUND OF THE INVENTION
0002The rapid growth in Internet usage that has occurred in the last several years has given users access to a substantial number and types of sources for text, audio, video, and multimedia content provided in many different formats. For many users, however, locating and accessing appropriate sources creates difficulties. Many users lack the technical capabilities to find sources of interest and to determine the appropriate techniques for accessing the content provided by these sources. Additionally, for many users, computers and other traditional devices for accessing Internet content are not preferred options for viewing particular types of content. For example, it would be advantageous for a TV viewer or a video cell phone user to be able to access and view Internet content. As a result, many types of Internet-provided content are underutilized.
SUMMARY OF THE INVENTION
0003In accordance with the present invention, the disadvantages and problems associated with content delivery systems have been substantially reduced or eliminated. In particular, a content-delivery system is disclosed that provides flexible techniques for expanding the quantity and type of content available to users.
0004In accordance with one embodiment of the present invention, a system for transmitting information to a display device includes one or more content sources, a network, a content router and translator, and a display device. The content sources are each capable of transmitting content to the content router in different formats according to packet-based communication protocols. The network selectively couples outputs from content sources to the content router. The content router requests and receives content from a selected content source. The content router then translates the format and generates a video stream based on the received content and transmits the video stream to the display device. The display device then displays the video stream.
0005Technical advantages of certain embodiments of the present invention include the ability to provide several types of content to display devices possessing varying capabilities. Additionally, particular embodiments of the present invention may significantly increase content available to video-on-demand users without increasing storage costs, create customer-stickiness for content providers by providing easier access to particular sources of content, increase cost efficiency by reducing the need for multiple format and bit-rate content storage, enable new wireless and handheld device markets by dynamically adjusting format and bit rates, and enable customized simultaneous displays from multiple content sources. Other technical advantages of the present invention will be readily apparent to one skilled in the art from the following figures, descriptions, and claims. Moreover, while specific advantages have been enumerated above, various embodiments may include all, some, or none of the enumerated advantages.
BRIEF DESCRIPTION OF THE DRAWINGS
0006For a more complete understanding of the present invention and its advantages, reference is now made to the following description, taken in conjunction with the accompanying drawings, in which:
0007<figref idref="DRAWINGS">FIG. 1</figref> illustrates a system for providing content from multiple content source to a display device through a content router and translator;
0008<figref idref="DRAWINGS">FIGS. 2A and 2B</figref> collectively represent a block diagram showing the environment and contents of the content router and translator according to a particular embodiment;
0009<figref idref="DRAWINGS">FIG. 3</figref> is an illustration of an example electronic programming guide (EPG) that may appear on a user's TV display;
0010<figref idref="DRAWINGS">FIG. 4</figref> is an illustration of an Internet video-on-demand selection from the EPG of <figref idref="DRAWINGS">FIG. 3</figref>;
0011<figref idref="DRAWINGS">FIG. 5</figref> is an illustration of another Internet video-on-demand selection from the EPG of <figref idref="DRAWINGS">FIG. 3</figref>;
0012<figref idref="DRAWINGS">FIG. 6</figref> is an illustration of yet another Internet video-on-demand selection from the EPG of <figref idref="DRAWINGS">FIG. 3</figref>;
0013<figref idref="DRAWINGS">FIG. 7</figref> is a flowchart illustrating steps in the operation of a particular embodiment of the system shown in <figref idref="DRAWINGS">FIGS. 1 and 2</figref>; and
0014<figref idref="DRAWINGS">FIG. 8</figref> illustrates operation of a particular embodiment of a system for providing customized content to a display.
DETAILED DESCRIPTION OF THE INVENTION
0015<figref idref="DRAWINGS">FIG. 1</figref> illustrates a system <b>10</b> for providing content from content sources <b>12</b><i>a</i>-<i>c </i>through the network <b>14</b> through processor or video router and translator (VRT) <b>20</b>. The translated video content is then routed through middleware <b>30</b> to a set top box <b>40</b> for display on display <b>50</b> to the user <b>60</b>. In general, the VRT <b>20</b> facilitates interaction between content sources <b>12</b><i>a</i>-<i>c </i>and middleware <b>30</b> to set-top box <b>40</b> for the provision of video, audio, and/or text-based content to display <b>50</b> for viewing by user <b>60</b>. Because the VRT <b>20</b> is capable of accessing content from a large number of content sources <b>12</b>, processing such content, and delivering the processed content to the set top box <b>40</b> for display on display <b>50</b>, VRT <b>20</b> may provide display <b>50</b> with access to a greater quantity and range of content.
0016VRT <b>20</b> routes content provided by content sources <b>12</b> to a middleware processor <b>32</b> which controls a streaming server <b>34</b> which sends content to set-top box <b>40</b> for display by display <b>50</b>. Middleware <b>30</b> also includes a database <b>36</b> and a video on-demand (VOD) storage <b>38</b>. As described in greater detail below, VRT <b>20</b>, in particular embodiments, may receive content of a first type and/or format (shown diagrammatically in <figref idref="DRAWINGS">FIG. 1</figref> as original content <b>22</b><i>a</i>-<i>c</i>) and convert the content to an appropriate type and/or format for display by display <b>50</b> (shown diagrammatically in <figref idref="DRAWINGS">FIG. 1</figref> as displayable content <b>24</b>). It will be understood that content sources <b>12</b> may have a wide variety of forms and characteristics that are not compatible for transmission by streaming server <b>34</b>.
0017In converting content from the first type and/or format to the second type and/or format, VRT <b>20</b> modifies and changes original content <b>22</b> as required to enable it to be streamed by streaming server <b>34</b> for viewing on display <b>50</b>. In particular embodiments, VRT may transcode original content <b>22</b><i>a </i>received from content sources <b>12</b>. Specific non-limiting examples of such transcoding may found in “Digital Video Transcoding,” <i>Proceedings of the IEEE </i>(January 2005), Jun Xin, et al., which is incorporated herein by reference. More generally, however, VRT <b>20</b> may translate, transcode, transrate, encode, render, and/or process or otherwise modify received original content <b>22</b> in any appropriate manner to facilitate display by display <b>50</b>. Such manipulation of the data will be hereinafter termed and encompassed by the terms “processing,” “modifying” or “translating”. Furthermore, VRT <b>20</b> may include any appropriate combination of hardware and/or software suitable to provide the described functionality. The contents of a particular embodiment of VRT <b>20</b> are described in greater detail below with respect to <figref idref="DRAWINGS">FIGS. 2A and 2B</figref>.
0018Streaming server <b>34</b> receives displayable content <b>24</b> from VRT <b>20</b>, combines displayable content <b>24</b> with other content provided by streaming server <b>34</b>, and transmits displayable content <b>24</b> to display <b>50</b>. In particular embodiments, streaming server <b>34</b> is operated by cable television, satellite television, IPTV service providers or other type of television service provider, and VRT <b>20</b> transmits displayable content <b>24</b> to streaming server <b>34</b> as a video stream. Streaming server <b>34</b> may then provide displayable content <b>24</b> to display <b>50</b> as part of a video-on-demand (VOD) subscription service for viewing on particular types of display <b>50</b>, such as a television or portable communication devices. Streaming server <b>34</b> may additionally store on VOD storage <b>38</b> some or all of displayable content <b>24</b> received from VRT <b>20</b> for subsequent display by display <b>50</b>. Streaming server <b>34</b> may include any appropriate combination of hardware and/or software suitable to provide the described functionality.
0019Middleware <b>30</b> may comprise any one of a number of current commercial products such as those provided by Tandberg N2, Sea Change, Bit Band, Concurrent, Entone, Kasenna or Microsoft Corporation. Such commercial middleware products are used by satellite, cable, IPTV or other service providers to provide electronic program guide (EPG) services to the customers of the service providers. A common usage of such middleware products is thus to provide to TV viewers EPG displays of available TV channels for viewing, and then to obtain and transmit the selected TV channels for viewing in response to user requests. <figref idref="DRAWINGS">FIGS. 3-6</figref> illustrate examples of EPG displays that may be utilized in particular embodiments of system <b>10</b>.
0020Set-top box <b>40</b> receives displayable content <b>24</b> from VRT <b>20</b>, combines displayable content <b>24</b> with other content received by set-top box <b>40</b>, and displays displayable content <b>24</b> on display <b>50</b>. In particular embodiments, set-top box <b>40</b> may include storage media and appropriate control hardware, such as a digital video recorder (DVR), to allow user <b>60</b> to record selected portions of displayable content <b>24</b>. In particular embodiments, set-top box <b>40</b> may be co-located with display <b>50</b> and may operate as an alternative or a supplement to streaming server <b>34</b>. Set-top box <b>40</b> may include any appropriate combination of hardware and/or software to suitable to provide the described functionality.
0021Content sources <b>12</b><i>a</i>-<i>c </i>generate, store, and/or transmit original content <b>22</b><i>a</i>-<i>c </i>to VRT <b>20</b>. As noted above, content sources <b>12</b><i>a</i>-<i>c </i>may provide text, image, video, audio, and/or any other appropriate types of original content <b>22</b>. For purposes of example, the embodiment of system <b>10</b> shown in <figref idref="DRAWINGS">FIG. 1</figref> might include a first content photograph repository (content source <b>12</b><i>a</i>), a weblog provider (content source <b>12</b><i>b</i>), and video weblog (“vlog”) provider (content source <b>12</b><i>c</i>). In particular embodiments, content sources <b>12</b> represent web servers capable of serving original content <b>22</b> to users communicating with content sources <b>12</b> through the Internet. In such embodiments, content sources <b>12</b> may be configured to interact with VRT <b>20</b>, and other devices requesting content, using the Hypertext Transport Protocol (HTTP) or other protocol. In general, communication system <b>10</b> may include any appropriate combination of hardware and/or software suitable to provide the described functionality.
0022As noted, display <b>50</b> receives displayable content <b>24</b> from streaming server <b>34</b> and displays displayable content <b>24</b> to user <b>60</b>. Display <b>50</b> may represent any type of device appropriate to display the type of content being utilized in system <b>10</b>. Examples of display <b>50</b> may include, but are not limited to, televisions, computers, video-enabled telephones, media players (such as audio- and/or video-capable iPods) and portable communication devices. In general, however, display <b>50</b> may include any appropriate combination of hardware and/or software suitable to provide the described functionality. Additionally, although <figref idref="DRAWINGS">FIG. 1</figref> shows only a single display <b>50</b>, system <b>10</b> may include any appropriate number of displays <b>50</b> receiving displayable content <b>24</b> from VRT <b>20</b> or other content routers in system <b>10</b>.
0023Network <b>14</b> represents any form of communication network supporting circuit-switched, packet-based, and/or any other suitable type of communication and may comprise one or more separate networks. Links between VRT <b>20</b>, middleware <b>30</b> and set-top box <b>40</b> represent any appropriate communication links over which displayable content <b>24</b> may be transmitted. Network <b>14</b> and the illustrated links may include routers, hubs, switches, gateways, call controllers, and/or any other suitable component in any suitable form or arrangement. In general, network <b>14</b> may comprise any combination of public or private communication equipment such as elements of PSTN, a global computer network such as the Internet, a local area network (LAN), a wide-area network (WAN), or other appropriate communication equipment. In particular embodiments, network <b>14</b> comprises all or a portion of the Internet and content sources <b>12</b> communicate with VRT <b>20</b> using packet-based communication protocols.
0024Links between the VRT <b>20</b>, middleware <b>30</b> and set-top box <b>40</b> represent any appropriate form of communication links over which displayable content <b>24</b> may be transmitted. In particular embodiments, such device links may represent wireless communication links and any appropriate transmitters suitable for communicating displayable content <b>24</b> to display <b>50</b>. As a result, display <b>50</b> may represent a portable communication such as a video-enabled mobile telephone.
0025Although <figref idref="DRAWINGS">FIG. 1</figref> illustrates a particular embodiment of system <b>10</b> that includes a particular number and arrangement of each component, system <b>10</b> may include any appropriate number of VRTs <b>20</b>, streaming servers <b>34</b>, set-top boxes <b>40</b>, and displays <b>50</b>. For example, in particular embodiments, system <b>10</b> may include multiple displays <b>50</b> all receiving displayable content <b>24</b> simultaneously from streaming server <b>34</b>. Additionally, in particular embodiments, VRT <b>20</b> may supply displayable content <b>24</b> to multiple different vendors, with each vendor operating one or more streaming servers <b>34</b> to provide displayable content <b>24</b> to its respective customers. Moreover, although the description below focuses on the operation of a particular embodiment of system <b>10</b> that utilizes a centrally-located streaming server <b>34</b> to provide content from VRT <b>20</b> to one or more displays <b>50</b>, particular embodiments of system <b>10</b> may include set-top boxes <b>40</b> that are capable of providing, at the premise of user <b>60</b>, similar functionality to that provided by streaming server <b>34</b> in the description that follows. As a result, particular embodiments of system <b>10</b> may include either or both of streaming server <b>34</b> and set-top box <b>40</b>.
0026In operation, video router translator (VRT) <b>20</b> requests original content <b>22</b> from one or more content sources <b>12</b> for user <b>60</b> of display <b>50</b>. VRT <b>20</b> may be configured to periodically request original content <b>22</b> from particular content sources <b>12</b>. Additionally, as described further below, user <b>60</b> may provide configuration information and/or other input to control the content sources <b>12</b> from which VRT <b>20</b> requests original content <b>22</b> and/or the particular original content <b>22</b> requests from particular content sources. In particular embodiments, VRT <b>20</b> may operate as an HTTP client and may use HTTP requests to request original content <b>22</b> from content sources <b>12</b>. More generally, however, VRT <b>20</b> may utilize any suitable technique for requesting original content <b>22</b>. Furthermore, VRT <b>20</b> may receive original content <b>22</b> of any appropriate type and/or format including, but not limited to, text-based content such as Really Simple Syndication (RSS) feeds, extensible Markup Language (XML) or HyperText Markup Language (HTML) files; image data such as Joint Photographic Experts Group (JPEG) or Tagged Image File Format (TIFF) files; video content such as Moving Picture Experts Group (MPEG) or Windows Media Video (WMV); and/or audio content such as Waveform audio (WAV), MPEG-1 Audio Layer 3 (MP3), and/or Windows Media Audio (WMA) files or streams; and/or content of any other appropriate type or format from content sources <b>12</b>. For example, a particular embodiment of VRT <b>20</b> may be specifically configured to receive original content <b>22</b> in any of Microsoft DV, Video for Windows, DirectShow, QuickTime, MPEG-2, MPEG-4, Windows Media, DivX, MP3, PCM WAV, AVISynth script, Audio Compression Manager (ACM), Macromedia Flash, RealVideo, VOB (DVD-Video image), Windows bitmap (BMP), TGA, TIFF, Portable Network Graphics (PNG), and JPEG for processing, modifying or converting to and output as one or more of an MPEG-2, MPEG-4, or SDI-encoded video stream.
0027After receiving the requested original content <b>22</b>, since the content <b>22</b> may be in any one of a number of different types or formats and have any of a number of different speeds, codings, or technical characteristics, VRT <b>20</b> processes or modifies the content in any suitable manner to enable and facilitate display of information contained in original content <b>22</b> by display <b>50</b>. This processing may include translating, transcoding, transrating, encoding, rendering, and/or otherwise modifying the bit rate, the frame rate, the resolution, the coding standard, informational content, and/or other suitable characteristics of the received original content <b>22</b> in any appropriate manner to facilitate transmission to and/or display by display <b>50</b>.
0028The result of this processing, displayable content <b>24</b>, is then transmitted to streaming server <b>34</b> or to set-top box <b>40</b>. Because VRT <b>20</b> is capable of outputting displayable content in an appropriate format, based on the configuration and capabilities of streaming server <b>34</b>, displayable content <b>24</b> may be substantially similar in form to other conventional inputs, such as a satellite or broadcast feed, received by streaming server <b>34</b>. As a result, in particular embodiments, system <b>10</b> may be overlain on conventional content-provision systems, thereby reducing the cost and difficulty associated with implementing the described functionality.
0029As one example, system <b>10</b> may include content sources <b>12</b>, such as content source <b>12</b><i>a </i>in <figref idref="DRAWINGS">FIG. 1</figref>, that represent image repositories capable of storing digital photographs as JPEG files. User <b>60</b> may identify an account and password to VRT <b>20</b>, and VRT <b>20</b> may request from content source <b>12</b><i>a </i>photographs associated with a particular account maintained by content sources <b>12</b><i>a</i>. VRT <b>20</b> may then render the JPEG files to produce a video stream suitable for display on a display <b>50</b>, such as a TV or video telephone. Thus, in certain embodiments, VRT <b>20</b> may receive original content <b>22</b> as JPEG files and generate displayable content <b>24</b> as an MPEG video stream appropriate for viewing on display <b>50</b>.
0030As another example, system <b>10</b> may include content sources <b>12</b>, such as content source <b>12</b><i>c </i>in <figref idref="DRAWINGS">FIG. 1</figref>, that represent video weblog hosts capable of providing video content that is updated on a regular basis. This video content may be linked to an RSS stream that may also include supporting text, image, and additional meta data to provide context for the video content. VRT <b>20</b> may access the linked video content, perform any appropriate processing on the video content, and provide the processed video content to streaming server <b>34</b>. For example, in particular embodiments, the video weblog host may provide content in a particular video format unsuitable for particular types of display <b>50</b> such as TVs, mobile telephones and other portable communication devices. As a result, VRT <b>20</b> may transcode and transrate original content <b>22</b> to generate displayable content <b>24</b> having a different encoding and transmission rate to streaming server <b>34</b>, so that the video weblog may be viewed at display <b>50</b>
0031Additionally, VRT <b>20</b> may, in particular embodiments, store advertisements, system announcements, and/or other suitable information in memory. VRT <b>20</b> may incorporate this information into displayable content <b>24</b> that is transmitted to middleware <b>30</b>. As a result, in such embodiments, VRT <b>20</b> may add advertisements, announcements, or other suitable information to displayable content <b>24</b> before transmitting displayable content <b>24</b> to middleware <b>30</b>.
0032After VRT <b>20</b> transmits displayable content <b>24</b> to streaming server <b>34</b>, streaming server <b>34</b> may combine displayable content <b>24</b> with other content to be provided to user <b>60</b> based on the services provided by the operator of streaming server <b>34</b>. For example, in particular embodiments, streaming server <b>34</b> may be operated by a cable television service provider and displayable content <b>24</b> may be combined with other channels including content from broadcast television channels and other conventional cable television channels. As a result, in particular embodiments, displayable content <b>24</b> may be available on one or more predetermined channels from among the channels offered by this service provider, as will more fully be described with respect to <figref idref="DRAWINGS">FIGS. 4-7</figref>.
0033Additionally, particular embodiments of VRT <b>20</b> may be configured to allow user <b>60</b> to configure displayable content <b>24</b> from multiple content sources <b>12</b> to be displayed on display <b>50</b> simultaneously. For example, in particular embodiments, user <b>60</b> may identify to VRT <b>20</b> four content sources <b>12</b> (or any appropriate number of content sources <b>12</b>) to be simultaneously displayed. VRT <b>20</b> may then be able to combine displayable content <b>24</b> from these multiple content sources <b>12</b> and transmit a combined stream to display <b>50</b>. As a result, in such an embodiment, display <b>50</b> may simultaneously show displayable content <b>24</b> received from each of the four content sources <b>12</b> in a separate quadrant of a screen of display <b>50</b>. As discussed in greater detail below, <figref idref="DRAWINGS">FIG. 8</figref> illustrates an example system configured to provide such functionality.
0034In particular embodiments, streaming server <b>34</b> may also add programming and/or scheduling information to displayable content <b>24</b> that provides user <b>60</b> with such information. Furthermore, as noted above, streaming server <b>34</b> may also be configured to present displayable content <b>24</b> to user <b>60</b> as part of a video on-demand (VOD) service. As a result, streaming server <b>34</b> may be configured to transmit programming information for displayable content <b>24</b> on a first predetermined channel indicating the availability of displayable content <b>24</b> from various content sources <b>12</b> accessible by VRT <b>20</b>. User <b>60</b> may then be able to select a particular content source <b>12</b> from which to view displayable content <b>24</b>, as shown more fully in <figref idref="DRAWINGS">FIGS. 4-7</figref>. Streaming server <b>34</b> may then transmit to display <b>50</b> displayable content <b>24</b> from the requested content source <b>12</b> on the predetermined channel in which the programming information is being displayed or on another predetermined channel.
0035In addition, in particular embodiments, user <b>60</b> may control certain aspects of the operation of VRT <b>20</b> and/or streaming server <b>34</b> by providing input to display <b>50</b> or input devices associated with display <b>50</b>. As one example, user <b>60</b> may provide input identifying particular content sources <b>12</b> from which user <b>60</b> would like to receive displayable content <b>12</b>. As another example, user <b>60</b> may provide input selecting particular displayable content <b>24</b> of a content source <b>12</b> for display. For example, returning to the photo repository example, user <b>60</b> may provide input to select, from among multiple folders available on the photo repository, a folder from which to view displayable content <b>24</b>. As yet another example, user <b>60</b> may provide a user name and/or password to identify an account maintained by a particular content source <b>12</b> and associated with user <b>60</b>. VRT <b>20</b> may use this information to access user-specific original content <b>22</b> maintained by that content source <b>12</b>.
0036In particular embodiments, streaming server <b>34</b> and/or VRT <b>20</b> may be configured to allow user <b>60</b> to control operation using input devices that are standard for display <b>50</b>, such as a television remote that allows input of alphanumeric characters. Thus, as noted above, VRT <b>20</b> may be overlain on existing content-provision systems, thereby reducing the expense and difficulty of installing system <b>10</b>. In general, however, streaming server <b>34</b> and/or VRT <b>20</b> may be configured to receive user input from user <b>60</b> in any appropriate manner using any appropriate input devices.
0037Although the description above focuses, for the purposes of illustration, on the operation of an embodiment of system <b>10</b> in which VRT <b>20</b> transmits displayable content <b>24</b> to display <b>50</b> via streaming server <b>34</b>, in particular embodiments, VRT <b>20</b> may be configured to alternatively or additionally transmit displayable content <b>24</b> to display <b>50</b> through set-top box <b>40</b> or another type of device co-located with display <b>50</b>. In such embodiment, set-top box <b>40</b> may be responsible for receiving displayable content <b>24</b> from VRT <b>20</b>, for example as a video stream, and combining displayable content <b>24</b> with other content received by set-top box <b>40</b>, such as cable or satellite television inputs, and/or with programming information associated with displayable content <b>24</b>. Additionally, in such embodiments, set-top box <b>40</b> may be responsible for receiving user input from user <b>60</b>, including source selection information, and transmitting the user input to VRT <b>20</b>. In such embodiments, streaming server <b>34</b> may be omitted from system <b>10</b> entirely.
0038As a result, in particular embodiments, VRT <b>20</b> offers a flexible, customizable system for providing various types of content to user <b>60</b> of display <b>50</b>. Moreover, in particular embodiments, VRT <b>20</b> can be installed in existing systems, thereby providing an inexpensive way to significantly increase the amount and variety of content available to user <b>60</b>. Consequently, particular embodiments of system <b>10</b> may provide multiple operational benefits. Nonetheless, specific individual embodiments may provide some, none, or all of these benefits.
0039<figref idref="DRAWINGS">FIGS. 2A and 2B</figref> illustrate collectively the contents and operation of a particular embodiment of video router translator (VRT) <b>20</b> and example content sources <b>12</b> and displays <b>50</b>. As shown in <figref idref="DRAWINGS">FIG. 2A</figref>, VRT <b>20</b> includes a processor <b>200</b> and a memory <b>210</b>. Additionally, VRT <b>20</b>, in the illustrated embodiment, contains multiple functional modules including a source monitoring module <b>212</b>, a format database module <b>214</b>, a source interface module <b>220</b>, a routing module <b>230</b>, a transcoding/transrating module <b>240</b>, a rendering module <b>250</b>, a buffering module <b>260</b>, an authentication module <b>270</b>, a configuration interface module <b>280</b>, and a server interface module <b>290</b>.
0040Furthermore, certain of these functional modules are divided between a control plane <b>206</b> and a data plane <b>208</b>. Control plane <b>206</b> is responsible for maintaining information on content sources <b>12</b> accessible by VRT and the codecs, formats, and protocols, supported by VRT <b>20</b>, while data plane <b>208</b> is responsible for processing original content <b>22</b> received by VRT <b>20</b> to generate displayable content <b>24</b>. As a result, particular embodiments of VRT <b>20</b> may be configured to support dynamic translating of original content <b>22</b> instead of being limited to static translation of predetermined formats or types of original content <b>22</b>. Moreover, in particular embodiments, control plane <b>206</b> may continuously sweep the Internet for content sources <b>12</b> and may determine the directory structure and appropriate characteristics of content provided by discovered content sources <b>12</b>, such as the types of content provided by these content sources <b>12</b>, and the codecs, file sizes, and/or bit rates associated with this content. As described in greater detail below, information describing the directory structure and appropriate characteristics of the content to be provided by the discovered content source <b>12</b> may then be stored by VRT <b>20</b>. When user <b>60</b> subsequently requests content from a particular content source <b>12</b> for a particular display <b>50</b>, control plane <b>206</b> may then identify an appropriate algorithm for modifying content from the requested content source <b>12</b> for transmission to the requested display <b>50</b> based, in part, on information stored by VRT <b>20</b> describing the relevant content source <b>12</b> and/or display <b>50</b>. Control plane <b>206</b> may then instruct data plane <b>208</b> to load the identified algorithm and to translate or modify the requested content to the desired format. Once the requested content has been modified, control plane <b>206</b> may repeat this process, instructing data plane <b>208</b> to load different algorithms, as appropriate, for each subsequent request for content. As a result of this dynamic or continuous changing of the translating algorithm, particular embodiments of VRT <b>20</b> may provide a number of benefits over static translators that are dedicated to translation of content having a particular predetermined format.
0041Returning now to <figref idref="DRAWINGS">FIG. 2A</figref>, numerous example content sources <b>12</b> are also shown including static web pages <b>201</b>, Really Simple Syndication (RSS) feed streams <b>202</b>, combined web pages, video, and audio content <b>203</b>, video content <b>204</b> and other video/data sources <b>205</b>. Meanwhile, <figref idref="DRAWINGS">FIG. 2B</figref> illustrates a variety of different displays <b>50</b> arranged in different example configuration, including televisions <b>50</b><i>a </i>and <b>50</b><i>c</i>, mobile phone <b>50</b><i>b</i>, and portable media player <b>50</b><i>d</i>, and related equipment for providing content to the illustrated displays <b>50</b>. In this example embodiment of VRT <b>20</b>, all of these content sources <b>12</b>, each different in format, data size, speed and other characteristics, are available for input into VRT <b>20</b> to be processed and modified into a form suitable for viewing on any of the illustrated displays <b>50</b>. Although <figref idref="DRAWINGS">FIG. 2</figref> illustrates a particular number and type of content sources <b>12</b> and displays <b>50</b>, as noted above, system <b>10</b> may include any appropriate number, type, and configuration of content sources <b>12</b> and displays <b>50</b>.
0042Turning to the contents of VRT <b>20</b>, processor <b>200</b> may be a general purpose computer, dedicated microprocessor, or other processing device capable of communicating electronic information. Examples of processor <b>200</b> include application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), digital signal processors (DSPs) and any other suitable specific or general purpose processors. Although <figref idref="DRAWINGS">FIG. 2A</figref> illustrates a particular embodiment of VRT <b>20</b> that includes a single processor <b>200</b>, VRT <b>20</b> may, in general, include any suitable number of processors <b>200</b>. In particular embodiments of VRT <b>20</b>, processor <b>200</b> may represent an Opteron quad motherboard that includes four x86 or specialty video-processing microprocessors and four Gigabyte Ethernet (GigE) ports. Configured in this manner, a particular example of VRT <b>20</b> may support <b>300</b> outgoing MPEG-2 streams to various users <b>60</b>.
0043Memory <b>210</b> stores original content <b>22</b> and displayable content <b>24</b> during processing, instructions for processor <b>200</b>, configuration parameters for VRT <b>20</b>, and/or any other appropriate information to be used by VRT <b>20</b> during operation. In particular embodiments, memory <b>210</b> may also store advertisements, system announcements, and other appropriate information to be added to displayable content <b>24</b>. Memory <b>210</b> may comprise any collection and arrangement of volatile or non-volatile, local or remote devices suitable for storing data, such as for example random access memory (RAM) devices, read only memory (ROM) devices, magnetic storage devices, optical storage devices, or any other suitable data storage devices.
0044Source monitoring module <b>212</b> discovers content sources <b>12</b> available on network <b>14</b>. Depending on the configuration of VRT <b>20</b>, source monitoring module <b>212</b> may discover content sources <b>12</b> by polling devices operating on network <b>14</b> through source interface module <b>220</b>, receiving information identifying available content sources <b>12</b> through configuration interface module <b>280</b>, and/or executing any other appropriate steps. In particular embodiments, source monitoring module <b>212</b> may store information identifying or describing discovered content sources <b>12</b> (shown in <figref idref="DRAWINGS">FIG. 2A</figref> as source data <b>216</b>) in memory <b>210</b>. Additionally, source monitoring module <b>212</b> may store information describing formats, protocols, and/or other characteristics of original content <b>22</b> available from discovered content sources <b>12</b> to be used to determine appropriate steps for translating original content <b>22</b> to displayable content <b>24</b> suitable for transmission to and display by display <b>50</b>.
0045Format database module <b>214</b> maintains information identifying appropriate techniques for translating original content <b>22</b>. For example, in particular embodiments, format database module <b>214</b> may maintain algorithms for converting original content <b>22</b> of a particular first format to displayable content <b>24</b> of a particular second format appropriate for transmission to and display by display <b>50</b>. Thus, in particular embodiments, source monitoring module <b>212</b> may determine the format associated with original content <b>22</b> to be received from a particular content source <b>12</b> and, based on the determined format, format database module <b>214</b> may determine appropriate steps for translating original content <b>22</b> from the relevant source to an appropriate format for transmission to and display by a requesting display <b>50</b>. Appropriate components of data plane <b>208</b> may then translate original content <b>22</b> from a first format to a second format compatible with transmission to and display by display <b>50</b>.
0046Source interface module <b>220</b> facilitates communication between VRT <b>20</b> and content sources <b>12</b>. Source interface module <b>220</b> may include components capable of supporting communication between VRT <b>20</b> and network <b>14</b>, in general, such as a Network Interface Card (NIC). Additionally, source interface module <b>220</b> may include components configured to specifically interact with content sources <b>12</b>. For example, in particular embodiments, source interface module <b>220</b> may include components responsible for adding a header to XML pages included in RSS feeds received from <b>202</b> by VRT <b>20</b>. In particular embodiments, source interface module <b>220</b> may represent, in part, an application programming interface (API) through which VRT <b>20</b> receives content source data.
0047Routing module <b>230</b> identifies appropriate content sources <b>12</b> for VRT <b>20</b> to communicate with and prepares data for communication to the relevant content sources <b>12</b>. In particular embodiments, routing module <b>230</b> may maintain address information for content sources <b>12</b> and may be responsible for determining addresses for content sources <b>12</b> from which routing module <b>230</b> requests original content <b>22</b>. Additionally, routing module <b>230</b> may be responsible for packetizing, framing, or otherwise segmenting requests and other information to be transmitted to content sources <b>12</b>. In particular embodiments, VRT <b>20</b> may utilize Multiprotocol Label Switching (MPLS) for communication with content sources <b>12</b>, and routing module <b>230</b> may be capable of adding MPLS labels to information for transmission to content sources <b>12</b>.
0048Transcoding/transrating module <b>240</b> processes original content <b>22</b> to produce displayable content <b>24</b>. Transcoding/transrating module <b>240</b> may perform a variety of different processing functions based on the format of the relevant original content <b>22</b> and the capabilities of the requesting display <b>50</b>. In particular embodiments, transcoding/transrating module <b>240</b> may be responsible for transcoding original content <b>22</b> from a first encoding format to a second encoding format appropriate for display on the relevant displays <b>50</b>. Similarly, in particular embodiments, transcoding/transrating module <b>240</b> may be responsible for transrating original content from a first transmission rate to a second transmission rate appropriate for display and/or transmission to display <b>50</b>. More generally, although referred to as a “transcoding/transrating” module, transcoding/transrating module <b>240</b> may be responsible for providing any processing operations appropriate for transforming original content <b>22</b> to a format appropriate for displayable content <b>24</b>. For example, in particular embodiments, transcoding/transrating module <b>240</b> may be responsible for performing various types of video and/or audio filtering on content processed by transcoding/transrating module <b>240</b>. Transcoding/transrating module <b>240</b> may also add advertisements, announcements, and other additional information to displayable content <b>24</b> before displayable content <b>24</b> is transmitted to middleware <b>30</b>.
0049In particular embodiments, the processing performed by transcoding/transrating module <b>240</b> is performed realtime. Additionally, VRT <b>20</b> may be configured so that the processing performed by transcoding/transrating module <b>240</b> on a particular stream of original content <b>22</b> may be completed and the processed original content <b>22</b> may be stored in VOD storage <b>38</b> until requested by user <b>60</b>. Moreover, in particular embodiments, VRT <b>20</b> may determine, based on the frequency with which original content <b>22</b> from a particular content source <b>12</b> is requested, whether to process the relevant original content <b>30</b> realtime in response to requests or to process and store the original content <b>30</b> for subsequent requests. For example, after particular original content <b>22</b> has been requested by a threshold number of users, transcoding/transrating module <b>240</b> may process the relevant original content <b>22</b> and store the resulting displayable content <b>24</b> in memory <b>210</b>, and VRT <b>20</b> may used the stored displayable content <b>24</b> to respond to subsequent requests for that displayable content <b>24</b>. Consequently, particular embodiments of VRT <b>20</b> may optimize use of routing and/or processing resources in system <b>10</b>.
0050Rendering module <b>250</b>, when appropriate, renders text and static images in original content <b>22</b> as a video stream appropriate for display on a video-capable display <b>50</b><i>a</i>-<i>d</i>. As a result, text and static images, such as digital photographs, may be accessed by VRT <b>20</b> and provided as a conventional input to a video-capable display <b>50</b><i>a</i>-<i>d</i>. Rendering module <b>250</b> may use any appropriate techniques for rendering the video stream that is output as displayable content <b>24</b>.
0051Buffering module <b>260</b> stores original content <b>22</b> prior to processing by transcoding/transrating module <b>240</b> and rendering module <b>250</b>. As a result, buffering module <b>260</b> allows text files and static images to be properly arranged and spaced within the stream of displayable content <b>24</b> generated by transcoding/transrating module <b>240</b> and rendering module <b>250</b>. Additionally, buffering module <b>260</b> may store displayable content prior to transmission to streaming server <b>40</b> or set-top box <b>70</b>. Buffering module <b>260</b> may include all or a portion of memory <b>210</b>.
0052Authentication module <b>270</b> interacts with content sources <b>12</b> to authenticate the identity of VRT <b>20</b> and/or a user <b>60</b> currently being served by VRT <b>20</b>. In particular embodiments, authentication module <b>270</b> may store passwords associated with access to various content sources <b>12</b> in a password database maintained in memory <b>210</b>. Authentication module <b>270</b> may transmit those passwords to appropriate content sources <b>12</b> to authorize access to original content <b>22</b> provided by those content sources.
0053Additionally, in particular embodiments, content sources <b>12</b> may be configured to provide specialized original content <b>22</b> to VRT <b>20</b> that differs from that provided to users requesting original content <b>22</b> from those content sources <b>12</b> through other techniques. For example, in particular embodiments, a particular content source <b>12</b> may make multiple copies of a particular encoded video segment having different transmission rates available to users accessing content sources <b>12</b> directly through personal computers <b>282</b>. The content source <b>12</b> in question may additionally maintain a copy of the video segment in its original form that content source <b>12</b> does not otherwise provide to users, but that content source <b>12</b> may make available to VRT <b>20</b>. As a result, VRT <b>20</b> may be able to provide user <b>60</b> with higher-quality video stream than user <b>60</b> would view by accessing one of the encoded copies of the video segment through PC <b>282</b>. In such an embodiment, authentication module <b>270</b> may be responsible for interacting with the relevant content source <b>12</b> to indicate to that content source <b>12</b> that VRT <b>20</b> is, in fact, a content router, and that content source <b>12</b> should respond to requests from VRT <b>20</b> with the appropriate version of original content <b>22</b>.
0054Configuration interface module <b>280</b> allows an operator of VRT <b>20</b> to configure VRT <b>20</b>. Configuration interface module <b>280</b> may include any appropriate components to allow the operator to input information associated with the configuration of VRT <b>20</b>. Configuration information input through configuration interface module <b>280</b> may be stored in memory <b>210</b>.
0055In particular embodiments, VRT <b>20</b>, when properly configured may be capable of operating with any of a number of different types of streaming servers <b>34</b>. As a result, VRT <b>20</b> may store one or more configuration profiles <b>222</b> each associated with a particular vendor and/or model of streaming server <b>34</b>. Each configuration profile <b>222</b> contains information defining appropriate configuration parameters for the associated vendor and/or model. During installation or at any appropriate time during operation, the operator may select one or more of these configuration profiles <b>222</b> based on the vendor and/or model for the streaming server <b>34</b> with which VRT <b>20</b> is currently operating.
0056Server interface module <b>290</b> facilitates communication between VRT <b>20</b> and streaming server <b>34</b>. In particular embodiments, server interface module <b>290</b> receives requests from streaming server <b>34</b> and other information transmitted by user <b>60</b> to VRT <b>20</b>. Although <figref idref="DRAWINGS">FIG. 2A</figref> illustrates a particular embodiment of VRT <b>20</b> configured to operate with streaming server <b>34</b>, alternative embodiments of VRT <b>20</b> may be configured to operate with set-top box <b>40</b>. As a result, particular embodiments of VRT <b>20</b> may include, in addition to or instead of server interface module <b>290</b>, a set-top interface module capable of facilitating communication between VRT <b>20</b> and set-top box <b>40</b>.
0057Each of source interface module <b>210</b>, routing module <b>220</b>, transcoding/transrating module <b>230</b>, rendering module <b>240</b>, buffering module <b>250</b>, authentication module <b>260</b>, and configuration interface module <b>270</b> may comprise any appropriate combination of hardware and/or software suitable to provide the described functionality. Additionally, any two or more of the described modules may represent or include, in part or in whole, shared components. As one example, in particular embodiments, each of the modules represents, in part, a software process running on processor <b>200</b> as a result of processor <b>200</b> executing processor instructions stored in memory <b>210</b>. Moreover, in particular embodiments, control plane <b>206</b> represents, in part or in whole, an application server operating on VRT <b>20</b>.
0058In addition to the contents of VRT <b>20</b>, <figref idref="DRAWINGS">FIGS. 2A and 2B</figref> illustrate a variety of different display configurations <b>90</b><i>a</i>-<i>d</i>. Each display configuration <b>90</b> includes a display <b>50</b> and additional equipment to facilitate transmission of displayable content <b>24</b> to that particular display <b>50</b>. For example, display configuration <b>90</b><i>a </i>illustrates a system that may be overlaid on an existing television system and includes middleware <b>30</b> and set-top box <b>40</b> operated by television signal provider <b>284</b> for providing displayable content <b>24</b> to television <b>50</b><i>a</i>. By adding VRT <b>20</b> to an existing set of middleware <b>30</b> and set-top box <b>40</b>, a provider of conventional television content such as a cable multi-service operator (MSO), telecommunication service provider, satellite television service provider, or Internet Protocol television (IPTV) service provider may provide subscribers with access to displayable content <b>24</b> provided by Internet-based content sources <b>12</b> through television <b>50</b><i>a. </i>
0059Additionally, user <b>60</b> may utilize PC <b>282</b> to configure an account maintained by television signal provider <b>284</b> that is associated with user <b>60</b>. For example, user <b>60</b> may use PC <b>282</b> to enter an ID and/or password to be used to access specific content maintained by one of content sources <b>12</b>, to select a particular content source <b>12</b> from which to request original content <b>22</b>, to set display preferences for displayable content <b>24</b> to be provided to user <b>60</b>, and/or to control any other appropriate aspect of the operation of VRT <b>20</b>. Furthermore, user <b>60</b> may also use VOD storage <b>38</b> to store displayable content <b>24</b> provided by VRT <b>20</b>.
0060Similarly, display configuration <b>90</b><i>b </i>illustrates a system that may be overlaid on an existing mobile communication system and includes an Internet Management System (IMS) application server <b>288</b> and a mobile network <b>292</b> operated by mobile communications provider <b>286</b> to provide displayable content <b>24</b> to a mobile phone <b>50</b><i>b</i>. By adding VRT <b>20</b> to an existing IMS server <b>288</b> and mobile network <b>292</b>, a mobile-communication service provider may provide user <b>60</b> with access to displayable content <b>24</b> provided by Internet-based content sources <b>12</b> through mobile phone <b>50</b><i>b</i>. As a result, particular embodiments of system <b>10</b> may provide an easy solution for offering Internet-based displayable content <b>24</b> to users <b>60</b> of an existing mobile communication system.
0061Meanwhile, display configuration <b>90</b><i>c </i>illustrates a system in which television media outlet <b>295</b> may choose to access displayable content <b>24</b> provided by search engine provider <b>294</b> and incorporate this displayable content <b>24</b> into content television media outlet <b>295</b> is providing to user <b>60</b>. As one specific example, television media outlet <b>295</b> may represent a broadcast television network that chooses to access video content that is streamed from NASA TV and provided to television media outlet <b>296</b> by Google and to incorporate that video content into its broadcast television feed. This broadcast feed may then be transmitted to user <b>60</b> to be viewed on television <b>50</b><i>c. </i>
0062Also shown in <figref idref="DRAWINGS">FIG. 2B</figref> is display configuration <b>90</b><i>d</i>, which includes content server <b>297</b> operated by third-party media provider <b>296</b> for providing displayable content <b>24</b> to portable media player <b>50</b><i>d </i>through internet <b>298</b> and PC <b>299</b>. Display configuration <b>90</b><i>d </i>illustrates a system in which user <b>60</b> can access content collected from one or more content sources <b>12</b> by a third-party content provider <b>296</b> and stored on content server <b>297</b>. Third-party content provider <b>296</b> may offer any appropriate selection of content derived from content sources <b>12</b>. In particular embodiments, the content offered on content server <b>297</b> may include specific types of content, content for specific users <b>60</b>, and/or content selected based on any other suitable characteristic or criteria. In the illustrated example, third-party content provider <b>296</b> offers content appropriate for viewing on a particular type of display <b>50</b>, such as portable media player <b>50</b><i>d</i>. In this example, portable media player <b>50</b><i>d </i>may represent any portable device, such as a video-enabled iPod, capable of displaying particular types of stored and/or received digital media. As a result, user <b>60</b> may access content server <b>297</b> through Internet <b>298</b> using PC <b>299</b> and download displayable content <b>24</b> to portable media player <b>50</b><i>d. </i>
0063Thus, as noted above, VRT <b>20</b> may be configured to receive original content <b>22</b> from multiple different content sources <b>12</b> that provide content in a variety of different formats. Furthermore, VRT <b>20</b> may process this received original content <b>22</b> to make original content <b>22</b> compatible with transmission to any number of different types of display <b>50</b> that are configured to receive displayable content <b>24</b> in any appropriate manner. As a result, VRT <b>20</b> may significantly increase the number and variety of content sources <b>12</b> that a user <b>60</b> of a particular display <b>50</b> can access.
0064<figref idref="DRAWINGS">FIGS. 3-6</figref> illustrate an example electronic programming guide (EPG) <b>300</b> and associated title lists <b>400</b>-<b>600</b> that may be displayed by display <b>50</b> in particular embodiments of system <b>10</b>. As noted above, particular embodiments of display <b>50</b> may be configured to receive and display scheduling information from appropriately configured VRTs <b>20</b> and/or streaming servers <b>34</b> to facilitate the selection of on-demand content by user <b>60</b>. The EPG illustrated by <figref idref="DRAWINGS">FIGS. 3-6</figref> is one example of how such scheduling information may be structured and displayed by particular displays <b>50</b>. Alternative embodiments of system <b>10</b> may utilize an EPG structured or displayed in any other appropriate manner.
0065In particular embodiments, VRT <b>20</b> may populate a conventional VOD database of streaming server <b>34</b> based on information collected by VRT <b>20</b>. Thus, particular embodiments of streaming server <b>34</b> may generate EPG <b>300</b> for use by user <b>60</b> that utilizes scheduling information stored in the VOD system. As a result, particular embodiments of VRT <b>20</b> may be utilized in system <b>10</b> to populate a conventional VOD system with little or no modification to the VOD system. Thus, particular embodiments of VRT <b>20</b> may be easily incorporated into existing content-delivery systems to allow transmission of displayable content <b>24</b> to display <b>50</b> in conjunction with conventional video-on-demand content as shown in <figref idref="DRAWINGS">FIGS. 3-6</figref>.
0066<figref idref="DRAWINGS">FIG. 3</figref> illustrates EPG <b>300</b> that shows certain programming options offered by middleware <b>30</b>. EPG <b>300</b> is, for example, displayed on a display <b>50</b> for viewing and selection by a user <b>60</b>. In the illustrated example, the service provider operating middleware <b>30</b> offers multiple channels for viewing and selection by user <b>60</b> and each channel is represented in EPG <b>300</b> by a channel entry <b>310</b>. For certain channels with predetermined programming schedules (such as channels associated with channel entries <b>310</b><i>a</i>-<i>e</i>), the corresponding channel entries <b>310</b> may include one or more time fields <b>320</b> providing programming information specific to the relevant time periods. User <b>60</b> may utilize user interface components associated with display <b>50</b>, such as a television remote control, to navigate and select the programming information provided in EPG <b>300</b>. In particular, user <b>60</b> may utilize these user interface components to indicate to display <b>50</b> and/or middleware <b>30</b> the selection of a particular channel entry <b>310</b> or time field <b>320</b>.
0067In the illustrated embodiment, EPG <b>300</b> includes three channel entries <b>310</b>, channel entries <b>310</b><i>f</i>-<i>h</i>, associated with displayable content <b>24</b> presented as part of video-on-demand (VOD) service. By selecting one of the channel entries <b>310</b> associated with displayable content <b>12</b>, user <b>60</b> will cause display <b>50</b> to transmit a request to streaming server <b>34</b> to request VOD information associated with the selected channel entry <b>310</b>. Streaming server <b>34</b> may then transmit a list of content sources <b>12</b> associated with the selected channel entry <b>310</b> to display <b>50</b>. In particular embodiments, a conventional VOD database may be populated with one or more such lists of content sources <b>12</b> and streaming server <b>34</b> may retrieve an appropriate title list in response to a request from user <b>60</b>. Display <b>50</b> may then display the retrieved title list to user <b>60</b>. Selection of channel entries <b>310</b><i>a</i>-<i>e </i>will result in conventional TV channels being displayed on TV <b>50</b>. <figref idref="DRAWINGS">FIGS. 4-6</figref> illustrate the display of example scheduling information by display <b>50</b> in response to selection of channel entries <b>310</b><i>f</i>-<i>h </i>respectively.
0068<figref idref="DRAWINGS">FIG. 4</figref> illustrates an example of a title list <b>400</b> that is transmitted to display <b>50</b> in response to user <b>60</b> selecting channel entry <b>310</b><i>f </i>in EPG <b>300</b> of <figref idref="DRAWINGS">FIG. 3</figref>. Title list <b>400</b> is a list of content sources <b>12</b> accessible by VRT <b>20</b> and associated with a plurality of on-demand RSS feeds from predetermined content sources <b>12</b> selected for presentation by the operator of middleware <b>30</b>. User <b>60</b> may choose to receive displayable content <b>24</b> from a particular content source <b>12</b> in title list <b>400</b> by selecting a particular title entry <b>410</b> in title list <b>400</b>. One important aspect of the invention is the ability to display content from title list <b>400</b> that would not be able to be received and displayed by display <b>50</b> in a conventional system because of the incompatible formats of the desired content.
0069In particular embodiments, these content sources <b>12</b> may represent content sources <b>12</b> that specifically require authentication and/or predetermined customized translation. For example, content sources <b>12</b> in title list <b>400</b> may require rendering of still photos into a video format or the transmission of a specific password. In particular embodiments, control plane <b>206</b> of VRT <b>20</b> may collect information specifying the codec and/or format used by content sources <b>12</b> included in title list <b>400</b> and/or other additional information related to communication with these content sources <b>12</b>. As a result, VRT <b>20</b> may maintain a predetermined list of content sources <b>12</b> (such as title list <b>400</b>) that includes particular content sources <b>12</b> that are specifically selected by the operator for presentation to users <b>60</b> or for which VRT <b>20</b> possesses appropriate translation or authentication information.
0070<figref idref="DRAWINGS">FIG. 5</figref> illustrates an example of a title list <b>500</b> that may be transmitted to and viewed on display <b>50</b> in response to user <b>60</b> selecting channel entry <b>310</b><i>g </i>in EPG <b>300</b> of <figref idref="DRAWINGS">FIG. 3</figref>. In the illustrated example, title list <b>500</b> includes title entries <b>510</b> associated with “public-access” content sources <b>12</b>. Because particular embodiments of middleware <b>30</b> may also be configured to allow access to a dynamic collection of content sources <b>12</b>, EPG <b>300</b> may include a channel entry <b>310</b> dynamically associated with an open-ended set of content sources <b>12</b>. Content sources <b>12</b> included in this collection may be discovered by control plane <b>206</b> of VRT <b>20</b> (as described above with respect to <figref idref="DRAWINGS">FIGS. 2A and 2B</figref>), specified by user <b>60</b>, or identified in any appropriate manner based on the configuration and capabilities of VRT <b>20</b> and/or other appropriate components of system <b>10</b>. As a result, title list <b>500</b> may be dynamically generated by source monitoring module <b>212</b> and/or may change in response to the addition or removal of content sources <b>12</b> to system <b>10</b>. Again, the present system thus enables user <b>60</b> to select and view public access content from a variety of content sources having a variety of format characteristics.
0071<figref idref="DRAWINGS">FIG. 6</figref> illustrates an example of a title list <b>600</b> that may be transmitted to and viewed on display <b>50</b> in response to user <b>60</b> selecting channel entry <b>310</b><i>h </i>in EPG <b>300</b> of <figref idref="DRAWINGS">FIG. 3</figref>. In the illustrated example, title list <b>600</b> includes title entries <b>610</b> specifically associated with content sources <b>12</b> offering video weblogs (“vlogs”). As illustrated by title list <b>600</b>, EPG <b>300</b> may include separate channel entries <b>310</b> for content sources <b>12</b> of a specific type, for content sources <b>12</b> associated with a specific subject, or for a group of content sources selected based on any appropriate characteristic or consideration. As a result, EPG <b>300</b> may provide a flexible mechanism for grouping and presenting content sources <b>12</b> to user <b>60</b>. These content sources <b>12</b> may have formats, speeds, and other characteristics that ordinarily would not be available for viewing on display without the processing and modifying by VRT <b>20</b>.
0072<figref idref="DRAWINGS">FIG. 7</figref> is a flowchart illustrating steps in the operation of a particular embodiment of the system shown in <figref idref="DRAWINGS">FIGS. 1 and 2</figref>. Some of the steps illustrated in <figref idref="DRAWINGS">FIG. 7</figref> may be combined, modified, or deleted where appropriate, and additional steps may also be added to the flowchart. Additionally, steps may be performed in any suitable order without departing from the scope of the invention.
0073Operation begins at step <b>700</b> with set-top box <b>40</b> querying middleware database <b>36</b> to populate on-demand titles of electronic programming guide (EPG) <b>300</b>. Set-top box <b>40</b> displays EPG <b>300</b> on display <b>50</b> at step <b>702</b>. User <b>60</b> then selects a channel from EPG <b>300</b> provided by set-top box <b>40</b> at step <b>704</b>. User <b>60</b> may select the channel in any appropriate manner based on the configuration and capabilities of set-top box <b>40</b>.
0074In response to the channel selection by user <b>60</b>, middleware <b>30</b> determines, at step <b>706</b>, whether the selected on-demand channel derives its content from content sources <b>12</b> accessible by VRT <b>20</b>. If not, middleware <b>30</b> determines the titles associated with the selected channel by accessing database <b>36</b> and transmits information identifying these titles to set-top box <b>40</b> at step <b>708</b> for display on display <b>50</b>. User <b>60</b> then selects one of the titles associated with the selected channel at step <b>710</b>. Middleware <b>30</b> then transmits a video stream of the selected title to set-top box <b>40</b> at step <b>712</b> for display on display <b>50</b>. Operation of system <b>10</b> may then end as shown in <figref idref="DRAWINGS">FIG. 7</figref>.
0075If, instead, middleware <b>30</b> determines at step <b>706</b> that the selected on-demand channel derives its content from content sources <b>12</b> accessible by VRT <b>20</b>, then middleware <b>30</b> queries VRT <b>20</b> to request titles associated with that on-demand channel at step <b>714</b>. VRT transmits the requested titles to middleware <b>30</b> at step <b>716</b>. At step <b>718</b>, middleware <b>30</b> uses the requested titles to populate an entry in database <b>36</b> associated with the selected channel. At step <b>720</b>, middleware <b>30</b> then transmits the requested titles to set-top box <b>40</b> for display on display <b>50</b>. After the titles associated with the selected on-demand channel have been displayed on display <b>50</b>, user <b>60</b> selects a particular title associated with the selected on-demand channel at step <b>722</b>. At step <b>724</b>, set-top box <b>40</b> then queries VRT through middleware <b>30</b> for displayable content <b>24</b> from a content source <b>12</b> associated with the selected title. In response to the query, VRT <b>20</b> determines, at step <b>726</b>, whether a stored copy of displayable content <b>24</b> from the selected content source <b>12</b> is stored in memory <b>210</b>. If so, operation may then continue at step <b>740</b>.
0076If no copy of displayable content <b>24</b> from the requested content source <b>12</b> is stored in memory <b>210</b>, VRT <b>20</b> determines an address for the selected content source <b>12</b> at step <b>728</b>. In particular embodiments, VRT <b>20</b> may authenticate user <b>60</b> with the selected content source <b>12</b> at step <b>730</b>. VRT <b>20</b> may authenticate user <b>60</b> by forwarding authentication information (such as a user identifier and/or password) entered by user <b>60</b> following selection of the source, by identifying stored authentication information associated with an account of the user and transmitting this authentication information to the selected content source <b>12</b>, and/or by completing any other appropriate steps to identify user <b>60</b> and/or VRT <b>20</b> to the selected content source <b>12</b>. At step <b>732</b>, VRT <b>20</b> then requests and receives original content <b>22</b> from the selected content source <b>12</b> over network <b>14</b>.
0077Upon receiving the requested original content <b>22</b> from selected content source <b>12</b>, VRT <b>20</b>, at step <b>734</b>, translates the selected original content <b>22</b> to a format appropriate for transmission to and display by display <b>50</b>. As part of translating original content <b>22</b>, VRT <b>20</b> may transcode, transrate, encode, decode, render and/or otherwise modify original content <b>22</b> in realtime to produce displayable content <b>24</b> appropriate based on the requirements of display <b>50</b> and/or a network associated with display <b>50</b>. In particular embodiments, VRT <b>20</b> may also, at step <b>736</b>, determine whether content from the selected content source <b>12</b> has been requested more than a predetermined number of times. If so, VRT <b>20</b> may also store a copy of displayable content <b>24</b> for satisfying future requests at step <b>738</b>.
0078VRT <b>20</b> then transmits a copy of displayable content <b>24</b> from the requested content source <b>12</b> to middleware <b>30</b> at step <b>740</b>. Middleware <b>30</b> then forwards displayable content <b>24</b> received from VRT <b>20</b> to set-top box <b>40</b> on the selected on-demand channel at step <b>742</b>. At step <b>744</b>, set-top box <b>40</b> displays displayable content <b>24</b> on display <b>50</b>. Operation of system <b>10</b> may then end as shown in <figref idref="DRAWINGS">FIG. 7</figref>.
0079<figref idref="DRAWINGS">FIG. 8</figref> is a diagram illustrating an example technique for customizing content provided to a display <b>50</b>. As noted above, particular embodiments of the described VRT may be configured to customize processing of content for delivery to a particular user or group of users. <figref idref="DRAWINGS">FIG. 8</figref> illustrates one example of how particular embodiments of the VRT may be configured to perform such display customization. In particular, <figref idref="DRAWINGS">FIG. 8</figref> illustrates a system <b>810</b> capable of combining content from multiple content sources <b>812</b> and/or from multiple conventional channels <b>894</b> offered by VRT <b>820</b> for simultaneous viewing by user <b>860</b>. In the illustrated embodiment, system <b>810</b> includes a VRT <b>820</b>, middleware <b>830</b> (including middleware processor <b>832</b> and streaming server <b>834</b>), a display <b>850</b>, content sources <b>812</b>, and network <b>814</b>, all similar in content and operation to components of the same name in <figref idref="DRAWINGS">FIG. 1</figref>.
0080During operation of system <b>810</b>, user <b>860</b> may utilize PC <b>890</b> to communicate channel configuration information <b>892</b> to VRT <b>820</b>. Channel configuration information <b>892</b> may represent any appropriate information, in any appropriate form, that define preferences relating to scheduling, choice of content, and/or any other suitable aspects of content provision. For example, in particular embodiments, channel configuration information <b>892</b> may represent an HTML request transmitted to VRT <b>820</b> that identifies two or more content sources <b>812</b> accessible by VRT <b>820</b> and/or other types of conventional content provided by streaming server <b>834</b>. Alternatively, channel configuration information <b>892</b> may be transmitted from the user through the set top box <b>840</b> or by other means.
0081VRT <b>820</b> receives channel configuration information <b>892</b> from PC <b>890</b> and stores channel configuration information <b>892</b>. Additionally, VRT <b>820</b> receives original content <b>822</b> from content sources <b>812</b> as described above with respect to <figref idref="DRAWINGS">FIG. 1</figref>. VRT <b>820</b> may then perform any appropriate processing and/or modifying of original content <b>822</b> received from content sources <b>812</b> as described above with respect to <figref idref="DRAWINGS">FIGS. 1 and 2</figref>. In the illustrated embodiment of system <b>810</b>, VRT <b>820</b> also receives one or more video streams (shown generically in <figref idref="DRAWINGS">FIG. 8</figref> as “channels <b>894</b>”) from streaming server <b>834</b>.
0082Based on channel configuration information <b>892</b>, VRT <b>820</b> modifies all or a portion of original content <b>822</b> and/or all or a selected subset of the channels <b>894</b> received from VRT <b>820</b> to customize the content delivered to display <b>850</b>. For example, VRT <b>820</b> may combine content received from a particular content source <b>812</b> with content received from one or more other content sources <b>812</b> and/or one or more channels <b>894</b> received from streaming server <b>834</b>. More specifically, in particular embodiments, VRT <b>820</b> may receive channel configuration information <b>892</b> from user <b>860</b> that identifies one or more selected content sources <b>812</b> accessible by VRT <b>820</b> and/or one or more selected channels <b>894</b> offered by streaming server <b>834</b>. VRT <b>820</b> may then combine content from the selected content sources <b>812</b> and/or selected channels <b>894</b> for transmission to middleware <b>830</b> as a single video stream, shown in <figref idref="DRAWINGS">FIG. 8</figref> as combined content <b>824</b>. Streaming server <b>834</b> may then deliver combined content <b>824</b> to display <b>850</b> along with other conventional content delivered by streaming server <b>834</b>. In particular embodiments, streaming server <b>834</b> may transmit combined content <b>824</b> to display <b>850</b> on a predetermined channel designated for transmission of customized content.
0083As part of combining the relevant content, VRT <b>820</b> may perform any suitable processing or modification of content from any or all of the selected content sources <b>812</b> and/or selected channels <b>894</b> to facilitate combination of the relevant content. As one example of such processing, VRT <b>820</b> may identify, from among the selected content sources <b>812</b> and selected channels <b>894</b>, sources or channels that are providing full-screen video streams and transrate content received from these sources or channels, thereby reducing the display size of the relevant content. As a result of this transrating, VRT <b>820</b> may then be able to combine the content received from the selected content sources <b>812</b> and/or channels <b>894</b> into a single video stream so that content from all of the full-screen video streams can be combined for simultaneously viewing on display <b>850</b>.
0084Display <b>850</b> may then display combined content <b>824</b> received from VRT <b>820</b>. The content from the various selected sources and/or channels <b>894</b> may be structured in any appropriate manner when displayed by display <b>850</b>. For example, in particular embodiments, user <b>860</b> may select four content sources <b>812</b> and/or channels <b>894</b> from which to view content. Moreover, display <b>850</b> may include a screen <b>852</b> that can be divided into four screen portions <b>854</b><i>a</i>-<i>d</i>. When user <b>860</b> tunes to a predetermined channel for delivery of customized content, content from each of these four content sources <b>812</b> or channels <b>894</b> may then be simultaneously displayed in a separate screen portion <b>854</b> of screen <b>852</b>. In general, however, VRT <b>820</b> and display <b>850</b> may be configured so that the desired content is processed so that combined content <b>824</b> can be displayed in any appropriate manner by display <b>850</b>.
0085As a result, user <b>860</b> may be able to simultaneously view content from a selected plurality of the selected content sources <b>812</b> or channels <b>894</b>. This may enhance user's use or enjoyment of the content being provided by content sources <b>812</b> and middleware <b>830</b>. As one benefit, in particular embodiments, user <b>860</b> may select multiple content sources of high-importance for simultaneous viewing to allow for constant monitoring of all the selected content sources <b>812</b> and channels <b>894</b>. Thus, a stock-broker desiring to monitor both financial news and specific stock prices may be able to configure VRT <b>820</b> to combine a stock ticker provided by a designated content source <b>812</b> as an RSS feed with content from a conventional news channel provided by middleware <b>830</b> as a video stream. Similarly, a sports fan desiring to monitor both live action in a football game and player statistics may be able to configure VRT <b>820</b> to combine a video stream of the game provided by middleware <b>830</b> with an RSS feed containing realtime player statistics provided by a particular content source <b>812</b>.
0086As another benefit, user <b>860</b> may be able to select multiple content sources <b>812</b> and/or channels <b>894</b> providing related content and configure VRT <b>820</b> to display the relevant content so that the user can utilize the content simultaneously, such as to compare information provided by multiple sources. Thus, a participant in online auctions may be able to monitor prices displayed for two similar objects to determine which to purchase and how much to bid. Similarly, a viewer of a television program on a particular subject may be able to configure VRT <b>820</b> to display an RSS feed from one or more websites that provide supplementary information on the same subject.
0087In addition, user <b>860</b> may be able to view combined content <b>824</b> on a display <b>50</b>, such as a conventional television, that traditionally supports very little customization. As a result, certain embodiments of VRT <b>820</b> may provide numerous benefits. Nonetheless, particular embodiments may provide all, some, or none of the described benefits.
0088Although the present invention has been described with several embodiments, a myriad of changes, variations, alterations, transformations, and modifications may be suggested to one skilled in the art, and it is intended that the present invention encompass such changes, variations, alterations, transformations, and modifications as fall within the scope of the appended claims.
Contents5
9 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US10484527B2 | Cited by | United States of America | Search report |
| US11195185B2 | Cited by | United States of America | Applicant |
| US9510033B1 | Cited by | United States of America | Applicant |
| US9237147B2 | Cited by | United States of America | Applicant |
| US2006085371A1 | Cited by | United States of America | Pre-grant |
| WO2011021182A3 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| CN110677704A | Cited by | China | Search report |
| US8990418B1 | Cited by | United States of America | Search report |
| US8737212B2 | Cited by | United States of America | Search report |
| WO2013009774A1 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| US8364823B2 | Cited by | United States of America | Search report |
| US2007162939A1 | Cited by | United States of America | Pre-grant |
| US10698739B2 | Cited by | United States of America | Applicant |
| US8170123B1 | Cited by | United States of America | Search report |
| US2011099259A1 | Cited by | United States of America | Pre-grant |
| US9705947B2 | Cited by | United States of America | Applicant |
| US2009037445A1 | Cited by | United States of America | Pre-grant |
| US2008209487A1 | Cited by | United States of America | Pre-grant |
| WO2011021182A2 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| US9118976B1 | Cited by | United States of America | Search report |
| US10298703B2 | Cited by | United States of America | Applicant |
| US11368498B2 | Cited by | United States of America | Search report |
| US8788578B2 | Cited by | United States of America | Applicant |
| US2009228600A1 | Cited by | United States of America | Pre-grant |
| US2012311087A1 | Cited by | United States of America | Pre-grant |
| US2014089993A1 | Cited by | United States of America | Pre-grant |
| US10467651B2 | Cited by | United States of America | Applicant |
| US2013174208A1 | Cited by | United States of America | Pre-grant |
| US10511646B2 | Cited by | United States of America | Applicant |
| US2016036954A1 | Cited by | United States of America | Search report |
| CN104040478A | Cited by | China | Search report |
| US10079712B2 | Cited by | United States of America | Applicant |
| US9438657B2 | Cited by | United States of America | Applicant |
| US9058645B1 | Cited by | United States of America | Applicant |
| US2016127749A1 | Cited by | United States of America | Pre-grant |
| US10846130B2 | Cited by | United States of America | Applicant |
| US8990856B2 | Cited by | United States of America | Applicant |
| US10721282B2 | Cited by | United States of America | Applicant |
| US2007208688A1 | Cited by | United States of America | Pre-grant |
| US2014109144A1 | Cited by | United States of America | Pre-grant |
| US10042987B2 | Cited by | United States of America | Applicant |
| US9865302B1 | Cited by | United States of America | Applicant |
| US8243596B2 | Cited by | United States of America | Search report |
| US2008316923A1 | Cited by | United States of America | Pre-grant |
| US8533280B1 | Cited by | United States of America | Applicant |
| US2007283387A1 | Cited by | United States of America | Pre-grant |
| US2011010737A1 | Cited by | United States of America | Pre-grant |
| KR20140109432A | Cited by | Republic of Korea | Search report |
| CN104106252A | Cited by | China | Search report |
| US2015222960A1 | Cited by | United States of America | Pre-grant |
| US2011145427A1 | Cited by | United States of America | Pre-grant |
| US2009292656A1 | Cited by | United States of America | Pre-grant |
| US9271047B2 | Cited by | United States of America | Search report |
| US9282131B2 | Cited by | United States of America | Applicant |
| US12081817B2 | Cited by | United States of America | Applicant |
| US2009113470A1 | Cited by | United States of America | Pre-grant |
| US10636081B2 | Cited by | United States of America | Applicant |
| US11436630B2 | Cited by | United States of America | Applicant |
| US2010070608A1 | Cited by | United States of America | Pre-grant |
| US9641381B2 | Cited by | United States of America | Applicant |
| US10327032B2 | Cited by | United States of America | Applicant |
| US9614748B1 | Cited by | United States of America | Applicant |
| US8181210B2 | Cited by | United States of America | Search report |
| US2011307339A1 | Cited by | United States of America | Pre-grant |
| US9986273B2 | Cited by | United States of America | Applicant |
| US8621098B2 | Cited by | United States of America | Search report |
| US9967604B2 | Cited by | United States of America | Applicant |
| US2007192807A1 | Cited by | United States of America | Pre-grant |
| US8640176B2 | Cited by | United States of America | Search report |
| US2014359646A1 | Cited by | United States of America | Pre-grant |
| US9544347B2 | Cited by | United States of America | Applicant |
| US8826131B2 | Cited by | United States of America | Search report |
| US2010014528A1 | Cited by | United States of America | Pre-grant |
| US2008300673A1 | Cited by | United States of America | Pre-grant |
| US9324375B1 | Cited by | United States of America | Applicant |
| US8627509B2 | Cited by | United States of America | Applicant |
| US10200490B2 | Cited by | United States of America | Applicant |
| US10135900B2 | Cited by | United States of America | Applicant |
| US10390101B2 | Cited by | United States of America | Applicant |
| US9407613B2 | Cited by | United States of America | Applicant |
| US9531777B2 | Cited by | United States of America | Applicant |
| US10410248B2 | Cited by | United States of America | Applicant |
| CN102084661A | Cited by | China | Search report |
| US8599851B2 | Cited by | United States of America | Applicant |
| US10046239B2 | Cited by | United States of America | Applicant |
| US8276180B1 | Cited by | United States of America | Search report |
| US2019347947A1 | Cited by | United States of America | Search report |
| US10459943B2 | Cited by | United States of America | Applicant |
| US9594536B2 | Cited by | United States of America | Search report |
| US2016036954A1 | Cited by | United States of America | Search report |
| US9516077B2 | Cited by | United States of America | Search report |
| US2009158346A1 | Cited by | United States of America | Pre-grant |
| US10657538B2 | Cited by | United States of America | Applicant |
| US8656442B1 | Cited by | United States of America | Applicant |
| US8619775B2 | Cited by | United States of America | Applicant |
| US2008039062A1 | Cited by | United States of America | Pre-grant |
| US11989585B1 | Cited by | United States of America | Applicant |
| US9621768B1 | Cited by | United States of America | Applicant |
| CN107852422A | Cited by | China | Search report |
| US2010037265A1 | Cited by | United States of America | Pre-grant |
2 members in 1 office
Members2
| Document | Office | Kind | |
|---|---|---|---|
| US2007162945A1 | United States of America | A1 | |
| US9294728B2 | United States of America | B2 |
150 transactions on the USPTO file
Allowed after 3 non-final rejections, 3 final rejections, 2 RCEs and 2 appeals.
- Non-final rejections
- 3
- Final rejections
- 3
- RCEs
- 2
- Appeals
- 2
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Payment of Maintenance Fee, 8th Year, Large EntityM1552 | M1552 | |
| Payment of Maintenance Fee, 4th Year, Large EntityM1551 | M1551 | |
| Post Issue Communication - Certificate of CorrectionN423 | N423 | |
| Mail O.P. Petition DecisionMOPPT | MOPPT | |
| Mail-Petition Decision - GrantedMPTGR | MPTGR | |
| Petition Decision - GrantedPTGR | PTGR | |
| O.P. Petition DecisionOPPT | OPPT | |
| Post Issue Communication - Certificate of CorrectionN423 | N423 | |
| Petition EnteredPET. | PET. | |
| Email NotificationEML_NTR | EML_NTR | |
| Mail Miscellaneous Communication to ApplicantMM327 | MM327 | |
| Miscellaneous Communication to Applicant - No Action CountM327 | M327 | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Email NotificationEML_NTR | EML_NTR | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Entity status set to undiscounted (initial default setting or status change)BIG. | BIG. | |
| Email NotificationEML_NTR | EML_NTR | |
| Printer Rush- No mailingTCPB | TCPB | |
| Mail Miscellaneous Communication to ApplicantMM327 | MM327 | |
| Miscellaneous Communication to Applicant - No Action CountM327 | M327 | |
| Pubs Case Remand to TCPUBTC | PUBTC | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Reasons for AllowanceEX.R | EX.R | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Workflow - Request for RCE - BeginBRCE | BRCE | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail BPAI Decision on Appeal - AffirmedMAPDA | MAPDA | |
| BPAI Decision - Examiner AffirmedAPDA | APDA | |
| Email NotificationEML_NTR | EML_NTR | |
| Change in Power of Attorney (May Include Associate POA)PA.. | PA.. | |
| Correspondence Address ChangeC.AD | C.AD | |
| Email NotificationEML_NTR | EML_NTR | |
| Docketing Notice Mailed to AppellantAP_DK_M | AP_DK_M | |
| Assignment of Appeal NumberAPAS | APAS | |
| Appeal Awaiting BPAI DocketingAPWD | APWD | |
| Reply Brief FiledAPRB | APRB | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Exam. Ans. Review CompletePACC | PACC | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Examiner's AnswerMAPEA | MAPEA | |
| Examiner's Answer to Appeal BriefAPEA | APEA | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Appeal Brief Review CompleteAPBR | APBR | |
| Appeal Brief FiledAP.B | AP.B | |
| Mail Appeals conf. Proceed to BPAIMAPCP | MAPCP | |
| Pre-Appeals Conference Decision - Proceed to BPAIAPCP | APCP | |
| Request for Pre-Appeal Conference FiledAP.C | AP.C | |
| Notice of Appeal FiledN/AP | N/AP | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Response after Non-Final ActionA... | A... | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Reference capture on IDSRCAP | RCAP | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Workflow - Request for RCE - BeginBRCE | BRCE | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Appeal Brief Review CompleteAPBR | APBR | |
| Appeal Brief FiledAP.B | AP.B | |
| Request for Extension of Time - GrantedXT/G | XT/G | |
| Mail Appeals conf. Proceed to BPAIMAPCP | MAPCP | |
| Pre-Appeals Conference Decision - Proceed to BPAIAPCP | APCP |
18 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| Maintenance fee paymentMAFP | MAFP | |
| AssignmentAS | AS | |
| Maintenance fee paymentMAFP | MAFP | |
| Certificate of correctionCC | CC | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS |
Numbers
- Publication
- 20070162945
- Application
- 11328587
Titles
- English
- System and method for routing content
Patent term adjustment
- A delay
- +583 daysthe office missed an examination deadline
- B delay
- +911 dayspendency past three years
- Net adjustment
- 1,494 days
Classification
- IPC, 2
- H04N7 173
- H04N7 16
- USPC, 8
- 725119000
- 348E07071
- 725062000
- 725093000
- 725112000
- 725113000
- 725114000
- 725118000