Doom9的那个帖子太长了,今天复习了一下,在这个帖子里做点笔记,另外,那个帖子看也看不完,所以顺带还要问两个问题。
首先,硬件解码的限制主要是在帧缓存DPB上,DPB是Decoded Picture Buffer,已解码图像缓存,已经解码的图像放在缓存里用来做其他帧的参考,所以DPB以参考帧密切相关。
L4.1规定的DPB是12288KB,相当于对少bit呢?12288*1024*8bit=100663296bit
由于MPEG4的图像一律是4:2:0格式,所以每个像素占用12bit数据,那么帧缓存中允许的像素数量就是100663296/12=8388608。
所以:8388608/(长*宽)=参考帧的数量
8388608/1920/1088=4.01,所以当影片为1080p时,参考帧数量不能超过4,否则DXVA硬解就失效,当然这是对电脑显卡来说的,对于其他的硬件播放器,比如蓝光碟机,高清播放机,由于硬件的限制,他们的能力一般是低于L4.1的标准的(即使是声称支持L4.1),如果完全按照L4.1去做,播放时也可能有问题。
笔记就做到这里。
下面问问题,
1、B-pyramids对硬件兼容性不好,使用这个参数必须Nref-1,而且即使这样也不保证没问题,这一状况现在有没有改变?我看megui预置的跟硬解有关的配置里,这个参数全都禁用。
2、B帧数量到底跟硬解有没有关系,我是觉得没关系,但是为什么跟硬解有关的profile里B帧数量都不超过3呢?