background image

Reverse engineering Quartz Composer

June 2, 2010


For me finding ways of rigorously figuring out how the logics work (aka “reverse engineering”) has always been an important aspect of learning programming in new languages and environments. I find myself doing this once again in Quartz Composer.

Above is a simple patch for investigating how Quartz Composer deals with images that are resized. Does it interpolate between pixels or not? In this patch I load an 8×6 pixel checkerboard image with squares sized 2×2. From the output it is obvious that QC do interpolate. If not the edges would remain hard.

The real use of this is for an application I am developing for a video screening program where we will have to deal with a mix of HD and SD resolution video. We want to maintain the maximum resolution possible for all of the videos, and the solution is to use high resolution for the projections able to deal with HD, and with SD resolution images being dynamically up-sampled. Ideally one could dream of higher quality approaches than mere linear interpolation, but at least we’ll avoid pixelation of the SD images.