1. 29 Mar, 2017 6 commits
  2. 28 Mar, 2017 4 commits
    • Steinar Midtskogen's avatar
      Move dering strength mapping to od_dering() · 233ef947
      Steinar Midtskogen authored
      This patch also makes it easier to tune the mapping later.
      
      Change-Id: I69f49b9dd1fddb306931599a354526abe0232eb8
      233ef947
    • Thomas Davies's avatar
      NEW_MULTISYMBOL: Code extra_bits using multi-symbols. · 9b8393fd
      Thomas Davies authored
      Code the extra_bits using up to 5 non-adaptive symbols,
      starting from the LSB. The number of skipped bits is
      truncated to fit into the multi-symbol groups.
      
      Change-Id: I147b5b0c3815bd39c338ee9a4779638ae75d7ab5
      9b8393fd
    • Steinar Midtskogen's avatar
      Let od_dering() handle 16 to 8 bit conversion · 302d2c18
      Steinar Midtskogen authored
      Change-Id: Ief5df3d5b1b81f09190d34022a3cb7d500992da2
      302d2c18
    • Fergus Simpson's avatar
      frame_superres: Add scale to uncompressed header · e7508413
      Fergus Simpson authored
      A bit and a three bit literal have been added to the uncompressed frame
      header for use by the frame superres experiment.
      
      The bit is true if scaling is to be used, and is immediately followed by
      a three bit literal that encodes the scale to use. If the first bit is
      false, scaling is disabled and the scale factor numerator is set to the
      denominator (ie. 1:1 scaling). No literal follows if scaling is
      disabled.
      
      The denominator has been defined as a constant 16. The literal is biased
      by a defined constant of 8 - allowing fractions from 1/2 to 15/16
      scaling in steps of 1/16 when scaling is used. Experimentation will be
      needed to discover which of these are useful.
      
      The bit and literal are immediately after the optional render_width and
      render_height, so that the superres parameters can be written and read
      just after the regular width and height, without interfering with the
      render_size parameters.
      
      This patch also adds an arbitrary write to make the scale 1:1, so as to
      not trigger any scaling until it's ready.
      
      Accompanying encode and decode helper functions are added.
      
      Change-Id: I8caa6247c73f5c7f84ef1fde1e80eb9b20bde0e3
      e7508413
  3. 27 Mar, 2017 4 commits
  4. 25 Mar, 2017 3 commits
  5. 24 Mar, 2017 4 commits
  6. 23 Mar, 2017 7 commits
    • David Barker's avatar
      Re-enable av1_nmv_ctx() when ext-inter is enabled · 9620bcd5
      David Barker authored
      Currently, mbmi->ref_mv_idx can be set to a nonzero value
      on the encoder side if mbmi->mode is one of NEARMV, NEWMV,
      NEAR_NEARMV, or NEW_NEWMV. But it can only be nonzero on the
      decoder side if the mode is NEARMV or NEWMV. Hence av1_nmv_ctx
      has previously been disabled when ext-inter is enabled, to
      prevent a mismatch due to this.
      
      This patch changes the encoder behaviour to match the decoder
      behaviour.
      
      Change-Id: Icfe41fb72e76731ae373fe8c6065f5e003f6414f
      9620bcd5
    • Jingning Han's avatar
      Account for 2x2 tx_size in extrabits_size · 008ea46a
      Jingning Han authored
      Offset the transform block size with respect to TX_4X4 when
      counting the cat6 extra bit size. This accounts for the potential
      use of 2x2 transform block size in cb4x4.
      
      BUG=aomedia:405
      
      Change-Id: Ia15ac123e4f31dc66455c3aa6925ae5e754de493
      008ea46a
    • 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
    • Debargha Mukherjee's avatar
      Simplify warped motion estimation to use 2d ls · b9370acd
      Debargha Mukherjee authored
      Use a simpler warped motion estimation scheme that uses a 2d
      least squares problem, where the underlying assumption
      applied is that the motion vector computed at the center
      of the current block using the warp model is exactly the same
      as the motion vector transmitted for the block.
      
      The main motivation is to reduce the complexity of the
      estimation process.
      
      Coding efficiency drop is about +0.25% on lowres:
      -1.152% (from -1.396%).
      
      Also, removes code for non-approximate division and bakes
      approximate divison in.
      
      Change-Id: Ie4ad8e32593b09f7e1920c70b0b92545236ddc54
      b9370acd
    • Fergus Simpson's avatar
      frame_superres: Add members to AV1_COMMON · 7a71d0a0
      Fergus Simpson authored
      Adds the superres scale numerator, width, and height to the AV1_COMMON
      struct for later use in encoding and decoding. This value will also be
      added to the uncompressed frame header.
      
      A #define statement is also added to represent the denominator - 16.
      
      Change-Id: I4acec39ef3c67fa9f7118dac28daec3a2d734ed5
      7a71d0a0
    • Alex Converse's avatar
      Fix Wundef warnings inside the codec · 64d7ef67
      Alex Converse authored
      Change-Id: I2f4a5c836905b089b91b211368bf3a0dea682b75
      64d7ef67
    • Debargha Mukherjee's avatar
      Split current block samples for warp estimation · e8e6cad7
      Debargha Mukherjee authored
      Change-Id: Iebc74024475c7cb88650b65df9f23b1a5e70021c
      e8e6cad7
  7. 22 Mar, 2017 5 commits
    • Yue Chen's avatar
      Remove check for identical neighboring mv field in WARPED_MOTION · dd6e402a
      Yue Chen authored
      This will allow us decode motion mode without knowing motion vectors
      in the neighborhood.
      Improves the performance by 0.3% (1.1->1.4)
      
      Change-Id: Ie18ee2b02b1d2f89615bc8fa423beb1f9bd9a678
      dd6e402a
    • 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
    • Angie Chiang's avatar
      Change exit(0) to assert(0) in txb_common.h · 0eb767b8
      Angie Chiang authored
      This will provide better indication of abnormal code flow.
      
      Change-Id: I7e6cdcf77f13c709137e6524c94b0911cd5216ed
      0eb767b8
    • Angie Chiang's avatar
      Add av1_adapt_txb_probs() · bb100e27
      Angie Chiang authored
      This is for backward updating probability model of lv_map
      
      Change-Id: I0e943e271e3cb8a90c33263b4d62db90bf2e89b0
      bb100e27
    • Angie Chiang's avatar
      Avoid use static array for coeff_band · fe2ad262
      Angie Chiang authored
      Using static array will increase program size
      
      Change-Id: Ic5378a78f1c54a8ce9ebc41fa2f1b3e3f91d1f1d
      fe2ad262
  8. 21 Mar, 2017 5 commits
  9. 20 Mar, 2017 2 commits
    • Debargha Mukherjee's avatar
      Add config flags and macros to control ext-inter · 37f6fe61
      Debargha Mukherjee authored
      Adds a dependent config flag 'interintra' to turn on/off interintra
      modes altogether.
      Adds a dependent config flag 'wedge' to turn on/off wedge compound
      for both interinter and interintra.
      
      Adds another macro to change wedge predictors to use
      only 0, 1/2, or 1 weights.
      
      From now, use
      --enable-ext-inter --enable-wedge --enable-interintra to get the
      same behavior as the old --enable-ext-inter.
      
      Change-Id: I2e787e6994163b6b859a9d6431b87c4217834ddc
      37f6fe61
    • David Barker's avatar
      Fix two bugs in highbitdepth self-guided filter · 7e08ac3f
      David Barker authored
      This filter was temporarily removed due to test failures.
      This patch reintroduces the filter and fixes two bugs:
      
      * The test cases would occasionally segfault on x86, since
        the highbd filter requires its inputs to be aligned to
        16 bytes. This will always be true when used on real videos,
        so adjust the test cases to match.
      
      * The function calc_block was incorrect for bit_depth > 8,
        due to passing an incorrect argument to _mm_srl_epi32().
        This was the cause of the original test failures.
      
      BUG=aomedia:392
      
      Change-Id: Ia06b76c3e6122eebadd0995fb62f32c2fcab8b3e
      7e08ac3f