?? [原創] 我的h_264學習歷程 - h_264樂園 - 視頻技術論壇 中華視頻網ffmpeg工程組 - powered by discuz!.htm
字號:
等到我的這篇論文完成已經是9月中旬了,而這個時候對H.264仍然是那么陌生。因為這段時間沒有繼續看H.264的內容,以前看過的內容,本來理解就不透徹、印象也就不深,所以基本上都忘記了。所以這個時候的我可以說對H.264還處在只是知道個概念的階段。H.264實在是個龐大的東西,而對于中國人來說,它又是如此的新(個人認為),大面積的商用都還沒有開始。我要想在畢業之前在這里面做點有價值的東西在當時看來實在不太可能,于是只有硬著頭皮繼續研究自己的錯誤隱藏,希望能給自己的畢業論文增加一點分量。這樣就開始看JM關于幀間錯誤隱藏的代碼。因為JM幀間錯誤隱藏比幀內的復雜得多,涉及到很多相關的問題。所以在看代碼過程中也要對這些問題做一些了解,再加上QQ群里的經常討論,讓我真正開始了學習H.264的起步。<BR><BR>
等我把幀間錯誤隱藏看完,已經是10月底了,而這個時候正好我們學院要搞一次學術研討會。為了能給自己的畢業和以后找工作增加一點砝碼,我決定參加。于是開始準備會議報告,通過準備會議報告,讓我對H.264的整體框架又一次做了回顧和熟悉。時間終于走到了今天,我很高興地感覺到,自己已經站在H.264的門口了——總是有進步的。呵呵~~~<BR><BR>
現在自己對學習H.264也有了一些自己的想法,所以寫出來和大家一起探討:<BR><BR>1、第一個階段:<BR>
學習H.264,首先要把最基本最必要的資料拿在手里,內容包括:標準文檔(即 ITU 協議)、測試模型(即 ITU
提供的編解碼器源代碼)、經典文章(即后面提到的文章)。怎么使用這些資料呢?首先看里面的《H.264_MPEG-4 Part 10
White Paper》,看完之后再看《Video coding using the H.264 MPEG-4 AVC
compression standard》和《H.264 And MPEG-4 Video
Compression》,然后可以抽空看《Overview of the H.264_AVC Video Coding
Standard.pdf》。前三篇文章看完后,你應該對H.264的整體框架有個比較深入的了解了。這個時間可能只需要花費你三周左右的時間(對于我這樣的笨蛋好像是要這么長時間的。如果你碰巧用了比這個時間還長的時間,那并不說明你比我更笨,只能說明你肯定天天陪MM聊天去了。呵呵~~~),最后一篇文章是《Overview
and Introduction to the Fidelity Range
Extensions》,該文的價值主要在于對H.264的第四個檔次 high profile
做了介紹,前面的文章都沒有涉及該檔次。這個階段可以輔助多看點綜述類的文章,加強對 H.264
的初步了解。<BR><BR>2、第二階段:<BR>
然后你就可以看代碼了。這個時候你最常用的工具就是標準文檔和測試模型。看代碼也有講究。并不是像我開始那樣看得那么仔細,結果后來才知道遠沒有這個必要。正如peter李說的:看代碼也要先從整體框架入手。先搞懂H.264的整體框架在代碼里是怎么分布的,一個功能模塊的前伸模塊和后繼模塊是什么。也就是搞清楚整個代碼流程。這個階段對標準文檔的使用可能很少。如果你使用的測試模型是JM,那么有一個好處:JVT提供了該參考源代碼的說明書——H.264_MPEG-4
AVC Reference Software
Manual(最新版本是JVT-X072),對編解碼的所有參數做了詳細介紹。另外JVT還提供了參考源代碼編碼器手冊JVTO079,對參考源代碼中編碼算法做了詳細闡述(ITU協議其實也就是解碼器手冊)。<BR><BR>3、第三階段:<BR>
然后你找到一個自己感興趣的切入點,開始以此為中心研究這個問題。你研究問題的時候應該是聯系測試模型來研究,這個時候你就需要仔細看代碼中對這個問題的實現了。這個階段我絕對支持你一行行代碼跟蹤,一個參數一個參數地跟蹤。而代碼中不懂的地方可能需要查標準。這時你再來看標準文檔就有了針對性。也因為能將標準文檔和代碼對應起來,從而看標準文檔也不覺得有太大困難,也能明白標準文檔說的是什么問題,在測試模型中是如何通過代碼實現的。在這個階段中,會牽連到很多H.264的相關知識,這樣通過以點帶線,以線帶面。你會對H.264的內容認識越來越多。而你也就找到了自己的方向,最終走上了締造中國人的H.264的光輝大道,呵呵~~~<BR><BR><BR><BR>==========【注意事項】==========<BR>1、切忌將代碼和標準文檔獨立開看,否則,你的困難會很大(當然可能是因為我太笨了,對于“甜菜”的你可能無論怎樣都能應用自如。呵呵~~~)。<BR>2、對于剛開始接觸H.264的人,切忌直接看代碼和標準,哪怕是將標準和代碼結合起來看,你也會不太順利。換句話說:在沒有了解H.264整體框架之前,你最好什么都不要做。<BR>3、你千萬不要覺得自己參加討論,以及幫助別人找答案(當然是在你覺得別人問的問題你似曾相識的時候)是一個浪費時間的過程。因為你參加討論,特別是你幫別人找答案的時候,很多你似是而非的問題卻能夠得到一個更深刻的認識。<BR>4、學問,學問,即要問也要學。不要養成自己的依賴思想。其實你在自己查資料的過程中,也會學到很多東西。比如會知道某個問題在哪篇文章里能找到答案,或者收集到更多相關問題的有價值的文章……而且自己查到的到底比別人告訴的印象深刻。<BR>5、讀代碼要講究方法。代碼中有很多變量,不要一開始就去看頭文件,想把里面所有變量都弄清楚是什么。直接從
main 函數開始讀 c
文件就可以了。遇到不懂的變量再去查頭文件,如果頭文件里沒有說明,自己又理解不了的再去問其他人——不要一開始就養成依賴性。<BR>6、使用
JM 的 TX 如果不需要研究高清,那么建議用
JM86。高版本為了支持高清,把很多原本容易理解的地方修改得晦澀難懂了,增加了理解代碼的困難。<BR><BR><BR><BR><BR>PS
:我所知道的三本講H264的中文書籍<BR>1、《H.264和MPEG-4視頻壓縮》:歐陽合(我看的英文原版,翻譯過來的應該也不錯)<BR>2、《新一代視頻壓縮編碼標準—H.264/AVC》:畢厚杰(書中有較多錯誤,但仍然值得買,建議只做參考)<BR>3、《小波編碼與網絡視頻傳輸》:沈蘭蓀,卓力
(個人覺得不錯,有關于 high profile
的介紹)<BR><BR><BR><BR><BR>——天之驕子(firstime)——<BR>
2005年11月12日<BR><BR>[<I> 本帖最后由 firstime 于 2008-9-17
04:44 PM 編輯 </I>]</DIV></TD></TR>
<TR>
<TD vAlign=bottom><BR><BR><BR><IMG alt=""
src="[原創] 我的H_264學習歷程 - H_264樂園 - 視頻技術論壇 中華視頻網ffmpeg工程組 - Powered by Discuz!.files/sigline.gif"><BR>
<DIV class=signature
style="OVERFLOW: hidden; max-height: 20em; maxHeight: 245px">歡迎加入我們的QQ群:12923082。新加入者請先仔細閱讀論壇中的《群成員須知》!</DIV></TD></TR>
<TR>
<TD align=right><A onclick=scroll(0,0)
href="http://bbs.chinavideo.org/viewthread.php?tid=988###"><IMG
alt=頂部
src="[原創] 我的H_264學習歷程 - H_264樂園 - 視頻技術論壇 中華視頻網ffmpeg工程組 - Powered by Discuz!.files/top.gif"
border=0></A> </TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></DIV>
<DIV class=spaceborder style="MARGIN-BOTTOM: 4px; WIDTH: 98%">
<TABLE class=t_row cellSpacing=0 cellPadding=4 width="100%" align=center>
<TBODY>
<TR style="HEIGHT: 100%">
<TD class=t_user vAlign=top width="18%"><A class=bold
href="http://bbs.chinavideo.org/viewpro.php?uid=2541"
target=_blank>開心到老</A> <BR>
<DIV class=smalltxt>新手上路<BR><IMG alt="Rank: 1"
src="[原創] 我的H_264學習歷程 - H_264樂園 - 視頻技術論壇 中華視頻網ffmpeg工程組 - Powered by Discuz!.files/star_level1.gif"><BR><BR><BR><BR>UID
2541<BR>精華 0<BR>積分 0<BR>帖子 1<BR>閱讀權限 10<BR>注冊 2006-11-26<BR>狀態 離線
</DIV></TD>
<TD
style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px"
vAlign=top width="82%">
<TABLE class=t_msg cellSpacing=0 cellPadding=4 border=0>
<TBODY>
<TR>
<TD>
<DIV>
<DIV class="right t_number"><A class=bold
onclick="window.clipboardData.setData('text','http://bbs.chinavideo.org/viewthread.php?tid=988&page=1#pid3798')"
href="http://bbs.chinavideo.org/viewthread.php?tid=988###">#2</A></DIV>
<DIV style="PADDING-TOP: 4px">發表于 2006-11-27 11:49 AM <A
href="http://bbs.chinavideo.org/viewpro.php?uid=2541">資料</A> <A
href="http://bbs.chinavideo.org/pm.php?action=send&uid=2541"
target=_blank>短消息</A> </DIV></DIV></TD></TR>
<TR>
<TD class=line style="PADDING-TOP: 10px" vAlign=top height="100%"><A
title="評分 0"
href="http://bbs.chinavideo.org/misc.php?action=viewratings&tid=988&pid=3798"
name=pid3798></A>
<DIV
style="FONT-SIZE: 12px">這么好的文章怎么沒有人頂呢???<BR>太感謝樓主拉,我剛開始學習h.264,真苦與無從下手呢。樓主真是一個好人啊!!!</DIV></TD></TR>
<TR>
<TD align=right><A onclick=scroll(0,0)
href="http://bbs.chinavideo.org/viewthread.php?tid=988###"><IMG
alt=頂部
src="[原創] 我的H_264學習歷程 - H_264樂園 - 視頻技術論壇 中華視頻網ffmpeg工程組 - Powered by Discuz!.files/top.gif"
border=0></A> </TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></DIV>
<DIV class=spaceborder style="MARGIN-BOTTOM: 4px; WIDTH: 98%">
<TABLE class=t_row cellSpacing=0 cellPadding=4 width="100%" align=center>
<TBODY>
<TR style="HEIGHT: 100%">
<TD class=t_user vAlign=top width="18%"><A class=bold
href="http://bbs.chinavideo.org/viewpro.php?uid=2796"
target=_blank>peng6662001</A> <BR>
<DIV class=smalltxt>新手上路<BR><IMG alt="Rank: 1"
src="[原創] 我的H_264學習歷程 - H_264樂園 - 視頻技術論壇 中華視頻網ffmpeg工程組 - Powered by Discuz!.files/star_level1.gif"><BR><BR><BR><BR>UID
2796<BR>精華 0<BR>積分 0<BR>帖子 6<BR>閱讀權限 10<BR>注冊 2006-12-11<BR>狀態 離線
</DIV></TD>
<TD
style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px"
vAlign=top width="82%">
<TABLE class=t_msg cellSpacing=0 cellPadding=4 border=0>
<TBODY>
<TR>
<TD>
<DIV>
<DIV class="right t_number"><A class=bold
onclick="window.clipboardData.setData('text','http://bbs.chinavideo.org/viewthread.php?tid=988&page=1#pid3939')"
href="http://bbs.chinavideo.org/viewthread.php?tid=988###">#3</A></DIV>
<DIV style="PADDING-TOP: 4px">發表于 2006-12-11 10:48 AM <A
href="http://bbs.chinavideo.org/viewpro.php?uid=2796">資料</A> <A
href="http://bbs.chinavideo.org/pm.php?action=send&uid=2796"
target=_blank>短消息</A> </DIV></DIV></TD></TR>
<TR>
<TD class=line style="PADDING-TOP: 10px" vAlign=top height="100%"><A
title="評分 0"
href="http://bbs.chinavideo.org/misc.php?action=viewratings&tid=988&pid=3939"
name=pid3939></A>
<DIV style="FONT-SIZE: 12px">感謝樓主展示心得體會</DIV></TD></TR>
<TR>
<TD align=right><A onclick=scroll(0,0)
href="http://bbs.chinavideo.org/viewthread.php?tid=988###"><IMG
alt=頂部
src="[原創] 我的H_264學習歷程 - H_264樂園 - 視頻技術論壇 中華視頻網ffmpeg工程組 - Powered by Discuz!.files/top.gif"
border=0></A> </TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></DIV>
<DIV class=spaceborder style="MARGIN-BOTTOM: 4px; WIDTH: 98%">
<TABLE class=t_row cellSpacing=0 cellPadding=4 width="100%" align=center>
<TBODY>
<TR style="HEIGHT: 100%">
<TD class=t_user vAlign=top width="18%"><A class=bold
href="http://bbs.chinavideo.org/viewpro.php?uid=3855"
target=_blank>scholarshen</A> <BR>
<DIV class=smalltxt>新手上路<BR><IMG alt="Rank: 1"
src="[原創] 我的H_264學習歷程 - H_264樂園 - 視頻技術論壇 中華視頻網ffmpeg工程組 - Powered by Discuz!.files/star_level1.gif"><BR><BR><BR><BR>UID
3855<BR>精華 0<BR>積分 0<BR>帖子 3<BR>閱讀權限 10<BR>注冊 2007-1-6<BR>來自 上海<BR>狀態 離線
</DIV></TD>
<TD
style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px"
vAlign=top width="82%">
<TABLE class=t_msg cellSpacing=0 cellPadding=4 border=0>
<TBODY>
<TR>
<TD>
<DIV>
<DIV class="right t_number"><A class=bold
onclick="window.clipboardData.setData('text','http://bbs.chinavideo.org/viewthread.php?tid=988&page=1#pid4604')"
href="http://bbs.chinavideo.org/viewthread.php?tid=988###">#4</A></DIV>
<DIV style="PADDING-TOP: 4px">發表于 2007-1-9 03:49 PM <A
href="http://bbs.chinavideo.org/viewpro.php?uid=3855">資料</A> <A
href="http://bbs.chinavideo.org/pm.php?action=send&uid=3855"
target=_blank>短消息</A> <A
href="http://wpa.qq.com/msgrd?V=1&Uin=36006640&Site=視頻技術論壇&Menu=yes"
target=_blank><IMG alt=QQ
src="E:\My Documents\hcf\H.264\[原創] 我的H_264學習歷程 - H_264樂園 - 視頻技術論壇 中華視頻網ffmpeg工程組 - Powered by Discuz!.files\qq1_offline(1).gif"
border=0></A> </DIV></DIV></TD></TR>
<TR>
<TD class=line style="PADDING-TOP: 10px" vAlign=top height="100%"><A
title="評分 0"
href="http://bbs.chinavideo.org/misc.php?action=viewratings&tid=988&pid=4604"
name=pid4604></A>
<DIV style="FONT-SIZE: 12px">謝謝老大,這篇文章是經典</DIV></TD></TR>
<TR>
<TD vAlign=bottom><BR><BR><BR><IMG alt=""
src="[原創] 我的H_264學習歷程 - H_264樂園 - 視頻技術論壇 中華視頻網ffmpeg工程組 - Powered by Discuz!.files/sigline.gif"><BR>
<DIV class=signature
style="OVERFLOW: hidden; max-height: 20em; maxHeight: 245px">基于達芬奇平臺的H.264解碼的硬件實現</DIV></TD></TR>
<TR>
<TD align=right><A onclick=scroll(0,0)
href="http://bbs.chinavideo.org/viewthread.php?tid=988###"><IMG
alt=頂部
src="[原創] 我的H_264學習歷程 - H_264樂園 - 視頻技術論壇 中華視頻網ffmpeg工程組 - Powered by Discuz!.files/top.gif"
border=0></A> </TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></DIV>
<DIV class=spaceborder style="MARGIN-BOTTOM: 4px; WIDTH: 98%">
<TABLE class=t_row cellSpacing=0 cellPadding=4 width="100%" align=center>
<TBODY>
<TR style="HEIGHT: 100%">
<TD class=t_user vAlign=top width="18%"><A class=bold
href="http://bbs.chinavideo.org/viewpro.php?uid=5227"
target=_blank>fig_kong</A> <BR>
<DIV class=smalltxt>新手上路<BR><IMG alt="Rank: 1"
src="[原創] 我的H_264學習歷程 - H_264樂園 - 視頻技術論壇 中華視頻網ffmpeg工程組 - Powered by Discuz!.files/star_level1.gif"><BR><BR><BR><BR>UID
5227<BR>精華 0<BR>積分 0<BR>帖子 2<BR>閱讀權限 10<BR>注冊 2007-2-8<BR>狀態 離線 </DIV></TD>
<TD
style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px"
vAlign=top width="82%">
<TABLE class=t_msg cellSpacing=0 cellPadding=4 border=0>
<TBODY>
<TR>
<TD>
<DIV>
<DIV class="right t_number"><A class=bold
onclick="window.clipboardData.setData('text','http://bbs.chinavideo.org/viewthread.php?tid=988&page=1#pid4984')"
href="http://bbs.chinavideo.org/viewthread.php?tid=988###">#5</A></DIV>
<DIV style="PADDING-TOP: 4px">發表于 2007-2-9 08:35 PM <A
href="http://bbs.chinavideo.org/viewpro.php?uid=5227">資料</A> <A
href="http://bbs.chinavideo.org/pm.php?action=send&uid=5227"
target=_blank>短消息</A> </DIV></DIV></TD></TR>
<TR>
<TD class=line style="PADDING-TOP: 10px" vAlign=top height="100%"><A
title="評分 0"
href="http://bbs.chinavideo.org/misc.php?action=viewratings&tid=988&pid=4984"
name=pid4984></A>
<DIV
style="FONT-SIZE: 12px">哈 原來這篇文章的作者是樓主你啊 在很多地方看到有轉載</DIV></TD></TR>
<TR>
<TD align=right><A onclick=scroll(0,0)
href="http://bbs.chinavideo.org/viewthread.php?tid=988###"><IMG
alt=頂部
src="[原創] 我的H_264學習歷程 - H_264樂園 - 視頻技術論壇 中華視頻網ffmpeg工程組 - Powered by Discuz!.files/top.gif"
border=0></A> </TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></DIV>
<DIV class=spaceborder style="MARGIN-BOTTOM: 4px; WIDTH: 98%">
<TABLE class=t_row cellSpacing=0 cellPadding=4 width="100%" align=center>
<TBODY>
<TR style="HEIGHT: 100%">
<TD class=t_user vAlign=top width="18%"><A class=bold
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -