summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2012-01-30RTCD: add FDCT functionsJohn Koleszar
This commit continues the process of converting to the new RTCD system. Change-Id: I3f9c07db65eb206f6363d21bdb80e871570da767
2012-01-30RTCD: add variance functionsJohn Koleszar
This commit continues the process of converting to the new RTCD system. Change-Id: Ie5c1aa480637e98dc3918fb562ff45c37a66c538
2012-01-30RTCD: add subpixel functionsJohn Koleszar
This commit continues the process of converting to the new RTCD system. Change-Id: I6c519ab61e4f4e0ebcc796f2df061f945c48cefe
2012-01-30RTCD: add postproc functionsJohn Koleszar
This commit continues the process of converting to the new RTCD system. Change-Id: If54eb5cb5d1b0cac6c4c0633a9e99c93ca860ba2
2012-01-30RTCD: add recon functionsJohn Koleszar
This commit continues the process of converting to the new RTCD system. Change-Id: I9bfcf9bef65c3d4ba0fb9a3e1532bad1463a10d6
2012-01-30RTCD: add remaining IDCT functionsJohn Koleszar
This commit continues the process of converting to the new RTCD system. Change-Id: I03c4dbf30dfd3558b0e256ff9d3ff4c012aadc80
2012-01-30RTCD: add loopfilter functionsJohn Koleszar
This commit continues the process of converting to the new RTCD system. Change-Id: Ic8a4047d72ff3a54ec98977dd90e70c13213db71
2012-01-30New RTCD implementationJohn Koleszar
This is a proof of concept RTCD implementation to replace the current system of nested includes, prototypes, INVOKE macros, etc. Currently only the decoder specific functions are implemented in the new system. Additional functions will be added in subsequent commits. Overview: RTCD "functions" are implemented as either a global function pointer or a macro (when only one eligible specialization available). Functions which have RTCD specializations are listed using a simple DSL identifying the function's base name, its prototype, and the architecture extensions that specializations are available for. Advantages over the old system: - No INVOKE macros. A call to an RTCD function looks like an ordinary function call. - No need to pass vtables around. - If there is only one eligible function to call, the function is called directly, rather than indirecting through a function pointer. - Supports the notion of "required" extensions, so in combination with the above, on x86_64 if the best function available is sse2 or lower it will be called directly, since all x86_64 platforms implement sse2. - Elides all references to functions which will never be called, which could reduce binary size. For example if sse2 is required and there are both mmx and sse2 implementations of a certain function, the code will have no link time references to the mmx code. - Significantly easier to add a new function, just one file to edit. Disadvantages: - Requires global writable data (though this is not a new requirement) - 1 new generated source file. Change-Id: Iae6edab65315f79c168485c96872641c5aa09d55
2012-01-27Merge Duclair release into master branchJohn Koleszar
Change-Id: Ibf577972e8cd10488d44385ff74f136a07466c0c
2012-01-27Merge "Hook up VP8D_GET_LAST_REF_USED"John Koleszar
2012-01-27Update CHANGELOG for v1.0.0 (Duclair) releaseJohn Koleszar
Change-Id: I64472f717e5ef3672e1032b7ee24e73c4d0fff1f
2012-01-27Update AUTHORSJohn Koleszar
Change-Id: I5b0578f126308b4ec65d72553cc247b8e29c21a9
2012-01-27Update .mailmapJohn Koleszar
Change-Id: Ie7d94a884c81fab4d5dc48833a57ec2283e61fc2
2012-01-27Hook up VP8D_GET_LAST_REF_USEDJohn Koleszar
Commit 892e23a5b introduced support for the VP8D_GET_LAST_REF_USED, but missed the mapping of the control id to the underlying function, so it was unavailable to applications. In addition, the underlying function vp8_references_buffer() is moved from common/postproc.c to decoder/onyxd_if.c as postproc.c is not built in all configurations. Change-Id: I426dd254e7e6c4c061b70d729b69a6c384ebbe44
2012-01-26Merge changes I17e1a348,Iad710941John Koleszar
* changes: Correct clamping in use of vp8_find_near_mvs() Revert "Multithreaded encoder, late sync loopfilter"
2012-01-26Correct clamping in use of vp8_find_near_mvs()John Koleszar
Commit e06c242ba introduced a change to call vp8_find_near_mvs() only once instead of once per reference frame by observing that the only effect that the frame had was on the bias applied to the motion vector. By keeping track of the sign_bias value, the mv to use could be flip-flopped by multiplying its components by -1. This behavior was subtley wrong in the case when clamping was applied to the motion vectors found by vp8_find_near_mvs(). A motion vector could be in-bounds with one sign bias, but out of bounds after inverting the sign, or vice versa. The clamping must match that done by the decoder. This change modifies vp8_find_near_mvs() to remove the clamping from that function. The vp8_pick_inter_mode() and vp8_rd_pick_inter_mode() functions instead track the correctly clamped values for both bias values, switching between them by simple assignment. The common clamping and inversion code is in vp8_find_near_mvs_bias() Change-Id: I17e1a348d1643497eca0be232e2fbe2acf8478e1
2012-01-26Rename save_neon_reg.asm as save_reg_neon.asmAttila Nagy
Easier to filter out all NEON asm. Change-Id: I0022dae8321a9608e864b09d4181414c5fff4610
2012-01-24Revert "Multithreaded encoder, late sync loopfilter"John Koleszar
This commit is incomplete, as it does not synchronize the loop filter before returning a handle to the reconstructed frame in vpx_codec_get_preview_frame(), which can cause (false?) failures when running the test_reconstruct_buffer test. This may be related to a bug that does cause visible artifacts, which is also under investigation. This reverts commit 380d64ecb19984a1466e727244a41445ae919060. Change-Id: Iad710941e7731d44fc2bde63bc63d6763cc4629e
2012-01-23Merge "Disconnect ARM tgt_isa from dsp extensions"Fritz Koenig
2012-01-20Disconnect ARM tgt_isa from dsp extensionsFritz Koenig
A processor with ARMv7 instructions does not necessarily have NEON dsp extensions. This CL has the added side effect of allowing the ability to enable/disable the dsp extensions cleanly. Change-Id: Ie1e879b8fe131885bc3d4138a0acc9ffe73a36df
2012-01-20Merge "Overhauling the thresholds and mixing proportions for mfqe ↵Deb Mukherjee
postprocessor."
2012-01-20Overhauling the thresholds and mixing proportions for mfqe postprocessor.Deb Mukherjee
Makes the thresholds for the multiframe quality enhancement module depend on the difference between the base quantizers. Also modifies the mixing function to weigh the current low quality frame less if the difference in quantizer is large. With the above modifications mfqe works well for both scalable patterns as well as low quality key frames. Change-Id: If24e94f63f3c292f939eea94f627e7ebfb27cb75
2012-01-18Merge "Simplify an assignment statement"Jeff Faust
2012-01-18Merge "Remove duplicate line in parameter parsing."John Koleszar
2012-01-18Merge "get_plane_pointers: use u/v planes consistently"John Koleszar
2012-01-18get_plane_pointers: use u/v planes consistentlyJohn Koleszar
The prior commit accidentally used the u plane where it should have used the v plane. Change-Id: Ib6c8443b99061536389f05ac25b8e0a307ace637
2012-01-18Simplify an assignment statementJeff Faust
Separated a double assignment that looked suspiciously like an assignment and equality typo. Change-Id: I7813979e9d7ea2539afb3c8ae6074f9df5ebdf52
2012-01-18Merge "Add makefile for building libvpx for Android."Fritz Koenig
2012-01-18Merge "vp8d - valgrind warnings in mb post processor"Jim Bankoski
2012-01-18Add makefile for building libvpx for Android.Fritz Koenig
Android.mk file for using the Android NDK build system to compile. Adds option for SDK path to use the compiler that comes with android for testing compiler compliance. Change-Id: I5fd17cb76e3ed631758d3f392e62ae1a050d0d10
2012-01-18Merge changes I1ebe76aa,Ia079b52bJohn Koleszar
* changes: rdopt/pickinter: factor out some common setup rdopt: remove unused frame_lf_or_gf
2012-01-18Merge "Modifying the base q propagation in the mfqe post processing filter ↵Deb Mukherjee
in a way such that when there is a single bad frame, the post-processing is applied not only to just that frame but a few subsequent frames as well."
2012-01-17vp8d - valgrind warnings in mb post processorJim Bankoski
Solved by extending the border in the postproc buffer as necessary Change-Id: Ic3f61397fe5bc8e4db6fc78050b0b160bd0aee86
2012-01-17Remove duplicate line in parameter parsing.Fritz Koenig
resize_down_thresh was parsed and set twice. Change-Id: I2685a6c3c825371f79ae94d305bcb50185a12dac
2012-01-17Modifying the base q propagation in the mfqe post processingDeb Mukherjee
filter in a way such that when there is a single bad frame, the post-processing is applied not only to just that frame but a few subsequent frames as well. Change-Id: Iba5d9896eed77244eb76b4a74692a93f8ecff634
2012-01-13Fixed bugs in multi-layer code related to changing paramsAdrian Grange
When running multi-layer (ML) encodes and dynamically changing coding parameters on the fly (e.g. frame duration/rate, bandwidths allocated to each layer) the encoder would not produce sensible output. In certain cases the rate targeting would be hideously inaccurate. These fixes make it possible to change these coding parameters correctly and to maintain accurate control of the rate targeting. I also added the specification of the input timebase into the test program, vp8_scalable_patterns.c. Patch 2: Moved declaration to appease MS compiler) Change-Id: Ic8bb5a16daa924bb64974e740696e040d07ae363
2012-01-11rdopt/pickinter: factor out some common setupJohn Koleszar
Add new get_predictor_pointers() and get_reference_search_order() functions for code shared between the two implementations. Change-Id: I1ebe76aa8f168b1f5cfabc00d05d8f19a0d4d207
2012-01-11rdopt: remove unused frame_lf_or_gfJohn Koleszar
This flag was set but unused. Change-Id: Ia079b52b88ffbe3b16fdbde4b84e2b87304eaa13
2012-01-10Allowing the mfqe post-processing filter to be used in conjunctionDeb Mukherjee
with deblock or demacroblock filters. When --mfqe is used together with --demacroblock or --deblock, mfqe is applied first and then demacroblock/deblock is applied to the mfqe result. Change-Id: Id83ee01f1b4a33a116f071dcf26d59c7f3497c32
2012-01-10Merge "fix: roundoff initializer is not a constant"John Koleszar
2012-01-10Merge "Remove iwmmx target."John Koleszar
2012-01-10fix: roundoff initializer is not a constantJames Berry
precision used in initialization of roundoff is not a constant updated to use #define MFQE_PRECISION 4 Change-Id: If2fc3d3d633d58a7f4ab34d258c232ec1e5f0a79
2012-01-10Remove iwmmx target.Fritz Koenig
No optimized code present for target. Change-Id: If99bb37491b15c1093e8851430c060cb2466898c
2012-01-10vp8d - function to check if a reference frame is used.Jim Bankoski
Change-Id: Id683b4d7f46ffa99145fc4b824c7232ab4182f21
2012-01-09Remove armv4 optimized scaler code.Fritz Koenig
Code was from a time when the compiler was not good at optimizing. Compilers are better and instruction sets have increased to make this code obsolete. Change-Id: I8d261371685247465eb4aa00bdcecc9fe1784219
2012-01-09Merge "Multiframe quality enhancement postprocessing"Deb Mukherjee
2012-01-09Merge "Remove symbian target and associated files."Johann
2012-01-06Remove symbian target and associated files.Fritz Koenig
These targets are no longer maintained. Change-Id: I923103006c439849fc015c1ac45ee7a5443ebc6d
2012-01-06Merge "Reduce the default kf_max_dist to 128."James Zern
2012-01-06Merge "Reduced the size of Y1Dequant and friends to [128][2]"John Koleszar