System to manage display power consumption

Some embodiments involve determination of a first characteristic associated with a first interface displayed by a display, and determination of a second characteristic associated with a second interface displayed by the display. Embodiments may further involve determination of a first power consumption mode for the first interface based at least on the first characteristic, and determination of a second power consumption mode for the second interface based at least on the second characteristic, wherein the first power consumption mode is different from the second power consumption mode.

BACKGROUND

During operation, a computing system consumes power from a power source. A mobile computing system may be designed to consume power from a portable and exhaustible power source, such as a battery. In order to prolong periods of mobile use, such a computing system may include elements designed to limit the amount of power consumed thereby.

These elements may include hardware and/or software for providing a low-power state during a period of relative inactivity. For example, a computing system might automatically enter a sleep state when not being used in order to reduce power consumption. Entering the sleep state may include reducing the brightness of a display, turning off a hard disk, and/or placing a processor in an idle state. As a result, energy can be conserved and/or battery life may be extended.

Some displays, such as Organic Light-Emitting Diode (OLED) displays, may be controlled such that one portion of a display consumes less power than other portions of the display. Conventional power-conserving techniques exploit this feature by displaying a user-selected window (or, alternatively, a window having “focus”) using a display method that is more power-consuming than the display method used to display other simultaneously-displayed windows.

DETAILED DESCRIPTION

FIG. 1is a block diagram of software components of system100according to some embodiments. System100includes applications110, operating system120, interface monitor130, interface activity table140, power manager150, and display driver160. The components of system100may operate to provide different power consumption modes for different displayed interfaces based on characteristics of the displayed interfaces.

Applications110may include any applications which provide one or more displayed interfaces. Examples of applications110include, but are not limited to, a word processing application, a spreadsheet application, an e-mail client, a calendaring application, gaming applications, presentation applications, and drawing applications. One or more of applications110may provide “window”-type interfaces.

Applications110may communicate with operating system120. Operating system120may control hardware components of a system in which system100resides based on instructions from applications110. Operating system120may instruct a display (not shown) to display one or more interfaces that are associated with one or more of applications110. In some embodiments, operating system120may comprise a “windowing” operating system such as Windows XP™ and/or OS X™.

Interface monitor130may determine characteristics associated with the displayed interfaces. The characteristics may be used to determine an activity measure for each of the displayed interfaces. The above determinations will be described in detail below. Interface monitor130may comprise a filter object that monitors messages received and/or transmitted by operating system120. Interface monitor130may be embodied as a service, layer, and/or core component of operating system120. Interface monitor130may also be embodied as any other executable software component, including a dynamic link library or a stand-alone application.

The determined activity measures are stored in interface activity table140. According to some embodiments, interface activity table140associates each displayed interface with an activity measure. Interface activity table140may be stored in one or more storage media, including but not limited to registers, random access memory, cache memory, and hard disk memory.

Power manager150may determine an activity measure associated with an interface from interface activity table140and may determine a power consumption mode based on the activity measure. Such determinations will also be described in detail below. Power manager150may be embodied as a service, layer, and/or core component of operating system120, and/or as any other executable software component, including a dynamic link library or a stand-alone application.

Power manager150may instruct display driver160to control a display to display a first interface according to a first power consumption mode and to display a second interface according to a second power consumption mode. In this regard, display driver160may comprise a device driver suitable to control a display that is coupled to a system in which system100resides. Display driver160may also receive instructions directly from operating system120.

FIG. 2is a block diagram of system200according to some embodiments. System200may embody the software components ofFIG. 1. System200may comprise any device or devices, including but not limited to a laptop computer, a cellular phone, a personal digital assistant, a personal computer, and a standalone display.

Initially, display210may comprise a display capable of displaying a first interface according to a first power consumption mode and a second interface according to a second power consumption mode. In some examples, display210may display a first interface at a first brightness, a first resolution, a first color, and a first refresh rate, and may display a second interface that differs from the first interface with respect to one or more of brightness, resolution, color, and refresh rate. Display210may comprise an organic light-emitting diode-based display.

Processor220may comprise a Pentium, RISC-based, or other type of processor and is used to execute processor-executable process steps so as to control the elements of system200to provide desired functionality. The processor-executable process steps may comprise steps of applications110, operating system120, interface monitor130, power manager150, and display driver160.

The processor-executable process steps may be stored in data storage device230, which may comprise one or more hard disks. The process steps may be read from a computer-readable medium, such as a floppy disk, a CD-ROM, a DVD-ROM, a Zip™ disk, a magnetic tape, or a signal encoding the process steps, and thereafter stored in data storage device230in a compressed, uncompiled and/or encrypted format. In alternative embodiments, hard-wired circuitry may be used in place of, or in combination with, processor-executable process steps for implementation of the processes described herein. Thus, embodiments are not limited to any specific combination of hardware and software.

Data storage device230may also store interface activity table140. In addition, data storage device230may store other unshown elements that may be necessary for operation of system200, such as data files and other device drivers.

