Commit Graph

2033 Commits

Author SHA1 Message Date
James Zern
5afa7d1f87 vp8_regular_quantize_b_sse2: remove dead init
Change-Id: Ide5eefadbb3cab38743a69f744a003abb37a6506
2015-04-03 16:44:16 -07:00
James Zern
30205e14b7 vp8cx_pick_filter_level*: remove dead inits
Change-Id: I28026b86d03264b9f4e2fc8ac1d3c74aa3954208
2015-04-03 16:44:15 -07:00
James Zern
0c5a140a02 rdopt: remove dead stores
Change-Id: Ia8a20c6751cc6d63c60bb00b99c78faca1e61051
2015-04-03 16:44:14 -07:00
James Zern
04c53d2393 find_next_key_frame: remove dead init & store
Change-Id: I8c7f5b9718ef14e4397a263aa9f52a9edcf7d1cd
2015-04-03 16:43:48 -07:00
Johann
bc98e93b53 Remove PPC build support
There are no functional optimizations for AltiVec/PPC

Change-Id: I6877a7a9739017fe36fc769be22679c65ea99976
2015-04-02 09:13:59 -07:00
Yunqing Wang
d6a2e29028 vp8: fix a bug in the internal PSNR calculation
While CONFIG_INTERNAL_STATS=1, PSNR is calculated while encoding.
The aligned width/height were used mistakenly in the calculation.
This patch fixed it, and used the orignal image width/height.

Change-Id: Iad5334f8693af761b71ebb78f2587db8a3404ecf
2015-03-19 12:56:25 -07:00
Johann
08acc349b3 Remove last remnants of obj_int_extract
Change-Id: Icc7da6027763b5ed7cbfe70ffe271103ead59fe1
2015-03-18 11:06:53 -07:00
Johann
04168d41cb Explicitly include vp8_rtcd.h
When referencing RTCD functions make sure the relevant
header file is included.

Change-Id: Ia0d7112d4aff9b4d8fa94648f0702371b7484031
https://code.google.com/p/webm/issues/detail?id=937
2015-01-29 09:59:16 -08:00
Alex Converse
581731a95f vp8enc: Prevent out of bounds memory access.
Prevent out of bounds access when attempting to increase frame size

Change-Id: I710c40c692802a72963c9680c2125da17f9060a9
2015-01-27 16:44:31 -08:00
Marco
2c6d9c574f vp8: Fix to crash in pick_inter.
Added unittest that triggers the crash without this fix.

Issue: https://code.google.com/p/webm/issues/detail?id=911

Change-Id: If5208ceb210c821891675fdf3d9951ab83d52ae6
2015-01-12 11:53:26 -08:00
Johann
80b344dec5 Silence -Werror=unused-parameter
Cast away remaining issues so that new ones don't get lost in the noise.

Change-Id: Iacd6999b0686ce80f9835730d68db6382690fa92
2014-12-16 12:47:08 -08:00
Marco
af898b56bb Various updates to vp8.
Change-Id: Icc7a816491897107764e4c936288e9000e6319b8
2014-12-03 16:01:28 -08:00
Johann
08ad7e4db5 Correctly initialize "ones" value in neon quantize
By using 0xff for a short it was not setting the high bits. When
comparing the output with vtst to find non-zero elements it was skipping
vaules which had no low bits set such as -512 / 0xFE00.

Using -8191 as the first element of coeff will generate this condition.

BUG=883

Change-Id: Ia1e10fb809d1e7866f28c56769fe703e6231a657
2014-11-20 18:34:45 -08:00
Johann
6eec73a747 Remove asm offset dependencies
The obj_int_extract code is no longer worth maintaining. It creates
significant issues when adapting for different build systems and no
longer offers as significant of a performance benefit due to
improvements in intrinsics.

Source files will remain until the various third-party builds are updated.

The neon fast quantizer has been moved to intrinsics. The armv6 version
has been removed because so few remaining targets require it.

Compilers and processors have improved significantly since the
pack_tokens code was written. The assembly is no longer faster than the
C code.

pack_tokens were the only optimizations for the armv5te targets so the targets
will be removed after the test infrastructure has been updated.

BUG=710

Change-Id: Ic785b167cd9f95eeff31c7c76b7b736c07fb30eb
2014-11-06 16:00:01 -08:00
Johann
c4b3625393 Merge "Remove pair quantization" 2014-11-04 16:29:19 -08:00
Johann
412eaaf090 Merge "vp8 quantization -> intrinsics" 2014-11-04 16:28:46 -08:00
Johann
b4957234af Avoid divide-by-zero in vp8 initialization
Check that the numerator is not zero. If it is, guess 30fps.

