back

Work in Progress,
Equi-Angular Cubemap
ffmpeg v360 format uses a 3wx2h array.

Equi-Angular Cubemap in ffmpeg v360:



		left   0 front 0 right 0
down -90 back 90 up -90
ffmpeg -i e.tif -vf v360=input=equirect:output=eac eac.tif

Paul Bourke has worked on these for a long time: Paul Bourke, the link I was thinking of is gone, but look around anyway. Google blog had a discussion on Equi-Angular Cubemaps in video in 2017: bringing pixels front and center vr video

In 3D VR, that pattern is repeated horizontally so you have that array for each left and right eye for a total of twelve square images.

kubi (pc) kubi (pc) on github has a reference to a paper on "Optimized Tangens Cubemap (OTC)": paper.pdf

 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

A small list, mostly from Black Magic Design's Fusion Reactor KartaVR documentation:

16:9 Video Frame Padded Fulldome/Domemaster/Angular Fisheye 180°
4:3 Video Frame Padded Fulldome/Domemaster/Angular Fisheye 180°
Angular Fisheye 360°/Light Probe IBL/Angular
Cube faces
Cylinder 360°x90°, Cylindrical
Facebook 3x2 Cubemap
Facebook Pyramid 1:1
Facebook Vertical Strip Cubemap
Flat bottom LatLong/Equirectangular/Spherical 360°x180°
Fulldome/Domemaster/Angular Fisheye 180°
Garden Gnome 3x2 Cubemap
Gear VR/Octane ORBX/VRay based 6:1 Horizontal Strip Cubemap:
  Left Right Top (Rotated 180°) Bottom (Rotated 180°) Back Front
Gear VR stereo panorama. Right (R) and left (L) camera cubic faces:
  R-Left R-Right R-Top (Rotated 180°) R-Bottom (Rotated 180°) R-Back R-Front
  L-Left L-Right L-Top (Rotated 180°) L-Bottom (Rotated 180°) L-Back L-Front
High Resolution Fulldome/Domemaster/Angular Fisheye 180°
Horizontal 6:1 Strip Cubemap
Horizontal Cross Cubemap
Horizontal Tee Cubemap
LatLong/Equirectangular/Spherical 360°x180°
LG 360 Camera Unsitched
Mental Ray Cube 1 Based 6:1 Horizontal Strip Cubemap
Ricoh Theta S Camera Unstitched
Samsung Gear 360 Camera Unstitched
Starglobe 1:1 Cubemap
Strip, vertical, horizontal
StripVR, horizontal
Vertical 6:1 Strip Cubemap
Vertical Cross Cubemap
Vertical Strip Cubemap
Vertical Tee Cubemap

 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Horizontal cross format
this is not for or from ffmpeg v360



Horizontal cross, this order is not ffmpeg v360 order. But it shows the pitch rotation of top (up) and bottom (down) faces.

Panotools and similar:

		Face front right back  left  top  bottom
Yaw 0 90 180 -90 0 0
Pitch 0 0 0 0 90 -90
I like this horizontal cross format, you can cut, fold and glue a print to form an actual cube.

It is visually rewarding, horizontal images are in a continuous sequence: "lfrb", "frbl", "rblf" or "blfr" + top (up) and bottom (down).

But this does not work for the ffmpeg v360 format, where the horizontal cube faces are not positioned sequentially, default "rludfb".

 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

From: "Overview of the Versatile Video Coding (VVC) Standard and Its Applications" H.266
Ieee Transactions on Circuits and Systems for Video Technology, Vol. 31, No. 10, October 2021

5) Virtual Boundaries:
Virtual boundaries are boundaries within pictures where the in-loop filter operations that would apply across the boundaries are disabled. The granularity of the possible locations of virtual boundaries is eight luma samples. This feature serves two purposes. The first is for avoiding seam artifacts introduced by applying the in-loop filters across an artificial boundary created by a preprocessing step before encoding, e.g., a boundary that can occur when a multi-face projection format such as the cubemap projection (CMP) [19] is used to represent a 360° video during coding. Each CMP picture contains a layout of six cubemap faces, as shown in Fig. 3. However, while the upper and lower rows of three faces are continuous in the spherical domain, a discontinuity exists between the upper and lower rows, shown by the horizontal “discontinuous edge” in Fig. 3. Such a boundary can be signaled as a virtual boundary to disable the in-loop filter operations across the boundary, to avoid mixing of spherically non-neighboring samples together during in-loop filtering, which could harm the subjective quality. Although it is possible to partition the picture such that the boundary between the upper and lower face rows coincide with tile boundaries or slice boundaries, across which the in-loop filters could be disabled to achieve similar subjective effect, defining virtual boundaries and disabling loop filtering across them provides more flexibility for 360° video coding, because the latter does not require the cubemap face width or height to be a multiple of the CTU size.



Fig. 3.
An example of a cubemap projected picture. [a version of equi-angular cubemap? my comment]
equirectangular projection (ERP)
cubemap projection (CMP)
generalized cubemap projection (GCMP)
padded versions of the above.

ref: ieee.org/document/9503377

back