1. 14 Apr, 2017 1 commit
  2. 13 Apr, 2017 1 commit
    • Sarah Parker's avatar
      Disable neighbor warping for gm + obmc · a036d86f
      Sarah Parker authored
      Adds an option to disable warp when obmc is used with a
      global motion neighbor.
      
      Change in BDRATE on cam_lowres
      gm + obmc enabled: 0.035%
      gm + obmc + wm enabled: -0.005%
      
      Change-Id: I1d6de75c7ead325cec31ed3748b5532f3658d8a7
      a036d86f
  3. 12 Apr, 2017 2 commits
    • Timothy B. Terriberry's avatar
      pvq: Remove support for disabling nodesync. · 44bb6d06
      Timothy B. Terriberry authored
      This was broken by commit 1238137c.
      
      When calling the generic coder with a max, it truncates the CDF, but
      then tries to encode/decode with the Q15 entropy coder functions
      with built-in adaptation. That causes assertion failures, because the
      total probability isn't 32768.
      
      We could fix it by re-scaling the CDF, and then doing adaptation
      assuming there was no max, but that requires several special-case
      code paths.
      
      Instead, since non-robust streams were the only thing that still
      required calling the generic coder with a max, and since the gain
      from them is very small (and they require doing more DSP just to be
      able to parse the stream), we simply remove the option and force
      the use of robust streams all the time.
      
      With robust streams enabled, encoder output should not change, and
      all streams should remain decodable without decoder changes.
      
      Thanks to Nathan Egge for reporting the problem.
      
      Change-Id: I6c81481abb796688bf703d68f164d208e6a69f20
      44bb6d06
    • Yaowu Xu's avatar
      Avoid out of bound read · c8ab0bcd
      Yaowu Xu authored
      BLOCK_Z_TOKEN is defined "255", this commit change the order of operations
      to avoid read  av1_extra_bits[255]. av1_extra_bits is defined with size of
      12.
      
      Change-Id: I59c35136bb064391139579bce591d1963e722611
      c8ab0bcd
  4. 11 Apr, 2017 1 commit
  5. 10 Apr, 2017 1 commit
    • 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 4 commits
  7. 06 Apr, 2017 2 commits
  8. 05 Apr, 2017 5 commits
  9. 04 Apr, 2017 1 commit
  10. 03 Apr, 2017 2 commits
  11. 31 Mar, 2017 1 commit
    • David Barker's avatar
      Allow NEAR_NEARMV and NEW_NEWMV modes to use ref_mv_idx · 404b2e87
      David Barker authored
      When ext-inter and ref-mv are both enabled, this patch
      allows the NEAR_NEARMV and NEW_NEWMV modes to pick from
      the extended reference mv list, just like the NEARMV and
      NEWMV modes can.
      
      Change-Id: Ibcc9e19dba7779422c1c9589d5498159e83bf61e
      404b2e87
  12. 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
  13. 28 Mar, 2017 2 commits
    • 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
    • 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
  14. 27 Mar, 2017 2 commits
    • Debargha Mukherjee's avatar
      Adds binary code lib for coding various symbols · 47748b56
      Debargha Mukherjee authored
      Adds a variable length binary code library for
      coding various symbols for typical use in headers.
      
      The main codes implemented are:
      1. Coding a symbol from an n-ary alphabet using a
      quasi-uniform code.
      2. A bilevel code for coding symbols from an n-ary
      alphabet based on a reference value for the symbol
      also taken from the same alphabet.
      The code has two steps. If the symbol is close to
      the reference a shorter code is used, while if it is
      farther away a longer code is used.
      3. A finite (terminated) subexponential code that codes
      a symbol from an n-ary alphabet using subexp parameter k.
      4. A finite (terminated) subexponential code that codes
      a symbol from an n-ary alphabet using subexp parameter k,
      based on a given reference also taken from the same
      alphabet. This code essentially reorders the values
      before using the same code as 3.
      
      Also adds corresponding encoder side functions to count
      the number of bits used.
      
      These codes will be subsequently used for more efficient
      encoding of loop-restoration parameters and global motion
      parameters.
      
      Change-Id: I28c82b611925c1ab17f544c48c4b1287930764b7
      47748b56
    • Alex Converse's avatar
      deltaq: Use block size / mask macros · 68abef8c
      Alex Converse authored
      Fixes unit tests with ext-partition
      
      Change-Id: I17184c7321e27763eea5434f0d4425d928c0abcc
      68abef8c
  15. 25 Mar, 2017 1 commit
    • Jingning Han's avatar
      Fix tree to cdf index mapping · 8e67c05f
      Jingning Han authored
      This fixes the mis-aligned cdf model derived from tree based
      model. It resolves the compression performance regression in
      dual filter, intra mode, inter mode, and transform block type
      coding, when ec-multisymbol is enabled by default.
      
      With dual filter enabled, the performance regression was 3.6%
      loss for lowres. This fix brings the performance gains back to 1%
      gains.
      
      Change-Id: I80f5485386045908c152c9c11eeacbc650f1e324
      8e67c05f
  16. 24 Mar, 2017 3 commits
  17. 23 Mar, 2017 2 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
    • 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
  18. 22 Mar, 2017 3 commits
    • 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
      Add forward probability update for lv_map · 800df032
      Angie Chiang authored
      The feature is implemented in the following two functions.
      av1_write_txb_probs
      av1_read_txb_probs
      
      Change-Id: I0b646e17ec54d7a10a77a6853439217091455af1
      800df032
    • Arild Fuldseth (arilfuld)'s avatar
      Disallow cm->delta_q_present_flag=1 when cm->base_qindex=0. · 54de7d60
      Arild Fuldseth (arilfuld) authored
      Delta quant doesn't make sense if the intent is to encode
      the frame in lossless mode.
      
      BUG=aomedia:393
      
      Change-Id: Ic26e30267dd3a061d7ee5e980b6950366f06b32f
      54de7d60
  19. 21 Mar, 2017 1 commit
    • Thomas Davies's avatar
      Align EXT_TX with EC_MULTISYMBOL and EC_ADAPT. · b1bedf5f
      Thomas Davies authored
      Do multisymbol coding for transform type.
      Load default cdf probabilities directly.
      Use CDF frame update mechanism when EC_ADAPT is
      enabled.
      
      Change-Id: Id23c927e81587b560e9df8b9bc56c0e2e3bb6f03
      b1bedf5f
  20. 20 Mar, 2017 3 commits
    • hui su's avatar
      Make ext-intra/intra-interp work with ec-multisymbol · b4e25d2c
      hui su authored
      Use cdf to signal intra filter type.
      Skip forward update when ec-adapt is on.
      
      Change-Id: Idd446e081b8e9ea33356e60423b372bfd85a80db
      b4e25d2c
    • Angie Chiang's avatar
      Turn off token related check for lv_map experiment · 1dca126c
      Angie Chiang authored
      lv_map is not using token list anymore
      
      Change-Id: Ief4f743975815c889d83703cc42b019fce517a69
      1dca126c
    • Alex Converse's avatar
      ext_partition_types: Bring into alignment with ec_multisymbol and ec_adapt · 57795a4c
      Alex Converse authored
      ec_multisymbol+ext_partition_types:
      base_ext_types@2017-03-15T18:24:38.012Z -> 8565_3_ext_types@2017-03-17T18:29:48.794Z
      
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.0346 | -0.0343 | -0.0341 |  -0.0345 | -0.0345 | -0.0344 |    -0.0345
      
      ec_multisymbol+ec_adapt+ext_partition_types:
      base_adapt_ext_types@2017-03-15T18:27:31.704Z -> 8565_3_adapt_ext_types@2017-03-17T18:30:01.108Z
      
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.0422 | -0.0420 |     N/A |  -0.0425 | -0.0423 | -0.0423 |    -0.0420
      
      Change-Id: Ia40f118f0faf546be13e02ec9ed584dd38529a59
      57795a4c
  21. 17 Mar, 2017 1 commit
    • Sarah Parker's avatar
      Macro to disable warped/obmc_causal with global motion · 19234cc2
      Sarah Parker authored
      Enabling SEPARATE_GLOBAL_MOTION will remove the ability for
      a block that uses zeromv with global motion to pick warped_causal
      or obmc_causal as the motion mode. When this is enabled there is:
      
      0.05% drop on lowres for global + warped enabled
      0.15% drop on midres for global + warped enabled
      
      0.12% drop on lowres with global + motion var enabled
      0.07% drop on midres with global + motion var enabled
      No performance change for global, warped, or motion var individually.
      
      Change-Id: Idbfb8dd7a93da14902438504b06a08e5212e48cb
      19234cc2