1. 13 Jan, 2017 3 commits
  2. 12 Jan, 2017 11 commits
    • Yue Chen's avatar
      Refactor write_modes_b() and decode_block() · 64550b6a
      Yue Chen authored
      In order to reduce the code complexity for handling parameter
      coding and recon separately for each 64x64 in non-causal obmc
      experiment, we break them down to two steps calling separate
      functions, one for params, the other dealing with coefficients
      and recon(decoder side).
      Note: actually the non-causal prediction can use the original
      syntax, but right now in the decoder coeff detoken and recon are
      heavily nested.
      
      Change-Id: I72d9c42ab8f38b57850d6b0481551893f1702822
      64550b6a
    • David Barker's avatar
      Add SSE2 vectorized warp filter for lowbd · d5dfa96e
      David Barker authored
      End-to-end speed improvements: (measured on tempete_cif.y4m,
      20 frames for encoder and all 260 frames for decoder)
      
      * GLOBAL_MOTION encoder: ~10% faster
      * GLOBAL_MOTION decoder: 100-200% faster depending on bitrate
      * WARPED_MOTION encoder: ~2.5% faster
      * WARPED_MOTION decoder: ~20-40% faster depending on bitrate
      
      The improvement in the GLOBAL_MOTION decoder is particularly
      large because its runtime is dominated by calls to warp_plane().
      
      This introduces minor changes to the output of the warp filter,
      but these should be rare.
      
      Change-Id: I5813ab9e90311e27587045153c32d400b6b9eb92
      d5dfa96e
    • Yi Luo's avatar
      High bit depth 32x32 inverse DCT_DCT transform, AVX2 · 3bd83775
      Yi Luo authored
      - Witness the follow user-level speedup on AV1 baseline:
       Encoding time reduction: 4.26%
       Decoding time reduction: 25.35%
      
      Change-Id: Ideaf3cd473ad45ed9256c80d5a5daed0a6e098cf
      3bd83775
    • Yue Chen's avatar
      Add NCOBMC experimental flag · b2d26453
      Yue Chen authored
      NCOBMC (non-causal obmc) allows overlapped prediction that takes
      mvs from blocks at positions with non-causal relation (e.g. at the
      bottom, or to the right) to the current block.
      This experiment will be a sub-experiment of MOTION_VAR, so will only
      be effective when MOTION_VAR is on.
      
      Change-Id: Ie3aa9591e1c15f5cc251664ea3c146210a5010cf
      b2d26453
    • Jingning Han's avatar
      Make av1_update_txb_coeff_cost() check condition support cb4x4 · 904fd182
      Jingning Han authored
      Replace hard coded numbers with macro defs.
      
      Change-Id: I125ef4e4c8c3aead182c583522450626b730bbb3
      904fd182
    • Jingning Han's avatar
      Make rd_debug aligned to var-tx · c7ea761f
      Jingning Han authored
      Fix the corner case and use the right rate cost udpate for rd_debug.
      This would make the var-tx pass rd_debug test.
      
      Change-Id: Ib0fbd2d73030c0d150222c6b7c2dfffc0c6af085
      c7ea761f
    • Jingning Han's avatar
      Make txfm block partition context support rectangular blocks · 0c70a80f
      Jingning Han authored
      Make the transform block partition context model support the
      rectangular transform block size partition. The coding gains
      from cb4x4 and var-tx are:
                cb4x4 + var-tx
      lowres         4.3%
      midres         2.6%
      
      Change-Id: I6cc1413fbf6d7707ca7fd24300623a3f0118be7c
      0c70a80f
    • Nathan E. Egge's avatar
      Move from Daala accounting to AOM accounting. · cefb4094
      Nathan E. Egge authored
      Replace all instances of Daala's OD_ACCOUNTING with those specified by
       CONFIG_ACCOUNTING.
      
      Change-Id: Ibb59fc5df0ce4b0528b15296bf2f14029c414bc0
      cefb4094
    • Nathan E. Egge's avatar
      Don't include Daala EC headers directly. · cceac33a
      Nathan E. Egge authored
      The generic coder now uses the AOM entropy coder API and no longer
       needs to include the entenc.h and entdec.h headers.
      
      Change-Id: I213acb5b6bd8a3fe60dc096b83d76ae72315e9de
      cceac33a
    • Nathan E. Egge's avatar
      Use aom_reader / aom_writer API to code rest. · 25007c88
      Nathan E. Egge authored
      The functions aom_encode_pvq_split() and aom_decode_pvq_split() code
       the rest value as raw bits using the od_ec_enc_bits() and
       od_ec_dec_bits() functions.
      These code bits in the reverse order as the aom_write_literal() and
       aom_read_literal() functions, so both the encoder and decoder must
       be changed at the same time.
      This commit has no impact on metrics but is a bitstream change.
      
      Change-Id: Iee79777f35aebbb23043a7efa7fe439af70348ba
      25007c88
    • Nathan E. Egge's avatar
      Use aom_reader / aom_writer API to code raw bits. · f1e2fbdc
      Nathan E. Egge authored
      The functions aom_laplace_encode_special() and
       aom_laplace_decode_special() code the rest value as raw bits using the
       od_ec_enc_bits() and od_ec_dec_bits() functions.
      These code bits in the reverse order as the aom_write_literal() and
       aom_read_literal() functions, so both the encoder and decoder must
       be changed at the same time.
      This commit has no impact on metrics but is a bitstream change.
      
      Change-Id: I428d5a83dd108c3a54f3c1dbae2c7fd5e59f5726
      f1e2fbdc
  3. 11 Jan, 2017 6 commits
  4. 10 Jan, 2017 11 commits
    • Yaowu Xu's avatar
      Change md5 used in test · 66ca5977
      Yaowu Xu authored
      A previous commit 8e1d0f70 changed
      the bitstreams due to change of scale of transforms. While the
      change is expected, md5 for "decode_to_md5_av1" test needs to be
      updated to reflected the change to avoid nightly test failures.
      
      Change-Id: I57e0318c081c7c0609fe7d5ee97543239ce162d0
      66ca5977
    • Yaowu Xu's avatar
      add a minor clarification in comment · a98ceea7
      Yaowu Xu authored
      Change-Id: I7320074ff7bd95d833cba8afb04fcc0730392f1e
      a98ceea7
    • Urvang Joshi's avatar
      Palette: use insertion sort for sorting neighbors' scores. · f1c06a73
      Urvang Joshi authored
      While sorting, preserving the order of the rest of the list when moving
      an element to the top of list makes hardware implementation much simpler.
      
      The compression performance is roughly same: overall, avg performance on
      screen-content set is 0.137% better than before in fact.
      
      Bug=aom:127
      
      Change-Id: Id1aa1e90254b44eae9133b47bca8f853f6a62c6b
      f1c06a73
    • Angie Chiang's avatar
      Fix RunAccuracyCheck failure · e6aece86
      Angie Chiang authored
      Measure the accuracy of each transform in terms of per coefficient basis.
      Set up a accuracy limit corresponding to current transform
      implementation.
      
      Change-Id: Ib7db9680c963427e94e728bf453b66180ce30b89
      e6aece86
    • Sarah Parker's avatar
      Refactor compound_segment to try different segmentation masks · b9f757c7
      Sarah Parker authored
      Change-Id: I7c992c9aae895aebcfb5c147cb179cf665c0ac10
      b9f757c7
    • Yushin Cho's avatar
      Rename encode_inter_mb_segment() · ab44fd14
      Yushin Cho authored
      Rename encode_inter_mb_segment() so that it tells readers
      that the function is only used for sub8x8 case.
      
      Change-Id: I2d86d9efaf0e1e96446d9e2dec8a8d97772489a7
      ab44fd14
    • Yushin Cho's avatar
      Correct the misleading codes in encode_inter_mb_segment() · ee0af212
      Yushin Cho authored
      In encode_inter_mb_segment(), when BLOCK_8X4 or BLOCK_4X8 is
      passed, the nested loop inside it iterates always twice.
      (For BLOCK_4X4, loop iterates only once because encode_inter_mb_segment()
      is called for each of 4X4 block.)
      Then, the k for 1st iteration is always zero, and the k for 2nd
      iteration is always (idy * 2 + idx) with either idy == 1 or idx == 1
      depending on the sb_type.
      
      Using "+=" there could mislead readers expecting that
      the # of iterations is more.
      And probably using simple assignment would be more proper here.
      
      Change-Id: I7a11255eca13403bc090ba4f0cd4785db9f0e541
      ee0af212
    • Yushin Cho's avatar
      Fix wrong stride of dst buffer in intra4x4 · 1a2df5e2
      Yushin Cho authored
      Change-Id: Icbd238c73323d11d60ca4da755b52c83cb11b8b5
      1a2df5e2
    • Nathan E. Egge's avatar
      Use aom_reader with od_decode_cdf_adapt(). · f25bae44
      Nathan E. Egge authored
      Change the od_decode_cdf_adapt() function to take an aom_reader
       struct instead of an od_ec_dec struct.
      Rename od_decode_cdf_adapt() to aom_decode_cdf_adapt().
      
      Change-Id: I0713d2f56acfea3f67f1b4087c0feee77c2e25cb
      f25bae44
    • Nathan E. Egge's avatar
      Use aom_reader with laplace_decode_special(). · b97f1c47
      Nathan E. Egge authored
      Change the laplace_decode_special() function to take an aom_reader
       struct instead of an od_ec_dec struct.
      Rename laplace_decode_special() to aom_laplace_decode_special().
      
      Change-Id: I137ae9a4df3fb0fd0b54dea09f787f70a7d287f5
      b97f1c47
    • Nathan E. Egge's avatar
      Replace OD_ACC_STR with __func__. · 984b2327
      Nathan E. Egge authored
      Replace the passed in bit accounting string from OD_ACCOUNTING with the
       current function name as ACCT_STR in preparation for the migration to
       CONFIG_ACCOUNTING.
      
      Change-Id: Ib9946232b37cacfd88f6ff914b99e91c3d7b650e
      984b2327
  5. 09 Jan, 2017 9 commits