summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2011-03-21ARMv6 optimized fdct4x4Tero Rintaluoma
Optimized fdct4x4 (8x4) for ARMv6 instruction set. - No interlocks in Cortex-A8 pipeline - One interlock cycle in ARM11 pipeline - About 2.16 times faster than current C-code compiled with -O3 Change-Id: I60484ecd144365da45bb68a960d30196b59952b8
2011-03-17Set bounds from the array when iterating mmaps.Ralph Giles
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
2011-03-17Remove commented-out VP6 code from vp8_finalize_mmapsRalph Giles
Change-Id: I48642c380353043bed96026f56de5908fcee270a
2011-03-17Merge "Fix "used uninitialized" warning in vp8_pack_bitstream()"John Koleszar
2011-03-16apple: include proper mach primativesJohn Koleszar
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
2011-03-16Remove echoing in obj_int_extract ruleAttila Nagy
Change-Id: I9965170b40e2f32e9d84895c33a529b0d7dacdc1
2011-03-15Add vp8_variance8x8_armv6 and vp8_sub_pixel_variance8x8_armv6 functionsAttila Nagy
Change-Id: I08edaffc62514907fa5e90e1689269e467c857f5
2011-03-15Avoid misspelling "dependent".Gaute Strokkenes
Change-Id: Ib0c280e1fcfd977e11e4390807b2c8077a87500c
2011-03-14Merge "Fix an unused variable warning."John Koleszar
2011-03-14Improve grammar in a comment.Ralph Giles
Change-Id: I18bfda6d420626f2718e096e338c1d0bf0ba029d
2011-03-14obj_int_extract: win64 does not prefix symbolsJohann
obj_int_extract was unconditionally skipping the first character in the symbol. make sure it's actually an '_' first Change-Id: Icfe527eb8a0028faeabaa1dcedf8cd8f51c92754
2011-03-14Merge "Add vp8_mse16x16_armv6 function"Johann
2011-03-14Add vp8_mse16x16_armv6 functionAttila Nagy
Change-Id: I77e9f2f521a71089228f96e2db72524189364ffb
2011-03-12Fix build with xcode4 and simplify GLOBAL.Rafael Ávila de Espíndola
Without this change I get link errors in firefox's libxul. It looks like the linker expect a particular pattern for getting the GOT. This patch changes webm to use the same pattern used by the compiler. Change-Id: Iea8c2e134ad45c1dc7d221ff885a8429bfa4e057
2011-03-11Merge "Move build_intra_predictors_mby to RTCD framework"Johann
2011-03-11Move build_intra_predictors_mby to RTCD frameworkJohn Koleszar
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
2011-03-11Merge "ARMv6 optimized quantization"Johann
2011-03-11Merge "Only enable ssim_opt.asm on X86_64"John Koleszar
2011-03-11Only enable ssim_opt.asm on X86_64John Koleszar
Fix compiling on 32 bit x86. Change-Id: I6210573e1d9287ac49acbe3d7e5181e309316107
2011-03-11Clean up of vp8_init_config()Paul Wilkins
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
2011-03-11Merge "1 Pass CQ and VBR bug fixes"John Koleszar
2011-03-111 Pass CQ and VBR bug fixesPaul Wilkins
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
2011-03-11Merge "Fix incorrect macroblock counts in twopass rate control"John Koleszar
2011-03-11Merge "Align SAD output array to be 16-byte aligned"Yunqing Wang
2011-03-11Merge "vp8cx - psnr converted to call assemblerized sse"John Koleszar
2011-03-11Merge "vp8cx- alternate ssim function with optimizations"John Koleszar
2011-03-11vp8cx - psnr converted to call assemblerized sseJim Bankoski
Change-Id: Ie388d4618c44b131f96b9fe526618b457f020dfa
2011-03-11vp8cx- alternate ssim function with optimizationsJim Bankoski
Change-Id: I91921b0a90dbaddc7010380b038955be347964b3
2011-03-11Align SAD output array to be 16-byte alignedYunqing Wang
Use aligned store. Change-Id: Icab4c0c53da811d0c52bb7e8134927f249ba2499
2011-03-11Merge "Encoder loopfilter running in its own thread"Yunqing Wang
2011-03-11Fix "used uninitialized" warning in vp8_pack_bitstream()Attila Nagy
Change-Id: Iadcbdba717439f47a2c24e65fd69a3a1464174b5
2011-03-11Encoder loopfilter running in its own threadAttila Nagy
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
2011-03-11ARMv6 optimized quantizationTero Rintaluoma
Adds new ARMv6 optimized function vp8_fast_quantize_b_armv6 to the encoder. Change-Id: I40277ec8f82e8a6cbc453cf295a0cc9b2504b21e
2011-03-10obj_int_extract for Visual StudioJohann
Enable extraction of assembly offsets from compiled examples in MSVS. This will allow us to remove some stub functions from x86 assembly since we will be able to reliably determine structure offsets at compile time. see ARM code for examples: vp8/encoder/arm/armv5te/ vpx_scale/arm/neon/ Change-Id: I1852dc6b56ede0bf1dddb5552196222a7c6a902f
2011-03-10Added missing format specifier in print statementAdrian Grange
Printout of firstpass stats for frame had one fewer format specifiers than arguments. Change-Id: I5a42c85aa79c471e1a70afd75e24a91546b7a1cd
2011-03-10Removed firstpass motion mapAdrian Grange
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
2011-03-10Fix incorrect macroblock counts in twopass rate controlJames Berry
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
2011-03-09Merge "Add vp8_sub_pixel_variance16x8_ssse3 function"Yunqing Wang
2011-03-09Merge branch 'bali'John Koleszar
Change-Id: Icf18b4981afb12ef255fca431d4ba45860dd22c9
2011-03-09Add missing filter.h to build systemJohn Koleszar
Missing file causes 'make dist' to not include a complete copy of the source. Change-Id: I3f55aeb5a86d0e81234e4e4588cb8086ba4cfc4a
2011-03-09Merge "fix obj_int_extract for MinGW"Johann
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-08Fix an unused variable warning.Ralph Giles
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
2011-03-08fix obj_int_extract for MinGWJohann
failed to find headers in the source directory output to stdout instead of a hardcoded file MinGW doesn't support _sopen_s _fstat catches non-existant files Change-Id: I24e0aacc6f6f26e6bcfc25f9ee7821aa3c8cc7e7
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 "64bit mach-o support"Johann
2011-03-08Merge "Add zero offset checking in SSE2 sub-pixel filter function"Yunqing Wang