Commit graph

54 commits

Author SHA1 Message Date
Pauli Oikkonen 0c7bfa7dc9 Fix AVX2 on Clang
Besides just -mavx2, AVX2 support depends on a couple minor instruction
set extensions that should always exist on AVX2-capable hardware. Too
bad the different bit twiddling instructions are invoked slightly
differently between GCC and Clang, but now Clang seems to also produce
an AVX2-capable build.
2020-03-26 18:48:48 +02:00
Joose Sainio e823ac1dae miscellaneous fixes
- bump library version
- add help desk for --clip-neighbour
- update the default values of --clip-neighbour and --intra-bits
- update tests to more sensible
2020-03-19 10:47:28 +02:00
Ari Lemmetti ebb183cc01 Add option to make intra QP offset configurable 2020-02-15 22:54:48 +02:00
Ari Lemmetti 9a0236bb4e Add option 'zero-coeff-rdo' 2020-02-04 21:26:29 +02:00
Ørjan Malde 7bab0e830a
include support for midipix 2019-07-22 15:43:02 +02:00
Ari Lemmetti 4097331fd6 Early skip 2019-07-09 15:59:31 +03:00
Pauli Oikkonen 940b0e9e6a Require BMI2 for AVX2 build
Any processor implementing AVX2 should also implement BMI2
2018-12-18 19:41:09 +02:00
Pauli Oikkonen c5cd03497e Require BMI and ABM instruction sets for AVX2 build
AVX2 support on a processor should always imply BMI and ABM support.
The lzcnt and tzcnt instructions have more suitable semantics in the
corner case that source word is 0, and allow us to even handle that
scenario without a branch. Apparently Visual Studio will already
include this support when building with AVX2 enabled, so only the
automake files need to be tweaked.
2018-12-03 15:36:32 +02:00
Jan Beich 4f4bea7496 Check -maltivec is supported before using
PowerPC target may lack or have non-standard FPU:

$ cc -dumpmachine
powerpcspe-undermydesk-freebsd
$ cc -c -maltivec -Isrc src/strategies/altivec/picture-altivec.c
src/strategies/altivec/picture-altivec.c:1: error: AltiVec and E500 instructions cannot coexist
2018-07-02 23:25:23 +00:00
Arttu Ylä-Outinen ff17e0ba17 Enable -Wextra
Enables extra warnings with -Wextra by default and disables sign-compare
and unused-parameter warnings.
2018-06-12 11:20:42 +03:00
Ari Lemmetti 4fb1c16c61 Add early termination for intra rdo when a zero coefficient block is found. 2018-06-08 21:03:07 +03:00
Fabrice Fontaine 411276d6f2 Check also for libcryptopp.pc in configure.ac
cryptopp in version 6.1.0 added a pkg config file which is named libcryptopp.pc
so search also for this name in addition to cryptopp and libcrypto++

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
2018-03-04 17:01:26 +01:00
Arttu Ylä-Outinen cf85d52b9d Kvazaar version 1.2.0 2017-11-17 15:23:33 +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 fb99aeb56e Force configure to check -lpthread
GCC requires -lpthread in order to link the shared library against the
pthread library. By default the AX_PTHREAD macro only outputs the
-pthread flag for GCC. Changed to force AX_PTHREAD to check -lpthread.
2017-10-27 15:59:36 +03:00
Alexandre Esse c7d00e9a6d Change some configure.ac library searching order.
./configure --with-cryptopp failed while cross-compiling for an ARM target and this fixed it.
2017-06-17 00:03:46 +02:00
Arttu Ylä-Outinen 85ac7e6b7a Fix build with --with-cryptopp --disable-shared
Adds -lstdc++ to LIBS in configure when cryptopp is enabled. Without
-lstdc++ linking fails when configured with --with-cryptopp and
--disable-shared.
2017-05-23 15:31:45 +03:00
Ari Lemmetti 033bc6bc45 Disable -Werror by default. Enable it on Travis. 2017-04-11 14:31:05 +03:00
Ari Koivula 52904d3e9f Add --slices=tiles and --slices=wpp
This encapsulates tiles or WPP rows into their own slices, making
it possible to send them as soon as they are done, instead of waiting
for the other substreams to finish and coding the substream offsets
in the slice header.
2017-01-31 15:44:23 +02:00
Ari Koivula 4a0121ac42 Add --roi parameter
Adds region of interest coding capability.

