1. 12 May, 2017 4 commits
  2. 11 May, 2017 6 commits
    • Yue Chen's avatar
      Add CONFIG_INTERINTRA flags and reduce # of interintra modes to 4 · 4d26acb4
      Yue Chen authored
      Use CONFIG_INTERINTRA to properly separate interintra from the basic
      ext_inter experiment.
      When macro REDUCE_INTERINTRA_MODES is 1, only 4 ii modes are enabled
      so as to reduce the complexity overhead.
      (Right now the flag is off)
      
      Change-Id: Iec6f36a1000f181adbb822ad66c7d5b2625e9cc7
      4d26acb4
    • Urvang Joshi's avatar
      Handle tx64x64 correctly in get_entropy_contexts. · 4c6d4369
      Urvang Joshi authored
      This unhandled case was causing an assertion failure.
      
      BUG=aomedia:532
      
      Change-Id: I46665c380ad171e2b9ddf4d41b6e9fff838f8b3e
      4c6d4369
    • Luc Trudeau's avatar
      [CFL] Rename cfl_alpha_ind to cfl_alpha_idx · a9bd85f7
      Luc Trudeau authored
      Change-Id: Id14d83bdce8321bef81972a4f5530a50589d9578
      a9bd85f7
    • Alex Converse's avatar
      Deduplicate write_mb_modes_kf declaration · 619576b4
      Alex Converse authored
      Change-Id: I325f781759c1087815a38ff7c12ea31b8e444575
      619576b4
    • Yi Luo's avatar
      Partial IDCT 32x32 avx2 · 40f22ef8
      Yi Luo authored
      - Function level improvement (ms):
      Functions       ssse3  avx2   Percentage
      idct32x32_1024  794    374    52.9%
      idct32x32_135   354    169    52.2%
      idct32x32_34    197    142    27.9%
      idct32x32_1     n/a     26    n/a
      
      - Integrating in default scan order.
      
      Change-Id: I84815112b26b8a8cb800281a1cfb1706342af57d
      40f22ef8
    • David Barker's avatar
      Vectorize corner matching function · ee674323
      David Barker authored
      Add an SSE4 version of compute_cross_correlation() from
      corner_match.c. This function is about 3.4x the speed of
      the scalar code; determine_correspondence as a whole is about
      2.5-3x the speed it was previously.
      
      BUG=aomedia:487
      
      Change-Id: I707b7cfd5c513c025d3ee7fb6a5f1fa335ecd495
      ee674323
  3. 10 May, 2017 4 commits
    • Luc Trudeau's avatar
      [CFL] use CDF_SIZE macro · e21c0811
      Luc Trudeau authored
      EC_ADAPT stores the count at the last position. As such, the CDF_SIZE
      macro adds 1 to the array size. This resolves valgrind warnings about
      jumps on uninitialized variables.
      
      Change-Id: I58d607a57756cb166a9ae5c4565537ce202183fd
      e21c0811
    • Jingning Han's avatar
      Simplify logic in write_modes_sb · 80f74b0a
      Jingning Han authored
      Remove redundant #if statements and condition checks.
      
      Change-Id: Ic7885564f21730ca67279202a9bcd51f45a04414
      80f74b0a
    • Nathan E. Egge's avatar
      Simplify ifdef's in encoder. · 23e4e7b6
      Nathan E. Egge authored
      Change-Id: I110f7b6cad1935351f8d379bc8a208363e07ecd0
      23e4e7b6
    • David Barker's avatar
      Fix for the use of prev frame mvs when ext-refs is on · 40a42d4b
      David Barker authored
      Also fix a mismatch for resizing with ext-refs enabled.
      
      There are various preconditions which need to be true for it to
      be valid to set cm->use_prev_frame_mvs = 1, including that the
      sizes of this frame and cm->prev_frame must be equal.
      
      With ext-refs enabled, we would sometimes decide to change
      cm->prev_frame to point to the LAST_FRAME reference, without
      re-checking the preconditions. If the LAST_FRAME was smaller
      than the current frame, this could lead to reading garbage off the
      end of its mv array, and eventually to an encode/decode mismatch.
      
      We fix this by rewriting the preconditions as checks on
      cm->prev_frame directly (rather than using cm->last_width and
      cm->last_height), and by testing the preconditions after any
      possible adjustment.
      
      This should not affect the bitstream unless ext-refs is enabled,
      but may affect the bitstream with ext-refs even if resizing is
      not used.
      
      BUG=aomedia:521
      
      Change-Id: I7dfd9ba82cdf77acc2e27e0c9f3aee21d6afeb54
      40a42d4b
  4. 09 May, 2017 12 commits
    • Debargha Mukherjee's avatar
      Build fix for ext-inter · ad8be034
      Debargha Mukherjee authored
      Introduced in https://aomedia-review.googlesource.com/c/11432/
      
      Change-Id: Icbcd2caebd1d0f5451e487722f2078d21e70ee41
      ad8be034
    • Alex Converse's avatar
      intrabc: Allow ext_tx transforms · daa15e4e
      Alex Converse authored
      objective-1-fast results:
      
      sequence       PSNR    PSNR HVS    SSIM    CIEDE   APSNR   MS SSIM VMAF
      average        -0.02    0.01       -0.02   -0.03   -0.02    0.00    0.06
      1080p           0.02    0.01        0.03    0.00    0.01    0.02    0.09
      1080p-screen   -0.32   -0.28       -0.32   -0.44   -0.31   -0.27    0.00
      360p            0.06    0.14        0.10    0.10    0.08    0.11    0.22
      720p            0.00    0.04       -0.05    0.01    0.00   -0.01   -0.10
      wikipedia_420  -1.04   -0.95       -1.05   -1.30   -1.03   -0.88   -0.29
      
      Change-Id: I30ce8a869daf1c3ed539ffed552786cbb785e7d0
      daa15e4e
    • Thomas Daede's avatar
      Re-add encoder speed 8, but without VAR_BASED_PARTITION. · 1206a685
      Thomas Daede authored
      Partial revert of "Remove encoder speed 8 in AV1"
      6c29f464.
      
      Change-Id: I474e26700047854353347ce97cc7d545e3ca0642
      1206a685
    • Yaowu Xu's avatar
      Prevent access array with -1 index · 37fe5fbc
      Yaowu Xu authored
      Change-Id: I9fdf3b543a00700d47b3012b3de7b30ae455900f
      37fe5fbc
    • Urvang Joshi's avatar
      rdopt.c: Add intra-only sanity checks. · 330aec86
      Urvang Joshi authored
      Adds sanity checks to methods that should only be called for intra
      blocks.
      
      Change-Id: I34b24dbb24f6d35ff42bbdf31d29eef2980a05b4
      330aec86
    • Jingning Han's avatar
      Rework inter prediction process in cb4x4 mode · c44009c1
      Jingning Han authored
      Use 2x2 inter prediction for chroma component. This improves the
      compression performance by 0.6% for lowres.
      
      Change-Id: If9d98e49cee63f40085b179652bfacc31ff462ea
      c44009c1
    • Sebastien Alaiwan's avatar
      Reduce variable scope · b507bf19
      Sebastien Alaiwan authored
      This fixes a warning about unused computed values when
      CONFIG_HIGHBITDEPTH is 1.
      
      Change-Id: Ibf1076c4838f750da4a1b940b550ef8ecac6ba02
      b507bf19
    • Fergus Simpson's avatar
      resize-refactor: Change resizing process with helpers · fecb2abc
      Fergus Simpson authored
      Adds three new helpers and changes one other. The intention of this is
      to make the triggering and function of resizing simpler. The new process
      is to resize to the next state and then update the current state to
      match. The new helpers reflect this change and make the overall flow
      simpler.
      
      resize_pending is now a helper instead of a member, so it doesn't need
      to be raised manually. A resize is pending when the numerator or
      denominator of the next resize state is different from the current one.
      resize_pending could be 1 (scale down), 0 (no change), or -1 (return to
      original resolution if 1-pass CBR), but now it can only be 1 or 0. To
      return to the original resolution just set the scale to 1:1. This
      reduces complexity with no change in functionality.
      
      resize_unscaled just returns 1 if the current numerator and denominator
      are equal. This makes some if conditions cleaner.
      
      resize_step makes the current scale equal to the next scale. This
      signifies that a resize is complete and will cause resize_pending to be
      false until the next state is changed. This is the end of the new
      resizing procedure.
      
      av1_calculate_coded_size has been changed to calculate the next size
      instead of the current size. The current state can't be updated until
      the resize is complete because if it were, the resize_pending state
      would drop and the resize wouldn't finish. This just means the next
      resolution is the target resolution until the resize is complete.
      
      Change-Id: I5d5855cc83f532d3a8b1f8853ba70a0d43221fbf
      fecb2abc
    • Zoe Liu's avatar
      A small cleanup on LOWDELAY_COMPOUND · 3ca58dfb
      Zoe Liu authored
      BUG=aomedia:442
      
      Change-Id: I98ada843016d0dd046f89bbcb2e9ae72442a101e
      3ca58dfb
    • Fangwen Fu's avatar
      Sync enc/dec for tempmv_signaling · 930c51c3
      Fangwen Fu authored
      * Change ref parameter to use LAST FRAME instead of
       previous frame, which makes it consistent in
       enc/dec for tempmv_signaling.
      
      BUG=aomedia:511
      
      Change-Id: I02f1101623b7b3b09cd4d3f2977e9503b95818ec
      930c51c3
    • Luc Trudeau's avatar
      [CFL] Support for skip_chroma_rd in CB4X4 · 2c317905
      Luc Trudeau authored
      CFL is disabled when skip_chroma_rd is enabled. This is done by reusing
      the logic in CB4X4. To facilitate integration, the skip logic used in CfL is
      moved inside the read/write functions.
      
      Results on Subset1:
      master@2017-05-08T19:54:48.196Z -> cfl_baseline@2017-05-08T20:06:55.292Z
        PSNR |  PSNR Cb |  PSNR Cr | PSNR HVS |   SSIM | MS SSIM | CIEDE 2000
      0.2668 | -12.0951 | -10.4138 |   0.3095 | 0.2998 |  0.2831 |    -3.6579
      https://arewecompressedyet.com/?job=master%402017-05-08T19%3A54%3A48.196Z&job=cfl_baseline%402017-05-08T20%3A06%3A55.292Z
      
      Change-Id: I45644baa1aceef5ad4da3332fcb10f3fbaac052b
      2c317905
    • Fangwen Fu's avatar
      Make tile dependency experiment work with ext tile. · 70bcb89b
      Fangwen Fu authored
      * Add tile dependency support when ext tile enabled.
      
      Change-Id: I8fe40adf285e171b5b761b15590a8b1c6758b8f7
      70bcb89b
  5. 08 May, 2017 9 commits
    • hui su's avatar
      Palette: avoid memory leak with encoder buffers · 5d493143
      hui su authored
      For multi-thread encoding, previously the encoder buffers are
      allocated at every frame, but only freed at the end of encoding,
      causing memory leaks.
      
      Change-Id: Id0e9d7fba8330e82be9cec1d42b7d4b017b8d772
      5d493143
    • Urvang Joshi's avatar
      Add a new experiment SMOOTH_HV. · e6ca8e83
      Urvang Joshi authored
      This experiment extends ALT_INTRA by adding two new modes:
      smooth horizontal and smooth vertical.
      
      Improvement on *intra frames* in BDRate (PSNR):
      ===============================================
      
      AWCY (high latency): -0.46%
      (Also, -1.0% or more on PSNR Cb,Cr and APSNR Cb,Cr).
      
      AWCY (low latency): -0.43%
      (Also, -0.88% to -0.94% on PSNR Cb,Cr and APSNR Cb,Cr).
      
      Google sets:
      lowres: -0.454
      midres: -0.484
      hdres:  -0.525
      
      Improvement on *video overall* in BDRate (PSNR):
      ================================================
      
      AWCY (high latency): -0.15%
      
      Google sets:
      lowres: -0.085
      midres: -0.079
      
      Change-Id: I9f4e7c1b8ded1fe244c72838f336103ccc715d50
      e6ca8e83
    • Yaowu Xu's avatar
      Convert to use int64_t to aovid int oout-of-range · 0c33b15f
      Yaowu Xu authored
      BUG=aomedia:518
      
      Change-Id: Ia88b50b084c6370073ac4916e00a019963cf0254
      0c33b15f
    • Urvang Joshi's avatar
      Palette: Special case for 2 unique colors. · 773e3542
      Urvang Joshi authored
      When a block only contains 2 unique colors, there's no need to run
      K-means, as 'lb' and 'ub' can directly be used as the centroids.
      
      Two benefits:
      1. Encoding will be faster for this special case, and
      2. Can potentially avoid sub-optimal/duplicate centroids generation
      (due to integer rounding) when 'ub' and 'lb' values are very close.
      
      Change-Id: Ice04fc8577e3cc8c74f87d623a16ac8de3257cdd
      773e3542
    • Debargha Mukherjee's avatar
      Some cleanups on ext-inter config macros · ed057990
      Debargha Mukherjee authored
      Also includes a change in the wedge primary functions providing
      a slight improvement.
      
      Change-Id: I536d3209f59624e23128708e29fa85c1e6fcd97e
      ed057990
    • Luc Trudeau's avatar
      [CFL] Change cfl_load to use width and height · 30596fb2
      Luc Trudeau authored
      Since the size used with cfl_load can either be based on the transform
      block size and the prediction block size, width and height are used as
      parameters instead of TX_SIZE.
      
      This resolves a problem where cfl_compute_alpha_ind was reading
      uninitialized memory.
      
      Change-Id: I187dbdd5b2e8bd85e82bb77eb74859bee2cd3f1e
      30596fb2
    • Angie Chiang's avatar
      Change plane_rd_mult inter uv param from 5 to 6 · ebcdb25e
      Angie Chiang authored
      This will improve the lowres performance by 0.1%
      No significant change on midres and hdres
      
      Change-Id: I0c6e69bf48596e7e5ad49631ed9f9be73bbf3c9a
      ebcdb25e
    • Yaowu Xu's avatar
      Revert "Upgrade to int64_t to avoid out-of-range" · 03013c53
      Yaowu Xu authored
      This reverts commit 9395b34e, because it
      did not have any effect in eliminate ubsan warnings as intended.
      
      Change-Id: I9221385217f062a0356fe0c68643b12751048f69
      03013c53
    • Urvang Joshi's avatar
      Palette: Handle case of too few unique centroids. · 5fb95f7d
      Urvang Joshi authored
      Even though number of unique colors in a block may be at least
      PALETTE_MIN_SIZE, sometimes the K-means can generate fewer than
      PALETTE_MIN_SIZE unique centroids due to integer rounding.
      
      This was resulting in "k - PALETTE_MIN_SIZE" being negative and using
      that as an index into palette_y_size_cost array was causing a UBSan
      error.
      
      BUG=aomedia:515
      
      Change-Id: Ia00b4bb2efebbe43d1fec7b619ebb837b1ae961c
      5fb95f7d
  6. 07 May, 2017 1 commit
  7. 06 May, 2017 2 commits
  8. 05 May, 2017 2 commits
    • Debargha Mukherjee's avatar
      Add speed feature to control global motion compute · 2a9d746c
      Debargha Mukherjee authored
      Adds a speed feature to control which references to use
      to compute global motion.
      Also adds logic to not compute duplicate sets of
      parameters when reference frames point to the same
      buffers.
      Includes some renaming of functions to set good speed
      features to make things clearer.
      
      Change-Id: I641d33441fde98af18cad8d4db49cf7d5d153ead
      2a9d746c
    • Yaowu Xu's avatar
      Initialize int variables to 0 instead of 0.0 · fc4585b5
      Yaowu Xu authored
      fixes a couple of type conversion warnings for msvc2015
      
      Change-Id: I004f072661c981e204bd62b2740201658ad67294
      fc4585b5