H264学习方法&&历程&&资料

来源:互联网 发布:驱动软件怎么安装 编辑:程序博客网 时间:2024/06/05 12:13

我的H.264学习历程

半年前,我知道了H.264这个名词。那个时候决定学习H.264,可是我连资料都不知道如何收集。而且整个学校就只有我一个人在学习H.264,找不到人交流,所以那个时候学得真的是举步维艰,很痛苦,而能在网上认识一个学习H.264的同志真的是一件让我很高兴的事。

后来慢慢在网上找到了一些介绍H.264的文章,当然也找到了peter李的网站,找到了流媒体论坛。那个时候在论坛里看见别人问的问题,我都完全不懂。看见别人要这样资料要那样资料,我也不知道这些资料怎么能够用得着。最有趣的是我居然把JVT的会议文章全部下载下来了

——当时并不知道这几百兆的东西到底怎么用,现在倒是知道它的用处了,看来还是没有白下,呵呵~~~。
 
一开始就想,先看看标准吧。因为标准是英文的,又特别长。所以为了避免看了后面忘记了前面,我就开始翻译,看一段翻译一段。可是这个过程真的是又枯燥又痛苦。而且看着300多页的东西,要像这样来看完,还真是没有勇气和信心。想了想还是算了吧,看源代码吧。当时因为知道JM是标准的测试模型,所以就看JM 了。一开始看代码可是很老实的,每句程序,每个变量都跟踪。等把读入参数、初始化变量跟踪完了,才知道,这一段没必要看那么细致,完全可以跳过的。

就这样看代码看不懂的时候就查标准、去流媒体论坛问。可是论坛有好处也有坏处,好处是可以有很多人参与,坏处是你问的问题无论怎样都不可能马上知道答案,于是一般来说对你继续读代码就是一个阻碍。于是去找H.264的QQ群,很高兴找到了“H.264家园”,可是随后很失望——见不到人问,也见不到人回答我的问题。于是,生气了,自己建了一个群,这样终于有了一个比较好的交流环境。可是那个时候的H.264在我看来还只是一个遥不可及的华丽殿堂。QQ群里大家讨论的问题我仍然不懂。而我为了能尽快弄个像样的题目来作为毕业论文,那个时候也没有继续看H.264的内容,只不过花了一个半月的时间来实现一个在今天看来比较肤浅的错误隐藏算法(因为我给自己定的方向是错误隐藏)。

等到我的这篇论文完成已经是9月中旬了,而这个时候对H.264仍然是那么陌生。因为这段时间没有继续看H.264的内容,以前看过的内容,本来理解就不透彻、印象也就不深,所以基本上都忘记了。所以这个时候的我可以说对H.264还处在只是知道个概念的阶段。H.264实在是个庞大的东西,而对于中国人来说,它又是如此的新(个人认为),大面积的商用都还没有开始。我要想在毕业之前在这里面做点有价值的东西在当时看来实在不太可能,于是只有硬着头皮继续研究自己的错误隐藏,希望能给自己的毕业论文增加一点分量。这样就开始看JM关于帧间错误隐藏的代码。因为JM帧间错误隐藏比帧内的复杂得多,涉及到很多相关的问题。所以在看代码过程中也要对这些问题做一些了解,再加上QQ群里的经常讨论,让我真正开始了学习H.264的起步。

等我把帧间错误隐藏看完,已经是10月底了,而这个时候正好我们学院要搞一次学术研讨会。为了能给自己的毕业和以后找工作增加一点砝码,我决定参加。于是开始准备会议报告,通过准备会议报告,让我对H.264的整体框架又一次做了回顾和熟悉。时间终于走到了今天,我很高兴地感觉到,自己已经站在H.264 的门口了——总是有进步的。呵呵~~~

现在自己对学习H.264也有了一些自己的想法,所以写出来和大家一起探讨:

1、第一个阶段:

学习H.264,首先要把最基本最必要的资料拿在手里。这些资料我都放在群共享的《H.264学习必备》(这是我自己打的一个压缩包,内容包括:标准文档+ 测试模型+经典文章)里了。怎么使用《H.264学习必备》呢?首先看里面的《H.264_MPEG-4 Part 10 White Paper》,看完之后再看《Video coding using the H.264 MPEG-4 AVC compression standard》和《Halsted.Press.H.264.And.MPEG-4.Video.Compression.Video.Coding.For.Next.Generation.Multimedia.eBook-LiB》,然后可以看《Overview of the H.264_AVC Video Coding Standard.pdf》。这三篇文章看完后,你应该对H.264的整体框架有个比较深入的了解了。这个时间可能只需要花费你两周左右的时间。


2、第二阶段:

然后你就可以看代码了。这个时候你最常用的工具就是《H.264学习必备》里的标准文档和测试模型。看代码也有讲究。并不是像我开始那样看得那么仔细,结果后来才知道远没有这个必要。正如peter李说的:看代码也要先从整体框架入手。先搞懂H.264的整体框架在代码里是怎么分布的,一个功能模块的前伸模块和后继模块是什么。也就是搞清楚整个代码流程。这个阶段对标准文档的使用可能很少。


3、第三阶段:

