1. 10 May, 2017 7 commits
    • 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
    • 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
    • Tom Finegan's avatar
      Add Emscripten support to the CMake build. · d46b4d30
      Tom Finegan authored
      Supporting Emscripten requires modification of all uses of the
      target_link_libraries() function to match the form
      of the target_link_libraries() call in Emscripten.cmake.
      
      The AOM_LIB_LINK_TYPE variable has been added to allow for
      flexibility on the libaom side when using toolchains that
      behave similarly to Emscripten.cmake wrt
      target_link_libaries().
      
      To use CMake for an Emscripten build, first install Emscripten, then:
      $ cmake path/to/aom -DCMAKE_TOOLCHAIN_FILE=path/to/Emscripten.cmake -DAOM_TARGET_CPU=generic
      
      BUG=aomedia:76,aomedia:468
      
      Change-Id: I22c7df7912ecfdbc2a52180086b205cc8dcfc0c6
      d46b4d30
    • 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 26 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
    • Yi Luo's avatar
      Use saturation addition to do rounding for avx2 IDCT · 165adf8e
      Yi Luo authored
      - Found this bug when increasing unit test number to 10000.
      - Unit test is therefore also updated.
      
      Change-Id: I938e96f6ebd35ae1bd8affebf8665e1da49a324b
      165adf8e
    • Yaowu Xu's avatar
      Reduce number of AltRefForcedKeyTestLarge tests · 54cae22e
      Yaowu Xu authored
      BUG=aomedia:506
      
      Change-Id: I14c72d8508f250946f8feb221bcd5a48521b787c
      54cae22e
    • Yaowu Xu's avatar
      Reduce number of video frames in set_maps test · 93d3001b
      Yaowu Xu authored
      BUG=aomedia:506
      
      Change-Id: I29d5c68ffe9bc9f440d7c0e8f2e134dd64267d78
      93d3001b
    • Yaowu Xu's avatar
      Prevent access array with -1 index · 37fe5fbc
      Yaowu Xu authored
      Change-Id: I9fdf3b543a00700d47b3012b3de7b30ae455900f
      37fe5fbc
    • Yaowu Xu's avatar
      Reduce number of tests for DatarateTest · 446d037b
      Yaowu Xu authored
      BUG=aomedia:506
      
      Change-Id: I8b52eadefa1946c082bdd06f07657aa2d43e3f2c
      446d037b
    • 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
    • Alex Converse's avatar
      Move AOM_CHECK_MEM_ERROR away from the ABI defining aom_codec_internal.h · 8d38fb74
      Alex Converse authored
      Change-Id: I0c2ae6110142ce6fc6bedf10f1ba3778a8c19c3e
      8d38fb74
    • Jingning Han's avatar
      Fix enc/dec mismatch in ext-partition and cdef · df068334
      Jingning Han authored
      BUG=aomedia:455
      
      Change-Id: I97ecab4f01417734c83a9b8886f145236c9b38a5
      df068334
    • Tom Finegan's avatar
      Default CMake build type to release with debug info. · fc1aac56
      Tom Finegan authored
      Use RelWithDebInfo when CMAKE_BUILD_TYPE is empty in
      non-emscripten builds.
      
      BUG=https://bugs.chromium.org/p/aomedia/issues/detail?id=76
      
      Change-Id: Ie1e8aba5949f28e66056e2efdff1a0fb26ad04bb
      fc1aac56
    • 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
    • Sebastien Alaiwan's avatar
      Fix warning about unused functions · e13a11f3
      Sebastien Alaiwan authored
      Change-Id: Ia6707cf50441f757fb053daeae85fb2d0c9b135e
      e13a11f3
    • 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
    • Sarah Parker's avatar
      Enable ext-tx by default · d7b8320e
      Sarah Parker authored
      Change-Id: I30b1367b8f1417abb36f80ea634036af48afa0ae
      d7b8320e
    • 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
    • Yaowu Xu's avatar
      Speed up ErrorResilienceTestLarge test · 2e7da0a0
      Yaowu Xu authored
      Reduce number of video frames used in tests
      
      BUG=aomedia:506
      
      Change-Id: I96ccdd69870d4ad9f56f7899be3c4ffe4e6e0943
      2e7da0a0
  3. 08 May, 2017 7 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
    • Yaowu Xu's avatar
      Change to use 10 frames in BordersTest · 26843a01
      Yaowu Xu authored
      Change to use 10 frames only in BorderTest instead of 40 frames, to
      reduce time needed for tests.
      
      BUG=aomedia:506
      
      Change-Id: Ia176eb3f643d007fa4d1c5fc182f16d3e7cdf700
      26843a01
    • Yaowu Xu's avatar
      Change to use 15 frames in AqSegmentTest · a51cb568
      Yaowu Xu authored
      Change to use 15 frames only instead of 100 frames, to reduce test
      time.
      
      BUG=aomedia:506
      
      Change-Id: Ib7cf48d2629e8d920f2c2b12820845618d6d58d7
      a51cb568
    • Yaowu Xu's avatar
      Change screen content test to use 3 frames only · 3ccca4bb
      Yaowu Xu authored
      Change to use 3 frames for screen content test from 10 frames, to
      reduce test time needed.
      
      BUG=aomedia:506
      
      Change-Id: Ic7b44be6f3f2b65e7035bdcf24794b814b239ad1
      3ccca4bb
    • 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