} else
void  Msmooth::EdgeMaskYV12(const unsigned char *srcp, unsigned char *blurp, unsigned char *workp, unsigned char *maskp,                        int row_size, int height, int src_pitch, int blur_pitch){	const unsigned char *srcp_saved = srcp;	const unsigned char *srcpp;	const unsigned char *srcpn;	unsigned char *blurp_saved = blurp;	const unsigned char *blurpn;	unsigned char *workp_saved = workp;	unsigned char *workpp;	unsigned char *workpn;	unsigned char *maskp_saved = maskp;	int x, y;	int y1, y2, y3, y4;	/* Blur the source image prior to detail detection. */	#if defined(USE_MMX)		//printf("MMX\n");		Blur_MMX((uint8_t *)srcp,(uint8_t *)workp,row_size,height);		Blur_MMX((uint8_t *)workp,(uint8_t *)blurp,row_size,height);	#endif	#ifdef HAVE_ALTIVEC	#define ISALIGNED(x) (!( ((long long)x)&15 ))		if( ISALIGNED(srcp) && ISALIGNED(blurp) && ISALIGNED(workp) && ISALIGNED(maskp) && !(src_pitch&15))		{			Blur_Altivec((uint8_t *)srcp,(uint8_t *)workp,row_size,height);			Blur_Altivec((uint8_t *)workp,(uint8_t *)blurp,row_size,height);		}		else	#endif	{		Blur_C((uint8_t *)srcp,(uint8_t *)workp,row_size,height);		Blur_C((uint8_t *)workp,(uint8_t *)blurp,row_size,height);	}	/* Diagonal detail detection. */	blurp = (unsigned char *) workp_saved;	blurpn = blurp + blur_pitch;	maskp = maskp_saved;	y1 = blurp[0];	y3 = blurpn[0];	for (y = 0; y < height - 1; y++) 	{		for (x = 0; x < row_size - 1; x++)		{			y2 = blurp[x+1];			y4 = blurpn[x+1];			if ((abs(y1 - y4) >= _param->threshold) || (abs(y2 - y3) >= _param->threshold))			{				maskp[x] = 0xff;			}			else			{				maskp[x] = 0x0;			}			y1 = y2; y3 = y4;		}		maskp += blur_pitch;		blurp += blur_pitch;		blurpn += blur_pitch;	}	/* If set for high quality, also do horizontal and vertical	   detail detection. */	if ( _param->highq == true)	{		/* Msmooth convolve vertical. */		for (x = 0; x < row_size; x++)		{ 			blurp = blurp_saved;			blurpn = blurp + blur_pitch;			maskp = maskp_saved;			y1 = blurp[x];			for (y = 0; y < height - 1; y++)			{				y2 = blurpn[x];				if (abs(y1 - y2) >= _param->threshold)				{					maskp[x] = 0xff;				}				y1 = y2;				maskp += blur_pitch;				blurp += blur_pitch;				blurpn += blur_pitch;			}		}		/* Msmooth convolve horizontal. */		blurp = blurp_saved;		maskp = maskp_saved;		for (y = 0; y < height; y++)		{			y1 = blurp[0];			for (x = 0; x < row_size - 1; x++)			{				y2 = blurp[x+1];				if (abs(y1 - y2) >= _param->threshold)				{					maskp[x] = 0xff;				}				y1 = y2;			}			maskp += blur_pitch;			blurp += blur_pitch;		}	}	/* Fix up detail map borders. */	maskp = maskp_saved;	memset(maskp, 0xff, row_size);	memset(maskp + (height-1)*blur_pitch, 0xff, row_size);	for (y = 0; y < height; y++)	{//		*((unsigned int *)(&maskp[0])) = 0xffffffff;//		*((unsigned int *)(&maskp[row_size-1])) = 0xffffffff;		maskp[0] = 0xff;		maskp[row_size-1] = 0xff;		maskp += blur_pitch;	}}