- 20 Nov, 2014 2 commits
-
-
Yunqing Wang authored
The mask_filter in RD_OPT struct is used to record rd result in filter decision. It is only used in pick_inter_mode functions, and is removed from the struct and declared as a local variable. Change-Id: I3c95c8632ba7241591ce00ef2ef5677b5e297d7b
-
Yunqing Wang authored
This reverts commit 6906d218. Another way will be used to handle mb struct. Change-Id: Ic1111a46b2b1ee00f8f9e3fcd4cf3eb6030b2dc4
-
- 19 Nov, 2014 2 commits
-
-
Yaowu Xu authored
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
-
Jingning Han authored
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
-
- 18 Nov, 2014 2 commits
-
-
Yaowu Xu authored
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
-
Jingning Han authored
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
-
- 17 Nov, 2014 3 commits
-
-
Marco authored
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
-
Yaowu Xu authored
The function pointer in compressor instance does not change, so this commit changes to call the function directly. Change-Id: I9c9c460e3475711c384b74c9842f0b4f3d037cc5
-
Jingning Han authored
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
-
- 15 Nov, 2014 2 commits
-
-
Yunqing Wang authored
These 2 members in RD_OPT were moved to TileDataEnc struct already, and therefore were removed here. Change-Id: I22fee3b67f96e473a58e194a7edc76dbd48bfa04
-
Yunqing Wang authored
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
-
- 14 Nov, 2014 2 commits
-
-
Peter de Rivaz authored
Change-Id: I446bdf3a405e4e9d2aa633d6281d66ea0cdfd79f (cherry picked from commit d7422b2b1eb9f0011a8c379c2be680d6892b16bc) (cherry picked from commit 6d741e4d76a7d9ece69ca117d1d9e2f9ee48ef8c)
-
Yunqing Wang authored
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
-
- 13 Nov, 2014 4 commits
-
-
Yunqing Wang authored
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
-
Adrian Grange authored
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
-
Paul Wilkins authored
Add extra vp9_clear_system_state() calls to fix double / mmx issue introduced into first pass code for 32 bit builds. Change-Id: I84cd2986b80d83650a091ab25c43755efeb82e03
-
Yaowu Xu authored
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
-
- 12 Nov, 2014 2 commits
-
-
Peter de Rivaz authored
Change-Id: I1a74a1b032b198793ef9cc526327987f7799125f (cherry picked from commit b1a6f6b9cb47eafe0ce86eaf0318612806091fe5)
-
Deb Mukherjee authored
Change-Id: Icdd5e71cd6a2b59bc4b3b972af9e4d4a36821792
-
- 11 Nov, 2014 3 commits
-
-
Jingning Han authored
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
-
Yaowu Xu authored
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
-
Deb Mukherjee authored
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
-
- 07 Nov, 2014 5 commits
-
-
Deb Mukherjee authored
Change-Id: I266777d40c300bc53b45b205144520b85b0d6e58 (cherry picked from commit a1b726117f5470f227bc90cd030b7d25045dc510)
-
Alex Converse authored
Change-Id: I39d9f13fa34984ee9dad0c4f303ef672635f420e
-
Paul Wilkins authored
Removed redundant weighting function tied for AQ1 from first pass code. Improvment in baseline AQ1 results:- Derf opsnr +0.142% SSIm +0.258% YT opsnr +0.173% SSIm +0.3% Change-Id: I16ef91caf2d7f302cd5940cc5e2626d48ebcb212
-
Yaowu Xu authored
This commit rename a reserved color space entry to BT_2020, it intends to provide support for VP9 bitstream to pass along the color space type defined in BT.2020(Rec.2020) please note this entry does not have any effect on encoding/decoding behavior, but allow applications to the pass the information along from encoding end to decoding end. Change-Id: I4678520e89141ea5e8900f7bd1c0e95b710b7091
-
Jingning Han authored
This commit integrates the non-RD mode decision process and the encoding process into a single recursion scheme. Change-Id: I6a7e72a0b84d567554801ebbe01ec75d54c1f77d
-
- 06 Nov, 2014 5 commits
-
-
Yunqing Wang authored
This patch was to fix the vpxdec fuzzing3 test failure. When an error occurs, setjmp() is invoked, which calls the decoder removing routine. In multiple thread situation, other threads could try to access the frame context memory that is already deallocated, thus causing a segfault. An invalid unit test was added for this issue. Change-Id: Ida7442154f3d89759483f0f4fe0324041fffb952
-
Paul Wilkins authored
The aim of this patch is to apply a positive weighting to frames that have a significant number of blocks that are of low spatial complexity and are dark. The rationale behind this is that artifacts tend to be more visible in such frames. In this patch the weight is only applied in regard to the distribution of bits between frames. Hence if all the frames share similar characteristics (as is the case for most of our short test clips) there will be little or no net effect. However, the effect can be seen on some longer form test content. For example Tears of steel baseline test: 2323.09 Kbit/s opsnr 39.915 ssim 74.729 With this patch:- 2213.34 Kbit/s opsnr 39.963 ssim 74.808 (Sligtly better metrics and about 5% smaller) The weighting may well need some further tuning along side changes to the aq modes. Change-Id: Ieced379bca03938166ab87b2b97f55d94948904c
-
Jingning Han authored
Change-Id: Ia540eac5f066ae95280c2f898370eddf0110c279
-
Jingning Han authored
This commit removes the cyclic aq mode dependency on in_static_area and reworks the corresponding cut-off thresholds. It improves the compression performance of speed -5 by 1.47% in PSNR and 2.07% in SSIM, and the compression performance of speed -6 by 3.10% in PSNR and 5.25% in SSIM. Speed wise, about 1% faster in both settings at high bit-rates. Change-Id: I1ffc775afdc047964448d9dff5751491ba4ff4a9
-
hkuang authored
This will save the memory and improve the decode speed due to removing unnecessary memset of big prev_mi array for all the key frames. Decoding a all key frames 1080p video shows speed improve around 2%. Change-Id: I6284a445c1291056e3c15135c3c20d502f791c10
-
- 05 Nov, 2014 2 commits
- 04 Nov, 2014 3 commits
-
-
hkuang authored
Change-Id: I2ceee7341d906259002c0ea31ea009ae32c04bfd
-
Minghai Shang authored
Change-Id: Ibd9114485c3d747f9d148f64f706bf873ea473ac
-
Jingning Han authored
This commit makes the RTC coding mode to conditionally skip the reference frame mode search, when the predicted motion vector of the current reference frame gives more than two times sum of absolute difference compared to that of other reference frames. It reduces the runtim by 1% - 4% for speed -5 and -6. The average compression performance is improved by about 0.1% in both settings. It is of particular benefit to light change scenarios. The compression performance of test clip mmmovingvga.y4m is improved by 6.39% and 15.69% at high bit rates for speed -5 and -6, respectively. Speed -5 vidyo1 16555 b/f, 40.818 dB, 12422 ms -> 16552 b/f, 40.804 dB, 12100 ms nik 33211 b/f, 39.138 dB, 11341 ms -> 33228 b/f, 39.139 dB, 11023 ms mmmoving 33263 b/f, 40.935 dB, 13508 ms -> 33256 b/f, 41.068 dB, 12861 ms Speed -6 vidyo1 16541 b/f, 40.227 dB, 8437 ms -> 16540 b/f, 40.220 dB, 8216 ms nik 33272 b/f, 38.399 dB, 7610 ms -> 33267 b/f, 38.414 dB, 7490 ms mmmoving 33255 b/f, 40.555 dB, 7523 ms -> 33257 b/f, 40.975 dB, 7493 ms Change-Id: Id2aef76ef74a3cba5e9a82a83b792144948c6a91
-
- 03 Nov, 2014 2 commits
-
-
Jingning Han authored
This commit unfolds the legacy macro definitions used in the sub-pixel motion search and refactors the operational flow for later optimizations. Change-Id: I3e3f770cad961d03d1a6eb0b2a0186cc77eaf2b8
-
Marco authored
The current logic was allowing for disabling golden refresh only for two pass svc encoding. This change disables it as long as more than 1 layer encoding is used (for example temporal layers under 1pass CBR). Change-Id: I4dc5204a7ad365c821ec7963e93b59da82e1826b
-
- 02 Nov, 2014 1 commit
-
-
Jingning Han authored
Fix the alignment of entries fo intra prediction modes. Change-Id: Ie32ad87cf90694efd591a4b1cc29c916c4cd56f7
-