1 /* 2 * Sunplus JPEG tables 3 * Copyright (c) 2003 The FFmpeg project 4 * 5 * This file is part of FFmpeg. 6 * 7 * FFmpeg is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU Lesser General Public 9 * License as published by the Free Software Foundation; either 10 * version 2.1 of the License, or (at your option) any later version. 11 * 12 * FFmpeg is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 * Lesser General Public License for more details. 16 * 17 * You should have received a copy of the GNU Lesser General Public 18 * License along with FFmpeg; if not, write to the Free Software 19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 20 */ 21 22 #ifndef AVCODEC_SP5X_H 23 #define AVCODEC_SP5X_H 24 25 #include <stdint.h> 26 27 static const uint8_t sp5x_data_sof[] = 28 { 29 0xFF, 0xC0, /* SOF */ 30 0x00, 0x11, /* len */ 31 0x08, /* bits */ 32 0x00, 0xf0, /* height (default: 240) */ 33 0x01, 0x40, /* width (default: 240) */ 34 0x03, /* nb components */ 35 0x01, 0x22, 0x00, /* 21 vs 22 ? */ 36 0x02, 0x11, 0x01, 37 0x03, 0x11, 0x01 38 }; 39 40 static const uint8_t sp5x_data_sos[] = 41 { 42 0xFF, 0xDA, /* SOS */ 43 0x00, 0x0C, /* len */ 44 0x03, /* nb components */ 45 0x01, 0x00, 46 0x02, 0x11, 47 0x03, 0x11, 48 0x00, /* Ss */ 49 0x3F, /* Se */ 50 0x00 /* Ah/Al */ 51 }; 52 53 static const uint8_t sp5x_data_dqt[] = 54 { 55 0xFF, 0xDB, /* DQT */ 56 0x00, 0x84, /* len */ 57 0x00, 58 0x05, 0x03, 0x04, 0x04, 0x04, 0x03, 0x05, 0x04, 59 0x04, 0x04, 0x06, 0x05, 0x05, 0x06, 0x08, 0x0D, 60 0x08, 0x08, 0x07, 0x07, 0x08, 0x10, 0x0C, 0x0C, 61 0x0A, 0x0D, 0x14, 0x11, 0x15, 0x14, 0x13, 0x11, 62 0x13, 0x13, 0x16, 0x18, 0x1F, 0x1A, 0x16, 0x17, 63 0x1E, 0x17, 0x13, 0x13, 0x1B, 0x25, 0x1C, 0x1E, 64 0x20, 0x21, 0x23, 0x23, 0x23, 0x15, 0x1A, 0x27, 65 0x29, 0x26, 0x22, 0x29, 0x1F, 0x22, 0x23, 0x22, 66 0x01, 67 0x05, 0x06, 0x06, 0x08, 0x07, 0x08, 0x10, 0x08, 68 0x08, 0x10, 0x22, 0x16, 0x13, 0x16, 0x22, 0x22, 69 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 70 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 71 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 72 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 73 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 74 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22 75 }; 76 77 static const uint8_t sp5x_data_dht[] = { 78 0xFF, 0xC4, /* DHT */ 79 0x01, 0xA2, /* len */ 80 0x00, 0x00, 0x01, 0x05, 0x01, 0x01, 0x01, 0x01, 81 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 82 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 83 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x01, 0x00, 0x03, 84 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 85 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 86 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 87 0x0A, 0x0B, 0x10, 0x00, 0x02, 0x01, 0x03, 0x03, 88 0x02, 0x04, 0x03, 0x05, 0x05, 0x04, 0x04, 0x00, 89 0x00, 0x01, 0x7D, 0x01, 0x02, 0x03, 0x00, 0x04, 90 0x11, 0x05, 0x12, 0x21, 0x31, 0x41, 0x06, 0x13, 91 0x51, 0x61, 0x07, 0x22, 0x71, 0x14, 0x32, 0x81, 92 0x91, 0xA1, 0x08, 0x23, 0x42, 0xB1, 0xC1, 0x15, 93 0x52, 0xD1, 0xF0, 0x24, 0x33, 0x62, 0x72, 0x82, 94 0x09, 0x0A, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x25, 95 0x26, 0x27, 0x28, 0x29, 0x2A, 0x34, 0x35, 0x36, 96 0x37, 0x38, 0x39, 0x3A, 0x43, 0x44, 0x45, 0x46, 97 0x47, 0x48, 0x49, 0x4A, 0x53, 0x54, 0x55, 0x56, 98 0x57, 0x58, 0x59, 0x5A, 0x63, 0x64, 0x65, 0x66, 99 0x67, 0x68, 0x69, 0x6A, 0x73, 0x74, 0x75, 0x76, 100 0x77, 0x78, 0x79, 0x7A, 0x83, 0x84, 0x85, 0x86, 101 0x87, 0x88, 0x89, 0x8A, 0x92, 0x93, 0x94, 0x95, 102 0x96, 0x97, 0x98, 0x99, 0x9A, 0xA2, 0xA3, 0xA4, 103 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xB2, 0xB3, 104 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xC2, 105 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 106 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 107 0xDA, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 108 0xE8, 0xE9, 0xEA, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 109 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0x11, 0x00, 0x02, 110 0x01, 0x02, 0x04, 0x04, 0x03, 0x04, 0x07, 0x05, 111 0x04, 0x04, 0x00, 0x01, 0x02, 0x77, 0x00, 0x01, 112 0x02, 0x03, 0x11, 0x04, 0x05, 0x21, 0x31, 0x06, 113 0x12, 0x41, 0x51, 0x07, 0x61, 0x71, 0x13, 0x22, 114 0x32, 0x81, 0x08, 0x14, 0x42, 0x91, 0xA1, 0xB1, 115 0xC1, 0x09, 0x23, 0x33, 0x52, 0xF0, 0x15, 0x62, 116 0x72, 0xD1, 0x0A, 0x16, 0x24, 0x34, 0xE1, 0x25, 117 0xF1, 0x17, 0x18, 0x19, 0x1A, 0x26, 0x27, 0x28, 118 0x29, 0x2A, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 119 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 120 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 121 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 122 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 123 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 124 0x8A, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 125 0x99, 0x9A, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 126 0xA8, 0xA9, 0xAA, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 127 0xB7, 0xB8, 0xB9, 0xBA, 0xC2, 0xC3, 0xC4, 0xC5, 128 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xD2, 0xD3, 0xD4, 129 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xE2, 0xE3, 130 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xF2, 131 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA 132 }; 133 134 135 static const uint8_t sp5x_qscale_five_quant_table[][64]= 136 { 137 /* index 5, Q60 */ 138 { 13, 9, 10, 11, 10, 8, 13, 11, 10, 11, 14, 14, 13, 15, 19, 32, 139 21, 19, 18, 18, 19, 39, 28, 30, 23, 32, 46, 41, 49, 48, 46, 41, 140 45, 44, 51, 58, 74, 62, 51, 54, 70, 55, 44, 45, 64, 87, 65, 70, 141 76, 78, 82, 83, 82, 50, 62, 90, 97, 90, 80, 96, 74, 81, 82, 79 }, 142 { 14, 14, 14, 19, 17, 19, 38, 21, 21, 38, 79, 53, 45, 53, 79, 79, 143 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 144 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 145 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79 }, 146 }; 147 148 #endif /* AVCODEC_SP5X_H */ 149