The FujiFilm .MPO 3D photo format

A few weeks ago my dad, in his love for electronic gadgetry, purchased a FujiFilm FinePix REAL 3D camera. The concept is pretty simple: it’s basically two cameras in one, with the two sensors spaced as far apart as an average pair of human eyes. The coolest thing about the camera is its LCD display, which achieves autostereoscopy by using a lenticular lens (kind of like those novelty postcards that change from one picture to another when you look at them from different angles), so if it’s held at the right angle and distance from the eyes, the picture on the LCD display actually appears 3-dimensional without special glasses!

Anyway, I immediately started wondering about the file format that the camera uses to record its images (as well as movies, which it also records in 3D). In the case of videos, the camera actually uses the well-known AVI container format, with two synchronized streams of video (one for each eye). In the case of still photos, however, the camera saves files with a .MPO extension, which stands for Multiple Picture Object.

I was expecting a complex new image specification to reverse-engineer, but it turned out to be much simpler than that. A .MPO file is basically two JPG files, one after another, separated only by a few padding zeros (presumably to align the next image on a boundary of 256 bytes?). Technically, if you “open” one of these files in an image editing application, you would actually see the “first” image, because the MPO file looks identical to a regular JPG file at the beginning.

I proceeded to whip up a quick application in C# to view these files (that is, view both of the images in each file). This quick program also has the following features:

  • It has a “stereo” mode where it displays both images side by side. Using this feature you can achieve a 3D effect by looking at both images as either a cross-eyed stereogram (cross your eyes until the two images converge, and combine into one) or a relaxed-eye stereogram. You might have to strain your eyes a bit to focus on the combined image, but the effect truly appears 3-dimensional.
  • In “single” mode, the program allows you to automatically “cycle” between the two images (a wiggle-gram, if you will), which creates a cheap jittery pseudo-3D effect (see screen shots below).
  • Also in “single” mode, the program lets you save each of the frames as an individual JPEG file by right-clicking on the picture.
So, if you want a quick and not-so-dirty way of viewing your MPO files, download the program and let me know what you think! (Or browse the source code on GitHub)
Here’s a screenshot of the program in “stereo” mode:

And a screenshot of the program in “cycle” mode:

If you like, you can download the original .MPO file shown in the screenshots above.

Now for a bit of a more technical discussion…. Clearly it would be a great benefit to add support for the .MPO format to DiskDigger, the best file carving application in town.

However, from the perspective of a file carver, how would one differentiate between a .MPO file and a standard .JPG file, since they both have the same header? As it is now, DiskDigger will be able to recover the first frame of the .MPO file, since it believes that it found a .JPG file.

After the standard JPG header, the MPO file continues with a collection of TIFF/EXIF tags that contain meta-information about the image, but none of these tags seem to give a clue that this is one of two images in a stereoscopic picture (at least not the tags within the first sector’s worth of data in the file, which is what we’re really interested in).

One of the EXIF tags gives the model name of the camera, which identifies it as “FinePix REAL 3D W3.” Perhaps we can use the model name (the fact that it contains “3D”) to assume that this must be a .MPO file, but I’d rather not rely on the model name, for obvious reasons, although the FinePix is currently the only model that actually uses this format (to my knowledge).

The other option would be to change the algorithm for JPG carving, so that every time we find a JPG file, we would seek to the end of the JPG image, and check if there’s another JPG image immediately following this one. But then, what if the second JPG image is actually a separate JPG file, and not part of a MPO collection?

For the time being, DiskDigger will in fact use the model name of the camera to decide if it’s a .MPO file or just a regular .JPG file. The caveats of doing this would be:

  • It won’t identify .MPO files created by different manufacturers.
  • It might give false positive results for .JPG images shot with the camera in 2D mode.

As always, you can download DiskDigger for all your data recovery needs. And if anyone has any better ideas of how to identify .MPO files solely based on TIFF/EXIF tags, I’d love to hear them!

Update: DiskDigger now fully supports recovering .MPO files, based on deep processing of MP tags encoded in the file!

Share this article:
  • Facebook
  • LinkedIn
  • Reddit
  • Twitter

30 thoughts on “The FujiFilm .MPO 3D photo format”

  1. Dear Dmitry,

    One feature this lovely little application is missing is a ‘slideshow’ feature. The SBS view is perfect for viewing MPO files on a standard 3DTV (just open the file and set the TV to SBS format), but then you have to manually open the next file, rather than just press the right arrow or another simple operation. Could you make a modification to this so that it can offer a SBS 3D slideshow, for showing photos from a PC hooked up to a 3DTV?

    If you could I would be very appreciative.

    Many thanks,

    M@

  2. I hope you are having fun with your W-3. I’ve had mine since around 2012. I have some nice galleries on my site.

    Files that say “Click for HD MPO file” are straight off the W-3and will display great. “HD MPO” is a term I came up with to describe Fuji W-3 sourced imagery converted to work on the Nintendo 3DS.

    I woke up one morning a week or two after the 3DS release and decided to make a website to share my pictures. I had never made one before so I went with Yahoo Small Business Solutions. I have enjoyed being no lower than third or fourth search result for “MPO Gallery” on Google, Yahoo, and Bing. Recently it changed to some other thing, their editor is old java, so i haven’t been able to edit my site like I would like to. It is pure HTML and it takes me about 8 hours to publish 3 web pages. There has got to be a better way.

    One thing cool is that the 3DS didn’t release with a web browser. My site had been up for a little while when the browser was added in an update. It was exciting to see if my site would work on it. It worked great. You can pick a 3DS HD image and it will load it and display it on the 3D screen. You then have the option to save it to the SD Card.

    As you can see I’ve been playing with this for awhile. The AVI uses the MJPG codec, which I have found for around 30 dollars. I also enjoy modelling in Blender for 3D screens. I have a great process for this and have done compositing adding 3D titles to a Vibesquad video I shot.

    Well, I’m getting long winded. Not to diminish your great coding, there is a free program that I have been using since the beginning. It is stphmkre.exe or Stereo Photo Maker. You can adjust parallax, import and export anaglyphs, side by side, universal freeview, cards for lorgnettes and stereoscopes, lenticular, and MPO in a very configurable way. I have it for download from the Links page of my site along with lots of information about it’s use. I hope you enjoy this amazing camera. i have galleries of Cozumel, Colorado, and since i’m a DJ and lighting Designer, lots of party pics. Take a look around if you like.

    Best Wishes,
    Spiff

Leave a Reply

Your email address will not be published. Required fields are marked *