|
Packit |
36d0ea |
Getting libaec
|
|
Packit |
36d0ea |
==============
|
|
Packit |
36d0ea |
|
|
Packit |
36d0ea |
The source code of libaec is hosted at DKRZ GitLab.
|
|
Packit |
36d0ea |
|
|
Packit |
36d0ea |
## Source code and binary releases
|
|
Packit |
36d0ea |
|
|
Packit |
36d0ea |
The latest releases of libaec can be downloaded at the following
|
|
Packit |
36d0ea |
location:
|
|
Packit |
36d0ea |
|
|
Packit |
36d0ea |
https://gitlab.dkrz.de/k202009/libaec/tags
|
|
Packit |
36d0ea |
|
|
Packit |
36d0ea |
## Developer snapshot
|
|
Packit |
36d0ea |
|
|
Packit |
36d0ea |
git clone https://gitlab.dkrz.de/k202009/libaec.git
|
|
Packit |
36d0ea |
|
|
Packit |
36d0ea |
|
|
Packit |
36d0ea |
Installation
|
|
Packit |
36d0ea |
============
|
|
Packit |
36d0ea |
|
|
Packit |
36d0ea |
## General considerations
|
|
Packit |
36d0ea |
|
|
Packit |
36d0ea |
Libaec achieves the best performance on 64 bit systems. The library
|
|
Packit |
36d0ea |
will work correctly on 32 bit systems but encoding and decoding
|
|
Packit |
36d0ea |
performance will be much lower.
|
|
Packit |
36d0ea |
|
|
Packit |
36d0ea |
## Installation from source code release with configure
|
|
Packit |
36d0ea |
|
|
Packit |
36d0ea |
The most common installation procedure on Unix-like systems looks as
|
|
Packit |
36d0ea |
follows:
|
|
Packit |
36d0ea |
|
|
Packit |
36d0ea |
Unpack the tar archive and change into the unpacked directory.
|
|
Packit |
36d0ea |
|
|
Packit |
36d0ea |
mkdir build
|
|
Packit |
36d0ea |
cd build
|
|
Packit |
36d0ea |
../configure
|
|
Packit |
36d0ea |
make check install
|
|
Packit |
36d0ea |
|
|
Packit |
36d0ea |
## Installation from source code release with CMake
|
|
Packit |
36d0ea |
|
|
Packit |
36d0ea |
As an alternative, you can use CMake to install libaec.
|
|
Packit |
36d0ea |
|
|
Packit |
36d0ea |
Unpack the tar archive and change into the unpacked directory.
|
|
Packit |
36d0ea |
|
|
Packit |
36d0ea |
mkdir build
|
|
Packit |
36d0ea |
cd build
|
|
Packit |
36d0ea |
cmake ..
|
|
Packit |
36d0ea |
make install
|
|
Packit |
36d0ea |
|
|
Packit |
36d0ea |
You can set options for compiling using the CMake GUI by replacing the cmake
|
|
Packit |
36d0ea |
command with
|
|
Packit |
36d0ea |
|
|
Packit |
36d0ea |
cmake-gui ..
|
|
Packit |
36d0ea |
|
|
Packit |
36d0ea |
or by setting the options manually, e.g.
|
|
Packit |
36d0ea |
|
|
Packit |
36d0ea |
cmake -DCMAKE_INSTALL_PREFIX=~/local ..
|
|
Packit |
36d0ea |
|
|
Packit |
36d0ea |
in order to set the install prefix to ~/local
|
|
Packit |
36d0ea |
|
|
Packit |
36d0ea |
CMake can also generate project files for Microsoft Visual Studio when
|
|
Packit |
36d0ea |
used in Windows.
|
|
Packit |
36d0ea |
|
|
Packit |
36d0ea |
## Installation from cloned repository
|
|
Packit |
36d0ea |
|
|
Packit |
36d0ea |
The configure script is not included in the repository. You can
|
|
Packit |
36d0ea |
generate it with autotools:
|
|
Packit |
36d0ea |
|
|
Packit |
36d0ea |
cd libaec
|
|
Packit |
36d0ea |
autoreconv -iv
|
|
Packit |
36d0ea |
mkdir build
|
|
Packit |
36d0ea |
cd build
|
|
Packit |
36d0ea |
../configure
|
|
Packit |
36d0ea |
|
|
Packit |
36d0ea |
Also not included are CCSDS sample data which are needed for
|
|
Packit |
36d0ea |
testing. They have to be downloaded prior to running 'make check':
|
|
Packit |
36d0ea |
|
|
Packit |
36d0ea |
make update-sampledata
|
|
Packit |
36d0ea |
make check install
|
|
Packit |
36d0ea |
|
|
Packit |
36d0ea |
|
|
Packit |
36d0ea |
Intel compiler settings
|
|
Packit |
36d0ea |
=======================
|
|
Packit |
36d0ea |
|
|
Packit |
36d0ea |
The Intel compiler can improve performance by vectorizing certain
|
|
Packit |
36d0ea |
parts of the code on x86 architectures. Assuming your CPU supports
|
|
Packit |
36d0ea |
AVX2, the following options will increase encoding speed.
|
|
Packit |
36d0ea |
|
|
Packit |
36d0ea |
../configure CC=icc
|
|
Packit |
36d0ea |
make CFLAGS="-O3 -xCORE-AVX2" bench
|
|
Packit |
36d0ea |
|
|
Packit |
36d0ea |
On a 3.4 GHz E3-1240 v3 we see more than 400 MiB/s for encoding
|
|
Packit |
36d0ea |
typical data.
|
|
Packit |
36d0ea |
|
|
Packit |
36d0ea |
Using other SIMD instruction sets on older CPUs may also help.
|