summaryrefslogtreecommitdiff
path: root/vp8
AgeCommit message (Collapse)Author
2011-11-04Merge "Add checks in MB quantizer initialization"Yunqing Wang
2011-11-04Merge "Fix issue 374: eob read incorrectly"Scott LaVarnway
2011-11-04Merge "Changing decoder input partition API to input fragments."John Koleszar
2011-11-04Fix issue 374: eob read incorrectlyTero Rintaluoma
Updated eob changes to check_reset_2nd_coeffs function. Change-Id: Id1b21c91c7f0fd286640b487ffe47867009b717d
2011-11-03Merge "Change use of eob in the encoder"Scott LaVarnway
2011-11-03Change use of eob in the encoderTero Rintaluoma
Changed 'int eob' to 'char *eob' in BLOCKD so that both encoder and decoder will use eobs[25] array from MACROBLOCKD structure. In future, this will enable use of the decoder side IDCT in the encoder. Change-Id: I6e1c011628cb8864fd4a0b80f0279ce16a5ca978
2011-11-02Merge "added code to clear 2nd order block when appropriate"Yaowu Xu
2011-11-01Merge "Fix: Increase default cx_data_size"John Koleszar
2011-11-01Changing decoder input partition API to input fragments.Stefan Holmer
Adding support for several partitions within one input fragment. This is necessary to fully support all possible packetization combinations in the VP8 RTP profile. Several partitions can be transmitted in the same packet, and they can only be split by reading the partition lengths from the bitstream. Change-Id: If7d7ea331cc78cb7efd74c4a976b720c9a655463
2011-11-01Add checks in MB quantizer initializationYunqing Wang
In some situations (f.g. error-resilient is turned on), vp8cx_mb _init_quantizer() was called once per macroblock. Added checks to avoid calculations when there is no change. Change-Id: Ie4f0a5ade2202041254990a4e9d5b03bd1ac5aea
2011-10-31Correct SPLITMV clampingJohn Koleszar
Prior to this fix, the clamping state of the last subblock partition dominated, whereas the correct behavior is to clamp if any partition needs clamping. This bug was introduced by v0.9.6-232-g6b25501 See also: [1]: http://code.google.com/p/webm/issues/detail?id=371 [2]: https://bugzilla.mozilla.org/show_bug.cgi?id=696390 Change-Id: I444db492b4c4f05f039c7da6f4216da8207dc138
2011-10-28added code to clear 2nd order block when appropriateYaowu Xu
It is discovered that in rare situations the 2nd order block may produce a few small magnitude coefficients that has no effect on reconstruction. The situations are a combination of low quantizer values (high quality) and low energy in residual signals (content dependent). This commit added code to detect such cases and reset the 2nd order block to all 0. Patch 1 to 4 used code to do all-zero-check on idct result buffer, and tests on derf set showed a consistent gain of .12%-.14% on all metrics.But due to a recent change Ie31d90b, the idct result buffer is not longer populated. So patch 5&6 use an alternative method to detect the situations. Tests on derf set now shows a consistent quality gain of .16%-.20%. As suggested by Jim, Patch 7&8 removed the condition of all first order block not having any coefficient, instead we reset 2nd order coefficients to all 0 if sum of absolute value of the coefficients is small. So it does slightly more than just detecting the oddity as discussed above, but tests on derf set now show a consistent gain of .20%-.23% on all metrics. It is worth noting here that this change does not have any effect on mid/high quantizer range, it only affects the quantizer value 18 or blow. Within this range, the change helps compression by up to 2.5% on clips in the derf set. Change-Id: I718e19cf59a4fc2462cb7070832759beb9f7e7dd
2011-10-28Merge "Improved decode_split_mv()"Scott LaVarnway
2011-10-27Merge "Fix ARM build problem introduced by CL I3fab6f2b"Johann
2011-10-27Improved decode_split_mv()Scott LaVarnway
Tests showed ~1.2% performance boost on the HD clip used. Performance will vary based on material. Change-Id: Icbcf1a828750d5b4ae5252bf596b3ef594042e8a
2011-10-27Merge "Improved mv_bias"Scott LaVarnway
2011-10-27Fix ARM build problem introduced by CL I3fab6f2bAttila Nagy
Update ARM asm implementation of vp8_start_encode to new definition. Change-Id: Ic44791c969e351082331ba6146c3384c01a0dfad
2011-10-26Merge "Reduce partial frame copy in encoder's pick_filter_level_fast"Johann
2011-10-26Improved mv_biasScott LaVarnway
Small performance gains. Change-Id: I709b9390a8a27a70f5f23574313b8db85ac7f23d
2011-10-26Merge "Improved read_mb_modes_mv()"Scott LaVarnway
2011-10-26Improved read_mb_modes_mv()Scott LaVarnway
Interleaved vp8_find_near_mvs and vp8_mv_ref_probs. 2.5% to 4% performance improvement for the HD clips used. Change-Id: Id888b667cf5ae2f0e19da18743140f055ff7de8d
2011-10-26Reduce partial frame copy in encoder's pick_filter_level_fastAttila Nagy
The partial frame copy function used to copy an extra 8 lines above and below. The partial frame filtering can only modify 3 pixel rows above the partial frame. Reduce copy to bare minimum needed, which is 4 lines, so that partial filtering on copied frame is possible. Define the "magic" fraction number for partial filtering in loopfilter.h . Change-Id: I4791ffc541b6884b12759a0d0714a8faf16147ec
2011-10-25Merge "remove uninitialized variable warning"Johann
2011-10-25Merge "Improved token decoder"Scott LaVarnway
2011-10-25remove uninitialized variable warningJohann
Restructure if statement to clarify the error condition. Trigger the error before clobbering pc-> variables. Change-Id: Id01cab798a341ce9899078fdcec265a0e942a0b7
2011-10-25Merge "Removed read_mv_ref"Scott LaVarnway
2011-10-24remove unused variable warningJohann
Change-Id: I4fcd6e4656d9823aead941616cd63501aecbd6e2
2011-10-24Removed read_mv_refScott LaVarnway
Decode the mv mode with if-then-elses instead of traversing the vp8_mv_ref_tree data structure. This will make it easier to interleave vp8_find_near_mvs and vp8_mv_ref_probs. Change-Id: I1e798d6ec40fcaeeff06ccc82f81201978d12f74
2011-10-24Moved the split motion vector decodeScott LaVarnway
into a function. Change-Id: Ia023a0587100a52cb084f5d9d5512efa6198dad3
2011-10-24Merge "Removed redundant mv clamps for nearmv and nearestmv"Scott LaVarnway
2011-10-24Fix: Increase default cx_data_sizeJames Berry
Prior size could be too small in some instances resulting in an error. Change-Id: Ic601e49cbae92c98a0e7fb51ba8c186b352ffba6
2011-10-24Removed redundant mv clamps for nearmv and nearestmvScott LaVarnway
Did some cleanup as well. Patchset 2: Fixed bug. Will revisit the segmentation logic. Change-Id: Idf9fbcff9aaf467bdace9fbd58ef2cea6c602049
2011-10-21Merge "Remove unused DETOK structure"Scott LaVarnway
2011-10-21Remove unused DETOK structureTero Rintaluoma
DETOK structure is not used anymore. Change-Id: Id22e1af78fb85d4bb151237a60290d9364faf217
2011-10-20Merge "Fix: check cx_data buffer prior to write"John Koleszar
2011-10-20Fix: check cx_data buffer prior to writeJames Berry
check to make sure that cx_data buffer has enough room before writting to it, prior behavior did not which could result in a crash. Change-Id: I3fab6f2bc4a96d7c675ea81acd39ece121738b28
2011-10-19Don't copy borders for loop_filter_pickJohann
During the _pick only the Y plane is examined. In addition, data beyond the borders of the frame is not read. Change-Id: Ic549adfca70fc6e0b55f8aab0efe81f0afac89f9
2011-10-19Merge "enc: save entropy probs only when needed for refresh"Johann
2011-10-19Improved token decoderScott LaVarnway
Tests showed over 2% improvement on various HD clips. Change-Id: I94a30d209c92cbd5fef285122f9fc570688635fe
2011-10-19Merge "Remove usage of predict buffer for decode"Scott LaVarnway
2011-10-18Remove usage of predict buffer for decodeScott LaVarnway
Instead of using the predict buffer, the decoder now writes the predictor into the recon buffer. For blocks with eob=0, unnecessary idcts can be eliminated. This gave a performance boost of ~1.8% for the HD clips used. Tero: Added needed changes to ARM side and scheduled some assembly code to prevent interlocks. Patch Set 6: Merged (I1bcdca7a95aacc3a181b9faa6b10e3a71ee24df3) into this commit because of similarities in the idct functions. Patch Set 7: EC bug fix. Change-Id: Ie31d90b5d3522e1108163f2ac491e455e3f955e6
2011-10-14Fix: vp8cx_pack_tokens_into_partitions_armv5 crashAttila Nagy
It was crashing when number of partitions was bigger than the number of MB rows (ex. 128x96 with 8 partitions). Start point was not checked against mb_rows, plus extra "empty" partitions were not written out. Change-Id: I9c2f013b9ec022354b658fab4ef799ff8b1de93d
2011-10-11Merge "Added rate-targeted temporal scalability"Adrian Grange
2011-10-11Added rate-targeted temporal scalabilityAdrian Grange
Added the ability to create rate-targeted, temporally scalable, VP8 compatible bitstreams. The application vp8_scalable_patterns.c demonstrates how to use this capability. Users can create output bitstreams containing upto 5 temporally separable streams encoded as a single VP8 bitstream. (previously abandoned as: I92d1483e887adb274d07ce9e567e4d0314881b0a) Change-Id: I156250a3fe930be57c069d508c41b6a7a4ea8d6a
2011-10-10bug fix - starting/optimal/max and buffer_level changed from int to int64_tJames Berry
buffer_level in VP8_COMP and starting_buffer_level, optimal_buffer_level and maximum_buffer_size in VP8_CONFIG changed from int to int64_t to avoid potential crash issues for larger target bit rates. Change-Id: I0d5ab6c8a44c2fef51f30cd8df4bb4b739c5df26
2011-10-10enc: save entropy probs only when needed for refreshAttila Nagy
Previous entropy probs need to be saved (and restored) only when current updates are not propagated. Change-Id: Ie6ee0543066e30874e56258be0a6b7d2dd2fdb2b
2011-10-04Merge "Improved tokenize"Scott LaVarnway
2011-10-04Merge "Fix uninitialized new_mv_count in first pass file"John Koleszar
2011-10-04Merge "Multithreaded encoder, late sync loopfilter"Yunqing Wang
2011-10-04Fix uninitialized new_mv_count in first pass fileJohn Koleszar
Uninitialized data could be written to the first pass file when no motion vectors are present in the frame. Also fix a number of compiler warnings. Change-Id: Icc9f53b6d33da9de4563d86d9fd591910473ea90