- 15 Nov, 2017 1 commit
-
-
Marco authored
Fix/cleaup the conditioning for usage of the reuse-lowres partition feature. Replace the non-reference condition with the top temporal layer, and put this condition in the speed feature. This prevents doing update_partition_svc() on every VGA frame, instead it will now only do update for VGA in the top temporal layer frames. Also this makes it easier to test/enable this feature for lower layer temporal frames. Change-Id: Ia897afbc6fe5c84c5693e310bcaa6a87ce017be5
-
- 09 Nov, 2017 1 commit
-
-
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
-
- 08 Nov, 2017 1 commit
-
-
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
-
- 13 Oct, 2017 1 commit
-
-
paulwilkins authored
In cases of strong undershoot adjust Q range down faster. Change-Id: I84982beceb3c9b6dc50e52e4a6e891c7dd395d03
-
- 03 Oct, 2017 1 commit
-
-
Marco authored
For speed 6 real-time mode: use adapt_partition on ARF frame instead of REFERENCE_PARTITION (which is slower). This requires enabling compute_source_sad_onepass for no-show_frames. Speedup of ~3-5% on some clips that heavily use ARF, small loss (~0.2%) in quality on ytlive set. Change-Id: Ib50acc97df06458244a6ac55d2bd882c30012536
-
- 28 Sep, 2017 2 commits
-
-
Marco authored
Only has effect when sf->use_altref_onepass is enabled, as in that case scene detection is skipped for non-show frame and so high_source_sad does not get reset to 0. No change in metrics or speed. Change-Id: I421f066d239341449c18826089e1810b9fc5967f
-
Marco authored
Add stats for past ARF usage, and use it to disable ARF usage based on some conditions. Overall improvement on ytlive set, reduces the regression on the problem clips for this feature. Only affects when sf->use_altref_onepass is enabled (currently off by default). Change-Id: I66267f227ea132dc86acb730e9882f85bead2cdb
-
- 27 Sep, 2017 3 commits
-
-
Marco authored
Scene detection is not currently used in SVC 1 pass code. Speedup of ~0.4%. Change-Id: I0ab769300919de710cd2da1402014fa3f22a1f86
-
Marco Paniconi authored
This reverts commit 535b7b91. This is actually used in CBR to reset the rate control if high source sad is detected. Original change's description: > Remove the speed condition on scene detection in 1 pass code. > > Scene detection is used for VBR mode and for screen_content mode. > > It was also enabled for CBR mode via the speed condition, > but currently the analysis in the scene detection is not used > in CRB mode (similar computations are done locally at superblock level > when the source_sad feature is enabled). > > For 1 pass code. > No change in behavior. Small speed gain, ~0.5%. > > Change-Id: I59991d7ef2af320bea7af4b907596e057affa42f TBR=marpan@google.com,builds@webmproject.org,jianj@google.com Change-Id: Ib4e6b02047f75632503e7b0fc870af97fa9291c3 No-Presubmit: true No-Tree-Checks: true No-Try: true
-
Marco authored
Scene detection is used for VBR mode and for screen_content mode. It was also enabled for CBR mode via the speed condition, but currently the analysis in the scene detection is not used in CRB mode (similar computations are done locally at superblock level when the source_sad feature is enabled). For 1 pass code. No change in behavior. Small speed gain, ~0.5%. Change-Id: I59991d7ef2af320bea7af4b907596e057affa42f
-
- 26 Sep, 2017 1 commit
-
-
Marco authored
The speed condition is not needed, feature can used for any speed in 1 pass code. Change-Id: I878ef3f63a075302eda48c0343fa243c80aab9ba
-
- 14 Sep, 2017 1 commit
-
-
Hui Su authored
In the new AUTO mode, restrict the minimum alt-ref interval and max column tiles adaptively based on picture size, while not applying any rate control constraints. This mode aims to produce encodings that fit into levels corresponding to the source picture size, with minimum compression quality lost. However, the bitstream is not guaranteed to be level compatible, e.g., the average bitrate may exceed level limit. BUG=b/64451920 Change-Id: I02080b169cbbef4ab2e08c0df4697ce894aad83c
-
- 13 Sep, 2017 1 commit
-
-
Andrew Lewis authored
Also add column headings so that the output can still be parsed if the set of headers changes later. Change-Id: I4beaf266521e093db4acf5f715b18fdfb7e3d1cd
-
- 05 Sep, 2017 1 commit
-
-
Linfeng Zhang authored
so that the convolve functions are independent of table alignment. Change-Id: Ieab132a30d72c6e75bbe9473544fbe2cf51541ee
-
- 16 Aug, 2017 1 commit
-
-
paulwilkins authored
Some clips in nightly unit test exhibiting significant encoder slowdown which appears to bisect to Change-Id: I692311a709ccdb6003e705103de9d05b59bf840a. The above change allowed for emergency iterations of the recode loop and adjustment of the Q range if there is a large rate miss. This patch disables the above adaptation for cases of cpu_speed >= 3 or more specifically where cpi->sf.recode_loop >= ALLOW_RECODE_KFARFGF. For speeds >= 3 the code does not currently run a dummy bit pack operation inside the recode loop. Without this dummy pack operation there is no up to date estimate of the current frame's size to use as a basis for assessing the requirement for a recode. In practice it was using the previous frames size (or 0 for the first frame) which could cause odd behavior. If we require the emergency rate correction added in Change-Id: I6923.. for the higher speed settings it will be necessary to enable the dummy pack which will in turn hurt encode speed. BUG=webm:1454 Change-Id: I4fb3c6062ca9508325a6f31582f8e80f1a9b126f
-
- 15 Aug, 2017 1 commit
-
-
Jerome Jiang authored
Change legacy vp8/9_write_yuv_frame to vpx_write_yuv_files. Delete some flags that can be enabled during build. To enable writing denoised YUV, use the following command line: CFLAGS='-DOUTPUT_YUV_DENOISED' ./configure --enable-vp9-temporal-denoising For skinmap, use CFLAGS='-DOUTPUT_YUV_SKINMAP' Change-Id: I236974ac8b3cf279d20c4dc7f6162d8b480b6528
-
- 14 Aug, 2017 1 commit
-
-
Scott LaVarnway authored
when CONFIG_REALTIME_ONLY is enabled. BUG=webm:1446 Change-Id: Id547783ec75383966c40ab5cf6abb4a0f7984f52
-
- 11 Aug, 2017 1 commit
-
-
Scott LaVarnway authored
when CONFIG_REALTIME_ONLY is enabled. BUG=webm:1446 Change-Id: I4b1b8e9a456830ba1b1bd3a8882e038d37ee7903
-
- 10 Aug, 2017 1 commit
-
-
Jerome Jiang authored
Change the denoiser frame buffer management for SVC to more generally handle the layer patterns in SVC (where last is not always refreshed). This change is only for SVC with denoising and is bitexact. Change-Id: Ic2b146a924cdf6e7114609158afa3d4880fe3fae
-
- 03 Aug, 2017 1 commit
-
-
paulwilkins authored
Enable fast adaptation of Q when there is a large overshoot for the #ifdef AGGRESSIVE_VBR test case. AGGRESSIVE_VBR is not currently enabled by default. Change-Id: I7240bb6589795964b6b0b66df4468e4f21504e0f
-
- 02 Aug, 2017 1 commit
-
-
Yunqing Wang authored
Originally, for the purpose of keeping a fast first pass, the first-pass stats between row_mt_mode = 0 and row_mt_mode = 1 are not bit exact, but that difference is very small that doesn't cause a mismatch between the final bitstreams. However, if the encoder changes, this minor difference may cause a mismatch. Thus, this patch always forces the first pass to be bit exact. BUG=webm:1453 Change-Id: I2b67cf529dee81f660f9d9e7fe9a60ea3c7b12b8
-
- 18 Jul, 2017 1 commit
-
-
Jerome Jiang authored
When SVC is used, allocate alt-ref in denoiser. Change-Id: I1b17221b55b9444cd23b97d481b54ff8d296d857
-
- 11 Jul, 2017 3 commits
-
-
James Zern authored
BUG=webm:1446 Change-Id: I6e0ea9342c715d354c641109737172afa649b85b
-
Marco authored
For fixed pattern SVC: keep track of denoised last_frame buffer for base temporal layer, and if alt_ref is updated on middle/upper temporal layers, force an update to denoised last_frame buffer. This allows for improved denoising on top temporal layers. Change-Id: Icbd08566027d4d2eabc024d3b7a0d959d2f8c18b
-
Jerome Jiang authored
Change-Id: Iebc9dd293d8b1449c0674c0295349297e9b90646
-
- 10 Jul, 2017 2 commits
-
-
Johann authored
This code is unused in vp9. Only vp8 still contains references to vpx_sad_NxMx[3|8] and only for sizes 16x16, 16x8, 8x16, 8x8 and 4x4. Remove the remaining sizes and all the highbitdepth versions. BUG=webm:1425 Change-Id: If6a253977c8e0c04599e25cbeb45f71a94f563e8
-
Jerome Jiang authored
Denoiser is used in real-time mode which does not use alt-ref. Reduce memory usage when denoiser is enabled. Change-Id: I54ba3bcaeeb1818bbdf718ef90e97d4897ff793d
-
- 07 Jul, 2017 1 commit
-
-
James Zern authored
+ vpx_dsp/, test/ itxfm -> inv_txfm, ftxfm -> fwd_txfm Change-Id: I3aacdb65143576d64cfe5c9b14dd358c17c1fe7e
-
- 05 Jul, 2017 1 commit
-
-
paulwilkins authored
This patch attempts to address a bug reported for 4K video. https://b.corp.google.com/issues/62215394 In this instance a perfect storm of a moderate complexity section followed by a much easier section where a CGI overlay helped to suppress film grain noise, followed by a much harder and very grainy section at the end, cause a massive local rate spike that pushed a chunk over the upper allowed rate limit. This patch detects cases where the rate for a frame is much higher than expected and allows, in this special case, for rapid adjustment of the active Q range. For the example chunk in the bug report the target rate was 18Mb/s and the observed rate was over 37 Mb/s with a surge for the last few frames to over 100Mb/s. This patch brings the overall chunk rate right back down to ~18.2 Mbit/s and almost completely eliminates the rate spike at the end. (See graphs appended to bug report) Also see I108da7ca42f3bc95c5825dd33c9d84583227dac1 which fixes a bug unearthed during testing of this patch and also has a bearing on high rate encodes such as 4K. This patch does have a negative impact on some metrics. Most notably there are clips in our standard test set where it hurts global psnr (though in many cases it conversely helps SSIM, FAST SSIM and PSNR-HVS). It is also worth noting that the clips (and data rates) where there is a big metric impact, are almost all cases where there is currently a significant overshoot vs the target rate and overall rate accuracy is greatly improved. Change-Id: I692311a709ccdb6003e705103de9d05b59bf840a
-
- 29 Jun, 2017 2 commits
-
-
James Zern authored
txfm is more commonly used as an abbreviation through the codebase Change-Id: I86fd90ef132468f9da270091c05daa1f5a49ece2
-
Jerome Jiang authored
Change-Id: I6510e36866138f8ac4cb82c207e58e0b9522e499
-
- 27 Jun, 2017 1 commit
-
-
Jerome Jiang authored
This could save some cycles since skin detection is used in multiple places in vp9. 1~2% speed up on ARM. Change-Id: I86b731945f85215bbb0976021cd0f2040ff2687c
-
- 23 Jun, 2017 1 commit
-
-
Marco authored
Use the scene detection for CBR mode, and use it to reset the rate control if large source sad is detected and rate correctioni fact/QP is at minimum state. Avoids large frame sizes after big content change following low content period. Only affects CBR mode for 1 pass at speeds 5, 6, 7. Change-Id: I56dd853478cd5849b32db776e9221e258998d874
-
- 10 Jun, 2017 1 commit
-
-
Jerome Jiang authored
Change-Id: Ib3546032a27c715bf509c0e24d26a189bc829da8
-
- 08 Jun, 2017 1 commit
-
-
Jerome Jiang authored
BUG=webm:1438 Change-Id: Ie3dc034c7dbb498a0b088a767b1936ddeed4df14
-
- 01 Jun, 2017 1 commit
-
-
Jerome Jiang authored
For both vp8 and vp9. BUG=webm:1437 Change-Id: Ifd06f68a876ade91cc2cc27c574c4641b77cce28
-
- 26 May, 2017 2 commits
-
-
Jerome Jiang authored
Split vp8/vp9 implementations on yv12_copy_frame_c. Remove high-bitdepth codes from vp8_yv12_extend_frame_borders_c. Clean up vp8 codes usage in vp9. BUG=webm:1435 Change-Id: Ic68e79e9d71e1b20ddfc451fb8dcf2447861236d
-
Marco authored
Fix the condition on usage of source_sad for temporal layers. FIx allows it to be used for the case of 1 temporal layer. Change-Id: I02b1b0ade67a7889d1b93cee66d27c0951131fc3
-
- 25 May, 2017 1 commit
-
-
Marco authored
For 1 pass CBR SVC mode. Change-Id: Ic026740f9d0ec5eee7c5845be9c5b15884fec48d
-
- 12 May, 2017 1 commit
-
-
Jerome Jiang authored
BUG=webm:1433 Change-Id: I4f3984ef28660d3218d48007d7c977bdbdaf8af6
-