//     - component 1 uses DC table 0 and AC table 0 "\x01\x00",
 //     - component 2 uses DC table 1 and AC table 1 "\x02\x11",
 //     - component 3 uses DC table 1 and AC table 1 "\x03\x11",
-//     - padding "\x00\x00\x00".
+//     - the bytes "\x00\x3f\x00". Section B.2.3 of the spec says that for
+//       sequential DCTs, those bytes (8-bit Ss, 8-bit Se, 4-bit Ah, 4-bit Al)
+//       should be 0x00, 0x3f, 0x00<<4 | 0x00.
 var sosHeader = []byte{
        0xff, 0xda, 0x00, 0x0c, 0x03, 0x01, 0x00, 0x02,
-       0x11, 0x03, 0x11, 0x00, 0x00, 0x00,
+       0x11, 0x03, 0x11, 0x00, 0x3f, 0x00,
 }
 
 // writeSOS writes the StartOfScan marker.