
BaseJpegDeocde exampe program
Dependencies: BaseJpegDecode Terminal BaseUsbHost mbed mbed-rtos
Fork of BaseJpegDecode by
Revision 3:2709bbf8baae, committed 2012-10-25
- Comitter:
- va009039
- Date:
- Thu Oct 25 11:02:17 2012 +0000
- Parent:
- 2:697ebeb8336f
- Child:
- 4:7d88de31c55a
- Commit message:
- support DQT
Changed in this revision
--- a/BaseJpegDecode.lib Mon Oct 22 14:10:04 2012 +0000 +++ b/BaseJpegDecode.lib Thu Oct 25 11:02:17 2012 +0000 @@ -1,1 +1,1 @@ -http://mbed.org/users/va009039/code/BaseJpegDecode/#417b7ae90eff +http://mbed.org/users/va009039/code/BaseJpegDecode/#bfbc18000cca
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Benchmark_data.h Thu Oct 25 11:02:17 2012 +0000 @@ -0,0 +1,320 @@ +#ifndef BENCHMARK_DATA_H +#define BENCHMARK_DATA_H + +// c270/cam0001.jpg 1830 +uint8_t c270_cam0001_jpg[] = { +0xff,0xd8,0xff,0xe0,0x00,0x21,0x41,0x56,0x49,0x31,0x00,0x01,0x01,0x01,0x00,0x78, +0x00,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0xff,0xdb,0x00,0x43,0x00,0x24,0x18,0x1b,0x1f,0x1b,0x16, +0x24,0x1f,0x1d,0x1f,0x28,0x26,0x24,0x2a,0x36,0x5a,0x3a,0x36,0x31,0x31,0x36,0x6e, +0x4e,0x53,0x41,0x5a,0x82,0x72,0x89,0x87,0x80,0x72,0x7e,0x8d,0x90,0xa2,0xcf,0xaf, +0x90,0x99,0xc3,0x9b,0x7b,0x7e,0xb4,0xea,0xb6,0xc3,0xd5,0xdc,0xe7,0xea,0xe7,0x8b, +0xad,0xfe,0x10,0xfc,0xe1,0x0e,0xcf,0xe3,0xe7,0xde,0xff,0xdb,0x00,0x43,0x01,0x26, +0x28,0x28,0x36,0x2f,0x36,0x69,0x3a,0x3a,0x69,0xde,0x94,0x7e,0x94,0xde,0xde,0xde, +0xde,0xde,0xde,0xde,0xde,0xde,0xde,0xde,0xde,0xde,0xde,0xde,0xde,0xde,0xde,0xde, +0xde,0xde,0xde,0xde,0xde,0xde,0xde,0xde,0xde,0xde,0xde,0xde,0xde,0xde,0xde,0xde, +0xde,0xde,0xde,0xde,0xde,0xde,0xde,0xde,0xde,0xde,0xde,0xde,0xde,0xde,0xde,0xff, +0xdd,0x00,0x04,0x00,0x0a,0xff,0xe0,0x00,0x04,0x00,0x00,0xff,0xc0,0x00,0x11,0x08, +0x00,0x78,0x00,0xa0,0x03,0x01,0x21,0x00,0x02,0x11,0x01,0x03,0x11,0x01,0xff,0xc4, +0x01,0xa2,0x00,0x00,0x01,0x05,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x01, +0x00,0x03,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00, +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x10,0x00,0x02,0x01, +0x03,0x03,0x02,0x04,0x03,0x05,0x05,0x04,0x04,0x00,0x00,0x01,0x7d,0x01,0x02,0x03, +0x00,0x04,0x11,0x05,0x12,0x21,0x31,0x41,0x06,0x13,0x51,0x61,0x07,0x22,0x71,0x14, +0x32,0x81,0x91,0xa1,0x08,0x23,0x42,0xb1,0xc1,0x15,0x52,0xd1,0xf0,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,0x11, +0x00,0x02,0x01,0x02,0x04,0x04,0x03,0x04,0x07,0x05,0x04,0x04,0x00,0x01,0x02,0x77, +0x00,0x01,0x02,0x03,0x11,0x04,0x05,0x21,0x31,0x06,0x12,0x41,0x51,0x07,0x61,0x71, +0x13,0x22,0x32,0x81,0x08,0x14,0x42,0x91,0xa1,0xb1,0xc1,0x09,0x23,0x33,0x52,0xf0, +0x15,0x62,0x72,0xd1,0x0a,0x16,0x24,0x34,0xe1,0x25,0xf1,0x17,0x18,0x19,0x1a,0x26, +0x27,0x28,0x29,0x2a,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,0x82,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, +0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0xea,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8, +0xf9,0xfa,0xff,0xda,0x00,0x0c,0x03,0x01,0x00,0x02,0x11,0x03,0x11,0x00,0x3f,0x00, +0xc8,0xa5,0xa0,0x05,0x14,0xb4,0x00,0xa2,0x9c,0xb4,0x0c,0x52,0x69,0xc2,0x80,0x14, +0x1a,0x70,0x34,0xc0,0x50,0x69,0xd9,0xa4,0x01,0x9a,0x4c,0xd0,0x02,0x66,0x93,0x34, +0x00,0x99,0xa6,0x93,0x40,0xc6,0x93,0x4d,0x26,0x81,0x1f,0xff,0xd0,0xc9,0xa2,0x80, +0x16,0x96,0x80,0x16,0x9c,0xbd,0x28,0x18,0x1a,0x70,0xa0,0x05,0xa5,0x14,0x00,0xb9, +0xa5,0xcd,0x00,0x19,0xe2,0x8c,0xd0,0x03,0x73,0x49,0x9a,0x00,0x4c,0xd2,0x66,0x80, +0x1a,0x4d,0x34,0xd0,0x07,0xff,0xd1,0xc9,0xa2,0x80,0x16,0x96,0x80,0x0a,0x70,0xa4, +0xc6,0x80,0xf5,0xa7,0x53,0x00,0xcd,0x38,0x50,0x01,0x9a,0x5c,0xd0,0x00,0x68,0xa0, +0x06,0xe6,0x93,0x34,0x80,0x4c,0xd2,0x66,0x80,0x1b,0x49,0x40,0x1f,0xff,0xd2,0xca, +0xa2,0x80,0x01,0x4b,0x40,0x0b,0x4e,0x1d,0x29,0x31,0x88,0x7a,0xd3,0x8d,0x00,0x25, +0x38,0x53,0x00,0xef,0x4b,0x9a,0x40,0x04,0xd2,0x66,0x80,0x12,0x9b,0x40,0x09,0x49, +0x40,0x05,0x25,0x00,0x7f,0xff,0xd3,0xcb,0xc5,0x18,0xa0,0x03,0x14,0xb4,0x00,0x53, +0xc0,0xe2,0x93,0x1a,0x1a,0x7a,0xd3,0x8f,0x5a,0x00,0x4e,0xf4,0xa2,0x98,0x0a,0x68, +0xa4,0x02,0x1a,0x28,0x01,0xb4,0x50,0x03,0x68,0xa0,0x04,0xa2,0x81,0x1f,0xff,0xd4, +0xcf,0xdb,0x46,0xda,0x00,0x4c,0x51,0x8a,0x00,0x4c,0x53,0xc0,0xe2,0x93,0x1a,0x1a, +0x7e,0xf5,0x2d,0x00,0x27,0x7a,0x5a,0x60,0x06,0x8e,0xf4,0x80,0x0d,0x25,0x00,0x25, +0x25,0x00,0x25,0x14,0xc4,0x25,0x25,0x00,0x7f,0xff,0xd5,0xd6,0x36,0xb0,0x30,0x00, +0xc2,0x9f,0x95,0x44,0xfa,0x75,0xab,0x7f,0x01,0x5f,0xa1,0xa4,0x22,0x17,0xd1,0xe2, +0x3f,0x76,0x46,0x1f,0x51,0x9a,0x81,0xf4,0x77,0xfe,0x09,0x14,0xfd,0x78,0xa2,0xe1, +0x72,0x07,0xd2,0xee,0x57,0xa2,0x06,0xfa,0x1a,0x85,0xed,0xa5,0x8f,0xef,0x46,0xc3, +0xea,0x28,0x1a,0x64,0x25,0x4e,0xea,0x08,0xa0,0x63,0x47,0x5a,0x5a,0x00,0x43,0x45, +0x00,0x06,0x92,0x80,0x12,0x8a,0x04,0x25,0x14,0xc0,0x43,0x49,0x40,0x1f,0xff,0xd6, +0xdc,0xa2,0x91,0x24,0x25,0x6e,0x07,0xdd,0x91,0x1b,0xfd,0xe5,0xa4,0xdf,0x72,0xbd, +0x62,0x46,0xff,0x00,0x75,0xb1,0xfc,0xe8,0x00,0xfb,0x43,0x8f,0xbf,0x6f,0x20,0xfa, +0x60,0xd1,0xf6,0xb8,0x47,0xde,0x2c,0xbf,0xef,0x29,0x14,0x00,0x13,0x6b,0x37,0x53, +0x13,0x93,0xeb,0x8c,0xd3,0x1f,0x4f,0xb5,0x7f,0xf9,0x67,0x83,0xec,0x68,0x19,0x8b, +0x7d,0x6e,0x2d,0xae,0x9a,0x35,0xce,0xde,0xab,0x9f,0x4a,0x82,0x82,0x90,0x86,0x9a, +0x4f,0x34,0x00,0x1a,0x4c,0xd0,0x20,0xa2,0x80,0x0a,0x43,0x4c,0x06,0x93,0x49,0x48, +0x0f,0xff,0xd7,0xdb,0x1d,0x29,0x69,0x12,0x14,0x52,0x01,0x09,0xa4,0xef,0x83,0x4d, +0x12,0xc8,0x5d,0x10,0xc7,0xbb,0x6a,0x96,0x03,0x20,0xe3,0xbd,0x58,0xa6,0xc2,0x2c, +0xca,0xd6,0xe3,0x3f,0xbb,0x94,0x0e,0x39,0x52,0x7f,0x97,0xf5,0xac,0x93,0xd6,0xa4, +0xd1,0x08,0x69,0x86,0x98,0x05,0x14,0x00,0x0a,0x51,0x4c,0x04,0x34,0xd3,0x48,0x04, +0xa4,0xa0,0x0f,0xff,0xd0,0xdb,0x5f,0xba,0x29,0x69,0x12,0x21,0xc7,0x5a,0x42,0x45, +0x02,0x76,0x02,0x47,0x1c,0xe2,0x98,0xc7,0x9e,0xb8,0x3e,0xf5,0x49,0x10,0xdf,0x62, +0x13,0xe9,0x9a,0xb1,0x09,0xcc,0x28,0x7d,0xb1,0x44,0x87,0x02,0x1d,0x41,0x77,0x5a, +0x9f,0x66,0x07,0xf5,0xac,0x96,0x0b,0xcf,0x1c,0xd4,0x1a,0x15,0x26,0xe1,0xdb,0xe9, +0x50,0xe6,0x9a,0x18,0xb4,0x0a,0x60,0x02,0x96,0x90,0x08,0x69,0xa6,0x80,0x1b,0x45, +0x00,0x7f,0xff,0xd1,0xdb,0x4f,0xb8,0x29,0x69,0x12,0x14,0x9b,0x45,0x17,0x06,0xae, +0x21,0x8c,0x1e,0xe6,0x9a,0xd1,0x67,0xbd,0x3e,0x62,0x79,0x11,0x1b,0x5b,0x93,0xd1, +0xff,0x00,0x4a,0x96,0x24,0x29,0x1e,0xd2,0x41,0xe4,0xd0,0xdd,0xc6,0x95,0x86,0xdc, +0x61,0xa0,0x75,0xff,0x00,0x64,0xd6,0x14,0xd2,0x84,0x93,0x6f,0x3c,0x75,0xf7,0xa2, +0xc3,0x4c,0xad,0x23,0x6f,0x24,0xf4,0xcd,0x30,0x00,0x01,0xcf,0x5a,0x06,0x1b,0x78, +0xcd,0x14,0x0c,0x4c,0xd1,0x9a,0x40,0x25,0x21,0xa0,0x06,0xd1,0x40,0x1f,0xff,0xd2, +0xd8,0x59,0x50,0x28,0x05,0xc6,0x71,0xeb,0x4e,0x0e,0xad,0xd1,0x81,0xa4,0x48,0x02, +0x3b,0xe2,0x94,0x90,0x69,0x0e,0xc1,0xc7,0xf9,0x34,0x9c,0x63,0xad,0x31,0x07,0x18, +0xeb,0x4d,0x73,0xb5,0x73,0x9a,0x69,0x8a,0xc4,0x5b,0xb3,0xc5,0x64,0x4b,0x08,0x91, +0xf2,0x08,0x04,0x75,0xcd,0x36,0x08,0xaf,0x32,0x79,0x7c,0x71,0xf8,0x54,0x25,0xb8, +0xfa,0x54,0xdc,0xa1,0x09,0xa4,0xcd,0x03,0x13,0x34,0x50,0x01,0x41,0xa0,0x62,0x52, +0x50,0x23,0xff,0xd3,0x7d,0xa4,0x8e,0x22,0x6c,0x31,0xce,0xef,0xe8,0x2a,0x68,0xe7, +0x6d,0xc7,0xcc,0x6c,0x8c,0x54,0x83,0x24,0xf3,0xd7,0xfb,0xc2,0x97,0xcf,0x5f,0xef, +0x0f,0xce,0x9d,0xd0,0x83,0xce,0x5f,0xef,0x0f,0xce,0x9c,0x27,0x1f,0xde,0x14,0xb4, +0x0d,0x43,0xcf,0x1e,0xa2,0x99,0x2c,0xe0,0x0e,0x30,0x4d,0x21,0x89,0x1b,0x96,0xc1, +0x59,0x61,0x19,0x1f,0x75,0x8f,0x22,0xa2,0x16,0x52,0xf9,0x85,0x84,0x88,0x41,0xed, +0x54,0x22,0x1b,0xad,0x3e,0x77,0x20,0xae,0xdc,0x01,0xef,0xfe,0x15,0x4d,0xb4,0xeb, +0x91,0xfc,0x19,0xfc,0x68,0xb0,0x5c,0x61,0xb2,0xb9,0x1d,0x62,0x3f,0x98,0xa6,0xfd, +0x96,0x71,0xff,0x00,0x2c,0xda,0x8b,0x05,0xd0,0xdf,0xb3,0xcd,0x9f,0xf5,0x4f,0xff, +0x00,0x7c,0x9a,0x3c,0x89,0x47,0x58,0x9f,0xfe,0xf9,0x34,0x0c,0x43,0x1b,0x8e,0xa8, +0xdf,0x95,0x1e,0x54,0x9f,0xdc,0x6f,0xca,0x81,0x8d,0x64,0x61,0xd5,0x48,0xfa,0x8a, +0x6d,0x02,0x3f,0xff,0xd4,0x9b,0x4b,0x94,0x23,0x49,0xe6,0x15,0x03,0x03,0x15,0x73, +0xed,0x90,0x7b,0x7e,0x94,0xed,0x76,0x45,0xec,0x1f,0x6a,0x80,0xf4,0x5c,0xfe,0x14, +0xbe,0x7c,0x3f,0xf3,0xcc,0xff,0x00,0xdf,0x34,0x72,0x87,0x30,0x86,0x7b,0x7e,0xf1, +0xff,0x00,0xe3,0x94,0x9e,0x7d,0xa9,0xff,0x00,0x96,0x43,0xfe,0xf8,0xa3,0x94,0x2e, +0x1e,0x65,0xa1,0xff,0x00,0x96,0x43,0xfe,0xf8,0x14,0x9b,0xed,0x07,0xfc,0xb3,0x1f, +0x90,0xa3,0x90,0x5c,0xc5,0x6b,0xc1,0x13,0x95,0x78,0x14,0x86,0x07,0x04,0x01,0xda, +0xac,0x5a,0xf4,0x15,0x32,0x56,0x2e,0x2e,0xe5,0xb0,0x05,0x18,0xac,0xca,0x0c,0x7b, +0xd2,0x15,0xf7,0x34,0xb5,0x11,0x01,0x73,0xea,0x7f,0x3a,0x42,0xc7,0xd5,0xbf,0xef, +0xa3,0x53,0x76,0x5d,0x90,0xd2,0xc7,0xfb,0xcd,0xf9,0xd2,0x79,0x8f,0xfd,0xe3,0x45, +0xc0,0x69,0x95,0xff,0x00,0xbc,0x69,0x8c,0xc4,0xf5,0xc1,0xfa,0x8a,0x77,0x03,0xff, +0xd5,0x69,0xb4,0xb8,0x8c,0xfc,0xd1,0x31,0x1e,0xa3,0x9a,0xb9,0x60,0x57,0x0c,0x1d, +0x87,0xb0,0x22,0x86,0xf4,0xd0,0x9b,0x6a,0x5d,0x1e,0x5e,0x3a,0x0f,0xca,0x8f,0xdd, +0xff,0x00,0x74,0xff,0x00,0xdf,0x06,0xa2,0xcc,0x77,0x42,0xee,0x4e,0xca,0xdf,0xf7, +0xc1,0xa3,0x70,0xec,0x8d,0xf9,0x51,0x60,0xb8,0xb9,0xff,0x00,0xa6,0x67,0xf4,0xa4, +0x24,0x0f,0xf9,0x67,0xfc,0xa9,0xd8,0x0a,0x97,0xd2,0x7e,0xef,0x6a,0xa8,0xcb,0x1c, +0x70,0x41,0x34,0x96,0xe0,0xa6,0x32,0x0d,0x4b,0x29,0x17,0x15,0x87,0xad,0x3b,0x35, +0x20,0xd0,0xb4,0x50,0x22,0xab,0x75,0x34,0xd3,0x50,0x58,0xda,0x43,0x40,0xc6,0x93, +0x4c,0x26,0x98,0x8f,0xff,0xd9}; + +// vx700/cam0001.jpg 3104 +uint8_t vx700_cam0001_jpg[] = { +0xff,0xd8,0xff,0xc0,0x00,0x11,0x08,0x00,0x78,0x00,0xa0,0x03,0x01,0x21,0x00,0x02, +0x11,0x01,0x03,0x11,0x01,0xff,0xdb,0x00,0x84,0x00,0x0d,0x08,0x08,0x0d,0x08,0x08, +0x0d,0x0d,0x0d,0x0d,0x11,0x0d,0x0d,0x11,0x15,0x23,0x15,0x15,0x11,0x11,0x15,0x2b, +0x1e,0x1e,0x19,0x23,0x34,0x2b,0x34,0x34,0x2f,0x2b,0x2f,0x2f,0x39,0x3c,0x4e,0x45, +0x39,0x3c,0x4a,0x3c,0x2f,0x2f,0x45,0x60,0x45,0x4a,0x52,0x57,0x5b,0x5b,0x5b,0x34, +0x41,0x63,0x68,0x60,0x57,0x68,0x4e,0x57,0x5b,0x57,0x01,0x0d,0x11,0x11,0x15,0x11, +0x15,0x27,0x15,0x15,0x27,0x57,0x39,0x2f,0x39,0x57,0x57,0x57,0x57,0x57,0x57,0x57, +0x57,0x57,0x57,0x57,0x57,0x57,0x57,0x57,0x57,0x57,0x57,0x57,0x57,0x57,0x57,0x57, +0x57,0x57,0x57,0x57,0x57,0x57,0x57,0x57,0x57,0x57,0x57,0x57,0x57,0x57,0x57,0x57, +0x57,0x57,0x57,0x57,0x57,0x57,0x57,0x57,0x57,0x57,0x57,0xff,0xc4,0x01,0xa2,0x00, +0x00,0x01,0x05,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x01,0x00,0x03,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02, +0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x10,0x00,0x02,0x01,0x03,0x03,0x02, +0x04,0x03,0x05,0x05,0x04,0x04,0x00,0x00,0x01,0x7d,0x01,0x02,0x03,0x00,0x04,0x11, +0x05,0x12,0x21,0x31,0x41,0x06,0x13,0x51,0x61,0x07,0x22,0x71,0x14,0x32,0x81,0x91, +0xa1,0x08,0x23,0x42,0xb1,0xc1,0x15,0x52,0xd1,0xf0,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,0x11,0x00,0x02,0x01, +0x02,0x04,0x04,0x03,0x04,0x07,0x05,0x04,0x04,0x00,0x01,0x02,0x77,0x00,0x01,0x02, +0x03,0x11,0x04,0x05,0x21,0x31,0x06,0x12,0x41,0x51,0x07,0x61,0x71,0x13,0x22,0x32, +0x81,0x08,0x14,0x42,0x91,0xa1,0xb1,0xc1,0x09,0x23,0x33,0x52,0xf0,0x15,0x62,0x72, +0xd1,0x0a,0x16,0x24,0x34,0xe1,0x25,0xf1,0x17,0x18,0x19,0x1a,0x26,0x27,0x28,0x29, +0x2a,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,0x82,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,0xe2,0xe3,0xe4, +0xe5,0xe6,0xe7,0xe8,0xe9,0xea,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xff, +0xda,0x00,0x0c,0x03,0x01,0x00,0x02,0x11,0x03,0x11,0x00,0x00,0x00,0xe2,0x23,0xb8, +0x0a,0x1b,0x72,0xee,0x24,0x71,0x83,0x8c,0x56,0x93,0x6d,0xf1,0x1c,0xd6,0x56,0xf0, +0xaf,0x91,0x70,0x90,0x88,0x15,0x5b,0x94,0x6c,0x16,0x62,0xc4,0x8e,0x46,0x73,0xd3, +0x07,0xeb,0x4e,0x4b,0x5b,0x89,0x19,0x20,0x10,0xd8,0x23,0x07,0xd2,0xa4,0x1f,0x85, +0x03,0x1c,0x3a,0x7f,0x81,0xa6,0x3f,0xde,0xa0,0x00,0x52,0x8a,0x60,0x28,0xa5,0xa0, +0x02,0x96,0x80,0x16,0x8c,0xd0,0x01,0x9a,0x33,0x40,0x0a,0x1b,0x14,0xbe,0x65,0x02, +0x10,0x9c,0x9a,0x4c,0xd0,0x05,0x77,0x20,0x9e,0x39,0xc5,0x6a,0x78,0x51,0x4b,0x6b, +0xd6,0xa5,0x73,0xc3,0x13,0xc7,0xd0,0xd2,0x7f,0x0b,0x1a,0xdc,0xa9,0xa9,0xa0,0x8f, +0x55,0xbb,0x50,0x30,0x16,0x67,0x00,0x7f,0xc0,0x8d,0x44,0x3f,0x1a,0x10,0x96,0xc3, +0x87,0x27,0xff,0x00,0xad,0x51,0xb9,0xcb,0x1f,0xe9,0x40,0xc2,0x94,0x50,0x02,0x8a, +0x51,0x40,0x0b,0x46,0x69,0x80,0xb4,0x66,0x80,0x0c,0xd1,0x9a,0x00,0x33,0x46,0x68, +0x00,0xcd,0x19,0xa0,0x08,0x42,0x86,0x6c,0x03,0xc7,0xa9,0x15,0xd1,0xf8,0x2a,0xcd, +0x46,0xa8,0x24,0x2f,0x92,0x10,0xe0,0x0f,0xeb,0x51,0x36,0xed,0x64,0x34,0xb5,0x28, +0xf8,0xb2,0x1f,0x27,0xc4,0x57,0x23,0x18,0x56,0xda,0xc3,0xdf,0x2a,0x33,0xfa,0xe6, +0xb3,0x47,0x4f,0xfe,0xb5,0x35,0xb0,0x87,0x2e,0x3d,0xbf,0x3a,0x8d,0xfe,0xf5,0x30, +0x10,0x52,0xd0,0x02,0x8a,0x51,0x40,0x0b,0x46,0x68,0x01,0x68,0xa0,0x03,0x34,0x66, +0x98,0x05,0x19,0xa0,0x04,0xa3,0x34,0x01,0x2e,0x9f,0x6c,0x67,0x12,0xb7,0x65,0x1c, +0xfe,0x35,0xb5,0xe1,0x88,0xa5,0xb6,0xd5,0x21,0x66,0x4f,0x90,0x9d,0xa4,0xe4,0x77, +0x1c,0x7e,0xb5,0x8b,0x92,0x57,0x4c,0xbb,0x07,0x8f,0x61,0x2b,0xaa,0xc1,0x26,0x30, +0xad,0x08,0x19,0xf5,0x21,0x8e,0x7f,0x98,0xae,0x7c,0x73,0xdc,0x7e,0x75,0xa4,0x76, +0x20,0x78,0xce,0xd3,0xd7,0xf4,0xa8,0x5b,0xef,0x1a,0x60,0x14,0xb4,0x0c,0x5a,0x51, +0x40,0x85,0xa2,0x80,0x0a,0x28,0x00,0xcd,0x19,0xa0,0x02,0x90,0x9a,0x00,0x33,0x46, +0x69,0x81,0xb7,0xe1,0xbb,0x43,0x26,0x9d,0x78,0xf8,0xe1,0xbe,0x50,0x7e,0x9f,0xfe, +0xba,0xb5,0xa7,0xca,0x63,0x91,0x58,0x7f,0x09,0x06,0xb9,0x25,0xab,0x66,0xab,0x72, +0xcf,0x8f,0xa1,0x2d,0x0d,0x94,0xa3,0xa2,0x96,0x53,0xf8,0xe0,0x8f,0xe4,0x6b,0x93, +0x00,0xe7,0xbf,0xe9,0x5d,0x11,0xd8,0xc8,0x72,0xaf,0x24,0x63,0xff,0x00,0x1d,0xa8, +0x0f,0x53,0x54,0x00,0x29,0xc2,0x80,0x14,0x0a,0x50,0x29,0x00,0xb4,0x86,0x80,0x0a, +0x4c,0xd3,0x18,0x52,0x66,0x81,0x0b,0x9a,0x42,0x68,0x00,0xcd,0x26,0x69,0x81,0xda, +0xe8,0x50,0xaa,0x58,0x4e,0x80,0x0c,0xee,0xe4,0x0f,0x7f,0xf2,0x6b,0x3e,0x25,0xf2, +0xee,0x19,0x4f,0x63,0x5c,0x46,0xbd,0x4d,0xdd,0x5a,0x05,0xbe,0xd1,0x61,0x2e,0x03, +0xaa,0x95,0x63,0x9f,0xa6,0x3f,0xad,0x61,0xae,0x89,0x6c,0xe9,0xb4,0x46,0x54,0xff, +0x00,0x78,0x31,0x27,0xf5,0x35,0xd1,0x17,0xa1,0x9b,0xdc,0x56,0xf0,0xcc,0x7b,0x30, +0x8f,0x26,0xef,0x56,0x20,0xfe,0x98,0x15,0x85,0xaa,0xe9,0xff,0x00,0xd9,0xb7,0x42, +0x3d,0xfe,0x66,0x54,0x36,0x76,0xed,0xee,0x78,0xc6,0x4f,0xa5,0x52,0x64,0x95,0x05, +0x38,0x55,0x0c,0x51,0x4e,0xa4,0x01,0x4d,0x34,0x00,0x52,0x1a,0x06,0x14,0x53,0x10, +0x99,0xa3,0x34,0x0c,0x4c,0xd1,0x4c,0x47,0x63,0xa3,0x4d,0xb6,0xe1,0x93,0xb3,0xa9, +0xfc,0xc7,0x3f,0xe3,0x50,0x5e,0xaf,0x95,0x7c,0xde,0xfc,0xd7,0x1f,0x53,0x5e,0xa6, +0xd4,0x0c,0x2e,0x34,0x46,0x5f,0xee,0xe7,0xf4,0x39,0xac,0xc9,0x27,0x4b,0x70,0x1a, +0x49,0x15,0x17,0xa6,0x58,0xe2,0xb5,0x86,0xc6,0x72,0xdc,0xb4,0x92,0x49,0x14,0xa5, +0x1c,0x1d,0xc3,0xaa,0xb8,0xc1,0x18,0xed,0xed,0x54,0xf5,0xdd,0x11,0x75,0x2b,0x7f, +0x3a,0x10,0x45,0xc2,0x0c,0x01,0xfd,0xe1,0xfd,0xdf,0xf0,0x3f,0xe4,0x5e,0xc4,0x9c, +0x8e,0x29,0x40,0xab,0x18,0xf0,0x28,0xc5,0x20,0x03,0x48,0x45,0x00,0x18,0xa4,0x22, +0x81,0x89,0x48,0x69,0x80,0x52,0x66,0x80,0x13,0x34,0x66,0x80,0x3a,0x2b,0x4b,0x8f, +0xb3,0xdc,0x47,0x27,0xf7,0x4e,0x4f,0xd2,0xad,0xf8,0x82,0x32,0x8c,0x1c,0x75,0xae, +0x4e,0xa5,0xb2,0xdf,0x86,0xdb,0x75,0x94,0xd1,0xb1,0xca,0x9e,0x78,0x39,0xea,0x30, +0x7f,0x95,0x62,0x6a,0x13,0xbb,0x6a,0x20,0xa4,0x8d,0x13,0x42,0x41,0x46,0x43,0x82, +0x0f,0x5c,0xd6,0xa9,0xda,0xe3,0x82,0x52,0x9a,0x4c,0xd2,0xd1,0xa5,0x79,0xed,0x10, +0xbb,0x97,0x29,0xfb,0xb0,0x4f,0xf7,0x46,0x00,0x1f,0x90,0xc5,0x69,0xc6,0xd8,0xcf, +0xbd,0x55,0xef,0xa9,0x9c,0x95,0x9b,0x48,0xe4,0x35,0xfb,0x6f,0x23,0x55,0x94,0x81, +0x85,0x93,0xe7,0x1f,0x8f,0x5f,0xd7,0x35,0xa5,0xe1,0x0f,0x08,0xaf,0x8a,0x1a,0x75, +0x37,0x62,0xd9,0xa3,0x00,0xa8,0xf2,0xf7,0xee,0xf5,0xee,0x31,0x8c,0x8f,0xce,0xaf, +0xa0,0x91,0xab,0x27,0xc2,0x7d,0x4c,0x4a,0x42,0x5c,0x59,0xb4,0x7d,0x99,0x9d,0xc1, +0x3f,0x86,0xd3,0xfc,0xea,0xb5,0xef,0xc3,0x2d,0x66,0xd5,0x41,0x8e,0x38,0xae,0xc9, +0xed,0x0c,0xa0,0x11,0xff,0x00,0x7d,0x6d,0xa1,0x79,0x81,0x55,0xfe,0x1f,0xeb,0x89, +0x19,0x76,0xb0,0x6c,0x01,0x9c,0x09,0x10,0x9f,0xc8,0x35,0x67,0x0f,0x0d,0xea,0x8c, +0x48,0x1a,0x65,0xef,0x1e,0xb6,0xce,0x3f,0xa5,0x03,0x29,0x4f,0x0b,0x5b,0x4c,0x62, +0x95,0x4c,0x52,0x8e,0xa8,0xe3,0x0c,0x3f,0x0a,0x61,0x5a,0x6d,0x58,0x3c,0xc6,0xe2, +0x90,0x8a,0x40,0x26,0x28,0x22,0x98,0x0d,0x22,0x92,0x80,0x36,0x95,0xab,0x52,0xe5, +0xfe,0xd3,0xa5,0xa3,0x77,0x5c,0x29,0xfc,0x2b,0x94,0xb1,0x3c,0x3b,0x29,0x8e,0x77, +0x42,0x4f,0xcc,0xa7,0x83,0x54,0xb5,0x9d,0x35,0xe7,0xbd,0x91,0xa3,0x46,0x25,0x89, +0x20,0xa8,0xfd,0x0f,0x35,0xa2,0x64,0xb3,0x57,0x4f,0xb6,0x16,0x76,0xeb,0x10,0x39, +0xda,0x39,0x3e,0xa6,0xad,0x03,0xc5,0x51,0x27,0x35,0xe2,0x4e,0x6f,0xd3,0xfe,0xb9, +0x8f,0xe6,0x6b,0xa6,0xf8,0x52,0xea,0x9a,0x8c,0xa0,0xf5,0x68,0xd8,0x0f,0xcd,0x4f, +0xf4,0xab,0xe8,0x08,0xf4,0xaa,0x8a,0xe2,0x41,0x6f,0x14,0x93,0x3b,0xb0,0x8d,0x10, +0xb1,0x0a,0xb9,0xc0,0x1c,0x92,0x00,0x19,0x34,0x80,0xc8,0x5f,0x1c,0xe8,0xd2,0x49, +0xe5,0xad,0xf0,0x56,0x3c,0x02,0xf1,0x38,0x5f,0xc4,0x90,0x07,0xeb,0x56,0xd3,0xc4, +0x5a,0x6e,0x32,0xda,0x9d,0x91,0x18,0x1d,0x26,0x51,0xfd,0x69,0x8c,0x9a,0xdb,0x52, +0x8a,0xff,0x00,0x2d,0x69,0x35,0xb5,0xcc,0x60,0xe3,0x74,0x73,0x06,0xfa,0xf4,0x06, +0xa0,0xd5,0xb4,0xcb,0x39,0xdd,0x65,0x9b,0x48,0x8f,0x51,0x97,0xa6,0x7c,0xa8,0x99, +0x87,0xe2,0xe4,0x50,0x92,0xe6,0xb3,0x63,0x69,0xa7,0xa9,0x9f,0xab,0x78,0x53,0x41, +0x92,0x25,0x96,0xe3,0x4b,0x2b,0x8f,0xe1,0xb5,0x8d,0xc1,0xfc,0x44,0x55,0x8f,0xa8, +0x78,0x23,0xc3,0xf7,0x16,0xe2,0x55,0x33,0xe9,0x68,0x3f,0x8a,0x57,0x31,0x67,0xfe, +0xfe,0x03,0x4d,0x37,0x2d,0x09,0x7a,0x68,0x8c,0x8b,0x8f,0x01,0xd8,0x5d,0x44,0x5b, +0x4f,0xbf,0x69,0x02,0x9c,0x17,0xdc,0xb2,0x8c,0xff,0x00,0xc0,0x71,0x5c,0xd6,0xb9, +0xa2,0x49,0xa2,0x5c,0xac,0x6c,0xde,0x62,0x30,0xca,0xbe,0x31,0x9f,0x51,0x8f,0xf3, +0xda,0x9b,0x56,0xd0,0x4a,0xf7,0xb3,0x33,0x69,0x0d,0x22,0x8d,0x58,0xe5,0x56,0xe8, +0x6b,0x4e,0xc1,0xbc,0xcb,0x79,0xa2,0x27,0xb6,0xe1,0xfd,0x7f,0xa5,0x73,0xb4,0xd1, +0x57,0xb8,0xba,0x74,0x9b,0x27,0x5e,0xdc,0xe2,0xad,0xc8,0x81,0xe4,0x27,0x2d,0xcf, +0xa3,0x11,0x54,0x89,0x91,0x24,0x4b,0x82,0x7f,0xad,0x48,0x78,0x06,0xa8,0x93,0x9a, +0xd7,0xce,0xeb,0xf1,0xec,0x80,0x7e,0xa6,0xb6,0xbe,0x1c,0xca,0xb1,0x6b,0xd0,0xee, +0x38,0x1b,0xb0,0x33,0xea,0x55,0x80,0xaa,0x29,0x1e,0xb1,0x41,0x19,0x14,0x08,0xe2, +0x35,0x4b,0x0b,0x79,0x25,0x96,0x49,0x21,0x8c,0xc8,0x01,0xe1,0x90,0x30,0xc8,0xfa, +0x83,0x59,0xf7,0x3a,0x5d,0xad,0xf8,0xe2,0x28,0xe1,0x1b,0x41,0xc2,0x20,0x5e,0xa3, +0xdb,0x15,0xaa,0x7d,0x4e,0x5e,0xa5,0x13,0xa4,0x58,0xfd,0x9c,0xe6,0x0c,0x48,0x33, +0x92,0x1d,0x8f,0x23,0xea,0x6a,0x84,0xba,0x4c,0x31,0x32,0xb0,0x79,0x40,0x24,0x63, +0x6b,0x01,0x8f,0xd2,0xa7,0x43,0x45,0x26,0x29,0xd4,0xb5,0x38,0xc0,0x11,0xea,0x57, +0x88,0x83,0x8c,0x19,0xd8,0xe3,0xf0,0xc8,0xa9,0xad,0xbc,0x51,0xaa,0xd9,0x48,0xa5, +0xaf,0xe4,0xb9,0x8d,0x58,0x16,0x8e,0x61,0xb8,0x30,0xee,0x32,0x72,0x47,0x1e,0x94, +0x9e,0xc6,0x9c,0xda,0x59,0x9d,0x7b,0x5e,0xa4,0x32,0x2c,0xa1,0xc3,0x41,0x26,0x03, +0x39,0x38,0x1b,0x4f,0x46,0xfc,0x09,0x07,0xe8,0x5b,0xd6,0xb1,0xbc,0x49,0x0c,0x1a, +0xa5,0xb4,0xd6,0xfb,0x94,0x4d,0x1e,0x4a,0xee,0x38,0x21,0x87,0x6e,0x7f,0x2a,0x6c, +0x47,0x9f,0x9a,0x69,0xa9,0x34,0x2e,0xa5,0xa9,0x53,0xc3,0x56,0x9e,0x9c,0xc6,0x29, +0x94,0x13,0x90,0x46,0xd3,0x59,0xc9,0xdd,0x58,0x11,0x3c,0x31,0x11,0x34,0xac,0x01, +0xe3,0xb8,0xab,0xa0,0xf3,0x49,0x09,0x92,0x46,0x73,0x9f,0xad,0x3d,0x8f,0x06,0xa8, +0x0e,0x5f,0x5a,0x6c,0xea,0x32,0x7b,0x00,0x3f,0x4a,0xbf,0xe0,0xf9,0x96,0x3d,0x5a, +0xdc,0xb9,0x01,0x44,0xd1,0xb1,0x27,0xb0,0x0d,0x54,0x34,0x7b,0x3d,0x14,0x08,0xe0, +0xf5,0xa5,0x55,0xd6,0x6f,0x56,0x62,0x37,0x6e,0xca,0x82,0x7a,0x67,0x9f,0xea,0x2a, +0x83,0xcc,0x24,0xda,0x32,0x54,0x6d,0xfe,0x13,0x8a,0xd3,0xa1,0x83,0xdc,0xaa,0xb3, +0x04,0xf3,0x17,0x24,0xfc,0xd9,0xf5,0xeb,0x54,0xe7,0x72,0x61,0x3c,0xf4,0xed,0x52, +0xc6,0x8a,0xcc,0xe4,0xee,0xda,0x78,0x3c,0xf2,0x2a,0x03,0x30,0x20,0x71,0x41,0x47, +0x47,0xa2,0x5e,0x0b,0xbd,0x23,0xc9,0x66,0xcb,0x47,0x98,0x88,0xcf,0x3b,0x7b,0x1f, +0xd7,0x1f,0x85,0x69,0x59,0x5c,0xc7,0x7f,0x09,0x49,0xed,0x6d,0x6e,0x64,0x53,0xb5, +0xcd,0xd7,0xf1,0x11,0x80,0x70,0x48,0x3d,0x78,0x3f,0x89,0xa6,0x33,0x92,0xf1,0x9e, +0x96,0xb6,0x57,0xa9,0x3c,0x56,0xf1,0xdb,0x43,0x30,0xe2,0x38,0x9c,0x32,0x86,0x18, +0xce,0x30,0x06,0x07,0x23,0x8f,0x5c,0xd7,0x3e,0x6a,0x57,0x62,0xd6,0xc6,0x84,0x33, +0x07,0xe8,0x6a,0xe5,0xbe,0x49,0xcd,0x43,0x03,0x52,0x01,0xf2,0x13,0xfd,0xee,0x69, +0x41,0xa4,0xb6,0x13,0x24,0x8b,0x80,0x4f,0xa9,0xa7,0x96,0xf9,0x4d,0x50,0x1c,0xbe, +0xae,0x73,0xa8,0xcd,0xf8,0x7f,0x21,0x4b,0xa5,0xb1,0x13,0x3e,0x0e,0x3e,0x43,0xfc, +0xc5,0x32,0x8f,0x71,0x17,0xb1,0x9e,0xf5,0x24,0x73,0x24,0xd9,0xda,0x73,0x8a,0x76, +0xd2,0xe2,0x38,0x8f,0x19,0x45,0xe5,0x6b,0x4e,0xcd,0x86,0xf3,0x11,0x59,0x78,0xe8, +0x31,0x8f,0xe6,0x0d,0x73,0xf2,0xcc,0x92,0x7c,0xa4,0x0c,0x50,0x8c,0x9a,0xd4,0xae, +0x25,0x54,0x62,0x17,0x8c,0xd4,0x12,0xc8,0x09,0x23,0x34,0xc0,0xae,0xec,0x3d,0x48, +0xc7,0xbd,0x44,0xdc,0x77,0xa4,0x32,0xf6,0x85,0x76,0x6d,0xee,0xda,0x32,0x7e,0x49, +0x57,0x18,0xcf,0x1b,0x87,0x20,0xff,0x00,0x31,0xf8,0xd5,0xeb,0x99,0x3c,0xb9,0x89, +0xc9,0xc3,0x8c,0xfe,0x23,0xff,0x00,0xad,0x4c,0x0c,0xcd,0x4d,0x44,0xf6,0x84,0x01, +0xca,0xfc,0xc3,0x15,0x84,0x7a,0xd0,0x5a,0x2c,0x40,0x3e,0x41,0x5b,0x16,0x29,0xfb, +0xb5,0xcd,0x43,0x19,0xa4,0xbf,0x2c,0x78,0x14,0x80,0xf3,0x48,0x91,0xf1,0x1c,0xa5, +0x38,0x9f,0x94,0xd3,0x19,0xcd,0x6a,0xff,0x00,0xf2,0x10,0x97,0xf0,0xfe,0x42,0x9b, +0xa7,0xbe,0xdb,0x80,0x3f,0xbc,0x08,0xa6,0x51,0xe8,0x70,0x6a,0xa5,0xa0,0x43,0x9e, +0xaa,0x0d,0x6b,0x78,0x6e,0xff,0x00,0xcf,0xbe,0x74,0x2d,0xc6,0xc2,0x70,0x4f,0x53, +0x91,0xff,0x00,0xd7,0xaa,0x23,0xa9,0x2f,0x88,0xbc,0x30,0x35,0xab,0x85,0x98,0x5c, +0x18,0x58,0x26,0xcc,0x79,0x7b,0x81,0xe4,0x91,0xdf,0xdc,0xd7,0x33,0x75,0xe0,0x7b, +0xb8,0xa4,0x06,0x3b,0xab,0x52,0x3d,0x64,0x66,0x53,0xf9,0x6d,0x34,0x90,0x35,0x72, +0xa9,0xf0,0x55,0xe2,0xe0,0xb5,0xd5,0x98,0xfa,0x3b,0x9f,0xfd,0x92,0xab,0xdc,0x78, +0x3e,0xe5,0x3e,0x65,0xb9,0xb5,0x93,0xd9,0x59,0xb3,0xfa,0xa8,0xaa,0x5a,0xbd,0x49, +0x7a,0x2d,0x0c,0xe9,0x74,0x1b,0xf0,0xf8,0xf2,0x32,0x3d,0x7c,0xc4,0x03,0xf5,0x34, +0xcf,0xf8,0x47,0xaf,0x98,0x7f,0xab,0x8c,0x7d,0x67,0x8f,0xff,0x00,0x8a,0xa6,0xd2, +0x4f,0x46,0x34,0x40,0xda,0x6d,0xdd,0xab,0x86,0xf2,0xc6,0xe5,0x3b,0x86,0xd7,0x0d, +0xc8,0xfa,0x1a,0xd3,0xba,0x1b,0xe3,0x3c,0x60,0x8f,0x98,0x0c,0xe7,0x15,0x36,0x03, +0x39,0x9f,0x06,0xb1,0xa7,0x4f,0x2e,0x66,0x5e,0xc0,0xf1,0x41,0x48,0x9e,0x11,0x85, +0x5a,0xdc,0xb3,0x8f,0xe4,0x51,0xed,0x50,0xc6,0xcd,0x05,0x85,0x99,0x78,0x14,0xc3, +0x64,0x01,0xdc,0x63,0x19,0xeb,0x9c,0x52,0xb9,0x04,0x8b,0x1e,0xd5,0x03,0xbf,0xa5, +0x35,0xf8,0x06,0xa9,0x14,0x73,0x5a,0xb1,0xcd,0xfc,0xbf,0x87,0xf2,0x15,0x1d,0x8f, +0x37,0x49,0xf8,0xff,0x00,0x2a,0x0a,0x3a,0x7b,0x7b,0x82,0x2d,0xe2,0x19,0xfe,0x11, +0xfc,0xa9,0xe6,0xe4,0x8e,0xf4,0xc8,0x11,0xaf,0x58,0x0f,0xbe,0x40,0xfa,0xd4,0x62, +0xfe,0x46,0xc6,0x19,0xbf,0x3a,0x96,0xc7,0x6b,0xea,0x1f,0xdb,0x17,0x76,0xe7,0xe4, +0xb8,0x9d,0x4f,0xa2,0xb9,0x1f,0xd6,0x92,0x5d,0x7a,0xf4,0xaf,0xcd,0x79,0x72,0x7d, +0x8c,0xad,0xfe,0x35,0x56,0xba,0xb8,0x6a,0x55,0x7d,0x4a,0x59,0x5b,0x2d,0x33,0xb1, +0xf5,0x66,0x26,0x9b,0xfd,0xa3,0x2a,0x1c,0x6f,0xfc,0xc6,0x69,0x05,0xd8,0x36,0xa9, +0x36,0x39,0x65,0xff,0x00,0xbe,0x17,0xfc,0x2a,0x26,0xbf,0x94,0x8c,0xee,0x1f,0xf7, +0xc8,0xff,0x00,0x0a,0x12,0x48,0x9b,0x15,0xe5,0x94,0xca,0xe5,0x8e,0x32,0x7d,0x00, +0x03,0xf2,0x15,0x42,0xfd,0x7e,0x65,0x6f,0xc2,0x98,0xd1,0x24,0x4b,0xd0,0x56,0x9d, +0xae,0xa0,0xf0,0xde,0x6c,0xc2,0xbc,0x64,0x81,0xc8,0xe9,0x52,0xca,0x35,0x3f,0xb4, +0x99,0x48,0xc9,0x54,0x1e,0xc2,0xb4,0xe0,0xd3,0xa6,0xbb,0x88,0x3f,0x9f,0x80,0x7f, +0xba,0xb9,0x1f,0xcc,0x56,0x62,0x2b,0xea,0xda,0x65,0xc5,0x95,0xb1,0x97,0xcd,0x57, +0x8c,0x75,0xca,0xe1,0xbf,0xcf,0xe3,0x59,0x16,0xd7,0x26,0x59,0x1d,0x49,0xc8,0x03, +0x81,0x57,0x10,0x31,0x75,0x26,0xdd,0x7b,0x29,0xf7,0xa8,0x61,0x62,0xb2,0xa1,0x1f, +0xde,0x15,0x45,0x23,0xa2,0x49,0x40,0x8d,0x39,0xec,0x29,0x0c,0xc3,0xd6,0xa1,0xb2, +0x6c,0x3e,0xde,0xed,0xad,0xee,0x62,0x96,0x37,0x08,0xe8,0x72,0x18,0x9e,0x9c,0x11, +0xdb,0xeb,0x5a,0x83,0xc4,0xf7,0x40,0xff,0x00,0xc7,0xcc,0x63,0xf1,0x6f,0xf0,0xa5, +0x71,0xab,0xa1,0x47,0x89,0xee,0x14,0x93,0xf6,0xa8,0xf9,0x39,0xfe,0x3f,0xfe,0x26, +0x9d,0xff,0x00,0x09,0x44,0xc7,0x04,0xde,0x45,0xc1,0xc8,0xce,0xff,0x00,0xfe,0x27, +0xdc,0xd2,0x72,0x7d,0x07,0xaf,0x60,0x7f,0x14,0xca,0x7a,0xde,0x44,0xdf,0xf7,0xf3, +0xff,0x00,0x89,0xaa,0xe7,0xc4,0x41,0x54,0x2e,0xe8,0x0a,0x8e,0x00,0xd8,0xdc,0x0f, +0xfb,0xe6,0x97,0x34,0xbb,0x13,0xaf,0x62,0x16,0xd7,0xe2,0x27,0x26,0x28,0x09,0xff, +0x00,0xae,0x7f,0xfd,0x6a,0xad,0x7f,0xab,0x43,0x79,0x6c,0xf1,0xf9,0x30,0xa1,0x3c, +0x86,0x54,0xc1,0x07,0xf2,0xab,0x4e,0xe2,0xf9,0x18,0xc7,0x3e,0x95,0x1d,0xcc,0x4c, +0xd0,0x31,0x2a,0x78,0xe7,0x38,0xab,0xb8,0xc0,0xff,0xd9,0x78,0xe7,0x38,0xab,0xb8, +}; + +#endif // BENCHMARK_DATA_H
--- a/benchmark_BaseJpegDecode.cpp Mon Oct 22 14:10:04 2012 +0000 +++ b/benchmark_BaseJpegDecode.cpp Thu Oct 25 11:02:17 2012 +0000 @@ -1,13 +1,11 @@ #if 0 #include "mbed.h" #include "BaseJpegDecode.h" -#include <vector> +#include "Benchmark_data.h" #define DBG(...) do{fprintf(stderr,"[%s@%d] ",__PRETTY_FUNCTION__,__LINE__);fprintf(stderr,__VA_ARGS__);} while(0); #define ASSERT(A) while(!(A)){fprintf(stderr,"\n\n%s@%d %s ASSERT!\n\n",__PRETTY_FUNCTION__,__LINE__,#A);exit(1);}; -LocalFileSystem local("local"); -DigitalOut myled(LED1); Serial pc(USBTX, USBRX); class JpegDecode : public BaseJpegDecode { @@ -40,43 +38,56 @@ { } +JpegDecode* decode; + +void benchmark(uint8_t* image, int size) +{ + decode->DC_count = 0; + decode->AC_count = 0; +#ifdef JPEG_USE_REPORT_CODE + decode->report_scan_count = 0; + decode->report_scan_dc_count = 0; + decode->report_scan_ac_count = 0; +#endif + Timer t; + t.reset(); + t.start(); + decode->clear(); + for(int i = 0; i < size; i++) { + decode->input(image[i]); + } + t.stop(); + + printf("%p %d bytes\n", image, size); + for(int tq = 0; tq < 2; tq++) { + printf("DQT(%d):", tq); + for(int i = 0; i < 64; i++) { + printf(" %d", decode->qt[tq][i]); + } + printf("\n"); + } + printf("SOF0: width: %d height: %d yblocks: %d\n", decode->width, decode->height, decode->m_yblocks); + printf("Scan: DC: %d AC: %d\n", decode->DC_count, decode->AC_count); +#ifdef JPEG_USE_REPORT_CODE + printf("report: scan_count: %d\n", decode->report_scan_count); + printf("report: scan_dc_count: %d\n", decode->report_scan_dc_count); + printf("report: scan_ac_count: %d\n", decode->report_scan_ac_count); +#endif + printf("benchmark: %d ms\n", t.read_ms()); +} + int main() { pc.baud(921600); printf("%s\n", __FILE__); - JpegDecode* decode = new JpegDecode; + decode = new JpegDecode; ASSERT(decode); - while(1) { - char path[128]; - printf("JPEG file: "); - gets(path); - FILE* fp = fopen(path, "rb"); - if (fp == NULL) { - printf("file open error %s\n", path); - continue; - } - vector<uint8_t> image; - while(1) { - int c = fgetc(fp); - if (c == EOF) { - break; - } - image.push_back(c); - } - fclose(fp); - printf("%s %d bytes\n", path, image.size()); - decode->DC_count = 0; - decode->AC_count = 0; - Timer t; - t.reset(); - t.start(); - decode->clear(); - for(int i = 0; i < image.size(); i++) { - decode->input(image[i]); - } - t.stop(); - printf("DC: %d AC: %d benchmark: %d ms\n", decode->DC_count, decode->AC_count, t.read_ms()); - } + + benchmark(c270_cam0001_jpg, sizeof(c270_cam0001_jpg)); + benchmark(vx700_cam0001_jpg, sizeof(vx700_cam0001_jpg)); + + printf("----\n"); + exit(1); } -#endif \ No newline at end of file +#endif
--- a/example1_c270.cpp Mon Oct 22 14:10:04 2012 +0000 +++ b/example1_c270.cpp Thu Oct 25 11:02:17 2012 +0000 @@ -1,4 +1,4 @@ -#if 1 +#if 0 // // simple color tracking // @@ -9,7 +9,9 @@ // Logitech C270 #define WIDTH 320 -#define HEIGHT 176 +#define HEIGHT 240 + +#define THRESHOLD 100 #define ASSERT(A) while(!(A)){fprintf(stderr,"\n\n%s@%d %s ASSERT!\n\n",__PRETTY_FUNCTION__,__LINE__,#A);exit(1);}; @@ -20,14 +22,16 @@ public: int y_center, x_center; int m_x_sum, m_y_sum, m_sum; - int8_t m_buf[WIDTH/16*HEIGHT/8]; + int16_t m_buf[WIDTH/16*HEIGHT/8]; virtual void outputDC(int mcu, int block, int value) { if (mcu >= (WIDTH/16*HEIGHT/8)) { return; } if (block == 3) { // 0-1:Y 2:Cb 3:Cr + value *= qt[1][0]; + ASSERT(value < 32367 && value > -32368); m_buf[mcu] = value; // debug - if (value >= 3) { // red + if (value >= THRESHOLD) { // red m_x_sum += value*(mcu%(WIDTH/16)); m_y_sum += value*(mcu/(WIDTH/16)); m_sum += value; @@ -79,7 +83,7 @@ term.locate(0, y); for(int x = 0; x < WIDTH/16; x++) { int value = calc->m_buf[y*WIDTH/16+x]; - if (value >= 3) { + if (value >= THRESHOLD) { fg = 0xff0000; // red } else { fg = 0xffffff; // white @@ -88,7 +92,7 @@ term.foreground(fg); old_fg = fg; } - term.printf("%+3d,", value); + term.printf("%+4d,", value); cam->poll(); } }
--- a/example2_c270.cpp Mon Oct 22 14:10:04 2012 +0000 +++ b/example2_c270.cpp Thu Oct 25 11:02:17 2012 +0000 @@ -20,19 +20,19 @@ class Decode1 : public BaseJpegDecode { public: - int8_t m_y0[WIDTH/16*HEIGHT/8]; - int8_t m_y1[WIDTH/16*HEIGHT/8]; - int8_t m_cb[WIDTH/16*HEIGHT/8]; - int8_t m_cr[WIDTH/16*HEIGHT/8]; + int16_t m_y0[WIDTH/16*HEIGHT/8]; + int16_t m_y1[WIDTH/16*HEIGHT/8]; + int16_t m_cb[WIDTH/16*HEIGHT/8]; + int16_t m_cr[WIDTH/16*HEIGHT/8]; virtual void outputDC(int mcu, int block, int value) { if (mcu >= (WIDTH/16*HEIGHT/8)) { return; } switch(block) { // 0-1:Y 2:Cb 3:Cr - case 0: m_y0[mcu] = value; break; - case 1: m_y1[mcu] = value; break; - case 2: m_cb[mcu] = value; break; - case 3: m_cr[mcu] = value; break; + case 0: m_y0[mcu] = value * qt[0][0]; break; + case 1: m_y1[mcu] = value * qt[0][0]; break; + case 2: m_cb[mcu] = value * qt[1][0]; break; + case 3: m_cr[mcu] = value * qt[1][0]; break; } } virtual void outputAC(int mcu, int block, int scan, int value){}; @@ -72,13 +72,13 @@ term.locate(0, column++); for(int x = 0; x < WIDTH/16; x++) { int mcu = y*WIDTH/16+x; - term.printf("[%+3d,%+3d],", decode->m_y0[mcu], decode->m_y1[mcu]); + term.printf("%+4d,%+4d,", decode->m_y0[mcu], decode->m_y1[mcu]); cam->poll(); } term.locate(0, column++); for(int x = 0; x < WIDTH/16; x++) { int mcu = y*WIDTH/16+x; - term.printf("(%+3d,%+3d),", decode->m_cb[mcu], decode->m_cr[mcu]); + term.printf("%+4d,%+4d,", decode->m_cb[mcu], decode->m_cr[mcu]); cam->poll(); } }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/example4_c270.cpp Thu Oct 25 11:02:17 2012 +0000 @@ -0,0 +1,103 @@ +#if 1 +// +// dump YCrCb +// [Y0, Y1], +// (Cr, Cb), +// +#include "mbed.h" +#include "BaseJpegDecode.h" +#include "uvc.h" +#include "Terminal.h" + +// Logitech C270 +#define WIDTH 160 +#define HEIGHT 120 + +#define ASSERT(A) while(!(A)){fprintf(stderr,"\n\n%s@%d %s ASSERT!\n\n",__PRETTY_FUNCTION__,__LINE__,#A);exit(1);}; + +DigitalOut led1(LED1), led2(LED2), led3(LED3), led4(LED4); +Terminal term(USBTX, USBRX); + +class Decode1 : public BaseJpegDecode { +public: + int16_t m_y0[WIDTH/16*HEIGHT/8]; + int16_t m_y1[WIDTH/16*HEIGHT/8]; + int16_t m_cb[WIDTH/16*HEIGHT/8]; + int16_t m_cr[WIDTH/16*HEIGHT/8]; + virtual void outputDC(int mcu, int block, int value) { + if (mcu >= (WIDTH/16*HEIGHT/8)) { + return; + } + switch(block) { // 0-1:Y 2:Cb 3:Cr + case 0: m_y0[mcu] = value * qt[0][0]; break; + case 1: m_y1[mcu] = value * qt[0][0]; break; + case 2: m_cb[mcu] = value * qt[1][0]; break; + case 3: m_cr[mcu] = value * qt[1][0]; break; + } + } + virtual void outputAC(int mcu, int block, int scan, int value){}; + virtual void outputMARK(uint8_t c){ + if (c == 0xd9) { // EOI + led2 = !led2; + } + }; +}; + +Decode1* decode = NULL; + +void callback_motion_jpeg(uint16_t frame, uint8_t* buf, int len) +{ + if (decode) { + decode->input(buf+12, len-12); + } + led1 = buf[1]&1; // FID +} + +int main() { + term.baud(921600); + printf("%s\n", __FILE__); + + decode = new Decode1; + ASSERT(decode); + uvc* cam = new uvc; + ASSERT(cam); + cam->SetImageSize(WIDTH, HEIGHT); + cam->SetFrameInterval(2000000); // 5.0fps + cam->setOnResult(callback_motion_jpeg); + ASSERT(cam->setup() >= 0); + term.cls(); + while(1) { + int column = 0; + term.locate(0, column++); + term.printf("Y: qt:"); + for(int i = 0; i < 16; i++) { + term.printf(" %d", decode->qt[0][i]); + } + term.printf("]"); + for(int y = 0; y < HEIGHT/8; y++) { + term.locate(0, column++); + for(int x = 0; x < WIDTH/16; x++) { + int mcu = y*WIDTH/16+x; + term.printf("%+5d,%+5d,", decode->m_y0[mcu], decode->m_y1[mcu]); + cam->poll(); + } + } + term.locate(0, column++); + term.printf("CbCr: [qt:"); + for(int i = 0; i < 16; i++) { + term.printf(" %d", decode->qt[1][i]); + } + term.printf("]"); + for(int y = 0; y < HEIGHT/8; y++) { + term.locate(0, column++); + for(int x = 0; x < WIDTH/16; x++) { + int mcu = y*WIDTH/16+x; + term.printf("%+5d,%+5d|", decode->m_cb[mcu], decode->m_cr[mcu]); + cam->poll(); + } + } + cam->wait_ms(500); + led3 = !led3; + } +} +#endif