1. 24 Apr, 2017 1 commit
    • Luc Trudeau's avatar
      [CFL] Custom block-level DC_PRED · f8164157
      Luc Trudeau authored
      Adds the CfL experiment flag and computes a block-level DC_PRED that is
      required by CfL in order to compute alpha_cb and alpha_cr.
      
      The rate-distorsion impact of computing DC_PRED at the prediction block level
      for chroma planes is rather small
      
      Subset 1:
      master_no_cdef@2017-04-18T20:37:05.712Z
        -> block_DCPRED_no_cdef@2017-04-18T20:38:07.381
        PSNR | PSNR Cb | PSNR Cr | PSNR HVS |   SSIM | MS SSIM | CIEDE 2000
      0.0712 |  0.0337 | -0.1692 |   0.0693 | 0.0814 |  0.0710 |    -0.0063
      Note: CDEF was disabled because of problematic asserts.
      
      Change-Id: I44d1cde8605b108366f4bd4cedbf5159dbbb5880
      f8164157
  2. 20 Apr, 2017 3 commits
    • Alex Converse's avatar
      Lowercase cpi->Source and cpi->Last_Source · f77fd0b0
      Alex Converse authored
      BUG=aomedia:449
      
      Change-Id: I8d1a0342e11877e466a1fb771f9a1941598c95d5
      f77fd0b0
    • Zoe Liu's avatar
      Fix the build failure combining ext-refs and xiphrc · e04abf72
      Zoe Liu authored
      Change-Id: I815d37986119b20ff386c640fe60e41aef785be3
      e04abf72
    • Yunqing Wang's avatar
      ext_tile: add 2 tile encoding modes · d8cd55f4
      Yunqing Wang authored
      Added 2 tile encoding modes:
      TILE_NORMAL mode supports the large-scale tile coding up to 1024 x 1024
      tiles;
      TILE_VR mode supports the large-scale tile coding and also the decoding
      of a single tile.
      
      TILE_NORMAL mode allows the non-vr content to be encoded in multiple tiles
      without using the coding tool that are designed for vr applications.
      
      Change-Id: Id804806a1bbcb916b7f5dc7e2c5509d88f3defcb
      d8cd55f4
  3. 14 Apr, 2017 1 commit
    • Sarah Parker's avatar
      Refactor gm/wm/obmc for cleaner warping interactions · 4c10a3c2
      Sarah Parker authored
      This creates a central function which defines when a
      block should be warped. It also refactors the
      WARPED_MOTION code so that all calls to av1_warp_plane
      happen in the same location.
      
      No change in performance.
      
      Change-Id: Icaf9ec7700d34523809258594bb9843bb2975f46
      4c10a3c2
  4. 12 Apr, 2017 2 commits
  5. 10 Apr, 2017 2 commits
    • Fergus Simpson's avatar
      frame-superres: Move resize from encoder to common · d0565006
      Fergus Simpson authored
      The resizing functions in resize.h and resize.c are useful for the
      frame super-res experiment. These functions will be needed in both the
      encoder and decoder, so the files have been moved into av1/common.
      
      Change-Id: I66154b7ec0eade0df460c4f4cf8eaa5f663c8904
      d0565006
    • Jingning Han's avatar
      Temporarily disable multi-thread loop filter in cb4x4 · 52ece884
      Jingning Han authored
      The loop filter parameters change due to many experiments. The
      multi-thread loop filter is built on certain assumptions that would
      require changes in many table contents. Temporarily disable the
      multi-thread loop filter pass and only maintain the single frame
      reference during the development process.
      
      Change-Id: I33a6a7a6fc4299f8fc414ae7f28c5a463af1e12b
      52ece884
  6. 07 Apr, 2017 2 commits
    • Jingning Han's avatar
      Fix active map setting in cb4x4 mode · 9d53302c
      Jingning Han authored
      Scale the block size in the active map with respect to the
      effective mode_info size. This resolves an active map unit
      test failure issue due to out-of-bound address access.
      
      Change-Id: Idcd5c318cb475c4e43cc2a41d90028246bf25f37
      9d53302c
    • Yushin Cho's avatar
      Fix pvq for ext-tile · 749c057a
      Yushin Cho authored
      Change-Id: I2011f113cf6a66a766c1c754b4d47e913ba54689
      749c057a
  7. 05 Apr, 2017 1 commit
    • Yushin Cho's avatar
      Add PVQ frame context in common and tiles. · b188ea14
      Yushin Cho authored
      In preparation for enabling backward updates of contexts for PVQ.
      1. Default prob setting for PVQ,
      which is based on flat probabilities at the moment.
      2. At the end of encoding a frame, average probablities and expected values
      of PVQ are copied to the frame context.
      
      Change-Id: I1d087b98e6b0d55ebf8aef696dd986f88197cedf
      b188ea14
  8. 03 Apr, 2017 1 commit
  9. 31 Mar, 2017 1 commit
  10. 30 Mar, 2017 1 commit
    • Debargha Mukherjee's avatar
      A few fixes for global motion · 11f0e40d
      Debargha Mukherjee authored
      Handles a rare divisin by 0 case.
      Also adds a check on global motion parameters to disable
      if the parameters obtained are outside the range that the
      shear supports. This fixes a rare assert failure.
      Also changes the recode loop threshold somewhat.
      
      Change-Id: I4c6e74b914ac653cd9caa0563d78b0a19a2a8627
      11f0e40d
  11. 29 Mar, 2017 1 commit
    • Debargha Mukherjee's avatar
      Improves/refactors rd costing for global motion · 265db6d0
      Debargha Mukherjee authored
      Improves and simplifies costing for global motion to use the
      actual bits used to communicate the global motion parameters.
      Removes some of the old hacks.
      This patch also includes necessary refactoring to incorporate
      reference based coding of the motion parameters to follow.
      
      lowres results: -1.489% (up from -1.333%)
      
      Change-Id: I994dc97046011de4261633ccb0c9d71e374f2c5a
      265db6d0
  12. 23 Mar, 2017 1 commit
    • Jean-Marc Valin's avatar
      Do real chroma RDO search for CDEF · e9f77424
      Jean-Marc Valin authored
      Chroma now has a list of strenghts too, with the superblock signalling
      shared between luma and chroma.
      
      low-latency, cpu=4:
      
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |   SSIM | MS SSIM | CIEDE 2000
      -0.0114 | -1.4626 | -1.4745 |  -0.0423 | 0.0430 | -0.0001 |    -0.7416
      
      Change-Id: I389c77f1d80020f810e45f8502c656ad9d397c8c
      e9f77424
  13. 22 Mar, 2017 1 commit
    • Jean-Marc Valin's avatar
      Jointly optimizing deringing and clpf · 5f5c132f
      Jean-Marc Valin authored
      We now signal joint strengths and use a greedy algorithm for the search.
      
      low-latency, cpu-used=4:
      
      ll4-cdef@2017-03-22T03:42:10.815Z -> ll4-cdef-newsearch-var-header-newlambda-refine4@2017-03-22T15:56:46.471Z
      
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.0792 |  0.3551 |  0.4393 |  -0.0108 | -0.1338 | -0.0141 |     0.1452
      
      Change-Id: I619ae1c7c7d7ec04fe993cabc5773b07c3f5b201
      5f5c132f
  14. 21 Mar, 2017 1 commit
    • Angie Chiang's avatar
      Set mbmi_ext's tcoeff to size MAX_SB_SQUARE · c484abe7
      Angie Chiang authored
      This a simple implementation.
      We will use a more precise buffer size for tcoeff once the
      experiment functions correctly.
      
      Change-Id: Ib561974f21ee1b8d72ce407882ea2be3cf0b069f
      c484abe7
  15. 17 Mar, 2017 1 commit
    • Steinar Midtskogen's avatar
      Merge dering/clpf rdo and filtering · a9d41e88
      Steinar Midtskogen authored
      * Dering and clpf were merged into a single pass.
      * 32x32 and 128x128 filter block sizes for clpf were removed.
      * RDO for dering and clpf merged and improved:
        - "0" no longer required to be in the strength selection
        - Dering strength can now be 0, 1 or 2 bits per block
      
                    LL    HL
      PSNR:       -0.04 -0.01
      PSNR HVS:   -0.27 -0.18
      SSIM:       -0.15 +0.01
      CIEDE 2000: -0.11 -0.03
      APSNR:      -0.03 -0.00
      MS SSIM:    -0.18 -0.11
      
      Change-Id: I9f002a16ad218eab6007f90f1f176232443495f0
      a9d41e88
  16. 16 Mar, 2017 2 commits
    • Rostislav Pehlivanov's avatar
      Implement twopass support for the xiphrc system · 74021a5a
      Rostislav Pehlivanov authored
      This commit implements support for twopass encoding using the xiphrc
      experimental rate control system. Most of the code and logic comes
      from the theora project encoder.
      
      Currently support is limited to the bitrate targeting mode of the
      rate control system and while it does visibly improve quality and does
      bring rate closer to the target than the one pass mode there's still
      tuning and bug fixing to be done.
      
      Change-Id: Iae0d65bbce5ddfbb95b436e2238a43d6100a23b3
      74021a5a
    • Angie Chiang's avatar
      Add frame level buffer to store txfm coeffs · f0fbf9d9
      Angie Chiang authored
      Doing tokenize in the last step of RD loop and then doing packing
      tokens in bitstream packing phase is hard for debugging.
      
      Therefore, we create a frame-level buffer to store the txfm coeffs
      from the reconstruction in RD loop and then in bitstream packing
      phase, we can code the txfm coeffs directly.
      
      Change-Id: I999470eef6e038317a91585df2bdfc20aca3573e
      f0fbf9d9
  17. 15 Mar, 2017 1 commit
    • Thomas Davies's avatar
      EC_ADAPT: Perform backwards updates directly on CDFs. · 028b57f5
      Thomas Davies authored
      The initial CDF for each frame is stored in
      the frame context. CDFs for actual coding are
      stored in the tile structures, and these are
      what get adapted. The initial CDF is replaced
      by an average CDF derived from these tile CDFs.
      This is carried forward to future frames when
      backward adaptation is on.
      
      CDFs are no longer set from the 8 bit probabilities
      in backwards adaptation.
      
      For now, 8 bit probabilities are maintained for
      use in the encoder and for symbols which do not
      have a CDF.
      
      Change-Id: I106b30510bfad1fa57d077f7702acc1864378a09
      028b57f5
  18. 09 Mar, 2017 1 commit
  19. 08 Mar, 2017 1 commit
  20. 07 Mar, 2017 2 commits
    • Fangwen Fu's avatar
      dependent tiles togeter with tile groups · 73126c08
      Fangwen Fu authored
      Change-Id: I378eb5b2c03a4c30d261128bcf9ef00ea987ed40
      73126c08
    • hui su's avatar
      Fork the entropy experiment · 0d103578
      hui su authored
      Split it into two experiments:
      q_adapt_probs: multiple initial coeff prob tables based on q-index
      subframe_prob_update: multiple backward prob updates within frame
      
      Change-Id: I78041ebd4ba34afc9152f6861225f63c2e8eb686
      0d103578
  21. 06 Mar, 2017 1 commit
    • Debargha Mukherjee's avatar
      Remove unnecessary filtering and buffer copies · 00c54330
      Debargha Mukherjee authored
      Removes redundant deblocking filtering operations and buffer copies,
      during search for the restoration filters.
      Also, makes the order of cdef and loop-restoration consistent.
      
      BUG=AOMEDIA:373
      
      Change-Id: I571e331f9dfadfd2c1494f279e50510ec212ea29
      00c54330
  22. 27 Feb, 2017 2 commits
    • Alex Converse's avatar
      Remove aom_realloc() · 7f094f10
      Alex Converse authored
      It only handles the realloc constraint (preserving low elements) by
      serendipity, and we don't actually rely on that behavior anyway.
      Meanwhile the calls may do extra copying that gets immediately clobbered
      by the callers.
      
      Cherry-pick from libvpx:
      3063c3760 Remove vpx_realloc()
      
      Change-Id: I8dfa89e4a81084b084889c27bd272fdf85184e8d
      7f094f10
    • Alex Converse's avatar
      loop_restoration: Cleanup allocations · 232e3847
      Alex Converse authored
      Change-Id: Id3824c09cbaae814df1d8fb029215f28e8c7a6b1
      232e3847
  23. 18 Feb, 2017 1 commit
  24. 17 Feb, 2017 2 commits
    • Debargha Mukherjee's avatar
      Support trapezoidal models for global motion · 5dfa9300
      Debargha Mukherjee authored
      Adds functinoality for least-squares, RANSAC as well as encoding and
      decoding with new constrained homographies that warp blocks to horizontal
      and/or vertical trapezoids. This is for future experimentation. None
      of the models are actually enabled in the code.
      
      Change-Id: I1936018c6b11587d6fd83c3a2c63548cb641b33f
      5dfa9300
    • Rostislav Pehlivanov's avatar
      Implement a new rate control system · 002e7b7a
      Rostislav Pehlivanov authored
      This commit implements a new rate control system which was ported from
      Daala's rate control system (which was based off of Theora's rate
      control system) to the encoder. Its aim is to address the weaknesses of
      the current rate control system and eventually serve as its replacement.
      
      This is still work in progress. So far this commit only implements
      support for single pass encoding for constant quality and bitrate
      targeting.
      Additional commits which implement two-pass support and the rest to
      match the feature set of the current rate control system are coming
      soon.
      
      The rate control system hasn't been fully tuned (and will likely need
      additional tuning as the encoder's development progresses) and does
      contain some "hacks", to convert the quality to a quantizer value
      (empirical) and to tweak the quantizer in between golden frames (which
      uses some code from the current rate control system as well as code
      which attempts to model what that code does), the latter of which is
      only in the constant quality codepath.
      
      Bitrate targeting works much better than the current rate control
      system's targeting and will actually closely match the rate specified by
      the user without the current rate control system's bursty behaviour.
      
      Change-Id: I588fbfd2e80a3d21ce7176903115d6a96ef1700a
      002e7b7a
  25. 14 Feb, 2017 1 commit
  26. 12 Feb, 2017 1 commit
    • David Barker's avatar
      Fix segfault with loop-restoration on x86. · befcc425
      David Barker authored
      The WienerInfo struct requires a 16-byte alignment on x86,
      since it contains filter coefficients which are loaded using
      SSE aligned load instructions. But on 32-bit x86, the default
      alignment of aom_malloc/aom_realloc is only 8 bytes, leading
      to occasional segfaults.
      
      To fix this, rather than using aom_realloc to resize WienerInfo
      structures, we always free and re-allocate them using aom_memalign
      
      BUG=aomedia:345
      
      Change-Id: Ib1b2a42d4a2fa215dcc81ea481c51271ab068a37
      befcc425
  27. 04 Feb, 2017 1 commit
  28. 03 Feb, 2017 1 commit
  29. 25 Jan, 2017 1 commit
    • hui su's avatar
      Cleanup for the entropy experiment · 0161a932
      hui su authored
      Minor performance changes
      0.03% better on lowres
      0.01% better on midres
      
      Change-Id: I7a7168f3a2a4d17a03353841a416eff6edf1e241
      0161a932
  30. 23 Jan, 2017 2 commits