Commit graph

190 commits

Author SHA1 Message Date
Reima Hyvönen f9c7f6ee66 Added some break-operations for avx2 optimation 2018-07-11 14:15:38 +03:00
Reima Hyvönen cc064da143 some more optimation for bipred 2018-07-11 11:27:54 +03:00
Reima Hyvönen 9a339eef89 Merge branch 'bipred_recon' of https://gitlab.tut.fi/TIE/ultravideo/kvazaar into HEAD
# Conflicts:
#	build/kvazaar_lib/kvazaar_lib.vcxproj
2018-07-10 16:21:04 +03:00
Reima Hyvönen a22cf03ddb Updated to have no movement function to avx2 strategies 2018-07-10 16:07:15 +03:00
Reima Hyvönen ea83ae45f0 Toimiva ratkaisu 2018-07-03 11:18:51 +03:00
Reima Hyvönen 17babfffa4 25.6 working optimation, ~50% faster than original 2018-06-25 17:06:16 +03:00
Arttu Ylä-Outinen c1398ef818 Permit --period=1 with any GOP structure
All intra coding is a special case so it can be permitted even though
Kvazaar normally only supports intra periods that are divisible by the
GOP length.
2018-06-18 12:26:11 +03:00
Arttu Ylä-Outinen cbac8a106e Disable valgrind in tests by default
Changes tests so that valgrind is enabled only when the environment
variable KVZ_TEST_VALGRIND is set and equal to "1".
2018-06-14 09:30:55 +03:00
Arttu Ylä-Outinen 0692375caa Fix clobbered warnings in tests
Adds volatile to loop variables in kvazaar tests in order to fix
clobbered warnings.
2018-06-12 14:00:29 +03:00
Arttu Ylä-Outinen f77ab86959 Add test scripts to EXTRA_DIST
Adds test scripts to EXTRA_DIST in tests/Makefile.am so that they get
included in the tarballs when running make dist.
2017-11-27 12:28:55 +02:00
Arttu Ylä-Outinen 4cb054295a Fix linkers
Overrides the linkers used for kvazaar, libkvazaar.la and kvazaar_tests.
When crypto++ is enabled, the C++ linker is used and when it is
disabled, the C linker is used.

This removes the need to explicitly specify -lstdc++ in configure when
crypto++ is used and fixes the build with crypto++ when libstd++ is not
installed.
2017-11-13 15:09:38 +02:00
Arttu Ylä-Outinen ebddd854dc Fix clobbered warnings in tests
Adds volatile to loop variables in kvazaar tests in order to fix "might
be clobbered by ‘longjmp’ or ‘vfork’" warnings when building with -O3.
2017-08-11 14:18:12 +03:00
Arttu Ylä-Outinen 242c11d379 Use deblock and SAO in tiles tests
Reveals a bug in SAO when using tiles.
2017-08-01 14:34:44 +03:00
Arttu Ylä-Outinen dca71a9091 Add tests for coefficient sum strategy 2017-07-28 07:39:18 +03:00
Arttu Ylä-Outinen edbe00763e Drop extra parameter in kvz_image_calc_sad
Drops the parameter max_lcu_below which was always set to -1.
2017-07-24 15:21:19 +03:00
Jan Beich bb01721cf8 tests: load util.sh from source directory
$ mkdir build
$ cd build
$ ../kvazaar/configure
$ gmake check VERBOSE=1
...
FAIL: test_gop.sh
=================

.: cannot open util.sh: No such file or directory
FAIL test_gop.sh (exit status: 2)

FAIL: test_interlace.sh
=======================

.: cannot open util.sh: No such file or directory
FAIL test_interlace.sh (exit status: 2)
2017-06-28 06:27:46 +00:00
Jan Beich adf0bfea07 tests: drop mktemp(1) flags for better compatibility
$ mktemp --tmpdir tmp.XXXXXXXXXX.yuv
mktemp: illegal option -- -
usage: mktemp [-d] [-q] [-t prefix] [-u] template ...
       mktemp [-d] [-q] [-u] -t prefix
$ gmktemp --tmpdir tmp.XXXXXXXXXX.yuv
/tmp/tmp.ddQTBn4XmE.yuv

$ mktemp -t tmp.XXXXXXXXXX.yuv
/tmp/tmp.XXXXXXXXXX.yuv.SYYNp8Ki
$ gmktemp -t tmp.XXXXXXXXXX.yuv
/tmp/tmp.2ena2nKgv5.yuv

