Users are exposed to a wide range of display devices in their everyday lives. A user, for instance, may interact with mobile communication devices such as tablet computers and mobile phones when in a mobile setting, such as when traveling to and from work. The user may also interact with computers having traditional form factors, such as a laptop or desktop PC, at the user's work, home and so forth. The user may also watch a television, such as to play video games, watch movies and television programming, and so on.
Traditional display techniques that were employed by these devices however, could cause eye strain to users viewing the devices, especially when viewing the devices for significant amounts of time. This eye strain could therefore have an effect on a user's experience with the devices, as well as a physical effect on the user, such as to cause the user to wear glasses as a result of the strain.
Light guide techniques are described. In one or more implementations, an apparatus includes a housing configured in a hand-held form factor, a light guide supported by the housing, a light engine disposed within the housing and optically coupled to the light guide, and one or more modules disposed within the housing and implemented at least partially in hardware. The one or more modules are configured to cause the light engine to output a user interface for display using the light guide along an image plane focused at infinity.
In one or more implementations, an apparatus includes a housing configured in a hand-held form factor, a light guide, supported by the housing, having a first side configured to be viewed by a user and a second side opposing the first side that includes one or more touch sensors, a light engine disposed within the housing and optically coupled to the light guide, and one or more modules disposed within the housing and implemented at least partially in hardware. The one or more modules are configured to cause the light engine to project a user interface for display using the light guide that is viewable via the first side and detect one or more inputs using the one or more touch sensors located via the second side, the one or more inputs usable to initiate one or more operations.
In one or more implementations, an apparatus includes a housing, a light guide supported by the housing having a first side that is viewable by a user, a second side opposing the first side, and switchable in-coupling optics. The apparatus also includes a light engine disposed within the housing and optically coupled to the in-coupling optics of the light guide and one or more modules disposed within the housing and implemented at least partially in hardware. The one or more modules are communicatively coupled to the switchable in-coupling optics to cause a switch between a first mode in which an output of the light engine is displayed through the first side of the light guide and a second mode in which an output of the light engine passes through the second side of the light guide.
In one or more implementations, an apparatus includes a housing configured in a hand-held form factor, one or more sensors configured to detect a position and orientation of the housing in three dimensions in a physical environment of the housing, a light guide that is at least partially transparent and supported by the housing, a light engine that is optically coupled to the light guide, and one or more modules disposed within the housing and implemented at least partially in hardware. The one or more modules are configured to calculate a position and orientation of an augmentation and cause the light engine to output the augmentation for display using the light guide such that the augmentation is viewable concurrently with at least a portion of the physical environment through the light guide.
In one or more implementations, one or more images of a user are captured using one or more cameras of a handheld device that is held by a user. A location of the user's pupils is calculated in three dimensional space from the captured one or more images by the handheld device. An augmentation is displayed on a transparent display of the handheld device based on the calculated location of the user's pupils that is viewable concurrently with at least a portion of a physical surroundings of the handheld device that is viewable through the transparent display.
In one or more implementations, an apparatus includes a housing configured in a hand-held form factor, one or more cameras positioned in the housing to track one or more eyes of a user, a light guide that is at least partially transparent and supported by the housing, a light engine that is optically coupled to the light guide, and one or more modules disposed within the housing and implemented at least partially in hardware. The one or more modules are configured to calculate a position of one or more pupils of the user in three-dimensional space and cause the light engine to output an augmentation for display based on the calculated position using the light guide such that the augmentation is viewable concurrently with at least a portion of the physical environment through the light guide.
In one or more implementations, a display device of a computing device is viewed at a first distance such that a first field of view of a user interface displayed by the display device is viewable. The display device of the computing device is viewed at a second distance that is less than the first distance such that a second field of view of the user interface displayed by the display device is viewable that is greater than the first field of view.
In one or more implementations, an apparatus includes one or more modules implemented at least partially in hardware to configure a user interface and a display device communicatively coupled to the one or more modules to output the user interface to be viewable by a user within a range of distances from the display device such that closer distances within the range permit the user to have an increased field of view in comparison with distances within the range that are further away from the user.
In one or more implementations, an apparatus includes one or more modules implemented at least partially in hardware to configure a user interface and a display device communicatively coupled to the one or more modules to output the user interface to be viewable by a user such that different portions of the user interface are viewable by the user depending on an angle of tilt of the display device in relation to one or more eyes of the user.
In one or more implementations, a display device includes a housing configured to be supported by a surface, a light guide supported by the housing, a light engine disposed within the housing and optically coupled to the light guide, and one or more modules disposed within the housing and implemented at least partially in hardware. The one or more modules are configured to cause the light engine to output a user interface for display using the light guide along an image plane focused at infinity.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
The detailed description is described with reference to the accompanying figures. In the figures, the left-most digit(s) of a reference number identifies the figure in which the reference number first appears. The use of the same reference numbers in different instances in the description and the figures may indicate similar or identical items.
Overview
Traditional techniques employed by display devices involved a display that is focused at an image plane that coincides with a surface of the device. Therefore, these traditional techniques could cause eyestrain to users that viewed the devices, which could physically affect the user as well as affect the user's experience with the devices.
Light guide techniques are described herein. In one or more implementations, a light guide is configured for use as a display device. The light guide, for instance, may be incorporated as part of a device having a handheld form factor, such as a tablet computer, mobile phone, portable gaming device, and so forth. The light guide may also be incorporated as part of a variety of other devices, such as a television, as part of a monitor for a desktop or laptop computer, and so forth.
The light guide may be configured to provide a display along an image plane focused at infinity. Thus, the light guide may be viewed by a user with minimal or no contraction of eye muscles, such as may be observed by a user when viewing the horizon or other far away object. In this way, users that traditionally utilized glasses to view a display device (e.g., suffered from presbyopia) may in some instances view the light guide without the glasses.
A variety of functionality may be enabled by leveraging use of the light guide. For example, the light guide may be configured to support transparency such that physical surroundings of the light guide are viewable through the light guide. This may be utilized to support a variety of different scenarios, such as augmented reality in which an augmentation is displayed and the physical environment is viewable through the display. In another example, the light guide may support a field of view that increases as a distance between a user's eyes and the light guide decreases. In this way, a user may bring a device (e.g., a mobile phone) that employs the light guide closer to see more of a user interface output by the device. In addition, since the image plane may appear ‘behind’ the screen of the actual device, the device may support gestures involving movement of the device itself, such as to pan images by simply tilting the device. Thus, the functionality supported by the increased field of view and the panning of the image may be particularly useful for a mobile device where the size of the display device is limited and content exceeds the available screen real estate. A variety of other examples are also contemplated, such as to employ touch sensors, use of eye tracking hardware, use of a controllable rear layer of the device that is capable of varying the opacity from clear to dark/opaque (e.g., to improve contrast), and so on, further discussion of which may be found in relation to the following figures.
In the following discussion, an example environment is first described that may employ the light guide techniques described herein. Example procedures are then described which may be performed in the example environment as well as other environments. Consequently, performance of the example procedures is not limited to the example environment and the example environment is not limited to performance of the example procedures.
Example Environment
Accordingly, the computing device 102 may range from full resource devices with substantial memory and processor resources (e.g., personal computers, game consoles) to low-resource devices with limited memory and/or processing resources (e.g., traditional televisions, net books). Additionally, although a single computing device 102 is shown, the computing device 102 may be representative of a plurality of different devices, such as a user-wearable helmet or glasses and game console, a remote control having a display and set-top box combination, and so on.
The computing device 102 is further illustrated as including a display device 110 that is at least partially transparent in this example. The transparency of the display device 110 is illustrated as allowing at least a portion of the physical surroundings 112 of the computing device 102 to be viewed through the device. In the illustrated example, the physical surroundings 112 that are viewable through the display device 110 include trees and part of a finger of the user's hand 106 that is being used to hold the computing device 102. A car 114 is also illustrated as being displayed by the display device 110 such that at least a portion of the user interface and the physical surroundings 112 are viewable using the display device 110. This may be used to support a variety of different functionality, such as augmented reality as further described below.
The computing device 102 also includes an input/output module 116 in this example. The input/output module 116 is representative of functionality relating to detection and processing of inputs and outputs of the computing device 102. For example, the input/output module 116 may be configured to receive inputs from a keyboard, mouse, to recognize gestures and cause operations to be performed that correspond to the gestures, and so on. The inputs may be identified by the input/output module 116 in a variety of different ways.
For example, the input/output module 116 may be configured to recognize an input received via touchscreen functionality of a display device 110, such as a finger of a user's hand 108 as proximal to the display device 110 of the computing device 102, from a stylus, and so on. The input may take a variety of different forms, such as to recognize movement of the finger of the user's hand 108 across the display device 110, such as a tap on the car 114 in the user interface as illustrated by a finger of the user's hand 108, drawing of a line, and so on. The user's hand and/or finger can either be touching the device or hovering above the device and these could be detected as separate gestures. Other examples of input include tracking pupils and blinks of the user's eyes, gestures involving movement of the device itself (e.g., tilting or shaking the device), and so on.
In implementations, these inputs may be recognized as gestures that are configured to initiate one or more operations of the computing device 102 or other device, such as to navigate through a user interface, select and/or move objects displayed in the user interface, and so on. Although the gesture is illustrated as being input through a front of the display device 110, the computing device 102 may also include touch sensors located on the back of the display device 110 to recognize gestures, further discussion of which may be found beginning in relation to
The input/output module 116 is also illustrated as including an augmented reality module 118. The augmented reality module 118 is representative of functionality of the computing device 102 to augment a view of the physical surroundings 112 (e.g., the “real world”) of the computing device 102 using the display device 110. In the illustrated example, for instance, the computing device 102 is illustrated as being physically positioned in surroundings that include three trees and fingers of the user's hand 106.
The augmented reality module 118 is configured to output an augmentation (e.g., the car 114) to be viewed in conjunction with the physical surroundings 112. To generate this view and know “where” to place to augmentation, the augmented reality module 118 may leverage a variety of techniques to determine an orientation and/or position of the computing device 102 in relation to the physical surroundings 112 of the device. For example, the augmented reality module 118 may leverage a camera 120 to capture images of the physical surroundings 112. The augmented reality module 118 may then process the images to locate one or more markers to determine how the computing device 102 is positioned, oriented, moved, and so on.
These markers may take a variety of forms. For instance, the augmented reality module 118 may set one or more view points in the physical surroundings 112 as markers and thus serve as a basis to determine orientation and/or positioning, such as where the trunks of the trees meet the ground. In another instance, the augmented reality module 118 may leverage a view of one or more augmented reality (AR) tags that are physically positioned within the surrounding environment of the computing device 102. Thus, the items in the physical surroundings 112 may act as a basis to determine where the computing device 102 is located as well as how the computing device 102 is oriented.
In another example, the camera 120 may be configured to capture one or more images of a user of the computing device 102. For example, a lens of the camera 120 is illustrated in
The augmented reality module 118 may also leverage one or more sensors 122 to determine a position and/or orientation of the computing device 102, and more particularly a position and/or orientation of the display device 110. For example, the sensors 122 may be configured as an inertial measurement unit (IMU), which may include a gyroscope, one or more accelerometers, a magnetometer, and so on including any combination thereof. These units may be used to generate a basis with which to determine an orientation and position of the computing device 102 in relation to its physical surroundings 112.
Through one or more of these examples, the augmented reality module 118 may capture a view of the “reality” that is to be augmented. The augmentation may then be computed to be displayed at a size, orientation, and location using the display device 110. The augmentation may be configured in a variety of ways, such as for two-dimensional output, three dimensional output, and so on. For instance, the augmented reality module 118 and the display device 110 may leverage stereoscopic techniques to give a perception of depth to the augmentation, such as through auto-stereoscopy in which optics are used by the display device 110 to split an image directionally to the user's eyes. A variety of other techniques are also contemplated without departing from the spirit and scope thereof. Further, it should be readily apparent that augmentations generated by the augmented reality module 118 may assume a variety of other forms, such as objects as part of a game and other changes to a view of the physical surroundings 112 of a computing device 102 through display as part of a user interface that is viewable through the display device 110.
The display device 110 may be configured in a variety of ways to support the techniques described herein, such as through configuration as a light guide that provide an output utilizes a focal plane focused at infinity. An example of such a light guide is described beginning in relation to the following figure.
The light engine 204 may be configured in a variety of ways, such as a pico projector or other image output device. Examples of a light engine 204 include laser driven LCOS or LED driven scanning, an LCOS display, e.g., including RGB LEDs, and so on. The light engine 204 is optically coupled to the light guide 202 such that an output of the light engine 204 is displayed by the light guide 202 for viewing by one or more users. The light engine 204 may be optically coupled to the light guide 202 in a variety of ways, an example of which may be found in relation to the following figure.
In the illustrated example, the in-coupling optics 302 are configured to bend light output by the light engine 204 approximately ninety degrees for transmission to the out-coupling optics 304. Thus, the in-coupling optics 302 in this example may utilize one or more techniques to “turn light” for transmission to the out-coupling optics as described above.
Further, the in-coupling and out-coupling optics 302, 304 may be utilized as pupil expanders to expand an output from the light engine 204. The in-coupling optics 302, for instance, may be configured to expand an output of the light engine 204 horizontally. The out-coupling optics 304 may then receive this horizontally expanded output and further expand it in a vertical direction for output to the eye 306, e.g., an eye of the user of the computing device 102, such as by again utilizing one or more techniques to “turn light”.
Therefore, the light engine 204 may be configured as a laser driven LCOS or LED driven scanning or LCOS display, may include RGB LEDs or lasers having a bandwidth less than the range of five to ten nanometers to allow for efficient diffraction (if one of the diffractive techniques is used to couple light in and/out; in other cases the bandwidth of the LEDs is not so constrained), and so forth. The light engine 204 is optically coupled to the in-coupling optics 302 of the light guide 202 utilizing one or more techniques to “turn light” as previously described. Light is then transmitted along the light guide 202 through the in-coupling optics 302 using total internal reflection (TIR) to a horizontal expansion grating. This grating serves to expand the “exit pupil” horizontally and in addition turns the light ninety degrees so it is propagating upwards in the example 300 as shown by the arrows. The light then encounters the out-coupling optics 304 which expands the “exit pupil” vertically and again turns the light as shown by the arrows so it is coupled out of the light guide 202 and towards an eye 306 of the user to view an image, e.g., a part of a user interface.
In one or more implementations, the in-coupling optics 302 may be switchable to support different display modes. For example, the in-coupling optics 302 may be “switched on” in a first mode (e.g., using a switchable Bragg grating) to cause the output of the light engine to be “turned” and transmitted to the out-coupling optics 304 for display to the eye 306 of the user as described above.
The in-coupling optics 304 may also be “switched off” to support a second mode in which the display device 110 is to act as a projector, such as to project an output of the light engine 204 “out the back” of the housing 104 of the computing device 102 of
Rather, the light from the light engine 204 passes through the in-coupling optics 302 without bending in this example to serve as a projector. The computing device 102, for instance, may include a lens and light valve 308 supported by the housing 104 of
The light guide 202 also includes a layer 406 to implement touch sensors across a front surface of the display device 110. The layer 406, for instance, may be configured as a grid formed using indium tin oxide (ITO) to detect X, Y coordinates of a contact, such as one or more fingers of the user's hand 108 as shown in relation to
The light guide 202 may also include a layer 408 disposed on the back of the light guide 202 to implement touch sensors. The light guide 202, for instance, may be configured to support viewing at a distance from the user's eye such that it is inconvenient for a user to interact with a front surface of the light guide, e.g., the layer 406 that supports the touch sensors on the front of the display device 110. Accordingly, the layer 408 disposed on the rear of the device may also be configured to recognize gestures, further discussion of which may be found beginning in relation to
The light guide 202 is also illustrated as including an electro-chromic layer 410 that is separated from the diffraction grading matrix 404 by an air gap 412 or lower optical index material. The electro-chromic layer 410 is operable to alternate between transparent and non-transparent states. This may be used for a variety of purposes, such as to control which part of a physical surroundings 112 of the computing device 102 are viewable through the display device 110, improve contrast for portions of a user interface displayed by the display device 110, and so on, further discussion of which may be found in relation to the following figure.
As described in
Further, as also described in relation to
These techniques may also be configured to support selectable opacity, such as to control an amount of the physical surroundings that are viewable through the display device 110. This may be used to provide a variety of functionality. For example, portions of the display device 110 may be made partially transparent to allow a portion of a user's hand 106 to be viewed through the display device. In this way, a user may readily view “where” the user's finger is positioned, which may aide user interaction including use of gestures that are detected via touchscreen functionality disposed on the rear of the display device 110.
Additionally, this technique may be combined with how the user interface itself is displayed as illustrated. In the example implementation 500, portions of the finger of the user's hand 106 that are disposed proximal to the back of the display device 110 are made transparent such that a user may view the finger of the user's hand. This includes portions of the user interface such that the finger of the user's hand 106 appears to be displayed in conjunction with the tile, such that the user may readily determine which tile is currently selectable at the current position of the finger. Portions of the tile in the user interface that do not coincide with the contact are not made transparent (e.g., through display of the user interface and/or use of the electro-chromic layer 410) in this example. In this way, interaction with the back of the display device 110 may be aided. A variety of other examples are also contemplated, such as display in the user interface of indicia that correspond to points that are contacted by the finger of the user's hand 106 on the back of the display device 110. It is also noted that this per-region opacity control may significantly enhance the appearance of augmentations that are displayed by the display device while allowing transparency between the augmentations so the physical surroundings (e.g., the “real world”) can be viewed clearly concurrently with the augmentations. Note also that the entire display can be made opaque which may be used to aid in experiences that do not involve a view of the real world, e.g., such as to watch a movie.
As previously described, the computing device 102 may include a display device 110 that incorporates the light guide 202 of
Use of the light guide as part of the computing device 102 may also support techniques relating to field of view. At the first stage, for instance, a user interface is illustrated as being display by the display device 110. The user interface in this example includes a headline “Redmond News” along with two columns, which are illustrated as “Sports” and “Weather.” As previously described, the first stage 602 shows the computing device 102, and therefore the display device 110 of the computing device 102, as positioned at approximately an arm's length from the eyes of the user holding the device.
The user in this example may then desire to view more of the user interface, such as to view a larger amount content included in the user interface. In this example, through configuration of the display device 110 to include the light guide, the user may simply physically move the computing device 102 closer as shown in the second stage 604. By moving the display device 110 closer, the field of view viewable by the user from the display device 110 increases.
This is illustrated in the second stage 604 through viewing through the display device of the same user interface displayed in the first stage 602. However, additional columns of the user interface are viewable as positioned in the second stage 604, such as the “Business” and “Local” columns as well as additional content in the columns. Thus, the field of view increases as the display device 110 is moved closer to the user's eye.
Further this increase is passive in that the size or resolution is not changed by the computing device 102 itself, e.g., due to inputs received from a user to increase the size or resolution, use of one or more sensors, and so on. In this way, objects displayed by the display device 110 remain in focus regardless of how close the user's eye is positioned to the display. This may therefore be used by a user to adjust an amount that is viewed on the screen, such as to read a newspaper, browse the web or consume short video content by changing a distance between the user and the display. For example, using a 3.5″ screen as an example, if the display device 110 produces a 45 degree field of view, holding the display device 110 one inch from the eye would yield an image equivalent to a 105″ diagonal display device at an arm's length of 30″. Further discussion of the field of view techniques may be found in relation to the following figure.
This functionality may be likened to viewing a billboard through a hole in a fence. As the user moves closer to the hole in the fence, not only is the type size of the billboard increased (e.g., a user is able to view smaller text as shown in
The field of view, for instance, may increase as a user nears the display device 110 until a user is so close that outer portions of the display device are no longer viewable in the periphery of the user's vision. Although altering the field of view based on distance was described in relation to a mobile device such that a user could move the device itself, these techniques may also be employed in situations in which the user moves and the device is configured to remain at a constant position, an example of which may be found in relation to the following figure.
Another scenario may be supported by these techniques to expand user interaction. For example, a user may view the computing device 102 at arm's length, similar to viewing the billboard in the previous example. However, instead of bringing the device closer to the user's eyes, the user may move the device (e.g., tilt the device at different angles relative to a plane that is perpendicular to axis between the display device and a user's eye) to view different areas of the billboard that would not be visible in the original position. This would, for example, allow a user to sit comfortably and read different portions of a newspaper at arm's length by tilting the device. It is useful to contrast the new device experience with currently available technology. When trying to read a newspaper on a handheld device such as one of today's cellphones, a user would be forced to continually scroll using touch or other gestures to navigate through the content. With the techniques described herein, however, tilting the device to see different portions of the user interface may be supported passively by the display device like the field of view example above.
In the illustrated example, the display device 110 is illustrated as supporting transparency and configured within the housing 902 such that the physical surroundings are viewable through the display device 110, such as a portion of a desktop computing device as illustrated. Other implementations are also contemplated, such as implementations in which the physical surroundings are not viewable through the display device 110, are viewable in a controllable manner as described in relation to
Example Procedures
The following discussion describes light guide techniques that may be implemented utilizing the previously described systems and devices. Aspects of each of the procedures may be implemented in hardware, firmware, or software, or a combination thereof. The procedures are shown as a set of blocks that specify operations performed by one or more devices and are not necessarily limited to the orders shown for performing the operations by the respective blocks. In portions of the following discussion, reference will be made to the environment and example systems of
A location of a user's pupils is calculated in three dimensional space from the captured one or more images by the handheld device (block 1004). The augmented reality module 118, for instance, may examine the images to determine the location.
An augmentation is displayed on a transparent display of the handheld device based on the calculated location of the user's pupils that is viewable concurrently with at least a portion of a physical surroundings of the handheld device that is viewable through the transparent display (block 1006). As shown in
The display device of the computing device is viewed at a second distance that is less than the first distance such that a second field of view of the user interface displayed by the display device is viewable that is greater than the first field of view (block 1104). A user, for instance, may bring the computing device 102 that is being held closer to the user's eyes. In another instance, a user may move toward the computing device 102 to lessen the distance. Because the user interface is displayed at an image plane focused at infinity, the field of view may increase as shown in the second stage 604 of
Example System and Device
The example computing device 1202 as illustrated includes a processing system 1204, one or more computer-readable media 1206, and one or more I/O interface 1208 that are communicatively coupled, one to another. Although not shown, the computing device 1202 may further include a system bus or other data and command transfer system that couples the various components, one to another. A system bus can include any one or combination of different bus structures, such as a memory bus or memory controller, a peripheral bus, a universal serial bus, and/or a processor or local bus that utilizes any of a variety of bus architectures. A variety of other examples are also contemplated, such as control and data lines.
The processing system 1204 is representative of functionality to perform one or more operations using hardware. Accordingly, the processing system 1204 is illustrated as including hardware element 1210 that may be configured as processors, functional blocks, and so forth. This may include implementation in hardware as an application specific integrated circuit or other logic device formed using one or more semiconductors. The hardware elements 1210 are not limited by the materials from which they are formed or the processing mechanisms employed therein. For example, processors may be comprised of semiconductor(s) and/or transistors (e.g., electronic integrated circuits (ICs)). In such a context, processor-executable instructions may be electronically-executable instructions.
The computer-readable storage media 1206 is illustrated as including memory/storage 1212. The memory/storage 1212 represents memory/storage capacity associated with one or more computer-readable media. The memory/storage component 1212 may include volatile media (such as random access memory (RAM)) and/or nonvolatile media (such as read only memory (ROM), Flash memory, optical disks, magnetic disks, and so forth). The memory/storage component 1212 may include fixed media (e.g., RAM, ROM, a fixed hard drive, and so on) as well as removable media (e.g., Flash memory, a removable hard drive, an optical disc, and so forth). The computer-readable media 1206 may be configured in a variety of other ways as further described below.
Input/output interface(s) 1208 are representative of functionality to allow a user to enter commands and information to computing device 1202, and also allow information to be presented to the user and/or other components or devices using various input/output devices. Examples of input devices include a keyboard, a cursor control device (e.g., a mouse), a microphone, a scanner, touch functionality (e.g., capacitive or other sensors that are configured to detect physical touch), a camera (e.g., which may employ visible or non-visible wavelengths such as infrared frequencies to recognize movement as gestures that do not involve touch), and so forth. Examples of output devices include a display device (e.g., a monitor or projector), speakers, a printer, a network card, tactile-response device, and so forth. Thus, the computing device 1202 may be configured in a variety of ways as further described below to support user interaction.
Various techniques may be described herein in the general context of software, hardware elements, or program modules. Generally, such modules include routines, programs, objects, elements, components, data structures, and so forth that perform particular tasks or implement particular abstract data types. The terms “module,” “functionality,” and “component” as used herein generally represent software, firmware, hardware, or a combination thereof. The features of the techniques described herein are platform-independent, meaning that the techniques may be implemented on a variety of commercial computing platforms having a variety of processors.
An implementation of the described modules and techniques may be stored on or transmitted across some form of computer-readable media. The computer-readable media may include a variety of media that may be accessed by the computing device 1202. By way of example, and not limitation, computer-readable media may include “computer-readable storage media” and “computer-readable signal media.”
“Computer-readable storage media” may refer to media and/or devices that enable persistent and/or non-transitory storage of information in contrast to mere signal transmission, carrier waves, or signals per se. Thus, computer-readable storage media refers to non-signal bearing media. The computer-readable storage media includes hardware such as volatile and non-volatile, removable and non-removable media and/or storage devices implemented in a method or technology suitable for storage of information such as computer readable instructions, data structures, program modules, logic elements/circuits, or other data. Examples of computer-readable storage media may include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, hard disks, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or other storage device, tangible media, or article of manufacture suitable to store the desired information and which may be accessed by a computer.
“Computer-readable signal media” may refer to a signal-bearing medium that is configured to transmit instructions to the hardware of the computing device 1202, such as via a network. Signal media typically may embody computer readable instructions, data structures, program modules, or other data in a modulated data signal, such as carrier waves, data signals, or other transport mechanism. Signal media also include any information delivery media. 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, communication media include wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared, and other wireless media.
As previously described, hardware elements 1210 and computer-readable media 1206 are representative of modules, programmable device logic and/or fixed device logic implemented in a hardware form that may be employed in some embodiments to implement at least some aspects of the techniques described herein, such as to perform one or more instructions. Hardware may include components of an integrated circuit or on-chip system, an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a complex programmable logic device (CPLD), and other implementations in silicon or other hardware. In this context, hardware may operate as a processing device that performs program tasks defined by instructions and/or logic embodied by the hardware as well as a hardware utilized to store instructions for execution, e.g., the computer-readable storage media described previously.
Combinations of the foregoing may also be employed to implement various techniques described herein. Accordingly, software, hardware, or executable modules may be implemented as one or more instructions and/or logic embodied on some form of computer-readable storage media and/or by one or more hardware elements 1210. The computing device 1202 may be configured to implement particular instructions and/or functions corresponding to the software and/or hardware modules. Accordingly, implementation of a module that is executable by the computing device 1202 as software may be achieved at least partially in hardware, e.g., through use of computer-readable storage media and/or hardware elements 1210 of the processing system 1204. The instructions and/or functions may be executable/operable by one or more articles of manufacture (for example, one or more computing devices 1202 and/or processing systems 1204) to implement techniques, modules, and examples described herein.
As further illustrated in
In the example system 1200, multiple devices are interconnected through a central computing device. The central computing device may be local to the multiple devices or may be located remotely from the multiple devices. In one embodiment, the central computing device may be a cloud of one or more server computers that are connected to the multiple devices through a network, the Internet, or other data communication link.
In one embodiment, this interconnection architecture enables functionality to be delivered across multiple devices to provide a common and seamless experience to a user of the multiple devices. Each of the multiple devices may have different physical requirements and capabilities, and the central computing device uses a platform to enable the delivery of an experience to the device that is both tailored to the device and yet common to all devices. In one embodiment, a class of target devices is created and experiences are tailored to the generic class of devices. A class of devices may be defined by physical features, types of usage, or other common characteristics of the devices.
In various implementations, the computing device 1202 may assume a variety of different configurations, such as for computer 1214, mobile 1216, and television 1218 uses. Each of these configurations includes devices that may have generally different constructs and capabilities, and thus the computing device 1202 may be configured according to one or more of the different device classes and accordingly the display device 110 may also be configured to accommodate these different configurations. For instance, the computing device 1202 may be implemented as the computer 1214 class of a device that includes a personal computer, desktop computer, a multi-screen computer, laptop computer, netbook, and so on.
The computing device 1202 may also be implemented as the mobile 1216 class of device that includes mobile devices, such as a mobile phone, portable music player, portable gaming device, a tablet computer, a multi-screen computer, and so on. The computing device 1202 may also be implemented as the television 1218 class of device that includes devices having or connected to generally larger screens in casual viewing environments. These devices include televisions, set-top boxes, gaming consoles, and so on.
The techniques described herein may be supported by these various configurations of the computing device 1202 and are not limited to the specific examples of the techniques described herein. This functionality may also be implemented all or in part through use of a distributed system, such as over a “cloud” 1220 via a platform 1222 as described below.
The cloud 1220 includes and/or is representative of a platform 1222 for resources 1224. The platform 1222 abstracts underlying functionality of hardware (e.g., servers) and software resources of the cloud 1220. The resources 1224 may include applications and/or data that can be utilized while computer processing is executed on servers that are remote from the computing device 1202. Resources 1224 can also include services provided over the Internet and/or through a subscriber network, such as a cellular or Wi-Fi network.
The platform 1222 may abstract resources and functions to connect the computing device 1202 with other computing devices. The platform 1222 may also serve to abstract scaling of resources to provide a corresponding level of scale to encountered demand for the resources 1224 that are implemented via the platform 1222. Accordingly, in an interconnected device embodiment, implementation of functionality described herein may be distributed throughout the system 1200. For example, the functionality may be implemented in part on the computing device 1202 as well as via the platform 1222 that abstracts the functionality of the cloud 1220.
Although the invention has been described in language specific to structural features and/or methodological acts, it is to be understood that the invention defined in the appended claims is not necessarily limited to the specific features or acts described. Rather, the specific features and acts are disclosed as example forms of implementing the claimed invention.