为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

DM8168开发手册

2017-09-19 23页 doc 1MB 36阅读

用户头像

is_569018

暂无简介

举报
DM8168开发手册DM8168开发手册 1.硬件设备 1.1 板卡 TI提供的关于DM8168的板卡共4块,其中包括1块母板:TMDXEVM8168,3块子板分别是Expansion I/O Daughter Card(EIO)、Video Conferencing Daughter Card(TMDXVCDC8168)以及Video Security Daughter Card(TMDXVSDC8168)。本文档的所有操作都是在TMDXEVM8168 + EIO下进行的。 1.2 视频信号源 在平常的开发中常用到的高清视频源有以下3种:高清摄...
DM8168开发手册
DM8168开发手册 1.硬件设备 1.1 板卡 TI提供的关于DM8168的板卡共4块,其中包括1块母板:TMDXEVM8168,3块子板分别是Expansion I/O Daughter Card(EIO)、Video Conferencing Daughter Card(TMDXVCDC8168)以及Video Security Daughter Card(TMDXVSDC8168)。本文档的所有操作都是在TMDXEVM8168 + EIO下进行的。 1.2 视频信号源 在平常的开发中常用到的高清视频源有以下3种:高清摄像头、视频播放器和索尼高清DV。这些视频源各有特点。 1.2.1 高清摄像头 以明日摄像头为例,其设置如下(按配置调档):     高清摄像头作为视频源,可以更加真实地模拟实际产品的视频质量,可以获取真实的场景,可以很清楚地看到噪声以及光线明暗对于视频质量的影响。实验中首选摄像头作为视频源。 1.2.2 视频播放器 采用HDMAX H1073C视频播放器作为视频源可以更好地选择各种不同的视频场景,譬如色彩鲜艳的、场景相对静止的、场景运动激烈的等。通过这些不同的场景可以测试编码器的能力。在编码器参数设置的实验中使用视频播放器作为视频源会比较便捷。 1.2.3 索尼高清DV(SONY HDR-CX550E,XR550E) 索尼高清DV也是一种高清摄像头,但它的直接分量采集输入最大只能提供1080i50,不能提供1080p;当由HDMI采集输出并通过分量转换器可以提供最高1080p50的视频输出,不能达到1080p60。1080P50的视频用1080P60的标准去采集,并立刻显示会发现视频往左(面向显示屏时,人的左边)偏移,而且视频的右边(面向显示屏时,人的右边)有很宽的黑边。即采用索尼高清DV作为视频源时会有较大的失真,但由于它自带滤波功能,其视频输出质量稍好。 1.3 分量转换器 由于该平台只有分量形式的视频输入,因此需要把视频源的HDMI信号转换为YPbPr信号,使用分量转换器HDfuryPro。 1.4 显示器 该平台的输出信号可以是YPbPr信号也可以是HDMI信号,比较常用的是HDMI信号,使用带HDMI接口的显示器SAMSUNG BX2250 1.5 注意事项 1、DM8168+EIO(Expansion I/O Daughtercard)板卡的视频输入只支持子板上的YPbPr分量输入,其余如CVBS,HDMI,S-Video,DVI输入均不支持。视频输入均在子板上。 2、DM8168+EIO板卡的分量YPbPr输入只支持1080P60,720P60,1080i60和1080P30格式(目前只验证了1080p60)。 3、DM8168若要支持HDMI视频输入,需换专用于视频的子板VC(Video Conference Daughtercard)。 4、DM8168+EIO板卡只支持单路视频采集输入,DM8168+VC板卡才支持多路视频。 5、我们的SONY DV分量输出只支持1080i/576i,不支持1080p/720p;不过HDMI输出可以支持1080p。故需要一个HDMI到分量模式的转换器。 2.设备连接 先了解一下该平台的接口分布,如下图2.1所示 图2.1 接口分布 需要注意的是 1、开发用串口需要一条母对母的串口线与PC机上的串口卡相连; 2、PCIe插槽具有两个通道,可以作为RC使用。当作为EP使用时需要一条公对公的PCIe*2的连接线,并需要去除PCIe的时钟芯片,详细参考TI技术文档《DM816x_AM389x_PCI_Express_Endpoint_Boot_Driver_User_Guide》、《DM816x_AM389x_PCI_Express_Root_Complex_Driver_User_Guide》以及《DM816x C6A816x AM389x PCIe Clocking Schemes》 。 图2.2 视频接口分布图 其中VIN口均为YPbPr输入,VOUT1口为YPbPr输出,VOUT0口为HDMI输出。 图2.3 分量转换器正面 本文档把分量转换器的这一面定义为正面,如图2.3所示。红圈中为三分量YPbPr接口,需要一条三分量线和板上VIN0相接,注意具体的线序,这里没有特别规定哪种颜色需要接哪个口,只需要确保和板上一一对应就可以了。 图2.4 分量转换器背面 本文档把分量转换器的这一面定义为背面,如图2.4所示。图中通道选择开关必须要和HDMI通道一致,即HDMI接Input1,通道选择开关拨向H1一侧。注意转换格式开关要拨向Ypbpr一侧。 3.开发软件准备 3.1 开发环境的搭建 SDK需要在ubuntu-10.04的环境下进行编译,因此开发只能在ubuntu-10.04的系统下进行调试。由于大部分电脑的常用系统是windows,因此需要安装虚拟机,并在虚拟机上安装ubuntu-10.04系统。 本文所使用的虚拟机是VMware Workstation v8,安装的ubuntu系统是ubuntu-10.04.4-dvd-i386。 3.1.1 配置新的虚拟机     如下图点击“New Virtual Machine”。 注意要选择红圈中的选项,如果选择第二项的话,会只有命令行界面。 3.1.2 安装ubuntu 进入安装ubuntu界面后,按要求配置时间、键盘、用户名等7个步骤后等待安装完成。 首先是选择安装操作系统的语言种类,就选择English吧,点Install Ubuntu 10.04 LTS 继续。 然后是选择时间。 然后是选择键盘布局,就按默认的USA。 然后是配置硬盘了,上面一个是默认的配置方式,下面的是手动指定配置方式。选择手动指定配置,继续就会进入手动配置硬盘的界面,可以把虚拟出来的内存分成一个linux的文件系统盘和一个交换区。也可以选择默认的配置,为了方便就选择默认的配置。 然后是配置计算机名,用户名和密码。 然后根据向导继续,开始安装操作系统了。 安装过程可能会花费一段时间,耐心的等待几分钟,安装完成之后提示重启计算机,选择立即重启就可以了。 3.1.3 安装vmtools 注意:以下linux命令行均以ubuntu非超级用户为准,在很多操作中非超级用户都会出现权限不够的提示,所以需要使用sudo来提升操作权限 。 ubuntu 安装好了之后,你会发现桌面分辨率只有800 * 600的,不能调整,这个时候,安装VMware tools可以帮你解决这个问题,而且安装VMware tools还可以让虚拟机里面的linux可以挂在宿主计算机的硬盘。 点击菜单->VM->Install VMware Tools或者如下图所示点击“Install Tools” 来安装VMware tools。 点击了Install VMware Tools之后,虚拟机会将VMware Tools的安装包挂在到linux操作系统里面的/media/VMware Tools目录下面。桌面上会出现一个光盘。 Applications ->Accessories->Terminal打开终端准备安装VMware Tools,复制VMware tools安装包到自己的目录下面。 host$ cd home host$ sudo mkdir vmtools host$ cd vmtools host$ sudo cp /media/VMware\ Tools/VMwareTools-8.1.3-203739.tar.gz ./ 解压安装包     host$ sudo tar zxvf VMwareTools-8.1.3-203739.tar.gz 安装包会解压在当前目录的vmware-tools-distrib文件夹下面。 host$ cd vmware-tools-distrib 查看文件列会发现里面有个vmware-install.pl的文件 host$ ls 运行此文件安装vmware tools host$ sudo ./ vmware-install.pl 然后会有一系列安装目录参数问题,直接按回车确认默认路径即可, 中间碰到的问题,全部都直接回车确认默认即可,等待安装完成。 重启ubuntu。 host$ sudo reboot 重启完成后可以通过System->Preference->Monitor来设置屏幕的分辨率。而且还可以现实虚拟机共享宿主计算机文件系统,其操作如下: 在虚拟机配置界面选择Options,双击share folders,选择always enable。 点击add添加共享文件,按照向导,点下一步,在选择主机文件的时候选择一个文件夹。 确定,按照向导继续,完成,就能在共享文件列表里面看到新增加的共享文件了,根据自己的需要,按照同样的办法添加其他的共享文件。启动虚拟机,就能在/mnt/hgfs目录下看到所有的共享文件夹了。 host$ cd /mnt/hgfs host$ ls 注意先修改/home的读写权限,以免后面操作没有权限 host$ sudo chmod 777 /home 3.1.4 安装交叉编译链arm-none-linux-gnueabi-gcc 假定arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2在共享文件夹中,把它从/mnt/hgfs/shared/路径下拷贝到/home/路径下。 host$ sudo cp /mnt/hgfs/shared/ arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 /home 在当前路径下解压 host$ sudo tar jxvf arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 3.1.5 安装EZSDK 假定ezsdk_dm816x-evm_5_03_01_15_setuplinux在共享文件夹中,把它从/mnt/hgfs/shared/路径下拷贝到/home/路径下。 host$ sudo cp /mnt/hgfs/shared/ezsdk_dm816x-evm_5_03_01_15_setuplinux /home 然后安装 host$ ./ ezsdk_dm816x-evm_5_03_01_15_setuplinux 在弹出的对话框中,按照其提示执行以下命令: host$ sudo rm /bin/sh host$ sudo ln -s /bin/bash /bin/sh 然后再安装 host$ ./ ezsdk_dm816x-evm_5_03_01_15_setuplinux 指定交叉编译链arm-none-linux-gnueabi-gcc所在的路径: 指定路径正确则弹出如下对话框: 确定后如下所示: 指定EZSDK的安装路径如下所示: 正在安装,等待数分钟。 3.2终端仿真程序软件的配置 串口终端控制软件SecureCRT,通过控制台操作移植的linux系统及调试和运行应用程序。 串口设置如下图3.1所示,注意红圈中的选择。 图3.1串口设置 4.应用程序编译 打开终端,首先设置环境变量: host$ export EZSDK=’ ti-ezsdk_dm816x-evm_5_03_01_15’ 进入EZSDK所在目录下/opt/ ti-ezsdk_dm816x-evm_5_03_01_15进行编译: host$ cd /opt/ ti-ezsdk_dm816x-evm_5_03_01_15 host$ make components 等待编译,需要数分钟。在以下路径下可以找到omx的组件源码生成的可执行文件*.xv5T文件。 /opt/ ti-ezsdk_dm816x-evm_5_03_01_15/component-sources/omx_05_02_00_30/bin host$ make omtb 等待编译,需要数分钟。在以下路径下可以找到omtb_dm81xxbm_a8host.xv5T文件。该文件用于解析omtb脚本文件。 /opt/ti-ezsdk_dm816x-evm_5_03_01_15/example-applications/omtb_01_00_01_07/bin 5.调试 连接好各种设备后就可以上电。(有一点需要注意的是串口线的插拔最好断电进行,因为串口是非热插拔器件,带电插拔容易烧串口。) 上电后打开串口终端控制软件SecureCRT,可以看到系统打印的信息,并最终停留在登录界面,如下图所示。 输入dm816x-evm的登录密码,密码为root dm816x-evm login: root 开始调试前,需要关闭gui界面才能看到显示的视频 target$ /etc/init.d/matrix-gui-e stop target$ echo 0 > /sys/devices/platform/vpss/graphics0/enabled 如果需要改变播放显示的分辨率,按下列步骤操作(以设置1080p-60为例) target$ echo 0 > /sys/devices/platform/vpss/display0/enabled target$ echo 1080p-60 > /sys/devices/platform/vpss/display0/mode target$ echo 1 > /sys/devices/platform/vpss/display0/enabled 查看播放显示的分辨率设置模式 target$ cat /sys/devices/platform/vpss/display0/mode 调试有两种方式,一种是使用OMX的应用程序调试;另一种是使用OMTB脚本进行调试。使用OMX方式调试方便自定义变量及修改参数设置,但编译时间较长,调试不太方便。使用OMTB脚本方式调试只需要修改脚本,然后就而已立刻运行,不需要等待编译的时间,调试方便,但不能自定义参数,而且不清楚哪些参数可以被解析,所以修改参数比较麻烦。在实际应用中要根据具体情况选用调试方式。 5.1 OMX调试方式 进入到omx的目录下 target$ cd /usr/share/ti/ti-omx 然后把编译好的应用程序*.xv5T、编码所需要的YUV文件和解码所需要的.264文件用u盘拷到该目录下,然后按各种应用程序的参数运行就可以了。注意用来编码的YUV文件必须是YUV420SP格式,对于非YUV420P格式的文件,需通过程序转换。“*”表示需要拷贝的文件,如encode_a8host_debug.xv5T。 target$ cp /media/sda/encode_a8host_debug.xv5T ./ 提示:各种应用程序的参数可以通过-help参数来获得。例如: target$ ./encode_a8host_debug.xv5T –help 5.1.1 OMX方式调试File -> Encode实验 target$ ./encode_a8host_debug.xv5T -o foreman_cif.h264 -i foreman_cif_420SP.yuv -f 60 -b 1000000 -w 352 -h 288 -c h264 & encode_a8host_debug.xv5T -o | --output          output filename -i | --input          input filename -f | --framerate      encode frame rate -b | --bitrate        encode bit rate -w | --width          encode width -h | --height          encode height -c | --codec          h264, mpeg4, h263 example -    ./encode_a8host_debug.xv5T -o sample.h264 -i sample.yuv -f 60 -b 1000000 -w 1920 -h 1080 -c h264 5.1.2 OMX方式调试Capture -> Encode实验 target$ ./capture_encode_a8host_debug.xv5T -o sample.264 -m 1080p -f 60 -b 2000000 -n 1000 -d 0 & ./capture_encode_a8host_debug.xv5T: invalid option -- 'h' capture_encode -f -m -b -o -n -d <0/1> -o | --output            output filename -m | --mode            1080p / 720p capture/On-chip HDMI display mode -f | --framerate        encode frame rate -b | --bitrate          encode bit rate -n | --numframes      encode number of frames -d | --display_id        0 - for on-chip HDMI, 1 for Secondary display example -    ./capture_encode_a8host_debug.xv5T -o sample.h264 -m 1080p -f 60 -b 1000000 -d 0 -n 1000 for 720p, set hdmi mode before running example echo 720p-60 >/sys/devices/platform/vpss/display0/mode 5.1.3 OMX方式调试Decode -> File实验 target$ ./decode _a8host_debug.xv5T -w 1920 -h 1080 -i dm816x_1080p_demo.264 -o out.yuv -c h264 & 注意:因为1080p解码的yuv文件数据庞大,而板卡内存容量不够,因此板上至多只能解码保存1G以内的yuv数据,至多大概250帧,否则导致系统崩溃。 decode -w -h -i -o -c codec -i | --input          input filename -w | --width          image width -h | --height          image height -o | --output          output filename -c | --codec          h264, mpeg2, mpeg4, h263, vc1 example : ./decode_a8host_debug.xv5T -w 352 -h 288 -i in_352x288.264  -o out.yuv -c h264 5.1.4 OMX方式调试Decode -> Display实验 target$ ./decode_display_a8host_debug.xv5T -i dm816x_1080p_demo.264 -w 1920 -h 1080 -f 60 -g 0 -d 0 -c h264 & decode_display -w -h -f -i -g -d <0/1> -i | --input        input filename -w | --width      image width -h | --height      image height -f | --framerate    decode frame rate - max 60 -c | --codec      codec to be used - should be one of h264,h263,mpeg4,vc1,mpeg2 -g | --gfx        gfx - 0 - off, 1 - on -d | --display_id  0 - for on-chip HDMI, 1 for secondary display example : ./decode_display_a8host_debug.xv5T -i sample.h264 -w 1920 -h 1080 -f 30 -g 0 -d 0  -c h264 5.1.5 Profile和Level的测试 修改DM8168例程里面的capture_encode的代码,以实现把baseline级别的H.264编码改为highprofile级别的H.264编码。具体实现如下: 所需修改的文件: dm816x-evm_5_03_01_15\component-sources\omx_05_02_00_30\examples\ti\omx\demos\encode\src\ilclient_utils.c 修改函数: 配置函数OMX_ERRORTYPE IL_ClientSetEncodeParams(IL_Client *pAppData)中的/* Set the profile and level for H264 */这一部分代码 修改内容: 修改参数tProfileLevel.eProfile = OMX_VIDEO_AVCProfileHigh;       tProfileLevel.eLevel = OMX_VIDEO_AVCLevel42; 并把/* Set the profile and level for H264 */这一部分代码放到"Set Encode bitrate "这部分代码之后,保存,编译代码,并执行。 5.2 OMTB脚本调试方式 进入到omtb的目录下 target$ cd /usr/share/ti/ti-omtb 把../omtb_01_00_01_07/bin/dm81xxbm/bin/ti816x-evm路径下编译好的omtb_dm81xxbm_a8host.xv5T及../omtb_01_00_01_07/packages/ti/sdo/omtb/scripts路径下*.oms脚本文件用u盘拷到该目录下“*”表示需要拷贝的文件,如omtb_dm81xxbm_a8host.xv5T。 target$ cp /media/sda/omtb_dm81xxbm_a8host.xv5T ./ 进入到video的目录下 target$ cd /usr/share/ti/data/videos 该目录下存放编码所需要的YUV文件和解码所需要的.264文件。这个与脚本中的命令有关,如脚本中的这一句命令就是把输出文件放到该目录下。 omx setp 0 h264venc outfile /usr/share/ti/data/videos/dm816x_1080p60_encode.264 可以通过修改脚本中的命令来改变这些媒体存放的路径以及文件名。注意的是做编码实验时,要记得把YUV文件的文件名改为脚本中所起的文件名,否则报错不执行。 5.1.1 OMTB方式调试File -> Encode实验 target$ ./ omtb_dm81xxbm_a8host.xv5T fread_venc_fwrite.oms & 5.1.2 OMTB方式调试Capture -> Encode实验 target$ ./ omtb_dm81xxbm_a8host.xv5T capture_dei_encode.oms & 5.1.3 OMTB方式调试Decode -> File实验 target$ ./ omtb_dm81xxbm_a8host.xv5T fread_vdec_fwrite.oms & 5.1.4 OMTB方式调试Decode -> Display实验 target$ ./ omtb_dm81xxbm_a8host.xv5T decode_scale_display.oms &
/
本文档为【DM8168开发手册】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索