Example #1
0
void sub_pred_altivec_verify(SUB_PRED_PDECL)
{
    int i;
    unsigned long checksum1, checksum2;
    signed short blkcpy[8*8];

    sub_pred_altivec(SUB_PRED_ARGS);
    for (checksum1 = i = 0; i < 8*8; i++)
	checksum1 += abs(blk[i]);

    memcpy(blkcpy, blk, 8*8*sizeof(short));

    ALTIVEC_TEST_WITH(sub_pred)(SUB_PRED_ARGS);
    for (checksum2 = i = 0; i < 8*8; i++)
	checksum2 += abs(blk[i]);

    if (checksum1 != checksum2) {
	mjpeg_debug("sub_pred(" SUB_PRED_PFMT ")", SUB_PRED_ARGS);
	mjpeg_debug("sub_pred: checksums differ %d != %d",
	    checksum1, checksum2);

	for (i = 0; i < 8*8; i++) {
	    if (blkcpy[i] != blk[i]) {
		mjpeg_debug("sub_pred: blk[%d] %d != %d",
		    i, blkcpy[i], blk[i]);
	    }
	}
    }
}
Example #2
0
void add_pred_altivec_verify(ADD_PRED_PDECL)
{
    int i, j;
    unsigned long checksum1, checksum2;
    uint8_t *pcur;
    uint8_t curcpy[8][8];

    add_pred_altivec(ADD_PRED_ARGS);
    pcur = cur;
    checksum1 = 0;
    for (j = 0; j < 8; j++) {
	for (i = 0; i < 8; i++) {
	    checksum1 += pcur[i];
	    curcpy[j][i] = pcur[i];
	}
	pcur += lx;
    }

    ALTIVEC_TEST_WITH(add_pred)(ADD_PRED_ARGS);
    pcur = cur;
    checksum2 = 0;
    for (j = 0; j < 8; j++) {
	for (i = 0; i < 8; i++)
	    checksum2 += pcur[i];
	pcur += lx;
    }

    if (checksum1 != checksum2) {
	mjpeg_debug("add_pred(" ADD_PRED_PFMT ")", ADD_PRED_ARGS);
	mjpeg_debug("add_pred: checksums differ %d != %d",
	    checksum1, checksum2);

	pcur = cur;
	checksum1 = 0;
	for (j = 0; j < 8; j++) {
	    for (i = 0; i < 8; i++) {
		if (curcpy[j][i] != pcur[i])
		    mjpeg_debug("add_pred: cur[%d][%d] %d != %d",
			j, i, curcpy[j][i], pcur[i]);
	    }
	    pcur += lx;
	}
    }
}
Example #3
0
void subsample_image_altivec_verify(SUBSAMPLE_IMAGE_PDECL)
{
    int width, height;
    unsigned long checksum44_1, checksum44_2;
    unsigned long checksum22_1, checksum22_2;
    unsigned char *cpy22, *cpy44;

    width = rowstride;
    height = (unsigned long)(sub22_image - image) / rowstride;

    cpy22 = (unsigned char*)malloc((width/2) * (height/2));
    cpy44 = (unsigned char*)malloc((width/4) * (height/4));
    if (cpy22 == NULL || cpy44 == NULL)
	mjpeg_error_exit1("subsample_image: malloc failed");

    subsample_image_altivec(SUBSAMPLE_IMAGE_ARGS);
    checksum22_1 = checksum(sub22_image, width/2, height/2, rowstride/2);
    checksum44_1 = checksum(sub44_image, width/4, height/4, rowstride/4);

    /* copy data for imgcmp */
    imgcpy(cpy22, sub22_image, width/2, height/2, rowstride/2);
    imgcpy(cpy44, sub44_image, width/4, height/4, rowstride/4);

    ALTIVEC_TEST_WITH(subsample_image)(SUBSAMPLE_IMAGE_ARGS);
    checksum22_2 = checksum(sub22_image, width/2, height/2, rowstride/2);
    checksum44_2 = checksum(sub44_image, width/4, height/4, rowstride/4);

    if (checksum22_1 != checksum22_2 || checksum44_1 != checksum44_2) {
	mjpeg_debug("subsample_image(" SUBSAMPLE_IMAGE_PFMT ")",
	    SUBSAMPLE_IMAGE_ARGS);
	if (checksum22_1 != checksum22_2)
	    mjpeg_debug("subsample_image: %s checksums differ %d != %d",
		"2*2", checksum22_1, checksum22_2);
	if (checksum44_1 != checksum44_2)
	    mjpeg_debug("subsample_image: %s checksums differ %d != %d",
		"4*4", checksum44_1, checksum44_2);

	imgcmp("2*2", cpy22, sub22_image, width/2, height/2, rowstride/2);
	imgcmp("4*4", cpy44, sub44_image, width/4, height/4, rowstride/4);
    }

    free(cpy22);
    free(cpy44);
}
Example #4
0
void iquant_intra_m2_altivec_verify(IQUANT_INTRA_PDECL)
{
    iquant_intra_altivec_verify(IQUANT_INTRA_ARGS,
	iquant_intra_m2_altivec, ALTIVEC_TEST_WITH(iquant_intra_m2));
}