summaryrefslogtreecommitdiff
path: root/vp8/encoder
AgeCommit message (Collapse)Author
2014-11-06Remove asm offset dependenciesJohann
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-04Merge "Remove pair quantization"Johann
2014-11-04Merge "vp8 quantization -> intrinsics"Johann
2014-11-04Avoid divide-by-zero in vp8 initializationJohann
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-10-31Remove pair quantizationJohann
The intrinsics version of the pair quant is slower than running it individually. Change-Id: I7b4ea8599d4aab04be0a5a0c59b8b29a7fc283f4
2014-10-31vp8 quantization -> intrinsicsJohann
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-24vp8: Updates to noise level estimate.Marco
-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-22Merge "vp9_denoiser_sse2.c: improve code style."JackyChen
2014-10-22vp9_denoiser_sse2.c: improve code style.JackyChen
denoiser_sse2.c: fix typos in comment. Change-Id: Ic0fb102331b0e533c058da3cab1fbc30de9a0070
2014-10-22vp8: Update to computation of noise level.Marco
Avoid unneeded computation of mse in process_denoise. Change-Id: I3a538178f2d138750d0c38ea4dd05dbbc2b7df41
2014-10-17Updates to aggressive denoising mode.Marco
Fix to the noise level and bitrate threshold settings per resolution. Change-Id: I25524b7f78afa1aeb76edef7be13c17bc8976508
2014-10-13Resolves some lint errorsDeb Mukherjee
And also fixes some style consistency issues. Change-Id: I3dc6d44e17d2d6075dc9b02c4255a7395046c5e0
2014-10-08vp8: Suppress denoising with respect to old reference frames.Marco
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-09-25Fix build failure with Android NDKJohann
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-25Fix IOCsYaowu Xu
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-19vp8: Update to the adaptive denoising mode.Marco
Allow for option to apply spatial blur for temporal denoising, under the aggressive denoising mode. Change-Id: I41c5fdc0b6cf32d8f8d1d4236b25fa5aa406e89e
2014-09-16arm: Fix building vp8_mse16x16_neon.c with MSVCScott LaVarnway
Use the right return values - vadd_s64 returns int64x1_t, not a normal int64_t. Change-Id: Ife17213087c1dfb5faaa647f804d2fd140f3a0eb
2014-09-15VP8 encoder for ARMv8 by using NEON intrinsics 1Scott LaVarnway
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-12Merge "Remove unused vp8_strict_quantize"Johann
2014-09-12Merge "Remove unused vp8 quantize functions"Johann
2014-09-12Remove unused vp8_strict_quantizeJohann
Change-Id: I4c35ed2de8b54751b69f4801454a1ccc35b500b0
2014-09-10Fix the bug which made VP8 denoiser not bit-exact between C code and SSE code.JackyChen
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-09Merge "vp8: Updates for adaptive denoiser mode."Marco
2014-09-09vp8: Updates for adaptive denoiser mode.Marco
Add qp/bitrate condition, update some settings. Change-Id: I1af0f102823a886393be063ad9d17d7564753cc7
2014-09-08vp8 encoder: remove vp8_yv12_copy_partial_frame_neonJia Jia
Use generic C implementation instead of neon-specific code Change-Id: Ib322b4ece9cdbd4de76a9eed3d2e9fd1d8542406
2014-09-03Make process_denoise_mode_change function cond-compiled.Marco
This function is called only when temporal denoising is enabled. Change-Id: I25a036e3d628edd34410d6e6fe1f9e68a90a8e56
2014-09-02Updates to adaptive/aggressive denoiser mode.Marco
Parameter changes and modification to zero_last bias. Change-Id: I50a408d47fde049c562bbe95075194cb0f17c31b
2014-08-26vp8 fix: deallocate denoiser->yv12_last_sourceMarco
Change-Id: I7f3bc292b1b411e10586f0975143ae996ea78d1d
2014-08-21Merge "VP8 encoder for ARMv8 by using NEON intrinsics 6"Johann
2014-08-20Merge "VP8 encoder for ARMv8 by using NEON intrinsics 3"Johann
2014-08-20Merge "VP8 encoder for ARMv8 by using NEON intrinsics 2"Johann
2014-08-20Merge "Fixes to adaptive denoiser mode."Marco
2014-08-20Bugfix for vp8 aggressive denoiser mode.Marco
Change-Id: I6c1ccd88df7c39377d5f98f8533c0cabd53cf86f
2014-08-20Fixes to adaptive denoiser mode.Marco
Scale min_consec_zero_last wrt to #temporal layers, and use full framerate as factor in noise metric. Change-Id: Id0842b90164ce468d1236173c51965e7620c0e12
2014-08-20VP8 encoder for ARMv8 by using NEON intrinsics 6James Yu
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-20VP8 encoder for ARMv8 by using NEON intrinsics 3James Yu
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-20VP8 encoder for ARMv8 by using NEON intrinsics 2Scott LaVarnway
Add vp8_shortwalsh4x4_neon.c - vp8_short_walsh4x4_neon Change-Id: Ica5f584be608c9e636f62db14f563757e94be09b Signed-off-by: James Yu <james.yu@linaro.org>
2014-08-16vp8: Add check on noise_sensitivity/denoiser on.Marco
Change-Id: Ic53b2fb69e6eee600ea222e4d06424a1bbca496c
2014-08-15Merge "Add an adaptive denoising mode."Marco Paniconi
2014-08-14Add an adaptive denoising mode.Marco Paniconi
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-14vp8: Modify to use closest reference in zero_mv bias.Marco
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-13Remove unused vp8 quantize functionsJohann
Exact fast quantize and inexact regular quantize are unused. Change-Id: I5a81f5059c896c919f70038af7de04d63823d26d
2014-08-11Merge "remove unused fields from BOOL_CODER / vp9_writer"James Zern
2014-08-08vp8: Code cleanup for control of denoiser mode.Marco Paniconi
Change-Id: Icb9918dd38d15061d62852e6a2d905e8ceb2c1ac
2014-08-07vp8: for spatial resize, reallocate denoiser in vp8_allocate_comp.Marco Paniconi
Change-Id: I1827efe2126501a4a5637ee3ae85233d7526bc0e
2014-08-06vp8 bugfix: Reallocate denoiser when spatially resizing.Marco Paniconi
This is needed to update the width/height and stride parameters for the reference buffers that the denoiser uses. Change-Id: Id51b3bdcb56bbbc8187865544ccd3d872a0d51fe
2014-08-05remove unused fields from BOOL_CODER / vp9_writerJames Zern
measure_cost, bit_counter, value Change-Id: I8f93444ddddbee4ece7db6076a922ad96786044c
2014-07-30Fix to Visual Studio build error.Marco Paniconi
signed/unsigned mismatch from commit: 918011. Change-Id: I6b9bb3618f8e72ea4cc0e6ba8fb9b13676985ed0
2014-07-29vp8: Add an aggressive denoising mode.Marco Paniconi
Change-Id: Ie4686e1b15af6bcc8d59d585bbeb996f38224522
2014-07-24vp8: reduce refresh_max_mbs_perframe with fewer layers.Marco Paniconi
Change-Id: Ib39cc0218a1f232c0cde8e99ca3319c17274bd48