⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 motion_comp.c

📁 au1200 linux2.6.11 硬件解码mae驱动和maiplayer播放器源码
💻 C
📖 第 1 页 / 共 3 页
字号:
	  dest[5] =	(((((ref[5] + (ref + stride)[5] + 1) >> 1)) + dest[5] + 1) >> 1);      	  LumaData[LumaOffset + x + y * 8 + z * 8] = (((((ref[6] + (ref + stride)[6] + 1) >> 1)))); x++;	  dest[6] =	(((((ref[6] + (ref + stride)[6] + 1) >> 1)) + dest[6] + 1) >> 1);      	  LumaData[LumaOffset + x + y * 8 + z * 8] = (((((ref[7] + (ref + stride)[7] + 1) >> 1)))); x++;	  dest[7] =	(((((ref[7] + (ref + stride)[7] + 1) >> 1)) + dest[7] + 1) >> 1);      	  x = 0;	  y+=8;	  LumaData[LumaOffset + x + y * 8 + z * 8] = (((((ref[8] + (ref + stride)[8] + 1) >> 1)))); x++;	  dest[8] =	(((((ref[8] + (ref + stride)[8] + 1) >> 1)) + dest[8] + 1) >> 1);      	  LumaData[LumaOffset + x + y * 8 + z * 8] = (((((ref[9] + (ref + stride)[9] + 1) >> 1)))); x++;	  dest[9] =	(((((ref[9] + (ref + stride)[9] + 1) >> 1)) + dest[9] + 1) >> 1);      	  LumaData[LumaOffset + x + y * 8 + z * 8] = (((((ref[10] + (ref + stride)[10] + 1) >> 1)))); x++;	  dest[10] = (((((ref[10] + (ref + stride)[10] + 1) >> 1)) + dest[10] + 1) >> 1);      	  LumaData[LumaOffset + x + y * 8 + z * 8] = (((((ref[11] + (ref + stride)[11] + 1) >> 1)))); x++;	  dest[11] = (((((ref[11] + (ref + stride)[11] + 1) >> 1)) + dest[11] + 1) >> 1);      	  LumaData[LumaOffset + x + y * 8 + z * 8] = (((((ref[12] + (ref + stride)[12] + 1) >> 1)))); x++;	  dest[12] = (((((ref[12] + (ref + stride)[12] + 1) >> 1)) + dest[12] + 1) >> 1);      	  LumaData[LumaOffset + x + y * 8 + z * 8] = (((((ref[13] + (ref + stride)[13] + 1) >> 1)))); x++;	  dest[13] = (((((ref[13] + (ref + stride)[13] + 1) >> 1)) + dest[13] + 1) >> 1);      	  LumaData[LumaOffset + x + y * 8 + z * 8] = (((((ref[14] + (ref + stride)[14] + 1) >> 1)))); x++;	  dest[14] = (((((ref[14] + (ref + stride)[14] + 1) >> 1)) + dest[14] + 1) >> 1);      	  LumaData[LumaOffset + x + y * 8 + z * 8] = (((((ref[15] + (ref + stride)[15] + 1) >> 1)))); x++;	  dest[15] = (((((ref[15] + (ref + stride)[15] + 1) >> 1)) + dest[15] + 1) >> 1);      	  x = 0;	  y = 0;	  z+=1;	  z = (z == 8) ? 16 : z;	  ref += stride;      dest += stride;    }  while (--height);}static voidMC_avg_y_8_c (uint8_t * dest, const uint8_t * ref, const int stride,	      int height){	int x;	x = 0;  do    {	  ChromaData[ChromaOffset + x++] = (((((ref[0] + (ref + stride)[0] + 1) >> 1))));      dest[0] = (((((ref[0] + (ref + stride)[0] + 1) >> 1)) + dest[0] + 1) >> 1);      	  ChromaData[ChromaOffset + x++] = (((((ref[1] + (ref + stride)[1] + 1) >> 1))));	  dest[1] = (((((ref[1] + (ref + stride)[1] + 1) >> 1)) + dest[1] + 1) >> 1);      	  ChromaData[ChromaOffset + x++] = (((((ref[2] + (ref + stride)[2] + 1) >> 1))));	  dest[2] = (((((ref[2] + (ref + stride)[2] + 1) >> 1)) + dest[2] + 1) >> 1);      	  ChromaData[ChromaOffset + x++] = (((((ref[3] + (ref + stride)[3] + 1) >> 1))));	  dest[3] = (((((ref[3] + (ref + stride)[3] + 1) >> 1)) + dest[3] + 1) >> 1);      	  ChromaData[ChromaOffset + x++] = (((((ref[4] + (ref + stride)[4] + 1) >> 1))));	  dest[4] = (((((ref[4] + (ref + stride)[4] + 1) >> 1)) + dest[4] + 1) >> 1);      	  ChromaData[ChromaOffset + x++] = (((((ref[5] + (ref + stride)[5] + 1) >> 1))));	  dest[5] = (((((ref[5] + (ref + stride)[5] + 1) >> 1)) + dest[5] + 1) >> 1);      	  ChromaData[ChromaOffset + x++] = (((((ref[6] + (ref + stride)[6] + 1) >> 1))));	  dest[6] = (((((ref[6] + (ref + stride)[6] + 1) >> 1)) + dest[6] + 1) >> 1);      	  ChromaData[ChromaOffset + x++] = (((((ref[7] + (ref + stride)[7] + 1) >> 1))));	  dest[7] = (((((ref[7] + (ref + stride)[7] + 1) >> 1)) + dest[7] + 1) >> 1);      ref += stride;      dest += stride;    }  while (--height);}static voidMC_put_xy_16_c (uint8_t * dest, const uint8_t * ref, const int stride,		int height){	int x,y,z;	x = y = z = 0;  do    {      LumaData[LumaOffset + x + y * 8 + z * 8] = (((ref[0] + ref[0 + 1] + (ref + stride)[0] + (ref + stride)[0 + 1] + 2)>> 2)); x++;      dest[0] = (((ref[0] + ref[0 + 1] + (ref + stride)[0] + (ref + stride)[0 + 1] + 2) >> 2));      	  LumaData[LumaOffset + x + y * 8 + z * 8] = (((ref[1] + ref[1 + 1] + (ref + stride)[1] + (ref + stride)[1 + 1] + 2)>> 2)); x++;	  dest[1] = (((ref[1] + ref[1 + 1] + (ref + stride)[1] + (ref + stride)[1 + 1] + 2) >> 2));      	  LumaData[LumaOffset + x + y * 8 + z * 8] = (((ref[2] + ref[2 + 1] + (ref + stride)[2] + (ref + stride)[2 + 1] + 2)>> 2)); x++;	  dest[2] = (((ref[2] + ref[2 + 1] + (ref + stride)[2] + (ref + stride)[2 + 1] + 2) >> 2));      	  LumaData[LumaOffset + x + y * 8 + z * 8] = (((ref[3] + ref[3 + 1] + (ref + stride)[3] + (ref + stride)[3 + 1] + 2)>> 2)); x++;	  dest[3] = (((ref[3] + ref[3 + 1] + (ref + stride)[3] + (ref + stride)[3 + 1] + 2) >> 2));      	  LumaData[LumaOffset + x + y * 8 + z * 8] = (((ref[4] + ref[4 + 1] + (ref + stride)[4] + (ref + stride)[4 + 1] + 2)>> 2)); x++;	  dest[4] = (((ref[4] + ref[4 + 1] + (ref + stride)[4] + (ref + stride)[4 + 1] + 2) >> 2));      	  LumaData[LumaOffset + x + y * 8 + z * 8] = (((ref[5] + ref[5 + 1] + (ref + stride)[5] + (ref + stride)[5 + 1] + 2)>> 2)); x++;	  dest[5] = (((ref[5] + ref[5 + 1] + (ref + stride)[5] + (ref + stride)[5 + 1] + 2) >> 2));      	  LumaData[LumaOffset + x + y * 8 + z * 8] = (((ref[6] + ref[6 + 1] + (ref + stride)[6] + (ref + stride)[6 + 1] + 2)>> 2)); x++;	  dest[6] = (((ref[6] + ref[6 + 1] + (ref + stride)[6] + (ref + stride)[6 + 1] + 2) >> 2));      	  LumaData[LumaOffset + x + y * 8 + z * 8] = (((ref[7] + ref[7 + 1] + (ref + stride)[7] + (ref + stride)[7 + 1] + 2)>> 2)); x++;	  dest[7] = (((ref[7] + ref[7 + 1] + (ref + stride)[7] + (ref + stride)[7 + 1] + 2) >> 2));      	  x = 0;	  y = 8;	  LumaData[LumaOffset + x + y * 8 + z * 8] = (((ref[8] + ref[8 + 1] + (ref + stride)[8] + (ref + stride)[8 + 1] + 2)>> 2)); x++;	  dest[8] = (((ref[8] + ref[8 + 1] + (ref + stride)[8] + (ref + stride)[8 + 1] + 2) >> 2));      	  LumaData[LumaOffset + x + y * 8 + z * 8] = (((ref[9] + ref[9 + 1] + (ref + stride)[9] + (ref + stride)[9 + 1] + 2)>> 2)); x++;	  dest[9] = (((ref[9] + ref[9 + 1] + (ref + stride)[9] + (ref + stride)[9 + 1] + 2) >> 2));      	  LumaData[LumaOffset + x + y * 8 + z * 8] = (((ref[10] + ref[10 + 1] + (ref + stride)[10] + (ref + stride)[10 + 1] + 2)>> 2)); x++;	  dest[10] = (((ref[10] + ref[10 + 1] + (ref + stride)[10] + (ref + stride)[10 + 1] + 2) >> 2));      	  LumaData[LumaOffset + x + y * 8 + z * 8] = (((ref[11] + ref[11 + 1] + (ref + stride)[11] + (ref + stride)[11 + 1] + 2)>> 2)); x++;	  dest[11] = (((ref[11] + ref[11 + 1] + (ref + stride)[11] + (ref + stride)[11 + 1] + 2) >> 2));      	  LumaData[LumaOffset + x + y * 8 + z * 8] = (((ref[12] + ref[12 + 1] + (ref + stride)[12] + (ref + stride)[12 + 1] + 2)>> 2)); x++;	  dest[12] = (((ref[12] + ref[12 + 1] + (ref + stride)[12] + (ref + stride)[12 + 1] + 2) >> 2));      	  LumaData[LumaOffset + x + y * 8 + z * 8] = (((ref[13] + ref[13 + 1] + (ref + stride)[13] + (ref + stride)[13 + 1] + 2)>> 2)); x++;	  dest[13] = (((ref[13] + ref[13 + 1] + (ref + stride)[13] + (ref + stride)[13 + 1] + 2) >> 2));      	  LumaData[LumaOffset + x + y * 8 + z * 8] = (((ref[14] + ref[14 + 1] + (ref + stride)[14] + (ref + stride)[14 + 1] + 2)>> 2)); x++;	  dest[14] = (((ref[14] + ref[14 + 1] + (ref + stride)[14] + (ref + stride)[14 + 1] + 2) >> 2));      	  LumaData[LumaOffset + x + y * 8 + z * 8] = (((ref[15] + ref[15 + 1] + (ref + stride)[15] + (ref + stride)[15 + 1] + 2)>> 2)); x++;	  dest[15] = (((ref[15] + ref[15 + 1] + (ref + stride)[15] + (ref + stride)[15 + 1] + 2) >> 2));      	  	  x = 0;	  y = 0;	  z+=1;	  z = (z == 8) ? 16 : z;	  ref += stride;      dest += stride;    }  while (--height);}static voidMC_put_xy_8_c (uint8_t * dest, const uint8_t * ref, const int stride,	       int height){	int x;	x = 0;  do    {	  ChromaData[ChromaOffset + x++] =		  dest[0] = (((ref[0] + ref[0 + 1] + (ref + stride)[0] + (ref + stride)[0 + 1] + 2) >> 2));	  ChromaData[ChromaOffset + x++] =		  dest[1] = (((ref[1] + ref[1 + 1] + (ref + stride)[1] + (ref + stride)[1 + 1] + 2) >> 2));	  ChromaData[ChromaOffset + x++] =		  dest[2] = (((ref[2] + ref[2 + 1] + (ref + stride)[2] + (ref + stride)[2 + 1] + 2) >> 2));	  ChromaData[ChromaOffset + x++] =		  dest[3] = (((ref[3] + ref[3 + 1] + (ref + stride)[3] + (ref + stride)[3 + 1] + 2) >> 2));	  ChromaData[ChromaOffset + x++] =		  dest[4] = (((ref[4] + ref[4 + 1] + (ref + stride)[4] + (ref + stride)[4 + 1] + 2) >> 2));	  ChromaData[ChromaOffset + x++] =		  dest[5] =	(((ref[5] + ref[5 + 1] + (ref + stride)[5] + (ref + stride)[5 + 1] + 2) >> 2));	  ChromaData[ChromaOffset + x++] = 		  dest[6] =	(((ref[6] + ref[6 + 1] + (ref + stride)[6] + (ref + stride)[6 + 1] + 2) >> 2));	  ChromaData[ChromaOffset + x++] =		  dest[7] =	(((ref[7] + ref[7 + 1] + (ref + stride)[7] + (ref + stride)[7 + 1] + 2) >> 2));      	  ref += stride;      dest += stride;    }  while (--height);}static voidMC_avg_xy_16_c (uint8_t * dest, const uint8_t * ref, const int stride,		int height){	int x,y,z;	x = y = z = 0;  do    {      LumaData[LumaOffset + x + y * 8 + z * 8] = (((((ref[0] + ref[0 + 1] + (ref + stride)[0] + (ref + stride)[0 + 1] + 2) >> 2))));      dest[0] =	(((((ref[0] + ref[0 + 1] + (ref + stride)[0] + (ref + stride)[0 + 1] + 2) >> 2)) + dest[0] + 1) >> 1);	  x++;	  LumaData[LumaOffset + x + y * 8 + z * 8] =	(((((ref[1] + ref[1 + 1] + (ref + stride)[1] + (ref + stride)[1 + 1] + 2) >> 2))));      dest[1] =	(((((ref[1] + ref[1 + 1] + (ref + stride)[1] + (ref + stride)[1 + 1] + 2) >> 2)) + dest[1] + 1) >> 1);	  x++;	  LumaData[LumaOffset + x + y * 8 + z * 8] =	(((((ref[2] + ref[2 + 1] + (ref + stride)[2] + (ref + stride)[2 + 1] + 2) >> 2))));      dest[2] =	(((((ref[2] + ref[2 + 1] + (ref + stride)[2] + (ref + stride)[2 + 1] + 2) >> 2)) + dest[2] + 1) >> 1);	  x++;	  LumaData[LumaOffset + x + y * 8 + z * 8] =	(((((ref[3] + ref[3 + 1] + (ref + stride)[3] + (ref + stride)[3 + 1] + 2) >> 2))));      dest[3] =	(((((ref[3] + ref[3 + 1] + (ref + stride)[3] + (ref + stride)[3 + 1] + 2) >> 2)) + dest[3] + 1) >> 1);	  x++;	  LumaData[LumaOffset + x + y * 8 + z * 8] =	(((((ref[4] + ref[4 + 1] + (ref + stride)[4] + (ref + stride)[4 + 1] + 2) >> 2))));      dest[4] =	(((((ref[4] + ref[4 + 1] + (ref + stride)[4] + (ref + stride)[4 + 1] + 2) >> 2)) + dest[4] + 1) >> 1);	  x++;	  LumaData[LumaOffset + x + y * 8 + z * 8] =	(((((ref[5] + ref[5 + 1] + (ref + stride)[5] + (ref + stride)[5 + 1] + 2) >> 2))));      dest[5] =	(((((ref[5] + ref[5 + 1] + (ref + stride)[5] + (ref + stride)[5 + 1] + 2) >> 2)) + dest[5] + 1) >> 1);      x++;	  LumaData[LumaOffset + x + y * 8 + z * 8] =	(((((ref[6] + ref[6 + 1] + (ref + stride)[6] + (ref + stride)[6 + 1] + 2) >> 2))));      dest[6] =	(((((ref[6] + ref[6 + 1] + (ref + stride)[6] + (ref + stride)[6 + 1] + 2) >> 2)) + dest[6] + 1) >> 1);	  x++;	  LumaData[LumaOffset + x + y * 8 + z * 8] =	(((((ref[7] + ref[7 + 1] + (ref + stride)[7] + (ref + stride)[7 + 1] + 2) >> 2))));      dest[7] =	(((((ref[7] + ref[7 + 1] + (ref + stride)[7] + (ref + stride)[7 + 1] + 2) >> 2)) + dest[7] + 1) >> 1);	  x++;	  x = 0;	  y = 8;	  LumaData[LumaOffset + x + y * 8 + z * 8] =	(((((ref[8] + ref[8 + 1] + (ref + stride)[8] + (ref + stride)[8 + 1] + 2) >> 2))));      dest[8] =	(((((ref[8] + ref[8 + 1] + (ref + stride)[8] + (ref + stride)[8 + 1] + 2) >> 2)) + dest[8] + 1) >> 1);	  x++;	  LumaData[LumaOffset + x + y * 8 + z * 8] =	(((((ref[9] + ref[9 + 1] + (ref + stride)[9] + (ref + stride)[9 + 1] + 2) >> 2))));      dest[9] =	(((((ref[9] + ref[9 + 1] + (ref + stride)[9] + (ref + stride)[9 + 1] + 2) >> 2)) + dest[9] + 1) >> 1);	  x++;	  LumaData[LumaOffset + x + y * 8 + z * 8] = (((((ref[10] + ref[10 + 1] + (ref + stride)[10] + (ref + stride)[10 + 1] + 2) >> 2))));      dest[10] = (((((ref[10] + ref[10 + 1] + (ref + stride)[10] + (ref + stride)[10 + 1] + 2) >> 2)) + dest[10] + 1) >> 1);	  x++;	  LumaData[LumaOffset + x + y * 8 + z * 8] = (((((ref[11] + ref[11 + 1] + (ref + stride)[11] + (ref + stride)[11 + 1] + 2) >> 2))));      dest[11] = (((((ref[11] + ref[11 + 1] + (ref + stride)[11] + (ref + stride)[11 + 1] + 2) >> 2)) + dest[11] + 1) >> 1);	  x++;	  LumaData[LumaOffset + x + y * 8 + z * 8] = (((((ref[12] + ref[12 + 1] + (ref + stride)[12] + (ref + stride)[12 + 1] + 2) >> 2))));      dest[12] = (((((ref[12] + ref[12 + 1] + (ref + stride)[12] + (ref + stride)[12 + 1] + 2) >> 2)) + dest[12] + 1) >> 1);	  x++;	  LumaData[LumaOffset + x + y * 8 + z * 8] = (((((ref[13] + ref[13 + 1] + (ref + stride)[13] + (ref + stride)[13 + 1] + 2) >> 2))));      dest[13] = (((((ref[13] + ref[13 + 1] + (ref + stride)[13] + (ref + stride)[13 + 1] + 2) >> 2)) + dest[13] + 1) >> 1);	  x++;	  LumaData[LumaOffset + x + y * 8 + z * 8] = (((((ref[14] + ref[14 + 1] + (ref + stride)[14] + (ref + stride)[14 + 1] + 2) >> 2))));      dest[14] = (((((ref[14] + ref[14 + 1] + (ref + stride)[14] + (ref + stride)[14 + 1] + 2) >> 2)) + dest[14] + 1) >> 1);	  x++;	  LumaData[LumaOffset + x + y * 8 + z * 8] = (((((ref[15] + ref[15 + 1] + (ref + stride)[15] + (ref + stride)[15 + 1] + 2) >> 2))));      dest[15] = (((((ref[15] + ref[15 + 1] + (ref + stride)[15] + (ref + stride)[15 + 1] + 2) >> 2)) + dest[15] + 1) >> 1);	  x++;	  x = 0;	  y = 0;	  z+=1;	  z = (z == 8) ? 16 : z;      ref += stride;      dest += stride;    }  while (--height);}static voidMC_avg_xy_8_c (uint8_t * dest, const uint8_t * ref, const int stride,	       int height){	int x;	x = 0;  do    {	  ChromaData[ChromaOffset + x++] = (((((ref[0] + ref[0 + 1] + (ref + stride)[0] + (ref + stride)[0 + 1] + 2) >> 2))));      dest[0] = (((((ref[0] + ref[0 + 1] + (ref + stride)[0] + (ref + stride)[0 + 1] + 2) >> 2)) + dest[0] + 1) >> 1);	  ChromaData[ChromaOffset + x++] = (((((ref[1] + ref[1 + 1] + (ref + stride)[1] + (ref + stride)[1 + 1] + 2) >> 2))));      dest[1] =	(((((ref[1] + ref[1 + 1] + (ref + stride)[1] + (ref + stride)[1 + 1] + 2) >> 2)) + dest[1] + 1) >> 1);	  ChromaData[ChromaOffset + x++] = (((((ref[2] + ref[2 + 1] + (ref + stride)[2] + (ref + stride)[2 + 1] + 2) >> 2))));      dest[2] =	(((((ref[2] + ref[2 + 1] + (ref + stride)[2] + (ref + stride)[2 + 1] + 2) >> 2)) + dest[2] + 1) >> 1);	  ChromaData[ChromaOffset + x++] = (((((ref[3] + ref[3 + 1] + (ref + stride)[3] + (ref + stride)[3 + 1] + 2) >> 2))));      dest[3] =	(((((ref[3] + ref[3 + 1] + (ref + stride)[3] + (ref + stride)[3 + 1] + 2) >> 2)) + dest[3] + 1) >> 1);	  ChromaData[ChromaOffset + x++] = (((((ref[4] + ref[4 + 1] + (ref + stride)[4] + (ref + stride)[4 + 1] + 2) >> 2))));      dest[4] =	(((((ref[4] + ref[4 + 1] + (ref + stride)[4] + (ref + stride)[4 + 1] + 2) >> 2)) + dest[4] + 1) >> 1);	  ChromaData[ChromaOffset + x++] = (((((ref[5] + ref[5 + 1] + (ref + stride)[5] + (ref + stride)[5 + 1] + 2) >> 2))));      dest[5] =	(((((ref[5] + ref[5 + 1] + (ref + stride)[5] + (ref + stride)[5 + 1] + 2) >> 2)) + dest[5] + 1) >> 1);	  ChromaData[ChromaOffset + x++] = (((((ref[6] + ref[6 + 1] + (ref + stride)[6] + (ref + stride)[6 + 1] + 2) >> 2))));      dest[6] =	(((((ref[6] + ref[6 + 1] + (ref + stride)[6] + (ref + stride)[6 + 1] + 2) >> 2)) + dest[6] + 1) >> 1);	  ChromaData[ChromaOffset + x++] = (((((ref[7] + ref[7 + 1] + (ref + stride)[7] + (ref + stride)[7 + 1] + 2) >> 2))));      dest[7] =	(((((ref[7] + ref[7 + 1] + (ref + stride)[7] + (ref + stride)[7 + 1] + 2) >> 2)) + dest[7] + 1) >> 1);      	  ref += stride;      dest += stride;    }  while (--height);}mpeg2_mc_t mpeg2_mc_c =  { {MC_put_o_16_c, MC_put_x_16_c, MC_put_y_16_c, MC_put_xy_16_c,     MC_put_o_8_c, MC_put_x_8_c, MC_put_y_8_c, MC_put_xy_8_c}, {MC_avg_o_16_c, MC_avg_x_16_c, MC_avg_y_16_c, MC_avg_xy_16_c, MC_avg_o_8_c,   MC_avg_x_8_c, MC_avg_y_8_c, MC_avg_xy_8_c}};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -