1. 15 Dec, 2014 1 commit
  2. 10 Dec, 2014 1 commit
    • Jingning Han's avatar
      Use use_prev_frame_mvs flag for ref mv search branch · 0cac834b
      Jingning Han authored
      Replace error_resilient flag with use_prev_frame_mvs in
      vp9_pick_inter_mode reference motion vector search selection.
      This effectively turns off the simplified ref mv search in the
      settings of frame resizing, even if error-resilient mode is off.
      
      Change-Id: I7fed814ee7bc0cb419a03b846e0fc2de46ba7686
      0cac834b
  3. 06 Dec, 2014 1 commit
    • Jingning Han's avatar
      Remove redundant rdcost reset · 17bedc54
      Jingning Han authored
      The initial reset of this_rdc in vp9_pick_inter_mode is not needed,
      since it will be re-assign when used.
      
      Change-Id: Ic0e12d741cbab292fc214c1eabb48b129af7839b
      17bedc54
  4. 05 Dec, 2014 2 commits
  5. 04 Dec, 2014 1 commit
  6. 25 Nov, 2014 3 commits
    • Jingning Han's avatar
      Cosmetic change in vp9_pick_inter_mode · a04ed984
      Jingning Han authored
      Change-Id: Ic072585ebffdb36982ed7b8b9f875ca6c1c656c4
      a04ed984
    • Jingning Han's avatar
      Adaptively adjust mode test kick-off thresholds in RTC coding · 92a7cfc8
      Jingning Han authored
      This commit allows the encoder to increase the mode test kick-off
      thresholds if the previous best mode renders all zero quantized
      coefficients, thereby saving motion search runs when possible.
      The compression performance of speed -5 and -6 is down by -0.446%
      and 0.591%, respectively. The runtime of speed -6 is improved by
      10% for many test clips.
      
      vidyo1, 1000 kbps
      16578 b/f, 40.316 dB, 7873 ms -> 16575 b/f, 40.262 dB, 7126 ms
      
      nik720p, 1000 kbps
      33311 b/f, 38.651 dB, 7263 ms -> 33304 b/f, 38.629 dB, 6865 ms
      
      dark720p, 1000 kbps
      33331 b/f, 39.718 dB, 13596 ms -> 33324 b/f, 39.651 dB, 12000 ms
      
      mmoving, 1000 kbps
      33263 b/f, 40.983 dB, 7566 ms -> 33259 b/f, 40.978 dB, 7531 ms
      
      Change-Id: I7591617ff113e91125ec32c9b853e257fbc41d90
      92a7cfc8
    • Yunqing Wang's avatar
      vp9_ethread: modify VP9_COMP structure · edbd61e1
      Yunqing Wang authored
      This patch modified struct VP9_COMP. Created a struct ThreadData
      to include data that need to be copied for each thread. In
      multiple thread case, one thread processes one tile. all threads
      share one copy of VP9_COMP,
      (refer to VP9_COMP *cpi in the code)
      but each thread has its own copy of ThreadData,
      (refer to ThreadData *td in the code).
      Therefore, within the scope of encode_tiles(), both cpi and td
      need to be passed as function parameters.
      
      In single thread case, the FRAME_COUNTS pointer in ThreadData
      points to "counts" in VP9_COMMON.
      
      Change-Id: Ib37908b2d8e2c0f4f9c18f38017df5ce60e8b13e
      edbd61e1
  7. 24 Nov, 2014 2 commits
    • Jingning Han's avatar
      Remove redundant intra mode penalty from vp9_pick_inter_mode · 25be81e2
      Jingning Han authored
      The intra mode penalty is covered by intra_cost_penalty. This
      commit removes the other intra cost threshold, provided that the
      constant 50 is negligible in normal rate-distortion cost.
      
      Change-Id: I9b8b7483c43b9a41741622e7057def1f7d51bb72
      25be81e2
    • Jingning Han's avatar
      Key frame non-RD mode decision process · 2fbdfd2c
      Jingning Han authored
      This commit makes a non-RD coding mode decision process for key
      frame coding. It can be optionally turned on in speed -6 and above.
      
      Change-Id: I0847258b392877a0210b4768bef88ebc9ad009b5
      2fbdfd2c
  8. 21 Nov, 2014 2 commits
    • Jingning Han's avatar
      Rework forward txfm/quantization skip system in RTC coding mode · 7428cebe
      Jingning Han authored
      This commit allows more aggressive decision to skip forward
      transform and quantization for luma component in RTC coding mode.
      The chroma components remains going through the normal coding
      routine, since they are not included in the non-RD mode search
      process.
      
      It reduces the runtime cost by 2% - 10%. In speed -6,
      vidyo1 1000 kbps
      16576 b/f, 40.281 dB, 8402 ms -> 16576 b/f, 40.323 dB, 7764 ms
      
      nik720p 1000 kbps
      33337 b/f, 38.622 dB, 7473 ms -> 33299 b/f, 38.660 dB, 7314 ms
      
      dark720p 1000 kbps
      33330 b/f, 39.785 dB, 13505 ms -> 33325 b/f, 39.714 dB, 13105 ms
      
      The compression performance of speed -6 is improved by 0.44% in
      PSNR and 1.31% in SSIM.
      
      Change-Id: Iae9e3738de6255babea734e5897f29118bebc6d7
      7428cebe
    • Alex Converse's avatar
      Allow DC/H/V/TM on screen content. · bc1b3d84
      Alex Converse authored
      6.3% better compression
      less than 1% compression time increase
      
      Change-Id: Ie83c059436e54c09de9e7c87e06e0a6d40dc38fe
      bc1b3d84
  9. 17 Nov, 2014 1 commit
  10. 11 Nov, 2014 1 commit
    • Jingning Han's avatar
      Use reconstructed pixels for intra prediction · e717d22b
      Jingning Han authored
      This commit makes the speed -6 and above use the reconstructed
      boundary pixels for precise intra prediction. This allows more
      intra prediction modes to be tested in the non-RD coding process.
      
      Enabling horizontal and vertical intra prediction modes can
      improve the speed -6 compression performance for rtc set
      by 0.331%.
      
      Change-Id: I3a99f9d12c6af54de2bdbf28c76eab8e0905f744
      e717d22b
  11. 07 Nov, 2014 1 commit
  12. 04 Nov, 2014 1 commit
    • Jingning Han's avatar
      Skip ref frame mode search conditioned on predicted mv residuals · 1434f769
      Jingning Han authored
      This commit makes the RTC coding mode to conditionally skip the
      reference frame mode search, when the predicted motion vector of
      the current reference frame gives more than two times sum of
      absolute difference compared to that of other reference frames.
      
      It reduces the runtim by 1% - 4% for speed -5 and -6. The average
      compression performance is improved by about 0.1% in both settings.
      
      It is of particular benefit to light change scenarios. The
      compression performance of test clip mmmovingvga.y4m is improved by
      6.39% and 15.69% at high bit rates for speed -5 and -6, respectively.
      
      Speed -5
      vidyo1 16555 b/f, 40.818 dB, 12422 ms ->
             16552 b/f, 40.804 dB, 12100 ms
      
      nik    33211 b/f, 39.138 dB, 11341 ms ->
             33228 b/f, 39.139 dB, 11023 ms
      
      mmmoving 33263 b/f, 40.935 dB, 13508 ms ->
               33256 b/f, 41.068 dB, 12861 ms
      
      Speed -6
      vidyo1 16541 b/f, 40.227 dB, 8437 ms ->
             16540 b/f, 40.220 dB, 8216 ms
      
      nik    33272 b/f, 38.399 dB, 7610 ms ->
             33267 b/f, 38.414 dB, 7490 ms
      
      mmmoving 33255 b/f, 40.555 dB, 7523 ms ->
               33257 b/f, 40.975 dB, 7493 ms
      
      Change-Id: Id2aef76ef74a3cba5e9a82a83b792144948c6a91
      1434f769
  13. 02 Nov, 2014 1 commit
  14. 30 Oct, 2014 3 commits
  15. 29 Oct, 2014 1 commit
    • Jingning Han's avatar
      Enable mode search threshold update in non-RD coding mode · 9349a28e
      Jingning Han authored
      Adaptively adjust the mode thresholds after each mode search round
      to skip checking less likely selected modes. Local tests indicate
      5% - 10% speed-up in speed -5 and -6. Average coding performance
      loss is -1.055%.
      
      speed -5
      vidyo1 720p 1000 kbps
      16533 b/f, 40.851 dB, 12607 ms -> 16556 b/f, 40.796 dB, 11831 ms
      
      nik 720p 1000 kbps
      33229 b/f, 39.127 dB, 11468 ms -> 33235 b/f, 39.131 dB, 10919 ms
      
      speed -6
      vidyo1 720p 1000 kbps
      16549 b/f, 40.268 dB, 10138 ms -> 16538 b/f, 40.212 dB, 8456 ms
      
      nik 720p 1000 kbps
      33271 b/f, 38.433 dB,  7886 ms -> 33279 b/f, 38.416 dB, 7843 ms
      
      Change-Id: I2c2963f1ce4ed9c1cf233b5b2c880b682e1c1e8b
      9349a28e
  16. 28 Oct, 2014 2 commits
    • Yaowu Xu's avatar
      Allow update of golden refernce buffer in CBR mode · e5cd5188
      Yaowu Xu authored
      This commit changes to allow the usage of golden reference frame in
      VP9 CBR mode to improve quality. VP9 supports potentially up to 8
      reference buffers, it has reference buffers available for this
      purpose. This was not possible in VP8 as golden and alt-ref buffers
      were used for temporal scalability purpose in CBR mode in WebRTC.
      
      For frames that update golden frame, there can be a quality boost.
      The amount of allowed bitrate boost can be controlled via parameter
      rc_max_inter_bitrate_pct. The inital value of the boost ratior is
      currently based on over_shoot_pct. Further experiments will work
      out the adaption of this boost value.
      
      Change-Id: I0c5f010c8fd8b7b598f69779c1b30e5b2ac30a4d
      e5cd5188
    • Jingning Han's avatar
      Refactor encoder tile data structure · d56b3eb0
      Jingning Han authored
      Make the common tile info as one element in the encoder tile data
      struct.
      
      Change-Id: I8c474b4ba67ee3e2c86ab164f353ff71ea9992be
      d56b3eb0
  17. 27 Oct, 2014 1 commit
  18. 23 Oct, 2014 1 commit
    • Yaowu Xu's avatar
      Move filter_ref initialization · 065809d2
      Yaowu Xu authored
      To outside the loop to avoid repeating the operations.
      
      Change-Id: I66c1986e98ce0d7594caad3d3b45de655b299bff
      065809d2
  19. 22 Oct, 2014 3 commits
  20. 21 Oct, 2014 1 commit
  21. 15 Oct, 2014 1 commit
    • Marco's avatar
      Some updates for Speed 6/VAR_BASED_PARTITION. · 09ea74f1
      Marco authored
      Reduce the intra_cost_penalty for non-rd mode,
      and some updates to VAR_BASED_PARTITION.
      
      Visual tests show some improvement at Speed 6, for RTC clips.
      
      Change-Id: If9090daf7aed14906a32d931a538ab544bbca606
      09ea74f1
  22. 09 Oct, 2014 2 commits
    • Deb Mukherjee's avatar
      Rename highbitdepth functions to use highbd prefix · 1929c9b3
      Deb Mukherjee authored
      Uses highbd_ prefix convention consistently.
      
      Change-Id: I58f7f799a7ff8e32701bcd71c955bcf1cdd4581e
      1929c9b3
    • Deb Mukherjee's avatar
      Subpel search cleanups and enhancements · d78dbff0
      Deb Mukherjee authored
      - Some fixes to surface fit.
      - Returns variance function as cost rather than sad in the
        pattern search and diamond search functions. Only
        vp9_pattern_search_sad function used in bigdia search
        uses sad as integer 1-away costs.
      - Deploys SUBPEL_TREE_PRUNED_MORE for speed 4+.
      
      Results:
      derf [Speed 3]: About +0.036% in coding efficiency without any
      discernible speed loss.
      derf [Speed 4]: About 2-3% faster at -0.199% loss in coding efficiency.
      derf [Speed 5]: About 3-4% faster at -0.149% loss in coding efficiency.
      
      Change-Id: I8462f94f6adb46966ca964f2bd0400977357fd63
      d78dbff0
  23. 07 Oct, 2014 3 commits
    • Jim Bankoski's avatar
      experimental : partition using 1/8 x 1/8 image · 0ce51d82
      Jim Bankoski authored
      The concept:
      
      There's too much noise in source pixels for variance and at low bitrate
      the reconstructed looks nothing like the source so we have problems
      getting good partitionings with either.   This skirts the issue by using
      a box blur scaled down version for variance calculations.  To compare
      against source_var_ moved keyframe to be rd based like source_var.
      
      Change-Id: Ie3babdbfadae324b7b5a76bea192893af27f0624
      0ce51d82
    • Jingning Han's avatar
      Replace mi_width_log2() with mi_width_log2_lookup table · 7ee58985
      Jingning Han authored
      Change-Id: If0ea98aa139d14d40cd924114e18396aff36b5a5
      7ee58985
    • Jingning Han's avatar
      Take out repeated block width/height lookup functions · b66f7016
      Jingning Han authored
      The functions b_width_log2 and b_height_log2 only do direct
      table fetch. This commit unifies such use cases by using the
      table directly and removes these functions.
      
      Change-Id: I3103fc6ba959c1182886a2799d21b8b77c8a7b6b
      b66f7016
  24. 25 Sep, 2014 1 commit
  25. 20 Sep, 2014 1 commit
    • hkuang's avatar
      Remove mi_grid_* structures. · c70cea97
      hkuang authored
      mi_grid_* are arrays of pointer to pointer. They save the pointers that point
      to the MIs in cm->mi. But they are unnecessary and complicated. The original
      goal was to remove MODE_INFO_t copy. But with an extra MODE_INFO_t pointer
      inside MODE_INFO_t, same goal could be achieved.
      
      This commit totally removes the mi_grid_* structures. But there are still
      many dummy MODE_INFO_t inside cm->mi which are a waste of memory. Next commit
      will do on-demand MODE_INFO_t allocation in order to save these memories.
      
      Change-Id: I3a05cf1610679fed26e0b2eadd315a9ae91afdd6
      c70cea97
  26. 16 Sep, 2014 1 commit
  27. 06 Sep, 2014 1 commit