系列文章目录
一、libjpeg-turbo是什么?
libjpeg-turbo是一种JPEG图像编解码器,它使用SIMD指令来加速x86、x86-64、Arm、PowerPC和MIPS系统上的基线JPEG压缩和解压缩,以及x86、x86-64和Arm系统上的渐进式JPEG压缩。 在这样的系统上,libjpeg-turbo通常比libjpeg快2- 6倍,其他条件相同。 在其他类型的系统上,libjpeg-turbo仍然可以凭借其高度优化的霍夫曼编码例程远远优于libjpeg。 在许多情况下,libjpeg-turbo的性能可以与专有的高速JPEG编解码器相媲美。
libjpeg-turbo既实现了传统的libjpeg API,也实现了功能较弱但更简单的TurboJPEG API。 libjpeg-turbo还具有色彩空间扩展功能,允许它从/RGB压缩到32位和big-endian像素缓冲区(RGBX,XBGR等),以及一个功能齐全的Java接口。
libjpeg-turbo最初基于libjpeg/SIMD,这是由Miyasaka Masaru开发的libjpeg v6 b的MMX加速衍生物。 TigerVNC和VirtualGL项目在2009年对编解码器进行了大量增强,并在2010年初,libjpeg-turbo分拆为一个独立的项目,目标是为更广泛的用户和开发人员提供高速JPEG压缩/解压缩技术。 libjpeg-turbo是JPEG标准的ISO/IEC和ITU-T参考实现。
二、cmake-gui交叉编译
下载解压libjpeg-turbo文件夹,进入并创建一个新的文件夹build,打开cmake-gui输入对应路径
先点击Add Entry按键,输入以下命令:
// 指明交叉编译的CPU架构
CMAKE_SYSTEM_PROCESSOR mips
点击Configure按键,在弹出来的窗口中选择Unix Makefiles,接着选择Specify options for cross-compiling,点击Next进入交叉编译环境配置页面。
点击Next进入交叉编译环境配置页面(注意你用的是哪个嵌入式系统版本)
“Operating System”填写Linux
“Processor”填写mips
“C Compilers”填写交叉编译器( mips-linux-gnu-gcc )的路径
“C++ Compilers”填写( mips-linux-gnu-g++ )路径
“Target Root”填写交叉编译链的所在目录
使用Search查找并修改以下对应选项:
// 指定项目的构建类型
CMAKE_BUILD_TYPE: RELEASE
// 指定安装位置
CMAKE_INSTALL_PREFIX: /xxx/libjpeg/build/install
// 指定生成动态库
CMAKE_C_FLAGS: -fPIC
// 指向mips交叉编译链
CMAKE_C_COMPILER: gcc
CMAKE_Cxx_COMPILER: g++
点击Configure按键,查看是否有报错。
没有其他问题就点击Generate等待出现Generating done。
在build下进入命令行,使用以下命令编译安装:
make -j4
make install