summaryrefslogtreecommitdiff
path: root/vp10/encoder
AgeCommit message (Collapse)Author
2016-03-31Fix some static analysis issues with resizeDebargha Mukherjee
Change-Id: I2e8ada1ae95bd5577344d6f898e6ad4723e38fbd
2016-02-24vp9/10: fix forced keyframes w/alt-refs enabledJames Zern
in 1-pass encodes. issues with 2-pass as well as other forced flags persist. Change-Id: Ic7ceb906fccea6456d5df96483c10cacd46e01c7
2016-02-17vp10/resize: add missing alloc checksJames Zern
Change-Id: I96669ddbcdda508a295c68ecf103d10f364e0ad5
2016-02-17vp10/encoder: add missing alloc checksJames Zern
Change-Id: I5f81250d054bfd1cc69308a491b8fd21b77e4ee1
2016-02-17vp10_cyclic_refresh_alloc: correct cleanup on errorJames Zern
previously only the CYCLIC_REFRESH allocation was being freed Change-Id: I600eb496ec4b62accf1a6483c8170eabb046787d
2016-02-16vp10,encoder: relocate setjmpJames Zern
move to encoder_encode() as vp10_get_compressed_data() allocates data and would require some modification to make its error return meaningful. Change-Id: Ia5267c35d16ccd42b6da6d2136402b13e28f9159
2016-02-11vp10_receive_raw_frame: add missing setjmpJames Zern
allocations done within this function are protected with vpx_internal_error; adding the setjmp fixes a crash in vp10_lookahead_push() under low memory conditions. Change-Id: I5515017cd71b218840c506791b3a517da7ffc93e
2016-02-08Explicitly set tx_type for sub8x8 blocksDebargha Mukherjee
Fixes an issue where the tx_type was not set correctly for sub8x8 inter and intra blocks. In the current syntax, for sub8x8 blocks, there is still a single tx_type that is transmitted. Ideally, this should be searched for the best rd performance, albeit at the expense of encode speed. For now, we just set it to DCT_DCT. Previously it was left incorrectly as what was used for the previous non sub8x8 block. derflr: BDRATE -0.277% Change-Id: If76ba903bfbfd4d374cf1ac7d1daee50e92f0edd
2016-02-04Define a macro to replace hardcoded valuesZoe Liu
The definition is for the number of frames to check to determine the recent decay rate, further to determine the next key frame in the first pass of the encoder. Change-Id: Ic696d6eb518a86fa296842273cf8767ef0b0e27a
2016-02-01vp10: remove unused (read|write)_uniformJames Zern
dead code since: 5d3327e Remove palette from VP10 Change-Id: I4a36575706ea6fffefe5bc778595112ef6ff37d8
2016-01-29Refactor prob_diff_update_savings_search_modelhui su
Change-Id: Icfab58e880285d5af00985dc20db2174a67d1fe8
2016-01-29Merge "Cleaned code in firstpass related to altref frame"Zoe Liu
2016-01-28Cleaned code in firstpass related to altref frameZoe Liu
Change-Id: I6dbddf500fd4f64216774685700efea972165470
2016-01-28vp9/10: fix encoder crash on flushJames Zern
the lookahead buffer allocation is deferred to receipt of the first frame to allow profile changes. if the encoder was flushed before supplying any frames the encoder would crash trying to dereference the NULL buffer. vp8 is unaffected. fixes mozilla bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1237848 Change-Id: Icee4b64de760476eee0d33b568f0a1010335ff13
2016-01-25Cleaned a code in define_gf_group() for firstpassZoe Liu
Change-Id: I0b8eff9e74e3446024482d011ec4fb28b19136d3
2016-01-15Deduplicate sign cost for ONE/TWO/THREE/FOUR tokensAlex Converse
Change-Id: I9c383d604dfd240e38b198ac5bf86ddd3456f442
2016-01-13Fix encoder crashes and enc/dec mismatchesYaowu Xu
This commit adds the logic for segmentation map initialization and disable temporal update of segmentation map when error-resilient mode is on. It fixes the enc/dec mistmates (release build) and assertions(debug) when both aq-mode and error-resilient are on. Change-Id: Id2155e8b28962cf1f64494f4df0c8d79499b6890
2016-01-08Remove experimental flag for ext_txDebargha Mukherjee
Also includes a bug fix. Change-Id: Ia49ed00f8ffd1531c10bcf89b1f497310ee7cb82
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-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 "misc fixes: Remove a wasted value."Alex Converse
2015-10-29Merge "Shrink probability remap tables."Alex Converse
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-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-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