H264學習方法歷程資料

我的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的整體框架有個比較深入的了解了。這個時間可能只需要花費你兩周左右的時間

(對于我這樣的笨蛋好像是要這么長時間的。如果你碰巧用了比這個時間還長的時間,那并不說明你比我更笨,只能說明你肯定天天陪MM聊天

去了。呵呵~~~)。


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學習指南

在寫這個題目是,就感到有些戰戰兢兢,在這個論壇也混了一段時間了,說實話,并沒有感覺在這里學到太多東西。而且覺得大家討論問題的

深度不及“視頻設計芯片論壇”http://china264.68l.com/index.asp

因為最近手頭的活基本搞完了,人也閑了下來,這么熱的天氣,突然想寫這么一篇文章。不過首先聲明的是我對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版本好像是最新的,對于翻譯標準,我認為不是太必要,但對

了解標準也還是有點幫助,可以放在正常工作時間以外進行,如果大家有這么努力的話。

轉載:http://www.360doc.com/content/061017/19/11177_232938.html

?

?

注釋:沒有得到上面作者的《H264必備資料》,找到下面的一系列資料作為補充吧。

?

網上查找的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://www.pswp.cn/news/453765.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/453765.shtml
英文地址,請注明出處:http://en.pswp.cn/news/453765.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

深度學習之 ROI Pooling

什么是ROI? ROI是 Region of interest 的簡寫,指的是 Faster R-CNN 結構中,經過 RPN 層后,產生的 proposal 對應的 box 框。 ROI Pooling 顧名思義,是 pooling 層的一種,而且是針對 ROIs 的 pooling。整個…

KD樹小結

很久之前我就想過怎么快速在二維平面上查找一個區域的信息,思考許久無果,只能想到幾種優秀一點的暴力。 KD樹就是干上面那件事的。 別的不多說,趕緊把自己的理解寫下來,免得涼了。 KD樹的組成 以維護k維空間(x,y,……)內的KD樹為例…

多元函數求極值中的a_多元函數的條件極值和拉格朗日乘數法

、條件極值、拉格朗日乘數法1. 轉化為無條件極值在討論多元函數極值問題時,如果遇到除了在定義域中尋求駐點(可能的極值點)外,對自變量再無別的限制條件,我們稱這類問題為函數的無條件極值。如求的極值,就是無條件極值問題。然而在…

深度學習之 RPN(RegionProposal Network)- 區域候選網絡

