輸入數據是一個表示h.264幀的字節數組。該幀由一個切片(不是多層幀)組成。h.264字節流解析
所以,據我瞭解,我可以像切片一樣處理這個幀。切片具有頭部和切片數據 - 宏塊,每個宏塊具有其自己的頭部。
所以我要解析的字節數組提取幀數,幀的類型,量化係數(我的理解每個宏塊都有自己的係數?還是我錯了?)
你能不能告訴我,在那裏我可以得到更多有關解析h.264幀字節的詳細信息。
(其實我讀過的標準,但它是不是很具體,我迷路了。)
感謝
輸入數據是一個表示h.264幀的字節數組。該幀由一個切片(不是多層幀)組成。h.264字節流解析
所以,據我瞭解,我可以像切片一樣處理這個幀。切片具有頭部和切片數據 - 宏塊,每個宏塊具有其自己的頭部。
所以我要解析的字節數組提取幀數,幀的類型,量化係數(我的理解每個宏塊都有自己的係數?還是我錯了?)
你能不能告訴我,在那裏我可以得到更多有關解析h.264幀字節的詳細信息。
(其實我讀過的標準,但它是不是很具體,我迷路了。)
感謝
H.264標準是一個有點難以閱讀,所以這裏有一些提示。
標準很難閱讀。您可以嘗試使用C(C99)庫分析現有H.264視頻流解碼軟件的源代碼,如ffmpeg。例如,有avcodec_decode_video2函數記錄here。你可以得到完整的工作C(打開文件,獲得H.264流,迭代幀,轉儲信息,獲取色彩空間,保存幀作爲原始PPM圖像等)here。另外還有很棒的"The H.264 Advanced Video Compression Standard"這本書,它解釋了「人類語言」中的標準。另一種選擇是嘗試Elecard StreamEye Pro軟件(有試用版),它可以給你一些額外的(視覺)視角。
事實上,閱讀H.264視頻編碼文檔的過程要簡單得多(這只是我的觀點)。 ffmpeg是非常好的庫,但它包含很多優化的代碼。最好看看H.264編解碼器和官方文檔的參考實現。 http://iphome.hhi.de/suehring/tml/download/ - 這是JM編解碼器實現的鏈接。 嘗試分離解碼過程的級別,例如包含NAL單元(SPS,PPS,SEI,IDR,SLICE等)的傳輸層。比你需要實現VLC引擎(主要是0範圍的exp-Golomb碼)。比非常困難和強大的編解碼器稱爲CABAC(上下文自適應算術二進制編解碼器)。這是非常棘手的任務。解複用過程(解包視頻數據之後)也很複雜。你需要完全理解這些模塊。 祝你好運。
輸入數據是代表h.264幀的字節數組。該幀由一個切片(不是多層幀)組成。 (這些是我的問題的限制) – stemm 2011-04-03 09:28:43
嘗試查看ISO/IEC 14496-15 – VitalyVal 2011-04-03 10:00:23
什麼是h.264m?我的意思是 - h.264m是H.264的一些擴展? – anatolyg 2011-04-03 11:05:00