1. 30 Oct, 2014 3 commits
  2. 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
  3. 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
  4. 27 Oct, 2014 1 commit
  5. 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
  6. 22 Oct, 2014 3 commits
  7. 21 Oct, 2014 1 commit
  8. 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
  9. 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
  10. 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
  11. 25 Sep, 2014 1 commit
  12. 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
  13. 16 Sep, 2014 1 commit
  14. 06 Sep, 2014 6 commits
  15. 03 Sep, 2014 2 commits
    • Jingning Han's avatar
      Speed up compound inter prediction mode check · d62d804e
      Jingning Han authored
      This commit allows the encoder to store outcomes of single reference
      frame modes and compares them to decide if the inter prediction
      filter, forward transform, and quantization can be skipped.
      
      The compression performance of speed 3 is down
      derf  -0.364%
      stdhd -0.198%
      
      For test sequences, the speed 3 runtime is reduced
      highway CIF 100 kbps, 51976 ms -> 45033 ms, 13% speed-up
      stockholm 720p 1000 kbps, 71826 ms -> 67838 ms, 5.5% speed-up
      pedestrian 1080p 2000 kbps, 154924 ms -> 150702 ms, 2.6% speed-up
      
      Change-Id: I5aa26f918d2b4b5197a2c0afa2779319f1c88e44
      d62d804e
    • Dmitry Kovalev's avatar
      Small cleanup: reusing existing code. · a7ccc129
      Dmitry Kovalev authored
      Change-Id: Iac4775ad98e988f2b9cf5bd0dc91ab994d0262ce
      a7ccc129
  16. 28 Aug, 2014 1 commit
    • Deb Mukherjee's avatar
      Updates vp9_pattern search to return integer sads · 04b100b2
      Deb Mukherjee authored
      Updates the vp9_pattern_search function to return integer one-away
      neighbors' sad values, for subsequent use in speeding up the
      sub-pel search. Also, removes code for the do_refine option
      which is not being used currently.
      Updates the integer and subpel functions to pass in a 5-element
      sad list for output or input.
      
      A new pruned sub-pel search algorithm is implemented that uses
      the sad returned from the integer pel search. But it is not
      deployed yet.
      
      Change-Id: Ifa9f5ad024b5b660570366d2bd900343e1891520
      04b100b2
  17. 22 Aug, 2014 1 commit
  18. 19 Aug, 2014 2 commits
  19. 12 Aug, 2014 1 commit
  20. 08 Aug, 2014 1 commit
  21. 05 Aug, 2014 1 commit
  22. 30 Jul, 2014 1 commit
  23. 29 Jul, 2014 1 commit
    • Jingning Han's avatar
      Use frame index directly in get_chessboard_index · c36f78b0
      Jingning Han authored
      The get_chessboard_index() used to call the entire VP9_COMMON
      struct pointer to retrieve the chessboard pattern index. This cl
      makes it call the frame index directly.
      
      Change-Id: I3cad9d209ea2e77a358085a04fe1ff0ddec5ba03
      c36f78b0
  24. 24 Jul, 2014 1 commit
  25. 15 Jul, 2014 1 commit
    • Tim Kopp's avatar
      VP9 Denoiser denoises after mode/bsize search · 03819ed9
      Tim Kopp authored
      In vp8, statistics are collected about the different modes as they are searched.
      This process is more complicated due to the variable block size. Fields were
      added to the PICM_MODE_CONTEXT struct to hold this information for each point in
      the search. The information is then taken from the appropriate part of the tree
      during denoising.
      
      Change-Id: I89261ab77ad637821287ae157dfdf694702b8e77
      03819ed9