Navigation techniques for electronic programming guides and video

A system for remote user navigation of content displayed with a display device, including a screen display, is provided. A user input device may be configured to detect a user movement, including a direction and a speed. The user input device may be configured to communicate information based at least in part on the direction and the speed. The system may include a media device configured to receive communications from the user input device. The media device may be configured to process the information from the user input device and to output content to the display device in accordance with a navigation operation. The navigation operation may include moving displayed content based at least in part on the direction and the speed.

TECHNICAL FIELD

This disclosure relates to apparatus and methods of content display, and particularly to implementing navigation techniques for electronic programming guides and video.

BACKGROUND

A person watching television may have access to a large selection of television programming. Such television programming may be available across multiple channels and/or formats (e.g., scheduled programming, on-demand programming). An electronic programming guide (EPG) may be used to view current and upcoming television programming. With typical EPGs having an extensive list of channels and programming listings that extend over many days, navigating an EPG can be cumbersome.

In addition, various devices exist that can be used to receive and record television programs. In recent times, devices known as personal video recorders (PVRs) or digital video recorders (DVRs) have become commonplace. PVRs use a hard drive to record digital data that represents a television program. Various optical media and other forms of memory can be used to record television programs or digital representations thereof.

A typical manner in which a viewer is able access different portions of a recorded program is by scrolling forward or backward through the program stream, or by specifying a time to jump to in the stream. The scrolling may be referred to as fast-forwarding and rewinding, respectively. Linear navigation according to current techniques is time-consuming, often requires multiple button pushes, and can be non-intuitive. The viewer typically selects the scrolling options by pushing buttons of a remote control device. To select fast-forward, the viewer must select one button of the remote control device; to select rewind, the viewer must select another button the remote control device. Sometimes, a viewer has the option to select certain scrolling speeds. To select a particular scrolling speed, multiple button pushes are required, whether it be multiple pushes of the same button or pushing multiple buttons. Furthermore, specifying a time to jump to in the stream is not always intuitive and can involve an unacceptable amount of trial and error.

Thus, there is a need for improved navigation techniques for an electronic programming guide and recorded video. These and other needs are addressed by the present disclosure.

SUMMARY

Various methods, systems, and computer products are disclosed for remote navigation of content displayed on a display device. The remotely navigated content may include content of an electronic programming guide of a television tuning device. The remotely navigated content may include video content such as that recorded by a PVR/DVR or buffered while a viewer is watching a program. The remotely navigated content may include any linearly accessed video stream.

In some embodiments, remove navigation is provided with a user input device that includes a touch screen. In some embodiments, remove navigation is provided with a user input device that includes motion-sensing technology such that user may navigate by moving the user input device. In some embodiments, remove navigation operations may be inertia-based. The user input device may detect a user movement. In some embodiments, the user input device may identify certain characteristics of the user movement. In some embodiments, the user input device may identify one or more directions corresponding to the user movement. In some embodiments, the user input device may identify one or more speeds corresponding to the user movement. In some embodiments, the user input device may identify one or more distances corresponding to the user movement. In some embodiments, the user input device may identify one or more times corresponding to the user movement.

Input information corresponding to the one or more characteristics may be processed to identify specific information usable for correlation to a navigation operation. In some embodiments, the input information may be processed algorithmically. In some embodiments, the input information may be processed heuristically. In some embodiments, the input information may correspond to direction information at least partially indicative of one or more navigation operations. In some embodiments, the input information may correspond to speed information at least partially indicative of one or more navigation operations. In some embodiments, the input information may correspond to distance information at least partially indicative of one or more navigation operations. In some embodiments, the input information may correspond to time information at least partially indicative of one or more navigation operations.

In some embodiments, the user input device may transfer information to the television tuning device, and the television tuning device may identify instruction(s), commands, and/or navigation operations based on the information. In some embodiments, the user input device may identify instruction(s), commands, and/or navigation operations based on the information, and may transfer the instruction(s), commands, and/or navigation operations to the television tuning device.

In some embodiments, the navigation operation(s) may correspond to a scroll of an EPG. In some embodiments, the navigation operation(s) may correspond to a scroll of video. In some embodiments, the scroll may be a one-dimensional scroll in any suitable direction. In some embodiments, the scroll may be a two-dimensional scroll in any suitable direction. In some embodiments, the scroll may have a scroll speed, direction, and/or scroll type based at least in part on the detected user movement(s). In some embodiments, the scroll may coincide with a zoom operation, where the display of content zooms out as the scroll speed accelerates and zooms in as the scroll speed decelerates. In some embodiments, a zoom operation may be separate from a scroll operation. In some embodiments, the scroll type may include a scroll acceleration and a scroll deceleration without further user input. In some embodiments, the scroll type may include a scroll acceleration to a top speed that may then be maintained for a time depending on user input. In some embodiments, the scroll type may include a scroll acceleration to a top speed and a scroll deceleration to another speed that may then be maintained for a time depending on user input.

In some embodiments, a system for remote user navigation of content displayed with a screen display is disclosed. The system may include a display device comprising a screen display. The system may include a user input device. The user input device may be configured to detect a user movement, wherein the user movement comprises a first direction and a first speed. The user input device may be configured to communicate information based at least in part on the first direction and the first speed. The system may include a media device configured to receive communications from the user input device. The media device may include one or more processors and memory communicatively coupled with, and readable by, the one or more processors. The memory may have stored therein processor-readable instructions, which, when executed by the one or more processors, cause the one or more processors to: process the information from the user input device; and output content to the display device in accordance with a navigation operation, wherein the navigation operation comprises moving displayed content based at least in part on the first direction and the first speed.

In some embodiments, a method for remote user navigation of content displayed with a screen display is disclosed. The method may include detecting a user movement at a user input device and determining a first direction and a first speed corresponding to the user movement. The method may include communicating information based at least in part on the first direction and the first speed to a media device. The media device may be remote from the user input device. The method may include processing the information from the user input device and outputting content to a display device in accordance with a navigation operation. The navigation operation may include moving displayed content based at least in part on the first direction and the first speed.

In some embodiments, a computer-readable medium for remote user navigation of content displayed with a screen display, having sets of stored thereon, is disclosed. The instructions, when executed by a computer, may cause the computer to receive information from a user input device. The information may be based at least in part on a first direction and a first speed. The first direction and the first speed may correspond to a user movement detected at the user input device. The instructions may cause the computer to process the information from the user input device and to output content to a display device in accordance with a navigation operation. The navigation operation may include moving displayed content based at least in part on the first direction and the first speed.

DETAILED DESCRIPTION

Certain embodiments of the present disclosure are directed to apparatus and methods of content display, and particularly to implementing navigation techniques for electronic programming guides and recorded video. The navigation techniques may be more intuitive and efficient. These and other benefits will be explained in detail below.

