1. 28 Sep, 2016 2 commits
  2. 26 Sep, 2016 2 commits
  3. 23 Sep, 2016 1 commit
    • Thomas Davies's avatar
      Encode and decode multiple tile groups. · ce12003d
      Thomas Davies authored
      A tile group is a set of tiles in scan order.
      
      Each tile group has a version of uncompressed and compressed headers,
      identical apart from tile group parameters.
      Encoding probability updates takes account of the number of
      headers to control overheads.
      
      The decoder supports arbitrary numbers of tile groups with
      arbitrary number of tiles. The number of tiles in a TG is
      signalled in the uncompressed header for that TG.
      
      The encoder currently only supports a fixed number
      of TGs (3, when error resilient mode is on) of equal size
      (except possibly for the last one).
      
      The average BDR performnce with 3 tile groups versus
      anchor with error resilient mode and up to 16 tiles is:
      
      NR YCbCr:      3.02%      3.04%      3.05%
      PSNRHVS:      3.09%
      SSIM:      3.06%
      MSSSIM:      3.05%
      CIEDE2000:      3.04%
      
      Change-Id: I9b97c5ed733103b9160a3a5d4370de5322c00c0b
      ce12003d
  4. 22 Sep, 2016 2 commits
    • Angie Chiang's avatar
      Add bitstream debug tool · 7a3ceab0
      Angie Chiang authored
      This is a debug tool used to detect bitstream error. On encoder side, it
      pushes each bit and probability into a queue before the bit is written into
      the Arithmetic coder. On decoder side, whenever a bit is read out from the
      Arithmetic coder, it pops out the reference bit and probability from the
      queue as well. If the two results do not match, this debug tool will report
      an error.  This tool can be used to pin down the bitstream error precisely.
      By combining gdb's backtrace method, we can detect which module causes the
      bitstream error.
      
      This tool is moved from following two CLs of nextgenv2
      https://chromium-review.googlesource.com/#/c/366432/
      https://chromium-review.googlesource.com/#/c/380300/
      
      Change-Id: Iec6d4c2e3851b8ac1db35776fd7a216a9230a983
      7a3ceab0
    • Angie Chiang's avatar
      Merge inverse_transform_block_inter/intra · 4b544275
      Angie Chiang authored
      These two functions are almost the same.
      
      Change-Id: Ic60615e2c6e01d78ef3555fea61cc6e056bd67d0
      4b544275
  5. 21 Sep, 2016 3 commits
    • Angie Chiang's avatar
      Work around to avoid mismtach on adaptive scan experiment · d58f39d5
      Angie Chiang authored
      1) Turn off SIMD quantizer in adapt_scan experiment because the iscan is
      not 16-byte aligned now.
      
      2) Turn off eob-specific dqcoeff initialization in
      inverse_transform_block_inter and inverse_transform_block_intra
      
      3) Turn off transform optimization for special eob because it is not
      compatible with adapt_scan experiment
      
      Performance:
              PSNR    BDRate
      lowres  1.2%    1.068%
      midres  0.897%  0.769%
      hdres   0.945%  0.724%
      
      Change-Id: I197c19ba536761c334790a040ef44534c7cf21b5
      d58f39d5
    • Angie Chiang's avatar
      Turn on update_scan_count_facade · 9afaec78
      Angie Chiang authored
      Change-Id: Ia11ccf105222dd7169e3692af33ead9183ab31e9
      9afaec78
    • Angie Chiang's avatar
      Pass AV1_COMMON into get_scan() · 99cb0d28
      Angie Chiang authored
      This CL doesn't change coding behavior. It is to facilitate the
      following implementation of adaptive scan order
      
      Change-Id: I229963cb5185812a2da43f5c8a6506b296452a6a
      99cb0d28
  6. 20 Sep, 2016 1 commit
  7. 19 Sep, 2016 1 commit
  8. 16 Sep, 2016 1 commit
    • Steinar Midtskogen's avatar
      Extend CLPF to chroma. · a25c6c3b
      Steinar Midtskogen authored
      Objective quality impact (low latency):
      
      PSNR YCbCr:      0.13%     -1.37%     -1.79%
         PSNRHVS:      0.03%
            SSIM:      0.24%
          MSSSIM:      0.10%
       CIEDE2000:     -0.83%
      
      Change-Id: I8ddf0def569286775f0f9d4d4005932766a7fc27
      a25c6c3b
  9. 15 Sep, 2016 2 commits
    • Thomas Davies's avatar
      Step size and arithmetic coding for delta quantization. · dca173a6
      Thomas Davies authored
      Example performance: 1.8% bit rate savings using
      the AQ test mode aq-mode=4 :
      ./aomenc --codec=av1 --ivf --tile-columns=1 --tile-rows=1 \
                       --kf-max-dist=1000 --kf-min-dist=1000 --cpu-used=0 \
                       --passes=1 --threads=1 --lag-in-frames=0 \
                       --end-usage=q --limit=600 --cq-level=42 \
                       --aq-mode=4 --error-resilient=1 out.bits FourPeople_1280x720_60.y4m
      
      Change-Id: Iba01cf2732a57f3c27481ac2a3c8fc37bb9e5533
      dca173a6
    • Arild Fuldseth's avatar
      Support for delta-q at superblock level · 0fe65112
      Arild Fuldseth authored
      Change-Id: I4128af44776d1f361bddc1fdffb75ed2224dbfa5
      0fe65112
  10. 14 Sep, 2016 5 commits
  11. 13 Sep, 2016 4 commits
  12. 08 Sep, 2016 2 commits
    • Michael Bebenita's avatar
      Fix build with --dering. · 35d93d5a
      Michael Bebenita authored
      Change-Id: Ia44ea1798c3347bba2f59a0a1d6765852b783e2f
      35d93d5a
    • Steinar Midtskogen's avatar
      Reduce memory footprint for CLPF decoding. · eb5794da
      Steinar Midtskogen authored
      Instead of having CLPF write to an entire new frame and
      copy the result back into the original frame, make the
      filter able to work in-place by keeping a buffer of size
      frame_width*filter_block_size and delay the write-back
      by one filter_block_size row.
      
      This reduces the cycles spent in the filter to ~75%.
      
      Change-Id: I78ca74380c45492daa8935d08d766851edb5fbc1
      eb5794da
  13. 07 Sep, 2016 2 commits
    • Michael Bebenita's avatar
      Bit accounting. · e6b12944
      Michael Bebenita authored
      This patch adds bit account infrastructure to the bit reader API.
      When configured with --enable-accounting, every bit reader API
      function records the number of bits necessary to decoding a symbol.
      Accounting symbol entries are collected in global accounting data
      structure, that can be used to understand exactly where bits are
      spent (http://aomanalyzer.org). The data structure is cleared and
      reused each frame to reduce memory usage. When configured without
      --enable-accounting, bit accounting does not incur any runtime
      overhead.
      
      All aom_read_xxx functions now have an additional string parameter
      that specifies the symbol name. By default, the ACCT_STR macro is
      used (which expands to __func__). For more precise accounting,
      these should be replaced with more descriptive names.
      
      Change-Id: Ia2e1343cb842c9391b12b77272587dfbe307a56d
      e6b12944
    • Arild Fuldseth's avatar
      Always send frame size explicitly when error_resilient_mode=1. · b87951a6
      Arild Fuldseth authored
      Purpose is to allow parsing of bitstream after a packet loss.
      
      Change-Id: I7d1c010a465aa18914762cc1a3e61db377304c08
      b87951a6
  14. 05 Sep, 2016 3 commits
  15. 03 Sep, 2016 2 commits
  16. 01 Sep, 2016 2 commits
  17. 26 Aug, 2016 1 commit
    • Urvang Joshi's avatar
      Move palette code from libvpx/nextgenv2 to aomedia. · 764d1266
      Urvang Joshi authored
      Palette code originally by huisu@. Gives 11.68% BDRate improvement on
      screen content set.
      
      Last 7 small speedup patches from me, giving 10% speedup overall for
      screen content set.
      
      From aomedia/master:
      Revert 57fa6267 : Remove color_index_map
      
      From libvpx/nextgenv2:
      c93e5cc3 : Bring palette back to nextgenv2
      827e1b3f : Add test for screen content coding tools in end to end test
      78b0bd0a : Complete (mostly) migration of palette mode
      8a128c2a : Fixes for Palette mode
      4ab00912 : Palette mode: record selected transform type
      cbb8be76 : Set block size upper bound for Palette mode
      bb0e6921 : Convert palette from double to float.
      a0a23b7f : faster code: replace nested for loops by memcpy().
      016a5daa : Palette code: simpler and faster duplicate removal
      d0000208 : Palette code cleanup
      6dde8018 : Use built-in qsort(); create remove_dup() method.
      f746c103 : Handle centroid rounding inside palette.c itself.
      d68c7b6d : Palette: count Y colors only for screen content.
      f1906e96 : Palette code: remove the use of same if condition twice.
      
      Locally made sure all combinations of "--enable-ext-intra" and/or
      "--enable-palette" and/or "--enable-aom-highbitdepth" build OK.
      
      P.S. Note for future reference:
      EXT_INTRA experiment has only been moved *partially* to aomedia at this
      point. If and when the rest is moved to aomedia, EXT_INTRA + PALETTE
      combo needs to be moved to aomedia as well.
      
      Change-Id: I8826780014ec8a88281e56c8258b7c966121b46f
      764d1266
  18. 23 Aug, 2016 2 commits
  19. 22 Aug, 2016 1 commit
  20. 18 Aug, 2016 1 commit