Series
Guide
build requirements
Build Requirements
- cmake 2.8
- NASM 2.13
- Visual Studio 2015
- libjpeg-turbo 1.5.4
If using
NASM
, 2.05 or later is required for an x86-64 build.nasm.exe/yasm.exe
should be in your PATH.
download
git clone https://github.com/libjpeg-turbo/libjpeg-turbo.git
# or
wget https://codeload.github.com/libjpeg-turbo/libjpeg-turbo/zip/master
install nasm
wget http://www.nasm.us/pub/nasm/releasebuilds/2.13.03rc1/win64/nasm-2.13.03rc1-installer-x64.exe
add
C:\Program Files\NASM
to env path.
compile libjpeg
cmake-gui ..
with options
CMAKE_BUILD_TYPE = Release
ENABLE_SHARED = ON
CMAKE_INSTALL_PREFIX = d:/libjpeg-turbo64
NASM = C:/Program Files/NASM/nasm.exe
configure and generate sln
, compile with visual studio 2015
and install.
usage with cmake
libjpegturbo-config.cmake
set(LIBJPEGTURBO_FOUND TRUE) # auto
set(LIBJPEGTURBO_ROOT_DIR "d:/libjpeg-turbo64")
find_path(LIBJPEGTURBO_INCLUDE_DIR NAMES jpeglib.h turbojpeg.h PATHS "${LIBJPEGTURBO_ROOT_DIR}/include")
mark_as_advanced(LIBJPEGTURBO_INCLUDE_DIR) # show entry in cmake-gui
find_library(LIBJPEGTURBO_JPEG_LIBRARY NAMES jpeg.lib PATHS "${LIBJPEGTURBO_ROOT_DIR}/lib")
mark_as_advanced(LIBJPEGTURBO_JPEG_LIBRARY) # show entry in cmake-gui
find_library(LIBJPEGTURBO_TURBOJPEG_LIBRARY NAMES turbojpeg.lib PATHS "${LIBJPEGTURBO_ROOT_DIR}/lib")
mark_as_advanced(LIBJPEGTURBO_TURBOJPEG_LIBRARY) # show entry in cmake-gui
# use xxx_INCLUDE_DIRS and xxx_LIBRARIES in CMakeLists.txt
set(LIBJPEGTURBO_INCLUDE_DIRS ${LIBJPEGTURBO_INCLUDE_DIR} )
set(LIBJPEGTURBO_LIBRARIES ${LIBJPEGTURBO_JPEG_LIBRARY} ${LIBJPEGTURBO_TURBOJPEG_LIBRARY} )
message( "libjpegturbo-config.cmake " ${LIBJPEGTURBO_ROOT_DIR})
CMakeLists.txt
find_package(LIBJPEGTURBO REQUIRED)
include_directories(${LIBJPEGTURBO_INCLUDE_DIRS})
add_executable (example_jpeg
${CMAKE_CURRENT_SOURCE_DIR}/src/example/example_jpeg.cpp
)
target_link_libraries (example_jpeg
${LIBJPEGTURBO_LIBRARIES}
)
add_executable (example_turbojpeg
${CMAKE_CURRENT_SOURCE_DIR}/src/example/example_turbojpeg.cpp
)
target_link_libraries (example_turbojpeg
${LIBJPEGTURBO_LIBRARIES}
)
Example Code
jpeglib vs turbojpeg
jpeglib
- include:
#include "jpeglib.h"
- lib:
jpeg.lib
- dll:
jpeg62.dll
turbojpeg
- include:
#include "turbojpeg.h"
- lib:
turbojpeg.lib
- dll:
turbojpeg.dll
turbojpeg is (3-5x) faster than jpeglib.
jpeglib
see jpeglib.cpp
turbojpeg
see turbojpeg.cpp
Reference
- example.c
- building
- turbo offical doc
- compress and decompress jpeg
- opencv imdecode to libjpeg-turbo (good)
- tjcompress and tjdecompress
History
- 20180201: created.
- 20180202: add example code.