海思hi3516移植libjpeg-turbo2.0.5

libjpeg-turbo2.0.5在海思hi3516cv500上的使用体验

libjpeg-turbo编译方式

交叉编译参考
https://blog.csdn.net/fengbingchun/article/details/96633906
linux下编译参考
https://blog.csdn.net/weixin_42118374/article/details/100579004

编译完成后找到libturbojpeg.a和turbojpeg.h文件,这就是我们jpeg解码的两个文件。
找到例程文件为tjexample.c,可以用来测试参考

编译gcc tjexample.c -o tjexample -L/home/ubantu-seven/Desktop/libjpegturbo -l:libturbojpeg.a

注意-L/home/ubantu-seven/Desktop/libjpegturbo是你当前的libturbojpeg.a所在的文件目录,按需求修改

交叉编译时arm-himix200-linux-gcc loadtest.c -o loadtest -L/home/ubantu-seven/Desktop/libjpegturbo-hisi -l:libturbojpeg.a

把他们放在同一个文件夹下,放入要处理的图片如
测试用图
输入指令 ./tjexample filein.jpg fileout.jpg -gray
其中filein.jpg是输入的图像,fileout.jpg是输出的图像,-gray是处理参数
控制台输出 Transformed Image: 110 x 110 pixels, Grayscale subsampling, GRAY colorspace并输出图像
输出图像

在海思上使用libjpeg-turbo

通过修改venc相关例程,可以实时的获取jpeg格式的buf,返回jpegbuf和jpegsize,因此可以利用相关的接口实现软解码。

这里用把JPEG文件读取进内存进行测试。
注意设置sw_out_size 的大小时要对应相应的解码方式

// An highlighted block
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include "turbojpeg.h"


const char *subsampName[TJ_NUMSAMP] = {
   
  "4:4:4", "4:2:2", "4:2:0", "Grayscale", "4:4:0", "4:1:1"
};

const char *colorspaceName[TJ_NUMCS] = {
   
  "RGB", "YCbCr", "GRAY", "CMYK", "YCCK"
};





tjscalingfactor *scalingFactors = NULL;
int numScalingFactors = 0;


/* DCT filter example.  This produces a negative of the image. */

static int customFilter(short *coeffs, tjregion arrayRegion,
                        tjregion planeRegion, int componentIndex,
                        int transformIndex, tjtransform *transform)
{
   
  int i;

  for (i = 0; i 
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值