POPPUR爱换

 找回密码
 注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

搜索
楼主: erhang
打印 上一主题 下一主题

上一个自制的1080P片段,大家可以用自己的显卡测试一下效果

[复制链接]
81#
发表于 2011-5-1 02:00 | 只看该作者
依据 doom 9 之前有不少人反映 ATI 用 NV12 可以得到正确 Chroma Upsampling 的帖子,刚刚又用 ATI 卡在 NV12 输出空间下抓图,对比如下:

从左到右、从上到下依次:

1、AMD EVR CP YV12 输出空间
2、AMD EVR CP YV12 输出空间 + "YV12 Chroma Upsampling" pixel shader
3、AMD EVR CP NV12 输出空间
3、AMD EVR CP RGB32 输出空间



NV12 和 RGB32 的结果完全一样,如果 doom9 等地反映的情况属实,楼主反映的问题似乎不是 “AMD 色彩正确、NVIDIA 色彩不正确”,而是相反,至少在一定情况下是相反。

http://forum.doom9.org/showthread.php?t=151673
The recommended one for EVR is NV12, especially for ATI users.
Yeah, if you have ATI definitely use NV12. It's the only color space that doesn't have the but ugly chroma upsampling bug.
forcing NV12 output in ffdshow is my only option.

http://forum.doom9.org/showthread.php?t=150872
If you use EVR CP or VMR9 you should always use YV12 chroma upsampling first (at least with an ATI card, do not know about the nvideas)

madshi 发布 madvr 的时候特别调侃了一下 AMD 的 yv12 输出:
http://forum.doom9.org/showthread.php?p=1271416#post1271416



MPC-HC 不久前更新的一个版本中还专门做了一个针对 ATI 的 YV12 Chroma Upsampling shader 修正更新:
http://code.google.com/p/mpc-hc/source/detail?spec=svn3043&r=3043
Fix: rev. 3035 - it's broken open from favorites with remember position;
Fix: temporary fix "YV12 Chroma Upsampling" for Ati - thanks to judelaw;
Change: remove "BPP" from resolution list in FullScreen page;

你可以在下面的连接中找到更多一些关于 Chroma Uplsampling 的信息:
http://www.nattress.com/Chroma_Investigation/chromasampling.htm
http://www.hometheaterhifi.com/t ... chroma-problem.html

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

82#
发表于 2011-5-1 09:11 | 只看该作者
本帖最后由 cavalryqjx 于 2011-5-1 09:30 编辑

其实楼主是想反映两个问题:一个是颜色问题,从原图上看蓝色应该是0,0,255,但是压缩成H264之后,颜色变成了5,5,196,不知道是不是原来RGB转换YV12时造成的损失。


另外一个问题是边缘的地方A/N出现的差异。这个看HD-H264b.mkv这个H264会比较明显些,如下图,在粗线条部分N显示比较均匀,但是颜色也不是0,255,0;而A出现颜色分层,其中最亮点部分达到了0,255,0,与原色相符。



因此在使用播放器的放大算法,比如Lanczos来看的话,A的线条应该比N的粗一点,而且颜色鲜艳一点,所以前面楼主得出N卡的颜色要比A卡颜色深色一些的结论。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

83#
 楼主| 发表于 2011-5-1 09:58 | 只看该作者
回复 cavalryqjx 的帖子

对,这就是我的意思。
版主现在说的那些,我又看不懂了,太专业了。
回复 支持 反对

使用道具 举报

84#
 楼主| 发表于 2011-5-1 10:00 | 只看该作者
本帖最后由 erhang 于 2011-5-1 10:01 编辑

回复 Edison 的帖子

其实我谈的也不是谁对,主要是说细线条有区别。
你看看细线条的画面,有时就是感觉ATI更鲜艳一些。
回复 支持 反对

使用道具 举报

85#
发表于 2011-5-1 13:38 | 只看该作者
本帖最后由 cavalryqjx 于 2011-5-1 13:43 编辑
Edison 发表于 2011-5-1 02:00
依据 doom 9 之前有不少人反映 ATI 用 NV12 可以得到正确 Chroma Upsampling 的帖子,刚刚又用 ATI 卡在 NV ...

YV12 chroma upsampling bug只存在于播放YV12的时候吧?从楼主77楼提供的图来看,A和N播放H264的截图都没再出现这个现象了,只有MPC播放YV12的时候出现,POT可能是因为带有YV12 Chroma upsampling所以播放YV12时截图的颜色依然正确。
回复 支持 反对

使用道具 举报

86#
发表于 2011-5-1 13:50 | 只看该作者
图片挂了啊   {sweat:]
回复 支持 反对

使用道具 举报

87#
发表于 2011-5-1 14:40 | 只看该作者
反正目前为止,Doom9 上的普遍看法是 ATI 采用 NV12 输出空间才能实现正确的 yv12 chroma upsampling,而微软这边则是采用 NV12 作为目前唯一的 DXVA 硬件加速像素格式。
回复 支持 反对

使用道具 举报