Fixes a clang IOC error in the quantize test. It's very unlikely for
this to occur in the wild because the setup in the quantize test is very
nonstandard.

Change-Id: Icdab7b81d4e168d3423e14db20787f960052e0c3
2014-11-04 12:52:10 -08:00
Johann
2134eb2f05 Remove pair quantization
The intrinsics version of the pair quant is slower than running it
individually.

Change-Id: I7b4ea8599d4aab04be0a5a0c59b8b29a7fc283f4
2014-10-31 13:42:55 -07:00
Johann
7ae75c3d52 vp8 quantization -> intrinsics
Use intrinsics for neon quantization. Slight loss (<5%) of performance
compared to the assembly. Roughly 10x faster on arm64 because that was
running C code before.

Change-Id: I7cf5242d8f29b7eab5bca6a1c20c89c9fc9ca66d
2014-10-31 13:42:13 -07:00
Marco
fe2fd37bb2 vp8: Updates to noise level estimate.
-Use full bandwidth (when temporal layers is on) for checking switching.
-Normalize metric wrt num_blocks.
-Rounding fix to update of average noise level metric.
-Make default internal denoiser mode == kDenoiserOnYUV (in denoiser set_parameters()).
-Adjust some thresholds.

Change-Id: Ib827512b25a7bf1f66c76d3045f3a68ce56b1cd2
2014-10-24 09:36:18 -07:00
JackyChen
897500b9ba Merge "vp9_denoiser_sse2.c: improve code style." 2014-10-22 13:52:03 -07:00
JackyChen
5cba6516aa vp9_denoiser_sse2.c: improve code style.
denoiser_sse2.c: fix typos in comment.

Change-Id: Ic0fb102331b0e533c058da3cab1fbc30de9a0070
2014-10-22 10:55:54 -07:00
Marco
d166be653e vp8: Update to computation of noise level.
Avoid unneeded computation of mse in process_denoise.

Change-Id: I3a538178f2d138750d0c38ea4dd05dbbc2b7df41
2014-10-22 10:38:24 -07:00
Marco
6f77bff6aa Updates to aggressive denoising mode.
Fix to the noise level and bitrate threshold settings per resolution.

Change-Id: I25524b7f78afa1aeb76edef7be13c17bc8976508
2014-10-17 15:57:25 -07:00
Deb Mukherjee
a349ee3bf5 Resolves some lint errors
And also fixes some style consistency issues.

Change-Id: I3dc6d44e17d2d6075dc9b02c4255a7395046c5e0
2014-10-13 16:05:44 -07:00
Marco
3b789d3693 vp8: Suppress denoising with respect to old reference frames.
If the GOLDEN or ALTREF frame was last updated > x frames in the past,
don't use them for denoising (only consider LAST). Using an old reference
frame for denoising, e.g., if it is a long-term reference or the last key frame,
can cause some visible artifacts, in particular in the aggressive denoising mode.

Change-Id: I239c9fbb092c36cba7e95328f1fa67a58d6a7ed9
2014-10-08 12:54:39 -07:00
Johann
587ff646f6 Fix build failure with Android NDK
The version of gcc4.6 included with the Android NDK through r10b
fails to compile this function. Replace it with C code.

BUG=860

Change-Id: Ifcc0476664071aec46a171cdd5ad17305930986a
2014-09-25 12:15:21 -07:00
Yaowu Xu
e616504107 Fix IOCs
A left shift of negative value causes IOC runtime warnings, this
commit converts two such left shifts to multiply to avoid IOCs.

Change-Id: I8811428768d7135e6e16af4b3094d0341589a995
2014-09-25 08:58:57 -07:00
Marco
06fce6b640 vp8: Update to the adaptive denoising mode.
Allow for option to apply spatial blur for temporal
denoising, under the aggressive denoising mode.

Change-Id: I41c5fdc0b6cf32d8f8d1d4236b25fa5aa406e89e
2014-09-19 09:06:16 -07:00
Scott LaVarnway
1220b49c89 arm: Fix building vp8_mse16x16_neon.c with MSVC
Use the right return values - vadd_s64 returns int64x1_t, not
a normal int64_t.

