I.MXRT是NXP推出的一系列基于ARM-Cortex M7的MCU产品系列,RT1050主频600M,  内置32KB I-Cache, 32KB D-Cache, LCD驱动的RGB接口以及外扩SDRAM的SEMC接口。其支持的LCD显示最大分别率可以到1024x768,非常合适使用在工业LCD显示控制的场合,鉴于其高主频的性能,有些客户探索使用RT1050去播放视频,如果可以实现,RT就可以用来替换一些低端的ARM7或者ARM9的应用,毕竟MPU通常需要外置nandflash,DDR,PMIC等,从系统成本上看RT优势明显。
但遗憾的是RT1050没有没有硬件的MJPEG的解码模块,所以只能去使用软件解码来实现该功能。那对于RT1050来说能做到什么样的性能,对资源占用有多少呢?于是笔者抱着这个疑问,基于RT的demo板写了个code去验证这个问题。
在demo中笔者将AVI视频存储在外部SD卡中,通过FATFS文件系统读取,解码过程在SDRAM中实现,然后通过RGB接口显示在外部LCD屏幕上,LCD的显示分辨率是480x272,系统结构如下图。
1.png
 
此处省去移植MJPEG库和FATFS到SDK的这个过程,直接说结论。
1. 代码对系统Flash/RAM的占用:

2.png

 
 
 
 
 
 
 
2. 实现的解码+显示帧率:31fps/s @480x272 avi格式
 
由于时间关系,笔者没有做针对性的优化,理论上帧率还是可以有很大提升的空间。