]> Cypherpunks repositories - gostls13.git/commit
image/png: speed up PNG decoding for common color models: Gray, NRGBA,
authorNigel Tao <nigeltao@golang.org>
Fri, 27 Apr 2012 06:03:58 +0000 (16:03 +1000)
committerNigel Tao <nigeltao@golang.org>
Fri, 27 Apr 2012 06:03:58 +0000 (16:03 +1000)
commitdd294fbd5a6eea9574df8c3f842342a8cd10f2c6
treef64cd44bd59f390e11ecc03ca6e10e55dc5f5d50
parent9ce770afad1b967fe14ac9a9df4e984e45cea9ee
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
src/pkg/image/png/reader.go
src/pkg/image/png/reader_test.go
src/pkg/image/png/testdata/benchGray.png [new file with mode: 0644]
src/pkg/image/png/testdata/benchNRGBA-gradient.png [new file with mode: 0644]
src/pkg/image/png/testdata/benchNRGBA-opaque.png [new file with mode: 0644]
src/pkg/image/png/testdata/benchPaletted.png [new file with mode: 0644]
src/pkg/image/png/testdata/benchRGB.png [new file with mode: 0644]