Holography is a technique that allows for the light scattered from an object to be recorded and later reconstructed. When the light beam is reconstructed and viewed by an observer, an image of the object is seen, though the object is no longer present. The perceived image of the object changes as the position and orientation of the observer changes, in the same way as if the object were present. This makes the image appear to be three-dimensional. The effect of viewing a hologram of an object is similar to that of viewing the object through a window.
Conventional holograms are statically recorded on a holographic medium. For example, a flash of light may illuminate an object, which then imprints on a photographic plate or other medium. The light source for a hologram, unlike with a photograph, is a coherent light source, such as that produced by a laser.
On the photographic plate, the light waves of the reference beam 109 and the object beam 124 superimpose with each other, and the resulting interference pattern is what is recorded on the photographic plate 118. The interference pattern itself is seemingly random, as this pattern represents the way in which the object beam 124 interfered with the reference beam 109, but not the image of the target object 121 itself. The interference pattern can be said to be an encoded version of the target object 121, requiring a particular key, that is, the original reference beam 109, in order to view its contents. This reconstructing key is provided later by projecting an identical light source onto the developed film, which then recreates a range of the original light reflected by the target object 121.
Many aspects of the present disclosure can be better understood with reference to the following drawings. The components in the drawings are not necessarily to scale, emphasis instead being placed upon clearly illustrating the principles of the disclosure. Moreover, in the drawings, like reference numerals designate corresponding parts throughout the several views.
The holographic display device 200 may be included as part of a mobile or fixed multi-purpose computing device such as, for example, smartphone, tablet computer, television, desktop computer, laptop computer, video game handheld, and/or other computing devices which may also be general-purpose display devices. Alternatively, the holographic display device 200 may correspond to a special-purpose display device.
The holographic display device 200 includes a holographic processor 203 that may be coupled to a memory 206 and a display screen 212. The holographic processor 203 includes logic that generates holograms that are rendered by the display screen 212. The holographic processor 203 may correspond to a processing device such as, for example, a central processing unit (CPU), a graphics processing unit (GPU), and/or other processing device that may be configured to load program logic from the memory 206 to perform the processing described herein. In some embodiments, the holographic processor 203 may include or correspond to a specialized processing device such as, for example, an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), and/or other specialized processing device.
The memory 206 is defined herein as including volatile and/or nonvolatile memory and data storage components. Volatile components are those that do not retain data values upon loss of power. Nonvolatile components are those that retain data upon a loss of power. Thus, the memory 206 may comprise, for example, random access memory (RAM), read-only memory (ROM), hard disk drives, solid-state drives, USB flash drives, memory cards accessed via a memory card reader, floppy disks accessed via an associated floppy disk drive, optical discs accessed via an optical disc drive, and/or other memory components, or a combination of any two or more of these memory components. In addition, the RAM may comprise, for example, static random access memory (SRAM), dynamic random access memory (DRAM), or magnetic random access memory (MRAM) and other such devices. The ROM may comprise, for example, a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or other like memory device. In various embodiments, the holographic processor 203 and at least a portion of the memory 206 may be integrated such as, for example, with a system on a chip (SoC).
The memory 206 may various data including, for example, holographic pattern data 215, 3D scene data 218, programs for execution by the holographic processor 203 to accomplish the functions described herein, and/or other data. The holographic pattern data 215 corresponds to three-dimensional scenes which have already been encoded for rendering as holograms on the display screen 212. In one embodiment, all or some of the holographic pattern data 215 may be stored in a buffer that is directly coupled to the display screen 212. The 3D scene data 218 corresponds to 3D models, a stereoscopic video stream, a video stream, output from a 3D rendering application programming interface (API) such as OpenGL, Direct3D, or another API, and/or other data defining three-dimensional scenes. In some embodiments, the holographic pattern data 215 and/or the 3D scene data 218 may be loaded from removable storage media by a storage device of the holographic display device 200.
One or more lasers 219 may be employed to illuminate the display screen 212. Each laser 219 produces a monochromatic wavelength of light. In one embodiment, a single laser 219 is used, which produces a single-color hologram on the display screen 212. In other embodiments, multiple lasers 219 may be used. For example, a red laser 219a, a green laser 219b, and a blue laser 219c may be used to illuminate the display screen 212 to render a full-color dynamic hologram. Each laser 219 may correspond to a diode laser or another type of laser. In some embodiments, multiple lasers 219 of each of multiple wavelengths may be used. In one embodiment, the lasers 219 are continuously employed at the same power level to uniformly illuminate the display screen 212. This facilitates a simultaneous display of a superposition of holographic patterns for all three colors. In another embodiment, the lasers 219 are sequentially interchanged in time, with a synchronous display of a corresponding holographic pattern for the active color by the display screen 212.
The display screen 212, which corresponds to a diffraction pattern holographic display screen, is used to render an interference pattern for rear illumination by the lasers 219. The interference pattern may correspond to a single composite interference pattern, or one or more respective interference patterns for each of the wavelengths used by the lasers 219. When the display screen 212 is illuminated by the lasers 219, a wavefront of the three-dimensional scene is reconstructed and is viewable to an observer as a hologram.
The display screen 212 is a high resolution display based on liquid crystal display technology, piezo-electric technology, electro-chemical technology, or technology employing other light obscuring, light bending, or light phasing principles. The display screen 212 corresponds to an array of pixels that may be enabled or disabled by the holographic processor 203. Where multiple color lasers 219 are employed, each pixel may include respective components that selectively permit the corresponding wavelengths of light emitted by the lasers 219 to pass through the screen. For example, the display screen 212 may generate the holographic patterns with Fresnel micro-lenses over each corresponding color pixel.
The display screen 212 may also be used as a conventional color display with exceptionally high resolution, color saturation, and/or other characteristics that make it suitable for rendering holographic patterns as described. Thus, the display screen 212 may be configured to render a conventional two-dimensional image of pixels, e.g., a 1920×1080 image or another resolution of two-dimensional image. In this embodiment, the patterns of Fresnel microlenses may be created in the respective positions of the pixels. The display screen 212 may be used also as a light directing or light projecting device. Generation of diffraction patterns by Fresnel lenses on the screen may create optical properties of the optical lens, while other specific diffraction patterns may have light directing properties.
Next, a general description of the operation of the various components of the holographic display device 200 is provided. To begin, the holographic processor 203 may obtain 3D scene data 218. Such data may be generated from models such as polygonal meshes, volumetric voxel models, and so on. A program such as a game application, a virtual reality application, and so on may be used to generate the three-dimensional scene. In some cases, the 3D scene data 318 may be generated from stereoscopic scenes such as stereoscopic video.
From the 3D scene data 218, the holographic processor 203 generates holographic pattern data 215. The holographic processor 203 employs ray tracing or other approaches to determine how light from the lasers 219 would interfere with light from the lasers 219 reflected by the 3D scene at a virtual display screen 212. To this end, the holographic processor 203 takes into account the wavelengths of the lasers 219 and the various angles at which the 3D scene is illuminated virtually. The holographic interference pattern is generated and may be stored in the holographic pattern data 215.
Depending on the complexity of the processing, generation of the holographic pattern data 215 may be performed in real-time or in advance. In one embodiment, the holographic pattern data 215 is optically captured from a real three-dimensional scene and digitized.
The holographic processor 203 then renders the holographic interference pattern on the display screen 212. The display screen 212 is back-illuminated by the lasers 219, thereby reconstructing a wavefront corresponding to light reflected by the virtual three-dimensional scene. The holographic interference pattern may correspond to one frame from a holographic video stream. The holographic interference pattern may be regenerated at a frame rate, thereby recreating motion in the three-dimensional scene.
In contrast to the display of ordinary video, frames of holographic video may not employ progressive scan, interlaced scan, etc. because the entirety of the holographic interference pattern may be necessary to reproduce the wavefront. In various embodiments, the entire holographic interference pattern is changed at the same moment, with the lasers 219 being switched off during the change of pattern.
In one embodiment, time-separation of colors is employed. As a non-limiting example, at 30 frames per second (33 milliseconds per frame), the red portion of the pattern may be shown for 10 milliseconds, the green portion of the pattern may be shown for 10 milliseconds, and the blue portion of the pattern may be shown for 10 milliseconds.
The second light plane 318 uniformly illuminates the display screen 212. The display screen 212 dynamically renders a holographic pattern according to a light obscuring, light bending, or light phasing principle. The holographic pattern rendered by the display screen 212 allows a reconstructed wavefront 321 to pass through the display screen 212. This reconstructed wavefront 321 corresponds to light that appears to be reflected by a virtual three-dimensional scene.
With reference to
The computing device 403 may comprise, for example, a server computer or any other system providing computing capability. Alternatively, a plurality of computing devices 403 may be employed that are arranged, for example, in one or more server banks or computer banks or other arrangements. For example, a plurality of computing devices 403 together may comprise a cloud computing resource, a grid computing resource, and/or any other distributed computing arrangement. Such computing devices 403 may be located in a single installation or may be distributed among many different geographical locations. For purposes of convenience, the computing device 403 is referred to herein in the singular. Even though the computing device 403 is referred to in the singular, it is understood that a plurality of computing devices 403 may be employed in the various arrangements as described above.
Various applications and/or other functionality may be executed in the computing device 403 according to various embodiments. Also, various data is stored in a data store 409 that is accessible to the computing device 403. The data store 409 may be representative of a plurality of data stores 409 as can be appreciated. The data stored in the data store 409 includes, for example, holographic pattern data 215, 3D scene data 218, and potentially other data. The data stored in the data store 409, for example, is associated with the operation of the various applications and/or functional entities described below.
The components executed on the computing device 403, for example, include a network data server 412, a holographic pattern encoder 415, a 3D scene generator 418, and other applications, services, processes, systems, engines, or functionality not discussed in detail herein. The network data server 412 is executed to serve up the holographic pattern data 215 and/or the 3D scene data 218 to the holographic display device 200 over the network 406 in response to a request from the holographic display device 200. In various embodiments, the network data server 412 may correspond to a hypertext transfer protocol (HTTP) server, a real-time protocol (RTP) media server, and/or another type of server application.
The 3D scene generator 418 may be executed to generate the 3D scene data 218, while the holographic pattern encoder 415 may be executed to encode the 3D scene data 218 into the holographic pattern data 215. In other words, a distributed architecture may be employed so as to off-load at least a portion of the processing and encoding functionality from the holographic processor 203 (
Referring next to
Beginning with box 503, the holographic processor 203 may obtain data defining a view of a three-dimensional scene. Such data may be stored in the 3D scene data 218 or obtained over a network 406 (
In box 509, the holographic processor 203 renders the holographic interference pattern on the display screen 212 (
In box 515, the holographic processor 203 determines whether another view of the three-dimensional scene or another three-dimensional scene is to be processed. If another view is to be processed for the dynamic hologram, the holographic processor 203 returns to box 503. Otherwise, the operation of the holographic processor 203 ends.
With reference to
Stored in the memory 606 are both data and several components that are executable by the processor 603. In particular, stored in the memory 606 and executable by the processor 603 are the network data server 412, the holographic pattern encoder 415, the 3D scene generator 418, and potentially other applications. Also stored in the memory 606 may be a data store 409 and other data. In addition, an operating system may be stored in the memory 606 and executable by the processor 603.
It is understood that there may be other applications that are stored in the memory 606 and are executable by the processor 603 as can be appreciated. Where any component discussed herein is implemented in the form of software, any one of a number of programming languages may be employed such as, for example, C, C++, C#, Objective C, Java®, JavaScript®, Perl, PHP, Visual Basic®, Python®, Ruby, Delphi®, Flash®, or other programming languages.
A number of software components are stored in the memory 606 and are executable by the processor 603. In this respect, the term “executable” means a program file that is in a form that can ultimately be run by the processor 603. Examples of executable programs may be, for example, a compiled program that can be translated into machine code in a format that can be loaded into a random access portion of the memory 606 and run by the processor 603, source code that may be expressed in proper format such as object code that is capable of being loaded into a random access portion of the memory 606 and executed by the processor 603, or source code that may be interpreted by another executable program to generate instructions in a random access portion of the memory 606 to be executed by the processor 603, etc. An executable program may be stored in any portion or component of the memory 606 including, for example, random access memory (RAM), read-only memory (ROM), hard drive, solid-state drive, USB flash drive, memory card, optical disc such as compact disc (CD) or digital versatile disc (DVD), floppy disk, magnetic tape, or other memory components.
The memory 606 is defined herein as including both volatile and nonvolatile memory and data storage components. Volatile components are those that do not retain data values upon loss of power. Nonvolatile components are those that retain data upon a loss of power. Thus, the memory 606 may comprise, for example, random access memory (RAM), read-only memory (ROM), hard disk drives, solid-state drives, USB flash drives, memory cards accessed via a memory card reader, floppy disks accessed via an associated floppy disk drive, optical discs accessed via an optical disc drive, magnetic tapes accessed via an appropriate tape drive, and/or other memory components, or a combination of any two or more of these memory components. In addition, the RAM may comprise, for example, static random access memory (SRAM), dynamic random access memory (DRAM), or magnetic random access memory (MRAM) and other such devices. The ROM may comprise, for example, a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or other like memory device.
Also, the processor 603 may represent multiple processors 603 and the memory 606 may represent multiple memories 606 that operate in parallel processing circuits, respectively. In such a case, the local interface 609 may be an appropriate network that facilitates communication between any two of the multiple processors 603, between any processor 603 and any of the memories 606, or between any two of the memories 606, etc. The local interface 609 may comprise additional systems designed to coordinate this communication, including, for example, performing load balancing. The processor 603 may be of electrical or of some other available construction.
Likewise, the holographic processor 203 (
Although the network data server 412, the holographic pattern encoder 415, the 3D scene generator 418, and other various systems described herein may be embodied in software or code executed by general purpose hardware as discussed above, as an alternative the same may also be embodied in dedicated hardware or a combination of software/general purpose hardware and dedicated hardware. If embodied in dedicated hardware, each can be implemented as a circuit or state machine that employs any one of or a combination of a number of technologies. These technologies may include, but are not limited to, discrete logic circuits having logic gates for implementing various logic functions upon an application of one or more data signals, application specific integrated circuits having appropriate logic gates, or other components, etc. Such technologies are generally well known by those skilled in the art and, consequently, are not described in detail herein.
The flowchart of
Although the flowchart of
Also, any logic or application described herein, including the network data server 412, the holographic pattern encoder 415, the 3D scene generator 418, and the holographic processor 203, that comprises software or code can be embodied in any non-transitory computer-readable medium for use by or in connection with an instruction execution system such as, for example, a processor 603 in a computer system or other system. In this sense, the logic may comprise, for example, statements including instructions and declarations that can be fetched from the computer-readable medium and executed by the instruction execution system. In the context of the present disclosure, a “computer-readable medium” can be any medium that can contain, store, or maintain the logic or application described herein for use by or in connection with the instruction execution system.
The computer-readable medium can comprise any one of many physical media such as, for example, magnetic, optical, or semiconductor media. More specific examples of a suitable computer-readable medium would include, but are not limited to, magnetic tapes, magnetic floppy diskettes, magnetic hard drives, memory cards, solid-state drives, USB flash drives, or optical discs. Also, the computer-readable medium may be a random access memory (RAM) including, for example, static random access memory (SRAM) and dynamic random access memory (DRAM), or magnetic random access memory (MRAM). In addition, the computer-readable medium may be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or other type of memory device.
It should be emphasized that the above-described embodiments of the present disclosure are merely possible examples of implementations set forth for a clear understanding of the principles of the disclosure. Many variations and modifications may be made to the above-described embodiment(s) without departing substantially from the spirit and principles of the disclosure. All such modifications and variations are intended to be included herein within the scope of this disclosure and protected by the following claims.