- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
以DSP和FPGA协同技术设计实现的高性能视频编码器视频采集设计
采用(DSP)和FPGA协同技术设计实现了一个高性能的MPEG24视频(编码器)。FPGA模块完成视频采集、YUV分离、数据I/O等功能,而使用DSP专一进行视频压缩编码。针对DSP片内资源特点设计了片内存储器数据分配方案,并根据该方案优化了MPEG24视频压缩的数据流模式。提出了基于宏块空间复杂度的宏块类型判断算法,有效地降低了视频压缩算法的计算复杂度。测试结果表明,采用MPEG24视频标准该视频编码器每秒能够压缩3912帧CIF图像。
随着宽带In(te)rnet的快速发展和电子设备计算能力的迅速提高,在Internet上实时传输高清晰度视频信息成为可能,以Internet为传输媒介的视频会议、视频监控、Internet电视台等视频应用方兴未艾。这些应用的一个共同特点是,都需要一个高性能的实时视频编码器,特别是高分辨率的视频应用给视频编码器的计算能力提出了很高的要求。例如,一幅720576的4∶2∶2视频格式的画面,包含有3240个1616的YUV宏块(MacroBlock,即MB)。如果该视频帧按照P帧或者B帧进行压缩,那么每一个YUV宏块都要进行运动估计、运动补偿、DCT(DiscreteCosineTransform)/反DCT变换、量化/反量化和VLC(VariableLengthCoding)等环节的运算。如果进行实时压缩(每秒钟压缩25帧)的话,大致需要316~(5G)IPS(InstrucTIonpersecond)的计算能力。
目前,单一的(CPU)/DSP一般还不具备这样的计算能力。为了解决高清晰画面的实时视频压缩问题,本文提出了DSP和FPGA(FieldPro-g(ram)mableGateArray)协同设计方案。使用FP-GA完成视频采集、YUV(视频亮度Y、色度分量
UV)分离、数据I/O(Input/Output)等所有周边功能,使用高性能的DSP进行视频压缩编码,因而在视频编码器内DSP和FPGA能够进行流水操作,有效地提高了编码器的性能。
为了降低算法的计算复杂度,本文提出了基于宏块空间复杂度的宏块编码类型判别算法(MTJBSC)。在标准MPEG24视频运动估计算法中,判别宏块的编码类型是通过计算当前宏块内像素值方差和参考宏块与当前宏块之间的方差来实现的,因此计算量很大。MTJBSC算法首先计算出当前宏块的空间负责度(MBC),然后通过比较当前宏块的MBC与SAD(SumofAbsoluteDifference)值来判断当前宏块的编码类型,大大降低了算法的计算复杂度。
1 硬件设计方案
基于TI公司的图像开发工具包(ImagingDeveloperKit,即IDK)架构,设计了视频编码器的硬件平台。从整体上来讲,视频编码器的硬件实现由DSP和FPGA两个模块组成,其逻辑框图如图1所示。由于视频压缩编码计算量很大,为了尽可能提高视频压缩帧率,由DSP专门负责视频压缩编码,而视频采集、YUV转换和编码器I/O接口等其它功能则交由FPGA模块来实现。
如图1所示,用户控制命令(例如视频压缩模式)由FPGA模块首先截获,然后FPGA模块向DSP模块产生外部中断,DSP在响应中断时读取存储在FPGA中的用户控制命令字,然后DSP解析命令字,并根据用户要求的视频格式、帧图像分辨率和视频压缩码流速率进行视频压缩编码。
模拟视频信号经视频解码器转换为裸视频数据流,该数据流(或从数字摄像机直接获得的数据流)经FPGA预处理后送入帧存中。DSP读取帧存中的数据进行压缩编码,压缩后的视频数据送入FIFO中,最后FIFO中的数据通过串口送给信道编码器。
FPGA模块的逻辑框图见图2。如图2所示,视频解码器首先将模拟视频信号量化为复合的YUV数据,然后经FPGA进行YUV分离(和滤波)后送到帧存(图1中的S(DRAM)1)中,C6201使用(DMA)通道(异步方式)通过FPGA读取帧存中的YUV数据进行压缩编码。帧存(SDRAM1)在刷新(refresh)或缺页(pagemiss)时会引起DMA读等待,为了平滑这种等待引起的DMA读数据的抖动,设计时在FPGA的内部实现了一个高速FIFO。视频帧存采用了乒乓结构,将8M字节SDRAM分为两个4M字节的地址空间(每一个地址空间可以容纳一帧YUV视频数据(720576115字节)),一个地址空间用于存储当前正在采集的视频数据,另一个地址空间用于DSP的数据读取。在压缩CCIR601格式的视频图像(每秒25帧)时,由于DSP的处理速度(大约每秒10帧)慢于视频采集的速度,所以FPGA模块在采集完一帧数据进入等待状态,直到DSP压缩完上一帧视频数据时,这2个地址空间才进行互换。
DSP模块接收FPGA模块送
文档评论(0)