亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mem_transfer.c

?? 用MPEG-4對YUV視頻文件編碼壓縮成divx視頻文件
?? C
?? 第 1 頁 / 共 3 頁
字號:
	uint32_t const *ptr_src = src;
	uint8_t   *ptr_dst = dst;   /*cannot add const*/
	int32_t src0,src1,src2,src3;
	uint32_t clip_src0,clip_src1,clip_src2,clip_src3;
	uint32_t stride1;
	stride1 = stride - 8;

	for (j = 0; j < 8; j++) {
		
		src0 = *(ptr_src++);
		src1 = *(ptr_src++);
		src2 = *(ptr_src++);
		src3 = *(ptr_src++);
		clip_src0 = DUALUCLIPI(src0,255);
		clip_src1 = DUALUCLIPI(src1,255);
		clip_src2 = DUALUCLIPI(src2,255);
		clip_src3 = DUALUCLIPI(src3,255);
		
		*(ptr_dst++) = (uint8_t)UBYTESEL(clip_src0,0);
		*(ptr_dst++) = (uint8_t)UBYTESEL(clip_src0,2);
		*(ptr_dst++) = (uint8_t)UBYTESEL(clip_src1,0);
		*(ptr_dst++) = (uint8_t)UBYTESEL(clip_src1,2);
		*(ptr_dst++) = (uint8_t)UBYTESEL(clip_src2,0);
		*(ptr_dst++) = (uint8_t)UBYTESEL(clip_src2,2);
		*(ptr_dst++) = (uint8_t)UBYTESEL(clip_src3,0);
		*(ptr_dst++) = (uint8_t)UBYTESEL(clip_src3,2);
		ptr_dst += stride1;
	
		/*for (i = 0; i < 8; i++) {
			pixel = src[j * 8 + i];

			if (pixel < 0) {
				pixel = 0;
			} 
			else if (pixel > 255) {
				pixel = 255;
			}
			dst[j * stride + i] = (uint8_t) pixel;
		}*/
		
	}
}
#endif
#ifdef optimize_16to8copy_4
void
transfer_16to8copy_c(uint8_t * const dst,		/*<--> the destination buffer*/
					 const int16_t * const src,	/*<--  the source buffer*/
					 uint32_t stride)			/*<--  stride*/
{
	uint32_t i, j;
	int16_t pixel ;
	uint32_t const *ptr_src = src;
	uint8_t   *ptr_dst = dst;   /*cannot add const*/
	int32_t src0,src1,src2,src3;
	uint32_t clip_src0,clip_src1,clip_src2,clip_src3;
	

	for (j = 0; j < 8; j++) {
		
		src0 = *(ptr_src+0);
		src1 = *(ptr_src+1);
		src2 = *(ptr_src+2);
		src3 = *(ptr_src+3);
		clip_src0 = DUALUCLIPI(src0,255);
		clip_src1 = DUALUCLIPI(src1,255);
		clip_src2 = DUALUCLIPI(src2,255);
		clip_src3 = DUALUCLIPI(src3,255);
		
		*(ptr_dst+0) = (uint8_t)UBYTESEL(clip_src0,0);
		*(ptr_dst+1) = (uint8_t)UBYTESEL(clip_src0,2);
		*(ptr_dst+2) = (uint8_t)UBYTESEL(clip_src1,0);
		*(ptr_dst+3) = (uint8_t)UBYTESEL(clip_src1,2);
		*(ptr_dst+4) = (uint8_t)UBYTESEL(clip_src2,0);
		*(ptr_dst+5) = (uint8_t)UBYTESEL(clip_src2,2);
		*(ptr_dst+6) = (uint8_t)UBYTESEL(clip_src3,0);
		*(ptr_dst+7) = (uint8_t)UBYTESEL(clip_src3,2);
		ptr_dst += stride;
		ptr_src += 4;
		
	
		/*for (i = 0; i < 8; i++) {
			pixel = src[j * 8 + i];

			if (pixel < 0) {
				pixel = 0;
			} 
			else if (pixel > 255) {
				pixel = 255;
			}
			dst[j * stride + i] = (uint8_t) pixel;
		}*/
		
	}
}
#endif
/*!
 ************************************************************************   
 * \brief
 *    the function does the 8->16 bit transfer and this serie of operations 
 *	  R   (8bit)  = R
 *    C   (8bit)  = R
 *    DCT (16bit) = C - R
 ************************************************************************
 */
#ifdef _TRIMEDIA
#define  optimize_8to16sub_3        /*useful*/
#endif

