quantization tables - 2
// first two bits are marker
// next two are length
// next is the destination - 00 or 01
// can swap 01 and 00
// rest is the quantization table itself
// can be changed to whatever
huffman tables - probably 4
// 2 bits for marker
// 2 bits for size
// 1 bit for table ID - either 01 or 00
// 16 bits - list bits, can't modifify
// remaining bits - can be modified
// if table ID is 0, can be between 0F and 00
// if table ID is 1, table ID can be between 00 and FF
image data
// breaking into x sized chunks, reordering / repeating
SOS marker
// 2 bits for marker
// 2 bits for size
// 1 bit for number of components
// components - selector # and huffman table selection
// can swap selector numbers between 01 and number of tables, non repeating
// 2 bytes before end - beginning and end of spectral selection
quantization tables - 2 // first two bits are marker // next two are length // next is the destination - 00 or 01 // can swap 01 and 00 // rest is the quantization table itself // can be changed to whatever
huffman tables - probably 4 // 2 bits for marker // 2 bits for size // 1 bit for table ID - either 01 or 00 // 16 bits - list bits, can't modifify // remaining bits - can be modified // if table ID is 0, can be between 0F and 00 // if table ID is 1, table ID can be between 00 and FF
image data // breaking into x sized chunks, reordering / repeating
SOS marker // 2 bits for marker // 2 bits for size // 1 bit for number of components // components - selector # and huffman table selection // can swap selector numbers between 01 and number of tables, non repeating // 2 bytes before end - beginning and end of spectral selection