Although embodiments detailed herein may be directed toward controlling television-based equipment, the principles easily can be extended to other types of content and devices, such as video game equipment, computer equipment, handheld electronic devices, and the like. In addition, the terms “television” or “television service” can include traditional television programming, such as linear television programs, as well as other types of audio, video and/or audio/video content, such as on-demand video content, streaming video content and the like delivered via any type of content delivery systems, such as a cable, satellite, cellular/wireless, Internet/IP and/or any other content delivery technology or system currently known or hereafter developed. Furthermore, embodiments herein describe set-top boxes and/or other devices being connected with a television or other device having an electronic display. However, the navigation techniques can also be incorporated into the device having the electronic display, such as a television with an integrated cable, satellite or IPTV receiver. The technology discussed herein additionally can be extended to any of a variety of other electronic display devices, such as, for example, computers, tablets, hand-held mobile devices, cell phones, e-readers, personal media players, and the like. A person of ordinary skill in the art will recognize various alterations, additions, omissions, and substitutions.

FIG. 1illustrates an embodiment of a system100, in accordance with certain embodiments of the present disclosure. The system100may include: a television service provider135, an uplink station110, a television programming services system140, an electronic programming guide server150, a programming database160, a satellite120, an end-user system165, end-user equipment130, a television tuner device170, a user input device175, an end-user display device180, a network185, and a programming information server190. In some embodiments, more or fewer components may be present.

In some embodiments, a satellite-based television service, such as direct broadcast satellite (DBS) service, is used to deliver television services to end-users. DBS service may involve television channels and/or other content (e.g., on-demand programming) being transmitted via a satellite uplink and multiple downlinks to end-user equipment configured to receive satellite transmissions. As such, a single uplink (or multiple uplinks) may be used to deliver television channels and other content to a large number of end-users.

In the system100, the uplink station110is configured to transmit one or more television channels and/or other content to the satellite120. The satellite120may be located in geosynchronous orbit to provide continuous service to a particular geographical area. The satellite120may serve to relay information received from the uplink station110to a plurality of sets of end-user equipment such as the end-user equipment130. In the system100, only equipment linked to a single set of end-user equipment is illustrated for the sake of simplicity. For example, the end-user system165may contain the components present at an end-user's home or business. It should be understood that the system100may be used to deliver television channels and other content to many end-users, which may involve many end-user systems similar to the end-user system165.

The end-user system165may include the television tuner device170. The television tuner device170may be associated with or located near an individual, business, or other entity, user or subscriber that receives a program service transmission from the service provider135. The program service transmission may be received through a subscription to the service. Generally the terms “user” and/or “subscriber” refer to an individual or company who receives a program service transmission. This may include those who have purchased a subscription to the program service transmission. Additionally, the terms “user” and/or “subscriber” may refer to individuals who have been given access to the program service transmission through promotional offers and/or other non-fee-based agreements.

The television programming services system140may represent one or more computer systems that are configured to provide one or more television channels and/or other content to the uplink station110to be delivered to the end-user equipment130. The electronic programming guide server150may be part of the television programming services system140or may be separate. The electronic programming guide server150may provide television programming information to the television tuner device170.

The electronic programming guide server150may communicate with one or more programming databases, such as the programming database160. The programming database160may be located locally to electronic programming guide server150or may be remotely accessible. The programming database160may contain television programming information to be presented to end-users.

The television service provider135may own, manage, and/or operate the uplink station110, the television programming services system140, the electronic programming guide server150, and/or the programming database160. There may be more than one television service provider135. In some embodiments, some or all of these components may be owned and/or operated by entities other than the television service provider135.

The end-user equipment130may be configured to receive DBS service. The downlink from the satellite120to the end-user equipment130may be unidirectional. As such, while signals may be transmitted from the satellite120to the end-user equipment130, signals may not be transmitted from the end-user equipment130to the satellite120. Thus, while information may be received by the end-user equipment130from the television service provider135via the satellite120, it may not be possible to use the same communication link to transmit information back to the television service provider135. However, in some embodiments, the satellite communication link may be bidirectional.

The end-user equipment130may include one or more satellite dishes configured to receive signals from the satellite120. In some embodiments, the end-user equipment130may include a single satellite dish equipped with multiple tuners. In some embodiments, a single tuner is connected with a satellite dish. In the system100, a single television tuner device, the television tuner device170equipped with a tuner124, is illustrated as connected with the end-user equipment130. It should be understood that, in other embodiments, the end-user equipment130may be connected with multiple television tuner devices.

The television tuner device170may be or include a standalone piece of equipment, such as a set-top box. In some embodiments, the television tuner device170may be incorporated as part of another device, such as a television (or some other form of the end-user display device180). The television tuner device170may communicate with multiple other pieces of equipment, such as the user input device175, and the end-user display device180. The end-user display device180may be a device that is used to display television channels and/or other televised content to an end-user. Examples of possible end-user display devices may include: televisions, computer systems, and mobile devices.

The television tuner device170may serve as an interface between the signals received from the satellite120by the end-user equipment130and the end-user display device180. The television tuner device170may be configured to receive, analyze, and transmit information received from the satellite120by the end-user equipment130to the end-user display device180. The television tuner device170may include a decoder128to decode received signals. The decoder128may be programmed to decrypt or otherwise decode some or all of the received signals in accordance with purchases and selections made by a user.

While the television tuner device170may receive information via the satellite120from the television service provider135, this communication link may not allow information to be transmitted from the television tuner device170back to the television service provider135, in certain embodiments. As such, another communication link may be used for communication that originates from the television tuner device170. In the example depicted, the television tuner device170is in communication with the network185.

The television tuner device170may include a network interface132. The network interface132may be operable to communicate or send information across a data network, such as a packet based data network185. The network interface132may take the form of a modem network interface card, cable plug or jack, or the like. Using the network interface132, the television tuner device170may communicate over a network185such as the public switched telephone network (PSTN). However, it should be appreciated that the network185may be any type of network capable of data communication, such as, for example, a local or wide area network or the Internet. The television tuner device170may be configured to communicate via a home Wi-Fi network, a local area network, a cable modem, DSL modem, or any other form of available connection with the Internet. The television tuner device170may communicate through the network interface132using any suitable communication protocol such as TCP/IP. The television tuner device170may communicate with one or more websites through the network interface132. In so doing, the television tuner device170may reference and receive information or other content that may be outputted on a display to provide an enhanced or expanded graphical user interface (GUI), in accordance with an example embodiment.

