Commit Graph

9827 Commits

Author SHA1 Message Date
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
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
66307bf2c8 Moving costs from MACROBLOCK to VP9_COMP.
Change-Id: I61471dd0f77d1547abec13cbf9670e1c4eb9131a
2014-05-01 16:12:23 -07:00
Dmitry Kovalev
e05b92c0aa Merge "Removing half-variance asm functions which are not used." 2014-05-01 14:50:45 -07:00
Adrian Grange
0423a96469 Fix mode selection bug when ARNR filtering disabled
When ARNR filtering is disabled, by setting
arnr_max_frames=0, mode_skip_mask was being set to
-1 for the ARF frame resulting in no mode being
selected for the block.

The intent is to restrict the reference frame to the
previous ARF frame and the mode to one of ZEROMV,
NEARMV or NEARESTMV.

Change-Id: Ifc3920b153142cd01d422910c94d2f20ffb6f129
2014-05-01 14:38:58 -07:00
Paul Wilkins
307b6c22a3 Switch the default 2 pass vbr variant.
On balance Deb's  modified rate control for VBR seems
to be outperforming especially on some low motion YT
clips so I have switched this to be the default mode for
now.

Change-Id: I0713d430cad6425ac5c48fccdf332e12814ee44a
2014-05-01 11:53:40 -07:00
Dmitry Kovalev
eae4a467a8 Simplifying vp9_is_upper_layer_key_frame().
Change-Id: Ib56df7cd282dadbfd202de23f0c746a93b5ce63e
2014-05-01 11:41:01 -07:00
Dmitry Kovalev
92c536b465 Adding vp9_temporal_filter_init() function.
Change-Id: I0d50354111df79b74aafcd3bb7dc14df3c14733a
2014-05-01 11:35:50 -07:00
Minghai Shang
528a5c28b3 Merge "[svc rc] RC improvement for key frames in upper layers for spatial svc." 2014-05-01 10:53:47 -07:00
Tom Finegan
1d29ce53fe Add --show-program-output option to shell tests.
When used --show-program-output shows the output from the programs run
during testing.

Change-Id: I15a47c43d1fcf0243c8df1a75d0d2a584ae1f08f
2014-04-30 16:17:25 -07:00
Dmitry Kovalev
6653769a02 Merge "Removing unused alt_activity_measure() function." 2014-04-30 15:50:34 -07:00
Dmitry Kovalev
9d3831db33 Merge "Removing unused typedefs." 2014-04-30 15:50:26 -07:00
Dmitry Kovalev
dd1a393624 Replacing int_mv with MV.
Change-Id: Idccb530c814cb8a2fb9f7d0c11eaef25044efe5e
2014-04-30 15:50:13 -07:00
Dmitry Kovalev
c9dfa3f72e Cleaning up vp9_full_range_search_c() function.
Change-Id: Ifc9114aeacd493cfa04d4cb3d071bf1de80e0568
2014-04-30 15:40:24 -07:00
Minghai Shang
f916a3e256 [svc rc] RC improvement for key frames in upper layers for spatial svc.
Change-Id: Id6ab59e505be28cd4eb9f1fe114feb47debe0539
2014-04-30 15:12:55 -07:00
Dmitry Kovalev
25110038f7 Merge "Using crop_{width, height} instead of {width, height}." 2014-04-30 15:01:26 -07:00
Jim Bankoski
12753b6160 Merge "corrupted frames shouldn't affect stats" 2014-04-30 14:43:56 -07:00
Debargha Mukherjee
a55cb6596b Merge "Added 16bit vpx_img_fmt_t enums" 2014-04-30 13:59:12 -07:00
Jingning Han
39761eb5d6 Merge "Enable SSSE3 implementation of 8x8 forward 2D-DCT" 2014-04-30 13:41:36 -07:00
Dmitry Kovalev
042274739c Moving #defines to *.c from *.h.
Change-Id: I7cc6f441f414ca1b4d95dad3f789fff6faf8c3c4
2014-04-30 12:40:03 -07:00
Dmitry Kovalev
e826b61305 Removing unused typedefs.
Change-Id: I34ebc59980cf661ed658555e245bf0a93e5c3373
2014-04-30 12:34:09 -07:00
Dmitry Kovalev
94f5491c46 Removing half-variance asm functions which are not used.
Corresponding C functions were removed in
I99695564a3aa9bc8c79ac0a551d257e2ff3ad3c3

