- 16 Nov, 2017 1 commit
-
-
paulwilkins authored
When allow_partition_search_skip is set the two pass code can optionally skip the partition search in the rd loop if the image appears static (based on selection of 0,0 motion). Unfortunately 0,0 motion does not necessarily mean that there are no meaningful changes or that motion or intra modes will not be selected in the second pass. Disabling "allow_partition_search_skip" may hurt the encode speed a little for a small number of clips but can have a big impact on compression. The most notable example of this in our test sets is "bridge_close_cif" where this change gives a gains of 18%, 12% and 16% in opsnr, ssim and psnr-hvs. Change-Id: I765e288b5c0cd82bce00a148e7653a21e9203024
-
- 15 Nov, 2017 3 commits
-
-
paulwilkins authored
Removal of parameters to and code in calc_frame_boost() that is no longer required. No change to results from previous patch. Change-Id: Ic92da35613fdc247d22fddf24d09679fc5329017
-
paulwilkins authored
The decay accumulator clause covers similar ground to the new clause that tests the accumulated second reference error so it has been removed to reduce complexity. Change-Id: I4ec1cce32d72bd4ee463ad7def2831a68447d525
-
paulwilkins authored
Add a clause to the breakout test for alt ref groups that examines the size of the accumulated second reference frame error compared to the cost of intra coding. This clause causes a reduction in the average group length for many clips. Alongside the change to the group length the minimum boost is increased. On balance the results are positive for psnr and psnr-hvs but is negative for ssim/fast ssim for the smaller image formats. Strong gains on some harder clips (eg ducks take off (midres) ~20%, husky (lowres) 6-17%. Most of the negative cases are lower motion clips. Subsequent patch hopefully will help with those. Change-Id: Ic1f5dbb9153d5089e58b1540470e799f91a65dc4
-
- 14 Nov, 2017 2 commits
-
-
Scott LaVarnway authored
Change-Id: Ic10ba580fd5da7d6ff7fa0f33db72fb0c1a97801
-
James Bankoski authored
-
- 13 Nov, 2017 7 commits
-
-
Jerome Jiang authored
-
Jerome Jiang authored
VPX_ENCODER_ABI_VERSION was bumped up in 93e83f. Change-Id: Id5707f9f9db56fa96549bc8f54e1cfa04e7fa4cd
-
Jim Bankoski authored
Change-Id: I92e4dba2d1682a0d77ad9a214ec4312b1cf4d42e
-
paulwilkins authored
For new VP9 only content type adjust the rate distortion and ARF filter based on the relative spatial variance of the source and reconstruction. In regards to the RD loop the method favors modes where the reconstruction variance is similar to the source variance. However it is currently only applied to regions where the source variance is quite low. For very low variance blocks it applies a further bias against intra coding and large prediction block sizes (the later in particular limit the usefulness of the loop filter). The final part of this change is to lower the strength of the ARF filter for blocks where the source has very low spatial variance, to encourage some low amplitude texture or noise to pass through the filter. This change improves the retention of film grain and fine noise / texture in spatially flat regions, but as expected causes a significant drop in PSNR on many clips. This is to be expected because similar but misaligned noise or texture will give a lower PSNR than a flat noise free reconstruction. However, it is worth noting that most clips show a strong gain in FAST SSIM. The features are enabled on the vpxenc command line by setting --tune-content=film. VPX_ENCODER_ABI_VERSION bumped for this change and cvbr. Change-Id: I26a4e4edfa3dc5cacead82fa701fe7a9118ccd0a
-
paulwilkins authored
Removed three parameters that are no longer needed in calls to calc_arf_boost() and associated minor changes. No impact on encode results. Change-Id: Ieaf31d0d2e1990b99cf69647170145a1bbfbb9fb
-
Paul Wilkins authored
-
Paul Wilkins authored
-
- 10 Nov, 2017 5 commits
-
-
Scott LaVarnway authored
SSE2 instrinsic vs AVX2 intrinsic speed gains: blocksize 16: ~1.33 blocksize 64: ~1.51 blocksize 256: ~3.03 blocksize 1024: ~3.71 Change-Id: I79b28cba82d21f9dd765e79881aa16d24fd0cb58
-
Scott LaVarnway authored
-
Marco Paniconi authored
-
Marco authored
For choose_partitioning (speed >= 6): avoid computation of minmax variance for non-reference frames in SVC. Existing condition only avoided this for speed >= 8. Combine that existing logic with non-reference condition. Small speedup (~0.5-1%) for 3 layer SVC, neutral change on avgPSNR/SSIM metrics. Change-Id: I3e9f3a1af0647b15e475cf170d9402908d672ee5
-
James Zern authored
-
- 09 Nov, 2017 8 commits
-
-
Jerome Jiang authored
-
Jerome Jiang authored
For SVC with 3 spatial layers: Add feature to copy/upscale partition from middle spatial layer to the upper/highest resolution, when superblock sad is not high. Enabled for speed >= 7 and only for non-reference frames. Speedup ~3-4%, small loss in avgPNSR/SSIM of ~1%. Change-Id: I7f0a2716c0fde28bade0f86159d11b7e31d6ab8d
-
Scott LaVarnway authored
Change-Id: I7364a157de39eb7137b599808474b8d46d19d376
-
Johann Koenig authored
-
Scott LaVarnway authored
SSE2 asm vs AVX2 intrinsics speed gains: blocksize 16: ~1.00 blocksize 64: ~1.17 blocksize 256: ~1.67 blocksize 1024: ~1.81 Change-Id: I2a86db239cf57e3ff617890ccb2d236aba83ad5e
-
paulwilkins authored
For a chosen interval "i" the existing arf boost calculation examined frames +/- (i-1) frames from the current location in the second pass. This change checks to make sure that the forward search does not extend beyond the next key frame in the event that the distance to the next key frame is < (i - 1). Small metrics gains on all our test sets but these are localized to a few clips (e.g. midres set psnr-hvs sintel -2.59% but overall average was only -0.185%) Change-Id: I26fc9ce582b6d58fa1113a238395e12ad3123cf6
-
Jerome Jiang authored
-
Jerome Jiang authored
The new test will run a SVC bitstream which has non ref frames. It checks the number of buffer acquired and released to make sure all external frame buffers are released. Add a new test bitstream: vp90-2-22-svc_1280x720_1.webm which has 400 frames in total, and 1 spatial layer and 2 temporal layers. There is one non ref frame every other frame. Disabled for now. Will be enabled with the fix. BUG=b/68819248 Change-Id: I0515336fd9809a9e1fceba90e4dce53dabaf53a5
-
- 08 Nov, 2017 2 commits
-
-
Johann Koenig authored
-
paulwilkins authored
Added command line control of Corpus VBR. The new corpus vbr mode is a variant of standard VBR (end-usage=0) where the complexity distribution mid point is passed in rather than calculated for a specific clip or chunk. The new variant is enabled by setting a new command line parameter --corpus-complexity to a zero value. Omitting this parameter or setting it to 0 will cause the codec to use standard vbr mode. The correct value for a given corpus needs to be derived experimentally using a training set such that the average rate for the corpus is close to the target value. For example our using our low res test set with upper and lower vbr limits of 50%-150% and a corpus complexity value of 650 gives a similar average data rate across the set to using standard vbr. However, with the corpus mode easier clips will be allocated fewer bits and harder clips more bits rather than having the same rate target for all. Change-Id: I03f0fc8c6fb0ee32dc03720fea6a3f1949118589
-
- 06 Nov, 2017 1 commit
-
-
Marco authored
For nonrd_pickmode: if early_term is set there should be no need to include UV in rdcost (when color_sensitivity is set). Neutral change on RTC and RTC_derf metrics, for speed >= 5. No change for ytlive metrics. Very small speed gain (~0.5%) on some clips with strong color content. Change-Id: Ifc00928ecd935fc71e94935ceef0ae7481249f07
-
- 03 Nov, 2017 3 commits
-
-
Kyle Siefring authored
The added AVX-512 support requires the subset of AVX-512 added in Skylake-X. Change-Id: I39666b00d10bf96d06c709823663eb09b89265b7
-
Marco authored
Allow for compound prediction mode in nonrd_pickmode for ZEROMV. For real-time encoding, 1 pass with non-zero lag-in-frames. Added speed feature to control the feature. Enabled for speed >=6 for now, under VBR mode. avgPSNR/SSIM metrics positive on ytlive set, for speed 6: some clips up by ~3-5%, some clips neutral gain, average gain across clips is ~1%. Small/negligible decrease in speed. Change-Id: I7a60c7596e69b9a928410c5ee2f9141eecd8613d
-
Johann authored
Even though frame_size is calculated in uint64_t, it winds up in an int size value. This was exposed with the msan test because the memset is called with (int)frame_size, leading to a segfault. Change-Id: I7fd930360dca274adb8f3e43e5e6785204808861
-
- 01 Nov, 2017 2 commits
-
-
Jerome Jiang authored
-
Jerome Jiang authored
Remove the memory deallocation on the early exits. Change-Id: I00b4a814ae6705105ecab89644d055ca3311d9f4
-
- 31 Oct, 2017 2 commits
-
-
Jerome Jiang authored
-
Jerome Jiang authored
Move vt2 to heap. Reduce the stack usage from ~87K to ~44K. BUG=b/68362457 Change-Id: I8f5f93712934d59a8cc4564378172d409a736a2e
-
- 30 Oct, 2017 2 commits
-
-
Jerome Jiang authored
-
Jerome Jiang authored
Change type of sum_square_error from int64_t to uint32_t. Change type of sum_error from int64_t to int32_t. This reduces the stack usage from ~131K to ~87K. BUG=b/68362457 Change-Id: I147d7c7b226bceb4f0817bb86848e1fa9d9ac149
-
- 27 Oct, 2017 1 commit
-
-
James Zern authored
swap '{' and c-style comments removing a few redundant ones along the way; covers most leftovers from the clang-tidy run against an x86_64-linux config. Change-Id: I67a45596f80a12389faca49c5be440875092a7df
-
- 26 Oct, 2017 1 commit
-
-
Scott LaVarnway authored
Eliminates the following instruction for the x86 (64 bit) intrinsic code: movslq %esi,%rax Change-Id: I8f5ebd40726f998708a668b0f52ea7a0576befae
-