Ambient illuminance and light geometry detection

The ambient illuminance and light geometry detection system includes a computing process including receiving a hinge angle between two displays of a foldable computing device, illuminance values from illuminance sensors of the displays, and screen activity of each of the displays of the foldable computing device, determining foldable computing device posture information based at least in part on the hinge angle and the screen activity of each of the displays, determining a user facing display of the foldable computing device based at least in part on the device posture information and the screen activity of the displays, assigning differential weights to an illuminance value received from an illuminance sensor of the user facing display compared to an illuminance value received from an illuminance sensor of the non-user facing display and generating an aggregate weighted average illuminance by applying the differential weights to the illuminance values of each of the displays.

BACKGROUND

Computing devices with displays may use a light sensor to trigger an adjustment of the brightness of the display. For example a computing device such as a laptop, a tablet device, a mobile phone, etc., may include a light sensor that senses the ambient light and provide the information about the ambient illuminance to a processor of the computing device. The processor may use the information about the ambient illuminance to change one or more parameter controlling a display of the computing device. For example, of the information about the ambient illuminance indicates low level of illuminance, the brightness to a processor of a laptop, the processor may increase the brightness of the screen by increasing common voltage or other input provided to illuminate pixels of an LCD screen.

SUMMARY

The ambient illuminance and light geometry detection system includes a computing process including receiving a hinge angle between two displays of a foldable computing device, illuminance values from illuminance sensors of the displays, and screen activity of each of the displays of the foldable computing device, determining foldable computing device posture information based at least in part on the hinge angle and the screen activity of each of the displays, determining a user facing display of the foldable computing device based at least in part on the device posture information and the screen activity of the displays, assigning differential weights to an illuminance value received from an illuminance sensor of the user facing display compared to an illuminance value received from an illuminance sensor of the non-user facing display and generating an aggregate weighted average illuminance by applying the differential weights to the illuminance values of each of the displays.

DETAILED DESCRIPTIONS

Computing devices are used by users in all kinds of different environments. For example, users use laptops, PCs, tablet devices, cellular phones, or other computing devices in various different environments such as offices, conference rooms, homes, at restaurants and coffee shops, outdoor venues, etc.

In handheld computing devices equipped with multiple screens, such as foldable dual screen device and bendable screen device with the sub screen, it is commonly seen that the system equips multiple ambient illuminance sensors corresponding to each screen. Such foldable devices may also have a hinge angle sensor that determines the opening angle of the computing device

Implementations disclosed herein provides solutions that reduces the impact of movement by humans, or other objects, that may result in rapid changes in the levels of illuminance detected by a computing device. Specifically, the implementations include a light sensor to detect ambient illuminance and a human presence sensor. In one implementation, the light sensor and the human presence sensor are implemented on the computing device, however, alternatively one or both of these sensors may be implemented on a device different than the computing device and communicatively connected to the computing device. Various computing instructions stored on the computing device process the output from the light sensor and the human presence sensor to determine if an hysteresis filter is to be applied to the illuminance signal to reduce variations therein.

The technology disclosed herein solves a technical problem of managing brightness of a computing device screen when a foldable computing device is used in different postures and when each of the two displays of the foldable computing device has different levels of activity as well as different sensitivity to the ambient light incident upon them. Specifically, the technology disclosed herein determines the posture of the foldable computing device based at least in part on the screen angle and activity levels on each of the displays. Furthermore, the posture information is used to determine the user facing display of the foldable computing device and then differential weights are assigned to the illuminance values received from the illuminance sensors of the displays. The differential weights are used to generate an aggregate weighted average illuminance level that can be used to control the common voltage levels (VCO) for the pixels of at least one of the displays.

For example, when higher weight is allocated to the illuminance level received from a sensor with active display, it results in the operating system of the computing device adjusting the VCO levels such that the user has a better experience in viewing the active screen content. Similarly, if lower weight is allocated to illuminance levels from a screen, which based on the posture information, is determined to be not user facing, the adjustment to the VCO levels as determined by the operating system are more beneficial for the user experience of the display screen that is user facing.

Furthermore, AILGD system disclosed herein also references a sensitivity model providing sensitivity of the illuminance values received from illuminance sensors to incident light angles for the sensors to determine an incident angle based at least in part on a ratio of the illuminance values received from illuminance sensors of the non-user facing display and the sensor sensitivity model. Subsequently, the illuminance values received from illuminance sensors are scaled using the incident light angles for the sensors.