Change-Id: Ife17213087c1dfb5faaa647f804d2fd140f3a0eb
2014-09-16 12:36:00 -07:00
Scott LaVarnway
fe2cc873dc VP8 encoder for ARMv8 by using NEON intrinsics 1
Add vp8_mse16x16_neon.c
- vp8_mse16x16_neon
- vp8_get4x4sse_cs_neon

Change-Id: I108952f60a9ae50613f0ce3903c2c81df19d99d0
Signed-off-by: James Yu <james.yu@linaro.org>
2014-09-15 12:04:09 -07:00
Johann
4bfdc331ad Merge "Remove unused vp8_strict_quantize" 2014-09-12 16:17:18 -07:00
Johann
ad4edc0b4e Merge "Remove unused vp8 quantize functions" 2014-09-12 16:16:52 -07:00
Johann
f1f7bcd289 Remove unused vp8_strict_quantize
Change-Id: I4c35ed2de8b54751b69f4801454a1ccc35b500b0
2014-09-12 15:02:03 -07:00
JackyChen
47380c3350 Fix the bug which made VP8 denoiser not bit-exact between C code and SSE code.
This issue is found when the denoising mode is set to kDenoiserOnYUVAggressive.
Updated the C code to make it the same with SSE version.

I also changed several lines in VP9 denoiser for the code style.

Change-Id: I640d48cf946fe8c6a400e6e252107501d1e226d3
2014-09-10 16:18:43 -07:00
Marco
619951af97 Merge "vp8: Updates for adaptive denoiser mode." 2014-09-09 10:19:27 -07:00
Marco
0c7a9925d6 vp8: Updates for adaptive denoiser mode.
Add qp/bitrate condition, update some settings.

Change-Id: I1af0f102823a886393be063ad9d17d7564753cc7
2014-09-09 09:19:01 -07:00
Jia Jia
395f2e874b vp8 encoder: remove vp8_yv12_copy_partial_frame_neon
Use generic C implementation instead of neon-specific code

Change-Id: Ib322b4ece9cdbd4de76a9eed3d2e9fd1d8542406
2014-09-08 08:59:24 -07:00
Marco
842454d2aa Make process_denoise_mode_change function cond-compiled.
This function is called only when temporal denoising is enabled.

Change-Id: I25a036e3d628edd34410d6e6fe1f9e68a90a8e56
2014-09-03 11:39:34 -07:00
Marco
54575d654c Updates to adaptive/aggressive denoiser mode.
Parameter changes and modification to zero_last bias.

Change-Id: I50a408d47fde049c562bbe95075194cb0f17c31b
2014-09-02 09:47:55 -07:00
Marco
f010b7727a vp8 fix: deallocate denoiser->yv12_last_source
Change-Id: I7f3bc292b1b411e10586f0975143ae996ea78d1d
2014-08-26 10:15:35 -07:00
Johann
da63d29921 Merge "VP8 encoder for ARMv8 by using NEON intrinsics 6" 2014-08-21 10:39:02 -07:00
Johann
a19035e8bb Merge "VP8 encoder for ARMv8 by using NEON intrinsics 3" 2014-08-20 11:54:32 -07:00
Johann
6642efaa17 Merge "VP8 encoder for ARMv8 by using NEON intrinsics 2" 2014-08-20 11:54:23 -07:00
Marco
4eb8a850e0 Merge "Fixes to adaptive denoiser mode." 2014-08-20 11:39:44 -07:00
Marco
d2274ed354 Bugfix for vp8 aggressive denoiser mode.
Change-Id: I6c1ccd88df7c39377d5f98f8533c0cabd53cf86f
2014-08-20 10:38:59 -07:00
Marco
aa88e32017 Fixes to adaptive denoiser mode.
Scale min_consec_zero_last wrt to #temporal layers,
and use full framerate as factor in noise metric.

Change-Id: Id0842b90164ce468d1236173c51965e7620c0e12
2014-08-20 10:34:58 -07:00
James Yu
eed005b076 VP8 encoder for ARMv8 by using NEON intrinsics 6
Add shortfdct_neon.c
- vp8_short_fdct4x4_neon
- vp8_short_fdct8x4_neon

Change-Id: I90152c803b484f5fab839473d632c50af0524e68
Signed-off-by: James Yu <james.yu@linaro.org>
2014-08-20 09:25:29 -07:00
James Yu
6d6fdd9c3d VP8 encoder for ARMv8 by using NEON intrinsics 3
Add subtract_neon.c
- vp8_subtract_b_neon
- vp8_subtract_mby_neon
- vp8_subtract_mbuv_neon

