summaryrefslogtreecommitdiff
path: root/vp8/decoder
AgeCommit message (Collapse)Author
2011-12-22Merge "Remove legacy integer types"John Koleszar
2011-12-22Remove legacy integer typesJohn Koleszar
Remove BOOL, INTn, UINTn, etc, in favor of C99-style fixed width types. Change-Id: I396636212fb5edd6b347d43cc940186d8cd1e7b5
2011-12-22Merge "Remove opaque pointer VP8D_PTR"John Koleszar
2011-12-21Remove opaque pointer VP8D_PTRJohn Koleszar
Use an opaque struct rather than typecasting through VP8D_PTR, an int*. Change-Id: Ia260b7d53d7e0950cfa1e00f4ecead1099bd3b87
2011-12-21squash some signed/unsigned comparison warningsJames Zern
Change-Id: Ifc64cf990ae04d77934da3324d0afb3993f061e7
2011-12-16Fixed mb_skip_coeff bugScott LaVarnway
When mb_skip_coeff is set, the idct is not necessary. Prior to this patch, the code would call idcts based on leftover eob information. This patch will now skip the idct for SPLIT_MV and clear out the eobs for B_PRED, forcing the idct to be skipped. Change-Id: If5b0d2ed3ebd07789d30ec5160df927485fcaa17
2011-12-15Moved dequant idct into commonScott LaVarnway
These functions are now used by the encoder. This is WIP with the goal of creating a common idct/add for the encoder and decoder. A boost of 1.8% was seen for the HD rt test clip used. [Tero] Added needed changes to ARM side. Change-Id: Ibbb8000be09034203d7adffc457d3c3f8b06a5bf
2011-11-28Added vp8_dequant_idct_add_y_block_sse2 setupScott LaVarnway
In Change I83202ffd, I deleted one too many lines. Change-Id: If05d7c8988eb5c00898dc7c833ad7d99b5eb23e7
2011-11-28Merge "Modified the inverse walsh to output directly"Scott LaVarnway
2011-11-25Modified the inverse walsh to output directlyScott LaVarnway
to the dqcoeff or qcoeff buffer. The encoder would populate the dc coeffs of the y blocks as a separate stage (recon_dcblock) and the decoder would use a special version of the idct. This change eliminates the extra copy and reduces the code footprint. [Tero] Added needed changes to armv6 and NEON assembly. Change-Id: I83202ffdbaf83f6e5dd69f4ba2519fcf0b13b3ba
2011-11-21Decoder fixes to better support reference picture selection.Stefan Holmer
Change-Id: Id3388985d754706b9fd1f079c47121e79a63efdf
2011-11-09ARMv6 optimized Intra4x4 predictionTero Rintaluoma
Added ARM optimized intra 4x4 prediction - 2x faster on Profiler compared to C-code compiled with -O3 - Function interface changed a little to improve BLOCKD structure access Change-Id: I9bc2b723155943fe0cf03dd9ca5f1760f7a81f54
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-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-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-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-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-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-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-21Remove unused DETOK structureTero Rintaluoma
DETOK structure is not used anymore. Change-Id: Id22e1af78fb85d4bb151237a60290d9364faf217
2011-10-19Improved token decoderScott LaVarnway
Tests showed over 2% improvement on various HD clips. Change-Id: I94a30d209c92cbd5fef285122f9fc570688635fe
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-09-22Merge "clamp_mvs() using the wrong motion vector information"John Koleszar
2011-09-22Replace vpx_ports/config.h with vpx_config.hAttila Nagy
Just a clean-up. Change-Id: Iea5b6dc925dcfa7db548bc1ab1a13d26ed5a2c9a
2011-09-19Fix necessary for input partitions iface to match the RTP profileStefan Holmer
These changes fixes a glitch between the RTP profile and the input partitions interface. Since there's no way for the user to know the actual number of partitions, the decoder have to read the multi_token_paritition bits also when input partitions mode is enabled. Included are also a couple of fixes for issues with independent partitions and uninitialized memory reads. Change-Id: I6f93b15287d291169ed681898ed3fbcc5dc81837
2011-09-16Merge "Fixes the boundary checks for extrapolated and interpolated MVs."John Koleszar
2011-09-16clamp_mvs() using the wrong motion vector informationScott LaVarnway
In the "Removed bmi copy to/from BLOCKD" commit, the copy to the bmi in BLOCKD was eliminated. The clamp_mvs() used the bmi in BLOCKD, which now contains incorrect values. This patch fixes this problem. Change-Id: I8eca1eaf4015052b0b63e90876f7ad321aba7cff
2011-09-16Fixes the boundary checks for extrapolated and interpolated MVs.Stefan Holmer
Change-Id: I5b47d39d1604f2650d2f2d1ca2a3f40843c8e1ea
2011-08-31Merge "Removed bmi copy to/from BLOCKD"Scott LaVarnway
2011-08-24Removed bmi copy to/from BLOCKDScott LaVarnway
for SPLITMV and B_PRED modes. Modified code to use the bmi found in mode_info_context instead of BLOCKD. On the decode side, the uvmvs are calculated only when required, instead of every macroblock. This is WIP. (bmi should eventually be removed from BLOCKD) Small performance gains noticed for RT encodes and decodes.(VGA) Change-Id: I2ed7f0fd5ca733655df684aa82da575c77a973e7
2011-08-24Fix naming of sse2 idct functions.Fritz Koenig
Prepend idct function names with vp8_ so that under profiling they show up associated with libvpx. Change-Id: I4fe357b50236cb7730a4cc00164c0a3487a1d8b4
2011-08-15Don't set the bmi mode when doing error concealmentStefan Holmer
Since the block will be interpreted as an inter block, the mode will be interpreted as a motion vector, resulting in bad concealment. Change-Id: Ifcc685ae1cc883492bce6dbd61e418d91a89b053
2011-08-12Propagate macroblock MV to subblocks for error concealmentJohn Koleszar
EC expects the subblock MVs to be populated, but f1d6cc79e43f0066632f19c1854ca365086b712b removed this code. This commit restores it, protected by CONFIG_ERROR_CONCEALMENT. May move this to the EC code more directly in the future. Change-Id: I44f8f985720cb9a1bf222e59143f9e69abf56ad2
2011-08-12Disable error concealment until first key frame is decodedStefan Holmer
When error concealment is enabled the first key frame must be successfully received before error concealment is activated. Error concealment will be activated when the delta following delta frame is received. Also fixed a couple of bugs related to error tracking in multi-threading. And avoiding decoding corrupt residual when we have multiple non-resilient partitions. Change-Id: I45c4bb296e2f05f57624aef500a874faf431a60d
2011-08-12Fix potential OOB read with Error ConcealmentJohn Koleszar
This patch fixes an OOB read when error concealment is enabled and the partition sizes are corrupt. The partition size read from the bitstream was not being validated in EC mode. Change-Id: Ia81dfd4bce1ab29ee78e42320abe52cee8318974
2011-08-01Fix building with --disable-postprocJohn Koleszar
Change-Id: I7e6bc28e7974a376da747300744e0dd5dc1d21e9
2011-07-26Merge "cosmetics: consistently use [u]int64_t"John Koleszar
2011-07-26cosmetics: consistently use [u]int64_tJames Zern
Removes mixed usage of (unsigned) long long and INT64. Fixes Issue #208. Change-Id: I220d3ed5ce4bb1280cd38bb3715f208ce23cf83a
2011-07-26"Eliminated TOKENEXTRABITS" broke the windows build.Scott LaVarnway
Fixed. Change-Id: I3348e8dbcaee6ace263af413701101d77636e5df
2011-07-25Eliminated TOKENEXTRABITSScott LaVarnway
Noticed small performance gains, depending on material. Change-Id: I334369f6312bc19aa73481fc3f790ab181e11867
2011-07-22fix sharpness bug and clean upJohann
sharpness was not recalculated in vp8cx_pick_filter_level_fast remove last_filter_type. all values are calculated, don't need to update the lfi data when it changes. always use cm->sharpness_level. the extra indirection was annoying. don't track last frame_type or sharpness_level manually. frame type only matters for motion search and sharpness_level is taken care of in frame_init move function declarations to their proper header Change-Id: I7ef037bd4bf8cf5e37d2d36bd03b5e22a2ad91db
2011-07-19Merge "Moved vp8_encode_bool into boolhuff.h"Scott LaVarnway
2011-07-19remove old armv5 codeJohann
armv5 dequantizer is not referenced Change-Id: Id1cc617dcee35ebd6a406816ec6aaa26e8bbc8ad
2011-07-19Moved vp8_encode_bool into boolhuff.hScott LaVarnway
allowing the compiler to inline this function. For real-time encodes, this gave a boost of 1% to 2.5%, depending on the speed setting. Change-Id: I3929d176cca086b4261267b848419d5bcff21c02
2011-07-13Merge "Fix unnecessary casting of B_PREDICTION_MODE (issue 349)"Yunqing Wang