An in depth look at Facebook’s new photo service and interview with Sam Odio

Pixel dimension is only one measure of image quality. Other important factors include jpg compression level and color space. Based on testing, Facebook recompresses all images regardless of upload size.

Odio further states

If you send us a 2048px image we don’t re-compress it (preserving the original quality).

An example of our commitment to quality is in the choice of our default resolution size.  A 720px JPG image can be rotated without re-compressing it (while a 700px image can not).

Improving photo quality through better image compression and resampling is a process that will never end.  We have made progress on this front (reducing compression levels, switching to lanczos, increasing resolution 2048 px, etc) but we’re not stopping there.  We will continue to focus on photo quality and we welcome your constructive suggestions.

We’re proud of how far we have come so far.  No other photo sharing company provides Facebook’s photo quality, at our scale, free of charge.

The Facebook photo infrastructure is incredibly complex.  We resample images in different ways depending on where the photo is uploaded (and its size).  However we don’t use PHP’s GD image resampling library.  Server-side we currently use Graphicsmagik (a port from Imagemagik) with the Lanczos resampling algorithm.  We use a custom-built resampling library client-side.

If you’d prefer to be in control of the resampling process then you can always do it yourself.  As noted above, we work to not resample images that are the correct resolution.  Just send us a 2048px (or 720px) image.  .

But my testing bares a different story. It indicates all images are recompressed. I uploaded these three pictures at 700,  720, and 2048 pixels. The original sizes were 83, 86, and 1,005 KB. The resulting images on FB was 90, 93, and 679 KB. I chose ‘high resolution on upload’.

An email requesting clarifications on this discrepancy was not returned.

In the coming weeks, Facebook will also roll out a new Flash uploader which will resize the image to 2048 pixels on the client side before upload. Will this new uploader strip up exif and IPTC data as well?

Note that Facebook does not actually give you the option of displaying the images in high resolution. Regardless of the upload size, all images are displayed at 720 px. For images higher than 720 pixels, there is an additional link to Download in High Resolution. This can be problematic for copyright owners as it encourages the copying of images off the site. Note that the mere copying of images from Facebook into a local hard drive is perfectly legal. It’s the redistribution of that downloaded images that can cause problems for anyone who decides to then upload that image. If the point of allowing high resolution images is to permit higher view quality, why not just offer an option to display it in high resolution? Why encourage the downloading of copyrighted images?