U.S. Pat. No. 8,930,566
Real-Time HD TV/Video IP Streaming to a Game Console
AssigneeMicrosoft Corporation
Issue DateDecember 31, 2012
Illustrative Figure
Abstract
Program code enabling the streaming of HD content in real-time to a game console is stored on a storage medium remote from the game console. The game console executes software that facilitates transfer of the program code from the remote storage medium to the game console. The program code ensures that sufficient bandwidth exists on a network between the game console and a HD tuner, and enables the streaming of HD content in real-time to the game console.
Description
DETAILED DESCRIPTION Home Environment FIG. 1shows an exemplary home environment100comprising a bedroom102and a living room104. Situated throughout the home environment100are a plurality of monitors, such as a main TV106, a secondary TV108, and a VGA monitor110. Content may be supplied to each of the monitors106,108,110over a home network from an entertainment server112situated in the living room104. In one implementation, the entertainment server112is a conventional personal computer (PC) configured to run a multimedia software package, such as, for example, the Windows® XP Media Center™ edition operating system marketed by the Microsoft Corporation. In such a configuration, the entertainment server112is able to integrate full computing functionality with a complete home entertainment system into a single PC. For instance, a user can watch TV in one graphical window of one of the monitors106,108,110while sending email or working on a spreadsheet in another graphical window on the same monitor. In addition, the entertainment system may also include other features, such as, for example:A Personal Video Recorder (PVR) to capture live TV shows for future viewing or to record the future broadcast of a single program or series.DVD playback.An integrated view of the user's recorded content, such as TV shows, songs, pictures, and home videos.A 14-day EPG (Electronic Program Guide). In addition to being a conventional PC, the entertainment server112could also comprise a variety of other computing devices including, for example, a notebook computer, a tablet PC, a server, or any consumer-electronics device capable of rendering a media component. With the entertainment server112, a user can watch and control live television received, for example, via cable114, satellite116and/or an antenna (not shown for the sake of graphic clarity), and/or a network such as the Internet118. This capability is enabled by a tuner residing in the entertainment server112. It will also be understood, however, that the tuner ...
DETAILED DESCRIPTION
Home Environment
FIG. 1shows an exemplary home environment100comprising a bedroom102and a living room104. Situated throughout the home environment100are a plurality of monitors, such as a main TV106, a secondary TV108, and a VGA monitor110. Content may be supplied to each of the monitors106,108,110over a home network from an entertainment server112situated in the living room104. In one implementation, the entertainment server112is a conventional personal computer (PC) configured to run a multimedia software package, such as, for example, the Windows® XP Media Center™ edition operating system marketed by the Microsoft Corporation. In such a configuration, the entertainment server112is able to integrate full computing functionality with a complete home entertainment system into a single PC. For instance, a user can watch TV in one graphical window of one of the monitors106,108,110while sending email or working on a spreadsheet in another graphical window on the same monitor. In addition, the entertainment system may also include other features, such as, for example:A Personal Video Recorder (PVR) to capture live TV shows for future viewing or to record the future broadcast of a single program or series.DVD playback.An integrated view of the user's recorded content, such as TV shows, songs, pictures, and home videos.A 14-day EPG (Electronic Program Guide).
In addition to being a conventional PC, the entertainment server112could also comprise a variety of other computing devices including, for example, a notebook computer, a tablet PC, a server, or any consumer-electronics device capable of rendering a media component.
With the entertainment server112, a user can watch and control live television received, for example, via cable114, satellite116and/or an antenna (not shown for the sake of graphic clarity), and/or a network such as the Internet118. This capability is enabled by a tuner residing in the entertainment server112. It will also be understood, however, that the tuner may be located remote from the entertainment server112as well. In both cases, the user may choose a tuner to fit any particular preferences. For example, a user wishing to watch both standard and HD content should employ a tuner configured for both types of contents.
Since the entertainment server112may be a full function computer running an operating system, the user may also have the option to run standard computer programs (word processing, spreadsheets, etc.), send and receive emails, browse the Internet, or perform other common functions.
The home environment100also includes a game console120placed in communication with the entertainment server112through a coupling122. In a particular embodiment, the game console may be an Xbox® game system marketed by the Microsoft Corporation. The terms game console and console-based gaming system used herein refer not only to commercially offered gaming products such as the Xbox® game console marketed by the Microsoft Corporation, but also to any electronic device capable of rendering a media component, such as, for example, a conventional personal computer, a notebook computer, a tablet PC, or a server. The coupling122may comprise a wire, wireless network, or any other electronic coupling means. It will be understood that the coupling122may enable communication between the game console120and the entertainment server112through packet-based communication protocols, such as, for example, Transmission Control Protocol (TCP) and Internet Protocol (IP). The game console120may also be coupled to the secondary TV108thorough wireless means or conventional cables.
The game console120may be configured to receive a user experience stream as well as a compressed, digital audio/video stream from the entertainment server112. The user experience stream may be delivered in a variety of ways, including, for example, Standard Remote Desktop Protocol (RDP), Graphics Device Interface (GDI), or Hyper Text Markup Language (HTML). The digital audio/video stream may comprise video IP, Standard Definition (SD), and HD content, including video, audio and image files, decoded on the game console120and then “mixed” with the user experience stream for output on the secondary TV108. In one exemplary embodiment, HD content includes video having a resolution of 1280×720 pixels in a progressive format. In another exemplary embodiment, HD content includes video having a resolution of 1920×1080 pixels in an interlaced format. In yet another exemplary embodiment, HD content includes video having a resolution of 1920×1080 pixels in a progressive format
InFIG. 1, only a single game console120is shown. It will be understood, however, that a plurality of game consoles120and corresponding displays may be dispersed throughout the home environment100, with each game console120being communicatively coupled to the entertainment server112.
Game Console Configuration System
FIG. 2shows, at a high level, an exemplary architecture200to configure a game console to handle HD content. The architecture has the game console120with bootloader program code204residing thereon. A tuner202, along with the entertainment server112on which it is hosted, are communicatively coupled to the game console120via coupling122. It will be understood, however, that the tuner202need not necessarily be hosted on the entertainment server112, as it may reside by itself, or on another device communicatively coupled to either the entertainment server112or the game console120. The tuner202is capable of tuning to and receiving HD content.
The game console120is also communicatively coupled to a storage medium206on which HD transmission enablement program code208is stored. The storage medium206may be embodied as any storage media capable of storing computer readable program code, including, for example, Read Only Memory (ROM), Random Access Memory (RAM) or any other storage media known in the art. The storage medium206could be part of, for example, a standard PC, a notebook PC, a server, or even another game console. It will also be understood that the storage medium206may also comprise portable media, such as optical storage media (including, for example, DVDs, CD-ROM or game discs) which may be placed in an optical disc reader214on the game console120, along with game cartridges and other portable storage devices such as USB flash drives, or dongles.
In operation, once the game console120is coupled to the storage medium206, the bootloader program code204may call the HD transmission enablement program code208and load it onto the game console. When executed, the HD transmission enablement program code208reconfigures the game console120, enabling the tuner202to stream HD content to the game console120in real-time with full media transport functionality (i.e. the user is afforded functions such as FWD, RWD, skip, pause, play, etc). In one embodiment, the bootloader program code204causes the HD transmission enablement program code208to be stored on the game console120. In other implementations, the bootloader program code204loads the HD transmission enablement program code208each time HD content is played.
It will also be understood that the HD transmission enablement program code208may be preloaded onto the game console120in a manner not involving the bootloader program code208. For example, the HD transmission enablement program code208may be burned into ROM inside the game console120. In this way, the need for bootloader program code208on the game console120in order to call the HD transmission enablement program code208may be obviated.
Software Functionality
FIG. 3shows an exemplary startup process300for initiating the streaming of HD content to the game console120. The process300will be described with reference to select elements of both the home environment100discussed inFIG. 1and the architecture200discussed inFIG. 2, although it is noted that the process may be implemented by other systems and architectures.
At a block302, the HD transmission enablement program code208is detected. In theFIG. 2architecture, the bootloader program code204detects the HD transmission enablement program code208and triggers an alert which is presented to the user either on a display connected directly to the game console120, such as the secondary TV108, or on a display connected to the entertainment server112, such as the VGA monitor110or the main TV106. The alert can convey that reconfiguration of the game console will begin automatically without requiring a response from the user, or as shown at block304, the user can be given a choice whether or not to proceed with the reconfiguration. In one embodiment, the user can either accept or reject the offer to reconfigure the game console120using controls, such as, for example, game controllers or remote control devices, communicatively coupled directly to the game console120. Alternately, the user can answer the prompt via I/O devices communicatively coupled to the entertainment server112. If the entertainment server112being used is running the Windows® XP Media Center™ Edition operating system, the alert issued to the user could be embodied as a button saying “launch media center”.
If the user rejects the prompt, and opts to not have the game console120reconfigured (i.e. the “No” branch from block304), process300ends and the game console120reverts back its regular function. Alternately, if the user accepts the offer issued by the prompt to reconfigure the game console120(i.e. the “Yes” branch from block304), the bootloader program code204calls and loads the HD transmission enablement program code208(block306). Once loaded, the HD transmission enablement program code begins the reconfiguration of the game console120to receive streaming HD content in real-time with full media transport functionality (block308). This reconfiguration process may include the instantiation of admission control and QoS packet tagging procedures that prioritize packets carrying media content—including HD audio and video content—to a level above that of packets carrying other information across the network such as, for example, files being copied to the entertainment server112. This is done to avoid signal break up or jerkiness in audio or video streams being streamed to the game console120from the tuner202. The details of creating such admission control and QoS tagging procedures are well-known by those skilled in the art, and a multitude of these procedures exist which can be used successfully in block308to enable the desired admission control and QoS tagging functionality. In the instant example, the program code used to implement the receiver side aspects of admission control and QoS tagging procedures resides in the HD transmission enablement program code, and is called, loaded, and activated by the bootloader program code.
Another aspect of reconfiguring the game console120which occurs at block308is the reconfiguration of the game console to handle streaming HD content in real time with full media transport functionality. The program code resides in the HD transmission enablement program code and is called, loaded, and activated by the bootloader program code. This portion of the reconfiguration process will be discussed in more detail with regard toFIG. 4below.
Yet another aspect of reconfiguring the game console120at block308comprises the running of a network performance tuning program to evaluate the network (depicted as coupling122inFIGS. 1 and 2) coupling the game console120to the tuner202. This program, which will be discussed in more detail in conjunction withFIGS. 5-12below, alerts the user as to the adequacy of the network to receive HD content. Such network bandwidth adequacy alerts may be presented to the user either on a display connected directly to the game console120, such as the secondary TV108, or on a display connected to the entertainment server112, such as the VGA monitor110or the main TV106. Moreover, the network performing tuning program may be run on the game console120, the entertainment server112, or any other electronic device in communication with the game console120. In the event the network is found to be inadequate, the program offers the user advice on how to tune the network in order to increase the available bandwidth of the network to a level where HD content can be streamed across it. The network tuning performance program may be located in either the bootloader program code or the HD transmission enablement program code.
Once the network is deemed adequate to accommodate the streaming of HD content, HD content may be streamed in real-time with full media transport functionality from the tuner202to the game console120(block310).
It is important to note that throughout the exemplary startup process300, the user need not be given any indication of where the varying program codes reside. In fact, from the vantage point of the user, it may appear as though all of the necessary reconfiguration program code resides on the game console120itself. In this way, the exemplary startup process300optimizes user enjoyment by making the entire configuration process simple and quick.
Reconfiguring the Game Console
Implementing AV Streaming Architecture
FIG. 4provides a high-level overview of an exemplary operating environment400for streaming a HD content402, which includes a user-interface component404and a media component406, from the entertainment server112to the game console120. To transmit the HD content402, the user interface404is communicated through a user-interface channel410and the media component(s)406are communicated through a media channel408via coupling122. The game console120receives the user-interface component404and the media component406through their respective channels. The media and user-interface component are composited to render the HD content402on a remote endpoint413(which corresponds to the secondary TV108inFIG. 1).
Using the entertainment server112enables a digital rights management (DRM) scheme to be applied to the distributed media presentations. In one aspect, DRM secures and encrypts transmitted media to help prevent unauthorized copying. In another aspect, DRM includes protecting, describing, identifying, trading, monitoring, and/or tracking a variety of forms of media rights usages. DRM can be used to manage all rights, even beyond rights associated with permissions of digital-content distribution. An exemplary DRM implementation is described in the nonprovisional application entitled “Digital rights management operating system,” U.S. Pat. No. 6,330,670, filed on Dec. 11, 2001, by England, et al., and commonly assigned to the assignee of the present invention, and is incorporated herein by reference.
In one embodiment, the HD content402is a media experience that would be observed locally at the entertainment server112. However, it will be understood that the HD content402is not limited to a single instantiation. Rather, multiple contents402that can each be instantiated and received by respective endpoints may exist.
The user-interface component404includes HD graphics and images that typically compose a user interface. User-interface component404also may include icons, host audio, background images and applications such as word-processing applications, spreadsheet applications, database applications, and so forth. Virtually any components that are not media components are part of the user-interface component404.
The media component406includes media-rich or bandwidth-intensive elements that compose a media event. The following is a nonexhaustive list of exemplary media components: a streaming media presentation, including a HD video and/or audio presentation; a HD television program, including a cable television (CATV), satellite, pay-per-view, or broadcast program; a HD digitally compressed media experience; a radio program; a HD recorded media event (sourced by a VCR, DVD player, CD player, Personal Video Recorder and the like); a HD real-time media event; and a HD camera feed.
Thus, a user with the entertainment server112could watch a streaming video program from the Internet on a television (such as main TV106inFIG. 1) in one room, while allowing a child to simultaneously watch other HD content on a secondary TV (e.g. secondary TV108inFIG. 1) through the game console120.
Those skilled in the art will appreciate that these scenarios can be extended to a myriad of circumstances. A third user could simultaneously observe a camera feed input into the entertainment server112that is remoted to a third remote endpoint. A fourth user could use entertainment server112to remote a fourth instantiation of HD content402to watch a remoted television program on a monitor that does not have a TV tuner.
In each of the scenarios mentioned above, user-interface component404is presented on the respective remote endpoint along with media component406. This enables a remote user to remotely operate the entertainment server112and initiate commands such as stop, fast forward, and rewind as well as conventional computer commands that enable actions such as resizing replay windows and adjusting volume and picture quality.
User-interface channel410communicates user-interface component404to the game console120. Terminal Server and Terminal Client Services, offered by Microsoft Corporation of Redmond, Wash., provide an exemplary user-interface channel410. Any remotable protocol can be used to transmit data through user-interface channel410. Exemplary protocols include the T-120 series protocol or HTML (hypertext markup language and its many variations).
Media channel408is separate from user-interface channel410. Media channel408is used to transmit bandwidth-intensive experiences such as video and others listed above. Media component406provides a communications conduit for data to flow separate from user-interface component404. Thus, the media component406is sent out of band with respect to the user-interface component, but synchronized. An exemplary protocol to transmit data through media component406includes, but is not limited to, the Transmission Control Protocol (TCP).
Coupling122can be any computing/communications network but is described in the context of a local area network (LAN). Today, LANs are offered in many varieties, including Ethernet, phone-wire networks, power-wire networks, and wireless networks. Wireless networks are not limited to radio and spread-spectrum networks and utilize protocols such as 802.11a, 802.11b, and 802.11g. An ordinary skilled artisan will readily appreciate these and other networks, all of which may comprise the coupling122.
In addition to the AV streaming architecture discussed above, any other suitable architecture known in the art may be used. This includes the architectures discussed in the nonprovisional application entitled “UI Remoting With Synchronized Out-Of-Band Media”, Ser. No. 10/413,846, filed on Apr. 15, 2003, by Davis et al., and commonly assigned to the assignee of the present invention, which is incorporated herein by reference.
Network Performance Tuning
Another aspect of reconfiguring the game console120is shown inFIG. 5which illustrates an exemplary method500performed by a network performance tuning program. For ease of understanding, the method500is delineated as separate steps represented as independent blocks inFIG. 5; however, these separately delineated steps should not be construed as necessarily order dependent in their performance. Additionally, for discussion purposes, the method500is described with reference to elements inFIGS. 1-3.
At a block504, a quick-test is performed to rapidly (e.g., 20-30 seconds) evaluate the available bandwidth of the network coupling the game console120to the tuner202. If the quick-test determines that the network's bandwidth is sufficient to support the real-time streaming of HD content with full media transport functionality, then the method500terminates at a block508.
Alternately, if the quick-test determines that the network bandwidth is insufficient to support the real-time streaming of HD content with full media transport functionality, the method500proceeds to a block510where the user is informed of the possibility of network performance issues. This alert may be issued to the user either on a monitor connected directly to the game console120, such as the secondary TV108, or on a monitor connected to the entertainment server112, such as the VGA monitor110or the main TV106.
At this point, the method500may also issue a corrective action suggestion comprising a static document that lists some suggested actions that the user may take to improve network throughput. This static document may be stored on the tuner202, the entertainment server112, the game console120, the storage medium206, or any accessible source (e.g., via the Internet). Alternately, instead of displaying a static document, a link to an updatable document located on any accessible source (e.g., via the Internet) may be issued to the user. Moreover, the suggestion mechanism may dynamically generate a list of suggested actions from one or more sources (including, for example, websites on the Internet). This list might include, for example:Move one or more wireless access points (WAPs). Moving the WAP just six inches can make an appreciable difference. If possible, it may be helpful to move a WAP to a different room.Reorient antenna on the one or more WAPs.Change network topology. For example, modifying the components and/or fundamental structure of the network changes the network topology.Switch to a different wireless network band if possible. For example, one suggestion might be to change from the popular and inexpensive Wireless-B (IEEE 802.11b) equipment to the newer and, almost five times faster, Wireless-G (IEEE 802.11g) equipment.Change to a different channel within the band. Each wireless network band offers multiple channels. Some may perform better than others.Move obstructions in the path of any two wireless components.Adjust interfering items such as microwave ovens or competing wireless networks producing interference waves.
In the realm of personal computers, an implementation may employ a software user-interface tool to interrogate a user. Such tools may be called a “wizard” and may be used to ask the user questions about things that could affect network performance in an effort to narrow down the list of possible corrective action suggestions.
The information produced by the wizard may aid or direct the suggestion mechanism when it dynamically generates a list of suggested actions from one or more sources. For example, the wizard might initially ask the user if they have an 802.11g or 802.11a wireless network. Based upon the user's responses, the suggestion mechanism would know that some suggestions would apply and others would not.
Furthermore, additional detection software or mechanisms could be employed to automatically discover information, properties, and characteristics about the network (without interrogating a user). The suggestion mechanism could tailor its suggestions based, at least in part, on these automatically discovered information, properties, and characteristics about the network. For example, detection software may detect that a user is running on an 802.11g network and that the wireless networking “channel” chosen is conflicting with a nearby wireless network. In such an instance, the suggestion mechanism could issue the user a very pointed suggestion about changing their wireless networking channel to another channel where no interference is detected.
Based upon the present network-bandwidth as measured by the quick-test at block504, a network-bandwidth monitor could generate one or more user-interfaces (UIs) on a display connected directly to the game console120, such as the secondary TV108, or on a display connected to the entertainment server112, such as the VGA monitor110or the main TV106. The generated UI could present the list provided by the suggestion mechanism and graphically represent the network-bandwidth as measured by the quick-test. Examples of UIs that could be presented by the network-bandwidth monitor will be discussed in more detail below in conjunction withFIGS. 6 and 7.
Still referring toFIG. 5, after notifying a user of possible network inadequacy—and perhaps offering suggestions to ameliorate the inadequacy at block510—the method500continues to blocks512-520which comprise a loop that is performed until the user terminates the loop or some other trigger event (i.e., a timeout or adequate bandwidth is achieved) occurs.
At a block514, the tuner measures network throughput. This is displayed at a block516via a network performance monitor UI. Such UIs offer a simplified view to limit end-user confusion by providing users with graphic, easy to understand feedback.
For example, as shown inFIG. 6, the measured network throughput may be presented in a UI600in the form of a bar-graph monitor610. Here, when the dark bars reach the area620labeled “Acceptable Performance” the user knows that the network has reached a level of available bandwidth adequate to facilitate the desired streaming of HD content.
FIG. 7illustrates another possible UI700, which provides an alternate presentation of the network throughput. The UI700is an example of an easily accessible, detailed view showing valuable historical throughput information as a line graph. This UI also has an “acceptable performance” target line, which is shown at720in UI700.
It may also be possible for the user to toggle between the two UIs600,700.FIG. 6shows a clickable button640that allows for easy access to the detailed view of UI700. Similarly,FIG. 7shows a clickable button740that allows for easy access to the simplified summary view of UI600.
In yet another possible embodiment, the network-performance tuner could also include an audio UI throughput indicator. In such an embodiment an audio signal could indicate a relative degree of throughput. That way, a user could “hear” the available bandwidth from another room when the user is unable to see the screen displaying the bars or the graph. For example if a user was making very minor tweaks to the position of their wireless networking components' antennas they might be doing so in a completely isolated room of the house. In such case, instead of making very minor tweaks over-and-over then running back to the display to see how the last modification affected performance if they could just turn the volume up loud on the device that was running the performance tuner then ideally it would make a different sound when they were in the “acceptable” range. In such a scenario, the user could concentrate their efforts solely on tweaking the components, stopping only when the sound indicates they are in the “acceptable” range.
Returning toFIG. 5, it will be understood that the network throughput measurement of block514and the display of that throughput via a UI of block516may occur concurrently.
At a block518, a list of suggestions, similar to the corrective action suggestions issued at block510, may be displayed to the user offering suggestions for the improvement of network throughput. By following these suggestions, the user may attempt to complete alterations to increase the available network bandwidth.
At a block520, the process loops back to block512. The looping continues until the user terminates the loop or some other trigger (i.e., timeout or enough network bandwidth has been achieved) occurs.
It will also be understood that after the game console120has been successfully reconfigured, a network tuner performance program loop similar to blocks512-520inFIG. 5may run in the background while the game console120is in use. Since both the bootloader program code204and the HD transmission enablement program code208may be loaded onto the game console during the reconfiguration, all of the program code necessary to maintain this loop may be run exclusively on the game console120. In the event that network conditions change, and the network bandwidth becomes inadequate to successfully transmit HD content, alerts may be issued to the user on any of a multitude of displays, including those connected to the game console120and the entertainment server112. Moreover, as discussed above in conjunction with the loop of blocks512-520, recommendations and suggestions may be issued to the user instructing them how to reconfigure their network to increase the available bandwidth. Due to changing conditions, such as appliances like microwaves that weren't turned on during the initial reconfiguration of the game console120, or neighboring wireless networks which may interfere intermittently with a network, a continuous network tuning performance program loop can be quite valuable in improving the overall user experience.
Further exemplary methods which may be performed by a network performance tuning program are shown inFIGS. 8-14. For discussion purposes, these methods are described with reference to elements found inFIGS. 1-3.
FIG. 8illustrates an automatic SD and HD bandwidth test800which is fed from a main module802. At a block804, the bandwidth test800provides a user with a bandwidth test Introduction. If the user decides to opt out, the bandwidth test800is discontinued at a block806and the test800returns to the main module at block802. Alternately, if the user decides to continue, the test800moves to a block808where the network is examined at a block810. If the network is not ready (i.e. turned off, disconnected) then at a block812it is recognized that the test800cannot be fully carried out and the test800may return to block804and give the user another chance to opt out of the test, or it can return to block808and recheck the network for readiness. If, however, the network is ready at block810, then the test800may evaluates the bandwidth of the network at a block814. If this evaluation finds that the network has questionable ability to handle SD and HD content, then it is recognized at a block816that the network has problems. The test800then moves to a problem detection module818before proceeding to block802. Similarly, if the evaluation at block814finds that the network has good SD capability but questionable HD capability, the test800recognizes at a block820that the network has problems before proceeding to the problem detection module818and continuing to block802.
If, however, the evaluation performed at block814determines that the network's SD and HD capabilities are sufficient, the test800proceeds to a block822where it is evaluated if the test800is happening on startup. In the event that it is, the test800continues to a block824, where the test800may either be directed back to the main module804, or looped by returning to block804. Alternately, if block822is not satisfied, then test800continues to block826where a bandwidth monitor module828may be reached, or the test800may be concluded by returning to block802.
FIG. 9illustrates a possible problem detection method900which is fed by an automatic bandwidth test module902, such as, for example, that discussed above in conjunction withFIG. 8. Initially, at a block904the method900queries to see if another session is active on the network. If so, at a block906the method may issue an alert and allow the user to either return to block902, or continue to a block908and obtain information about the host network. Alternately, if at block904it is determined that another session is not active, the method900proceeds directly to block908. If the host NIC is very busy, then this is recognized at a block910and the method900issues a heavy host traffic alert at a block912and allows the user to either return to the automatic bandwidth test module or continue to a block914. If the host NIC is not busy, however, the method900proceeds directly to block914where the game console120is evaluated for its readiness to participate on the network. If the game console120is not ready, then the method900continues to a bandwidth monitor module915. Alternately, if the game console120is ready, then the method900obtains device information at a block916. If the device is determined to be a double hop wireless at a block918, then a double hop warning is issued at a block920, and the method900may either finish at a block922, or the user may elect to proceed to block924where it is determined whether or not the wireless system is configured to the IEEE 802.11b standard. Alternately, if it is determined at block918that a double hop wireless is not being used, the method900proceeds directly to block924.
At block924, if it is found that the device is configured to the IEEE 802.11b standard, then a 802.11b warning is issued at block926and the method800may either be allowed to finish at a block922, or the user may elect to continue to block928where it is determined if the device is actually an IEEE 802.11g device slowed to IEEE 802.11b speed. Alternately, if it is determined at block924that the device is configured to the IEEE 802.11b standard, the method900proceeds directly to block928.
At block928, if it is found that the device is actually an IEEE 802.11g device, a slowed 802.11g warning is issued at a block930and the method900may either be concluded at a block922or continued to a block932. Alternately, if it is determined at block928that the device is not an IEEE 802.11g device, then the method proceeds directly to block932where an evaluation is performed to see if an IEEE 802.11a device is available. If no, then the method900proceeds to a bandwidth monitor module915. If yes, then the method900issues a 802.11a availability warning at a block934and either finishes by proceeding to block922, or continues to the bandwidth monitor module915.
FIG. 10illustrates a bandwidth monitor method1000contained in an exemplary bandwidth monitor module fed by a SD/HD automatic bandwidth test module1001and a problem detection module1002. The bandwidth monitor method1000begins at a block1003where it is checked to see if an affirmative response (e.g. “show HD”) was received from a SD/HD Automatic bandwidth test. At a block1004a bandwidth monitor intro may be displayed before proceeding to block1006. If at block1006it is discovered that an affirmative response was received from the SD/HD automatic bandwidth test, then an SD/HD monitor is presented at a block1008. This is looped with a block1010which displays that a bandwidth test is not available in the event there is an error. Alternately, if no such show HD signal was received, then a SD Bandwidth Monitor is displayed at a block1012. In a fashion similar to that of block1008, a loop exists between block1012and a block1014which displays that a bandwidth test is not available in the event there is an error.
Blocks1008and1012can both feed into a block1016in which a bandwidth monitor introduction is displayed. From here users may elect to terminate the method1000and proceed to a block1018, or they may opt to troubleshoot their network by proceeding to a block1020where suggestions to this effect might be offered. In addition, bandwidth improvement suggestions may also be offered via a web browser at a block1022.
FIG. 11illustrates an exemplary tuning hub method1100which is fed by a main module1102and an automatic bandwidth test module1104. The tuning hub method1100commences at a block1106where a bandwidth tuning introduction may be displayed before proceeding to a block1108where a plurality of options are offered to a user. For example, one prompt offers the user the opportunity to troubleshoot. If chosen, this leads the method1100to a block1110which displays a troubleshooting introduction and leads further to block1112in which bandwidth improvement suggestions are displayed via a web browser. When finished the user can choose to return to block1108.
Alternately, the user may choose to follow a prompt at block1108offering bandwidth test services. If chosen, the method1100proceeds to an automatic bandwidth test module114, before returning to block1108upon completion of the test.
Another option available to the user at block1108is that of a bandwidth monitor. When selected, the method1100proceeds to a block1116which displays a bandwidth monitor introduction. Subsequently, a bandwidth monitor is displayed at a block1118. In the event of error, a block1120is displayed giving the user the opportunity to retry block1118. When the user is satiated (either at block1118or block1120) they may choose to return to block1108.
Another option presented to the user at block1108is that of finishing. When the user chooses this alternative, the method1100proceeds to block1122where the program1100is concluded.
FIG. 12illustrates an exemplary auto test method1200which is fed by a main module1202and a tuning hub module1204. Looking at the tuning hub module feeder1204, the method1200commences at a block1206which displays a bandwidth test introduction before proceeding to a block1208where an automatic bandwidth test is displayed. In the event of error, the method1220proceeds to a block1210where it is displayed that a bandwidth test is not available and the user is given the option to return to block1208or continue to a bandwidth test introduction at a block1212. Alternately, if the bandwidth found at block1208is determined to be questionable, the method1200proceeds to a block1214where potential bandwidth problems are displayed. From here the user may elect to either proceed to a tuning hub module1204or return to the bandwidth test introduction at block1206.
If the bandwidth found at block1208is determined to be good, the method1200proceeds to a block1216where it is decided if the method1200should finish early. If no, the method1200proceeds to a block1218where it is displayed that the bandwidth is ok, and the user is given the option to either continue to the tuning hub1204or return to the bandwidth test introduction at block1206.
If the decision is made at block1216to finish early, the method1200proceeds to a block1220where it is displayed that the bandwidth is ok, and the user is given the option to finish by proceeding to a main module1222or proceed to the bandwidth test introduction at block1212.
Looking at the main module feeder1202, the method1200commences at a block1212where a bandwidth test introduction is displayed and users are given the opportunity to opt out and proceed to a block1224where it is displayed that a bandwidth test has not been run and the method is guided to the main module1222. At block1212the user is also given the opportunity to proceed to block1208where an automatic bandwidth test is displayed. In the event of error, the method1200proceeds to a block1210where it is displayed that a bandwidth test is not available and the user is given the option to return to block1208or return to the bandwidth test introduction at block1212. Alternately, if the bandwidth found at block1208is determined to be questionable, the method1200proceeds to a block1214where potential bandwidth problems are displayed. From here the user may elect to either proceed to a tuning hub module1204or proceed to the bandwidth test introduction at block1206.
If the bandwidth found at block1208is determined to be good, the method1200proceeds to a block1216where it is decided if the method1200should finish early. If no, the method1200proceeds to a block1218where it is displayed that the bandwidth is ok, and the user is given the option to either continue to the tuning hub1204or proceed to the bandwidth test introduction at block1206.
If the decision made at block1216is to finish early, the method1200proceeds to a block1220where it is displayed that the bandwidth is ok, and the user is given the option to finish by proceeding to a main module1222or proceed to the bandwidth test introduction at block1212.
Conclusion
Although the invention has been described in language specific to structural features and/or methodological acts, it is to be understood that the invention defined in the appended claims is not necessarily limited to the specific features or acts described. Rather, the specific features and acts are disclosed as exemplary forms of implementing the claimed invention.
Claims
- A game console comprising: memory;one or more processors;and bootloader program code executable by the one or more processors, the bootloader program code configured to: detect high definition (HD) transmission enablement program code;and load the HD transmission enablement program code to the memory so that once loaded the HD transmission enablement program code is configured to: reconfigure the game console to enable receipt of high definition transmissions over a home network;and store the high definition transmissions in the memory.
- The game console of claim 1 , wherein at least one of the loaded HD transmission enablement program code or the bootloader program code is configured to: evaluate an adequacy of bandwidth of a home network to convey high definition transmissions to the game console;prioritize packets associated with the high definition transmissions above packets associated with other information transmitted to the game console over the home network;and inform a user of one or more network performance issues if the adequacy of the home network is deemed inadequate.
- The game console of claim 2 , wherein at least one of the HD transmission enablement program code or the bootloader program code is configured to prioritize the packets associated with the high definition transmissions via admission control and quality of service (QoS) packet tagging procedures.
- The game console of claim 2 , wherein at least one of the HD transmission enablement program code or the bootloader program code is configured to continuously evaluate the adequacy of the home network to allow real time rendering of the high definition transmissions by the game console.
- The game console of claim 2 , wherein at least one of the HD transmission enablement program code or the bootloader program code is configured to prioritize packets associated with the high definition transmissions above packets associated with other information transmitted over the home network.
- The game console of claim 1 , wherein the bootloader program code is configured to alert a user that the HD transmission enablement program code has been detected.
- The game console of claim 6 , wherein: the alert conveys that reconfiguration of the game console by the HD transmission enablement program code will begin automatically;or the alert conveys that the user has a choice whether or not to proceed with the reconfiguration of the game console by the HD transmission enablement program code.
- The game console of claim 7 , wherein the game console is configured to accept the choice whether or not to proceed with the reconfiguration of the game console from the user via controls, game controllers or remote control devices communicatively coupled directly to the game console.
- The game console of claim 1 , further comprising: a user-interface component configured to present information informing a user of a throughput of the home network.
- The game console of claim 9 , wherein the user-interface component is configured to provide historical throughput information in comparison with an acceptable performance target.
- The game console of claim 9 , wherein the user-interface component is configured to present information informing a user of a throughput of the home network as an audio signal, wherein an intensity of the signal changes with the throughput of the home network.
- The game console of claim 1 , further comprising a drive to accept computer-readable program code from portable storage media.
- The game console of claim 12 , wherein the drive comprises at least one of an optical drive, a magnetic disc drive, or a drive configured to accept program code stored in hardware.
- The game console of claim 1 , wherein at least one of the loaded HD transmission enablement program code or the bootloader program code is configured to: determine whether available bandwidth of a home network is sufficient to support high definition transmissions to the game console based at least in part on a measured throughput of the home network;responsive to determining that the available bandwidth of the home network is sufficient to support high definition transmissions to the game console, prioritize packets associated with the high definition transmissions above packets associated with other information transmitted to the game console over the home network;and responsive to determining that the available bandwidth of the home network is insufficient to support high definition transmissions to the game console: monitor throughput of the home network;and provide feedback indicating the monitored throughput.
- A method implemented by a game console, the method comprising: executing bootloader program code stored in a memory of the game console;the bootloader program code detecting, at a location on a home network, high definition (HD) transmission enablement program code;the bootloader program code loading the HD transmission enablement program code to the memory;prioritizing packets associated with high definition transmissions above packets associated with other information transmitted over the home network;reconfiguring, by the HD transmission enablement program code, the game console to receive the high definition transmissions over a home network;and enabling, by the HD transmission enablement program code, the game console to render the high definition transmissions on a display.
- The method recited in claim 15 , further comprising: evaluating an adequacy of bandwidth of the home network connected to the game console to convey the high definition transmissions;and informing a user of one or more network performance issues if the bandwidth of the home network is deemed inadequate.
- The method recited in claim 15 , wherein at least one of the HD transmission enablement program code or the bootloader program code performs the prioritizing packets associated with high definition transmissions above packets associated with other information transmitted over the home network via admission control and quality of service (QoS) packet tagging procedures.
- The method recited in claim 15 , further comprising alerting a user that the HD transmission enablement program code has been detected.
- A computer-readable storage device residing on a game console, the storage device encoded with instructions that when executed, perform acts comprising: detecting, at a location on a home network, high definition (HD) transmission enablement program code;loading the HD transmission enablement program code to the computer-readable storage device residing on the game console;evaluating an adequacy of bandwidth of the home network connected to the game console to convey high definition transmissions;configuring, by the HD transmission enablement program code, the game console to receive the high definition transmissions over the home network;and prioritizing packets associated with high definition transmissions above packets associated with other information transmitted over the home network, wherein at least one of the HD transmission enablement code or the bootloader program code is configured to prioritize the packets associated with the high definition transmissions via admission control and quality of service (QoS) packet tagging procedures.
- The computer-readable storage device recited in claim 19 , the acts further comprising informing a user of one or more network performance issues if the bandwidth of the home network is deemed inadequate.
Disclaimer: Data collected from the USPTO and may be malformed, incomplete, and/or otherwise inaccurate.