POPPUR爱换

标题: 今天和一帮人争论了很久,CUDA倒是算软解还是硬解? [打印本页]

作者: ramiel    时间: 2010-1-12 19:44
标题: 今天和一帮人争论了很久,CUDA倒是算软解还是硬解?
CoreAVC 2.0的CUDA,到底是软解还是硬解?我认为CUDA是通过不同的接口实现了DXVA,调用的是和DXVA相同的电路,所以算硬解;但是对方说CUDA用GPU软解而已,我感觉这种说法没有讲到点子上很牵强……求真相解释

另,为什么CoreAVC的画质比FFD差呢?不解
作者: yamhill    时间: 2010-1-12 19:47
CUDA是依靠GPU的强大并行计算能力进行解码

个人认为软解和硬解的区别(肯定是主要区别)在于:软解考验的是处理单元是否肌肉;硬解是通过指令(集)进行“抄近道”式的操作

关于画质,个人认为和编解码器有关
作者: Edison    时间: 2010-1-12 19:50
CoreAVC CUDA 是硬件解码,你可以查阅 NVIDIA CUDA 文档获得更多信息。
作者: jocover    时间: 2010-1-12 20:31
硬解,SP单元只负责把NV12转成YV12
作者: 牛奶不老    时间: 2010-1-12 20:34
都是硬解,只不过GPU性能更好,除非芯片内置了专门处理的单元,对于CUDA来说,严格来讲,它还是软的,不然干吗要一个CUDA作为接口?
作者: Edison    时间: 2010-1-12 20:44
CoreAVC CUDA 就是调用 VP2 进行 h.264 解码,因此不是楼上所说的"软的",采用 CUDA 是因为 CUDA Video Decoder API 的适用性比 DXVA 广得多。

此外,虽然使用 GPU shader 来做视频解码已经有一些研究报告,但是从耗电的角度而言,几乎毫无价值可言。
作者: ramiel    时间: 2010-1-12 20:56
那请问版大CUDA和DXVA调用时一个模块吧?如果画质有区别那也是CoreAVC算法造成的?还是说CoreAVC只是起了个桥梁的作用,没有参与实际解码,所有解码时交与GPU运算的,CPU没有运算?
作者: Edison    时间: 2010-1-12 21:01
按照 h.264 的规范,decoder 出来的东西应该都是一样的,但是由于 post processing(后处理)的原因,可能就会有一些差别。

CoreAVC CUDA 会把解码出来的画面发回给 CPU 作处理,例如加个字幕什么的。
作者: ramiel    时间: 2010-1-12 21:06
怪不得开了FFD的post processing就爆卡了……也就是说如果没有挂字幕的话,用CoreAVC的CUDA和DXVA得到的画面是完全相同的?两者都是12bit吗?
作者: Edison    时间: 2010-1-12 21:16
后处理不仅仅是字幕,可能还有其他的东西。

yv12 是 8 bit Y plane followed by 8 bit 2x2 subsampled V and U planes。
作者: 我有3个马甲    时间: 2010-1-12 21:54
本帖最后由 我有3个马甲 于 2010-1-12 21:56 编辑

个人见解, 使用gpu资源把cpu解放出来就叫软解,每个解法的程度不一。
作者: koppie    时间: 2010-1-13 06:03
利用专用电路叫硬解,如果用shader解的话,还是通用电路,只不过是GPGPU而已,依然是软解范畴。

个人见解, 使用gpu资源把cpu解放出来就叫软解,每个解法的程度不一。
我有3个马甲 发表于 2010-1-12 21:54

作者: dalao123    时间: 2010-1-13 07:59
我觉得只要能大幅降低CPU占用的都算硬解,只是硬解也有不同方式
作者: martinami    时间: 2010-1-13 10:16
我觉得只要能大幅降低CPU占用的都算硬解,只是硬解也有不同方式
dalao123 发表于 2010-1-13 07:59


