3-2-基于tl-mcfw-rdk的视频开发例程使用手册_W_第1页
3-2-基于tl-mcfw-rdk的视频开发例程使用手册_W_第2页
3-2-基于tl-mcfw-rdk的视频开发例程使用手册_W_第3页
3-2-基于tl-mcfw-rdk的视频开发例程使用手册_W_第4页
3-2-基于tl-mcfw-rdk的视频开发例程使用手册_W_第5页
已阅读5页,还剩362页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Revision History基于 TL-MCFW-RDK 的视频开发例程使用手册 Draft DateRevision No.Description2018/04/08V1.31.全部例程勘误。 视频采集。 2017/01/14V1.11.添加 DSP 例程边沿检测、灰度等算法例程 6.26.13 章节。 2016/12/07V1.01.初始版本。 2017/03/24V1.21. 更新视频采集例程使之同时支持 D1、HD-SDi、HDMI、VGA公司官网:销售邮箱:公司总机:020-8998-62801/330技术论坛:w

2、技术邮箱:技术热线:020-3893-9734目录1 使用说明41.1. TVP5158 D1 采集注意事项42 MCFW 例程52.1 MCFW API 视频例程52.1.1 1ch_a8_h264_dec_dis 单路 H.264 解码52.1.2 1ch_a8_h264_dec_dis_perf H.264 单路解码性能测试162.1.3 1ch_a8_yuv_dis YUV422 文件播放262.1.4 1ch_a8_yuv_enc_h264 YUV420 编码为 H.264352.1.5 1ch_nullsrc_enc_h

3、264_perf H.264 单路编码性能测试442.1.6 cap_dis_enc_h264_save 视频采集、显示、编码和保存522.1.7 cap_dis_yuv_save 视频采集并保存 YUV 文件642.1.8 cap_enc_rtsp_out 视频采集并通过 RTSP 传输752.1.9 cap_nsf_dis 图像降噪处理842.1.10 cap_osd_mosaic_dis 视频采集并 OSD 显示932.1.11 cap_scale_dis 图像采集并缩放显示1012.1.12 cap_switch_dis 视频采集单路显示1102.1.13 multich_a8_h26

4、4_dec_dis 多路 H.264 解码1202.1.14 multich_cap_mosaic_dis 视频采集拼接显示1292.1.15 multivip_cap_mosaic_dis 视频采集拼接显示(8 路视频)1372.1.16 nullsrc_hdmi_dis Nullsrc Link 和 Display Link 的使用1452.1.17 nullsrc_osd_dis logo|字符|时间 OSD 显示1532.1.18 rtsp_in_dec_dis RTSP 网络摄像头采集+HDMI 显示1602.2 MCFW DSP 开发例程1682.2.1 a8_bmp_dsp_ap

5、plink_canny DSP 对图片进行边缘检测1682.2.2 a8_bmp_dsp_applink_rotate DSP 对图片进行旋转功能1782.2.3 a8_dsp_applink_latency 数据延迟发送测试1892.2.4 a8_dsp_applink_string 字符串发送测试1992.2.5 a8_dsp_applink_validation 数据发送测试2092.2.6 a8_rgb_dsp_applink_alpha_detect 字母识别功能218公司官网:销售邮箱:公司总机:020-8998-6

6、2802/330技术论坛:技术邮箱:技术热线:020-3893-97342.2.7 a8_rgb_dsp_applink_cv_fd 人脸识别功能2272.2.8 a8_rgb_dsp_applink_number_detect 数字识别功能2392.2.9 a8_yuv_dsp_applink_gray yuv420 图像灰度处理2482.2.10 a8_yuv_dsp_nullsink_gray yuv420 图像灰度处理2592.2.11 cap_dis_dsp_enc_rtsp_out 图像灰度处理、H.264 编码和 R

