查看: 1750|回复: 1

[分享] i.MX RT的H264软解码之爱的初体验FFMPEG

[复制链接]
  • TA的每日心情
    开心
    2024-3-26 15:16
  • 签到天数: 266 天

    [LV.8]以坛为家I

    3298

    主题

    6545

    帖子

    0

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    32014
    最后登录
    2024-4-9
    发表于 2021-8-16 17:50:42 | 显示全部楼层 |阅读模式
    i.MX RT的H264软解码之爱的初体验FFMPEG


    嗨,各位看官,上一周为大家简单介绍了主流视频编解码器的特点,(上周内容请点击这里回顾)和一些软解码的开源项目,今天小编为大家介绍FFMPEG在i.MX RT上的移植工作。


    提到视频编解码开源项目,FFMPEG江湖老大哥地位是谁也无法撼动,网上有海量关于它的代码结构分析和开发应用经验可用做参考,有兴趣的小伙伴可自行搜索,这里不再次做彩虹屁介绍(致敬永远的雷神)。
    下面直接开始本文的重点——ffmpeg在i.MX RT10xx上的实现。


    一、了解工作流程
    12.png
    i.MX RT10xx从microSD卡读取H.264视频源,然后调用经过裁剪的FFMPEG库对视频源进行解码并生成YUV数据,最后通过像素处理通道(PXP),对YUV数据进行缩放和颜色空间转换,生成RGB格式数据并在LCD面板上显示。

    二、课前准备

    硬件:i.MX RT1050/60或i.MX RT1170板子,microSD卡,Mini/micro USB线缆。
    软件:IAR EWARM IDE开发软件,i.MX RT的SDK和H.264解码库(社区上有i.MX RT1050的H.264解码工程下载链接:https://github.com/xinyigao/h264_decoding


    解码库:ffmpeg是一个大型综合类的多媒体库,在移植前需要剪切出一个干净轻便的满足客户需求的H264解码库,剪切方法可私下咨询小编也可移步https://github.com/xinyigao/h264_decoding)。

    三、实际移植

    想亲自体验移植过程的小伙伴,完成课前准备并剪裁完ffmpeg解码库后,可在官方SDK中的sdcard_fatfs和pxp的demo中进行移植,移植过程中注意堆、栈和text段的大小。


    解码后YUV向RGB格式转换需要用到硬件pxp,别忘记使能格式转换函数:
    PXP_SetCsc1Mode(APP_PXP,kPXP_Csc1YCbCr2RGB);
    PXP_EnableCsc1(APP_PXP, true);
    移植成功后按照正常的编译下载运行方式进行实验测试。

    四、测试性能

    移植后,内存的占用情况如下:
    13.png
    选择三个不同的视频源进行解码,在不同的运行模式下测试解码加播放的fps,结果如下表:
    14.png
    下面这个小视频,展示了实际播放的效果:
    五、总结

    CPU性能和内存访问速度对解码速度有较大影响,在确定CPU的情况下,尽可能多的将解码库中生成的“.o”文件放入ITCM,如有富余的TCM可分配为DTCM,放入待解码数据或解码后用于播放的数据,不建议优化解码库算法。


    须深入了解的小伙伴可移步官网AN:https://www.nxp.com.cn/docs/en/application-note/AN12562.pdf

    签到签到
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-4-9 17:01
  • 签到天数: 1478 天

    [LV.10]以坛为家III

    203

    主题

    2万

    帖子

    64

    超级版主

    Rank: 8Rank: 8

    积分
    92616
    最后登录
    2024-4-22
    发表于 2021-8-16 19:07:26 | 显示全部楼层
    直接做平板
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-4-24 07:35 , Processed in 0.114186 second(s), 20 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表