如何在FPGA中实现图像格式转换
扫描二维码
随时随地手机看文章
首先由同步视频输入MegaCore 功能来处理SDI 视频数据。该功能将同步视频格式数据( 例如, BT656 或者DVI) 转换为流控制Avalon 流(Avalon-ST) 视频协议,实现与数据通路后面其他视频处理功能的链接。 采用高质量视频处理数据通路来处理第一个视频通道。对每一输入视频图像( 这个例子中是NTSC) 场的前三行进行剪辑,输出720x240 图像。剪辑后的视频数据在从YcbCr 颜色空间转换为RGB 之前,经过色度上采样,转换为YCbCr 4:4:4 格式。色度上采样功能使用具有固定Lanczos-2 系数的4 抽头滤波器。颜色空间转换器也采用了取整( 向上半数取整) 算法,输出8 位位宽数据。 然后,将视频传送至去隔行功能模块。由于运动自适应算法要求输入颜色通道具有相同的采样率,因此,在进行去隔行处理之前,先进行色度上采样。( 今后的去隔行IP 将支持4:2:2 模式的视频处理功能)。去隔行器经过配置后,能够同时接收逐行和隔行视频。当输入视频是隔行格式时,运动自适应算法产生逐行格式的视频流。当输入视频是逐行格式时,去隔行器直接输出数据,不对其进行处理。当进行运动自适应去隔行处理时,数据在外部存储器中进行缓冲,完成基本帧速率转换处理。 然后,通过参数赋值缩放器功能( 具有12 个横向和12 个纵向抽头) 的多相算法对逐行视频流进行缩放。 采用Avalon 存储器映射(Avalon-MM) 从机控制接口对缩放器进行配置,支持缩放器输出分辨率运行时规范要求。此外,当缩放比率变化时, Nios? II 处理器上运行的软件计算并重新装入合适的系数,从而提高了图像质量。最后,在将视频流与背景测试码型以及第二个视频流混合之前,帧缓冲功能在外部存储器中缓冲视频数据。两路视频流输入到合成器进行缩放和同步,需要对突发数据流进行平滑处理。 第二个通道处理质量稍差,这样可以提高视频格式转换的资源利用率。主要有两种方法来处理两路不同格式的视频流: ■ 使用简单的最近邻居缩放算法对第二个视频流进行缩放,需要较少的片内存储器和乘法器资源。 ■ 使用场合并去隔行算法对第二个视频流进行去隔行处理,需要较少的逻辑资源和外部存储器带宽。 3 定制您的图像格式转换设计 Altera 视频工作台从根本上支持用户定制设计。工作台支持三级定制,非常灵活,如图4 所示。在FPGA 领域,这种定制功能是前所未有的,采用ASSP 进行设计是无法实现的。
图4. Altera 视频工作台支持不同层面的定制功能 采用Altera 视频工作台开发设计时,可以使用两种创新技术实时进行更新: ■ 数据包格式流接口——设计用于在功能模块之间同时传送视频和控制数据包。 ■ 算法功能模块配置——可以配置为存储器映射组件,通过写入相应的控制寄存器,实时更新功能。 Avalon-ST 视频协议是Altera 新的低开销流协议,提供面向数据包的方法来发送视频和控制数据。控制数据包用于发送动态参数,该参数描述流视频帧格式。这些参数应用于将要到达的下一视频数据包,或者在编译时设定,用在复位后接收到的第一个视频数据包上。( 表2 列出了控制数据包是怎样提供下一帧信息的)。数据到达时,视频数据流中的嵌入式控制数据包支持采用新数据对视频处理流水线进行重新配置。 表2. 控制数据包支持对视频流格式的动态更新
除了通过流接口实现运行时更新, Altera 开发的大部分视频功能模块都具有运行时更新功能。这表明,这些模块使用存储器映射从机接口,支持对状态机和片内处理器的更新。每个从机接口支持对一组控制寄存器的访问。例如,可以使用片内处理器,在运行时更新这些控制寄存器。在新一帧的开始,更新后的控制数据被装入到IP 功能模块中。这样,您可以在系统运行时更新图像大小和缩放系数,改变缩放比。图5 显示了Altera 视频工作台多相缩放引擎是怎样实现运行时控制的。
图5. 更新缩放功能 为进一步定制设计,您可以针对MegaCore 功能来修改参数。Altera 开发的所有视频功能都是可以进行参数赋值的。如图6 所示,利用去隔行器功能,您不但可以选择去隔行算法,还可以选择默认场、直通模式、外部存储器缓冲帧数量、输出帧速率和运动控制补偿等算法。
图6. 参数赋值硬件功能模块
Avalon-ST 和Avalon-MM 接口标准的开放即插即用规范意味着您可以先进行图像格式转换设计,然后,采用定制模块来替换Altera 模块。很多设计人员都有适合自己应用的定制算法。为实现定制算法的简单集成,Altera 提供支持Avalon-ST 接口打包器的HDL 模板。打包器包括以下模块:
■ VIP 控制数据包解码器——从数据流中解码VIP 控制数据包,将解码后的数据( 宽度、高度、隔行信息)作为单独的信号发送给算法功能模块。
■ VIP 控制数据包编码器——根据接收到的宽度、高度和隔行信息对VIP 控制数据包编码,将其插入到数据流中。
■ VIP 流控制打包器——围绕用户算法进行打包处理,实现 Avalon-ST 与简单读写接口的流控制转换。
■ 用户算法内核——HDL 模板在用户算法模块中提供了简单的设计实例。您可以采用自己的算法替代这一模块。
图7 所示为HDL 模板的高级结构视图。
图7. Avalon 流HDL 模板
Algolith 作为Altera IP 合作伙伴,是视频IP 领域的专业公司,采用了HDL 模板来评估其内核。Algolith 开始时采用Altera 参考设计进行图像格式转换,然后使用自己的专用运动自适应去隔行器替代Altera 去隔行器,并提供给用户,在硬件中进行评估。同样, Algolith 使用Altera 视频设计工作台开发了参考设计,帮助用户评估他们的噪声抑制IP。
4 结论
Altera 视频工作台为广播基础实施系统实现图像格式转换提供所有必须的关键功能。采用Altera 视频设计工作台和图像格式转换参考设计, FPGA 设计人员现在可以使用以前只有广播ASSP 才能提供的功能,而且还具有灵活性和硬件定制等优势。
引言
服务器、交换机、前端编码器以及专用演播显示器等广播基础设备系统支持各种输入图像格式,在存储、编码和显示之前,通常需要将图像转换为高清晰(HD) 或者其他分辨率格式。专用ASSP 虽然满足了这一市场需求,取得了一定的成功,但仍然面临通过采用单芯片方案来满足广播设备供应商各种特殊需求这一挑战。例如,在交换机应用中,总延时非常重要,延时是显示和视频会议系统的关键因素,而图像质量是摄制后期设备最重要的指标。除了这些特殊应用需求,器件还必须能够支持各种帧速率、分辨率和格式。
而且,这类设备的设计周期相对较短,当需求变化时,设计人员没有足够的时间等待长周期ASSP 重制的完成。结果,很多优秀的视频技术ASSP 供应商在这一领域未能及时跟上市场的脚步,被消费类电子芯片生产商收购,为消费类市场提供视频处理专业技术。例如, Gennum (VXP)、Genesis、Silicon Optix 和LetIt Wave 分别被Sigma Designs、ST Micro、IDT 和Zoran 收购。
在这一ASSP 行业合并和重新定位过程中, FPGA 视频处理功能不断增强,成为定制图像格式转换应用的理想平台。为支持加速实现FPGA 图像格式转换, Altera 开发了本白皮书介绍的1080p 视频设计工作台,帮助系统设计人员轻松开发定制图像格式转换信号链。本文所讨论的图像格式转换参考设计可以作为起点,适当修改后用于定制视频处理应用开发。本设计经过硬件验证,可以提供给授权用户。
1 视频设计工作台
Altera 视频设计工作台集成了各种工具和构建模块视频功能,有助于加速定制图像格式转换设计的开发和实现。它包括以下组成:
■ 构建模块视频知识产权(IP) 内核
■ 格式转换参考设计,展示FPGA 功能,提供设计起点。
■ 低开销开放视频接口,支持混合匹配定制或者商用IP 模块。
■ 用于集成处理器和存储器子系统的系统级设计工具
■ 可迅速进行原型设计的各种视频开发套件
Altera 为视频处理开发了各种构建模块,即,视频和图像处理(VIP) 包( 参见图1)。在这一开发包的众多功能中,缩放和去隔行是图像格式转换设计最常用的功能。Altera 的VIP 包具有复杂的多相缩放引擎和去隔行功能,可以配置实现运动自适应去隔行功能。其他常用的功能包括色度重新采样、颜色空间转换以及帧速率转换等,这些都含在VIP 包中。可以把这些视频功能结合在一起,开发定制视频格式转换设计。
图1. 视频图像处理(VIP) 包
这一视频设计工作台提供以前由ASSP 实现的功能,还具有定制设计并进行更新的优点( 参见表1)。
表1. Altera 视频设计工作台与广播ASSP 的对比
2 图像格式转换设计
如图2 所示,几乎所有的演播系统,包括服务器、交换机、前端编码器和面板等都需要进行定制图像格式转换,这是非常适合可编程FPGA 体系结构的应用。Altera 图像格式转换设计实现了隔行和逐行格式视频标准清晰度(SD) 和HD 视频流的高质量上、下、交叉转换。这一设计在硬件中进行了验证,可以从当地Altera 现场应用工程师(FAE) 那里获得。
图2. 典型演播系统的功能结构图
图3 所示的格式转换设计实现了双通道视频的图像格式转换。该设计包括两路SDI 通道视频,处理SD、HD 以及3G-SDI ( 全HD)。
图3. Altera 采用视频设计工作台开发的图像格式转换设计