anchor boxes基本概念與作用: feature map 上的一個點可以映射回輸入圖片上的一個點,以特征圖上這個點為中心,預先人為設定 k 個 boxes,這些 boxes 就稱為在這個點上生成的 k 個 anchor boxes(所有anchor boxes的中心點坐標是一樣…

h264的碼率控制 JVT-G012

開始看h264的碼率控制,很多地方都提到 G012,拿來做為參考比較,看來很有必要研究清楚。 偶這人,E文文檔不翻譯的話,看過就忘了,于是草草翻譯了下,因為不打算做B幀,也不準備在同一幀中…

Android RecyclerView嵌套EditView實時更新Item數據

一、場景(例如:購物車) 1、當我們需要以列表樣式管理某些數據時,可能需要列表項的某個字段可編輯 2、編輯Item上的某個字段后可能還要更新相關字段的值 二、可能遇到的問題 1、列表滑動導致輸入框中的數據錯位(或者焦點…

workbench拓撲優化教程_優化技術在水泵水力設計的應用(上篇)

文章來源:安世亞太官方訂閱號(搜索:Peraglobal)CFD技術在泵的內流數值模擬、研究泵內部流動規律和結構方面已廣泛應用,取得了很多成果。但是初步設計的產品如果通過CFD仿真得到的性能曲線不能滿足使用要求,…

深度學習之 TensorRT

1 簡介 TensorRT是一個高性能的深度學習推理(Inference)優化器,可以為深度學習應用提供低延遲、高吞吐率的部署推理。TensorRT可用于對超大規模數據中心、嵌入式平臺或自動駕駛平臺進行推理加速。TensorRT現已能支持TensorFlow、Caffe、Mxne…

H.264筆記

H.264標準寫得比較繁復,所以考慮在瀏覽完Whitepaper之后就開始研讀X264代碼。X264代碼風格還是比較清晰簡潔的。根據對標準得理解,Picture Order Count在Slice解碼的一開始就被提及:I0 B1 B2 P3 B4 B5 P6I0 P3 B1 B2 P6 B4 B5于是I0的POC是0&…

進制轉換中dbho是什么意思_什么是網段?二進制十進制如何互相轉換?看完這篇,你就全明白了...

之前的文章講了ip,子網掩碼,網關的關系,今天著重講一下網段。我們用傻瓜交換機通訊時,一個網段的設備才能互相通訊,怎么能判斷兩個ip是同一個網段呢?今天就簡單的說一下。(這篇文章用語音聽可以起到催眠作用…

【網絡流24題】星際轉移問題(最大流)

【網絡流24題】星際轉移問題(最大流) 題面 Cogs 題解 因為天數是未知的,所以我們要想辦法處理天數 可以選擇二分或者依次累加天數 因為數據范圍較小,使用二分可能反而復雜度會增高 所以使用不斷累加天數 那么,把所有的…

使用 gunicorn 部署flask項目

1、WSGI協議 Web框架致力于如何生成HTML代碼,而Web服務器用于處理和響應HTTP請求。Web框架和Web服務器之間的通信,需要一套雙方都遵守的接口協議。WSGI協議就是用來統一這兩者的接口的。 2、WSGI容器 常用的WSGI容器有Gunicorn和uWSGI,但G…

軟件需求與問題解決

(一) 小滿當上項目經理后不久,參與了一個大項目。當時市場簽下來的時候,公司里面是歡天喜地的。項目做了一年多。到了交付的時候,用戶卻很不滿意,當初說好的東西,好多都變了卦。用戶是上帝&…

flex 換主軸后子元素占滿_Chrome72 嵌套 flex 布局修改,你的網站可能會發生布局錯亂...

起源2019 年 1 月 29 日,Chrome72 正式版(72.0.3626.81)發布,本次發布帶來了一個改變,且沒有在更新日志中提及,該改變導致某些網站發生了布局錯亂。該改變主要針對的是嵌套的flex布局,下面我們一起看下是怎么回事。問題…

使用 Django + Wusgi + Nginx 部署 Django

如何在生產上部署Django? Django的部署可以有很多方式,采用 nginxuwsgi 的方式是其中比較常見的一種方式。 uwsgi介紹 uWSGI是一個Web服務器,它實現了WSGI協議、uwsgi、http等協議。Nginx中HttpUwsgiModule的作用是與uWSGI服務器進行交換。 WSGI / …

網絡學習網址

網絡之路博客 http://ccieh3c.com/ 轉載于:https://www.cnblogs.com/changha0/p/8179801.html

路由到另外一個頁面_Nextjs使用解讀一(項目搭建與路由系統)

文章說明:1. 之前想搭建個人博客,由于學習的是react技術棧,所以就到處搜羅資料學了nextjs,配合koa就把博客搭起來了。該系列文章基于我的學習筆記,重新整理了一遍,如果有錯誤之處,還請指正。2. …

微信獲取token -1000

最終翻看微信開發api找到需要去配置IP白名單。只需要配置訪問來源IP即可。 轉載于:https://www.cnblogs.com/yangjinqiang/p/8184663.html

產品技術和管理

為啥純粹為消費者傳遞體驗的活動可以價格不菲,幾為暴利?——談客戶體驗作為客戶價值提升之源 不論產品還是服務,如果能夠為消費者傳遞有益的體驗,其價值就可以在一般的產品服務之上得以體現;附加了體驗的產品&#xff…

Linux 修改系統編碼

linux服務器的字符集設置可能影響到網站頁面出現 “???” 等問號亂碼,還有可能導致文件中的漢字部分出現亂碼。有兩個原因 服務器沒有安裝 zh_CN.UTF-8 字符集,導致不支持中文!服務器雖然裝了 zh_CN.UTF-8…