1. 30 Jun, 2014 2 commits
    • Jingning Han's avatar
      Remove unused set_mode_info function · 30ab3701
      Jingning Han authored
      When the frame is intra coded only, the encoder takes the RD
      coding flow. Hence the function set_mode_info is not practically
      in use. This commit removes it and the associated conditional
      branches.
      
      Change-Id: I1e42659ceb55b771ba712d1cdecacb446aa6460d
      30ab3701
    • Yunqing Wang's avatar
      Decide the partitioning threshold from the variance histogram · 9d41313e
      Yunqing Wang authored
      Before encoding a frame, calculate and store each 16x16 block's
      variance of source difference between last and current frame.
      Find partitioning threshold T for the frame from its variance
      histogram, and then use T to make partition decisions.
      
      Comparing with fixed 16x16 partitioning, rtc set test showed an
      overall psnr gain of 3.242%, and ssim gain of 3.751%. The best
      psnr gain is 8.653%.
      
      The overall encoding speed didn't change much. It got faster for
      some clips(for example, 12% speedup for vidyo1), and a little
      slower for others.
      
      Also, a minor modification was made in datarate unit test.
      
      Change-Id: Ie290743aa3814e83607b93831b667a2a49d0932c
      9d41313e
  2. 29 Jun, 2014 1 commit
  3. 26 Jun, 2014 2 commits
    • Jingning Han's avatar
      Adaptive txfm size selection depending on residual sse/variance · 5a3e3c6d
      Jingning Han authored
      This commit enables an adaptive transform size selection method
      for speed -6. It uses largest transform size when the sse is more
      than 4 times of variance, i.e., most energy is compacted in the
      DC coefficient. Otherwise, use the default TX_8X8. It improves
      the compression efficiency for rtc set of speed -6 by 0.8%, no
      speed change observed.
      
      Change-Id: Ie6ed1e728ff7bf88ebe940a60811361cdd19969c
      5a3e3c6d
    • Pengchong Jin's avatar
      Skip the partition search for the frame with no motion · 12861260
      Pengchong Jin authored
      This patch allows the encoder to skip the partition search for the
      frame if it is an inter frame and only zero motion vectors have
      been detected in the first pass. The partition size is directly
      assigned according to the difference variance.
      
      Borg tests show overall little performance changes in term of PSNR
      (derf -0.027%, yt 0.152%, hd 0.078%, stdhd 0%). The worst case of
      PSNR loss is -0.514% from yt. The best PSNR gain is 4.293% from yt.
      The second pass encoding speedup for slideshow clips is 15%-40%.
      
      Change-Id: I881f347d286553ee5594a9ea09ba1a61ac684045
      12861260
  4. 24 Jun, 2014 2 commits
    • Yunqing Wang's avatar
      Reuse inter prediction result in real-time speed 6 · 0aae1000
      Yunqing Wang authored
      In real-time speed 6, no partition search is done. The inter
      prediction results got from picking mode can be reused in the
      following encoding process. A speed feature reuse_inter_pred_sby
      is added to only enable the resue in speed 6.
      
      This patch doesn't change encoding result. RTC set tests showed
      that the encoding speed gain is 2% - 5%.
      
      Change-Id: I3884780f64ef95dd8be10562926542528713b92c
      0aae1000
    • Paul Wilkins's avatar
      Fix some bugs in multi-arf · 8160a26f
      Paul Wilkins authored
      Fix some bugs relating to the use of buffers
      in the overlay frames.
      
      Fix bug where a mid sequence overlay was
      propagating large partition and transform sizes into
      the subsequent frame because of :-
        sf->last_partitioning_redo_frequency  > 1 and
        sf->tx_size_search_method == USE_LARGESTALL
      
      Change-Id: Ibf9ef39a5a5150f8cbdd2c9275abb0316c67873a
      8160a26f
  5. 20 Jun, 2014 3 commits
  6. 12 Jun, 2014 3 commits
    • Dmitry Kovalev's avatar
      Replacing txfm_size with tx_size. · 4345d12d
      Dmitry Kovalev authored
      Change-Id: Ifa6374e9db5919322733b656e0865f5f19ee6f2c
      4345d12d
    • Jingning Han's avatar
      Fast computation path for forward transform and quantization · ccba289f
      Jingning Han authored
      This commit enables a fast path computational flow for forward
      transformation. It checks the sse and variance of prediction
      residuals and decides if the quantized coefficients are all
      zero, dc only, or more. It then selects the corresponding coding
      path in the forward transformation and quantization stage.
      
      It is currently enabled in rtc coding mode. Will do it for rd
      coding mode next.
      
      In speed -6, the runtime for pedestrian_area 1080p at 1000 kbps
      goes down from 14234 ms to 13704 ms, i.e., about 4% speed-up.
      Overall coding performance for rtc set is changed by -0.18%.
      
      Change-Id: I0452da1786d59bc8bcbe0a35fdae9f623d1d44e1
      ccba289f
    • Alex Converse's avatar
      Fix SEG_LVL_SKIP in non-RD inter mode selection. · 6c3f311b
      Alex Converse authored
      Add a set_mode_info_seg_skip function that fills the requisite mode info.
      
      Change-Id: I460b1b6845d720d9b09ed5b64df0ea0aac443f62
      6c3f311b
  7. 09 Jun, 2014 1 commit
    • Yunqing Wang's avatar
      Use small transform size in non-rd real-time mode · b04d7668
      Yunqing Wang authored
      In non-rd real-time mode, choosing smaller transform size in
      encoding gives better video quality and good speed gain than
      choosing larger transform size. This patch set tx size search
      method to ALLOW_8X8, which is better than using 4x4 or other
      larger sizes.
      
      Borg tests on rtc set at speed 6 showed significant gain on quality.
      PSNR gain: 11.034% and SSIM gain: 15.466%.
      
      The speed gain is 5% - 12% for <720p clips, and 2% - 7% for
      720p clips.
      
      Change-Id: If4dc74ed2df359346b059f47fb73b4a0193ec548
      b04d7668
  8. 06 Jun, 2014 2 commits
  9. 05 Jun, 2014 2 commits
  10. 03 Jun, 2014 1 commit
  11. 02 Jun, 2014 1 commit
  12. 01 Jun, 2014 1 commit
  13. 29 May, 2014 2 commits
  14. 27 May, 2014 1 commit
  15. 23 May, 2014 1 commit
  16. 22 May, 2014 1 commit
    • Alex Converse's avatar
      Use offset mode info when filling pc tree. · 80e5326c
      Alex Converse authored
      Use the appropriate subblock offset mode info rather than the parent
      block base, when filling mbmi in the pc tree in nonrd_use_partition.
      This mimics what is done in the vertical case and what is done for
      both cases in nonrd_pick_partition.
      
      This change has little practical effect at the moment since in speed 5
      rt horizontal and vertical partitions are currently only used unpaired
      at edges of the picture.
      
      Change-Id: I4632f66ca84086dac56c7d36b45ddbe38a06f42a
      80e5326c
  17. 21 May, 2014 2 commits
    • Yaowu Xu's avatar
      Enable various thresholds of motion detection · 3bda7ec1
      Yaowu Xu authored
      This commit changed to enable the encoder to adjust motion dection
      speed threshold based on picture size. In addition, cpu-used 1 now
      does a partition search every other frame instead of every third
      frame for low resolution inputs.
      
      The change has no quality/speed impact for 720p and above. Test
      showed the change increase encoding time by between 3% to 6% for
      cpu-used 2 encodiong of 360p sequences. It also has a compression
      gain about .3%.
      
      For cpu-used 2, the change resolved some very disturbing visual
      artifacts in certain sequences when large block partitionings and
      transforms are used as a result of copying the partition from a
      previous frame.
      
      Change-Id: Ic7fd22508cdb811d4ca935655adbf20109286cfa
      3bda7ec1
    • Dmitry Kovalev's avatar
      Moving itxm_add pointer from MACROBLOCKD to MACROBLOCK. · 35a83677
      Dmitry Kovalev authored
      The final goal is eventually to get rid of both itxm_add and fwd_txm4x4.
      This patch does it in the decoder.
      
      Change-Id: Ibb3db57efbcbb1ac387c6742538a9fcf2c6f24a5
      35a83677
  18. 19 May, 2014 1 commit
  19. 16 May, 2014 2 commits
  20. 15 May, 2014 2 commits
  21. 14 May, 2014 1 commit
    • Deb Mukherjee's avatar
      Remove Wextra warnings from vp9_sad.c · 7ab9a958
      Deb Mukherjee authored
      As a side-effect, the max_sad check is removed from the
      C-implementation of VP8, for consistency with VP9, and to
      ensure that the SAD tests common to VP8/VP9 pass.
      That will make the VP8 C implementation of sad a little slower
      but given that is rarely used in practice, the impact will be
      minimal.
      
      Change-Id: I7f43089fdea047fbf1862e40c21e4715c30f07ca
      7ab9a958
  22. 12 May, 2014 1 commit
    • Yaowu Xu's avatar
      Cleanup unused parameters · d22faee9
      Yaowu Xu authored
      Remove unused function parameters from:
      vp9_encodemb.c
      vp9_encodeframe.c
      
      Change-Id: I07725e5099cf98486e70c9c70babb0cd785c58a9
      d22faee9
  23. 10 May, 2014 1 commit
    • Jingning Han's avatar
      Apply constrained partition search range to non-RD mode decision · 734c5ffa
      Jingning Han authored
      This commit enables a chessboard pattern for partition search. All
      the black blocks run regular partition search ranging from 8x8 to
      32x32. The rest white blocks take the nearby blocks' information
      to adaptively decide the effective search range.
      
      The compression performance for rtc set at speed -5 is down by 1.5%.
      For pedestrian 1080p at speed -5, the runtime goes from 41594 ms to
      39697 ms, i.e., about 5% faster.
      
      Change-Id: Ia4b96e237abfaada487c743bca08fe1afd298685
      734c5ffa
  24. 06 May, 2014 1 commit
  25. 01 May, 2014 1 commit
  26. 29 Apr, 2014 1 commit
  27. 23 Apr, 2014 1 commit