1. 18 Jan, 2017 5 commits
    • Yunqing Wang's avatar
      Fix the transform size/type search condition · 2615d6ea
      Yunqing Wang authored
      While encoding a key frame with quantizer = 0 and aq-mode = 1,
      for some segment_ids, the quantizer got modified and could be
      > 0, and lossless[segment_id] might be 0 or 1 depending on the
      segment_id. Namely, blocks with lossless[segment_id] = 0 were
      allowed to choose transform sizes other than 4x4. This conflicted
      with tx_mode which was a frame-level decision. In this patch,
      the transform search condition was modified so that the transform
      choice was consistent with tx_mode of that frame.
      
      BUG=aomedia:104
      
      Change-Id: Ia39127b5dee129283a133cf5e4000da62d9e0f1c
      2615d6ea
    • Urvang Joshi's avatar
      Enable rectangular transforms for Intra also. · feb925fe
      Urvang Joshi authored
      These are under EXT_TX + RECT_TX experiment combo.
      
      Results
      =======
      
      Derf Set:
      --------
      All Intra frames: 1.8% avg improvement (and 1.78% BD-rate improvement)
      Video: 0.230% avg improvement (and 0.262% BD-rate improvement)
      
      Objective-1-fast set
      --------------------
      Video: 0.52 PSNR improvement
      
      Change-Id: I1893465929858e38419f327752dc61c19b96b997
      feb925fe
    • David Barker's avatar
      Fix compile errors with loop-restoration + highbd · 60a055bd
      David Barker authored
      Change-Id: I0d9850e082b8da3b182a3bbaf6569c45317c9659
      60a055bd
    • Angie Chiang's avatar
      Pass ConvolveParams into prediction functions · 9f45bc48
      Angie Chiang authored
      Those functions includes
      av1_make_inter_predictor
      av1_build_inter_predictor
      inter_predictor
      
      Change-Id: Ide3b744277cf30964e8b352fc8de91365d7217a8
      9f45bc48
    • Alex Converse's avatar
      Add unpoison_partition_ctx experiment · 55c6bdeb
      Alex Converse authored
      At the edges of the picture only a subset of partitions are legal. Add
      new contexts for these borders so they don't distort the probabilities of
      the interior of the image where all partitions are legal.
      
      Only include one context for each block size of each border direction
      because so few blocks fall into these contexts to begin with.
      
      objective-1-fast:
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.0294 | -0.0911 | -0.2382 |  -0.0481 | -0.0441 | -0.0450 |    -0.0454
      
      derf144: -0.135
      lowres: -0.124
      midres: -0.076
      hdres: -0.078
      
      Change-Id: I909b98eebb7e49273cde90154c8408febe334158
      55c6bdeb
  2. 17 Jan, 2017 1 commit
    • Debargha Mukherjee's avatar
      Improvements on segment mask · 1edf9a30
      Debargha Mukherjee authored
      Adds a few options to make the compound mask lightly dependent on the
      the two predictors.
      
      Also adds high bit depth support
      
      Change-Id: If57b6e8ddd140e0c00fd9d4738927d37225091cb
      1edf9a30
  3. 13 Jan, 2017 7 commits
  4. 12 Jan, 2017 6 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
    • 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
    • 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
  5. 11 Jan, 2017 2 commits
    • David Michael Barr's avatar
      Use stable sort with PVQ. · 8f110572
      David Michael Barr authored
      Cherry-pick Daala 85433214
       Fully order the pvq search candidates
      For portable and stable sorting, break ties.
      Large differences in output were observed between AWCY and an OS X
       machine because of the platform qsort implementation.
      
      Change-Id: I294dd2e167c1e0464c7f61f32d60ab478341446e
      8f110572
    • Debargha Mukherjee's avatar
      Fix a memory leak · 5d15721d
      Debargha Mukherjee authored
      Change-Id: I1f66837151a955a9fde0c1b4670ab0fc1d318111
      5d15721d
  6. 10 Jan, 2017 4 commits
    • 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
  7. 09 Jan, 2017 9 commits
  8. 08 Jan, 2017 1 commit
    • Yushin Cho's avatar
      Rename the function rd_pick_best_sub8x8_mode() · 482016d0
      Yushin Cho authored
      This large function is solely used for the RDO search for
      inter prediction mode. It would be helpful for readers if its name
      tells that whole function is used for inter mode decision only.
      
      Change-Id: Ida366b142b7129bf89498227d186c54341c3af5e
      482016d0
  9. 07 Jan, 2017 3 commits
  10. 06 Jan, 2017 2 commits
    • Jingning Han's avatar
      Rework the txfm partition context to support cb4x4 mode · 581d1697
      Jingning Han authored
      This commit reworks the transform block partition context update
      to support cb4x4 mode in the recursive transform block partition.
      It resolves the remaining enc/dec mismatch issue when both cb4x4
      and var-tx are turned on.
      
      Change-Id: I850d121204fe4c68e81488f1d2848c570d9d08b9
      581d1697
    • Jingning Han's avatar
      Refactor var-tx pipeline to support cb4x4 mode · 9ca05b7e
      Jingning Han authored
      Replace hard coded 4x4 transform block step size assumption with
      scalable table access.
      
      Change-Id: Ib1cc555c2641e5634acdd91ca33217f00aeb0b89
      9ca05b7e