Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux / Android 编译libjpeg

之前需要将yuv转换为jpg图像,查看网上说libjpeg-turbo比libjpeg快2-3倍,但是在Android手机上实践了一下,需要40-60个ms,这个虽然比以前的300ms好多了,但是还是不能满足我的要求,进一步查看了网上信息,libjpeg-turbo是为x86和x86-64进行优化的使用了SIMD指令,而手机上不支持,所以需要在试验一下libjpeg的需要。下面是我的编译步骤:1、先到官网上下载源码http://www.ijg.org/files/jpegsr9.zip  最新的是jpegsr92、然后加压,生成jpeg-9,进入并创建jni目录,将里面的内容都拷贝到jni里面3、生成配置文件,在jni目录下面创建config.sh文件,然后在里面添加:NDK=/opt/android-ndk-r8d
PLATFORM=$NDK/platforms/android-8/arch-arm/
PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86
CC=$PREBUILT/bin/arm-linux-androideabi-gcc
./configure --prefix=/home/jpeg-9/jni/dist --host=arm CC="$CC --sysroot=$PLATFORM"4、然后改变config.sh的权限,并执行,得到配置文件:chmod 775 config.sh
sh config.sh5、生成Android.mk文件,内容如下:LOCAL_PATH := $(my-dir)include $(CLEAR_VARS)
# From autoconf-generated Makefile
LOCAL_MODULE := libjpeg
LOCAL_ARM_MODE=arm
LOCAL_SRC_FILES :=
    jaricom.c
    jcapimin.c
    jcapistd.c
    jcarith.c
    jccoefct.c
    jccolor.c
    jcdctmgr.c
    jchuff.c
    jcinit.c
    jcmainct.c
    jcmarker.c
    jcmaster.c
    jcomapi.c
    jcparam.c
    jcprepct.c
    jcsample.c
    jctrans.c
    jdapimin.c
    jdapistd.c
    jdarith.c
    jdatadst.c
    jdatasrc.c
    jdcoefct.c
    jdcolor.c
    jddctmgr.c
    jdhuff.c
    jdinput.c
    jdmainct.c
    jdmarker.c
    jdmaster.c
    jdmerge.c
    jdpostct.c
    jdsample.c
    jdtrans.c
    jerror.c
    jfdctflt.c
    jfdctfst.c
    jfdctint.c
    jidctflt.c
    jidctfst.c
    jidctint.c
    jquant1.c
    jquant2.c
    jutils.c
    jmemmgr.c
    jmemnobs.c
LOCAL_C_INCLUDES := $(LOCAL_PATH)
LOCAL_CFLAGS :=-O3 -fstrict-aliasing -fprefetch-loop-arrays  -DANDROID
        -DANDROID_TILE_BASED_DECODE -DENABLE_ANDROID_NULL_CONVERTinclude $(BUILD_SHARED_LIBRARY)