7、TSP 功能 2702.2.12 cap_dis_enc_save_dsp_save 视频采集、编码、灰度处理和保存功能 . 2832.2.13 cap_enc_save_dsp_dis 视频采集、编码、灰度处理和文件保存2982.2.14 h264_dec_dsp_dis 单路解码和灰度处理3102.2.15 rtsp_in_dec_dsp_dis 网络摄像头采集与灰度处理319更多帮助330公司官网:销售邮箱:公司总机:020-8998-62803/330技术论坛:技术邮箱:supporttronl

8、技术热线:020-3893-97341 使用说明TL-MCFW-RDK 开发包由广州创龙基于 TI 的 DVRRDK 开发包整理推出,是一个完备的可用于应用软件开发的 RDK(Reference Development Kit)包。开发的应用用于视频采集、显示、编解码以及算法处理等。 开发包的主体是 MCFW 软件框架,它底层协调了 VPSS M3、VIDEO M3、DSP 以及 Cortex A8 多个核心进行数据处理。RDK 中包含 MCFW 的整套源码,开发者可以基于其接口进行开发,也可以深入到框架内部进行适当修改调整。 操作例程前,请按照搭建 Linux 开发环境文档搭建

9、开发环境。操作例程过程中需要用到 SCP 命令拷贝文件,详细使用方法可以浏览光盘资料用户手册中scp 远程拷贝文件和文件夹到开发板系统方法文档。 例程需要用到YUV 转JPG 功能,所以先在Ubuntu 下执行下面命令需要安装相关控件: Host#sudo apt-get install gstreamer0.10-plugins-base Host#sudo apt-get install gstreamer0.10-plugins-good Host#sudo apt-get install gstreamer0.10-plugins-bad Host#sudo apt-get insta

10、ll gstreamer0.10-plugins-ugly1.1. TVP5158 D1 采集注意事项基于我们的例程使用 D1 采集注意 TVP5158 模块的制式问题,目前还无法自动识别制式, 需要手动修改制式,对于每一个支持 TVP5158 模块采集的例程,都有一个 isPalMode参数,如果当前使用的是 PAL 制式摄像头,就配置为 TRUE,否则就配置为 FALSE。重新编译例程再运行即可。 编辑 mcfw_chain.c 源码: Host#gedit mcfw_chain.c图 1按照下图修改对应位置即可。 公司官网:销售邮箱:salestronlo

11、公司总机:020-8998-62804/330技术论坛:技术邮箱:技术热线:020-3893-9734图 22 MCFW 例程2.1 MCFW API 视频例程2.1.1 1ch_a8_h264_dec_dis 单路 H.264 解码 表 1开发板 是否支持本例程 TL8148-EasyEVM支持 TL8148-EVM支持 TL8127-EasyEVM支持 TL8127-EVM支持 例程说明 程序演示了从文件中读取 H.264 文件进行一路解码显示的功能(支持 1080P)。如下是功能流程的简述: (1

12、) 从文件读取 H264,发送到 VIDEO M3; (2) VIDEO M3 进行解码后发送到 VPSS M3; (3) VPSS M3 对图像进行缩放,以 1080P 分辨率输出到 HDMI 设备。 公司官网:销售邮箱:公司总机:020-8998-62805/330技术论坛:技术邮箱:技术热线:020-3893-9734图 编译 例程代码路径:光盘资料DemoMCFWMCFW_API1ch_a8_h264_dec_dis将例程 源 码 拷 贝

13、到 Ubuntu 下 , 进 入 src 目 录 , 修 改 makefile: DVR_RDK_ROOT_PATH:tl-mcfw-rdk 开发包安装路径; Host#gedit makefile公司官网:销售邮箱:公司总机:020-8998-62806/330技术论坛:技术邮箱:技术热线:020-3893-9734图 4上图红框中的路径,指向开发环境。 进入例程代码 src 目录后,如下进行编译操作: Host#make cleanHost#make编译完成后,

