summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2011-04-26Refactor calc_iframe_target_sizeJohn Koleszar
Combine calc_iframe_target_size, previously only used for forced keyframes, with calc_auto_iframe_target_size, which handled most keyframes. Change-Id: I227051361cf46727caa5cd2b155752d2c9789364
2011-04-26Move pick_frame_size() to ratectrl.cJohn Koleszar
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
2011-04-26Merge "Test vector mismatch fix"Scott LaVarnway
2011-04-26Test vector mismatch fixScott LaVarnway
Fixed test vector mismatch that was introduced in the "Removed dc_diff from MB_MODE_INFO" (Ie2b9cdf9e0f4e8b932bbd36e0878c05bffd28931) Change-Id: I98fa509b418e757b5cdc4baa71202f4168dc14ec
2011-04-25Merge "remove simpler_lpf"Johann
2011-04-25remove simpler_lpfJohann
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
2011-04-25Fix duplicate vp8_compute_frame_size_boundsJohn Koleszar
Likely introduced by a bad automatic merge from gerrit. Change-Id: I0c6dd6ec18809cf9492f524d283fa4a3a8f4088b
2011-04-25Merge "Remove unused functions"John Koleszar
2011-04-25Remove unused functionsJohn Koleszar
Remove estimate_min_frame_size() and calc_low_ss_err(), as they are never referenced. Change-Id: I3293363c14ef70b79c4678ca27aa65b345077726
2011-04-25Merge "Change rc undershoot/overshoot semantics"John Koleszar
2011-04-25Merge "Stereo 3D format support for vpxenc"John Koleszar
2011-04-25Merge "Limit size of initial keyframe in one-pass."John Koleszar
2011-04-25Merge "Add rc_max_intra_bitrate_pct control"John Koleszar
2011-04-25Limit size of initial keyframe in one-pass.John Koleszar
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
2011-04-25Add rc_max_intra_bitrate_pct controlJohn Koleszar
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
2011-04-25Merge "bug fix possible keyframe context divide by zero"John Koleszar
2011-04-25bug fix possible keyframe context divide by zeroJames Berry
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
2011-04-25Stereo 3D format support for vpxencAlok Ahuja
Create a new input parameter to allow specifying the packed frame stereo 3d format. A default value of mono will be written in the absence of user specified input Change-Id: I576d9952ab5d7e2076fbf1b282016a9a1baaa103
2011-04-25Merge "keep values in registers during quantization"Johann
2011-04-25Merge "Removed unnecessary frame type checks"Scott LaVarnway
2011-04-25Merge "Removed dc_diff from MB_MODE_INFO"Scott LaVarnway
2011-04-22Merge "make two compiler options explicit for Visual Studio projects"Yaowu Xu
2011-04-22Fix overflow in temporal_filter_apply_sse2().Ronald S. Bultje
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
2011-04-21Merge "Remove unused kf rate variables"John Koleszar
2011-04-21Corrected format specifiers in debug print statementsAdrian Grange
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
2011-04-21make two compiler options explicit for Visual Studio projectsYaowu Xu
This patch changes the release configuration of MS VS projects to explicitly use two compiler options "Maximize Speed (/O2)" and "Favor fast code(/Ot)". Change-Id: I0bf8343d9ca195851332b91ec69c69ee4e31ce2a
2011-04-21keep values in registers during quantizationJohann
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
2011-04-21Removed unnecessary frame type checksScott LaVarnway
ref_frame is set to INTRA_FRAME for keyframes. The B_PRED mode is only used in intra frames. Change-Id: I9bac8bec7c736300d47994f3cb570329edf11ec0
2011-04-21Removed dc_diff from MB_MODE_INFOScott LaVarnway
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
2011-04-20Removed force_no_skipScott LaVarnway
force_no_skip is always set to zero. Change-Id: I89b61c5e0bee34627a9c07c05f3517e1db76af77
2011-04-20Removed redundant checks of the mode_info_context flagsScott LaVarnway
Code cleanup. The build inter predictor functions are redundantly checking the mode_info_context for either INTRA_FRAME or SPLITMV. Change-Id: I4d58c3a5192a4c2cec5c24ab1caf608bf13aebfb
2011-04-19Remove unused kf rate variablesJohn Koleszar
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
2011-04-19modify SAVE_XMM for potential 64bit useJohann
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
2011-04-19Merge "Add save/restore xmm registers in x86 assembly code"Johann
2011-04-18Add save/restore xmm registers in x86 assembly codeJohann
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
2011-04-18Merge "Use sub-pixel search's SSE in mode selection"Yunqing Wang
2011-04-18Use sub-pixel search's SSE in mode selectionYunqing Wang
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
2011-04-18Merge "Handle long delay between video frames in multi-thread decoder(issue ↵Yunqing Wang
312)"
2011-04-18Merge "store quant_shift as an unsigned char"Johann
2011-04-18Merge "Add spin-wait pause intrinsic for Windows x64 platform."Yaowu Xu
2011-04-18Merge "fixed an overflow in ssim calculation"Yaowu Xu
2011-04-18Removed unused timersScott LaVarnway
Change-Id: I209803b9dbed2b2f6d02258fd7a3963a6645f4ab
2011-04-18Merge "added -fomit-frame-pointer flag for gcc builds"John Koleszar
2011-04-15Handle long delay between video frames in multi-thread decoder(issue 312)Yunqing Wang
This is reported by m...@hesotech.de (see issue 312): "The decoder causes an access violation when you decode the first frame, then make a pause of about 60 seconds and then decode further frames. But only if vpx_codec_dec_cfg_t.threads> 1. This is caused by a timeout of WaitForSingleObject. When I change the definition of VPXINFINITE to INFINITE(0xFFFFFFFF), the problem is solved." Reproduced the crash and verified the changes on Windows platform. This brings the behavior inline with the other platforms using sem_wait(). Change-Id: I27b32f90bce05846ef2684b50f7a88f292299da1
2011-04-15Merge "remove dead code, add missing RESTORE_XMM"Johann
2011-04-15added -fomit-frame-pointer flag for gcc buildsScott LaVarnway
According to the docs, this should have been enabled, but the disassembled output shows otherwise. This improved the encode/decode performance. Change-Id: I45ad7e6d299b89ac3166d7ef7da75b74994344c6
2011-04-15remove executable bitJohann
source files are not executable Change-Id: Id2c7294695a22217468426423979f68f02d82340
2011-04-15Merge "Fix usage of value returned by vp8_pick_intra4x4mby_modes"Adrian Grange
2011-04-15Merge "Reduce unnecessary distortion computation"Yunqing Wang
2011-04-15remove dead code, add missing RESTORE_XMMJohann
vp8_filter_block1d16_h4_ssse3 was never called because UNSHADOW_ARGS moves the stack by 'mov rsp, rbp', the issue was masked. however, if/when win64 used those registers for persistant data, issues could/will arise. Change-Id: I56d6effca0aeba1f86082689771cb10145d39651