以DSP和FPGA协同技术设计实现的高性能视频编码器视频采集设计.doc
《以DSP和FPGA协同技术设计实现的高性能视频编码器视频采集设计.doc》由会员分享,可在线阅读,更多相关《以DSP和FPGA协同技术设计实现的高性能视频编码器视频采集设计.doc(6页珍藏版)》请在三一文库上搜索。
1、以DSP和FPGA协同技术设计实现的高性能视频编码器视频采集设计采用DSP 和FPGA 协同技术设计实现了一个高性能的MPEG24 视频编码器。FPGA 模块完成视频采集、YUV 分离、数据I/ O 等功能,而使用DSP 专一进行视频压缩编码。针对DSP 片内资源特点设计了片内存储器数据分配方案,并根据该方案优化了MPEG24 视频压缩的数据流模式。提出了基于宏块空间复杂度的宏块类型判断算法,有效地降低了视频压缩算法的计算复杂度。测试结果表明,采用MPEG24 视频标准该视频编码器每秒能够压缩3912 帧CIF 图像。随着宽带Internet 的快速发展和电子设备计算能力的迅速提高,在Inte
2、rnet 上实时传输高清晰度视频信息成为可能,以Internet 为传输媒介的视频会议、视频监控、Internet 电视台等视频应用方兴未艾。这些应用的一个共同特点是,都需要一个高性能的实时视频编码器,特别是高分辨率的视频应用给视频编码器的计算能力提出了很高的要求。例如,一幅720 576 的422 视频格式的画面,包含有3240 个16 16 的YUV 宏块(Macro Block ,即MB) 。如果该视频帧按照P 帧或者B 帧进行压缩,那么每一个YUV 宏块都要进行运动估计、运动补偿、DCT (Discrete Cosine Transform) / 反DCT 变换、量化/ 反量化和VLC
3、(Variable Length Coding) 等环节的运算。如果进行实时压缩(每秒钟压缩25 帧) 的话,大致需要316 5G IPS ( Inst rucTIon per second) 的计算能力 。目前,单一的CPU/ DSP 一般还不具备这样的计算能力。为了解决高清晰画面的实时视频压缩问题, 本文提出了DSP 和FPGA ( Field Pro-grammable Gate Array) 协同设计方案。使用FP-GA 完成视频采集、YUV (视频亮度Y、色度分量UV) 分离、数据I/ O( Input/ Output) 等所有周边功能,使用高性能的DSP 进行视频压缩编码,因而在视
4、频编码器内DSP 和FPGA 能够进行流水操作,有效地提高了编码器的性能。为了降低算法的计算复杂度,本文提出了基于宏块空间复杂度的宏块编码类型判别算法(MTJBSC) 。在标准MPEG24 视频运动估计算法中,判别宏块的编码类型是通过计算当前宏块内像素值方差和参考宏块与当前宏块之间的方差来实现的,因此计算量很大。MTJBSC 算法首先计算出当前宏块的空间负责度(MBC) ,然后通过比较当前宏块的MBC 与SAD(Sum of Absolute Difference) 值来判断当前宏块的编码类型,大大降低了算法的计算复杂度。1 硬件设计方案基于TI 公司的图像开发工具包( Imaging Dev
5、eloper Kit ,即IDK) 架构,设计了视频编码器的硬件平台。从整体上来讲,视频编码器的硬件实现由DSP 和FPGA 两个模块组成,其逻辑框图如图1 所示。由于视频压缩编码计算量很大,为了尽可能提高视频压缩帧率,由DSP 专门负责视频压缩编码,而视频采集、YUV 转换和编码器I/ O 接口等其它功能则交由FPGA 模块来实现。如图1 所示,用户控制命令(例如视频压缩模式) 由FPGA 模块首先截获,然后FPGA 模块向DSP 模块产生外部中断,DSP 在响应中断时读取存储在FPGA 中的用户控制命令字,然后DSP 解析命令字,并根据用户要求的视频格式、帧图像分辨率和视频压缩码流速率进行
6、视频压缩编码。模拟视频信号经视频解码器转换为裸视频数据流,该数据流(或从数字摄像机直接获得的数据流) 经FPGA 预处理后送入帧存中。DSP 读取帧存中的数据进行压缩编码,压缩后的视频数据送入FIFO 中,最后FIFO 中的数据通过串口送给信道编码器。FPGA 模块的逻辑框图见图2 。如图2 所示,视频解码器首先将模拟视频信号量化为复合的YUV 数据,然后经FPGA 进行YUV 分离(和滤波) 后送到帧存(图1 中的SDRAM1) 中,C6201使用DMA 通道(异步方式) 通过FPGA 读取帧存中的YUV 数据进行压缩编码。帧存(SDRAM1)在刷新( ref resh) 或缺页(page
7、miss) 时会引起DMA 读等待,为了平滑这种等待引起的DMA 读数据的抖动,设计时在FPGA 的内部实现了一个高速FIFO。视频帧存采用了乒乓结构,将8M 字节SDRAM 分为两个4M 字节的地址空间(每一个地址空间可以容纳一帧YUV 视频数据(720 576 115 字节) ) ,一个地址空间用于存储当前正在采集的视频数据,另一个地址空间用于DSP 的数据读取。在压缩CCIR601 格式的视频图像(每秒25 帧) 时,由于DSP 的处理速度(大约每秒10帧) 慢于视频采集的速度,所以FPGA 模块在采集完一帧数据进入等待状态,直到DSP 压缩完上一帧视频数据时,这2 个地址空间才进行互换
8、。DSP 模块接收FPGA 模块送过来的YUV 视频数据,然后进行视频压缩编码,最后将压缩的码流再转交给FPGA 模块,由FPGA 模数据发送出去。DSP 模块的存储单元(图1 中的SDRAM2) 用来存放参考帧数据和中间运算结构。MPEG-4 压缩编码算法指令存放在PROM 中,为缩短取指时间, 编码器在启动时已将指令从PROM 读到片内存储器中。MPEG 压缩码流是变速码流(VBR) ,而当该码流在恒定速率(CBR)的信道上发送时,需要一个FIFO 缓存来平滑编码器输出码率的波动。该设计的特点主要表现在以下2 个方面:可扩展性好。FPGA 模块除了负责数据I/ O功能外,还作为协处理器使用
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DSP FPGA 协同 技术设计 实现 性能 视频 编码器 采集 设计
链接地址:https://www.31doc.com/p-3375082.html