1. 26 Apr, 2017 2 commits
    • James Zern's avatar
      get_tx_type: remove dead store · 7cdaa607
      James Zern authored
      w/ !(FIXED_TX_TYPE || CONFIG_EXT_TX)
      
      BUG=aomedia:445
      
      Change-Id: I4e9e531f1983656030c61d823e16f7704b89cfdd
      7cdaa607
    • 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 1 commit
    • Fangwen Fu's avatar
      Extend delta q to have delta lf · 231fe424
      Fangwen Fu authored
      This is the second patch.
      * Add delta loop filter level at super block level.
      * Add symbol coding for delta lf syntax
      * Allow delta lf to work with segments
      
      Change-Id: I393a021a875d03c6e113127cbb3543fc077308e4
      231fe424
  3. 24 Apr, 2017 4 commits
    • Yaowu Xu's avatar
      Cleanup: Remove const for params passed by value · 4ff59b55
      Yaowu Xu authored
      BUG=aomedia:448
      
      Change-Id: Ieff977fca8a5033ddef2871a194870f59301ad8f
      4ff59b55
    • Debargha Mukherjee's avatar
      Fix separation between ext-inter group of expts. · 5ca25dfc
      Debargha Mukherjee authored
      Change-Id: I359d100548ed337d643a421591243565b08945ed
      5ca25dfc
    • Sarah Parker's avatar
      Use correct bsize in vartx sub8x8 max tx_size lookup · 106b3cbc
      Sarah Parker authored
      This fixes crashes due to infinite recursion when var_tx,
      ext_tx and rect_tx are enabled without cb4x4. This
      is the first part of an ongoing fix for this experiment
      interaction.
      
      Change-Id: I674f28294666102aff2265f6b6112816cac17378
      106b3cbc
    • Luc Trudeau's avatar
      [CFL] Custom block-level DC_PRED · f8164157
      Luc Trudeau authored
      Adds the CfL experiment flag and computes a block-level DC_PRED that is
      required by CfL in order to compute alpha_cb and alpha_cr.
      
      The rate-distorsion impact of computing DC_PRED at the prediction block level
      for chroma planes is rather small
      
      Subset 1:
      master_no_cdef@2017-04-18T20:37:05.712Z
        -> block_DCPRED_no_cdef@2017-04-18T20:38:07.381
        PSNR | PSNR Cb | PSNR Cr | PSNR HVS |   SSIM | MS SSIM | CIEDE 2000
      0.0712 |  0.0337 | -0.1692 |   0.0693 | 0.0814 |  0.0710 |    -0.0063
      Note: CDEF was disabled because of problematic asserts.
      
      Change-Id: I44d1cde8605b108366f4bd4cedbf5159dbbb5880
      f8164157
  4. 21 Apr, 2017 1 commit
  5. 20 Apr, 2017 3 commits
    • 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
    • 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
    • Yunqing Wang's avatar
      ext_tile: add 2 tile encoding modes · d8cd55f4
      Yunqing Wang authored
      Added 2 tile encoding modes:
      TILE_NORMAL mode supports the large-scale tile coding up to 1024 x 1024
      tiles;
      TILE_VR mode supports the large-scale tile coding and also the decoding
      of a single tile.
      
      TILE_NORMAL mode allows the non-vr content to be encoded in multiple tiles
      without using the coding tool that are designed for vr applications.
      
      Change-Id: Id804806a1bbcb916b7f5dc7e2c5509d88f3defcb
      d8cd55f4
  6. 18 Apr, 2017 3 commits
    • Ryan Lei's avatar
      unify the intra prediction angle options for different block sizes · c81ea6e0
      Ryan Lei authored
      this change unifies the intra prediction angles so that 8x8 block has
      the same number of angles and angle steps as 16x16 and 32x32 blocks.
      the benefit is that HW implementation can have the same logic to
      handle all block sizes. otherwise, prediction angles for 8x8 is
      different from other block sizes, which requies special logic.
      
      Change-Id: I99f8d82b4b96fa1442a657b56a93e326f1eec321
      c81ea6e0
    • 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
    • Yi Luo's avatar
      Deliver the eob threshold to inverse transform · f8e87b46
      Yi Luo authored
      Change-Id: Iaa8ab77eb4a982759939fb5fc475f699cb21a4e1
      f8e87b46
  7. 17 Apr, 2017 2 commits
  8. 12 Apr, 2017 2 commits
    • Sebastien Alaiwan's avatar
      Homogenize configuration option name. · 71e87847
      Sebastien Alaiwan authored
      Rename '--enable-aom-highbitdepth' to '--enable-highbitdepth'
      
      Change-Id: I1de13c3508c30c552532993419d8ace326142ab6
      71e87847
    • Timothy B. Terriberry's avatar
      pvq: Remove support for disabling nodesync. · 44bb6d06
      Timothy B. Terriberry authored
      This was broken by commit 1238137c.
      
      When calling the generic coder with a max, it truncates the CDF, but
      then tries to encode/decode with the Q15 entropy coder functions
      with built-in adaptation. That causes assertion failures, because the
      total probability isn't 32768.
      
      We could fix it by re-scaling the CDF, and then doing adaptation
      assuming there was no max, but that requires several special-case
      code paths.
      
      Instead, since non-robust streams were the only thing that still
      required calling the generic coder with a max, and since the gain
      from them is very small (and they require doing more DSP just to be
      able to parse the stream), we simply remove the option and force
      the use of robust streams all the time.
      
      With robust streams enabled, encoder output should not change, and
      all streams should remain decodable without decoder changes.
      
      Thanks to Nathan Egge for reporting the problem.
      
      Change-Id: I6c81481abb796688bf703d68f164d208e6a69f20
      44bb6d06
  9. 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 get_tx_type for lv_map experiment · 2b58a622
      Angie Chiang authored
      This CL will break lv_map experiment because it's a partial
      implementation for transform kernel selection
      
      Change-Id: I927cb70c2fb0d079d485c1a5ca32c0e72335aad7
      2b58a622
    • Angie Chiang's avatar
      Add search_txk_type · 808d859f
      Angie Chiang authored
      Change-Id: I50493fa9daf2de8859608d57f8d2010842c9eb07
      808d859f
    • Zoe Liu's avatar
      Remove the single ref inter mode NEWFROMNEARMV · 7f24e1b0
      Zoe Liu authored
      Change-Id: I246da885154303d139f5d97c53ebfc55d6dc82ca
      7f24e1b0
  10. 10 Apr, 2017 1 commit
    • Angie Chiang's avatar
      Use block_idx rather than block_raster_idx · 752ccce7
      Angie Chiang authored
      1) block_raster_idx is actually raster order only when tx_size
      is TX_4x8.
      It's very specific, so we should put it near to the place it's
      actually used.
      
      2) Sync the meaning of block_idx on encoder/decoder sides
      
      Change-Id: I7d37a992cb773503e29f9c0d9d2586e580aa6173
      752ccce7
  11. 06 Apr, 2017 1 commit
    • Yue Chen's avatar
      Disable OBMC + compound · 8636da61
      Yue Chen authored
      Disable OBMC mode if the current block uses compound prediction.
      Results if we only disable this combination for small
      block sizes are also listed.
      
      Loss of gain (lowres/midres/AWCYHL)
      no compound :         0.230%/0.105%/0.15%
      no compound <= 8x8:   0.043%/-0.016%/0%
      no compound <= 16x16: 0.153%/0.029%/0.05%
      
      
      Change-Id: I94c9d704172dd02e53f3b2004a8032a4f1265057
      8636da61
  12. 05 Apr, 2017 1 commit
  13. 02 Apr, 2017 1 commit
    • Yue Chen's avatar
      Use 1 sample per neighbor for local warping model estimation · 5558e5da
      Yue Chen authored
      Only 1 sample needs to be collected. Max of 8 neighbors are
      used.
      In LS estimation, the projection samples (sx, sy)->(dx, dy) are
      intentionally smoothed by assuming 3 shifted versions
      (sx, sy+n)->(dx, dy+n), (sx+n, sy)->(dx+n, dy), (sx+n,
      sy+n)->(dx+n, dy+n) also contribute to the estimation.
      For example, instead of using A[0] = sx^2, we use the sum of
      squares of source x of four points, A[0] += 4sx^2+4*n*sx+n^2.
      But computational cost wise, it does not add much overhead. Coding
      gain is mostly same as the old version. If no smoothing is added,
      will lose 0.3% on lowres.
      
      Change-Id: I04be32cffa525f7dc8ee583c0bf211d7bdc6e609
      5558e5da
  14. 30 Mar, 2017 1 commit
    • Yue Chen's avatar
      Restrict # of neighbors in obmc blending · 1bd42be6
      Yue Chen authored
      Only blend with the first N neighbors at each side. If the size of
      one dimenstion is 8/16/32/64, the max # of neighbors to overlap
      with is 1/2/3/4.
      Previously we disable obmc mode if there are too many neighbors.
      
      Change of performance in AWCY, compared to disabling obmc if
      at any side there are more than 2 overlappable neighbors.
      HL improved by 0.02%
      LL improved by 0.09%
      
      Change-Id: I93d9a65c6c4aabf0b4a4946e2253d3e2ef21a662
      1bd42be6
  15. 22 Mar, 2017 1 commit
    • Jean-Marc Valin's avatar
      Jointly optimizing deringing and clpf · 5f5c132f
      Jean-Marc Valin authored
      We now signal joint strengths and use a greedy algorithm for the search.
      
      low-latency, cpu-used=4:
      
      ll4-cdef@2017-03-22T03:42:10.815Z -> ll4-cdef-newsearch-var-header-newlambda-refine4@2017-03-22T15:56:46.471Z
      
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.0792 |  0.3551 |  0.4393 |  -0.0108 | -0.1338 | -0.0141 |     0.1452
      
      Change-Id: I619ae1c7c7d7ec04fe993cabc5773b07c3f5b201
      5f5c132f
  16. 21 Mar, 2017 1 commit
    • Thomas Davies's avatar
      Align EXT_TX with EC_MULTISYMBOL and EC_ADAPT. · b1bedf5f
      Thomas Davies authored
      Do multisymbol coding for transform type.
      Load default cdf probabilities directly.
      Use CDF frame update mechanism when EC_ADAPT is
      enabled.
      
      Change-Id: Id23c927e81587b560e9df8b9bc56c0e2e3bb6f03
      b1bedf5f
  17. 20 Mar, 2017 1 commit
    • Debargha Mukherjee's avatar
      Add config flags and macros to control ext-inter · 37f6fe61
      Debargha Mukherjee authored
      Adds a dependent config flag 'interintra' to turn on/off interintra
      modes altogether.
      Adds a dependent config flag 'wedge' to turn on/off wedge compound
      for both interinter and interintra.
      
      Adds another macro to change wedge predictors to use
      only 0, 1/2, or 1 weights.
      
      From now, use
      --enable-ext-inter --enable-wedge --enable-interintra to get the
      same behavior as the old --enable-ext-inter.
      
      Change-Id: I2e787e6994163b6b859a9d6431b87c4217834ddc
      37f6fe61
  18. 17 Mar, 2017 3 commits
    • Sarah Parker's avatar
      Macro to disable warped/obmc_causal with global motion · 19234cc2
      Sarah Parker authored
      Enabling SEPARATE_GLOBAL_MOTION will remove the ability for
      a block that uses zeromv with global motion to pick warped_causal
      or obmc_causal as the motion mode. When this is enabled there is:
      
      0.05% drop on lowres for global + warped enabled
      0.15% drop on midres for global + warped enabled
      
      0.12% drop on lowres with global + motion var enabled
      0.07% drop on midres with global + motion var enabled
      No performance change for global, warped, or motion var individually.
      
      Change-Id: Idbfb8dd7a93da14902438504b06a08e5212e48cb
      19234cc2
    • Debargha Mukherjee's avatar
      Fix config flags among var-tx/ext-tx/rect-tx · 428bbb2b
      Debargha Mukherjee authored
      BUG=aomedia:396
      
      Change-Id: I1b7f6dddb06eac9e341518a95a0d71465e613e9e
      428bbb2b
    • Steinar Midtskogen's avatar
      Merge dering/clpf rdo and filtering · a9d41e88
      Steinar Midtskogen authored
      * Dering and clpf were merged into a single pass.
      * 32x32 and 128x128 filter block sizes for clpf were removed.
      * RDO for dering and clpf merged and improved:
        - "0" no longer required to be in the strength selection
        - Dering strength can now be 0, 1 or 2 bits per block
      
                    LL    HL
      PSNR:       -0.04 -0.01
      PSNR HVS:   -0.27 -0.18
      SSIM:       -0.15 +0.01
      CIEDE 2000: -0.11 -0.03
      APSNR:      -0.03 -0.00
      MS SSIM:    -0.18 -0.11
      
      Change-Id: I9f002a16ad218eab6007f90f1f176232443495f0
      a9d41e88
  19. 16 Mar, 2017 1 commit
    • Angie Chiang's avatar
      Draft of av1_update_txb_context · 0397eda0
      Angie Chiang authored
      This draft version only pass compiling check, it's not working yet.
      
      The following goal is to use new coding system when doing bitstream
      packing but keep old coding system in RD loop.
      
      Change-Id: I224a1581d1cc5c67d73e71558fb77d9faf9c2470
      0397eda0
  20. 15 Mar, 2017 1 commit
    • Sarah Parker's avatar
      Fix broken assert when rect-tx is enabled on its own · 076437f4
      Sarah Parker authored
      The function is_rect_tx previously was only defined when
      both ext-tx and rect-tx are enabled together. This function
      needs to be defined when rect-tx is enabled alone to fix
      failing asserts.
      
      Change-Id: Ic8153a55b768cb49caac07d6aeaee109d63410a9
      076437f4
  21. 04 Mar, 2017 1 commit
  22. 03 Mar, 2017 1 commit
    • Yue Chen's avatar
      Restrict the number of neighbors in obmc mode · 5329a2bf
      Yue Chen authored
      Enable obmc mode only when there are <= 2 left neighbors and <=2
      above neighbors. Also disable it when there is no overlappable
      neighbors.
      
      Gain in AWCY test: 1.60%, was 1.64% when there is no restriction
      
      Change-Id: I2d82ef4fb4daa9b0843ac8844f99b9f412c4f379
      5329a2bf
  23. 02 Mar, 2017 2 commits
    • Jingning Han's avatar
      Avoid the use of undefined marco value · b83e64ba
      Jingning Han authored
      Always define USE_TXTYPE_SEARCH_FOR_SUB8X8_IN_CB4X4 to avoid the
      use of undefined value.
      
      Change-Id: I0ad90c5b5316db231e9538487bb4591dfd6a9ce7
      b83e64ba
    • Yue Chen's avatar
      Use 3-tap spatial filter in FILTER_INTRA experiment · 8d8638a1
      Yue Chen authored
      3-tap recursive intra prediction filters are added.
      Macro USE_3TAP_INTRA_FILTER is set to 1 to use 3-tap by default.
      Coding gain of FILTER_INTRA experiment in AWCY, high delay 150f
      3-tap: 0.51%
      4-tap: 0.68%
      
      Change-Id: I44192dd08bfd8155f58a9b0b5cf1de88fceb762e
      8d8638a1
  24. 28 Feb, 2017 1 commit
    • Jingning Han's avatar
      Disable compound mode in sub8x8 coding blocks · c41a549a
      Jingning Han authored
      Disable the support of compound prediction modes for sub8x8 codking
      blocks. Make the rate-distortion optimizations process account for
      such constraints.
      
      With the use 2x2 chroma prediction block, this makes the wrost case
      number of inter predictors same as vp9. It affects the coding
      gains by 0.35% for lowres, 0.17% for midres, and 0.08% for hdres.
      
      The encoding speed is up by 10%.
      
      Change-Id: Ieb2a83030676911baa403e586f1f800cbf485d81
      c41a549a