summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2012-11-12Merge "New inter mode context" into experimentalPaul Wilkins
2012-11-12Merge "Fix frame number on which the mismatch is reported in vpxenc." into ↵Ronald S. Bultje
experimental
2012-11-12New inter mode contextPaul Wilkins
This change is a fix / extension of the newbestrefmv experiment. As such it is presented without IFDEF. The change creates a new context for coding inter modes in vp9_find_mv_refs(). This replaces the context that was previously calculated in vp9_find_near_mvs(). The new context is unoptimized and not necessarily any better at this stage (results pending), but eliminates the need for a legacy call to vp9_find_near_mvs(). Based on numbers from Scott, this could help decode speed by several %. In a later patch I will add support for forward update of context (assuming this helps) and refine the context as necessary. Change-Id: I1cd991b82c8df86cc02237a34185e6d67510698a
2012-11-12Merge "Fix data type for eobs[] array in SB 4x4 IDCT code." into experimentalRonald S. Bultje
2012-11-12Merge "Remove 'thismb' data pointer when superblock experiment is on." into ↵Ronald S. Bultje
experimental
2012-11-12Restrict ref mv search range.Paul Wilkins
Experiment to test speed trade off of reducing the extent of the ref mv search. Reducing the maximum number of tested candidates to 9 had minimal net effect on quality in any of the tests sets. Reduction to 7 has a small negative impact (worst was STD-HD at about -0.2%). This change is in response to the apparently high number of decode cycles reported in regard to mv-ref selection. Change-Id: I0e92e92e324337689358495a1ec9ccdeb23dc774
2012-11-10Fix frame number on which the mismatch is reported in vpxenc.Ronald S. Bultje
Change-Id: I962be949845f881df551d101708e6ba9d8a3d6a2
2012-11-10Fix data type for eobs[] array in SB 4x4 IDCT code.Ronald S. Bultje
This fixes encoder/decoder mismatches with the superblock experiment turned on whenever a superblock is encoded using the 4x4 transform. Change-Id: Iefec7055e8d25f8efdbba66c4261bbd322d335a3
2012-11-10Remove 'thismb' data pointer when superblock experiment is on.Ronald S. Bultje
This should prevent inconsistent results between identical encodes with the superblock experiment turned on. Change-Id: I41a005fae53f2eb59736cc70041185fb7d63cfca
2012-11-10New b-intra mode where direction is contextualDeb Mukherjee
Preliminary patch on a new 4x4 intra mode B_CONTEXT_PRED where the dominant direction from the context is used to encode. Various decoder changes are needed to support decoding of B_CONTEXT_PRED in conjunction with hybrid transforms since the scan order and tokenization depends on the actual direction of prediction obtained from the context. Currently the traditional directional modes are used in conjunction with the B_CONTEXT_PRED, which also seems to provide the best results. The gains are small - in the 0.1% range. Change-Id: I5a7ea80b5218f42a9c0dfb42d3f79a68c7f0cdc2
2012-11-09Build fix in decoder/decodframe.cDeb Mukherjee
Missing eobs agrument in vp9_dequant_idct_add_16x16_c Change-Id: I826b1afa0a4ee6398f7373325aa0c75e6a866937
2012-11-09Merge "Packing Altref along with succeeding frame and length encoding ↵John Koleszar
frames" into experimental
2012-11-09Packing Altref along with succeeding frame and length encoding framesVignesh Venkatasubramanian
The altref frame is packed along with the next P frame. So that outside of the codec there are now only two types of frames P and I. Also, now it is one frame in and one frame out with respect to the codec. Apart from that, all the frames are length encoded with the length of each frame appended to the frame itself. There are two categories of frames and each of them will look as follows: - Packed frames (an altref along with the succeeding p frame) - altref_frame_data | altref_lenngth | frame_data | length - Unpacked frames (all frames other than the above) - frame_data | length Change-Id: If1eabf5c473f7d46b3f2d026bd30c803588c5330
2012-11-09Merge "Fix another crash in vpxenc with --pass=1 and --test-decode." into ↵Ronald S. Bultje
experimental
2012-11-09Fix another crash in vpxenc with --pass=1 and --test-decode.Ronald S. Bultje
Change-Id: Id23917ce2555519d2e9172dd6ce3a283f2235d26
2012-11-09Merge "Optimize 16x16 dequant and idct" into experimentalYunqing Wang
2012-11-08Merge changes I18407622,I34057b87 into experimentalYaowu Xu
* changes: fix a crash in 2-pass encoding with test-decode on enable build on windows with msvc
2012-11-08fix a crash in 2-pass encoding with test-decode onYaowu Xu
only call decoding when encoder produce compressed data Change-Id: I1840762246afaaad76db6c6d29032ad15aa38afd
2012-11-08enable build on windows with msvcYaowu Xu
Change-Id: I34057b87d9713dc819b8c69990dd1408b8c79342
2012-11-08Merge "remove macros obfuscating mv costing" into experimentalJim Bankoski
2012-11-08remove macros obfuscating mv costingJim Bankoski
cleanup Change-Id: I565eee40d900e0441ad211b65ac829fc5b93d94a
2012-11-08Implement tx_select for superblock encoding.Ronald S. Bultje
Also split superblock handling code out of decode_macroblock() into a new function decode_superblock(), for easier readability. Derf +0.05%, HD +0.2%, STDHD +0.1%. We can likely get further gains by allowing to select mb_skip_coeff for a subset of the complete SB or something along those lines, because although this change allows coding smaller transforms for bigger predictors, it increases the overhead of coding EOBs to skip the parts where the residual is near-zero, and thus the overall gain is not as high as we'd expect. Change-Id: I552ce1286487267f504e3090b683e15515791efa
2012-11-07Optimize 16x16 dequant and idctYunqing Wang
As suggested by Yaowu, simplified 16x16 dequant and idct. In decoder, after detoken step, we know the number of non-zero dct coefficients (eobs) in a macroblock. Idct calculation can be skipped or simplified based on eobs, which improves the decoder performance. Change-Id: I9ffa1cb134bcb5a7d64fcf90c81871a96d1b4018
2012-11-07Merge with upstream experimental changes (2)John Koleszar
Include upstream changes (variance fixes) into the merged code base. Change-Id: I4182654c1411c1b15cd23235d3822702613abce1
2012-11-07Merge "Fix variance (signed integer) overflow" into experimentalJames Zern
2012-11-07Merge with upstream experimental changesJohn Koleszar
Include upstream changes (unit test fixes, in particular) into the merged code base. Change-Id: I096f8a9d09e2532fbec0c95d7a995ab22fa54b29
2012-11-07Rough merge of master into experimentalJohn Koleszar
Creates a merge between the master and experimental branches. Fixes a number of conflicts in the build system to allow *either* VP8 or VP9 to be built. Specifically either: $ configure --disable-vp9 $ configure --disable-vp8 --disable-unit-tests VP9 still exports its symbols and files as VP8, so that will be resolved in the next commit. Unit tests are broken in VP9, but this isn't a new issue. They are fixed upstream on origin/experimental as of this writing, but rebasing this merge proved difficult, so will tackle that in a second merge commit. Change-Id: I2b7d852c18efd58d1ebc621b8041fe0260442c21
2012-11-07merge full pixel refmv experimentYaowu Xu
Change-Id: Ib39ad47a7d188f3b45416937b7eeb28c3e79b74c
2012-11-06Fix variance (signed integer) overflowJames Zern
In the variance calculations the difference is summed and later squared. When the sum exceeds sqrt(2^31) the value is treated as a negative when it is shifted which gives incorrect results. To fix this we force the multiplication to be unsigned. The alternative fix is to shift sum down by 4 before multiplying. However that will reduce precision. For 16x16 blocks the maximum sum is 65280 and sqrt(2^31) is 46340 (and change). This change is based on: 1698234 Missed some variance casts fea3556 Fix variance overflow Change-Id: I2c61856cca9db54b9b81de83b4505ea81a050a0f
2012-11-06fixed function prototypeYaowu Xu
so they are consistent with actual definitions of the functions Change-Id: Ie4b4e81b3da3e288fc2edbbd2b393a5c54d2556b
2012-11-06group refmv experiment related functionsYaowu Xu
Change-Id: Iedaa108ddb65f54d768424f9c47ad4d069b656fd
2012-11-06Merge "fix test builds" into experimentalJames Zern
2012-11-06fix test buildsJames Zern
s/([vV][pP])8/$19/ additionally dct.h was removed; declare the _c functions that are used in the tests. the TODO for conversion to parameterized tests still remains. Change-Id: I73db9425a57075bbb78a92693ba6b320578981cd
2012-11-06Merge other top-level C codeJohn Koleszar
Change-Id: I0ff77f51595599cc3de5183c6c655fd261e3d925
2012-11-06vpxenc: merge with masterJohn Koleszar
Change-Id: Ic3e3559384a0e72abdc9b66a19865474c2a41b38
2012-11-06vpxdec: merge with masterJohn Koleszar
Change-Id: I69fd876dd51eb2b4a4a449faa5922225e9508b42
2012-11-06vpx: merge with masterJohn Koleszar
Change-Id: I44b3ad780cef6f448fa17ff8e28fea87ef9cd518
2012-11-06Convert 16x16 dct/idct to integer formsYunqing Wang
Converted vp9_short_fdct16x16_c and vp9_short_idct16x16_c to integer versions. Change-Id: Ie3ec985a890ac0f4f4f5818e6f0122e00c8af69f
2012-11-06vp9/encoder/bitstream.c: fix unused variable warningsJames Zern
Change-Id: Ibfac7e000509d2017eac9a108060e534a19fec33
2012-11-06Merge "silent a lot of MSVC compiler warnings" into experimentalYaowu Xu
2012-11-06silent a lot of MSVC compiler warningsYaowu Xu
there are still a couple type of warning left, which are related to double constants assigned to float type. As those would be addressed by the conversion of transforms into integer version. This commit has left those un-dealt with. Change-Id: I48fd9b489c0c27ad6b543f4177423419f929f2bb
2012-11-06Add option to disable documentationJohann
Documentation is typically auto-detected by checking for php and doxygen. Add an option to explicitly disable it. Remove toggle keywords from libraries, examples, documentation and unit tests. They were not consistent with the default status. Change-Id: I21049675ccfd8e58ac612cd058641b197db5c0eb
2012-11-06Merge "remove invoke_search macro" into experimentalJim Bankoski
2012-11-05rd_pick_inter_mode: prevent signed integer overflowJames Zern
calculate the txfm_cache difference first as both values may be INT64_MAX with the intent that they cancel each other out. Change-Id: I214d072458e1b24f60289974e6302af1aff7b66c
2012-11-05remove invoke_search macroJim Bankoski
Removed invoke search from encoder Change-Id: I3d809b795abe6df0e71366edfe94026aaede14fb
2012-11-05rdopt: fix use of uninitialized value in additionJames Zern
rd_pick_intra4x4mby_modes / rd_pick_intra8x8mby_modes would both use the input value of 'rate_y' in the return calculation. In many places this value is uninitialized. Remove the unneeded sum. Change-Id: Icbd3df685303000301e69291c0ebc06f74bd548d
2012-11-05vpx_ports: merge with masterJohn Koleszar
Change-Id: I25c067326153455abe1a79f8f44f70b87350e655
2012-11-05build: merge with masterJohn Koleszar
Change-Id: I8ea836ce92c1c96f1e2bdf45e704d36ec9dbc401
2012-11-05Merge "Build / make problem" into experimentalYaowu Xu
2012-11-05Merge "Don't generate residual 3x when doing a macroblock luma RD estimate." ↵Ronald S. Bultje
into experimental