Through the network interface132, a user may communicate with the service provider135in some embodiments. For example, a request for specific television programming information may be communicated to the service provider135. As another example, the television tuner device170may be able to communicate with the electronic programming guide server150. The television tuner device170may receive information or other content that may be outputted on the display180from the service provider135. This information could include audiovisual clips or the like. Thus, while in the system100television programming information may be received by the television tuner device170via the satellite120, it should be understood that in some embodiments television programming information may be transmitted to the television tuner device170by the electronic programming guide server150via the network185. As such, the communication link between the television tuner device170and the electronic programming guide server150via the network185may be used for bidirectional communication.

In the system100, television channels and/or other content may be delivered to end-users via a direct broadcast satellite arrangement. However, it should be understood that embodiments of this disclosure may pertain to other forms of televised content delivery. For example, cable television, which utilizes a cable network, may utilize various arrangements for organizing search results within an electronic programming guide as described herein. Similarly, a fiber-based television network and/or IP-based television network may utilize various arrangements for organizing search results within an electronic programming guide as described herein.

As depicted, the television tuner device170may be in communication with one or more programming information servers, such as the programming information server190, e.g., via the network185. The programming information server190may represent a computer system containing information on television programs and/or other content. For example, the programming information server190may have additional information about television programs and/or content in addition to (and/or the same as) what is present in the television programming information transmitted to the television tuner device170by the electronic programming guide server150. For example, the programming information server190may have information about television programs such as: actors and/or actresses appearing in the television program, production of the television program (such as the director, the producer, the production company), the location of filming, a genre of the television program, television programs that are similar, and recommendations (e.g., if you like television program “x,” you may enjoy television program “y”). Similar information may also be stored by the electronic programming guide server150, such as in the programming database160, but may not be transmitted to the television tuner device170. Such information may be accessible by the television tuner device170via the network185from the electronic programming guide server150on request. By making such information available on request, the amount of data periodically transmitted to the television tuner device170by the electronic programming guide server150as part of the television programming information may be decreased.

The television tuner device170may include one or more processors134operable to run executable code in connection with various functions associated with the television tuner device170. For example, the processor134may display graphics, images, animations or other content on the display180, such as a television (TV) or monitor. In the case of receiving commands or other information relating to changes to the account status, the processor134may be further operable to initiate or facilitate transmission of one or more messages to the service provider135. The processor134may be further operable to recall and display stored content, such as purchased or recorded programs.

Among other functions, the processor134may also receive, store, and/or display an on-screen graphical user interface (GUI) such as an Electronic Program Guide (EPG)172, which may provide a schedule of program content and/or other features. Thus, the television tuner device170may be configured to execute and display (via the end-user display device180) the EPG172based on television programming information received via the satellite120by the end-user equipment130from the electronic programming guide server150. As used herein, the terms “electronic programming guide” or “EPG” may include an interface that includes a schedule of programming content provided to a user as part of a program service transmission system. The EPG172may include software and/or firmware executed by the television tuner device170. The EPG172may comprise a database or may otherwise access a database containing information including, for example, names or titles of viewing events (programs), corresponding channel numbers and names, brief descriptions of the programs, start and finish times, and rating and content information related to the events. This information may be called EPG information or program information. Any suitable information may be included in the EPG information.

The EPG172may display on the end-user display device180program information for multiple times, multiple channels, and multiple television programs. For example, by an end-user interacting with EPG172, the end-user may be able to determine at what time a television program is scheduled to appear on a particular television channel. The EPG172may also allow the end-user to switch between television channels. In addition to listing the time, channel, and name of the television program, additional information may be present for television programs, such as a brief description of the television program, a rating (e.g., G, PG, PG-13, R), and/or the year of release.

In some embodiments, such television programming information from the electronic programming guide server150may be transmitted for a period of days, such as a week, periodically, such as once per week, via the satellite120and/or the network185. The EPG or program information may be communicated to the television tuner device170using a dedicated data channel. The processor134may execute a display module148or program, which accesses stored EPG data152and provides a formatted graphic output on the display180.

In some embodiments, for EPG information provided on a specific channel, the tuner124may “tune” to the EPG data channel and collects the EPG information. The EPG information may be communicated in a serial fashion to the television tuner device170, and thus, has a beginning and an end. For example, the EPG information may start with “program channel 1” and provide programming information for a predefined number of days or the like for that particular channel. Next, EPG information for “program channel 2” for the predefined number of days or the like may follow, and so on, until the EPG information for all “program channels” has been communicated to the television tuner device170. The communication of the EPG information then starts again at the beginning of the EPG information. In some instances, the EPG information may simply be repeated. At other times, the EPG information may be updated and then communicated. This looped, periodically repeating communication of the entire EPG information is referred to as a “carousel” EPG information format.

If the television tuner device170begins receiving the EPG information midway during the communication of the “carousel” of EPG information, the television tuner device170understands that a complete set of EPG information has been received when it has gone through the entire carousel of EPG information. That is, the entire carousel of EPG information has been received when the received EPG information has returned to its initial entry point into the carousel of EPG information.

While the television tuner device170is receiving the EPG information, or once the television tuner device170has received a full set of EPG information, the television tuner device170can construct and display an EPG to a viewer on their viewing device, such as a television or the like. If the entire carousel of EPG information has not yet been received, a partial EPG may be constructed and presented to the viewer.

The viewer is able to interactively scroll about the EPG to view available programming on a program channel of interest. Also, the viewer is able to navigate about the EPG to view textual information related to scheduled programming at future times of interest on selected program channels of interest. The EPG172may be configured, based upon commands received from the user input device175, to cooperatively work with the user input device175so that the viewer may request selected operations on a program of interest that is highlighted on the EPG.

The EPG data channel may include EPG information provided as the carousel of EPG information that is communicated in a periodic, serial fashion. That is, the EPG information in the EPG data channel is communicated in a serial format that is periodically repeated. If the television tuner device170has multiple tuners124, one of the tuners124may be used to provide viewable programming and another tuner124can be used to tune to the EPG data channel to receive the carousel of EPG information.

The television tuner device170may include or be communicatively coupled to a recorder136, such as a DVR (digital video recorder). The recorder136may be integrated into the television tuner device170or may be a stand-alone device. The recorder136may be operated by a user who programs the television tuner device170function to record a particular program at a specified time. When the program occurs, the recorder136will record and store the program, which can then be viewed later. In addition to this functionality, the recorder136may buffer a certain amount of content during a currently broadcast transmission. Buffering a currently broadcast transmission allows a user to pause and/or rewind the content of the transmission and to then display the content in a non-live or delayed manner.

