Profile driven communication polling for remote control

System, method and computer program product for determining a polling schedule for a remote control, are described. A multimedia device collects usage data that identifies when the multimedia device is in use. The probability that the multimedia device is in use for a particular time is determined based on the usage data. A polling schedule is generated based on the usage probability such that the periods in the polling schedule vary according to the usage probability to minimize energy consumption. The polling schedule is then transmitted to the remote control where the remote control polls the multimedia device according to the polling schedule.

FIELD

The field relates generally to a remote control device, and more specifically to conserving battery life of the remote control device.

BACKGROUND

A remote control controls functionality of a multimedia device. For example, a remote control may select streaming content that the multimedia device displays using a television set, or control functionality of the television set. Conventionally, a remote control uses a battery to control the multimedia device. Because the battery life is finite, there is a need to conserve battery life of the remote control.

BRIEF SUMMARY

System, method, and a computer program product embodiments, and combinations and sub-combinations thereof, for determining a polling schedule for a remote control, are disclosed. In an embodiment, a multimedia device collects usage data that identifies when the multimedia device is in use. The probability that the multimedia device is in use for a particular time is based on the usage data. A polling schedule is generated based on the usage probability such that the time periods between the polls vary according to the usage probability. The polling schedule is transmitted to the remote control. The remote control polls the multimedia device according to the received polling schedule.

DETAILED DESCRIPTION

Provided herein are system, method and/or computer program product embodiments, and/or combinations and sub-combinations thereof, for generating a polling schedule for polling a multimedia device.

FIG. 1is a block diagram100of a system where example embodiments may be implemented.

In an embodiment, block diagram100includes a multimedia device102. Multimedia device102may be a computing device that displays media or multimedia. Example multimedia may be data that is a combination of one or more of text, audio, still images, video, etc. In another example, multimedia device102may be a data streaming device that provides streaming content over a network for display on a television set104or another display device that has or is coupled to a display screen, such as a computer. Example streaming content includes multimedia content, such as, movies, television episodes, advertisements, commercials, news, streaming channels, video clips, video games, on-demand video content, and photos. Example streaming content also includes audio and Internet content, to name a few examples.

Example multimedia device102may be a streaming stick or a streaming player, or a device that is included as part of display or a multimedia rendering device that is included in, for example, a television set104. In an embodiment, multimedia device102provides content, including multimedia and streaming content to television set104using, for example, High-Definition Multimedia Interface (“HDMI®”), composite cables, V-by-one HS cable, low-voltage differential signaling (“LVDS”) cable or other connecting means. HDMI is a proprietary audio/video interface for transferring uncompressed video data and also for transferring compressed and/or uncompressed audio data between HDMI compliant devices.

In a further embodiment, multimedia device102includes communication interface that connects multimedia device102to other computing devices. Communication interface may include an Ethernet port, Universal Serial Bus (“USB”) port and a memory card port, to name a few examples. In a further embodiment, multimedia device102may also display the content of other computing devices on television set104. In a further embodiment, these multimedia devices102may be daisy-chained together, such as, when a digital video recorder (“DVR”) is connected to a cable box.

In an embodiment, multimedia device102may be a portable device that may be transported to different locations and be connected to television set104or another device that displays streaming content at one of these different locations. In another embodiment, multimedia device102and television set104may be combined into a single device (not shown). In yet another embodiment, multimedia device102may also deliver content wirelessly, using, for example, a Wi-Fi.

In an embodiment, to obtain streaming content over a network, multimedia device102may utilize one or more networks, collectively referred to as network106. In an embodiment, network106may be a wired and/or wireless network. Network106may also include interconnected computer networks, referred collectively as the Internet. In an embodiment, network106may include private, public, academic, business, and government networks that include extensive amounts of information and resources.

In an embodiment, the resources that are connected to network106include a content distribution server108. Content distribution server108stores and distributes streaming content110over network106. To store streaming content110, content distribution system108may include a database storage or another non-volatile storage discussed, for example, in detail inFIG. 6. At the request of multimedia device102, content distribution server108provides requested streaming content110to multimedia device102for streaming and eventual display on television set104.

