/************************************************************************** * * Program: checksum_students_qcif.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 * Modification: May, 1996 Modified for QCIF operation - GJS * *************************************************************************** * * Copyright (C) 1994, 1996, PictureTel Corporation * 222 Rosewood Dr. * Danvers, MA 01923 * * See accompanying copyright and license information file * ***************************************************************************/ #include #define Y_HSIZE 176 #define Y_VSIZE 144 #define Y_TSIZE (Y_HSIZE * Y_VSIZE) #define C_HSIZE 88 #define C_VSIZE 72 #define C_TSIZE (C_HSIZE * C_VSIZE) #define T_TSIZE (Y_TSIZE + 2 * C_TSIZE) char image[T_TSIZE]; #define FNAME_BASE "students_qcif" #define NUM_FRAMES 1007 int frame_checkref[NUM_FRAMES] = { 0x7751, 0x66BF, 0xB1FD, 0xDA5F, 0x9975, 0xC699, 0xC2AB, 0xAE0C, 0x0073, 0x1405, 0xF9AB, 0xF838, 0x0DD0, 0x120B, 0xDE0C, 0xE288, 0x14CE, 0x01A3, 0x11B8, 0x1465, 0x1D79, 0x0ADE, 0x0BEC, 0x0C87, 0xEACD, 0x219B, 0x111C, 0x1E06, 0x0EF6, 0x0E4A, 0x00A9, 0x1B9B, 0x1B17, 0x24C3, 0x18B6, 0x1D8B, 0x1A0E, 0x3126, 0x5D2D, 0x54CC, 0x63FC, 0x3D5E, 0x374E, 0x2559, 0x3E71, 0x6CD7, 0x8212, 0x7E90, 0x89B2, 0x875D, 0x871E, 0x9620, 0x964B, 0x96BF, 0x7E8B, 0x75D8, 0x75B3, 0x6C21, 0x47B7, 0x4EA8, 0x2A3A, 0xE2C0, 0xD823, 0xB6B8, 0xA1FB, 0x7B07, 0x8354, 0x594F, 0x547F, 0x59BD, 0x75F3, 0x6962, 0x861D, 0xB6B9, 0xAC31, 0xADB8, 0x0405, 0x3115, 0x0FCA, 0x6365, 0x76A4, 0x5414, 0x4092, 0x4D2A, 0x71F3, 0xB9B2, 0xD104, 0x688C, 0x3B66, 0x39E8, 0x522A, 0x6414, 0x681E, 0x6082, 0x24C9, 0x12AE, 0xDB58, 0x26B7, 0x0315, 0x62EE, 0x76B5, 0x72AF, 0x6BE8, 0x9154, 0xB45E, 0x7B32, 0x7B0A, 0x6C9E, 0x98B8, 0x70B1, 0xA16F, 0x9801, 0x9039, 0x860E, 0x720B, 0x574C, 0x6195, 0x42F2, 0x26AC, 0x0784, 0xD7C4, 0x999E, 0x8BCB, 0x8319, 0x5552, 0x7CD7, 0x14A9, 0x2399, 0xEECB, 0xC1F3, 0xBF5C, 0x9FB3, 0x61BF, 0x933F, 0x5890, 0x3863, 0x3019, 0xF5E5, 0xCED6, 0xEC44, 0xE680, 0xF267, 0x1FF8, 0x2362, 0x0AB5, 0x1622, 0xD0D4, 0xC131, 0x9689, 0x7974, 0x427B, 0x2A56, 0xE9E7, 0xF4C2, 0xF32A, 0xC246, 0xBA61, 0xC8EC, 0xC440, 0xB759, 0x96D9, 0xA424, 0xB635, 0xB25A, 0xC155, 0xCAF7, 0xD3E4, 0x8FB0, 0xB44B, 0xB2B2, 0x9C46, 0x969F, 0x7845, 0x8EB5, 0x9F74, 0x8B28, 0xAA35, 0xA24C, 0xBF84, 0xC551, 0xCEA9, 0xD4EC, 0xDAE3, 0xE810, 0xE80C, 0x09F3, 0xF770, 0xEAB4, 0x07CF, 0x46AB, 0x54AC, 0x409A, 0x4BF6, 0x8188, 0x9CA7, 0x93CB, 0xB905, 0x985D, 0xBE01, 0xC4DE, 0xCAE6, 0xCC1E, 0x074F, 0x35E3, 0x5136, 0x49BE, 0x2BBE, 0x985B, 0x617D, 0x7C29, 0x5D9B, 0x5CB9, 0x6AA8, 0x674A, 0x7CAC, 0x40A1, 0x343F, 0x3AE5, 0x5248, 0x468F, 0x8881, 0x995A, 0x8CC4, 0xA0D8, 0xD259, 0x1466, 0x2AD9, 0x325E, 0x4A23, 0x6335, 0x5A0A, 0x6823, 0x892B, 0x8CA9, 0xD741, 0xDFBA, 0xCCEA, 0xF992, 0x09BB, 0xF8A1, 0x3EA2, 0x47D9, 0x64CB, 0x4309, 0x4A3E, 0x3F9E, 0x47DF, 0x56D1, 0x541B, 0x410A, 0x3D4D, 0x5C13, 0x6085, 0x5FC6, 0x719B, 0x8101, 0x74A2, 0x8220, 0x774A, 0x9358, 0x95C7, 0x993C, 0x6AD7, 0x7709, 0x6EAA, 0x86D4, 0x9D83, 0x953F, 0x7160, 0x6E57, 0x79CF, 0x839C, 0x8221, 0x7BF6, 0x9B0D, 0x8501, 0x79AC, 0x737D, 0x7BAD, 0x43ED, 0x430D, 0x3136, 0x4840, 0x9639, 0x7BF0, 0x8421, 0x99AE, 0xAD5C, 0x8BA3, 0x815D, 0x8FEC, 0x8FAB, 0x730A, 0x6E8A, 0x62E6, 0x4843, 0x58B9, 0x3A37, 0x79B0, 0x78D2, 0x6F0D, 0x3D25, 0x3EB2, 0x35CB, 0x4FF7, 0x3CFD, 0x35E8, 0x5696, 0x1608, 0x078C, 0x4193, 0x0E37, 0x31FF, 0x25E1, 0x3957, 0x3307, 0x3AA8, 0x335B, 0x32EA, 0x3199, 0x5D68, 0x632B, 0x774C, 0x3FBF, 0x029E, 0xF3BE, 0x2E10, 0xECAC, 0x0B58, 0x23A5, 0x2683, 0xFB2B, 0x1428, 0xFB04, 0xF303, 0xE3AF, 0xDA3C, 0xF721, 0x2714, 0x2CFF, 0x2586, 0x29E4, 0x2C5C, 0xF70F, 0x0FE8, 0x0712, 0xD46B, 0x9210, 0x89C5, 0x83A3, 0x6381, 0x5D39, 0x7FD1, 0x92B2, 0x7E60, 0x5B05, 0x5103, 0x5864, 0x8137, 0x533D, 0x2F7E, 0x2636, 0x3C4D, 0x2909, 0x3FA6, 0x0950, 0x0C4C, 0x25E0, 0x31C8, 0xEFC7, 0xA120, 0xE0E2, 0xDB40, 0xBD45, 0xD4FD, 0xB262, 0xA19F, 0xA629, 0xD68D, 0xCB82, 0x8295, 0x7A9C, 0x41D4, 0x7910, 0x8A9E, 0x6DE8, 0x73A8, 0x7612, 0x6886, 0x4D67, 0x46A1, 0x2E1B, 0x3F61, 0x53A7, 0x43D2, 0x47EB, 0x3243, 0x249C, 0x1A9B, 0x231B, 0x2672, 0x10FF, 0x1B25, 0x24C5, 0x14D9, 0xF9CE, 0xE486, 0xDE08, 0xE19E, 0xF689, 0xF6D4, 0x21DB, 0x3390, 0x1816, 0x4038, 0x2C42, 0xF20A, 0x117C, 0x243A, 0x06BB, 0x1A08, 0x2C52, 0x0101, 0x22F7, 0x3896, 0x6189, 0x418F, 0x78E2, 0x5C0B, 0x4E29, 0x50C3, 0x3487, 0x420F, 0x37F8, 0x4B63, 0x3668, 0x30EE, 0x5480, 0x7F6F, 0x63A8, 0x3D9C, 0x64B0, 0x4C09, 0x92C2, 0xA0F7, 0x6B4E, 0x6E41, 0x7945, 0x4E88, 0x2D39, 0x8FC3, 0x9382, 0xE542, 0x0184, 0x257F, 0x141A, 0x3B3A, 0x1C99, 0x6815, 0xB48B, 0x894C, 0xCF40, 0xDE71, 0xF91A, 0x0CED, 0xFE86, 0x0972, 0x0AFC, 0x5024, 0x563F, 0x4EE2, 0x69EE, 0x791D, 0x80A6, 0x7247, 0x8565, 0x7C4A, 0x58D4, 0x53B4, 0x65B3, 0x53AB, 0x5088, 0x47BF, 0x3245, 0x3635, 0x494C, 0x6227, 0x439D, 0x54FF, 0x4CE7, 0x53DD, 0x4908, 0x6977, 0x6DDF, 0x7677, 0x86B7, 0x9030, 0x6FE9, 0x7C81, 0x5BCC, 0x592C, 0x63F7, 0xA20E, 0x9F80, 0xCE16, 0xBA94, 0xB22D, 0x99EF, 0x98BD, 0xAA9B, 0xA501, 0x774E, 0x9F60, 0xA392, 0x68B2, 0x670C, 0x616B, 0x7244, 0x70F2, 0x7DB2, 0x668C, 0x6D6A, 0x35D1, 0x45C8, 0x4A8B, 0x5344, 0x6434, 0x69D0, 0x4A05, 0x4C64, 0x6D8E, 0x28CF, 0x32D4, 0x3BA3, 0x2ED5, 0x133F, 0x5BEE, 0x446B, 0x2CA3, 0x4619, 0x4B58, 0x0037, 0x13E2, 0x2ADA, 0x203C, 0x0A21, 0xF4D3, 0xE46C, 0xEAFB, 0x01C2, 0xF267, 0xE55D, 0xBFE2, 0xD1C6, 0xC08D, 0xADE4, 0xB940, 0xAF3C, 0xE477, 0x1BDC, 0xF878, 0xCDA8, 0xFE1C, 0xD504, 0xD44D, 0xC74F, 0xB19F, 0xC539, 0xAF20, 0xC8A8, 0xDA3B, 0xE522, 0x144A, 0xF8B0, 0x0BEF, 0xE478, 0x1169, 0x4089, 0x3D2C, 0x18BD, 0x133A, 0xE1FF, 0xC90C, 0xDA73, 0xC227, 0xDF5A, 0xAC79, 0x91AD, 0x9793, 0x656C, 0x3761, 0x1E0B, 0xF838, 0x0783, 0xB409, 0x268A, 0x01DA, 0x1542, 0xECEE, 0x16C2, 0xF8C2, 0xEA64, 0x0126, 0x0761, 0xE96A, 0xAD82, 0xFC38, 0xD097, 0xC3A0, 0xCE9A, 0x9C7A, 0x8E46, 0x74EB, 0x44BD, 0x769D, 0x6A5B, 0x696B, 0x3A1F, 0x6178, 0x3884, 0x04F4, 0xDD44, 0x825E, 0x61CD, 0x59DE, 0x71CB, 0x4659, 0x4510, 0x3CE9, 0x9D1E, 0x74E8, 0x888E, 0x94D1, 0xB810, 0xBCA9, 0xCF05, 0xCB76, 0xA595, 0xB9CE, 0xB7E2, 0xC97B, 0xD5B6, 0xB059, 0xCCA2, 0xB61D, 0xB018, 0xBAD1, 0x89DC, 0x9F0E, 0x7E25, 0x734A, 0x6317, 0x4CA3, 0x69F8, 0x78F5, 0x7707, 0x88B8, 0x8257, 0x909C, 0x6155, 0xBD22, 0xD6CD, 0x237D, 0xFC20, 0x0877, 0xACBE, 0xCB64, 0xA06F, 0x7E3E, 0x97C5, 0x8EB1, 0x6DB9, 0x4EC5, 0x4175, 0x4910, 0x3AE8, 0x9213, 0xCC5C, 0xC458, 0xD9B3, 0xDDDB, 0xB672, 0xBC38, 0xBA21, 0xCFCC, 0xDB1D, 0x178B, 0x4429, 0x4D66, 0x6DD1, 0x6CC1, 0x65C1, 0x85CF, 0x9CF8, 0xBA73, 0x6AD3, 0x6A06, 0xAF13, 0xB2C2, 0xA560, 0x8194, 0x922D, 0xB8B2, 0x8232, 0xE383, 0xCBA1, 0x9C3A, 0xD73C, 0xCAE2, 0xE67B, 0x06F6, 0xDA58, 0xFEEB, 0x038A, 0x1BD4, 0x1399, 0x18C6, 0x0E33, 0x08A8, 0x04B7, 0x0B7A, 0x0AC2, 0x39D7, 0x551F, 0x8A54, 0x93A8, 0x84B0, 0x9B65, 0xB712, 0xCCC1, 0xC0E5, 0xC9BB, 0xA7C8, 0x93E6, 0xC585, 0xC3D3, 0xEACD, 0xDAAA, 0xF818, 0x0706, 0x0157, 0xFBCB, 0x121D, 0xE24D, 0xD469, 0xABC3, 0x9F56, 0xC12E, 0xEB08, 0x0C9F, 0x0003, 0x2862, 0x2C79, 0x3A0D, 0x03F7, 0xEB8D, 0xB024, 0x6D72, 0x8C11, 0x6772, 0x73B5, 0x6899, 0x3267, 0x1953, 0x48B3, 0x66F8, 0x9792, 0x9450, 0x941C, 0x64A2, 0x616E, 0xA4BE, 0x9188, 0xD489, 0xEFF2, 0xF965, 0x0B1D, 0xFBFE, 0xE35A, 0xE13C, 0xE7DF, 0xE529, 0xEEC5, 0x1D53, 0x30B7, 0x5C3A, 0x5734, 0x32E7, 0x47E8, 0x3374, 0x0128, 0x6323, 0x5B52, 0x38B9, 0x2989, 0x38E4, 0x242C, 0x59B5, 0x00FF, 0xEBA3, 0xF1BD, 0x2613, 0x3D03, 0x2C47, 0x2206, 0x12DE, 0x08D4, 0x4321, 0x2C53, 0x48BD, 0x54EE, 0x288C, 0x1326, 0xDA6D, 0xCCB9, 0x9207, 0x8166, 0x3F08, 0x0937, 0xE645, 0xC6E9, 0x18C4, 0xFA18, 0xFECB, 0x2310, 0x0CE4, 0x0347, 0xE85C, 0xF6D2, 0xF650, 0xDF6C, 0xEA15, 0x1390, 0x10BC, 0x1013, 0x074B, 0xB48C, 0xC3CF, 0xCC4F, 0xA929, 0xA885, 0xA08A, 0x9611, 0x6E8F, 0x649F, 0x56FB, 0x58CE, 0x46DC, 0x31AA, 0x7000, 0x5C69, 0x85D9, 0x5806, 0x5A45, 0x3017, 0x161E, 0x1EDC, 0x0156, 0x22EA, 0x22AF, 0x7A2F, 0xAFE2, 0xDAF2, 0xCDF8, 0xC1CB, 0xDBF3, 0x01EE, 0x2837, 0x70D2, 0x646A, 0x51AF, 0x6500, 0x324D, 0x15BB, 0x2C04, 0x2A70, 0xF537, 0x08D7, 0x1D08, 0xF71C, 0xEEB2, 0xD00B, 0xE82B, 0xB0D3, 0x709F, 0x9D25, 0x7201, 0x640C, 0x7EA3, 0x8707, 0x664C, 0x7251, 0x6236, 0x78AB, 0x5DC8, 0x600E, 0x6329, 0x3009, 0x7BE0, 0x7A3F, 0x7280, 0x60FC, 0x764E, 0x9885, 0xBE71, 0xE9EB, 0x0341, 0x0DA9, 0xFE03, 0x2CD1, 0x419A, 0x4C31, 0x48B7, 0x4DDD, 0x6F23, 0x65AE, 0x784E, 0xA8DF, 0x8370, 0xB271, 0xFF2A, 0x0526, 0x272B, 0xFA0D, 0xED8C, 0x1C69, 0x60F9, 0x415F, 0x6B92, 0x8E5E, 0x95BF, 0x9865, 0x860B, 0xA4FC, 0x0438, 0x0072, 0xDAB5, 0xE1A2, 0xFBD0, 0xC84E, 0xC4E9, 0xE61A, 0xD397, 0xDC76, 0xC745, 0xC392, 0xE1C1, 0xF02D, 0xE32A, 0xD683, 0xB4BF, 0xB9D5, 0xBFF7, 0xC273, 0xA8F5, 0xCB8A, 0xCA8D, 0xF3A9, 0xC7F2, 0xC17A, 0xD153, 0xBB3C, 0xC690, 0xA820, 0x932C, 0xA77B, 0x8D59, 0xC505, 0xC1E3, 0xDEDE, 0xD62F, 0xB739, 0xACA4, 0xBEFD, 0x9C58, 0xA1FB, 0xBAB4, 0xC5CE, 0xA5F9, 0x9616, 0x97F6, 0x8666, 0x6A39, 0x6152, 0x8D2F, 0xAAB3, 0x98D4, 0x6B7C, 0x4E1E, 0x6257, 0x77D1, 0x5795, 0x6AFD, 0x68E8, 0x6E8A, 0x8EE1, 0x8E04, 0x9585, 0x829B, 0x8EA1, 0x7FAE, 0x4772, 0x4D51, 0x6021, 0x5CF8, 0x556D, 0x46E7 }; int seq_checkref = 0xB18A; 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