$ mktemp -t yuv
/tmp/yuv.rX2UAbax
$ gmktemp -t yuv
gmktemp: too few X's in template ‘yuv’
2017-06-28 05:22:46 +00:00
Jan Beich 0280871287 tests: convert scripts to POSIX shell
$ gmake check VERBOSE=1
[...]
FAIL: test_external_symbols.bash
================================

../build-aux/test-driver: ./test_external_symbols.bash: not found
FAIL test_external_symbols.bash (exit status: 127)

FAIL: test_gop.bash
===================

../build-aux/test-driver: ./test_gop.bash: not found
FAIL test_gop.bash (exit status: 127)
[...]
2017-06-28 05:22:46 +00:00
Arttu Ylä-Outinen 3da5558956 Add an LP-GOP test 2017-06-22 09:44:01 +03:00
Arttu Ylä-Outinen 674af752a2 Convert travis tests to scripts
Moves tests from .travis.yml to bash scripts in tests directory. Adds
the test scripts to tests/Makefile.am so that they are included when
running make check.
2017-06-22 09:37:55 +03:00
Arttu Ylä-Outinen 094b39e7fc Refactor inter MV/merge candidate selection
Adds struct merge_candidates_t for holding the spatial and temporal
merge candidates. Changes functions with separate parameters for each
candidate to use the struct instead.
2017-02-22 15:56:36 +09:00
Ari Koivula 17f3f6bc86 Add clipped test cases to inter speed tests
Add tests for the extreme shapes that can happen when a motion vector
points outside the frame. A single pixel case where it probably doesn't
make sense to call a vectorized function, and the maximum size where it
definitely does make sense to call a vectorized function.
2016-09-01 23:08:16 +03:00
Ari Koivula f098e46f4f Add a more realistic speed test for inter sad
Inter SAD accesses pixels directly from the frame buffers, so give it
a 4k frame to work in for more realistic results. The old test used
intra test data, which consist of tiny buffers.
2016-09-01 20:30:26 +03:00
Ari Koivula 9ea7bfd19a Return calls per second from speed tests
Sometimes the tests overrun their time limit by varying amounts.
Return calls per second based on the amount of time actually spent in
the loop instead of how much time we tried to spend in the loop.
2016-08-30 15:23:44 +03:00
Ari Koivula 07a919cb3e Add speed tests for dual intra SAD functions
The speed test suite was crashing due to these being missing.
2016-08-30 15:23:11 +03:00
Ari Koivula 345ef833d7 Add more tests for inter SAD
The existing tests only covered the edge cases of border extension, but
not the SIMD optimized versions of reg_sad. This adds proper tests for
current optimized reg_sad implementations and ones we are likely to
have in the future.
2016-08-30 15:22:05 +03:00
Ari Koivula 032ed30ff4 Add chroma format support to kvz_picture
Add picture_alloc_csp to libkvz api to allocated pictures with chroma
format different from 420.
2016-08-24 19:20:53 +03:00
Arttu Ylä-Outinen 2ae260e422 Change width of cells in lcu_t to 4 pixels.
Intra mode info for NxN partition units is now stored in the
corresponding 4x4 cell in lcu_t.cu array.
2016-06-16 18:53:17 +09:00
Arttu Ylä-Outinen 98aa906f30 Drop field coded from cu_info_t
It can be inferred from the position and size of the CU.
2016-06-14 12:21:57 +09:00
Arttu Ylä-Outinen e14858f41a Fix build and tests.
- Remove non-existent file interface_main.c from library sources.
- Add file mv_cand_tests.c to test sources.
2015-12-21 16:03:55 +02:00
Arttu Ylä-Outinen 9abdee7cc3 Merge branch 'autotools' 2015-12-21 15:54:30 +02:00
darealshinji 8427a85d36 Add tests 2015-12-19 08:24:35 +01:00
Arttu Ylä-Outinen 1cd149fb97 Check merge/mv candidate types earlier.
Moves checks for motion vector prediction and merge candidate block
types (inter/intra) from functions kvz_inter_get_mv_cand and
kvz_inter_get_merge_cand to kvz_inter_get_spatial_merge_candidates.
2015-12-15 11:21:39 +02:00
Arttu Ylä-Outinen 969c91d7c4 Add a test for kvz_inter_get_spatial_merge_candidates. 2015-12-15 11:21:39 +02:00
Ari Koivula 0722f461c5 Fix compiling tests on mac
The mac version of KVZ_GET_TIME macro has many statements, which
prevented it being used inside a for loop statement. Added brackets
to all versions to prevent this issue arising in the future.

