1. 10 May, 2017 4 commits
    • Yaowu Xu's avatar
      Change to use defined macros · f35f527f
      Yaowu Xu authored
      Fixes compiling issue of using un-defined macros.
      
      Change-Id: Icf754083c9797c3e141ef247bcd4aa6288ef8877
      f35f527f
    • Debargha Mukherjee's avatar
      Change wedge primitive functions · 0f50dcd4
      Debargha Mukherjee authored
      Change-Id: Ia2ab55cf13dd269a42653cfd810ed287883111c0
      0f50dcd4
    • Sarah Parker's avatar
      Lower base weight in difference modulated masks · 7bb84f30
      Sarah Parker authored
      This improves peformance on the lowres set by about 0.05%
      
      Change-Id: I2b7b7ae11eb96ac6ff582438bcc8e12925f1e2b3
      7bb84f30
    • 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
  2. 09 May, 2017 17 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
      Fix enc/dec mismatch in ext-partition and cdef · df068334
      Jingning Han authored
      BUG=aomedia:455
      
      Change-Id: I97ecab4f01417734c83a9b8886f145236c9b38a5
      df068334
    • 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
      Remove the incorrect comment · dd0d4264
      Zoe Liu authored
      The element of "idx" in the data structure of RefBuffer is a
      connection between AV1_COMMON::RefBuffer and
      AV1_COMMON::BufferPool::RefCntBuffer.
      
      It is being used currently in many places in both the encoder and the
      decoder. "idx" is not only used to track whether a reference buffer is
      alive, but also serve as the connection to RefCntBuffer which contains
      info that RefBuffer itself cannot access.
      
      Change-Id: I5ccdb9c2afe840d04a025da359a704f5fc216ddd
      dd0d4264
    • Zoe Liu's avatar
      A small cleanup on LOWDELAY_COMPOUND · 3ca58dfb
      Zoe Liu authored
      BUG=aomedia:442
      
      Change-Id: I98ada843016d0dd046f89bbcb2e9ae72442a101e
      3ca58dfb
    • Angie Chiang's avatar
      Make convolve_round work with warped_motion · 05685e9a
      Angie Chiang authored
      Warped_motion doesn't go through inter_predictor() function to
      generate prediction where convolve_round is activated.
      Therefore, we could avoid doing post rounding when the
      warped_motion mode is on.
      
      We use do_post_rounding to indicate whether post rounding is
      needed
      Change-Id: Ib17a0c0d4e6e5232e9682afa8cfdb9576f5cf4c0
      05685e9a
    • 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] Compute prediction block DC_PRED as double · bad82f1f
      Luc Trudeau authored
      The prediction block level DC_PRED is stored and computed as double
      instead of int.
      
      Change-Id: I22766c102a7b62d4b5e7621438185808cc0ea8f4
      bad82f1f
    • 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
    • Urvang Joshi's avatar
      Remove an obsolete TODO about II_SMOOTH_PRED. · a7ebdaec
      Urvang Joshi authored
      This has been taken care of already.
      
      Change-Id: I0198fdbcd48fc355013de79644513279c8acb0de
      a7ebdaec
    • 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
  3. 08 May, 2017 14 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
    • Yi Luo's avatar
      Partial IDCT 16x16 avx2 · f6176abb
      Yi Luo authored
      - Function level improvement:
      functions      sse2  avx2  percentage
      idct16x16_256  365   226   38%
      idct16x16_38   n/a   136   n/a
      idct16x16_10   171   110   35%
      idct16x16_1     34    26   23%
      
      - Integrated in AV1 for default scan order.
      
      Change-Id: Ieb1a8e730bea9c371ebc0e5f4a748640d8f5e921
      f6176abb
    • 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
    • Fred BARBIER's avatar
      Deduplicate (inv/fwd)_txfm_cfg_ls arrays · b72ab8fe
      Fred BARBIER authored
      Change-Id: Ibd7091d444cfb3095ddb938100704d3b75cf1af4
      b72ab8fe
    • 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
    • Angie Chiang's avatar
      Implement convolve_round in high bit-depth mode · b03545b4
      Angie Chiang authored
      Change-Id: I48a2148854e2abd0a3cc66aef58bb6a5d77c8b59
      b03545b4
    • Angie Chiang's avatar
      Cleanup inter_predictor and highbd_inter_predictor · 30edaf46
      Angie Chiang authored
      Change-Id: Ieeb044d2b008c409faf7fa5d7253ad2d8f326ca4
      30edaf46
    • Tom Finegan's avatar
      Support CONFIG_GLOBAL_MOTION in the CMake build. · 9d900975
      Tom Finegan authored
      BUG=https://bugs.chromium.org/p/aomedia/issues/detail?id=76
      
      Change-Id: Ia56bdc8da422e9de9b92f357c98ad38017e8b728
      9d900975
    • 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
  4. 07 May, 2017 2 commits
  5. 06 May, 2017 3 commits