视频流和通常会耗掉消费者绝大部分互联网流量,同时也是云计算技术发展的主要推动力。对视频流和需求的持续增长,正在驱动视频处理应用迈出系统领域,步入数据中心。这一应用模式的转变需要具备快速扩展能力的计算节点来满足视频内容制作和分发的各个不同高计算强度阶段的需求,如转码需求和水印需求。
我们近期使用赛灵思SDAccel™开发环境来编译和优化专为FPGA加速卡采用OpenCLTM编写的视频水印应用。视频内容提供商使用水印起到广告和内容保护的作用。我们的目的是设计一种能处理运行在Alpha Data ADM-PCIE-7V3卡上,吞吐量为30fps,分辨率为1080p的高清(HD)视频的水印应用。
SDAccel开发环境能让设计人员先用OpenCL编写应用,然后在无需了解底层FPGA实现工具的情况下把应用编译到FPGA中。可以以这种视频水印应用为例来介绍SDAccel中的主要优化技巧。
带标识插入功能的视频水印
该视频水印算法的主要功能是在视频流的特定位置覆盖一个标识。用于水印的标识可以是活动的,也可以是静止的。活动标识一般采用简短的重复性视频片段来实现,静止标识则采用静止图像。
广播企业宣传自己视频流最常用的方法是把企业标识用作静止水印,因此成为我们实例设计的目标。该应用根据下列等式,以逐像素粒度插入静止标识。
XC7A35T系列优势热卖产品:
XC7A35T-1CPG236C
XC7A35T-2CPG236C
XC7A35T-1CPG236I
XC7A35T-2CPG236I
XC7A35T-L1CPG236I
XC7A35T-L2CPG236E
XC7A35T-3CPG236E
XC7A35T-1CSG324C
XC7A35T-2CSG324C
XC7A35T-1CSG324I
XC7A35T-2CSG324I
XC7A35T-L1CSG324I
XC7A35T-L2CSG324E
XC7A35T-3CSG324E
XC7A35T-1CSG325C
XC7A35T-2CSG325C
XC7A35T-1CSG325I
XC7A35T-2CSG325I
XC7A35T-L1CSG325I
XC7A35T-L2CSG325E
XC7A35T-3CSG325E
XC7A35T-1FTG256C
XC7A35T-2FTG256C
XC7A35T-1FTG256I
XC7A35T-2FTG256I
XC7A35T-L1FTG256I
XC7A35T-L2FTG256E
XC7A35T-3FTG256E
XC7A35T-1FGG484C
XC7A35T-2FGG484C
XC7A35T-1FGG484I
XC7A35T-2FGG484I
XC7A35T-L1FGG484I
XC7A35T-L2FGG484E
XC7A35T-3FGG484E
==================================
深圳市毅创腾电子科技有限公司
电话:(86)-0755-83210909 83213361 83616256
手机:13725570869 朱小姐
企业QQ: 814996185 / 611154768
==================================
输入和输出帧为二维阵列,像素使用YCbCr色域表达。在该色域中,每个像素用三个分量表达。Y表示亮度分量,Cb表示色度蓝色色差分量,Cr表示色度红色色差分量。每个分量都用一个8位值表达,因为每个像素为24位。
该标识是一个包含待插入内容的二维图像。掩膜也是一个图像,但只包含标识的轮廓图。掩膜的像素可以是白色或黑色。掩膜的白色像素表示标识的插入位置,黑色像素则表示原始像素未被触及的地方。图1所示的,就是这种视频水印算法的运算方式实例。
与其他软件可编程架构相比,FPGA架构的优势之一在于灵活性强,能配置连接内存的总线。SDAccel能根据具体的应用内核创建用于连接内存的定制化数据路径和架构。通过修改代码,可以处理多个像素,从而能够从内核中调用更高的内存带宽。这个过程称之为矢量化。
矢量化的程度是否合适,取决于具体应用和所使用的FPGA加速器卡。以Alpha Data卡为例,设备全局内存接口宽度为512位,这与SDAccel为内核提供的AXI互联宽度一致。鉴于带宽为512位,该应用调整为每次处理20个像素(24位/像素×20像素=504位)。SDAccel完全支持矢量数据类型。因此就本应用而言,代码的矢量化非常简单。
应用前景广泛
使用SDAccel开发本文介绍的这类应用时所进行的必要优化属于软件优化。因此这些优化工作与从其他处理架构中(如GPU)获取性能所开展的优化类似。使用SDAccel后,让PCIe链路工作、驱动程序、IP布局和互联等细节都不是问题,使我们就像设计人员一样只需集中精力开发目标应用。
我们在水印应用中所做的优化适用于使用SDAccel编译过的所有应用。事实上视频水印应用就是一个很棒的技巧讲解,详细介绍了赛灵思SDAccel中推出的优化方法。