View Full Version : 关于VideoInfo: åŽé¢ä¿¡æ¯çš„å«ä¹‰
deepblue
08-17-2006, 12:45 PM
æ¯”å¦‚æœ‰æ—¶è§†é¢‘ä¿¡æ ¯é‡Œé¢æœ‰VideoInfo: YV12 1920x1028 12 bits,这个YV12æœ‰æ—¶åˆæ ¯NV12ï¼Œæœ‰æ—¶åˆæ˜¯DXVA, ©¶ç«Ÿè¿™YV12ã€NV12å’ŒDXVAä¸ ç§æ˜¯ä»€ä¹ˆæ„æ€ï¼Œè¿ ˜æœ‰å°±æ˜¯åœ¨ä»€ä¹ˆæƒ…å µä¸‹ä¼šå‡ºçŽ°ã€‚ä¼¼ä¹Ž YV12ã€NV12è‰²æ·±æœ‰å…³ï¼Œä ½†DXVA是硬件åŠ*é€Ÿçš„æ æ€ï¼Œå°±æ˜¯ä¸æ˜Žç™½ä €ä¹ˆæƒ…况下会出现 è¿™ç§ä¸åŒï¼Œè€Œä¸”å æ˜¯åŒä¸€ä¸ªåœ°æ–¹ã€‚æ ¯ä¸æ˜¯å‡ºçްYV12ã€NV12æ„ å‘³ç€ç¡¬ä»¶åŠ*é€Ÿæ²¡æœ å®žçŽ°æˆ–è€…æ˜¯ç¡¬ä»¶åŠ *速实现得ä¸å®Œå–„ï Œå‡ºçŽ°DXVAæ„味ç€ç¡¬ä ¶åŠ*速符åˆDXVA规范, 硬件åŠ*速完全实现 º†ã€‚
deepblue
08-17-2006, 03:53 PM
请[Only registered and activated users can see links]大人æ¥è§£ç*”ä¸€ä ‹
这个问题比较专业,我只能尽我理解程度简单描述一下,但不敢保证都是正确的.
YV12和NV12像素采样输入输出方式其实都是相同的,
它们不影响硬件解码,只是内存布局有所区别:
都是以每像素 12 位格式,色度通道在水平方/垂直方向上都要以系数 2 来进行重采样.
YV12内存布局规则:
所有 Y 样例都会作为不带正负号的 char 值组成的数组首先显示在内存中.
此数组后面紧接着所有 V (Cr) 样例.V 平面的跨距为 Y 平面跨距的一半,
V 平面包含的行为 Y 平面包含行的一半.V 平面后面紧接着所有 U (Cb) 样例,
它的跨距和行数与 V 平面相同.
NV12内存布局规则:
所有 Y 样例都会作为由不带正负号的 char 值组成的数组首先显示在内存中,
并且行数为偶数.Y 平面后面紧接着一个由不带正负号的 char 值组成的数组,
其中包含了打包的 U (Cb) 和 V (Cr) 样例.
DXVA--微软DirectX视频和子图像加速技术支持接口, DirectX Video Acceleration API
NV12 是用于 DXVA 的首选 4:2:0 像素格式.它优先支持 4:2:0 视频的 DXVA 加速器的中期要求.
输入格式如果是YUY2则优先将输入转换为NV12,输入如果是YV12则无需转换.
KMP视频像素采样转换则相反,输入如果是YUY2则不转换,如果是YV12或NV12...则转换为YU Y2输出.
所以要使用硬件解码必须禁止KMP进行自动转换为YUY2输出才可以实现.
切换方式,手动切换为速度模式(Alt+F)或在[F2]→[视频处理]的第一个设置项中禁用转换.
deepblue
08-17-2006, 06:31 PM
[Only registered and activated users can see links]大人,这æ*·çš„è¯ï Œå¯ä¸å¯ä»¥ç†è§£ä¸ºï¼ Œå¦‚果显示的是YV12〠NV12那就表示硬件åŠ*é Ÿè‡³å°‘æ˜¯æ²¡æœ‰å®Œæ•´ 实现。如果是DXVAå°± ¡¨ç¤ºç¡¬ä»¶åŠ*é€Ÿæ˜¯å®Œæ ´å®žçŽ°äº†çš„ã€‚
没有完整和非完整解码之分,非速度模式下KMP是绝对无法开启硬件解码功能的.
您所指的[VideoInfo]部分,实际是VideoInfo2:它是解码后的视频输出信息.
而硬件解码则是针对输入部分的,输入如果不是DXVA则表示没有使用硬件解码或不被支持.
而输出为YV12或NV12...画质上无任何区别,只是在内存中像素排列方式不同.
deepblue
08-18-2006, 12:21 PM
[Only registered and activated users can see links]å¤§äººï¼Œå¦‚æžœè¡¨ç¤ºç „æ˜¯è§†é¢‘è¾“å‡ºä¿¡æ¯ çš„è¯ï¼Œä¼¼ä¹Žé—®é¢˜åˆ å›žåˆ°åŽŸç‚¹äº†ï¼Œå°±æ˜ YV12ã€NV12è¡¨ç¤ºçš„æ˜¯è§†é ¢‘输出信æ¯ï¼Œé‚£åŒ 一个地方DXVAåˆä»£è¡¨ä »€ä¹ˆæ„æ€å‘¢ï¼ŸæŒ‰å¤ 人的说法如果æ*¤å¤ æ˜¾ç¤ºçš„æ˜¯è§†é¢‘è¾“å ‡ºä¿¡æ¯ï¼Œé‚£ä¹ˆåº”该 ˜¯YV12ã€NV12或YUV2ä¹‹ç±»çš ä¿¡æ¯å°±å¯ä»¥äº†ï¼Œä½ æ˜¯æ›´å¤šçš„æ—¶å€™åˆæ ˜¯DXVA,这个ä¸å¤§å¥½ç è§£ï¼è¿˜æœ‰å°±æ˜¯kmp有 ²¡æœ‰æ¯”较简å•çš„åŠ žæ³•æ¥åˆ¤æ–*是å¦çœŸæ*£ 实现了硬件åŠ*速? ›*ä¸ºæœ‰çš„æ—¶å€™ä»…ä …æ˜¯ä¾é*è§£ç*å™¨æ˜¯å æ‰“开了硬件åŠ*é€Ÿå ŒCPUå*用率是å¦ä¸‹é™ 了æ¥åˆ¤æ–*ï¼Œæˆ‘è§‰å —è¿™ä¸¤ç§æ–¹æ³•的判 æ–*æ¯”è¾ƒé—´æŽ¥ï¼Œåº”è¯ æ˜¯æ’*æ”¾å™¨æœ¬èº«çš„åˆ ¤æ–*比较直接和æ*£ç¡ ®ï¼Œæ¯”如用powerdvdçš„æ— å€™ï¼Œåœ¨è§†é¢‘è®¾ç½®é Œæ‰“å¼€äº†ç¡¬ä»¶åŠ*速 ,在æ’*放时在powerdvdçš „ä¿¡æ¯é‡Œèƒ½å¤Ÿçœ‹åˆ°DXV A in use,这时å¯ä»¥è¯´ç¡¬ä ¶åŠ*é€Ÿæ˜¯å®žçŽ°äº†ï¼Œå¦ ‚æžœåœ¨è§†é¢‘è®¾ç½®é‡Œæ ‰“开了硬件åŠ*速, 但是在powerdvd的信æ¯é Œçœ‹åˆ°DXVA not in use,这时肯定å¯ä»¥è ¯´ç¡¬ä»¶åŠ*é€Ÿæ²¡æœ‰å®žç °ã€‚æˆ‘æƒ³kmpåº”è¯¥æœ‰å žæ³•æ¥åˆ¤æ–*ï¼Œä½†æ˜¯ä €ç›´æ²¡æœ‰å‘现,大 ººå¯ä¸å¯ä»¥å‘Šè¯‰ä¸€ 个kmp的判æ–*方法呢 €‚
同样影片使用nVidia硬加速和CyberLink PowerDVD硬加速看看输出方式有什么不同?
判断方法很简单,查看解码器链接信息,输入只要是DXVA,说明硬加速已经支持中...
至于输出是用的什么方式并不重要,各种解码器输出方式都有差异.
vBulletin® v3.6.8, Copyright ©2000-2008, Jelsoft Enterprises Ltd.