#ifndef _TRIMEDIA
void
transfer_8to16sub_c(int16_t * const dct,		/*<--> the dct coefficient buffer*/
					uint8_t * const cur,		/*<-->in:the current buffer/out:save the ref*/	
					const uint8_t * ref,		/*<-- the reference buffer*/
					const uint32_t stride		/*<-- the dct coefficient buffer*/
					)
{
	uint32_t i, j;

	for (j = 0; j < 8; j++) {
		for (i = 0; i < 8; i++) {
			uint8_t c = cur[j * stride + i];
			uint8_t r = ref[j * stride + i];

			cur[j * stride + i] = r;
			dct[j * 8 + i] = (int16_t) c - (int16_t) r;
		}
	}
}
#endif 

#ifdef  optimize_8to16sub_2
void
transfer_8to16sub_c(int16_t * const dct,		/*<--> the dct coefficient buffer*/
					uint8_t * const cur,		/*<-->in:the current buffer/out:save the ref*/	
					const uint8_t * ref,		/*<-- the reference buffer*/
					const uint32_t stride		/*<-- the dct coefficient buffer*/
					)
{
	uint32_t i, j;
	uint32_t  * ptr_cur = cur;
	uint32_t const * ptr_ref = ref;
	int32_t  * ptr_dct = dct;
	uint32_t src0,src1,src2;
	uint32_t ref0,ref1,ref2;
	uint32_t ref16_0,ref16_1,ref16_2,ref16_3;
	uint32_t cur0,cur1;
	uint32_t cur16_0,cur16_1,cur16_2,cur16_3;
	
	uint32_t cur_ref_stride;
	uint32_t temp;
	temp = ((uint32_t)ref)&3;
	cur_ref_stride = stride >>2;
	if(!temp)    /*word align*/
	{
		for (j=0; j < 8; j++) {
			ref0 = *(ptr_ref);
			ref1 = *(ptr_ref+1);
			ref16_0 = MERGELSB(0,ref0);
			ref16_1 = MERGEMSB(0,ref0);
			ref16_2 = MERGELSB(0,ref1);
			ref16_3 = MERGEMSB(0,ref1);
			cur0 = *(ptr_cur);
			cur1 = *(ptr_cur+1);
			cur16_0 = MERGELSB(0,cur0);
			cur16_1 = MERGEMSB(0,cur0);
			cur16_2 = MERGELSB(0,cur1);
			cur16_3 = MERGEMSB(0,cur1);
			*(ptr_cur ) = ref0;
			*(ptr_cur+1)= ref1;
			*(ptr_dct)  = DSPIDUALSUB(cur16_0,ref16_0);
			*(ptr_dct+1)  = DSPIDUALSUB(cur16_1,ref16_1);
			*(ptr_dct+2)  = DSPIDUALSUB(cur16_2,ref16_2);
			*(ptr_dct+3)  = DSPIDUALSUB(cur16_3,ref16_3);
			ptr_ref += cur_ref_stride;
			ptr_cur += cur_ref_stride;
			ptr_dct += 4;
			
		}
			
	}
	else if(temp==1)
	{
		for(j =0; j < 8; j++)
		{
		
			/*get three word*/
			src0 = *(ptr_ref);
			src1 = *(ptr_ref+1);
			src2 = *(ptr_ref+2);	
			/*make up two word*/
			ref0 = FUNSHIFT3(src1,src0);
			ref1 = FUNSHIFT3(src2,src1);
			ref16_0 = MERGELSB(0,ref0);
			ref16_1 = MERGEMSB(0,ref0);
			ref16_2 = MERGELSB(0,ref1);
			ref16_3 = MERGEMSB(0,ref1);
			cur0 = *(ptr_cur);
			cur1 = *(ptr_cur+1);
			cur16_0 = MERGELSB(0,cur0);
			cur16_1 = MERGEMSB(0,cur0);
			cur16_2 = MERGELSB(0,cur1);
			cur16_3 = MERGEMSB(0,cur1);
			*(ptr_cur ) = ref0;
			*(ptr_cur+1)= ref1;
			*(ptr_dct)  = DSPIDUALSUB(cur16_0,ref16_0);
			*(ptr_dct+1)  = DSPIDUALSUB(cur16_1,ref16_1);
			*(ptr_dct+2)  = DSPIDUALSUB(cur16_2,ref16_2);
			*(ptr_dct+3)  = DSPIDUALSUB(cur16_3,ref16_3);
			ptr_ref += cur_ref_stride;
			ptr_cur += cur_ref_stride;
			ptr_dct += 4;
			
			

		}
	}
	else if(temp==2)
	{
		for(j =0; j < 8; j++)
		{
		
			/*get three word*/
			src0 = *(ptr_ref);
			src1 = *(ptr_ref+1);
			src2 = *(ptr_ref+2);	
			/*make up two word*/
			ref0 = FUNSHIFT2(src1,src0);
			ref1 = FUNSHIFT2(src2,src1);
			ref16_0 = MERGELSB(0,ref0);
			ref16_1 = MERGEMSB(0,ref0);
			ref16_2 = MERGELSB(0,ref1);
			ref16_3 = MERGEMSB(0,ref1);
			cur0 = *(ptr_cur);
			cur1 = *(ptr_cur+1);
			cur16_0 = MERGELSB(0,cur0);
			cur16_1 = MERGEMSB(0,cur0);
			cur16_2 = MERGELSB(0,cur1);
			cur16_3 = MERGEMSB(0,cur1);
			*(ptr_cur ) = ref0;
			*(ptr_cur+1)= ref1;
			*(ptr_dct)  = DSPIDUALSUB(cur16_0,ref16_0);
			*(ptr_dct+1)  = DSPIDUALSUB(cur16_1,ref16_1);
			*(ptr_dct+2)  = DSPIDUALSUB(cur16_2,ref16_2);
			*(ptr_dct+3)  = DSPIDUALSUB(cur16_3,ref16_3);
			ptr_ref += cur_ref_stride;
			ptr_cur += cur_ref_stride;
			ptr_dct += 4;
			
			

		}
	}
	else if(temp==3)
	{
		for(j =0; j < 8; j++)
		{
		
			/*get three word*/
			src0 = *(ptr_ref);
			src1 = *(ptr_ref+1);
			src2 = *(ptr_ref+2);	
			/*make up two word*/
			ref0 = FUNSHIFT1(src1,src0);
			ref1 = FUNSHIFT1(src2,src1);
			ref16_0 = MERGELSB(0,ref0);
			ref16_1 = MERGEMSB(0,ref0);
			ref16_2 = MERGELSB(0,ref1);
			ref16_3 = MERGEMSB(0,ref1);
			cur0 = *(ptr_cur);
			cur1 = *(ptr_cur+1);
			cur16_0 = MERGELSB(0,cur0);
			cur16_1 = MERGEMSB(0,cur0);
			cur16_2 = MERGELSB(0,cur1);
			cur16_3 = MERGEMSB(0,cur1);
			*(ptr_cur ) = ref0;
			*(ptr_cur+1)= ref1;
			*(ptr_dct)  = DSPIDUALSUB(cur16_0,ref16_0);
			*(ptr_dct+1)  = DSPIDUALSUB(cur16_1,ref16_1);
			*(ptr_dct+2)  = DSPIDUALSUB(cur16_2,ref16_2);
			*(ptr_dct+3)  = DSPIDUALSUB(cur16_3,ref16_3);
			ptr_ref += cur_ref_stride;
			ptr_cur += cur_ref_stride;
			ptr_dct += 4;
			
			

		}
	}

}
#endif 