Change-Id: If9a17a093478552e3e3276eeaa3f098b9021d08c
Signed-off-by: James Yu <james.yu@linaro.org>
2014-08-20 09:20:55 -07:00
Scott LaVarnway
8013aaa10b VP8 encoder for ARMv8 by using NEON intrinsics 2
Add vp8_shortwalsh4x4_neon.c
- vp8_short_walsh4x4_neon

Change-Id: Ica5f584be608c9e636f62db14f563757e94be09b
Signed-off-by: James Yu <james.yu@linaro.org>
2014-08-20 09:19:23 -07:00
Marco
8609048a77 vp8: Add check on noise_sensitivity/denoiser on.
Change-Id: Ic53b2fb69e6eee600ea222e4d06424a1bbca496c
2014-08-16 06:14:21 -07:00
Marco Paniconi
715bab6e55 Merge "Add an adaptive denoising mode." 2014-08-15 08:51:08 -07:00
Marco Paniconi
8db245b6a1 Add an adaptive denoising mode.
On key frame, will always start with normal denoising mode,
but based on a computed noise metric (normalized mse on source diff)
may switch to aggressive mode (and back down again).

Change-Id: I20330b2dcf3056287be37223302b2cab5fc103eb
2014-08-14 17:29:51 -07:00
Marco
21a0dade42 vp8: Modify to use closest reference in zero_mv bias.
Modify zero_mv bias condition to include check that "closest" reference is last_frame.
This is needed for temporal layers, where the last_frame is not always the closest reference.
Also, constain zeromv_count to be for last_frame reference.

Change-Id: I7af54a809ebf01ef43b9933c9d4095b6cb189390
2014-08-14 15:55:20 -07:00
Johann
c2c03f2b58 Remove unused vp8 quantize functions
Exact fast quantize and inexact regular quantize are unused.

Change-Id: I5a81f5059c896c919f70038af7de04d63823d26d
2014-08-13 12:45:03 -07:00
James Zern
1d9e2b5003 Merge "remove unused fields from BOOL_CODER / vp9_writer" 2014-08-11 23:08:45 -07:00
Marco Paniconi
354a2e612d vp8: Code cleanup for control of denoiser mode.
Change-Id: Icb9918dd38d15061d62852e6a2d905e8ceb2c1ac
2014-08-08 16:15:28 -07:00
Marco Paniconi
84ba62d353 vp8: for spatial resize, reallocate denoiser in vp8_allocate_comp.
Change-Id: I1827efe2126501a4a5637ee3ae85233d7526bc0e
2014-08-07 13:55:32 -07:00
Marco Paniconi
8450b41d4b vp8 bugfix: Reallocate denoiser when spatially resizing.
This is needed to update the width/height and stride parameters
for the reference buffers that the denoiser uses.

Change-Id: Id51b3bdcb56bbbc8187865544ccd3d872a0d51fe
2014-08-06 14:57:52 -07:00
James Zern
8c3886df78 remove unused fields from BOOL_CODER / vp9_writer
measure_cost, bit_counter, value

Change-Id: I8f93444ddddbee4ece7db6076a922ad96786044c
2014-08-05 21:58:03 -07:00
Marco Paniconi
fbaa4b84af Fix to Visual Studio build error.
signed/unsigned mismatch from commit: 918011.

Change-Id: I6b9bb3618f8e72ea4cc0e6ba8fb9b13676985ed0
2014-07-30 09:14:56 -07:00
Marco Paniconi
91801176fe vp8: Add an aggressive denoising mode.
Change-Id: Ie4686e1b15af6bcc8d59d585bbeb996f38224522
2014-07-29 11:16:45 -07:00
Marco Paniconi
64db43d6a7 vp8: reduce refresh_max_mbs_perframe with fewer layers.
Change-Id: Ib39cc0218a1f232c0cde8e99ca3319c17274bd48
2014-07-24 15:47:19 -07:00
Marco Paniconi
7788c62286 Fix clang compiler warning in denoising_neon.
Issue: https://code.google.com/p/webm/issues/detail?id=829