The television tuner device170may include or be associated with a memory or other storage device164, such as magnetic or optical storage. The storage device164may be operable to store data received from the decoded satellite signal. The storage device164may be operable to store data received from the decoded satellite signal. The storage device164may be volatile or non-volatile memory implemented using any suitable technique or technology such as, for example, random access memory (RAM), disk storage, flash memory, solid state, and the like. The storage device164may be located either within the television tuner device170or separately from the television tuner device170. The storage device may also be removable in nature. The stored data set may include audio and/or visual content to be transmitted and displayed through the display180. Generally, audiovisual or audiovisual content may include still images, video images, animation and/or audio. Portable Network Graphics (PNG) or other appropriate formats, such as for example, Tagged Image File Format (TIFF), Joint Photographic Experts Group (JPEG), Motion Picture Experts Group (MPEG)-2, MPEG-4 may be used to display an image or video. As a result commands or settings from a user, videos or other programs may be stored locally in storage device164. Stored programs may include for example recorded broadcasts, pay-per-view items and/or buffered portions of a current video broadcast. The storage device164may contain various partitions or separate storage portions and may be used for implementation of a program buffer, DVR digital video recorder resources, and/or an EPG data and/or access logic storing portion152.

The storage device164may additionally store an application, file, module or other data that is useable by the processor134. In one instance, a stored application may be executed by the processor134to display content on the display180, for example display module148. As used herein, an application or module includes processor executable code that may be run to carry out one or more functions associated with the television tuner device170. “Processor executable code” includes any computer-readable media or commands that may be ultimately interpreted by a processor, such as HTML or XML files that are rendered into user-viewable applications by an application executed by the processor. Alternatively, the processor or the television tuner device170may comprise a presentation device interface portion to hold this code.

The processor134may execute commands received from a user. User commands may be sent to the television tuner device170through the user input device175such as a remote or other wireless device, such as a remote control. The user input device175may be a remote control that allows the user to interact with the television tuner device170. Specifically, the user input device175may permit an end-user to interact with the EPG172and/or recorded video displayed by the television tuner device170on the end-user display device180in accordance with features of certain embodiments disclosed herein. Information sent to the television tuner device170may include, for example, a command to change the displayed channel, a command to pause, fast-forward, and/or rewind a displayed program, a command to display an EPG172, and/or a command to navigate through the EPG172. Commands sent to the television tuner device170may be entered through a dedicated display menu.

FIG. 2is a simplified illustration of an embodiment of an end-user system265, which may correspond to the end-user system165, in accordance with certain embodiments of the present disclosure. The end-user system265may include the television tuner device270, which may be a set-top box (STB) in certain embodiments, and an end-user display device280. The display280can be controlled by a user250using a user input device275that can send wireless signals276to communicate with the television tuner device270and/or display280. The user input device275can be configured to receive movement-based instructions from the user and convert the movements into instructions to be transmitted or otherwise provided to the television tuner device270and/or display280. Although discussed as being wireless for user convenience, the technology may additionally include a wired coupling between the user input device275and television tuner device270in certain embodiments. Alternate embodiments of the end-user system265may include fewer or greater numbers of components.

The media service back-end210may correspond to elements ofFIG. 1communicatively coupled to the end-user system165, such as one or more of the television service provider135, an uplink station110, a television programming services system140, an electronic programming guide server150, and/or the like. Thus, referring again toFIG. 2, the media service back-end210can provide media, in various forms, as discussed previously.

The television tuner device270can be configured to receive communications from the user input device275. In certain embodiments, the communications may indicate movement-based instructions from the user input device275. In certain embodiments, the communications may indicate motion information and/or direction information. In certain embodiments, the communications may indicate a command based on motion information and/or direction information. Thus, in certain embodiments, the television tuner device270may receive a command identified by the user input device275based on motion information and/or direction information derived from the user250. However, in certain embodiments, the television tuner device270may receive motion information and/or direction information from the user input device275and then identify a corresponding command. Thus, once a movement-based instruction has been received, the television tuner device270may be further configured to identify the instruction associated with the movement provided. The media service back-end210may also be configured to perform the instruction in accordance with the identified movement.

FIGS. 3 and 4respectively illustrate exemplary user input devices375and475, in accordance with certain embodiments of the present disclosure. As used herein, a “user input device” may include any device operable to receive input from a user and to convey the input to the television tuner device in accordance with features of certain embodiments disclosed herein. For example without limitation, in various embodiments, the user input device may include a mobile computing device such as one or more devices variously referenced as a mobile phone, a cellular telephone, a smartphone, a handheld mobile device, a tablet computer, a web pad, a personal digital assistant (PDA), a notebook computer, a handheld computer, a laptop computer, or the like. In certain embodiments, a mobile application may be made available for use on a mobile computing device to at least in part transform the mobile computing device into user input device in accordance with certain embodiments. Various embodiments may include a specific purpose-based mobile application, a mobile application integrated with various other mobile application features, or a native application on a dedicated device. In certain embodiments, a mobile application executed on a mobile computing device may provide for a user input device in accordance with features of certain embodiments disclosed herein. In some embodiments, the user input device may include one or more of a dedicated television remote control device, touchpad, remote control unit with motion sensing, and/or the like.

In some embodiments, the user input device may be a hand-held device having a number of buttons or keys that when actuated by a user cause the user input device to convey information to the television tuner device using a suitable communication means. In some embodiments, the user input device may include a pointing device or functionality that allows the user to control the position of a cursor that is displayed on the display. In some embodiments, the user input device may include a track ball or glide plane that may be manipulated to control cursor movements. Thus, in various embodiments, the input elements may include one or more of a keypad, a trackball, a touchscreen, a touchpad, a pointing device, a microphone, a voice recognition device, or any other appropriate mechanism for the user to provide input.

The user input device may include one or more antennas for wireless data transfer. In various embodiments, the communications functionality of the user input device may be implemented with an ICU package, a network card (wireless or wired), an infrared communication device, a wireless communication device and/or chipset (such as a Bluetooth™ device, an 802.11 device, a WiFi device, a WiMax device, cellular communication facilities, etc.), and/or the like. In various embodiments, the user input device may include various input elements to allow a user to input information. Thus, the user input device may include communications interfaces that can provide a near field communication interface.

FIG. 5depicts a block diagram of a user input device575, in accordance with certain embodiments of the present disclosure. The user input device575may correspond to the user input devices374and/or475in some embodiments, however the user input devices illustrated herein should not be seen as limiting. Accordingly, the user input devices374and/or475and/or other user input devices may have fewer, more, and/or different components/features. The user input device575may include a display530and input elements532to allow a user to input information into the user input device575. By way of example without limitation, the input elements532may include one or more of a keypad, a trackball, a touchscreen, a touchpad, a pointing device, a microphone, a voice recognition device, motion sensor(s), accelerometer(s), gyroscope(s), and/or any other appropriate mechanism for the user to provide input. The input elements532may be configured to identify touch screen contacts and/or device movements associated with instructions for operating the television tuning device and EPG/video navigation. The input elements532may be configured to identify direction, speed, distance, and/or time characteristics of touch screen contacts and/or device movements.

