账号:
密码:
最新动态
产业快讯
CTIMES / 文章 /
媒体处理器视讯滤波应用探讨
 

【作者: David Katz、Rick Gentile】2005年05月05日 星期四

浏览人次:【8333】

近年来,产品设计工程师需要进行即时视讯或影像分析,按照医用、工业和军事系统的一般需求必须采用成本很高的专用处理器。然而,随着定点、高性能嵌入式媒体处理器的出现,经济有效的即时影像处理已成为可能。为了开发真正高效率的演算法,充分利用这些处理器所提供的结构特性对产品设计工程师来说是很必要的。本文将讨论数位影像滤波演算法能够如何利用嵌入式媒体处理器结构的多媒体人性化特性。该媒体处理器的特点和指令集可用作一个参照点,但是同样的概念通常也适用于高性能媒体处理器。


现在,虽然定点处理器的时脉超过300MHz,但是仅仅增加时脉并不能确保适合即时视讯滤波的功能。同样重要的是连接多媒体的结构特性和专用视讯指令。


大多数视讯应用需要处理8bit资料,因为单一个像素分量(无论是RGB还是YUV)通常是基于位元组的资料。因此,8bit视讯演算逻辑单元(ALU)和基于位元组的位址资料在像素处理中会有很大不同。这一点非常重要,因为数位信号处理器(DSP)通常采用16bit或32bit资料工作。


另一特点是具有一个灵活的资料暂存器(Register)。在传统的定点DSP中,字长通常是固定的。然而,资料暂存器具有的一个优点是能以一个32bit字(例如R00)或者两个16bit字(例如R0.L和R0.H分别代表低16位和高16位元)来处理资料。这种结构的应用将在下面介绍。


专用的单周期指令可以非常方便地提供高效的多媒体编码演算法。这种应用的一个很好范例是 “绝对差的和”指令能同时将几个像素集之间的差值相加,从而表明在两讯框之间的场景变化有多大。


二维影像卷积

由于一个视讯流实际上是一个以一定速率运动的影像序列,所以影像滤波器需要足够快的工作速率才能跟上输入影像的连续运动。因此,必须最佳化影像滤波器内核以便占用尽可能最小的处理器周期。这可以利用分析二维卷积(Convolutional)的一个简单影像滤波器组来说明。


卷积是影像处理中的一个基本运算。一个给定像素的二维卷积计算是将其直接邻域像素的亮度按权值相加。由于一个遮罩的邻域集中在一个给定的像素中心,所以该遮罩通常具有奇数维数。该遮罩的大小通常比影像小,并且经常选用一种3×3的遮罩,因为它在每个像素基础上的计算是合理的,但是足够大才可以检测出一幅影像的边界。


3×3内核的基本结构如(图一)(a)所示。例如,位于一幅影像第20行第10列的像素卷积过程的输出应该是:


