package uk.co.mmscomputing.imageio.jpeg; public interface JPEGConstants{ // [1] p.32 // 'byte stuffing' = 0x0000; static final int TEM = 0x0001; // Temporary private use in arithmetic coding // Reserved 0x0002 - 0x00BF static final int SOF0 = 0x00C0; // Start of Frame BaseLine sequential DCT, non differential, Huffman coding static final int SOF1 = 0x00C1; // Start of Frame Extended sequential DCT, non differential, Huffman coding static final int SOF2 = 0x00C2; // Start of Frame Progressive DCT, non differential, Huffman coding static final int SOF3 = 0x00C3; // Start of Frame Lossless sequential, non differential, Huffman coding static final int DHT = 0x00C4; // Define Huffman Tables static final int SOF5 = 0x00C5; // Start of Frame Sequential DCT, differential, Huffman coding static final int SOF6 = 0x00C6; // Start of Frame Progressive DCT, differential, Huffman coding static final int SOF7 = 0x00C7; // Start of Frame Lossless sequential, differential, Huffman coding static final int JPG = 0x00C8; // JPEG Extensions static final int SOF9 = 0x00C9; // Start of Frame Extended sequential DCT, non differential, arithmetic coding static final int SOF10 = 0x00CA; // Start of Frame Progressive DCT, non differential, arithmetic coding static final int SOF11 = 0x00CB; // Start of Frame Lossless sequential, non differential, arithmetic coding static final int DAC = 0x00CC; // Define Arithmetic Conditioning static final int SOF13 = 0x00CD; // Start of Frame Extended sequential DCT, differential, arithmetic coding static final int SOF14 = 0x00CE; // Start of Frame Progressive DCT, differential, arithmetic coding static final int SOF15 = 0x00CF; // Start of Frame Lossless sequential, differential, arithmetic coding static final int RST0 = 0x00D0; // Restart Interval Termination static final int RST1 = 0x00D1; // Restart Interval Termination static final int RST2 = 0x00D2; // Restart Interval Termination static final int RST3 = 0x00D3; // Restart Interval Termination static final int RST4 = 0x00D4; // Restart Interval Termination static final int RST5 = 0x00D5; // Restart Interval Termination static final int RST6 = 0x00D6; // Restart Interval Termination static final int RST7 = 0x00D7; // Restart Interval Termination static final int SOI = 0x00D8; // Start Of Image static final int EOI = 0x00D9; // End Of Image static final int SOS = 0x00DA; // Start of Scan static final int DQT = 0x00DB; // Define Quantization Tables static final int DNL = 0x00DC; // Define Number of Lines static final int DRI = 0x00DD; // Define Restart Interval static final int DHP = 0x00DE; // Define hierarchical progression static final int EXP = 0x00DF; // Expand reference component(s) static final int APP0 = 0x00E0; // Application JFIF, EXIF ? static final int APP1 = 0x00E1; // Application static final int APP2 = 0x00E2; // Application static final int APP3 = 0x00E3; // Application static final int APP4 = 0x00E4; // Application static final int APP5 = 0x00E5; // Application static final int APP6 = 0x00E6; // Application static final int APP7 = 0x00E7; // Application static final int APP8 = 0x00E8; // Application static final int APP9 = 0x00E9; // Application static final int APP10 = 0x00EA; // Application static final int APP11 = 0x00EB; // Application static final int APP12 = 0x00EC; // Application static final int APP13 = 0x00ED; // Application static final int APP14 = 0x00EE; // Application Adobe ? static final int APP15 = 0x00EF; // Application static final int JPG0 = 0x00F0; // JPEG Extensions static final int JPG1 = 0x00F1; // JPEG Extensions static final int JPG2 = 0x00F2; // JPEG Extensions static final int JPG3 = 0x00F3; // JPEG Extensions static final int JPG4 = 0x00F4; // JPEG Extensions static final int JPG5 = 0x00F5; // JPEG Extensions static final int JPG6 = 0x00F6; // JPEG Extensions static final int JPG7 = 0x00F7; // JPEG Extensions static final int JPG8 = 0x00F8; // JPEG Extensions static final int JPG9 = 0x00F9; // JPEG Extensions static final int JPG10 = 0x00FA; // JPEG Extensions static final int JPG11 = 0x00FB; // JPEG Extensions static final int JPG12 = 0x00FC; // JPEG Extensions static final int JPG13 = 0x00FD; // JPEG Extensions static final int COM = 0x00FE; // Comment static final int MARK = 0x00FF; static final int DCTSize = 8; static final int DCTBlockSize = 64; static final int[] ZigZagTable={ // [1] p.30 0, 1, 5, 6,14,15,27,28, 2, 4, 7,13,16,26,29,42, 3, 8,12,17,25,30,41,43, 9,11,18,24,31,40,44,53, 10,19,23,32,39,45,52,54, 20,22,33,38,46,51,55,60, 21,34,37,47,50,56,59,61, 35,36,48,49,57,58,62,63 }; static final int[] IZigZagTable={ 0, 1, 8,16, 9, 2, 3,10, 17,24,32,25,18,11, 4, 5, 12,19,26,33,40,48,41,34, 27,20,13, 6, 7,14,21,28, 35,42,49,56,57,50,43,36, 29,22,15,23,30,37,44,51, 58,59,52,45,38,31,39,46, 53,60,61,54,47,55,62,63 }; public static final byte[] HLDCTable={ // Huffman Luminance DC Coefficients [1] p.158 0,1,5,1,1,1,1,1,1,0,0,0,0,0,0,0, // BITS 0,1,2,3,4,5,6,7,8,9,10,11 // HUFFVAL }; public static final byte[] HCDCTable={ // Huffman chrominance DC Coefficients [1] p.158 0,3,1,1,1,1,1,1,1,1,1,0,0,0,0,0, // BITS 0,1,2,3,4,5,6,7,8,9,10,11 // HUFFVAL }; public static final byte[] HLACTable={ // Huffman Luminance AC Coefficients [1] p.158 0,2,1,3,3,2,4,3,5,5,4,4,0,0,1,125, // BITS 1,2,3,0,4,17,5,18,33,49,65,6,19,81,97,7, // HUFFVAL 34,113,20,50,-127,-111,-95,8,35,66,-79,-63,21,82,-47,-16, 36,51,98,114,-126,9,10,22,23,24,25,26,37,38,39,40, 41,42,52,53,54,55,56,57,58,67,68,69,70,71,72,73, 74,83,84,85,86,87,88,89,90,99,100,101,102,103,104,105, 106,115,116,117,118,119,120,121,122,-125,-124,-123,-122,-121,-120,-119, -118,-110,-109,-108,-107,-106,-105,-104,-103,-102,-94,-93,-92,-91,-90,-89, -88,-87,-86,-78,-77,-76,-75,-74,-73,-72,-71,-70,-62,-61,-60,-59, -58,-57,-56,-55,-54,-46,-45,-44,-43,-42,-41,-40,-39,-38,-31,-30, -29,-28,-27,-26,-25,-24,-23,-22,-15,-14,-13,-12,-11,-10,-9,-8, -7,-6 }; public static final byte[] HCACTable={ // Huffman chrominance AC Coefficients [1] p.159 0,2,1,2,4,4,3,4,7,5,4,4,0,1,2,119, // BITS 0,1,2,3,17,4,5,33,49,6,18,65,81,7,97,113, // HUFFVAL 19,34,50,-127,8,20,66,-111,-95,-79,-63,9,35,51,82,-16, 21,98,114,-47,10,22,36,52,-31,37,-15,23,24,25,26,38, 39,40,41,42,53,54,55,56,57,58,67,68,69,70,71,72, 73,74,83,84,85,86,87,88,89,90,99,100,101,102,103,104, 105,106,115,116,117,118,119,120,121,122,-126,-125,-124,-123,-122,-121, -120,-119,-118,-110,-109,-108,-107,-106,-105,-104,-103,-102,-94,-93,-92,-91, -90,-89,-88,-87,-86,-78,-77,-76,-75,-74,-73,-72,-71,-70,-62,-61, -60,-59,-58,-57,-56,-55,-54,-46,-45,-44,-43,-42,-41,-40,-39,-38, -30,-29,-28,-27,-26,-25,-24,-23,-22,-14,-13,-12,-11,-10,-9,-8, -7,-6 }; public static final int[] LQT={ // [1]p.143 in zigzag order 16, 11, 12, 14, 12, 10, 16, 14, 13, 14, 18, 17, 16, 19, 24, 40, 26, 24, 22, 22, 24, 49, 35, 37, 29, 40, 58, 51, 61, 60, 57, 51, 56, 55, 64, 72, 92, 78, 64, 68, 87, 69, 55, 56, 80,109, 81, 87, 95, 98,103,104,103, 62, 77,113, 121,112,100,120, 92,101,103, 99 }; public static final int[] CQT={ 17,18,18,24,21,24,47,26, 26,47,99,66,56,66,99,99, 99,99,99,99,99,99,99,99, 99,99,99,99,99,99,99,99, 99,99,99,99,99,99,99,99, 99,99,99,99,99,99,99,99, 99,99,99,99,99,99,99,99, 99,99,99,99,99,99,99,99 }; public static final int[] LQT2={ 8, 6, 6, 7, 6, 5, 8, 7, 7, 7, 9, 9, 8,10,12,20, 13,12,11,11,12,25,18,19, 15,20,29,26,31,30,29,26, 28,28,32,36,46,39,32,34, 44,35,28,28,40,55,41,44, 48,49,52,52,52,31,39,57, 61,56,50,60,46,51,52,50 }; public static final int[] CQT2={ 9, 9, 9,12,11,12,24,13, 13,24,50,33,28,33,50,50, 50,50,50,50,50,50,50,50, 50,50,50,50,50,50,50,50, 50,50,50,50,50,50,50,50, 50,50,50,50,50,50,50,50, 50,50,50,50,50,50,50,50, 50,50,50,50,50,50,50,50 }; } // [1]'JPEG' : ISO/IEC IS 10918-1 // ITU-T Recommendation T.81 // http://www.w3.org/Graphics/JPEG/itu-t81.pdf