In an embodiment, a remote control112controls, manipulates and otherwise accesses multimedia device102and/or television set104(remote control112may also interact with other devices, such as receivers, digital video disc (DVD) players, amplifiers, etc.). For example, remote control112may include buttons for turning multimedia device102on and off, channel selection buttons, volume control buttons, channel shortcut buttons, and programmable “favorites” buttons that store a shortcut to favorite channels, movies, on-demand content, etc. In another example, remote control112can be used to navigate to movies, music, shows, etc., stored on content distribution server108that may be selected for viewing and displaying on television set104via multimedia device102. In a further embodiment, remote control112includes a built-in headphone jack for private listening, as well as motion control and gaming buttons. In yet another embodiment, remote control112includes an audio interface that may be turned on and off based on a request from multimedia device102that, for example, may identify a location of remote control112or play audio alerts.

In a further embodiment, system100also includes a portable computing device114. Portable computing devices114may include smartphones, tablets, media players, and other like devices. Portable computing device114may download and store applications, that, when executed on portable computing device114, cause the portable computing device114to simulate functionality of remote control112as discussed inFIGS. 1-6.

In a further embodiment, remote control112may include hardware, including a memory, a processor and a communication interface, as well as combinations and/or sub-combinations thereof, that are described, for example, in detail inFIG. 6, and that enable remote control112to receive and process data with, and on behalf of, multimedia device102. For example, multimedia device102may generate or receive messages, firmware updates, ringtone updates, etc., over network106that multimedia device102may communicate to remote control112. For example, multimedia device102may send a message to remote control112that causes remote control112to play a ring tone. In another example, multimedia device102may receive new firmware or ringtones that may be downloaded and executed on remote control112. In another example, multimedia device102may transmit a message, such as a news message, an alert message, or a message from another user who may be also using multimedia device102to remote control112. Once remote control112receives the message, remote control112may perform functions associated or required by the received message. For example, remote control112may play the message using the audio hardware included or coupled to remote control112, or execute the firmware upgrade. In another embodiment, remote control112may also receive and play a message from multimedia device102when multimedia device102completes pairing remote control112to multimedia device102.

In an embodiment, to receive messages, firmware upgrades, etc., from multimedia device102, remote control112is communicatively coupled to multimedia device102via a wired or wireless network. To maintain communication with multimedia device102, as well as to process messages and firmware upgrades, remote control112requires a power source. An example power source is a rechargeable or non-rechargeable battery that is known to a person of ordinary skill in the art. A battery stores a finite amount of energy. When the energy is drained the battery must either be recharged or replaced. For example, the battery may be drained when remote control112and multimedia device102maintain a wired or wireless connection without exchanging data, such as, but not limited to messages, alerts, or firmware upgrades.

One way to conserve battery life on remote control112is for remote control112to intermittently communicate with multimedia device102, rather than maintain a constant wired or wireless connection. In an embodiment, remote control112polls multimedia device102at predetermined time intervals. When remote control112polls multimedia device102, remote control112alternates between a low power standby mode (or “sleep” mode) and a higher power mode (or “awake” mode). For example, remote control112remains in the sleep mode and periodically switches to an awake mode. During the awake mode, remote control112communicates with multimedia device102or television set104, as well as receives and processes messages, firmware upgrades, etc., from multimedia device102. Typically, remote control112polls multimedia device102at different fixed time intervals, for example every ten or fifteen seconds. In an embodiment, to further conserve battery life, the time interval when remote control112polls multimedia device102may vary based on the activity that occurs on multimedia device102or the battery level of remote control112.

As discussed above, when remote control112polls multimedia device102, remote control112switches between a sleep mode and an awake mode. In an embodiment, the polling mechanism controls the time periods when remote control112remains in a sleep mode before switching to an awake mode. In a further embodiment, these time periods may be adjusted based on when multimedia device102is being classified as being in an active mode or in an idle mode. When multimedia device102is in an active mode, remote control112may poll multimedia device102more frequently than when multimedia device102is in an idle mode.

In an embodiment, whether multimedia device102is in an active or idle mode may depend on predefined criteria. For example, the criteria may determine that multimedia device102is in active mode when multimedia device102is likely to receive communication from remote control112, and in an idle mode when multimedia device102is unlikely to receive communication from remote control112.

