rendered paste bodyvoid encode_i_frame (IFrame *i_frame)
{
double coeff[FRAME_HEIGHT * FRAME_WIDTH];
int i, j;
int index;
/* zig-zag coding */
for (index = 0; index < 64; index++)
{
for (i = 0; i < DCT_BLOCKS_Y; i++)
{
for (j = 0; j < DCT_BLOCKS_X; j++)
coeff[index * DCT_BLOCKS_Y * DCT_BLOCKS_X + i * DCT_BLOCKS_X + j] =
*i_frame->y_component->blocks[i][j].zig_zag[index];
}
}
int run = 0;
int code_buffer[25344];
index = 0;
/* run, level coding */
for (i = 0; i < FRAME_HEIGHT * FRAME_WIDTH; i++)
{
if (coeff[i] == 0)
{
run++;
continue;
}
printf ("%i ", i);
code_buffer[index] = run; /* (run, */
code_buffer[index + 1] = coeff[i]; /* level) */
index += 2;
run = 0;
}
/*
for (i = 0; i < 100; i++)
printf ("%f ", coeff[i]);
*/
}