Change-Id: I580308f8aa4af194b5d8990a9692ebd18db68ee8
2014-07-23 09:59:27 -07:00
Marco Paniconi
a9b30b381b Merge "vp8: Set default denoiser_decision to copy for UV channel." 2014-07-22 15:25:06 -07:00
Marco Paniconi
aa2ba46a61 Merge "vp8 denoiser fix: Update denoised altref on key frame." 2014-07-22 11:15:08 -07:00
Marco Paniconi
daed770d99 vp8: Set default denoiser_decision to copy for UV channel.
Since the UV decision to denoise is based on Y, we need to set
the default/initial denoiser decision_u/v to COPY_BLOCK,
to make sure if no uv_denoiser is applied we still update
(uv)running_avg with source.

Change-Id: I5af1c2afbd40c498cd3de208bea88c837099b24d
2014-07-22 11:12:50 -07:00
Marco Paniconi
f909e43abc vp8 denoiser fix: Update denoised altref on key frame.
On a key frame, the denoised-running_avg for all references
frames should be updated with the source.
The altref denoised-running_avg was not being updated on key frame,
this fixes that.

Change-Id: Ie02cd0ba5383e013af59240e6df7e185d11703f6
2014-07-22 10:14:03 -07:00
Yunqing Wang
765485cab2 Add -DNDEBUG when config option debug is disabled
For gcc, when libvpx config option debug is disabled, added the
flag -DNDEBUG to disable the assertions in libvpx for some speedup.

Change-Id: Ifcb7b9e8ef5cbe5d07a24407b53b9a2923f596ee
2014-07-21 09:20:03 -07:00
Marco Paniconi
21042c7154 vp8: Allow for on/off control of UV temporal denoiser.
Use noise_sensitivity level for enabling UV denoiser.

Change-Id: Ib208786a6fdf654981bcd96a3cf44e8e678025c1
2014-07-15 09:51:03 -07:00
James Zern
61c3338516 call vp[89]_clear_system_state after longjmp
restore the environment post encode/decode failure

Change-Id: I3c72e2260a616432eaf1f9545d4fb4d8e45cc7b0
2014-07-10 12:36:28 -07:00
Johann
8c03fff40b Move abs() to where it is effective
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-07-08 14:06:33 -07:00
Scott LaVarnway
8341fa8cb4 Merge "Neon version of vp8_denoiser_filter_uv()" 2014-07-07 09:41:07 -07:00
James Zern
b7a51cd894 vp8/bitstream.h: quiet warnings in EDSP builds
fixes:
vp8\encoder\bitstream.h: same type qualifier used more than once

Change-Id: I62b99342131fdaedb1f7cc8d2dcd13ab34637cd7
2014-06-30 23:29:34 -07:00
Marco Paniconi
970c1253ce vp8 denoiser fix: free memory of denoiser->denoiser_state.
Change-Id: I86451ddfa90d871e46e5b4c97794dbef65293c6c
2014-06-29 17:04:43 -07:00
Scott LaVarnway
a4b7ae7e82 Neon version of vp8_denoiser_filter_uv()
The encoder performance improved by 5% (vs "C")
for the test clip used.

Change-Id: I866b35eb2a06092edce7b37fc409562d0dacd7e7
2014-06-27 11:03:58 -07:00
Scott LaVarnway
1a30f70145 denoising_sse2.c visual studio warnings/errors fix
Fixed reported vs warnings/errors.

Change-Id: Ia4c44d64a69dbd9e1738c6ebb48be29582b7e1d3
2014-06-27 05:00:26 -07:00
Marco Paniconi
91ccad2179 Merge "vp8: Add temporal denoising for UV-channel." 2014-06-26 13:03:50 -07:00
Scott LaVarnway
94ae0430d2 vp8: Add temporal denoising for UV-channel.
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-26 11:45:42 -07:00
Johann
fec6886f2c Remove labels from quantize
Use break instead of goto for early exit. Unbreaks Visual Studio
builds.

Change-Id: I96dee43a3c82145d4abe0d6a99af6e6e1a3991b5
2014-06-19 10:24:58 -07:00
Johann
0d3ed089f1 sse4 regular quantize
Change-Id: Ibd95df0adf9cc9143006ee9032b4cb2ebfd5dd1b
2014-06-18 14:26:16 -07:00
Marco Paniconi
d924640663 vp8 denoising: add bias factor to zero_mv sse.
Change-Id: I95818754424e89f0d56c6d9c0c5709e6f84fa46a
2014-06-16 15:22:15 -07:00
Marco Paniconi
d08b2ba172 Allow for deblocking temporal-denoised signal.
Allow for an option to selectively apply the deblocking loop filter to the denoised
raw block, based on the denoised state (no-filter, filter with zero motion, or filter with non-zero motion)
of the current block and its upper and left denoised block.
This helps to reduce some blocking artifacts from the motion-compensated denoising.

