H.264配置文件有哪些区别?
我在After Effects CS5中渲染一个视频,在格式化时,我选择了H.264编解码器,在该格式中,它有一个Baseline、Main和High的配置文件。
于是我做了一个小测试–用Baseline和High渲染两个文件。我注意到的唯一一件事是,视频的大小更小,High提供了更小的文件大小。
我只是想知道这两者之间的区别是什么,哪个对质量最好,哪个对文件大小最好。
我在After Effects CS5中渲染一个视频,在格式化时,我选择了H.264编解码器,在该格式中,它有一个Baseline、Main和High的配置文件。
于是我做了一个小测试–用Baseline和High渲染两个文件。我注意到的唯一一件事是,视频的大小更小,High提供了更小的文件大小。
我只是想知道这两者之间的区别是什么,哪个对质量最好,哪个对文件大小最好。
H.264配置文件或多或少地定义了编码器在压缩视频时可以使用的 “钟声和口哨”–编码器可以启用很多H.264功能。编码器可以启用哪些功能是由配置文件定义的。配置文件可确保具有不同解码能力的设备之间的兼容性。有了配置文件,编码器和解码器在它们都能处理的功能集上达成一致。
详细的列表,请看维基百科上的 H.264 Profiles 。
一般来说,Baseline配置文件只限制编码器的某些基本功能。用基线配置文件编码的视频可以很容易地播放,即使是在计算能力较低的设备上,如旧的智能手机。Android和iOS手机,例如,官方只播放视频编码的基线配置文件,但不是高或主。在过去的几年里,这种情况已经发生了一点变化,越来越多的手机实际上可以播放main或high profile的视频,但仍然是官方推荐的【别提了】(http://developer.android.com/guide/appendix/media-formats.html)。
主要用于低成本应用,这个配置文件最典型的是用于视频会议和移动应用。它对应的是Baseline、Main和High profile之间共同的功能子集
Main和High只是在此基础上增加了一些功能。特别是高剖面图在广播中经常使用。
广播和光盘存储应用的主要配置文件,特别是高清晰度电视应用(例如,蓝光光盘存储格式和DVB HDTV广播服务采用的就是这种配置文件)。 B 片 例如,只允许在 Main 配置文件及以上版本中使用。它们可以用来节省带宽,但很难解码,这就是为什么有些设备可能不支持它们的原因。
配置文件只间接影响质量。与较低的配置文件相比,较高配置文件的一些功能可能会让您以较低的文件大小获得相同的质量。
例如, CABAC 熵编码(Main和High)比 CAVLC (Baseline)更有效率。它在计算上也更密集。因此,如果你给编码器一定的比特率花费,它将能够用CABAC创建比CAVLC更好的视频质量,因为它实现了更好的压缩。
这也解释了为什么你用High配置文件实现了更小的文件大小–很明显,你以某种方式设置了一个恒定的质量水平,编码器可以使用更先进的压缩技术来创建一个与Baseline配置文件具有相同质量的视频文件,但体积更小。
一些基本规则。