264网上的资料很多,也很杂!而且大部分的资料都是抄来抄去的,一个字都不带改的,真的很恶心,当每次点击不同链接出现的都是同一篇博客的时候,就会给去一个白眼,然后马上关掉,分分钟都不想待,浪费时间,浪费流量。但还好,基本想找的资料都能查到,只不过效率不高,查半天可能有用的也只是一句话的信息量,最好是下一本有关h264的专业书籍,虽然难看厚了一点,但对于全面的学习h264是很有帮助的,当然,不必把这本书从头看到尾,这样很枯燥,也没什么用,转眼就忘,还不如去玩一盘lol!!!可以把它当做一本有关h264的参考书,不懂就翻,如此得到的信息量最大也最专业,百度上一些博客基本也是抄这些书的,不如自己直接翻来得痛快!!当自己翻书也不明白的时候,就可以就这个问题问度娘了。光看书当然不行啦,必须动手去解h264,在解的过程才能深刻的体悟到哪些是重点。这里向大家推荐一本有关h264的参考书---《毕厚杰 新一代视频压缩编码标准H.264》,需要的朋友可以私聊或直接问度娘吧~~~
264是分层的码流结构,每个字节都分属于其中一层,最上一层是nal,264就是由一个个nal拼接而成的,对于nal的body体,在解码的过程中要注意去除竞争码0x000003,之后的解码工作完全就可以照参考书解了,其余几层可以参考书籍或百度~。我先解码的是sps序列集,看sps的码流描述发现了ue,se等奇怪的符号,反复翻阅得知这叫描述子,用来指明sps中的各个元素在码流中的编解码方法。或用0阶指数哥伦布解码,或直接二进制转十进制,看具体的描述子而定,由此步步为营,解出这些码流是不太困难的,只要对这些描述子的解码十分清楚。其他的诸如pps图像集的、片等等的解码大同小异,不必再说。其实单独的解出某一层结构是不太困难的,关键是要形成一种解码的有效流程,从而高效供外界使用,这需要一点编程技巧,设定解码架构,这跟音视频解码没什么关系了,可以看做设计一个功能为编解码h264的软件吧,呵呵。
最终的解码结果如何,是对是错需要验证,据此才能判断解码的流程是否出现了纰漏。我们可以根据现有的解码264的软件来验证比较自己的结果,可参考的软件有雷神的264分析器(大家上网查吧或找我私聊)。
我写这片文的目的不是介绍有关264的知识,这样的东西网上一片一片的,何必再说,只是想分享一下自己学习264的过程,告诉大家可以怎样去学,当然这只是个人之见,有何不足欢迎指正~