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

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

?? idctfpu.c

?? DVD轉換到AVI的源代碼
?? C
字號:
/* idct.c, inverse fast discrete cosine transform                           */


/*************************************************************/
/* inverse two dimensional DCT, Chen-Wang algorithm          */
/* (cf. IEEE ASSP-32, pp. 803-816, Aug. 1984)                */
/*                                                           */
/* floating point conversion by Miha Peternel                */
/* x87 hand-optimized assembly by Miha Peternel              */
/*                                    27.11. - 11.12.2000    */
/*                                                           */
/* You are free to use this code in your project if:         */
/* - no changes are made to this message                     */
/* - any changes to this code are publicly available         */
/* - your project documentation contains the following text: */
/*   "This software contains fast high-quality IDCT decoder  */
/*    by Miha Peternel."                                     */
/*                                                           */
/*************************************************************/


/////////////////////////////////////////////////////
//
// TODO:
// - loops can be easily vectorized for SIMD
//
/////////////////////////////////////////////////////

#include <math.h>
#  define PI 3.1415926535897932384626433832795

#define FLOAT double

const static double RC = 1.0*1024*1024*1024*1024*256*16 + 1024; // magic + clip center

static FLOAT W1; // /* sqrt(2)*cos(1*pi/16) */
static FLOAT W2; // /* sqrt(2)*cos(2*pi/16) */
static FLOAT W5; // /* sqrt(2)*cos(5*pi/16) */

static FLOAT W1_8;
static FLOAT W2_8;
static FLOAT W5_8;

static FLOAT W7; // /* sqrt(2)*cos(7*pi/16) */
static FLOAT W1mW7; // W1-W7
static FLOAT W1pW7; // W1+W7

static FLOAT W3; // /* sqrt(2)*cos(3*pi/16) */
static FLOAT W3mW5; // W3-W5
static FLOAT W3pW5; // W3+W5

static FLOAT W6; // /* sqrt(2)*cos(6*pi/16) */
static FLOAT W2mW6; // W2-W6
static FLOAT W2pW6; // W2+W6

static FLOAT S2; // 1/sqrt(2)
static FLOAT D8 = 1.0/8;

static FLOAT W7_8;
static FLOAT W1mW7_8;
static FLOAT W1pW7_8;

static FLOAT W3_8;
static FLOAT W3mW5_8;
static FLOAT W3pW5_8;

static FLOAT W6_8;
static FLOAT W2mW6_8;
static FLOAT W2pW6_8;

/* global declarations */

/* private data */
static short iclip[1024+1024]; /* clipping table */
static short *iclp;

void Initialize_FPU_IDCT()
{
  int i;

  S2 = sqrt(0.5); // 1.0/sqrt(2);

  W1 = sqrt(2)*cos(PI*(1.0/16)); 
	W1_8 = W1/8;
  W2 = sqrt(2)*cos(PI*(2.0/16)); 
	W2_8 = W2/8;
  W3 = sqrt(2)*cos(PI*(3.0/16)); 
	W3_8 = W3/8;
  W5 = sqrt(2)*cos(PI*(5.0/16)); 
	W5_8 = W5/8;
  W6 = sqrt(2)*cos(PI*(6.0/16)); 
	W6_8 = W6/8;
  W7 = sqrt(2)*cos(PI*(7.0/16));
	W7_8 = W7/8;

  W1mW7 = W1-W7;  W1mW7_8 = W1mW7/8;
  W1pW7 = W1+W7;  W1pW7_8 = W1pW7/8;
  W3mW5 = W3-W5;  W3mW5_8 = W3mW5/8;
  W3pW5 = W3+W5;  W3pW5_8 = W3pW5/8;
  W2mW6 = W2-W6;  W2mW6_8 = W2mW6/8;
  W2pW6 = W2+W6;  W2pW6_8 = W2pW6/8;

  iclp = iclip+1024;
  for (i= -1024; i<1024; i++)
    iclp[i] = (i<-256) ? -256 : ((i>255) ? 255 : i);
}