14、例程运行文件在src/target/目录中生成。 公司官网:销售邮箱:公司总机:020-8998-62807/330技术论坛:技术邮箱:技术热线:020-3893-9734图 运行 例程最终以 HDMI 输出解压后的视频信息,把开发板与 HDMI 显示屏通过开发板上HMDI OUT 接口连接起来。 例程需要使用1ch_a8_h264_dec_disdata中文件进行协助测试,测试时,把整个 data 文件夹拷贝到开发板系统与例程运行文件放在相同目录

15、下。 为了调试方便,可以在 Ubuntu 上使用 scp 命令拷贝例程文件到开发板系统,操作如下: Target#ifconfig /启动开发板,查询开发板 ip公司官网:销售邮箱:公司总机:020-8998-62808/330技术论坛:技术邮箱:技术热线:020-3893-9734图 6Host#scp /media/DM8148/Demo/MCFW/MCFW_API/1ch_a8_h264_dec_dis/src/target/1ch_a8_h264_dec_d

16、is.out root8:/media/mmcblk0p1/Demo/拷贝例程文件到开发板系统 Host#scp -r /media/DM8148/Demo/MCFW/MCFW_API/1ch_a8_h264_dec_dis/data/ roo t8:/media/mmcblk0p1/Demo/拷贝测试用的 data 文件夹到开发板系统, 与程序运行文件放在同一个目录下 Target#reboot /如果前面已经跑过其他例程,重启开发板系统,以免其他例程原因导致本例程异常,否则,可以跳过本步骤 图 7在开发板系统下: Target#/etc/init

17、.d/pvr-init stop/关闭 PVR 功能,重复执行本命令会提示报错,但不影响功能 Target#/etc/init.d/matrix-gui-e stop /关闭 MATRIX 功能 公司官网:销售邮箱:公司总机:020-8998-62809/330技术论坛:技术邮箱:技术热线:020-3893-9734Target#cd /media/mmcblk0p1/Demo/进入例程文件所在目录,根据实际修改 Target#./1ch_a8_h264_dec_d

18、is.out data/water_1080p.h264 data/water_1080p.h264.hdr 1920 1080图 8HDMI 显示屏输出图像: 公司官网:销售邮箱:公司总机:020-8998-628010/330技术论坛:技术邮箱:技术热线:020-3893-9734图 9参数解析: 运行程序命令格式:./1ch_a8_h264_dec_dis.out + 解码文件 +文件头 + 图像宽 + 图像高 命令格式参数说明个别参数说明: 解码文件:要解码

19、的 H264 文件路径,如 data/water_1080p.h264文件头:要解码的 H264 文件对应的“文件头”,文件路径 data/water_1080p.h264.hdr 文件头生成方法: 关于“文件头”文件可用1ch_a8_h264_dec_distool目录下 gen_h264_header 工具生成。 以 water_1080p.h264 为例,将工具和需要解码文件拷贝到开发板任意目录下,工具和H264文件需要在相同目录,进入文件目录,执行: Host#./gen_h264_header water_1080p.h264公司官网:销售邮箱:sal

20、公司总机:020-8998-628011/330技术论坛:技术邮箱:技术热线:020-3893-9734图 10执行后,将在当前目录下生成一个名为 water_1080p.h264.hdr 的文件头。该文件内容以行的形式保存了 H264 文件中每一帧的大小。在我们的解码显示程序中会读取这预先生成的数据去读取图像帧进行解码显示,预先生成这个文件头的目的是在于简化演示代码中的H264 图像帧的读入部分的逻辑。 关键代码说明 (1) srcmain.c文件中 main()函数红框部分设置成单通

21、道 H.264 解码: 公司官网:销售邮箱:公司总机:020-8998-628012/330技术论坛:技术邮箱:技术热线:020-3893-9734图 11 (2) srcmain.c文件中 main()函数红框部分创建解码显示的 chain,并使它开始工作,此时chain 虽然处于工作状态,但其当前是“无图像”可处理的: 公司官网:销售邮箱:公司总机:020-8998-628013/330技术论坛:

