1. 01 Mar, 2016 1 commit
    • Yaowu Xu's avatar
      Fix an overflow issue for HBD · 5c613ea8
      Yaowu Xu authored
      The sum of squared value of a block can overflow 32bit, this commit
      changes to use int64_t to avoid the overflow issue.
      
      Change-Id: I78fcd6999634f186f86d649cfce85d97a993d040
      5c613ea8
  2. 29 Feb, 2016 1 commit
    • Yunqing Wang's avatar
      Do sub-pixel motion search in up-sampled reference frames · 342a368f
      Yunqing Wang authored
      Up-sampled the reference frames to 8 times in each dimension using
      the 8-tap interpolation filter. In sub-pixel motion search, use the
      up-sampled reference frames to find the best matching blocks. This
      largely improved the motion search precision, and thus, improved
      the compression quality. There was no change in decoder side.
      
      Borg test and speed test results:
      1. On derflr set,
      Overall PSNR gain: 1.306%, and SSIM gain: 1.512%.
      Average speed loss on derf set was 6.0%.
      2. On stdhd set,
      Overall PSNR gain: 0.754%, and SSIM gain: 0.814%.
      On hevchd set,
      Overall PSNR gain: 0.465%, and SSIM gain: 0.527%.
      Speed loss on HD clips was 3.5%.
      
      Change-Id: I300ebaafff57e88914f3dedc8784cb21d316b04f
      342a368f
  3. 26 Feb, 2016 2 commits
    • Debargha Mukherjee's avatar
      Some refactoring and cleanups of interp filter · bab2912b
      Debargha Mukherjee authored
      Includes various cosmetic changes and refactoring including
      naming the sharp filters differently (since they are no longer
      8-tap).
      
      Change-Id: Ida5a19ca0daa9f6a64a6734394c685b2a4a2564a
      bab2912b
    • Geza Lore's avatar
      Port interintra experiment from nextgen. · 7ded038a
      Geza Lore authored
      The interintra experiment, which combines an inter prediction and an
      inter prediction have been ported from the nextgen branch. The
      experiment is merged into ext_inter, so there is no separate configure
      option to enable it.
      
      Change-Id: I0cc20cefd29e9b77ab7bbbb709abc11512320325
      7ded038a
  4. 24 Feb, 2016 2 commits
  5. 23 Feb, 2016 2 commits
    • Yue Chen's avatar
      Optimizing obmc rd decision by checking the real rd cost · a614262e
      Yue Chen authored
      Instead of using model_rd_for_sb() to estimate the cost and make the
      decision on bmc/obmc, we use super_block_yrd/uvrd() to calculate and
      compare the real rd costs of bmc and obmc.
      
      Average bit-rate reduction(%) of obmc experiment:
      derflr/derfhd/hevcmr/hevchd
      2.353/TBD/TBD/TBD
      Before the optimization, the coding gain was:
      1.582/1.109/1.600/1.164
      
      Note: there is still some mysterious bug because that compared to
      the previous version, the performance at low bit rate drops a lot.
      
      Change-Id: I8dbee04a272190f10516a3953c1ae690f8136766
      a614262e
    • Geza Lore's avatar
      Experiment to use image domain dist in baseline. · 3c4b56c4
      Geza Lore authored
      Change-Id: Ib29f510289716b5ab5c7d74d32a450c190308a83
      3c4b56c4
  6. 20 Feb, 2016 2 commits
  7. 19 Feb, 2016 1 commit
  8. 18 Feb, 2016 2 commits
    • Yaowu Xu's avatar
      Properly normalize HBD sse computation · 0c0f3efd
      Yaowu Xu authored
      This fixes a bug in HBD sum of squared error computation introduced
      in  #abd00505.
      
      Change-Id: I9d4e8627eb8ea491bac44794c40c7f1e6ba135dc
      0c0f3efd
    • Julia Robson's avatar
      cost_coeff speed improvements · c6eba0b4
      Julia Robson authored
      Preliminary tests indicated that these changes make cost_coeffs
      approximately 20% faster which is a 2% improvement overall
      
      Change-Id: Iaf013ba75884415cd824e98349f654ffb1c3ef33
      c6eba0b4
  9. 17 Feb, 2016 1 commit
  10. 16 Feb, 2016 1 commit
    • Yue Chen's avatar
      Fixing a bug in obmc prediction in the rd loop · 907f88c4
      Yue Chen authored
      This bug made the rd loop use one-side obmc (compound of the current
      predictor and the predictors of the left mi's, while the above ones
      are ignored by mistake) to determine whether to use obmc. This fix
      improved the compression performance by ~0.6% on different test sets.
      
      Coding gain (%) of obmc experiment on derflr/derfhd/hevcmr/hevchd:
      1.568/TBD/1.628/TBD
      
      Change-Id: I43b239bedf9a8eebfd02315b1b036e140a998140
      907f88c4
  11. 15 Feb, 2016 1 commit
    • Geza Lore's avatar
      Add optimized vpx_sum_squares_2d_i16 for vp10. · abd00505
      Geza Lore authored
      Using this we can eliminate large numbers of calls to predict intra,
      and is also faster than most of the variance functions it replaces.
      This is an equivalence transform so coding performance is unaffected.
      
      Encoder speedup is approx 7% when var_tx, super_tx and ext_tx are all
      enabled.
      
      Change-Id: I0d4c83afc4a97a1826f3abd864bd68e41bb504fb
      abd00505
  12. 12 Feb, 2016 2 commits
    • Yue Chen's avatar
      Overlapped block motion compensation experiment · d1cad9c3
      Yue Chen authored
      In this experiment, an obmc inter prediction mode is enabled for
      >= 8X8 inter blocks. When the obmc flag is on, the regular block-
      based motion compensation will be refined by using predictors of
      the above and left blocks.
      Fixed some compatibility issues with vp9_highbitdepth, supertx,
      ref_mv, and ext_interp.
      
      Coding gain (%) on derflr/hevcmr/hevchd
      OBMC:
      1.047/1.022/0.708
      OBMC + SUPERTX:
      1.652/1.616/1.137
      SUPERTX:
      0.862/0.779/0.630
      
      Change-Id: I5d8d3c4729c6d3ccb03ec7034563107893103b7f
      d1cad9c3
    • Jingning Han's avatar
      Refactor vp10_drl_idx concept · a39e83d7
      Jingning Han authored
      Remove the implicit assumption on offsetting the index by 1.
      
      Change-Id: I6f1d391e067d57b7e45b9287e866014dbc16da71
      a39e83d7
  13. 11 Feb, 2016 4 commits
  14. 10 Feb, 2016 5 commits
    • hui su's avatar
      Refactor rd_pick_intra_angle_ · 5a7c8d8c
      hui su authored
      Change-Id: I6c78188bdedb52655678c63f6a767567b256a880
      5a7c8d8c
    • Angie Chiang's avatar
      Refactor: add predict_interp_filter() to · c0035cc4
      Angie Chiang authored
      simplify the flow in handle_inter_mode
      
      Change-Id: Ic7934c0a5d0a79bdf546b4d2d106035449b475a6
      c0035cc4
    • hui su's avatar
      Add a speed feature to skip transform type selection · 329e340d
      hui su authored
      Setting FIXED_TX_TYPE as 1 makes the encoder skip tx_type search,
      about twice as fast.
      
      This speed feature is off by defualt; we can turn it on when we
      want to quickly test new ideas.
      
      Change-Id: Ieab5807d17fcd54fce3e8ae2f59a18b42eb79408
      329e340d
    • Jingning Han's avatar
      Resolve conflict between var-tx and super-tx · 4c6c82a2
      Jingning Han authored
      This commit aligns the rate-distortion metric for the recursive
      transform block partitioning and the super transform. It resolves
      the conflicts between these two experiments. The coding performance
      gains of the combined experiments (var-tx + super-tx) has been
      improved:
      
      derf   0.89%  ->  1.9%
      hevcmr 1.06%  ->  1.8%
      stdhd  0.29%  ->  1.4%
      hevchr 0.80%  ->  2.3%
      
      Change-Id: I7e33994ad70c1b2751435620815f867d82172f41
      4c6c82a2
    • Geza Lore's avatar
      Fix double counting of compound reference bit cost. · fd546357
      Geza Lore authored
      These costs are added in separately just before the computed
      ref_costs_* are added in the calling functions, so they were
      effectively double counted.
      
      Change-Id: Ic941d0243460cc2e750791cfc508e97d8b90e8fd
      fd546357
  15. 09 Feb, 2016 4 commits
    • Debargha Mukherjee's avatar
      A variety of fixes for supertx/var-tx rd costing · e2c1ea94
      Debargha Mukherjee authored
      Change-Id: I8a3d59378abb1dfa4e614b2975c2db05d4224bd5
      e2c1ea94
    • Jingning Han's avatar
      Entropy coding for dynamic ref mv modes · 4958987b
      Jingning Han authored
      This commit enables entropy coding for dynamic reference motion
      vector modes. The probability model is contexted on the ranking
      categories of the reference motion vector candidates.
      
      Change-Id: I09b58d98a409d63ec1a407331e29f8945b7ef17d
      4958987b
    • Debargha Mukherjee's avatar
      Explicitly set tx_type for sub8x8 blocks · d46c1f23
      Debargha Mukherjee authored
      Fixes an issue where the tx_type was not set correctly for
      sub8x8 inter and intra blocks. In the current syntax, for
      sub8x8 blocks, there is still a single tx_type that is
      transmitted. Ideally, this should be searched for the best
      rd performance, albeit at the expense of encode speed.
      For now, we just set it to DCT_DCT. Previously it was left
      incorrectly as what was used for the previous non sub8x8
      block.
      
      derflr: BDRATE -0.277%
      
      Change-Id: If76ba903bfbfd4d374cf1ac7d1daee50e92f0edd
      d46c1f23
    • Debargha Mukherjee's avatar
      Explicitly set tx_type for sub8x8 blocks · f28ea3e8
      Debargha Mukherjee authored
      Fixes an issue where the tx_type was not set correctly for
      sub8x8 inter and intra blocks. In the current syntax, for
      sub8x8 blocks, there is still a single tx_type that is
      transmitted. Ideally, this should be searched for the best
      rd performance, albeit at the expense of encode speed.
      For now, we just set it to DCT_DCT. Previously it was left
      incorrectly as what was used for the previous non sub8x8
      block.
      
      derflr: BDRATE -0.277%
      
      Change-Id: If76ba903bfbfd4d374cf1ac7d1daee50e92f0edd
      f28ea3e8
  16. 08 Feb, 2016 2 commits
    • Jingning Han's avatar
      Enable dynamic ref motion vector mode for compound inter block · 28e0393f
      Jingning Han authored
      This commit enables the dynamic reference motion vector coding mode
      for the compound inter blocks.
      
      Change-Id: Ibe78fd8de6989db392cd67a9d81a69d680345ba1
      28e0393f
    • Yaowu Xu's avatar
      Fix msvc compiler warnings · 3c28b4a8
      Yaowu Xu authored
      There were a number of compiler warnings:
      1. int16_t to uint8_t in recon_intra.c;
      2. double to float conversions in psnrhvs.c
      3. intptr_t to int in quantize.c
      4. size_t to int32_t in decoder.c
      
      Change-Id: Id95423b17779dcfa6cf39d9a90fe8cb8b910f5df
      3c28b4a8
  17. 03 Feb, 2016 4 commits
    • hui su's avatar
      Add a speed feature for intra filter search · 5b618b7c
      hui su authored
      Seperate the prediction angle search and fitler search.
      It can reduce the computation overhead of filter search by as much
      as 85%, while keeping more than 50% of the coding gain.
      
      Change-Id: Id152f71e20ebcaca8b429bdd4ca1fbeb646fc6bf
      5b618b7c
    • hui su's avatar
      Add 8-tap interpolation filter options for intra prediction · 3b1c7668
      hui su authored
      BD-rate performance improvement (on top of ext-intra):
      derflr  0.22%
      hevclr  0.36%
      hevcmr  0.48%
      hevchr  0.37%
      stdhd   0.19%
      
      Average speed impact on some derf clips is about 40% slower (on
      top of ext-intra). Speed improvment is a to-do.
      
      Change-Id: I8fe3fe8c5e4f60d0462778adbcc15c84dfbe7a25
      3b1c7668
    • Jingning Han's avatar
      Generalize the dynamic reference motion vector coding mode · 4fb8b217
      Jingning Han authored
      This commit generalizes dynamic reference motion vector coding mode
      to support multiple candidate modes in the rate-distortion
      optimization scheme and to support the selection in the bit-stream
      syntax. The maximum number of modes allowed is currently limited to
      4. The syntax elements for the dynamic reference motion vector
      modes are using binary codes. The scheme supports single reference
      frame.
      
      It improves the compression performance
      derf   0.135%
      hevcmr 0.098%
      
      Change-Id: Id053d6ce76e8365e52727bd0d12d28ce3de2e0e8
      4fb8b217
    • Jingning Han's avatar
      Account for zero-forcing operation in selective ref mv mode · 590265ea
      Jingning Han authored
      It makes the encoder accounts for the block zero-forcing operation
      when optimizing the mode decisions.
      
      Change-Id: I2c8e243756080b446b8a53a9679f75c4c47148cf
      590265ea
  18. 02 Feb, 2016 3 commits
    • Jingning Han's avatar
      Enable adaptive motion vector referencing mode · 67cf8908
      Jingning Han authored
      This commit allows an adaptive motion vector referencing mode
      approach. It checks the available reference motion vector candidate
      list and decides the amount of motion vector referencing modes. The
      current implementation assumes simple binary coding for the syntax.
      
      The compression performance is improved by
      derf   0.11%
      hevcmr 0.38%
      stdhd  0.09%
      hevchr 0.23%
      
      The coding gains due to the new reference motion vector system are
      derf   1.0%
      hevcmr 1.7%
      stdhd  1.4%
      hevchr 1.3%
      
      Change-Id: Idf932fc373546fe59c8741f1b933ff656e8dbc3f
      67cf8908
    • James Zern's avatar
      vp10: remove unused (read|write)_uniform · ebf25868
      James Zern authored
      dead code since:
      5d3327e8 Remove palette from VP10
      
      Change-Id: I4a36575706ea6fffefe5bc778595112ef6ff37d8
      ebf25868
    • Angie Chiang's avatar
      Pass filter type instead of filter array · 10ad97bc
      Angie Chiang authored
      Change-Id: I25f2149ddaa332722f7ab82e8f832a253c4b6ab3
      10ad97bc