Adrian Grange
93a8a1eb8c
Fix generic-gnu target build
...
Added macro to conditionally compile some of the
post-processing functions only when CONFIG_POSTPROC
is defined.
This was causing the build for the generic-gnu target
to fail.
Change-Id: Ibfa447feceb7a0528135025f105be48f97e9965c
2014-05-05 11:00:43 -07:00
Adrian Grange
928b34e895
Fix rounding in ARNR calculation
...
The rounding of the ARNR filter output prior to
normalization by the filter strength was incorrect
when strength = 0.
In this case 1 << (strength - 1) would not create the
required rounding of 0, rather it would outrange. This
patch fixes this issue.
Change-Id: I771809ba34d6052b17d34c870ea11ff67b418dab
2014-05-05 11:00:43 -07:00
Jingning Han
52ae97b6aa
SSSE3 implementation of full inverse 8x8 2D-DCT
...
This commit enables SSSE3 version full inverse 8x8 2D-DCT and
reconstruction. It makes the runtime of vp9_idct8x8_64_add down
from 256 cycles (SSE2) to 246 cycles.
Change-Id: I0600feac894d6a443a3c9d18daf34156d4e225c3
2014-05-05 10:49:27 -07:00
Johann
1b7291d52c
Merge "VP8 for ARMv8 by using NEON intrinsics 14"
2014-05-05 07:08:08 -07:00
Johann
a7355f3bbb
Merge changes Iaf7d6b0a,Iece0bf56
...
* changes:
Use INLINE and include vpx_config.h instead of plain 'inline'
Use vreinterpret instead of casting neon vector types
2014-05-05 05:36:54 -07:00
Scott LaVarnway
b259f52d4b
Merge "Remove struct params from vp8_denoiser_filter"
2014-05-05 05:31:24 -07:00
Martin Storsjo
65f13afd7d
Fix building for arm with Visual Studio 2013
...
The microsoft build tools explicitly disallow building for arm in
the "desktop" target configuration; one has to target "Windows
Store" apps (aka WinRT/Metro) or Windows Phone. In Visual Studio
2012, one could just pick the v110_wp80 toolset which made the
vcxproj files buildable. In Visual Studio 2013, picking the v120_wp81
toolset isn't enough - one has to configure the vcxproj files
as an "AppContainerApplication". This has the implication that
you can't just build a plain .exe (such as the examples) - an .exe
project would need to have an AppxManifest file. Therefore we can
only build the library itself.
If loaded into Visual Studio for Windows (the Windows Store/Phone
version of Visual Studio, not the Desktop one), the obj_int_extract
project is omitted since it's treated as incompatible. Building
from the command line with msbuild works fine though.
The armv7-win32-vs12 target was added as part of a638bdf4
even
though actual use of it hadn't been tested.
Change-Id: Iee8088252cf790317aeb6b417d29058225f1f629
2014-05-05 13:26:37 +03:00
Martin Storsjo
20babf6d9d
Don't try to use getenv on windows phone/rt
...
The getenv function doesn't exist there. In Visual Studio 2012,
the function still existed in the link libraries even though
it was hidden in the headers, but in the 2013 version it has been
removed from the link libraries as well.
Change-Id: Iea6289a698fa1788e906f5aabb6fddda3675815b
2014-05-04 23:47:39 +03:00
Martin Storsjo
7afed9a1b6
Use INLINE and include vpx_config.h instead of plain 'inline'
...
This fixes compilation with MSVC.
Change-Id: Iaf7d6b0a0134968a6addf315fde6d852f298db8c
2014-05-04 22:42:13 +03:00
Martin Storsjo
dfb8fc917a
Use vreinterpret instead of casting neon vector types
...
MSVC doesn't support casting neon vector types but requires using
vreinterpret.
Change-Id: Iece0bf5632567efd7f37f527abea38afeab4926d
2014-05-04 22:40:57 +03:00
James Yu
4ea9cf3e2d
VP8 for ARMv8 by using NEON intrinsics 16
...
Add variance_neon.c
- vp8_variance16x16_neon
- vp8_variance16x8_neon
- vp8_variance8x16_neon
- vp8_variance8x8_neon
Change-Id: Idfb9c96134a1c6a696a98ce68b4f7ed593a00660
Signed-off-by: James Yu <james.yu@linaro.org>
2014-05-03 19:07:40 -07:00
James Yu
727af7cebe
VP8 for ARMv8 by using NEON intrinsics 15
...
Add idct_dequant_0_2x_neon.c
- idct_dequant_0_2x_neon
Change-Id: I8e129172ef1b2517cf72ff267788921f1a792586
Signed-off-by: James Yu <james.yu@linaro.org>
2014-05-03 19:07:33 -07:00
James Yu
08e38f06db
VP8 for ARMv8 by using NEON intrinsics 14
...
Add sixtappredict_neon.c
- vp8_sixtap_predict16x16_neon
- vp8_sixtap_predict8x8_neon
- vp8_sixtap_predict8x4_neon
- vp8_sixtap_predict4x4_neon
Change-Id: I3b02fce48ae2e6c6099041ba5ddd7b090f1463b9
Signed-off-by: James Yu <james.yu@linaro.org>
2014-05-03 19:07:12 -07:00
James Yu
18e9caad47
VP8 for ARMv8 by using NEON intrinsics 13
...
Add shortidct4x4llm_neon.c
- vp8_short_idct4x4llm_neon
Change-Id: I5a734bbffca8dacf8633c2b0ff07b98aa2f438ba
Signed-off-by: James Yu <james.yu@linaro.org>
2014-05-03 19:07:05 -07:00
Johann
140262d39f
Merge "VP8 for ARMv8 by using NEON intrinsics 12"
2014-05-03 19:06:55 -07:00
Johann
0b12a40296
Merge "VP8 for ARMv8 by using NEON intrinsics 11"
2014-05-03 19:05:26 -07:00
Johann
8c7e798c9b
Merge "VP8 for ARMv8 by using NEON intrinsics 10"
2014-05-03 19:04:57 -07:00
Johann
c1ba686064
Merge "VP8 for ARMv8 by using NEON intrinsics 09"
2014-05-03 19:04:18 -07:00
Johann
1b91fa8ac8
Merge "vp9 register checks only apply to vp9"
2014-05-03 19:03:39 -07:00
James Yu
feaf766bd0
VP8 for ARMv8 by using NEON intrinsics 12
...
Add sad_neon.c
- vp8_sad16x16_neon
- vp8_sad16x8_neon
- vp8_sad8x8_neon
- vp8_sad8x16_neon
- vp8_sad4x4_neon
Change-Id: I08eaae49ec03fb91b394354660a5df0367cea311
Signed-off-by: James Yu <james.yu@linaro.org>
2014-05-03 04:54:39 -07:00
James Yu
4a8336fa9d
VP8 for ARMv8 by using NEON intrinsics 11
...
Add mbloopfilter_neon.c
- vp8_mbloop_filter_horizontal_edge_y_neon
- vp8_mbloop_filter_horizontal_edge_uv_neon
- vp8_mbloop_filter_vertical_edge_y_neon
- vp8_mbloop_filter_vertical_edge_uv_neon
Change-Id: Ia9084e0892d4d49412d9cf2b165a0f719f2382d7
Signed-off-by: James Yu <james.yu@linaro.org>
2014-05-03 04:54:33 -07:00
Johann
1d65b3be2a
Merge "Remove asm_offsets dependency in quantize_b_ssse3"
2014-05-03 04:21:16 -07:00
James Yu
c500fc22c1
VP8 for ARMv8 by using NEON intrinsics 10
...
Add loopfiltersimpleverticaledge_neon.c
- vp8_loop_filter_bvs_neon
- vp8_loop_filter_mbvs_neon
Change-Id: I7cf0a161ad4ae37c881b94cc0122f895d3baae79
Signed-off-by: James Yu <james.yu@linaro.org>
2014-05-03 04:11:00 -07:00
James Yu
55c95f2d2c
VP8 for ARMv8 by using NEON intrinsics 09
...
Add loopfiltersimplehorizontaledge_neon.c
- vp8_loop_filter_bhs_neon
- vp8_loop_filter_mbhs_neon
Change-Id: I77f9721b20585da8bf3869a3850ff0ae4b4bfeea
Signed-off-by: James Yu <james.yu@linaro.org>
2014-05-03 04:10:45 -07:00
Johann
cf2262c44c
Merge "VP8 for ARMv8 by using NEON intrinsics 08"
2014-05-03 04:10:18 -07:00
Johann
fe437bc8f8
Merge "VP8 for ARMv8 by using NEON intrinsics 07"
2014-05-03 04:08:54 -07:00
Minghai Shang
0affa0eae5
[spatial svc] Fix one extra frame count during flush
...
Change-Id: Ia096aafa8aca4f9e58450c4b861393d8f0a15afe
2014-05-02 12:09:13 -07:00
Minghai Shang
d899a1c08a
[spatial svc] Use VPX_DL_GOOD_QUALITY for vp9_spatial_scalable_encoder
...
Change-Id: I759f2d7c0e75b44ff4522a5ce57328b1c92730aa
2014-05-02 11:54:45 -07:00
Vignesh Venkatasubramanian
56186c2540
Merge "third_party/libwebm: Add Android.mk"
2014-05-02 11:39:29 -07:00
Minghai Shang
bb505879d6
[spatial svc] No need to code full width and height for non key frame
...
Change-Id: I62ab0f4346b4157a90dc5b5f73ab5e597d69c1bd
2014-05-02 11:29:05 -07:00
Dmitry Kovalev
4498194bad
Cleaning up vp9_variance.c
...
Change-Id: Ie2b9c9881085053c191f3f7b8253e283edef573b
2014-05-02 11:10:45 -07:00
Scott LaVarnway
e516a42527
Remove struct params from vp8_denoiser_filter
...
This eliminates the asm_offsets dependency for future
all-assembly versions of this function.
Change-Id: I3227073ecfcb8ee6e593934fab941e9081abdda0
2014-05-02 10:31:52 -07:00
Scott LaVarnway
dea687f733
Merge "Improved intrinsic version of vp8_denoiser_filter_neon"
2014-05-02 09:59:59 -07:00
James Yu
a5d79f43b9
VP8 for ARMv8 by using NEON intrinsics 08
...
Add loopfilter_neon.c
- vp8_loop_filter_horizontal_edge_y_neon
- vp8_loop_filter_horizontal_edge_uv_neon
- vp8_loop_filter_vertical_edge_y_neon
- vp8_loop_filter_vertical_edge_uv_neon
Change-Id: I50b57dedabd42d2a3c183c1738cc5346f0e71ed8
Signed-off-by: James Yu <james.yu@linaro.org>
2014-05-02 09:32:11 -07:00
James Yu
930557be10
VP8 for ARMv8 by using NEON intrinsics 07
...
Add iwalsh_neon.c
- vp8_short_inv_walsh4x4_neon
Change-Id: I8beda6ce11ad8ce9e80cc0a38d40161938359162
Signed-off-by: James Yu <james.yu@linaro.org>
2014-05-02 09:24:54 -07:00
Adrian Grange
8b2b7370b5
Merge "Revert "Force ARNR filtering to be centered on the ARF frame""
2014-05-02 08:13:06 -07:00
Adrian Grange
a481fcc3e0
Merge "Fix mode selection bug when ARNR filtering disabled"
2014-05-02 08:12:00 -07:00
Johann
07967b36b7
vp9 register checks only apply to vp9
...
Disable register checks when vp9 is not configured. Soon vp8 assembly
will move to intrinsics, obviating this check.
This will still run the check when vp9 is enabled.
Change-Id: I90f50d22cb8c15e9c07f2c8e830e08de7fce0689
2014-05-02 08:11:54 -07:00
Johann
570d43c020
Remove asm_offsets dependency in quantize_b_ssse3
...
Replace it with some intrinsic code and inline assembly.
Change-Id: I81b4df146db3d01039059be7dae31083e2943b97
2014-05-02 08:00:16 -07:00
Johann
7d54e0f093
Android NDK support for x86 and mips
...
This does not do the full toolchain setup like the arm builds. It only
allows for ndk-builds. See the instructions in tests/android/README or
the webm jnin bindings project:
https://chromium.googlesource.com/webm/bindings/+/master/JNI/README.Android
Because this support is not quite polished, the build targets must be
forced. Please use
--force-target=x86-android-gcc --disable-ssse3 --disable-sse4_1 --disable-avx2
--force-target-mips-android-gcc
Change-Id: Ie2b6623f71ac816e3965c39bf97097e9d30b6e94
2014-05-02 07:26:46 -07:00
Johann
ac8c069198
Merge "Only hide assembly functions for Chrome"
2014-05-02 07:15:38 -07:00
Johann
0f1a3461d6
Merge "VP8 for ARMv8 by using NEON intrinsics 06"
2014-05-02 06:42:34 -07:00
Debargha Mukherjee
6497f2718f
Merge "Switch the default 2 pass vbr variant."
2014-05-02 04:03:29 -07:00
James Yu
81ad047ee5
VP8 for ARMv8 by using NEON intrinsics 06
...
Add idct_dequant_full_2x_neon.c
- idct_dequant_full_2x_neon
==== Summary of apply VP8 decode patch series ====
Benchmark on Samsung Chromebook, Cortex-A15, 1.7GHz, Dual core
Toolchain: linaro-1.13.1-4.8-2014.01
Compile argument: CROSS=arm-linux-gnueabihf- ../libvpx/configure
--target=armv7-linux-gcc --prefix=$HOME/out
--enable-shared --cpu=cortex-a7
Test argument: vpxdec --summary --noblit ./tears_of_steel_1080p.webm
NEON assembly 46.68 (fps)
Apply patch 06 46.65, -0.03
Apply patch 07 46.86, +0.21
Apply patch 08 46.58, -0.28
Apply patch 09 46.57, -0.01
Apply patch 10 46.51, -0.06
Apply patch 11 46.13, -0.38
Apply patch 12 45.42, -0.71
Apply patch 13 46.06, +0.64
Apply patch 14 45.19, -0.87
Apply patch 15 45.93, +0.74
Apply patch 16 45.48, -0.45
Apply patch 17 45.84, +0.36
Apply patch 18 45.91, +0.07 <= With all NEON intrinsics patches
Total -0.77 fps, 1.65% performance regression
Change-Id: I77bfc9eaccfb97b8d401e949ceff8795e26ca6b7
Signed-off-by: James Yu <james.yu@linaro.org>
2014-05-02 11:57:47 +08:00
Dmitry Kovalev
53888035f9
Merge "Moving #defines to *.c from *.h."
2014-05-01 18:28:34 -07:00
Dmitry Kovalev
2cba07c660
Merge "Adding vp9_temporal_filter_init() function."
2014-05-01 18:28:21 -07:00
Dmitry Kovalev
d32615c523
Merge "Replacing int_mv with MV."
2014-05-01 18:28:12 -07:00
Dmitry Kovalev
a0327f5eaf
Merge "Simplifying vp9_is_upper_layer_key_frame()."
2014-05-01 18:27:56 -07:00
Johann
874f7f02ef
Only hide assembly functions for Chrome
...
Match x86_abi_support.asm configuration
Change-Id: Ic0d03a23961e6858cf5153389ec8afa0fae3307a
2014-05-01 17:48:04 -07:00
Dmitry Kovalev
25a666ef39
Moving pair_set_epi32 macro into vp9_dct32x32_sse2.c.
...
Change-Id: I642a7d343677bf934e9a54cf4ad78e908620e39a
2014-05-01 16:45:49 -07:00