Input device240may comprise any known device for capturing user input, including a keyboard, mouse, touch pad, voice-recognition system, or any combination of these devices. In some embodiments, process steps of interface monitor130are executed by processor220to determine an activity measure for an interface based on user input to the interface.

Memory250may provide processor220with fast data storage and retrieval. Memory250may comprise any type of memory for storing data, such as a Single Data Rate Random Access Memory, a Double Data Rate Random Access Memory, or a Programmable Read Only Memory. Processor-executable process steps being executed by processor220are typically stored temporarily in memory250and executed therefrom by processor220. Interface activity table140may also be stored in memory250according to some embodiments.

FIG. 3is a flow diagram of a method according to some embodiments. The method ofFIG. 3may be associated with, for example, systems such as those described with respect toFIGS. 1and/or2. Note that any of the methods described herein may be performed by hardware, software (including microcode), or a combination of hardware and software. For example, a storage medium may store thereon instructions that when executed by a machine results in performance according to any of the embodiments described herein.

At302, a first characteristic associated with a first interface displayed by a display is determined, and a second characteristic associated with a second interface displayed by the display is determined. According to some embodiments of302, the characteristics determined by interface monitor130include operating system messages to draw an interface, a Z-order of an interface, a movement of a pointer within an interface, an elapsed time from when the interface was manipulated by a user via input device240, and/or an elapsed time from when the interface possessed “focus”. Any other characteristics associated with a displayed interface may be determined at302in some embodiments. Non-exhaustive examples of such characteristics include screen size, screen position of an interface, application that owns the screen, history of screen usage, current system location, user ID, ambient light reading, remaining battery life, battery discharge rate, and user power profile.

In some embodiments, interface monitor130exposes an application programming interface. One or more of applications110may use the application programming interface to provide interface monitor130with characteristics of displayed interfaces that are associated with the one or more of applications110. For example, an application may indicate that it expects to be active at a given time and/or for a given period of time. An application may also or alternatively use the application programming interface to indicate to interface monitor130that a displayed interface associated with the application should be displayed according to a least power-consumptive mode.

According to some embodiments, interface monitor130stores an indication of the determined characteristics in interface activity table140.

At304, a first power consumption mode is determined for the first interface based at least on the first characteristic determined at302. A second power consumption mode for the second interface is also determined at304based at least on the second characteristic determined at302. Power manager150may determine the first and second power consumption modes based on the characteristics stored in interface activity table140.

In one example of304, power manager150determines each power consumption mode to be equal to a Z-order determined at302. More specifically, the determined first power consumption mode is equal to “one” if the determined first characteristic is a Z-order of one. Accordingly, the determined second power consumption mode is equal to “three” if the determined second characteristic is a Z-order of three. A power consumption mode of “one” may be more or less power-consumptive than a power consumption mode of “three”, depending on the specific embodiment.

TheFIG. 3method may thereby provide efficient determination of power consumption modes to be applied to various displayed interfaces.

FIG. 4is a flow diagram of a method according to some embodiments. The method ofFIG. 4may also be associated with systems such as those described with respect toFIGS. 1and/or2. TheFIG. 4method may be used to control a display to simultaneously display different interfaces according to different power consumption modes.

At402, a first characteristic associated with a first interface displayed by a display is determined, and a second characteristic associated with a second interface displayed by the display is determined. The characteristics may be determined by interface monitor130, and may comprise any characteristics, including those examples provided with respect toFIG. 3.

FIG. 5is an outward view of display210according to some embodiments. Display210displays interfaces211through216. Interfaces211through216are associated with “Z-orders” of 1 through 6, respectively. Furthermore, interfaces211and215are associated with an e-mail client, interfaces212and216are associated with a word processing application, interface213is associated with a gaming application, and interface214is associated with a presentation application. For purposes of the present example, it will be assumed that the above-mentioned first interface and second interface correspond to window211and window214, respectively.

At404, a first activity measure is determined for the first interface based at least on the first characteristic, and a second activity measure is determined for the second interface based at least on the second characteristic. Interface monitor130may determine the first and second activity measures at404according to some embodiments.

The activity measures may be determined based on some or all of the determined characteristics and/or may be determined according to a generic algorithm that is applicable to all displayed interfaces. For example, an activity measure associated with an interface may simply be equal to the Z-order of the interface. In another example, a particular activity measure may be determined for an interface that has been recently active, while a lower activity measure may be determined for an interface that has been inactive during the recent period. Other embodiments for determining activity measures may include the use of exponential average or Markov decision processes to predict user behavior and anticipate an inactivity duration for a displayed interface.

According to some embodiments of404, an activity measure associated with an interface is determined by determining an application associated with the interface, determining an activity measure algorithm associated with the application, and applying the activity measure algorithm to the characteristics determined with respect to the interface.FIG. 6illustrates a portion of activity measure algorithm table600according to some of the foregoing embodiments. Activity measure algorithm table600may be stored in one or more storage media, including but not limited to memory250and data storage device230.

