1. 06 Sep, 2017 1 commit
    • Yue Chen's avatar
      Update cdf and mode rate per superblock in RDO · a4245511
      Yue Chen authored
      Update cdf after each superblock being finalized, and re-compute
      symbol costs. Affected symbols include prediction parameters and
      tx type.
      BDRate: -0.119% lowres, -0.092% midres
      
      Change-Id: I724900ac04f725910ed7055a18c2f6a139469b52
      a4245511
  2. 02 Sep, 2017 1 commit
  3. 30 Aug, 2017 1 commit
  4. 26 Aug, 2017 1 commit
  5. 24 Aug, 2017 1 commit
    • Yue Chen's avatar
      Update cdf and mode rate per superblock in RDO · b855b8e8
      Yue Chen authored
      Update cdf after each superblock being finalized, and re-compute
      symbol costs. Affected symbols include prediction parameters,
      tx type, and new motion vector.
      BDRate: -0.121% lowres, -0.089% midres
      
      Change-Id: I005ef382762d6e3423f933cca0a0b7b40288e8bf
      b855b8e8
  6. 23 Aug, 2017 1 commit
  7. 22 Aug, 2017 1 commit
  8. 17 Aug, 2017 1 commit
    • David Michael Barr's avatar
      [CFL] Move CFL cost table to struct macroblock · 38e560cc
      David Michael Barr authored
      Also, move body of update_cfl_costs() to av1_fill_mode_rates().
      
      Results on Subset1 (Compared to 1cfe474b with CFL enabled)
      
        PSNR | PSNR Cb | PSNR Cr | PSNR HVS |   SSIM | MS SSIM | CIEDE 2000
      0.0000 |  0.0000 |  0.0000 |   0.0000 | 0.0000 |  0.0000 |     0.0000
      
      No change in bitstream, for an average encode speed-up of 2.3%.
      
      Change-Id: I3948abcd70cfecad8086edfe4c45552b576ae06f
      38e560cc
  9. 10 Aug, 2017 2 commits
    • Jingning Han's avatar
      Refactor lv-map rate cost estimation · dfd72323
      Jingning Han authored
      Use the rate cost to replace the probability fetch. This improves
      the encoding speed of level map by 10%. No coding stats change.
      
      Change-Id: Iab0beac5da291eed50f657549667d4edffb4ead8
      dfd72323
    • 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
  10. 07 Aug, 2017 1 commit
    • Yue Chen's avatar
      Compute mode costs from cdf · ba47c842
      Yue Chen authored
      Previously, a lot of costs are computed from per-frame-updated
      probs, which cannot reflect the actual entropy models even if we
      just consider initial entropy models in cm->fc for each frame.
      For most symbols, cost update is still on per frame basis in this
      patch, unless cdf is updated in RDO.
      
      Performance change: -0.011 lowres
      
      Change-Id: Id2faf88c7638ffe2fa414bac5d0b05cb1f65459a
      ba47c842
  11. 04 Aug, 2017 1 commit
  12. 03 Aug, 2017 2 commits
    • hui su's avatar
      Calculate coeff token cost before encoding each SB · bd57abe0
      hui su authored
      Compression gain:
      AWCY
      PSNR	PSNR HVS	SSIM	CIEDE 2000
      -0.42	-0.15   	-0.38	-0.62
      
      Google testsets
      lowres -0.18%
      midres -0.32%
      
      No obvious encoding speed changes observed.
      
      Change-Id: I888cf4b22b591d79d80b2d77c9eb10d84e5de722
      bd57abe0
    • hui su's avatar
      Calculate coeff token cost from CDF · c0cf71df
      hui su authored
      AWCY results:
      PSNR	PSNR HVS  SSIM	CIEDE 2000
      -0.09	-0.04	  -0.02	  -0.03
      
      On Google testsets:
      lowres  -0.18%
      midres  -0.20%
      
      Above results are obtained with
      --disable-ext-refs --disable-dual-filter --disable-loop-restoration
      --disable-global-motion --disable-warped-motion
      
      Change-Id: Iba58d5e5ec9a65d0afba29609aa2e379a80d7236
      c0cf71df
  13. 02 Aug, 2017 1 commit
  14. 01 Aug, 2017 1 commit
    • Zoe Liu's avatar
      Add encoder support to ALTREF2 · e9b15e2b
      Zoe Liu authored
      This CL adds the use of ALTREF2_FRAME to both single / comp reference
      prediction at the encoder side. In particular, the encoder keeps the
      distant altref as ALTREF, and uses the internal extra altrefs to
      refresh ALTREF2.
      
      Compared with the baseline (ext_tx and global_motion disabled simply
      for speed concern):
      (a) lowres: avg_psnr -0.395% ovr_psnr -0.393% ssim -0.329%
      (b) midres: avg_psnr -0.419% ovr_psnr -0.431% ssim -0.444%
      (c) AWCY High Latency:
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.6661 | -0.5988 | -0.6669 |  -0.6993 | -0.6988 | -0.7303 | -0.6051
      (d) AWCY Low Latency:
        PSNR | PSNR Cb | PSNR Cr | PSNR HVS |   SSIM | MS SSIM | CIEDE 2000
      0.0720 | -0.0505 |  0.1501 |   0.0670 | 0.0842 |  0.0517 |     0.0158
      
      TODO list:
      (1) To have altref2 incorporated with ext-comp-refs;
      (2) To have altref2 fully work with new-multisymbol;
      (3) To re-collect the initial default probs/cdfs;
      (4) To tune the encoder gf group structure design for altref2.
      
      Change-Id: I6ad63fd65afa903d3bba20acdb68e3b67acf7fdf
      e9b15e2b
  15. 31 Jul, 2017 3 commits
    • Zoe Liu's avatar
      Fix build warnings when global_motion is off · bc030eea
      Zoe Liu authored
      Change-Id: I69f042e6da5a4b5e4a18853c5f15532dfef0204a
      bc030eea
    • Yue Chen's avatar
      Move mode costs that can be updated inside a frame to MACROBLOCK · b23d00a0
      Yue Chen authored
      It is a refactoring patch, which aims to make the code ready for
      implementation of in-frame mode cost update in RDO.
      Also add mode cost update per sb row, but it won't affect coding
      results because cdf update in RDO is not there.
      Mode cost arrays are moved to MACROBLOCK because in multi-thread
      coding, threads share the same AV1_COMP.
      
      This patch does not have impact on coding results.
      
      Change-Id: I2e8f7d7d066b23ebfbfc998269023781f359a6ff
      b23d00a0
    • Yue Chen's avatar
      motion_var: computer motion_mode_cost from cdf · bdc8dab2
      Yue Chen authored
      Initialize mode cost using frame-level cdf.
      Also in rd selection stage, cdf is updated per 64x64.
      Performance gain 0.20%
      
      Still suboptimal since in real bitstream packing, cdf is updated
      per symbol. Per symbol update in RDO is work in progress.
      
      Change-Id: I5062af91d8b00e5bf4c08abd0a7bfb0e5b27a619
      bdc8dab2
  16. 28 Jul, 2017 1 commit
    • Luc Trudeau's avatar
      [CFL] New UV_PREDICTION_MODE for CFL · 6e1cd787
      Luc Trudeau authored
      CfL is now an independent mode.
      
      Results on Subset1 (Compared to 4266a7ed with CFL enabled)
      
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.1645 | -0.4017 |  0.2475 |  -0.1851 | -0.2179 | -0.2338 |    -0.2897
      
      Change-Id: I2e86e7ea7bfc12bb1d763e70a136ca992d57a3c5
      6e1cd787
  17. 26 Jul, 2017 2 commits
  18. 13 Jul, 2017 1 commit
    • Wei-Ting Lin's avatar
      ncobmc_adapt_weight: add motion mode cdf · 9bcff194
      Wei-Ting Lin authored
      Add a new default motion_mode_cdf supporting this
      experiment.
      Also define the costs for the ncobmc mode tokens.
      
      Change-Id: Iebab044e4a34e3d2a94c18893107d82055cc9c77
      9bcff194
  19. 12 Jul, 2017 2 commits
    • Rupert Swarbrick's avatar
      ext-partition-types: Add 4:1 partitions · 93c39e91
      Rupert Swarbrick authored
      This patch adds support for 4:1 rectangular blocks to various common
      data arrays, and adds new partition types to the EXT_PARTITION_TYPES
      experiment which will use them.
      
      This patch has the following restrictions, which can be lifted in
      future patches:
      
        * ext-partition-types is incompatible with fp_mb_stats and supertx
          for the moment
      
        * Currently only 32x32 superblocks can use the new partition types
      
      There's a slightly odd restriction about when we allow
      PARTITION_HORZ_4 or PARTITION_VERT_4. Since these both live in the
      EXT_PARTITION_TYPES CDF, read_partition() can only return them if both
      has_rows and has_cols is true. This means that at least half of the
      width and height of the block must be visible. It might be nice to
      relax that restriction but that would imply a change to how we encode
      partition types, which seems already to be in a state of flux, so
      maybe it's better to wait until that has settled down.
      
      Change-Id: Id7fc3fd0f762f35f63b3d3e3bf4e07c245c7b4fa
      93c39e91
    • Zoe Liu's avatar
      Further work on ext-comp-refs for ref frame coding · fcf5fa27
      Zoe Liu authored
      (1) Work with var-refs to remove redundant bits in ref frame
          coding;
      (2) Add a new uni-directional compound reference pair:
          (LAST_FRAME, LAST3_FRAME);
      (3) Redesign the contexts for encoding uni-directional reference frame
          pairs;
      (4) Use aom_entropy_optimizer to collect stats for all the default
          probability setups related to the coding of reference frames.
      
      Compared against the baseline (default enabled tools excluding ext-tx
      and global-motion for encoder speed concern) with one-sided-compound,
      the coding gain of ext-comp-refs + var-refs - one-sided-compound is:
      
      lowres: avg_psnr -0.385%; ovr_psnr -0.378% ssim -0.344%
      midres: avg_psnr -0.466%; ovr_psnr -0.447% ssim -0.513%
      
      AWCY - High Latency:
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.2758 | -0.1526 | -0.0965 |  -0.2581 | -0.2492 | -0.2534 |    -0.2118
      
      AWCY - Low Latency:
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -1.0467 | -1.4500 | -0.9732 |  -0.9928 | -1.0407 | -1.0180 |    -1.0049
      
      Compared against the baseline (default enabled tools excluding ext-tx
      and global-motion for encoder speed concern) without
      one-sided-compound, the coding gain of
      ext-comp-refs + var-refs - one-sided-compound is:
      
      lowres: avg_psnr -0.875%; ovr_psnr -0.877% ssim -0.895%
      midres: avg_psnr -0.824%; ovr_psnr -0.802% ssim -0.843%
      
      Change-Id: I8de774c9a74c20632ea93ccb0c17779fa94431cb
      fcf5fa27
  20. 11 Jul, 2017 1 commit
    • Nathan E. Egge's avatar
      Remove the EC_ADAPT experimental flags. · 6bdc40f1
      Nathan E. Egge authored
      Removing these flags make the EC_ADAPT experiment an integral part of
       the draft AV1 bitstream definition
      This commit has no effect on metrics.
      
      Change-Id: Ice78520935e8bfa9d25cf4b8384a1b872069d09c
      6bdc40f1
  21. 03 Jul, 2017 1 commit
    • Nathan E. Egge's avatar
      Use CDFs to compute all intra mode related costs. · 693eedd1
      Nathan E. Egge authored
      When EC_ADAPT is enabled, this patch uses the adapted CDF after
       encoding the entire frame to compute the non-adapted costs that are
       used in RDO decision making when coding the following frame.
      Future patches will update these costs periodically while coding the
       frame to keep them in sync with the actual rates used when coding the
       symbols with the adapted CDF.
      
      master@2017-06-30T01:10:29.197Z -> intra_cdfs@2017-06-30T01:09:41.171Z
      
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.0168 |  0.0031 | -0.0181 |  -0.0018 | -0.0022 | -0.0209 |    -0.0027
      
      Change-Id: Id9e284b429e4d2a31d418141af6935d7ece1180e
      693eedd1
  22. 21 Jun, 2017 1 commit
    • Timothy B. Terriberry's avatar
      cb4x4: Move sub-4X4 block sizes behind chroma flags. · 81ec2619
      Timothy B. Terriberry authored
      cb4x4 itself should not require these sizes.
      
      This simplifies compatibility with other experiments, since we can
      first make them work with cb4x4 (which is now on by default), and
      then worry about chroma_sub8x8 and chroma_2x2 (which is not) in
      separate steps.
      
      Encoder and decoder output should remain unchanged.
      
      Change-Id: Iff2a5494cab3b7d96f881e8bd9cd4bf18c817cfa
      81ec2619
  23. 19 Jun, 2017 1 commit
    • Zoe Liu's avatar
      Add new coding tool of ext-comp-refs · c082bbcb
      Zoe Liu authored
      The tool of ext-comp-refs adds the uni-directional compound reference
      prediction. In details, 3 pairs of uni-direcitonal compound references
      are added for the comp ref prediction:
      (LAST_FRAME, LAST2_FRAME),
      (LAST_FRAME, GOLDEN_FRAME), and
      (BWDREF_FRAME, ALTREF_FRAME).
      
      This new tool of ext-comp-refs will eventually overwrite
      one-side-compound and have the two coding tools to merge to one.
      
      It achieves -0.35 ~ -0.55% coding gains in BDRate, compared against
      AV1 baseline with the default experiments on, but without
      one-sided-compound. It achieves -0.2% ~ -0.3% coding gains when
      one-sided-compound is on. It achieves larger gains on higher
      resolution.
      
      Change-Id: Icbdb16e97b96aaebaf2213f5f72d5331e2e358eb
      c082bbcb
  24. 15 Jun, 2017 1 commit
    • Urvang Joshi's avatar
      Remove 'rddiv' member from various structs. · 70006e46
      Urvang Joshi authored
      This was initialized from a const and never modified. But was still
      passed around and stored in multiple structs.
      
      Removed these 'rddiv' member variables and now RDOPT() and RDOPT_DBL()
      always use the const RDDIV_BITS directly.
      
      Change-Id: I1a8dfd2c8fa857d466ad1207b4f0dd6ec07eafb8
      70006e46
  25. 14 Jun, 2017 1 commit
    • Thomas Davies's avatar
      GLOBAL_MOTION: simplify parameter coding. · b732c1ea
      Thomas Davies authored
      Remove deprecated tree coding for the global motion type.
      Encoding with literals costs at most 0.8 bit per frame or
      tile group for the identity type, and saves bits for other
      types.
      
      AWCY (objective-1-fast): PSNR +0.02%, PSNR-HVS/MSSSIM +0.03%.
      
      Change-Id: I421a39fd8f830b2e40d105ea3c3688099a2b6d15
      b732c1ea
  26. 13 Jun, 2017 1 commit
    • Zoe Liu's avatar
      Add encoder/decoder pipeline to support single ref comp modes · 85b66463
      Zoe Liu authored
      Now the single ref comp mode should work with WEDGE and
      COMPOUND_SEGMENT. For motion_var, the OBMC_CAUSAL mode uses the 2nd
      predictor if the neighboring block is single ref comp mode predicted.
      
      This patch removes the mode of SR_NEAREST_NEWMV and leaves four
      single ref comp modes in total:
      
      SR_NEAREST_NEARMV
      SR_NEAR_NEWMV
      SR_ZERO_NEWMV
      SR_NEW_NEWMV
      
      Change-Id: If6140455771f0f1a3b947766eccf82f23cc6b67a
      85b66463
  27. 08 Jun, 2017 1 commit
    • Angie Chiang's avatar
      Copy ctx in get_entropy_contexts_plane for lv_map · fb42c7fa
      Angie Chiang authored
      This will fix Assertion in get_txb_ctx() for invalid sign value
      
      After fixing this bug, we have around 0.2% gain on lowres.
      
      With cb4x4 on only, lv_map provides 1.538% gain on lowres.
      
      With cb4x4 + chroma_sub8x8, lv_map provides 1.468% gain on lowres.
      
      Change-Id: I06f996ec5af0d5e79e377a3dc8c012862fc4b9c7
      fb42c7fa
  28. 06 Jun, 2017 1 commit
    • Alex Converse's avatar
      intrabc: Fix mode and MV cost · d5d9b6ca
      Alex Converse authored
      objective-1-fast 1st KF: -0.07 BDRATE-PSNR
      twitch-1 1st KF: -0.04 BDRATE-PSNR
      
      Change-Id: I089900514c40f3b8b77708dac2c8bfbce2f540ff
      d5d9b6ca
  29. 05 Jun, 2017 1 commit
  30. 02 Jun, 2017 1 commit
  31. 01 Jun, 2017 1 commit
    • Timothy B. Terriberry's avatar
      cb4x4: Move sub-4X4 TX sizes behind CONFIG_CHROMA_2X2. · fe67ed6a
      Timothy B. Terriberry authored
      cb4x4 itself should not require these sizes.
      
      This simplifies compatibility with other experiments, since we can
      first make them work with cb4x4 (which is now on by default), and
      then worry about chroma_2x2 (which is not) in separate steps.
      
      Encoder and decoder output should remain unchanged.
      
      Change-Id: I4e9fcdae49f238b5099a3c74a398fe993c2545f8
      fe67ed6a
  32. 31 May, 2017 1 commit
  33. 30 May, 2017 1 commit
  34. 22 May, 2017 1 commit
    • Timothy B. Terriberry's avatar
      chroma_sub8x8: Fix av1_get_entropy_contexts() · 32b8d46f
      Timothy B. Terriberry authored
      This was not clamping the chroma block size to at least 4x4, even
      though it is getting contexts for coding the transform residual
      (which is at least 4x4). Thus it would copy too few contexts.
      
      This is an encoder-only change. It should not change the current
      encoder output, because we currently store twice as many entropy
      contexts as actually required, so we'll copy 1 and then check 2 to
      see if either are non-zero. However, this will break when we
      eliminate the context doubling, as instead we'll copy 0 and check
      1.
      
      Change-Id: I4087529d6b3e7cd5a226746625b90494790983e6
      32b8d46f