1. 26 Apr, 2017 6 commits
    • Sarah Parker's avatar
      Refactor repeated code for ext-inter compound type search · ddcea395
      Sarah Parker authored
      BUG=aomedia:442
      
      Change-Id: I1919da0dc36ac68cd8ad633335af96dbee4a6c0a
      ddcea395
    • Debargha Mukherjee's avatar
      Fix separation between ext-inter group of expts. · c5f735f9
      Debargha Mukherjee authored
      Change-Id: I9b6f99768c60e743d2fadfaabc532e7c15dc40f3
      c5f735f9
    • James Zern's avatar
      Revert "Prevent out-of-boundary mem access in ext-inter" · 2c5f4710
      James Zern authored
      This reverts commit 6a632e20.
      
      This fails to build after the required change was reverted on top of
      which this was rebased on submit:
      1b6ccfcf Revert "Fix separation between ext-inter group of expts."
      
      Change-Id: I5fc50bccc019a31386aad35b12fed8402a09a217
      2c5f4710
    • Jingning Han's avatar
      Prevent out-of-boundary mem access in ext-inter · 6a632e20
      Jingning Han authored
      This resolves the assertion failure issue when ext-inter is turned
      on.
      
      BUG=aomedia:463
      
      Change-Id: I8b5075d7c1c76c4fb222b750ac797f645adee6b2
      6a632e20
    • Yunqing Wang's avatar
      Add the motion vector unit test · ff4fa068
      Yunqing Wang authored
      This unit test was ported from VP9. To prevent the motion vector out of
      range bug, added a motion vector unit test. In the 4k video encoding,
      always forced to use extreme motion vectors and also encouraged to use
      INTER modes. In the decoding, checked if the motion vector was valid,
      and also checked the encoder/decoder mismatch.
      
      Change-Id: I1c72ea7c32a3cec9c67f1bbdc168e60507e57516
      ff4fa068
    • James Zern's avatar
      Revert "Fix separation between ext-inter group of expts." · 1b6ccfcf
      James Zern authored
      This reverts commit 5ca25dfc.
      
      It breaks high-bitdepth builds with:
      --enable-aom-highbitdepth --enable-experimental --enable-dual-filter
      --enable-entropy --enable-ext-inter --enable-ext-intra
      --enable-ext-partition-types --enable-ext-refs --enable-ext-tx
      --enable-filter-intra --enable-loop-restoration
      
      or more simply:
      --enable-aom-highbitdepth --enable-experimental --enable-ext-inter
      
      BUG=aomedia:463
      
      Change-Id: If814131e634e4411569859f7426efafe158b83fd
      1b6ccfcf
  2. 25 Apr, 2017 5 commits
    • Angie Chiang's avatar
      Use av1_tx_type_cost() in choose_largest_tx_size() · aa0c34b0
      Angie Chiang authored
      BUG=aomedia:442
      
      Change-Id: Ieef34848e73eb31428c6b8652312fc9421605033
      aa0c34b0
    • Zoe Liu's avatar
      Clean code related to joint_motion_search() · 122f3946
      Zoe Liu authored
      (1) Remove one parameter of the function - single_newmv as all setups
      related to this parameter can be done (mostly already have been done)
      before calling into the function;
      (2) Remove one unneccessary checking on the mbmi->ref_frame[1] as the
      line of code right before it indicates it is always a compound ref
      scenario;
      (3) Replace all mbmi->ref_frame[] that have been declared as refs[].
      
      BUG=aomedia:442
      BUG=aomedia:447
      
      Change-Id: I022e69d2711dd88086403cf38e65c462b28383ce
      122f3946
    • Jingning Han's avatar
      Resolve compiling error due to dual-filter and intrabc · d6c17d98
      Jingning Han authored
      Initialize the inter filter type array in intrabc mode when
      dual filter is turned on. This resolves a compiling error when
      both experiments are turned on.
      
      Change-Id: Ic4d4f712f83a73029a4a24c7e9284ff9fc9baf3c
      d6c17d98
    • Debargha Mukherjee's avatar
      Change type of rd variable · c30934bc
      Debargha Mukherjee authored
      Silences some warnings.
      
      Change-Id: I8e90368a973c1fc4a88a1bb92b779aa68981dbb5
      c30934bc
    • Zoe Liu's avatar
      Clean a small portion of code for highbitdepth setup · 76fcff7c
      Zoe Liu authored
      BUG=aomedia:442
      
      Change-Id: I63ae1f2842c503cc4807e5ee7d2c10c309c56f40
      76fcff7c
  3. 24 Apr, 2017 5 commits
  4. 22 Apr, 2017 1 commit
  5. 21 Apr, 2017 2 commits
  6. 20 Apr, 2017 5 commits
    • Yue Chen's avatar
      Always use above predictor in under 8x8 chroma obmc · f7ba6470
      Yue Chen authored
      Change-Id: Ic23c96b78112ef9fbd7adad69f63bdbe3a56ce23
      f7ba6470
    • Alex Converse's avatar
      intrabc: Add initial skeleton · 28744309
      Alex Converse authored
      Missing features:
      * RDOPT (Forced on for certain blocks)
      * Any form of border extension
      * Non MI sized right and bottom edges
      * MV prediction
      
      Present features:
      * Force intrabc for some blocks
      * Carry intrabc in the bitstream
      * Validate DV is causal
      * Reconstruct intrabc block assuming border extension is unnecessary
      
      Change-Id: Ib1f6868e89bfacc2a4edfc876485bad1b347263b
      28744309
    • Yushin Cho's avatar
      Fix daala-dist in sub8x8 inter rdo without cb4x4 · 4483e3dd
      Yushin Cho authored
      Fixes several bugs in daala-dist, sub8x8 inter mode
      with --disable-cb4x4.
      
      Changes on BD-Rate are:
      (objective-1-fast, high delay mode, --disalble-cb4x4):
      
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      14.0337 | 13.0132 | 14.6055 |  -3.2030 | -2.2092 | -9.3902 |    10.3399
      
      Additionally, BD-Rate change by daala-dist in enforced MSE mode
      which can show the correctness of implementation is
      
        PSNR | PSNR Cb | PSNR Cr | PSNR HVS |   SSIM | MS SSIM | CIEDE 2000
      0.0048 |  0.0789 |  0.0209 |   0.0443 | 0.0137 |  0.0411 |     0.0441
      
      Change-Id: I68ec90c6072aa3564522c2b8e87b62a998cec47c
      4483e3dd
    • David Barker's avatar
      Harmonize ext-inter and ref-mv · 3dfba994
      David Barker authored
      This changes the behavior of the ext-inter compound modes
      as follows:
      * NEAREST_NEARESTMV, NEAR_NEARMV, NEW_NEWMV, ZERO_ZEROMV
        work the same as the corresponding compound modes without
        ext-inter
      * NEAREST_NEWMV and NEW_NEARESTMV keep their current behavior,
        which is to use the first ref-mv candidate pair for their
        particular reference frames
      * NEAR_NEWMV and NEW_NEARMV select between the second, third,
        and fourth candidate pairs.
      * NEAREST_NEARMV and NEAR_NEARESTMV use the first candidate
        pair for the NEAREST component and the second, third, or
        fourth candidate pair for the NEAR component.
      
      Also do some minor refactoring and fix compile errors
      with --enable-ext-inter --disable-ref-mv
      
      Change-Id: If0d2a60559083b7c1189909d426b705af42d2d0e
      3dfba994
    • hui su's avatar
      palette-delta-encoding experiment · d13c24a5
      hui su authored
      Transmit palette colors with delta encoding.
      Coding gain on scrren_content testset:
      overall 0.67%  keyframe 1.37%
      
      Change-Id: I72ce9061dfddf933e9f7530f069955afcb07edf8
      d13c24a5
  7. 19 Apr, 2017 1 commit
    • David Barker's avatar
      Fix some rdopt bugs in ext-inter · cb03dc34
      David Barker authored
      * Refactor write_inter_mode and cost_mv_ref slightly
      
      * In handle_inter_mode: When discount_newmv_test returns 1,
        ext-inter is enabled, and we're costing up a compound mode,
        we would previously call cost_mv_ref with mode=NEARESTMV and
        comp_pred=1. But this is inconsistent when ext-inter is enabled!
      
        Fix this by changing the behaviour of cost_mv_ref to (effectively)
        derive comp_pred from the mode passed in, and switch to
        mode=NEAREST_NEARESTMV in the above case.
      
      * Fix incorrect motion vector costing for some compound modes
      
      * Fix a case where compound blocks were mis-costed. This primarily
        affects ext-inter *without* wedge or compound-segment enabled,
        but should still have some small impact when those experiments
        are enabled.
      
        The cause of this is that we only spend bits to send the
        interinter compound type if is_any_masked_compound_used(bsize)
        returns true. But the rdopt loop forgot to check this condition
        in one case.
      
      Change-Id: I8b54cb3552f9ec384fd5ea260e12685168fbccc1
      cb03dc34
  8. 18 Apr, 2017 1 commit
    • Angie Chiang's avatar
      Add txk_sel exp · cd9b03fb
      Angie Chiang authored
      This will separate the transform kernel selection from lv_map
      experiment such that we can evaluate each feature's performance
      separately
      
      Note that txk_sel is build on top of lv_map
      
      Change-Id: I5bd1ea99be30000efcdc2bcd42de002b78b1c3c8
      cd9b03fb
  9. 17 Apr, 2017 2 commits
  10. 16 Apr, 2017 1 commit
  11. 14 Apr, 2017 1 commit
    • Sarah Parker's avatar
      Refactor gm/wm/obmc for cleaner warping interactions · 4c10a3c2
      Sarah Parker authored
      This creates a central function which defines when a
      block should be warped. It also refactors the
      WARPED_MOTION code so that all calls to av1_warp_plane
      happen in the same location.
      
      No change in performance.
      
      Change-Id: Icaf9ec7700d34523809258594bb9843bb2975f46
      4c10a3c2
  12. 12 Apr, 2017 6 commits
  13. 11 Apr, 2017 4 commits
    • Angie Chiang's avatar
      Fix invalid tx_type returned by get_tx_type · 18ad894a
      Angie Chiang authored
      1) Check if tx_type is valid in get_tx_type
      
      2) Remove scan_order from rdcost_block_args
      When lv_map is on, scan_order depends on tx_type but tx_type is
      not decided before entering block_rd_txfm yet. Therefore
      assigning a scan_order into rdcost_block_args and then passing it
      into block_rd_txfm will cause error.
      
      3) Pass correct index into intra_mode_to_tx_type_context in
      get_tx_type
      
      This CL doesn't affect baseline/supertx's stats.
      
      Change-Id: I59eb12aaf1edd9110ce7a92ce61f81bf89cd5920
      18ad894a
    • Angie Chiang's avatar
      Modify choose_tx_size_type_from_rd for lv_map exp · f1cb075d
      Angie Chiang authored
      The tx_type becomes dummy when lv_map is on. The tx_type search
      will be performed in av1_search_txk_type() and the results will be
      stored in txk_type[]
      
      In choose_tx_size_type_from_rd, we use best_txk_type[] to record
      the best search result within different tx_size.
      
      Change-Id: I67c489d261aecaa0092e0cc562670588c6c55941
      f1cb075d
    • Angie Chiang's avatar
      Call av1_search_txk_type in block_rd_txfm · e50f3eca
      Angie Chiang authored
      This is part of tx kernel selection feature.
      
      Change-Id: I822e5a46d39c1fd525c911fc2a06e1be041d8ec8
      e50f3eca
    • Jingning Han's avatar
      Reset x->skip flag in the ref-mv search loop · 52617b26
      Jingning Han authored
      Resolve the unit test failure on
      AV1/LosslessTestLarge.TestLossLessEncoding/0
      
      Change-Id: Ica884da0d0e5bd808c9f02f5de0a29cab950e7be
      52617b26