收藏 分享(赏)

10bit视频编码--特性及全面播放方法介绍.docx

上传人:11xg27ws 文档编号:5786146 上传时间:2019-03-17 格式:DOCX 页数:8 大小:47.07KB
下载 相关 举报
10bit视频编码--特性及全面播放方法介绍.docx_第1页
第1页 / 共8页
10bit视频编码--特性及全面播放方法介绍.docx_第2页
第2页 / 共8页
10bit视频编码--特性及全面播放方法介绍.docx_第3页
第3页 / 共8页
10bit视频编码--特性及全面播放方法介绍.docx_第4页
第4页 / 共8页
10bit视频编码--特性及全面播放方法介绍.docx_第5页
第5页 / 共8页
点击查看更多>>
资源描述

1、本文章 2012.1.18 更新测试用视频:http:/ 视频的播放,想偷懒的人可以直接用最新版 MPC-HC、Potplayer、mplayer、QQ 影音等播放器,或者使用各种解码包的最新版(都是使用 ffdshow/LAV 实现解码的) ,其内部解码器都是基于 ffmpeg(libav)的。这些播放器和解码器中用的色彩转换也基本都是 libswscale,所以有部分会出现色彩空间转换上的错误以及 dither 方式的不恰当。并且由于 10bit YUV 到 8bit YUV 再到 8bit RGB 的坑爹转换过程使损失也大大增加(前一步对于 10bit 而言还有 dither 的过程,可

2、以增加一定的精度,8bit 视频播放就是做了后面的一步,所以即使这样 10bit 的效果也还是比 8bit重编码的情况好不少) 。于是对回放质量(8bit 、10bit 都能受益)有追求的可以参考下面介绍的基于 MPC-HC使用 madVR 的播放教程,也可以看 VX 的播放攻略,其中也包括对于电脑性能不足的情况的解决方案:http:/ 10bit 视频播放对电脑性能的要求,主要是不支持硬解(包括DXVA、CUVID、QuickSync) ,所以要靠软解,而目前软解 10bit 视频效率最高的就是LAV Video Decoders,基本上短时码率不超过 30Mbps 的话现在的双核 CPU

3、都能应付。但为了最佳的回放要靠 madVR 渲染器,而 madVR 内部各种 mad 的处理过程靠的不是CPU,而是 GPU 的 Shader,也就是说显卡不能太差,显卡要能支持 DX 9.0c,显存最好在 384MB 以上,对显卡性能的要求我没有什么可以参考的依据,只知道我自己笔记本上的 GT420M 和 HTPC 上的 HD5550 都毫无压力。二、10bit 的优势有关 10bit 重编码的优势,实际上就是用更高位深来进行数据的有损编码的优势,而且bit 越高效果越好。最简单的一句话就是,压缩率更高,以更低的码率提供更好的还原效果,这已经足够具有意义了。在二进制下对 8bit 的源数据进

4、行有损编码,造成相同量化损失时,以 8bit 为 100%的error(残差)时,9bit 为 50%的 error,10bit 为 25%,12bit 为 6.25%所以在HEVC(也就是 H.265)里有个叫 IBDI(Internal bit depth increase)的技术,就是用 12bit 的内部精度来进行 8bit 源数据的重编码。例如:8bit 源数据: 100110108bit 量化后: 1001101110bit 量化后:100110100112bit 量化后:100110100001当然相同量化时肯定是 bit 越高的数据占的容量多,但由于损失程度的降低,综合下来的结

5、果是,相同码率下高位深编码的还原程度始终大于等于低位深。而其实在目前的大部分有损音频编码里,不管输入的是 16bit 整数还是 24bit 整数,其内部都是用 32bit 浮点数来进行编码的,能大大减小 error。至于为什么不在视频里用浮点数编码,可能的原因之一是,目前最强的桌面级 CPU 也只能勉强解码一个浮点数编码的1080p 24fps 视频。至于你想说:“我只有 8bit 的显示设备,10bit 有什么用呢? ” 这不是什么问题,因为最终是要靠 dither(抖动)转换成 8bit RGB 的,事实上 madVR 内部是不管你 8bit 还是 10bit 输入,都先升到 16bit

6、进行处理,最后再 dither 成 8bit RGB32 进行输出,所以它才能实现最高精度的转换和最小的 error。而且最近还有这么一篇文章,对不同位深的 YUV 空间的色彩数量进行分析,发现 8bit YUV 转换成 RGB 后远远到达不了 8bit RGB 的 16777216 色(目前大部分高清视频就是属于 8bit-Rec709 的情况) ,只有用 10bit 及以上精度 YUV 转换为 8bit RGB 才能达到16.7M 色: http:/goldenhige.cocolog-nifty. . gb2416777216yu.html另外也可参考这里 ta 流氓软件王所说的:htt