Change-Id: I50a5575065a7a9e41904eb2161afd739def927db
2014-04-30 12:21:54 -07:00
Tom Finegan
bc81107533 Merge "tools_common.sh: Add vlog()" 2014-04-30 11:19:37 -07:00
Tom Finegan
c5d962d5bb tools_common.sh: Add vlog()
Add a verbose logging function instead of checking
$VPX_TEST_VERBOSE_OUTPUT in multiple places.

Change-Id: I82618809f0964f696ed17ca4d99d8d7d252232f4
2014-04-30 11:16:15 -07:00
Minghai Shang
d9e8c1eafc Merge "[svc rc] Increase worst quality for enhancement layers" 2014-04-30 11:02:54 -07:00
Jim Bankoski
29af017fc0 corrupted frames shouldn't affect stats
Don't update the stats if we have a corrupted frame.

Change-Id: I65a13adc50e0389b4201d3b671f0225195dfaff4
TODO: Test case that shows this problem.
2014-04-30 10:13:29 -07:00
Peter de Rivaz
e97aea285b Added 16bit vpx_img_fmt_t enums
Added in preparation for modifications to support high bitdepth
operations.

Change-Id: I1ad403ea8886cb84020ff06807ae25e2e4bff608
2014-04-30 10:03:27 -07:00
Yunqing Wang
3f6d1bce3c Merge "Remove VP8 save_reg_neon function" 2014-04-30 09:17:18 -07:00
Scott LaVarnway
ff209de82b Improved intrinsic version of vp8_denoiser_filter_neon
Used horizonal add instructions instead of adding
byte lanes.  The encoder performance improved by
~4% for the test clip used.

Change-Id: Iaddd10403fcffb5b3f53b1f591ab2fe0ff002c08
2014-04-30 06:58:16 -07:00
Dmitry Kovalev
d2bc8816a1 Merge "Adding search_site_config struct." 2014-04-29 16:59:47 -07:00
Dmitry Kovalev
14967cd4f5 Removing unused alt_activity_measure() function.
Change-Id: I6b520553cb5334b44356dc4651a2dbc1cb93cca5
2014-04-29 16:58:22 -07:00
Dmitry Kovalev
dde35bbbcc Merge "Cleaning up vp9_full_search_sadx8() function." 2014-04-29 16:37:17 -07:00
Yunqing Wang
096eaba728 Remove VP8 save_reg_neon function
This patch did a cleanup following the commit "Save NEON registers
in VP8 NEON functions". The pushing/poping of callee-saved NEON
registers was moved into individual NEON functions. Therefore,
we don't need to save those registers at the beginning of codec.
The related code was removed.

Change-Id: I5648166514fc9beffb780aa138495597731f49ea
2014-04-29 16:13:24 -07:00
Dmitry Kovalev
49d8bdc29b Using crop_{width, height} instead of {width, height}.
Change-Id: I6dc9741cdcd700f5c4a387f58da7feb58dd4bbda
2014-04-29 16:12:44 -07:00
Jingning Han
1eaa3a76dc Enable SSSE3 implementation of 8x8 forward 2D-DCT
Assembly implementation of ssse3 8x8 forward 2D-DCT. The current
version is turned on only for x86_64. The average unit runtime
goes from 157 cycles down to 136 cycles, i.e., about 12.8% faster.
This translates into about 1.5% speed-up for pedestrian_area 1080p
at speed 2.

Change-Id: I0f12435857e9425ed7ce12541344dfa16837f4f4
2014-04-29 15:49:18 -07:00
Dmitry Kovalev
3e9943885a Merge "scale_and_extend_frame{,_nonnormative}() cleanup." 2014-04-29 15:09:38 -07:00