For example, multimedia device102may be in an active mode when multimedia device102streams streaming content110, streams streaming content110of a particular type, streams streaming content110of a predetermined length, or streams streaming content110for less than a predetermined amount of time. For example, when multimedia device102streams content that include commercials, video clips, cartoons and sitcoms, or has streamed a movie for, for example, less than ten minutes, multimedia device102may be classified as being in the active mode because a user is likely to use remote control112during this time.

In another example, multimedia device102may be in an idle mode when not streaming content110, or is streaming content110that is greater than a predefined length. For example, when multimedia device102is not streaming content110(or, in some embodiments, not continuously streaming content), multimedia device102might be classified as being in an idle mode since it is not being used; thus the user is unlikely to use the remote control112. As another example, when multimedia device102streams movies and concerts for more than ten minutes, multimedia device102may be classified as being in an idle mode because a user is unlikely to use remote control112during extended viewing.

In another embodiment, multimedia device102may be classified as being in an active mode or an idle mode based on the time of day. For example, at night, when multimedia device102is not likely to be used, such as, for example, from 1:00 am to 4:00 am, multimedia device102may be classified as being in an idle mode. In another example, in the evening when multimedia device102is more likely to be used, for example from 7:00 pm to 11:00 pm, multimedia device102may be classified as being in an active mode.

As discussed above, the polling period during which remote control112polls multimedia device102may be a function of whether multimedia device102is predicted to be in an active mode or an idle mode. For example, when multimedia device102is predicted to be in an idle mode, the time period between polls on remote control112may be set to a longer time period than when multimedia device102is predicted to be in an active mode. As a result, over time remote control112will poll multimedia device102less frequently, and thus the battery life of remote control112will be extended.

In an embodiment, the time periods for polling multimedia device102may be determined based on usage probability of multimedia device102. The usage probability is a probability of whether multimedia device102is in an active mode or in an idle mode at a particular time. The usage probability of multimedia device102may be determined from a combination that may include, for example, usage data and predictive machine learning algorithm, such as a Bayesian network. Once the usage probability for multimedia device102is determined, the usage probability may be correlated to a time period between polls via a function, including but not limited to a step or a Gaussian function.

The details for determining a time period between polls are described below.

FIG. 2Ais a block diagram200A of a remote control device and a multimedia device, according to an embodiment. Although the embodiments below are described with respect to multimedia device102, the embodiments can also be applied to any device that communicates with remote control112or any device that performs the functions and simulates functionality of remote control112.

In an embodiment, multimedia device102includes a usage monitor202, a probability generator204, and a poll scheduler206.

Usage monitor202records usage data208. Usage data208reflects when multimedia device102was in an active mode or an idle mode. Whether multimedia device102is in the active mode may be based on one or more criteria. Examples of when multimedia device102may be in an active mode include when multimedia device102requests content, selects a channel, streams content, etc. In another example, multimedia device102may be in an active mode when multimedia device102selects a movie, but not when the movie is streaming. In another example, multimedia device102may be in an active mode when multimedia device102plays a movie clip or a short movie, or data content in general that plays for less than a predetermined amount time. In another example, multimedia device102may be considered to be in an active mode when multimedia device102streams a particular type of streaming content. In another example, multimedia device102may be in an active mode when multimedia device102is on.

In a non-limiting embodiment, usage data208includes data that indicates when multimedia device102was in an active mode or an idle mode. Example data includes a “month,” “day,” “hour” and “in-use” flag as shown in exemplary table210. The “month,” “day,” and “hour” categories indicate the time and the “in-use” flag indicates whether multimedia device102was in an active or idle mode during the indicated time. In an embodiment, the “in-use” flag may be a Boolean number that has a “true” or “false” state, or an integer that may be set to “zero” or “one,” where “one” being an indication for multimedia device102being in an active mode and “zero” being an indication for multimedia device102being in an idle mode, or vice versa. In a further embodiment, as shown inFIG. 2A, the “in-use” flag may be set to an alphabetic letter “Y” or “N”, where “Y” indicates an active mode and “N” indicates an idle mode, or vice versa. For example, usage data208in table210indicates that on January 2, at 2:00 am and on December 31, at 11:00 pm multimedia device102was in an active mode, while on January 1 at midnight, and January 2, at 1:00 am, multimedia device102was in an idle mode.

