2011-12-14 16 views
5

मुझे jpeg फ़ाइल को पार्स करने में समस्या है। जब मैंने एसओएस (स्कैन की शुरुआत) मार्कर मारा, तो कुछ बाइट्स हैं जिसका अर्थ है कि मुझे समझ में नहीं आता है। तस्वीर में, एसओएस के बाद, हेडर लम्बाई के लिए 2 बाइट्स हैं (चित्र पर एलएस हिस्सा)। लेकिन चित्र पर शेष डेटा का क्या मतलब है (उदाहरण के लिए एनएस, सीएस 1 इत्यादि ....), और जहां शुद्ध डेटा शुरू होता है? SOS jpeg file headerपार्सिंग जेपीईजी फ़ाइल, एसओएस मार्कर

उत्तर

4

CS1, एक घटक चयन सूचकांक है यह SOF खंड (जहां क्षैतिज और ऊर्ध्वाधर नमूना कारकों निर्दिष्ट कर रहे हैं)

TD1 वर्तमान घटक के लिए डीसी तालिका चयनकर्ता है वापस करने के लिए संदर्भित करता है (CS1)

Ta1 वर्तमान घटक के लिए एसी टेबल चयनकर्ता है (सीएस 1)

एसएस, से और आह, अल वर्तमान स्कैन डेटा के लिए वर्णक्रमीय चयन को परिभाषित करता है (इसका उपयोग प्रगतिशील बिटमैप्स में किया जाता है। प्रतिपादन के पहले दौर में, केवल अंतिम आवृत्तियों में अंतिम आवृत्तियों को दिखाया गया है, एमओ फिर से विस्तृत आवृत्तियों दिखाया जाता है)

स्कैन डेटा, अल

सारांश में के बाद शुरू होता है आपके उत्तर के लिए

SOS (2 bytes) 
Ls (2 Bytes) 
Ns (1 byte) 
Component Specific Parameters (Ns * 2 bytes) 
Ss (1 byte) 
Se (1 byte) 
Ah,AL (1 byte) 
... scan data ... 
+0

Thx, लेकिन घटक-विशिष्टता मापदंडों के अलावा मैं किसी अन्य बाइट्स की जरूरत मूल बनाने के लिए क्या तस्वीर (मैंने पहले ही हफमैन टेबल और कोड जेनरेट किए हैं, और क्वांटिज़ेशन टेबल पढ़े हैं) – MrD

+0

एक साधारण जेपीईजी के लिए, आपको ऊंचाई, चौड़ाई, क्षैतिज और ऊर्ध्वाधर नमूना कारकों, हफमैन टेबल, क्वांटिज़ेशन टेबल, मार्कर को पुनरारंभ करना (वैकल्पिक), सीएस 1, सीएस 2, सीएस 3 और निश्चित रूप से स्कैन डेटा स्वयं। एक प्रगतिशील jpg के लिए आपके पास एक से अधिक फ्रेम होंगे – Jimmy

+0

मुझे कैसे पता चलेगा कि यह प्रगतिशील है और सरल जेपीईजी और प्रगतिशील जेपीईजी के बीच क्या अंतर है? – MrD

संबंधित मुद्दे