1. 07 Dec, 2017 2 commits
  2. 05 Dec, 2017 1 commit
  3. 22 Nov, 2017 1 commit
    • Frederic Barbier's avatar
      [idct] Fix initialization of tx_set_type · 33b39f01
      Frederic Barbier authored
      Previous assumption on reduced_tx_set_used=0 led to many assertion
      failures and prevented signalling reduced_tx_set_used equal to 1.
      
      BUG=aomedia:1053
      
      Change-Id: If9a9dff8d01ba3ec942e06559c153f06d34555f9
      33b39f01
  4. 14 Nov, 2017 1 commit
  5. 04 Nov, 2017 1 commit
  6. 31 Oct, 2017 1 commit
  7. 24 Oct, 2017 1 commit
  8. 21 Oct, 2017 1 commit
  9. 16 Oct, 2017 1 commit
  10. 09 Sep, 2017 1 commit
  11. 06 Sep, 2017 1 commit
  12. 05 Sep, 2017 1 commit
  13. 17 Aug, 2017 1 commit
    • Yushin Cho's avatar
      cdef-dist and daala-dist is runtime switchable · e30a47ca
      Yushin Cho authored
      Use --tune=[cdef-dist|daala-dist] to enable them.
      
      Also, this commit set the use_activity_masking of PVQ as 0 by deafult,
      which means that PVQ assumes daala-dist is not used by default.
      
      Since we're currently not signaling which metric the encoder did use
      in the bitstream, the compile flag AV1_PVQ_ENABLE_ACTIVITY_MASKING will tell PVQ
      whether daala-dist is used or not.
      
      This commit is the last part of prep-work to remove DIST_8X8, CDEF_DIST,
      and DAALA_DIST experimental flags.
      
      Change-Id: Ia465b4d6fe64aac7f04852c8f9f4bac3409d2435
      e30a47ca
  14. 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
  15. 31 Jul, 2017 1 commit
    • 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
  16. 20 Jul, 2017 1 commit
    • Yushin Cho's avatar
      New experiment DIST_8x8 · b7b60c57
      Yushin Cho authored
      A framework for computing a distortion at 8x8 luma block level
      during RDO-based mode decision search. New 8x8 distortion metric can
      be plugged in by way of this tool.
      
      Existing daala_dist now uses this experiment as well.
      Other possible applications that can make use of this experiment would be
      a distortion meric, which should apply at 8x8 pixels such as PSNR-HVS, SSIM, or etc.
      
      A rd_cost for final coding mode decision for a super block is
      computed for a partition size 8x8 or larger. For a block larger than 8x8,
      a distortion of each 8x8 block is independently computed then summed up.
      
      The rd_cost for 8x8 block with new 8x8 distortion metric is computed
      only when the mode decision of its sub8x8 blocks are completed.
      However, MSE distortion metric is used with sub8x8 mode decision. Thus,
      early termination is also determined with the MSE based rd_cost.
      Because the best rd_cost (i.e. the reference rd_cost) during sub8x8 prediction
      or sub8x8 tx is based on new 8x8 distortion while each sub8x8 uses MSE,
      the existing early termination cannot be used (And this can be the one of possible reason
      for the BD-Rate change with this revision).
      
      For a sub8x8 prediction, prediction mode for each sub8x8 block of a 8x8 block is
      decided with existing MSE and then av1_dist_8x8() is applied to the 8x8 pixels.
      (There is also av1_dist_8x8_diff, which can input diff signal directly)
      
      For a sub8x8 tx in a block larger than 8x8, instead of computing MSE distortion for
      each sub8x8 tx block, we wait until all sub8x8 tx blocks are encoded before av1_dist_8x8()
      is applied to 8x8 pixels.
      
      Sub8x8 prediction and transformas were most of tricky parts in this change.
      Two kind of distortions, for a) predicted pixels and b) decoded pixels
      (i.e. predicted + possible reconstructed residue), are always computed during RDO.
      In order to access those two signals a) and b) for a 8x8 block after
      its sub8x8 mode decision is finished, a) and b) need be properly stored for later retrieval.
      
      The CB4X4 makes the task of accessing a) and b) signals for sub8x8 block further difficult,
      since the intermediate data (i.e. a and/or b) for sub8x8 block
      are not easily accessible outside of current partition unless reconstruced
      with decided coding modes.
      
      Change-Id: If60301a890c0674a3de1d8206965bbd6a6495bb7
      b7b60c57
  17. 13 Jul, 2017 1 commit
  18. 12 Jul, 2017 1 commit
    • hui su's avatar
      Automatically turn on/off screen content tools · d9a812bd
      hui su authored
      Turn "allow_screen_content_tools" on when the source video has many blocks
      with only few different colors. The automatic detection is enabled by
      defualt (or with command line flag "--tune-content=default"). With
      "--tune-content=screen", the screen content tools are always turned on.
      
      On the screen_content test set, the "default" setting is less than 0.3%
      worse than the "screen" setting on keyframe encoding.
      
      Change-Id: Iac7ab8952c96531d1fae84da1823291f5987519c
      d9a812bd
  19. 26 Jun, 2017 2 commits
    • Yushin Cho's avatar
      daala-dist: high bit depth support · 8ab875d6
      Yushin Cho authored
      Change-Id: Idafef140d3425a9a9f66cb8864a804c4d2a89a70
      8ab875d6
    • Yushin Cho's avatar
      Fix daala_dist to handle visible pixels only · 75b01004
      Yushin Cho authored
      - If invisible pixels, av1_daala_dist() simply use source pixles for dst.
      - Added av1_daala_dist_diff() which inputs diff signal instead of dst.
      
      - Refactored daala_dist code so that av1_daala_dist() and _diff()
      is called inside av1's distortion calculation functions, pixel_sse() and
      sum_squares_visible().
      
      Change-Id: Id857db52fe19856d92c46a9e84ac2962c01ae045
      75b01004
  20. 02 Jun, 2017 1 commit
  21. 01 Jun, 2017 1 commit
    • Yushin Cho's avatar
      Fix daala-dist for cb4x4 · 63927c43
      Yushin Cho authored
      The place where av1_daala_dist() is applied for sub8x8 partition is
      moved from sub8x8 mode decision functions to rd_pick_partition().
      
      BD-Rate change by daala-dist with '--disable-var-tx' is:
      (AWCY, objective-1-fast, high delay mode)
      
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      15.1558 | 12.9585 | 14.4662 |  -3.8651 | -1.7102 | -9.2956 |    10.8686
      
      In MSE probe mode:
      
        PSNR | PSNR Cb | PSNR Cr | PSNR HVS |   SSIM | MS SSIM | CIEDE 2000
      0.0429 |  0.0435 |  0.1651 |  -0.0415 | 0.0850 |  0.0122 |     0.0546
      
      Change-Id: I3b2ea916d41c48e433eb641adf44552e4725c198
      63927c43
  22. 26 Apr, 2017 1 commit
  23. 16 Apr, 2017 1 commit
  24. 12 Apr, 2017 1 commit
  25. 11 Apr, 2017 1 commit
  26. 28 Mar, 2017 1 commit
  27. 25 Mar, 2017 1 commit
  28. 01 Mar, 2017 1 commit
  29. 28 Feb, 2017 1 commit
    • Yaowu Xu's avatar
      Move asserts into correct scope · cdf8a14e
      Yaowu Xu authored
      The macro used in assert is defined under CONFIG_VAR_TX. This fixes a
      build issuse when --enable-var-tx and --enable-rd-debug are both on.
      
      Change-Id: I497fe4a8b1fa6c7b05ac2b41c97522f7bdedc0ce
      cdf8a14e
  30. 23 Feb, 2017 1 commit
    • David Barker's avatar
      Change gm_get_motion_vector · 45390c18
      David Barker authored
      Since gm_get_motion_vector is trying to give a motion vector for
      "the frame as a whole", it makes more sense for it to calculate
      the motion of the *center* of the block rather than the top-left
      corner of the frame.
      
      In theory, this change should also help the encoder make better
      decisions on when to use global motion. It avoids an issue
      where, early in the frame, NEARESTMV looks like a good way to use
      the global motion vector *without* paying the rate cost applied
      to the first few global motion blocks in each frame. This seems
      to lead to a better overall result.
      
      Change-Id: Ia5c6259ceb8b4ff3d00a5d553e1d18bdb802da59
      45390c18
  31. 07 Feb, 2017 1 commit
  32. 18 Jan, 2017 1 commit
    • Yue Chen's avatar
      Add rd loop of NCOBMC · f27b1605
      Yue Chen authored
      At the final round of encoding of each superblock, will go through
      each prediction block to check if ncobmc mode is better than non-
      overlapped prediction. Note that causal obmc mode is dumped here.
      
      PSNR gain (MOTION_VAR + NCOBMC): -2.845% lowres
      
      Change-Id: Ibe504f7f1882446a08ba426e1e9824bca73bf655
      f27b1605
  33. 12 Jan, 2017 1 commit
  34. 12 Nov, 2016 1 commit
  35. 09 Nov, 2016 1 commit
  36. 08 Nov, 2016 1 commit
    • Angie Chiang's avatar
      Replace rate distortion sse skip by RD_STATS in rdopt.c · 7c2b7f25
      Angie Chiang authored
      This CL doesn't change any coding behavior.
      The functions modified in this CL include
      choose_smallest_tx_size()
      choose_largest_tx_size()
      choose_tx_size_type_from_rd()
      txfm_rd_in_plane()
      txfm_yrd()
      
      This change make the code cleaner and will facilitate rd_debug
      implementation
      
      Change-Id: I19b1b2384dce8b46b28d4c9baf80ff92998d05b6
      7c2b7f25
  37. 06 Nov, 2016 2 commits
    • Angie Chiang's avatar
      Add RD_STATS into MB_MODE_INFO · 9a44f5fb
      Angie Chiang authored
      With RD_STATS in MB_MODE_INFO, we will be able to compare the results
      from rate-distortion loop and the results from bitstream packing.
      
      Change-Id: If1dba7d87126577a6f369ac087d4517f7cebb0c5
      9a44f5fb
    • Angie Chiang's avatar
      Add txb_coeff_cost_map · 85279f66
      Angie Chiang authored
      The txb_coeff_cost_map is a 16x16 map which records each single
      transform block's cost from the transform block's location in 4-pixel
      unit in recursive transform experiment.
      
      Change-Id: I6da97880c457680594bca56617084010891beaa2
      85279f66