In an embodiment, probability generator204determines the probability of whether multimedia device102will be in an active or idle mode at a particular future time, also referred to as usage probability212. For example, probability generator204receives usage data208from usage monitor202, and generates a usage probability212from usage data208. In an embodiment, probability generator204generates usage probability212using a predictive learning machine algorithm. An example predictive learning machine algorithm may include a Bayesian network that correlates the day and/or time in the past to whether multimedia device102was in an active mode or in an idle mode. A person skilled in the art will appreciate that a Bayesian network represents a set of random variables and their conditional dependencies via a directed acyclic graph, such as a diagram inFIG. 3, below.

In an embodiment, probability generator204receives usage data208that includes a “month,” “day,” “hour,” and “in-use” data for multimedia device102. Probability generator204then generates usage probability212that multimedia device102will be “in-use” for a given “day” and “hour.” An example usage probability212is shown in table211. As shown in exemplary table211, the usage probability of multimedia device being used on Monday at on or about 1:00 a.m. is 25%, while on Sunday at on or about 11:00 pm is 85%.

In an embodiment, to generate usage probability212, probability generator204determines a sum of times that multimedia device102was in use at a particular time over a predetermined number of days and divides the sum by the total number of times that multimedia device102was polled at the particular time over the predetermined number of days. The result may be a probability that multimedia device102will be in use at a particular time.

In an embodiment, poll scheduler206receives usage probability212for each “day” and “hour” and uses usage probability212to determine a polling schedule214. Polling schedule214includes a time period for each time frame that includes a “day” and “hour.” An example polling schedule214is shown in table215where on Monday at midnight the time period between polls is 15 seconds, while on Monday at 2:00 am the time period between polls is 10 seconds.

In an embodiment, poll scheduler206determines a time period between polls for each “day” and “hour” using a step function or a Gaussian function. In a step function, if multimedia device102has a probability of being in an active mode more than a predefined percentage, than the period between polls may be set to a first value, and if a probability that multimedia device102is in an active mode is less than the predefined percentage, the time period between polls is set to a second value. In an embodiment, the first value may be greater than the second value.

In a Gaussian function, the polling period may be set to different times, based on the probability. For example, if the polling period is defined using Gaussian function y(x), where y(1.00)=10 and y(0.00)=15 (where 1.00 indicates 100% usage probability and 0.00 indicates 0% usage probability), then the polling period for probabilities between 0.00 and 1.00 would be between 10 and 15 seconds.

In another embodiment, poll scheduler206may determine a time period between polls using a bimodal or a multimodal distribution of the probability values. Bimodal and multimodal distributions may be multiple Gaussian functions combined together. For example, in a bimodal or multimodal function, poll scheduler206sets a polling period around particular polling probabilities. For example, if probability that multimedia device102is in the active mode is 25%, time period between polls may be 15 seconds, but when probability that multimedia device102is in the active mode is 75%, the time period between polls may be 10 seconds.

In a further embodiment, a time period between polls may be measured in seconds, minutes, hours or any other unit of time.

In an embodiment, once poll scheduler206determines the time period between polls for each “day” and “hour,” multimedia device102transmits polling schedule214to remote control112via networks216A and/or216B.

In a further embodiment, probability generator212and poll scheduler206may recalculate polling schedule214as usage data208changes or at predefined time intervals. The multimedia device102then transmits the recalculated polling schedule214to remote control112.

In an embodiment, network216A may be a local wireless network, such as a Wi-Fi network, Bluetooth®, or a local area network that connects multimedia device102to remote control112. In a further embodiment, multimedia device102may be connected to remote control112using a wired network or cable, collectively referred to as network216B. An example network216B may be implemented using a Universal Serial Bus (“USB”) cable or another cable. In a further embodiment, multimedia device102may transmit polling schedule214to portable computing device114using network106where portable computing device114simulates remote control112.

In an embodiment, remote control112includes a poll scheduler218and a timer220. When remote control112receives polling schedule214, remote control112stores polling schedule214as polling schedule214R in memory storage included in remote control112. An example polling schedule214R may be represented in table215R.

