MPO stereo images, that were taken in example using Fujifilm FinePix Real 3D Cameras contain a field parallax in their exif data. The parallax value can be used by stereoscopic viewers like my stereoscopic image viewer SIV to adjust the 3D effect. By manipulating this value one can can customize the strength of the pop out effect and reduce the ghosting effect. This may lead to a more pleasuring viewing experience.
The parallax value can easily be displayed using exiftool:
exiftool -ee -Parallax DSCF0045.MPO
If you want to set the parallax value of an image, this is not that easy, since the value is stored in the exif data of the second embedded jpeg file in the MPO, which is not directly writable with exiftool. However one can find out the beginning of the second file with exiftool, extract the image and then set the parallax value. Afterwards on can put all together again using dd. Doing this manually is a quite awful task, so I wrote a little script for automating it:
#!/bin/bash #setparallax.sh #$1: MPO File $2: Parallax value
For determining the value that matches the visual requirements of your image you may use the parallax adjustment function of SIV (+/- key) and use the value on the OSD and printed out in the console. Perhaps some day I will add the functionality, to directly write the new parallax value to the MPO file, to SIV. However the setparallax script at least gives us the possibility to write the parallax value until then.
I am proud to present a new version of SIV, the stereoscopic image viewer for Linux I published on MyGNU.de. It should be compilable also on MacOS and Windows, but I have never tested this. SIV is capable of displaying JPS stereo images and MPO stereo images in different stereo modes. It is tested in fullscreen/windowed mode with anaglyphic and quad buffered stereo mode. Different output devices I tested were my Vuzix VR920 and relevator shutter glasses on Nvidia Quadro FX 350M and FX 3700.
siv-1.1 the stereoscopic image viewer
Key Features
support for side by side JPS stereo images
support for MPO stereo images (used by Fujifilm Finepix Real 3D cameras)
many display modes, including quad buffered stereo
headtracking support for the Vuzix VR920 HMD (driver available on mygnu.de)
black-white and sepia filter
controls for gamma, brightness, contrast and parallax
on screen display
Basic usage You may supply one or multiple .jps or .mpo files at the command line. I.e. siv *.jps will display all JPS files in the current folder. Once the first image of the list is being displayed you may use CURSOR_UP/DOWN or the mouse wheel to select a different image for being displayed. You can enable/disable the slideshow mode by pressing the [Enter] key. When displaying an image the filename of the image is displayed in the lower left corner for a few seconds. Using the number keys one may select different ways to zoom/navigate in the image. In VR920 mode or normal trackball mode use the right mouse button together with mouse movements to zoom the image. You can use the middle mouse button together with movements to pan the image. While displaying an image you may alter gamma, brightness, contrast and parallax for the best viewing experience. Some images may look better in black-white or sepia mode. By pressing the [t] key you may toggle these filters. The filters and controls use shaders on the GPU, so if you experience problems with these options you may disable them with the –disable-shaders commandline switch. At present the shader code is only tested on Nvidia hardware. If you have tested it on Intel/ATI please leave a comment.
Headtracking If you want to try out the VR920 headtracking, enable the headtracking support with the “–vr920” option. You may want to specify the distance to the image with the “-d” option. Values between 0.25 and 0.5 seem to have a nice effect when using the headtracking. When headtracking is active you may press [z] to set the zero view so that with your current head position you will see the center of the image. If you want to manipulate the view manually press the left or mittle mouse button as described above and move the mouse. The “-m” and “-p” options allow to set IP-address and port for the connection to the headtracking driver.
Commandline Usage
siv [options] stereofile(s)
Options: –CullDrawThreadPerContext Select CullDrawThreadPerContext threading model for viewer. –CullThreadPerCameraDrawThreadPerContext Select CullThreadPerCameraDrawThreadPerCo- ntext threading model for viewer. –DrawThreadPerContext Select DrawThreadPerContext threading model for viewer. –SingleThreaded Select SingleThreaded threading model for viewer. –accum-rgb Request a rgb accumulator buffer visual –accum-rgba Request a rgb accumulator buffer visual –cc Request use of compile contexts and threads –clear-color <color> Set the background color of the viewer in the form “r,g,b[,a]”. –disable-shaders disable shaders for unsupported graphics boards –display <type> MONITOR | POWERWALL | REALITY_CENTER | HEAD_MOUNTED_DISPLAY –filter=[bw|sepia] enable filter on startup –rgba Request a RGBA color buffer visual –samples <num> Request a multisample visual –screen <num> Set the screen to use when multiple screens are present. –serialize-draw <mode> OFF | ON – set the serialization of draw dispatch –stencil Request a stencil buffer visual –stereo Use default stereo mode which is QUAD_BUFFER if not overriden by environmental variable –stereo <mode> ANAGLYPHIC | QUAD_BUFFER | HORIZONTAL_SPLIT | VERTICAL_SPLIT | LEFT_EYE | RIGHT_EYE | HORIZONTAL_INTERLACE | VERTICAL_INTERLACE | CHECKERBOARD | ON | OFF –vr920 enable headtracking support for the vuzix vr920 hmd –window <x y w h> Set the position (x,y) and size (w,h) of the viewer window. -O <option_string> Provide an option string to reader/writers used to load databases -d distance (values between 0.0 and 1.0 are senseful) -e <extension> Load the plugin associated with handling files with specified extension -h or –help Display this information -l <library> Load the plugin -m non default multicast ip -p non default multicast port -s start in slideshow mode -t delay for slideshow mode, defaults to 15 sec
You may notice that most of the options come from osgViewer, which is the base class for the viewer. This gives the advantage, that one can use the “normal” osgViewer controls such as flying around the scene. Try to press [f] for toggling fullscreen mode or press [s] for toggling the onscreen stats (fps, etc.) display.
Download
I decided to publish the viewer under the creative common noncommercial license. Make sure you have the OpenSceneGraph library installed before trying to compile or run the viewer. You may download the full source (Eclipse Project) from here:
. More binary formats may be available in the future. Fore the x86_64 binary you’ll need OpenSceneGraph-2.8.2. Binaries of the OpenSceneGraph library for most linux distributions can be downloaded from www.openscenegraph.org. On gentoo one can just emerge openscenegraph.
Building from source For building from source unpack the zip and cd to siv/Release and run make.
Possible Problems As default SIV starts in fullscreen quad buffered stereo mode. Thus if your graphics hardware does not support this mode, the viewer will exit with the following error:
Error: Not able to create requested visual. GraphicsWindow has not been created successfully. Viewer::realize() – failed to set up any windows
In this case try anaglyphic mode or the apropiate 3D mode for your hardware (see the –stereo option). For instructions on how to get the xserver to work in stereoscopic mode see: Vuzix VR920 with Linux and active 3D stereo
History SIV-1.1 -support for the new MPO file format -black-white and sepia filter -controls for gamma, brightness, contrast and parallax -improved OSD -manual controls in vr920 headtracking mode
SIV – first version -initial realease with support for jps files, quad buffered stereo and various other display modes
Footnote If you like the viewer, feel free to link to www.mygnu.de. To request commercial licenses contact us at info(at)mygnu.de. Well, if you just want to support our work on MyGNU.de use the donate button 😉
have fun, enjoy the 3rd dimension and have a merry Christmas
Last year I published the first release of my stereoscopic image viewer, SIV here. At the time it was the first viewer for Linux supporting jps files and quad buffered stereo. As far as I know it is still the only one with support for the headtracking of the VR920 head mounted display. Currently I am working on a new and better version which will have the following additional features:
native support for the MPO file format (used by Fujifilm stereo cameras)
adjustments for -parallax -brightness -contrast -gamma
Improved OSD
Filters -black/white -sepia
In the current development stage most of the features are basically working so expect the new version of the viewer to be released soon. I hope to get it ready for Christmas, for those of you who have their new 3D camera under the Christmas tree.