- 11 May, 2011 - 1 commit
-
- 09 May, 2011 - 2 commits
-
-
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
-
Johann authored
Change-Id: I9467d7a50eac32d8e8f3a2f26db818e47c93c94b
-
- 06 May, 2011 - 4 commits
-
-
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
-
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
-
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
-
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
-
- 05 May, 2011 - 1 commit
-
-
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
-
- 03 May, 2011 - 2 commits
-
-
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
-
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
-
- 28 Apr, 2011 - 1 commit
-
-
Scott LaVarnway authored
Code cleanup. Change-Id: Ic8b0167851116c64ddf08e8a3d302fb09ab61146
-
- 27 Apr, 2011 - 3 commits
-
-
Scott LaVarnway authored
The skip flag is never set by the encoder for SPLITMV. Change-Id: I5ae6457edb3a1193cb5b05a6d61772c13b1dc506
-
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
-
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
-
- 26 Apr, 2011 - 2 commits
-
-
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
-
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
-
- 25 Apr, 2011 - 6 commits
-
-
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
-
John Koleszar authored
Likely introduced by a bad automatic merge from gerrit. Change-Id: I0c6dd6ec18809cf9492f524d283fa4a3a8f4088b
-
John Koleszar authored
Remove estimate_min_frame_size() and calc_low_ss_err(), as they are never referenced. Change-Id: I3293363c14ef70b79c4678ca27aa65b345077726
-
John Koleszar authored
Rather than using a default size of 1/2 or 3/2 seconds for the first frame, use a fraction of the initial buffer level to give the application some control. This will likely undergo further refinement as size limits on key frames are currently under discussion on codec-devel@, but this gives much better behavior for small buffer sizes as a starting point. Change-Id: Ieba55b86517b81e51e6f0a9fe27aabba295acab0
-
John Koleszar authored
Adds a control to limit the maximum size of a keyframe, as a function of the per-frame bitrate. See this thread[1] for more detailed discussion: [1]: http://groups.google.com/a/webmproject.org/group/codec-devel/browse_thread/thread/271b944a5e47ca38 Change-Id: I7337707642eb8041d1e593efc2edfdf66db02a94
-
James Berry authored
vp8_adjust_key_frame_context() divides by estimate_keyframe_frequency() which can return 0 in the case where --kf-max-dist=0. Change-Id: Idfc59653478a0073187cd2aa420e98a321103daa
-
- 22 Apr, 2011 - 1 commit
-
-
Ronald S. Bultje authored
The accumulator array is an integer array, so use paddd instead of paddw to add values to it. Fixes overflows when using large --arnr-maxframes (>8) values. Change-Id: Iad83794caa02400a65f3ab5760f2517e082d66ae
-
- 21 Apr, 2011 - 3 commits
-
-
Adrian Grange authored
The arguments to these fprintfs are int not long int so the format specifier should be "%d" and not "%ld". This was writing garbage in the linux build. Change-Id: I3d2aa8a448d52e6dc08858d825bf394929b47cf3
-
Johann authored
add an sse4 quantizer so we can use pinsrw/pextrw and keep values in xmm registers instead of proxying through the stack. and as long as we're bumping up, use some ssse3 instructions in the EOB detection (see ssse3 fast quantizer) pick up about a percent on 32bit and about two on 64bit. Change-Id: If15abba0e8b037a1d231c0edf33501545c9d9363
-
Scott LaVarnway authored
The dc_diff flag is used to skip loopfiltering. Instead of setting this flag in the decoder/encoder, we now check for this condition in the loopfilter. Change-Id: Ie2b9cdf9e0f4e8b932bbd36e0878c05bffd28931
-
- 20 Apr, 2011 - 2 commits
-
-
Scott LaVarnway authored
force_no_skip is always set to zero. Change-Id: I89b61c5e0bee34627a9c07c05f3517e1db76af77
-
Scott LaVarnway authored
Code cleanup. The build inter predictor functions are redundantly checking the mode_info_context for either INTRA_FRAME or SPLITMV. Change-Id: I4d58c3a5192a4c2cec5c24ab1caf608bf13aebfb
-
- 19 Apr, 2011 - 2 commits
-
-
John Koleszar authored
Remove tot_key_frame_bits and prior_key_frame_size[] as they were tracked but never used. Remove intra_frame_target, as it was only used to initialize prior_key_frame_size. Refactor vp8_adjust_key_frame_context() some to remove unnecessary calculations. Change-Id: Icbc2c83d2b90e184be03e6f9679e678f3a4bce8f
-
Johann authored
the win64 abi requires saving and restoring xmm6:xmm15. currently SAVE_XMM and RESTORE XMM only allow for saving xmm6:xmm7. allow specifying the highest register used and if the stack is unaligned. Change-Id: Ica5699622ffe3346d3a486f48eef0206c51cf867
-
- 18 Apr, 2011 - 2 commits
-
-
Johann authored
Went through the code and fixed it. Verified on Windows. Where possible, remove dependencies on xmm[67] Current code relies on pushing rbp to the stack to get 16 byte alignment. This broke when rbp wasn't pushed (vp8/encoder/x86/sad_sse3.asm). Work around this by using unaligned memory accesses. Revisit this and the offsets in vp8/encoder/x86/sad_sse3.asm in another change to SAVE_XMM. Change-Id: I5f940994d3ebfd977c3d68446cef20fd78b07877
-
Yunqing Wang authored
Passed SSE from sub-pixel search back to pick_inter_mode function, which is compared with the encode_breakout to see if we could skip evaluating the remaining modes. Change-Id: I4a86442834f0d1b880a19e21ea52d17d505f941d
-
- 14 Apr, 2011 - 2 commits
-
-
Yunqing Wang authored
In vp8_pick_inter_mode(), for NEWMV mode, use the error result got from motion search as distortion. This helps performance in real- time mode. Change-Id: I398c4e46cc5381f7d874e748cf78827ef0e0860c
-
Adrian Grange authored
The value of distortion2 returned by vp8_pick_intra4x4mby_modes was being overwritten by the value returned by get16x16prederror before it was tested. Change-Id: If00e80332b272c5545c3a7e381c8041e8319b41a
-
- 13 Apr, 2011 - 5 commits
-
-
Fritz Koenig authored
opsnr.stt file was using \t for delimiters on everything except between VPXSSIM and Time. Change-Id: I6284c4e40c05ff642bf4b0170dca062c279a42df
-
Adrian Grange authored
Index i is used to detect early breakout from the first loop, but its value is lost due to reuse in the second for loop. I moved the position of the second loop and did some format cleanup. Change-Id: I02780eae1bd89df4b6c000fb8a018b0837aac2e5
-
John Koleszar authored
This patch cleans up the source buffer storage and copy mechanism to allow access through a standard push/pop/peek interface. This approach also avoids an extra copy in the case where the source is not a multiple of 16, fixing issue #102. Change-Id: I05808c39f5743625cb4c7af54cc841b9b10fdbd9
-
Johann authored
in encodframe.c, quant_shift is set to 0 or 1 in vp8cx_invert_quant only use 8 bits to store this, instead of 16. will allow saving an xmm register in an updated version of the regular quantize Change-Id: Ie88c47fe2aff5af0283dab1147fb2791e4b12f90
-
John Koleszar authored
This patch changes the rc_undershoot_pct and rc_overshoot_pct controls to set the "aggressiveness" of rate adaptation, by limiting the amount of difference between the target buffer level and the actual buffer level which is applied to the target frame rate for this frame. This patch was initially provided by arosenberg at logitech.com as an attachment to issue #270. It was modified to separate these controls from the other unrelated modifications in that patch, as well as to use the pre-existing variables rather than introducing new ones. Change-Id: Id542e3f5667dd92d857d5eabf29878f2fd730a62
-
- 12 Apr, 2011 - 1 commit
-
-
John Koleszar authored
Previous to commit de4e9e3b, there was an early return in the alt-ref case that was inadvertantly removed when the function was refactored to return void. This patch restores the prior behavior. Change-Id: I783ffd594a4690297e2742f99526fd7ad67698b2
-