Alif Image processing library is available as a prebuilt library and as a CMSIS pack. Visit releases page.
Formats:
- ALPHA8
- ARGB8888
- ARGB4444
- ARGB1555
- RGBA8888
- RGBA4444
- RGBA5551
- BGR888
- RGB565
- YV12
- I420
- I422
- I444
- I400
- NV21
- NV12
- YUY2
- UYVY
Basic operations:
- Crop
- Flip
- Resize
- Rotate
Color correction:
- Color correction using a matrix
- White balance
- Lookup Table channel transformation
Bayer filters that can be decoded into any supported image format:
- RGGB
- GRBG
- BGGR
- GBRG
The library relies on video memory allocation functions:
- aipl_video_alloc
- aipl_video_free
and on cache management functions:
- aipl_cpu_cache_clean
- aipl_cpu_cache_invalidate
These functions have the default implementations which can be turned on by setting AIPL_CUSTOM_VIDEO_ALLOC and AIPL_CUSTOM_CACHE to 0 AIPL config. The default implementation rely on Alif Ensemble CMSIS package and default malloc/free functions.
AIPL as static library does not include these default functions and they must be defined by the user.
This CMSIS pack requires some packs to be installed and added to the project:
- Make sure CMSIS Toolbox installed. Check
packchkis available (add CMSIS Toolbox utils path toPATHif necessary):
packchk -V
- Set
CMSIS_PACK_ROOTenvironment variables to cmsis-packs installation directory:
export CMSIS_PACK_ROOT=<your pack root>
- Run the generating script:
./gen_pack.sh
- Install generated CMSIS pack:
cpackget add ./output/AlifSemiconductor.AIPL.1.3.2.pack
ARM Compiler can be obtained from the ARM website.
Make sure that ARM Compiler's bin/ directory is added to PATH before proceeding.
- Create and set up
aipl_config.hand place it underconfig/directory. If the file is not providedaipl_config_template.his copied. - Set up CMake:
cmake -B ./build/ -S . --toolchain ./cmake/toolchains/arm-armclang.cmake -DTARGET_CPU="cortex-m55" -DCMAKE_BUILD_TYPE=Release
- Build with CMake:
cmake --build build/
libaipl.acan be found inside thebuild/directory.