因為最近手頭的活基本搞完了,人也閑了下來,這么熱的天氣,突然想寫這么一篇文章。不過首先聲明的是我對H264并不是太熟悉。但多多少少也學習了這么久了,寫點心得出來對自己是個交待,同時也希望給新手們一點幫助,只要對大家有一點點幫助,也就很滿足了。
?????? 好,閑話少說。如果大家是剛開始進入圖象領域,那么先看一看"計算機圖象處理"方面的教材還是有必要的.不過稍微了解一下就好了,不用太深入,在以后的對264的學習中,自然會對這些基本概念有進一步的了解.然后,是對264的了解,推薦3篇文章.
1、Halsted.Press.H.264.And.MPEG-4.Video. Compression. Video. Coding. For. Next. Generation。
?? 對視頻編解碼原理講得比較詳細
2、Video coding using the H.264 MPEG-4 AVC compression standard。
?? 更加關注于編解碼的各個模塊的實現方式
3、Overview of the H.264/AVC Video Coding Standard。
?? 是Thomas Wiegand的大作,對264較之以往標準的新特性都作了說明。
??????? 這三篇文章絕對是了解264的經典文章,論壇上好像也有下載的地址。這些都是e文文章,不過相信對大多數人難度都不大。
細心將這三篇文章看完。對264就有了一個比較清楚地認識了。對一個這么大的東西,不可能說要在短時間內全部搞懂它,因此就要根據當前自己的情況,選擇一個具體的研究方向,比如說運動估計、熵編碼等等。我現在以我自己的研究方向運動估計作為例子,來說一下我的學習方法,當然肯定有班門弄斧的嫌疑,但是既然大家都不認識我,我也就不客氣了。
??????? 從入門的3篇文章中可以看出,幀間編碼(運動估計)是264的運算復雜度的“主力”部分。那么首先要對傳統的那些運動估計方法作一個了解,如果是教育網的朋友再ieee的網站上拿motion estimation一搜就能搜到一大堆文章了,我的建議是選一篇比較新而且比較長的文章,就是那種regular paper 而不是short paper。這些文章中一般會對本研究方向的經典方法作一個回顧和比較,這樣,從這篇文章的參考文獻中再進一步把本研究方向的歷史和現狀作一個了解。
??????? 所謂對264的研究的話,基本上就是用更加好的算法來降低264本身的計算復雜度。能夠做到不提高碼率當然好,但碼率稍微有點上升也沒有關系,不過那就要在編碼速度上有優勢,這樣就可以說“本方法利于實時實現“啦,哈哈。就運動估計來說,傳統的3ss,4ss,ds都要知道是怎么回事,然后像被大家奉為經典的mvfast,pmvfast就要專心的看一下了。最好呢,是在這些方法上,能夠提出自己的新觀點、新方法。當然,這就不是一個純粹看論文能夠解決的問題了。大家需要對264的新特點有一個清楚了了解,然后考慮的方向可以是以前的方法應該怎么改善再用在264上,能夠更好地發揮作用,向連續消方法,half-way stop的方法,好像國內的都有人出論文。因為264的幀間預測采用了可變塊大小,因此又引出了一個問題:按什么方法來分塊是最好的?大家在看那3篇入門的文章時,就要邊看邊思考,里面說采用可變塊大小,就要想到我怎么知道該怎么分塊;里面提到4*4塊幀內預測有9種模式,就要想到這9種模式如何決策。也就是說,大家再看這些文章時,要想一下,我該怎么去實現它。這些問題其實很容易就能提出來,但要解決卻是一個大問題。
??????? 比如說分塊吧,VBSME(variable block size motion estimation),ieee上可有不少文章,臺灣國立成功大學(?好像是這個名字)的一篇碩士論文就寫的是這個,可見264有好多東西可以去做,養幾個博士絕對綽綽有余啊,赫赫。其實研究方向越細,就能夠對這個方向把握得越準確,成天看著,總會有些新想法出來吧,嗬嗬,開玩笑的說。選好了一個大的研究方向,然后就要知道現在這個方向大家都是在那些細節上做工作。像運動估計的話,多幀預測,可變塊大小的分法,1/4像素估計精度等等都是熱門的東西,那基本上來說,跟著大家走就好了。了解哪些東西是熱門,基本上*多看文章,同時建議大家多看e文的,最好是ieee的。我的一個博士師兄告訴我說,如果你想發某一個檔次的文章,你就應該看比這個雜志高一個檔次的文章。而且他說一般看個15篇左右,就應該要能夠出一篇自己的東西了。這個師兄現在畢業了,他發了好多EI的,羨慕!
?????? 如果“不幸”有了自己的新想法,那么就需要驗證了。簡單一點的驗證呢,可以放在c語言或者matlab平臺下進行,但是如果要發論文的話,基本上還是要放在JM下才有說服力。而且試驗序列最好采用標準序列。這既涉及到一個讀JM源碼和修改JM源碼的問題。我看了一段時間,實在是好煩啊,所以,對不起,在這方面我沒有太多好的建議。但是我在修改一個幀內預測算法時,反而把預測速度減慢了,哈哈,按照常理來說,我的方法應該比JM里的方法好才對,而且我在matlab下的仿真結果的確如此,很郁悶,希望大家推薦一個看源碼的方法給我,謝謝先。
??????? 除去以上說的這些,看標準也是很必要的。200503的那個prepublished版本好像是最新的,對于翻譯標準,我認為不是太必要,但對了解標準也還是有點幫助,可以放在正常工作時間以外進行,如果大家有這么努力的話。