1 typedef struct 2 { 3 int mvd[2][(16/4)][(16/4)][2]; 4 } Macroblock; 5 typedef struct 6 { 7 int part_size[8][2]; 8 } InputParameters; 9 typedef struct 10 { 11 Macroblock *mb_data; 12 short****** pred_mv; 13 short****** all_mv; 14 } ImageParameters; 15 extern InputParameters *input; 16 extern ImageParameters *img; writeMotionVector8x8(void)17int writeMotionVector8x8 (void) 18 { 19 int i, j, k, l, m; 20 int step_h = input->part_size[7][0]; 21 int step_v = input->part_size[7][1]; 22 Macroblock* currMB = &img->mb_data[9]; 23 int refindex = 0; 24 short****** all_mv = img->all_mv; 25 short****** pred_mv = img->pred_mv; 26 27 for (k=0; k<2; k++) 28 { 29 int curr_mvd = all_mv[2][8][0][8][7][8] - pred_mv[2][7][0][8][7][0]; 30 for (l=0; l < step_v; l++) 31 for (m=0; m < step_h; m++) 32 currMB->mvd[0][8][9][8] = curr_mvd; 33 } 34 } 35