88#
发表于 2011-5-1 15:19 | 只看该作者
Edison 发表于 2011-5-1 14:40
反正目前为止,Doom9 上的普遍看法是 ATI 采用 NV12 输出空间才能实现正确的 yv12 chroma upsampling,而微 ...

不知怎么设置才能采取NV12输出?另外我在82楼提到的问题,输出都是YV12,不知道版主同样在YV12输出情况下播放那两个MKV,会不会也出现同样的情况?
回复 支持 反对

使用道具 举报

89#
发表于 2011-5-1 17:09 | 只看该作者
dxva 的话应该都是 nv12,如果软解,mpc-hc 内建的解码器滤镜里就可以选了,potplayer 就是视频-色阶那里。
回复 支持 反对

使用道具 举报

90#
发表于 2011-5-1 19:05 | 只看该作者
本帖最后由 cavalryqjx 于 2011-5-1 19:13 编辑
Edison 发表于 2011-5-1 17:09
dxva 的话应该都是 nv12,如果软解,mpc-hc 内建的解码器滤镜里就可以选了,potplayer 就是视频-色阶那里。

手头上只有N卡,刚才我用MPC试了下,播放的时候到滤镜查看渲染器的Pin Info,信息如下:

Filter : Enhanced Video Renderer - CLSID : {FA10746C-9B63-4B6C-BC49-FC300EA5F256}

- Connected to:

CLSID: {008BAC12-FBAF-497B-9670-BC6F6FBAE2C4}
Filter: MPC Video Decoder
Pin: Output

- Connection media type:

Video: DXVA 1920x1088 (16:9) 23.00fps

AM_MEDIA_TYPE:
majortype: MEDIATYPE_Video {73646976-0000-0010-8000-00AA00389B71}
subtype: MEDIASUBTYPE_NV12 {3231564E-0000-0010-8000-00AA00389B71}
formattype: FORMAT_VideoInfo2 {F72A76A0-EB0A-11D0-ACE4-0000C0CC16BA}
bFixedSizeSamples: 1
bTemporalCompression: 0
lSampleSize: 1
cbFormat: 112

VIDEOINFOHEADER:
rcSource: (0,0)-(1920,1080)
rcTarget: (0,0)-(1920,1080)
dwBitRate: 0
dwBitErrorRate: 0
AvgTimePerFrame: 434782

VIDEOINFOHEADER2:
dwInterlaceFlags: 0x00000081
dwCopyProtectFlags: 0x00000000
dwPictAspectRatioX: 16
dwPictAspectRatioY: 9
dwControlFlags: 0x00000000
dwReserved2: 0x00000000

BITMAPINFOHEADER:
biSize: 40
biWidth: 1920
biHeight: 1088
biPlanes: 1
biBitCount: 12
biCompression: dxva
biSizeImage: 3133440
biXPelsPerMeter: 0
biYPelsPerMeter: 0
biClrUsed: 0
biClrImportant: 0

可以看出,已经启用了DXVA播放,而且输出是NV12。然后全屏print截图,发现情况跟楼主的N卡MPC截图一样,颜色不是原来的255,见下图:


对比后发现,NV12和YV12的截图都没有差别,而且细线条的颜色都不准确。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

91#
发表于 2011-5-1 19:20 | 只看该作者
不准确的是 AMD YV12 输出,它的 YV12 不能正确执行 Chroma upsampling。

RGB 经过 YV12 转换后,色度分辨率就只有 1/2,在执行正确的 Chroma upsampling 下,极窄的相间区域不可能为 RGB 原色,使用任何 yv12 codec 以 CPU 执行方式的话,这些极细窄的相间区域也都没有 255 的,你看看我之前提供的 VDM+Helix 图片导出,除非你采用 RGB32 进行无损编码。
回复 支持 反对

使用道具 举报

92#
发表于 2011-5-1 19:39 | 只看该作者
本帖最后由 cavalryqjx 于 2011-5-1 19:41 编辑
Edison 发表于 2011-5-1 19:20
不准确的是 AMD YV12 输出,它的 YV12 不能正确执行 Chroma upsampling。

RGB 经过 YV12 转换后,色度分 ...

哦~原来如此,了解了,谢谢版主~
顺便一问,现在所有主流编码格式的视频,默认都是解码为YV12的吧?因为XP中默认输出的就是YV12,WIN7中不硬解的话输出的也是YV12。
回复 支持 反对

使用道具 举报

hschun 该用户已被删除
93#
发表于 2011-5-2 01:36 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

hschun 该用户已被删除
94#
发表于 2011-5-2 01:38 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

95#
发表于 2011-5-2 01:48 | 只看该作者
看看 先 !!!!
回复 支持 反对

使用道具 举报

96#
发表于 2011-5-2 03:42 | 只看该作者
回复 erhang 的帖子

gtx260  266.58
mpc hc 1.5.3052


回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

广告投放或合作|网站地图|处罚通告|

GMT+8, 2025-4-7 09:51

Powered by Discuz! X3.4

© 2001-2017 POPPUR.

快速回复 返回顶部 返回列表