/************************************************************************** * * Program: checksum_students.c * * This program can be executed to test a checksum for each * image file of the original sequence. * * The program compiles and works properly on a Sun SPARCstation (tm) * using the "cc" compiler. Although we hope it executes properly on * other platforms as well, we have not tested it in any other * environment. Note that the compiler which we used assumes by * default that "char" variables are signed and that "int" variables * are 32 bits wide. * * Origination: July, 1994 * *************************************************************************** * * Copyright (C) 1994, PictureTel Corporation * 222 Rosewood Dr. * Danvers, MA 01923 * * See accompanying copyright and license information file * ***************************************************************************/ #include #define Y_HSIZE 352 #define Y_VSIZE 288 #define Y_TSIZE (Y_HSIZE * Y_VSIZE) #define C_HSIZE 176 #define C_VSIZE 144 #define C_TSIZE (C_HSIZE * C_VSIZE) #define T_TSIZE (Y_TSIZE + 2 * C_TSIZE) char image[T_TSIZE]; #define FNAME_BASE "students" #define NUM_FRAMES 1007 int frame_checkref[NUM_FRAMES] = { 0x2F51, 0x47BE, 0xD06C, 0x6A58, 0xAE7A, 0x9DCF, 0x753D, 0xA891, 0x1AE8, 0x20F0, 0x49DF, 0x6BA0, 0x5940, 0x4D1C, 0x92ED, 0x7CC1, 0xE65B, 0xF8B3, 0x6956, 0x5D87, 0x70F3, 0x3E18, 0x3EC9, 0x5C4E, 0xE495, 0x42B3, 0x6C15, 0xB490, 0x64E6, 0x40B6, 0x377C, 0x6923, 0x4ADB, 0x7391, 0x6E79, 0xC41B, 0xD2FB, 0xE66A, 0x8910, 0x6DAC, 0xB325, 0x2E93, 0x2156, 0x29B1, 0x0C96, 0xA3DC, 0xF45F, 0x17F1, 0x1DCC, 0x4A8F, 0x3270, 0x4E8F, 0x6E5D, 0x74F1, 0xCA36, 0x9301, 0x869D, 0x0E0E, 0xE89E, 0xA240, 0x0389, 0x705D, 0xD8FE, 0xC412, 0x84A5, 0x20A3, 0xE4B6, 0x3700, 0x5DE1, 0x6973, 0xACFE, 0xA4E3, 0xD37E, 0x6BA3, 0x96C8, 0x6AA9, 0x0E3E, 0x3A8F, 0x6CEA, 0xD565, 0x699A, 0x59B7, 0xCE66, 0x30A4, 0xB547, 0x2C8D, 0x91E3, 0x9630, 0x432A, 0xB286, 0x4DF5, 0x4CAF, 0x6F51, 0xB679, 0x1336, 0xD932, 0x422D, 0x4274, 0xE886, 0x0621, 0xE589, 0x62DD, 0x1548, 0x8B7F, 0xEE1D, 0x2E98, 0xC738, 0x92E0, 0x0717, 0x4393, 0x6ADE, 0xA1A3, 0x642F, 0x6130, 0x2263, 0x9780, 0x5D3D, 0xDD6C, 0x0546, 0x9FCB, 0xB66A, 0x7058, 0xA943, 0x7F6C, 0x897F, 0x35AB, 0xC6B6, 0x46C8, 0x1F52, 0xAA2F, 0x1874, 0x90EA, 0x1F5C, 0x5FD9, 0x5147, 0xCDFE, 0x504A, 0x8C99, 0x0B1B, 0xE890, 0x1BB2, 0xD26E, 0x74A0, 0x90D2, 0x971D, 0x479C, 0x8212, 0x0369, 0x7460, 0x6C1B, 0x7F1C, 0x212A, 0x921A, 0x33B7, 0x167C, 0x8DB1, 0xB55B, 0x74DB, 0x30F0, 0xCBF8, 0x72B7, 0x96B3, 0xE709, 0xAB2A, 0x51FE, 0x2FCF, 0x7EB9, 0xFB5D, 0x2AFA, 0x1DEF, 0xD451, 0xECB4, 0xB288, 0x417C, 0x9143, 0x996E, 0xBCD7, 0x04B4, 0x2C6C, 0x5EE1, 0xEB07, 0xA02F, 0x931F, 0x5E85, 0x232B, 0xA30D, 0x41CD, 0x8448, 0xEE7A, 0x5655, 0x4265, 0x4F7A, 0x5B27, 0x2203, 0x9438, 0x58B4, 0xE2AB, 0xAA97, 0x0F6C, 0x4C64, 0x7351, 0x3297, 0x185E, 0x733C, 0x07F6, 0x5171, 0x14FF, 0xD449, 0x4C45, 0xBEC2, 0x1F11, 0x6439, 0x2035, 0x73EC, 0x2B0A, 0x15B3, 0xBA1E, 0xEE71, 0x4D06, 0xD5A8, 0x0E23, 0x06BA, 0x0095, 0x1ABE, 0x5AF8, 0x04C4, 0xC184, 0x5FC8, 0x8B8D, 0x9C11, 0xD2B4, 0xD41A, 0x36D8, 0x9566, 0x15F8, 0x0F1B, 0xEDFA, 0xA06D, 0xE19C, 0x5CCE, 0xF682, 0x6E6B, 0x7021, 0x7E24, 0x76F2, 0x7703, 0x4866, 0x7EA9, 0x809A, 0x6DD9, 0x5451, 0x000F, 0x5C95, 0x0921, 0x47C2, 0xFE6C, 0x3823, 0x6C9B, 0x25B4, 0x96EA, 0x36D5, 0x03BA, 0xDBCF, 0x0717, 0x131F, 0x8344, 0x649C, 0x4D82, 0x4124, 0xF911, 0xDB9E, 0xFB9A, 0x3C8D, 0xD2A5, 0x2AC9, 0x21E6, 0x1C53, 0xBF97, 0x0857, 0x75D2, 0x6F92, 0x0C62, 0x81D5, 0xE909, 0xD7E2, 0x1B7B, 0x6807, 0x5194, 0x2602, 0x2B55, 0x5DCF, 0x1534, 0x8CD5, 0xA405, 0x4E89, 0x5DEE, 0x8139, 0xADDC, 0x5407, 0x3B29, 0xDEB8, 0x6CAD, 0x4806, 0x8E7F, 0x5EDB, 0x70A8, 0x8D53, 0x8951, 0x691F, 0x590D, 0x372F, 0x0779, 0x0EE1, 0x1997, 0x64CF, 0x0B63, 0xCF1B, 0xAF60, 0xC395, 0x9DC5, 0x7600, 0x3553, 0xDADB, 0xA3DB, 0x335F, 0x7181, 0xC0B3, 0x4889, 0x66C3, 0x344F, 0x0855, 0x642A, 0xB575, 0xCC5E, 0x68D4, 0xEDC2, 0x2852, 0x572F, 0x8F63, 0x2EFE, 0x501A, 0xE54D, 0xCCCA, 0x3300, 0xA302, 0xFB2D, 0x5977, 0x7685, 0x622A, 0xF8F3, 0xD633, 0xF977, 0x3F58, 0x767B, 0xFE89, 0xD161, 0xD0FD, 0xB295, 0xDA0D, 0x83F4, 0x8EDC, 0x176F, 0x4E19, 0xB73D, 0x68EF, 0xE845, 0x948F, 0x4173, 0x44A2, 0x5F21, 0xB3F8, 0xD3D1, 0xED40, 0x1329, 0xA54C, 0x8B11, 0x5773, 0x9D88, 0x9FA7, 0xDC00, 0x7A37, 0x18D3, 0xD649, 0x16E2, 0x3143, 0x046D, 0xE74B, 0xE54F, 0x6642, 0xD867, 0x0B6C, 0x7F7E, 0xAAFA, 0xE279, 0x1D4C, 0xB83C, 0x6C4B, 0x876A, 0x69C5, 0x8AD8, 0x602D, 0x71D8, 0xB4B4, 0x3BBB, 0x2CBB, 0x23A9, 0x83B8, 0x6596, 0x336E, 0xC3A0, 0xD080, 0x7591, 0x7B3E, 0xF813, 0xFA44, 0x971E, 0x225C, 0x0104, 0xC7D7, 0x5338, 0x1880, 0x60FF, 0xF532, 0x107F, 0xDAC2, 0xDECC, 0x0C88, 0x2B68, 0x264D, 0xBDA7, 0xDA78, 0x715D, 0xA16F, 0xB4FA, 0x9AA0, 0x9031, 0xCF06, 0x0B13, 0x82B6, 0x2F94, 0xD90E, 0x1C04, 0x3719, 0x2ADA, 0xCECC, 0x79CB, 0x27F5, 0x40D4, 0xCC63, 0xDFCE, 0x9466, 0xC359, 0xA317, 0x3F49, 0xEA4F, 0xD3B0, 0xDE8E, 0xD7CA, 0xBF05, 0xEBC9, 0xCAE6, 0x92BB, 0x80C3, 0xAE82, 0x1636, 0x2CAA, 0x7792, 0x9860, 0xF39E, 0x8507, 0x12E1, 0x9967, 0xA2E4, 0xE79F, 0xB203, 0x9182, 0x89C8, 0x2B27, 0x0992, 0x1DA4, 0x0BB6, 0x3AC9, 0xE656, 0xCBEF, 0x7232, 0x9751, 0x1560, 0x0C53, 0x32AC, 0x153E, 0x235C, 0x5D5D, 0xC252, 0xCEDD, 0x0E7E, 0x2673, 0xEDB7, 0xF58B, 0xF77B, 0x1453, 0xEDF3, 0x3EA8, 0xFB14, 0xF427, 0x8493, 0x6450, 0x0C61, 0x0406, 0xFA19, 0xD79F, 0x3B5C, 0xB82A, 0xCDDA, 0xBF60, 0x735D, 0x574E, 0x427F, 0x2B8C, 0x5C07, 0x30C6, 0x2E00, 0x66DC, 0xE7DA, 0x9765, 0xE53D, 0xC174, 0xCA50, 0xBCB5, 0xAC17, 0x7216, 0xBE65, 0x03DD, 0x1588, 0x2A3F, 0x4908, 0x9F1A, 0xB204, 0xD174, 0x858C, 0x8260, 0x2317, 0xA408, 0x840F, 0xC807, 0x9702, 0x88CC, 0x4D91, 0xF71E, 0x00E1, 0x95F8, 0xDF69, 0xAA0F, 0x4300, 0x5C8D, 0x0D4F, 0x0FAA, 0xDAC4, 0xD973, 0x1323, 0x4CA1, 0x141D, 0x9A99, 0xA7EB, 0xD69D, 0x80C6, 0xEFC9, 0x7D23, 0x913F, 0x5309, 0x9F0C, 0x62E0, 0x01DC, 0x5F1B, 0x578E, 0xCA0F, 0xFDBD, 0x6E67, 0x04D3, 0x2721, 0xE2AF, 0x129D, 0xE8FF, 0xD826, 0xEF8E, 0xAA16, 0x7BB4, 0x37AF, 0x2CDF, 0xFA22, 0x43F3, 0xD24D, 0x8C67, 0xFF41, 0xDDA6, 0xA232, 0x51C2, 0x04AC, 0x7314, 0x71EA, 0x1FBB, 0x16FC, 0x2FEA, 0x218A, 0x618F, 0x3F33, 0x460E, 0xB939, 0x8F35, 0x1D5F, 0x4A04, 0xAAB0, 0x241C, 0xF8FF, 0xC0BD, 0x472E, 0xFB49, 0x25FD, 0x9F51, 0xDEB1, 0x218E, 0x81A6, 0xEEA0, 0xA7AC, 0x1618, 0x5034, 0x47AA, 0xD00C, 0xD936, 0x9C94, 0x238B, 0x12C9, 0x0F34, 0x6935, 0x213C, 0xB8BB, 0x90FD, 0x1D08, 0x1C9F, 0x4EBE, 0x0067, 0xE037, 0xB20A, 0x6055, 0x4D45, 0x18C7, 0xF344, 0xB269, 0x932F, 0xCDD6, 0x381C, 0xDF7F, 0x68C3, 0x8FE9, 0x1B49, 0x2FE9, 0x07CB, 0x3BD0, 0x31A5, 0x7E5E, 0x506E, 0xFDA9, 0xA1AB, 0xE33E, 0x21CB, 0xDCFC, 0x4411, 0xEDC5, 0x682F, 0xFB31, 0x4CD7, 0x060B, 0xFF84, 0xEE11, 0x22AF, 0xF1A1, 0xED91, 0xA7BC, 0x8BE7, 0xED68, 0x74B3, 0x2984, 0xB709, 0xF222, 0xC74C, 0x6BA2, 0xCD8B, 0x524F, 0x2DE0, 0xE392, 0x79B3, 0x5C35, 0x39AD, 0xB0C9, 0xB110, 0xF5C1, 0x9CDD, 0x595E, 0xF020, 0xE165, 0x016C, 0xD16F, 0xC5BC, 0x9445, 0x6072, 0x0B1B, 0x6B40, 0x3C06, 0x0DAA, 0x5CF1, 0xC4EC, 0x11A7, 0x6A01, 0x50C5, 0x27D7, 0x8DF5, 0x792E, 0xC9E3, 0x9DDC, 0x7DB7, 0x6E51, 0x7E85, 0xE55C, 0x039B, 0x8FF4, 0x3F69, 0x74E1, 0xFDCE, 0x0787, 0x185E, 0x96F8, 0xCEB4, 0xBFA4, 0xBF70, 0xFCB4, 0xD25C, 0x0851, 0x432A, 0x6096, 0xE744, 0xEACB, 0xC1B2, 0x93EA, 0x6C2A, 0x1C9C, 0xA1FE, 0x3DF8, 0xFB8C, 0x0D01, 0xEBFA, 0x6876, 0x6637, 0x166C, 0x4F35, 0x06A0, 0x922C, 0x2AF3, 0x3685, 0x63C8, 0x5317, 0x6235, 0x9110, 0x168B, 0x79E1, 0xD661, 0x9A70, 0x46E9, 0x6F44, 0xD382, 0xFDAD, 0x1F86, 0x64C2, 0x12D4, 0x5E49, 0xFF44, 0x8D6B, 0xAA70, 0xB1BA, 0xB992, 0x1301, 0x29CE, 0x9F08, 0xEDAF, 0x21B0, 0x28A9, 0xCEB7, 0x7C6C, 0x7B4C, 0xECF2, 0xD701, 0x5A20, 0x0387, 0xAF11, 0xE969, 0xFB35, 0xBD77, 0xF5AA, 0x2C51, 0x72CD, 0xBCF8, 0xA846, 0xF00E, 0x6899, 0x6B9B, 0x7AD2, 0x1E5C, 0xE58C, 0xF6A5, 0x1C54, 0x7A02, 0x270D, 0x1B2B, 0xC78C, 0x6156, 0x8C7A, 0x7297, 0x4EF8, 0xD83A, 0x47F1, 0xB7F3, 0xF1A6, 0xC841, 0x4DA7, 0x0FFA, 0x3E84, 0xBE84, 0x657A, 0xF3D5, 0x4A71, 0xB133, 0x1582, 0x20C4, 0xC35F, 0x1691, 0x9ADF, 0x3684, 0xD1CB, 0xD546, 0x7A18, 0x2918, 0x092E, 0xF57E, 0x6565, 0x5B6D, 0x26C4, 0x9E9F, 0x6B6E, 0x5309, 0x7E44, 0x460C, 0xDF75, 0x61B5, 0x8B68, 0x7DED, 0x4740, 0xF086, 0x9A1A, 0xB42F, 0x57FD, 0x8565, 0x3377, 0x13E0, 0x89DD, 0x3E0E, 0x33BA, 0xEBAE, 0x6F9D, 0x2744, 0xDDCE, 0xB16A, 0x1ED0, 0x7956, 0x4244, 0xCF9E, 0x5B2A, 0x5DFC, 0x3D9B, 0x2CD2, 0x3221, 0xD3F1, 0xA9C6, 0xFA9D, 0x8371, 0x7552, 0xB0AE, 0x69DF, 0x61D2, 0x3F74, 0x3F87, 0x0837, 0x0B4C, 0x1D3F, 0x38C1, 0xFC98, 0xE75C, 0xA3AC, 0x6F38, 0x8E8C, 0x2CD7, 0xE746, 0xA6AE, 0x111D, 0xAEB3, 0x0A9F, 0x66F9, 0x10A0, 0x7083, 0x8CF2, 0x402F, 0xE70B, 0xF5D3, 0x5D59, 0xA70D, 0x480E, 0xC846, 0xEFA1, 0x4C54, 0x977A, 0xD0BE, 0xA30E, 0xE897, 0x1016, 0x7EEA, 0x88ED, 0x2160, 0x5B40, 0xB9A3, 0x4162, 0xB579, 0x62F8, 0x7AA2, 0xB68B, 0x6B98, 0x69BC, 0xC252, 0x9F82, 0x8320, 0xAB86, 0x811D, 0xAF3A, 0x0A06, 0xE9CF, 0x35D9, 0xA0CC, 0x6375, 0x34A6, 0xFDA7, 0x38FB, 0x5ABC, 0xC3F6, 0x2A0E, 0xDC71, 0xD795, 0xC273, 0xE39A, 0xD618, 0xD290, 0xFAB2, 0x2650, 0xAFDE, 0xD724, 0x011A, 0x9C6F, 0x9548, 0x9DEE, 0x633C, 0x29BD, 0x8191, 0xD3DA, 0xD441, 0x7941, 0x9D81, 0xF694, 0x8B1B, 0x60C6, 0x65CE, 0x7ABC, 0xDEFC, 0xCCF2, 0x241E, 0x4A53, 0x30CC, 0x0F93, 0xE798, 0xB20B, 0xEDB6, 0x4ED6, 0xE511, 0x69ED, 0x5D91, 0x7998, 0xD540, 0xC0A4, 0xB677, 0xC6A3, 0xC3B8, 0x2E5A, 0x15A6, 0xFCE3, 0x1B90, 0x0A97, 0xECAE, 0x6E45, 0xA779, 0x7AD2, 0xC08E, 0x761D, 0x5C31 }; int seq_checkref = 0x5940; main(ac, av) int ac; char **av; { char file_name[132]; int frame_num, ngot, frame_checksum, seq_checksum=0, pel; FILE *file_ptr; for(frame_num=1, seq_checksum=0; frame_num <= NUM_FRAMES; frame_num++) { if((file_ptr = fopen(sprintf(file_name, "%s_%04d.yuv", FNAME_BASE, frame_num), "r")) == NULL) printf("ERROR: Unable to open file (%s)\n", file_name); else{ if((ngot = fread(image, sizeof(char), T_TSIZE, file_ptr)) != T_TSIZE) if(ngot > 0) printf("ERROR: Read only %d (rather than %d) bytes from file (%s)\n", ngot, T_TSIZE, file_name); else printf("ERROR: Cannot read file (%s)\n", file_name); else{ for(pel=frame_checksum=0; pel