Age | Commit message (Collapse) | Author |
|
Move it to vp8_quantize.c and make sure to
use the full path for all vp8 includes of quantize.h
Change-Id: I284651ff681707385f4924ea7db1541905c1624a
|
|
Change-Id: Ic61f30af12d1b01c1d5adc4e08bc20e20ad38027
|
|
New clang warnings in chromium reveal an incompatible pointer being
passed.
Change-Id: I0d893993726ecf899f467c16175bfb8c76329731
https://code.google.com/p/chromium/issues/detail?id=504696
|
|
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
|
|
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
|
|
vestigial. replace instances with memset() which they already were being
defined to.
Change-Id: Ie030cfaaa3e890dd92cf1a995fcb1927ba175201
|
|
Change-Id: Ide5eefadbb3cab38743a69f744a003abb37a6506
|
|
denoiser_sse2.c: fix typos in comment.
Change-Id: Ic0fb102331b0e533c058da3cab1fbc30de9a0070
|
|
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
|
|
Fixed reported vs warnings/errors.
Change-Id: Ia4c44d64a69dbd9e1738c6ebb48be29582b7e1d3
|
|
|
|
C version and sse2 version, and off by default.
For the test clip used, the sse2 performance improved by ~5.6%
Change-Id: Ic2d815968849db51b9d62085d7a490d0e01574f6
|
|
Use break instead of goto for early exit. Unbreaks Visual Studio
builds.
Change-Id: I96dee43a3c82145d4abe0d6a99af6e6e1a3991b5
|
|
Change-Id: Ibd95df0adf9cc9143006ee9032b4cb2ebfd5dd1b
|
|
|
|
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
|
|
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
|
|
Change-Id: I96ed73e109c4f89dd06f3583cf7ecf9277401fae
|
|
|
|
This reverts commit 06e6d56fa138d84759e8bdfd4c721ead000051b4
Change-Id: If95598385b693945d6b144d03b6da8f6a57dac98
|
|
Some version of clang refuse 'asm volatile'
Change-Id: I79d909ac8ae3c04b608f20c6f10fa79b7f9fc8e0
|
|
|
|
This reverts commit e516a42527098a26798dbb3663a5bcdd38793839
Change-Id: I7c78712acc737ad5f580181cdab3aa76b23f3ca5
|
|
|
|
This eliminates the asm_offsets dependency for future
all-assembly versions of this function.
Change-Id: I3227073ecfcb8ee6e593934fab941e9081abdda0
|
|
Replace it with some intrinsic code and inline assembly.
Change-Id: I81b4df146db3d01039059be7dae31083e2943b97
|
|
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
|
|
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
|
|
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
|
|
Change-Id: I5637d491eb6a9b7633f72e03fd9df72131eeb121
|
|
|
|
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
|
|
|
|
s/movd/movq/
Change-Id: Id1a56de91551f8dc796f14f1056c565dfc1ba626
|
|
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
|
|
Some projects must define only win64 for Windows 64bit builds using
yasm.
Change-Id: I1d09590d66a7bfc8b4412e1cc8685978ac60b748
|
|
Change-Id: If7822e6fcd0d3568b934032322b19ba3e401df26
|
|
Change-Id: Ib8f8a66c9fd31e508cdc9caa662192f38433aa3d
|
|
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
|
|
Change-Id: Ic084c475844b24092a433ab88138cf58af3abbe4
|
|
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
|
|
This change encompasses VP8_PTR, VP8_COMP, VP8D_COMP, VP8_COMMON,
VP8Decompressor and VP8Common.
Change-Id: I514ef4ad4e682370f36d656af1c09ee20da216ad
|
|
For local symbols, make them static instead.
Change-Id: I13d60947a46f711bc8991e16100cea2a13e3a22e
|
|
Change-Id: Ie2e3652591b010ded10c216501ce24fd95d0aec5
|
|
Remove the fdct invoke macro calls
Change-Id: Ica2431c655819fa012133ee7abc75a16761e5fd6
|
|
Change-Id: I321280abcf48f3dc16e194d29bde2bd3baec6006
|
|
Change-Id: Idd2722a538423b451e1e3495f89a7141480493d6
|
|
This reinstates reverted commit 2113a831575d81faeadd9966e256d58b6b2b1633
Change-Id: I9a9af13497d1e58d4f467e3e083fddf06b1b786c
|
|
The denoiser function was modified to reduce the computational
complexity.
1. The denoiser c function modification:
The original implementation calculated pixel's filter_coefficient
based on the pixel value difference between current raw frame and last
denoised raw frame, and stored them in lookup tables. For each pixel c,
find its coefficient using
filter_coefficient[c] = LUT[abs_diff[c]];
and then apply filtering operation for the pixel.
The denoising filter costed about 12% of encoding time when it was
turned on, and half of the time was spent on finding coefficients in
lookup tables. In order to simplify the process, a short cut was taken.
The pixel adjustments vs. pixel diff value were calculated ahead of time.
adjustment = filtered_value - current_raw
= (filter_coefficient * diff + 128) >> 8
The adjustment vs. diff curve becomes flat very quick when diff increases.
This allowed us to use only several levels to get a close approximation
of the curve. Following the denoiser algorithm, the adjustments are
further modified according to how big the motion magnitude is.
2. The sse2 function was rewritten.
This change made denoiser filter function 3x faster, and improved the
encoder performance by 7% ~ 10% with the denoiser on.
Change-Id: I93a4308963b8e80c7307f96ffa8b8c667425bf50
|
|
Merges this experiment in to make it easier to run tests on
filter precision, vectorized implementation etc.
Also removes an experimental filter.
Change-Id: I1e8706bb6d4fc469815123939e9c6e0b5ae945cd
|