A three-dimensional (3D) display may provide a stereoscopic effect (e.g., an illusion of depth) by rendering two slightly different images, one image for the right eye (e.g., a right-eye image) and the other image for the left eye (e.g., a left-eye image) of a viewer. When each of the eyes sees its respective image on the display, the viewer may perceive a stereoscopic image.
According to one aspect, a method may include determining a position of a user relative to a display of a device to obtain position information, wherein the device includes the display and an optical guide, wherein the display includes pixels for displaying images, and wherein the optical guide includes at least two layers of optical elements for directing light rays from the pixels. The method may also include obtaining control values based on the position information, displaying a stereoscopic image at the display, and changing sweet spots associated with the optical guide based on the obtained control values.
Additionally, obtaining the control values may include, for each of the at least two layers, selecting one of an opaque state or a transparent state.
Additionally, changing the sweets spots may include replacing sweet spots that are associated with one of the two layers with sweet spots that are associated with the other of the two layers.
Additionally, the at least two layers may include a parallax barrier element layer; a prism element layer; a grating element layer; or a lenticular lens element layer.
Additionally, obtaining the control values may include selecting values for controlling micro-electromechanical system (MEMS) component, a muscle wire, memory alloys, a piezoelectric component, or controllable polymer to rotate or translate the optical elements.
Additionally, the stereoscopic image may include a right-eye image and a left-eye image. Additionally, changing the sweet spots may include directing the right-eye image to the right-eye of the user during a first time interval, and directing the left-eye image to the left-eye of the user during a second time interval following the first time interval.
Additionally, the method may further include receiving a user selection of a predefined location associated with receiving the stereoscopic image.
Additionally, the method may further include: determining a second position of a second user relative to the display to obtain second position information, displaying a second stereoscopic image at the display concurrently with the stereoscopic image, and controlling the at least two layers of optical elements to send light rays from the pixels of the display to convey the second stereoscopic image to the second position of the second user.
Additionally, obtaining the control values may include determining values for control variables associated with the at least two layers of optical elements to change relative power associated with the stereoscopic image in relation to power associated with the pseudo-stereoscopic image at the determined position of the user.
Additionally, determining the values may include looking up a table of values of the control variables, wherein the values are pre-computed based on ratios of the power associated with the stereoscopic image to the power associated with the pseudo-stereoscopic image.
Additionally, looking up may include identifying the values for the control variables based on the position of the user.
According to another aspect, a device may include sensors for obtaining tracking information associated with a user, a display including pixels for displaying images, and an optical guide including two layers of optical elements, each of the optical elements blocking or directing light rays from one or more of the pixels. The device may also include one or more processors to determine a relative location of the user based on the tracking information obtained by the sensors, control optical characteristics of each of the two layers of optical elements based on the relative location of the user, and display a stereoscopic image via the display.
Additionally, the sensors may include at least one of a gyroscope; a camera, a proximity sensor, or an accelerometer.
Additionally, the device may include a tablet computer, a cellular phone, a personal digital assistant, a personal computer, a laptop computer, a camera, or a gaming console.
Additionally, the two layers may include at least one of a parallax barrier element layer, a lenticular lens element layer, a prism element layer, or a grating element layer.
Additionally, the two layers may be configured to overlap one another. Additionally, sweet spots that are associated with one of the two layers may be located between sweet spots that are associated with the other of the two layers.
Additionally, optical elements of one of the two layers may be opaque when optical elements of the other of the two layers are transparent.
Additionally, the one or more processors may be further configured to prevent a formation of a pseudo-stereoscopic image. Additionally, the stereoscopic image may include a right eye image and a left-eye image at a right-eye position and a left-eye position that are associated with the relative location, respectively, and the pseudo-stereoscopic image may include one of a left-eye image or a right-eye image at the right-eye position and the left-eye position, respectively.
Additionally, when the one or more processors control the optical characteristics, the one or more processors may be further configured to shift sweets spots associated with the display from one set of locations to another set of locations.
According to yet another aspect, a device may include sensors for providing tracking information associated with a user, a display including pixels, a first layer of parallax barrier elements for allowing or blocking light rays from one or more of the pixels to a right eye or a left eye of the user, and a second layer of parallax barrier elements for allowing or blocking light rays from the one or more of the pixels to the right eye or the left eye of the user. The device may also include one or more processors to determine a relative location of the user based on the tracking information, obtain values of control variables for the first layer and the second layer based on the relative location of the right eye and the left eye, display a stereoscopic image via the display, the stereoscopic image comprising a right-eye image and a left-eye image, and change visibility states of the first layer and the second layer of parallax barrier elements based on the control values, to shift a sweet spot associated with the stereoscopic image toward the right eye and left eye of the user.
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate one or more embodiments described herein and, together with the description, explain the embodiments. In the drawings:
The following detailed description refers to the accompanying drawings. The same reference numbers in different drawings may identify the same or similar elements. In addition, the terms “viewer” and “user” are used interchangeably.
Aspects described herein provide a visual three-dimensional (3D) effect based on device tracking, viewer tracking, and controlling an optical guide that includes multiple layers of optical elements. As further described below, the optical guide may be implemented and operated in different ways.
Device 102 may include a display 108 and optical guide 110. Display 108 may include picture elements (pixels) for displaying images for right eye 104-1 and left eye 104-2. In
In
In
In
In another example, when viewer 104 moves from position W to position V, optical guide 110 prevents light rays from inappropriate or wrong image pixels from reaching right eye 104-1 and left eye 104-2. The light rays from the inappropriate image pixels may result in viewer 104's perception of a pseudo-stereoscopic image. This may interfere with viewer's perception of high quality 3D images.
In
As shown in
3D display 204 may provide two-dimensional or three-dimensional visual information to the user. Examples of 3D display 204 may include an auto-stereoscopic 3D display, a stereoscopic 3D display, a volumetric display, etc. 3D display 204 may include pixels that emit different light rays to viewer 104's right eye 104-1 and left eye 104-2, through optical guide 110 (
Microphone 206 may receive audible information from the user. Sensors 208 may collect and provide, to device 102, information pertaining to device 102 (e.g., movement, orientation, etc.), information that is used to aid viewer 104 in capturing images (e.g., for providing information for auto-focusing to front/rear cameras 210/212) and/or information tracking viewer 104 (e.g., proximity sensor). For example, sensor 208 may provide acceleration and orientation of device 102 to internal processors. In another example, sensors 208 may provide the distance and the direction of viewer 104 relative to device 102, so that device 102 can determine how to control optical guide 110. Examples of sensors 208 include an accelerometer, gyroscope, ultrasound sensor, an infrared sensor, a camera sensor, a heat sensor/detector, etc.
Front camera 210 and rear camera 212 may enable a user to view, capture, store, and process images of a subject located at the front/back of device 102. Front camera 210 may be separate from rear camera 212 that is located on the back of device 102. In some implementations, device 102 may include yet another camera at either the front or the back of device 102, to provide a pair of 3D cameras on either the front or the back. Housing 214 may provide a casing for components of device 102 and may protect the components from outside elements.
Processor 302 may include a processor, a microprocessor, an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA), and/or other processing logic capable of controlling device 102. In one implementation, processor 302 may include components that are specifically designed to process 3D images. Memory 304 may include static memory, such as read only memory (ROM), and/or dynamic memory, such as random access memory (RAM), or onboard cache, for storing data and machine-readable instructions.
Storage unit 306 may include a magnetic and/or optical storage/recording medium. In some embodiments, storage unit 306 may be mounted under a directory tree or may be mapped to a drive. Depending on the context, the term “medium,” “memory,” “storage,” “storage device,” “storage medium,” and/or “storage unit” may be used interchangeably. For example, a “computer-readable storage device” or “computer readable storage medium” may refer to both a memory and/or storage device.
Input component 308 may permit a user to input information to device 102. Input component 308 may include, for example, a keyboard, a keypad, a mouse, a pen, a microphone, a touch screen, voice recognition and/or biometric mechanisms, sensors, etc. Output component 310 may output information to the user. Output component 310 may include, for example, a display, a printer, a speaker, etc.
Network interface 312 may include a transceiver that enables device 102 to communicate with other devices and/or systems. For example, network interface 312 may include mechanisms for communicating via a network, such as the Internet, a terrestrial wireless network (e.g., a wireless local area network (WLAN)), a satellite-based network, a personal area network (PAN), a WPAN, etc. Additionally or alternatively, network interface 312 may include a modem, an Ethernet interface to a LAN, and/or an interface/connection for connecting device 102 to other devices (e.g., a Bluetooth interface).
Communication path 314 may provide an interface through which components of device 102 can communicate with one another.
3D logic 402 may include hardware and/or software components for obtaining right-eye images and left-eye images and/or providing the right/left-eye images to a 3D display (e.g., display 204). In obtaining the right-eye and left-eye images, 3D logic 402 may receive right- and left-eye images from stored media content (e.g., a 3D movie). In other implementations, 3D logic 402 may generate the right and left-eye images of a 3D model or object for different pixels or sub-pixels. In such instances, device 102 may obtain projections of the 3D object onto 3D display 108.
In some implementations, 3D logic 402 may receive viewer input for selecting a sweet spot. In one implementation, when a viewer selects a sweet spot (e.g., by pressing a button on device 102), device 102 may store values of control variables that characterize optical guide 110, the location/orientation of user device 102, and/or the relative location of viewer 104. In another implementation, when the user selects a sweet spot, device 102 may recalibrate optical guide 110 such that the stereoscopic images are sent to the selected spot. In either case, as the viewer's relative location moves away from the established sweet spot, 3D logic 402 may determine (e.g., calculate) new directions to which light rays must be guided via optical guide 110.
In some implementations, the orientation of device 102 may affect the relative location of sweet spots. Accordingly, making proper adjustments to the angles at which the light rays from device 102 are directed, via optical guide 110, may be used in locking the sweet spot for viewer 104. The adjustments may be useful, for example, when device 102 is relatively unstable (e.g., being held by a hand). As described below, depending on the implementation, 3D logic 402 may make different types of adjustments to optical guide 110.
Returning to
Viewer tracking logic 406 may include hardware and/or software (e.g., a range finder, proximity sensor, cameras, image detector, etc.) for tracking viewer 104 and/or part of viewer 104 (e.g., head, eyes, the distance from display 204, the distance between viewer's eyes, etc.) and providing the location/position of viewer 104 or viwer 104's eyes to 3D logic 402. In some implementations, viewer tracking logic 406 may include sensors (e.g., sensors 208) and/or logic for determining a location of viewer 104's head or eyes based on sensor inputs (e.g., distance information from sensors, an image of a face, an image of eyes 104-1 and 104-2 from cameras, etc.).
3D application 408 may include hardware and/or software that shows 3D images on display 108. In showing the 3D images, 3D application 408 may use 3D logic 402, location/orientation detector 404, and/or viewer tracking logic 406 to generate 3D images and/or provide the 3D images to display 108. Examples of 3D application 408 may include a 3D graphics game, a 3D movie player, etc.
In
For example, in one implementation, as shown, barrier elements 502 are in the transparent state. Their positions allow light rays from pixel 108-1 to pass unimpeded and reach right eye 104-1 of viewer 104 at position W. Barrier elements 504 in the lower layer are in the opaque state, thus, setting the sweet spots for viewer 104. In this configuration, the lower layer prevents some of light rays from the pixels on display 108 from forming pseudo-stereoscopic images and allows other rays to form stereoscopic images. That is, light is selectively allowed to pass to viewer 104 to provide stereoscopic images for viewer 104.
When in operation, 3D logic 402 may determine, based on the current visibility states of optical guide 110 (e.g., barrier elements 502 are in the transparent state and barrier elements 504 are in the opaque state) and viewer 104's location, new visibility states (i.e., the control variables) of the upper and lower layers. In one implementation, 3D logic 402 may determine the new visibility states by first determining whether viewer 104 is already in or is close to one of the sweet spots that are associated with the opaque layer. If not, 3D logic 402 may switch the visibility states of the lower layer and the upper layer.
In another implementation, 3D logic 402 may determine the new visibility states by determining whether light rays from particular pixels generate pseudo-stereoscopic images at viewer 104's location. In still yet another implementation, 3D logic 402 may determine whether viewer 104 is closer to one of the sweet spots that are associated with the currently opaque layer than to one of the sweet spots that are associated with the currently transparent layer. If viewer 104 is closer to one of the sweet spots associated with the transparent layer, 3D logic 402 may switch the visibility states of the upper and lower layers. That is, barrier element 502 may switch from transparent to opaque state and barrier element 504 may switch from opaque to transparent state (or vice versa).
For example, in
In
When in operation, 3D logic 402 may determine, based on the current visibility state of optical guide 110 (e.g., the upper layer optical elements 604 are in the transparent state and the lower layer optical elements 602 are in the opaque state) and viewer 104's location, new visibility states of the upper and lower layers. In one implementation, 3D logic 402 may determine the new visibility states by determining whether viewer 104 is in one of the sweet spots that are associated with its opaque layer. If not, 3D logic 402 may switch the visibility states of the lower layer and the upper layer. That is, 3D logic 402 may switch elements 604 from the transparent state to the opaque state and switch elements 602 from the opaque state to the transparent state, or vice versa.
In another implementation, 3D logic 402 may determine the new visibility states by determining whether light rays from particular pixels generate pseudo-stereoscopic images at viewer 104's location. In still yet another implementation, 3D logic 402 may determine whether viewer 104 is closer to one of the sweet spots that are associated with the currently opaque layer than to one of the sweet spots that are associated with the currently transparent layer. If viewer 104 is closer to one of the sweet spots associated with the transparent layer, 3D logic 402 may switch the states of the upper and lower layers.
For example, in
Optical guide 110 in
Although the optical elements in
In
Device 102 may determine device 102's location and/or orientation (block 704). In one implementation, device 102 may obtain its location and orientation from location/orientation detector 404 (e.g., information from GPS receiver, gyroscope, accelerometer, etc.).
Device 102 may determine viewer 104's location (block 706). Depending on the implementation, device 102 may determine viewer 104 location in one of several ways. For example, in one implementation, device 102 may use a proximity sensor (e.g., sensors 208) to locate viewer 104 (e.g., distance from the viewer's eyes to device 102/display 108 and an angle (e.g., measured normal to display 108). In another implementation, device 102 may sample images of viewer 104 (e.g., via camera 210 or 212) and perform object detection (e.g., to locate the viewer's eyes, to determine the distance between the eyes, to recognize the face, to determine tilt of the viewer's head, etc.). Such information may be used to determine stereoscopic images and pseudo-stereoscopic images (projected from display 108) at right eye 104-1 and left eye 104-2 of viewer 104.
Device 102 may select or determine pixels, on display 108, that are configured to convey right-eye images to right eye 104-1 (i.e., right-eye image pixels) and pixels, on display 108, that are configured to convey left-eye images to left eye 104-2 (i.e., left-eye image pixels) (block 708). Depending on the implementation, the left- and right-eye image pixels may already be set, or alternatively, device 102 may dynamically determine the right-eye image pixels and left-eye image pixels.
Device 102 may obtain right-eye and left-eye images (block 710). For example, in one implementation, 3D application 408 may obtain right-eye and left-eye images from a media stream from a content provider over a network. In another implementation, 3D application 408 may generate the images from a 3D model or object based on viewer 104's relative location from display 108 or device 102.
Device 102 may provide the right-eye image and the left-eye image to the selected right- and left-eye image pixels on display 108 (block 712). Furthermore, device 102 may determine values for control variables for each layer of optical elements in optical guide 110, based on viewer 104 tracking (e.g., tracking viewer 104's eyes, head, etc.) and device 102 tracking, to dynamically configure optical guide 110. As indicated above, the control variables may include the visibility states of the upper or lower layer of optical elements (e.g., elements 502, 504, 602, and 604). In some implementations, the visibility states may depend on optical properties, such as the index of refraction, the surface contour of the lens that may deform in accordance with signals, etc.
Each determined value of the control variables may reflect, for viewer 104, strength or power of stereoscopic image relative to that of pseudo-stereoscopic image. For example, in some implementations, device 102 may change the visibility states of the upper and lower layers of parallax barrier elements, to obtain a particular ratio (e.g., a value greater than a threshold) of the stereoscopic image power to pseudo-stereoscopic image power (e.g., a maximum value).
Depending on the implementation, 3D logic 402 may use different approaches to determine the values of control variables for the layers of optical elements. In some implementations, 3D logic 402 may access a function whose evaluation entails operation of a hardware component, execution of a software program, or look up of a table. In one implementation, the function may accept viewer 104's relative location and may output the visibility states based on calculated ratio of power of the stereoscopic image to power of the pseudo-stereoscopic image.
When the function is implemented as a table, 3D logic 402 may look up the control values (i.e., values of the control variables) based on viewer's location relative to display 108. Evaluating the function can be fast, since the values of the table are pre-computed (e.g., based on ratios of power contributed via an optical element in forming a stereoscopic image to power contributed via the optical element in forming pseudo-stereoscopic images).
Device 102 may set the values of control variables for each layer of the optical elements (block 716). Setting the control values may send the light rays from a right-eye image to right eye 104-1 and a left-eye image to left eye 104-2. Processing may continue in this manner, with device 102 changing the optical characteristics of the optical elements, as viewer 104 moves or as device 102 moves relative to viewer 104.
In some implementations, device 102 may time multiplex left-eye images and right-eye images via the same set of pixels. (e.g. send a right-eye image to a set of pixels for a brief interval and send a left-eye image to the same set of pixels for the following interval).
In these implementations, device may control the optical elements, to send a right-eye image from display 108 to right-eye 104-1 when the right-eye image is on display 108 and to send a left eye-image from display 108 to left-eye 104-2 when the left-eye image is on display 108.
In some implementations, the number of viewers that device 102 can support with respect to displaying 3D images may be greater than one (i.e., more than one viewer can see 3D images on display 108 at the same time). In such instances, some pixels may send images for the right eye of a first viewer, some pixels may send images to the left eye of the first viewer, some pixels may send images to the right eye of a second viewer, etc. Each optical element may guide light rays from each pixel to the right of left eye of a particular viewer based on location information associated with the viewers.
In other implementations, at least some of the pixels may multiplex images for multiple viewers. Device 102 may control the optical elements (i.e., change the control values), such that the optical elements guide light rays from each image on display 108 to a particular viewer/eyes.
The foregoing description of implementations provides illustration, but is not intended to be exhaustive or to limit the implementations to the precise form disclosed. Modifications and variations are possible in light of the above teachings or may be acquired from practice of the teachings.
For example, device 102 may change optical properties via micro-electromechanical system (MEMS) components. In other implementations, device 102 may modify the optical properties (e.g., visibility states) of optical elements via other types of components, such as muscle wires, memory alloys (e.g., alloys that change shape and return to the shape), piezoelectric components (e.g., actuators), controllable polymers, etc. In another example, device 102 may include more than two layers of optical elements. Yet in another example, each of optical elements may be individually controlled (e.g., change index of refraction, translate, rotate, etc.).
In the above, while a series of blocks has been described with regard to exemplary processes 700 illustrated in
It will be apparent that aspects described herein may be implemented in many different forms of software, firmware, and hardware in the implementations illustrated in the figures. The actual software code or specialized control hardware used to implement aspects does not limit the invention. Thus, the operation and behavior of the aspects were described without reference to the specific software code—it being understood that software and control hardware can be designed to implement the aspects based on the description herein.
It should be emphasized that the term “comprises/comprising” when used in this specification is taken to specify the presence of stated features, integers, steps or components but does not preclude the presence or addition of one or more other features, integers, steps, components, or groups thereof
Further, certain portions of the implementations have been described as “logic” that performs one or more functions. This logic may include hardware, such as a processor, a microprocessor, an application specific integrated circuit, or a field programmable gate array, software, or a combination of hardware and software.
No element, act, or instruction used in the present application should be construed as critical or essential to the implementations described herein unless explicitly described as such. Also, as used herein, the article “a” is intended to include one or more items. Further, the phrase “based on” is intended to mean “based, at least in part, on” unless explicitly stated otherwise.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/IB2011/051239 | 3/23/2011 | WO | 00 | 3/14/2013 |