- 17 Mar, 2011 - 2 commits
-
-
Ralph Giles authored
The mmap allocation code in vp8_dx_iface.c was inconsistent. The static array vp8_mem_req_segs defines two descriptors, but only the first is real. The second is a sentinel and isn't actually allocated, so vpx_codec_alg_priv is declared with mmaps[NELEMENTS(vp8_mem_req_segs)-1]. Some functions use this reduced upper bound when iterating though the mmap array, but these two functions did not. Instead, this commit calls NELEMENTS(...->mmaps) to directly query the bounds of the dereferenced array. This fixes an array-bounds warning from gcc 4.6 on vp8_xma_set_mmap. Change-Id: I918e2721b401d134c1a9764c978912bdb3188be1
-
Ralph Giles authored
Change-Id: I48642c380353043bed96026f56de5908fcee270a
-
- 16 Mar, 2011 - 1 commit
-
-
John Koleszar authored
Fixes implicit declaration warning for 'mach_task_self'. This change is an update to Change I9991dedd1ccfddc092eca86705ecbc3b764b799d, which fixed this issue for the decoder but not the encoder. Change-Id: I9df033e81f9520c4f975b7a7cf6c643d12e87c96
-
- 15 Mar, 2011 - 1 commit
-
-
Attila Nagy authored
Change-Id: I08edaffc62514907fa5e90e1689269e467c857f5
-
- 14 Mar, 2011 - 1 commit
-
-
Attila Nagy authored
Change-Id: I77e9f2f521a71089228f96e2db72524189364ffb
-
- 11 Mar, 2011 - 10 commits
-
-
John Koleszar authored
The vp8_build_intra_predictors_mby and vp8_build_intra_predictors_mby_s functions had global function pointers rather than using the RTCD framework. This can show up as a potential data race with tools such as helgrind. See https://bugzilla.mozilla.org/show_bug.cgi?id=640935 for an example. Change-Id: I29c407f828ac2bddfc039f852f138de5de888534
-
John Koleszar authored
Fix compiling on 32 bit x86. Change-Id: I6210573e1d9287ac49acbe3d7e5181e309316107
-
Paul Wilkins authored
Clean up vp8_init_config() a bit and remove null pointer case, as this code can't be called any more and is not an adequate trap anyway, as a null pointer would cause exceptions before hitting the test. Change-Id: I937c00167cc039b3aa3f645f29c319d58ae8d3ee
-
Paul Wilkins authored
Issue 291 highlighted the fact that CQ mode was not working as expected in 1 pass mode, This commit fixes that specific problem but in so doing I also uncovered an overflow issue in the VBR code for 1 pass and some data values not being correctly initialized. For some clips (particularly short clips), the resulting improvement is dramatic. Change-Id: Ieefd6c6e4776eb8f1b0550dbfdfb72f86b33c960
-
Jim Bankoski authored
Change-Id: Ie388d4618c44b131f96b9fe526618b457f020dfa
-
Jim Bankoski authored
Change-Id: I91921b0a90dbaddc7010380b038955be347964b3
-
Yunqing Wang authored
Use aligned store. Change-Id: Icab4c0c53da811d0c52bb7e8134927f249ba2499
-
Attila Nagy authored
Change-Id: Iadcbdba717439f47a2c24e65fd69a3a1464174b5
-
Attila Nagy authored
In multithreaded mode the loopfilter is running in its own thread (filter level calculation and frame filtering). Filtering is mostly done in parallel with the bitstream packing. Before starting the packing the loopfilter level has to be calculated. Also any needed reference frame copying is done in the filter thread. Currently the encoder will create n+1 threads, where n > 1 is the number of threads specified by application and 1 is the extra filter thread. With n = 1 the encoder runs in single thread mode. There will never be more than n threads running concurrently. Change-Id: I4fb29b559a40275d6d3babb8727245c40fba931b
-
Tero Rintaluoma authored
Adds new ARMv6 optimized function vp8_fast_quantize_b_armv6 to the encoder. Change-Id: I40277ec8f82e8a6cbc453cf295a0cc9b2504b21e
-
- 10 Mar, 2011 - 3 commits
-
-
Adrian Grange authored
Printout of firstpass stats for frame had one fewer format specifiers than arguments. Change-Id: I5a42c85aa79c471e1a70afd75e24a91546b7a1cd
-
Adrian Grange authored
The firstpass motion map consists of an 8-bit flag for each MB indicating how strongly the firstpass code believes it should be filtered during the second pass ARNR filtering. For long or large format material the motion map can become extremely large and hamper the operation of the encoding process. This change removes the motion map altogether, leaving the second pass to rely on the magnitude of the motion compensated error to determine the filter weight to use for the MB during ARNR filtering. Tests on the derf set indicate that the effect of this change is neutral, with some small wins and losses. The motion map has therefore been removed based on a cost/benefit evaluation. Change-Id: I53e07d236f5ce09a6f0c54e7c4ffbb490fb870f6
-
James Berry authored
The previous calculation of macroblock count (w*h)/256 is not correct when the width/height are not multiples of 16. Use the precalculated macroblock count from cpi->common instead. This manifested itself as a divide by zero when the number of pixels was less than 256. num_mbs updated in estimate_max_q, estimate_q, estimate_kf_group_q, and estimate_cq Change-Id: I92ff98587864c801b1ee5485cfead964673a9973
-
- 09 Mar, 2011 - 3 commits
-
-
John Koleszar authored
Missing file causes 'make dist' to not include a complete copy of the source. Change-Id: I3f55aeb5a86d0e81234e4e4588cb8086ba4cfc4a
-
Yunqing Wang authored
Added SSSE3 function Change-Id: I8c304c92458618d93fda3a2f62bd09ccb63e75ad
-
Yunqing Wang authored
Removed some unused functions Change-Id: Ifdfc27453e53cfc75997b38492901d193a16b245
-
- 08 Mar, 2011 - 7 commits
-
-
Ralph Giles authored
Move the update of the loopfilter info to the same block where it is used. GCC 4.5 is not able trace the initialization of the local filter_info across the other calls between the two conditionals on pbi->common and issues an uninitialized variable warning. Change-Id: Ie4487b3714a096b3fb21608f6b0c74e745e3c6fc
-
Yunqing Wang authored
Rewrote these functions to process 16 pixels once instead of 8. Change-Id: Ic67e80124467a446a3df4cfecfb76a4248602adb
-
Yunqing Wang authored
Skip filter at zero offset. Change-Id: I95fc7e211869bc0ab5bcfb7ab2e3259d1c0ccf38
-
Yunqing Wang authored
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
-
Ralph Giles authored
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
-
Paul Wilkins authored
Change-Id: Icc9f12bd1e1bdaf51256dc8a90d08aa9be89ef34
-
John Koleszar authored
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
-
- 07 Mar, 2011 - 2 commits
-
-
Paul Wilkins authored
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
-
Paul Wilkins authored
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
-
- 03 Mar, 2011 - 3 commits
-
-
Mikhal Shemer authored
Change-Id: I7b2fb326e1aabc08b032177a7b914a5b8bb7376f
-
Mikhal Shemer authored
Change-Id: I9d8a98a2f7ed1e3116d0bae35164618c41998bac
-
John Koleszar authored
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
-
- 28 Feb, 2011 - 1 commit
-
-
Yunqing Wang authored
This improved encoding performance by 0.5% (good, speed 1) to 1.5% (good, speed 5). Change-Id: I843d72a0d68a90b5f694adf770943e4a4618f50e
-
- 25 Feb, 2011 - 2 commits
-
-
Attila Nagy authored
Change-Id: I726976a297a593a35ed6cba3c660e372562f7b27
-
Attila Nagy authored
Check is done first when function si entered. Change-Id: Ief0d0cbd4860aaf492b78728f8d22f24029b1174
-
- 24 Feb, 2011 - 3 commits
-
-
Scott LaVarnway authored
and used defines instead. Change-Id: Idb56e0295d004793f406dfd2d8d8c546aad62e03
-
Scott LaVarnway authored
Removed unnecessary copies. No noticeable speed gains. Change-Id: I996c50c23fedd06d54ee7a3e762cbf559cc4a9d1
-
Paul Wilkins authored
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
-
- 23 Feb, 2011 - 1 commit
-
-
Tero Rintaluoma authored
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
-