summaryrefslogtreecommitdiff
path: root/vp8
AgeCommit message (Collapse)Author
2014-11-20Correctly initialize "ones" value in neon quantizeJohann
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-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-25Merge "Clarify GCC version check"Johann
2014-09-25Clarify GCC version checkJohann
The version check was incorrectly matching some versions of clang which reported as gcc 4.2 Change-Id: I686d3576e71883fe1463206b56ab5e2aa9bb68a8
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-17Merge "vp8: common: postproc: fix signed overflow of statement of (X +c) >= ↵Johann
X when '-Werror=strict-overflow' is set."
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-15Merge "vp8/vp9: neon: msvc: move the 'ifdef _MSC_VER' bit to ↵Johann
vpx_ports/mem.h. fix compiling warning."
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-14vp8/vp9: neon: msvc: move the 'ifdef _MSC_VER' bit to vpx_ports/mem.h.Jia Jia
fix compiling warning. Change-Id: If8706a9046436f704c597e4275a6810c76ba7daa
2014-09-14vp8: common: postproc: fix signed overflow of statement of (X +c) >= X when ↵Jia Jia
'-Werror=strict-overflow' is set. Change-Id: I2f78417cc100973c732426f7b6bd10d7304a1a5f
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-09Move vp8_variance_halfpixvar16x16_*_neon definitionsJohann
These functions moved from 'neon_asm' to 'neon' in 9293d267d22def752366c9512be98f2d51fd2c15 Change-Id: I9cb5626c3eec96876a73fb18f2bfc982a5858edb
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-05vp8 common: change 'HAVE_NEON_ASM' to 'HAVE_NEON' for compiling functions of ↵Jia Jia
NEON intrinsics. Change-Id: I975e5eac16f8b623ff589f0ec072cdaff2183b04
2014-09-04bilinearpredict_neon: fix type conversion warningsJames Zern
make bifilter4_coeff[][] uint8_t, no values exceed this range and they're loaded with vdup_n_u8(). Change-Id: I921983e9edd828d29820e40ac30a7801dbe0fb4f
2014-09-04Removing sz member from vpx_codec_priv. Dmitry Kovalev
Change-Id: I811526a9ee9f237604f72abe7fc677e39e0f457f
2014-09-04Merge "arm: Fix building vp8_subpixelvariance_neon.c with MSVC"James Zern
2014-09-04Revert "Revert "VP8 for ARMv8 by using NEON intrinsics 10""Scott LaVarnway
This reverts commit 677fb5123e0ece1d6c30be9d0282e1e1f594a56d Compiles with 4.6. Change-Id: I7f87048911b6bc28a61741d95501fa45ee97b819
2014-09-04vp8 common: change 'HAVE_NEON_ASM' to 'HAVE_NEON' for compiling idct_blk_neon.c.Jia Jia
Change-Id: Ib89107fb824b5fe58afef6841104d5a27b2e0f2d
2014-09-04arm: Fix building vp8_subpixelvariance_neon.c with MSVCMartin Storsjo
Use the right return values - vget_low_s64 returns int64x1_t, not a normal int64_t. Also make __builtin_prefetch a no-op on MSVC for this file. Change-Id: I4d2fce01d0ba106b98d3d53b137803119c2c2c08
2014-09-03Merge "Consistent allocation of vpx_codec_alg_priv_t."Dmitry Kovalev
2014-09-03Merge "Make process_denoise_mode_change function cond-compiled."Marco
2014-09-03Neon version of vp8_build_intra_predictors_mby_s() andScott LaVarnway
vp8_build_intra_predictors_mbuv_s(). This patch replaces the assembly version with an intrinsic version. On a Nexus 7, vpxenc (in realtime mode, speed -12) reported a performance improvement of ~2.6%. Change-Id: I9ef65bad929450c0215253fdae1c16c8b4a8f26f
2014-09-03VP8 for ARMv8 by using NEON intrinsics 17Scott LaVarnway
Add vp8_subpixelvariance_neon.c - vp8_sub_pixel_variance16x16_neon_func - vp8_variance_halfpixvar16x16_h_neon - vp8_variance_halfpixvar16x16_v_neon - vp8_variance_halfpixvar16x16_hv_neon - vp8_sub_pixel_variance8x8_neon Change-Id: I3e5d85b2eafc26be0eef6a777789b80e4579257b Signed-off-by: James Yu <james.yu@linaro.org>
2014-09-03Merge "Revert "Revert "VP8 for ARMv8 by using NEON intrinsics 06" This ↵Johann
reverts commit 81ad047ee57ecb0e2c1ee4dcebda54a44ea54ae9. Revert "VP8 for ARMv8 by using NEON intrinsics 15" This reverts commit 727af7cebe3698b8493ba6c1360b0a6606c310fb.""
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-03Consistent allocation of vpx_codec_alg_priv_t.Dmitry Kovalev
Change-Id: I5a03496de035fbcf31e4527cd25fcae4627a57a0
2014-09-02Merge "Adds config opt for highbitdepth + misc. vpx"Deb Mukherjee
2014-09-02Adds config opt for highbitdepth + misc. vpxDeb Mukherjee
Adds config parameter vp9_highbitdepth, to support highbitdepth profiles. Also includes most vpx level high bit-depth functions. However encode/decode in the highbitdepth profiles will not work until the rest of the code is in place. Change-Id: I34c53b253c38873611057a6cbc89a1361b8985a6
2014-09-02Merge "Updates to adaptive/aggressive denoiser mode."Marco