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

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

?? transfrm.c

?? mp3解碼程序vc++環境下運行
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* transfrm.c,  前向/后向變換*/
#include <stdio.h>#include <math.h>#include "global.h"static short PACKED_0[4] = { 0, 0, 0, 0 };
static short PACKED_128[4] = { 128, 128, 128, 128 };
static unsigned char PACKED_128B[8] = { 128, 128, 128, 128, 128, 128, 128, 128 };

static void add_pred(unsigned char *pred, unsigned char *cur,  int lx, short *blk);static void sub_pred(unsigned char *pred, unsigned char *cur,  int lx, short *blk);void transform(pred,cur,mbi,blocks)unsigned char *pred[], *cur[];struct mbinfo *mbi;short blocks[][64];{  int i, j, i1, j1, k, n, cc, offs, lx;  k = 0;  for (j=0; j<height2; j+=16)    for (i=0; i<width; i+=16)    {      for (n=0; n<block_count; n++)      {        cc = (n<4) ? 0 : (n&1)+1; /* color component index */        if (cc==0)        {          /* luminance */          if ((pict_struct==FRAME_PICTURE) && mbi[k].dct_type)          {            /* field DCT */            offs = i + ((n&1)<<3) + width*(j+((n&2)>>1));            lx = width<<1;          }          else          {            /* frame DCT */            offs = i + ((n&1)<<3) + width2*(j+((n&2)<<2));            lx = width2;          }          if (pict_struct==BOTTOM_FIELD)            offs += width;        }        else        {          /* chrominance */          /* scale coordinates */          i1 = (chroma_format==CHROMA444) ? i : i>>1;          j1 = (chroma_format!=CHROMA420) ? j : j>>1;          if ((pict_struct==FRAME_PICTURE) && mbi[k].dct_type              && (chroma_format!=CHROMA420))          {            /* field DCT */            offs = i1 + (n&8) + chrom_width*(j1+((n&2)>>1));            lx = chrom_width<<1;          }          else          {            /* frame DCT */            offs = i1 + (n&8) + chrom_width2*(j1+((n&2)<<2));            lx = chrom_width2;          }          if (pict_struct==BOTTOM_FIELD)            offs += chrom_width;        }        sub_pred(pred[cc]+offs,cur[cc]+offs,lx,blocks[k*block_count+n]);        fdct(blocks[k*block_count+n]);      }      k++;    }}/* 反向變換預測誤差和加預測*/void itransform(pred,cur,mbi,blocks)unsigned char *pred[],*cur[];struct mbinfo *mbi;short blocks[][64];{  int i, j, i1, j1, k, n, cc, offs, lx;

  k = 0;  for (j=0; j<height2; j+=16)    for (i=0; i<width; i+=16)    {      for (n=0; n<block_count; n++)      {        cc = (n<4) ? 0 : (n&1)+1; /* color component index */        if (cc==0)        {          /* luminance */          if ((pict_struct==FRAME_PICTURE) && mbi[k].dct_type)          {            /* field DCT */            offs = i + ((n&1)<<3) + width*(j+((n&2)>>1));            lx = width<<1;          }          else          {            /* frame DCT */            offs = i + ((n&1)<<3) + width2*(j+((n&2)<<2));            lx = width2;          }          if (pict_struct==BOTTOM_FIELD)            offs += width;        }        else        {          /* chrominance */          /* scale coordinates */          i1 = (chroma_format==CHROMA444) ? i : i>>1;          j1 = (chroma_format!=CHROMA420) ? j : j>>1;          if ((pict_struct==FRAME_PICTURE) && mbi[k].dct_type              && (chroma_format!=CHROMA420))          {            /* field DCT */            offs = i1 + (n&8) + chrom_width*(j1+((n&2)>>1));            lx = chrom_width<<1;          }          else          {            /* frame DCT */            offs = i1 + (n&8) + chrom_width2*(j1+((n&2)<<2));            lx = chrom_width2;          }          if (pict_struct==BOTTOM_FIELD)            offs += chrom_width;        }        idct(blocks[k*block_count+n]);        add_pred(pred[cc]+offs,cur[cc]+offs,lx,blocks[k*block_count+n]);      }      k++;    }}/* 加預測和預測誤差*/static void add_pred(pred,cur,lx,blk)unsigned char *pred, *cur;int lx;short *blk;{	int i, j;

	if(cpu_MMX)
	{
		// I do loop unrolling on the inner loop and the outer loop !
		_asm
		{
			mov esi, blk				;// esi = blk
			mov ebx, pred				;// ebx = pred
			mov edi, cur				;// edi = cur
			mov edx, lx					;// edx = lx
			lea ecx, [2*edx]			;// ecx = 2 * lx
			movq mm0, [esi]				;// mm0 = 4 words into esi[0..7]
			movq mm1, [esi+8]			;// mm1 = 4 words into esi[8..15]
			movq mm2, [ebx]				;// mm2 = 4 words into ebx[0..7]
			movq mm3, [esi+16]			;// mm3 = 4 words into esi[16..23]
			movq mm4, [esi+24]			;// mm4 = 4 words into esi[24..31]
			movq mm5, [ebx+edx]			;// mm5 = 4 words into (ebx + edx)[0..7]
			movq mm6, mm2
			movq mm7, mm5
			punpcklbw mm2, PACKED_0		;// unpack the lower 4 bytes into mm2
			punpckhbw mm6, PACKED_0		;// unpack the upper 4 bytes into mm6
			punpcklbw mm5, PACKED_0		;// unpack the lower 4 bytes into mm5
			punpckhbw mm7, PACKED_0		;// unpack the upper 4 bytes into mm7
			paddw mm0, mm2				;// mm0 += mm2
			paddw mm1, mm6				;// mm1 += mm6
			paddw mm3, mm5				;// mm3 += mm5
			paddw mm4, mm7				;// mm4 += mm7
			psubw mm0, PACKED_128		;// convert mm0 from unsigned to signed by substracting 128
			psubw mm1, PACKED_128		;// convert mm1 from unsigned to signed by substracting 128
			psubw mm3, PACKED_128		;// convert mm3 from unsigned to signed by substracting 128
			psubw mm4, PACKED_128		;// convert mm4 from unsigned to signed by substracting 128
			packsswb mm0, mm1			;// pack mm0 and mm1 to get only 8 signed bytes into mm0
			packsswb mm3, mm4			;// pack mm3 and mm4 to get only 8 signed bytes into mm3
			paddb mm0, PACKED_128B		;// reverse the effect of convertion to signed
			paddb mm3, PACKED_128B		;// reverse the effect of convertion to signed
			add ebx, ecx				;// ebx += 2 * lx
			movq [edi], mm0				;// store mm0
			movq [edi+edx], mm3			;// store mm3
			movq mm0, [esi+32]			;// mm0 = 4 words into esi[32..39]
			movq mm1, [esi+40]			;// mm1 = 4 words into esi[40..47]
			movq mm2, [ebx]				;// mm2 = 4 words into ebx[0..7]
			movq mm3, [esi+48]			;// mm3 = 4 words into esi[48..55]
			movq mm4, [esi+56]			;// mm4 = 4 words into esi[56..63]
			movq mm5, [ebx+edx]			;// mm5 = 4 words into (ebx + edx)[0..7]
			add edi, ecx				;// edi += 2 * lx
			movq mm6, mm2
			movq mm7, mm5
			punpcklbw mm2, PACKED_0		;// unpack the lower 4 bytes into mm2
			punpckhbw mm6, PACKED_0		;// unpack the upper 4 bytes into mm6
			punpcklbw mm5, PACKED_0		;// unpack the lower 4 bytes into mm5
			punpckhbw mm7, PACKED_0		;// unpack the upper 4 bytes into mm7
			paddw mm0, mm2				;// mm0 += mm2
			paddw mm1, mm6				;// mm1 += mm6
			paddw mm3, mm5				;// mm3 += mm5
			paddw mm4, mm7				;// mm4 += mm7
			psubw mm0, PACKED_128		;// convert mm0 from unsigned to signed by substracting 128
			psubw mm1, PACKED_128		;// convert mm1 from unsigned to signed by substracting 128
			psubw mm3, PACKED_128		;// convert mm3 from unsigned to signed by substracting 128
			psubw mm4, PACKED_128		;// convert mm4 from unsigned to signed by substracting 128
			packsswb mm0, mm1			;// pack mm0 and mm1 to get only 8 signed bytes into mm0
			packsswb mm3, mm4			;// pack mm3 and mm4 to get only 8 signed bytes into mm3
			paddb mm0, PACKED_128B		;// reverse the effect of convertion to signed
			paddb mm3, PACKED_128B		;// reverse the effect of convertion to signed
			add ebx, ecx				;// ebx += 2 * lx
			movq [edi], mm0				;// store mm0
			movq [edi+edx], mm3			;// store mm3
			movq mm0, [esi+64]			;// mm0 = 4 words into esi[64..71]
			movq mm1, [esi+72]			;// mm1 = 4 words into esi[72..79]
			movq mm2, [ebx]				;// mm2 = 4 words into ebx[0..7]
			movq mm3, [esi+80]			;// mm3 = 4 words into esi[80..87]
			movq mm4, [esi+88]			;// mm4 = 4 words into esi[88..95]
			movq mm5, [ebx+edx]			;// mm5 = 4 words into (ebx + edx)[0..7]
			add edi, ecx				;// edi += 2 * lx
			movq mm6, mm2
			movq mm7, mm5
			punpcklbw mm2, PACKED_0		;// unpack the lower 4 bytes into mm2
			punpckhbw mm6, PACKED_0		;// unpack the upper 4 bytes into mm6
			punpcklbw mm5, PACKED_0		;// unpack the lower 4 bytes into mm5
			punpckhbw mm7, PACKED_0		;// unpack the upper 4 bytes into mm7
			paddw mm0, mm2				;// mm0 += mm2
			paddw mm1, mm6				;// mm1 += mm6
			paddw mm3, mm5				;// mm3 += mm5
			paddw mm4, mm7				;// mm4 += mm7
			psubw mm0, PACKED_128		;// convert mm0 from unsigned to signed by substracting 128
			psubw mm1, PACKED_128		;// convert mm1 from unsigned to signed by substracting 128
			psubw mm3, PACKED_128		;// convert mm3 from unsigned to signed by substracting 128

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
天天综合天天做天天综合| 亚洲一区在线观看视频| 精品成人私密视频| 欧美美女网站色| 91亚洲大成网污www| 91免费国产在线| 成av人片一区二区| 99精品黄色片免费大全| 91原创在线视频| 日本精品视频一区二区| 欧美日韩视频不卡| 91精品国产色综合久久不卡电影| 欧美一区二区精品久久911| 欧美成人艳星乳罩| 国产欧美精品国产国产专区| 国产精品另类一区| 亚洲欧美色一区| 视频在线观看一区| 国产酒店精品激情| av电影在线不卡| 欧美日韩在线播放三区四区| 91精品国产综合久久婷婷香蕉| 欧美一级午夜免费电影| 久久久亚洲午夜电影| 亚洲欧美区自拍先锋| 偷拍日韩校园综合在线| 国产乱理伦片在线观看夜一区 | 国产欧美精品一区二区色综合 | 欧美一区二区观看视频| 欧美不卡一区二区三区四区| 久久久久国产精品麻豆| 亚洲精品日日夜夜| 免费在线观看日韩欧美| av一区二区三区| 欧美精三区欧美精三区| www激情久久| 亚洲免费看黄网站| 久久99精品久久久久久| 色呦呦国产精品| 精品动漫一区二区三区在线观看| 亚洲三级小视频| 久久99国产精品尤物| 色综合久久中文综合久久牛| 日韩欧美在线综合网| 中文字幕在线一区免费| 久久精品久久精品| 在线视频欧美精品| 国产精品免费免费| 久久99国产精品久久99| 欧美日韩综合不卡| 国产精品电影一区二区三区| 国产一区欧美一区| 3atv一区二区三区| 亚洲综合在线电影| 菠萝蜜视频在线观看一区| 精品国精品国产| 日韩精品一级二级| 欧美老肥妇做.爰bbww视频| 17c精品麻豆一区二区免费| 紧缚捆绑精品一区二区| 91麻豆精品国产91久久久久久久久| 中文字幕第一区第二区| 国产一区二区电影| 精品对白一区国产伦| 美女网站在线免费欧美精品| 欧美主播一区二区三区| 一区二区三区在线观看视频| 成人18精品视频| 中文字幕一区二区三区不卡在线| 国产电影一区二区三区| 久久综合色8888| 韩国三级电影一区二区| 精品不卡在线视频| 久久国产精品99久久久久久老狼 | 老司机免费视频一区二区| 欧美日韩不卡在线| 午夜久久久久久久久| 在线成人午夜影院| 日本成人在线电影网| 欧美一区二区三区四区在线观看| 亚洲va欧美va人人爽| 337p亚洲精品色噜噜| 蜜臀精品一区二区三区在线观看 | 亚洲成人三级小说| 欧美老女人第四色| 久久精品国产免费看久久精品| 精品久久五月天| 国产成人免费在线视频| 亚洲视频免费在线| 欧洲人成人精品| 日本中文字幕一区二区视频| 欧美一级二级在线观看| 国产麻豆精品theporn| 国产精品免费看片| 欧洲视频一区二区| 九九国产精品视频| 国产精品理论在线观看| 欧美午夜精品久久久久久孕妇| 天堂久久久久va久久久久| 26uuu色噜噜精品一区二区| 黑人巨大精品欧美一区| 成人欧美一区二区三区| 91精品国产一区二区三区香蕉| 国产在线不卡一卡二卡三卡四卡| 久久精品欧美日韩| 色欧美片视频在线观看在线视频| 蜜臀久久久99精品久久久久久| 国产欧美日韩激情| 9191成人精品久久| 粉嫩久久99精品久久久久久夜| 亚洲一区影音先锋| 久久久久一区二区三区四区| 日本韩国一区二区| 国产一区不卡视频| 性欧美疯狂xxxxbbbb| 欧美精彩视频一区二区三区| 欧美日韩综合在线免费观看| 丁香亚洲综合激情啪啪综合| 视频一区中文字幕| 国产精品久久三| 精品国产欧美一区二区| 欧美丝袜自拍制服另类| 国产成人激情av| 免费成人深夜小野草| 亚洲色图欧美偷拍| 久久久久久电影| 欧美一级黄色片| 欧美视频第二页| 成人av先锋影音| 国产精品一区二区在线播放 | www.在线欧美| 国产综合成人久久大片91| 亚洲图片有声小说| 国产午夜精品理论片a级大结局 | 国产成人综合精品三级| 午夜国产精品一区| 一区二区三区四区亚洲| 国产精品传媒入口麻豆| 国产免费久久精品| 精品国产乱码91久久久久久网站| 欧美日韩中文另类| 色香蕉成人二区免费| 97se亚洲国产综合自在线不卡| 国产成人精品影院| 国产成人精品亚洲日本在线桃色| 久久9热精品视频| 日韩av在线发布| 石原莉奈一区二区三区在线观看| 亚洲国产精品精华液网站| 一区二区三区精品| 依依成人综合视频| 亚洲美女免费在线| 亚洲欧美偷拍三级| 亚洲欧美日韩在线播放| 亚洲一区在线观看免费观看电影高清 | 国内外成人在线| 美女诱惑一区二区| 麻豆精品一区二区av白丝在线| 日本欧美大码aⅴ在线播放| 日韩综合小视频| 免费成人性网站| 激情六月婷婷久久| 成人午夜精品在线| 91在线高清观看| 欧美日韩视频在线观看一区二区三区| 欧美调教femdomvk| 欧美一区二区三区视频在线观看 | www久久精品| 亚洲国产成人午夜在线一区| 国产精品视频免费看| 亚洲人123区| 午夜精品久久久久| 韩国女主播成人在线观看| 成人性色生活片免费看爆迷你毛片| www..com久久爱| 欧美性色黄大片手机版| 日韩三级视频在线看| 26uuu亚洲综合色欧美| 亚洲人成在线播放网站岛国| 视频一区视频二区中文| 狠狠色狠狠色综合日日91app| 99精品久久久久久| 欧美一区二区三区婷婷月色 | 亚洲成人免费在线观看| 久久成人羞羞网站| 一本一本久久a久久精品综合麻豆| 在线视频一区二区三| 2020国产精品久久精品美国| 1024成人网色www| 久久国内精品自在自线400部| 成人三级伦理片| 欧美人与性动xxxx| 中文字幕高清不卡| 日本成人超碰在线观看| 99久久婷婷国产综合精品| 欧美成人vr18sexvr| 亚洲精品乱码久久久久| 国产麻豆午夜三级精品| 欧美日韩一卡二卡三卡 | 亚洲综合另类小说|