• Nigel Tao's avatar
    image/jpeg: use a look-up table to speed up Huffman decoding. This · 4ecf0b10
    Nigel Tao authored
    requires a decoder to do its own byte buffering instead of using
    bufio.Reader, due to byte stuffing.
    
    benchmark                      old MB/s     new MB/s     speedup
    BenchmarkDecodeBaseline        33.40        50.65        1.52x
    BenchmarkDecodeProgressive     24.34        31.92        1.31x
    
    On 6g, unsafe.Sizeof(huffman{}) falls from 4872 to 964 bytes, and
    the decoder struct contains 8 of those.
    
    LGTM=r
    R=r, nightlyone
    CC=bradfitz, couchmoney, golang-codereviews, raph
    https://golang.org/cl/109050045
    4ecf0b10
huffman.go 6.19 KB