The AILGD system disclosed herein provides technical advantage over the existing systems where the posture of the foldable computing device and the sensitivity model of its sensors are not used in generating luminance report for the operating system of the foldable computing device. For example, in foldable systems used in different postures such as book posture or tent posture, the sensor facing direction is different from the user facing direction, causing a huge error in the screen luminance adaptation that results in a harmfully strong screen luminance or an unusable dark screen illumination. The AIGLD system disclosed herein avoids such harmfully strong screen luminance or an unusable dark screen illumination.

Furthermore, when the geometry of light incident upon the sensors or the foldable computing device is unconventional, such as when the light source is behind a user of the foldable computing device, the sensor system of the conventional foldable computing system is not able to estimate the ambient illuminance intensity, resulting in unreasonable screen luminance adaptation, and harming the user experience of the screen usage with the luminance adaptation. Compared to that, the AIGLD system disclosed herein provides a better screen luminance adaptation and user experience.

FIG.1illustrates a block diagram of an ambient illuminance sensor system100disclosed herein. Specifically, the ambient illuminance sensor system100illustrates a computing device102being used by a user106that receive ambient illuminance from a light source108. The mobile device102may have an AILGD system104configured therein. The computing device102is illustrated to be a laptop, however, in an alternative implementation, the computing device102may be a mobile device, a computer, a tablet, or other computing device. In one implementation disclosed herein, the computing device102has two screens.

The AILGD system104may be configured using a number of computer programmable instructions stored on a memory of the computing device102where these computer programmable instructions may be executed using a processor of the computing device102. The AILGD system104may also have two ambient illuminance sensors112and114that senses the level of ambient illuminance in the vicinity of the computing device102. For example, the first illuminance sensor112may be implemented on a first screen or fold of the computing device102whereas the second illuminance sensor112may be implemented on a second screen or fold of the computing device102.

The first and the second illuminance sensors112and114may be implemented using any light sensor that measures the level of illuminance in the vicinity of the computing device102in lux or other appropriate units. The illuminance sensors112and114may be implemented using a photo-voltaic light sensor, a phototube, a photo-emissive device, a photo-conductive device, a photo-junction device, a light-detective resistor, a photodiode, a photo-transistor, etc. In one implementation, the illuminance sensors112and114may generate a series of illuminance values measured at a predetermined time period, such as every millisecond (ms), every second, etc. These series of illuminance values may be used by an operating system of the computing device102to adjust illuminance levels of each output screens. In an alternative implementation, the illuminance sensors112and114may also measure the chromaticity of the ambient light in the vicinity of the computing device102.

Furthermore, the AILGD system104may also have a screen angle sensor120that senses the angle between two screens of the computing device102. For example, such screen angle sensor120may be implemented using a hinge between the two screens of the computing device102and determining the screen angle based at least in part on data received from the hinge. The hinge angle sensor120may provide information about the extent of the angle to which the computing device is open. For example, when the device is opened in flat position, the hinge angle sensor120denotes the angle to be 180 degrees. The angle may vary generally between substantially under 90 degrees to as much as 360 degrees.

Furthermore, a screen activity analyzer122of the computing device102may determine which of the two screens of the computing device102is in active, inactive, or relatively more active than the other screen of the computing device102. For example, when the computing device102is being used in a read mode, only one of the screens maybe actively used. On the other hand, if the user is typing data using one of the screens, both screens may be used substantially to a similar extent.

Furthermore, a posture analyzer124of the computing device102determines a use mode of the computing device102. The posture analyzer124receives input from the hinge angle sensor120and the screen activity analyzer122to estimate whether the computing device102is placed like a laptop with one screen facing the user and the other screen facing a ceiling, which may include a light source such as a ceiling light. Alternatively, the posture analyzer124may determine that the computing device102is being used in a book posture or a tent posture wherein an illuminance sensor facing direction is completely off to a user facing direction. Other postures maybe, for example, book posture where the computing device102is in a flattened form, a tent posture where the computing device102is in a standing form, etc.

A sensor sensitivity model116stores the sensitivity characteristics of the first illuminance sensor112and the second illuminance sensor114an angle at which the first illuminance sensor112and the second illuminance sensor114receives light from an external source. For example, an example sensor sensitivity model116may be illustrated by a graph800illustrated inFIG.8which indicates the illuminance signal generated by the illuminance sensor112or114as function of the light incidence angle between 0 and 180 degrees, with the highest level of signal, substantially one (1) generated at 90 degrees of light incidence angle and lowest levels of signal, substantially zero (0) generated at 0 degree or 180 degree of light incidence angle.