问题是硬解和cuda解 哪个更耗电? 这是最关键的问题吧?
作者: martinami    时间: 2010-1-13 10:17
如果cuda是软解应该更耗电的。
作者: samzyl    时间: 2010-1-13 10:21
guityurtyedxgfxc
作者: ase    时间: 2010-1-13 10:25
CUDA调用的不是DXVA的加速
作者: pcform    时间: 2010-1-13 10:29
CUDA解码当然是软解。

CUDA是通用的计算架构,将来也可以实现H.264/AVC-1以外的解码算法。
而传统意义上的硬解是通过专用解码硬件实现的,显卡上有啥解码模块就只能实现相应的解码功能。

但是目前的CUDA通用计算需要通过SDK来实现,通用性显然没有CPU那么NB。这可能限制了某些算法的实现,导致CUDA解码质量与CPU解码略有区别。

换一个角度来看,CUDA解码能耗比要比DXVA硬解差得多。
传统的DXVA硬解显卡上主要是专用解码模块在工作,功耗很低。而CUDA解码时显卡上的流处理器也需要参与工作,功耗比前者要高得多。
作者: pcform    时间: 2010-1-13 10:31
我觉得只要能大幅降低CPU占用的都算硬解,只是硬解也有不同方式
dalao123 发表于 2010-1-13 07:59


CUDA解码降低CPU占用率的同时,GPU的占用率会上升。
而DXVA硬解的同时,GPU仍然是近似空闲的,只有硬解模块在工作。
作者: xreal    时间: 2010-1-13 12:17

硬解的速度,软解的质量就是 cuda
作者: elisha    时间: 2010-1-13 12:19
CUDA解码当然是软解。

CUDA是通用的计算架构,将来也可以实现H.264/AVC-1以外的解码算法。
而传统意义上 ...
pcform 发表于 2010-1-13 10:29

回帖请看贴,看看cho的发言先
作者: Edison    时间: 2010-1-13 12:27
CUDA解码当然是软解。

CUDA是通用的计算架构,将来也可以实现H.264/AVC-1以外的解码算法。
而传统意义上 ...
pcform 发表于 2010-1-13 10:29


你对 CoreAVC CUDA 的实现原理理解错误,CoreAVC 并没有使用 Stream Processor 进行解码处理,而是透过 CUDA 的 video decoder api 调用 G84+ 的 VP2 进行解码处理,它的实现和 DXVA 其实非常类似,只不过 DXVA 是透过 DirectX 的 DXVA API 实现,而 CUDA 解码是 CUDA video decoder API 来调用,当然 CUDA 在渲染面上的适应性相当广(对 CUDA 来说就是一堆数组而不是有严格格式约束的纹理)。

[attach]1201008[/attach]
作者: zidane1980    时间: 2010-1-13 12:47
估计那群人觉得游戏调用显卡的3D加速功能也是软加速。
作者: pcform    时间: 2010-1-13 12:49
谢谢楼上两位提醒,确实是我的理解有误。
请各位无视我上面的发言。

作者: zlm2007    时间: 2010-1-13 14:26
我一直认为只有使用CPU才是软解,只要用到GPU就应该是硬解。
作者: demonpumpkin    时间: 2010-1-13 15:51
提示: 作者被禁止或删除 内容自动屏蔽
作者: Edison    时间: 2010-1-13 15:55
软解, cuda只是接口, 硬件gpu是属于可编程部件

可编程运算器的运算属于软件功能

特定功能的硬件, 例如 ...
demonpumpkin 发表于 2010-1-13 15:51


你同样对 CoreAVC CUDA 解码理解错误。
作者: 晨之晖    时间: 2010-1-13 17:50
显然是软解,CPU解码也叫软件滴
作者: zajara    时间: 2010-1-13 18:13
如果有设计了一个电路,他只能有一种功能,无论你怎么开发,他都不能实现其他的功能
这是不是应该叫专用硬件?
在上述范畴,我认为只有这样才可以叫硬解
作者: whateveru    时间: 2010-1-13 19:01
你对 CoreAVC CUDA 的实现原理理解错误,CoreAVC 并没有使用 Stream Processor 进行解码处理,而是透过 ...
Edison 发表于 2010-1-13 12:27


