
fpga+dsp异构视频处理系统中基于srio的数据高效传输方法.doc
18页FPGA+DSP 异构视频处理系统中基于SRIO 的数据高效传输方法 姜宏旭 刘亭杉 李辉勇 张萍 段洣毅 北京航空航天大学计算机学院数字媒体北京市重点实验室 摘 要: 数据传输一直是影响嵌入式视频系统实时处理能力的关键环节.随着视频应用的多路化和高清化, 混合多处理器结构已成为嵌入式视频处理系统的主要发展趋势, 异构处理器之间数据的高效传输对系统性能的影响变得比以前更加突出.文中针对 FPGA+DSP 异构视频处理系统中的数据传输问题, 在分析处理器结构和视频数据格式特征的基础上, 提出了一种基于高速串行接口 SRIO (Serial Rapid I/O) 的数据高效传输方法.该方法分别以 FPGA、DSP 作为系统的传输、处理核心, 在 FPGA 处理器上采用视频三分量数据重组方法并使用包头信息较小的SRIO 流写事务 SWRITE (Streaming Write) , 简化视频传输格式的同时提高了SRIO 视频数据包的传输效率;在 DSP 处理器上通过预定义接收端数据存储单元和采用简洁的 SRIO 门铃事务 (DOORBELL) 应答机制, 节约了 DSP 在传输过程中的时间开销.实验结果表明, 文中设计的 SRIO 高效传输方法在占用较少的 FPGA资源的条件下传输速度达理论值的 81%以上.关键词: FPGA+DSP; 视频数据; SRIO; 高效传输; 作者简介:姜宏旭, 男, 1976 年生, 博士, 副教授, 主要研究方向为数字媒体处理及嵌入式系统设计.E-mail:jianghx@.作者简介:刘亭杉, 女, 1986 年生, 博士研究生, 主要研究方向为数字媒体处理及嵌入式系统设计.作者简介:李辉勇, 男, 1983 年生, 博士研究生, 主要研究方向为数字媒体处理及嵌入式系统设计.作者简介:张萍, 女, 1987 年生, 硕士研究生, 主要研究方向为数字媒体处理及嵌入式系统设计.作者简介:段洣毅, 男, 1953 年生, 博士, 教授, 主要研究领域为数字视频/图像压缩处理技术、信息融合技术等.收稿日期:2014-07-18基金:国家自然科学基金 (61272347) A High-efficiency Data Transmission Method Based on SRIO in FPGA+DSP Heterogeneous Video Processing SystemJIANG Hong-Xu LIU Ting-Shan Li Hui-Yong ZHANG Ping DUAN Mi-Yi Beijing Key Laboratory of Digital Media, School of Computer Science and Engineering, Beihang University; Abstract: Data transmission is a critical part of an embedded video system for its real-time processing ability.With the development of digital video processing applications, in order to alleviate the requirement of large amounts of data transmission (take multi-channel, high-definition video for example) , multi-processor technique will become more popular in the future.In this paper, we proposed a novel high-efficiency data transmission method based on Serial Rapid I/O (SRIO) for FPGA+DSP video processing system.Considering the heterogeneous processor structure and video data format, we made FPGA as a core unit of transmission and DSP as for processing.Specially, we reorganized the video transmission sequence after separating the three components of video data and applied a lightweight SRIO streaming write transaction (SWRITE) which has minimal header overhead to increase data throughput.To reduce the DSP transmission time, the video data was directly stored in the predefined DSP storage unit and a simple DOORBELL transaction was used as a notification message.The experimental results show that our method can save lots of FPGA resources, and at the same time the transmission rate can achieve 81% of the SRIO theoretical value, which overcomes most of existing methods.Keyword: FPGA+DSP; video data; SRIO; high-efficiency transmission; Received: 2014-07-181 引言视频应用领域的快速增长和传感器技术的迅速发展推动了视频时空分辨率的提高, 同时也使多路化、高清化成为视频应用发展的一种趋势.视频数据量的激增不仅给处理平台的计算能力带来了严峻挑战, 同时也给视频处理系统中处理器间数据的高速传输造成了极大困难.例如, 当使用 YCbCr 4∶2∶0 采样格式采集视频数据时, 一路分辨率为 720×576, 帧率为 25 帧/秒的 D1 数字视频原始数据率约为 119Mbps, 一路 1080P30 高清数字视频的原始数据率高达 712Mbps.因此, 在视频处理系统设计中除了要关注处理器的性能和计算能力之外, 研究和解决处理器间视频数据的高效传输问题同样重要.目前, 嵌入式视频处理系统中常用的互连和传输接口 EMIF (External Memory Interface) 等已难以满足多路或高清视频的大数据量传输需求[1-3].高速串行接口 SRIO 作为 RapidIO 的一个重要分支, 是面向嵌入式系统开发提出的高可靠、高性能、基于包交换的新一代高速互联技术, SRIO 技术的发展为异构处理器间的高速互联提供了另一种可能.特别是近年来推出的数字信号处理器 (Digital Signal Processor, DSP) 和现场可编程门阵列 (Field Programmable Gate Array, FPGA) 等嵌入式处理器普遍集成高速差分串行收发器, 很大程度上促进了 SRIO 的发展应用[4-7].尽管 SRIO 具有可选的1.25Gbps、2.5Gbps、3.125Gbps 等多种传输速率, 然而这只是理论值, 低效的传输机制设计或是繁琐的实现过程都会导致其传输速度的大幅降低.例如:文献[8]基于多核 DSP 设计实现了声纳基阵处理系统, 此系统使用 SRIO 的普通读事务 NREAD (Normal Read) 、普通写事务 NWRITE (Normal Write) 、门铃事务DOORBELL 以及对 RapidIO 内部寄存器进行操作的 MAINTENCE 事务, 传输方法上未加优化, 测试 1.25Gbps 工作模式下传输速率约为 257Mbps, 仅达到 SRIO 理论值的 25%;文献[9]通过在 FPGA 端采用乒乓存储结构, 并使用带响应的写事务NWRITE_R (Normal Write with Response) 与 DOORBELL 等 SRIO 事务设计传输机制, 数据率比未加优化的方法有了明显提升, 达到 SRIO 理论带宽的 74%.由于现有方法在设计 SRIO 传输机制时缺乏针对视频数据和异构处理器结构特点的考虑, 直接采用已有技术难以满足异构视频处理系统中视频的高效传输和处理需求.此外, 现有视频处理系统大多偏重于功能的实现, 硬件资源的开销较大.例如, 文献[10]提出的方法需要为 FPGA 外挂两片同步动态存储器 SDRAM (Synchronous Dynamic Random Access Memory) , 增加资源占用的同时, 加大了系统软硬件设计的复杂度.文献[11]采用基于 DSP 主动发送数据的传输方案, 该方案需要 FPGA 向 DSP 发送中断信号以请求数据, 每中断一次 DSP 可以发送1/4 帧的视频数据, 因此显示一帧视频需要 4 次中断.由于 DSP 在进行视频处理工作的同时还要负责数据传输, 无疑加大了 DSP 时间与资源的开销.本文在分析视频数据和异构处理器结构特点的基础上提出了一种基于 SRIO 总线的数据高效传输方法.该方法通过在 FPGA 处理器上采用视频三分量数据重组方法并使用包头信息较短的 SWRITE 事务, 简化视频传输格式的同时提高了 SRIO上视频数据包的传输效率;在 DSP 处理器上通过预定义接收端数据存储单元和采用简洁的 DOORBELL 应答机制, 节约了 DSP 在传输过程中的时间开销.本文方法由于仅采用 SWRITE、NREAD 和 DOORBELL 这 3 种 SRIO 事务, 减化了实现过程的复杂度.此外, 由于视频数据是以行为单位在 FPGA 上存储的, 并且在存储过程中, 采用 FIFO 视频缓冲队列取代资源占用率较高的 RAM, 因此系统对 FPGA 内存资源占用较少, 无需外部存储器, 降低了软硬件设计的难度.实验证明, 本文使用 SRIO 单通道并采用 1.25Gbps 工作速度, 传输速率达 829Mbps 以上, 可满足六路 D1 视频或一路 1080p 高清视频的传输需求.文中以一路 D1 视频传输为例做出说明及验证方法的可行性.本文第 2 节对系统的整体概况进行描述, 包括本文所采用的视频处理系统的结构、视频数据格式的分析、SRIO 事务类型的介绍以及 SRIO 传输过程的介绍等内容;第 3 节详细介绍本文提出的异构处理器间 SRIO 高效传输方法, 主要分为方法处理流程、SRIO 高效传输机制设计与方法的实现 3 个主要部分;第 4 节首先对实验环境进行介绍, 然后分别给出方法的 SRIO 传输速率测试与 FPGA 资源使用情况的相关实验结果.2 系统概述2.1 FPGA+DSP 异构视频处理系统结构由于数据计算能力强、功能定制灵活, DSP 和 FPGA 已成为嵌入式视频处理系统中应用最广泛的两种处理器.其中, DSP 是一种适合进行数字信号处理运算的微处理器[12], 主要用来实现各种数字信号处理算法;FPGA 虽然具有体系结构灵活、集成度高以及适用范围广等特点[13], 但相对于 DSP 而言, 其算法程序的设计难度大、开发周期较长.现有主流的基于多处理器的视频处理系统主要有基于 DSP+DSP 同构处理器架构和 FPGA+DSP 异构处理器架构两种.相比之。
