1. 09 Sep, 2014 8 commits
    • 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
    • James Zern's avatar
      vp9_loop_filter_frame_mt: defer allocations · a46ca6ec
      James Zern authored
      the code currently checks whether the allocation has been done instead
      of allocating on the first frame.
      4f27202d vp9: fix crash in mt loopfilter w/corrupt file
      this change defers the allocation until the loop filter is used.
      Change-Id: I660c1b7f34e713a8dd9884483f01d23b9847366e
    • James Zern's avatar
      vp9_loop_filter_alloc: reorder parameters · 958a15f0
      James Zern authored
      VP9LfSync lf_sync is being operated on, make it the first parameter as
      in dealloc
      Change-Id: Id3cdf6b6a48157627780ae0d5d4b7dfa94a78078
    • James Zern's avatar
      vp9_dthread: simplify loop_filter_row_worker signature · a5da7dea
      James Zern authored
      use the type names directly in the function declaration rather than
      (void *arg1, void *arg2)
      Change-Id: If8887e1dbcdf84842783a92f91668bef6223c9e5
    • James Zern's avatar
      simplify vp9_loop_filter_worker signature · 48662747
      James Zern authored
      use the type names directly in the function declaration rather than
      (void *arg1, void *arg2)
      Change-Id: I36bfc9c886310ce370bf0ca7c679ebd6e95109cc
    • James Zern's avatar
      vp9_decodeframe: simplify tile_work_hook signature · f853117b
      James Zern authored
      use the type names directly in the function declaration rather than
      (void *arg1, void *arg2)
      Change-Id: I3d1e6c42d384d8e628d7f2075fa561c2c5e20749
  2. 08 Sep, 2014 3 commits
  3. 06 Sep, 2014 8 commits
  4. 05 Sep, 2014 6 commits
    • Yunqing Wang's avatar
      No longer use use_lastframe_partitioning speed feature · 10921403
      Yunqing Wang authored
      The speedup in rd_pick_partition() function makes it possible
      to drop use_lastframe_partitioning feature. By doing that, we
      achieve good PSNR gain with small speed loss. Also, this makes
      encoding loop less complicated. The code cleanup patch will
      Borg tests showed:
      1. At speed 2,
         stdhd set: 0.201% PSNR gain, 0.133% SSIM gain;
         derf set:  0.262% PSNR gain, 0.276% SSIM gain.
      2. At speed 3,
         stdhd set: 0.139% PSNR gain, 0.109% SSIM gain;
         derf set:  0.447% PSNR gain, 0.442% SSIM gain.
      The average speed loss over selected test clips is within 1%
      with the worst case of 4%.
      Change-Id: Icfd2ded7869372b585a6972855d933b3d0280d90
    • Yunqing Wang's avatar
      Correct the mode decisions in special cases · 1dd9a639
      Yunqing Wang authored
      The rate costs calculated for inter modes are not precise in some
      cases, which causes NEWMV is chosen instead of NEARESTMV, NEARMV,
      and ZEROMV. This patch added checks for these cases, and corrected
      the mode decisions.
      Borg tests at speed 3 showed:
      1. stdhd set: 0.102% PSNR gain and 0.088% SSIM gain.
      2. derf set:  0.147% PSNR gain and 0.132% SSIM gain.
      No speed change.
      Change-Id: I35d17684b89ad4734fb610942d707899146426db
    • Dmitry Kovalev's avatar
      Removing postproc mmx code. · 1100e262
      Dmitry Kovalev authored
      Removed functions:
      * vp9_post_proc_down_and_across_mmx
      * vp9_mbpost_proc_down_mmx
      * vp9_plane_add_noise_mmx
      They all have sse2 equivalent.
      Change-Id: I59c1fac12b7c96ca4538d455e4400c2b7875feff
    • James Zern's avatar
      fix x86-darwin* build · a8083449
      James Zern authored
      vp9_variance_sse2.c contains a mix of intrinsics and references to
      assembly which uses x86inc.asm; it's conditionally included as a result.
      Change-Id: I254451483a65881c0b8e18e27bf0c3ddef60c4ec
    • James Zern's avatar
      vp9: correct context buffer resize check · bb4950df
      James Zern authored
      allocations within vp9_alloc_context_buffers() rely on mi_rows/mi_cols
      individually, use those to determine whether to realloc rather than
      stride and stride * rows. this fixes a crash with some fuzzed files for
      invalid accesses into last_frame_seg_map and above_context.
      Change-Id: I7b9f40dcf170d443890f3bd2acd285507943c7d4
    • James Zern's avatar
      vp9: fail decode if block/frame refs are corrupt · 440f5097
      James Zern authored
      proceeding using a corrupt (incompletely decoded) frame reference may
      lead to incorrect assumptions about allocation sizes leading to a crash.
      Change-Id: I76e74f2e1be127c2e2c7e1174bb3307497dfd23d
  5. 04 Sep, 2014 8 commits
    • Jingning Han's avatar
      Enable adaptive motion search for ARF coding · d435148f
      Jingning Han authored
      This commit turns on adaptive motion search for ARF coding, in
      addition to other normal inter frame coding. It improves the
      average compression efficiency:
      stdhd 0.1%
      derf  0.04%
      For the test sequences, the speed 3 runtime is reduced:
      pedestrian 1080p 2000 kbps, 149932 ms -> 144580 ms, (3.3% speed-up)
      bus CIF 1000 kbps, 8050 ms -> 7895 ms, (1.9%)
      highway CIF 100 bkps, 45033 ms -> 44078 ms, (2.2%)
      Change-Id: I5228565b609f99e8ae04f6140a2bf2b64a831d21
    • JackyChen's avatar
      Map motion magnitude in VP9 denoiser. · b1153f34
      JackyChen authored
      This is to keep the same with VP8 denoiser.
      If motion magnitude is small,
      make denoiser more aggressive.
      Change-Id: I942a6e2f2ed9aec6f0c4c1f9e5fa47066cadcc0c
    • Dmitry Kovalev's avatar
      Adding temp cpi var. · 7897059e
      Dmitry Kovalev authored
      Change-Id: Ifa3c1cc2317c1bc21d1042b9662b35056d1e9ed0
    • Dmitry Kovalev's avatar
      Removing sz member from vpx_codec_priv. · 91998e63
      Dmitry Kovalev authored
      Change-Id: I811526a9ee9f237604f72abe7fc677e39e0f457f
    • JackyChen's avatar
      Update the condition when COPY_BLOCK is chosen. · d75266f1
      JackyChen authored
      The change is just to keep the condition the same with VP8.
      Change-Id: I9662b40996126605945dd853c0cbe8916c1ce578
    • Dmitry Kovalev's avatar
      Removing unused function prototypes. · 49094355
      Dmitry Kovalev authored
      Change-Id: Ia5e383e2cf18052f6f1eacf8b9495ab8e4d58878
    • JackyChen's avatar
      Fix a bug in VP9 denoiser. · e30f7698
      JackyChen authored
      When the first try of denoising turns out to be too much,
      we will use a softer filter by adopting an adjustment to
      make the result closer to original pixel (as in VP8 denoiser).
      The old code made the adjustment in the wrong direction.
      Change-Id: I84e28fa9e01eef47c5a37d5a2e6d3d378a06786b
    • Dmitry Kovalev's avatar
      Adding sse2 variant for vp9_mse{8x8, 8x16, 16x8}. · 48197f0a
      Dmitry Kovalev authored
      Change-Id: I6786d25ce4f32b8d8912f2d239a45ca15b310c4b
  6. 03 Sep, 2014 7 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
    • Dmitry Kovalev's avatar
      Small cleanup: reusing existing code. · a7ccc129
      Dmitry Kovalev authored
      Change-Id: Iac4775ad98e988f2b9cf5bd0dc91ab994d0262ce
    • Dmitry Kovalev's avatar
      Initializing intra modes without vpx_once(). · bf778e7d
      Dmitry Kovalev authored
      Change-Id: I0a9d52432f2500f1bd8f43f229e70e38bb9a0343
    • Yaowu Xu's avatar
      Merge two similar functions into one · e759d957
      Yaowu Xu authored
      intra_super_block_yrd() and inter_super_block_yrd() are largely same,
      this commit merges them into one to reduce code duplication.
      Change-Id: I64d7042a5b099345627cf55663010c185b25ec37
    • Dmitry Kovalev's avatar
      Consistent allocation of vpx_codec_alg_priv_t. · b08fab88
      Dmitry Kovalev authored
      Change-Id: I5a03496de035fbcf31e4527cd25fcae4627a57a0
    • Yaowu Xu's avatar
      Change last_partition_redo_frequency for speed 3 · 7a337124
      Yaowu Xu authored
      From 3 to 2, which seems to be slightly positive on compression for
      all test sets, also reduces encoding time by 2%-5%, varying on the
      test clips.
      Change-Id: If045417bd27311700c919b4a335eff0dc1130ae0
    • Yaowu Xu's avatar
      Remove redundant code · cdda17ed
      Yaowu Xu authored
      Change-Id: I453b167f03811a3cd3592089593b3f2823f62ab3