今天弄了个DVD倍线(假1080p高清)算法
就是把DVD画质(960×540)通过放大2倍变成1920×1080高清分辨率的算法。

在网上down了一张DVD截图做实验:

test.JPG


试验了5种算法(如此多像素点的计算当然要用CUDA@GTX285,破93别删我帖~~):

1、最邻近插值(最垃圾算法)

放大后局部图:

11.JPG


全是马赛克,计算速度每帧0.24ms。

2、双线性插值

22.JPG


有一点锯齿,计算速度也是每帧0.24ms。

3、双立方插值

33.JPG


没有锯齿,略显得模糊,计算速度每帧0.61ms(用了快速算法)。

4、双线性插值+锐化(拉普拉斯算子)

44.JPG


效果还行,颜色过渡边缘有点不平滑,计算速度每帧1.25ms(卷积计算太费时间)。

5、双立方插值+锐化

55.JPG


目前最好水平了,效果比较满意,有点像1080p高清了。不过计算太慢了,每帧要4.52ms。
+500  科创币    虎哥   2009-08-14    一目了然。
+300  科创币    novakon   2009-08-14    努力動手
来自 科创茶话
 
2009-8-15 10:34:54
1楼
怎么不用FPGA并行处理,lz不是很擅长FPGA吗?(我想难度可能会太大了)
折叠评论
加载评论中,请稍候...
折叠评论
2楼
什么软件来的  发行了没  好东西阿  如果能用在  网络视平上  ~~~ 太强大了   有很强的和商业价值
折叠评论
加载评论中,请稍候...
折叠评论
2009-08-16 10:07:04
小俊(作者)
3楼
引用第1楼warmonkey于2009-08-15 10:34发表的  :
怎么不用FPGA并行处理,lz不是很擅长FPGA吗?(我想难度可能会太大了)


插值和锐化基本上我都用单精度浮点运算。如果在FPGA上构建单精度浮点运算单元的话会非常消耗LE。而且如果要求并行度高的话,需要构建非常多的运算单元,这在常用的中端FPGA上不太现实。此外,由于图像分辨率高,要求的计算速度快,因此要有很高的本地存储器带宽,这在FPGA上也很难做。
折叠评论
加载评论中,请稍候...
折叠评论
小俊(作者)
4楼
引用第2楼jrcsh于2009-08-15 10:38发表的  :
什么软件来的  发行了没  好东西阿  如果能用在  网络视平上  ~~~ 太强大了   有很强的和商业价值


我和darkstorm构思,咱们自己写的代码。
折叠评论
加载评论中,请稍候...
折叠评论
5楼
能放大 MPG2 /4 的格式不   这会是一场 革命
折叠评论
加载评论中,请稍候...
折叠评论
小俊(作者)
6楼
引用第5楼jrcsh于2009-08-16 10:13发表的  :
能放大 MPG2 /4 的格式不   这会是一场 革命


只是一个图像增强的算法,跟视频的原编码格式没什么关系。喜欢的话写成DirectShow的filter也可以。

好像已经有类似的软件,不过不清楚它们用什么算法。
折叠评论
加载评论中,请稍候...
折叠评论
7楼
问题是放大出来的和真1080P还是有差距
还有不是每个人都有GTX285+
要是只有G102M的话不知道要多长时间
折叠评论
加载评论中,请稍候...
折叠评论
小俊(作者)
8楼
引用第7楼phpskycn于2009-08-16 13:22发表的  :
问题是放大出来的和真1080P还是有差距
还有不是每个人都有GTX285+
要是只有G102M的话不知道要多长时间


算法还有待改进,毕竟这是假1080p。
在ION平台上跑过(CPU和GPU都够差了吧,相信大多数人的电脑不会比这个更差了),不开锐化,CUDA还是非常快的,双线性插值耗时1点多毫秒一帧,双立方插值耗时几个毫秒一帧,开锐化就比较惨不忍睹了,双线性插值+拉普拉斯锐化耗时20多毫秒一帧,最后那个方法耗时超过100毫秒。
折叠评论
加载评论中,请稍候...
折叠评论
2009-08-25 22:37:49
2009-8-25 22:37:49
9楼
引用第7楼phpskycn于2009-08-16 13:22发表的  :
问题是放大出来的和真1080P还是有差距
还有不是每个人都有GTX285+
要是只有G102M的话不知道要多长时间