The user input device575may include a memory534communicatively coupled to a processor536(e.g., a microprocessor) for processing the functions of the device575and configured to perform processes such as decoding movements and instructions for output and transmission to a television tuning device. The user input device575may include at least one antenna538for wireless data transfer.

The user input device575may also include a microphone540to allow a user to transmit his/her voice through the user input device575. In addition, the user input device575may include one or more interfaces in addition to the antenna538, e.g., a wireless interface coupled to an antenna. The communications interfaces544can provide a near field communication interface (e.g., contactless interface, Bluetooth, optical interface, etc.) and/or wireless communications interfaces capable of communicating through a network such as a cellular network or through Wi-Fi, such as with a wireless local area network (WLAN). Accordingly, the user input device575may be capable of transmitting and receiving information wirelessly through both short range, radio frequency (RF) and cellular and Wi-Fi connections. The interfaces544may include one or more local communication interfaces. In some embodiments, a network interface544may be configured to communicate via one or more networks, such as the Internet, to communicate with a television provider server system. Information may be transmitted and/or received via interface544. In some embodiments, by incorporating such a feature on the user input device575, operational control may be maintained at the user input device575alternatively to the television tuning device, such that transmission is not required back and forth between the devices, and, accordingly, the user input device575may directly receive network information or EPG information, or may receive this information from the television tuning device.

The user input device575can also include at least one computer-readable medium546coupled to the processor536, which stores application programs and other computer code instructions for operating the device, such as an operating system (OS)548. The instructions551may be stored in the memory534and/or computer-readable media546. The instructions551may be any set of instructions, application level or otherwise, that facilitate certain embodiments of the present disclosure. In some embodiments, the instructions551may correspond to an application that may have been pre-installed on the platform of the user input device575. In other embodiments, the instructions551may correspond to a mobile application. In some embodiments, the application can include a customizable user interface (UI), which can be determined by the user's preferences through application-level programming. In some embodiments, the application can be used to display on the device an image corresponding to that which is displayed on the television display. For example, the user input device575may be configured to cause the display an EPG view corresponding to that display on a communicatively coupled TV. The computer-readable medium546can also include an image-processing engine547that may facilitate such image displays in some embodiments.

The user input device575may include a non-transitory computer-readable storage medium, e.g., memory534, for storing instructions and/or data to facilitation detection, interpretation, and/or translation of user input to one or more direction information, speed information, and/or navigation instructions for use by the television tuning device in effectuating on-screen navigation of an EPG and/or video. In some embodiments, the computer-readable media546and/or the memory534may be used to store correlations between user movements and/or contacts and particular instruction(s)/information to be transmitted to the television tuning device. The computer-readable media546and/or the memory534may be used to store information received from the television tuning device and/or information received via network interface544. The computer-readable media546and/or the memory534may additionally be used to store information received from one or more of the motion sensing technologies facilitated by the user input device575. The interface(s)544may allow provision of information/instructions to and/or reception of information/instructions from the television tuning device. This information may be used to coordinate what is displayed, for example.

Referring again toFIGS. 3 and 4, the user input devices375,475may be configured to detect a user motion, interpret the motion, and translate the motion to direction information. In certain embodiments, the user input device may also translate the motion to speed information. In certain embodiments, the user input device may provide the direct/speed information to the television tuning device, for the television tuning device to identify, process, and perform in accordance with instructions and/or commands. In certain embodiments, the user input device may identify instructions and/or commands based on the direct/speed information and provide the instructions and/or commands to the television tuning device.

In the non-limiting example depicted inFIG. 3, the user input device375includes a touch screen377. In some embodiments, the touch screen377may include a display that is sensitive to touch. In some embodiments, the display may present an image corresponding to what is displayed on the display180,280. In some embodiments, the touch screen377may not include a display. The user may interact with the user input device375via finger contacts on the touch screen377.

The user input device375includes a memory communicatively coupled to one or more processors (e.g., a microprocessor) for processing the functions of the user input device375. The user input device375can also include at least one computer-readable medium coupled to the processor(s), which stores application programs and other computer code instructions for operating the device, such as an operating system (OS). The mobile/native application may be stored in the memory and/or computer-readable media. The computer-readable medium can include a touch processing application. In certain embodiments, the touch processing application can automatically run each time that a user accesses the mobile application. In some embodiments, the touch processing application can run continuously (e.g., in the background) or at other times, such as when the touch processing application is initiated by a user. With some embodiments, the touch processing application is separate from the mobile/native application. The touch processing application may have been pre-installed on the platform of the user input device375. In other embodiments, the mobile/native application may include the touch processing application. The mobile/native application and/or the touch processing application can be used to detect finger contact from the user and process the analog input to derive digital information for transfer to the television tuner device. Use of the term “application” herein should not be construed as limiting, for certain embodiments may employ any instructions and/or circuitry to convert analog, motion-based user input to information usable by the television tuner device.

Thus, the touch screen377may be used to remotely access linear video in analog way. The user input device and/or the television tuning device may be configured to allow the user to navigate the content displayed. Instead of requiring button pushing, the user input device375may be configured to detect a movement of the user. Specifically, in certain embodiments, the user input device375may be configured to detect finger contacts on the touch screen377in various ways according to certain embodiments. In certain embodiments, the user may use the user input device375to navigate recorded video, such as a program that that was previously recorded by the DVR/PVR, a program that is buffered as the user views the program, recorded video on any medium such as a DVD, and/or any linearly accessed video stream. The user may wish to access different portions of recorded video and/or EPG information by scrolling forward or backward through the displayed content. The scrolling may be referred to as fast-forwarding and rewinding, respectively. With forwarding or rewinding at relatively faster rates, scrolling may include skipping certain frames or segments of displayable content. In certain embodiments, the user may use the user input device375for EPG navigation in the same or similar way.

To indicate a desired screen scroll, the user may apply finger contact to the touch screen337. The user may touch the touch screen337at a first location and drag to a second location, in a certain direction or general direction and in a certain time. Such as user input may be referenced as a finger swipe.

A finger swipe across a portion of the touch screen377is indicated inFIG. 3by arrow378. The finger wipe378may be directed toward the right as depicted, or substantially directed toward the right. Such a direction may be detected by the touch screen377, and the analog input of the finger swipe378may be processed by the user input device375into direction information. The processing may allow for variances in the finger swipe. For example, the finger swipe may be in various portions of the touch screen377; the finger swipe may not be perfectly horizontal with respect to the touch screen377; the finger swipe may not be perfectly straight; the finger swipe may be of varying lengths; etc. The user input device375may include conditioning electronics/instructions to handle such variances and derive direction information to correlate to a particular scroll function. The conditioning could include algorithmic and/or heuristic aspects. Thus, the user input device375may have smart translations features to account for input variances.