Works by reading a file of delta QP values which will then be applied
to each frame at LCU level.
2017-01-26 09:14:14 +02:00
Arttu Ylä-Outinen 8ae791a3e1 Fix building with crypto++
Depending on the distro, the pkg-config package name of crypto++ could
be either cryptopp or libcrypto++. This commit changes configure to
check for both instead of cryptopp only.
2016-10-10 15:13:20 +09:00
Arttu Ylä-Outinen 5fb7afe8c4 Add --implicit-rdpcm command line parameter.
Makes it possible to use lossless coding without implicit residual DPCM.
2016-10-03 20:01:55 +09:00
Ari Koivula 48ccc26839 Add --input-format and --input-bitdepth
Adds reading of 10 bit input for 10-bit encoding.
2016-08-24 19:20:53 +03:00
Marko Viitanen e61c9469a0 Increase API minor version 2016-08-10 15:06:07 +03:00
Arttu Ylä-Outinen 23e7d9bb37 Add --lossless command line parameter. 2016-08-03 14:25:08 +09:00
Ari Koivula 00fb79aeaa Add missing quotes in configure.
Hopefully fixes #138.
2016-08-01 14:35:42 +03:00
Ari Lemmetti d17b9e7d6e Allow subme parameters 0-4
Update usage, presets,defaults,lib version
2016-07-12 19:49:38 +03:00
Eemeli Kallio 5af6ab320c Merge branch 'me_early_terminate'
Conflicts:
	configure.ac
	src/cfg.c
	src/cli.c
	src/kvazaar.h
	src/search_inter.c
2016-06-14 15:03:35 +03:00
Eemeli Kallio 43c7778b82 Updated version number. 2016-06-14 10:53:04 +03:00
Ari Koivula a2170f0763 Compile the cryptopp wrapper only when used
This should allow us to avoid an unnecessary dependancy to a C++
compiler.

Conflicts:
	configure.ac
2016-06-07 17:11:12 +03:00
Ari Koivula 651e84ff85 Rename --with-libcryptopp to --with-cryptopp 2016-06-07 17:10:13 +03:00
Ari Koivula 1354b9a997 Rename crypto define to KVZ_SEL_ENCRYPTION
KVC is a typo.
2016-06-07 16:56:55 +03:00
Ari Koivula 60ea8a359f Add --crypto parameter 2016-06-07 10:31:40 +02:00
Wassim Hamidouche 4637c8a828 compile Kvazaar encoder with ITpp library 2016-06-07 08:33:04 +02:00
Ari Koivula cd2d1dd1d1 Update ax_pthread
The new version should work around problems with clang and -pthread.
2016-05-31 11:56:34 +03:00
Ari Koivula f51a68b6fa Add different sizes of search window for full search 2016-04-21 15:11:35 +03:00
Ari Koivula 883448b8fb Add --hash parameter
Allows decoded picture hash to be selected among none and checksum.
2016-03-18 05:20:15 +02:00
Ari Koivula b1adf1576a Add --mv-constraint=frametilemargin
Add an even stricter motion vector constraint to prevent motion vectors
to fractional pixel positions that would need pixels outside the tile.
2016-02-29 19:18:14 +02:00
Ari Koivula 9dbbb7fdbc Add --mv-constraint argument 2016-02-29 14:33:06 +02:00
Ari Koivula dac57fa154 Fix syntax error in configure
Might help with #125.
2016-02-16 11:09:47 +02:00
Ari Koivula 8ad7d2a714 Move interlacing stuff to libkvazaaar API
This moves the interlacing from CLI code to api->encoder_encode, in
order to make it possible to use field coding through the lib API.

The field order is now determined per frame, as FFmpeg gives it per
frame and it's signaled per frame.

As a side effect, the CLI also now prints info from frames instead of
fields. While we might want to extend the API in the future to allow
printing of more detailed information about fields, for now it's
more important that the CLI uses the real lib API.

PSNR calculation for interlaced frames disabled until we have a way to
avoid deinterlacing the frame when it's not necessary.
2016-01-27 15:29:45 +02:00
Ari Koivula 249c88011e Fix problem with >2GB input files on 32bit 2016-01-22 15:15:02 +02:00
Ari Koivula 5e734593c0 Add psnr argument to CLI
To disable calculation of PSNR for frames, printing 0.0dB instead.
2016-01-21 15:08:34 +02:00
Ari Koivula 9eba3a83cc Add compiler flag checking to configure 2016-01-20 16:32:34 +00:00
Ari Koivula 99198075d5 Merge branch 'autoconf' of git://github.com/darealshinji/kvazaar into master 2016-01-19 16:25:12 +02:00
Ari Koivula e2402c0000 Remove kva_api_get versioning.
We have soname versioning now, so we should focus on getting that right
instead. This also serves as an example of correctly incrementing the
lib-version.
2016-01-15 19:39:24 +02:00
Ari Koivula a197ebd820 Add guide to changing the lib version number. 2016-01-15 19:29:22 +02:00
Ari Koivula 383e0a11a3 Bump lib version
Due to adding stuff to config struct.
2016-01-14 22:27:49 +02:00
Ari Lemmetti a9bd7b9e63 Bump version numbers for release v0.8.0 2016-01-14 20:38:28 +02:00
darealshinji 0b22277360 check explicitly for math library 2015-12-21 16:58:33 +01:00