h264学习(改一)

h264是视频裸流数据,它的结构是经过精心设计的,显得精悍、复杂,初次接触会感觉有些棘手。当然我们先得搜集有关资料。。。

网上的资料很多,不过都是一些博客,描述的只是数量不多的知识点,大多都是重复的,难以形成对h264结构相对完整的认识,甚至可能被误导。我们可以选择一些相对权威的书籍,至少大多数有关h264的问题在这些书里面都能找得到答案,也不容易出错,晚上大多数博客其实也是抄这些书的。这里向大家推荐一本比较好的书--《毕厚杰 新一代视频压缩编码标准H.264》
,网上都是可以下到的。

找到资料后就要花时间去消化了,我不建议直接去读那些资料,一是这些资料比较枯燥难懂,一时间很难理解,囫囵吞枣的去读基本没有效果,转眼就忘,顶多留下一点印象,浪费时间。另一个则会严重打击学习积极性的,有勇气的可以去尝试。。。

自己尝试去解码一段h264裸流是比较有效果的,动手的过程会逐渐地知道哪些是重点,接下来我着重说下自己解码遇到的一些问题,希望对大家有帮助。

解h264有两个问题是比较棘手的,一是h264使用了哥伦布编码,需要大家使用相应的解码方式,还有就是解码操作的最小单元是位,而我使用的语言最方便操作的单元是字节,这就带来了一些麻烦。

我们解码主要是0阶有(无)符号哥伦布解码、二进制位解码十进制等等。哥伦布解码的方法网上有很多,可以很快查到,所以这里不再复述。知道了解码的方法后,就要有一种方法可以连续解码数据,我因此而实现了一个工具类,用于完成各种格式的连续解码工作,内部保存了粒度为位的指针,通过对字节进行位操作来实现,由于指针是内部维护的,外界不需要关心,因不用再担心一些位的操作,显得比较简洁,如此就解决了解码粒度为位的问题,又能连读读取解码数据,剩下的就是根据码流结构依次解码数据了,这也是了解整个h264结构的过程。

为验证自己的解码过程是否正确,我们需要一些软件的帮助。雷神分析h264的工具就不错,我用的也是这个工具,大家可以试试。

万事开头难,我一直坚信功夫不负有心人。。。希望我的分享对大家有所帮助。

http://download.csdn.net/detail/u012129163/9753364 (这是我解码h264所做的一些工作,包含测试文件、工程代码、雷神的分析工具,以及一些文档)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,403评论 25 708
  • 做这个东西很久了,从去年十二月份开始的,快5个月了。。。期间因为工作一直断断续续,直到最近才有了些进展,也就到此为...
    0_0啊阅读 12,490评论 1 13
  • 三股深且泥泞的车辙在他的前方歪歪扭扭地延伸着,像屎壳郎背负着大山一样的三轮车满满载着杉木蜗牛样蠕蠕而...
    冯金骆阅读 259评论 0 0
  • 小院寂无人,凭窗闻鸟鸣。鸟鸣久未去,晓我是知音。 清晨,日暮。母亲小院的屋前屋后电线杆上的那一点点,一声...
    思雪_2988阅读 879评论 0 3
  • “爱美之心,人皆有之”,作为女人,无论上下班途中,还是闲暇时逛街,总是不经意间观察身边每一个女子的穿着打扮。遇到自...
    一剪红梅阅读 414评论 4 4