Les images à 360° dans Panoramax sont actuellement toutes dans une projection “equirectangulaire”.
C’est un format très courant, mais qui n’a pas que des avantages.
Les parties hautes et basses de l’image sont étirées sur toute la largeur, ce qui provoque bien sûr des déformations, mais aussi ce qui fait que l’unique pixel tout en haut (zenith) et tout en bas (nadir) sont multipliés pour remplir toute la largeur.
Il n’y a pas plus d’info, mais l’info est étalée sur des milliers de pixels. C’est donc très peu efficace en terme de stockage même si l’aspect très continu va plutôt être bien compressé par l’algo JPEG.
Quand une GoPro Max sort une image de 16 millions de pixels, on a en réalité un ratio de Pi/4 de pixels utiles soit 12.5 Mpx, et pour la Qoocam ses 96 Mpx sont plutôt 75 Mpx. Logique car les deux objectifs sortent nativement deux images “fish-eye” circulaires, qu’on va étirer en carré.
Les déformations posent d’autres problème, en particulier sur les détections.
Il existe d’autres formats, dont un qui me parait intéressant le “cubemap”.
Exemple:
La sphère 360° est projetée sur un cube à 6 faces, ici dans l’ordre devant, droite, arrière, gauche, haut et bas.
Plusieurs avantages à ce format:
- moins de déformations, chaque face est plus directement exploitable seule
- moins d’étalement des pixels, on revient à peu près aux pixels utiles
Dans l’exemple ci-dessus, les 6 faces sont stockées à l’horizontale, mais on peut les stocker sous d’autres formes :
La version empilée verticalement peut être intéressante dans le cas d’une image JPEG, car elles sont compressées ligne à ligne et donc on conserve une cohérence en compressant les faces intégralement les unes à la suite des autres.
Aucun plan pour l’instant d’utiliser ce format, mais c’est à explorer, car PhotoSphereViewer, la librairie utilisée par la visionneuse, sait le gérer.
On pourrait même envisager une sorte de format hybride, avec les 4 faces horizontales en projection cylindriques, ce qui ferait qu’on n’a aucune rupture, et uniquement le haut et bas en projection “cube”.