summaryrefslogtreecommitdiff
path: root/vp8/encoder/x86
AgeCommit message (Collapse)Author
2018-03-04move vp8 encodeopt to block_error_sse2Johann
The file contains sse2 implementations related to various block error functions. Update the .mk file to include it only when sse2 is requested. BUG=webm:1500 Change-Id: I67b766faed425fd7a96db8541b13c69670b65fec
2017-12-01explicitly label .text sectionsJohann
nasm should infer .text but does not for windows: https://bugzilla.nasm.us/show_bug.cgi?id=3392451 Change-Id: Ib195465e5f33405f5ff61c4cf88aa2a72640cacb
2017-09-19temporal_filter_apply_sse2.asm: add ':' to labelJames Zern
quiets nasm warning: label alone on a line without a colon might be in error BUG=webm:1462 Change-Id: I660407ca60e8c9a810dba9d76afb65852029a29c
2017-08-11Rename vp8 quantize fileJohann
BUG=webm:1457 Change-Id: Ie8fae018ad8417724fde087055b90228850d631d
2017-06-21vp[89],vpx_dsp: add missing includesJames Zern
quiets -Wmissing-prototypes Change-Id: I841cfc019d592f2bc6b3fec5818051a31f4c53b5
2017-06-21vp8: remove vp8_fast_quantize_b_mmxJames Zern
and vp8_fast_quantize_b_impl_mmx; this was never enabled in rtcd an sse2 version exists so there isn't much reason to keep a mmx implementation around. Change-Id: I8b3ee7f46ba194ffa0d0a6225a0f299f2a4dea90
2016-09-29vp8: remove mmx functionsJohann
When they have sse2 equivalents. Change-Id: I158f631a3bcecba57b36093ac10114b1904767a7
2016-09-29Rename _xmm functions to _sse2Johann
Avoid the extra level of indirection/confusion. Change-Id: I0555f639d67835df9fb7dac0c75085e9954805f1
2016-07-15vp8: apply clang-formatclang-format
Change-Id: I7605b6678014a5426ceb45c27b54885e0c4e06ed
2015-08-18Rename vp8 quantize.cJohann
Move it to vp8_quantize.c and make sure to use the full path for all vp8 includes of quantize.h Change-Id: I284651ff681707385f4924ea7db1541905c1624a
2015-08-07Replace VP8 SSIM with VP9 derived vpx_dsp SSIM.Alex Converse
Change-Id: Ic61f30af12d1b01c1d5adc4e08bc20e20ad38027
2015-07-07Use 'unsigned long' for _BitScanReverse parameterJohann
New clang warnings in chromium reveal an incompatible pointer being passed. Change-Id: I0d893993726ecf899f467c16175bfb8c76329731 https://code.google.com/p/chromium/issues/detail?id=504696
2015-07-07Unify subtract function used in VP8/9Jingning Han
This commit replaces the vp8_ prefixed subtract function with the common vpx_subtract_block function. It removes redundant SIMD optimization codes and unit tests. Change-Id: I42e086c32c93c6125e452dcaa6ed04337fe028d9
2015-05-07replace DECLARE_ALIGNED_ARRAY w/DECLARE_ALIGNEDJames Zern
this macro was used inconsistently and only differs in behavior from DECLARE_ALIGNED when an alignment attribute is unavailable. this macro is used with calls to assembly, while generic c-code doesn't rely on it, so in a c-only build without an alignment attribute the code will function as expected. Change-Id: Ie9d06d4028c0de17c63b3a27e6c1b0491cc4ea79
2015-04-28vpx_mem: remove vpx_memsetJames Zern
vestigial. replace instances with memset() which they already were being defined to. Change-Id: Ie030cfaaa3e890dd92cf1a995fcb1927ba175201
2015-04-03vp8_regular_quantize_b_sse2: remove dead initJames Zern
Change-Id: Ide5eefadbb3cab38743a69f744a003abb37a6506
2014-10-22vp9_denoiser_sse2.c: improve code style.JackyChen
denoiser_sse2.c: fix typos in comment. Change-Id: Ic0fb102331b0e533c058da3cab1fbc30de9a0070
2014-07-08Move abs() to where it is effectiveJohann
vp8/encoder/x86/denoising_sse2.c:35:10: error: taking the absolute value of unsigned type 'unsigned int' has no effect [-Werror,-Wabsolute-value] Change-Id: I749ba8e6f55dbd9b822bfd4260a8397554f5e524
2014-06-27denoising_sse2.c visual studio warnings/errors fixScott LaVarnway
Fixed reported vs warnings/errors. Change-Id: Ia4c44d64a69dbd9e1738c6ebb48be29582b7e1d3
2014-06-26Merge "vp8: Add temporal denoising for UV-channel."Marco Paniconi
2014-06-26vp8: Add temporal denoising for UV-channel.Scott LaVarnway
C version and sse2 version, and off by default. For the test clip used, the sse2 performance improved by ~5.6% Change-Id: Ic2d815968849db51b9d62085d7a490d0e01574f6
2014-06-19Remove labels from quantizeJohann
Use break instead of goto for early exit. Unbreaks Visual Studio builds. Change-Id: I96dee43a3c82145d4abe0d6a99af6e6e1a3991b5
2014-06-18sse4 regular quantizeJohann
Change-Id: Ibd95df0adf9cc9143006ee9032b4cb2ebfd5dd1b
2014-05-27Merge "Fix to reduce block artifacts from vp8 temporal denoiser."Marco Paniconi
2014-05-21Fix to reduce block artifacts from vp8 temporal denoiser.Marco Paniconi
If the denoiser filter causes too big a change in the absolute pixel difference (between source and denoised signal), the block is not denoised, which can cause visual block artifacts. This change applies a second adjustment to the temporal filter to effectively allow for a (weaker) denoising for such blocks (which can keep the absolute differnence within the tolerance range in most cases). This helps to reduce some of the block artifacts from the denoising. The additional cost of re-applying the filter to this set of blocks is low, as the percentage of blocks per frame (with too big a change in absolute pixel difference) is typically small, 2-5%. Change-Id: Id9b56e59e33f3c22e79d2f89f763bdde246fdf3f
2014-05-21Renames x86_64 specific asm filesDeb Mukherjee
Renames all x86_64 specific assembly files to consistently end in _x86_64.asm. This will be useful for build systems to handle these files differently. All new 64-bit specific assembly files should use the new naming convention. Change-Id: I36c89584967c82ffc4088b1b5044ac15d2bb7536
2014-05-16vp8: Add increase_denoising parameter to denoiser.Marco Paniconi
Change-Id: I96ed73e109c4f89dd06f3583cf7ecf9277401fae
2014-05-14Merge "Revert "Revert "Remove struct params from vp8_denoiser_filter"""Marco Paniconi
2014-05-14Revert "Revert "Remove struct params from vp8_denoiser_filter""Marco Paniconi
This reverts commit 06e6d56fa138d84759e8bdfd4c721ead000051b4 Change-Id: If95598385b693945d6b144d03b6da8f6a57dac98
2014-05-08Use __asm__ __volatile__ with gccJohann
Some version of clang refuse 'asm volatile' Change-Id: I79d909ac8ae3c04b608f20c6f10fa79b7f9fc8e0
2014-05-07Merge "Revert "Remove struct params from vp8_denoiser_filter""Frank Galligan
2014-05-07Revert "Remove struct params from vp8_denoiser_filter"Frank Galligan
This reverts commit e516a42527098a26798dbb3663a5bcdd38793839 Change-Id: I7c78712acc737ad5f580181cdab3aa76b23f3ca5
2014-05-05Merge "Remove struct params from vp8_denoiser_filter"Scott LaVarnway
2014-05-02Remove struct params from vp8_denoiser_filterScott LaVarnway
This eliminates the asm_offsets dependency for future all-assembly versions of this function. Change-Id: I3227073ecfcb8ee6e593934fab941e9081abdda0
2014-05-02Remove asm_offsets dependency in quantize_b_ssse3Johann
Replace it with some intrinsic code and inline assembly. Change-Id: I81b4df146db3d01039059be7dae31083e2943b97
2013-04-24Rename quantize_sse2_intrinsics.cJohann
The only reason for the _intrinsics part of the file name was for the interim period where only one of the functions was redone and the base file name was the same. Change-Id: I7851154f1633d48821bee885b1cadb2148e65a23
2013-03-27Merge branch 'master' into experimentalJohn Koleszar
Pick up VP8 encryption, quantization changes, and some fixes to vpxenc Conflicts: test/decode_test_driver.cc test/decode_test_driver.h test/encode_test_driver.cc vp8/vp8cx.mk vpxdec.c vpxenc.c Change-Id: I9fbcc64808ead47e22f1f22501965cc7f0c4791c
2013-03-22Remove gcc-specific __label__Shimon Doodkin
Use unique names and ditch the local label declaration. Visual Studio does not support it. https://code.google.com/p/webm/issues/detail?id=561 Change-Id: Ica643cf5abb56ee6156371f5bf73fdeb58014422
2013-03-04Rename quantize_sse2.c to quantize_sse2_intrinsics.c to avoid collision.Ronald S. Bultje
Change-Id: I5637d491eb6a9b7633f72e03fd9df72131eeb121
2013-03-01Merge "Use intrinsics for sse2 regular quantize"Johann
2013-02-28Use intrinsics for sse2 regular quantizeJohann
Remove dependency of this function on asm_offsets. ssse3/sse4 next. Change quant_shift calculation so it be done using SIMD. Pre-calculate as much as possible to simplify EOB selection. Take advantage of qcoeff being zero'd by tying the if statements together. Speed parity with previous implementation with gcc x86_64 linux Change-Id: Ife97556a1eca3a74b09def1a3d04084974dff1fb
2013-02-28Merge "vp8 fast quantizer with intrinsics"Johann
2013-02-27Fix --as=nasm compatibility for new asm code.Jan Kratochvil
s/movd/movq/ Change-Id: Id1a56de91551f8dc796f14f1056c565dfc1ba626
2013-02-26vp8 fast quantizer with intrinsicsJohann
Reduce dependency on offsets file by using intrinsics. Disassembly shows improvements over previous assembly specifically in register management, preloading, and {pro,epi}log. Speed change is within margin of error. Change-Id: I8131b4b4d62bc092407fe847bfaa8f2c0e1384ff
2013-01-31Add support for x64 and win64 yasm flags.Frank Galligan
Some projects must define only win64 for Windows 64bit builds using yasm. Change-Id: I1d09590d66a7bfc8b4412e1cc8685978ac60b748
2012-12-20add emmintrin_compat.h for builds with gcc < 4James Zern
Change-Id: If7822e6fcd0d3568b934032322b19ba3e401df26
2012-11-15support building vp8 and vp9 into a single libJohn Koleszar
Change-Id: Ib8f8a66c9fd31e508cdc9caa662192f38433aa3d
2012-11-07Rough merge of master into experimentalJohn Koleszar
Creates a merge between the master and experimental branches. Fixes a number of conflicts in the build system to allow *either* VP8 or VP9 to be built. Specifically either: $ configure --disable-vp9 $ configure --disable-vp8 --disable-unit-tests VP9 still exports its symbols and files as VP8, so that will be resolved in the next commit. Unit tests are broken in VP9, but this isn't a new issue. They are fixed upstream on origin/experimental as of this writing, but rebasing this merge proved difficult, so will tackle that in a second merge commit. Change-Id: I2b7d852c18efd58d1ebc621b8041fe0260442c21
2012-11-01Rename vp8/ codec directory to vp9/.Ronald S. Bultje
Change-Id: Ic084c475844b24092a433ab88138cf58af3abbe4
2012-11-01Remove vp8 in local symbols.Ronald S. Bultje
For non-static functions, change the prefix to vp9_. For static functions, remove the prefix. Also fix some comments, remove unused code or unused function prototypes. Change-Id: I1f8be05362f66060fe421c3d4c9a906fdf835de5