1. 21 Oct, 2017 1 commit
  2. 17 Oct, 2017 1 commit
    • Alexander Bokov's avatar
      Improving the model for pruning the TX type search · 0c7eb10d
      Alexander Bokov authored
      Introduces two new TX type pruning modes that provide better
      speed-quality trade-off compared to the existing ones. A shallow
      neural network with one hidden layer trained separately for each
      block size is used as a prediction model. The new modes differ in
      thresholds applied to the output of the neural net, so that they
      prune different number of TX types on average.
      
      Owing to relatively low quality loss PRUNE_2D_ACCURATE is used
      by default, regardless of speed settings. Starting with speed
      setting of 3 we switch to PRUNE_2D_FAST mode to get better
      speed-up.
      
      Evaluation results:
      ----------------------------------------------------------
      Prune mode | Avg. speed-up | Quality loss | Quality loss
                 |(high bitrates)|   (lowres)   |   (midres)
      ----------------------------------------------------------
      PRUNE_ONE  |     18.7%     |    0.396%    |    0.308%
      ----------------------------------------------------------
      PRUNE_TWO  |     27.2%     |    0.439%    |    0.389%
      ----------------------------------------------------------
      PRUNE_2D_  |     18.8%     |    0.032%    |    0.063%
      ACCURATE   |               |              |
      ----------------------------------------------------------
      PRUNE_2D_  |     33.3%     |    0.504%    |     ---
      FAST       |               |              |
      
      Change-Id: Ibd59f52eef493a499e529d824edad267daa65f9d
      0c7eb10d
  3. 02 Oct, 2017 1 commit
  4. 28 Sep, 2017 1 commit
    • Monty Montgomery's avatar
      Remove dead av1_dct8x8_quant_xxxx functions · 7f7dd08a
      Monty Montgomery authored
      They're unused, disabled in the prototype setup, but still built and
      complicating the already convoluted ifdef mess in TX experiment
      configuration.
      
      Don't leave dead code in the sourcebase.  That's what SCM is for.
      
      Change-Id: Idb2adf597ac064c7b5027df8af1cf65054984aa4
      7f7dd08a
  5. 08 Sep, 2017 1 commit
    • Hui Su's avatar
      Encoder speedup: buffer TX RD search results · 1ddf2314
      Hui Su authored
      Encoder may do multiple rounds of transform RD search on the same
      residue signals. Save the RD search results so that encoder can
      fetch the results and terminate early if the residue signals have
      been seen before.
      
      The hash functions are ported from the hash_me experiment.
      
      Test results show the encoder speed is increased by 10% on
      average (ranging from 0 to 30%) with all default experiments on.
      
      Change-Id: I47dd63549f67cb43d3d700f6a76ce0992b1ccd0d
      1ddf2314
  6. 10 Aug, 2017 2 commits
    • Urvang Joshi's avatar
      Remove PALETTE flag · c6300aa1
      Urvang Joshi authored
      This experiment is now adopted as it was cleared by Tapas.
      
      Note: Palette use can still be controlled by command-line option
      "--tune-content=..." in 'aomenc'.
      
      Change-Id: I832f49f20f60c34bdef5b424755849c496687e87
      c6300aa1
    • Alex Converse's avatar
      palette: Templatize k_means routines · 15aa8c01
      Alex Converse authored
      Drops k_means from 15% of profile to 4.2%.
      
      BUG=aomedia:670
      
      Change-Id: I9c60f024abde9112eec8c32ead482f885ed6e57a
      15aa8c01
  7. 08 Aug, 2017 2 commits
  8. 28 Jun, 2017 1 commit
  9. 27 Jun, 2017 1 commit
    • Todd Nguyen's avatar
      Add experiment bgsprite · 302d0970
      Todd Nguyen authored
      Work in progress to generate ARF with stitched background image.
      
      Change-Id: I2fea75bbe5ac6f713f53eb5825776dadfc1d98c5
      302d0970
  10. 20 Jun, 2017 1 commit
    • Yi Luo's avatar
      Add high bit depth fast path quantizer avx2 · 6faf349a
      Yi Luo authored
      - User level encoder timer reduction ~4.3% with
        following testing: 1080p, 10-bit, 4Mbps, 4 frames,
        profile=2, i7-6700.
      
      Change-Id: Ib4a579d10cbd705cb7b1c4f0d619159a76bb34d7
      6faf349a
  11. 13 Jun, 2017 1 commit
    • Yi Luo's avatar
      Add fast path quantizer AVX2 · 2d44b697
      Yi Luo authored
      - Function level improves 36% against sse2.
      - Encoder speeds up 2.6% at user level on i7-6700.
      
      Change-Id: I9e43ce60b1e0de8f532249e5c035851463d75dbb
      2d44b697
  12. 30 May, 2017 1 commit
  13. 11 May, 2017 1 commit
    • David Barker's avatar
      Vectorize corner matching function · ee674323
      David Barker authored
      Add an SSE4 version of compute_cross_correlation() from
      corner_match.c. This function is about 3.4x the speed of
      the scalar code; determine_correspondence as a whole is about
      2.5-3x the speed it was previously.
      
      BUG=aomedia:487
      
      Change-Id: I707b7cfd5c513c025d3ee7fb6a5f1fa335ecd495
      ee674323
  14. 05 May, 2017 1 commit
    • Debargha Mukherjee's avatar
      Redo / refactor affine and rot-zoom least squares · 7ae7aeaf
      Debargha Mukherjee authored
      Use a simpler least-squares function for affine and rotzoom
      model estimation, instead of computing the pseudo inverse.
      Also refactors the code into a separate mathutils.h file.
      
      The SVD code is currently used only for estimation of the
      homography models which can be removed when we remove the
      homography models.
      
      Coding efficiency change is in noise range, with the small
      difference coming from numerical precision issues.
      
      Change-Id: I0a9eb79495911cea21a7945b397d596e22a2a186
      7ae7aeaf
  15. 12 Apr, 2017 1 commit
  16. 10 Apr, 2017 1 commit
    • Fergus Simpson's avatar
      frame-superres: Move resize from encoder to common · d0565006
      Fergus Simpson authored
      The resizing functions in resize.h and resize.c are useful for the
      frame super-res experiment. These functions will be needed in both the
      encoder and decoder, so the files have been moved into av1/common.
      
      Change-Id: I66154b7ec0eade0df460c4f4cf8eaa5f663c8904
      d0565006
  17. 23 Mar, 2017 1 commit
    • Jean-Marc Valin's avatar
      Do real chroma RDO search for CDEF · e9f77424
      Jean-Marc Valin authored
      Chroma now has a list of strenghts too, with the superblock signalling
      shared between luma and chroma.
      
      low-latency, cpu=4:
      
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |   SSIM | MS SSIM | CIEDE 2000
      -0.0114 | -1.4626 | -1.4745 |  -0.0423 | 0.0430 | -0.0001 |    -0.7416
      
      Change-Id: I389c77f1d80020f810e45f8502c656ad9d397c8c
      e9f77424
  18. 17 Mar, 2017 1 commit
    • Steinar Midtskogen's avatar
      Merge dering/clpf rdo and filtering · a9d41e88
      Steinar Midtskogen authored
      * Dering and clpf were merged into a single pass.
      * 32x32 and 128x128 filter block sizes for clpf were removed.
      * RDO for dering and clpf merged and improved:
        - "0" no longer required to be in the strength selection
        - Dering strength can now be 0, 1 or 2 bits per block
      
                    LL    HL
      PSNR:       -0.04 -0.01
      PSNR HVS:   -0.27 -0.18
      SSIM:       -0.15 +0.01
      CIEDE 2000: -0.11 -0.03
      APSNR:      -0.03 -0.00
      MS SSIM:    -0.18 -0.11
      
      Change-Id: I9f002a16ad218eab6007f90f1f176232443495f0
      a9d41e88
  19. 01 Mar, 2017 1 commit
  20. 24 Feb, 2017 1 commit
  21. 18 Feb, 2017 1 commit
  22. 17 Feb, 2017 1 commit
    • Rostislav Pehlivanov's avatar
      Implement a new rate control system · 002e7b7a
      Rostislav Pehlivanov authored
      This commit implements a new rate control system which was ported from
      Daala's rate control system (which was based off of Theora's rate
      control system) to the encoder. Its aim is to address the weaknesses of
      the current rate control system and eventually serve as its replacement.
      
      This is still work in progress. So far this commit only implements
      support for single pass encoding for constant quality and bitrate
      targeting.
      Additional commits which implement two-pass support and the rest to
      match the feature set of the current rate control system are coming
      soon.
      
      The rate control system hasn't been fully tuned (and will likely need
      additional tuning as the encoder's development progresses) and does
      contain some "hacks", to convert the quality to a quantizer value
      (empirical) and to tweak the quantizer in between golden frames (which
      uses some code from the current rate control system as well as code
      which attempts to model what that code does), the latter of which is
      only in the constant quality codepath.
      
      Bitrate targeting works much better than the current rate control
      system's targeting and will actually closely match the rate specified by
      the user without the current rate control system's bursty behaviour.
      
      Change-Id: I588fbfd2e80a3d21ce7176903115d6a96ef1700a
      002e7b7a
  23. 13 Feb, 2017 1 commit
  24. 12 Jan, 2017 1 commit
  25. 25 Nov, 2016 1 commit
  26. 07 Nov, 2016 1 commit
    • Yushin Cho's avatar
      New experiment: Perceptual Vector Quantization from Daala · 77bba8d3
      Yushin Cho authored
      PVQ replaces the scalar quantizer and coefficient coding with a new
      design originally developed in Daala. It currently depends on the
      Daala entropy coder although it could be adapted to work with another
      entropy coder if needed:
      ./configure --enable-experimental --enable-daala_ec --enable-pvq
      
      The version of PVQ in this commit is adapted from the following
      revision of Daala:
      https://github.com/xiph/daala/commit/fb51c1ade6a31b668a0157d89de8f0a4493162a8
      
      More information about PVQ:
      - https://people.xiph.org/~jm/daala/pvq_demo/
      - https://jmvalin.ca/papers/spie_pvq.pdf
      
      The following files are copied as-is from Daala with minimal
      adaptations, therefore we disable clang-format on those files
      to make it easier to synchronize the AV1 and Daala codebases in the future:
       av1/common/generic_code.c
       av1/common/generic_code.h
       av1/common/laplace_tables.c
       av1/common/partition.c
       av1/common/partition.h
       av1/common/pvq.c
       av1/common/pvq.h
       av1/common/state.c
       av1/common/state.h
       av1/common/zigzag.h
       av1/common/zigzag16.c
       av1/common/zigzag32.c
       av1/common/zigzag4.c
       av1/common/zigzag64.c
       av1/common/zigzag8.c
       av1/decoder/decint.h
       av1/decoder/generic_decoder.c
       av1/decoder/laplace_decoder.c
       av1/decoder/pvq_decoder.c
       av1/decoder/pvq_decoder.h
       av1/encoder/daala_compat_enc.c
       av1/encoder/encint.h
       av1/encoder/generic_encoder.c
       av1/encoder/laplace_encoder.c
       av1/encoder/pvq_encoder.c
       av1/encoder/pvq_encoder.h
      
      Known issues:
      - Lossless mode is not supported, '--lossless=1' will give the same result as
      '--end-usage=q --cq-level=1'.
      - High bit depth is not supported by PVQ.
      
      Change-Id: I1ae0d6517b87f4c1ccea944b2e12dc906979f25e
      77bba8d3
  27. 04 Nov, 2016 1 commit
    • Yushin Cho's avatar
      New experiment: Perceptual Vector Quantization from Daala · 09705fe7
      Yushin Cho authored
      PVQ replaces the scalar quantizer and coefficient coding with a new
      design originally developed in Daala. It currently depends on the
      Daala entropy coder although it could be adapted to work with another
      entropy coder if needed:
      ./configure --enable-experimental --enable-daala_ec --enable-pvq
      
      The version of PVQ in this commit is adapted from the following
      revision of Daala:
      https://github.com/xiph/daala/commit/fb51c1ade6a31b668a0157d89de8f0a4493162a8
      
      More information about PVQ:
      - https://people.xiph.org/~jm/daala/pvq_demo/
      - https://jmvalin.ca/papers/spie_pvq.pdf
      
      The following files are copied as-is from Daala with minimal
      adaptations, therefore we disable clang-format on those files
      to make it easier to synchronize the AV1 and Daala codebases in the future:
       av1/common/generic_code.c
       av1/common/generic_code.h
       av1/common/laplace_tables.c
       av1/common/partition.c
       av1/common/partition.h
       av1/common/pvq.c
       av1/common/pvq.h
       av1/common/state.c
       av1/common/state.h
       av1/common/zigzag.h
       av1/common/zigzag16.c
       av1/common/zigzag32.c
       av1/common/zigzag4.c
       av1/common/zigzag64.c
       av1/common/zigzag8.c
       av1/decoder/decint.h
       av1/decoder/generic_decoder.c
       av1/decoder/laplace_decoder.c
       av1/decoder/pvq_decoder.c
       av1/decoder/pvq_decoder.h
       av1/encoder/daala_compat_enc.c
       av1/encoder/encint.h
       av1/encoder/generic_encoder.c
       av1/encoder/laplace_encoder.c
       av1/encoder/pvq_encoder.c
       av1/encoder/pvq_encoder.h
      
      Known issues:
      - Lossless mode is not supported, '--lossless=1' will give the same result as
      '--end-usage=q --cq-level=1'.
      - High bit depth is not supported by PVQ.
      
      Change-Id: I1ae0d6517b87f4c1ccea944b2e12dc906979f25e
      09705fe7
  28. 14 Oct, 2016 1 commit
    • Urvang Joshi's avatar
      Wrap palette code inside CONFIG_PALETTE flag. · b100db7c
      Urvang Joshi authored
      This flag was already added to aomedia/master, so bringing it back to
      webm/nextgenv2, as part of an effort to get the two codebases in sync.
      
      Change-Id: I2b933a6a160e4210d1411a9e7978149eb8553205
      b100db7c
  29. 10 Oct, 2016 2 commits
  30. 06 Oct, 2016 2 commits
  31. 26 Sep, 2016 1 commit
  32. 19 Sep, 2016 1 commit
    • Alex Converse's avatar
      Move ANS to aom_dsp. · 1ac1ae73
      Alex Converse authored
      That's where it lives in aom/master.
      
      Change-Id: I38f405827d9c2d0b06ef5f3bfd7cadc35d5991ef
      1ac1ae73
  33. 02 Sep, 2016 2 commits
  34. 01 Sep, 2016 1 commit