A computing device comprises an electronic paper display, a processor and a memory. The memory is arranged to store platform software and application software for at least one application that is not adapted to work with an electronic paper display. The platform software comprises a ui conversion module comprising device-executable instructions, which when executed by the processor, cause the processor to: access a ui element tree for the application; generate a modified ui element tree for the application by removing and/or re-styling at least one ui element; and render data from the application using the modified ui element tree for display on the electronic paper display.
|
16. A method of generating data for display on an electronic paper display, the data relating to an application that includes ui elements not adapted to for display on an electronic paper display and the method comprising:
accessing a ui element tree for the application;
determine that the electronic paper display does not support an interaction corresponding to a first ui element type;
in response to determining that the electronic paper display does not support an interaction corresponding to the first ui element type,
generating a modified ui element tree for the application by
greying out a first ui element of the first ui element type that corresponds to the interaction that is not supported by the electronic paper display and modifying display parameters of a second ui element based on a visual property of the electronic paper display; and
rendering data from the application using the modified ui element tree for display on the electronic paper display;
wherein the electronic paper display is a multi-stable display that reflects light.
19. A computing device comprising: a processor; and a memory arranged to store compiler software and application software for at least one application that includes ui elements not adapted for display on an electronic paper display, and
wherein the compiler software comprises a ui conversion module comprising device-executable instructions, which when executed by the processor, cause the processor to:
access a ui element tree for the application;
determine that the electronic paper display does not support an interaction corresponding to a first ui element type;
in response to determining that the electronic paper display does not support an interaction corresponding to the first ui element type,
generate a modified ui element tree for the application by
greying out a first ui element of the first ui element type that corresponds to the interaction that is not supported by the electronic paper display and modifying display parameters of a second ui element based on a visual property of the electronic paper display; and
store the modified ui element tree for use in rendering data from the application for display on the electronic paper display;
wherein the electronic paper display is a multi-stable display that reflects light.
1. A computing device comprising:
an electronic paper display;
a processor; and
a memory coupled to the processor, the memory having stored thereon platform software and application software for at least one application that includes ui elements not adapted for display on an electronic paper display, and
wherein the platform software comprises
a ui conversion module comprising device-executable instructions,
which when executed by the processor, cause the processor to:
access a ui element tree for the application;
determine that the electronic paper display does not support an interaction corresponding to a first ui element type
in response to determining that the electronic paper display does not support an interaction corresponding to the first ui element type,
generate a modified ui element tree for the application by
greying out a first ui element of the first ui element type that corresponds to the interaction that is not supported by the electronic paper display and support
modifying display parameters of a second ui element based on a visual property of the electronic paper display; and
render data from the application using the modified ui element tree for display on the electronic paper display;
wherein the electronic paper display is a multi-stable display that reflects light.
2. The computing device according to
output the data rendered using the modified ui tree to the electronic paper display.
3. The computing device according to
a detachable portion comprising the electronic paper display.
4. The computing device according to
a power source;
a display data store arranged to store a set of inter-related re-rendered ui images for the application generated by the ui conversion module; and
a processor arranged to select and display one of the stored re-rendered ui images on the electronic paper display.
5. The computing device according to
a user input device; and
wherein processor is arranged to select and display one of the re-rendered ui images on the electronic paper display in response to an input received via the user input device.
6. The computing device according to
7. The computing device according to
8. The computing device according to
9. The computing device according to
10. The computing device according to
11. The computing device according to
12. The computing device according to
cache the data rendered using the modified ui tree in a display data store for subsequent display on the electronic paper display.
13. The computing device according to
check if the rendered data satisfies a target rendering fidelity; and
in response to determining that the rendered data does not satisfy the target rendering fidelity, to further modify the ui element tree for the application and re-render the data from the application using the further modified ui element tree.
14. The computing device according to
generate a signal to trigger generation of the modified ui element tree by the ui conversion module.
15. The computing device according to
17. The method according to
outputting the data rendered using the modified ui tree to the electronic paper display.
18. The method according to
re-styling the second ui element dependent upon interactivity provided by the electronic paper display; and
expanding a view of the application to display to remove an interactive control and processing the expanded view to create a plurality of re-rendered ui images from the expanded view.
|
Electronic paper (or e-paper) is used for e-reader devices because it only requires power to change the image displayed and does not require continuous power to maintain the display in between. The electronic paper can therefore hold static images or text for long periods of time (e.g. from several minutes to several hours and even several days, months or years in some examples) without requiring significant power (e.g. without any power supply or with minimal power consumption). In contrast, emissive displays which are used for the screens of most other portable computing devices (e.g. smartphones, smart watches, tablet computers, handheld games consoles, portable music players, digital cameras, etc.) require a significant amount of power to maintain an image on the display and the display can, therefore, be a dominant consumer of power in such devices which only have a limited battery life.
The following presents a simplified summary of the disclosure in order to provide a basic understanding to the reader. This summary is not intended to identify key features or essential features of the claimed subject matter nor is it intended to be used to limit the scope of the claimed subject matter. Its sole purpose is to present a selection of concepts disclosed herein in a simplified form as a prelude to the more detailed description that is presented later.
A computing device comprises an electronic paper display, a processor and a memory. The memory is arranged to store platform software and application software for at least one application that is not adapted to work with an electronic paper display. The platform software comprises a UI conversion module comprising device-executable instructions, which when executed by the processor, cause the processor to: access a UI element tree for the application; generate a modified UI element tree for the application by removing and/or re-styling at least one UI element; and render data from the application using the modified UI element tree for display on the electronic paper display.
Many of the attendant features will be more readily appreciated as the same becomes better understood by reference to the following detailed description considered in connection with the accompanying drawings.
The present description will be better understood from the following detailed description read in light of the accompanying drawings, wherein:
Like reference numerals are used to designate like parts in the accompanying drawings.
The detailed description provided below in connection with the appended drawings is intended as a description of the present examples and is not intended to represent the only forms in which the present example are constructed or utilized. The description sets forth the functions of the example and the sequence of operations for constructing and operating the example. However, the same or equivalent functions and sequences may be accomplished by different examples.
The term “electronic paper” is used herein to refer to display technologies which reflect light (like paper) instead of emitting light like conventional LCD displays. As they are reflective, electronic paper displays do not require a significant amount of power to maintain an image on the display and so may be described as persistent displays. Many electronic paper displays are multi-stable displays. In some display devices, an electronic paper display may be used together with light generation in order to enable a user to more easily read the display when ambient light levels are too low (e.g. when it is dark). In such examples, the light generation is used to illuminate the electronic paper display to improve its visibility rather than being part of the image display mechanism and the electronic paper does not require light to be emitted in order to function.
The term “multi-stable display” is used herein to describe a display which comprises pixels that can move between two or more stable states (e.g. a black state and a white state and/or a series of grey or colored states). Bi-stable displays, which comprise pixels having two stable states, are therefore examples of multi-stable displays. A multi-stable display can be updated when powered, but holds a static image when not powered and as a result can display static images for long periods of time with minimal or no external power. Consequently, a multi-stable display may also be referred to as a “persistent display” or “persistently stable” display. An electrophoretic ink layer is an example of a multi-stable layer which can be changed (or controlled) by applying electric fields. Other examples include a cholesteric liquid crystal layer or a bi-stable electrowetting display layer which is controlled using electric fields or currents applied via electrodes on the faces of a the layer.
As a consequence of the technologies used to build electronic paper displays, the visual properties of the display are different to the properties of an emissive display. As well as potential differences in physical size of display, the resolution, update rate, aspect ratio and dynamic range (greyscale/color fidelity) may be different. This means that although visual information may be clear and easily readable when displayed on an emissive display, if the same visual information is instead displayed on an electronic paper display, the visual information may be unclear or unreadable.
Additionally, while emissive displays are often touch-sensitive (and hence are interactive), an electronic paper display may not provide input sensing mechanisms, or where provided the input sensing mechanisms may be more restrictive than (or otherwise different to) those typically provided for emissive displays. The difference in interactivity may be a consequence of different input mechanisms being provided (e.g. a limited number of hard controls instead of a touch-sensitive display) and/or the different output capabilities of the electronic paper display itself (e.g. because of a lower refresh rate and/or to conserve power by reducing the number of refreshes). For example, an emissive display may present a smoothly scrolling interface (controlled by touch) where the scrolling can be accomplished down to the pixel or even sub-pixel level, and update fast enough to be smoothly scrolling to the user's perspective, e.g. at 50 Hz. In contrast, on an electronic paper display, such an interface may be slow to update (e.g. 2 Hz). The difference in or lack of interactivity means that if visual information including interactive user interface (UI) elements is displayed on an electronic paper display instead of an emissive display, this may mislead the user into expecting a degree of interactivity that cannot be achieved and hence provide an inferior user experience.
Although some applications (i.e. some application software) have been written with an awareness of electronic paper displays, there are very many applications which have no awareness. As use of electronic paper displays becomes more common, it is not feasible to expect developers to modify every existing application and write all new applications to be aware of electronic paper displays. Similarly, it is not feasible to expect users to only use those applications which have been written or modified to have an awareness of electronic paper displays.
The embodiments described below are not limited to implementations which solve any or all of the disadvantages of known computing devices and/or software applications.
Described herein is a computing device that comprises an electronic paper display and may also comprise an emissive display or an interface permitting direct control of an emissive display. The electronic paper display may be integrated into a main part of the computing device or may be part of a detachable element. The computing device runs platform software (e.g. an operating system) on which application software runs. At least one of the applications which generates a graphical user interface (GUI) is not aware of the electronic paper display (i.e. the application software is not written in a way that is optimized for an electronic paper display or has not been modified to be optimized for an electronic paper display, e.g. the GUI and/or interactivity of the application is not optimized for an electronic paper display). The platform software underlying an unaware (e.g. unmodified) application has access to the UI element tree (e.g. the visual tree structure and/or logical tree structure) for the application and in response to a trigger to display the application (or to display information from the application) on the electronic paper display, the platform software is configured to examine the UI element tree, to remove, replace and/or re-style elements within the UI element tree and then render the data using the modified UI element tree. The rendered content is then ready for display on the electronic paper display and may be displayed immediately or cached for subsequent display.
By using an electronic paper display instead of an emissive display to display some of the UI some of the time, the overall power consumption of the computing device is reduced. Where the computing device is powered by an internal battery (or other internal power source) this extends the operating life of the device before it needs to be recharged. Where the electronic paper display is part of a detachable element, a user can take away some information on a very low power device.
In various examples, use of an electronic paper display to display cached content that has already been rendered, instead of displaying live content, may result in a lower latency (e.g. it may be faster to display and navigate through the information) and depending upon the type of information being displayed, the fact that the information is not live may not matter (e.g. where the information does not change that quickly, such as a long-range weather forecast, train timetable, etc.). This may allow the application to be closed (i.e. to stop running) and be removed from memory, thereby reducing the power consumption and memory usage of the computing device.
The computing device may, for example, be a portable or handheld computing device (e.g. a smart phone, laptop computer, tablet computer, handheld games console, wearable device, etc.) and the electronic paper display may be integral to the device or may be part of a detachable module (e.g. a detachable cover for a smart phone or tablet computer). Alternatively, the computing device 102 may be a non-portable computing device such as a desktop computer, smart television or games console and the electronic paper display may be part of a detachable element (or module) which is portable and which may, for example, be placed in a user's pocket or wallet or worn (i.e. it may be a wearable device).
In examples where the electronic paper display is part of a detachable element or module, the communication link between the detached element and the remainder of the computing device may have a limited bandwidth or there may be no communication link. By re-rendering the UI specifically for the electronic paper display (as described above), the connectivity (or lack thereof) between the detachable element and the remainder of the computing device can be taken into consideration (e.g. if there is no connectivity following separation, all the application's output that a user may expect to view may be cached and rendered for the electronic paper display ahead of separation as a closed set of information; however, if there is some connectivity following separation, an initial set of information may be cached and re-rendered prior to separation and further information may be subsequently re-rendered and communicated to the detachable element over the communication link). As an electronic paper display does not require power to maintain display of a static image, the detachable element does not necessarily require a battery (or other power source) or may comprise a small battery (or other power source) to enable limited user interaction with the displayed data.
The detachable module 202 comprises the electronic paper display 104 and a communication interface 212. In addition it may comprise one or more of: a power source 210, a processor 206 (which may be significantly less powerful than the processor(s) 106 in the main part of the computing device 200), a user input device 230 and a display data store 220.
Once physically separated, the detachable module 202 may have no data connection with the rest of the computing device 200 and in such examples, the content displayed on the electronic paper display 104 may be fixed (e.g. if the detachable module 202 does not comprise a power source 210 and/or display data store 220). Alternatively the content may be limited to a fixed data set (stored in the display data store 220) comprising a plurality of re-rendered UI images (as described in more detail below with reference to
In various examples, the detachable module 202 may have a limited bandwidth data connection to the rest of the computing device 200 when it is physically separated and in such examples, the limited bandwidth data connection may be used to receive trigger signals (e.g. to trigger the switching between the stored content of the fixed data set) or to receive further re-rendered content which has been re-rendered with an awareness of the limited bandwidth data connection.
The computing device 200 may also comprise additional functional elements in addition to those shown in
The processors 106, 206 may be microprocessors, controllers or any other suitable type of processors for processing computer executable instructions to control the operation of the device in order to perform the methods described herein. In some examples, for example where a system on a chip architecture is used, the processors 106, 206 include one or more fixed function blocks (also referred to as accelerators) which implement a part of the methods described herein in hardware (rather than software or firmware). Alternatively, or in addition, the functionality described herein is performed, at least in part, by one or more hardware logic components. For example, and without limitation, illustrative types of hardware logic components that are optionally used include Field-programmable Gate Arrays (FPGAs), Application-specific Integrated Circuits (ASICs), Application-specific Standard Products (ASSPs), System-on-a-chip systems (SOCs), Complex Programmable Logic Devices (CPLDs), Graphics Processing Units (GPUs).
The processor 206 (where provided) in the detachable module 202 may not be the same as the processor 106 in the main part of the computing device 200 shown in
The computer executable instructions which are executed by the processor(s) 106 are provided using any computer-readable media that is accessible by the computing device 100, 200 and these computer executable instructions may include platform software 114 (e.g. an operating system) and application software 116. Computer-readable media includes, for example, computer storage media such as memory 108 and communications media. Computer storage media, such as memory 108, includes volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or the like. Computer storage media includes, but is not limited to, random access memory (RAM), read only memory (ROM), erasable programmable read only memory (EPROM), electronic erasable programmable read only memory (EEPROM), flash memory or other memory technology, compact disc read only memory (CD-ROM), digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other non-transmission medium that is used to store information for access by a computing device. In contrast, communication media embody computer readable instructions, data structures, program modules, or the like in a modulated data signal, such as a carrier wave, or other transport mechanism. As defined herein, computer storage media does not include communication media. Therefore, a computer storage medium should not be interpreted to be a propagating signal per se. Although the computer storage media (memory 108) is shown within the computing devices it will be appreciated that part of the storage may, in some examples, be distributed or located remotely and accessed via a network or other communication link (e.g. using communication interface 112).
The power source 110 in the computing device 100, 200 may be any suitable power source including, but not limited to, a power supply which connects to a mains electricity supply, a battery or a power-harvesting system (e.g. a solar cell). Where the detachable module 202 also includes a power source 210 this may also be any suitable power source including any of the examples provided above. In some examples, however, the power source in the detachable module 202 may only provide a limited supply of power, e.g. it may be a smaller battery, capacitor or super-capacitor or may use power-harvesting, and in various examples, a power source 210 in the detachable module 202 may be charged by the power source 110 in the main part of the computing device 200 when the detachable module is physically connected to the main part of the computing device 200 (i.e. when it is not detached).
The software 116 for an application which is stored in the memory 108 of the computing device 100, 200 comprises a UI element tree 117. The UI element tree 117 (which may also be referred to as a ‘visual tree’ and/or a ‘logical tree’) describes all the elements that form the UI of the application and also the inter-relation between elements. An example 500 of a UI and a corresponding UI element tree 501 are shown in
At least one of the applications which runs on the platform software 114 (and for which application software 116 is stored in the memory 108) and which generates a GUI is not written or modified to specifically accommodate display on an electronic paper display 104 and such an application is described as being not ‘aware’ of the electronic paper display 104.
The platform software 114 which is stored in the memory 108 of the computing device 100, 200 comprises a UI conversion module 118. The UI conversion module 118 comprises device-executable instructions which, when executed by a processor 106, cause the processor 106 to examine the UI element tree, to remove, replace and/or re-style elements within the UI element tree and thereby generate a modified UI element tree (i.e. a modified version of the UI element tree 117). The term ‘re-style’ is used herein to refer to editing/modifying the parameters of an element within the UI element tree 117 (e.g. to change the font size, font size and/or display color). The modified UI element tree may be stored within the memory 108 for later use in rendering data or may be used immediately to render data and then discarded. Where the modified UI element tree is stored, it may be subsequently modified further (e.g. by the UI conversion module 118). The rendering of the data using the modified UI element tree and at the resolution of the electronic paper display 104 may be performed by the UI conversion module 118 or by other parts of the platform software (e.g. by a rendering module, not shown in any of
The functionality provided by the UI conversion module 118 (i.e. the operations performed by the processor 106 when executing the device-executable instructions) can be described with reference to
The method is initiated by a trigger which is received in relation to an application 116 which is not aware of the electronic paper display 104 (block 602). The trigger may be generated by the platform software 114 and may be generated in response to various actions or events.
In a first example, a user may indicate that they want to pin some data from the application to the electronic paper display 104 and this may be referred to as ‘explicit pinning’. As the application is unaware of the electronic paper display 104, the triggering event may, for example, be a user interacting with the platform software by pressing a touch button on the computing device, tapping on the electronic paper display 104 (where this is touch-sensitive) or performing a gesture when the application is running and visible on the emissive display 102. Alternatively, the triggering event may be a user taking a screen capture from the application and selecting an option to display that screen capture on the electronic paper display 104. Using explicit pinning, the energy consumption used to display the data may be reduced compared to using the emissive display 102 because the emissive display 102 can be switched off.
In a second example, the platform software 114 or a specific application running on the platform software and which is aware of the electronic paper display 104 may generate the trigger autonomously, e.g. whenever a user switches between applications (e.g. any applications or particular applications), whenever a user closes a particular (unaware) application (e.g. a calendar application), periodically (e.g. every hour), when screen contents change significantly, etc. and this may be referred to as ‘implicit pinning’. The platform software 114 (or the specific application) may learn from a user's activity what content they refer to often and/or what content they read at a particular time and may pre-emptively trigger the rendering of that content on the electronic paper display 104. This reduces the energy consumption of the computing device (because the user does not use the emissive display 102 to read the content) and reduces the latency experienced by the user (because the data is available and rendered ahead of when they require it).
In various examples, triggers may be generated autonomously in response to a change in state, or in response to an anticipated change in state, of the computing device 100, 200. For example, a trigger may be generated in response to a power level of the computing device falling below a threshold value (e.g. such that a loss of power is anticipated), anticipation of a loss of network connectivity (e.g. as detected by the signal strength falling below a threshold value), detachment of the detachable module 202, etc.
In response to the trigger (received in block 602), the processor 106 accesses the UI element tree 117 (block 604) for the relevant application 116 (or for multiple applications 116, where data is pinned from a collection of two or more applications at the same time) and generates a modified UI element tree (block 606). The modified UI element tree (as generated in block 606) is targeted specifically at the characteristics of the electronic paper display 104, although in various examples only parts of the UI element tree 117 which are relevant to the data being pinned may be modified and other parts of the UI element tree 117 (e.g. which relate to UI elements which are not being pinned) may be left unmodified, even if they are not suitable for rendering on the electronic paper display 104. If the electronic paper display 104 is part of a detachable module 202, the modifications to the UI element tree may also be based on the available bandwidth of a data connection between the module 202 when detached and the rest of the computing device (e.g. by using more plain surfaces and fewer images and icons where the available bandwidth is limited to ease image compression and/or using only a subset of a UI element's display characteristics where the available bandwidth is limited, such as the text/numbers but not color, font size, etc.).
As described above, the UI element tree which is accessed (in block 604) may be the original, un-modified UI element tree for the application or may be a previously modified UI element tree (e.g. as generated in a previous iteration of the method of
The generation of the modified UI element tree (in block 606) may comprise a number of stages: removal of UI elements (block 606a), re-styling of UI elements (block 606b) and fitting the UI (which is a GUI) to one or more screens (block 606c). In any implementation, none, one or more of these stages 606a-606c may be used and they may be implemented in a different order (e.g. re-styling before removal), although the fitting to one or more screens (in block 606c) is always performed after the removal of UI elements (in block 606a).
As shown in
As also shown in
Many aspects of the re-styling that is performed (in block 606b) may be dependent upon the interactivity provided by the electronic paper display 104 (and also the detachable module 202, in the example shown in
Instead of removing or greying out a control which relates to an interaction that is not supported by the electronic paper display 104, the control may alternatively be replaced by one which is supported by the electronic paper display 104. This replacement of controls may be linked to the pagination strategy used (as described below with reference to block 606c) such that an original control is replaced by a new control dependent upon the pagination strategy.
The re-styling of UI elements (in block 606b) may also include aspects which are not related to the interactivity of the electronic paper display 104 (or detachable module 202) but are instead related to the visual properties of the electronic paper display 104, such as the dynamic range. To improve contrast and visual clarity on the electronic paper display 104 (compared to just rendering the same UI element tree as used on the emissive display 102), the background color, text size/color and/or borders of UI elements may be changed.
As shown in
When a child UI element (e.g. any of elements 503-512 in
As described above, when the expanded application (from block 606b) has a larger size (e.g. height and/or width) than the resolution of the electronic paper display 104 allows for, a pagination strategy or alternative scheme may be applied (in block 606c). In an example, a number of re-rendered UI images 701-706 may be created by the UI conversion module 118 which cover different parts of the expanded application 700 (in block 606c, as shown graphically in the upper part of
An alternative pagination strategy is ‘in-app pagination’ and this may be applied where an application offers multiple views. This may, for example, be implemented in a weather application, as shown in the lower part 720 of
To determine which views of an application to expand for in-app pagination (because the re-rendering is done in advance of the user clicking to update the display), the UI conversion module 118 may record user actions within an application and learn their likely sequence of touch events, or alternatively cloud-based learning may be used and the reference data provided to the UI conversion module 118 (where the reference data is generated from many users actions). Depending upon the likely (or anticipated) sequence, a plurality of re-rendered UI images 725-727 may be generated (e.g. by capturing a navigable set of data) and the interactions between them defined and this is stored in the modified UI element tree. The interactions are selected to be compatible with the electronic paper display 104 (and associated hardware, such as the hardware in the detachable module 202) and enable the user to switch between re-rendered UI images 725-727 as if they were interacting with the live application, whilst instead interacting with the re-rendered UI images.
In various examples, the pagination strategy used may minimize differences between the different pages (e.g. differences where a greyscale level is involved) as this reduces the time taken to switch between the re-rendered UI images and in various examples, the energy consumption of the switch operation.
By using a pagination strategy as described above, a user has the ability to interact with application data (as displayed on the electronic paper display 104) even if the application itself is no longer running. This reduces power consumption both through the use of an electronic paper display 104 (instead of an emissive display 102) and through the application no longer running.
The modification of the UI element tree that results in the UI being fitted to multiple screens (in block 606c) may split the single UI element tree (as accessed in block 604) into multiple UI element trees and this transfers the complexity of the renderer to the UI conversion module 118. For example, a UI tree (or part thereof) may have the form:
<tabs>
<item id=”Tab 1”>Information in tab 1</item>
<item id=”Tab 2”>Information in tab 2</item>
</tabs>
And this may be treated as:
Show tab 1→re-rendered image
Show tab 2→re-rendered image
Alternatively, two trees may be generated from the original UI tree (or part thereof) to reduce the complexity of the renderer:
<tabs>
<item id=”Tab 1”>Information in tab 1</item>
</tabs>
<tabs>
<item id=”Tab 2”>Information in tab 2</item>
</tabs>
This could then be treated as:
Show UI tree 1→re-rendered image
Show UI tree 2→re-rendered image As described above and in the example of
Once the modified UI element tree has been generated (in block 606), the application data is re-rendered at the resolution of the electronic paper display 104 and using the modified UI element tree (block 608). The re-rendered data (from block 608) may be displayed immediately on the electronic paper display 104 or cached for later display (block 612), where the data may be cached in the memory 108 (e.g. in a display data store 120) or in a separate memory (display data store 220) within the detachable module 202 comprising the electronic paper display 104.
As shown in
In addition to, or instead of, iterating the method to achieve a target fidelity, the method may be iterated to achieve a target data rate (e.g. where there is a limited bandwidth data connection between the main part of the computing device 200 and the detachable module 202).
Although
In examples where a fidelity assessment is not performed at all (i.e. block 610 is omitted), the generation of the modified UI element tree (in block 606) may be rules based and the same modifications/actions may be performed for all UI element trees. For example, a rule-based ‘search and replace’ may be performed (in block 606), e.g. remove all background images, set all text colors to a predefined color (or to perform a predefined conversion to a specific set of colors), etc.
By using the method shown in
In the examples described above, the modified UI element tree is generated at runtime. In other examples, however, the modified UI element tree may be generated at compile time or as a subsequent re-compilation process. In various examples, the method may be implemented as a subsequent re-compilation process on any of the computing devices 100, 200, 300, 400 shown in
By using the method described herein to modify the UI element tree at runtime, compile time or any time in between (e.g. to recompile an application) the user experience of the application is improved and multi-screen use of an application (i.e. use of the application on multiple different types of display) is enabled.
The computing device 100 described above may comprise NUI technology which enables a user to interact with the computing-based device in a natural manner, free from artificial constraints imposed by input devices such as mice, keyboards, remote controls and the like. Examples of NUI technology that are provided in some examples include but are not limited to those relying on voice and/or speech recognition, touch and/or stylus recognition (touch sensitive displays), gesture recognition both on screen and adjacent to the screen, air gestures, head and eye tracking, voice and speech, vision, touch, gestures, and machine intelligence. Other examples of NUI technology that are used in some examples include intention and goal understanding systems, motion gesture detection systems using depth cameras (such as stereoscopic camera systems, infrared camera systems, red green blue (RGB) camera systems and combinations of these), motion gesture detection using accelerometers/gyroscopes, facial recognition, three dimensional (3D) displays, head, eye and gaze tracking, immersive augmented reality and virtual reality systems and technologies for sensing brain activity using electric field sensing electrodes (electro encephalogram (EEG) and related methods).
The examples described above and shown in
Alternatively or in addition to the other examples described herein, examples include any combination of the following further examples or aspects thereof.
A first further example provides a computing device comprising: an electronic paper display; a processor; and a memory arranged to store platform software and application software for at least one application that is not adapted to work with an electronic paper display, and wherein the platform software comprises a UI conversion module comprising device-executable instructions, which when executed by the processor, cause the processor to: access a UI element tree for the application; generate a modified UI element tree for the application by removing and/or re-styling at least one UI element; and render data from the application using the modified UI element tree for display on the electronic paper display.
The computing device may further comprise an emissive display or an interface permitting direct control of an emissive display.
The platform software may further comprise device-executable instructions, which when executed by the processor, cause the processor to: output the data rendered using the modified UI tree to the electronic paper display.
The computing device may further comprise a detachable portion comprising the electronic paper display. The detachable portion may further comprise: a power source; a display data store arranged to store a set of inter-related re-rendered UI images for the application generated by the UI conversion module; and a processor arranged to select and display one of the stored re-rendered UI images on the electronic paper display. The detachable portion may further comprise: a user input device; and wherein processor is arranged to select and display one of the re-rendered UI images on the electronic paper display in response to an input received via the user input device.
The modified UI element tree may be generated based on characteristics of the electronic paper display. The characteristics may comprise one or more of: dynamic range; resolution; update rate; aspect ratio and input sensing capabilities.
The modified UI element tree may be generated by removing at least one UI element that is not supported by the electronic paper display and/or re-styling at least one UI element dependent upon interactivity provided by the electronic paper display.
The modified UI element tree may be generated by expanding a view of the application to display to remove a scroll bar and using a pagination strategy to create a plurality of re-rendered UI images from the expanded view. The plurality of re-rendered UI images may be partially overlapping.
The modified UI element tree may be generated by capturing a navigable set of data from the application and using a pagination strategy to create a plurality of re-rendered UI images from the captured data.
The platform software may further comprise device-executable instructions, which when executed by the processor, cause the processor to: cache the data rendered using the modified UI tree in a display data store for subsequent display on the electronic paper display.
The UI conversion module may further comprise device-executable instructions, which when executed by the processor, cause the processor to: check if the rendered data satisfies a target rendering fidelity; and in response to determining that the rendered data does not satisfy the target rendering fidelity, to further modify the UI element tree for the application and re-render the data from the application using the further modified UI element tree.
The platform software may further comprise device-executable instructions, which when executed by the processor, cause the processor to: generate a signal to trigger generation of the modified UI element tree by the UI conversion module. The signal may be generated in response to a user input or in response to a change in state or anticipated change in state of the computing device.
A second further example provides a method of generating data for display on an electronic paper display, the data relating to an application that is not adapted to work with an electronic paper display and the method comprising: accessing a UI element tree for the application; generating a modified UI element tree for the application by removing and/or re-styling at least one UI element; and rendering data from the application using the modified UI element tree for display on the electronic paper display.
The method may further comprise outputting the data rendered using the modified UI tree to the electronic paper display.
Generating a modified UI element tree for the application by removing and/or re-styling at least one UI element may comprise at least one of: removing at least one UI element that is not supported by the electronic paper display; re-styling at least one UI element dependent upon interactivity provided by the electronic paper display; and expanding a view of the application to display to remove an interactive control and processing the expanded view to create a plurality of re-rendered UI images from the expanded view.
A third further example provides a computing device comprising: a processor; and a memory arranged to store compiler software and application software for at least one application that is not adapted to work with an electronic paper display, and wherein the compiler software comprises a UI conversion module comprising device-executable instructions, which when executed by the processor, cause the processor to: access a UI element tree for the application; generate a modified UI element tree for the application by removing and/or re-styling at least one UI element; and store the modified UI element tree for use in rendering data from the application for display on an electronic paper display.
A fourth further example provides a system comprising a computing device and a detachable module, the detachable module comprising an electronic paper display and the computing device comprising: a processor; and a memory arranged to store platform software and application software for at least one application that is not adapted to work with an electronic paper display, and wherein the platform software comprises a UI conversion module comprising device-executable instructions, which when executed by the processor, cause the processor to: access a UI element tree for the application; generate a modified UI element tree for the application by removing and/or re-styling at least one UI element; and render data from the application using the modified UI element tree for display on the electronic paper display.
The computing device may further comprise an emissive display or an interface permitting direct control of an emissive display.
A fifth further example provides a computing device comprising: a processor; and a memory arranged to store application software for at least one application that is not adapted to work with an electronic paper display and software comprising a UI conversion module, wherein the UI conversion module comprises device-executable instructions, which when executed by the processor, cause the processor to: access a UI element tree for the application; and generate a modified UI element tree for the application by removing and/or re-styling at least one UI element.
The computing device may further comprise an electronic paper display and wherein the software comprises platform software and the UI conversion module may additionally comprise device-executable instructions, which when executed by the processor, cause the processor to: render data from the application using the modified UI element tree for display on the electronic paper display. The computing may further comprise an emissive display or an interface permitting direct control of an emissive display. The platform software may further comprise device-executable instructions, which when executed by the processor, cause the processor to: output the data rendered using the modified UI tree to the electronic paper display. The computing device may further comprise: a detachable portion comprising the electronic paper display. The detachable portion may further comprise: a power source; a display data store arranged to store a set of inter-related re-rendered UI images for the application generated by the UI conversion module; and a processor arranged to select and display one of the stored re-rendered UI images on the electronic paper display. The detachable portion may further comprise: a user input device; and wherein processor may be arranged to select and display one of the re-rendered UI images on the electronic paper display in response to an input received via the user input device. The platform software may further comprise device-executable instructions, which when executed by the processor, cause the processor to: generate a signal to trigger generation of the modified UI element tree by the UI conversion module. The signal may be generated in response to a user input or in response to a change in state or anticipated change in state of the computing device.
The software may comprise compiler software and the UI conversion module additionally comprising device-executable instructions, which when executed by the processor, cause the processor to: store the modified UI element tree for use in rendering data from the application for display on an electronic paper display.
The UI conversion module in the fifth further example may further comprise device-executable instructions, which when executed by the processor, cause the processor to: check if the rendered data satisfies a target rendering fidelity; and in response to determining that the rendered data does not satisfy the target rendering fidelity, to further modify the UI element tree for the application and re-render the data from the application using the further modified UI element tree.
In the fifth further example the modified UI element tree may be generated based on characteristics of the electronic paper display. The characteristics may comprise one or more of: dynamic range; resolution; update rate; aspect ratio and input sensing capabilities.
In the fifth further example the modified UI element tree may be generated by one or more of: removing at least one UI element that is not supported by the electronic paper display; re-styling at least one UI element dependent upon interactivity provided by the electronic paper display; expanding a view of the application to display to remove a scroll bar and using a pagination strategy to create a plurality of re-rendered UI images from the expanded view; and capturing a navigable set of data from the application and using a pagination strategy to create a plurality of re-rendered UI images from the captured data.
The term ‘computer’ or ‘computing-based device’ is used herein to refer to any device with processing capability such that it executes instructions. Those skilled in the art will realize that such processing capabilities are incorporated into many different devices and therefore the terms ‘computer’ and ‘computing-based device’ each include personal computers (PCs), servers, mobile telephones (including smart phones), tablet computers, set-top boxes, media players, games consoles, personal digital assistants, wearable computers, and many other devices.
The methods described herein are performed, in some examples, by software in machine readable form on a tangible storage medium e.g. in the form of a computer program comprising computer program code means adapted to perform all the operations of one or more of the methods described herein when the program is run on a computer and where the computer program may be embodied on a computer readable medium. Examples of tangible storage media include computer storage devices comprising computer-readable media such as disks, thumb drives, memory etc. and do not include propagated signals. The software is suitable for execution on a parallel processor or a serial processor such that the method operations may be carried out in any suitable order, or simultaneously.
This acknowledges that software is a valuable, separately tradable commodity. It is intended to encompass software, which runs on or controls “dumb” or standard hardware, to carry out the desired functions. It is also intended to encompass software which “describes” or defines the configuration of hardware, such as HDL (hardware description language) software, as is used for designing silicon chips, or for configuring universal programmable chips, to carry out desired functions.
Those skilled in the art will realize that storage devices utilized to store program instructions are optionally distributed across a network. For example, a remote computer is able to store an example of the process described as software. A local or terminal computer is able to access the remote computer and download a part or all of the software to run the program. Alternatively, the local computer may download pieces of the software as needed, or execute some software instructions at the local terminal and some at the remote computer (or computer network). Those skilled in the art will also realize that by utilizing conventional techniques known to those skilled in the art that all, or a portion of the software instructions may be carried out by a dedicated circuit, such as a digital signal processor (DSP), programmable logic array, or the like.
Any range or device value given herein may be extended or altered without losing the effect sought, as will be apparent to the skilled person.
Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.
It will be understood that the benefits and advantages described above may relate to one embodiment or may relate to several embodiments. The embodiments are not limited to those that solve any or all of the stated problems or those that have any or all of the stated benefits and advantages. It will further be understood that reference to ‘an’ item refers to one or more of those items.
The operations of the methods described herein may be carried out in any suitable order, or simultaneously where appropriate. Additionally, individual blocks may be deleted from any of the methods without departing from the scope of the subject matter described herein. Aspects of any of the examples described above may be combined with aspects of any of the other examples described to form further examples without losing the effect sought.
The term ‘comprising’ is used herein to mean including the method blocks or elements identified, but that such blocks or elements do not comprise an exclusive list and a method or apparatus may contain additional blocks or elements.
The term ‘subset’ is used herein to refer to a proper subset such that a subset of a set does not comprise all the elements of the set (i.e. at least one of the elements of the set is missing from the subset).
It will be understood that the above description is given by way of example only and that various modifications may be made by those skilled in the art. The above specification, examples and data provide a complete description of the structure and use of exemplary embodiments. Although various embodiments have been described above with a certain degree of particularity, or with reference to one or more individual embodiments, those skilled in the art could make numerous alterations to the disclosed embodiments without departing from the spirit or scope of this specification.
Schmidt, Albrecht, Scott, James, Hodges, Stephen Edward, Wood, Gavin, Chen, Nicholas Yen-Cherng, Helmes, John Franciscus Marie, Denney, Thomas, Grosse-Puppendahl, Tobias Alexander, Taylor, Stuart Alastair, Knierim, Pascal, Fromm, Josh
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
7581034, | Nov 23 2004 | Microsoft Technology Licensing, LLC | Sending notifications to auxiliary displays |
7711868, | Nov 23 2004 | Microsoft Technology Licensing, LLC | Waking a main computer system to pre-fetch data for an auxiliary computing device |
7733335, | Apr 30 1999 | E Ink Corporation | Methods for driving bistable electro-optic displays, and apparatus for use therein |
7990338, | Sep 14 2006 | SPRING DESIGN, INC | Electronic devices having complementary dual displays |
8593401, | Feb 27 2013 | LG Electronics Inc.; LG Electronics Inc | Mobile terminal including a double-sided display unit and controlling method thereof |
8629814, | Sep 14 2006 | SPRING DESIGN, INC | Controlling complementary bistable and refresh-based displays |
8760363, | Oct 01 2009 | Apple Inc. | Systems and methods for switching between an electronic paper display and a video display |
8823722, | Aug 20 2010 | Marvell International Ltd.; MARVELL INTERNATIONAL LTD | SOC with integrated bistable display controller |
8898398, | Mar 09 2010 | Microsoft Technology Licensing, LLC | Dual-mode and/or dual-display shared resource computing with user-specific caches |
9158135, | Sep 25 2013 | Amazon Technologies, Inc | Hinged ancillary displays |
9727293, | Dec 21 2010 | Amazon Technologies, Inc | Method and apparatus for paginating electronic documents |
9740791, | Sep 23 2014 | Amazon Technologies, Inc | Browser as a service |
20050243346, | |||
20070271522, | |||
20070279350, | |||
20080072163, | |||
20080086778, | |||
20080235634, | |||
20100023788, | |||
20110084979, | |||
20110145249, | |||
20110242007, | |||
20110260948, | |||
20120166985, | |||
20120260157, | |||
20140002365, | |||
20140184471, | |||
20140310643, | |||
20140340282, | |||
20150015573, | |||
20150042539, | |||
20150198978, | |||
20150255036, | |||
20160062964, | |||
20160070682, | |||
20160349868, | |||
20170161240, | |||
20170315971, | |||
CN203896400, | |||
WO2008084549, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Mar 06 2016 | SCHMIDT, ALBRECHT | Microsoft Technology Licensing, LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 042109 | /0793 | |
Mar 24 2016 | GROSSE-PUPPENDAHL, TOBIAS | Microsoft Technology Licensing, LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 039391 | /0081 | |
Mar 24 2016 | SCOTT, JAMES | Microsoft Technology Licensing, LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 041795 | /0037 | |
Mar 24 2016 | TAYLOR, STUART ALASTAIR | Microsoft Technology Licensing, LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 041795 | /0037 | |
Mar 26 2016 | FROMM, JOSH | Microsoft Technology Licensing, LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 041795 | /0037 | |
Mar 28 2016 | DENNEY, THOMAS | Microsoft Technology Licensing, LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 041795 | /0037 | |
Mar 29 2016 | HELMES, JOHN FRANCISCUS MARIE | Microsoft Technology Licensing, LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 041795 | /0037 | |
Mar 29 2016 | KNIERIM, PASCAL | Microsoft Technology Licensing, LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 041795 | /0037 | |
Mar 31 2016 | CHEN, NICHOLAS YEN-CHERNG | Microsoft Technology Licensing, LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 041795 | /0037 | |
Mar 31 2016 | HODGES, STEPHEN EDWARD | Microsoft Technology Licensing, LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 041795 | /0037 | |
Mar 31 2016 | WOOD, GAVIN | Microsoft Technology Licensing, LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 041795 | /0037 | |
Mar 31 2016 | HODGES, STEVEN EDWARD | Microsoft Technology Licensing, LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 042109 | /0793 | |
Apr 01 2016 | Microsoft Technology Licensing, LLC | (assignment on the face of the patent) | / | |||
Jun 13 2016 | SCHMIDT, ALBRECHT | Microsoft Technology Licensing, LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 041795 | /0037 | |
Feb 23 2017 | GROSSE-PUPPENDAHL, TOBIAS ALEXANDER | Microsoft Technology Licensing, LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 041795 | /0037 |
Date | Maintenance Fee Events |
May 26 2023 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Date | Maintenance Schedule |
Mar 31 2023 | 4 years fee payment window open |
Oct 01 2023 | 6 months grace period start (w surcharge) |
Mar 31 2024 | patent expiry (for year 4) |
Mar 31 2026 | 2 years to revive unintentionally abandoned end. (for year 4) |
Mar 31 2027 | 8 years fee payment window open |
Oct 01 2027 | 6 months grace period start (w surcharge) |
Mar 31 2028 | patent expiry (for year 8) |
Mar 31 2030 | 2 years to revive unintentionally abandoned end. (for year 8) |
Mar 31 2031 | 12 years fee payment window open |
Oct 01 2031 | 6 months grace period start (w surcharge) |
Mar 31 2032 | patent expiry (for year 12) |
Mar 31 2034 | 2 years to revive unintentionally abandoned end. (for year 12) |