1. 22 Sep, 2014 1 commit
    • Jingning Han's avatar
      Adaptive mode search scheduling · eee904c9
      Jingning Han authored
      This commit enables an adaptive mode search order scheduling scheme
      in the rate-distortion optimization. It changes the compression
      performance by -0.433% and -0.420% for derf and stdhd respectively.
      It provides speed improvement for speed 3:
      bus CIF 1000 kbps
      24590 b/f, 35.513 dB, 7864 ms ->
      24696 b/f, 35.491 dB, 7408 ms (6% speed-up)
      stockholm 720p 1000 kbps
      8983 b/f, 35.078 dB, 65698 ms ->
      8962 b/f, 35.054 dB, 60298 ms (8%)
      old_town_cross 720p 1000 kbps
      11804 b/f, 35.666 dB, 62492 ms ->
      11778 b/f, 35.609 dB, 56040 ms (10%)
      blue_sky 1080p 1500 kbps
      57173 b/f, 36.179 dB, 77879 ms ->
      57199 b/f, 36.131 dB, 69821 ms (10%)
      pedestrian_area 1080p 2000 kbps
      74241 b/f, 41.105 dB, 144031 ms ->
      74271 b/f, 41.091 dB, 133614 ms (8%)
      Change-Id: Iaad28cbc99399030fc5f9951eb5aa7fa633f320e
  2. 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
  3. 19 Sep, 2014 1 commit
  4. 18 Sep, 2014 3 commits
    • Minghai Shang's avatar
      [spatial svc] Use same golden frame for all temporal layers · f780b16b
      Minghai Shang authored
      Overhead goes down from 8% to 3% for 1080 60p
      Change-Id: Idf3e5ca8712402a914a8cb79df17d3cdab63b163
    • Deb Mukherjee's avatar
      Adds high bitdepth convolve, interpred & scaling · 0d3c3d3c
      Deb Mukherjee authored
      Change-Id: Ie51c352a6b250547207cbc1ebba833a01ed053e3
    • Paul Wilkins's avatar
      Substantial reworking of code for arf and kf groups. · c389b37b
      Paul Wilkins authored
      Substantial restructuring of the way we estimate
      the rate of decay in prediction quality and determine
      the arf interval and amount of boost used.
      Also other changes to support moving to a lower first pass
      Q which exposes some new features and allows us to better
      distinguish genuinely static blocks from low motion or noisy
      Net gains now visible on all the test sets with std-hd PSNR up
      1.87%. There are still some bad outlier cases but most of these
      are low motion or slide show type content where the metrics
      are already high at any given rate. The best + case is up by
      more than 10%.
      Change-Id: I18e25170053bdf3188f493ff8062f48a74515815
  5. 16 Sep, 2014 4 commits
    • Deb Mukherjee's avatar
      Adds high bitdepth quantization functions · 5cd0aab8
      Deb Mukherjee authored
      Adds various high bitdepth quantization functions.
      Change-Id: I36fc0bf75a1bd15128ed271df8723de0ac134b0c
    • Adrian Grange's avatar
      Fix ARF construction when scaling · 1def634f
      Adrian Grange authored
      The ARF frame should always be the same size as the
      native resolution of the input frames.
      It will be scaled to the required resolution at
      encode time.
      Change-Id: I0afe858129aa6ef65b1648f43476331715346896
    • Jingning Han's avatar
      Use non-zero mode threshold for NEARESTMV modes · 56fa3ab8
      Jingning Han authored
      This commit makes the encoder to use non-zero mode threshold for
      NEARESTMV modes. The runtime for test clips of speed 3 is reduced
      by about 1%.
      pedestrian 1080p 2000 kbps, 143239 ms -> 141989 ms
      bus CIF 1000 kbps, 7835 ms -> 7749 ms
      The compression performance change is about -0.02% for both derf
      and stdhd.
      Change-Id: Ib71808922c41ae2997100cb7c561f68dcebfa08e
    • Yunqing Wang's avatar
      Simplify the skip flag cost code · 200ec69a
      Yunqing Wang authored
      Code refactoring.
      Change-Id: Idad53cb80497d13551a142a642f7529fc305b0bc
  6. 15 Sep, 2014 6 commits
    • Yunqing Wang's avatar
      Set the skip flag to 1 for skippable blocks · 46aed7b8
      Yunqing Wang authored
      If the partition block is skippable, which means no coefficients
      for Y, U, and V planes, its skip flag is set to 1. No quality
      change (verified by borg tests), and no noticeable speed change.
      Change-Id: I9231f720f8dd6364384cf05aa148ca24d75450f1
    • Jingning Han's avatar
      Add ARF validation for compound inter mode check · f1581b3b
      Jingning Han authored
      This commit enforces ARF validation check for compound inter modes.
      It avoids potential access to ARF in the encoding process if it
      is not allowed.
      Change-Id: I055fec946b5d19d97937dc9001e1e564923e2439
    • Jingning Han's avatar
      Remove redundant reference frame check in sub8x8 RD search · 252822e8
      Jingning Han authored
      The valid reference frame check in sub8x8 rate-distortion
      optimization search has been included in the ref_frame_skip_mask
      scheme. This commit removes the later further validation checks
      that are not in effect.
      Change-Id: I853b477c44037d3dc0afec6cbfce08a96c597a75
    • Jingning Han's avatar
      Replace best_ref_index table fetch with best_mbmode · cc00eea6
      Jingning Han authored
      This commit replaces the best_ref_index table fetch with the use
      of best_mbmode in vp9_rd_pick_inter_mode_sub8x8.
      Change-Id: I882ee9ee6a8c0e61befcca1f4dba6d2ea8de8f13
    • Jingning Han's avatar
      Fix format in vp9_rd_pick_inter_mode_sub8x8 · 73805bfa
      Jingning Han authored
      Change-Id: I9b6a74bdf003b39235f14f8b5b7f3b861f6bf131
    • Paul Wilkins's avatar
      Move call to vp9_rc_get_second_pass_params(). · cd95543e
      Paul Wilkins authored
      Call to vp9_rc_get_second_pass_params() moved from
      Pass2Encode() to earlier in vp9_get_compressed_data(),
      to ensure that two pass stats and parameters are
      available before decisions such as frame scaling.
      Change-Id: If21537f0073919b04696a7d5e9aac78e23d76f39
  7. 12 Sep, 2014 7 commits
    • Yunqing Wang's avatar
      Refactor encode_superblock function · 1bf0beb5
      Yunqing Wang authored
      The code covers both x->skip=0 & x->skip=1 cases.
      Change-Id: I09745c10e5994dc700ae4c01b4b62979cdaf3306
    • Jingning Han's avatar
      Remove redundant reference frame threshold settings · 888a8484
      Jingning Han authored
      When a reference frame type is not in the frame buffer, the mode
      search threshold will be set to INT_MAX, so as to effectively
      turn off the mode entries in the rate-distortion optimization loop
      that involves this reference frame type. This operation is now
      integrated in the ref_frame_skip_mask scheme. This commit hence
      removes the redundant mode search threshold setting.
      Change-Id: Ib18f45da611afda2af275201efd367df7f5101ab
    • Jingning Han's avatar
      Refactor reference frame control in sub8x8 block RD search · adb20849
      Jingning Han authored
      This commit unifies the reference frame control in the rate-
      distortion optimization search loop of sub8x8 block size to remove
      the control dependency on mode search order.
      Change-Id: I3a174099f71a7cc176ede9fd60e2374243ae9232
    • Deb Mukherjee's avatar
      Use bigdia search with pruned subpel search · 83c76118
      Deb Mukherjee authored
      Improves function to return sad of integer pels by reusing integer
      pels already visited in the smallest scale.
      Turns on BIGDIA search for speed 4. Also, turns on the
      first version of the pruned subpel search at this speed.
      derf: -0.32% (speed 4)
      Speed seems to improve by at least 5% but subject to verification.
      Change-Id: Iaec8eaffd61d6237ac029e6a2a1b0a88b2a35271
    • Deb Mukherjee's avatar
      Adds high bitdepth transform functions and tests · 10783d4f
      Deb Mukherjee authored
      Adds various high bitdepth transform functions and tests.
      Much of the changes are related to using typedefs tran_low_t
      and tran_high_t for the final transform cofficients and intermediate
      stages of the transform computation respectively rather than fixed
      types int16_t/int. When vp9_highbitdepth configure flag is off,
      these map tp int16_t/int32_t, but when the flag is on, they map
      to int32_t/int64_t to make space for needed extra precision.
      Change-Id: I3c56de79e15b904d6f655b62ffae170729befdd8
    • Deb Mukherjee's avatar
      Adds high bit depth sad and variance functions · 1e4136d3
      Deb Mukherjee authored
      Moves high bit depth sad/var functions from highbitdepth
      branch to master.
      Change-Id: If03845d8ef9c9c494e13350e7a587c289306b94d
    • Jingning Han's avatar
      Format fixes in vp9_rd_pick_inter_mode_sb · 74ddde01
      Jingning Han authored
      Change-Id: Ie45687405dcaa34ba465dce2aa14f76017d3a794
  8. 11 Sep, 2014 11 commits
  9. 10 Sep, 2014 1 commit
  10. 09 Sep, 2014 5 commits
    • Jingning Han's avatar
      Fix a bug in vp9_rd_pick_inter_mode_sb · 68d79146
      Jingning Han authored
      This commit fixes a bug related to skipping intra mode checking, by
      using a separate variable to store the best prediction error from
      inter mode. It avoids unintentionally overwriting intra mode
      rate-distortion cost, and hence affecting other speed features.
      Change-Id: I99e12993339c84c8b4f597996b372012e5858fae
    • Jingning Han's avatar
      Remove redundant ref frame pointer assignment · 9a9e2aef
      Jingning Han authored
      Assigning selected reference frame pointer is done in the
      encode_superblock function. No need to do this at the end of
      rate-distortion optimization search.
      Change-Id: I33fcede0fd304b4a4c4deef2d126d79546a9c070
    • Jingning Han's avatar
      Remove dependency of intra mode search skip check on mode order · 33593d1f
      Jingning Han authored
      This commit refactors the vp9_rd_pick_inter_mode_sb function to
      remove the intra mode early termination dependency on the mode
      search order.
      Change-Id: If6ac49aa7c530c7b9a5bd31b0ab84db83e192bec
    • Jingning Han's avatar
      Replace best_mode_index table retrieve with fetching best_mbmode · d96228a0
      Jingning Han authored
      This commit allows the encoder to find current best prediction mode
      state using best_mbmode, instead of fetching from the static mode
      search table via best_mode_index.
      Change-Id: Ibefeab83aed33a49c2be03e83f09153856ca4271
    • Yunqing Wang's avatar
      Remove the use of use_lastframe_partitioning at speed 4 · f10d7eed
      Yunqing Wang authored
      The use of use_lastframe_partitioning is totally removed in good-
      quality encoding. Its usage in real-time encoding needs to be
      evaluated to see if it can be removed too.
      The Borg tests at speed 4 showed:
      stdhd set: 0.220% psnr gain, 0.166% ssim gain;
      derf set:  0.329% psnr gain, 0.476% ssim gain.
      Speed test on selected clips showed 1.54% speedup.(Worst case:
      pedestrian_area_1080p25.y4m, speed loss: 1.5%)
      Change-Id: I1c844d329b0b5678558439b887297c1be7ddab00