In the example depicted, the finger swipe377may correspond to a fast-forward instruction in certain embodiments directed to video stream navigation; the finger swipe377may correspond to a rightward scroll instruction in certain embodiments directed to EPG navigation. Though not depicted, a finger swipe in the opposite, or generally opposite, direction (i.e., to the left of the figure) may correspond to a rewind or leftward scroll instruction. Accordingly, scrolling direction may correspond to a direction, or a derived direction, of finger swipe on the user input device375.

In the non-limiting example depicted inFIG. 4, the user input device475is a handheld device that includes a motion-sensing technology. Accordingly, the user input device475may be configured to detect based on the movement of a user. The motion-sensing technology may include accelerometers, cameras, motion sensors, and/or gyroscopic devices for recognizing movements. The user input device475may allow a user to control displayed items or graphics, such as a cursor, through movements of his or her hand or arm that cause a displacement of the user input device475. The user input device475may be configured to identify a direction of movement and a speed of movement. The user input device475may include any suitable processing, memory, and other resources discussed above to allow a viewer to remotely access linear video in analog way in a fashion similar to the user input device375. The user input device475and/or the television tuning device may be configured to allow the user to navigate the content displayed based on movement of the user, for example, by way of detecting lateral movement in various ways according to certain embodiments and correlating the movement to scrolling forward or backward through the displayed content of recorded video and/or an EPG.

To indicate a desired screen scroll, the user may move the user input device475to the side. In some embodiments, the user may flick the user input device475to the side with a short range of motion. In some embodiments, the user may move the user input device475to the side with a wide range of motion. In some embodiments, the user may tilt the user input device475to the side. Accordingly, the user may indicate a desired direction with a movement that is indicated inFIG. 4by arrow478. The movement478may be directed toward the right as depicted, or substantially directed toward the right. The analog input of the movement478may be detected by the user input device475and processed by the user input device475into direction information. The processing may allow for variances in the movement detected. The user input device475may include conditioning electronics/instructions to handle such variances and derive direction information to correlate to a particular scroll function. The conditioning could include algorithmic and/or heuristic aspects. Thus, the user input device475may have smart translations features to account for input variances.

In the example depicted, the movement478may correspond to a fast-forward instruction in certain embodiments directed to video stream navigation; the movement478may correspond to a rightward scroll instruction in certain embodiments directed to EPG navigation. Though not depicted, a movement in the opposite, or generally opposite, direction (i.e., to the left of the figure) may correspond to a rewind or leftward scroll instruction. Accordingly, scrolling direction may correspond to a direction, or a derived direction, of movement of the user input device475.

A speed of movement may be detected as an indication of a desired screen scroll speed. For example, a speed of the finger swipe378may be detected as well the direction of the swipe; likewise, a speed of the movement478may be detected as well the direction of the swipe. The faster the detected speed is, the faster the scroll speed may be. The variances in scroll speed may include any number of predetermined rates. For example, in embodiments involving recorded video navigation, any number of scroll rates may be possible including, but not limited to 2×, 4×, 8×, 16×, 32×, 50× . . . N× the normal play rate.

FIG. 6represents one non-limiting example of a scroll rate of 8× on a display680, responsive to the finger swipe378and/or the movement478. Progress bar610may be displayed by the display680. Progress bar610may be rendered for display by the television tuner device and may be transmitted for display to the display680. Progress bar610may represent programming that has been recorded for a period of time on a particular television channel as part of a recorded array of television channels. Displayed information630may indicate the television channel, the day, and/or the range of times during which the recorded television channel is available. Displayed scroll speed631may indicate the scroll rate. Indicator640may indicate where playback of the recorded television channel is currently occurring within the entire recorded television channel for the period of time.

Referring again toFIG. 3, a predetermined scroll rate may be associated with a predetermined finger swipe speed and/or range of finger swipe speeds. In some embodiments, the variances in scroll speeds may be not be determined and may be adaptive to various finger swipe speeds. In some embodiments, the user input device375may adaptive to variations of finger swipe speed specific to a user, thereby taking into account that some users may have quicker movement habits/abilities than others.

Accordingly, scrolling speed may correspond to a speed associated with the finger swipe. A faster scrolling speed may correspond to a faster finger swipe. Scrolling speed may be proportional to the speed of movement. Various embodiments may implement proportional speed control in various ways. A baseline finger swipe speed may be predetermined and associated with a low scroll speed. For example, a baseline finger swipe speed may be associated with a scroll speed of 2× the normal rate of play in the case of recorded video navigation. The screen scroll speed may be directly proportional to finger swipe speed.

In some embodiments, scrolling speed may correspond to the distance of finger swipe378. A longer distance may be correlated to a faster scrolling speed. Conversely, a shorter distance may be correlated to a slower scrolling speed.

In some embodiments, scrolling speed may correspond to a number of finger swipes378in succession over a certain time period. For example, a user may apply two, three, or more finger swipes in rapid succession, which would then be translated to a faster scrolling speed(s). As another example, if the user already initiated a fast-forward operation and, then, while fast-forward operation continues, again applies one or more finger swipes, the user input device and the television tuning device may respond by increasing the rate of the scrolling speed.

Referring toFIG. 4, a predetermined scroll rate may be associated with a predetermined speed and/or range of speeds corresponding to movement of the user input device475. In some embodiments, the variances in scroll speeds may be not be determined and may be adaptive to speeds of user input device movement. In some embodiments, the user input device475may adaptive to variations of finger swipe speed specific to a user, thereby taking into account that some users may have quicker movement habits/abilities than others.

Accordingly, scrolling speed may correspond to a speed associated with the user input device movement. A faster scrolling speed may correspond to a user input device movement. Scrolling speed may be proportional to the speed of movement. Various embodiments may implement proportional speed control in various ways similar to the features discussed above in relation to the embodiments of the user input device375. In some embodiments, scrolling speed may correspond to the distance of that the user input device475is moved. A longer distance may be correlated to a faster scrolling speed. Conversely, a shorter distance may be correlated to a slower scrolling speed.

In some embodiments, scrolling speed may correspond to a number of movements of the user input device475in succession over a certain time period. For example, a user may move the user input device475two, three, or more finger swipes in rapid succession, which would then be translated to a faster scrolling speed(s). As another example, if the user already initiated a fast-forward operation and, then, while fast-forward operation continues, again moves the user input device475one or more finger additional times, the user input device475and the television tuning device may respond by increasing the rate of the scrolling speed. In certain embodiments, a viewer may select a motion sensing mode prior to navigation with the user input device475. For example, the viewer may press button and flick or otherwise move the user input device475.