A first aggregator140receives outputs from each of the first and second illuminance sensors112,114, the screen angle sensor120, the screen activity analyzer122, and the posture analyzer124. The first aggregator140aggregates these inputs to determine the user facing ambient illuminance value. The user facing ambient illuminance value may be used by the first aggregator140to average the illuminance data output by the first illuminance sensor112and the second illuminance sensor114. The first aggregator140also analyzes the output from the screen activity analyzer122to determine if either display of the computing device102that is not user facing and therefore inactive.

Using the input from the screen activity analyzer122by the first aggregator140to determine the user facing ambient illuminance value provides a better user experience as it takes into consideration which of the two screens of the computing device102is in active, inactive, or relatively more active than the other screen of the computing device102. Thus, if the user was using the computing device in a read mode when one of the screen is actively used, the user facing ambient illuminance value is more reflective of the illuminance value of such active screen.

For example, the screen activity analyzer122may receive inputs from a screen activity subsystem from a first display and a screen activity subsystem from a second display of the computing device102regarding the screen activity of each of the two displays of the computing device102. The first aggregator140uses this information to prioritize ambient illuminance value output from a sensor of the display that is active. Thus, if a display including102aincluding the first illuminance sensor112is active but a display102bincluding the second illuminance sensor114is inactive, the illuminance value output from the first illuminance sensor112is prioritized over the illuminance value output from the second illuminance sensor114. In one implementation, prioritizing the illuminance value output from an illuminance sensor may include weighing the illuminance value with a higher weight compared to illuminance value from the other illuminance sensor.

The first aggregator140uses such differential weight values for weighing the illuminance values output from each of the illuminance sensors112and114to generate an aggregated weighted-average ambient illuminance sensor value. Specifically, the weights assigned to the illuminance values are based at least in part on the posture of the computing device102, as determined based at least in part on the screen activity of the displays102aand102b, and the output from the screen angle sensor120. For example, if the computing device102is used in a laptop mode with the display102bfacing the user106and the display102afacing a ceiling, the weight assigned to the illuminance value generated by the first illuminance sensor112associated with the display102bmay be higher compared to the weight assigned to the illuminance value generated by the second illuminance sensor114associated with the display102a.

The aggregated weighted-average ambient illuminance sensor value is communicated as part of a luminance report130to the operating system of the computing device102. A use case illustrating the functioning of the first aggregator140is disclosed in further detail below inFIG.5.

A second aggregator150receives outputs from each of the first illuminance sensor112, the second illuminance sensor114, the sensor sensitivity model116, and the screen angle sensor120. The sensor sensitivity model116may store data providing relation between sensitivity of the illuminance sensors112,114to an incident light angle. An example of such model is illustrated by a graph disclosed below inFIG.8. Specifically, when the two sensors, such as the first and second illuminance sensors112,114are facing one light source, such as the light source108, because of the sensor sensitivity characterized by the sensor sensitivity model116, the relation between the illuminance values generated by the first and second illuminance sensors112,114varies in the manner described inFIG.9below. The second aggregator150recognizes the light geometry between the first and second illuminance sensors112,114based at least in part on the relative angle between the displays having the first and second illuminance sensors112,114, as provided by the screen angle sensor120.

Specifically, the second aggregator150first calculates a ratio of the illuminance values generated by the first illuminance sensor112and the second illuminance sensor114. Subsequently, the second aggregator150looks up the sensor sensitivity model116to find an incident angle pair that coincides with the ratio of the illuminance values. For example, if the ratio is one (1), the incident angle is substantially equal to ninety (90) degrees. However, if the ratio is 0.5, the incident angle may be substantially equal to either thirty (3) degrees or one-hundred and fifty (150) degrees.

Subsequently, the second aggregator150takes into account the angle between the two displays102aand102b, which may be provided by the screen angle sensor120, to estimate the incident light angles for sensors on each of the first display102aand the second display102b. Next, the actual illuminance values as provided by the first illuminance sensor112and the second illuminance sensor114are scaled using the incident light angles. The scaled illuminance values are reported to the operating system of the computing device102as part of the luminance report130. Thus, by estimating the light geometry, the second aggregator150is able to precisely estimate the ambient illuminance intensity that may be used for the screen luminance adaptation by the operating system of the computing device102.

