如何将JPEG解码的C语言程序移植到DSP中去

如何将JPEG解码的C语言程序移植到DSP中去,第1张

如果全是c语言代码,一般直接移植过去就可以干活,只是内存在DSP上比PC上可能会有一些限制。还有就是要重新设计DSP的(图象)数据的输入和输出。

然后如果对解码效率如果不满意,则需要参照该款DSP提供的算法库(一般DSP供应商都会提供针对该款DSP优化的算法库)的文档将一些频繁使用的算法替换成调用这些算法库的程序,这个就是移植了,参照算法库时也需要根据算法库的要求安排数据在DSP存储区中的存放位置(片内/片外)。

再有就是进一步提高效率,利用DSP的特殊设备比如DMA、一二级高速缓存、特殊指令、高速片内存储器等等继续优化算法。

1、二维码有很多种标准,可以控制存储数据的信息量,也可以控制容错的数据量[使得部分污损的二维码可以被正常读取。通常的做法是调用二维码设计方提供的组件,如果是自己生成二维码,应该可以生成可以看起来很像的东西。

2、例程:

<pre name="code" class="cpp">int Fb_QrDisp(int iPenX,int iPenY,QRcodepQRcode)

{

T_PixelDatasg_tOriginPixelDatas;

T_PixelDatasg_tZoomPixelDatas;

//intiZoom;

inti;

g_tOriginPixelDatasiWidth= pQRcode->width;

g_tOriginPixelDatasiHeight=pQRcode->width;

g_tOriginPixelDatasiLineBytes=g_tOriginPixelDatasiWidth;

g_tOriginPixelDatasaucPixelDatas= pQRcode->data;

/

if(pQRcode->version< = 1)

{

iZoom= 2;

}

else

{

iZoom= 2;

}

g_tZoomPixelDatasiWidth = pQRcode->widthiZoom;

g_tZoomPixelDatasiHeight=pQRcode->widthiZoom;

g_tZoomPixelDatasiLineBytes=g_tZoomPixelDatasiWidth;

g_tZoomPixelDatasaucPixelDatas= malloc(g_tZoomPixelDatasiWidth g_tZoomPixelDatasiHeight);

if(g_tZoomPixelDatasaucPixelDatas== NULL)

{

printf("g_tZoomPixelDatas->aucPixelDatasmalloc failed\n");

return-1;

}

PicZoom(&g_tOriginPixelDatas,&g_tZoomPixelDatas);

#if 0

printf("g_tZoomPixelDatasiWidth=%d,g_tZoomPixelDatasiHeight=%d\n", g_tZoomPixelDatasiWidth,g_tZoomPixelDatasiHeight);

for(i=0;i<(g_tZoomPixelDatasiWidthg_tZoomPixelDatasiHeight);i++)

{

printf("0x%x,",g_tZoomPixelDatasaucPixelDatas[i]);

}

printf("\n");

#endif

/

Disp_FixelPic(iPenX,iPenY,&g_tZoomPixelDatas);

return 0;

}

因为stmf429运行起来后内存不够,这里不用申请内存再扩充放大二维码数据的方法,而是直接描点。所以这里注释掉了放大部分。

url编码的详细解释可以参考: >

以上就是关于如何将JPEG解码的C语言程序移植到DSP中去全部的内容,包括:如何将JPEG解码的C语言程序移植到DSP中去、C语言或C++编写二维码的解码部分详细的源代码及说明、C语言url编解码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9501455.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存