常规全电视信号一行的扫描时间,国际标准是64us,正程是52.2u,如果一行的分辨率为512个象素的话,实时处理一个象素的时间近似为0.1us(100ns),如果一行的分辨率为256个象素的话,实时处理一个象素的时间近似为0.2us。 如果是彩色图像,一个象素含有RGB或YUV三个值,如果要作一个卷积运算,最小的卷积该是3×3,这样要在0.1或0.2us时间内,作3×9个加法和3×9个乘法,这是一般计算机所不能完成的,所以多媒体计算机中视频实时处理是一个关键的技术问题。 视频信号的实时处理,常用的有下述三种方法: ① 基于查找表LUT(Look up table)实时处理法; ② 基于DSP的视频信号快速处理器; ③ 流水线结构的图像处理机。 图像信号一般是二维信号,一幅图像通常由512×512个像素组成(当然有时会取256×256,或1024×1024个像素),每个像素有256级灰度,或者是3×8bit RGB 16兆种颜色。一幅图像就有256KB,或者768KB(对于彩色图像)个数据,为了完成视觉处理的传感、预处理、分割、描述、识别和解释,上述前几项主要要完成的数学运算可归纳为: (1)点处理:常用于对比度增强、密度非线性校正、阈值处理、伪彩色处理等。每个像素的输入数据经过一定的变换关系映射成像素的输出数据。例如,对数变换可实现暗区对比度扩张。 (2)二维卷积运算:常用于图像平滑、尖锐化、轮廓增强、空间滤波、标准模板匹配计算等。若用于图像平滑、尖锐化、轮廓增强、空间滤波、标准模板匹配计算等,用M×M卷积核矩阵对整幅图像进行卷积时,要得到每个像素的输出结果就需要作M2次乘法和M2-1次加法。由于图像像素一般很多,即使用较小的卷积核,也需要进行大量的乘、加运算和访问存储器。 (3)二维正交变换:常用的二维正交变换有FFT、Walsh、Haar、DTC和K-L变换等,常用于图像增强、复原、二维滤波、数据压缩等。 (4)坐标变换:常用于图像的放大缩小、旋转、移动、配准、几何校正和由投影值重建图像等。 (5)统计量计算:如计算密度直方图分布、平均值和协方差矩阵等。在进行直方图均衡化、面积计算、分类和K-L变换时,常常要进行这些统计量计算。 在处理视觉信号时,就要进行上述运算,计算机需要进行大量的运算和大量的访问存储器。如果采用一般的计算机进行视频数字信号处理,就有很大的限制。举一个简单的例子,一个装配机器人的视觉系统,要在传送带上识别出所要的机械零件,确定该零件的位置,然后命令机械手把它抓起来,根据已有的装配工艺知识进行装配。相对来说,这是一个比较简单的计算机视觉问题,其计算理论及算法已经解决。具体的作法是计算机把摄像机摄到的图像数字化成一幅512 × 512 × 8bit的数字图像,然后把图像上的零件分割出来,抽取特征,进行识别匹配,确定几何位置,最后,命令机械手完成抓取和装配的任务。处理一幅512 × 512 × 8bit的图像,把零件和背景、零件和零件分割出来的典型运算是进行 3 × 3的卷积(Sobel算子)。如果卷积是实时的(25帧/s),则运算速度要求为: 512 × 512 × 9 × 2 × 25/s= 118MOPS 全部地完成上述任务,计算机所要进行的操作约为上述的10-100倍,即要求计算机实时处理的速度为1180~11800MOPS。上述问题的算法已经解决,但是这样的运算速度在通用计算机上却难以实现。所以,在通用计算机上处理视觉信号,主要有下述两个局限性:一是运算速度慢;一是内存容量小。为了解决上述问题,可以采用如下几种方案: (1)利用大型高速计算机组成通用视频信号处理系统。为了解决小型计算机运算速度慢、存储容量少的缺点,人们自然会想到利用大型高速计算机,缺点就是造价太高。 (2)小型高速阵列机。采用大型计算机的主要问题是设备造价太高,为了降低视频信号处理系统的造价,提高设备的利用率,有不少设计者和厂家在设计视频信号处理系统时,选用造价低廉的中小型通用计算机为主机,为了适应视频信号快速处理、大量的矢量运算的要求,再配备一台高速阵列机。 AP-l20B、MAP等一类计算机就是阵列机。这类计算机有并行工作的两条高速流水线,它们对于二维数据的运算特别有效。视频信号本身就是二维数组,很多处理方法中都要用到矩阵和向量运算,如空间滤波、正交变换和分类等,对于比较复杂的视频信号处理,往往要反复进行多次这类运算,而阵列处理机处理这类问题就可以充分发挥它们的长处,获得很高的处理速度。例如用 AP-120B进行 512 × 512个像素的快速傅里叶变换只需1.6s。这类计算机对于视频数字信号,处理性能价格比最好,其投资相当于一台小型计算机,但是处理速度相当于大型或巨型机。 (3)采用专用的视觉处理器。为了适应微型计算机视频数字信号处理的需要,不少厂家设计了专用的视觉信号处理器,它的结构简单,成本低,性能指标高。多数采用多处理器并行处理,流水线式体系结构以及基于 DSP(Digital Singnal Processor)的方案。 此外,还有Connected Machine以及Systolic阵列。Systolic阵列的概念最早是由CMU的孔祥仲(H.T.Kong)等人提出的,它代表了多处理机结构最新的研究成果。所谓Systolic是指心脏收缩的意思,利用心脏收缩的节拍原理,设计了数据在阵列中按节拍传输的计算机新结构。这种结构能充分利用数据在系统的停留进行运算,提高数据利用率。每次存储器存储时完成多次运算,从而在不增加I/O的条件下解决了受计算限制的问题。在 Systolic结构中,基于相互连接形成Systolic阵列或Systolic树,信息流则在基元之间以流水线方式流动,与外界通信只在边界基元进行,即只有边界基元是I/O端口,这样,就解决了受I/O限制的计算速度问题。Systolic结构特别适用于视觉信号处理的算法,如矩阵运算、Hough变换等,国外利用这种结构设计制造的处理器和机器有:CMU设计的WRAP机,采用了Systolic结构,最高速度可达200MIPS;英国的STC Technology Ltd生产的AAPT;美国ESL公司设计的Systolic Signal Processor,最高运行速度可达350MIPS。另外,如NCR公司的GAPP,OKI半导体公司的MSM6956,都是市场上可以买到的Systolic处理器。 |