Fixes #115.
2015-11-13 22:57:29 +02:00
Ari Koivula 93637f4683 Move macros in threads.h to KVZ_ namespace 2015-11-13 22:46:32 +02:00
Ari Lemmetti 6214e2b328 Fix small typos 2015-10-05 19:41:23 +03:00
Ari Lemmetti 9051fbf593 Fix function names in speed tests 2015-09-18 17:15:59 +03:00
Ari Koivula 09baa6bd5e Fix intra_sad and satd_tests
The tests were not being run, because the names have changed.
2015-09-18 15:26:37 +03:00
Arttu Ylä-Outinen 3a10e9e3e0 Prefix all non-static symbols with "kvz_". 2015-08-26 13:02:28 +03:00
Ari Lemmetti 5d96dbc6c0 Make strategy selection use bit depth given via parameter instead of excluding registration with defines 2015-08-12 13:33:38 +03:00
Ari Lemmetti f6ffa1af8b Disable tests with bit depth other than 8 2015-08-12 11:36:32 +03:00
Ari Lemmetti 4122f36089 Prevent the registration of strategies that are incompatible when KVZ_BIT_DEPTH != 8
Remove unnecessary or misleading mentions of "8bit"
2015-08-12 11:29:53 +03:00
Arttu Ylä-Outinen e3fbd6d2be Fix test compilation warnings.
- Turn global variables static.
- Increase size of bufs array in intra_sad_tests.
2015-07-02 16:58:30 +03:00
Arttu Ylä-Outinen f7f17a060c Rename pixel_t to kvz_pixel. 2015-07-02 16:58:28 +03:00
Arttu Ylä-Outinen 17d720363a Rename struct image_t to kvz_picture. 2015-07-02 16:55:48 +03:00
Arttu Ylä-Outinen fab07d80da Rename macro BIT_DEPTH to KVZ_BIT_DEPTH. 2015-07-02 16:55:47 +03:00
Arttu Ylä-Outinen fe3b629905 Move poc from image_t to image_list_t. 2015-07-02 16:24:25 +03:00
Ari Koivula ded6fd9ee8 Renamed typedef pixel to pixel_t. 2015-03-04 16:35:53 +02:00
Ari Koivula e95b138e62 Rename struct strategy_list to strategy_list_t. 2015-03-04 16:23:04 +02:00
Ari Koivula 95afc5af51 Rename struct strategy to strategy_t. 2015-03-04 16:17:45 +02:00
Ari Koivula fe55961f84 Rename struct image to image_t. 2015-03-04 14:01:17 +02:00
Ari Koivula d7383ccb25 Change license to LGPL.
- Everyone who has contributed code to the project has been asked to license
  their contributions under LPGL and they have agreed.

- COPYING file changed to say LGPLv2.1 instead of GPLv2.

- GPL changed to LGPL in the header of every single file that a header and
  header added to the few that were missing one.

- Also.. Happy new year!
2015-02-25 15:19:05 +02:00
Ari Koivula 5fa6438b25 Clean up calls to memset.
- Replaces all calls to memset with new FILL and FILL_ARRAY macros. The use
  of memset was inconsistent and we never use it for anything complicated.
2015-02-19 16:25:28 +02:00
Ari Lemmetti dfd40467c4 Removed duplicate consts. 2014-10-29 15:42:16 +02:00
Ari Lemmetti a64aae7c53 Makefile now compiles tests. Fixed test files. Removed unused stuff. 2014-10-29 15:32:47 +02:00
Ari Koivula f6272f06fc Unify signature for transform functions.
- Some used block, coeff and some src, dst. Now all signatures are const input
  and non-const output.
2014-10-03 11:21:43 +03:00
Ari Koivula 4e6691cff1 Fix problems with unit tests.
- Cast function pointers to correct function signatures.
- Increase number of buffers on SATD tests so the initialization doesn't
  overflow them and initialize the unused buffers to null.
2014-10-03 11:14:57 +03:00
Ari Lemmetti 823ee69c64 Added tests for DCT/IDCT 2014-10-02 13:24:29 +03:00
Ari Koivula d93f0ac71f Add benchmark test for dct functions. 2014-07-31 13:25:28 +03:00
Ari Koivula 150a47435d Add missing files. 2014-07-30 15:26:20 +03:00
Ari Koivula b5944d5d3c Move test strategy initialization to its own module. 2014-07-29 08:31:28 +03:00
Ari Koivula 538c9ec85b Add a benchmark for strategies.
- usage: kvazaar_tests -v -s speed

Conflicts:
	build/kvazaar_tests/kvazaar_tests.vcxproj
	build/kvazaar_tests/kvazaar_tests.vcxproj.filters
	tests/tests_main.c
