1. 23 Dec, 2009 6 commits
  2. 22 Dec, 2009 6 commits
  3. 21 Dec, 2009 5 commits
  4. 19 Dec, 2009 2 commits
  5. 18 Dec, 2009 8 commits
  6. 17 Dec, 2009 11 commits
  7. 16 Dec, 2009 2 commits
    • Nigel Tao's avatar
      Basic image/jpeg decoder. · 8bf58725
      Nigel Tao authored
      This is not a complete JPEG implementation (e.g. it does not handle
      progressive JPEGs or restart markers), but I was able to take a photo
      with my phone, and view the resultant JPEG in pure Go.
      
      The decoder is simple, but slow. The Huffman decoder in particular
      should be easily improvable, but optimization is left to future
      changelists. Being able to inline functions in the inner loop should
      also help performance.
      
      The output is not pixel-for-pixel identical to libjpeg, although
      identical behavior isn't necessarily a goal, since JPEG is a lossy
      codec. There are at least two reasons for the discrepancy.
      
      First, the inverse DCT algorithm used is the same as Plan9's
      src/cmd/jpg, which has different rounding errors from libjpeg's
      default IDCT implementation. Note that libjpeg actually has three
      different IDCT implementations: one floating point, and two fixed
      point. Out of those four, Plan9's seemed the simplest to understand,
      partly because it has no #ifdef's or C macros.
      
      Second, for 4:2:2 or 4:2:0 chroma sampling, this implementation does
      nearest neighbor upsampling, compared to libjpeg's triangle filter
      (e.g. see h2v1_fancy_upsample in jdsample.c).
      
      The difference from the first reason is typically zero, but sometimes
      1 (out of 256) in YCbCr space, or double that in RGB space. The
      difference from the second reason can be as large as 8/256 in YCbCr
      space, in regions of steep chroma gradients. Informal eyeballing
      suggests that the net difference is typically imperceptible, though.
      
      R=r
      CC=golang-dev, rsc
      https://golang.org/cl/164056
      8bf58725
    • Ian Lance Taylor's avatar
      Add roadmap document. · 2e5a7206
      Ian Lance Taylor authored
      Also adds Development heading on navbar, with Roadmap being
      the only current entry.
      
      R=r
      CC=golang-dev
      https://golang.org/cl/180069
      2e5a7206