这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » FPGA » [转帖]在DM642上开发嵌入式的网络视频服务器

共2条 1/1 1 跳转至

[转帖]在DM642上开发嵌入式的网络视频服务器

菜鸟
2006-12-09 18:11:14     打赏
一、系统方案 视频服务器的解决方案有多种选择,但是市场产品的主流一般选择两种方案:(1)CPU+ASIC。该方案选择以ARM为核的CPU和专用媒体处理芯片搭建。优点是开发时间相对较短,但由于采用ASIC,灵活性较差,产品一旦定型,很难更改。(2)采用面向媒体处理的专用DSP。其开发时间不长,优点是由于算法是软件代码,所以可以不断对产品性能进行升级,重复开发成本较低。 TI公司的DM642是一款专门面向多媒体应用的专用DSP。该DSP时钟高达600MHz,8个并行运算单元,处理能力达4800MIPS.。为了面向多媒体应用,还集成了3个可配置的Video Port、面向音频应用的McASP、10/100Mb/s的Ethernet MAC等外设。本文将以DM642为例,简要讨论在开发视频服务器中的技术难点和可以采用的解决方法。 视频服务器最主要的功能是完成图像和声音的采集、压缩及传输的功能。附图是一般的原理框图: 二、核心技术 视频服务器用到的核心技术一般包括视频压缩算法,音频压缩算法,网络传输协议。目前市场上的主流技术主要是MPEG4或H26x视频压缩算法、AAC音频压缩算法、G.72x语音压缩算法(或AAC音频压缩算法),TCP/IP协议等。 对于这些核心算法,一般为TI的第三方公司掌握,如果使用需要支付较高的入门许可费和每个产品的License费用。鉴于此,一些有实力且有相关技术背景的公司选择自主研发。下面我们对视频压缩算法的开发中解决的一些主要问题进行介绍。 (a)开发平台的选择 TI公司提供DM642的EVM板,一般的开发厂商可以在其上进行算法的验证,但开发板价格较贵,另外在上面开发的程序跟实际应用毕竟有区别,移植工作会延长最终产品的发布时间。因此,建议有较强开发实力的公司可以直接进行视频服务器板卡的设计,直接以板卡作为平台进行算法的验证。我们采用这种方法不但省去了EVM板的购买,而且缩短了整个产品的开发周期。 (b)DM642片内内存有限 DM642有256KB的片内内存,对于直接处理图像数据还是很有限的。MPEG4算法一般至少要存储当前待编码帧数据和上一帧的重建帧数据,一帧 YUV420格式CIF图像的数据约有150KB,256KB内存对于CIF图像就不够了。对于DM642,数据如果放在板卡上的片外内存中,数据的处理速度会大大降低,这是因为DSP对片外数据的运算慢得多。我们一般采取的方案是对图像以宏块为单位处理,只将运算时该宏块需要的数据导入片内,其它数据留在片外,这样的数据量就足够放在片内了。 (c)充分利用DM642的DMA通道 DSP直接访问内存会造成等待,浪费大量不必要的时钟周期。幸好DM642有强大的DMA能力,因此我们可以在处理当前宏块数据时,将下一个宏块的数据通过DMA倒入片内,当处理完当前宏块的时候,下一个宏块的数据就已经准备好了,这样可以极大提高DSP的利用率。但具体实现的时候需要对DMA启动的时机进行仔细的考虑,在数据访问不冲突的情况下尽量提前。 (d)充分利用Cache DM642的片内内存可以有一部分配置成Cache,总的原则是将尽量多的关键数据分配在片内,Cache越大越好,对于不同的应用需要用不同的配置。最优配置需要在开发中根据经验和实际的测试结果进行选择。 (e)提高DM642的编码速度 TI的CCS编译器已进行了充分的优化,再加上DSP本身的强大处理能力,对于一般的处理算法,只要用标准C语言编写就可以达到应用的需求。但是对于视频服务器,一般有多路图像的输入,这时编码速度越快,就意味着可以处理更多路的输入图像,也就意味着更高的产品性价比。因此如何发挥DM642的最高性能是每一个开发厂商必须面对的问题。一般在编译程序时使用 ?o3的优化级别,对于特别影响速度的地方,如运动估计、VLC编码等部分可以编写线性汇编程序,如果对于编译器优化的线性汇编程序不是很满意,还可以直接用手工编写并行汇编程序,这样可以达到最优的性能,但这样对于开发人员的要求很高。因此建议较简单的函数采用并行汇编,达到最优性能;对于较复杂的函数采用线性汇编,以便加快开发速度。 (f)eXpressDSP标准 由于DSP的灵活性,TI有众多的提供各种算法的第三方公司,但在每一个具体的应用中一般需要将多种算法集成在一起,由于各种算法对资源的需求不同,很容易发生冲突,因此TI制定了eXpressDSP标准。它定义了一套建议算法遵循的接口标准,符合eXpressDSP的算法易于重复使用。由于视频服务器的型号繁多,算法更新快,因此开发时,符合eXpressDSP标准尤其重要。



