1. 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
  2. 10 Feb, 2017 3 commits
    • Steinar Midtskogen's avatar
      Speed up CLPF when there's nothing to clip · f844e6ef
      Steinar Midtskogen authored
      Gives 7% speed-up in the CLPF processing (measured on SSE4.2).
      
      Change-Id: I934ad85ef2066086a44387030b42e14301b3d428
      f844e6ef
    • Steinar Midtskogen's avatar
      Retune the CLPF kernel · 4f0b3ed8
      Steinar Midtskogen authored
      CLPF performance had degraded by about 0.5% over the past six months,
      which isn't totally surprising since the codec is a moving target.
      About half of that degradation comes from the improved 7 bit filter
      coefficients.  Therefore, CLPF needs to be retuned for the current
      codec.
      
      This patch makes two (normative) changes to the CLPF kernel:
      
      * The clipping function was changed from clamp(x, -s, s) to
            sign(x) * max(0, abs(x) - max(0, abs(x) - s +
                   (abs(x) >> (bitdepth - 3 - log2(s)))))
        This adds a rampdown to 0 at -32 and 32 (for 8 bit, -128 & 128
        for 10 bit, etc), so large differences are ignored.
      
      * 8 taps instead of 6 taps:
                     1
          4          3
        13 31  ->  13 31
          4          3
                     1
      
      AWCY results: low delay  high delay
      PSNR:           -0.40%     -0.47%
      PSNR HVS:        0.00%     -0.11%
      SSIM:           -0.31%     -0.39%
      CIEDE 2000:     -0.22%     -0.31%
      APSNR:          -0.40%     -0.48%
      MS SSIM:         0.01%     -0.12%
      
      About 3/4 of the gains come from the new clipping function.
      
      Change-Id: Idad9dc4004e71a9c7ec81ba62ebd12fb76fb044a
      4f0b3ed8
    • Angie Chiang's avatar
      Exclusively uses 12-tap filter in convolve_round · 822eea32
      Angie Chiang authored
      Performance drop by 0.084% on lowres
      
      Change-Id: I2bcaae96b68033a0af7a1da988505623bc14ed94
      822eea32
  3. 09 Feb, 2017 1 commit
  4. 08 Feb, 2017 2 commits
  5. 06 Feb, 2017 2 commits
    • Angie Chiang's avatar
      Add av1_convolve_2d_facade · 7927a97d
      Angie Chiang authored
      When convolve_round is on, av1_convolve_2d_facade will be used for
      interpolation rather than av1_convolve. Will remove the experiment
      code of convolve_round experiment from av1_convolve in another CL.
      
      So far we use 4-bit rounding in the intermediate stage on top of using
      post rounding for compound mode after the last stage.
      
      This will give us roughly 0.45% gain on lowres , 0.39% on midres and
      roughly 0.6-0.7% on hdres
      Altogether, is 1.15% on lowresm, 0.74% on midres and roughly 1.7-1.8% on
      hdres
      
      Note that there no restriction usage of 12-tap filter in the CL.
      Adding that, we will lose roughly 0.1% again on lowres.
      
      Change-Id: I6332e1d888e28a3b3ddc29711817d66e52cb5cdf
      7927a97d
    • Alex Converse's avatar
      ec_multisymbol: Split off new new_tokenset experiment · a9598cd6
      Alex Converse authored
      The new_tokenset experiment replaces the unconstrained tokenset with a
      multisymbol alphabet in an inventive way.
      
      Tested configurations:
      new_tokenset + ec_adapt, new_tokenset, ec_multisymbol
      
      Change-Id: I846ab2e51c2a1dc3f2f9904ed8c47a8e98f853c5
      a9598cd6
  6. 04 Feb, 2017 2 commits
    • David Michael Barr's avatar
      Reset PVQ chroma QM interpolation to constant identity QM · fb993173
      David Michael Barr authored
      The PVQ QM interpolation code needs to be adapted to AV1 ranges.
      
      av1_float_pvq_dist_scale_AM_5f_Jan31@2017-02-02T08:57:23.156Z
       -> av1_float_pvq_dist_scale_AM_5f_Jan31_crfix@2017-02-02T15:14:40.477Z
      
        PSNR |  PSNR Cb | PSNR Cr | PSNR HVS |   SSIM | MS SSIM | CIEDE 2000
      1.8501 | -29.0766 | -6.6775 |   1.8421 | 1.8252 |  1.8228 |    -9.9734
      
      Change-Id: Ib72c1f8eeccf806f8d719866ce80172b6908643e
      fb993173
    • Fangwen Fu's avatar
      add horizontal tile dependence support · 7b9f2b3b
      Fangwen Fu authored
      Change-Id: I1050b69045407381d4626b65a0bf6f35957a66f4
      7b9f2b3b
  7. 03 Feb, 2017 7 commits
    • Yushin Cho's avatar
      Enable an activity masking of PVQ · e4c46918
      Yushin Cho authored
      By default, the activity masking is used with PVQ.
      In addition to '--enable-pvq', '--enable-daala-dist' is also
      required by configure to use the activity masking.
      
      Change-Id: I5100a1db992f0e693e61daf5439de8ae8c64a752
      e4c46918
    • Yushin Cho's avatar
      Fix fixed-pt PVQ compand/expand outputs zero gain · 3ebfe2a4
      Yushin Cho authored
      For fixed-point version of PVQ, which is current default,
      added MAXI(1, ) to limit the minimum companded or expanded gain to be one.
      Previously, gain compand/expand function, which is invoked when
      activity masking is enabled, sometimes outputs zero
      then triggered the assert(gain != 0).
      
      Metric change from floating-pt to fixed-pt PVQ is:
      PSNR  PSNR-HVS  SSIM  CIEDE-2000  PSNR Cb PSNR Cr MS-SSIM VMAF
      0.02  0.10      0.08  0.11        0.01    0.02    0.13    -0.30
      
      Change-Id: I64a60d1970d35a26af227841e4a5e50a89ddc44c
      3ebfe2a4
    • Thomas Davies's avatar
      EC_MULTISYMBOL: Include EOB in multisymbol encoding. · fc1598ad
      Thomas Davies authored
      RD search and trellis encoding are still sub-optimal.
      
      Change-Id: I233979909118241a0c78761c1d5c2cd6857915e0
      fc1598ad
    • Yue Chen's avatar
      Remove interp filter for non-translation global mv · 19e7aa82
      Yue Chen authored
      BDRATE results:
      lowres: -0.880% (up from -0.844%)
      
      Change-Id: I017c0beddcc687148fed33c1e9963e05f1eaf6ea
      19e7aa82
    • Jonathan Matthews's avatar
      Bugfix: ensure for pareto coef that there are no zero range encodings · 13754540
      Jonathan Matthews authored
      Introduced by change I98b33fab6b9f52690f6ad618ac55e725a97be056
      
      BUG=aomedia:349
      
      Change-Id: Ib6df52ac2442f60c159bae2271793b7570d53a19
      13754540
    • Thomas Davies's avatar
      EC_MULTISYMBOL: Add block zero (CBP) counts and probs. · ab78067c
      Thomas Davies authored
      Preparation for merging EOB_TOKEN. The block_zero value
      corresponds to the first EOB_TOKEN: other EOB_TOKEN values will
      be merged with non-zero values.
      
      Change-Id: I94036783ee240fa916a79c544ecd716a9c24fa59
      ab78067c
    • Ryan Lei's avatar
      deblocking_across_tiles->loopfilter_across_tiles · 9b02b0e6
      Ryan Lei authored
      This commit renames deblocking_across_tiles to loopfilter_across_tiles, 
      to get ready for dering and clpf integration.
      
      Change-Id: Id25b051da9b1e5cb92f35a9619662597462d9537
      9b02b0e6
  8. 02 Feb, 2017 4 commits
  9. 01 Feb, 2017 2 commits
  10. 31 Jan, 2017 4 commits
  11. 30 Jan, 2017 5 commits
  12. 27 Jan, 2017 5 commits
  13. 26 Jan, 2017 2 commits
    • Debargha Mukherjee's avatar
      Fix mismtach with ref-mv and ext-partition-types · ff59b6ac
      Debargha Mukherjee authored
      Change the list of search offsets searched when ext-partition-types
      is on for square block_sizes. This is because the VERTICAL_A and
      HORIZONTAL_A partitions are incompatible with the default list.
      
      BUG=AOMEDIA:141
      
      Change-Id: I884c45c3d11039b7dcb72336a928362f926473ed
      ff59b6ac
    • Urvang Joshi's avatar
      Palette: Don't store tokens for pixels outside image boundary. · 56ba91bb
      Urvang Joshi authored
      If part of a block falls outside right and/or bottom image boundary,
      then only store tokens for the part of it within the boundary.
      
      Also, consider only the part of the block within the boundary when
      calculating the number of colors in the image, deciding the base
      colors for palette, RD calculation etc.
      
      The part of color map corresponding to pixels outside the image
      boundary is padded with color indices copied from same row/column.
      This behavior is similar to how pixels outside the boundary are padded.
      
      For screen_content set, this is improves compression performance by
      0.038 overall. One clip, in particular, has a significant gain of 0.8.
      
      Change-Id: I745ca032f313c5041aacc98c03ae4bfc33d840de
      56ba91bb