The operating system of the computing device102may use the illuminance report130to determine various parameters of the computing device or its components. For example, the common voltage levels (VCO) for the pixels of an output screen of the computing device102may be determined using the illuminance report130. As the second aggregator150takes into account the light geometry associated with the illuminance sensors112and114, it reports quite constant ambient illuminance data across different hinge angles, which allows the display subsystem of the computing device102to adapt the display luminance accurately to the ambient illuminance levels.

FIG.2illustrates example computing device200with illuminance sensors and a hinge angle sensor using the AILGD system disclosed herein. The computing device200may have a left screen202and a right screen204, each including an illuminance sensor. Specifically, the left screen202includes a left screen illuminance sensor210and the right screen204includes a right screen illuminance sensor212. A hinge angle sensor214may generate information about the hinge angle between the left screen202and the right screen204. Each of the left screen illuminance sensor210and the right screen illuminance sensor212generates illuminance values that are used by the aggregators of the AIGLD system disclosed herein to generate a luminance report for the operating system of the computing device200.

FIG.3illustrates example block diagram of a first aggregator subsystem300with components implementing the AILGD system disclosed herein. Specifically, the first aggregator subsystem300include a left illuminance sensor302that generates illuminance values of the light incident upon a left screen of a computing device and a right illuminance sensor304that generates illuminance values of the light incident upon a right screen of the computing device. A hinge angle sensor312provides value of the hinge angle between the left screen and the right screen. A posture analyzer306determines a use mode of the computing device based at least in part on the input from the hinge angle sensor312as well as the screen activity from a left screen subsystem308and a right screen subsystem310to determine the posture of the computing device. In one implementation, determining the screen activity may include determining screen activity level for a predetermined immediate past period. Yet alternatively, determining the screen activity level may include determining the type of screen activity for each of the screens. The type of screen activity may include receiving typed in information from a user, displaying video, displaying pages of a book, etc. In one implementation, the screen activity may also be determined based at least in part on an input from a camera implemented on the screen.

For example, the posture analyzer306may see that the hinge angle is 280 degrees and only the right screen is active to determine that the device is being used in a tent posture. Alternatively, the posture analyzer306may see that the hinge angle is 180 degrees and both screens are active to determine that the device is being used in a book (flat) posture.

An aggregator and estimation computation block320uses the inputs from each of the illuminance sensors302and304, the posture analyzer306, and the left screen subsystem308and the right screen subsystem310to determine an aggregated weighted-average ambient illuminance sensor value. This aggregated weighted-average ambient illuminance sensor value is provided to the operating system322of the computing device as part of a luminance report. For example, the aggregator and estimation computation block320may assign a higher weight to the illuminance value from a screen that is active and/or user-facing compared to the weight assigned to the illuminance value from a screen that is non-active and/or not user-facing.

FIG.4illustrates example flow400of data in a sensor data aggregator of the AILGD system disclosed herein. Specifically, an operation402generates a hinge angle value and an operation404determines a posture of the computing device. The hinge angle and the posture are used by an operation420to estimate a user facing angle of the computing device. An operation406generates left display activation validation and an operation408generates right display activation validation. An operation422uses the user facing angle and the display validation information to estimate if either of the left screen and the right screen are not user facing. A left ambient illuminance sensor410generates left screen illuminance value and a right ambient illuminance sensor412generates right screen illuminance value. An operation424uses the left screen illuminance value, the right screen illuminance value, and output from operation422to determine weighted average of the two left screen illuminance value and the right screen illuminance value. This weighted average of the two left screen illuminance value and the right screen illuminance value is reported to the operating system by an operation426.

FIG.5illustrates an example use mode500of the AILGD system disclosed herein. Specifically, in this mode a computing device502is used in a laptop mode. Specifically, the computing device502is in a laptop posture facing a user504. The computing device502may include illuminance sensors on each of the displays502aand502band a hinge angle sensor that determines the hinge angle520between the displays502aand502b. An aggregator, such as a first aggregator140disclosed inFIG.1, receives inputs from the activity subsystems on each of the displays502aand502band the hinge angle sensor to determine the posture of the computing device502being a laptop posture, with the first display502afacing a ceiling containing a light source506and the second display502bfacing the user504.

