The present invention relates to 360-degree virtual reality image. In particular, the present invention relates to mapping a 360-degree virtual reality image into a segmented sphere projection (SSP) format, rotated sphere projection (RSP) format or modified cubemap projection (CMP) format.
The 360-degree video, also known as immersive video is an emerging technology, which can provide “feeling as sensation of present”. The sense of immersion is achieved by surrounding a user with wrap-around scene covering a panoramic view, in particular, 360-degree field of view. The “feeling as sensation of present” can be further improved by stereographic rendering. Accordingly, the panoramic video is being widely used in Virtual Reality (VR) applications.
Immersive video involves the capturing a scene using multiple cameras to cover a panoramic view, such as 360-degree field of view. The immersive camera usually uses a panoramic camera or a set of cameras arranged to capture 360-degree field of view. Typically, two or more cameras are used for the immersive camera. All videos must be taken simultaneously and separate fragments (also called separate perspectives) of the scene are recorded. Furthermore, the set of cameras are often arranged to capture views horizontally, while other arrangements of the cameras are possible.
The 360-degree virtual reality (VR) images may be captured using a 360-degree spherical panoramic camera or multiple images arranged to cover all filed of views around 360 degrees. The three-dimensional (3D) spherical image is difficult to process or store using the conventional image/video processing devices. Therefore, the 360-degree VR images are often converted to a two-dimensional (2D) format using a 3D-to-2D projection method. For example, equirectangular (ERP) and cubic projection have been commonly used projection methods. For the ERP projection, the areas in the north and south poles of the sphere are stretched more severely (i.e., from a single point to a line) than areas near the equator. Furthermore, due to distortions introduced by the stretching, especially near the two poles, predictive coding tools often fail to make good prediction, causing reduction in coding efficiency.
To overcome the extreme distortion at north and south poles associated with the ERP format, segmented sphere projection (SSP) has been disclosed in JVET-E0025 (Zhang et al., “AHG8: Segmented Sphere Projection for 360-degree video”, Joint Video Exploration Team (WET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 5th Meeting: Geneva, CH, 12-20 Jan. 2017, Document: WET-E0025) as a method to convert a spherical image into an SSP format.
The layout 150 is vertically transposed for the sake of a smaller line buffer (i.e., narrower image width) as shown in
In JVET-F0052 (Lee et al., “AHG 8: EAP-based segmented sphere projection with padding”, Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 6th Meeting: Hobart, AU, 31 March-7 Apr. 2017, Document: JVET-F0052), an EAP-based segmented sphere projection (SSP) with padding is disclosed. According to JVET-F0052, the projection format of the equatorial segment is changed from ERP (equirectangular projection) to EAP (equal-area projection), which results in smoother and consistent image quality in terms of signal-to-noise over the whole latitude range.
In
The inverse (i.e., 2D to 3D) SSP mapping the segmented rectangle back to the middle equator is according the following equations:
The SSP methods disclosed in JVET-E0025 and JVET-F0052 have been shown to produce better performance in terms of coding efficiency than ERP for video coding. However, the mapping for the North Pole and South Pole images for SSP may not be optimal. There may be other mapping that could result in better performance. Furthermore, there are some redundant areas (i.e., the void areas) around the circular images, which may cause negative impact on coding performance. In addition, there are boundaries between different segments in the SSP. Therefore, it is desirable to develop techniques to improve coding efficiency for the SSP.
In the present invention, similar issues also exist in rotated sphere projection (RSP) and cubemap projection (CMP). Therefore, improved method for RSP and CMP are also disclosed.
Methods and apparatus of processing spherical images related to segmented sphere projection (SSP) are disclosed. According to one method, a North Pole region of the spherical image is projected to a first circular image and a South Pole region of the spherical image is projected to a second circular image using a mapping process selected from a mapping group comprising equal-area mapping, non-uniform mapping and cubemap mapping. An equator region of the spherical image is projected to a rectangular image. A first square image and a second square image are derived from the first circular image and the second circular image respectively. The first square image, the second square image and the rectangular image are assembled into a rectangular layout format, and the spherical image in the rectangular layout format is provided for further processing.
In one embodiment, the first circular image and the second circular image are projected into the first square image and the second square image respectively using FG-Squircular mapping, simple stretching, elliptical grid mapping or Schwarz-Christoffel mapping.
In one embodiment, the rectangular layout format corresponds to the first square image and the second square image on separate ends of the rectangular image placed in a horizontal direction, the first square image and the second square image on separate ends of the rectangular image placed in a vertical direction, the first square image and the second square image stacked vertically with the rectangular image distorted and butted in a horizontal direction, or the first square image and the second square image stacked horizontally with the rectangular image distorted and butted in a vertical direction.
In one embodiment, the spherical image in the rectangular layout format is partitioned into slices or titles based on one or more discontinuous edges. A loop-filter process is disabled across any partition boundary. In another embodiment, data padding is applied to any void area between the first circular image and a first enclosing square, between the second circular image and a second enclosing square, or between both the first circular image and the second circular image and a third enclosing rectangle.
Methods and apparatus of processing spherical images related to inverse segmented sphere projection (SSP) are also disclosed. The process corresponds to the reverse process of spherical images to segmented sphere projection.
Methods and apparatus of processing spherical images related to rotated sphere projection (RSP) are disclosed. According to this method, the spherical image is projected into a first part of rotated sphere projection corresponding to a θ×φ region of the spherical image and a second part of rotated sphere projection corresponding to a remaining part of the spherical image using equal-area mapping, wherein θ corresponds to a longitude range covered by the first part of rotated sphere projection and φ corresponds to a latitude range covered by the first part of rotated sphere projection. The first part of rotated sphere projection and the second part of rotated sphere projection, or a modified first part of rotated sphere projection and a modified second part of rotated sphere projection are assembled into a rectangular layout format. The spherical image in the rectangular layout format is provided for further processing.
In one embodiment, the modified first part of rotated sphere projection is generated by stretching a top side and a bottom side of the first part of rotated sphere projection to form horizontal boundaries on the top side and the bottom side of the modified first part of rotated sphere projection and the modified second part of rotated sphere projection is generated by stretching a top side and a bottom side of the second part of rotated sphere projection to form horizontal boundaries on the top side and the bottom side of the modified second part of rotated sphere projection.
In one embodiment, the modified first part of rotated sphere projection is generated by applying projection to map the first part of rotated sphere projection into a first rectangular area and the modified second part of rotated sphere projection is generated by applying projection to map the second part of rotated sphere projection into a second rectangular area, wherein the projection is selected from a mapping group comprising FG-squircular mapping, simple stretching, elliptical grid mapping, Schwarz-Christoffel mapping. Padding can be applied around edge or boundary of the first part of rotated sphere projection, the modified first part of rotated sphere projection, the second part of rotated sphere projection, and the modified second part of rotated sphere projection or the rectangular layout format. For example, the padding is selected from a padding group comprising geometry mapping, spreading a boundary value and duplicating other sides to a padding region.
Methods and apparatus of processing spherical images related to inverse rotated sphere projection (RSP) are also disclosed. The process corresponds to the reverse process of spherical images to rotated sphere projection.
Methods and apparatus of processing spherical images by projecting each spherical image into one two-dimensional picture using 3D (three-dimension) to 2D (two-dimension) mapping are disclosed. According to one method, a spherical image sequence is received, where each spherical image corresponds to one 360-degree virtual reality image. Each spherical image is projected into one picture consisting of multiple two-dimensional images using three-dimension (3D three-dimension) to 2D (two-dimension) mapping. Each picture is divided into multiple partitions according to discontinuous edges of the multiple two-dimensional images associated with each picture. Video coding is then applied to two-dimensional images generated from the spherical image sequence having a same partition.
In the above method, the three-dimension (3D three-dimension) to 2D (two-dimension) mapping may be selected from a group comprising segmented sphere projection (SSP), rotated sphere projection (RSP) and cubemap projection (CMP). Each partition may correspond to one partitioned into one slice or one title. A loop-filter process related to the video coding may be disabled across any partition boundary.
Methods and apparatus of processing spherical images by projecting each two-dimensional picture into one spherical image using 2D (two-dimension) to 3D (three-dimension) mapping are also disclosed. The process corresponds to the reverse process of the above method.
The following description is of the best-contemplated mode of carrying out the invention. This description is made for the purpose of illustrating the general principles of the invention and should not be taken in a limiting sense. The scope of the invention is best determined by reference to the appended claims.
Segmented Sphere Projection (SSP)
In the present invention, various technical areas to improve the coding efficiency related to SSP, including projection methods for mapping North and South Poles of the sphere to circular areas, layouts of the two Pole images and the rectangular segment, and mapping methods to map the circular areas to square areas, are disclosed.
Projection Methods for Mapping North and South Poles to Circular Areas
As mentioned earlier, in JVET-E0025, the North Pole image is generated according to the top part of equation (1) and the South Pole image is generated according to the lower part of equation (1). In the present invention, various other projects to generate the North Pole image and the South Pole image are disclosed.
A. Equal-Angular Projection for the Circular Area in SSP
The SSP according to NET-E0025 belongs to this category. In an equal-angular projection format, pixel sampling divides latitude and longitude equally. A different representation of equal-angular projection is illustrated in the following. Assuming that a circular area 212 (i.e., a disk) with radius r represents the region of latitude from θ to π/2, then latitude φ between θ and π/2 is mapped to a ring 210 with radius d in the circular area 212 as shown in
d=[(π/2−φ/(π/2−θ]r (4a)
After radius d is determined, the coordinate for a point in the ring can be determined according to x′=w/2+d sin ϕ and y′=w/2 d cos ϕ. In other words, if the ring corresponding to latitude φ can be determined, the (x′,y′) location in the circular area can be determined. In
d=[(π/2+(−φ))/(π/2+(−θ))]r (4b)
In
B. Equal-Area Projection for the Circular in SSP
In an equal-area projection format, the sampling rate is proportional to the area on the sphere domain. This equal-area feature should be useful from image/video compression point of view since the coding artefact will presumably be uniform in all areas in the North Pole and South Pole images. Assuming that a circle with radius r represents the region of latitude θ to π/2, then latitude φ is mapped to a ring 310 with radius d in the circular area 312 as shown in
Again, after radius d is determined, the coordinate for a point in the ring can be determined according to x′=w/2+d sin ϕ and y′=w/2+d cos ϕ. In
In
Since the sampling rate according to the equal-area projection format is proportional to the area on the sphere domain, Lambert azimuthal equal-area projection can be applied. Assuming that a unit circular area 420 centered at the origin (0, 0) represents the region of latitude θ to π/2, then for a unit sphere 410 in 3D domain, the 2D (X, Y) to 3D (x, y, z) conversion is as shown in
The 3D to 2D conversion is:
Assuming that a unit disk 440 centered at the origin (0, 0) represents the region of latitude −θ to −π/2, then for a unit sphere 430 in 3D domain, the 2D (X, Y) to 3D (x, y, z) conversion is as shown in
The 3D to 2D conversion is:
C. Non-Uniform Mapping for the Circular Area in SSP
Non-uniform resampling can also be applied on the circular area to adjust the sampling rate. There are various non-uniform sampling techniques known in the field that can be used for non-uniform resampling. For example, the non-uniform resampling may correspond to:
D. Cubemap Projection for the Circular Area in SSP
Cubemap layout is a well-known technique for a 2D representation of a 360-degree VR image by projecting a spherical image onto six faces of a cube. Cubemap projection can be applied to project the North or the South Pole image to a circular area.
Layout for Segmented Sphere Projection
According to WET-E0025, the SSP layout corresponds to a strip with narrow width. In particular, the two disks are staggered on the top of the rectangular segment corresponding to the equatorial segment as shown in
The picture can be divided into partitions such as slices, tiles, etc., according to the discontinuous edges. Since discontinuity exists across the segment boundary, any processing utilizing neighboring pixel information should take into account the discontinuity. For example, loop filter can be disabled across the partition boundaries according to an embodiment of the present invention.
In SSP, void data exist around the circular image corresponding to the North Pole and South Pole in order to form a square image. During coding or processing, the pixel data in the void area may need to be accessed. Also, some processing (e.g. filtering or interpolation) may need to access pixel data outside the boundary of the layouts. Accordingly, in one embodiment, padding is applied in the void area between the disk and enclosing square, or around edges and boundaries of the Pole images. For the Pole images, padding can be added using geometry mapping, or extending the boundary value. For the rectangular segment, padding can be added by using geometry mapping, extending the boundary value, or duplicating other sides to the padding region. For example, padding can be applied to the void areas (shown as dots-filled area) for the layouts in
The padding can be performed before coding. If padding is performed during coding, the padding can be derived from the reconstructed sides of the current or previous frame, or a combination of both.
Mapping Between the Circular Area and Square
There exist some void areas between the circular areas corresponding to the poles and the enclosing square in the SSP format. A method according to the present invention fills the void area by deforming the circular area into a square to avoid any waste of pixel data. There are various known techniques to stretch or deform a circular area into a square. Some examples are shown as follows:
A. Simple Stretching
According to the simple stretching, each circle in the circular area 910 is mapped to a square in the square area 920 in
The simple square to circle mapping is according to the following equations:
B. FG-Squircular Mapping
A squircle is a mathematical shape intermediate between a square and a circle developed by Fernandez Guasti.
The square to circle mapping according to FG-squircular mapping is shown below:
C. Elliptical Grid Mapping
Elliptical grid mapping is another technique to map between a circular area and a square area.
x=½√{square root over (2+u2−v2+2√{square root over (2)}u)}−½√{square root over (2+u2−v2−2√{square root over (2)}u)} (19)
x=½√{square root over (2+u2−v2+2√{square root over (2)}u)}−½√{square root over (2+u2−v2−2√{square root over (2)}u)} (20)
The square to circle mapping according to Elliptical grid mapping is shown below:
D. Schwarz-Christoffel Mapping
Schwarz-Christoffel mapping is yet another technique to map between a circular area and a square area.
The square to circle mapping according to Schwarz-Christoffel mapping is shown below:
In the above equations, F(⋅) is the incomplete elliptic integral of the first kind, cn(⋅) is a Jacobi elliptic function, and Ke is defined as follows:
In the above, the forward projection from a sphere image to layouts according to segmented sphere project (SSP) is disclosed. The spherical image in the rectangular layout format according to SSP can be further processed, such as compression. When the spherical image is viewed, the spherical image in the rectangular layout format needs to be processed by a reverse process to cover the sphere image. For example, if the two circular images corresponding to the North and South Poles and the rectangular image corresponding to the equatorial segment are available, these images can be used to recover the sphere image. Depending on the particular projection selected for projecting the North Pole region and South Pole region of the sphere into North Pole and South Pole images, a corresponding inverse projection can be used to project the North Pole and South Pole images into the North Pole region and South Pole region of the sphere. Furthermore, if the two Pole images are further mapped into square images using a selected mapping, an inverse mapping can be used to convert the square images back into Pole images. If any padding is applied, the padded data should be removed or ignored during processing.
Rotated Sphere Projection (RSP)
Rotated sphere projection divides the sphere face into two parts: one part represents a 270°×90° region, and the other part represents the residual. The projection format of these two faces can be an equirectangular projection (ERP), or an equal-area projection (EAP), etc. Suppose an RSP face with height h, for a point (x, y) on the face, the latitude φ for the EAP is:
The latitude φ for the ERP is:
In a more general case, one part of RSP can represent a θ×φ region, and the other part of RSP represents the residual. Suppose an RSP face with height h, for a point (x, y) on the face, the latitude φ′ for the EAP is:
The latitude φ′ for the ERP is:
Each of the two-part faces 1510 may also be deformed into a rectangular shape 1520 using various mappings, such as FG-squircular mapping, simple stretching, elliptical grid mapping, or Schwarz-Christoffel mapping, as shown in
Padding for RSP
There exist some void areas between the original faces and the rectangle enclosing the original faces. Also, some processing may require pixel data from neighboring pixels outside the boundary of the segmented face or the deformed segmented face. According to an embodiment of the present invention, padding can be applied around edges and boundaries of the segmented face or the deformed segmented face. Various padding techniques, such as geometry mapping, spreading the boundary value, or duplicating other sides to the padding region can be used. The padding can be performed before coding. If padding is performed during coding, the padding may use data from the reconstructed part of the current or from a previous frame, or a combination of both.
Partitioning the RSP
The picture resulted from RSP can be divided into partitions such as slices, tiles, etc., according to the discontinuous edges. Some processing using neighboring pixel data may cause artifact across discontinuous edges. Therefore, according to an embodiment of the present invention, processing using neighboring pixel data, such as loop filtering, can be disabled across partition boundaries.
In the above, the forward projection from a sphere image to layouts according to rotated sphere project (RSP) is disclosed. The spherical image in the rectangular layout format according to RSP can be further processed, such as compression. When the spherical image is viewed, the spherical image in the rectangular layout format needs to be processed by a reverse process to cover the sphere image. For example, if the first part and the second part of RSP are available, the two parts can be used to recover the sphere image. Furthermore, if the two parts of RSP are in a deformed format, such as the deformed part 1440 in
Modified Cubemap Projection
A cubemap projection consists of six square faces, which divide the surface of the sphere equally. However, the angles on each face may not equally separate.
According to one embodiment, the six faces 1910 are divided to two groups 1920, and each group has three continuous faces as shown in
Padding for Modified Cubemap Projection
There exist some void areas between the original faces and the rectangle enclosing the original faces. Also, some processing may require pixel data from neighboring pixels outside the boundary of the segmented face or the deformed segmented face. According to an embodiment of the present invention, padding can be applied around edges and boundaries of the segmented face or the deformed segmented face. Various padding techniques, such as geometry mapping, spreading the boundary value, or duplicating other sides to the padding region can be used. The padding can be performed before coding. If padding is performed during coding, the padding may use data from the reconstructed part of the current or from a previous frame, or a combination of both.
Partitioning the Modified Cubemap Projection
The picture resulted from modified cubemap projection can be divided into partitions such as slices, tiles, etc., according to the discontinuous edges. Some processing using neighboring pixel data may cause artifact across discontinuous edges. Therefore, according to an embodiment of the present invention, processing using neighboring pixel data, such as loop filtering, can be disabled across partition boundaries.
The flowchart shown above is intended for serving as examples to illustrate embodiments of the present invention. A person skilled in the art may practice the present invention by modifying individual steps, splitting or combining steps with departing from the spirit of the present invention.
The above description is presented to enable a person of ordinary skill in the art to practice the present invention as provided in the context of a particular application and its requirement. Various modifications to the described embodiments will be apparent to those with skill in the art, and the general principles defined herein may be applied to other embodiments. Therefore, the present invention is not intended to be limited to the particular embodiments shown and described, but is to be accorded the widest scope consistent with the principles and novel features herein disclosed. In the above detailed description, various specific details are illustrated in order to provide a thorough understanding of the present invention. Nevertheless, it will be understood by those skilled in the art that the present invention may be practiced.
Embodiment of the present invention as described above may be implemented in various hardware, software codes, or a combination of both. For example, an embodiment of the present invention can be one or more electronic circuits integrated into a video compression chip or program code integrated into video compression software to perform the processing described herein. An embodiment of the present invention may also be program code to be executed on a Digital Signal Processor (DSP) to perform the processing described herein. The invention may also involve a number of functions to be performed by a computer processor, a digital signal processor, a microprocessor, or field programmable gate array (FPGA). These processors can be configured to perform particular tasks according to the invention, by executing machine-readable software code or firmware code that defines the particular methods embodied by the invention. The software code or firmware code may be developed in different programming languages and different formats or styles. The software code may also be compiled for different target platforms. However, different code formats, styles and languages of software codes and other means of configuring code to perform the tasks in accordance with the invention will not depart from the spirit and scope of the invention.
The invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described examples are to be considered in all respects only as illustrative and not restrictive. The scope of the invention is therefore, indicated by the appended claims rather than by the foregoing description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.
The present invention claims priority to U.S. Provisional Patent Application, Ser. No. 62/490,647, filed on Apr. 27, 2017. The U.S. Provisional Patent Application is hereby incorporated by reference in its entirety.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/CN2018/083825 | 4/20/2018 | WO | 00 |
Number | Date | Country | |
---|---|---|---|
62490647 | Apr 2017 | US |