Commit graph

63 commits

Author SHA1 Message Date
Ari Lemmetti e93fa54838 Added -lrt to fix undefined references to clock_gettime on some systems 2014-10-23 14:51:28 +03:00
Ari Lemmetti eb7cecc3dd Added .travis.yml for continuous integration. Added env variable to disable AVX2 for Travis (GCC version doesn't support it yet). 2014-10-23 14:20:07 +03:00
Ari Lemmetti 20967cfafe Allow CC to be defined other than gcc. If not defined, use gcc as default. 2014-10-23 13:25:00 +03:00
Ari Koivula b32867be2a Remove -lrt from LDFLAGS.
- This might be required on some embedded system, but from what I can see
  all the functions we use from real time extensions are included in libc
  and the program seems to work fine without it.
- It doesn't exist on MingwW or Mac, so I think it's better to remove it
  completely and add it later on any system that actually requires it.
- Related to #85.
2014-10-14 11:48:57 +03:00
Ari Koivula 6f8a976b12 Give ARCH_X86_64 to yasm on Mac.
- Issue raised in #85.
2014-10-14 09:47:56 +03:00
Ari Lemmetti 0beb278f5b Partial butterfly strategy is now called DCT strategy. Made changes to transform functions in preparation for optimizations.
-Moved fast_forward_dst and fast_inverse_dst to DCT strategies
2014-07-31 13:25:28 +03:00
Ari Lemmetti faccc4f09b Partial butterfly functions now utilize the strategy selector 2014-07-31 13:25:28 +03:00
Ari Koivula c2fac805d7 Give HAVE_ALIGNED_STACK to yasm on windows.
- Linux gets it through some other means but on windows it needs to be
  given explicitly.

- Fixes issue #78.
2014-07-30 16:26:23 +03:00
Ari Koivula e00102f0ca Compile asm optimizations only if yasm is present. 2014-07-23 14:57:40 +03:00
Ari Lemmetti bd6e89c1f0 Updated include directories and file names to Makefile 2014-07-22 15:36:54 +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 Lemmetti 1be2c3aae5 Preparing push to master and misc
-Removed unnecessary <math.h> headers
-Updated AVX/asm optimizations to match the new file hierarchy
-Makefile only compiles .asm files if KVAZAAR_DISABLE_YASM is not set to 1 and TARGET_CPU_ARCH is x86
2014-07-21 12:39:56 +03:00
Ari Koivula a8f7103797 Add AVX2 implementations for sad_8bit_ 8x8, 16x16 and 32x32. 2014-07-18 18:27:30 +03:00
Ari Koivula 291817667f Tidy up the Makefile. 2014-07-18 17:31:18 +03:00
Ari Koivula e241866f43 Compile intrinsic functions with appropriate flags in gcc.
- Remove -march=native as it's no longer necessary for intrinsics to work.
  Closes #77.

- I couldn't test altivec or sse4.1, but sse4.1 compiles so I expect it
  to work.
2014-07-18 17:28:14 +03:00
Ari Lemmetti 683eda1183 Merge branch 'master' into asm
Conflicts:
	build/kvazaar_lib/kvazaar_lib.vcxproj
	build/kvazaar_lib/kvazaar_lib.vcxproj.filters
	src/Makefile
	src/strategies/strategies-picture.c
2014-07-14 16:42:33 +03:00
Ari Lemmetti 7f873e037c Updated Makefile to compile picture_x86.asm 2014-07-14 15:30:08 +03:00
Ari Koivula 5d0df56c94 Move optimizations to their own compilation units according to target.
- This is necessary in order to compile AVX intrinsics correctly in
  Visual Studio. Having everything in their own units should also make
  compiling normal C code with optimizations on easier.

- For now the makefile still relies on GCC __target__ attribute for compiling
  intrinsics.
2014-07-11 17:26:19 +03:00
Ari Koivula 7532b789f8 Add -std=gnu99 for gcc.
- std=c99 doesn't work because then struct timespec won't be defined.
2014-06-17 16:15:39 +03:00
Ari Koivula 1de102be61 Move strategies to their own compilation units.
- Enforces a little bit more hierarchy. Compilation units are in strategies
  and whatever inline includes they have are in a folder with the same name
  as the strategy.
2014-06-13 15:30:23 +03:00
Ari Koivula ea830d3dd2 Add warning for VLAs in Makefile. 2014-06-12 09:57:08 +03:00
Laurent Fasnacht e1d9cb015a Basic checkpointing system 2014-06-11 10:29:03 +02:00
Laurent Fasnacht 27a49d287d Big refactor to use videoframe, image_list, and image instead of picture* 2014-06-10 09:19:06 +02:00
Laurent Fasnacht 530faf3951 Move video frame related stuff to videoframe 2014-06-05 14:08:31 +02:00
Laurent Fasnacht 0fac77f9eb Image now in separate module 2014-06-05 14:04:12 +02:00
Laurent Fasnacht 821b71910b Move picture_list to its own module 2014-06-05 09:49:24 +02:00
Laurent Fasnacht aad2089fcf Use -ftree-vectorize 2014-06-05 06:57:50 +02:00
Ari Koivula cb7d7f9e15 Update Makefile. 2014-06-04 17:52:28 +03:00
Laurent Fasnacht 2e821b79a9 encoder_state in now in encoder_state.[ch] 2014-06-03 13:51:30 +02:00
Laurent Fasnacht 4f86919d75 Get rid of assembly cpuid for x86, compilation works for powerpc 2014-05-28 15:04:00 +02:00
Laurent Fasnacht 86e01284b8 Add -lrt 2014-05-16 08:48:54 +02:00
Laurent Fasnacht baede7f6c4 threadqueue 2014-05-14 13:27:08 +02:00
Laurent Fasnacht 2c2a2528f3 Remove openmp stuff 2014-05-14 13:27:06 +02:00
Laurent Fasnacht 161fe38f5e Remove USE_TILES define 2014-05-01 13:58:13 +02:00
Ari Koivula d808fe3b02 Merge branch 'strategy_selector' 2014-04-29 15:36:48 +03:00
Laurent Fasnacht bf7e755cf7 Strategies and runtime detection/choice of best algorithm 2014-04-29 11:51:41 +02:00
Ari Koivula 27b94d4b45 Address gcc -Wtype-limits errors.
- Fixes warnings in #19 and #16.
2014-04-29 09:15:52 +03:00
Ari Koivula 2a17e9a7aa Merge branch 'sse_intrinsics' 2014-04-28 19:38:08 +03:00
Ari Koivula cecf4b0b4e Move __USE_MINGW_ANSI_STDIO to Makefile.
- I'm not too clear on how this should be used, but having it in the source
  file after mingw stuff was included caused a warning about redefinition of
  __USE_MINGW_ANSI_STDIO.
2014-04-28 19:37:37 +03:00
Laurent Fasnacht d66f809734 reg_sad implementation using SSE2/SSE4.1 intrinsics 2014-04-28 15:36:58 +02:00
Yusuke Nakamura 0214d4ffcc Makefile: Remove unneeded arguments in CCFLAGS.
This fixes a compilation on clang.
2014-04-27 00:41:10 +09:00
Yusuke Nakamura 03da39e229 config: Use built-in getopt on non-MSVC environments. 2014-04-27 00:40:52 +09:00
Laurent Fasnacht 7719837f17 Simple OpenMP parallelization 2014-04-25 09:11:10 +02:00
Laurent Fasnacht 83360918ba Removed table generation from main code, moved it to tools. 2014-04-17 11:13:15 +02:00
Laurent Fasnacht 9901c38dd5 scalinglist in independent file 2014-04-16 10:25:16 +02:00
Laurent Fasnacht 9112cbb58c Generate and use static tables 2014-04-16 09:49:09 +02:00
Laurent Fasnacht 86c1cf339f Add Makefile to dependencies 2014-04-15 15:47:40 +02:00
Laurent Fasnacht 29c93d8f3f Automatic generation of build dependencies 2014-04-15 13:52:31 +02:00
Laurent Fasnacht 64f3f57af3 Compile with -Werror 2014-04-14 09:38:37 +02:00
Ari Koivula 61256fc31a Enable -Wall by default. 2014-04-04 13:02:08 +03:00