如何学习h.264协议.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
如何学习h.264协议 首先,我假定你已经具有如下基础: 1 了解基本的视频知识,知道什么是YCbCr/YUV; 2 知道基本的视频压缩原理; 如果这两条还不具备,那么,停一下,补一下课。这方面的相关文章在网上一找一大把。 ? now,你为什么要学习H.264呢?可能你是个在校学生,要写论文,拿着复杂的JM代码无从下手。可能你是个开发人员要往已有的代码里添加一个码率控制算法,但是拿着前人开发的代码又感到一头雾水。无论你具体做什么,对264协议有个比较深的理解还是有必要的。 ??? 那先准备好以下几样东西: ? 1 H.264_MPEG-4 Part 10 White Paper; ??2 H.264 Visa 和StreamEye; ???? 这是两个码流分析软件,前者有免费版本,后者有个免费版,屏蔽了一些功能,但是对初学者,足够了。 ? 3 码流。你可以随便去下两个,很多地方都可以下到的。 ? 4 matlab ? ? 你可能注意到,我提供的清单里没有H.264协议,没有JM代码,为什么?因为这两样东西,太复杂,不合适初学者。即使现在,我看到H.264协议原本都还觉得复杂,JM代码更是没有怎么看过。?这两样东西,不到做具体开发的时候没有必要去详细地研究。 ??? 那么,如何理解H.264协议呢。?容易,我们可以手工完成一个264码流的解码过程,相信我,你如果专心,最多花30小时,就能基本完成这个过程。?? ?? 264协议,其实也使用了与以前的协议类似的方法,但在各个环节中,都加入了不少的改进而已。 下面先简要说明一下各个模块的要点。 1 帧内预测。 这是个新概念,但其实就是使用相邻的块来预测当前块。我们先只考虑4x4亮度块的例子。 使用H.264 Visa打开一个码流文件。从第一帧第一块开始(无疑,是个I块)。然后一个小块一个小块地做预测。需要注意的是,预测一个小块,就重建一个小块。重建你只需要把预测值加上残差就可以了。你可以使用matlab来帮你完成这个过程。残差值,现在先直接使用就可以,不必残差是如何来的。重建后的小块就可以作为进一步预测的参考块了。注意,要使用pre-loopfilter的数据。 2 帧间预测。 ? 请先用264Visa 和StreamEye打开码流,查看第一个P帧(通常是第2帧)。 ? 树状的块结构层次。你可以用StreamEye查看一下,能很容易地看到各个宏块的结构类型。 ? Mv。你可以在H.264 Visa中查看一下,看看每个part的Mv是多少,注意,因为运动矢量是以1/4像素为单位的,所以(4,8),实际代表偏移了(1,2)个像素。然后可以根据Mv到上一帧找一下参考块的位置,然后比较一下参考块和预测块,看看两者是否近似(非整点情况)或相同(整点情况,比如Mv= (4,4))。 ? Mv的预测。找到当前块的A、B、C块,然后预测一下Mv,再看实际的Mv是多少。 ? 自己根据Mv,找到参考块。再在matlab中写个插值程序,应该可以插出正确的值。 ? 注意,做这个练习,应该在第一个P帧中来做,如果到第二个P帧中做,因为涉及多参考帧的问题,找参考帧会比较麻烦。 3 变换量化。264中变换量化已经合在一起了,白皮书上已经有详细说明。可以自己用matlab来算一下白皮书上的题目,再在码流中找一个块,做下反量化反变换,最后看看结果,和H.264 Visa的结果比一下。 4 CAVLC。 ?? 没什么可说的,理解一下CA,然后知道其实就是个改进了的Run-level编码就可以。 5 Deblocking ? 理解一下Bs,理解一下阈值。注意,当梯度小于阈值时才做加权,为什么? ? 在H.264 Visa中比较一下pre-loop filter和final的数据。? ?6 码流结构和语法。 ?? 用StreamEye可以查看码流及其分析结果。 ?有了这两个码流分析工具,再结合白皮书,应该很快能掌握I块,P块的重建方法,并能熟悉码流结构。 ? JM代码太复杂,没必要在这个阶段看。协议,更烦琐,不做完整开发的话也没必要看了。可以看看市面上的相关的参考书。

文档评论(0)

jiupshaieuk12 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6212135231000003

1亿VIP精品文档

相关文档