小俊的数字人生 https://bbs.21ic.com/?293300 [收藏] [复制] [RSS]

日志

[原创]用CUDA实现DVD倍线(DVD画质转1080p)算法

已有 2009 次阅读2009-8-14 21:05 |个人分类:高性能计算|系统分类:兴趣爱好| DVD倍线, 高清, 1080p

利用CUDA提供的纹理存储器和GPU内部的纹理流水线单元可以轻松实现各种算法的图像缩放处理,而且纹理流水线单元不占用SP流处理单元的计算资源。



尝试了5种算法(最邻近插值、双线性插值、双立方插值、双立方插值+锐化、双线性插值+快速算法的锐化)用Geforce GTX 285通过CUDA来处理一张DVD画质的样品图片(960×540),使其放大到1920×1080高清分辨率。局部效果如图:


1、最邻近插值


 



马赛克很严重。是最快的算法,处理时间0.24ms(每秒86亿个像素)。


2、双线性插值(实时3D渲染中常用的纹理插值算法)




没有马赛克,但颜色过渡边缘有少量锯齿。由于GPU纹理流水线本身支持硬件双线性插值,处理速度很快,也是0.24ms(每秒86亿个像素)。


3、双立方插值(Photoshop缩放图像的默认算法)




完全没有了锯齿,但略显模糊。这里采用了快速算法,处理时间0.61ms(每秒34亿个像素)。


4、双立方插值+锐化(3×3拉普拉斯算子)




颜色边缘过渡和字幕的边缘都很清晰,有点像1080p了。是最耗时的算法,处理时间4.5ms(每秒4.6亿个像素)。


5、双线性插值+快速算法的锐化




用了固定为2倍的快速锐化放大算法,有少量锯齿,效果不如双立方插值+锐化,比双线性插值要稍清晰。处理时间1.24ms(每秒17亿个像素)。


 


路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)