Change-Id: I0ac4e70076df69a98c5391979e739a2681e24ae6
2014-06-13 14:34:05 -07:00
Tim Kopp
c49fda2615 Merge "Added OUTPUT_YUV_DENOISED CFLAG to VP8 encoder" 2014-06-12 15:10:53 -07:00
Scott LaVarnway
357495c2df Merge "Neon match to vp8 temporal denoiser fix" 2014-06-05 15:47:35 -07:00
Tim Kopp
05e8c61903 Added OUTPUT_YUV_DENOISED CFLAG to VP8 encoder
When this compiler flag is enabled, the encoder will write a denoised,
uncompressed, version of the input to denoised.yuv.

Change-Id: Ie0247f76b23219d95fe97dd70f23e097d742c249
2014-06-05 11:18:32 -07:00
Tim Kopp
dd1443e6c9 Made MACROBLOCK.increase_denoising cond-compiled
Change-Id: I59ef7c49f72d2d40bbe5b56af11bdf5f9ae2f1b8
2014-06-04 13:45:23 -07:00
Tim Kopp
0ba6e29515 s/INT_MAX/UINT_MAX/ where appropriate
Change-Id: I0156d85671305326525c4644510e240021eca461
2014-06-04 13:34:46 -07:00
Tim Kopp
f204a9a482 Fixed OUTPUT_YUV_SRC behavior for VP8
By enabling the OUTPUT_YUV_SRC compiler flag, the encoder will write the raw
input to bd.yuv.

The functionality was mostly implemented, but in its previous state did not
compile.

Change-Id: Ia331ad0f4c6e6f9f51e8d42cd33ba8cc146b3dbf
2014-05-30 09:39:07 -07:00
Scott LaVarnway
4d9b9fa508 Neon match to vp8 temporal denoiser fix
Now match the "C" version of "Fix to reduce block
artifacts from vp8 temporal denoiser."
(see change id Id9b56e59e33f3c22e79d2f89f763bdde246fdf3f)

Change-Id: I99e569bb6af4ae3532621127e12bf917a48ba08e
2014-05-28 13:32:52 -07:00
Marco Paniconi
688c5ac2a8 Merge "vp8 denoiser: fix to zero_mv mode selection." 2014-05-28 12:32:44 -07:00
Marco Paniconi
609e91f9b7 vp8 denoiser: fix to zero_mv mode selection.
In the current logic, if the sse for zero motion is smaller
than the sse for new_mv (i.e., best_sse), we may still end up
using the non-zero mv for denoising (if the magnitude of new_mv is above threshold).
This can happen for very noisy content, and can lead to artifacts.

This change ensures that we always use zero_mv (over new_mv) for
denoisng if sse_zero_mv <= best_sse.

Change-Id: I8ef9294d837b077013b77a46c9a71d17c648b48a
2014-05-28 11:23:52 -07:00
Marco Paniconi
567746d3f0 Merge "Fix to reduce block artifacts from vp8 temporal denoiser." 2014-05-27 15:32:16 -07:00
Dmitry Kovalev
ed784fd169 Merge "Removing vp8/common/pragmas.h." 2014-05-27 10:50:31 -07:00
Scott LaVarnway
03de5a38e2 neon matches "C" when using increase_denoising
If increase_denoising is set,
vp8_denoiser_filter_neon() produced incorrect results.

Change-Id: I645f78e48b8f6657fa8a4b69d2c4d3488a0581dc
2014-05-26 08:06:25 -07:00
Dmitry Kovalev
1f0b2f95af Removing vp8/common/pragmas.h.
Change-Id: I80630a7350e884ebc4fef73fb5b52ec25f908523
2014-05-23 13:03:15 -07:00
Marco Paniconi
4e81ab82d5 Fix to reduce block artifacts from vp8 temporal denoiser.
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-21 16:07:16 -07:00
Deb Mukherjee
e272273443 Renames x86_64 specific asm files
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-21 13:55:56 -07:00
Marco Paniconi
6da66e1114 vp8: Add increase_denoising parameter to denoiser.
Change-Id: I96ed73e109c4f89dd06f3583cf7ecf9277401fae
2014-05-16 15:06:59 -07:00
Jim Bankoski
ec82d2dfec Merge "Revert "Remove Wextra warnings from vp9_sad.c"" 2014-05-15 11:54:23 -07:00