1. 19 Feb, 2018 6 commits
  2. 18 Feb, 2018 3 commits
    • Jingning Han's avatar
      [NORMATIVE] Enable mfmv for low latency settings · a127b42d
      Jingning Han authored
      Tested in the low latency setting. Comparing the three options:
      
      (1). Cut off temporal mv altogether.
      (2). Use collocated mv referncing.
      (3). Use mfmv referencing.
      
      The current baseline is using (1).
      
      The results are:
      (2) improves the compression performance over (1) by -0.59% for
      lowres and -0.65% for midres.
      
      (3) improves over (1) by -1.05% for lowres and -1.43% for midres
      
      BUG=aomedia:1403
      
      Change-Id: Ie683110ecbe16131f8aea123bca490f8897ebdd8
      a127b42d
    • Yunqing Wang's avatar
      Allocate restoration buffers only when necessary · b2f3adf3
      Yunqing Wang authored
      The restoration buffers are freed and allocated at every frame, which
      is not necessary. This patch makes the allocation to happen only when
      it is necessary.
      
      Change-Id: I773f7ec9202d17c57bba44a698350e05101fa871
      b2f3adf3
    • Debargha Mukherjee's avatar
      Merge HIGHPRECISION_INTBUF into LOWPRECISION_BLEND · 948f2a99
      Debargha Mukherjee authored
      The HIGHPRECISION_INTBUF=1 enables round_0 to be 3.
      This is now merged into the LOWPRECISION_BLEND flags
      for ease of management.
      
      Change-Id: Ia336f24ea87d824d7034012cfed9c4c3129bf6eb
      948f2a99
  3. 17 Feb, 2018 6 commits
    • Zoe Liu's avatar
      [NORMATIVE] Unify context design for single ref · 3b353474
      Zoe Liu authored
      The CL makes the context design for single reference frame coding the
      same as that for the compound reference frame coding. There are 3
      contexts designed for each of the binary symbols for the single
      reference frame scenario, and the designed contexts simply rely on the
      counts of the references used in the neighboring two blocks.
      
      Once this CL is merged, the coding of the reference frames, regardless
      of single prediction or compound prediction, will all follow the same
      context design pattern for all the binary symbols. The design logic is
      much simpler and the lines of code for each binary symbol context
      identification are reduced by 80%.
      
      Further, this CL has obtained a small coding gain for 30 frames with
      the default coding tools:
      
      lowres: avg_psnr -0.015%; ovr_psnr -0.021%; ssim -0.002%
      midres: avg_psnr -0.108%; ovr_psnr -0.139%; ssim -0.135%
      
      BUG=aomedia:1402
      BUG=aomedia:973
      
      Change-Id: Ia72a1d18e85ac3a05308675b60b95f80f2219c46
      3b353474
    • Debargha Mukherjee's avatar
      Add a wrapper to 8-bit scaled convolve function · 3ffa0fef
      Debargha Mukherjee authored
      This addesses a crash in a situation where the scaled convolve
      function is called without a valid dst buffer in the conv_params
      structure.
      
      Change-Id: Ia4a0a1213f06447155d6c92aa9efc183d8c4a79c
      3ffa0fef
    • Jingning Han's avatar
      Silience compiler warning when ext-partition is off · 84597cca
      Jingning Han authored
      Change-Id: I24e98062fec2cf73e294d34bf02419f7917a9bf0
      84597cca
    • Jingning Han's avatar
      Fix rate estimate when optimize_b is off · 70e0fdea
      Jingning Han authored
      Fix the rate cost count when the optimize_b route is set off in
      the rate-distortion optimization process. Thanks to pohhsu@microsoft
      for finding this issue and pointing the fix.
      
      Change-Id: I54d9ec8102792a1575fc66bc6be2003e94eeb488
      70e0fdea
    • Jingning Han's avatar
      [NORMATIVE] Fix top right mv check condition for VERT_A partition · 56066252
      Jingning Han authored
      When a coding block runs VERT_A partition, the coding order does
      not follow raster order. This requires a special handle on the
      bottom left square block to disable its reference towards the
      top-right corner. Prior to this change the codebase would disable
      the bottom-right square, as well as the right rectangular blocks,
      from referencing the top-right mv. This commit fixes such check
      condition to allow the right rectangular block to access the top
      right mv.
      
      BUG=aomedia:1343
      
      Change-Id: I87049f0cec8ed7557a87c3fdef83e01498bbcd75
      56066252
    • Jingning Han's avatar
      Remove unused context models for drl_index · 233c7627
      Jingning Han authored
      Remove deprecated context models for drl index coding.
      
      BUG=aomedia:1208
      
      Change-Id: If255fa93d0c746738f0fc005464388e790c89b63
      233c7627
  4. 16 Feb, 2018 14 commits
  5. 15 Feb, 2018 10 commits
    • Jingning Han's avatar
      Reduce blk_skip array size · ca3f0395
      Jingning Han authored
      Reduce the blk_skip array size to the maximum txb numbers in a
      coding block. This makes the speed 1 about 5% faster for smaller
      resolution clips.
      
      Change-Id: I1812dc4d403e08f0566ead8a14c6046e505bb849
      ca3f0395
    • Jingning Han's avatar
      Reduce txb_coeff_cost map size from 64 to 32 · f32f678d
      Jingning Han authored
      The maximum coding block size is 128 and the minimum tx size is
      4. Using 32 per dimension to keep the txb coeff cost should be
      safe.
      
      Change-Id: Ie44fc581037f0d8270caec64543454701159eec5
      f32f678d
    • Jingning Han's avatar
      Fix compiler errors in cfl.h · 5a338ee4
      Jingning Han authored
      Change-Id: Iadf001ae293ca50b805e8b8c569900f60a23943c
      5a338ee4
    • David Barker's avatar
      [NORMATIVE-DECODING] Add missing special case to has_top_right() · 3f0f1dfc
      David Barker authored
      Commit ea190906 fixed a major bug in has_top_right(), but missed
      out one special case:
      
      Consider a 128x128 block using 64x64 intra predictions. These
      intra predictions are applied in a 'Z' order, and so the bottom-left
      64x64 unit has pixels available from the top-right one. But we were
      mistakenly setting has_top_right() = 0 for this case.
      
      More generally, whichever transform unit has its top-right corner
      at the center of a 128x128 block, should have has_top_right() = 1.
      
      Fix this by introducing an explicit check for the special case.
      
      BUG=aomedia:1309
      
      Change-Id: I690a292be6c1755c76bd428be94ab953dd71fbd2
      3f0f1dfc
    • Yaowu Xu's avatar
      Remove CONFIG_TX64X64 · d3d4159f
      Yaowu Xu authored
      The experiment is fully adopted.
      
      Change-Id: I6cc80a2acf0c93c13b0e36e6f4a2378fe5ce33c3
      d3d4159f
    • Debargha Mukherjee's avatar
      Stop using VP9 convolve scheme in AV1 encoder. · 1fc3df55
      Debargha Mukherjee authored
      Discontinue all VP9 style convolve rounding operations in the non-normative
      parts of the encoder.
      
      The function av1_convolve_2d_sr_c is forced instead of SIMD versions
      of the same function, because of incompatibility when round_1 > 0.
      
      In the -DCONFIG_LOWPRECISION_BLEND=2 -DCONFIG_HIGHPRECISION_INTBUF=1
      setting, results on 15 frames of lowres (cpu-used=1) is -0.019% better.
      
      Change-Id: I72154bd896357c352c944fb2cd3b25bafafba46a
      1fc3df55
    • David Barker's avatar
      [NORMATIVE-SYNTAX, intrabc] Disallow intrabc+superres · 218556e2
      David Barker authored
      Superres should not be used together with intrabc, for the same
      reasons why the other loop filters are disabled when intrabc is
      used. However, we actually read superres information first,
      so the simplest change is to only read allow_intrabc if superres is off.
      
      BUG=aomedia:1384
      
      Change-Id: I55c4c8ace72ab3fac9417da5cf803883be7efb84
      218556e2
    • Yaowu Xu's avatar
      align a stack array to prevent segfault · 1e2084a2
      Yaowu Xu authored
      BUG=aomedia:1383
      
      Change-Id: I8c3de068fd158b4706b578f7609c8ef939364525
      1e2084a2
    • Luc Trudeau's avatar
      [CFL] SSE2/AVX2 Versions of Sum and Subtract Average · 365f73bb
      Luc Trudeau authored
      Includes unit tests for conformance and speed.
      
      SSSE2/CFLSubAvgTest
      4x4: C time = 234 us, SIMD time = 152 us (~1.5x)
      8x8: C time = 664 us, SIMD time = 208 us (~3.2x)
      16x16: C time = 1687 us, SIMD time = 581 us (~2.9x)
      32x32: C time = 6118 us, SIMD time = 2119 us (~2.9x)
      
      AVX2/CFLSubAvgTest
      4x4: C time = 250 us, SIMD time = 221 us (~1.1x)
      8x8: C time = 683 us, SIMD time = 284 us (~2.4x)
      16x16: C time = 1727 us, SIMD time = 1091 us (~1.6x)
      32x32: C time = 6092 us, SIMD time = 2107 us (~2.9x)
      
      Change-Id: I44ffedc683829d2c16089854ac43d4ddb4415bcd
      365f73bb
    • Angie Chiang's avatar
      Simplify the for loop of reading lower levels · 1b1c4a3c
      Angie Chiang authored
      Move tcoeff reconstruction from the for loop of reading lower
      levels to the loop of reading signs
      
      This is to facilitate the potential simd optimization of
      reading lower levels
      
      Change-Id: I61e41ea95d30a948243fb13e3d708dd9860a058a
      1b1c4a3c
  6. 14 Feb, 2018 1 commit
    • David Barker's avatar
      [NORMATIVE-DECODING] Fix above/left chroma block selection · d3afdb90
      David Barker authored
      As pointed out by rsbultje, my previous patch to is_smooth()
      (a883e6ea) was not quite correct. This is because, when we're
      making a chroma prediction, the uv_mode for the above/left chroma
      predictions is not necessarily in above_mbmi/left_mbmi. Instead,
      it may be in any of several places, depending on subsampling and
      the values of mi_row/mi_col.
      
      The cleanest solution is to explicitly maintain pointers to the
      above and left chroma blocks. Then we can simply look at those
      pointers when we want to know the above or left uv_mode.
      
      Also include a bit of refactoring of get_filt_type: It seems
      to be recalculating what's already in xd->{above,left}_mi,
      so just use those directly.
      
      BUG=aomedia:1362
      
      Change-Id: I0230474a50d43b78cb587a2b553da9ca78cec0c6
      d3afdb90