Subsequently, the aggregator gives higher weight to the illuminance values received from the illuminance sensor of the second display502bfacing the user504. As a result, the illuminance data provided by the aggregator to the operating system of the computing device502prioritizes the incident light to left illuminance sensor512over the incident light to the right illuminance senor514. Thus, the aggregator provides more accurate user facing ambient illuminance data to the operating system of the computing device502. This enables the operating system to provide better screen luminance adaptation and results in the better user pleasing screen usage experience for the user504of the foldable handheld computing device502.

Thus, by adjusting the weights allocated to the illuminance values based at least in part on the posture information, aggregator more precisely estimates the user facing angle of the computing device502in order to populate the appropriate ambient illuminance estimation to be used for the screen luminance adaptation by the operating system of the computing device502. This results in better user experience when the computing device502is used in different postures.

FIG.6illustrates another example use600of the AILGD system disclosed herein. Specifically, in the illustrated use mode, a user604is using a computing device602in a mode where one of the screen is inactive. Specifically, an active screen610is facing the user604whereas an inactive screen612that is not facing the user604. Furthermore, in this mode the active screen610is not facing an ambient light source606. On the other hand, the inactive screen612, which may be a right screen, receives incident light608on an illuminance sensor located on the right screen.

An aggregator, such as a first aggregator140disclosed inFIG.1, receives inputs from the activity subsystems on each of the screens610and612and the hinge angle sensor of the computing device602to determine the posture of the computing device602being a book posture, with the inactive screen612facing a ceiling containing a light source606and the active screen610facing the user604. Subsequently, the aggregator gives higher weight to the illuminance values received from the illuminance sensor of the active screen610facing the user604. As a result, the illuminance data provided by the aggregator to the operating system of the computing device602prioritizes the incident light to active screen610over the incident light to the inactive screen612. This enables the operating system to provide better screen luminance adaptation and results in the better user pleasing screen usage experience for the user604of the foldable handheld computing device602.

FIG.7illustrates an example block diagram of an alternative data aggregator700of the AILGD system disclosed herein. Specifically, the data aggregator700includes a left ambient illuminance sensor702that may be implemented on a left screen of a computing device, a right ambient illuminance sensor704that may be implemented on a right screen of the computing device, and a hinge angle sensor706that generates a hinge angle value indicating the angle between the left screen and the right screen of the computing device. An aggregator and estimator710estimates recognizes the light geometry between the left ambient illuminance sensor702and the right ambient illuminance sensor704based at least in part on the relative angle between the displays as provided by the hinge angle sensor706.

Specifically, the aggregator and estimator710calculates a ratio of the illuminance values generated by the first illuminance sensor112and the second illuminance sensor114left ambient illuminance sensor702and the right ambient illuminance sensor704. Subsequently, the aggregator and estimator710looks up the sensor sensitivity model708to find an incident angle pair that coincides with the ratio of the illuminance values. Subsequently, the aggregator and estimator710takes into account the angle between the two displays, as provided by the hinge angle sensor706, to estimate the incident light angles for sensors on each of the displays. Finally, the aggregator and estimator710scales the actual illuminance values as provided by the left ambient illuminance sensor702and the right ambient illuminance sensor704using the incident light angles. The scaled illuminance values are reported to the operating system712of the computing device as part of a luminance report. Scaling the illuminance values provided by the left ambient illuminance sensor702and the right ambient illuminance sensor704using the incident light angles allows generating an illuminance value reported to the operating system of the computing device to be more reflective of the actual illuminance as experienced by the user. For example, if the computing device is sitting such that a light illuminating a display screen, while bright, is at an angle that generates very little luminance value by the sensor, this luminance value is should be provided a higher weight as the user is viewing that screen with higher luminance. Such consideration of the incident light angles generates better VCO levels for the display screen and therefore resulting in better user experience.

FIG.8illustrates an example graph of sensitivity characteristic of an ambient illuminance sensor of the AILGD system disclosed herein. Specifically, the graph800illustrated inFIG.8which indicates the illuminance signal generated by the illuminance sensor112or114as function of the light incidence angle between 0 and 180 degrees, with the highest level of signal, substantially one (1) generated at 90 degrees of light incidence angle and lowest levels of signal, substantially zero (0) generated at 0 degree or 180 degree of light incidence angle.

