• Nigel Tao's avatar
    image/png: speed up PNG decoding for common color models: Gray, NRGBA, · dd294fbd
    Nigel Tao authored
    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
    dd294fbd