The disclosure is related to a method to render 3D images from a 2D source. In particular, the disclosure is related to a method providing graphics components to assist with rendering 3D images from a 2D source. The disclosure is also related to a method providing graphics components to assist with rendering and optionally computation of 3D images from a 2D source. The disclosure further relates to a communications system to render 3D images from a 2D content delivery source. The disclosure also relates to a method of customization of a display.
Many algorithms exist for estimating depth of a 2D image which is used for a 2D-to-3D conversion. The depth map may be available at the frame-rate or less, and may be provided per-pixel or per group of pixels. After having generated the depth-map it is used as input to a 3D rendering engine. That rendering is also proprietary and runs on separate and dedicated hardware. Conceptually, that rendering maps the entire 2D image to a set of triangles and then performs a transformation (stretching or shrinking the triangle dimensions with pixel dropping, repeating of some interpolation/decimation algorithm) to create a second view (original plus new) or to create two views (derived from the original) to represent an intraocular distance for two view angles on the scene. Those views form the 3D interpretation.
In current graphics systems a proprietary hardware is generally used for the 2D to 3D transformation. This concept is cost extensive. Furthermore, programming routines which are still available on legacy platforms has especially to be implemented for the hardware components used for the 2D-to-3D transformations.
Accordingly, there has been a demand to use commonly available hardware of a graphics system to perform a 2D-to-3D transformation.
An embodiment of a method to render 3D images from a 2D source comprises the steps of providing a graphics rendering device to estimate depth of a 2D image; providing video textures or graphic images and depth-maps to describe an object in a 3D scene; creating at least two view angles on the 3D scene to represent an intraocular distance using the graphics rendering device; and presenting both of the at least two view angles on a display using the graphics rendering device and especially the commonly available 3D imaging technology of the graphics rendering device.
The graphics rendering device may be provided with a separately calculated depth-map. The depth-map may be calculated by a DSP and may be passed to the graphics rendering device as a depth texture. The depth-map may be determined by the use of cell phones or PCs, where the depth map may be calculated in the commonly available hardware. The depth-map may also been calculated within the graphics core.
The conversion of legacy 2D content to 3D is required in many applications such as in the 3DTV technology.
Rather than providing proprietary hardware for the 2D-to-3D transformation, commonly available hardware is used to perform the 2D-to-3D transformation.
The 3D model is generated in the graphics core and two view-angles are projected/calculated. Those two views are then presented to the display. Basically, a 3D object is defined by the vertex locations and their depths. The video texture is used as the ‘skin’ to cover this 3D object. The rendering of the 3D model is then calculated from two angles all done within the graphics core. The two resulting images are then sent to the display to be rendered on a screen.
The graphics rendering device 100 is a commonly available hardware of the graphics system, such as a DSP or a 3D graphics core. The conversion algorithm may equally be performed on a standard processor on the platform.
In a possible embodiment, the depth-map 20 is calculated using a scaled image 10 using chroma-information 11 only and using contrast information 12 to determine likely depth. This is done outside of the graphics core on existing system resources, such as a DSP. The generation of the depth-map may equally be done on a standard processor on the platform. The result is a depth-map 20 which is an array of depths at a resolution at a given frame-rate related to the source content.
In parallel, the 2D content itself is used as a texture 40. The 3D-capable graphics engine, i.e. the graphics rendering device 100, takes the (e.g. video) texture 40 and applies this to a surface with the aforementioned depth-map.
In a preferred embodiment, two view angles are used that are both offset to the normal. The different view angles are created on the scene to represent an intraocular distance in a step S2. This technique ensures that vertical straight lines remain straight. In a step S3, both of the view angles are presented to a viewer on the display 2000 using commonly available 3D imaging technology implemented in the graphics rendering device. On a less powerful 3D graphics processing device, one view angle can be calculated in a graphics devices and the second view angle is the original image. This introduces some distortion or artifacts but enables frame rate to be twice as high. The artifacts can be minimized by providing a accurate depth mapping from source or by an improved depth estimation algorithm. Alternatively, or in addition, the interoccular distance can be minimized of the second graphical rendering to reduce artifacts.
It should be noted that the surface is simply a 3D object with a texture and a depth-map. All manipulations on the object, e.g. page turn, applying the surface to an object e.g. cylinder or otherwise, i.e. by redefining the shape of the 3D object by moving the vertices would yield expected results for 3D graphics manipulation. The object may be manipulated as per any 3D texture. A vertex shader may be used to move vertices in a 3D space to mimic a page turn. The shape of the 3D object is changed by a zoom, rotate or morph operation. The vertices moved and the fragment shader fills in the same triangle's worth of image on the same vertex points.
If other objects were placed in the scene, e.g. a menu item, then if one object 50 occludes another object 60, as shown in
This further introduces capability that cannot be achieved on legacy technology, as today's embodiments manipulate the final image thereby not addressing occlusion or transparency that would have to be solved with some other techniques.
The downloadable texture may be used to overlay a current object in the scene. The set top box or the graphics rendering device is configured to blend a texture in an area of the image as provided from the content delivery source. Thus, the original content of an image which is delivered by the content delivery source 3000 may be added by add-ons. The add-ons are provided by the graphics rendering device or the set top box. As an example, the method enables to replace a logo of a firm originally included in the image delivered by the content delivery source with a logo of another firm provided by the set top box. As another example, the graphics rendering device may render an image including a label wrapped about an object in the scene, wherein the object was originally transmitted from the content delivery source to the graphics rendering device with a different label. Thus, the 3D rendering capability at the set top box (1000) may be used to implement a customization of the content of an image displayed of the display of a viewer.
The algorithm to convert a 2D image to a 3D image may be performed by the graphics rendering device 100 using a common programming language. OpenGL (Open Graphics Library) or OpenGL-ES (Open Graphics for Embedded Systems) may be used as preferred programming language.
The use of commonly available hardware, such as the graphics rendering device or the graphics engine, enables to reduce cost and further enables feature introduction on legacy platforms. The concept also enables additional capabilities and use-cases that are typically provided by that commonly available hardware. A 3D object , i.e. the image and the depth-map, may be used as part of a resource for rendering use-cases—e.g. as part of a game, e.g. the crowd or the background in general.
This application claims the benefit under 35 USC 119(e) and priority under 35 USC 120 to U.S. Provisional patent application Ser. No. 61/388,549 filed on Sep. 30, 2010 and entitled “A system and method to render 3d images from a 2d source” and to U.S. Provisional patent application Ser. No. 61/409,835 filed on Nov. 3, 2010 and entitled “A system and method to render 3d images from a 2d source”, the entirety of both of which are incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
61388549 | Sep 2010 | US | |
61409835 | Nov 2010 | US |