22、技术邮箱:技术热线:020-3893-9734图 12(3) srcmain.c文件中 main()函数红框部分启动一个线程,循环读取 H264 文件内的数据, 送入 chain 中,chain 进行解码和显示: 公司官网:销售邮箱:公司总机:020-8998-628014/330技术论坛:技术邮箱:技术热线:020-3893-9734图 13(4) srcfile_feeder.c文件中 file_f

23、eeder_feed_func()函数让解码器打印统计信息: 公司官网:销售邮箱:公司总机:020-8998-628015/330技术论坛:技术邮箱:技术热线:020-3893-9734图 142.1.2 1ch_a8_h264_dec_dis_perf H.264 单路解码性能测试 表 2开发板 是否支持本例程 TL8148-EasyEVM支持 TL8148-EVM支持 TL8127-EasyEVM支持 TL8127-EVM支持 例程说明 程序演示

24、了从文件中读取 H.264 文件进行一路解码显示的功能(支持 1080P),并在串口打印出解码性能 log。 公司官网:销售邮箱:公司总机:020-8998-628016/330技术论坛:技术邮箱:技术热线:020-3893-9734如下是功能流程的简述: (1) 从文件读取 H264,发送到 VIDEO M3; (2) VIDEO M3 进行解码后发送到 VPSS M3; (3) VPSS M3 对图像进行缩放,以 1080P 分辨率输出到 HDMI 设备。 图

25、 编译 例程代码路径:光盘资料DemoMCFWMCFW_API1ch_a8_h264_dec_dis_perf 将例程源码拷贝到 Ubuntu 下,进入 src 目录,修改 makefile: DVR_RDK_ROOT_PATH:tl-mcfw-rdk 开发包安装路径; Host#gedit makefile公司官网:销售邮箱:公司总机:020-8998-628017/330技术论坛:技术邮箱:技术热线:020-3893-9734图 16上图红框中

26、的路径,指向开发环境。 进入例程代码 src 目录后,如下进行编译操作: Host#make cleanHost#make编译完成后,例程运行文件在src/target/目录中生成。 公司官网:销售邮箱:公司总机:020-8998-628018/330技术论坛:技术邮箱:技术热线:020-3893-9734图 运行 例程最终以 HDMI 输出解压后的视频信息,把开发板与 HDMI 显示屏通过开发板上HMDI OUT 接口连接起来。 例程需要使用1

27、ch_a8_h264_dec_dis_perfdata中文件进行协助测试,测试时,把整个data 文件夹拷贝到开发板系统与例程运行文件放在相同目录下。 为了调试方便,可以在 Ubuntu 上使用 scp 命令拷贝例程文件到开发板系统,操作如下: Target#ifconfig /启动开发板,查询开发板 ip公司官网:销售邮箱:公司总机:020-8998-628019/330技术论坛:技术邮箱:技术热线:020-3893-9734图 18Host# scp /medi

28、a/DM8148/Demo/MCFW/MCFW_API/1ch_a8_h264_dec_dis_perf/src/targ et/1ch_a8_h264_dec_dis_perf.out root8:/media/mmcblk0p1/Demo/ / 拷 贝例程文件到开发板系统 Host# scp -r /media/DM8148/Demo/MCFW/MCFW_API/1ch_a8_h264_dec_dis_perf/data/ root8:/media/mmcblk0p1/Demo/ /拷贝测试用的 data 文件夹到开发板系统,与程序运行文件放在同

29、一个目录下 Target# reboot /如果前面已经跑过其他例程,重启开发板系统,以免其他例程原因导致本例程异常,否则,可以跳过本步骤 图 19在开发板系统下: Target#/etc/init.d/pvr-init stop/关闭 PVR 功能,重复执行该命令会提示错误,但不影响功能 Target#/etc/init.d/matrix-gui-e stop /关闭 MATRIX 功能 公司官网:销售邮箱:公司总机:020-8998-628020/330技术论坛:技术邮箱:supporttronlo