Remote control112then polls multimedia device102according to polling schedule214R. For example, poll scheduler218accesses polling schedule214R, and based on the “day” and “time” in polling schedule214R sets timer220to a time period that corresponds to the “day” and “time” in polling schedule214R. For example, on Monday at midnight, polling scheduler218sets timer220for 15 seconds. Once timer220is set, or a configurable period of time thereafter, remote control112enters a sleep mode for the set time period and conserves the battery of remote control112. Once the time period set by timer220expires, remote control112enters an active mode and polls multimedia device102. Polling scheduler218then sets timer220for another time period as specified in polling schedule214R. This way, remote control112stays in a sleep mode for a longer period of time when historically multimedia device102is in the idle mode, and for a shorter period of time when historically multimedia device102is in the active mode.

FIG. 2Bis a block diagram200B of a remote control and a multimedia device, according to an embodiment. In block diagram200B, usage monitor202may transmit usage data208to remote control112where probability generator204, and/or poll scheduler206determine polling schedule214. In a further embodiment, remote control112may calculate polling schedule214when remote control112recharges its battery, when the charge is above a predefined threshold, or at preconfigured time intervals.

FIG. 2Cis a block diagram200C of remote controls and a multimedia device, according to an embodiment. In block diagram200C, several remote controls112and/or portable computing devices114that simulate remote controls112are communicatively connected over network216A or216B (collectively referred to as network216inFIG. 2C) and include one or more probability generators204and poll schedulers206(not shown.) Probability generators204and poll schedulers206can calculate polling schedule214individually or collectively and in parallel from usage data208that is generated by multimedia device102. For example, each remote control112may receive a portion of usage data208from one or more multimedia devices102. Remote controls112may then use probability generator204and poll scheduler206to determine polling schedules associated with each remote control112and then combine the individual polling schedules into polling schedule214. For example, the individual polling schedules may be transferred via network216to a single remote control112A, where remote control112A combines the individual polling schedules into polling schedule214.

In a further embodiment, remote controls112that are connected to a power source and are recharging may receive usage data208such that remote controls112generate the respective polling schedules while being plugged into a power source to thereby further conserve the battery life. In another embodiment, remote controls112may calculate polling schedule214when the charge is above a predefined threshold, or at preconfigured time intervals.

In another embodiment, multiple multimedia devices102may communicate with each other and generate a polling schedule from usage data associated with multiple multimedia devices102. The polling schedule may then be distributed to remote controls112and portable computing devices114via network216(which may be a combination of networks106A and/or106B), where remote controls112and portable computing devices114poll multimedia devices102according to the polling schedule associated with multiple multimedia devices102.

FIG. 3is a diagram300of a Bayesian network that correlates usage of a multimedia device to time, according to an embodiment. As shown in diagram300, the Bayesian network may be one of several machine learning methodologies that determine usage probability212from usage data208. For example, Bayesian network determines usage probability212of multimedia device102by correlating when multimedia device102was in-use306(in active or idle mode) to day302and hour304, and repeating the correlation over weeks or months. As discussed above, usage probability212may be constructed based on the historical usage of multimedia device102described in usage data208.

FIG. 4is a flowchart of a method400for determining a polling schedule, according to an embodiment.

At operation402, a multimedia device records usage data. For example, usage monitor202records usage data208based on the usage of multimedia device102. As discussed above, usage data208identifies when multimedia device102is in an active or idle mode, as specified according to a predefined criteria. Example criteria may include streaming content110which will likely involve the use of remote control112, such as, multimedia content that is shorter than a predefined length or content of a particular type. When multimedia device102processes multimedia content that matches the criteria, usage monitor202records that multimedia device102is in an active mode or in an idle mode.

At operation404, the multimedia device determines usage probability. For example, probability generator204uses usage data208to generate usage probability212. Usage probability212is probability that multimedia device102is in an active or idle mode at a particular point in time. In an embodiment, probability generator204uses machine learning algorithms, such as Bayesian network to generate usage probability212. As discussed above, in an embodiment, probability generator204may add a number of times that multimedia device102was polled when multimedia device102was in an active mode over a particular time period, and divide the sum by a number of times multimedia device102has been polled during the particular time period.