关键词: 转帖     DM642     开发     嵌入式     网络视频     服务器         

菜鸟
2006-12-09 18:14:00     打赏
2楼
三、相关技术 解决了核心技术的问题就有了进行视频服务器开发的重要基础。但由于要满足用户的各种各样的需求,还需要解决很多相关技术。下面将选择一些较为重要的加以介绍。 (a) 操作系统 其实操作系统的开发是一个很困难的技术问题,列为核心技术绝不为过,但是正因为难度太大,仅仅为开发视频服务器而开发DM642上的操作系统代价太大。因此我们建议有两种选择:(1)购买TI第三方的操作系统。现在已经有TI第三方可以提供DM642上的Linux操作系统。但是详情尚不清楚。(2)使用TI提供的BIOS。TI BIOS是一个能提供操作系统最基本功能的很小的核,用户可以在上面开发应用程序。但是相对来讲,开发和调试都会困难一些。考虑到开发成本和操作系统的可靠性,我们选择了TI BIOS作为应用程序的简单操作系统。 (b)视频服务器资源的访问控制 为了满足监控的实际需求,一般需要在视频服务器上再增加串行口、报警I/O,、硬盘等资源,因为网络是不可靠的,因此如何可靠、及时、高效的对这些资源进行统一的控制访问是非常重要的问题。我们为此专门制定了NRCAP协议来解决这些问题。关于该协议的细节,感兴趣的读者可以和我们联系。 (c)媒体流传输协议 监控强调实时性、保密性与传输的高效性,为此需要开发厂商制定相应的传输协议。 (d)NAT问题 因为网络的实际状况千差万别,用户的需求各种各样,很容易遇到局域网与互联网在同一系统中存在的问题,这时如何在网关解决网内地址与网外地址的转换就必须考虑。一般很难提供一种统一的解决方案适合各种情况,因此开发厂商需要定义几种最常见网络情况的解决方案供用户选择。 (e)音视频同步 因为网络传输的固有特点,声音数据和视频数据从视频服务器到达客户端不可能是均匀的,如果客户端不做任何纠正处理,则很难保证音视频的同步输出。一般可以在数据包中嵌入时间戳信息,客户端根据这些信息决定媒体数据的合适播放时间。同时要强调的是视频数据最后是一帧一帧的图像,即在播放的时间轴上可以认为是一个一个孤立的点,而音频数据是一段、一段的数据,即在播放的时间轴上可以认为是连续的,因此两种媒体在同步播放的时机上是不同的。 (f)动态IP 由于现在很多用户都是拨号上网,在这种情况下视频服务器的IP是动态的。客户端如何及时的得知所要监控的视频服务器的IP是必须解决的问题。我们定义了一套CDDNS协议,视频服务器启动后,会根据CDDNS协议定时向CDDNS服务器注册自己的信息,用户通过查询CDDNS服务器就可以获得视频服务器的IP。 (g)移动目标侦测 监控时的很多场景通常是静止的,一旦有运动目标,用户希望能够得到通知。在开发侦测算法时,侦测阈值的选取是要特别研究的问题,需要考虑摄像机的噪音、现场的光照、移动目标的尺寸、速度等众多问题。 (h)文件系统 有的视频服务器带有本地存储功能,这样可以有效防止网络存在故障时重要数据的丢失。考虑到通用性,建议开发厂商选择主流的文件系统。在DM642平台上实现时,在只有TI BIOS的支持的情况下,我们实现了FAT32文件系统,实践证明它稳定可靠,用户也乐于接受。如果开发厂商可以运行成功操作系统,则文件系统就很简单了,可以不用再单独考虑。 (i)文件存储格式 一般开发厂商应该开发两种文件存储格式:专用格式和通用格式。对于强调保密性的用户,一般应该提供专用的存储格式,开发厂商通过不公开文件格式比较容易达到保密的目的。对于强调易用性的用户,一般应该将数据存储为AVI文件,然后提供用户可安装的插件。 (g)自动拨号 这是和动态IP相关的问题,之所以单独列出,是因为问题解决上是和CDDNS完全不相关的。开发厂商需要开发自己的pppoe等拨号协议。 以上开发中需要解决的问题以及一些问题的解决方法,是我们在开发CNVS系列视频服务器中总结的,希望对大家有所帮助。目前以附图解决方案为基础的安徽创世公司的一系列视频服务器产品已经推向市场。在实际的应用中,运行稳定可靠,具有很高的性价比,受到了众多用户的肯定。这也从一个侧面证明了这种解决方案的合理性与优越性。 最后,我们还要指出的是:对于以上解决方案,由于集中解决了很多在音视频领域应用的共性问题,所以通过较小的改动,就可以应用于其他的产品领域。如便携录像机(PVR)、可视电话等,都是开发厂商可以考虑的扩展应用领域。

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]