学习H.264, 首先要把最基本最必要的资料拿在手里, 内容包括: 标准文档(即ITU协议), 测试模型(即ITU 提供的编解码器源代码), 经典文章(即后面提到的文章, H.264相关论文经典文章).
怎么使用这些资料呢? 首先看里面的<H.264_MPEG-4 Part 10 White Paper>, 看完之后再看 和<Halsted.Press.H.264.And.MPEG-4.Video.Compression.Video.Coding.For.Next.Generation.Multimedia.eBook-LiB>, 然后可以抽空看.
前三篇文章看完后, 你应该对H.264的整体框架有个比较深入的了解了. 这个时间可能只需要花费你三周左右的时间, 最后一篇文章是, 该文的价值主要在于对H.264的第四个档次high profile做了介绍, 前面的文章都没有涉及该档次.
然后你就可以看代码了. 这个时候你最常用的工具就是标准文档和测试模型. 看代码也有讲究. 并不是像我开始那样看得那么仔细, 结果后来才知道远没有这个必要. 正如peter李说的: 看代码也要先从整体框架入手. 先搞懂H.264的整体框架在代码里是怎么分布的, 一个功能模块的前伸模块和后继模块是什么. 也就是搞清楚整个代码流程. 这个阶段对标准文档的使用可能很少. 如果你使用的测试模型是JM, 那么有一个好处: JVT提供了该测试源代码的说明书 - <H.264_MPEG-4 AVC Reference Software Manual>, 对编解码的所有参数做了详细介绍.
然后你找到一个自己感兴趣的切入点, 开始以此为中心研究这个问题. 你研究问题的时候应该是联系测试模型来研究, 这个时候你就需要仔细看代码中对这个问题的实现了. 这个阶段我绝对支持你一行行代码跟踪, 一个参数一个参数地跟踪. 而代码中不懂的地方可能需要查标准. 这时你再来看标准文档就有了针对性. 也因为能将标准文档和代码对应起来, 从而看标准文档也不觉得有太大困难, 也能明白标准文档说的是什么问题, 在测试模型中是如何通过代码实现的. 在这个阶段中, 会牵连到很多H.264的相关知识, 这样通过以点带线, 以线带面. 你会对H.264的内容认识越来越多. 而你也就找到了自己的方向, 最终走上了缔造中国人的H.264的光辉大道.
liumeiti.upload
pass: liumeiti.upload
video
pass: smth