2011-04-13 120 views
2

我正在使用C#和一個支持YUY2或MJPG圖像格式的USB攝像頭。到目前爲止,我一直在YUY2模式下工作,並且工作正常。最近我嘗試將格式更改爲MJPG,認爲它將爲我的程序每幀捕捉一個JPEG圖像。這似乎幾乎這樣做。當我嘗試顯示緩衝區時,我的應用程序總是會有一個模糊的異常,但似乎表明該流是無效的。然後我將其中一個緩衝區複製到一個文件中,並試圖用IrfanView查看它,並告訴我沒有huffman表。用二進制編輯器查看緩衝區,我發現它具有SOI和EOF JPEG標記(以及其他幾個)。但是,它不包含huffman表格標記。任何想法我在這裏做錯了嗎?我讀過一些關於JPEG的內容,顯然有些情況下圖像可以使用標準的哈夫曼表來減小文件大小;然而,如果是這樣的話,我該如何將它插入圖像中(如果適用)? 順便說一句,這是參考微軟Lifecam。攝像頭與MJPG圖像格式

回答

3

AVI文件的Motion-JPEG標準的一部分是使用固定的霍夫曼表,因此它不必存儲在每一幀中。

+0

對不起,遲到的迴應;顯然我忘了檢查「通知我與答覆」。 :-(必須有一種方法可以將默認的哈夫曼表插入JPEG圖像,以便我可以查看該圖像嗎? – 2011-06-20 15:39:29

+0

是的,您可以將霍夫曼表插入MJPEG數據流中。所有JPEG標記都是可移動的並且不要在文件中使用絕對偏移量。 – BitBank 2011-06-21 02:42:13