summaryrefslogtreecommitdiff
path: root/vpx
AgeCommit message (Collapse)Author
2017-11-13Merge "vp9 svc: Change conditions on VPX_ENCODER_ABI_VERSION."Jerome Jiang
2017-11-13vp9 svc: Change conditions on VPX_ENCODER_ABI_VERSION.Jerome Jiang
VPX_ENCODER_ABI_VERSION was bumped up in 93e83f. Change-Id: Id5707f9f9db56fa96549bc8f54e1cfa04e7fa4cd
2017-11-13New content type to improve grain retention.paulwilkins
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
2017-11-08CVBR command line option.paulwilkins
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
2017-10-10Fix alignment in vpx_image without external allocation.Jerome Jiang
This restores behaviors prior to <40c8fde Fix image width alignment. Enable ImageSizeSetting test.>. BUG=b/64710201 Change-Id: I559557afe80d5ff5ea6ac24021561715068e7786
2017-10-05vpx_codec.h: namespace local definesJames Zern
add VPX_ to UNUSED/*DEPRECATED to avoid conflicts with other headers. Change-Id: Ie16bdac3575bc1af57a05d37e65b994370585377
2017-09-28Fix image width alignment. Enable ImageSizeSetting test.Jerome Jiang
BUG=b/64710201 Change-Id: I5465f6c6481d3c9a5e00fcab024cf4ae562b6b01
2017-07-06vp8cx,cosmetics: correct VP9_SET_TILE_COLUMNS docsJames Zern
this has been set to max since: f5c36a5ce VP9: turn on tile-columns and frame-parallel-mode by default ~v1.4.0 Change-Id: Ic796fc05abe73a58700ec50e3f8e72d3462898ec
2017-07-06vp8cx,cosmetics: correct VP9_SET_FRAME_PARALLEL_DECODING docsJames Zern
this has been on by default since: f5c36a5ce VP9: turn on tile-columns and frame-parallel-mode by default ~v1.4.0 Change-Id: I52017ab0157feaf429dce3d9e1af8a53bb5c1b65
2017-05-10vp9: SVC: Fix setting in sample encoder.Marco
For 1 spatial layer case, scaling_num/den was not set properly. Change-Id: I139bf70c6dffde89eed24e435bcb5d98d2029bcd
2017-04-24Make the row based multi-threaded encoder deterministicYunqing Wang
This patch followed allow_exhaustive_searches feature modification and continued to modify the encoder to achieve the determinism in the row based multi-threaded encoding. While row-mt = 1 and using multiple threads, the adaptive feature in encoder was disabled, which gave BDRate gain(at speed 1, -0.6% ~ -0.7%; at speed 2, -0.46% ~ -0.59%), but some encoder speed losses(7% ~ 10% at speed 1 and 3% ~ 6% at speed 2). These speed losses were acceptable considering the speed gains obtained from row-mt. Change-Id: I60d87a25346ebc487a864b57d559f560b7e398bb
2017-04-06VP9 motion vector unit testYunqing Wang
To prevent the motion vector out of range bug, added a motion vector unit test in VP9. In the 4k video encoding, always forced to use extreme motion vectors and also encouraged to use INTER modes. In the decoding, checked if the motion vector was valid, and also checked the encoder/decoder mismatch. The tests showed that this unit test could reveal the issue we saw before. Change-Id: I0a880bd847dad8a13f7fd2012faf6868b02fa3b4
2017-03-16vpx_codec.h: include vpx/*.h -> ./*.hMarco
This matches the other includes and also fixes a compile issue in chromium. Change-Id: I45e00a1454f7ed948aa3b96b04cc5946b1d02985
2017-03-07Merge "tiny_ssim.c : adds y4m support to tiny_ssim."James Bankoski
2017-03-07tiny_ssim.c : adds y4m support to tiny_ssim.Jim Bankoski
Change-Id: I7a13b7e3a1e11ddbe4be3009edf03528e1bc7647
2017-02-28VPX_CODEC_CAP_HIGHBITDEPTH for decoder interfaceChris Cunningham
Moves the def from vpx_encoder.h -> vpx_codec.h. The defined value is changed as part of this move. Adds the value to decoder capabilities when CONFIG_VP9_HIGHBITDEPTH. Change-Id: I7d61fc821cda29f1e32bb9b2b9ffd3d83966e419
2017-02-27vp9: Rename new_mt to row_mtVignesh Venkatasubramanian
new_mt is a very generic name that will get obsolete soon enough. Since this is exposed as a codec control, renaming it to row_mt to signify row level paralellism. Also renaming the ETHREAD_BIT_MATCH codec control to ROW_MT_BIT_EXACT. Change-Id: Ic7872d78bb3b12fb4cf92ba028ec8e08eb3a9558
2017-02-13The bitstream bit match test in multi-threaded encoderYunqing Wang
While the new-mt mode is enabled(namely, allowing to use row-based multi-threading in encoder), several speed features that adaptively adjust encoding parameters during encoding would cause mismatch between single-thread encoded bitstream and multi-thread encoded bitstream. This patch provides a set_control API to disable these features, so that the bit match bitstream is obtained in the unit test. Change-Id: Ie9868bafdfe196296d1dd29e0dca517f6a9a4d60
2017-01-24Multi-threading of first pass stats collectionRanjit Kumar Tulabandu
(yunqingwang) 1. Rebased the patch. Incorporated recent first pass changes. 2. Turned on the first pass unit test. Change-Id: Ia2f7ba8152d0b6dd6bf8efb9dfaf505ba7d8edee
2017-01-12Add decoder getters for the last quantizer.Peter Boström
To be used for frame stats output of vpxdec. Change-Id: I0739a01bd3635c4b3fedd58f3e27363ce8fb1b1e
2016-11-28svc_test: fix two warningsJim Bankoski
Use of possibly uninitialized variable and missing test initializer. Change-Id: I2192c81c39ef4239cc11a309850c0ee8781ef17e
2016-11-03vp9-svc: Add decoder control to decode up to x spatial layers.Marco
Change-Id: I85536473b8722424785c84c5b5520960b4e5744a
2016-10-31vp9-svc: Add checks to layer bitrates in vp9_spatial_svc_encoder.Marco
Add some checks to the layer bitrates passed in through the command line. Change-Id: I16f270035a6034d63313fe3019aa90dca9a3eefb
2016-10-28vp9: Updates to SVC sample encoder.Marco
Allow for passing in the layer bitrates at command line. Fix to allow passing in bitrate for each spatial-temporal layer. Change to some default values for 1 pass cbr mode: spatial scale and qp-max/min. Small fixes to some build warnings. Change-Id: I3f9a776262712480a6570bb863a835b2fc49935a
2016-10-19vp8: Add control for gf boost for 1 pass cbr.Marco
Control already exists for vp9, adding it to vp8. Usage is only when error_resilient is off. Added a datarate unittest for non-zero boost. Change-Id: I4296055ebe2f4f048e8210f344531f6486ac9e35
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-09vpx_codec_control: return incapable for unmatched controlJames Zern
VPX_CODEC_INCAPABLE rather than the more generic VPX_CODEC_ERROR Change-Id: Id1ed7fb23a2910192713c6b2389c0b7320201f52
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-07-25vp9 svc: Enable different speed setting for each spatial layer.jackychen
This change only affects 1 pass cbr svc mode. Change-Id: If0da87bb200f7e7762755340c40c8157cc7a16ca
2016-07-21vpx/: apply clang-formatclang-format
Change-Id: I95922a64568bf289863c1564212b6be5beec36df
2016-06-28remove visual studio < 2010 workaroundsJames Zern
BUG=b/29583530 Change-Id: Iafd05637eb65f4da54a9c857e79204a77646858a
2016-06-27Merge "Port metric computation changes from nextgenv2"Yaowu Xu
2016-06-24Port metric computation changes from nextgenv2Yaowu Xu
Change-Id: I4aceffcdf7af59ffeb51984f0345c3a4c7e76a9f
2016-06-24vp9-svc: Remove some unneeded code/comment.Marco
Change-Id: I710707296042d8586109760544ef68e40ae486c3
2016-06-17remove vp10James Zern
development has moved to the nextgenv2 branch and a snapshot from here was used to seed aomedia BUG=b/29457125 Change-Id: Iedaca11ec7870fb3a4e50b2c9ea0c2b056a0d3c0
2016-06-15Add vp9 encoder API VP9E_GET_LEVEL to provide bitstream levelhui su
Change-Id: I1ef3df0192491035728fe9d5eb25cc66dc2965de
2016-05-19Revert "Extend the external fb interface to allocate individual planes."James Zern
This reverts commit 6dd7f2b50a65373aa906d678cb5a29fb65531a55. conversion warnings, crashes in 32-bit builds Change-Id: I529ead34cd93c862dd07c9a29d8542dda2fc20ea
2016-05-19Merge "Extend the external fb interface to allocate individual planes."Daniele Castagna
2016-05-18Extend the external fb interface to allocate individual planes.Daniele Castagna
Change-Id: I73e1b9ea6f4c76ae539e2b3292ee4c751d9c7de4
2016-05-11Fix typos in control function for VP9E_SET_TARGET_LEVELhui su
Change-Id: Ic797c6be579c3434681a5e9dbb3900ae49c43958
2016-05-10Add VP9 encoder API for level specification.hui su
Add control API VP9E_SET_TARGET_LEVEL that allows the encoder to control the output bitstream level and/or keep level related statistics. Usage: 255 do not care about level (default) 0 keep level related stats only 10 target for level 1 11 target for level 1.1 . . . 62 target for level 6.2 Usage for vpxenc: --target-level=0/255/10/11... Change-Id: I31d1aeca19358b893e7577b4e63748c8e614034a
2016-05-09Revert "Skip inttypes.h on Darwin"James Zern
This reverts commit 1bec0c5a7e885ec792f6bb658eb3f34ad8f37b15. Breaks desktop Mac builds. Change-Id: I5b79dc29ad544357192ed16a47279716243e51dd
2016-05-04Skip inttypes.h on DarwinBrion Vibber
When building a dynamic framework with Swift compatibility, can't include any headers that aren't in another module or you get an error like this from Xcode on the including project: Include of non-modular header inside framework For some reason the system inttypes.h is not in a module, unlike other standard C library headers... but it doesn't seem to be actually needed on Darwin, so removing it doesn't appear to be a problem. Change-Id: I11d264483c54feefd9d2edf573afaef34ddcd0f2
2016-05-04Break exports for spatial_svc out to fix shared builds without itBrion Vibber
Change-Id: I208c84cce216464b82eaa51945ce17a8e6625673
2016-03-08vp9-svc: Change default spatial bitrate allocation.Marco
Only affects 1 pass cbr svc. Change-Id: I8387219e35e516d9ce890557ee1855f2af8f636a
2016-01-20Vidyo patch: Changes to the scalability code.Marco
Changes to mode selection for 1 pass SVC mode: use base layer motion vector, changes to intra-prediction. Change-Id: I3e883aa04db521cfa026a0b12c9478ea35a344c9
2016-01-04Update IMAGE_ABI_VERSION which wasn't updated after color_range enum was ↵Sasi Inguva
introduced. Change-Id: I83703851f65f93573ebf7d2c0d0f056ba879c07a
2015-12-01Fix a spatial svc test crashDebargha Mukherjee
Fixes crash in 2pass spatial svc test that was introduced in: https://chromium-review.googlesource.com/#/c/313571/6 Change-Id: Iab3e8225a8d159cd33f5849dffe6802e25038047
2015-11-23vp9-svc: Fix to allow setting qp-max/min per spatial and temporal layer.Marco
Change-Id: Ic0ec32c1d7f7c08c9f956592dccbfd9060b1f624
2015-10-27VP9-SVC: Allow frame dropping due to overshoot for spatial layers.Marco
For 1 pass CBR mode. Change-Id: I8bceb489a850ec26f05382eecb5c0c32a1bb8883