In various embodiments, a scroll operation may take various forms.FIG. 7Aillustrates characteristics of one form of a scroll operation, in accordance with certain embodiments. Graph702characterizes scroll speed versus time. Responsive to a finger swipe378on the touch screen377or a movement478of the user input device475, the scrolling speed may increase in any manner and maintain a speed704. Thus, the scroll speed may plateau at speed704. In some embodiments, the speed704may be maintained for a predetermined time until point706and then ramp down. In some embodiments, the speed704may be maintained until receiving another finger contact on the touch screen337or another input with user input device475(e.g., selecting a button, a movement in the opposite direction, a downward movement, a forward movement, etc.), at which point704, the speed may ramp down.

In some embodiments, where the viewer maintains finger contact with the touch screen377at the end of the finger swipe, the speed704may maintained based on the viewer maintaining finger contact with the touchscreen; thus, the when the user removes finger contact at point706, the speed may ramp down. In certain embodiments, the speed higher than normal play speed may continue for a time after the viewer removes the finger from the touchscreen, where the continuance is based on the length of time that the viewer maintained finger contact with the touchscreen at the end of the finger swipe. Thus, for non-limiting example, if the viewer maintained finger contact with the touchscreen at the end of the finger swipe for 3 seconds, the speed higher than normal play speed may continue for 3 seconds after finger removal. Of course, it should be understood that the time of continuance may not be equivalent to the time of static finger contact, but may be based on the time of static finger contact in any suitable way. In some embodiments, similar functionality may be implemented with the user input device475, for example, by maintaining a position at the end of the movement478, maintaining a tilt orientation, selection of a button, and/or the like.

In some embodiments, such as in the case of fast-forwarding recorded video, the ramp down may actually be rollback in the stream a certain number of frames to account for delay in response time of the user after seeing a desired point in the stream. In some embodiments, such as in the case of navigating recorded video, the speed may ramp down from the top scrolling speed to normal play speed. In some embodiments, such as in the case of scrolling with an EPG, a similar rollback functionality may be implemented.

FIG. 7Bis a graph712that illustrates characteristics of another form of a scroll operation, in accordance with certain embodiments. Responsive to finger swipe or device movement, the scroll speed may ramp up to a speed714and then ramp down without further user input. The deceleration of the ramp-down may correspond to the acceleration of the ramp-up in some embodiments. In certain embodiments, the deceleration of the ramp-down may be proportional to the acceleration of the ramp-up.

FIG. 7Cis a graph722that illustrates characteristics of another form of a scroll operation, in accordance with certain embodiments. Responsive to finger swipe or device movement, the scroll speed may ramp up to a speed724, then ramp down to a speed726at point728, and then maintain the speed726for a time. The point728may be predetermined in some embodiments. In some embodiments, the point728may be determined by a finger contact after the swipe or another device input as discussed above. In some embodiments, the speed726may be maintained for a predetermined time and then ramp down. In some embodiments, the speed726may be maintained until another finger contact or another device input is received, and then ramp down.

FIG. 7Dis a graph732that illustrates characteristics of yet another form of a scroll operation, in accordance with certain embodiments. As depicted, the ramp-up and ramp-up may have varying forms, with a faster ramp-up and a slower ramp-down. It should be understood that any suitable variation/combination of scrolling operations may employed with certain embodiments.

FIG. 8A,FIG. 8B, andFIG. 8Cillustrate another navigation feature, in accordance with certain embodiments of the present disclosure.FIG. 8Adepicts an example display802of an EPG that may be displayed on the display device880. The example display802shows an EPG view that takes up the entire screen of the display device880. In some embodiments, the EPG view may not take up the entire screen, but only a portion, such as a lower portion, a side portion, a combination of lower and side portions, etc. In some embodiments, a viewing window that may display a program may be displayed in addition to the EPG view. The EPG view802show a certain view of the overall EPG information with certain times804, certain channels806, and certain corresponding programs808. The EPG view802may exemplify what a viewer may see prior to a scroll operation.

In some embodiments, a scroll operation may include a zoom operation. As a screen scroll proceeds, the view of the EPG may zoom out to show an expanded view that encompasses more the EPG information.FIG. 8Bdepicts an example EPG view810corresponding to a screen scroll (represented by arrow812) toward the right. The EPG view810represents an expanded view encapsulating times814that are later in time than the times804of the previous view802and that have a greater range than the times804of the previous view802. The expanded EPG view810also encapsulates channels816that have a greater range than the channels806of the previous view802. The expanded EPG view810also encapsulates programs818corresponding to the times814and the channels816. In this way, the viewer is afforded an expanded perspective when navigating the EPG.

FIG. 8Cdepicts an example EPG view820corresponding that may be seen at the end of a screen scroll operation, in some embodiments. At the end of the scroll operation, the displayed viewed has returned to the same zoom level of the view802before the screen scroll. As compared to the EPG view802, the EPG view820depicts programs828corresponding to channels826, which may be the same as previously displayed channels806, at later times824.

Such zoom navigation features may implemented with any one or combination of screen scroll operations disclosed herein. Accordingly, the EPG view may zoom out as the scroll speed increases and zoom in as the scroll speed decreases. In some embodiments, the degree of zoom adjustment may be based on the scroll speed. In some embodiments, the degree of zoom adjustment may be proportional to the scroll speed. In some embodiments, the zoom level may not return to the initial zoom level before the screen scroll. In some embodiments, the final zoom level may be determined by user input. In some embodiments, the zoom navigation features and/or scroll navigation features may be user-customizable.

It should be appreciated that, while one-dimensional scrolling navigation features have been discussed, certain embodiments could include multi-dimensional scrolling navigation features. For example, EPG navigation may allow for scrolling up and down the EPG view, thus allowing for scrolling along programming information for various channels for a given time frame.

As depicted inFIG. 9, for example, the user may apply one or more variously oriented finger swipes with the touch screen377of the user input device375, as indicated inFIG. 9by arrows978A,978B, and978C-F. The finger swipe978A, which may correspond to an upward or generally upward swipe, may result in scrolling upward through the EPG. The finger swipe979B, which may correspond to a downward or generally downward swipe, may result in scrolling downward through the EPG. Each of the finger swipes978C-F, which may correspond to an angular swipe, may result in scrolling at an angle through the EPG. Additionally, though not shown, zooming features may be used with the EPG. For example, a two-fingered pinching contact on the touch screen377may cause the displayed EPG view to zoom out; and a two-fingered spreading contact on the touch screen377may cause the displayed EPG view to zoom in.

