- 14 Apr, 2011 1 commit
-
-
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
-
- 11 Apr, 2011 2 commits
-
-
Yunqing Wang authored
Remove encoding speed limitation in real-time mode. Change-Id: Ib5e35d8bb522b2a25f3e4ad5cfe2788ebebb3617
-
Yunqing Wang authored
Clean up the code. Change-Id: I7db048efa4d972b528d553a7921bc45979621129
-
- 08 Apr, 2011 2 commits
-
-
Yunqing Wang authored
Input MV needs to be modified to full-pixel precision. Change-Id: Ic5d78e41bf27077e325024332b9fe89f76c44f0c
-
Paul Wilkins authored
The error accumulator stats values cpi->prediction_error and cpi->intra_error were being populated with rd values not distortion values. These are only "currently" used in a limited way for RT compress key frame detection. Change-Id: I2702ba1cab6e49ab8dc096ba75b6b34ab3573021
-
- 06 Apr, 2011 1 commit
-
-
Yunqing Wang authored
A small change. Change-Id: I2e7726e58370a95d0319361f4f6ad231138d1328
-
- 01 Apr, 2011 1 commit
-
-
Yunqing Wang authored
MV sad cost error is only used in full-pixel motion search, which only need full-pixel resolution instead of quarter-pixel resolution. This change reduced mvsadcost table size, and removed unneccessary pamameter passing since this table is constant once it is generated. Change-Id: I9f931e55f6abc3c99011321f1dfb2f3562e6f6b0
-
- 18 Mar, 2011 1 commit
-
-
John Koleszar authored
A large number of functions were defined with external linkage, even though they were only used from within one file. This patch changes their linkage to static and removes the vp8_ prefix from their names, which should make it more obvious to the reader that the function is contained within the current translation unit. Functions that were not referenced were removed. These symbols were identified by: $ nm -A libvpx.a | sort -k3 | uniq -c -f2 | grep ' [A-Z] ' \ | sort | grep '^ *1 ' Change-Id: I59609f58ab65312012c047036ae1e0634f795779
-
- 11 Mar, 2011 1 commit
-
-
John Koleszar authored
The vp8_build_intra_predictors_mby and vp8_build_intra_predictors_mby_s functions had global function pointers rather than using the RTCD framework. This can show up as a potential data race with tools such as helgrind. See https://bugzilla.mozilla.org/show_bug.cgi?id=640935 for an example. Change-Id: I29c407f828ac2bddfc039f852f138de5de888534
-
- 08 Mar, 2011 1 commit
-
-
John Koleszar authored
Disable zbin boost in SPLITMV mode as intended. Was incorrectly looking at vp8_ref_frame_order instead of vp8_mode_order when comparing against SPLITMV. This condition should have always been false, as SPLITMV is not in the range of valid reference frames. Change-Id: I0408cc7595eff68f00efef6d008e79f5b60d14bf
-
- 24 Feb, 2011 2 commits
-
-
Scott LaVarnway authored
and used defines instead. Change-Id: Idb56e0295d004793f406dfd2d8d8c546aad62e03
-
Scott LaVarnway authored
Removed unnecessary copies. No noticeable speed gains. Change-Id: I996c50c23fedd06d54ee7a3e762cbf559cc4a9d1
-
- 14 Feb, 2011 2 commits
-
-
Scott LaVarnway authored
Eliminated unnecessary calculations. Very small change to performance. Change-Id: Ib7213d43c64e36955177c4d47950ff472266f822
-
Scott LaVarnway authored
Eliminated unnecessary calculations. Improved performance by 10% on keyframes and 1.6% overall for the test clip used. Change-Id: I87671b26af5e2cc439e81d0fee3b15c7cd2a3309
-
- 10 Feb, 2011 2 commits
-
-
John Koleszar authored
Allow compiling without adding vp8/{common,encoder,decoder} to the include paths. Change-Id: Ifeb5dac351cdfadcd659736f5158b315a0030b6c
-
Yunqing Wang authored
Applied better MV prediction in real-time mode, which improves the encoding quality. Used quarter-pixel search instead of iterative sub-pixel search for speed >=5 to improve encoding performance. Tests on the test set showed: 1. For speed=-5, quality improvement: 1.7% on AvgPSNR and 2.1% on SSIM, performance improvement: 3.6% (This counts in the performance lose caused by MV prediction calculation in "Improve MV prediction in vp8_pick_inter_mode() for speed>3"). 2. For speed=-8, quality improvement: 2.1% on AvgPSNR and 2.5% on SSIM. but, 6.9% performance decrease because of MV prediction calculation. This should be improved later. Change-Id: I349a96c452bd691081d8c8e3e54419e7f477bebd
-
- 08 Feb, 2011 1 commit
-
-
Scott LaVarnway authored
Improved performance of good quality, speed 0 (3% average) with no average quality loss. Change-Id: Ica34473f99bd74260eaebde6b132185e09e3c09d
-
- 07 Feb, 2011 1 commit
-
-
Yunqing Wang authored
make vp8_mv_pred() and vp8_cal_sad() available in real-time mode. Change-Id: I71dbae241b486ba943458dcbae552ec4a51689d3
-
- 01 Feb, 2011 2 commits
-
-
Scott LaVarnway authored
instead of each time mode is tested. Change-Id: Ief0f5586dafde54cc14d348dcecdacb182e7c1d5
-
Scott LaVarnway authored
Change-Id: I2bcef6a8e47f88542861fd1356631ca934e2a0e7
-
- 28 Jan, 2011 3 commits
-
-
Yaowu Xu authored
Previously, the DC check is to make sure there is no code-able DC shift for quantizer Q0, which has been verified rather conservative. This commit changes the criteria to have two components, DC and AC, to address the conservativeness. First, it checks if all AC energy is enough to contribute a single non-zero quantized AC coefficient. Second, for DC, the decision to skip further considers two possible scenarios: 1. There is no code-able 2nd order DC coefficient at all; 2 The residue is relatively flat, but the uniform DC change is very small, i.e. less than 1/2 gray level per pixel. Comparing to previous criteria, the new criteria is about 10% to 15% faster in encoding time with a very small quality loss. (threshold ~1000 and quality range 33db-45db) It should be noted that this commit enables "automatic" static threshold for encodebreakout if a non-zero small value is passed in to encoder. Change-Id: I0f77719a1ac2c2dfddbd950d84920df374515ce3
-
Yunqing Wang authored
Applied same method used in vp8_rd_pick_inter_mode() to improve the accuracy of MV prediction. Change-Id: Ia50ae26208b18482695601f32febd99fe89fbc17
-
Paul Wilkins authored
This function was using a variance metric compared to and SSE metric in other places (eg. vp8_rd_inter_uv) Change-Id: I9109fcc5a13bca9db1d7ead500fe14999ab233eb
-
- 27 Jan, 2011 1 commit
-
-
Johann authored
vp8/encoder/rdopt.c:728: warning: pointer targets in passing argument 3 of 'macro_block_yrd' differ in signedness vp8/encoder/rdopt.c:541: note: expected 'int *' but argument is of type 'unsigned int *' distortion is signed when calling macro_block_yrd is both other cases, as well as for RDCOST Change-Id: I5e22358b7da76a116f498793253aac8099cb3461
-
- 26 Jan, 2011 3 commits
-
-
Yunqing Wang authored
Reduce the code size. Change-Id: I2e1998557a3c8776e262c442fd758c25e17aff7a
-
Paul Wilkins authored
Use the function macro_block_yrd() to calculate error and distortion in keeping with what is done for inter frames. The old code was using a variance metric for once case and an SSE function for measuring distortion in the other case. The function vp8_encode_intra16x16mbyrd() is no longer used. Change-Id: Ic228cb00a78ff637f4365b43f58fbe5a9273d36f
-
Yaowu Xu authored
This commit also removes artificial RDMULT cap for low quantizers. The intention is to address some abnormal behavior of mode selections at the low quantizer end, where many macroblocks were coded with SPLITMV with all partitions using same motion vector including (0,0). This change improves the compression quality substantially for high quality encodings in both PSNR and SSIM terms. Overall effect on mid/low rate range is also positive for all metrics, but smaller in magnitude. Change-Id: I864b29c4bd9ff610d2545fa94a19cc7e80c02667
-
- 25 Jan, 2011 1 commit
-
-
Yunqing Wang authored
Adjust checking points in motion vector prediction to better cover possible movements, and get a better prediction. Tests on test clips showed a 0.1% improvement in SSIM, and no change in PSNR and performance. Change-Id: Ifdab05d35e10faea1445c61bb73debf888c9d2f8
-
- 24 Jan, 2011 1 commit
-
-
Scott LaVarnway authored
vp8cx_mb_init_quantizer was being called for every mode checked in vp8_rd_pick_inter_mode. zbin_extra is the only value that really needs to be recalculated. This calculation is disabled when using the fast quantizer for mode selection. This gave a small performance boost (~.5% to 1%). Note: This needs to be verified with segmentation_enabled. Change-Id: I62716a870b3c82b4a998bdf95130ff0b02106f1e
-
- 14 Jan, 2011 2 commits
-
-
Paul Wilkins authored
Previously when a frame was being overlaid on a previously coded alt ref frame we only checked the alt ref 0,0 mode. Where there is a possibility that the alt ref buffer is a filtered frame we should allow the other prediction modes as normal or at the least allow use of the last frame buffer. Change-Id: I4d6227223d125c96b4f3066ec6ec9484fee7768c
-
Paul Wilkins authored
Allow use of other reference frames for the ARF overlay frame when ARNR filtering is enabled Change-Id: Icd6a9fb38977a88fbe7cc9b9c18198eb454c0273
-
- 11 Jan, 2011 2 commits
-
-
Scott LaVarnway authored
Moved ref frame calculations to outside of the mode_index loop. Change-Id: I06103fc7e8af88b54b84443acf6691d29b1272ac
-
Yunqing Wang authored
Add a flag to always enable block4x4 search for speed=0 (good quality) to guarantee no quality loss for speed0. Change-Id: Ie04bbc25f7e6a33a7bfa30e05775d33148731c81
-
- 10 Jan, 2011 1 commit
-
-
Yunqing Wang authored
The maximum possible MV in 1/8 pel units is (1<<11), which could cause mvcost out of its range that is 1023. Change maximum possible MV in 1/8 pel units to (1<<11)-8 will fix this problem. Change-Id: I5788ed1de773f66658c14f225fb4ab5b1679b74b
-
- 07 Jan, 2011 1 commit
-
-
Scott LaVarnway authored
cpi->target_bits_per_mb is currently not being used, so delete it. Also removed other unused code in rdopt.c. Change-Id: I98449f9030bcd2f15451d9b7a3b9b93dd1409923
-
- 28 Dec, 2010 2 commits
-
-
Yunqing Wang authored
Add limits to avoid MV going out of range. Change-Id: I8a5deb40bf393488d29f694b5a56804d578e68b5
-
Yunqing Wang authored
1. Search for block8x16/block16x8 uses block8x8's search results. 2. Check block4x4 only if block8x8 is chosen. (This hurts quality, which will be improved in another check-in.) 3. In block4x4 search, the previous block's result is used as MV predictor for next block. This change improves performance. Change-Id: I9dc089007ca08129fb6c11fe7692777ebb8647b0
-
- 24 Dec, 2010 1 commit
-
-
Yaowu Xu authored
Re-calibrated sad_per_bit16 and sad_per_bit4 tables to linearly correlated to quantizer values, these two variables are used in motion search for costing motion vectors. This change has an small positive effect on compression. Change-Id: Ic9b5ea6fb8d5078ef663ba4899db019cc51f4166
-
- 16 Dec, 2010 2 commits
-
-
Scott LaVarnway authored
In SPLITMV, the 8x8 segment will be checked first. If the 8x8 rd is better than the best, we check the other segments. Otherwise bail. Adjustments to the thresh_mult were necessary to make up for the initial quality loss. The performance improved by 20% (average) for good quality, speed 0 and speed 1, while the overall quality remained the same. Change-Id: I717aef401323c8a254fba3e9777d2a316c774cc3
-
Scott LaVarnway authored
vp8_rd_pick_best_mbsegmentation looks at y only. The new breakout does not include the frame cost, the prob_skip_false cost, or the uv rate. Performance improved by a few percent and the quality remained the same. Change-Id: I94ff013998ac51e8ecce7130870f7b6600758e15
-