At operation406, the multimedia device generates a polling schedule. For example, poll scheduler206generates a polling schedule214that includes polling time period for different times of day. Polling schedule214predicts whether remote control112will be active or idle during different times of day. In one embodiment, poll scheduler206correlates a particular usage probability212to a particular time period. In an embodiment, poll scheduler206may correlate usage probability212using a Gaussian function.

At operation408, the multimedia device transmits a polling schedule to a remote control. For example, multimedia device102transmits polling schedule214to remote control112, such that remote control112uses polling schedule214R to poll multimedia device102according to time periods in polling schedule214R.

FIG. 5is a flowchart of a method500for polling a multimedia device by a remote control, according to an embodiment.

At operation502, the remote control sets a period for polling the multimedia device. For example, poll scheduler218executing on remote control112determines a time period from polling schedule214R that indicates the time interval for polling multimedia device102.

At operation504, the remote control sets a timer. For example, poll scheduler218sets timer220that activates remote control112from the sleep mode at the end of the period.

At operation506, the remote control enters a sleep mode. For example, after poll scheduler218sets timer220, remote control112enters a sleep mode that conserves the battery.

At operation508, the remote control enters an awake mode. For example, remote control112enters an awake period when timer220goes off when the time period expires.

At operation510, a multimedia device is polled. For example, remote control112polls multimedia device102once remote control112enters the awake mode. After operation510, the flowchart proceeds to operation502, where poll scheduler218sets another time period as indicated in polling scheduler214R. As discussed, during the time period remote control112enters a sleep mode.

Various embodiments can be implemented, for example, using one or more well-known computer systems or one or more components included in computer system600shown inFIG. 6. Computer system600can be any well-known computer capable of performing the functions described herein.

Computer system600includes one or more processors (also called central processing units, or CPUs), such as a processor604. Processor604is connected to a communication infrastructure or bus606.

Computer system600also includes a main or primary memory608, such as random access memory (RAM). Main memory608may include one or more levels of cache. Main memory608has stored therein control logic (i.e., computer software) and/or data.

Computer system600may also include one or more secondary storage devices or memory610. Secondary memory610may include, for example, a hard disk drive612and/or a removable storage device or drive614. Removable storage drive614may be a floppy disk drive, a magnetic tape drive, a compact disk drive, an optical storage device, tape backup device, and/or any other storage device/drive.

Removable storage drive614may interact with a removable storage unit618. Removable storage unit618includes a computer usable or readable storage device having stored thereon computer software (control logic) and/or data. Removable storage unit618may be a floppy disk, magnetic tape, compact disk, DVD, optical storage disk, and/or any other computer data storage device. Removable storage drive614reads from and/or writes to removable storage unit618in a well-known manner.

According to an exemplary embodiment, secondary memory610may include other means, instrumentalities or other approaches for allowing computer programs and/or other instructions and/or data to be accessed by computer system600. Such means, instrumentalities or other approaches may include, for example, a removable storage unit622and an interface620. Examples of the removable storage unit622and the interface620may include a program cartridge and cartridge interface (such as that found in video game devices), a removable memory chip (such as an EPROM or PROM) and associated socket, a memory stick and USB port, a memory card and associated memory card slot, and/or any other removable storage unit and associated interface.

Computer system600may further include a communication or network interface624. Communication interface624enables computer system600to communicate and interact with any combination of remote devices, remote networks, remote entities, etc. (individually and collectively referenced by reference number628). For example, communication interface624may allow computer system600to communicate with remote devices628over communications path626, which may be wired and/or wireless, and which may include any combination of LANs, WANs, the Internet, etc. Control logic and/or data may be transmitted to and from computer system600via communication path626.

Computer system600may further include a power source632. Power source632supplies energy to computer system600that allows components within computer system600to function. Power source632may be a stand alone device or be incorporated into computer system600. In a further embodiment, power source632converts mains alternating-current (“AC”) into a low voltage direct current (“DC”) that is compatible with computer system600.

In an embodiment, a tangible apparatus or article of manufacture comprising a tangible computer useable or readable medium having control logic (software) stored thereon is also referred to herein as a computer program product or program storage device. This includes, but is not limited to, computer system600, main memory608, secondary memory610, and removable storage units618and622, as well as tangible articles of manufacture embodying any combination of the foregoing. Such control logic, when executed by one or more data processing devices (such as computer system600), causes such data processing devices to operate as described herein.