那要是用G965的不就卡到天上去了??
折叠评论
加载评论中,请稍候...
折叠评论
2009-09-09 23:38:19
2009-9-9 23:38:19
小俊(作者)
10楼
引用第9楼韩菱纱于2009-08-25 22:37发表的  :

那要是用G965的不就卡到天上去了??


965不能跑CUDA。。。
折叠评论
加载评论中,请稍候...
折叠评论
2009-11-25 14:39:56
2009-11-25 14:39:56
11楼
跑CUDA的速度只决定于SP数量么?
G210M和Ion的GF9400M(两个都是16SP,但G210M的SP频率高很多)会差多少
其实……本本上的GPU都太差了,GT240M也才48SP
人家小小的9600GSO都有96SP
计划买本以后直接远程连接我同学的Desktop
Core 2 Q8200 2.33GHZ带GTX260+,214个SP应该不会和GTX285+差太多
折叠评论
加载评论中,请稍候...
折叠评论
12楼
话说锐化后看起来有点假。。。
折叠评论
加载评论中,请稍候...
折叠评论
小俊(作者)
13楼
引用第11楼phpskycn于2009-11-25 14:39发表的  :
跑CUDA的速度只决定于SP数量么?
G210M和Ion的GF9400M(两个都是16SP,但G210M的SP频率高很多)会差多少
其实……本本上的GPU都太差了,GT240M也才48SP
人家小小的9600GSO都有96SP
计划买本以后直接远程连接我同学的Desktop
.......


受SP数量和频率影响都很大(理论上都是成正比)。对某些算法来说,存储器带宽也很重要,所以锐化算法的效率在ION上惨不忍睹。

G210M比ION快应该不少,除了频率因素,G210M也有独立的本地存储器,显存频率也高。
折叠评论
加载评论中,请稍候...
折叠评论
14楼
100多ms……ION……
如果是G210M级别的GPU,就算只有256MB的DDR2显存
80ms一帧应该还是有可能的。。。
也就是说一秒内能完成12.5帧,12.5帧每秒还是可以接受的
折叠评论
加载评论中,请稍候...
折叠评论
小俊(作者)
15楼
引用第14楼phpskycn于2009-11-25 15:29发表的  :
100多ms……ION……
如果是G210M级别的GPU,就算只有256MB的DDR2显存
80ms一帧应该还是有可能的。。。
也就是说一秒内能完成12.5帧,12.5帧每秒还是可以接受的


嗯,应该差不多。
不过要在ION上做实时就只能用简化算法了。
如果在GTX260以上做,那么甚至USM锐化都可以做到实时。
折叠评论
加载评论中,请稍候...
折叠评论
16楼
额,问题是有多少人有GTX260以上的呢
到现在,很多品牌机上还装着只有16个SP的东东,任凭9600GSO、9500GT多么便宜
G80以来,我认为8400GS、9300GS的销量大于其它型号总和(忽略QFX系)
折叠评论
加载评论中,请稍候...
折叠评论
小俊(作者)
17楼
引用第16楼phpskycn于2009-11-25 16:47发表的  :
额,问题是有多少人有GTX260以上的呢
到现在,很多品牌机上还装着只有16个SP的东东,任凭9600GSO、9500GT多么便宜
G80以来,我认为8400GS、9300GS的销量大于其它型号总和(忽略QFX系)


不算OEM市场的话,其实G92的卖得最多,呵呵。
不过即使只有16个SP,做图像处理一般也比CPU强(动用SSE指令的除外)。
折叠评论
加载评论中,请稍候...
折叠评论
18楼
个人认为OEM市场份额很大
还有,到处都是“Intel GMA”
折叠评论
加载评论中,请稍候...
折叠评论
小俊(作者)
19楼
GMA就没办法了,性能太差啦。好点的游戏都打不了。
折叠评论
加载评论中,请稍候...
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

插入资源
全部
图片
视频
音频
附件
全部
未使用
已使用
正在上传
空空如也~
上传中..{{f.progress}}%
处理中..
上传失败,点击重试
{{f.name}}
空空如也~
(视频){{r.oname}}
{{selectedResourcesId.indexOf(r.rid) + 1}}
ID:{{user.uid}}
{{user.username}}
{{user.info.certsName}}
{{user.description}}
{{format("YYYY/MM/DD", user.toc)}}注册,{{fromNow(user.tlv)}}活动
{{submitted?"":"投诉"}}
请选择违规类型:
{{reason.description}}
支持的图片格式:jpg, jpeg, png