30、技术热线:020-3893-9734Target#cd /media/mmcblk0p1/Demo/进入例程文件所在目录,根据实际修改 Target#./1ch_a8_h264_dec_dis_perf.out data/water_1080p.h264 data/water_1080p.h264.hdr 1920 1080图 20HDMI 显示屏输出图像: 公司官网:销售邮箱:公司总机:020-8998-628021/330技术论坛:技术邮箱:技术热线

31、:020-3893-9734图 21参数解析: 运行程序命令格式:./1ch_a8_h264_dec_dis_perf.out + 解码文件 +文件头 + 图像宽 + 图像高 参数说明: 解码文件:要解码的 H264 文件路径,如 data/water_1080p.h264文 件 头 : 要 解 码 的 H264文 件 对 应 的 “ 文 件 头 ”, 文 件 路 径 data/water_1080p.h264.hdr 文件头生成方法: 关于“文件头”文件可用1ch_a8_h264_dec_dis_perftool目录下 gen_h264_header工具生成。 以 water_1080p.h

32、264 为例,将工具和需要解码文件拷贝到开发板任意目录下,工具和H264 文件需要在相同目录,进入文件目录,执行: Host#./gen_h264_header water_1080p.h264公司官网:销售邮箱:公司总机:020-8998-628022/330技术论坛:技术邮箱:技术热线:020-3893-9734图 22执行后,将在当前目录下生成一个名为 water_1080p.h264.hdr 的文件头。该文件内容以行的形式保存了 H264 文件中每一帧的大小

33、。在我们的解码显示程序中会读取这预先生成的数据去读取图像帧进行解码显示,预先生成这个文件头的目的是在于简化演示代码中的H264 图像帧的读入部分的逻辑。 关键代码说明 (1) srcmain.c文件中 main()函数红框部分设置成单通道 H.264 解码: 公司官网:销售邮箱:公司总机:020-8998-628023/330技术论坛:技术邮箱:技术热线:020-3893-9734图 23 (2) srcmain.c文件中 main()函数红框部分创

34、建解码显示的 Chain,并使它开始工作,此时Chain 虽然处于工作状态,但其当前是“无图像”可处理的: 公司官网:销售邮箱:公司总机:020-8998-628024/330技术论坛:技术邮箱:技术热线:020-3893-9734图 24(3) srcmain.c文件中 main()函数红框部分启动一个线程,循环读取 H264 文件内的数据, 送入 chain 中,chain 进行解码和显示: 图 25(4) srcfile_feeder.c文件中 file_fe

35、eder_feed_func()函数让解码器打印统计信息: 公司官网:销售邮箱:公司总机:020-8998-628025/330技术论坛:技术邮箱:技术热线:020-3893-9734图 262.1.3 1ch_a8_yuv_dis YUV422 文件播放 表 3开发板 是否支持本例程 TL8148-EasyEVM支持 TL8148-EVM支持 TL8127-EasyEVM支持 TL8127-EVM支持 公司官网:销售邮箱:sales

36、公司总机:020-8998-628026/330技术论坛:技术邮箱:技术热线:020-3893-973 例程说明 程序演示了从文件中读取 yuv422 文件进行显示的功能。如下是功能流程的简述: (1) 从文件读取一帧 YUV422 图像,重复发送到 VPSS M3; (2) VPSS M3 将图像输出到HDMI 设备。 图 2 编译 例程代码路径:光盘资料DemoMCFWMCFW_API1ch_a8_yuv_dis将例程源码拷贝到 Ubuntu 下,进入 src 目录,修改

