1. 23 Feb, 2017 1 commit
  2. 22 Feb, 2017 1 commit
    • Jingning Han's avatar
      Skip 2x2 uv block in the rd search loop · 8efdbc8b
      Jingning Han authored
      Skip the 2x2 uv block rate-distortion optimization process in the
      non-reference positions in key frame encoding.
      
      Change-Id: I51112492fd79f9a1c205fba151f8658cea9ee85f
      8efdbc8b
  3. 14 Feb, 2017 1 commit
    • James Zern's avatar
      av1/encoder/block.h: s/inline/INLINE/ · d90eefeb
      James Zern authored
      vs2013 is still supported, it still uses the old behavior which supports
      inline in c++ only.
      
      Change-Id: I74417c6c93774e55122bbbf1db0283e2c30fe63e
      d90eefeb
  4. 23 Jan, 2017 1 commit
    • Yushin Cho's avatar
      Add a new experiment, DAALA_DIST · 7a428ba2
      Yushin Cho authored
      This commit adds a new experiment, Daala's distortion function,
      which is designed to better approximate perceptual distortion
      in 8x8 pixel blocks.
      
      This experiment is expected to work best with PVQ.
      
      It measures the variance of overlapped 4x4 regions in the 8x8 area,
      then uses these variances to scale the MSE of weighted frequency domain
      distortion of 8x8 block.
      
      Since AV1 calculates distortion in blocks as small as 4x4, it is not possible to
      directly replace the existing distortion functions of AV1,
      such as dist_block() and block_rd_txf().
      Hence, there has been substantial changes in order to apply
      Daala's 8x8 distortion function.
      The daala distortion function is applied
      after all 4x4 tx blocks in a 8x8 block are encoded (during RDO),
      as in below two cases:
      1) intra/inter sub8x8 predictions and
      2) 4x4 transform with prediction size >= 8.
      
      To enable this experiment, add '--enable-daala-dist' with configure.
      
      TODO: Significant tuning of parameters is required since the function has
      originally came from Daala thus most parameters would not work
      correctly outside Daala.
      The fact that chroma distortion is added to the distortion of AV1's RDO is
      also critical since Daala's distortion function is applied to luma only
      and chroma continues to use MSE.
      
      Change-Id: If35fdd3aec7efe401f351ba1c99891ad57a3d957
      7a428ba2
  5. 18 Jan, 2017 1 commit
    • Urvang Joshi's avatar
      Enable rectangular transforms for Intra also. · feb925fe
      Urvang Joshi authored
      These are under EXT_TX + RECT_TX experiment combo.
      
      Results
      =======
      
      Derf Set:
      --------
      All Intra frames: 1.8% avg improvement (and 1.78% BD-rate improvement)
      Video: 0.230% avg improvement (and 0.262% BD-rate improvement)
      
      Objective-1-fast set
      --------------------
      Video: 0.52 PSNR improvement
      
      Change-Id: I1893465929858e38419f327752dc61c19b96b997
      feb925fe
  6. 06 Jan, 2017 1 commit
  7. 04 Jan, 2017 1 commit
  8. 07 Dec, 2016 1 commit
  9. 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
  10. 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
  11. 25 Oct, 2016 2 commits
  12. 24 Oct, 2016 1 commit
    • David Barker's avatar
      Fix a bug when combining new-quant + supertx · d7d78c83
      David Barker authored
      Previously, we assumed that av1_init_plane_quantizers is always called with
      segment_id == xd->mi[0]->mbmi.segment_id (and use the latter to derive the value
      of 'qindex' to use in the quantizer). But this is no longer true when supertx
      is enabled. This patch instead remembers the value of 'qindex' derived from
      the latest call to av1_init_plane_quantizers and uses that directly.
      
      Change-Id: Ifa1c5bf74cad29942ff79b88ca92c231bc07f336
      d7d78c83
  13. 21 Oct, 2016 1 commit
    • Jingning Han's avatar
      Allow frame level tx_mode switch · 9777afc3
      Jingning Han authored
      Check the encoding statistics. If all the coding blocks use the
      max transform size, skip transform size coding in the frame header.
      
      Change-Id: I31cb16314e87f945d7e95a34a90a5536b3ed82d5
      9777afc3
  14. 19 Oct, 2016 1 commit
  15. 18 Oct, 2016 1 commit
  16. 17 Oct, 2016 1 commit
    • Yue Chen's avatar
      Refactor motion estimation in MOTION_VAR experiment · e9638ccf
      Yue Chen authored
      To get ready for pulling AV1 to nextgenv2. Refactoring is done to
      make the code structures similar, especially for the motion search
      part.
      
      Change-Id: I5d7636394408d97de55394d668540f5627827983
      e9638ccf
  17. 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
  18. 12 Oct, 2016 1 commit
    • Yaowu Xu's avatar
      LIBVPX_TEST_DATA_PATH -> LIBAOM_TEST_DATA_PATH · 97aa09f6
      Yaowu Xu authored
      This commit renames LIBVPX_TEST_DATA_PATH to LIBAOM_TEST_DATA_PATH,
      with a work around for working with jenkins environmnet variables.
      
      Change-Id: If664ce57e25ad2af8121d1b578bf64043f0baa2a
      97aa09f6
  19. 11 Oct, 2016 1 commit
  20. 03 Oct, 2016 1 commit
  21. 23 Sep, 2016 1 commit
  22. 02 Sep, 2016 1 commit
  23. 01 Sep, 2016 2 commits
  24. 16 Aug, 2016 1 commit
  25. 12 Aug, 2016 1 commit
  26. 09 Aug, 2016 1 commit
    • Urvang Joshi's avatar
      Palette code cleanup: · d0000208
      Urvang Joshi authored
      - Avoid some memcpy()s
      - Remove indices array
      - Make pre_indices array local
      - Avoid rounding twice
      - Other small simplifications
      
      Change-Id: Iac3236daaad04f21f54054cdd9504de13b942a07
      d0000208
  27. 04 Aug, 2016 1 commit
    • Zoe Liu's avatar
      Code refactoring on Macros related to ref frame numbers · 1af28f02
      Zoe Liu authored
      We have renamed following Macros to avoid name confusion:
      
      REFS_PER_FRAME --> INTER_REFS_PER_FRAME
      (= ALTREF_FRAME - LAST_FRAME + 1)
      MAX_REF_FRAMES --> TOTAL_REFS_PER_FRAME
      (= ALTREF_FRAME - INTRA_FRAME + 1)
      
      INTER_REFS_PER_FRAME specifies the maximum number of reference frames
      that each Inter frame may use.
      TOTAL_REFS_PER_FRAME is equal to INTER_REFS_PER_FRAME + 1, which
      counts the INTRA_FRAME.
      
      Further, at the encoder side, since REF_FRAMES specifies the maximum
      number of the reference frames that the encoder may store, REF_FRAMES
      is usually larger than INTER_REFS_PER_FRAME. For example, in the
      ext-refs experiment, REF_FRAMES == 8, which allows the encoder to
      store maximum 8 reference frames in the buffer, but
      INTER_REFS_PER_FRAME equals to 6, which allows each Inter frame may
      use up to 6 frames out of the 8 buffered frames as its references.
      Hence, in order to explore the possibility to store more reference
      frames in future patches, we modified a couple of array sizes to
      accomodate the case that the number of buffered reference frames is
      not always equal to the number of the references that are being used
      by each Inter frame.
      
      Change-Id: I19e42ef608946cc76ebfd3e965a05f4b9b93a0b3
      1af28f02
  28. 18 Jul, 2016 1 commit
    • hui su's avatar
      Extra round of subpel MV search around second best full-pixel MV · 9a470241
      hui su authored
      Keep track of the best and second best full pixel motion vector
      candidates, and do subpel search around both of them.
      
      Compression improvement:
      lowres 0.22%   midres 0.23%   hdres 0.18%
      
      No noticeable encoding speed changes observed on lowres test clips.
      
      Change-Id: I5f4df2a03d1db061cfdfdba6138b27e9ea91f089
      9a470241
  29. 14 Jul, 2016 1 commit
  30. 13 Jul, 2016 1 commit
    • hui su's avatar
      Refactor codes about motion search · 581636d7
      hui su authored
      1. Add "best_mv" in MACROBLOCK to store the best motion vector
      during motion search, so that we don't need to pass its pointer
      to various motion search functions.
      
      2. Declare some functions as static when possible.
      
      3. Fix some indents.
      
      Change-Id: I0778146c0866cbc55e245988c59222577ea8260e
      581636d7
  31. 29 Jun, 2016 1 commit
  32. 28 Jun, 2016 1 commit
    • Geza Lore's avatar
      Remove skip_txfm optimization. · 92922be8
      Geza Lore authored
      Commit 0d6980d7 removed some use
      of the skip_txfm optimization, and the rest are not productive.
      
      The current use of this optimization is only used with --good
      and --cpu-used >= 3, however the overhead of this is higher than the
      speedup it yields.
      
      Removing this, and subsequently simplifying model_rd_for_sb yields
      a net encoder speedup:
      --cpu-used=0    ~1.5% faster
      --cpu-used=3    ~2.0% faster
      
      The code simplification is also significant.
      
      Change-Id: I1dd668c32de15a2e912c59c42379d0f9e1032ff8
      92922be8
  33. 24 Jun, 2016 1 commit
  34. 22 Jun, 2016 1 commit
  35. 14 Jun, 2016 1 commit
  36. 10 Jun, 2016 1 commit
    • Sarah Parker's avatar
      Move new quant experiment from nextgen · a21afd42
      Sarah Parker authored
      This experiment implements non-uniform quantization where
      the width of the bins increases gradually to more closely
      match a laplacian distribution of the coeficcients.
      
      Performance Gain:
      derflr: 0.15%
      hevcmr: 0.675%
      
      Change-Id: I25234244e3bcd94b87c1f77cf682190b61c8ef94
      a21afd42
  37. 08 Jun, 2016 1 commit
    • Jingning Han's avatar
      Take out skip_recode speed feature · 025fa11c
      Jingning Han authored
      The assumption doesn't hold true in the current codebase. Remove
      this speed feature to simplify the codebase.
      
      Change-Id: I9b69f484c9b7cd612b825047cc5b2fce63ee0af7
      025fa11c
  38. 31 May, 2016 1 commit
    • hui su's avatar
      Add a speed feature for inter tx type search · f523d7b5
      hui su authored
      Seperate prediction mode and tx type search for inter
      modes. Enabled for speed >=1.
      
      baseline:
      speed increase     40%
      compression drop   0.30%/0.29% on lowres/midres
      
      ext-tx:
      speed increase    160%
      compression drop  1.08%/0.95% on lowres/midres
      
      Change-Id: Ieb34b1ee80df6980d16e26a5783e08cc0deae55b
      f523d7b5