2014-07-28 12:34:12 +03:00
Ari Koivula fa39a44fac Add gradient test to intra sad. 2014-07-28 12:31:49 +03:00
Ari Lemmetti 7309706e94 Removed unnecessary stuff from intra_sad_tests.c 2014-07-23 11:51:17 +03:00
Ari Lemmetti a64df6f0d0 Merge branch 'asm'
Conflicts:
	build/kvazaar_lib/kvazaar_lib.vcxproj.filters
	src/Makefile
	src/strategies/strategies-picture.c
2014-07-21 16:41:09 +03:00
Ari Koivula a8f7103797 Add AVX2 implementations for sad_8bit_ 8x8, 16x16 and 32x32. 2014-07-18 18:27:30 +03:00
Ari Lemmetti 1e94262f85 Made AVX asm compatible with the changed system
- x86inc.asm is now located in extras
- Removed unused cpu.asm/h
2014-07-14 18:51:17 +03:00
Ari Lemmetti 2169f9ab8c Added AVX asm comments and fixes
-Added vzeroupper to satd macro to prevent AVX-SSE transition penalties int picture_x86.asm
-Fixed the order of registers in zero extend macro in picture_x86.asm
-Fixed SATD checkers test pattern in satd_tests.c
2014-07-14 14:43:36 +03:00
Ari Lemmetti 048127c7e3 AVX assembly optimizations improved 2014-07-02 16:57:06 +03:00
Ari Koivula ab3845c9c7 Add some intra sad tests. 2014-06-16 18:03:56 +03:00
Ari Koivula 4469b1680f Fix inter sad tests.
- Because intra sad functions were added to the same module, they were being
  called as if they were reg_sad, which of course failed.

Conflicts:
	tests/sad_tests.c
2014-06-16 18:03:39 +03:00
Ari Koivula cebdd7d5f9 Update tests. 2014-06-16 16:07:11 +03:00
Ari Koivula 5fad064754 Add unit tests for intrinsic reg_sad functions. 2014-06-13 15:30:23 +03:00
Ari Koivula 9a3569b5c6 Update unit tests to work with current build.
- Updating picture_list wasn't really worth it so I removed it.
2014-06-13 15:30:23 +03:00
Ari Koivula db0bcfff98 Update unit tests.
- Vectors that point far outside the frame don't work, although the special
  case of them pointing right beside the frame works. So test for vectors
  pointing farther away.
- Update include directory for greatest.
2014-02-07 14:24:18 +02:00
Ari Koivula 478740cf21 Add missing new lines to ends of files. 2014-02-03 16:54:03 +02:00
Ari Koivula 6b4d113feb Replace seatest with greatest as a framework for unit tests.
- Add our own Github fork of greatest as a submodule, in case we want to
  improve it and push changes upstream easily in the future.
- Update existing unit tests to use greatest.
- Update Visual Studio project to remove traces of seatest and include greatest.
2014-01-31 15:57:49 +02:00
Ari Koivula 7d5c3f7d0f Rename sad_tests.cpp to sad_tests.c. 2014-01-31 14:36:50 +02:00
Ari Koivula 69d1f6d1e2 Clean up the code.
- Rename get_block_sad to calc_sad and handle special cases in general_sad.
- Remove old search functions because I don't want to update or test them.
2013-10-11 15:19:21 +03:00
Ari Koivula b155d825be Add tests for movement vectors that are completely out of frame. 2013-10-11 14:11:49 +03:00
Ari Koivula 22262dbc98 Fix a bug in a test. 2013-10-11 12:38:14 +03:00
Ari Koivula d3561146d8 Change sad-tests to use chars instead of numbers to help with debugging.
1 + 48 is ascii '1' and so on.
2013-10-10 21:50:41 +03:00
Ari Koivula 356a0e8a14 Change SAD-test offset.
Using 3 instead of 4 avoids having symmetric negation of the offset, like
-4 and +4. It also makes the expected result easier to calculate by hand.
2013-10-10 15:16:14 +03:00
Ari Koivula 24d9fd7c05 Fix wrong index in sad tests. 2013-10-10 14:04:19 +03:00
Ari Koivula 68aa70a49a Add tests for calculating sad outside frame. 2013-10-09 15:31:27 +03:00
Ari Koivula aa2ee15060 Add a simple test for picture_list.
- Add solution/src to includes for all projects.
- Add solution/../../seatest to includes for all projects.
2013-09-24 21:29:56 +03:00
Ari Koivula 0df24a3a5b Rename tests/main.c to tests_main.c. 2013-09-24 16:34:49 +03:00
Ari Koivula 74b8bf8c0a Add example unit tests. 2013-09-24 13:59:19 +03:00
Ari Koivula 2fc6696536 Add Visual Studio project for unit tests. 2013-09-24 13:58:00 +03:00