2011-12-14 14 views
5

Sto riscontrando problemi con l'analisi del file jpeg. Quando premo il marker SOS (inizio della scansione), ci sono pochi byte che significano che non capisco. Nella figura sotto, dopo il marcatore SOS, ci sono 2 byte per la lunghezza dell'intestazione (parte Ls sull'immagine). Ma cosa significa il resto dei dati sulla foto (ad esempio Ns, Cs1 ecc ....) e dove iniziano i dati puri? SOS jpeg file headerFile jpeg di analisi, indicatore SOS

risposta

4

CS1 è un indice di selezione componenti, questo rinvia alla sezione SOF (dove sono specificati fattori campionamento orizzontale e verticale)

Td1 è il selettore tavolo CC del componente corrente (CS1)

Ta1 è il selettore di tabella CA per il componente corrente (Cs1)

Ss, Se e Ah, Al definiscono la selezione spettrale per i dati di scansione correnti (utilizzato in bitmap progressivi.) Nel primo ciclo di rendering, solo vengono mostrate le frequenze più basse, nel round finale, mo re frequenze dettagliate sono visualizzate)

I dati di scansione inizia dopo Al

In sintesi,

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 per la risposta, ma ad eccezione dei parametri Component-Specification devo qualsiasi altro byte per rendere originale immagine (Ho già generato tabelle e codici Huffman e leggi tabelle di quantizzazione) – MrD

+0

Per un semplice jpeg, avrai bisogno di fattori di campionamento altezza, larghezza, orizzonte e verticale, tabelle huffman, tabelle di quantizzazione, marker di riavvio (opzionale), Cs1, Cs2, Cs3 e, naturalmente, i dati di scansione stessa. Per un jpg progressivo avrai più di un frame – Jimmy

+0

come faccio a sapere che è progressivo e che differenza c'è tra il semplice jpeg e il jpeg progressivo? – MrD