7、p:/ 10bit 与 8bit 编码的客观测试结果,横轴为码率,竖轴为 1/(1-SSIM),SSIM(结构相似度)是一种衡量两画面间相似度的算法(在这里是编码后的视频和源视频的比较) 。另外我这里出于个人需求顺便对 mbtree 的情况做了测试,对此不感兴趣的可以无视。上图以 Clannad AS EP01 的 3654-17653 帧(正片的大约前一半,不含 OP)为测试片段,代表典型动画的情况。下图以 The Dark Knight 的 1273-9327 帧为测试片段,代表电影的情况,而且是全部IMAX 的片段,噪点也比较少,可以看作高画质片源。上图中可以看到同样达到 200 的 1

8、/(1-SSIM)时,8bit 需要 4500kbps,而 10bit 只需要 1200kbps,这样的优势我觉得不需要多说什么了。根据我的经验,10bit 对于 gradient(梯度变化)的画面(特别像是暗场之类的)优势特别明显,客观上 SSIM 值很高,主观上基本不会产生 banding(色彩过渡区域的色带) 。当然我也遇到了个别奇葩片源比如龙珠 Z 的 BD-BOX,非常强的动态噪点,crf=20 跑出来了 25Mbps 的码率,而且这时 10bit 和 8bit 重编码的差距基本可以忽略。四、播放相关我更新这篇文章时(2012.1.18)所使用的软件及版本:Media Player

9、Classic HomeCinema (x86), 1.5.3.3971, BE Modffdshow tryouts project, svn 4257 (x86) - MSVC2010LAV Filters 0.44madVR 0.80Haali Media Splitter v1.11.288.0Reclock 1.8.7.7下面我以基于 MPC-HC 的播放设置为例,其他播放器的做法也类似。播放推荐使用的软件/滤镜:1.(推荐)MPC-HC 播放器下载地址:http:/www.xvidvideo.ru/media-player-classic-home-cinema-x86-x64/或

10、http:/xhmikosr.1f0.de/index.php?folder=bXBjLWhj下载 x86 版本2.(可选但推荐)LAV Filters分离器/音视频解码器下载地址:http:/forum.doom9.org/showthread.php?t=156191或http:/xhmikosr.1f0.de/index.php?folder=bGF2ZmlsdGVycw下载“Installer (both x86/x64)”,也就是安装版,使用最方便安装时注意勾选 FLAC 的分离、解码支持3.(推荐)madVR 渲染器下载地址:http:/forum.doom9.org/showth

11、read.php?t=146228下载以后解压出来的 madVR 文件夹放在纯英文目录中,然后双击里面的 install.bat 即可注册好,注意保留这个文件夹。4.(可选)Haali 分离器下载地址:http:/ 还是更推荐使用 Haali Media Splitter 作为分离器,因为它能支持文件间的 Link,比如一些把 OP、ED 切到外面去的压制,然后播放正片时会自动根据 UID 在指定的章节连接到那些文件。如果不需要这个功能的话,LAV Splitter 就够用了。但是 Haali 有个霸道的设定,改变了 H.264 的 MediaType,导致一些解码器无法正常调用(我这里用到的

12、 LAV 和 ffdshow 没有问题) ,所以如果需要用到其他一些解码器的话在 Haali 的设置里将 OutputUse custom media type for H.264 设为 No。另外现在也有个 AV Splitter,支持更多自定义的高级功能,喜欢折腾的可以尝试。5.(可选)ffdshow tryout 解码器组件下载地址:http:/www.xvidvideo.ru/ffdshow-tryouts-project-x86-x64/或http:/xhmikosr.1f0.de/index.php?folder=ZmZkc2hvdw下载 x86 版本,Intel 的 CPU 可以

13、选 icl12 编译版,MSVC2010 编译版通用。6.(可选)Reclock 下载地址:http:/ WASAPI 独占输出,可以实现音频解码后的 PCM 信号 bit exact 输出至音频设备(不受操作系统的混音、重采样影响) 。7.(可选)xy-VSFilter 下载地址http:/ VSFilter 2.39 进行优化修改后的 VSFilter,对于 ASS 字幕播放的效率大大提高,也能支持 10bit/16bit 的输入/ 输出,自动根据分辨率判断 BT.601/BT.709 进行RGB 转换备注:现在 LAV Filters、madVR、xy-VSFilter 间正在研究新的滤

14、镜间的通信方式,比如最近LAV 和 madVR 同时放出测试版,前者支持 DXVA2 硬解码(仅用于 Win 7/Vista) ,并且想办法将硬解后的视频从显存中抓回来以 NV12 输出(以前硬解后的视频就直接交由显卡处理后输出至显示器,所以存在各种限制) ,然后可以输入 ffdshow 做后处理、VSFilter 渲染字幕,并可以用 madVR 来渲染而 xy-VSFilter 和 madVR 也在研究新的字幕的传递、渲染方式。目前无论是 VSFilter 将字幕渲染在解码器输出的视频流后再给渲染器处理(Resize、RGB Conversion)的方式,还是 MPC-HC 内置字幕引擎将字幕渲染在渲染器层(已经过 RGB 转换、resize 和加黑边)的方式,都存在其固有的弊端,今天 ANE 也有篇新文章讲到了这个问题:http:/afternoonnapsempire.org/subtitle-renderer-matters/

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报