summaryrefslogtreecommitdiff
path: root/vpx_scale
Commit message (Collapse)AuthorAgeFilesLines
* RTCD: finalize removal of old RTCD systemJohn Koleszar2012-01-301-1/+1
| | | | | | | | This is the final commit in the series converting to the new RTCD system. It removes the encoder csystemdependent files and the remaining global function pointers that didn't conform to the old RTCD system. Change-Id: I9649706f1bb89f0cbf431ab0e3e7552d37be4d8e
* Disconnect ARM tgt_isa from dsp extensionsFritz Koenig2012-01-204-8/+8
| | | | | | | | | 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
* Remove armv4 optimized scaler code.Fritz Koenig2012-01-092-787/+0
| | | | | | | | | 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
* Remove symbian target and associated files.Fritz Koenig2012-01-065-207/+0
| | | | | | These targets are no longer maintained. Change-Id: I923103006c439849fc015c1ac45ee7a5443ebc6d
* Fix incorrect pointer definitionJohann2011-10-245-58/+19
| | | | | | | Global function pointers can not be defined in header files. Restructure vpx_scale pointer configuration. Change-Id: I6f568a263ad770d32f530abad6007f990fd1003a
* Don't copy borders for loop_filter_pickJohann2011-10-1910-561/+195
| | | | | | | During the _pick only the Y plane is examined. In addition, data beyond the borders of the frame is not read. Change-Id: Ic549adfca70fc6e0b55f8aab0efe81f0afac89f9
* Fix: NEON copy/extend frame for small sizesAttila Nagy2011-10-174-13/+25
| | | | | | | NEON version of copyframeyonly, extendframeborders, copy_frame_func were not working for plane stride < 128 and/or y_width < 128. Change-Id: Id6c2e6c795274da0c90134b15c0d5f62d1b17a6c
* Merge "Replace vpx_ports/config.h with vpx_config.h"Johann2011-09-222-2/+2
|\
| * Replace vpx_ports/config.h with vpx_config.hAttila Nagy2011-09-222-2/+2
| | | | | | | | | | | | Just a clean-up. Change-Id: Iea5b6dc925dcfa7db548bc1ab1a13d26ed5a2c9a
* | Move neon only arm functions under arm/neon.Fritz Koenig2011-09-202-1/+1
|/ | | | | | | These files don't contain generic arm code, so should only be compiled by neon. Change-Id: Ie712823aa04d4235e7cfe7a3b725e73ee4c3e564
* update extend frame bordersJohann2011-08-021-343/+60
| | | | | | | | | | the neon code made several assumptions which were broken by a recent change: https://review.webmproject.org/2676 update the code with new assumptions and guard them with a compile time assert Change-Id: I32a8378030759966068f34618d7b4b1b02e101a0
* Increase chrow row alignment to 16 bytes.Timothy B. Terriberry2011-07-201-10/+18
| | | | | | | | | | | | | | | | | This is done by expanding luma row to 32-byte alignment, since there is currently a bunch of code that assumes that uv_stride == y_stride/2 (see, for example, vp8/common/postproc.c, common/reconinter.c, common/arm/neon/recon16x16mb_neon.asm, encoder/temporal_filter.c, and possibly others; I haven't done a full audit). It also uses replaces the hardcoded border of 16 in a number of encoder buffers with VP8BORDERINPIXELS (currently 32), as the chroma rows start at an offset of border/2. Together, these two changes have the nice advantage that simply dumping the frame memory as a contiguous blob produces a valid, if padded, image. Change-Id: Iaf5ea722ae5c82d5daa50f6e2dade9de753f1003
* Merge "Better allocate yuv buffers."Fritz Koenig2011-07-131-17/+19
|\
| * Better allocate yuv buffers.Fritz Koenig2011-07-131-17/+19
| | | | | | | | | | | | | | | | Previously allocated more memory than necessary for yuv buffers. This makes it harder to track bugs with reading uninitialized data. Change-Id: I510f7b298d3c647c869be6e5d51608becc63cce9
* | Remove rotting NDS_NITRO code.Fritz Koenig2011-07-121-221/+0
|/ | | | | | Code has not been used and is no longer relevant. Change-Id: I38590513da7c7a436804ff8a1a3805d9697f575d
* Do not copy data between encoder reference buffers.Attila Nagy2011-04-201-0/+1
| | | | | | | | | Golden and ALT reference buffers were refreshed by copying from the new buffer. Replaced this by index manipulation. Also moved all the reference frame updates to one function for easier tracking. Change-Id: Icd3e534e7e2c8c5567168d222e6a64a96aae24a1
* Increase static linkage, remove unused functionsJohn Koleszar2011-03-173-25/+3
| | | | | | | | | | | | | | | | A large number of functions were defined with external linkage, even though they were only used from within one file. This patch changes their linkage to static and removes the vp8_ prefix from their names, which should make it more obvious to the reader that the function is contained within the current translation unit. Functions that were not referenced were removed. These symbols were identified by: $ nm -A libvpx.a | sort -k3 | uniq -c -f2 | grep ' [A-Z] ' \ | sort | grep '^ *1 ' Change-Id: I59609f58ab65312012c047036ae1e0634f795779
* Avoid misspelling "dependent".Gaute Strokkenes2011-03-154-5/+5
| | | | Change-Id: Ib0c280e1fcfd977e11e4390807b2c8077a87500c
* clean up unused filesJohn Koleszar2011-02-1819-9723/+0
| | | | | | Removed a number of files that were unused or little-used. Change-Id: If9ae5e5b11390077581a9a879e8a0defe709f5da
* Remove redundant ptr checks in calls to vpx_freeJames Zern2011-02-153-18/+12
| | | | | | | vpx_free if used contains this check. If replaced, well behaved free will behave similarly. Change-Id: I25483aaa8b39255b9a8cf388d6e5eaa20a908ae1
* clarify *_offsets.asm differencesJohann2011-02-084-4/+4
| | | | | | | | it's difficult to mux the *_offsets.c files because of header conflicts. make three instead, name them consistently and partititon the contents to allow building them as required. Change-Id: I8f9768c09279f934f44b6c5b0ec363f7943bb796
* move one of the offset filesJohann2011-02-074-4/+4
| | | | | | | common/arm/vpx_asm_offsets moves up a level. prepare for muxing with encoder/arm/vpx_vp8_enc_asm_offsets Change-Id: I89a04a5235447e66571995c9d9b4b6edcb038e24
* Implement error tracking in the decoderHenrik Lundin2011-01-192-0/+4
| | | | | | | | | | | | | | A new vpx_codec_control called VP8D_GET_FRAME_CORRUPTED. The output from the function is non-zero if the last decoded frame contains corruption due to packet losses. The decoder is also modified to accept encoded frames of zero length. A zero length frame indicates to the decoder that one or more frames have been completely lost. This will mark the last decoded reference buffer as corrupted. The data pointer can be NULL if the length is zero. Change-Id: Ic5902c785a281c6e05329deea958554b7a6c75ce
* Eliminate more warnings.Timothy B. Terriberry2010-10-275-97/+98
| | | | | | | | | | | | | | | | | | | | | | | | | | This eliminates a large set of warnings exposed by the Mozilla build system (Use of C++ comments in ISO C90 source, commas at the end of enum lists, a couple incomplete initializers, and signed/unsigned comparisons). It also eliminates many (but not all) of the warnings expose by newer GCC versions and _FORTIFY_SOURCE (e.g., calling fread and fwrite without checking the return values). There are a few spurious warnings left on my system: ../vp8/encoder/encodemb.c:274:9: warning: 'sz' may be used uninitialized in this function gcc seems to be unable to figure out that the value shortcut doesn't change between the two if blocks that test it here. ../vp8/encoder/onyx_if.c:5314:5: warning: comparison of unsigned expression >= 0 is always true ../vp8/encoder/onyx_if.c:5319:5: warning: comparison of unsigned expression >= 0 is always true This is true, so far as it goes, but it's comparing against an enum, and the C standard does not mandate that enums be unsigned, so the checks can't be removed. Change-Id: Iaf689ae3e3d0ddc5ade00faa474debe73b8d3395
* Add runtime CPU detection support for ARM.Timothy B. Terriberry2010-10-251-6/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The primary goal is to allow a binary to be built which supports NEON, but can fall back to non-NEON routines, since some Android devices do not have NEON, even if they are otherwise ARMv7 (e.g., Tegra). The configure-generated flags HAVE_ARMV7, etc., are used to decide which versions of each function to build, and when CONFIG_RUNTIME_CPU_DETECT is enabled, the correct version is chosen at run time. In order for this to work, the CFLAGS must be set to something appropriate (e.g., without -mfpu=neon for ARMv7, and with appropriate -march and -mcpu for even earlier configurations), or the native C code will not be able to run. The ASFLAGS must remain set for the most advanced instruction set required at build time, since the ARM assembler will refuse to emit them otherwise. I have not attempted to make any changes to configure to do this automatically. Doing so will probably require the addition of new configure options. Many of the hooks for RTCD on ARM were already there, but a lot of the code had bit-rotted, and a good deal of the ARM-specific code is not integrated into the RTCD structs at all. I did not try to resolve the latter, merely to add the minimal amount of protection around them to allow RTCD to work. Those functions that were called based on an ifdef at the calling site were expanded to check the RTCD flags at that site, but they should be added to an RTCD struct somewhere in the future. The functions invoked with global function pointers still are, but these should be moved into an RTCD struct for thread safety (I believe every platform currently supported has atomic pointer stores, but this is not guaranteed). The encoder's boolhuff functions did not even have _c and armv7 suffixes, and the correct version was resolved at link time. The token packing functions did have appropriate suffixes, but the version was selected with a define, with no associated RTCD struct. However, for both of these, the only armv7 instruction they actually used was rbit, and this was completely superfluous, so I reworked them to avoid it. The only non-ARMv4 instruction remaining in them is clz, which is ARMv5 (not even ARMv5TE is required). Considering that there are no ARM-specific configs which are not at least ARMv5TE, I did not try to detect these at runtime, and simply enable them for ARMv5 and above. Finally, the NEON register saving code was completely non-reentrant, since it saved the registers to a global, static variable. I moved the storage for this onto the stack. A single binary built with this code was tested on an ARM11 (ARMv6) and a Cortex A8 (ARMv7 w/NEON), for both the encoder and decoder, and produced identical output, while using the correct accelerated functions on each. I did not test on any earlier processors. Change-Id: I45cbd63a614f4554c3b325c45d46c0806f009eaa
* Use WebM in copyright notice for consistencyJohn Koleszar2010-09-0944-44/+44
| | | | | | | | | Changes 'The VP8 project' to 'The WebM project', for consistency with other webmproject.org repositories. Fixes issue #97. Change-Id: I37c13ed5fbdb9d334ceef71c6350e9febed9bbba
* Remove INLINE/FORCEINLINEJohn Koleszar2010-06-241-4/+4
| | | | | | | These are mostly vestigial, it's up to the compiler to decide what should be inlined, and this collided with certain Windows platform SDKs. Change-Id: I80dd35de25eda7773156e355b5aef8f7e44e179b
* cosmetics: trim trailing whitespaceJohn Koleszar2010-06-1844-88/+88
| | | | | | | | When the license headers were updated, they accidentally contained trailing whitespace, so unfortunately we have to touch all the files again. Change-Id: I236c05fade06589e417179c0444cb39b09e4200d
* gen_scalers: fix 64-bit integer promotion bugJohn Koleszar2010-06-161-2/+3
| | | | | | | | i needs to be treated as signed to get the proper indexing on 64-bit platforms. This behavior was accidentally reverted when fixing an unsigned/signed comparison warning. Change-Id: Ic306d609bdc8de94c8f8ba29c6e45c736101a82e
* LICENSE: update with latest textJohn Koleszar2010-06-0444-176/+220
| | | | Change-Id: Ieebea089095d9073b3a94932791099f614ce120c
* configure: remove HAVE_CONFIG_HJohn Koleszar2010-05-212-6/+2
| | | | | | | This doesn't play well with autotools, and the preprocessor magic is confusing and unhelpful in the vp8-only context. Change-Id: I2fcb57e6eb7876ecb58509da608dc21f26077ff1
* Initial WebM releasev0.9.0John Koleszar2010-05-1846-0/+17885