然后你找到一个自己感兴趣的切入点,开始以此为中心研究这个问题。你研究问题的时候应该是联系测试模型来研究,这个时候你就需要仔细看代码中对这个问题的实现了。这个阶段我绝对支持你一行行代码跟踪,一个参数一个参数地跟踪。而代码中不懂的地方可能需要查标准。这时你再来看标准文档就有了针对性。也因为能将标准文档和代码对应起来,从而看标准文档也不觉得有太大困难,也能明白标准文档说的是什么问题,在测试模型中是如何通过代码实现的。在这个阶段中,会牵连到很多H.264的相关知识,这样通过以点带线,以线带面。你会对H.264的内容认识越来越多。而你也就找到了自己的方向,最终走上了缔造中国人的H.264的光辉大道,呵呵~~~


==========【注意事项】==========

1、切忌将代码和标准文档独立开看,否则,你的困难会很大。
2、对于刚开始接触H.264的人,切忌直接看代码和标准,哪怕是将标准和代码结合起来看,你也会不太顺利。换句话说:在没有了解H.264整体框架之前,你最好什么都不要做。
3、你千万不要觉得自己参加讨论,以及帮助别人找答案(当然是在你觉得别人问的问题你似曾相识的时候)是一个浪费时间的过程。因为你参加讨论,特别是你帮别人找答案的时候,很多你似是而非的问题却能够得到一个更深刻的认识。
4、学问,学问,即要问也要学。不要养成自己的依赖思想。其实你在自己查资料的过程中,也会学到很多东西。比如会知道某个问题在哪篇文章里能找到答案,或者收集到更多相关问题的有价值的文章……而且自己查到的到底比别人告诉的印象深刻。

转载:http://www.360doc.com/content/061017/19/11177_232935.html

网上查找的H264资料:

JVT所有的会议文件都在这里
ftp://standards.polycom.com

ITU的站点
http://ftp3.itu.ch/av-arch/

流媒体论坛的FTP
ftp://ftp.wonew.org/
用户名:liumeiti.upload
密  码:liumeiti.upload

清华的FTP
ftp://166.111.66.184
用户名:video
密  码:smth

所有JM的测试模型
http://iphome.hhi.de/suehring/tml/

中国人的H.264–AVS
http://www.avs.org.cn/

视频序列下载网址 
http://trace.eas.asu.edu/
http://ise.stanford.edu/video.html
http://www-mobile.ecs.soton.ac.uk/peter/links/work.html
http://eeweb.poly.edu/~yao/VideobookSampleData/doc/sample/sample.htm
http://www.tkn.tu-berlin.de/research/evalvid/
http://www.cipr.rpi.edu/resource/sequences/  (有D1尺寸)
http://kbs.cs.tu-berlin.de/~stewe/vceg/sequences.htm
http://standard.pictel.com/ftp/video-site/sequences
http://www.i3s.unice.fr/~garciav/goodies.php

H.264论坛
http://bbs.lmtw.com/index.asp?boardid=108
http://bbs.edw.com.cn/index.asp?boardid=47
http://www.newsmth.net/

H.264个人站点
http://lspbeyond.go1.icpcn.com/
http://spaces.msn.com/members/naiqa/
http://blog.chinaunix.net/index.php?blogId=2553
http://h263.blogchina.com/
http://blog.csdn.net/sunshine1314/category/123075.aspx

http://www.fastvdo.com/spie04/
     H.264/AVC综述文章,包含了新的高精度拓展(Sullivan, Topiwala, and Luthra)
http://iphome.hhi.de/wiegand/pubs.htm
     一些有关H.264/AVC的文章(Wiegand)
http://iphome.hhi.de/marpe/pub.htm
     更多的关于H.264/AVC的文章(Marpe)
http://iphome.hhi.de/suehring/tml/
     H.264/AVC参考软件
http://www.vcodex.com/h264.html
     H.264/MPEG-4 Part 10教程 (Richardson)
http://www.vcodex.com/h264mpeg4/
     书: H.264 and MPEG-4 Video Compression (Richardson)
http://internet.impress.co.jp/books/1983/
     H.264/AVC 教科书 (日文: Okubo, Kadono, Kikuchi, and Suzuki)
http://ftp3.itu.ch/av-arch/jvt-site
     JVT Experts Group 文档
http://www.mpegla.com/news/n_03-11-17_avc.html
     MPEG LA 关于H.264/MPEG-4 AVC专利授权的条款
http://www.videolan.org/x264.html
     一个基于GPL的H.264编码库,支持大部分H.264的功能
http://www.m4if.org/
     MPEG工业论坛
http://www.itu.int/rec/recommendation.asp?type=folders&lang=e&parent=T-REC-H.264
     ITU-T 官方网页
http://www.iso.ch/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=40890&ICS1=35&ICS2=40&ICS3= H.264
     ISO 官方网页
http://www.wwcoms.com/technology/standard.htm
     W&W Communications H.264 概述和IEEE文章
http://www.apple.com/quicktime/hdgallery/
     苹果公司H.264素材实例

转载:http://www.aimlab.cn/article/TongXinTuXiangYaSuoJiShu/

原文转载自:http://blog.csdn.net/china_video_expert/article/details/7212328

0 0
原创粉丝点击