void dump_frame (SchroLowDelay *lowdelay) { int i, j, k; int16_t *line; SchroFrameData *fd; SchroParams *params = lowdelay->params; for(k=0;k<1+3*params->transform_depth;k++) { fd = lowdelay->chroma1_subbands + k; for(j=0;j<fd->height;j++){ #if 0 int checksum = 0; line = SCHRO_FRAME_DATA_GET_LINE(fd, j); for(i=0;i<fd->width;i++){ checksum *= 12345; checksum += line[i]; } SCHRO_ERROR("%d %d %d", k, j, checksum); #else line = SCHRO_FRAME_DATA_GET_LINE(fd, j); for(i=0;i<fd->width;i++){ SCHRO_ERROR("%d %d %d %d", k, j, i, line[i]); } #endif } } }
void schro_motion_init_obmc_weight (SchroMotion * motion) { int i; int j; int wx, wy; for (i = 0; i < motion->xblen; i++) { if (motion->xoffset == 0) { wx = 8; } else if (i < 2 * motion->xoffset) { wx = get_ramp (i, motion->xoffset); } else if (motion->xblen - 1 - i < 2 * motion->xoffset) { wx = get_ramp (motion->xblen - 1 - i, motion->xoffset); } else { wx = 8; } motion->weight_x[i] = wx; } for (j = 0; j < motion->yblen; j++) { if (motion->yoffset == 0) { wy = 8; } else if (j < 2 * motion->yoffset) { wy = get_ramp (j, motion->yoffset); } else if (motion->yblen - 1 - j < 2 * motion->yoffset) { wy = get_ramp (motion->yblen - 1 - j, motion->yoffset); } else { wy = 8; } motion->weight_y[j] = wy; } for (j = 0; j < motion->yblen; j++) { int16_t *w = SCHRO_FRAME_DATA_GET_LINE (&motion->obmc_weight, j); for (i = 0; i < motion->xblen; i++) { w[i] = motion->weight_x[i] * motion->weight_y[j]; } } }