1. 02 Jun, 2017 4 commits
    • Angie Chiang's avatar
      Mark SMOOTH2 filter under USE_EXTRA_FILTER flag · aadbb025
      Angie Chiang authored
      Change-Id: Ia9a5d818e8c2ff9b4cc41c6d7950cfe005c20bfc
      aadbb025
    • Alex Converse's avatar
      intrabc: adapt use_intrabc prob · 7c412ea4
      Alex Converse authored
      First keyframe BD-RATE objective-1-fast:
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.3705 | -0.3232 | -0.3812 |  -0.3782 |     N/A | -0.3412 |        N/A
      
      First keyframe BD-RATE twitch-1:
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.2479 | -0.2477 | -0.2467 |  -0.2567 | -0.2486 | -0.2508 |    -0.2487
      
      
      
      Change-Id: Iea6c895c6fe9e9764887a8968f6e5330903969d3
      7c412ea4
    • Ryan Lei's avatar
      integrate parallel_deblocking with CB4x4 · 17905edf
      Ryan Lei authored
      this change makes parallel deblocking experiment works with
      cb4x4. the inner loop process every 4x4 block.
      
      Change-Id: I86adb3d7b6d67a91ccc12aab29da9bfb8c522cf1
      17905edf
    • Joe Young's avatar
      [intra-edge] Use 5-tap filter · 3be70f72
      Joe Young authored
      For intra edge filtering experiment, replace the 2x iteration
      (5-6-5) filter with a 5-tap filter (2-4-4-4-2).
      
      BDrate (1 key-frame) for this change:
      cif:    +0.02%
      midres: +0.04
      720p:   -0.01
      1080p:  -0.03
      4k:     -0.01
      
      BDrate (1 key-frame) for intra-edge experiment:
      (05/31, disable rect-tx, ext-tx, delta-q, ext-delta-q)
      
                1 key-frame     60 frames
               PSNR   SSIM     PSNR  SSIM
      cif:    -0.02   -0.01   -0.03  -0.01
      midres: -0.02   -0.02   -0.05  -0.10
      720p:   -0.36   -0.39   -0.05  -0.06
      1080p:  -0.75   -0.88   -0.22  -0.27
      4k:     -0.91   -1.12   -0.45  -0.54
      
      Change-Id: I834037e662b4483d4d6bdceb1c1624d56ba293a4
      3be70f72
  2. 01 Jun, 2017 8 commits
    • Yushin Cho's avatar
      Fix daala-dist for cb4x4 · 63927c43
      Yushin Cho authored
      The place where av1_daala_dist() is applied for sub8x8 partition is
      moved from sub8x8 mode decision functions to rd_pick_partition().
      
      BD-Rate change by daala-dist with '--disable-var-tx' is:
      (AWCY, objective-1-fast, high delay mode)
      
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      15.1558 | 12.9585 | 14.4662 |  -3.8651 | -1.7102 | -9.2956 |    10.8686
      
      In MSE probe mode:
      
        PSNR | PSNR Cb | PSNR Cr | PSNR HVS |   SSIM | MS SSIM | CIEDE 2000
      0.0429 |  0.0435 |  0.1651 |  -0.0415 | 0.0850 |  0.0122 |     0.0546
      
      Change-Id: I3b2ea916d41c48e433eb641adf44552e4725c198
      63927c43
    • Angie Chiang's avatar
      Add gen_txb_cache() and it's related functions · 2affb3b0
      Angie Chiang authored
      This function pre-generate counts/magnitudes of each level map
      such that we don't have to re-calculate the counts/magnitudes
      while doing the optimization.
      
      Change-Id: Ifdfc89522cf2f2b9f3734d451324081f42b47cb0
      2affb3b0
    • Angie Chiang's avatar
      Add get_coeff_cost() and get_txb_cost() · 488f921c
      Angie Chiang authored
      Change-Id: I085f2bc706fde41afbee5ff48b56acc095f804c2
      488f921c
    • Timothy B. Terriberry's avatar
      cb4x4: Move sub-4X4 TX sizes behind CONFIG_CHROMA_2X2. · fe67ed6a
      Timothy B. Terriberry authored
      cb4x4 itself should not require these sizes.
      
      This simplifies compatibility with other experiments, since we can
      first make them work with cb4x4 (which is now on by default), and
      then worry about chroma_2x2 (which is not) in separate steps.
      
      Encoder and decoder output should remain unchanged.
      
      Change-Id: I4e9fcdae49f238b5099a3c74a398fe993c2545f8
      fe67ed6a
    • Jingning Han's avatar
      Rework loop filter tx size selection · 6e4955d4
      Jingning Han authored
      Update and capture the effective transform block size per color
      plane.
      
      Change-Id: Ib6e0e7abb3973db6b8d511ee7c9948aaab048788
      6e4955d4
    • Yue Chen's avatar
      Make ext_inter/wedge/compound_segment/interintra on by default · f03907a2
      Yue Chen authored
      (1) Make unit tests for masked sad/variance encoder-only
      (2) Fix compile error with intrabc
      (3) Fix warnings reported by static analysis
      
      Change-Id: I0cd2176fcda0b81e1fc30283767678376ced4c42
      f03907a2
    • David Barker's avatar
      Fix integer overflow in warp filter · 17c37ceb
      David Barker authored
      Patch https://aomedia-review.googlesource.com/c/12602/ made the
      variable 'sum' in the warp filter unsigned, to indicate that its
      value should always be >= 0. But 'sum' is used to accumulate
      signed values, and it is expected that some of those values
      will be negative.
      
      The issue is that, when running 'x += y', if x is a uint32_t
      and y is an int (and is 32 bits), the C standard says to
      convert y to a uint32_t before doing the addition. This causes
      overflow, and so undefined behaviour, if y < 0.
      
      This is fixed by making 'sum' signed, and by explicitly bounds
      checking against zero at the end of the filter.
      
      BUG=aomedia:572
      
      Change-Id: I1d484b5f5698db0ec9761807610b3b2b35647983
      17c37ceb
    • Urvang Joshi's avatar
      get_min_tx_size: assert() doesn't need an 'if'. · affbe5e1
      Urvang Joshi authored
      Change-Id: Id2be191fb48ed8d65b452499e1a1a1f470359321
      affbe5e1
  3. 31 May, 2017 1 commit
    • Jingning Han's avatar
      Rework txfm_above and txfm_left context offset · 331662e9
      Jingning Han authored
      Make the txfm_above and txfm_left be processed in the unit of
      miniumum transform block size. Scale the transform block step
      size with respect to the mode_info step size.
      
      Change-Id: Iee4421e005db742cd4ff7899215560063e5f68e5
      331662e9
  4. 30 May, 2017 2 commits
    • David Barker's avatar
      Tidy up warp filter · facac4f5
      David Barker authored
      * Simplify the C version of the warp filter to make the intent
        of the code clearer
      * Replace saturate_uint() in the C warp filter with an assertion
        that the intermediate values are in-range. This is because they
        should (provably) *never* go out-of-range.
      * Add a comment describing the intended hardware architecture
      * Miscellaneous comment updates
      
      Change-Id: I798736f923ece599f22d573d31c5dfccd18b2d0e
      facac4f5
    • Arild Fuldseth (arilfuld)'s avatar
      Use 7-bit smooth and regular filters with DUAL_FILTER · f3b5e7f4
      Arild Fuldseth (arilfuld) authored
      Change-Id: If8f8e1a0032e914beb3ec3bcde221fe4a5605139
      f3b5e7f4
  5. 29 May, 2017 2 commits
  6. 27 May, 2017 1 commit
    • Debargha Mukherjee's avatar
      High precision Wiener filter rework · 11cf46f4
      Debargha Mukherjee authored
      Implements the high precision Wiener filter with an offset
      to reduce the error due to saturation without increasing
      the number of bits needed for intermediate precision.
      
      Also turns the high precision filter on.
      
      Change-Id: I34037a5746a6a89c5fce67753c1b027749085edf
      11cf46f4
  7. 26 May, 2017 3 commits
    • Debargha Mukherjee's avatar
      Clean-up unused 3rd order least squares · 17f041a7
      Debargha Mukherjee authored
      Change-Id: Ia18f9f7034dafb9ac0108143d4f65f3f6b1a77d5
      17f041a7
    • Fergus Simpson's avatar
      resize-refactor: Check pixel dim instead of mb dim · 056732f6
      Fergus Simpson authored
      Changes av1_scale_if_required to check if a resize is needed using the
      width and height from cm directly rather than cm's mi_cols and mi_rows
      times MI_SIZE.
      
      This is simpler, and won't have issues with sizes that aren't divisible
      by MI_SIZE.
      
      Change-Id: Icbf34252a62436bb9bb0f83fa5fd688f7c5ae256
      056732f6
    • Fergus Simpson's avatar
      resize: Clear above context to aligned width · 8c70d917
      Fergus Simpson authored
      This fixes an issue with context clearing introduced by commit
      5e81643d.
      
      In av1_zero_above_context width_y went from being assigned "2 *
      aligned_width" to "width << 1". All this patch does is replace width
      with the aligned_width.
      
      This resolves an issue with random resizing being broken on the master
      branch.
      
      Change-Id: Ib60bf81e6091802053a5a26057c626d4efe6497c
      8c70d917
  8. 25 May, 2017 6 commits
  9. 24 May, 2017 5 commits
    • Thomas Davies's avatar
      AOM_QM: modify low QM levels. · 8f286984
      Thomas Davies authored
      Use a more aggressive tail to simulate larger viewing
      distances better for low value QM levels.
      
      This does not change default QM coding (qmlevel >= 5)
      or non-QM coding.
      
      Change-Id: Ifb6fa6faf8ce9b77177c97798e08418788c53fbd
      8f286984
    • David Michael Barr's avatar
      [CFL] Calculate SSE for distinct alpha before RDO · 84a44dbe
      David Michael Barr authored
      
      
      Separate the codes into a table of distinct values
      and an index into that table.
      Pull the SSE calculation of the RDO loop and avoid
      repeating for the same alpha values.
      
      Change-Id: I8c4bd7eab6f8000e6aca9687d9190abc3e270c37
      Signed-off-by: default avatarDavid Michael Barr <b@rr-dav.id.au>
      84a44dbe
    • Thomas Davies's avatar
      AOM_QM: redesign matrices and support CB_4X4 and RECT-TX. · 6675adff
      Thomas Davies authored
      All matrices are derived by subsampling 32x32 and 32x16 matrices.
      Inter and intra matrices now use the same matrix set.
      
      BUG=aomedia:520
      
      AWCY results for default setting (qm-min=5, qm-max=9):
      
        PSNR  | PSNR Cb | PSNR Cr | PSNR HVS | SSIM  | MS SSIM | CIEDE 2000
         2.75 |  7.98   |    -    |  -3.52   |  0.73 |   -2.21 |   4.22
      
      Change-Id: I8414d19eaf50cfe80d4fe2290da6cdf4ebb406cb
      6675adff
    • Jingning Han's avatar
      Fix set_skip_context logic · f65b89ab
      Jingning Han authored
      Properly reset mi_row and mi_col values per plane.
      
      Change-Id: Ic624f286c8ee2521403557bc1d685752166b1947
      f65b89ab
    • Jingning Han's avatar
      Fix chroma-sub8x8 for non-420 format · bdcee1e7
      Jingning Han authored
      The chroma-sub8x8 is mainly designed for YUV420 format. When the
      format is YUV444, it falls back to regular block size behavior.
      
      Change-Id: Ibedc4f1d59e7bf717384ede9423f22678d54c0fa
      bdcee1e7
  10. 23 May, 2017 3 commits
  11. 22 May, 2017 1 commit
    • Luc Trudeau's avatar
      [CFL] Add support for CHROMA_SUB8X8 · 7f0f6c41
      Luc Trudeau authored
      When chroma_sub8x8 is enable the custom DC_PRED implemented in CfL uses
      chroma_up_available and chroma_left_available instead of up_available
      and left_available.
      
      It was mentioned in 3da18d60 that
      this fixes a rare enc/dec mismatch issue.
      
      Change-Id: Ie8920e956962846db15e24bcf7e7eaa13ccb8c12
      7f0f6c41
  12. 21 May, 2017 4 commits
    • Timothy B. Terriberry's avatar
      cb4x4: Elide special cases cb4x4 doesn't need · 9edb72c9
      Timothy B. Terriberry authored
      These conditions in has_top_right() are never true when cb4x4 is
      enabled.
      
      The corresponding check in has_bottom_left() is already behind a
      similar #if.
      
      This is needed by a subsequent patch to move sub-4x4 block sizes
      behind their own configuration flag, since that changes the value
      of bw_unit, which might cause the condition to become true when it
      should not be.
      
      Encoder and decoder output should remain unchanged.
      
      Change-Id: I648654dfc265f911d83668d94dc927ebc0c70771
      9edb72c9
    • Timothy B. Terriberry's avatar
      cb4x4: Don't assume TX units are half MI_SIZE in has_bottom_left() · 47de4660
      Timothy B. Terriberry authored
      Currently the "transform units" used to measure transform sizes
      in some parts of the code are based on the smallest defined
      transform size.
      
      cb4x4 currently defines a 2x2 transform size, even when chroma_2x2
      is not enabled, which means that the scale of the transform units
      was always double that of MODEINFO units.
      
      Several areas of the code were hard-coding this assumption instead
      of converting from one to the other using appropriate constants.
      
      Change-Id: Iff437425f2c5abd02a82ff1c7c8002aefc2f75a6
      47de4660
    • Timothy B. Terriberry's avatar
      cb4x4: Don't assume TX units are half MI_SIZE in skip context indexing. · 5e81643d
      Timothy B. Terriberry authored
      Currently the "transform units" used to measure transform sizes
      in some parts of the code are based on the smallest defined
      transform size.
      
      cb4x4 currently defines a 2x2 transform size, even when chroma_2x2
      is not enabled, which means that the scale of the transform units
      was always double that of MODEINFO units.
      
      Several areas of the code were hard-coding this assumption instead
      of converting from one to the other using appropriate constants.
      
      Change-Id: Ibc55671aa5bc3ad272cb8a036f9c4f9621df85ab
      5e81643d
    • Timothy B. Terriberry's avatar
      cb4x4: Don't assume TX units are half MI_SIZE in predict_square_intra_block() · 31bc29f6
      Timothy B. Terriberry authored
      Currently the "transform units" used to measure transform sizes
      in some parts of the code are based on the smallest defined
      transform size.
      
      cb4x4 currently defines a 2x2 transform size, even when chroma_2x2
      is not enabled, which means that the scale of the transform units
      was always double that of MODEINFO units.
      
      Several areas of the code were hard-coding this assumption instead
      of converting from one to the other using appropriate constants.
      
      Change-Id: I86057b85b7d4cd810d87da28f5eedc5b27597e29
      31bc29f6