关于Altera的VIP(4)
今天再介绍VIP中比较重要的IP,也是很多人用到最多的一个IP,Scaler/Scaler II。Scaler就是图象缩放。当输入和输出的视频流幅面大小不一致的时候。就可以用Scaler来改变图片的大小使输入的幅面的所有像素可以压缩/放大,使之与输出的视频流匹配。
Scaler的设置看上去比较简单,但实际上要所有的参数都用好、研究透的话不是很容易的事。在Resolution菜单拦设置幅面大小,这个很简单了,你只要设置一下输入视频和输出视频幅面的大小就可以了。在Algorithm and Precision栏,有Scaling algorithm的设置,这个就是Scaler用什么算法实现的设置。Scaler对图象质量影响很大,主要是对帧内的像素有影响,起影响效果跟Deinterlacer对帧间像素的影响是差不多的。因此,Scaler,Deinterlacer被看做是图象处理的一个难点。主要是需要采用各种算法来减少失真。
VIP中,Altera提供了Nearest Neighbor, Bilinear, Bicubic, Polyphase等。Nearest是最简单的最临近值法。可做简单介绍,假设输出的坐标是X1,Y1,原图坐标是X,Y。那么X,Y按照比例缩放到X1,Y1坐标的时候(水平的缩放系数是ZoomX,垂直缩放系数是ZoomY),那么S1(X1,Y1)=S([X1/ZoomX], Y1=[Y1/ZoomY]),[]表示四舍五入取整。如果是Biliear算法的话,就不是取整了,而是把该浮点坐标周围的四个点值都找出来,按照比例来决定S1(X1,Y1)的值。这个效果要比最临近值好一点。Bicubic算法是三次插值,即不是直线插值而是曲线插值,把图象看做一个曲面(球面)。Polyphase算法更优一些,他是要采集周围的M*N的点,然后做一些加权平均。Polyphase需要缓存几行,数据会推迟几行再出来。
Scaler II对算法有所升级,对某些功能也有所改变。但是我还没有仔细对比这两者的区别。 |