summaryrefslogtreecommitdiff
path: root/vp8/encoder
AgeCommit message (Collapse)Author
2011-03-10Merge remote branch 'internal/upstream' into HEADJohn Koleszar
2011-03-09Add vp8_sub_pixel_variance16x8_ssse3 functionYunqing Wang
Added SSSE3 function Change-Id: I8c304c92458618d93fda3a2f62bd09ccb63e75ad
2011-03-09Remove unused functionsYunqing Wang
Removed some unused functions Change-Id: Ifdfc27453e53cfc75997b38492901d193a16b245
2011-03-09Merge "Improve SSE2 half-pixel filter funtions"Yunqing Wang
2011-03-09Merge "Configuration updates:Making a clear distinction between Init and Change"John Koleszar
2011-03-09Merge remote branch 'internal/upstream' into HEADJohn Koleszar
2011-03-08Improve SSE2 half-pixel filter funtionsYunqing Wang
Rewrote these functions to process 16 pixels once instead of 8. Change-Id: Ic67e80124467a446a3df4cfecfb76a4248602adb
2011-03-08Merge "Add zero offset checking in SSE2 sub-pixel filter function"Yunqing Wang
2011-03-08Add zero offset checking in SSE2 sub-pixel filter functionYunqing Wang
Skip filter at zero offset. Change-Id: I95fc7e211869bc0ab5bcfb7ab2e3259d1c0ccf38
2011-03-08Merge "Write SSSE3 sub-pixel filter function"Yunqing Wang
2011-03-08Write SSSE3 sub-pixel filter functionYunqing Wang
1. Process 16 pixels at one time instead of 8. 2. Add check for both xoffset =0 and yoffset=0, which happens during motion search. This change gave encoder 1%~3% performance gain. Change-Id: Idaa39506b48f4f8b2fbbeb45aae8226fa32afb3e
2011-03-08Fix a multi-line format-string warning.Ralph Giles
GCC 4.5 and 4.6 both issue a warning about the multi-line format string introduced in bc9c30a0, which also changed the whitespace in the associated stt file by line-wrapping the long format string. Instead, use multiple string constants, which the compiler will concatenate. This maintains the original formatting, but remains legible within the standard line length. Change-Id: I27c9f92d46be82d408105a3a4091f145f677e00e
2011-03-08Corrected minor typos.Paul Wilkins
Change-Id: Icc9f12bd1e1bdaf51256dc8a90d08aa9be89ef34
2011-03-08Merge changes I00c3e823,If8bca004Paul Wilkins
* changes: Improved key frame detection. Improved KF insertion after fades to still.
2011-03-07correct zbin boost for splitmv modeJohn Koleszar
Disable zbin boost in SPLITMV mode as intended. Was incorrectly looking at vp8_ref_frame_order instead of vp8_mode_order when comparing against SPLITMV. This condition should have always been false, as SPLITMV is not in the range of valid reference frames. Change-Id: I0408cc7595eff68f00efef6d008e79f5b60d14bf
2011-03-07Improved key frame detection.Paul Wilkins
In some cases where clips have been encoded with borders (eg. some wide-screen content where there is a border top and bottom and slide shows containing portrait format photographs (border left and right)) key frames were not being correctly detected. The new code looks to measure cases where a portion of the image can be coded equally easily using intra or inter modes and where the resulting error score is also very low. These "neutral" areas are then discounted in the key frame detection code. Change-Id: I00c3e8230772b8213cdc08020e1990cf83b780d8
2011-03-07Improved KF insertion after fades to still.Paul Wilkins
This code extends what was previously done for GFs, to pick cases where insertion of a key frame after a fade (or other transition or complex motion) followed by a still section, will be beneficial and will reduce the number of forced key frames. Change-Id: If8bca00457f0d5f83dc3318a587f61c17d90f135
2011-03-05Merge remote branch 'internal/upstream' into HEADJohn Koleszar
2011-03-04Merge "Fixing divide by zero"John Koleszar
2011-03-03Configuration updates:Making a clear distinction between Init and ChangeMikhal Shemer
Change-Id: I7b2fb326e1aabc08b032177a7b914a5b8bb7376f
2011-03-03Fixing divide by zeroMikhal Shemer
Change-Id: I9d8a98a2f7ed1e3116d0bae35164618c41998bac
2011-03-03Merge remote branch 'internal/upstream' into HEADJohn Koleszar
Conflicts: vp8/vp8_cx_iface.c Change-Id: Iecfd4532ab1c722d10ecce8a5ec473e96093cf3b
2011-03-03Merge remote branch 'internal/upstream-experimental' into HEADJohn Koleszar
Conflicts: vp8/common/blockd.h Change-Id: Ica2bd1c3da614eab5ce23acfb597e777d16b3983
2011-03-02Fix drastic undershoot in long form contentJohn Koleszar
When the modified_error_left accumulator exceeds INT_MAX, an incorrect cast to int resulted in a negative value, causing the rate control to allocate no bits to that keyframe group, leading to severe undershoot and subsequent poor quality. This error was exposed by the recent change to the rolling target and actual spend accumulators in commit 305be4e4 which fixed them to actually calculate the average value rather than be re-initialized on every frame to the average per-frame bitrate. When this bug was triggered, the target bitrate could be 0, so the rolling target becomes small, which causes the undershoot. The code prior to 305be4e4 did not exhibit this behavior because the rolling target was always set to a reasonable value and was independent of the actual target bitrate. With this patch, the actual target bitrate is calculated correctly, and the rate control tracks as expected. This cast was likely added to silence a compiler warning on a comparison between a double (modified_error_left) and an int (0). Instead, this patch removes the cast and changes the comparison to be against 0.0, which should prevent the warning from reoccuring. This fixes issue #289. Special thanks to gnafu for his efforts in reporting and debugging this fix. Change-Id: Ie5cc1a7b516c578a76c3a50c892a6f04a11621fe
2011-03-02Merge "ARMv6 optimized half pixel variance calculations"Johann
2011-02-28Merge "Add prefetch before variance calculation"Yunqing Wang
2011-02-28Merge "Avoid double copying of key frames into alt and golden buffer"Scott LaVarnway
2011-02-28Add prefetch before variance calculationYunqing Wang
This improved encoding performance by 0.5% (good, speed 1) to 1.5% (good, speed 5). Change-Id: I843d72a0d68a90b5f694adf770943e4a4618f50e
2011-02-25Merge "Remove a second check for invalid ptr in vp8_get_compressed_data"Johann
2011-02-25Merge "Remove temporal alt ref from realtime only build"Johann
2011-02-25Avoid double copying of key frames into alt and golden bufferAttila Nagy
Change-Id: I726976a297a593a35ed6cba3c660e372562f7b27
2011-02-25Remove a second check for invalid ptr in vp8_get_compressed_dataAttila Nagy
Check is done first when function si entered. Change-Id: Ief0d0cbd4860aaf492b78728f8d22f24029b1174
2011-02-25Merge remote branch 'origin/master' into experimentalJohn Koleszar
Change-Id: I52f21ff6f9a1dca7099a8459657f6f288c5bfe40
2011-02-24Removed vp8_block2typeScott LaVarnway
and used defines instead. Change-Id: Idb56e0295d004793f406dfd2d8d8c546aad62e03
2011-02-24Merge "Revisited rd_pick_intra4x4block"Scott LaVarnway
2011-02-24Revisited rd_pick_intra4x4blockScott LaVarnway
Removed unnecessary copies. No noticeable speed gains. Change-Id: I996c50c23fedd06d54ee7a3e762cbf559cc4a9d1
2011-02-24Overflow of frame error accumulators.Paul Wilkins
This fixes an overflow problem in the frame error accumulators. The overflow condition is extreme but did trigger when Frank B. coded some high motion interlaced HD content. The observed effect was a catastrophic breakdown of the rate control leading to massive undershoot and poor bit allocation. All the error values should really be unsigned but I will look at this separately. Change-Id: I9745f5c5ca2783620426b66b568b2088b579151f
2011-02-23ARMv6 optimized half pixel variance calculationsTero Rintaluoma
Adds following ARMv6 optimized functions to the encoder: - vp8_variance_halfpixvar16x16_h_armv6 - vp8_variance_halfpixvar16x16_v_armv6 - vp8_variance_halfpixvar16x16_hv_armv6 Change-Id: I1e9c2af7acd2a51b72b3845beecd990db4bebd29
2011-02-22Remove temporal alt ref from realtime only buildAttila Nagy
It is not used in realtime mode. Reduces memory footprint. Change-Id: I7f163225762368df5457cfd413050161d3704a3f
2011-02-19Merge remote branch 'internal/upstream' into HEADJohn Koleszar
2011-02-19Merge remote branch 'origin/master' into experimentalJohn Koleszar
Change-Id: Ia3197f432b424213a34b20071e5171a413ba1aaf
2011-02-18Revert "use unaligned load"Johann
This reverts commit f50f2fd2a73f2c5ee3f10ad077e780398df17cd7. Change Ib7506e3e aligns the buffer Change-Id: Ie0f8bd3e57cfdfef81d39638a1451458ebbae2e0
2011-02-18Merge "clean up unused files"John Koleszar
2011-02-18remove unused vp8_predict_dc functionJohn Koleszar
Change-Id: I64fa47889c54cfed094a674c49ef0996d49bdd42
2011-02-18clean up unused filesJohn Koleszar
Removed a number of files that were unused or little-used. Change-Id: If9ae5e5b11390077581a9a879e8a0defe709f5da
2011-02-18cosmetic: remove unnecessary scopeJohn Koleszar
Clean up some unnecessary scoping around pick_filter_level. Change-Id: Ic57fa33e3fcae37fe6beae977e5743783399d5af
2011-02-18Merge "Dont pick encoder filter level when loopfilter is disabled."John Koleszar
2011-02-18Reinitialize quantizer only when any delta is changingAttila Nagy
No need to reinitialize for base Q changes. Change-Id: Ie76ec21dd3c5582d5183dbed75ed73a1eed3e291
2011-02-18Dont pick encoder filter level when loopfilter is disabled.Attila Nagy
Change-Id: I58154faf4f3ece24f9927a5c3ab7e830e0887fb6
2011-02-18Merge remote branch 'internal/upstream' into HEADJohn Koleszar