This invention relates generally to backlight settings for display screens and, more particularly, to intelligently enhancing and personalizing automatic backlight control schemes.
Electronic devices with display screens may use backlight to help illuminate the display. Backlight refers to light originating from the back or from the sides of a display screen. Devices with backlight, especially portable devices with power management features, may also have a backlight control feature to adjust the backlight.
Automatic backlight control allows a device to automatically adjust backlight when changes in ambient light are detected by a light sensor. For example, backlight intensity may be increased to retain readability in a brighter ambient light environment, while backlight intensity may be decreased to minimize power consumption in a darker ambient light environment.
Backlight is adjusted according to backlight settings that map ambient light values to backlight intensities. These backlight settings are usually stored in firmware (where storage is limited) and updated at the time of manufacturing. This makes it difficult for anyone but the device's integrator to add backlight settings. An integrator is someone who assembles parts (e.g., processor, graphics card, display, etc.) together into one device before selling the device to a user. Once the device is sold to a user, backlight settings for the device typically cannot be updated by the user, who may not have the understanding, motivation, or patience for selecting an optimal settings list, especially when personal preferences or personal usage patterns change sufficiently to warrant an ongoing need to alter stored settings.
Unfortunately, integrators are forced to guess what the best backlight settings are based on personal experience or average user statistics. Such settings may reflect neither actual user preferences nor optimal power management for a device and could potentially become stale (i.e. never used for the particular user's usage pattern). Systems and methods are needed to intelligently enhance and personalize automatic backlight control schemes.
Embodiments of the invention are understood by referring to the figures in the attached drawings, as provided below.
Features, elements, and aspects of the invention that are referenced by the same numerals in different figures represent the same equivalent, or similar features, elements, or aspects, in accordance with one or more embodiments.
The present disclosure is directed to systems, methods, and corresponding products that intelligently enhance and personalize automatic backlight control schemes.
For purposes of summarizing, certain aspects, advantages, and novel features of the invention have been described herein. It is to be understood that not all such advantages may be achieved in accordance with any one particular embodiment of the invention. Thus, the invention may be embodied or carried out in a manner that achieves or optimizes one advantage or group of advantages without achieving all advantages as may be taught or suggested herein.
In accordance with one embodiment, a method of adjusting intensity of illumination of a device based on changes in ambient light is provided. The method comprises measuring a first level of ambient light for a device, in response to detecting a change in ambient light; adjusting intensity of illumination for the device to a first illumination level, if an association between the first illumination level and the first level of ambient light is recorded in a data structure; monitoring user interaction with the device within a threshold period after detecting the change in ambient light to determine whether the user adjusts the intensity of illumination for the device to a second illumination level; and recording an association between the second illumination level and the first level of ambient light in the data structure.
An automatic backlight control method, in accordance with another embodiment is also provided. The method comprises detecting a change in ambient light conditions based on data provided by an ambient light sensor; adjusting intensity of a backlight based on the ambient light conditions according to first backlight setting values stored in a data structure, if any, wherein said first backlight setting values correspond to the data provided by the ambient light sensor; monitoring user interaction conducive to adjusting the intensity of backlight within a threshold time period after detecting the change in ambient light conditions; storing, in the data structure, second backlight setting values that correspond to the data provided by the ambient light sensor, wherein the second backlight setting values are determined based on the adjustment, if any, made by the user to the intensity of the backlight within said threshold time period.
In accordance with another embodiment, a system comprising one or more logic units is provided. The one or more logic units are configured to perform the functions and operations associated with the above-disclosed methods. In accordance with yet another embodiment, a computer program product comprising a computer useable medium having a computer readable program is provided. The computer readable program when executed on a computer causes the computer to perform the functions and operations associated with the above-disclosed methods.
One or more of the above-disclosed embodiments, in addition to certain alternatives, are provided in further detail below with reference to the attached figures. The invention is not, however, limited to any particular embodiment enclosed.
In the following, numerous specific details are set forth to provide a thorough description of various embodiments of the invention. Certain embodiments of the invention may be practiced without these specific details or with some variations in detail. In some instances, certain features are described in less detail so as not to obscure other aspects of the invention. The level of detail associated with each of the elements or features should not be construed to qualify the novelty or importance of one feature over the others.
Referring to
I/O driver 170 may be comprised of some combination of embedded controller (EC) devices, advanced control program interface (ACPI) code, video basic input/output system (BIOS), and device drivers designed to read user input data directly from hardware input ports. Graphics SW 180 may be comprised of configuration programs and graphics drivers designed to control the graphics hardware (e.g., graphics engine, display, backlight).
In another embodiment, backlight control agent 190 may be implemented as part of another component of system 100, and data structure 195 may be stored in any type of memory (e.g., non-volatile memory). Data structure 195 may be implemented as a data table, for example. Depending on implementation, arrays, linked lists, vectors, pointers, or other suitable data structures may also be used. In some embodiments, separate data structures 195 may be utilized for different user profiles.
Referring back to
Backlight control agent 190 is a learning agent that dynamically populates data structure 195 and uses data structure 195 to intelligently adjust backlight 110. Referring to
Referring to
If there are backlight settings in data table 195 that match (or approximately match) the detected ambient light condition (S330), backlight 110 is adjusted according to the matching backlight settings (S340). Backlight settings match the detected ambient light condition, if the lux value for the backlight settings is within a preset tolerance (e.g., within x lux units) of the detected ambient light condition. If matching backlight settings cannot be found in data structure 195, different actions may be taken depending on the mode backlight control agent 190 is in. Such modes may be set by user 150 selectively or by the manufacturer.
In a first mode (e.g., conservative mode), no action is taken unless user 150 interacts with user interface 140 to adjust backlight 110, for example, within a threshold period after which a change in ambient light is detected. If no action is taken by user 150 during the threshold time period, it is assumed that backlight 110 does not need to be adjusted. If within the threshold time period, user 150 interacts with user interface 140 and manually adjusts backlight 110 (S350), backlight control agent 190 adds user 150's backlight settings for the detected ambient light condition to data table 195 (S370) if the backlight settings are unique (S360).
In a second mode (e.g., aggressive mode), new backlight settings are determined by interpolating between background settings that are closest to matching the detected ambient light condition (S380), as shown in
In another embodiment, there may be a seeding mode that attempts to minimize power consumption while retaining readability by adding one or more user-specified entries to data table 195. User 150 may be explicitly asked to adjust the backlight settings to the lowest possible readable setting for various ambient light conditions, for example, in the seeding mode.
In yet another embodiment, backlight settings may distinguish between different users. In this scenario, when a change in ambient light is detected, backlight 110 is adjusted according to the current user 150. User A may prefer a brighter setting than user B, for example.
The invention can take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment containing both hardware and software elements. A software embodiment may include, but not be limited to, to firmware, resident software, microcode, etc.
Furthermore, the invention can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. For the purposes of this description, a computer-usable or computer readable medium can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
A data processing system suitable for storing and/or executing program code will include at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution.
Other components may be coupled to the system. Input/output or I/O devices (including but not limited to keyboards, displays, pointing devices, etc.) can be coupled to the system either directly or through intervening I/O controllers. Network adapters (e.g., modem, cable modem, Ethernet cards) may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks.
The logic code, programs, modules, processes, methods, and the order in which the respective elements of each method are performed are purely exemplary. Depending on the implementation, they may be performed in any order or in parallel, unless indicated otherwise in the present disclosure. Further, the logic code is not related, or limited to any particular programming language, and may be comprise one or more modules that execute on one or more processors in a distributed, non-distributed, or multiprocessing environment.
Therefore, it should be understood that the invention can be practiced with modification and alteration within the spirit and scope of the appended claims. The description is not intended to be exhaustive or to limit the invention to the precise form disclosed. These and various other adaptations and combinations of the embodiments disclosed are within the scope of the invention and are further defined by the claims and their full scope of equivalents.