Out(20,10)=A×(19,9)+B×(19,10×(19,11)+D×(20,9)+E×(20,10)+F×(20,11 )+G×(21,9)+H×(21,10)+I×(21,11)



图一 : (a)3×3内核的像素卷积屏蔽及其使用方式
图一 : (a)3×3内核的像素卷积屏蔽及其使用方式

重要的是按照一种辅助计算方法来选择系数。例如,比例系数首选是幂指数为2(包括小数),因为乘法可以利用简单的移位操作来替换。


图一(b)~(e)显示几种有用的3×3内核,每一种内核都简述如下:


  • ●图一(b)显示出的δ函数是最简单的影像处理函数,当前像素不经修改直接输出;


  • ●图一(c)示出了边界检测遮罩的两种常用形式。第一种检测垂直边界,而第二种检测水平边界。高输出值对应较高的边界出现;


  • ●图一(d)的内核是一个平滑滤波器。它计算当前像素周围八个像素的平均值并且把结果放在当前像素的位置上。它具有 “平滑”或者“低通滤波”影像的作用;


  • ●图一(e)中的滤波器称为“模糊遮罩”操作。它可认为通过从当前像素中减去一个平滑的当前v像素(通过取其相邻的八个像素平均值得到)产生一个边界增强的影像。



以嵌入式媒体处理器达成影像卷积

以下将进一步讨论二维卷积过程。其高阶演算法可按下述步骤:


  • (1)将遮罩的重心放在输入矩阵的一个元素上;


  • (2)位于该遮罩邻域内的每个像素乘以相对应的滤波器遮罩元素;


  • (3)将每次乘法结果相加得到一个结果;


  • (4)将每次相加后的结果放在输出矩阵中遮罩中心对应的位置上。



(图二)显示3个矩阵:一个输入矩阵f(x,y),一个3×3遮罩矩阵h(x,y)和一个输出矩阵g(x,y)。



图二 : 对一幅影像的3×3卷积屏蔽操作
图二 : 对一幅影像的3×3卷积屏蔽操作

对每个输出点计算后,该遮罩被向右移一个元素。在影像的边界,该演算法绕回下一行的第一个元素上。例如,当将遮罩集中在以元素F2m为中心时,该遮罩矩阵的H23元素乘以输入矩阵的F31元素。结果使输出矩阵的可用部分在影像的每个边界都减少了1个元素。


对于一个30 幅/秒的视讯图形阵列(VGA;640×480像素/幅),其影像播放速率达到每秒9.2M。现在考虑如果9次乘法和8次加法需要串列来达成,运算速度将是(9+8)×9.2=156Mips。如果加法和乘法并行执行,那么运算速度降低为9×9.2=83Mips。下面的例子将说明如何节省2倍的运算周期。


高效二维卷积之实例

下文中将讨论所有乘法累加器(MAC)运算的“内部”回路。这个范例将证明只要适当地对齐输入资料,MAC单元就能够​​在一个处理器周期内每次处理两个输出点。在相同的周期内,读取与MAC运算同时执行的多个资料。


这个应用的关键部分是内部回圈,如(图三)所示。内部回圈的每条线路都按照单周期指令执行。输入资料以16bit数表示。输入矩阵的开始必须对齐32bit边界,这将确保输入矩阵的两​​个连续点可以在一个32bit的操作中被读取。在进入此回圈之前,该输入矩阵的第一个值保存在R0.H中并且它的第二个值(F12)保存在R0.L中,正如图三所示的第一周期前2个运算。暂存器R1.L也必须在进入内部回圈之前置入。它包含遮罩矩阵(H11)第一个元素的值。



图三 : 在DSP上实现高效3×3卷积操作
图三 : 在DSP上实现高效3×3卷积操作

正如前面所述,为了获得该输出矩阵的每个元素需要九次乘法和八次加法运算。但是,由于是双MAC运算,两个输出元素可以在每个内部回圈结束时获得。因此,F11×H11和F12×H11可以在第一条指令结束时在加法器中获得。内部回圈的每条指令都转向下一个遮罩值。其结果将在单独的累加法中累加。该内部回圈的最终输出置入R6中。


多个数学运算不仅仅同时出现在每个周期中,而且置入和保存可平行作业以便进一步提高效率。以第一周期为例,下一个输入元素(F13)读入R0.L中并且在随后的一个指令中用于一个MAC运算。类似地,将下一批遮罩值装入R2。这些值将用于该内部回圈的后续MAC操作。


结论

随着影像滤波技术的进步,3×3遮罩二维卷积的达成是相当明显的。上文中介绍的研究结果示范了如何选择一个适合即时影像处理的处理器,并了解其结构组成以便提高演算法效率、减少执行周期(这里为原来的1/4)。且此种处理器还能为在同一个平台上达成更复杂的影像处理功能提供更坚实的基础。 (作者任职于美商ADI Blackfin处理器应用开发部门)


相关文章
具备超载保护USB 供电ISM无线通讯
以GMSL取代GigE Vision的相机应用方案
运用PassThru技术延长储能系统寿命
巨磁阻多圈位置感测器的磁体设计
为新一代永续应用设计马达编码器
comments powered by Disqus
相关讨论
  相关新闻
» A+计划补助电动车产业 驱动系统、晶片和SiC衍生投资3亿元
» 工研院主办VLSI TSA研讨会登场 聚焦异质整合与小晶片、高速运算、AI算力
» 国科会扩大国际半导体人才交流 首座晶创海外基地拍板布拉格
» SEMI:2023年全球半导体设备市况 出货微降至1,063亿美元
» TrendForce:台湾强震过後 半导体、面板业尚未见重大灾损


刊登廣告 新聞信箱 读者信箱 著作權聲明 隱私權聲明 本站介紹

Copyright ©1999-2024 远播信息股份有限公司版权所有 Powered by O3  v3.20.1.HK8516G1YOESTACUKM
地址:台北数位产业园区(digiBlock Taipei) 103台北市大同区承德路三段287-2号A栋204室
电话 (02)2585-5526 #0 转接至总机 /  E-Mail: webmaster@ctimes.com.tw