Thursday, February 5, 2015
Monday, March 3, 2014
Friday, January 4, 2013
View chunk-level diffs of PNG files
- Download zlib and build it with
./configureandmake. - Download pngcheck.
- Make sure that the zlib directory is called
zliband is a sibling of of thepngcheckdirectory. - Build
pngcheckwithmake -f Makefile.unx. - Put
pngchecksomewhere in your path. - Create a
pngdiffshell script somewhere in your path:#!/bin/bash LOCAL_FILE=`mktemp /tmp/pngdiff.local.XXXXXX` || exit 1 pngcheck -v $1 > $LOCAL_FILE REMOTE_FILE=`mktemp /tmp/pngdiff.remote.XXXXXX` || exit 1 pngcheck -v $2 > $REMOTE_FILE bbdiff --wait --resume $LOCAL_FILE $REMOTE_FILE
(replacingbbdiffwith your preferred text diffing tool) - Add the following lines to
~/.gitconfig:[difftool "pngdiff"] cmd = pngdiff "$REMOTE" "$LOCAL"
- Run
git difftool -t pngdiffto view diffs.
Relatedly, to view diffs of images in Preview.app (using the up/down arrows to toggle between the old and new versions), add this to ~/.gitconfig:
[difftool "imagediff"] cmd = open -n -W -a preview "$REMOTE" "$LOCAL"
Sunday, December 2, 2012
Sunday, November 11, 2012
GPU Accelerated Compositing in Chrome
Background and details on the implementation of hardware-accelerated compositing in Chrome.
Wednesday, November 7, 2012
Monday, October 22, 2012
Thursday, May 24, 2012
Sunday, November 27, 2011
Sunday, November 13, 2011
Workshop / Chrome Experiments
- dat.GUI: A lightweight graphical user interface for changing variables in JavaScript. Rather than modify variables manually in your code, use dat.GUI to modify them during execution.
- three.js: A lightweight 3D engine. Three.js makes it easy to render graphics with canvas, svg, and WebGL.
- stats.js: A JavaScript performance widget. Stats.js adds a simple info box to your page displaying frames per second (FPS) or, with a mouse click, the milliseconds required to render the frame.
Saturday, September 10, 2011
Monday, July 18, 2011
SceneJS - WebGL Scene Graph Library
Monday, June 13, 2011
Perceptual Image Difference Utility
Sunday, April 3, 2011
MaxSquare: a fast and simple algorithm for maximizing photo thumbnail sizes
Wednesday, March 30, 2011
Coded Exposure Photography (Flutter Shutter Deblur, SIGGRAPH 2006)
In a conventional single-exposure photograph, moving objects or moving cameras cause motion blur. The exposure time defines a temporal box filter that smears the moving object across the image by convolution. This box filter destroys important high-frequency spatial details so that deblurring via deconvolution becomes an ill-posed problem.
Rather than leaving the shutter open for the entire exposure duration, we "flutter'' the camera's shutter open and closed during the chosen exposure time with a binary pseudo-random sequence. The flutter changes the box filter to a broad-band filter that preserves high-frequency spatial details in the blurred image and the corresponding deconvolution becomes a well-posed problem. We demonstrate that manually-specified point spread functions are sufficient for several challenging cases of motion-blur removal including extremely large motions, textured backgrounds and partial occluders.