The subject matter relates to panoramic image processing and in particular to spliting of elliptical images.
Direct environmental mapping by dome-based panorama viewers requires elliptic images to be loaded as textures. Due to the large sizes of elliptic images, they have to be split at loading time into sub-images which are in sizes acceptable to the GPU. Two device-dependent GPU limitations, maximum texture size and support for non-power-of-two(non-POT), should be considered in deciding the sub-image sizes. After the sub-images of proper sizes are generated, texture coordinates are assigned according to geometrical mapping of the panorama.
The invention will be better understood by way of the following detailed description of embodiments of the invention with reference to the appended drawings, in which:
wherein similar features bear similar labels throughout the drawings.
To discuss texture mapping, several coordinate systems can be defined. Texture space is the 2-D space of surface textures and object space is the 3-D coordinate system in which 3-D geometry such as polygons and patches are defined. Typically, a polygon is defined by listing the object space coordinates of each of its vertices. For the classic form of texture mapping, texture coordinates (u, v) are assigned to each vertex. World space is a global coordinate system that is related to each object's local object space using 3-D modeling transformations (translations, rotations, and scales). 3-D screen space is the 3-D coordinate system of the display, a perspective space with pixel coordinates (x, y) and depth z (used for z-buffering). It is related to world space by the camera parameters (position, orientation, and field of view). Finally, 2-D screen space is the 2-D subset of 3-D screen space without z. Use of the phrase “screen space” by itself can mean 2-D screen space.
The correspondence between 2-D texture space and 3-D object space is called the parameterization of the surface, and the mapping from 3-D object space to 2-D screen space is the projection defined by the camera and the modeling transformations (
In one embodiment, at loading time, the width and height of an original panoramic image (e.g., elliptic, which can include circular) are both split into segments of sizes up the maximum texture size of the GPU. When non-POT (non-power-of-two) is supported, there is at most one remainder segment with size less than the maximum texture size. Where non-POT is not supported, this remainder segment must be further split into POT sizes. The elliptic image is thus split into a plurality of rectangular sub-images according to segmentation in the width and height directions. The sub-images are loaded as textures (see
In a further embodiment, the total memory of the GPU may be insufficient to accommodate the entire elliptical image. This may be the case on mobile devices. Thus, another benefit of using a splitting algorithm is to be able to load the high resolution elliptic panorama images for mobile devices with tight limits on system memory.
One 3-D mesh portion is created to cover each rectangular sub-image, and the vertex coordinates are determined from the texture coordinates of the elliptic image,
where rE and ⊖E are the texture coordinates in polar coordinates, and f−1(rE) is the reverse mapping function from elliptic image to panorama defined by the camera lens projection. This is shown in
The texture coordinates of the elliptic image and texture coordinates of sub-images are related by linear scaling, as in the following equation:
where s and t are texture coordinates, and W and H stand for image width and height respectively, with subscripts E and S indicating elliptic and sub-image respectively, and LS and TS are the pixel location of the left and top edge of the sub-image, respectively.
As such, consider a vertex for which, by virtue of the texture map, is mapped to coordinates (s, t) in the original elliptical image. In order to obtain the texture value for (s, t), it is necessary for the central processing unit (CPU) to determine the sub-image corresponding to these coordinates and the location within that sub-image. This is obtained using Eq. (2.2) above, which will result in (s, t) for a given sub-image h, (1≦h≦H). The appropriate texture value can thus be obtained using the graphics processing unit (GPU) (see
A non-limiting example of image splitting according to width or height is given by Algorithm 1 in
A non-limiting example of dome construction from a split elliptic image is given in Algorithm 2 in
Those skilled in the art will appreciate that a computing device may implement the methods and processes of certain embodiments of the present invention by executing instructions read from a storage medium. In some embodiments, the storage medium may be implemented as a ROM, a CD, Hard Disk, USB, etc. connected directly to (or integrated with) the computing device. In other embodiments, the storage medium may be located elsewhere and accessed by the computing device via a data network such as the Internet. Where the computing device accesses the Internet, the physical interconnectivity of the computing device in order to gain access to the Internet is not material, and can be achieved via a variety of mechanisms, such as wireline, wireless (cellular, WI-FI, BLUETOOTH, WIMAX), fiber optic, free-space optical, infrared, etc. The computing device itself can take on just about any form, including a desktop computer, a laptop, a tablet, a smartphone (e.g., BLACKBERRY, IPHONE, etc.), a TV set, etc.
Moreover, persons skilled in the art will appreciate that in some cases, the panoramic image being processed may be an original panoramic image, while in other cases it may be an image derived from an original panoramic image, such as a thumbnail or preview image.
Certain adaptations and modifications of the described embodiments can be made. Therefore, the above discussed embodiments are to be considered illustrative and not restrictive. Also it should be appreciated that additional elements that may be needed for operation of certain embodiments of the present invention have not been described or illustrated as they are assumed to be within the purview of the person of ordinary skill in the art. Moreover, certain embodiments of the present invention may be free of, may lack and/or may function without any element that is not specifically disclosed herein.
This application is a non-provisional of, and claims priority from, U.S. Provisional Patent Application US 61/704,060 entitled “SPLITTING OF ELLIPTICAL IMAGES” filed 21 Sep. 2012 the entirety of which is incorporated herein by reference.
Number | Name | Date | Kind |
---|---|---|---|
6859557 | Uyttendaele et al. | Feb 2005 | B1 |
7158138 | Bronskill et al. | Jan 2007 | B1 |
7843461 | Takashima et al. | Nov 2010 | B2 |
20030117411 | Fujiwara et al. | Jun 2003 | A1 |
20030195883 | Mojsilovic et al. | Oct 2003 | A1 |
20040174373 | Stevens et al. | Sep 2004 | A1 |
20050237337 | Leather et al. | Oct 2005 | A1 |
20060017741 | Sekine et al. | Jan 2006 | A1 |
20060210160 | Cardenas et al. | Sep 2006 | A1 |
20120294516 | Lee et al. | Nov 2012 | A1 |
Entry |
---|
Silverman et al., “Bayesian Clustering for Unsupervised Estimation of Surface and Texture Models”, IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. IO. No. 4. Jul. 1988, 482-495. |
Number | Date | Country | |
---|---|---|---|
20140085303 A1 | Mar 2014 | US |
Number | Date | Country | |
---|---|---|---|
61704060 | Sep 2012 | US |