image/png: speed up PNG decoding for common color models: Gray, NRGBA,
Paletted, RGBA.
benchmark old ns/op new ns/op delta
BenchmarkDecodeGray
3681144 2536049 -31.11%
BenchmarkDecodeNRGBAGradient
12108660 10020650 -17.24%
BenchmarkDecodeNRGBAOpaque
10699230 8677165 -18.90%
BenchmarkDecodePaletted
2562806 1458798 -43.08%
BenchmarkDecodeRGB
8468175 7180730 -15.20%
benchmark old MB/s new MB/s speedup
BenchmarkDecodeGray 17.80 25.84 1.45x
BenchmarkDecodeNRGBAGradient 21.65 26.16 1.21x
BenchmarkDecodeNRGBAOpaque 24.50 30.21 1.23x
BenchmarkDecodePaletted 25.57 44.92 1.76x
BenchmarkDecodeRGB 30.96 36.51 1.18x
$ file $GOROOT/src/pkg/image/png/testdata/bench*
benchGray.png: PNG image, 256 x 256, 8-bit grayscale, non-interlaced
benchNRGBA-gradient.png: PNG image, 256 x 256, 8-bit/color RGBA, non-interlaced
benchNRGBA-opaque.png: PNG image, 256 x 256, 8-bit/color RGBA, non-interlaced
benchPaletted.png: PNG image, 256 x 256, 8-bit colormap, non-interlaced
benchRGB.png: PNG image, 256 x 256, 8-bit/color RGB, non-interlaced
R=r
CC=golang-dev
https://golang.org/cl/
6127051