/************************************************************************** * * Program: checksum_paris_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 paris 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 "paris_qcif" #define NUM_FRAMES 1065 int frame_checkref[NUM_FRAMES] = { 0x560A, 0x59C8, 0x74AF, 0x6350, 0x42CF, 0x36AF, 0x2D80, 0x4966, 0x42A4, 0x4C6C, 0x5F38, 0x6D1F, 0x736F, 0x7F49, 0xB226, 0x76A3, 0xB3A4, 0x91CE, 0x9979, 0x8102, 0x6A99, 0x4D3C, 0x48E6, 0x535F, 0x50ED, 0x2E0B, 0x5270, 0x498B, 0x59C5, 0x6C03, 0x84CE, 0x7195, 0xBBA6, 0xB4B7, 0xD484, 0xCC83, 0xEBC8, 0xD662, 0xCBC8, 0xC7BA, 0xD41E, 0xE99C, 0xDC8B, 0xC190, 0x9035, 0x935C, 0x8E09, 0x7BEC, 0x6663, 0x773F, 0x57AB, 0x7C80, 0x6DE6, 0xA8BA, 0x969A, 0xA642, 0x9653, 0xD17D, 0xDDD8, 0xC410, 0xCAC1, 0xF2BD, 0xDED6, 0xD3D3, 0xAFD2, 0xA441, 0x95E2, 0x9B2E, 0x9BBC, 0x8B89, 0xABFE, 0xD501, 0xCEAC, 0xD9C9, 0xC52C, 0xF1AB, 0x11EF, 0xCFD1, 0xBD8F, 0xE0AC, 0xB203, 0x861F, 0x8E15, 0x71B0, 0x31C9, 0x5676, 0x6045, 0x321D, 0x35FA, 0x7077, 0x6AC0, 0x7D4D, 0x723E, 0x98F0, 0x6CC3, 0x7892, 0xA0FC, 0xAB5B, 0xBD3B, 0xB4AE, 0xC6C9, 0xB712, 0xB222, 0xA455, 0x7E95, 0x8D07, 0x7D87, 0x6F4D, 0x763F, 0x5A80, 0x79B1, 0x6AEB, 0x5B04, 0x7ED2, 0x8ECE, 0x9369, 0xACC7, 0xF254, 0xFAF4, 0xEB1F, 0xD255, 0xEF5E, 0xDFA4, 0xEB6B, 0xC2C5, 0xAC25, 0xA01D, 0x80AA, 0x7B56, 0x787A, 0xAA59, 0xBD81, 0xB4AD, 0xD879, 0xF3FC, 0xCED7, 0xC7B0, 0xC6FB, 0xB65C, 0x9945, 0x90A7, 0x8EE3, 0x7D83, 0x85FE, 0x5BD9, 0x91D5, 0xB180, 0xA172, 0xC2E5, 0xD220, 0xD6DD, 0xD1E8, 0xC7A0, 0xD062, 0xD348, 0xAFC3, 0xCBA6, 0x9E84, 0x8DA4, 0x7DAF, 0x74FF, 0x68DA, 0x6461, 0x8C80, 0x8A96, 0x9BE8, 0x8116, 0xA528, 0xB59A, 0xD41F, 0xCDC3, 0xB566, 0xA891, 0x9BEB, 0x7979, 0x8778, 0x7207, 0x7886, 0x97E6, 0x835E, 0xA314, 0xB473, 0xA496, 0x928D, 0x7ABF, 0x9962, 0xA082, 0xA959, 0xBCAE, 0xB78E, 0xB097, 0xD7D4, 0xA47F, 0x87B8, 0x9E6F, 0x7717, 0x6A37, 0x6094, 0x5015, 0x577C, 0x4E29, 0x67FB, 0x6BA5, 0x8432, 0x8DBA, 0xBDA6, 0xFA92, 0x1C19, 0x4A7F, 0x311E, 0x0692, 0x2420, 0x0E5E, 0xEA78, 0xEDE1, 0xEABB, 0xD470, 0xC8A1, 0x8706, 0x736A, 0x36D0, 0x58EA, 0x6BE0, 0x9163, 0x70D2, 0x7EB7, 0x5A1C, 0x62D5, 0x8437, 0xACBE, 0xB8B6, 0x8EE4, 0x7D6D, 0x7896, 0x8285, 0x95DC, 0x882A, 0x8417, 0x8FDD, 0x4ADA, 0x68D8, 0x480B, 0x1A5A, 0x3693, 0x09C9, 0x099B, 0x00DE, 0xF15F, 0x06C4, 0xF20D, 0xFC3F, 0xE984, 0x0BCE, 0x1A8E, 0x010F, 0x1568, 0xF848, 0x1BA1, 0x3C5D, 0x0090, 0x1081, 0x2A48, 0x3FFE, 0x38EE, 0x25A9, 0x059C, 0x05B8, 0xF39A, 0xE6B3, 0xE5D1, 0xD73B, 0xCB69, 0xE3C9, 0xF92E, 0xE42C, 0xEEFF, 0xC9B0, 0xF358, 0x1AD5, 0xF32C, 0xD181, 0xFE65, 0xE80B, 0xFFA5, 0x0DF2, 0xEC7C, 0xCE37, 0xDE18, 0xDAB1, 0xE8F6, 0xE6DC, 0x0C31, 0x186E, 0xF030, 0xDB40, 0xE58E, 0xB02B, 0x5F30, 0x5764, 0x810B, 0x74E7, 0x6642, 0x3319, 0x2AC1, 0x1E8F, 0x4029, 0x3794, 0x4BD9, 0x6880, 0x5626, 0x6238, 0x774D, 0x9D23, 0xB2D5, 0xB960, 0xC4B7, 0x8FFF, 0x79CB, 0x6DD4, 0x7F98, 0x82BC, 0x6AFF, 0x46B0, 0x6402, 0x8593, 0x9056, 0x7FE3, 0x887E, 0x7605, 0xABC0, 0xAE1B, 0xD060, 0xB6BE, 0xD69D, 0xD7AA, 0xE5AE, 0xE554, 0xE85F, 0x13AD, 0x1DAE, 0x2895, 0x0B62, 0x1603, 0xFFFF, 0xF35A, 0x08A4, 0xEA71, 0xECD3, 0xF4E6, 0x0E07, 0xE164, 0xCE08, 0x18C3, 0x051B, 0x140A, 0x2193, 0x15D5, 0x121E, 0x1D4E, 0x0F2D, 0x2A36, 0x1EF7, 0x25CD, 0x3589, 0x0AB2, 0xFC9A, 0x0857, 0x1982, 0x0444, 0x2881, 0x3866, 0x57A6, 0x5C89, 0x8BA5, 0x930A, 0x8C99, 0x9196, 0x63C2, 0x6FA6, 0x7EE9, 0x7C1F, 0x76BF, 0x6D0C, 0x5BE8, 0x6332, 0x6AB2, 0x444B, 0x3A88, 0x5570, 0x62AB, 0x69DD, 0x57A8, 0x5A86, 0x5AC5, 0x4ECF, 0x7948, 0x777D, 0x7AD0, 0x81A8, 0x8669, 0xB88B, 0xB2FF, 0xB917, 0xDB4B, 0xDC03, 0xC0F7, 0xB76A, 0xC103, 0xAE6D, 0xA419, 0x5945, 0x802A, 0xBF8C, 0xA2A1, 0xC982, 0xE0B1, 0xEF85, 0x10C1, 0x301F, 0x57E5, 0x677D, 0x7277, 0x5B11, 0x5AA8, 0x5432, 0x5192, 0x1E1B, 0x03D9, 0xF57C, 0x0168, 0xE2C3, 0xE976, 0xB0E8, 0xADA0, 0x9462, 0xA6F4, 0xD587, 0xDF24, 0xA85D, 0xD06F, 0xBFDC, 0xC7EA, 0xCC4A, 0xB801, 0x981F, 0x9492, 0x828E, 0x74AB, 0x9769, 0x90B6, 0xA3DD, 0x9963, 0xA390, 0xC4E8, 0xA91D, 0xABDF, 0x9CF8, 0xC41D, 0xD2EC, 0xCE0B, 0xCD67, 0xD8E4, 0xD1B1, 0xE57B, 0xE660, 0xE2DF, 0xCF1C, 0xC89C, 0xB526, 0xA407, 0xAAA7, 0xC2C1, 0xAE93, 0xA993, 0x9E6A, 0x932C, 0x91F4, 0x808E, 0x884C, 0x9A00, 0x9385, 0x9314, 0x93E3, 0x8862, 0x84D3, 0xB0FB, 0x972A, 0x7B60, 0x6ABA, 0x56B6, 0x50A3, 0x609E, 0x65B3, 0x5C46, 0x64E6, 0x6DD5, 0x47BC, 0x4568, 0x4DF7, 0x3942, 0x5626, 0x4822, 0x4BF8, 0x6DA1, 0x7038, 0x8C6F, 0x7117, 0x5F58, 0x559F, 0x5C6B, 0x4496, 0x48A6, 0x4C4B, 0x2C98, 0x0FF9, 0x21F7, 0x808C, 0x790D, 0x2F33, 0x4692, 0x2D73, 0x06D8, 0x0821, 0x0DBF, 0xF12E, 0xB296, 0xA5FD, 0xB2F7, 0x916A, 0xA112, 0xD149, 0xB90E, 0xB9EE, 0xBCCC, 0x7851, 0x7B4D, 0x76AF, 0x7676, 0x7BA3, 0x4B64, 0x3D0A, 0x2693, 0x1D67, 0x369D, 0x471D, 0x54DF, 0x6F54, 0x6535, 0x56ED, 0x5411, 0x2C19, 0xEE46, 0xF604, 0xBD64, 0xA6CB, 0xB179, 0x9A45, 0xAD90, 0x0579, 0xEEF8, 0xF125, 0x32E5, 0xF173, 0x2C8A, 0x5927, 0x3DA3, 0x7653, 0x521C, 0x8D7E, 0xAD8D, 0xDF2A, 0xE2DA, 0x31CD, 0x2C4B, 0x218F, 0x268A, 0xEA78, 0x0734, 0x274C, 0x3702, 0x1F86, 0x2D28, 0x0CE7, 0x12B8, 0x13DC, 0x38DF, 0x1A6C, 0x0E41, 0x04DF, 0x1DF6, 0x2E5B, 0x037A, 0x3D91, 0x5372, 0x5A2D, 0x3F72, 0x24E8, 0x3AF1, 0x4BBE, 0x4D99, 0x5B77, 0x5BA1, 0x3D8C, 0x3950, 0x14FE, 0x38C1, 0x47AC, 0x6049, 0x6A53, 0x7117, 0x66A4, 0x9A18, 0x7DB4, 0x6C6F, 0x6147, 0x8267, 0x6771, 0x93CA, 0xBB52, 0xADAF, 0xB18E, 0xD26E, 0x98CB, 0xB5DA, 0xC0DB, 0xBC87, 0x8F07, 0x7E59, 0x7A45, 0x7B96, 0x7E34, 0x905E, 0xA1A5, 0xA971, 0x85AC, 0x74E4, 0x8B50, 0x7917, 0x4C3B, 0x64CC, 0x9709, 0xA7AF, 0xAF1A, 0xBBAA, 0xA46D, 0xE030, 0xE183, 0x0B69, 0x22BD, 0x3811, 0x3C07, 0x3E8A, 0x2B5F, 0x00D9, 0x0DFF, 0x1976, 0x13ED, 0x0177, 0x076E, 0xEAE0, 0x04BC, 0x0108, 0x0763, 0xF8BA, 0xF4F9, 0xFFD7, 0x0A3E, 0x0B20, 0xFDFD, 0xF805, 0xF7E6, 0xEE54, 0xEFB0, 0x00AB, 0xE6F0, 0xF614, 0xDE81, 0xC1D0, 0xA9CE, 0xA0D9, 0x7282, 0x6BA3, 0x78BB, 0x7449, 0x71A0, 0x66CE, 0x5F19, 0x57DD, 0x72CF, 0x759C, 0x8FB5, 0xB169, 0xB031, 0xB6A4, 0x951F, 0xB578, 0xADC7, 0x9903, 0x9356, 0xAD2E, 0x9530, 0x86CD, 0x98EB, 0x8835, 0xCD4D, 0xE5FE, 0xFCEA, 0xC306, 0xA177, 0xA577, 0x9943, 0x9F14, 0x7320, 0x4118, 0x5AFE, 0x64CD, 0x846E, 0xAB0F, 0xD650, 0xE912, 0xF643, 0xED94, 0x168C, 0xECC2, 0xDC0B, 0xF6F6, 0xD760, 0xFDE5, 0x35F1, 0x4D48, 0x3073, 0x3BA9, 0x47B5, 0x5B9D, 0x4E6F, 0x5028, 0x383D, 0x3C71, 0x1EA9, 0x207E, 0x15BD, 0x0D6A, 0x2489, 0x0C4B, 0xFE89, 0xEE30, 0xE34A, 0xFF4F, 0x1F4D, 0x121E, 0xFDDD, 0xE224, 0xC88B, 0xD338, 0xF096, 0xFCB8, 0xD53B, 0x0086, 0xDD56, 0xEB57, 0xDA36, 0xCD59, 0xB23D, 0xBDD2, 0xC9F1, 0xCE17, 0xCAE3, 0xEF60, 0xDBB3, 0xDC07, 0xD103, 0xE6F7, 0xF367, 0x1326, 0xF542, 0x23E5, 0x19E2, 0x1A73, 0x011D, 0x2C1C, 0x31A5, 0x11C1, 0xFF52, 0xE2CE, 0xE680, 0xEBCF, 0xED1B, 0xD443, 0xB9E2, 0xC48F, 0xE939, 0xDA0A, 0xD0D8, 0xD717, 0xBB43, 0xB288, 0xD523, 0xDA41, 0xD801, 0xBD77, 0xAC8D, 0xA0C5, 0xA344, 0xB3D0, 0xA479, 0x8E3B, 0x8468, 0x9B4C, 0x7D41, 0x76A5, 0x57B5, 0x7470, 0x5E1A, 0x7093, 0x7513, 0x54DE, 0x4CFF, 0x5021, 0x400D, 0x10C1, 0x2B12, 0x4675, 0x295B, 0x4E49, 0x2BB4, 0x2B8B, 0x166A, 0x0899, 0xF764, 0xE467, 0xD035, 0xD5B4, 0xBBCF, 0xB4C1, 0x9C77, 0xE28E, 0xC4F1, 0xBE97, 0xD1C2, 0xC183, 0xB59A, 0xBB19, 0x9204, 0xA3AA, 0xB5E5, 0xCF4E, 0xC21A, 0xE7EC, 0xEF95, 0x0431, 0x14AC, 0xF083, 0xDC55, 0xF4F0, 0x021E, 0xDB81, 0x029E, 0xD994, 0x1389, 0x1CD6, 0x1036, 0x13EC, 0x1190, 0xD59A, 0xF54A, 0xDCF0, 0xE87D, 0xD993, 0xDC8D, 0xFA42, 0xE9EE, 0xC296, 0xA312, 0xA159, 0x7304, 0x7F03, 0x9A54, 0xBE96, 0x9140, 0xA7CA, 0x8545, 0x8156, 0x8C66, 0xA4B2, 0xB7C7, 0xBAAA, 0xDA35, 0xCF6C, 0xBFAD, 0xEE1F, 0x23CF, 0x30C3, 0x059A, 0xFC30, 0x33AF, 0x145E, 0x3E0C, 0x346D, 0x474D, 0x3D98, 0x2C60, 0x2DB3, 0x178B, 0xF19C, 0xFE04, 0xF46C, 0x0E47, 0xD98A, 0xC3D6, 0x083B, 0x0E2A, 0x207D, 0x0269, 0x2D26, 0x2206, 0x1814, 0x24C7, 0x0E28, 0xDA2D, 0xD612, 0xF426, 0xFC32, 0x0462, 0x0C5B, 0x299E, 0x4ED4, 0x3BF3, 0x2D28, 0xFCAF, 0x1247, 0x0643, 0xD1E0, 0xAA41, 0xB5EA, 0xC5D3, 0xDA22, 0xC201, 0xBC5F, 0xCEFA, 0xF1FD, 0xD1C4, 0xD710, 0xF8A1, 0xDDDA, 0xF7A1, 0x1C8A, 0x1CFB, 0x03CF, 0xFA97, 0x0E2B, 0xF967, 0x042D, 0xEB21, 0xEABF, 0xD02D, 0xB064, 0xBB73, 0xBB19, 0xC25D, 0xC826, 0xED15, 0xBDB3, 0xADD0, 0xC932, 0xB943, 0xA681, 0xB6BB, 0xAF2C, 0xC2D3, 0xE275, 0xCB49, 0xA4A0, 0xAD54, 0xCB57, 0xB06F, 0xB891, 0xBFF8, 0xA9ED, 0xB4CD, 0xC790, 0xEDDE, 0xD8CE, 0xDEBD, 0xE16D, 0xE876, 0xDBFC, 0xF4B0, 0x16D4, 0xFB69, 0xE2BD, 0x9896, 0xAC1B, 0xBC97, 0xCBA4, 0xDB01, 0xE12B, 0xED84, 0xEFF9, 0xD984, 0xF607, 0xFD84, 0xEE29, 0xD443, 0xE12D, 0xF575, 0xFD46, 0xEEF5, 0x00AC, 0xD4F1, 0xD24C, 0xD60C, 0xCBD4, 0xE3B4, 0xCB92, 0xE903, 0xD8FE, 0xFDB2, 0xE2D4, 0x0EAD, 0xEBC7, 0xEB31, 0x0006, 0x2282, 0x37B9, 0x48EF, 0x546E, 0x59BD, 0x5244, 0x59EF, 0x712B, 0x56B2, 0x6F78, 0x64F4, 0x5F35, 0x6042, 0x6C1B, 0x5EBF, 0x719D, 0x7C87, 0x7BA5, 0x73EC, 0x737B, 0x4F9C, 0x3407, 0x403F, 0x4DA8, 0x3049, 0x5BA3, 0x4073, 0x3FD6, 0x33C0, 0x4DFA, 0x2021, 0x2931, 0x292D, 0x24FF, 0x21CE, 0x2B27, 0x2635, 0x30B5, 0x4B99, 0x43D0, 0x2BB8, 0x48B8, 0x4032 }; int seq_checkref = 0xD460; 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