back

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

Here I'm using the equirectangular dacapo.jpg (8000x4000 px) to make an Equi-Angular Cubemap (8000x4500 px)
ffmpeg -i dacapo.jpg -vf v360=input=equirect:output=eac dac_eac.jpg

Equi-Angular Cubemap in ffmpeg v360:


dac_eac.jpg (8000x4500 px)

		left   0 front 0 right 0
down -90 back 90 up -90
Paul Bourke has info on these: Pixel efficiency considerations (EAC: EqualAngular cubemaps).

Google blog had a discussion on Equi-Angular Cubemaps in video in 2017: bringing pixels front and center vr video

As the Equi-Angular Cubemap is in a default v360 format, it can be transformed directly to any other v360 format.
for example ffmpeg -i dac_eac.jpg -vf v360=input=eac:output=c3x2 dac_3x2.jpg



dac_3x2.jpg (6000x4000 px)

More from Paul Bourke, here's an interesting article on youtube 360 video format a 3x2 cubemap projection.

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

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
See also:
https://github.com/AndrewHazelden/Panoramic_Geometry_Collection

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

Horizontal cross format
this is not for or from ffmpeg v360


hcross_wb.webp

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).



cm.jpg "frblud" cubemap (strip), 6x1 format (horizontal)

But this does not work for ffmpeg v360 formats, 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.



bross3-3101953-large.gif Fig. 3.

(equirectangular projection (ERP)
cubemap projection (CMP)
generalized cubemap projection (GCMP)
padded versions of the above.)

ref: ieee.org/document/9503377

See also:
A COMPREHENSIVE COMPARISON OF PROJECTIONS IN OMNIDIRECTIONAL SUPER-RESOLUTION
arXiv:2304.06497v1 [cs.CV] 13 Apr 2023

back