1. 11 Oct, 2017 1 commit
  2. 10 Oct, 2017 2 commits
    • Cheng Chen's avatar
      Loop filtering after each superblock · 5ad5b289
      Cheng Chen authored
      The patch is to enable loop filtering for intra block copy.
      
      Apply loop filtering right after each superblock is encoded.
      Use a constant filter level for now. In future updates, the filter
      level should be optimized by LPF_SB and better guess value.
      
      Change-Id: I0a5797b5ba5384c00044a8ec4a495dc75aa0f3fe
      5ad5b289
    • Lester Lu's avatar
      lgt-from-pred: transforms based on prediction · 432012f6
      Lester Lu authored
      In this experiment, sharp image discontinuity in the predicted
      block is detected. Based on this discontinuity, we choose
      particular LGTs as row and column transforms.
      
      Bitstream syntax, entropy coding, and RD search for LGT are added.
      One binary symbol is used to signal whether LGT is used. This
      experiment can work independently with the lgt experiment.
      
      lowres: -0.414% for key frames, -0.151% overall
      midres: -0.413% for key frames, -0.161% overall
      
      Change-Id: Iaa2f2c2839c34ca4134fa55e77870dc3f1fa879f
      432012f6
  3. 09 Oct, 2017 1 commit
  4. 08 Oct, 2017 1 commit
  5. 07 Oct, 2017 1 commit
    • Urvang Joshi's avatar
      FRAME_SUPERRES: Rework to use scale factor of 8/D · de71d142
      Urvang Joshi authored
      Earlier, the superres scale was in the form of:
      N/16, where N ranged from 8 to 16.
      
      We change this to the form:
      8/D, where D ranges from 8 to 16.
      
      This helps on the decoder side, by making it possible to work on 8x8
      blocks at a time.
      
      Change-Id: I6c72d4b3e8d1c830e61d4bb8d7f6337a100c3064
      de71d142
  6. 04 Oct, 2017 2 commits
    • Urvang Joshi's avatar
      Enums: Remove unnecessary assigned values. · d0bf7d0e
      Urvang Joshi authored
      Enums starts from 0 and are incremented by 1 by default. No need to do
      this explicitly.
      
      Change-Id: I3aea5a6b9a39e76f7912f865406c44586072caea
      d0bf7d0e
    • Cheng Chen's avatar
      LOOPFILTER_LEVEL: add flexibility for EXT_DELTA_Q · 880166ab
      Cheng Chen authored
      When experiment LOOPFILTER_LEVEL is on, there're four base filter levels
      for each frame. This patch enables one to use one delta or four deltas
      to update corresponding filter levels for each superblock in
      EXT_DELTA_Q.
      
      1 bit per frame is sent through bitstream to select one or four deltas.
      Now, we hard code to use one delta.
      
      Change-Id: I9c61a035064fa81878b0575ad21664e2b22a6a45
      880166ab
  7. 03 Oct, 2017 1 commit
    • Cheng Chen's avatar
      Make LOOPFILTER_LEVEL support EXT_DELTA_Q · a97394f7
      Cheng Chen authored
      Before LOOPFILTER_LEVEL, there's one filter level,
      now we have four filter levels for y plane vertical,
      y plane horizontal, u plane and v plane.
      
      This patch enables experiment LOOPFILTER_LEVEL to support per
      superblock loop filter level update.
      
      Change-Id: Ib11a1564471eb3076c26e73e5cdf7b5a3045ef97
      a97394f7
  8. 02 Oct, 2017 1 commit
  9. 01 Oct, 2017 1 commit
  10. 29 Sep, 2017 2 commits
  11. 28 Sep, 2017 2 commits
  12. 27 Sep, 2017 1 commit
    • Cheng Chen's avatar
      LPF_SB: add filter step and tune threshold · f89ca3e1
      Cheng Chen authored
      Set filter step = 2, such that 3 bit can represent [-14, +14] filter
      level difference.
      
      Tune threshold for reusing filter level between previous and current
      superblock.
      
      Change-Id: I6f26377591f3e93f7c068e4aa4279ae9bc2c9522
      f89ca3e1
  13. 26 Sep, 2017 1 commit
    • Cheng Chen's avatar
      Reorgnize loop filter range for superblock · 5589d71c
      Cheng Chen authored
      For each superblock, its filtering range is shifted up and left by
      8 pixels (half of the maximum loop filter length), such that
      estimation of deblocking filtering will not cross two superblocks.
      
      Change-Id: I82244b7c26ab8b2ac553037b3bb1fe1d82bf5704
      5589d71c
  14. 23 Sep, 2017 1 commit
    • Cheng Chen's avatar
      Signal delta loop filter level between superblocks · a4b27de4
      Cheng Chen authored
      For the first superblock, signal a filter level (6 bit).
      For other superblocks, signal the delta (3 bit) and sign (1 bit).
      To guarantee the delta can be represented by 3 bits, the search
      range of current superblock filter level is capped as
      curr_lvl = prev_lvl +- ((1 << 3) - 1)
      
      Change-Id: Ibbe2941aa96ec1220ed2adb7edf3d29cb032f0ec
      a4b27de4
  15. 22 Sep, 2017 1 commit
    • Hui Su's avatar
      Refactor the ext-tx experiment · ddbcde28
      Hui Su authored
      Use common structure for inter and intra tx type information when
      possible.
      
      Change-Id: I1fd3bc86033871ffbcc2b496a31dca00b7d64b31
      ddbcde28
  16. 20 Sep, 2017 2 commits
  17. 19 Sep, 2017 1 commit
    • Luc Trudeau's avatar
      [CFL] Use MAX_NUM_TXB_SQUARE instead of MAX_NUM_TXB · f1cf7178
      Luc Trudeau authored
      MAX_NUM_TXB represents the maximum number of transform blocks in 1
      dimension. CfL requires the maximum number of transform blocks in 2
      dimensions. As such, we now use MAX_NUM_TXB_SQUARE instead of the
      erroneous MAX_NUM_TXB for the average buffer.
      
      There's an assert guarding for overrun on the average buffer.
      This fix stops assertions on 4:4:4 sequences. This patch does
      not alter AWCY results as AWCY only covers 4:2:0 sequences (for
      which MAX_NUM_TXB turns out to be sufficient). 
      
      Change-Id: I628db0131f60abc2d06cbbe3fe3dc40e28894ce3
      f1cf7178
  18. 13 Sep, 2017 1 commit
    • Rupert Swarbrick's avatar
      Simplify get_partition() implementation · 136d5c17
      Rupert Swarbrick authored
      This function is given a bsize and an mi array and has to figure out
      what partition to use to divide the given bsize in the direction of
      the sizes it finds in the mi array. (Since each block size can be
      reached by only one sequence of partitions, this can be done
      unambiguously)
      
      The previous version was correct, working by looking up entries in the
      partition_lookup array. Unfortunately, that lookup isn't quite enough
      when CONFIG_EXT_PARTITION_TYPES is true, so it then had to do some
      slightly confusing computations to fix things up after the fact.
      
      The new version should be more self-explanatory and doesn't work by
      looking things up in a magic array. It looks up the width and height
      corresponding to bsize and compares them with the width and height
      corresponding to the sb_type at mi_row,mi_col in the mi array. When
      CONFIG_EXT_PARTITION_TYPES is false, this is all you need, and the
      four corresponding cases can be found by a lookup in an array of 4
      elements.
      
      With extended partition types and a sufficiently large block, you have
      to do a bit more searching. For example, if bsize is BLOCK_16X16 and
      the subsize is BLOCK_8X8, the partition might be PARTITION_SPLIT, but
      it might be one of PARTITION_HORZ_A or PARTITION_VERT_A instead. The
      new code adds some comments to explain what's going on.
      
      A nice side-effect of rewriting get_partition in this way is that it
      lets us completely dispense with the partition_lookup array.
      
      The patch also fixes comments for the A/B extended partitions in
      enums.h, which were slightly backwards (a "horizontal split means two
      blocks vertically above one another)
      
      Change-Id: I4b48189103aa63e1859f25a15d7690d53ca7baf5
      136d5c17
  19. 07 Sep, 2017 1 commit
  20. 06 Sep, 2017 3 commits
  21. 02 Sep, 2017 1 commit
  22. 22 Aug, 2017 1 commit
    • Sarah Parker's avatar
      Refactor palette functions to write a general color map · 0cf4d9f1
      Sarah Parker authored
      This will allow the mrc-tx experiment to pass in its own color map
      and set of probabilities to the tokenize and bit packing functions.
      The corresponding change on the decoder side will come in a followup
      shortly.
      
      No change in performance.
      
      Change-Id: I1872b7f1b1cf5b102e6289388ce1ae449e67cb4d
      0cf4d9f1
  23. 18 Aug, 2017 1 commit
  24. 15 Aug, 2017 1 commit
    • Urvang Joshi's avatar
      Remove ALT_INTRA flag. · 93b543ab
      Urvang Joshi authored
      This experiment has been adopted as it has been cleared by Tapas.
      
      Change-Id: I0682face60f62dd43091efa0a92d09d846396850
      93b543ab
  25. 10 Aug, 2017 1 commit
    • 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
  26. 08 Aug, 2017 1 commit
  27. 04 Aug, 2017 1 commit
  28. 29 Jul, 2017 1 commit
    • David Michael Barr's avatar
      [CFL] Uniform Q3 alpha grid with extent [-2, 2] · f6eaa159
      David Michael Barr authored
      Expand the range of alpha to [-2, 2] in Q3.
      Jointly signal the signs, including zeros.
      Use the signs to give context for each quadrant
      and half-axis. The (0, 0) point is excluded.
      Symmetry in alpha_u == alpha_v yields 6 contexts.
      
      Results on Subset1 (Compared to 9136ab7d with CFL enabled)
      
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.0792 | -0.7535 | -0.7574 |  -0.0639 | -0.0843 | -0.0665 |    -0.3324
      
      Change-Id: I250369692e92a91d9c8d174a203d441217d15063
      Signed-off-by: default avatarDavid Michael Barr <b@rr-dav.id.au>
      f6eaa159
  29. 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
  30. 27 Jul, 2017 1 commit
    • Cheng Chen's avatar
      Make CDEF work with EXT_PARTITION · f5bdeac2
      Cheng Chen authored
      Make CDEF select filter strength every 64x64 block when block size
      could be larger than 64x64.
      
      With/without this patch, coding performances on AWCY and Google
      test of lowres and midres are neutral.
      
      BUG=aomedia:662
      
      Change-Id: Ief82cc51be91fc08a7c6d7e87f6d13bcc4336476
      f5bdeac2
  31. 26 Jul, 2017 1 commit
    • Luc Trudeau's avatar
      [CFL] UV_PREDICTION_MODE · d6d9eeeb
      Luc Trudeau authored
      A separate prediction mode struct is added to allow
      for uv-only modes (like CfL). Note: CfL will be
      added as a separate mode in an upcoming commit.
      
      Results on Subset1 (Compared to 4266a7ed 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
      
      Change-Id: Ie80711c641c97f745daac899eadce6201ed97fcc
      d6d9eeeb
  32. 20 Jul, 2017 2 commits
    • Zoe Liu's avatar
      Add support to the experiment of altref2 · 97ad058e
      Zoe Liu authored
      This CL adds an extra alt-ref reference frame, namely ALTREF2_FRAME,
      and designs the contexts for ALTREF2_FRAME.
      
      Change-Id: I12fe8629b868aebf6c2b54260fca5abc38f90ae6
      97ad058e
    • Cheng Chen's avatar
      Directional deblocking filter · 9050c9da
      Cheng Chen authored
      New deblocking filter that smooths block boundaries in an estimated
      direction of object orientation.
      
      1. Select the proper direction for deblocking filtering.
      Compute abs gradient line by line for the block.
      Select the direction with least sum of abs gradient.
      
      2. Apply deblocking filtering for a block along this direction.
      Apply directional filtering for Y, U, V planes.
      
      Coding gain on Google test set:
      
      %	  	avg_psnr   ovr_psnr  ssim
      lowres  	-0.129 	  -0.136    -0.277
      midres  	-0.103    -0.127    -0.188
      hdres	  	-0.159    -0.158    -0.173
      screen_content  -0.408    -0.397    -0.695
      
      Change-Id: Ie8646dcc163ace5d8faf5e502b38342d885efc30
      9050c9da