




已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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 BX22501.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 vmtoolshost$ cd vmtoolshost$ 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 toolshost$ sudo ./ vmware-install.pl然后会有一系列安装目录参数问题,直接按回车确认默认路径即可,中间碰到的问题,全部都直接回车确认默认方案即可,等待安装完成。重启ubuntu。host$ sudo reboot重启完成后可以通过System-Preference-Monitor来设置屏幕的分辨率。而且还可以现实虚拟机共享宿主计算机文件系统,其操作如下:在虚拟机配置界面选择Options,双击share folders,选择always enable。点击add添加共享文件,按照向导,点下一步,在选择主机文件的时候选择一个文件夹。确定,按照向导继续,完成,就能在共享文件列表里面看到新增加的共享文件了,根据自己的需要,按照同样的办法添加其他的共享文件。启动虚拟机,就能在/mnt/hgfs目录下看到所有的共享文件夹了。host$ cd /mnt/hgfshost$ ls注意先修改/home的读写权限,以免后面操作没有权限host$ sudo chmod 777 /home3.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/shhost$ 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_15host$ make components等待编译,需要数分钟。在以下路径下可以找到omx的组件源码生成的可执行文件*.xv5T文件。/opt/ ti-ezsdk_dm816x-evm_5_03_01_15/component-sources/omx_05_02_00_30/binhost$ make omtb等待编译,需要数分钟。在以下路径下可以找到omtb_dm81xxbm_a8host.xv5T文件。该文件用于解析omtb脚本文件。/opt/ti-ezsdk_dm816x-evm_5_03_01_15/example-applications/omtb_01_00_01_07/bin5调试连接好各种设备后就可以上电。(有一点需要注意的是串口线的插拔最好断电进行,因为串口是非热插拔器件,带电插拔容易烧串口。)上电后打开串口终端控制软件SecureCRT,可以看到系统打印的信息,并最终停留在登录界面,如下图所示。输入dm816x-evm的登录密码,密码为rootdm816x-evm login: root开始调试前,需要关闭gui界面才能看到显示的视频target$ /etc/init.d/matrix-gui-e stoptarget$ echo 0 /sys/devices/platform/vpss/graphics0/enabled如果需要改变播放显示的分辨率,按下列步骤操作(以设置1080p-60为例)target$ echo 0 /sys/devices/platform/vpss/display0/enabledtarget$ echo 1080p-60 /sys/devices/platform/vpss/display0/modetarget$ 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 help5.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 h2645.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 - hcapture_encode -f -m -b -o -n -d -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/mode5.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 h2645.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 -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 h2645.1.5 Profile和Level的测试修改DM8168例程里面的capture_encode的代码,以实现把baseline级别的H.264编码改为highprofile级别的H.264编码。具体实现方法如下:所需修改的文件:dm816x-evm_5_03_01_15component-sourcesomx_05_02_00_30examplestiomxdemosencodesrcilclient_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 */这一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 货车检车员技术考核试卷及答案
- 宴会定制服务师综合考核试卷及答案
- 竖井钻机工成本预算考核试卷及答案
- 石膏煅烧熟化工艺改进工艺考核试卷及答案
- 露天采矿单斗铲司机主管竞选考核试卷及答案
- 2024新版2025秋青岛版六三制三年级数学上册教学课件:第3单元 谁的眼睛亮-观察物体(一)
- 信息技术试题及答案语文
- 印刷机械公司合同付款管理办法
- 银行总行笔试题库及答案
- 银行账户试题及答案
- 大学生创新创业基础课件 第7章 创业与创业历程
- 班主任育人故事经验分享陪伴每一名学生慢慢成长模板
- 2025至2030中国漂白粉行业发展研究与产业战略规划分析评估报告
- 2025福建漳州闽投华阳发电有限公司招聘52人考试参考题库附答案解析
- 农药包装废弃物培训课件
- 无人机检测与维护课件
- 2025-2030海水淡化工程成本构成与降本路径分析
- 2025年事业单位招聘考试卫生类护理学专业知识试卷(护理文书)
- 2025年教科版新教材科学二年级上册教学计划(含进度表)
- 2025年职业技能鉴定考试(烟草物流师·二级)历年参考题库含答案详解(5套)
- GB/T 45859-2025耐磨铸铁分类
评论
0/150
提交评论