Activity measure algorithm table600associates application types with activity measure algorithms. The activity measure algorithms may be based on one or more of any factor, including but not limited to interface characteristics of the type determined at402. The activity measure algorithms may, for instance, be based on specific actions executed by a subject interface (e.g., user selection of a File/Open command within an interface). Activity measure algorithm table600may be used to determine an activity measure algorithm as previously described.

For example, interface monitor130, in some embodiments of404, determines an application associated with the first interface and an application associated with the second interface. An activity measure algorithm associated with each application is then determined using table600. In the present example, interface monitor130determines that the first interface (window211) is associated with an e-mail application and determines that the second interface (window214) is associated with a presentation application. Next, interface monitor130determines that the algorithm “AM=Z-Order” is associated with window211and determines that the algorithm “USED<10s=1; 10s≦USED<20s=5; USED≧20s=10” is associated with window214.

Interface monitor130may then determine activity measures for the first and second interfaces by applying the activity measure algorithm associated with an interface to characteristics determined for the interface. Continuing with the above example, the activity measure determined for window211is “1”, which is equal to its associated Z-order. It will be assumed that, at402, it is determined that window214was last used between 10 and 20 seconds from the present moment. Accordingly, the activity measure determined for window214at404is “5”.

Interface monitor130may store the determined activity measures in interface activity table140.FIG. 7is a tabular representation of a portion of interface activity table140according to some embodiments. As mentioned above, interface activity table140may be stored in one or more storage media, including but not limited to memory250and data storage device230.

The tabular representation associates each of windows211through216with an activity measure. In this regard, an activity measure associated with each of windows211through216may be determined at404. TheFIG. 4method is therefore not limited to a first and a second interface. In some embodiments, the display of three or more interfaces may be controlled according to theFIG. 4method.

Returning toFIG. 4, a first power consumption mode is determined at406for the first interface based at least on the first activity measure, and a second power consumption mode is determined for the second interface based at least on the second activity measure. Power manager150may determine the first and second power consumption modes based on the activity measures stored in interface activity table140.

Power manager150may use any method for determining a power consumption mode for an interface based on an activity measure associated with the interface. In some embodiments of406, power manager150determines an application associated with an interface, determines a power consumption mode algorithm associated with the application, and applies the power consumption mode algorithm to an activity measure associated with the interface.

FIG. 8illustrates a portion of power consumption mode algorithm table800according to some embodiments. Power consumption mode algorithm table800may be stored in one or more storage media within or external to system200.

Power consumption mode algorithm table800associates application types with power consumption mode algorithms. The power consumption mode algorithms may be based on one or more of any factor, including but not limited to activity measures. The power consumption mode algorithms may, like the activity measure algorithms mentioned above, be based on specific actions executed by a subject interface (e.g., user selection of a “New Message” command within an interface of an E-mail client).

According to some embodiments of406, power manager150initially determines an application associated with the first interface and an application associated with the second interface. A power consumption mode algorithm associated with each application is then determined using power consumption mode algorithm table800. Returning to the present example, power manager150determines that the first interface (window211) is associated with an e-mail application and determines that the second interface (window214) is associated with a presentation application. Power manager150then determines that the algorithm “AM<10, PCM=1; AM≧10, PCM=2” is associated with window211and determines that the algorithm “AM<5, PCM=1; AM≧5, PCM=3” is associated with window214.

Power manager150may then determine power consumption modes for the first and second interfaces by applying the power consumption mode algorithm associated with an interface to an activity measure determined for the interface. For example, power manager150determines, from interface activity table140, that an activity measure associated with window211is “1”. Applying the above-mentioned algorithm results in a power consumption mode (PCM) of 1 for window211. An activity measure associated with window214is “5”, therefore the PCM for window214is determined to be 3.

At408, a display is controlled to display the first interface according to the first power consumption mode and to display the second interface according to the second power consumption mode. The first and second power consumption modes may comprise any modes that consume different amounts of power. According to some embodiments of408, power manager150instructs display driver160to display window211according to power consumption mode1and to display window214according to power consumption mode3. As a result, display driver160controls display210to display the first interface according to the first power consumption mode and to display the second interface according to the second power consumption mode. The interfaces may be immediately displayed according to their associated power consumption mode or may gradually change from their current mode.

Power consumption mode1may, for example, be associated with a first brightness, a first color, a first resolution and/or a first refresh rate. On the other hand, power consumption mode3may be associated with a second brightness, a second color, a second resolution and/or a second refresh rate. One or more of the first brightness, the first color, the first resolution and/or the first refresh rate may be identical to respective ones of the second brightness, the second color, the second resolution and/or the second refresh rate. A power consumption mode according to some embodiments may be associated with power-related display features other than those described above.

According to some embodiments of theFIG. 4method, flow passes directly from402to406. The power consumption modes are determined at406based on the characteristics determined at402in some of these embodiments. Accordingly, power consumption mode algorithms that may be used in these embodiments may be based on interface characteristics rather than on activity measures.

TheFIG. 4method may provide acceptable display power consumption and display quality.

The several embodiments described herein are solely for the purpose of illustration. Persons skilled in the art will recognize from this description other embodiments may be practiced with modifications and alterations limited only by the claims.