Adaptive perturbed cube map projection
Methods and systems for processing video data are provided. For example, a video bitstream can be obtained that includes a video frame of a spherical representation of 360-degree video data. The video frame can include a planar surface of a geometry, and the planar surface can include a plurality of pixels. Three-dimensional coordinates of a target point of the spherical representation can be determined. A planar surface of the geometry to which the target point is to be mapped can also be determined. The planar surface can be determined based on the three-dimensional coordinates of the target point. Two-dimensional coordinates of a mapping location on the planar surface to which the target point is to be mapped can be determined based on the three-dimensional coordinates of the target point and an adaptation parameter. A pixel value can then be generated based on one or more pixels associated with the mapping location. The pixel value can be assigned to the target point.
1. A method for processing video data, comprising:
obtaining a video bitstream including a plurality of video frames of a spherical representation of 360-degree video data, a video frame of the plurality of video frames including a plurality of planar surfaces of a geometry, wherein each planar surface of the plurality of planar surfaces includes a plurality of pixels;
determining three-dimensional coordinates of a target point of the spherical representation;
determining a planar surface of the geometry to which the target point is to be mapped, the planar surface being determined based on the three-dimensional coordinates of the target point;
extracting an adaptation parameter from the video bitstream, wherein the video bitstream includes an indication of the adaptation parameter in a header associated with a tile or a slice of the video frame or a parameter set associated with the video frame or with the plurality of video frames;
determining two-dimensional coordinates of a mapping location on the planar surface to which the target point is to be mapped based on the three-dimensional coordinates of the target point and the adaptation parameter;
generating a pixel value based on one or more pixels of the plurality of pixels associated with the mapping location on the planar surface; and
assigning the pixel value to the target point of the spherical representation.
2. The method of claim 1 , wherein determining the two-dimensional coordinates of the mapping location on the planar surface includes:
determining initial two-dimensional coordinates of the mapping location based on the three-dimensional coordinates of the target point; and
determining the two-dimensional coordinates of the mapping location by modifying the initial two-dimensional coordinates using the adaptation parameter.
3. The method of claim 2 , wherein determining the initial two-dimensional coordinates based on the three-dimensional coordinates of the target point includes:
determining a first initial two-dimensional coordinate of the initial two-dimensional coordinates based on a first ratio between a first three-dimensional coordinate of the three-dimensional coordinates and a second three-dimensional coordinate of the three-dimensional coordinates; and
determining a second initial two-dimensional coordinate of the initial two-dimensional coordinates based on a second ratio between a third three-dimensional coordinate of the three-dimensional coordinates and the second three-dimensional coordinate of the three-dimensional coordinates.
4. The method of claim 2 , wherein determining the two-dimensional coordinates of the mapping location by modifying the initial two-dimensional coordinates using the adaptation parameter includes:
determining a first two-dimensional coordinate of the two-dimensional coordinates of the mapping location by modifying the first initial two-dimensional coordinate using a function, wherein the first initial two-dimensional coordinate is modified by implementing the function as a function of the adaptation parameter and the first initial two-dimensional coordinate; and
determining a second two-dimensional coordinate of the two-dimensional coordinates of the mapping location by modifying the second initial two-dimensional coordinate using the function, wherein the second initial two-dimensional coordinate is modified by implementing the function as a function of the adaptation parameter and the second initial two-dimensional coordinate.
5. The method of claim 4 , wherein the function includes a signum (sgn) function and a quadratic function, and wherein the adaptation parameter is set to a first value based on the quadratic function.
6. The method of claim 4 , wherein the function includes an arctangent (a tan) function, and wherein the adaptation parameter is set to a second value based on the arctangent function.
7. The method of claim 4 , wherein the function includes a piecewise linear model including multiple pivot points, and wherein at least one of the multiple pivot points is defined by the adaptation parameter.
8. The method of claim 1 , further comprising:
receiving a supplemental enhancement information message, the supplemental enhancement information message including an indication of the adaptation parameter; and
extracting the adaptation parameter from the supplemental enhancement information message.
9. The method of claim 1 , wherein the geometry includes a cube, wherein the plurality of planar surfaces correspond to six surfaces of the cube, and wherein each surface of the six surfaces is tangential to a sphere of the spherical representation.
10. An apparatus for processing video data, comprising:
memory to store 360-degree video data; and
a processor configured to:
obtain a video bitstream including a plurality of video frames of a spherical representation of the 360-degree video data, a video frame of the plurality of video frames including a plurality of planar surfaces of a geometry, wherein each planar surface of the plurality of planar surfaces includes a plurality of pixels;
determine three-dimensional coordinates of a target point of the spherical representation;
determine a planar surface of the geometry to which the target point is to be mapped, the planar surface being determined based on the three-dimensional coordinates of the target point;
extract an adaptation parameter from the video bitstream, wherein the video bitstream includes an indication of the adaptation parameter in a header associated with a tile or a slice of the video frame or a parameter set associated with the video frame or with the plurality of video frames;
determine two-dimensional coordinates of a mapping location on the planar surface to which the target point is to be mapped based on the three-dimensional coordinates of the target point and the adaptation parameter;
generate a pixel value based on one or more pixels of the plurality of pixels associated with the mapping location on the planar surface; and
assign the pixel value to the target point of the spherical representation.
11. The apparatus of claim 10 , wherein the processor is further configured to:
determine initial two-dimensional coordinates of the mapping location based on the three-dimensional coordinates of the target point; and
determine the two-dimensional coordinates of the mapping location by modifying the initial two-dimensional coordinates using the adaptation parameter.
12. The apparatus of claim 11 , wherein the processor is further configured to:
determine a first initial two-dimensional coordinate of the initial two-dimensional coordinates based on a first ratio between a first three-dimensional coordinate of the three-dimensional coordinates and a second three-dimensional coordinate of the three-dimensional coordinates; and
determine a second initial two-dimensional coordinate of the initial two-dimensional coordinates based on a second ratio between a third three-dimensional coordinate of the three-dimensional coordinates and the second three-dimensional coordinate of the three-dimensional coordinates.
13. The apparatus of claim 11 , wherein the processor is further configured to:
determine a first two-dimensional coordinate of the two-dimensional coordinates of the mapping location by modifying the first initial two-dimensional coordinate using a function, wherein the first initial two-dimensional coordinate is modified by implementing the function as a function of the adaptation parameter and the first initial two-dimensional coordinate; and
determine a second two-dimensional coordinate of the two-dimensional coordinates of the mapping location by modifying the second initial two-dimensional coordinate using the function, wherein the second initial two-dimensional coordinate is modified by implementing the function as a function of the adaptation parameter and the second initial two-dimensional coordinate.
14. The apparatus of claim 13 , wherein the function includes a signum (sgn) function and a quadratic function, and wherein the adaptation parameter is set to a first value based on the quadratic function.
15. The apparatus of claim 13 , wherein the function includes an arctangent (a tan) function, and wherein the adaptation parameter is set to a second value based on the arctangent function.
16. The apparatus of claim 13 , wherein the function includes a piecewise linear model including multiple pivot points, and wherein at least one of the multiple pivot points is defined by the adaptation parameter.
17. The apparatus of claim 10 , wherein the processor is further configured to:
receive a supplemental enhancement information message, the supplemental enhancement information message including an indication of the adaptation parameter; and
extract the adaptation parameter from the supplemental enhancement information message.
18. The apparatus of claim 10 , wherein the geometry includes a cube, wherein the plurality of planar surfaces correspond to six surfaces of the cube, and wherein each surface of the six surfaces is tangential to a sphere of the spherical representation.
19. The apparatus of claim 10 , wherein the apparatus comprises a mobile device with one or more cameras to capture the 360-degree video data.
20. The apparatus of claim 10 , wherein the apparatus comprises a mobile device with a display device to output the pixel value at the target point of the spherical representation.
21. A non-transitory computer-readable medium having stored thereon instructions that, when executed by one or more processors, cause the one or more processor to:
obtain a video bitstream including a plurality of video frames of a spherical representation of the 360-degree video data, a video frame of the plurality of video frames including a plurality of planar surfaces of a geometry, wherein each planar surface of the plurality of planar surfaces includes a plurality of pixels;
determine three-dimensional coordinates of a target point of the spherical representation;
determine a planar surface of the geometry to which the target point is to be mapped, the planar surface being determined based on the three-dimensional coordinates of the target point;
extract an adaptation parameter from the video bitstream, wherein the video bitstream includes an indication of the adaptation parameter in a header associated with a tile or a slice of the video frame or a parameter set associated with the video frame or with the plurality of video frames;
determine two-dimensional coordinates of a mapping location on the planar surface to which the target point is to be mapped based on the three-dimensional coordinates of the target point and the adaptation parameter;
generate a pixel value based on one or more pixels of the plurality of pixels associated with the mapping location on the planar surface; and
assign the pixel value to the target point of the spherical representation.
22. An apparatus comprising:
means for obtaining a video bitstream including a plurality of video frames of a spherical representation of 360-degree video data, a video frame of the plurality of video frames including a plurality of planar surfaces of a geometry, wherein each planar surface of the plurality of planar surfaces includes a plurality of pixels;
means for determining three-dimensional coordinates of a target point of the spherical representation;
means for determining a planar surface of the geometry to which the target point is to be mapped, the planar surface being determined based on the three-dimensional coordinates of the target point;
means for extracting an adaptation parameter from the video bitstream, wherein the video bitstream includes an indication of the adaptation parameter in a header associated with a tile or a slice of the video frame or a parameter set associated with the video frame or with the plurality of video frames;
means for determining two-dimensional coordinates of a mapping location on the planar surface to which the target point is to be mapped based on the three-dimensional coordinates of the target point and an adaptation parameter;
means for generating a pixel value based on one or more pixels of the plurality of pixels associated with the mapping location on the planar surface; and
means for assigning the pixel value to the target point of the spherical representation.