Similarly, as depicted inFIG. 10, for example, the user may apply one or more variously oriented movement with the user input device475, as indicated inFIG. 10by arrows1078. While the arrows1078are depicted a plane corresponding the plane of the user input device475, which could be a horizontal plane, the directional movements could be along or generally along any plane or combination of planes. For example, an upward vertical movement of the device475could cause an upward scroll of the EPG; and a downward vertical movement of the device475could cause a downward scroll of the EPG. An angular movement of the device475could cause scrolling at an angle through the EPG. Zooming could be controlled in certain embodiments by forward movement toward the display and backward movement away from the display. In some embodiments, the user input device475may have user selectable modes, such as a scrolling mode and a zooming. A toggle button could control switching between modes. The user could select the zooming mode and flick the device475in any suitable direction to zoom in/out. The user could select the scrolling mode and flick the device475in any suitable direction to scroll through the EPG.

The systems and devices previously described may be used in performing various methods.FIG. 11illustrates an embodiment of a method1100for navigation in accordance with certain embodiments of the present disclosure. Method1100may be performed using one or more of the systems or components previously described. Method1100may allow for user EPG/video navigation via movement-based instructions provided by a user. Means for performing each step of method1100may include a user input device and/or television tuning device.

Certain embodiments of the user input device may be configured to receive EPG and/or video information. For those that are, as indicated by step1102, EPG and/or video information may be received by the user input device. The received EPG and/or video information may then processed and locally displayed on the user input device, as indicated by step1104.

At step1006, a motion-based input provided by the user may be detected by the user input device. The input may be received via any suitable input interface, including without limitation, a touch screen and/or a motion detecting hand-held functionality (such as accelerometer-based/motion-sending functionality). The detection may involve application of algorithmic and/or heuristic processing, or other conditioning, as indicated by step1108. The processing may discern the received input from a multitude possible inputs and may apply various techniques to refine the received input and correlate the input to a probable input. A direction, a speed, and/or a time may be derived from the input. Multiple directions, speeds, and/or time may be derived from the input. As indicated by step1110, direction, speed, and/or time information may be determined via the processing.

In some embodiments, as indicated by step1112, the direction, speed, and/or time information may be transferred to the television tuning device. Consequently, at step1114, the television tuning device may receive direction, speed, and/or time information. In some embodiments, as indicated by step1116, the user input device may further process the direction, speed, and/or time information to determine instruction(s) based on the information. For example, the user input device may correlate the direction, speed, and/or time information to a specific EPG/navigation scroll/zoom command. Alternatively, the user input device may correlate the direction, speed, and/or time information to specific instruction(s) useable by the television tuning device in identifying a corresponding navigation operation(s). Consequently, at step1118, the user input device may transfer the instruction(s) to the television tuning device.

In the case of the television tuning device having receive direction, speed, and/or time information at step1114, the television tuning device may further process the direction, speed, and/or time information to determine instruction(s) based on the information, as indicated by step1120. At step1122, the television tuning device may perform a navigation operation, sending display information to display device. The navigation operation may include a scrolling operation and/or adjusting the zoom level of a displayed EPG view, as indicated by step1124. The navigation operation may include a scrolling operation for a video stream, as indicated by step1126. Any of the scrolling and/or zooming features discussed herein may be employed. Thus, the scrolling direction may be based on the direction information, and the scroll speed may be based on the speed information and/or time information.

In some embodiments, further user input may be detected and processed, and corresponding information and/or instruction(s) may be determined and transferred to the television tuning device, as indicated by step1128. The television tuning device may receive/determine the information and/or instruction(s), and adjust/perform navigation operations, as indicated by step1130. For example, the user may have previously indicated a scrolling operation that resulted in a first scroll speed; and the further user input may correspond to an instruction to increase the scroll speed.

FIG. 12illustrates an embodiment of a computer system1200. A computer system1200as illustrated inFIG. 12may be incorporated into devices such as a set top box (STB), a first electronic device, DVR, television, media system, personal computer, and the like. Moreover, some or all of the components of the computer system1200may also be incorporated into a portable electronic device, mobile phone, or other device as described herein.FIG. 12provides a schematic illustration of one embodiment of a computer system1200that can perform the methods provided by various embodiments. It should be noted thatFIG. 12is meant only to provide a generalized illustration of various components, any or all of which may be utilized as appropriate.FIG. 12, therefore, broadly illustrates how individual system elements may be implemented in a relatively separated or relatively more integrated manner.

The computer system1200is shown comprising hardware elements that can be electrically coupled via a bus1205(or may otherwise be in communication, as appropriate). The hardware elements may include one or more processors1210, including without limitation one or more general-purpose processors and/or one or more special-purpose processors (such as digital signal processing chips, graphics acceleration processors, and/or the like); one or more input devices1215, which can include without limitation a mouse, a keyboard, a camera, and/or the like; and one or more output devices1220, which can include without limitation a display device, a printer, and/or the like.

The computer system1200might also include a communications subsystem1230, which can include without limitation a modem, a network card (wireless or wired), an infrared communication device, a wireless communication device, and/or a chipset (such as a Bluetooth™ device, an 1202.11 device, a WiFi device, a WiMax device, cellular communication facilities, etc.), and/or the like. The communications subsystem1230may include one or more input and/or output communication interfaces to permit data to be exchanged with a network (such as the network described below, to name one example), other computer systems, television, and/or any other devices described herein. Depending on the desired functionality and/or other implementation concerns, a portable electronic device (or similar device) may communicate image and/or other information via the communications subsystem1230. In other embodiments, a portable electronic device, e.g. the first electronic device, may be incorporated into the computer system1200, e.g., STB, as an input device1215. In many embodiments, the computer system1200will further comprise a working memory1235, which can include a RAM or ROM device, as described above.

As mentioned above, in one aspect, some embodiments may employ a computer system (such as the computer system1200) to perform methods in accordance with various embodiments of the technology. According to a set of embodiments, some or all of the procedures of such methods are performed by the computer system1200in response to processor1210executing one or more sequences of one or more instructions (which might be incorporated into the operating system1240and/or other code, such as an application program1245) contained in the working memory1235. Such instructions may be read into the working memory1235from another computer-readable medium, such as one or more of the storage device(s)1225. Merely by way of example, execution of the sequences of instructions contained in the working memory1235might cause the processor(s)1210to perform one or more procedures of the methods described herein. Additionally or alternatively, portions of the methods described herein may be executed through specialized hardware.

The communications subsystem1230(and/or components thereof) generally will receive signals, and the bus1205then might carry the signals (and/or the data, instructions, etc. carried by the signals) to the working memory1235, from which the processor(s)1210retrieves and executes the instructions. The instructions received by the working memory1235may optionally be stored on a non-transitory storage device1225either before or after execution by the processor(s)1210.