1 2 module matrix; 3 4 immutable ubyte[64][2] SCAN_MATRIX = 5 [ 6 [ 7 /* Zig-Zag scan pattern */ 8 00, 1, 8, 16, 9, 2, 3, 10, 9 17, 24, 32, 25, 18, 11, 4, 5, 10 12, 19, 26, 33, 40, 48, 41, 34, 11 27, 20, 13, 6, 7, 14, 21, 28, 12 35, 42, 49, 56, 57, 50, 43, 36, 13 29, 22, 15, 23, 30, 37, 44, 51, 14 58, 59, 52, 45, 38, 31, 39, 46, 15 53, 60, 61, 54, 47, 55, 62, 63, 16 ], 17 [ 18 /* Alternate scan pattern */ 19 00, 8, 16, 24, 1, 9, 2, 10, 20 17, 25, 32, 40, 48, 56, 57, 49, 21 41, 33, 26, 18, 3, 11, 4, 12, 22 19, 27, 34, 42, 50, 58, 35, 43, 23 51, 59, 20, 28, 5, 13, 6, 14, 24 21, 29, 36, 44, 52, 60, 37, 45, 25 53, 61, 22, 30, 7, 15, 23, 31, 26 38, 46, 54, 62, 39, 47, 55, 63, 27 ] 28 ]; 29 30 immutable ubyte[64][4] DEFAULT_QUANT_MATRIX = 31 [ 32 [ 33 08, 16, 19, 22, 26, 27, 29, 34, 34 16, 16, 22, 24, 27, 29, 34, 37, 35 19, 22, 26, 27, 29, 34, 34, 38, 36 22, 22, 26, 27, 29, 34, 37, 40, 37 22, 26, 27, 29, 32, 35, 40, 48, 38 26, 27, 29, 32, 35, 40, 48, 58, 39 26, 27, 29, 34, 38, 46, 56, 69, 40 27, 29, 35, 38, 46, 56, 69, 83, 41 ], 42 [ 43 16, 16, 16, 16, 16, 16, 16, 16, 44 16, 16, 16, 16, 16, 16, 16, 16, 45 16, 16, 16, 16, 16, 16, 16, 16, 46 16, 16, 16, 16, 16, 16, 16, 16, 47 16, 16, 16, 16, 16, 16, 16, 16, 48 16, 16, 16, 16, 16, 16, 16, 16, 49 16, 16, 16, 16, 16, 16, 16, 16, 50 16, 16, 16, 16, 16, 16, 16, 16, 51 ], 52 [ 53 08, 16, 19, 22, 26, 27, 29, 34, 54 16, 16, 22, 24, 27, 29, 34, 37, 55 19, 22, 26, 27, 29, 34, 34, 38, 56 22, 22, 26, 27, 29, 34, 37, 40, 57 22, 26, 27, 29, 32, 35, 40, 48, 58 26, 27, 29, 32, 35, 40, 48, 58, 59 26, 27, 29, 34, 38, 46, 56, 69, 60 27, 29, 35, 38, 46, 56, 69, 83, 61 ], 62 [ 63 16, 16, 16, 16, 16, 16, 16, 16, 64 16, 16, 16, 16, 16, 16, 16, 16, 65 16, 16, 16, 16, 16, 16, 16, 16, 66 16, 16, 16, 16, 16, 16, 16, 16, 67 16, 16, 16, 16, 16, 16, 16, 16, 68 16, 16, 16, 16, 16, 16, 16, 16, 69 16, 16, 16, 16, 16, 16, 16, 16, 70 16, 16, 16, 16, 16, 16, 16, 16, 71 ], 72 ]; 73 74 // Table 7-4 75 immutable ubyte[] INTRA_DC_MULT = [8, 4, 2, 1]; 76 77 // Table 7-6 78 immutable ubyte[32][2] QUANTISER_SCALE_MATRIX = 79 [ 80 [0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62], 81 [1,2,3,4,5,6,7,8,10,12,14,16,18,20,22,24,28,32,36,40,44,48,52,56,64,72,80,88,96,104,112], 82 ]; 83 84 immutable ushort[4] DCT_PRED_DEFAULT = [128, 256, 512, 1024];