FIG.9illustrates an alternative example use mode900of the AILGD system disclosed herein with two ambient illuminance sensors facing one light source. Specifically,FIG.9illustrates a computing device902with a left ambient illuminance sensor904on a left display and a right ambient illuminance sensor906on a right display. The relative angle between the two displays, and therefore the sensors904and906, is illustrated to by908. The sensors904and906may receive light from a light source910.

The sensitivity of the sensors904and906to angle of incident light from the light source910is illustrated by an ambient illuminance sensor sensitivity graph920. Specifically, the sensitivity graph920gives lux value as a function of the incident light angle on the sensors904and906. For example, if the angle of incident light to the left illuminance sensor912is922, the left sensor reading is as provided by922a. Similarly, if the angle of incident light to the right illuminance sensor914is924, the left sensor reading is as provided by924a.

An aggregator such as the second aggregator150disclosed inFIG.1or the aggregator and estimator710disclosed inFIG.7scales the actual illuminance values as provided by the left illuminance sensor904and the right illuminance sensor906using the incident light angles922and924. The scaled illuminance values are reported to an operating system of the computing device902as part of the luminance report.

FIG.10illustrates another alternative example use mode1000of the AILGD system disclosed herein with a light source1008located in an unconventional position. In this mode, a computing device1002is in use in a laptop posture and a light source may be behind a user1030. The computing device1002is illustrated to have a left illuminance sensor1004and a right illuminance sensor1006with a relative angle between the sensors1004and1006being1020. The left illuminance sensor1004receives incident light1010and the right illuminance sensor1012receives incident light1012.

In this mode, the illuminance sensors1004and1006may report generate unreasonable illuminance data as the incident light1012on the right illuminance sensor1006may be at least partially blocked by the user1030. However, an aggregator and estimator system on the computing device, such as the aggregator and estimator710disclosed inFIG.7, may scale the actual illuminance values as provided by the left illuminance sensor1004and the right illuminance sensor1006using the incident light angles1022and1024. The scaled illuminance values are reported to an operating system of the computing device1002as part of the luminance report.

FIG.11illustrates an example block diagram1100of an illuminance data aggregator1110of the AILGD system disclosed herein. The illuminance data aggregator1110receives inputs from a left ambient illuminance sensor1102, a right ambient illuminance sensor1104, a hinge angle sensor1106, and a sensor sensitivity model1108. An Operation1112calculates a ratio of the illuminance values received from the left ambient illuminance sensor1102and the right ambient illuminance sensor1104. An operation1114uses the ratio and inputs from the hinge angle sensor1106to look up the sensor sensitivity model1108to find an incident angle pair that corresponds to the ratio.

Subsequently, an operation1116determines the incident light angles for each of the sensors using the sensor sensitivity model and an operation1118scales the illuminance values from the left ambient illuminance sensor1102and the right ambient illuminance sensor1104corresponding to the incident angle pair. An operation1120reports the scaled illuminance values to an operating system of the computing device.

FIG.12illustrates an example system1200that may be useful in implementing the device capability model sharing system disclosed herein. The example hardware and operating environment ofFIG.12for implementing the described technology includes a computing device, such as a general-purpose computing device in the form of a computer20, a mobile telephone, a personal data assistant (PDA), a tablet, smart watch, gaming remote, or other type of computing device. In the implementation ofFIG.12, for example, the computer20includes a processing unit21, a system memory22, and a system bus23that operatively couples various system components including the system memory to the processing unit21. There may be only one or there may be more than one processing unit21, such that the processor of the computer20comprises a single central-processing unit (CPU), or a plurality of processing units, commonly referred to as a parallel processing environment. The computer20may be a conventional computer, a distributed computer, or any other type of computer; the implementations are not so limited.

The hard disk drive27, magnetic disk drive28, and optical disk drive30are connected to the system bus23by a hard disk drive interface32, a magnetic disk drive interface33, and an optical disk drive interface34, respectively. The drives and their associated tangible computer-readable media provide non-volatile storage of computer-readable instructions, data structures, program modules and other data for the computer20. It should be appreciated by those skilled in the art that any type of tangible computer-readable media may be used in the example operating environment.

A number of program modules may be stored on the hard disk drive27, magnetic disk28, optical disk30, ROM24, or RAM25, including an operating system35, one or more application programs36, other program modules37, and program data38. A user may generate reminders on the personal computer20through input devices such as a keyboard40and pointing device42. Other input devices (not shown) may include a microphone (e.g., for voice input), a camera (e.g., for a natural user interface (NUI)), a joystick, a game pad, a satellite dish, a scanner, or the like. These and other input devices are often connected to the processing unit21through a serial port interface46that is coupled to the system bus23, but may be connected by other interfaces, such as a parallel port, game port, or a universal serial bus (USB) (not shown). A monitor47or other type of display device is also connected to the system bus23via an interface, such as a video adapter48. In addition to the monitor, computers typically include other peripheral output devices (not shown), such as speakers and printers.

