| Commit message (Collapse) | Author | Age |
| |
|
|
|
|
| |
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
|
|
|
|
| |
The file has to be created first, fixes fate without zlib.
|
|
|
|
|
| |
pixel_ptr is 3 and leads to aligned access on odd memory addresses.
Fixes crashes on systems that do not allow unaligned access like sparc32.
|
|
|
|
|
|
| |
Should fix fate failures on big endian targets.
Signed-off-by: James Almer <jamrial@gmail.com>
|
|\
| |
| |
| |
| |
| |
| | |
* commit 'f8abf7d4dfa0504f7f65e4f1fd9d22e01cb371cc':
checkasm/h264: test 4:2:2 chroma loop filter functions
Merged-by: James Almer <jamrial@gmail.com>
|
| | |
|
|\|
| |
| |
| |
| |
| |
| | |
* commit '186bd30aa3b6c2b29b4dbf18278700b572068b1e':
h264/arm64: implement missing 4:2:2 chroma loop filter neon functions
Merged-by: James Almer <jamrial@gmail.com>
|
| | |
|
|\|
| |
| |
| |
| |
| |
| | |
* commit '7e42d5f0ab2aeac811fd01e122627c9198b13f01':
aarch64: vp8: Optimize vp8_idct_add_neon for aarch64
Merged-by: James Almer <jamrial@gmail.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The previous version was a pretty exact translation of the arm
version. This version does do some unnecessary arithemetic (it does
more operations on vectors that are only half filled; it does 4
uaddw and 4 sqxtun instead of 2 of each), but it reduces the overhead
of packing data together (which could be done for free in the arm
version).
This gives a decent speedup on Cortex A53, a minor speedup on
A72 and a very minor slowdown on Cortex A73.
Before: Cortex A53 A72 A73
vp8_idct_add_neon: 79.7 67.5 65.0
After:
vp8_idct_add_neon: 67.7 64.8 66.7
Signed-off-by: Martin Storsjö <martin@martin.st>
|
|\|
| |
| |
| |
| |
| |
| | |
* commit '49f9c4272c4029b57ff300d908ba03c6332fc9c4':
aarch64: vp8: Skip saturating in shrn in ff_vp8_idct_add_neon
Merged-by: James Almer <jamrial@gmail.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
The original arm version didn't do saturation here. This probably
doesn't make any difference for performance, but reduces the
differences.
Signed-off-by: Martin Storsjö <martin@martin.st>
|
|\|
| |
| |
| |
| |
| |
| | |
* commit '37394ef01b040605f8e1c98e73aa12b1c0bcba07':
aarch64: vp8: Optimize put_epel16_h6v6 with vp8_epel8_v6_y2
Merged-by: James Almer <jamrial@gmail.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This makes it similar to put_epel16_v6, and gives a large speedup
on Cortex A53, a minor speedup on A72 and a very minor slowdown on
A73.
Before: Cortex A53 A72 A73
vp8_put_epel16_h6v6_neon: 2211.4 1586.5 1431.7
After:
vp8_put_epel16_h6v6_neon: 1736.9 1522.0 1448.1
Signed-off-by: Martin Storsjö <martin@martin.st>
|
|\|
| |
| |
| |
| |
| |
| | |
* commit 'cef914e08310166112ac09567e66452a7679bfc8':
arm: vp8: Optimize put_epel16_h6v6 with vp8_epel8_v6_y2
Merged-by: James Almer <jamrial@gmail.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This makes it similar to put_epel16_v6, and gives a 10-25%
speedup of this function.
Before: Cortex A7 A8 A9 A53 A72
vp8_put_epel16_h6v6_neon: 3058.0 2218.5 2459.8 2183.0 1572.2
After:
vp8_put_epel16_h6v6_neon: 2670.8 1934.2 2244.4 1729.4 1503.9
Signed-off-by: Martin Storsjö <martin@martin.st>
|
|\|
| |
| |
| |
| |
| |
| | |
* commit 'e39a9212ab37a55b346801c77487d8a47b6f9fe2':
aarch64: vp8: Port bilin functions from arm version
Merged-by: James Almer <jamrial@gmail.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Cortex A53 A72 A73
vp8_put_bilin4_h_c: 303.8 102.2 161.8
vp8_put_bilin4_h_neon: 100.0 40.9 41.2
vp8_put_bilin4_hv_c: 322.8 201.0 305.9
vp8_put_bilin4_hv_neon: 156.8 72.6 77.0
vp8_put_bilin4_v_c: 304.7 101.7 166.5
vp8_put_bilin4_v_neon: 82.7 41.2 33.0
vp8_put_bilin8_h_c: 1192.7 352.5 623.8
vp8_put_bilin8_h_neon: 213.5 70.2 87.8
vp8_put_bilin8_hv_c: 1098.6 769.2 1041.9
vp8_put_bilin8_hv_neon: 324.0 123.5 146.0
vp8_put_bilin8_v_c: 1193.9 350.4 617.7
vp8_put_bilin8_v_neon: 183.9 60.7 64.7
vp8_put_bilin16_h_c: 2353.1 671.2 1223.3
vp8_put_bilin16_h_neon: 261.9 140.7 145.0
vp8_put_bilin16_hv_c: 2453.2 1470.9 2355.2
vp8_put_bilin16_hv_neon: 383.9 196.0 217.0
vp8_put_bilin16_v_c: 2349.3 669.8 1251.2
vp8_put_bilin16_v_neon: 202.9 110.7 96.2
Signed-off-by: Martin Storsjö <martin@martin.st>
|
|\|
| |
| |
| |
| |
| |
| | |
* commit '58d154922707bfeb873cb3a7476e0f94b17463dd':
aarch64: vp8: Port epel4 functions from arm version
Merged-by: James Almer <jamrial@gmail.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Cortex A53 A72 A73
vp8_put_epel4_h4_c: 631.4 291.7 367.8
vp8_put_epel4_h4_neon: 241.0 131.0 155.7
vp8_put_epel4_h4v4_c: 967.5 529.3 667.7
vp8_put_epel4_h4v4_neon: 429.3 241.8 279.7
vp8_put_epel4_h4v6_c: 1374.7 657.5 864.5
vp8_put_epel4_h4v6_neon: 515.5 295.5 334.7
vp8_put_epel4_h6_c: 851.0 421.0 486.0
vp8_put_epel4_h6_neon: 321.5 195.0 217.7
vp8_put_epel4_h6v4_c: 1111.3 621.1 781.2
vp8_put_epel4_h6v4_neon: 539.2 328.0 365.3
vp8_put_epel4_h6v6_c: 1561.3 763.3 999.7
vp8_put_epel4_h6v6_neon: 645.5 401.0 434.7
vp8_put_epel4_v4_c: 663.8 298.3 357.0
vp8_put_epel4_v4_neon: 116.0 81.5 72.5
vp8_put_epel4_v6_c: 870.5 437.0 507.4
vp8_put_epel4_v6_neon: 147.7 108.8 92.0
Signed-off-by: Martin Storsjö <martin@martin.st>
|
|\|
| |
| |
| |
| |
| |
| | |
* commit 'cc7ba00c35faf0478f1f56215e926f70ccb31282':
aarch64: vp8: Port missing epel8 functions from arm version
Merged-by: James Almer <jamrial@gmail.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Cortex A53 A72 A73
vp8_put_epel8_h4_c: 2594.8 1159.6 1374.8
vp8_put_epel8_h4_neon: 506.4 244.2 314.0
vp8_put_epel8_h6_c: 3445.8 1677.1 1811.3
vp8_put_epel8_h6_neon: 634.4 371.7 433.0
vp8_put_epel8_v4_c: 2614.0 1174.8 1378.0
vp8_put_epel8_v4_neon: 321.0 221.7 235.8
vp8_put_epel8_v6_c: 3635.5 1703.0 2079.2
vp8_put_epel8_v6_neon: 416.9 317.0 295.5
Signed-off-by: Martin Storsjö <martin@martin.st>
|
|\|
| |
| |
| |
| |
| |
| | |
* commit '52c9b0a6c0d02cff6caebcf6989e565e05b55200':
aarch64: vp8: Port vp8_luma_dc_wht and vp8_idct_dc_add4uv from arm version
Merged-by: James Almer <jamrial@gmail.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Cortex A53 A72 A73
vp8_luma_dc_wht_c: 115.7 75.7 90.7
vp8_luma_dc_wht_neon: 60.7 41.2 45.7
vp8_idct_dc_add4uv_c: 376.1 262.9 282.5
vp8_idct_dc_add4uv_neon: 52.0 29.0 37.0
Signed-off-by: Martin Storsjö <martin@martin.st>
|
|\|
| |
| |
| |
| |
| |
| | |
* commit 'c513fcd7d235aa4cef45a6c3125bd4dcc03bf276':
aarch64: vp8: Fix a typo in a comment
Merged-by: James Almer <jamrial@gmail.com>
|
| |
| |
| |
| | |
Signed-off-by: Martin Storsjö <martin@martin.st>
|
|\|
| |
| |
| |
| |
| |
| | |
* commit 'f1011ea28a4048ddec97794ca3e9901474fe055f':
aarch64: vp8: Reorder the function pointer inits to match the arm original
Merged-by: James Almer <jamrial@gmail.com>
|
| |
| |
| |
| | |
Signed-off-by: Martin Storsjö <martin@martin.st>
|
|\|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* commit 'b4b27dce95a6d40bfcd78043d3abec7d80dae143':
aarch64: vp8: Move the vp8dsp makefile entries to the right places
aarch64: vp8: Remove superfluous includes
This commit is a noop, see
fecf75a5c4f691d1e786992cf1dfa82e76ac1b97
c8bc9d1380dd686a4ee97d3415c976707904e945
Merged-by: James Almer <jamrial@gmail.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Even if NEON would be disabled, the init functions should be built
as they are called as long as ARCH_AARCH64 is set.
These functions are part of a generic DSP subsytem, not tied directly
to one decoder. (They should be built if the vp7 decoder is enabled,
even if the vp8 decoder is disabled.)
Signed-off-by: Martin Storsjö <martin@martin.st>
|
| |
| |
| |
| |
| |
| | |
This fixes building with MSVC, which lacks unistd.h.
Signed-off-by: Martin Storsjö <martin@martin.st>
|
|\|
| |
| |
| |
| |
| |
| | |
* commit '85bfaa4949f4afcde19061def3e8a18988964858':
aarch64: vp8: Use the proper aarch64 form for conditional branches
Merged-by: James Almer <jamrial@gmail.com>
|
| |
| |
| |
| |
| |
| |
| | |
The previous form also does seem to assemble on current tools,
but I think it might fail on some older aarch64 tools.
Signed-off-by: Martin Storsjö <martin@martin.st>
|
|\|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* commit '2eeac79936e83c4495cbe5905064ab797e9b45ff':
aarch64: vp8: Fix assembling with armasm64
aarch64: vp8: Fix assembling with clang
This commit is a noop, see
c950beb68dee016e0e0a1b729d40abf700d32d1a
7ddfa5e9083baec3f9608ec5257fc94a5ae9a3ef
Merged-by: James Almer <jamrial@gmail.com>
|
| |
| |
| |
| | |
Signed-off-by: Martin Storsjö <martin@martin.st>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This also partially fixes assembling with MS armasm64 (via
gas-preprocessor).
The movrel macro invocations need to pass the offset via a separate
parameter. Mach-o and COFF relocations don't allow a negative
offset to a symbol, which is handled properly if the offset is passed
via the parameter. If no offset parameter is given, the macro
evaluates to something like "adrp x17, subpel_filters-16+(0)", which
older clang versions also fail to parse (the older clang versions
only support one single offset term, although it can be a parenthesis.
Signed-off-by: Martin Storsjö <martin@martin.st>
|
|\|
| |
| |
| |
| |
| |
| |
| |
| | |
* commit '0801853e640624537db386727b36fa97aa6258e7':
libavcodec: vp8 neon optimizations for aarch64
See 833fed5253617924c41132e0ab261c1d8c076360
Merged-by: James Almer <jamrial@gmail.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Partial port of the ARM Neon for aarch64.
Benchmarks from fate:
benchmarking with Linux Perf Monitoring API
nop: 58.6
checkasm: using random seed 1760970128
NEON:
- vp8dsp.idct [OK]
- vp8dsp.mc [OK]
- vp8dsp.loopfilter [OK]
checkasm: all 21 tests passed
vp8_idct_add_c: 201.6
vp8_idct_add_neon: 83.1
vp8_idct_dc_add_c: 107.6
vp8_idct_dc_add_neon: 33.8
vp8_idct_dc_add4y_c: 426.4
vp8_idct_dc_add4y_neon: 59.4
vp8_loop_filter8uv_h_c: 688.1
vp8_loop_filter8uv_h_neon: 216.3
vp8_loop_filter8uv_inner_h_c: 649.3
vp8_loop_filter8uv_inner_h_neon: 195.3
vp8_loop_filter8uv_inner_v_c: 544.8
vp8_loop_filter8uv_inner_v_neon: 131.3
vp8_loop_filter8uv_v_c: 706.1
vp8_loop_filter8uv_v_neon: 141.1
vp8_loop_filter16y_h_c: 668.8
vp8_loop_filter16y_h_neon: 242.8
vp8_loop_filter16y_inner_h_c: 647.3
vp8_loop_filter16y_inner_h_neon: 224.6
vp8_loop_filter16y_inner_v_c: 647.8
vp8_loop_filter16y_inner_v_neon: 128.8
vp8_loop_filter16y_v_c: 721.8
vp8_loop_filter16y_v_neon: 154.3
vp8_loop_filter_simple_h_c: 387.8
vp8_loop_filter_simple_h_neon: 187.6
vp8_loop_filter_simple_v_c: 384.1
vp8_loop_filter_simple_v_neon: 78.6
vp8_put_epel8_h4v4_c: 3971.1
vp8_put_epel8_h4v4_neon: 855.1
vp8_put_epel8_h4v6_c: 5060.1
vp8_put_epel8_h4v6_neon: 989.6
vp8_put_epel8_h6v4_c: 4320.8
vp8_put_epel8_h6v4_neon: 1007.3
vp8_put_epel8_h6v6_c: 5449.3
vp8_put_epel8_h6v6_neon: 1158.1
vp8_put_epel16_h6_c: 6683.8
vp8_put_epel16_h6_neon: 831.8
vp8_put_epel16_h6v6_c: 11110.8
vp8_put_epel16_h6v6_neon: 2214.8
vp8_put_epel16_v6_c: 7024.8
vp8_put_epel16_v6_neon: 799.6
vp8_put_pixels8_c: 112.8
vp8_put_pixels8_neon: 78.1
vp8_put_pixels16_c: 131.3
vp8_put_pixels16_neon: 129.8
This contains a fix to include guards by Carl Eugen Hoyos.
Signed-off-by: Martin Storsjö <martin@martin.st>
|
|\|
| |
| |
| |
| |
| |
| | |
* commit '899ee03088d55152a48830df0899887f055da1de':
Unbreak travis on macos
Merged-by: James Almer <jamrial@gmail.com>
|
| | |
|
|\|
| |
| |
| |
| |
| |
| | |
* commit 'f8df5e2f31a5ba7b30a0e1caaaf5a03c753b3f9b':
tests: Add a convenience function for video-only lavf tests
Merged-by: James Almer <jamrial@gmail.com>
|
| |
| |
| |
| |
| | |
Rename a test in the process for consistency and simplicity and
remove the remnants of the now-unused lavf regression test scripts.
|
| | |
|
|\|
| |
| |
| |
| |
| |
| | |
* commit '618d02c1fa9e74d490cace64a7d15762656b521c':
tests: Convert lavf container tests to non-legacy test scripts
Merged-by: James Almer <jamrial@gmail.com>
|
| |
| |
| |
| | |
Rename some tests in the process for consistency and simplicity.
|
|\|
| |
| |
| |
| |
| |
| | |
* commit '896fe15dbb7b78de495c4a7dd75e7faec66778da':
tests: Convert lavf pixfmt conversion tests to non-legacy test scripts
Merged-by: James Almer <jamrial@gmail.com>
|
| |
| |
| |
| | |
Also split monolithic lavf-pixfmt test into individual tests.
|
|\|
| |
| |
| |
| |
| |
| | |
* commit 'a957e9379d11f2982d615f92c30580a57ea8bb40':
tests: Convert lavf image tests to non-legacy test scripts
Merged-by: James Almer <jamrial@gmail.com>
|
| |
| |
| |
| | |
Rename some tests in the process for consistency and simplicity.
|