所以在只能VLD AVC而不能VLD VC1的显卡上实现接近VLD的VC1 cpu解码占用才是我们感兴趣的
作者: ccontion    时间: 2010-1-13 19:04
采用 CUDA 是因为 CUDA Video Decoder API 的适用性比 DXVA 广得多。
Edison 发表于 2010-1-12 20:44


应该这么说,CUDA除了跨平台之外,从远期来说,能解的编码也比DXVA多。
但如果仅限于Windows平台,如果仅限于常见的AVC1,CUDA相对DXVA并无优势,只有劣势:
1. DXVA解码更省电;
2. DXVA解码I/A/N通吃。
作者: jocover    时间: 2010-1-13 19:21
所以在只能VLD AVC而不能VLD VC1的显卡上实现接近VLD的VC1 cpu解码占用才是我们感兴趣的
whateveru 发表于 2010-1-13 19:01

nvidia VP3解码器支持VLD VC1,VP2只支持到IDCT的程度
CUDA解码目前支持AVC、VC1、MPEG1/2,已经有dshow解码器可以下载到 http://we.pcinlife.com/viewthread.php?tid=1327450
VC1解码时CPU占有率不高,我使用的AMD3000+解码720P的VC1片段也只有5%左右,显卡是支持IDCT解码的
http://we.pcinlife.com/redirect. ... 29&pid=24273427
作者: herowwf    时间: 2010-1-13 23:12
硬解和软件的 对用户的实质性区别是些什么?请各位高手都说说!
作者: Edison    时间: 2010-1-13 23:21
应该这么说,CUDA除了跨平台之外,从远期来说,能解的编码也比DXVA多。
但如果仅限于Windows平台,如果 ...
ccontion 发表于 2010-1-13 19:04


1、DXVA 无法在 madVR 下提供硬件加速,失败。
2、DXVA 无法使用 vobsub,失败。
作者: zhang7777    时间: 2010-1-14 00:47
我的理解是依赖专用硬件的叫硬接,通用的解决方案叫软解
作者: ccontion    时间: 2010-1-14 16:17
本帖最后由 ccontion 于 2010-1-14 16:20 编辑
1、DXVA 无法在 madVR 下提供硬件加速,失败。
2、DXVA 无法使用 vobsub,失败。
Edison 发表于 2010-1-13 23:21


1.确实失败。不过我一般只用EVR C/P,因为播放1080p的avc1时,我无法分辨madVR和EVR C/P的画质区别。网上宣传madVR的灰度图倒是能很明显地看出madVR优于其他渲染,但那些图片同时也表明,EVR C/P连VMR9都不如,这让我有点疑惑。
2.EVR C/P下也不能用Vobsub吗?这个我倒是不知道,因为我都是用KMP和MPC-HC的内置字幕功能。
作者: jocover    时间: 2010-1-14 16:27
1.确实失败。不过我一般只用EVR C/P,因为播放1080p的avc1时,我无法分辨madVR和EVR C/P的画质区别。网 ...
ccontion 发表于 2010-1-14 16:17

说的是DXVA你扯到EVR C/P上去干吗?
作者: ccontion    时间: 2010-1-14 16:32
说的是DXVA你扯到EVR C/P上去干吗?
jocover 发表于 2010-1-14 16:27


是爱迪生大人说到madVR我才扯到EVR C/P的。而且Vista/Win7下貌似只有EVR和EVR C/P才能顺利开启DXVA,XP下VMR9就可以了。
作者: 淋雨-ing    时间: 2010-1-23 04:23
个人实测,在离子N330+G9400平台上放变态高清,CoreAVC+CUDA非常的卡
而用了dxva的CyberLink解码器就相对好很多。用GPU-Z看,Cuda没有调用视频解码引擎。
作者: 淋雨-ing    时间: 2010-1-23 04:24
我也不知道具体应该怎么定义。不过,实际效果才是最重要的
作者: xxxyyy    时间: 2010-1-23 04:34
提示: 作者被禁止或删除 内容自动屏蔽
作者: cyrix777    时间: 2010-1-23 09:14
进来学习




欢迎光临 POPPUR爱换 (http://we.poppur.com/) Powered by Discuz! X3.4