You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

158 lines
5.9 KiB
C++

/**
* Copyright (c) 2012-2016 Moodstocks SAS
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#include "conf.h"
const uint8_t jpec_qzr[64] = {
16, 11, 10, 16, 24, 40, 51, 61,
12, 12, 14, 19, 26, 58, 60, 55,
14, 13, 16, 24, 40, 57, 69, 56,
14, 17, 22, 29, 51, 87, 80, 62,
18, 22, 37, 56, 68,109,103, 77,
24, 35, 55, 64, 81,104,113, 92,
49, 64, 78, 87,103,121,120,101,
72, 92, 95, 98,112,100,103, 99
};
const float jpec_dct[7] = {
0.49039, 0.46194, 0.41573, 0.35355,
0.27779, 0.19134, 0.09755
};
const int jpec_zz[64] = {
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
};
const uint8_t jpec_dc_nodes[17] = { 0,0,1,5,1,1,1,1,1,1,0,0,0,0,0,0,0 };
const int jpec_dc_nb_vals = 12; /* sum of dc_nodes */
const uint8_t jpec_dc_vals[12] = { 0,1,2,3,4,5,6,7,8,9,10,11 };
const uint8_t jpec_ac_nodes[17] = { 0,0,2,1,3,3,2,4,3,5,5,4,4,0,0,1,0x7d };
const int jpec_ac_nb_vals = 162; /* sum of ac_nodes */
const uint8_t jpec_ac_vals[162] = {
0x01,0x02,0x03,0x00,0x04,0x11,0x05,0x12, /* 0x00: EOB */
0x21,0x31,0x41,0x06,0x13,0x51,0x61,0x07,
0x22,0x71,0x14,0x32,0x81,0x91,0xa1,0x08,
0x23,0x42,0xb1,0xc1,0x15,0x52,0xd1,0xf0, /* 0xf0: ZRL */
0x24,0x33,0x62,0x72,0x82,0x09,0x0a,0x16,
0x17,0x18,0x19,0x1a,0x25,0x26,0x27,0x28,
0x29,0x2a,0x34,0x35,0x36,0x37,0x38,0x39,
0x3a,0x43,0x44,0x45,0x46,0x47,0x48,0x49,
0x4a,0x53,0x54,0x55,0x56,0x57,0x58,0x59,
0x5a,0x63,0x64,0x65,0x66,0x67,0x68,0x69,
0x6a,0x73,0x74,0x75,0x76,0x77,0x78,0x79,
0x7a,0x83,0x84,0x85,0x86,0x87,0x88,0x89,
0x8a,0x92,0x93,0x94,0x95,0x96,0x97,0x98,
0x99,0x9a,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,
0xa8,0xa9,0xaa,0xb2,0xb3,0xb4,0xb5,0xb6,
0xb7,0xb8,0xb9,0xba,0xc2,0xc3,0xc4,0xc5,
0xc6,0xc7,0xc8,0xc9,0xca,0xd2,0xd3,0xd4,
0xd5,0xd6,0xd7,0xd8,0xd9,0xda,0xe1,0xe2,
0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0xea,
0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,
0xf9,0xfa
};
const uint8_t jpec_dc_len[12] = { 2,3,3,3,3,3,4,5,6,7,8,9 };
const int jpec_dc_code[12] = {
0x000,0x002,0x003,0x004,0x005,0x006,
0x00e,0x01e,0x03e,0x07e,0x0fe,0x1fe
};
const int8_t jpec_ac_len[256] = {
4, 2, 2, 3, 4, 5, 7, 8,
10,16,16, 0, 0, 0, 0, 0,
0, 4, 5, 7, 9,11,16,16,
16,16,16, 0, 0, 0, 0, 0,
0, 5, 8,10,12,16,16,16,
16,16,16, 0, 0, 0, 0, 0,
0, 6, 9,12,16,16,16,16,
16,16,16, 0, 0, 0, 0, 0,
0, 6,10,16,16,16,16,16,
16,16,16, 0, 0, 0, 0, 0,
0, 7,11,16,16,16,16,16,
16,16,16, 0, 0, 0, 0, 0,
0, 7,12,16,16,16,16,16,
16,16,16, 0, 0, 0, 0, 0,
0, 8,12,16,16,16,16,16,
16,16,16, 0, 0, 0, 0, 0,
0, 9,15,16,16,16,16,16,
16,16,16, 0, 0, 0, 0, 0,
0, 9,16,16,16,16,16,16,
16,16,16, 0, 0, 0, 0, 0,
0, 9,16,16,16,16,16,16,
16,16,16, 0, 0, 0, 0, 0,
0,10,16,16,16,16,16,16,
16,16,16, 0, 0, 0, 0, 0,
0,10,16,16,16,16,16,16,
16,16,16, 0, 0, 0, 0, 0,
0,11,16,16,16,16,16,16,
16,16,16, 0, 0, 0, 0, 0,
0,16,16,16,16,16,16,16,
16,16,16, 0, 0, 0, 0, 0,
11,16,16,16,16,16,16,16,
16,16,16, 0, 0, 0, 0, 0
};
const int jpec_ac_code[256] = {
0x000a,0x0000,0x0001,0x0004,0x000b,0x001a,0x0078,0x00f8,
0x03f6,0xff82,0xff83,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x000c,0x001b,0x0079,0x01f6,0x07f6,0xff84,0xff85,
0xff86,0xff87,0xff88,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x001c,0x00f9,0x03f7,0x0ff4,0xff89,0xff8a,0xff8b,
0xff8c,0xff8d,0xff8e,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x003a,0x01f7,0x0ff5,0xff8f,0xff90,0xff91,0xff92,
0xff93,0xff94,0xff95,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x003b,0x03f8,0xff96,0xff97,0xff98,0xff99,0xff9a,
0xff9b,0xff9c,0xff9d,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x007a,0x07f7,0xff9e,0xff9f,0xffa0,0xffa1,0xffa2,
0xffa3,0xffa4,0xffa5,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x007b,0x0ff6,0xffa6,0xffa7,0xffa8,0xffa9,0xffaa,
0xffab,0xffac,0xffad,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x00fa,0x0ff7,0xffae,0xffaf,0xffb0,0xffb1,0xffb2,
0xffb3,0xffb4,0xffb5,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x01f8,0x7fc0,0xffb6,0xffb7,0xffb8,0xffb9,0xffba,
0xffbb,0xffbc,0xffbd,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x01f9,0xffbe,0xffbf,0xffc0,0xffc1,0xffc2,0xffc3,
0xffc4,0xffc5,0xffc6,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x01fa,0xffc7,0xffc8,0xffc9,0xffca,0xffcb,0xffcc,
0xffcd,0xffce,0xffcf,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x03f9,0xffd0,0xffd1,0xffd2,0xffd3,0xffd4,0xffd5,
0xffd6,0xffd7,0xffd8,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x03fa,0xffd9,0xffda,0xffdb,0xffdc,0xffdd,0xffde,
0xffdf,0xffe0,0xffe1,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x07f8,0xffe2,0xffe3,0xffe4,0xffe5,0xffe6,0xffe7,
0xffe8,0xffe9,0xffea,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0xffeb,0xffec,0xffed,0xffee,0xffef,0xfff0,0xfff1,
0xfff2,0xfff3,0xfff4,0x0000,0x0000,0x0000,0x0000,0x0000,
0x07f9,0xfff5,0xfff6,0xfff7,0xfff8,0xfff9,0xfffa,0xfffb,
0xfffc,0xfffd,0xfffe,0x0000,0x0000,0x0000,0x0000,0x0000
};