37、 makefile: DVR_RDK_ROOT_PATH:tl-mcfw-rdk 开发包安装路径; Host#gedit makefile公司官网:销售邮箱:公司总机:020-8998-628027/330技术论坛:技术邮箱:技术热线:020-3893-9734图 28上图红框中的路径,指向开发环境。 进入例程代码 src 目录后,如下进行编译操作: Host#make cleanHost#make编译完成后,例程运行文件在src/target/目录中生成。 公司官

38、网:销售邮箱:公司总机:020-8998-628028/330技术论坛:技术邮箱:技术热线:020-3893-9734图 2 运行 例程最终以 HDMI 输出解压后的视频信息,把开发板与 HDMI 显示屏通过开发板上HMDI OUT 接口连接起来。 例程需要使用1ch_a8_yuv_disdata中videotestsrc_1920x1080.yuv2文件进行协助测试, 测试时,把该文件夹拷贝到开发板系统与例程运行文件放在相同目录下。 为了调试方便,

39、可以在 Ubuntu 上使用 scp 命令拷贝例程文件到开发板系统,操作如下: Target#ifconfig /启动开发板,查询开发板 ip公司官网:销售邮箱:公司总机:020-8998-628029/330技术论坛:技术邮箱:技术热线:020-3893-9734图 30Host# scp /media/DM8148/Demo/MCFW/MCFW_API/1ch_a8_yuv_dis/src/target/1ch_a8_ yuv_dis.out root192.1

40、68.1.98:/media/mmcblk0p1/Demo/ /拷贝例程文件到开发板系统Host#scp/media/DM8148/Demo/MCFW/MCFW_API/1ch_a8_yuv_dis/data/videotestsrc_ 1920x1080.yuv2 root8:/media/mmcblk0p1/Demo/拷贝测试用的 data 文件夹文件到开发板系统,与程序运行文件放在同一个目录下 Target#reboot/如果前面已经跑过其他例程,重启开发板系统,以免其他例程原因导致本例程异常,否则,可以跳过本步骤 图 31在开发板系统下: Target#/etc/

41、init.d/pvr-init stop/关闭 PVR 功能,重复执行本命令会提示报错,但不影响功能 Target#/etc/init.d/matrix-gui-e stop /关闭 MATRIX 功能 Target#cd /media/mmcblk0p1/Demo/进入例程文件所在目录,根据实际修改 公司官网:销售邮箱:公司总机:020-8998-628030/330技术论坛:技术邮箱:技术热线:020-3893-9734Target#./1ch_a8_yuv_d

42、is.out图 32HDMI 显示屏输出如下: 公司官网:销售邮箱:公司总机:020-8998-628031/330技术论坛:技术邮箱:技术热线:020-3893-9734图 3 关键代码说明 (1) srcmain.c文件中 main()函数创建 loopback 线程: 公司官网:销售邮箱:公司总机:020-8998-628032/330技术论坛:技术邮箱

43、:技术热线:020-3893-9734图 34(2) srcmain.c文件中 main()函数创建解码显示的 chain,并使它开始工作,然后使loopback 线程开始工作: 公司官网:销售邮箱:公司总机:020-8998-628033/330技术论坛:技术邮箱:技术热线:020-3893-9734图 35(3) srcmain.c文件中 Loopback_ipcFramesSendFxn()函数实现当 loopback 线

44、程开始工作后不断从 chain 中取出处理过的帧,取出后又直接放进 chain 中显示: 公司官网:销售邮箱:公司总机:020-8998-628034/330技术论坛:技术邮箱:技术热线:020-3893-9734图 362.1.4 1ch_a8_yuv_enc_h264 YUV420 编码为 H.264表 4开发板 是否支持本例程 TL8148-EasyEVM支持 TL8148-EVM支持 TL8127-EasyEVM支持 公司官网:销售邮箱:公司总机:020-8998-628035/330技术论坛:技术邮箱:技术热线:020-3893-9734TL8127-EVM支持 例程说明 程序演示了从文件中读取 YUV420 文件进行 H264 编码并保存的功能。如下是功能流程的简述: (1) 每次从文件

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论