summaryrefslogtreecommitdiff
path: root/vp10
AgeCommit message (Collapse)Author
2016-01-08Modifies inter/intra coding to allow all tx typesDebargha Mukherjee
The nominal tx_type for a given mode is used as a context to encode the actual tx_type for intra. Results: derflr: -0.241% BDRATE hevcmr: -0.366% BDRATE Change-Id: Icfe7b0a58d79bc6497a06e3441779afec6e01e21
2016-01-04vp10: only assume ONLY_4X4 if segmentation is disabled.Ronald S. Bultje
Otherwise, per-segment lossless might mean that some segments are not lossless and they could still want to use another mode. The per-block tx points remain uncoded on blocks where (per the segment id) the Q value implies lossless. Change-Id: If210206ab1fe3dd11976797370c77f961f13dfa0
2016-01-04vp10: skip coding of txsz for lossless-segment blocks.Ronald S. Bultje
Change-Id: Ic23c10b6d2a9fed3abe69c6bf10e910832444f2c
2015-12-16Move bit_depth init out of setup_quantizationYaowu Xu
This also fixes a compiling error under --enable-vp9_highbitdepth. Change-Id: I9d1dcb95d3336d797eb3c23a4702c30b04355357
2015-12-15Merge changes Icf9b57c3,I9e12da84,Idf5ee179Yaowu Xu
* changes: Fixed interval, fixed Q 1 pass test patch. 1 pass VBR mode bug fix. Fixed interval, fixed Q 1 pass test patch.
2015-12-15Merge "Fix a enc/dec mismatch under CONFIG_MISC_FIXES"Yaowu Xu
2015-12-15Fixed interval, fixed Q 1 pass test patch.paulwilkins
For testing implemented a fixed pattern and delta, 1 pass, fixed Q, low delay mode. This has not in any way been tuned or optimized. Change-Id: Icf9b57c3bb16cc5c0726d5229009212af36eb6d9
2015-12-151 pass VBR mode bug fix.paulwilkins
(copied from VP9) The one pass VBR mode selects a Q range based on a moving average of recent Q values. This calculation should have been excluding arf overlay frames as these are usually coded at the highest allowed value. Their inclusion skews the average and can cause it to drift upwards even when the clip as a whole is undershooting. As such it can undermine correct adaptation of the allowed Q range especially for easy content. Change-Id: I9e12da84e12917e836b6e53ca4dfe4f150b9efb1
2015-12-14Fix a enc/dec mismatch under CONFIG_MISC_FIXESYaowu Xu
The culprit is on the decode side xd->lossless[i] setup was in wrong location where segment features are not yet decoded. Also on the encoder side, transform mode was not set consistently between when tx_mode is selected and how tx_mode is enforced in tx size selection. Change-Id: I4c4c32188fda7530cadab9b46d4201f33f7ceca3
2015-12-14move vp9_avg to vpx_dspJames Zern
Change-Id: I7bc991abea383db1f86c1bb0f2e849837b54d90f
2015-12-11Merge "Proper fix of a msvc complier warning"Yaowu Xu
2015-12-10Proper fix of a msvc complier warningYaowu Xu
Change-Id: I701ab4993be7cfb15b61a1adbbaf5565bd14ae27
2015-12-10Merge changes Iece22223,Iefad9d8dYaowu Xu
* changes: Fix two msvc build issues Fix enc/dec mismatches for aq-mode 1 and 2
2015-12-10Fix two msvc build issuesYaowu Xu
Change-Id: Iece22223773dd6d0f87f8f59827705acd2ebe2a4
2015-12-10Fix enc/dec mismatches for aq-mode 1 and 2Yaowu Xu
Change-Id: Iefad9d8d96a08dcc788a5efdca2df6a815d1205f
2015-12-08Changes to exhaustive motion search.paulwilkins
This change has been imported from VP9 and alters the nature and use of exhaustive motion search. Firstly any exhaustive search is preceded by a normal step search. The exhaustive search is only carried out if the distortion resulting from the step search is above a threshold value. Secondly the simple +/- 64 exhaustive search is replaced by a multi stage mesh based search where each stage has a range and step/interval size. Subsequent stages use the best position from the previous stage as the center of the search but use a reduced range and interval size. For example: stage 1: Range +/- 64 interval 4 stage 2: Range +/- 32 interval 2 stage 3: Range +/- 15 interval 1 This process, especially when it follows on from a normal step search, has shown itself to be almost as effective as a full range exhaustive search with step 1 but greatly lowers the computational complexity such that it can be used in some cases for speeds 0-2. This patch also removes a double exhaustive search for sub 8x8 blocks which also contained a bug (the two searches used different distortion metrics). For best quality in my test animation sequence this patch has almost no impact on quality but improves encode speed by more than 5X. Restricted use in good quality speeds 0-2 yields significant quality gains on the animation test of 0.2 - 0.5 db with only a small impact on encode speed. On most natural video clips, however, where the step search is performing well, the quality gain and speed impact are small. Change-Id: Iac24152ae239f42a246f39ee5f00fe62d193cb98
2015-12-07Fix bug when overlaying middle arfs in multi-arf groups.paulwilkins
Fix copied over from VP9 master to VP10 master. Do not reset the alt ref active flag when overlaying the middle arf(s) of a multi arf group. Change-Id: I1b7392107e7c675640d5ee1624012f39cc374c58
2015-12-04Merge "comment out range_check of fdct in dct.c"Angie Chiang
2015-12-04comment out range_check of fdct in dct.cAngie Chiang
The range_check is not used because the bit range in fdct# is not correct. Since we are going to merge in a new version of fdct# from nextgenv2, we won't fix the incorrect bit range now. Change-Id: I54f27a6507f27bf475af302b4dbedc71c5385118
2015-12-03Remove palette from VP10hui su
Store it in nextgenv2 for now. Change-Id: Iab0af0e15246758e3b6e8bde4a74b13c410576fc
2015-11-19Fix unsigned overflow in rd_variance_adjustment.Alex Converse
Found with clang -fsanitize=integer Change-Id: I2538e7483cb2d5f06bceecbd3326bdd88bfecfa1
2015-11-06Use accurate bit cost for uv_mode in UV intra mode RD selectionhui su
On derflr, +0.1% for VP10; however, -0.03% on VP9. Change-Id: I09c724232ede74254043d61d3cadc506256af0af
2015-11-03Merge "Generate intra prediction reference values only when necessary"Hui Su
2015-11-03Merge "misc fixes: Remove a wasted value."Alex Converse
2015-11-02Move palette-based intra prediction out of misc-fixeshui su
Change-Id: Ia59724413c4a4831390119a33d40a7d713b4b69f
2015-11-02Generate intra prediction reference values only when necessaryhui su
This can help increase encoding speed substantially. Change-Id: Id0c009146e6e74d9365add71c7b10b9a57a84676
2015-10-29Make the zero handling in extend_to_full_distribution more explicit.Alex Converse
The old workaround "p = 0 ? 0 : p -1" is misleading. ?: happens before = assigning back to p truncates to one byte. Therefore it is equivalent to (p - 1) & 0xFF, but the check just exists to work around a first pass bug, so let's make the work around more clear. https://bugs.chromium.org/p/webm/issues/detail?id=1089 Change-Id: I587c44dd61c1f3767543c0126376f881889935af
2015-10-29Merge "Shrink probability remap tables."Alex Converse
2015-10-28Revert "Replace the zero handling in extend_to_full_distribution."Alex Converse
This reverts commit 7f56cb29787b187c8cb1b778918ca3b80184c804. It causes uninitialized reads in the first pass setting up later cost tables. Change-Id: I2df498df3f5c03eff359f79edf045aed0c618dc9
2015-10-27misc fixes: Remove a wasted value.Alex Converse
Remove delta index 254 from probability remapping and subexp coding. Saves 1-bit when the delta index is 129. Change-Id: I88aba565fc766b1769165be458d2efd3ce45817e
2015-10-27Shrink probability remap tables.Alex Converse
Saves 2288 bytes in vp8+vp9 libvpx.a. Change-Id: Iaa5712e59a9693ed58cea63de63781a96827e44e
2015-10-27Merge "Reorder code to be consistent accross branches"Yaowu Xu
2015-10-27Merge "Replace the zero handling in extend_to_full_distribution."Alex Converse
2015-10-27Reorder code to be consistent accross branchesYaowu Xu
This is to make future merge a bit easier. Change-Id: I1039de381d8fe7b9988b57c23d15d0cb5f2fcd32
2015-10-26Fix VS build.Alex Converse
Add a cast on a double to unsigned assignment. Change-Id: I4abce7cfa13e145ed0c71469844ac9b274aa1411
2015-10-26Replace the zero handling in extend_to_full_distribution.Alex Converse
The old workaround "p = 0 ? 0 : p -1" is misleading. ?: happens before = assigning back to p truncates to one byte. Therefore it is equivalent to (p - 1) & 0xFF, but the check just exists to work around a first pass bug, so let's make the work around more clear. https://code.google.com/p/webm/issues/detail?id=1089 Change-Id: Ia6dcc8922e1acbac0eeca23a4d564a355c489572
2015-10-26Merge "Optimize vpx_quantize_{b,b_32x32} assembler."Debargha Mukherjee
2015-10-26Merge "palette: Replace rand() call with custom LCG."Alex Converse
2015-10-24palette: Replace rand() call with custom LCG.Alex Converse
The custom LCG is based on the POSIX recommend constants for a 16-bit rand(). This implementation uses less computation than typical standard library procedures which have been extended for 32-bit support, is guaranteed to be reentrant, and identical everywhere. Change-Id: I3140bbd566f44ab820d131c584a5d4ec6134c5a0 Ref: http://pubs.opengroup.org/onlinepubs/9699919799/functions/rand.html
2015-10-23Use explicit block position in foreach_transformed_blockJingning Han
Add the row and column index to the argument list of unit functions called by foreach_transformed_block wrapper. This avoids the repeated internal parsing according to the block index. Change-Id: Ie7508acdac0b498487564639bc5cc6378a8a0df7
2015-10-22Merge "vp10: merge ext_ipred_bltr experiment into misc_fixes."Ronald S. Bultje
2015-10-22Merge "vp10: merge universal_hp experiment into misc_fixes."Ronald S. Bultje
2015-10-22Merge "vp10: don't allow comp_inter_inter on keyframes."Ronald S. Bultje
2015-10-22Merge "vp10: fix tile size in remuxing step."Ronald S. Bultje
2015-10-22Merge "vp10: use correct constant for bw adaptation of seg pred probs."Ronald S. Bultje
2015-10-22Merge "vp10: don't make right edge available across tile boundaries."Ronald S. Bultje
2015-10-22Merge "vp10: clip MVs before adding to find_ref_mvs() list."Ronald S. Bultje
2015-10-21vp10: merge ext_ipred_bltr experiment into misc_fixes.Ronald S. Bultje
Change-Id: I2f2deb700748408b8278b7f5c29ee1f2e39785ec
2015-10-21vp10: merge universal_hp experiment into misc_fixes.Ronald S. Bultje
Change-Id: I79fc3c0594535adc0056339c929cff69b8188760
2015-10-21vp10: don't allow comp_inter_inter on keyframes.Ronald S. Bultje
Change-Id: Ibd0e13721a2bb71c532d20b36c42f4cccf5c5de2