#ifdef  optimize_8to16sub_3
void
transfer_8to16sub_c(int16_t * const dct,		/*<--> the dct coefficient buffer*/
					uint8_t * const cur,		/*<-->in:the current buffer/out:save the ref*/	
					const uint8_t * ref,		/*<-- the reference buffer*/
					const uint32_t stride		/*<-- the dct coefficient buffer*/
					)
{
	uint32_t i, j;

/*	
	uint32_t  * restrict ptr_cur = (uint32_t  *)cur;
	const uint32_t * restrict ptr_ref = (const uint32_t *)ref;
	int32_t  * restrict ptr_dct = (int32_t *)dct;
*/
	uint32_t  * ptr_cur = (uint32_t  *)cur;
	const uint32_t * ptr_ref = (const uint32_t *)ref;
	int32_t  * ptr_dct = (int32_t *)dct;

	uint32_t src0,src1,src2;
	uint32_t ref0,ref1,ref2;
	uint32_t ref16_0,ref16_1,ref16_2,ref16_3;
	uint32_t cur0,cur1;
	uint32_t cur16_0,cur16_1,cur16_2,cur16_3;
	
	uint32_t cur_ref_stride;
	uint32_t temp;
	temp = ((uint32_t)ref)&3;
	cur_ref_stride = (stride >>2)-1;
	if(!temp)    /*word align*/
	{
		for (j=0; j < 8; j++) {
			ref0 = *(ptr_ref++);
			ref1 = *(ptr_ref);
			ref16_0 = MERGELSB(0,ref0);
			ref16_1 = MERGEMSB(0,ref0);
			ref16_2 = MERGELSB(0,ref1);
			ref16_3 = MERGEMSB(0,ref1);
			cur0 = *(ptr_cur++);
			cur1 = *(ptr_cur--);
			cur16_0 = MERGELSB(0,cur0);
			cur16_1 = MERGEMSB(0,cur0);
			cur16_2 = MERGELSB(0,cur1);
			cur16_3 = MERGEMSB(0,cur1);
			*(ptr_cur++ ) = ref0;
			*(ptr_cur ) = ref1;
			*(ptr_dct++)  = DSPIDUALSUB(cur16_0,ref16_0);
			*(ptr_dct++)  = DSPIDUALSUB(cur16_1,ref16_1);
			*(ptr_dct++)  = DSPIDUALSUB(cur16_2,ref16_2);
			*(ptr_dct++)  = DSPIDUALSUB(cur16_3,ref16_3);
			ptr_ref += cur_ref_stride;
			ptr_cur += cur_ref_stride;
			/*ptr_dct += 4;*/
			
		}
			
	}
	else if(temp==1)
	{
		for(j =0; j < 8; j++)
		{
		
			/*get three word*/
			src0 = *(ptr_ref++);
			src1 = *(ptr_ref++);
			src2 = *(ptr_ref--);	
			/*make up two word*/
			ref0 = FUNSHIFT3(src1,src0);
			ref1 = FUNSHIFT3(src2,src1);
			ref16_0 = MERGELSB(0,ref0);
			ref16_1 = MERGEMSB(0,ref0);
			ref16_2 = MERGELSB(0,ref1);
			ref16_3 = MERGEMSB(0,ref1);
			cur0 = *(ptr_cur++);
			cur1 = *(ptr_cur--);
			cur16_0 = MERGELSB(0,cur0);
			cur16_1 = MERGEMSB(0,cur0);
			cur16_2 = MERGELSB(0,cur1);
			cur16_3 = MERGEMSB(0,cur1);
			*(ptr_cur++) = ref0;
			*(ptr_cur  )= ref1;
			*(ptr_dct++)  = DSPIDUALSUB(cur16_0,ref16_0);
			*(ptr_dct++)  = DSPIDUALSUB(cur16_1,ref16_1);
			*(ptr_dct++)  = DSPIDUALSUB(cur16_2,ref16_2);
			*(ptr_dct++)  = DSPIDUALSUB(cur16_3,ref16_3);
			ptr_ref += cur_ref_stride;
			ptr_cur += cur_ref_stride;
			/*ptr_dct += 4;*/
			
			

		}
	}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区色| 成人动漫一区二区在线| av一区二区三区在线| 91精品在线观看入口| 自拍偷自拍亚洲精品播放| 精东粉嫩av免费一区二区三区| 色综合久久天天综合网| 久久久亚洲综合| 青青草原综合久久大伊人精品 | 国产精品网站在线观看| 日本欧洲一区二区| 欧美三日本三级三级在线播放| 18成人在线观看| 国产91精品一区二区麻豆网站| 欧美一区二区日韩| 热久久一区二区| 7777精品伊人久久久大香线蕉超级流畅 | 国产99精品在线观看| 69堂成人精品免费视频| 亚洲综合免费观看高清完整版在线| 国产精品自产自拍| 91精品国产综合久久久蜜臀粉嫩| 亚洲一区二区三区四区在线免费观看| 国产99久久久精品| 国产亚洲综合在线| 国产一区二区在线视频| 久久毛片高清国产| 国产精品资源在线看| 国产欧美日韩激情| 成人美女视频在线观看18| 中文字幕一区视频| 91在线免费播放| 亚洲天堂成人网| 欧美午夜一区二区三区免费大片| 亚洲一区二区三区美女| 欧美夫妻性生活| 美腿丝袜一区二区三区| 精品国产制服丝袜高跟| 国产成人免费在线观看| 国产精品美女久久久久av爽李琼 | 精品国产精品一区二区夜夜嗨| 蜜臀av一区二区在线免费观看| 日韩视频在线观看一区二区| 久久精品国产99| wwwwww.欧美系列| 成人性色生活片| 亚洲欧美视频在线观看| 欧美少妇性性性| 久久国产生活片100| 久久久久88色偷偷免费| 色综合欧美在线| 天堂va蜜桃一区二区三区漫画版| 日韩欧美一级在线播放| 国产精品亚洲第一区在线暖暖韩国 | 欧美亚洲一区二区在线观看| 日韩精品欧美精品| 久久亚洲二区三区| 色综合色综合色综合| 免费精品视频在线| www激情久久| 欧美午夜精品理论片a级按摩| 久久99精品久久久久久动态图 | 99久久精品免费看国产| 亚洲成人动漫精品| 国产日韩精品视频一区| 欧美色网站导航| 国产福利一区二区三区视频在线| 亚洲麻豆国产自偷在线| 日韩女优av电影在线观看| av电影天堂一区二区在线| 免费在线看一区| 亚洲欧美电影一区二区| 精品久久久三级丝袜| 日本高清不卡视频| 国产精品一卡二卡| 石原莉奈在线亚洲二区| 欧美国产精品专区| 日韩午夜在线观看视频| 91精品1区2区| av不卡在线观看| 国产乱子轮精品视频| 婷婷六月综合网| 亚洲特黄一级片| 久久久久久免费| 日韩一二三四区| 欧美日韩久久一区| 99久久综合国产精品| 国内成人精品2018免费看| 午夜精品久久久久久不卡8050| 中文字幕不卡一区| 久久久精品综合| 欧美tickling挠脚心丨vk| 欧美色国产精品| 一本大道av一区二区在线播放| 国产精品一区二区免费不卡| 麻豆精品在线播放| 日本不卡的三区四区五区| 亚洲一区二区在线观看视频| 亚洲视频综合在线| 国产精品黄色在线观看| 久久免费的精品国产v∧| 日韩欧美一级精品久久| 欧美一级二级在线观看| 欧美另类久久久品| 欧美日韩成人综合天天影院| 在线观看一区二区视频| 在线一区二区视频| 99国产欧美另类久久久精品| 高清国产午夜精品久久久久久| 国产伦精品一区二区三区免费| 麻豆国产精品777777在线| 免费观看30秒视频久久| 蜜臀久久99精品久久久久宅男| 日韩极品在线观看| 美女爽到高潮91| 国产一区二区三区电影在线观看 | 欧美巨大另类极品videosbest | 欧美亚洲国产一区二区三区va| 在线观看精品一区| 精品视频色一区| 欧美精品在线观看一区二区| 666欧美在线视频| 欧美一级二级在线观看| 精品福利在线导航| 国产精品美女久久久久久| 亚洲素人一区二区| 午夜精品视频在线观看| 免费成人深夜小野草| 国产精品原创巨作av| 粉嫩久久99精品久久久久久夜 | 亚洲欧美另类久久久精品| 一区二区三区在线高清| 性欧美疯狂xxxxbbbb| 老司机免费视频一区二区三区| 高清不卡在线观看| 91论坛在线播放| 欧美一区二区在线免费播放| 26uuu欧美日本| 亚洲激情网站免费观看| 蜜臀av在线播放一区二区三区| 国产精品一级在线| 欧美亚洲综合一区| 亚洲精品一区二区三区在线观看 | 亚洲色图在线播放| 日韩高清在线电影| 国产成人在线视频播放| 日本高清不卡在线观看| 久久综合九色综合97_久久久| 国产精品国产三级国产普通话蜜臀 | 欧洲另类一二三四区| 欧美一区二区三区啪啪| 国产精品免费视频网站| 日韩av在线播放中文字幕| 风间由美一区二区三区在线观看| 色老汉一区二区三区| 26uuu欧美日本| 午夜久久久久久久久| 成人免费av在线| 日韩欧美中文字幕精品| 亚洲女厕所小便bbb| 国产一区二区三区美女| 欧美日韩国产三级| 国产精品欧美一区二区三区| 青青草伊人久久| 欧美性生活一区| 国产精品二三区| 国产麻豆视频精品| 欧美一区二区视频免费观看| 亚洲欧洲精品一区二区三区不卡| 精品一区二区免费视频| 欧美色欧美亚洲另类二区| 国产精品久久久久久久久动漫 | 在线成人小视频| 亚洲黄色小视频| 成人avav影音| 国产视频一区在线观看| 美女脱光内衣内裤视频久久网站| 欧美色网站导航| 一区二区三区在线影院| 成人精品视频.| 国产清纯在线一区二区www| 狠狠色狠狠色综合系列| 欧美一区二区三区系列电影| 亚洲一区国产视频| 日本精品一级二级| 亚洲美女精品一区| 91一区二区三区在线观看| 国产精品视频一二三区| 成人一区二区视频| 欧美激情中文不卡| 成人午夜av电影| 国产精品视频yy9299一区| 粉嫩av一区二区三区| 国产欧美日韩麻豆91| 粉嫩aⅴ一区二区三区四区五区| 2020日本不卡一区二区视频| 国内外成人在线| 欧美激情艳妇裸体舞| 国产91丝袜在线18| 亚洲蜜臀av乱码久久精品|