1. 18 Oct, 2016 1 commit
  2. 04 Oct, 2016 2 commits
    • Thomas's avatar
      Add EC_ADAPT experiment for symbol-adaptive entropy coding. · b0112dfd
      Thomas authored
      This experiment performs symbol-by-symbol statistics
      adaptation for non-binary symbols. It requires DAALA_EC or
      RANS and ANS to be enabled. The adaptation is currently
      based on a simple recursive filter and is taken from
      Daala. It has an adaptation rate dependent on alphabet size,
      taken from Daala. It applies wherever non-binary symbols
      are encoded using Cumulative Probability Functions rather
      than trees.
      
      Where symbols are adapted, forward updates in the compressed
      header are removed.
      
      In the case of RANS coefficient token values are adapted,
      with the exception of the zero token which remains a
      binary symbol. In the case of DAALA_EC other values
      such as inter and intra modes are adapted as CDFs are
      provided in those cases.
      
      The experiment is configured with:
      
      ./configure --enable-experimental --enable-daala-ec --enable-ec-adapt
      
      or
      
      ./configure --enable-experimental --enable-ans --enable-rans \
          --enable-ec-adapt
      
      EC_ADAPT is not currently compatible with tiles.
      
      BDR results on Objective-1-fast give a small loss:
      
      PSNR YCbCr:      0.51%      0.49%      0.48%
      PSNRHVS:      0.50%
      SSIM:      0.50%
      MSSSIM:      0.51%
      CIEDE2000:      0.50%
      
      Change-Id: I3888718e42616f3fd87144de7f125228446ac984
      b0112dfd
    • Steinar Midtskogen's avatar
      Move CLPF block signals from frame to SB level. · 85437b21
      Steinar Midtskogen authored
      These signals were in the uncompressed frame header (as a temporary
      hack), which caused two problems:
      
      * We don't want that header to be duplicated in the slice header
      * It was necessary to signal the number of bits to transmit up front
      
      However, the filter size can be 128x128 which is greater than the SB
      size, and a decoder wouldn't be able to know whether to read a bit or
      not until the final SB of that 128x128 block has been decoded
      (depending on whether the 128x128 is all skip or not).  Therefore the
      signalling was changed for 128x128 blocks so that every top left SB of
      a 128x128 filter block contains a signal regardless of whether the
      block is all skip or not.  Also, all the MB's of 128x128 block are
      filtered even if they are skip MB's.  This gives the signal a purpose
      even when the 128x128 block is all skip, and it also gives a slight
      coding gain as it leaves a way to filter skip blocks, which was
      previously forbidden.
      
      Low latency:
      PSNR YCbCr:     -0.19%     -0.14%     -0.06%
         PSNRHVS:     -0.15%
            SSIM:     -0.13%
          MSSSIM:     -0.15%
       CIEDE2000:     -0.19%
      
      High latency:
      PSNR YCbCr:     -0.03%     -0.01%     -0.09%
         PSNRHVS:      0.04%
            SSIM:      0.00%
          MSSSIM:      0.02%
       CIEDE2000:     -0.02%
      
      Change-Id: I69ba7144d07d388b4f0968f6a53558f480979171
      85437b21
  3. 30 Sep, 2016 1 commit
  4. 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
  5. 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
  6. 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
  7. 13 Sep, 2016 1 commit
  8. 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
  9. 17 Aug, 2016 1 commit
  10. 16 Aug, 2016 1 commit
  11. 27 Jul, 2016 1 commit
    • Jingning Han's avatar
      Separate frame context index for different frame types · 7c1c078d
      Jingning Han authored
      This commit makes the encoder to use different frame context index
      for different frame types. In the baseline setting, it sets the
      frame context index of the overlay frame to be different from other
      regular inter frames. In the ext-refs setting, it further allows
      the backward reference frame to use a different index.
      
      It improves the compression performance for both settings.
      
      Baseline
      lowres  0.1%
      midres  0.15%
      
      ext-refs
      lowres  0.42%
      midres  0.35%
      
      Change-Id: Ie033fcc16af20dace9a70386dc35dad6c5744f09
      7c1c078d
  12. 18 Jul, 2016 1 commit
  13. 15 Jul, 2016 1 commit
  14. 13 Jul, 2016 1 commit
  15. 22 Jun, 2016 1 commit
    • Zoe Liu's avatar
      Add pred prob handling for new references in EXT_REFS · f91498c0
      Zoe Liu authored
      For the experiment of EXT_REFS, add the handling of the context
      probabilities for both forward reference frames (namely
      LAST/LAST2/LAST3/GOLDEN) and backward reference frames
      (namely BWDREF/ALTREF).
      
      Change-Id: Ibd991673acf6ff2fc9a56b8805eca9173cbf5fdc
      f91498c0
  16. 19 May, 2016 1 commit
    • James Zern's avatar
      s/INTERP_FILTER/InterpFilter/ · d54236a9
      James Zern authored
      this matches style guidelines and stabilizes successive runs of
      clang-format across the tree. remaining types should be address in
      successive commits.
      
      Change-Id: I6ad3f69cf0a22cb9a9b895b272195f891f71170f
      d54236a9
  17. 03 May, 2016 1 commit
  18. 13 Apr, 2016 1 commit
    • Jingning Han's avatar
      Store predicted mv in the collocated reference block · ee364ff9
      Jingning Han authored
      This commit makes the codec to store the predicted motion vector
      at 8x8 block level and assign them when the reference motion vector
      is obtained from collocated blocks in the previous frame.
      
      Change-Id: I7e0403dad1df012f3994846939bb799e2445736c
      ee364ff9
  19. 31 Mar, 2016 1 commit
    • Jingning Han's avatar
      Enable adaptive prediction mode coding · de6741bf
      Jingning Han authored
      This commit allows the codec to analyze the reference motion vector
      candidate list and adaptively reduce the size of inter prediction
      mode set.
      
      Change-Id: I98f25bbf17cc844a84cfc568be27912f31fbe478
      de6741bf
  20. 29 Mar, 2016 2 commits
  21. 25 Mar, 2016 4 commits
  22. 24 Mar, 2016 1 commit
  23. 22 Mar, 2016 2 commits
    • Yaowu Xu's avatar
      vp10/ -> av1/ · cfea7dd7
      Yaowu Xu authored
      Change-Id: Ia055d03656ad1580447eced8687949583fdf4089
      cfea7dd7
    • Yaowu Xu's avatar
      Rename vpx to aom · bf4202ed
      Yaowu Xu authored
      Change-Id: Ibc7933fba85feeb30ef9b14b302d932aff19f54e
      bf4202ed
  24. 25 Feb, 2016 4 commits
  25. 24 Feb, 2016 1 commit
  26. 28 Jan, 2016 1 commit
  27. 22 Jan, 2016 1 commit
  28. 21 Jan, 2016 2 commits
  29. 03 Dec, 2015 1 commit
    • hui su's avatar
      Remove palette from VP10 · 5d3327e8
      hui su authored
      Store it in nextgenv2 for now.
      
      Change-Id: Iab0af0e15246758e3b6e8bde4a74b13c410576fc
      5d3327e8