1. 15 Jun, 2017 1 commit
    • Urvang Joshi's avatar
      optimize_b_greedy: Avoid left shift of negative value. · 6eb35eb4
      Urvang Joshi authored
      Before:
      -------
      accu_error was always <= 0:
      - It was initialized to zero, and
      - Became more and more negative through the iterations.
      
      This meant that RDOPT() macro usage on accu_error was causing left shift
      of negative value.
      
      Now:
      ----
      - accu_error is initialized to a large positive value.
      - It becomes smaller on every iteration but remains >= always.
      
      This is functionally equivalent: verified that there's no change in
      output due to this patch.
      
      BUG=aomedia:600
      
      Change-Id: I654572a72234c588c8f332d5b66a5587fc6610b4
      6eb35eb4
  2. 14 Jun, 2017 4 commits
    • Jingning Han's avatar
      Integrate level-map with var-tx · aba246dc
      Jingning Han authored
      Make the level-map and var-tx work together.
      
      Change-Id: I5ff80a3cbc43af64b504934209720f387b89dbd8
      aba246dc
    • Jingning Han's avatar
      Rework get_eob_ctx to support rectangular tx_size · 4cbb3637
      Jingning Han authored
      Explicilty use the transform block size to determine the coeff
      band array. Remove the assumption on square transform block size.
      
      Change-Id: I18e285130465a5eced49304a27a6cb617e297760
      4cbb3637
    • Jingning Han's avatar
      Support rectangular tx_size in level map coding · 48be0e19
      Jingning Han authored
      Map the rectangular transform block size into the bigger square
      transform block size as the context for level map probability
      model.
      
      Change-Id: I20cf2b16daec16172855a78a201b670ff0547bf5
      48be0e19
    • Luc Trudeau's avatar
      [CFL] Fix always use partition size to compute DC_PRED · 803bea26
      Luc Trudeau authored
      plane_bsize is now computed properly. This also includes support for the
      special case of blocks < 4X4
      
      Results on subset1 (compared to 8e689e4b with CfL)
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.0218 | -0.2328 | -0.2555 |  -0.0230 | -0.0379 | -0.0723 |    -0.1205
      
      Change-Id: I6ec87d818d8df6a40ecf3bb1b86954e59c952930
      803bea26
  3. 13 Jun, 2017 2 commits
  4. 11 Jun, 2017 1 commit
    • Jingning Han's avatar
      Avoid right shift negative numbers · 32d26bc0
      Jingning Han authored
      This avoids the rounding errors due to the right shift of the
      negative numbers that cause the reconstruction coefficient has
      higher distortion than the source coefficient.
      
      BUG=aomedia:599
      
      Change-Id: I11ed86bf1d41164dda4398545334a7b4e8e10513
      32d26bc0
  5. 09 Jun, 2017 1 commit
    • Urvang Joshi's avatar
      Enable greedy version of av1_optimize_b(). · 09302f5a
      Urvang Joshi authored
      This has been found to be better than the original version in both ways:
      (1) Better compression: lowres -0.229, midres -0.147
      (2) Faster too in my quick test over 5 different clips with 30
      frames: 2.7% to 10.5% faster.
      
      Change-Id: I4d46e0915d6e4b8e7bfc03d0c8b88cbe3351ca20
      09302f5a
  6. 08 Jun, 2017 1 commit
    • Sarah Parker's avatar
      Remove deprecated high-bitdepth functions · 31c66502
      Sarah Parker authored
      This unifies the codepath for high-bitdepth transforms and deletes
      all calls to the old deprecated versions. This required reworking
      the way 1d configurations are combined in order to support rectangular
      transforms.
      
      There is one remaining codepath that calls the deprecated 4x4 hbd
      transform from encoder/encodemb.c. I need to take a closer look
      at what is happening there and will leave that for a followup
      since this change has already gotten so large.
      
      lowres 10 bit: -0.035%
      lowres 12 bit: 0.021%
      
      BUG=aomedia:524
      
      Change-Id: I34cdeaed2461ed7942364147cef10d7d21e3779c
      31c66502
  7. 02 Jun, 2017 2 commits
    • Angie Chiang's avatar
      Use av1_optimize_txb for lv_map experiment · 1c96e82c
      Angie Chiang authored
      Comparing to lv_map experiment using the old av1_optimize_b
      function, This change gives 0.8% gain on lowres and midres
      datasets
      
      Comparing to the baseline with greedy optimize_b, the lv_map
      experiment will have 1.2% on lowres and 1.49% on midres.
      The gains are similar to the one that under the condition of
      turning off av1_optimize_b for baseline and lv_map.
      
      Change-Id: Ie17c4ecbd9ed8418ef657a526d8363e0746b5af5
      1c96e82c
    • Angie Chiang's avatar
      Pass above/left ctx plane_bsize to av1_optimize_b · 3511c37d
      Angie Chiang authored
      This is to facilitate lv_map experiment
      
      Change-Id: Ife779b172c4b81a9b2b4640464163300996e3969
      3511c37d
  8. 25 May, 2017 3 commits
    • Nathan E. Egge's avatar
      Remove the DAALA_EC experiment. · 476c63c1
      Nathan E. Egge authored
      This patch forces DAALA_EC on by default and removes the dkbool coder.
      
      Change-Id: Icd2ff08efd7bf467adf554344111473cb357adf8
      476c63c1
    • David Barker's avatar
      Fix bug in av1_optimize_b when tx64x64 is enabled · c747a78e
      David Barker authored
      In both versions of av1_optimize_b, the code to calculate the
      dequantized coefficient from a modified quantized coefficient
      was not compatible with tx64x64.
      
      Specifically, the new dequantized coefficient was calculated as an
      offset applied to the original coefficient. This had a fixup block
      for 32x32 transforms, but not for 64x64 transforms.
      
      For simplicity, instead of extending the fixup block, we now
      recalculate the dequantized coefficient directly.
      
      BUG=aomedia:537
      
      Change-Id: I86c1c8820f324ad3f6afd6a720ff59f754384a19
      c747a78e
    • Alex Converse's avatar
      var_tx+intrabc: Fix infinite recursion · e16b2665
      Alex Converse authored
      Change-Id: Ibbf0c14934d0bff316cfdf5c252c64b3e68c73e7
      e16b2665
  9. 24 May, 2017 1 commit
  10. 20 May, 2017 2 commits
    • hui su's avatar
      DPCM intra coding experiment · b8a6fd6b
      hui su authored
      Encode a block line by line, horizontally or vertically. In the vertical
      mode, each row is predicted by the reconsturcted row above;
      in the horizontal mode, each column is predicted by the reconstructed
      column to the left.
      
      The DPCM modes are enabled automatically for blocks with horizontal or
      vertical prediction mode, and 1D transform types (ext-tx).
      
      Change-Id: I133ab6b537fa24a6e314ee1ef1d2fe9bd9d56c13
      b8a6fd6b
    • Nathan E. Egge's avatar
      Replace EC_MULTISYMBOL with DAALA_EC || ANS. · cd539518
      Nathan E. Egge authored
      Change-Id: Ia0eb3a3694fdbe9d33548ff4014b704b2f3db86a
      cd539518
  11. 18 May, 2017 2 commits
  12. 16 May, 2017 1 commit
  13. 12 May, 2017 1 commit
  14. 11 May, 2017 1 commit
  15. 10 May, 2017 1 commit
    • Luc Trudeau's avatar
      [CFL] use CDF_SIZE macro · e21c0811
      Luc Trudeau authored
      EC_ADAPT stores the count at the last position. As such, the CDF_SIZE
      macro adds 1 to the array size. This resolves valgrind warnings about
      jumps on uninitialized variables.
      
      Change-Id: I58d607a57756cb166a9ae5c4565537ce202183fd
      e21c0811
  16. 09 May, 2017 1 commit
  17. 08 May, 2017 2 commits
    • Luc Trudeau's avatar
      [CFL] Change cfl_load to use width and height · 30596fb2
      Luc Trudeau authored
      Since the size used with cfl_load can either be based on the transform
      block size and the prediction block size, width and height are used as
      parameters instead of TX_SIZE.
      
      This resolves a problem where cfl_compute_alpha_ind was reading
      uninitialized memory.
      
      Change-Id: I187dbdd5b2e8bd85e82bb77eb74859bee2cd3f1e
      30596fb2
    • Angie Chiang's avatar
      Change plane_rd_mult inter uv param from 5 to 6 · ebcdb25e
      Angie Chiang authored
      This will improve the lowres performance by 0.1%
      No significant change on midres and hdres
      
      Change-Id: I0c6e69bf48596e7e5ad49631ed9f9be73bbf3c9a
      ebcdb25e
  18. 06 May, 2017 1 commit
  19. 05 May, 2017 3 commits
    • Yaowu Xu's avatar
      Change to use correct type for token_cost · 42350322
      Yaowu Xu authored
      The conversion of return value to int64_t appears to be unnecessary.
      
      fixes a number of type conversion warnings for MSVC2015
      
      Change-Id: Ibca24468e73bf22ad07c469ce5d1223635390ecb
      42350322
    • Yaowu Xu's avatar
      Remove unnecessary const · 1e4e5b96
      Yaowu Xu authored
      Removed "const" from parameters that are passed by value, also fixes
      msvc2015 compiler warnings.
      
      Change-Id: I0c7555b4245fa55fabda1c27762fb9f0860bfa18
      1e4e5b96
    • Luc Trudeau's avatar
      [CFL] Alpha signaling · f533400a
      Luc Trudeau authored
      Writes and reads alpha to and from the bitstream.
      
      A special case is needed on the encoder side to handle prediction block
      skips. Since whether or not a prediction block is skipped during CfL, a
      rollback is required if the block was skipped and the alpha index was
      not zero. The advantage of this is that no signaling is required when
      the prediction block is skipped as it is assumed tha the alpha index is
      zero.
      
      A encode facade is added to the intra prediction facade as CfL requires
      special encoder side operations.
      
      Change-Id: Ic3b11d0fdbd51389d862112eb09d8785127a6b06
      f533400a
  20. 04 May, 2017 2 commits
    • Angie Chiang's avatar
      Move eob/lossless check into av1_optimize_b · 7dec6c4c
      Angie Chiang authored
      This will guarantee that av1_optimize_b will be turned off when
      lossless mode is on
      
      Remove heuristic lossless check in optimize_b_greedy
      
      Change-Id: I636c776f3f6b632eb03bc57a470ea43aae4fe0f6
      7dec6c4c
    • Sebastien Alaiwan's avatar
      Remove some special cases for CONFIG_HIGHBITDEPTH · cd167c4e
      Sebastien Alaiwan authored
      This also avoids having 'bit_depth'/'bd' members whose presence
      is decided by the preprocessor.
      
      The goal is to simplify statements accessing the bitdepth value.
      (instead of forcing them to also rely on the preprocessor to query
      the member presence through #if CONFIG_HIGHBIDEPTH).
      
      Change-Id: I68b822bbaa2b1c67bde81cb4f3f8b9988b798b0d
      cd167c4e
  21. 28 Apr, 2017 1 commit
  22. 27 Apr, 2017 1 commit
    • Luc Trudeau's avatar
      [CFL] Store luma as prediction for chroma · e3980281
      Luc Trudeau authored
      Stores the reconstructed luma pixels for each transform block inside a
      prediction block. Rectangular transform blocks are supported.
      
      As for RDO, after all the modes have been tested for luma, an extra
      encoding is perform in order to store the reconstructed pixel values of
      the best mode. These values are then used for RDO on the chromatic
      planes.
      
      Change-Id: I354d9827e32fd41065f1b2ce02832d943a6fa156
      e3980281
  23. 26 Apr, 2017 1 commit
    • James Zern's avatar
      inline -> INLINE · c1b17f3b
      James Zern authored
      inline is undefined in visual studio 2013 for C
      
      Change-Id: I85adb3968e4a98e2d7909cc42e955b1447fcfa26
      c1b17f3b
  24. 24 Apr, 2017 2 commits
    • Fangwen Fu's avatar
      Extend delta q with segments · 6160df29
      Fangwen Fu authored
      This is the first patch for ext_delta_q experiment.
      * Allow delta q to work with segment features
      
      Change-Id: I9455ebb3b5b23b41daa4afa1149672a20d3a3f2c
      6160df29
    • Sarah Parker's avatar
      Use correct bsize in vartx sub8x8 max tx_size lookup · 106b3cbc
      Sarah Parker authored
      This fixes crashes due to infinite recursion when var_tx,
      ext_tx and rect_tx are enabled without cb4x4. This
      is the first part of an ongoing fix for this experiment
      interaction.
      
      Change-Id: I674f28294666102aff2265f6b6112816cac17378
      106b3cbc
  25. 14 Apr, 2017 1 commit
    • Dake He's avatar
      [optimize-b] Use a greedy search method · 97f56645
      Dake He authored
      The greedy search method improves the BD-rate over the baseline by
      more than 0.2% for lowres test set. Larger gain 0.55% is observed for hdres test set.
      
      [2017.04.06] Cleanup to remove redundant computation. On a local linux
      machine, the greedy method is now faster than the trellis method in
      encoding the first 100 frames of foreman_cif. However, the BD-rate seems
      to become smaller due to the recent changes to the codebase.
      [2017.04.06-2] Style changes to meet the requirements.
      remove "greedy-optimize-b" in configure
      [2017.04.10] Move the changes under the macro USE_GREEDY_OPTIMIZE_B
      [2017.04.11] Adjust rdmult to accommodate CpuSpeedTest
      [2017.04.12] Set USE_GREEDY_OPTIMIZE_B to 0 at the request of debargha@.
      [2017.04.13] Move greedy implementation of optimize_b into a separate
      function with the same name (selected by USE_GREEDY_OPTIMIZE_B, default
      is 0)
      
      Change-Id: Ic15534f8d696d5f02e8f2e3e9f08b52e41e9efd2
      97f56645
  26. 12 Apr, 2017 1 commit