1. 19 May, 2011 5 commits
    • John Koleszar's avatar
      Remove unused members of VP8_COMP · 04849772
      John Koleszar authored
      Various members that were either completely unreferenced or written
      and not read.
      
      Change-Id: Ie41ebac0ff0364a76f287586e4fe09a68907806e
      04849772
    • John Koleszar's avatar
      Fix segv without --enable-error-concealment · 7def9022
      John Koleszar authored
      Missed wrapping one function call in #if CONFIG_ERROR_CONCEALMENT.
      
      Change-Id: I5746b1e6e4531670dbed1130467331fe309bdcae
      7def9022
    • Stefan Holmer's avatar
      Adding error-concealment to the decoder. · d04f8523
      Stefan Holmer authored
      The error-concealer is plugged in after any motion vectors have been
      decoded. It tries to estimate any missing motion vectors from the
      motion vectors of the previous frame. Intra blocks with missing
      residual are replaced with inter blocks with estimated motion vectors.
      
      This feature was developed in a separate sandbox
      (sandbox/holmer/error-concealment).
      
      Change-Id: I5c8917b031078d79dbafd90f6006680e84a23412
      d04f8523
    • John Koleszar's avatar
      Make activity masking functions static · a84177b4
      John Koleszar authored
      These don't need extern linkage.
      
      Change-Id: I21220ada926380a75ff654f24df84376ccc49323
      a84177b4
    • John Koleszar's avatar
      Move quantizer init functions to quantize.c · 87254e0b
      John Koleszar authored
      Group related functions together.
      
      Change-Id: I92fd779225b75a7204650f1decb713142c655d71
      87254e0b
  2. 18 May, 2011 1 commit
    • Yunqing Wang's avatar
      Fix a bug in vp8_clamp_mv function · 9c62f941
      Yunqing Wang authored
      Scott fixed the bug in MV clamping function in encoder, which
      could cause artifacts.
      
      Change-Id: Id05f2794c43c31cdd45e66179c8811f3ee452cb9
      9c62f941
  3. 17 May, 2011 1 commit
  4. 13 May, 2011 1 commit
    • Paul Wilkins's avatar
      Restructure of activity masking code. · ff52bf36
      Paul Wilkins authored
      This commit restructures the mb activity masking code
      to better facilitate experimentation using different metrics
      etc. and also allows for adjustment of the zero bin either
      for encode only or both the encode and mode selection
      stages
      
      It also uses information from the current frame rather than
      the previous frame and the default strength has been
      reduced.
      
      Change-Id: Id39b19eace37574dc429f25aae810c203709629b
      ff52bf36
  5. 12 May, 2011 5 commits
    • John Koleszar's avatar
      Improve framerate adaptation · 5ed116e2
      John Koleszar authored
      This patch improves the accuracy of frame rate estimation by using a
      larger, 1 second window. It also more quickly adapts to step changes
      in the input frame rate (ie 30fps to 15fps)
      
      Change-Id: I39e48a8f5ac880b4c4b2ebd81049259b81a0218e
      5ed116e2
    • Scott LaVarnway's avatar
      Removed mv_bits_sadcost · 71a7501b
      Scott LaVarnway authored
      This sad cost is being generated but never used.
      
      Change-Id: I562eebdcb792b743770954feca365b5b37491ecd
      71a7501b
    • Scott LaVarnway's avatar
      Using int_mv instead of MV · 6b25501b
      Scott LaVarnway authored
      The compiler produces better assembly when using int_mv
      for assignments.  The compiler shifts and ors the two 16bit
      values when assigning MV.
      
      Change-Id: I52ce4bc2bfbfaf3f1151204b2f21e1e0654f960f
      6b25501b
    • Yunqing Wang's avatar
      Modification and issue fix in full-pixel refining search · b4da1f83
      Yunqing Wang authored
      Further modification and wrong implementation fix which caused
      refining_search and refining_searchx4 result mismatching.
      
      Change-Id: I80cb3a44bf5824413fd50c972e383eebb75f9b6f
      b4da1f83
    • Yaowu Xu's avatar
      adjusting rd constant slightly by ~10% · bd9d8906
      Yaowu Xu authored
      This is to reflect the RD improvement in the encoder. The change has a
      small positive impact on quality (0.25% by VPXSSIM and 0.05% by PSNR)
      
      Change-Id: Ic66ffc19b10870645088c0624c85556f009fd210
      bd9d8906
  6. 11 May, 2011 1 commit
    • Yaowu Xu's avatar
      remove a variable no longer in use · f7cf439b
      Yaowu Xu authored
      The variable is introduced in commit 2e53e9e5 to make more use of
      trellis quantization, but this is no longer necessary after RDMULT
      was made adaptive in a number of later commits.
      
      Change-Id: I7420522ec7723f38cf77033466c25afb405d52ae
      f7cf439b
  7. 10 May, 2011 1 commit
  8. 09 May, 2011 2 commits
    • Yunqing Wang's avatar
      Use diamond search to replace full search in full-pixel refining search · cb7b1fb1
      Yunqing Wang authored
      In NEWMV mode, currently, full search is used as the refining search
      after n-step search. By replacing it with an iterative diamond search
      of radius 1 largely reduced the computation complexity, but still
      maintained the same encoding quality since the refining search is
      done for every macroblock instead of only a small precentage of
      macroblocks while using full search.
      
      Tests on the test set showed a 3.4% encoding speed increase with none
      psnr & ssim loss.
      
      Change-Id: Ife907d7eb9544d15c34f17dc6e4cfd97cb743d41
      cb7b1fb1
    • Johann's avatar
      clean up unused variable warnings · a7d4d3c5
      Johann authored
      Change-Id: I9467d7a50eac32d8e8f3a2f26db818e47c93c94b
      a7d4d3c5
  9. 06 May, 2011 4 commits
    • Yaowu Xu's avatar
      fix a bug related to gf_active_flags in multi-threaded encoder · 89c6017c
      Yaowu Xu authored
      Paul pointed out that the pointer to the gf_active_flags is not being
      properly incremented in multithreaded encoder. This commit fixes the
      issue by making sure the gf_active_ptr points to the starting of next
      group of mb rows.
      
      Change-Id: I3246e657d23beabb614dfb880733a68a5fd7e34c
      89c6017c
    • John Koleszar's avatar
      Don't override active_worst_quality in 2 pass · abc9958c
      John Koleszar authored
      Commit db5057c7 introduced a bug in that the active_worst_quality
      selected by the 2 pass rate controller was being overridden for key
      frames, causing a severe quality loss.
      
      Change-Id: I4865a6fbe3e94e9b4fb9271c7dd68b455d7b371d
      abc9958c
    • Tero Rintaluoma's avatar
      neon fast quantizer updated · 33fa7c4e
      Tero Rintaluoma authored
      vp8_fast_quantize_b_neon function updated and further optimized.
       - match current C implementation of fast quantizer
       - updated to use asm_enc_offsets for structure members
       - updated ads2gas scripts to handle alignment issues
      
      Change-Id: I5cbad9c460ad8ddb35d2970a8684cc620711c56d
      33fa7c4e
    • Aron Rosenberg's avatar
      Fix semaphore emulation on Windows · eeb81173
      Aron Rosenberg authored
      The existing emulation of posix semaphores on Windows uses SetEvent()
      and WaitForSingleObject(), which implements a binary semaphore, not a
      counting semaphore as implemented by posix. This causes deadlock when
      used with the expected posix semantics. Instead, this patch uses the
      CreateSemaphore() and ReleaseSemaphore() calls (introduced in Windows
      2000) which have the expected behavior.
      
      This patch also reverts commit eb16f00c, which split a semaphore that
      was being used with counting semantics into two binary semaphores.
      That commit is unnecessary with corrected emulation.
      
      Change-Id: If400771536a27af4b0c3a31aa4c4e9ced89ce6a0
      eeb81173
  10. 05 May, 2011 1 commit
    • Yunqing Wang's avatar
      Fix rare hang in multi-thread encoder on Windows · eb16f00c
      Yunqing Wang authored
      This patch is to fix a rare hang in multi-thread encoder that was
      only seen on Windows. Thanks for John's help in debugging the
      problem. More test is needed.
      
      Change-Id: Idb11c6d344c2082362a032b34c5a602a1eea62fc
      eb16f00c
  11. 04 May, 2011 1 commit
  12. 03 May, 2011 2 commits
    • Yunqing Wang's avatar
      Modify HEX search · 04ec930a
      Yunqing Wang authored
      Changed 8-neighbor searching to 4-neighour searching, and continued
      searching until the center point is the best match.
      
      Test on test set showed 1.3% encoding speed improvement as well as
      0.1% PSNR and SSIM improvement at speed=-5 (rt mode).
      
      Will continue to improve it.
      
      Change-Id: If4993b1907dd742b906fd3f86fee77cc5932ee9a
      04ec930a
    • Yaowu Xu's avatar
      change to use fast ssim code for internal ssim calculations · 6c565fad
      Yaowu Xu authored
      The commit also removed the slow ssim calculation that uses a 7x7
      kernel, and revised the comments to better describe how sample ssim
      values are computed and averaged
      
      Change-Id: I1d874073cddca00f3c997f4b9a9a3db0aa212276
      6c565fad
  13. 02 May, 2011 1 commit
  14. 30 Apr, 2011 1 commit
  15. 29 Apr, 2011 1 commit
  16. 28 Apr, 2011 2 commits
  17. 27 Apr, 2011 6 commits
    • Ronald S. Bultje's avatar
      Use psadbw to get the sum of bytes in a line. · 1e7ded69
      Ronald S. Bultje authored
      Thanks Jason for pointing that out on #vp8. ;-).
      
      Change-Id: I5330a753e752a8704b78a409597472628e0b26a5
      1e7ded69
    • Scott LaVarnway's avatar
      Removed unused code in reconinter · 2e102855
      Scott LaVarnway authored
      The skip flag is never set by the encoder for SPLITMV.
      
      Change-Id: I5ae6457edb3a1193cb5b05a6d61772c13b1dc506
      2e102855
    • Ronald S. Bultje's avatar
      SSE2/SSSE3 optimizations for build_predictors_mbuv{,_s}(). · 1083fe49
      Ronald S. Bultje authored
      decoding
      
      before
      10.425
      10.432
      10.423
      =10.426
      
      after:
      10.405
      10.416
      10.398
      =10.406, 0.2% faster
      
      encoding
      
      before
      14.252
      14.331
      14.250
      14.223
      14.241
      14.220
      14.221
      =14.248
      
      after
      14.095
      14.090
      14.085
      14.095
      14.064
      14.081
      14.089
      =14.086, 1.1% faster
      
      Change-Id: I483d3d8f0deda8ad434cea76e16028380722aee2
      1083fe49
    • Yunqing Wang's avatar
      Use insertion sort instead of quick sort · 5abafcc3
      Yunqing Wang authored
      Insertion sort performs better for sorting small arrays. In real-
      time encoding (speed=-5), test on test set showed 1.7% performance
      gain with 0% PSNR change in average.
      
      Change-Id: Ie02eaa6fed662866a937299194c590d41b25bc3d
      5abafcc3
    • John Koleszar's avatar
      Speed up VP8DX_BOOL_DECODER_FILL · 5e1fd413
      John Koleszar authored
      The end-of-buffer check is hoisted out of the inner loop. Gives
      about 0.5% improvement on x86_64.
      
      Change-Id: I8e3ed08af7d33468c5c749af36c2dfa19677f971
      5e1fd413
    • John Koleszar's avatar
      Update VP8DX_BOOL_DECODER_FILL to better detect EOS · 9594370e
      John Koleszar authored
      Allow more reliable detection of truncated bitstreams by being more
      precise with the count of "virtual" bits in the value buffer.
      Specifically, the VP8_LOTS_OF_BITS value is accumulated into count,
      rather than being assigned, which was losing the prior value,
      increasing the required tolerance when testing for the error condition.
      
      Change-Id: Ib5172eaa57323b939c439fff8a8ab5fa38da9b69
      9594370e
  18. 26 Apr, 2011 3 commits
    • John Koleszar's avatar
      Refactor calc_iframe_target_size · db5057c7
      John Koleszar authored
      Combine calc_iframe_target_size, previously only used for forced
      keyframes, with calc_auto_iframe_target_size, which handled most
      keyframes.
      
      Change-Id: I227051361cf46727caa5cd2b155752d2c9789364
      db5057c7
    • John Koleszar's avatar
      Move pick_frame_size() to ratectrl.c · 81d2206f
      John Koleszar authored
      This is a first step in cleaning up the redundancies between
      vp8_calc_{auto_,}iframe_target_size. The pick_frame_size() function is
      moved to ratectrl.c, and made to be the primary interface. This means
      that the various calc_*_target_size functions can be made private.
      
      Change-Id: I66a9a62a5f9c23c818015e03f92f3757bf3bb5c8
      81d2206f
    • Scott LaVarnway's avatar
      Test vector mismatch fix · 7a2b9c50
      Scott LaVarnway authored
      Fixed test vector mismatch that was introduced
      in the "Removed dc_diff from MB_MODE_INFO"
      (Ie2b9cdf9e0f4e8b932bbd36e0878c05bffd28931)
      
      Change-Id: I98fa509b418e757b5cdc4baa71202f4168dc14ec
      7a2b9c50
  19. 25 Apr, 2011 1 commit
    • Johann's avatar
      remove simpler_lpf · 01527e74
      Johann authored
      the decision to run the regular or simple loopfilter is made outside the
      function and managed with pointers
      
      stop tracking the option in two places. use filter_type exclusively
      
      Change-Id: I39d7b5d1352885efc632c0a94aaf56b72cc2fe15
      01527e74