In an example implementation, software or firmware instructions for a device capability model sharing system may be stored in memory22and/or storage devices29or31and processed by the processing unit21. One or more ML, NLP, or DLP models disclosed herein may be stored in memory22and/or storage devices29or31as persistent datastores. For example, an AILGD system1202may be implemented on the computer20as an application program36(alternatively, the AILGD system1202may be implemented on a server or in a cloud environment). The AILGD system1202may utilize one of more of the processing unit21, the memory22, the system bus23, and other components of the personal computer20.

In contrast to tangible computer-readable storage media, intangible computer-readable communication signals may embody computer readable instructions, data structures, program modules or other data resident in a modulated data signal, such as a carrier wave or other signal transport mechanism. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, intangible communication signals include wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media.

A physical article of manufacture disclosed herein includes one or more tangible computer-readable storage media, encoding computer-executable instructions for executing on a computer system a computer process, the computer process including receiving a hinge angle between two displays of a foldable computing device and screen activity of each of the displays of the foldable computing device; determining foldable computing device posture information based at least in part on the hinge angle and the screen activity of each of the displays; determining a user facing display of the foldable computing device based at least in part on the device posture information and the screen activity of the displays; assigning differential weights to an illuminance value received from an illuminance sensor of the user facing display compared to an illuminance value received from an illuminance sensor of the non-user facing display; and generating an aggregate weighted average illuminance by applying the differential weights to the illuminance values of each of the displays.

A method disclosed herein includes receiving a hinge angle between two displays of a foldable computing device, illuminance values from illuminance sensors of the displays, and screen activity of each of the displays of the foldable computing device, determining foldable computing device posture information based at least in part on the hinge angle and the screen activity of each of the displays, determining a user facing display of the foldable computing device based at least in part on the device posture information and the screen activity of the displays, assigning differential weights to an illuminance value received from an illuminance sensor of the user facing display compared to an illuminance value received from an illuminance sensor of the non-user facing display, and generating an aggregate weighted average illuminance by applying the differential weights to the illuminance values of each of the displays.

A foldable computing device disclosed herein includes memory, one or more processor units, two displays movably attached to each other, each of the two displays including a light sensor to generate illuminance values, an ambient illuminance report generator, stored in the memory and executable by the one or more processor units, the ambient illuminance report generator encoding computer-executable instructions on the memory for executing on the one or more processor units a computer process, the computer process including receiving a hinge angle between two displays of a foldable computing device and screen activity of each of the displays of the foldable computing device, determining foldable computing device posture information based at least in part on the hinge angle and the screen activity of each of the displays, determining a user facing display of the foldable computing device based at least in part on the device posture information and the screen activity of the displays, assigning differential weights to an illuminance value received from illuminance sensor of the user facing display compared to an illuminance value received from an illuminance sensor of the non-user facing display, and generating an aggregate weighted average illuminance by applying the differential weights to the illuminance values of each of the displays.

The above specification, examples, and data provide a complete description of the structure and use of exemplary embodiments of the invention. Since many implementations of the invention can be made without departing from the spirit and scope of the invention, the invention resides in the claims hereinafter appended. Furthermore, structural features of the different embodiments may be combined in yet another implementation without departing from the recited claims.

FIG.13illustrated example operations of the technology disclosed herein. An operation1302receives a hinge angle between two displays of a foldable computing device and screen activity of each of the displays of the foldable computing device. Operation1304determines foldable computing device posture information based at least in part on a hinge angle between two displays of a foldable computing device and screen activity of each of the displays. An operation1306determines a user facing display of the foldable computing device based at least in part on the device posture information and the screen activity of the displays. An operation1308assigns differential weights to an illuminance value received from an illuminance sensor of the user facing display compared to an illuminance value received from an illuminance sensor of the non-user facing display. An operation1310generates an aggregate weighted average illuminance by applying the differential weights to the illuminance values of each of the displays. An operation1312determines common voltage levels (VCO) for the pixels of at least one of the displays based at least in part on the aggregate weighted average illuminance.