typedef struct { int mvd[2][(16/4)][(16/4)][2]; } Macroblock; typedef struct { int part_size[8][2]; } InputParameters; typedef struct { Macroblock *mb_data; short****** pred_mv; short****** all_mv; } ImageParameters; extern InputParameters *input; extern ImageParameters *img; int writeMotionVector8x8 (void) { int i, j, k, l, m; int step_h = input->part_size[7][0]; int step_v = input->part_size[7][1]; Macroblock* currMB = &img->mb_data[9]; int refindex = 0; short****** all_mv = img->all_mv; short****** pred_mv = img->pred_mv; for (k=0; k<2; k++) { int curr_mvd = all_mv[2][8][0][8][7][8] - pred_mv[2][7][0][8][7][0]; for (l=0; l < step_v; l++) for (m=0; m < step_h; m++) currMB->mvd[0][8][9][8] = curr_mvd; } }