summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2014-11-19sad_test: fix vp8-only buildJames Zern
ROUND_POWER_OF_TWO() is defined in vp9 headers currently, avoid it in non-high-bitdepth code Change-Id: Ic28b8f95ef7964800475ee8b35be5f9cea9afab6
2014-11-19Add a reset to rc tracking for dropped framesYaowu Xu
VP9/DatarateTestVP9Large.ChangingDropFrameThresh/[34] fails post the merge of commit#ffa06b37. This commit adds reset of rc tracking info when frame is dropped, and fixes the causes of the bad interaction between the tests and the previous commit. Change-Id: I848acfd9fcb336359662274325190f94aac76eae
2014-11-19Merge "Combine fdct8x8 and quantization process"Jingning Han
2014-11-19Merge "Add sse2 version for vp9_quantize_fp"Jingning Han
2014-11-18Combine fdct8x8 and quantization processJingning Han
This commit reworks the forward transform and quantization process for 8x8 block coding. It combines the two operations in a single function to save a store/load stage of the original transform coefficients. Overall the speed -6 is slightly faster (around 1% range). The compression performance of speed -6 is improved by 3.4%. Change-Id: Id6628daef123f3e4649248735ec2ad7423629387
2014-11-18Merge "Prevent severe rate control errors in CBR mode"Yaowu Xu
2014-11-18Merge "Modify active_worst_quality setting for one pass CBR."Marco
2014-11-18Merge "change to call vp9_refining_search_sad() directly"Yaowu Xu
2014-11-18Prevent severe rate control errors in CBR modeYaowu Xu
In rare cases, the interaction between rate correction factor and Q choices may cause severe oscillating frame sizes that are way off target bandwidth. This commit adds tracking of rate control results for last two frames, and use the information to prevent oscillating Q choices. Change-Id: I9a6d125a15652b9bcac0e1fec6d7a1aedc4ed97e
2014-11-18Add sse2 version for vp9_quantize_fpJingning Han
vp9_quantize_fp is the quantization process used by rtc coding mode. This commit adds a sse2 implementation of it. The implementation is modified based on vp9_quantize_b_sse2. No speed difference from ssse3 version. Change-Id: I24949c5b27df160b4f35117d28858d269454e64a
2014-11-17Merge "Add empty pointer check to pred buffering in rtc coding mode"Jingning Han
2014-11-17Modify active_worst_quality setting for one pass CBR.Marco
Current setting had active_worst_quality set too high (close to worst_quality) for first frame(s) following first key frame. This changes that to be somewhat more aggressive in allowing active_worst_quality to be lower following key frame. Also remove the 4/5 reduction in active_worst for key frame as this should be set by the user qp_max setting. Change-Id: I0530b3ddcc85c00e3eb7568de1b14a31206c4a4c
2014-11-17change to call vp9_refining_search_sad() directlyYaowu Xu
The function pointer in compressor instance does not change, so this commit changes to call the function directly. Change-Id: I9c9c460e3475711c384b74c9842f0b4f3d037cc5
2014-11-17Add empty pointer check to pred buffering in rtc coding modeJingning Han
This commit adds a check condition to the prediction buffering operation used in the rtc coding mode. This resolves a unit test warning in example/vpx_tsvc_encoder_vp9_mode_7. Change-Id: I9fd50d5956948b73b53bd8fc5a16ee66aff61995
2014-11-17Merge "Code cleanup: remove unused members in RD_OPT"Yunqing Wang
2014-11-17Merge "vp9_ethread: combine encoder counts in separate struct"Yunqing Wang
2014-11-14Merge "Added sse2 acceleration for highbitdepth variance"Debargha Mukherjee
2014-11-14Merge "Visual studio build fix using explicit cast"James Zern
2014-11-14Code cleanup: remove unused members in RD_OPTYunqing Wang
These 2 members in RD_OPT were moved to TileDataEnc struct already, and therefore were removed here. Change-Id: I22fee3b67f96e473a58e194a7edc76dbd48bfa04
2014-11-14vp9_ethread: combine encoder counts in separate structYunqing Wang
Several frame counters in encoder are updated at SB level. Combine those counters and put them in a separate struct, which allows us to allocate one copy for each thread. Change-Id: I00366296a13c0ada4d8fa12f5e07728388b6cab7
2014-11-14Added sse2 acceleration for highbitdepth variancePeter de Rivaz
Change-Id: I446bdf3a405e4e9d2aa633d6281d66ea0cdfd79f (cherry picked from commit d7422b2b1eb9f0011a8c379c2be680d6892b16bc) (cherry picked from commit 6d741e4d76a7d9ece69ca117d1d9e2f9ee48ef8c)
2014-11-14Visual studio build fix using explicit castDeb Mukherjee
Change-Id: If74510370723e497f4f33d988b8b398124edf69b
2014-11-14Merge "vp9_ethread: include a pointer to mb in VP9_COMP"Yunqing Wang
2014-11-14vp9_ethread: include a pointer to mb in VP9_COMPYunqing Wang
Modified VP9_COMP struct to include MACROBLOCK *mb. This change makes it feasible in multi-thread case to allocate a mb for each thread. Change-Id: I624d6d1aa9c132362200753e5d90b581b1738d6e
2014-11-14Merge "Add more rate control stats to vpx_temporal_svc_encoder."Marco
2014-11-14Add more rate control stats to vpx_temporal_svc_encoder.Marco
Average and variance of actual encoding bitrate over fixed short-time window. Change-Id: Icc3d6d93792c81e1fb9fd3b56008bf47a503b204
2014-11-13Merge "vp9_ethread: modify the cyclic refresh struct"Yunqing Wang
2014-11-13Merge "adapt the adjustment limit for rate correction factor in RTC mode"Yaowu Xu
2014-11-13vp9_ethread: modify the cyclic refresh structYunqing Wang
Two members in struct CYCLIC_REFRESH int64_t projected_rate_sb; int64_t projected_dist_sb; are updated at the superblock level, which makes them shared data in the multi-thread situation, and requires extra work to handle them. However, those values are updated and used immediately, and therefore can be removed. This patch cleaned up the code and removed the two members. Change-Id: I2c6ee4552bf49fb63ce590cdb47f9723974fffb1
2014-11-13Merge "Prepare for dynamic frame resizing in the recode loop"Adrian Grange
2014-11-13Merge "Fix 32 bit build emms problem."Paul Wilkins
2014-11-13Merge "Revert "Fix SSSE3 partial_idct_test detection""Johann
2014-11-13Merge "Use reconstructed pixels for intra prediction"Jingning Han
2014-11-13Merge "Refactor nonrd_use_partition coding process"Jingning Han
2014-11-13Prepare for dynamic frame resizing in the recode loopAdrian Grange
Prepare for the introduction of frame-size change logic into the recode loop. Separated the speed dependent features into separate static and dynamic parts, the latter being those features that are dependent on the frame size. Change-Id: Ia693e28c5cf069a1a7bf12e49ecf83e440e1d313
2014-11-13Fix 32 bit build emms problem.Paul Wilkins
Add extra vp9_clear_system_state() calls to fix double / mmx issue introduced into first pass code for 32 bit builds. Change-Id: I84cd2986b80d83650a091ab25c43755efeb82e03
2014-11-13Revert "Fix SSSE3 partial_idct_test detection"James Zern
This reverts commit 7d07f512cd87446eef541e9af4af19b1e8c6342a. this breaks visual studio builds: '#' : invalid character : possibly the result of a macro expansion Change-Id: I77170d549afb71e75a878fa0f6acd204fe8d9e67
2014-11-13adapt the adjustment limit for rate correction factor in RTC modeYaowu Xu
Rate correction factor is used to correct the estimated rate for any given quantizer, and feeds into rate control for quantizer selection. We make use of the actual bits used to calculate this rate correction factor with an adjustment limit to prevent over-adjustment. This commit adapts the adjustment limit to the difference between the estimated bits and the actual bits, allows the adjustment limit to vary between 0.125 (when estimate is close to actual) and 0.625 (when there is >10X factor off between estimated and actual bits). By doing this, the commit appears to have largely corrected two observed issues: 1. Adjustment is too slow when the actual bits used is way off from estimate due to the small adjustment limit. 2. Extreme oscillating quantizer choices due to the feedback loop. Change-Id: I4ee148d2c9d26d173b6c48011313ddb07ce2d7d6
2014-11-13Merge "Vidyo: Turn off keyframes in higher spatial layers"Deb Mukherjee
2014-11-12Merge "Added highbitdepth sse2 SAD acceleration and tests"Debargha Mukherjee
2014-11-12Remove vp9_temporal_denoising from experimental list.Marco
Change-Id: I7a941c0efbb5912aa97348da6fd1aba28df4482a
2014-11-12Added highbitdepth sse2 SAD acceleration and testsPeter de Rivaz
Change-Id: I1a74a1b032b198793ef9cc526327987f7799125f (cherry picked from commit b1a6f6b9cb47eafe0ce86eaf0318612806091fe5)
2014-11-12Merge "Fix SSSE3 partial_idct_test detection"Johann
2014-11-12Merge "Use normal rate_correction_factor for gf in CBR mode"Yaowu Xu
2014-11-11Vidyo: Turn off keyframes in higher spatial layersDeb Mukherjee
Change-Id: Icdd5e71cd6a2b59bc4b3b972af9e4d4a36821792
2014-11-11Merge "Vidyo: Support for one-pass rc-enabled SVC encoder"Deb Mukherjee
2014-11-11Use reconstructed pixels for intra predictionJingning Han
This commit makes the speed -6 and above use the reconstructed boundary pixels for precise intra prediction. This allows more intra prediction modes to be tested in the non-RD coding process. Enabling horizontal and vertical intra prediction modes can improve the speed -6 compression performance for rtc set by 0.331%. Change-Id: I3a99f9d12c6af54de2bdbf28c76eab8e0905f744
2014-11-11Merge "AQ1 - remove first pass weights."Paul Wilkins
2014-11-10Use normal rate_correction_factor for gf in CBR modeYaowu Xu
I0c5f010 changed to allow update golden reference buffer in CBR mode, this commit changes the use of rate_correction_factor for those frames to be aligned with the new usage. This commit attempts to solve two issues: a. Initialization of rate correction factor for Golden Frame Prior to this patch, even the regular inter frame has been update the rate correction factor based on content and encoding results, the first golden frame would still use the ininitialized value that can be way off. b. Allowing rate correction factor update to be slightly faster Prior to this patch, when the rate correction factor is off, the update to the factor is too slow, the factor could not get close to a semi-correct value even after many frames. The commit helps all clips in psnr/ssim metric, but especially to a few clip in RTC set that rate correction was way off. For example thaloundeskmtgvga gained about .5dB for both overall/average psnr. Change-Id: I0be5c41691be57891d824505348b64be87fa3545
2014-11-10Vidyo: Support for one-pass rc-enabled SVC encoderDeb Mukherjee
Adds support for one-pass rc-enabled SVC encoder with callbacks for getting per-layer packets. - the callback function registration is implemented as an encoder control function. - if the callback function is not registered, the old way of aggregating packets with superframe will take effect. - one more control function “VP9E_GET_SVC_LAYER_ID” has been implemented to get the temporal/spatial id from the encoder within the callback. This can be used to get the ids to put on RTP packet. Change-Id: I1a90e00135dde65da128b758e6c00b57299a111a