void FPU_IDCT(short *block)
{
	int *b = (int *) block;
  if( b[0]==0 && (b[31]==0x10000 || b[31]==0) )
	{
	  if( b[ 1]|b[ 2]|b[ 3]|b[ 4]|b[ 5] )
		  goto normal;
	  if( b[ 6]|b[ 7]|b[ 8]|b[ 9]|b[10] )
		  goto normal;
	  if( b[11]|b[12]|b[13]|b[14]|b[15] )
		  goto normal;
	  if( b[16]|b[17]|b[18]|b[19]|b[20] )
		  goto normal;
	  if( b[21]|b[22]|b[23]|b[24]|b[25] )
		  goto normal;
	  if( b[26]|b[27]|b[28]|b[29]|b[30] )
		  goto normal;
		b[31]=0;
		////empty++;
		return;
	}
normal:

#define tmp  ebx
#define tmp1 ebx-1*8
#define tmp2 ebx-2*8
#define tmp3 ebx-3*8
#define int0 ebx-3*8-1*4
#define int1 ebx-3*8-2*4
#define int2 ebx-3*8-3*4
#define int3 ebx-3*8-4*4
#define int4 ebx-3*8-5*4
#define int5 ebx-3*8-6*4
#define int6 ebx-3*8-7*4
#define int7 ebx-3*8-8*4
#define SIZE 8*8*8+3*8+8*4+16 // locals + 16-byte alignment area
	__asm
	{
	  lea ebx,[esp-8*8*8]
		sub esp,SIZE
		and ebx,-16 // force 16-byte alignment of locals

// rows
		mov esi,[block]
		lea edi,[tmp]
		mov ecx,8

		align 16
Lrows:
    movsx eax,word ptr [esi+2]
		or    eax,         [esi+4]
		or    eax,         [esi+8]
		or    eax,         [esi+12]
		jnz L1

		fild word ptr [esi+0*2]
		fst  qword ptr [edi+7*8]
		fst  qword ptr [edi+6*8]
		fst  qword ptr [edi+5*8]
		fst  qword ptr [edi+4*8]
		fst  qword ptr [edi+3*8]
		fst  qword ptr [edi+2*8]
		fst  qword ptr [edi+1*8]
		fstp qword ptr [edi+0*8]
		jmp L2

		align 16
	L1:

		fild word ptr [esi+7*2]
		fld st(0)
		fild word ptr [esi+1*2]
		fadd st(1),st(0)
		fld qword ptr [W7]
		fxch st(1)
		fmul qword ptr [W1mW7]
		fxch st(1)
		fmulp st(2),st(0)
		fadd st(0),st(1)
		fstp qword ptr [tmp1]
		fild word ptr [esi+3*2]
		fld st(0)
		fxch st(3)
		fmul qword ptr [W1pW7]
		fild word ptr [esi+5*2]
		fadd st(4),st(0)
		fmul qword ptr [W3mW5]
		fxch st(1)
		fsubp st(3),st(0)//fsubrp
		fld qword ptr [W3]
		fmulp st(4),st(0)
		fsubr st(0),st(3)
		fstp qword ptr [tmp2]
		fmul qword ptr [W3pW5]
		fsubp st(2),st(0)//fsubrp
		fxch st(1)
		fstp qword ptr [tmp3]
		fild word ptr [esi+0*2]
		fild word ptr [esi+4*2]
		fild word ptr [esi+2*2]
		fld st(0)
		fmul qword ptr [W2mW6]
		fld st(3)
		fild word ptr [esi+6*2]
		fxch st(5)
		fsub st(0),st(4)
		fxch st(3)
		fadd st(0),st(5)
		fxch st(1)
		faddp st(4),st(0)
		fld qword ptr [W6]
		fmulp st(1),st(0)
		fxch st(4)
		fmul qword ptr [W2pW6]
		fld qword ptr [tmp1]
		fsub qword ptr [tmp2]
		fld st(5)
		fxch st(3)
		faddp st(6),st(0)
		fld qword ptr [tmp1]
		fxch st(1)
		fstp qword ptr [tmp1]
		fld st(6)
		fadd qword ptr [tmp3]
		fxch st(1)
		fadd qword ptr [tmp2]
		fxch st(7)
		fsub qword ptr [tmp3]
		fxch st(1)
		fstp qword ptr [tmp2]
		fld st(4)
		fxch st(3)
		fsubrp st(2),st(0)//fsubp
		fxch st(4)
		fsub st(0),st(5)
		fxch st(2)
		faddp st(5),st(0)
		fld st(2)
		fsub st(0),st(1)
		fxch st(5)
		fstp qword ptr [tmp3]
		fld qword ptr [tmp1]
		fld qword ptr [S2]
		fxch st(4)
		faddp st(2),st(0)
		fld st(3)
		fxch st(1)
		fadd st(0),st(5)
		fmulp st(1),st(0)

		fld qword ptr [tmp3]
		fadd st(0),st(7)
		fxch st(5)
		fsubr qword ptr [tmp1]
		fxch st(5)
		fstp qword ptr [edi+0*8]
		fxch st(6)
		fsubr qword ptr [tmp3]
		fld st(2)
		fxch st(1)
		fstp qword ptr [edi+7*8]
		fadd qword ptr [tmp2]
		fxch st(3)
		fmulp st(4),st(0)
		fxch st(2)
		fstp qword ptr [edi+3*8]
		fld st(1)
		fadd st(0),st(5)
		fxch st(1)
		fsub qword ptr [tmp2]
		fxch st(2)
		fsubrp st(5),st(0)//fsubp
		fstp qword ptr [edi+1*8]
		fld st(2)
		fxch st(1)
		fstp qword ptr [edi+4*8]
		fxch st(2)
		fsub st(0),st(1)
		fxch st(2)
		faddp st(1),st(0)
		fxch st(2)
		fstp qword ptr [edi+6*8]
		fstp qword ptr [edi+5*8]
		fstp qword ptr [edi+2*8]
	L2:
	  add esi,8*2
		add edi,8*8
		dec ecx
		jnz Lrows

// columns
    lea esi,[tmp]
		mov edi,[block]
		lea edx,[iclip+1024*2]
		mov ecx,8

    align 16
Lcols:
		fld qword ptr [esi+7*8*8]
		fld st(0)
		fld qword ptr [esi+1*8*8]
		fadd st(1),st(0)
		fld qword ptr [W7_8]
		fxch st(1)
		fmul qword ptr [W1mW7_8]
		fxch st(1)
		fmulp st(2),st(0)
		fadd st(0),st(1)
		fstp qword ptr [tmp2]
		fld qword ptr [esi+3*8*8]
		fld st(0)
		fxch st(3)
		fmul qword ptr [W1pW7_8]
		fld qword ptr [esi+5*8*8]
		fadd st(4),st(0)
		fmul qword ptr [W3mW5_8]
		fxch st(1)
		fsubp st(3),st(0)//fsubrp
		fld qword ptr [W3_8]
		fmulp st(4),st(0)
		fsubr st(0),st(3)
		fstp qword ptr [tmp3]
		fld qword ptr [D8]
		fld qword ptr [esi+0*8*8]
		fmul st(0),st(1)
		fxch st(2)
		fmul qword ptr [W3pW5_8]
		fld qword ptr [esi+4*8*8]
		fmulp st(2),st(0)
		fld qword ptr [esi+6*8*8]
		fld st(3)
		fxch st(6)
		fsubrp st(2),st(0)//fsubp
		fld qword ptr [esi+2*8*8]
		fld st(0)
		fxch st(5)
		fsub st(0),st(4)
		fxch st(7)
		faddp st(4),st(0)
		fxch st(4)
		fadd st(0),st(1)
		fld qword ptr [W6_8]
		fxch st(2)
		fmul qword ptr [W2pW6_8]
		fxch st(2)
		fmulp st(1),st(0)
		fxch st(4)
		fmul qword ptr [W2mW6_8]
		fld qword ptr [tmp2]
		fsub qword ptr [tmp3]
		fxch st(2)
		fsubr st(0),st(5)
		fxch st(1)
		faddp st(5),st(0)
		fld qword ptr [tmp2]
		fxch st(2)
		fstp qword ptr [tmp2]
		fld st(5)
		fxch st(2)
		fadd qword ptr [tmp3]
		fxch st(6)
		fsub st(0),st(3)
		fxch st(2)
		faddp st(3),st(0)
		fld st(3)
		fsub st(0),st(5)
		fxch st(3)
		fstp qword ptr [tmp3]
		fxch st(3)
		faddp st(4),st(0)
		fld st(5)
		fld qword ptr [tmp2]
		fxch st(7)
		fsub st(0),st(4)
		fxch st(7)
		fadd st(0),st(2)
		fxch st(1)
		faddp st(4),st(0)
		fld qword ptr [S2]
		fmul st(1),st(0)
		fxch st(1)
		fstp qword ptr [tmp1]
		fld st(4)
		fadd st(0),st(6)
		fxch st(2)
		fsubr qword ptr [tmp2]
		fxch st(5)
		fsubrp st(6),st(0)//fsubp
		fxch st(1)
		fistp dword ptr [int0]
		fxch st(4)
		mov eax,[int0]
		movsx eax,word ptr [edx+2*eax]
		mov [edi+0*8*2],ax
		fistp dword ptr [int7]
		mov eax,[int7]
		fld st(0)
		movsx eax,word ptr [edx+2*eax]
		mov [edi+7*8*2],ax
		fadd qword ptr [tmp3]
		fistp dword ptr [int3]
		mov eax,[int3]
		movsx eax,word ptr [edx+2*eax]
		mov [edi+3*8*2],ax
		fsub qword ptr [tmp3]
		fld st(1)
		fxch st(1)
		fistp dword ptr [int4]
		mov eax,[int4]
		movsx eax,word ptr [edx+2*eax]
		mov [edi+4*8*2],ax
		fadd qword ptr [tmp1]
		fxch st(3)
		fmulp st(2),st(0)
		fxch st(2)
		fistp dword ptr [int1]
		fxch st(1)
		mov eax,[int1]
		movsx eax,word ptr [edx+2*eax]
		mov [edi+1*8*2],ax
		fsub qword ptr [tmp1]
		fld st(2)
		fsub st(0),st(2)
		fxch st(1)
		fistp dword ptr [int6]
		fxch st(2)
		mov eax,[int6]
		faddp st(1),st(0)
		movsx eax,word ptr [edx+2*eax]
		mov [edi+6*8*2],ax
		fistp dword ptr [int2]
		mov eax,[int2]
		movsx eax,word ptr [edx+2*eax]
		mov [edi+2*8*2],ax
		fistp dword ptr [int5]
		mov eax,[int5]
		movsx eax,word ptr [edx+2*eax]
		mov [edi+5*8*2],ax

	  add esi,8
		add edi,2
		dec ecx
		jnz Lcols

		add esp,SIZE
  }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品一区二区免费看| 亚洲激情自拍视频| 精久久久久久久久久久| 欧美高清激情brazzers| 亚洲电影一区二区| 在线不卡一区二区| 日本午夜精品一区二区三区电影| 欧美四级电影网| 亚洲国产欧美一区二区三区丁香婷| 色美美综合视频| 亚洲无线码一区二区三区| 在线观看免费视频综合| 午夜久久久久久久久| 91精品国产欧美一区二区18 | 亚洲综合一二区| 欧美色图免费看| 免费观看91视频大全| 精品国产伦理网| 国产999精品久久久久久| 最新久久zyz资源站| 91蜜桃网址入口| 午夜精品一区二区三区电影天堂| 欧美日韩高清一区二区三区| 美女性感视频久久| 国产日韩精品视频一区| 91网址在线看| 日韩和欧美一区二区| 久久久久久久久久久久久久久99| 成人一区二区三区视频| 亚洲高清免费视频| 精品国产乱码久久| 99精品国产99久久久久久白柏| 亚洲大型综合色站| 久久久91精品国产一区二区三区| 91视频91自| 激情深爱一区二区| 亚洲欧洲精品一区二区三区不卡| 欧美电影在线免费观看| 国产精品系列在线观看| 亚瑟在线精品视频| 国产无一区二区| 欧美影视一区在线| 国产不卡视频在线观看| 亚洲高清视频中文字幕| 国产亚洲精品7777| 欧美日韩另类一区| 99久久久精品| 狠狠色综合播放一区二区| 亚洲激情成人在线| 久久女同精品一区二区| 欧美日韩一区二区欧美激情| 国产激情视频一区二区在线观看| 亚洲国产精品久久人人爱| 久久亚洲免费视频| 精品视频在线看| 不卡视频在线看| 久久99热这里只有精品| 午夜精品成人在线视频| **性色生活片久久毛片| 久久久噜噜噜久久人人看 | 8v天堂国产在线一区二区| 成人av在线网| 国产中文字幕精品| 天天亚洲美女在线视频| 亚洲男同性恋视频| 国产欧美日韩一区二区三区在线观看| 欧美一区二区三区婷婷月色| 91高清视频在线| 丁香一区二区三区| 激情图片小说一区| 蜜臀av性久久久久蜜臀aⅴ| 爽好久久久欧美精品| 亚洲综合图片区| 亚洲激情校园春色| 亚洲精品菠萝久久久久久久| 国产精品免费看片| 国产精品久久综合| 国产精品视频yy9299一区| 久久一日本道色综合| 日韩一级欧美一级| 欧美一级免费大片| 欧美一二三区在线观看| 欧美另类变人与禽xxxxx| 日本韩国精品在线| 在线免费观看日韩欧美| 91福利资源站| 精品视频在线免费看| 欧美午夜免费电影| 欧美日韩免费不卡视频一区二区三区| 欧美伊人久久久久久久久影院| 日本乱码高清不卡字幕| 91精品办公室少妇高潮对白| 91麻豆精品在线观看| 色狠狠综合天天综合综合| 色综合久久久久综合| 一本到不卡免费一区二区| 91国偷自产一区二区开放时间| 在线观看亚洲精品| 欧美高清视频不卡网| 精品播放一区二区| 久久久国产精华| 国产精品久久久久久久午夜片 | 欧美一区二区三区视频| 日韩亚洲欧美成人一区| 久久久激情视频| 日韩一区在线播放| 亚洲一区在线观看视频| 日韩精品亚洲专区| 激情亚洲综合在线| 91丨九色丨黑人外教| 欧美色欧美亚洲另类二区| 日韩一级片在线观看| 久久久久久久久久电影| 中文字幕一区二区5566日韩| 亚洲v中文字幕| 久久精品国产久精国产| www.66久久| 欧美精品日韩综合在线| 欧美成人激情免费网| 国产精品三级av| 天堂蜜桃91精品| 国产精品一区一区三区| 色av一区二区| 精品久久久三级丝袜| 国产精品乱码人人做人人爱| 亚洲国产成人av好男人在线观看| 久草热8精品视频在线观看| 99国产精品视频免费观看| 欧美一区在线视频| 国产精品拍天天在线| 日韩精品一二三四| 99re在线精品| 精品欧美久久久| 亚洲一区在线观看免费观看电影高清| 美腿丝袜亚洲色图| 色综合久久六月婷婷中文字幕| 日韩欧美精品在线| 亚洲免费电影在线| 国产精品亚洲综合一区在线观看| 日本韩国一区二区三区视频| 久久久久久综合| 天天射综合影视| 色综合久久88色综合天天免费| 日韩三级视频在线观看| 亚洲激情图片qvod| 成人丝袜18视频在线观看| 69av一区二区三区| 一区二区在线看| 成人午夜激情片| 久久影院视频免费| 三级欧美韩日大片在线看| 色婷婷精品大视频在线蜜桃视频| 精品成人私密视频| 青青国产91久久久久久| 欧美亚洲综合网| 日韩美女久久久| 成人小视频在线观看| 欧美成人三级电影在线| 水野朝阳av一区二区三区| 欧美性猛片xxxx免费看久爱| 中文字幕一区不卡| 成人在线视频一区| 国产欧美精品一区二区色综合朱莉| 免费一级欧美片在线观看| 欧美日韩午夜在线| 一区二区三区四区乱视频| 99免费精品视频| 国产精品每日更新在线播放网址| 国产精品一区二区免费不卡| 欧美成人艳星乳罩| 精品一二三四区| 精品少妇一区二区三区日产乱码 | 91麻豆精品国产91久久久资源速度| 亚洲日本乱码在线观看| 99麻豆久久久国产精品免费优播| 国产欧美日韩激情| 国产69精品久久久久毛片| 国产欧美一区视频| 成人性生交大片免费看视频在线 | 国产精品国产三级国产有无不卡| 国产成人av电影在线播放| 国产网红主播福利一区二区| 激情图片小说一区| 久久久久久97三级| 国产精品一区二区果冻传媒| 亚洲国产激情av| a亚洲天堂av| 亚洲猫色日本管| 欧美在线观看禁18| 天堂精品中文字幕在线| 精品三级av在线| 国v精品久久久网| 国产精品成人免费在线| 91麻豆国产精品久久| 亚洲国产精品影院| 日韩丝袜美女视频| 国产精品一区在线| 亚洲码国产岛国毛片在线| 欧美男同性恋视频网站| 久久国内精品自在自线400部|