summaryrefslogtreecommitdiff
path: root/vp9
AgeCommit message (Collapse)Author
2016-09-29Fix an issue in vp9_first_pass for non-mulitple of 16 resolutionsDeepa K G
This patch sets the 16x16 src_diff to zero and ensures correct calculation of this_error for block sizes smaller than 16x16. Change-Id: I7b7c02d267433c9f22c8ac9b8d5df2f499175172
2016-09-26vp9: Reduce frame loopfilter-level for 1 pass cbr.Marco
Reduce the filt_guess for 1 pass cbr on inter-frames. This reduces visual artifact seen in rtc clip (jimred.vga), and improves metrics on rtc set. Metrics on rtc set for cbr mode overall positive, most clips are up: Speed 7 rtc: avgPSNR/SSIM up by: ~2.6/3.9% Speed 8 rtc: avgPSNR/SSIM up by: ~1.3/2.5% Change-Id: Ia4eccea1c19d65b583516df28823cd756c49464f
2016-09-26Merge "VP9: token decoder expansion"Scott LaVarnway
2016-09-24Merge "vp9_idct: delete dead TODOs"James Zern
2016-09-23VP9: token decoder expansionScott LaVarnway
This version is based on Change 267683, but does not use the macros. Change-Id: I0619fa618decf8bdeef250584d75d70318b5d9a7
2016-09-23Merge "VP9: pass TileWorkerData instead of MACROBLOCKD and vpx_reader."Scott LaVarnway
2016-09-22VP9: pass TileWorkerData instead of MACROBLOCKD and vpx_reader.Scott LaVarnway
Change-Id: I869ef0f113c022143b531c44aefa0f1bb267052d
2016-09-22Merge "Detect invalid highbd iht input"Angie Chiang
2016-09-21Detect invalid highbd iht inputAngie Chiang
Do nothing in vp9_highbd_iht#x#_##_add_c when input magnitude is beyond 20 bits. Note that, sign bit is not included here. In the 20 bits, we use 12 bits for input signal, 7 bits for forward transform amplification, and 1 bit for contingency in rounding and quantizing BUG=https://bugs.chromium.org/p/webm/issues/detail?id=1286 Change-Id: I332c6f68df4614fc2e7d2dc4c5bb0d0cff8a245c
2016-09-20vp8: remove VP8_SET_DBG* control supportJames Zern
the --enable-postproc-visualizer configure option remains as a no-op as do the control names and values for compatibility + remove the corresponding debug flags from vpxdec: --pp-* Change-Id: I4a001cd9962b59560d7d6bda6272d4ff32b8d37c
2016-09-20vp9_idct: delete dead TODOsJames Zern
Change-Id: Icdd5494f557d83026dc078bce37997a76aa288fb
2016-09-20Merge "vp9_rtcd: remove non-existent highbd convolve fns"James Zern
2016-09-19vp9_rtcd: remove non-existent highbd convolve fnsJames Zern
these were moved to vpx_dsp Change-Id: I307b07ae05e2333277d4b7011cba36dcf8409959
2016-09-19Code class0 using vpx_read() / vpx_write().Nathan E. Egge
The vp9_mv_class0_tree is a balanced tree with two leafs and can simply be coded as a boolean with probability class0[0]. Change-Id: If294dac825a5f945371092c74aa8e3f84cd962b6 (cherry picked from commit be8a8ab62ebdd111c6f2e9a33b15630570671eba)
2016-09-19Zero the whole rd_counts struct rather than the each memberAlex Converse
Change-Id: I495aa9cec2b2b8f1ae69bdab8b3feeca76358472
2016-09-16Merge changes from topic 'clang-format'James Zern
* changes: apply clang-format .clang-format: update to 3.8.1
2016-09-15vp9: Small code cleanup.Marco
Remove the experiment LIMIT_QP_ONEPASS_VBR_LAG, as its not currently used and no plan to use in near future. Change-Id: Ib069f8d7225195be04b765d0ab477510dfba6a3b
2016-09-15apply clang-formatclang-format
Change-Id: I501597b7c1e0f0c7ae2aea3ee8073f0a641b3487
2016-09-03Fix missing write to opsnr in internal statsSarah Parker
Change-Id: I21c8ad0b5ed7f8d843cae45c18f5727bceb8f859
2016-09-01Merge "Fix formatting in internal stats for vp8 and vp9"Yaowu Xu
2016-09-01Merge "Casts to remove some warnings."Yaowu Xu
2016-09-01Merge "Refactor uv tx size with lookup arrays"Debargha Mukherjee
2016-09-01Casts to remove some warnings.paulwilkins
Added casts to remove warnings: BUG=webm:1274 In regards to the safety of these casts they are of two types:- - Normalized bits per (16x16) MB stored in a 32 bit int (This is safe as bits per MB even with << 9 normalization cant overflow 32 bits. Even raw 12 bits hdr source even would only be 29 bits :- (4+4+12+9) and the encoder imposes much stricter limits than this on max bit rate. - Cast as part of variance calculations. There is an internal cast up to 64 bit for the Sum X Sum calculation, but after normalization dividing by the number of points the result will always be <= the SSE value. Change-Id: I4e700236ed83d6b2b1955e92e84c3b1978b9eaa0
2016-08-31Refactor uv tx size with lookup arraysDebargha Mukherjee
Change-Id: Ife6a3d301c5faaba89d16d188d638631083511f7
2016-08-31Modified resize loop constraints.paulwilkins
Using a tighter resize constraint on undershoot seems to help results (especially SSIM) as significant undershoot on a frame seems to have more of a damaging impact than overshoot. This patch has been tuned so that in local testing using the derf set it is encode speed neutral for speed setting 2. Average quality result for speed 2 (psnr,ssim) were as follows:- lowres 0.039, 0.453 midres 0.249, 0.853 hdres 0.159, 0.659 NetFlix -0.241, 0.360 Change-Id: Ie8d3a0d7d6f7ea89d9965d1821be17f8bda85062
2016-08-30Merge "Adjust coefficient optimization and tx_domain rd speed features."Paul Wilkins
2016-08-27vp9_alt_ref_aq_set_nsegments: harmonize fn signatureJames Zern
Change-Id: I5f232664652a8dc3a71e43b8b1fa05ddb4a84ecc
2016-08-27Move vp9_alt_ref_aq_private.h to vp9_alt_ref_aq.cYury Gitman
+ add a temporary dummy element to ALT_REF_AQ to avoid a warning about an empty struct Change-Id: Ib6e5c39ff62ad96eb4e3686d4882228a42b3843f
2016-08-26Merge "Fix VS build warnings in vp9_alt_ref_aq files"Jingning Han
2016-08-26Merge "Add ALLOW_RECODE_FIRST speed mode."Paul Wilkins
2016-08-26Fix VS build warnings in vp9_alt_ref_aq filesJingning Han
Change-Id: I5b19ec00a1eb8b148026f665d217c12eb50b614a
2016-08-26Add ALLOW_RECODE_FIRST speed mode.paulwilkins
This patch is to address concerns that changes to allow recodes on the first frame in each ARF group do not give a good enough speed quality trade off for speed 2. Though the average impact on encode speed is 1-2%, for some hard clips it is > 5% rise. For speed 1 this is less an issue and for Speed 0 the previous patch actually improves speed. Change-Id: Ie1bcefdbfdf846d3f4428590173f621465dffe3a
2016-08-25Fix formatting in internal stats for vp8 and vp9Sarah Parker
This corrects a formatting error introduced in: I1e9d548ce445d29002f0c59ebfd3957a6f15e702 where spaces were used as delimiters instead of tabs. The corresponding fix for vp10 is in Ica3d625d6672b3c47e0e208b45eede29b9004030. Change-Id: Ibc4eb8fd82e6b926ba259a679dc98557cadba9b1
2016-08-25Create interface for the ALT_REF_AQ classYury Gitman
Current commit is just an API template for the rest of the code, and I will add inner logic later. Altref frames generate a lot of bitrate and at the same time other frames refer to them a lot, so it makes sense to apply special compensation-based adaptive quantization scheme for altref frames. E.g., for blocks that are good predictors for the future apply rate-control chosen quantizer while for bad predictors apply worse one. Change-Id: Iba3f8ec349470673b7249f6a125f6859336a47c8
2016-08-25Adjust coefficient optimization and tx_domain rd speed features.paulwilkins
Previously Tx domain rd was used in all cases above speed 0. Coefficient optimization was only enabled for best and speed 0. This patch selectively sets these features at other speed settings based on block complexity. For the Netflix and HD sets in particular the quality gains are large compared to the speed hit. At speed 1 the average psnr gain in the NF set is > 2.5% with one clip coming in at 18% and some points almost 30%. Average gains for the lower resolution test sets are around 1%. The gains are biggest at low Q so some further optimization may be possible. Change-Id: I340376c7b2a78e5389a34b7ebdc41072808d0576
2016-08-24Add --alt-ref-aq=<int> optionYury Gitman
In the future this option will activate adaptive quantization special for altref frames. Encoder will create the adaptive quantization map on the basis of lookahead buffers similarity which is the estimate of the future motion compensation performance. Change-Id: Ia0088b3babb0f9a4899c79d8d819947ba5a03df2
2016-08-24Merge "vp9: Refactor set_low_temp_var_flag."Jacky Chen
2016-08-23Correct CHECK_MEM_ERROR macro (release builds)Yury Gitman
The previous macro doesn't work with &cpi->common as a first argument Change-Id: Iddf7a1f5d56d7abafd9b2b8707aa611d349e7a68
2016-08-23vp9: Refactor set_low_temp_var_flag.jackychen
No need to pass in force_split, since we should use sb_type in the condition. Change-Id: Ide27243ef46e017bbb98d676347fc566a6c828f7
2016-08-23Merge "Disable split mode in 4k video encoding"Yunqing Wang
2016-08-22Disable split mode in 4k video encodingYunqing Wang
Disabled the split mode while encoding 4k video to speed up the encoder. Borg test result on 4k set: Overall PSNR: +0.029%; SSIM: +0.009%. Average encoder speedup at speed 2 is 2.5%. Change-Id: I1519c658f07c3ac838affbe5aff0ed9b94f3f8f4
2016-08-22Correct CHECK_MEM_ERROR macroYury Gitman
The previous macro doesn't work with &cpi->common as a first argument Change-Id: Ic3f5c49a94cf8b17de6569811b957c963341bb58
2016-08-19Merge "Adjust speed features for 4k video encoding"Yunqing Wang
2016-08-19Adjust speed features for 4k video encodingYunqing Wang
Adjusted speed 2 features to speed up 4k video encoding. BDBR results from borg test: PSNR: +0.313%; SSIM: +0.268%. Average speedup: 8.5% Change-Id: I1e2695a01fb3f3817c1df4480e184c2aed8f2eba
2016-08-19vp9_pickmode: quiet float conversion warningsJames Zern
Change-Id: I591e4f958955b3f2edb2f95a83c54cd83c8ef075
2016-08-19vp9_alloc_context_buffers: clear cm->mi* on failureJames Zern
this fixes a crash in vp9_dec_setup_mi() via vp9_init_context_buffers() should decoding continue and the decoder resyncs on a smaller frame BUG=b/30593752 Change-Id: I9ce8d94abe89bcd058697e8bd8599690e61bd380
2016-08-18vp9 svc: SVC encoder speed up.JackyChen
Bias towards base_mv and skip 1/4 pixel motion search when using base mv. 2~3% speed up for 2 spatial layers, 3~5% speed up for 3 spatial layers. PSNR loss: (2 layers) 0.07dB for gips_stationary, 0.04dB for gips_motion; (3 layers) 0.07dB for gips_stationary, 0.06dB for gips_motion. Change-Id: I773acbda080c301cabe8cd259f842bcc5b8bc999
2016-08-17vp9 non-rd pickmode: Add limit on newmv-last and golden bias.Marco
Add option, for newmv-last, to limit the rd-threshold update for early exit, under a source varianace condition. This can improve visual quality in low texture moving areas, like forehead/faces. Also add bias against golden to improve the speed/fps, will little/negligible loss in quality. Only affects CBR mode, non-svc, non-screen-content. Change-Id: I3a5229eee860c71499a6fd464c450b167b07534d
2016-08-17Add casting to fix warning.paulwilkins
Frame bits can safely be stored int but group bits (kf or arf) use 64bit. Change-Id: I0800f2a28070f8749110a95721c116fc56987885
2016-08-17Add {} to try and keep Jenkins happy.paulwilkins
Change-Id: If1ca3cf83e058317c9751d7da6caa7cd75eb6845