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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? fdct.c

?? easy discrete time transform implemented in C
?? C
字號(hào):

#include "dct.h"

void dct_init(int * qtbl);
void dct(RAWDATA * in_data, DCTDATA * out_data );

static double divisors[DCTSIZE2];

void dct(RAWDATA * in_data, DCTDATA * out_data )
{
double tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7;
double tmp10, tmp11, tmp12, tmp13;
double z1, z2, z3, z4, z5, z11, z13;
double *dataptr;
double data[DCTSIZE2];
int ctr,i;

	/* step 0 : read in doubles , make data signed */

	dataptr = data;
	for(i=0;i<DCTSIZE;i++) {
		*dataptr++ = (double)( *in_data++ - RAWCENTER  );
		*dataptr++ = (double)( *in_data++ - RAWCENTER );
		*dataptr++ = (double)( *in_data++ - RAWCENTER );
		*dataptr++ = (double)( *in_data++ - RAWCENTER );
		*dataptr++ = (double)( *in_data++ - RAWCENTER );
		*dataptr++ = (double)( *in_data++ - RAWCENTER );
		*dataptr++ = (double)( *in_data++ - RAWCENTER );
		*dataptr++ = (double)( *in_data++ - RAWCENTER );
	}

  /* Pass 1: process rows. */

  dataptr = data;
  for (ctr = DCTSIZE-1; ctr >= 0; ctr--) {
    tmp0 = dataptr[0] + dataptr[7];
    tmp7 = dataptr[0] - dataptr[7];
    tmp1 = dataptr[1] + dataptr[6];
    tmp6 = dataptr[1] - dataptr[6];
    tmp2 = dataptr[2] + dataptr[5];
    tmp5 = dataptr[2] - dataptr[5];
    tmp3 = dataptr[3] + dataptr[4];
    tmp4 = dataptr[3] - dataptr[4];
    
    /* Even part */
    
    tmp10 = tmp0 + tmp3;	/* phase 2 */
    tmp13 = tmp0 - tmp3;
    tmp11 = tmp1 + tmp2;
    tmp12 = tmp1 - tmp2;
    
    dataptr[0] = tmp10 + tmp11; /* phase 3 */
    dataptr[4] = tmp10 - tmp11;
    
    z1 = (tmp12 + tmp13) * ((double) 0.707106781); /* c4 */
    dataptr[2] = tmp13 + z1;	/* phase 5 */
    dataptr[6] = tmp13 - z1;
    
    /* Odd part */

    tmp10 = tmp4 + tmp5;	/* phase 2 */
    tmp11 = tmp5 + tmp6;
    tmp12 = tmp6 + tmp7;

    /* The rotator is modified from fig 4-8 to avoid extra negations. */
    z5 = (tmp10 - tmp12) * ((double) 0.382683433); /* c6 */
    z2 = ((double) 0.541196100) * tmp10 + z5; /* c2-c6 */
    z4 = ((double) 1.306562965) * tmp12 + z5; /* c2+c6 */
    z3 = tmp11 * ((double) 0.707106781); /* c4 */

    z11 = tmp7 + z3;		/* phase 5 */
    z13 = tmp7 - z3;

    dataptr[5] = z13 + z2;	/* phase 6 */
    dataptr[3] = z13 - z2;
    dataptr[1] = z11 + z4;
    dataptr[7] = z11 - z4;

    dataptr += DCTSIZE;		/* advance pointer to next row */
  }

  /* Pass 2: process columns. */

  dataptr = data;
  for (ctr = DCTSIZE-1; ctr >= 0; ctr--) {
    tmp0 = dataptr[DCTSIZE*0] + dataptr[DCTSIZE*7];
    tmp7 = dataptr[DCTSIZE*0] - dataptr[DCTSIZE*7];
    tmp1 = dataptr[DCTSIZE*1] + dataptr[DCTSIZE*6];
    tmp6 = dataptr[DCTSIZE*1] - dataptr[DCTSIZE*6];
    tmp2 = dataptr[DCTSIZE*2] + dataptr[DCTSIZE*5];
    tmp5 = dataptr[DCTSIZE*2] - dataptr[DCTSIZE*5];
    tmp3 = dataptr[DCTSIZE*3] + dataptr[DCTSIZE*4];
    tmp4 = dataptr[DCTSIZE*3] - dataptr[DCTSIZE*4];
    
    /* Even part */
    
    tmp10 = tmp0 + tmp3;	/* phase 2 */
    tmp13 = tmp0 - tmp3;
    tmp11 = tmp1 + tmp2;
    tmp12 = tmp1 - tmp2;
    
    dataptr[DCTSIZE*0] = tmp10 + tmp11; /* phase 3 */
    dataptr[DCTSIZE*4] = tmp10 - tmp11;
    
    z1 = (tmp12 + tmp13) * ((double) 0.707106781); /* c4 */
    dataptr[DCTSIZE*2] = tmp13 + z1; /* phase 5 */
    dataptr[DCTSIZE*6] = tmp13 - z1;
    
    /* Odd part */

    tmp10 = tmp4 + tmp5;	/* phase 2 */
    tmp11 = tmp5 + tmp6;
    tmp12 = tmp6 + tmp7;

    /* The rotator is modified from fig 4-8 to avoid extra negations. */
    z5 = (tmp10 - tmp12) * ((double) 0.382683433); /* c6 */
    z2 = ((double) 0.541196100) * tmp10 + z5; /* c2-c6 */
    z4 = ((double) 1.306562965) * tmp12 + z5; /* c2+c6 */
    z3 = tmp11 * ((double) 0.707106781); /* c4 */

    z11 = tmp7 + z3;		/* phase 5 */
    z13 = tmp7 - z3;

    dataptr[DCTSIZE*5] = z13 + z2; /* phase 6 */
    dataptr[DCTSIZE*3] = z13 - z2;
    dataptr[DCTSIZE*1] = z11 + z4;
    dataptr[DCTSIZE*7] = z11 - z4;

    dataptr++;			/* advance pointer to next column */
  }

  /* step 3: Quantize/descale the coefficients, and store into coef_blocks[] */
      for (i = 0; i < DCTSIZE2; i++) {
		/* Apply the quantization and scaling factor */
		out_data[i] = (DCTDATA) (data[i] * divisors[i]);
	
		/* Round to nearest integer.
		 * Since C does not specify the direction of rounding for negative
		 * quotients, we have to force the dividend positive for portability.
		 * The maximum coefficient size is +-16K (for 12-bit data), so this
		 * code should work for either 16-bit or 32-bit ints.
		 */
		/** out_data[i] = (DCTDATA) ((int) (data[i] * divisors[i] + (double) 16384.5)
		 *		 - 16384); 
		**/
       }

}

void dct_init(int * qtbl)
{
int row, col,i;
static const double aanscalefactor[DCTSIZE] = {
  1.0, 1.387039845, 1.306562965, 1.175875602,
  1.0, 0.785694958, 0.541196100, 0.275899379
};

	/* For double AA&N IDCT method, divisors are equal to quantization
	 * coefficients scaled by scalefactor[row]*scalefactor[col], where
	 *   scalefactor[0] = 1
	 *   scalefactor[k] = cos(k*PI/16) * sqrt(2)    for k=1..7
	 * We apply a further scale factor of 8.
	 * What's actually stored is 1/divisor so that the inner loop can
	 * use a multiplication rather than a division.
	 */

	i = 0;
	for (row = 0; row < DCTSIZE; row++) {
	  for (col = 0; col < DCTSIZE; col++) {
	    divisors[i] = (double)
	      (1.0 / (((double) qtbl[i] * aanscalefactor[row] * aanscalefactor[col] * 8.0)));
	    i++;
	  }
	}

}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲综合999| 热久久国产精品| 亚洲自拍偷拍麻豆| 天天操天天色综合| 精品中文字幕一区二区| eeuss鲁片一区二区三区在线观看| 91久久人澡人人添人人爽欧美| 欧美丰满少妇xxxbbb| 久久综合久久综合亚洲| 亚洲视频中文字幕| 老司机精品视频导航| 99久久亚洲一区二区三区青草| 欧美日韩免费在线视频| 久久老女人爱爱| 亚洲综合激情小说| 国模一区二区三区白浆| 色综合激情久久| 亚洲精品一线二线三线| 亚洲最新视频在线播放| 国产麻豆91精品| 欧美精品久久久久久久多人混战| 国产香蕉久久精品综合网| 亚洲成a人v欧美综合天堂| 亚洲地区一二三色| 国产精品亚洲人在线观看| 欧美体内she精高潮| 国产精品网站导航| 免费人成网站在线观看欧美高清| 99久久久国产精品免费蜜臀| 日韩精品一区在线观看| 一区二区三区av电影 | 欧洲国内综合视频| 久久一区二区三区国产精品| 亚洲成人综合视频| 成人av电影在线网| xnxx国产精品| 丝袜a∨在线一区二区三区不卡| 成人不卡免费av| 久久亚洲春色中文字幕久久久| 亚洲综合免费观看高清在线观看| 国产精品一区二区三区乱码| 91精品午夜视频| 亚洲国产另类av| 一本一道久久a久久精品综合蜜臀| 国产欧美一区二区在线| 精品在线观看视频| 欧美卡1卡2卡| 午夜婷婷国产麻豆精品| 91欧美一区二区| 中文字幕在线视频一区| 国产剧情一区二区| 国产suv精品一区二区883| 亚洲精品一线二线三线| 日本怡春院一区二区| 欧美美女一区二区| 日韩在线观看一区二区| 欧美精品粉嫩高潮一区二区| 亚洲丰满少妇videoshd| 欧美制服丝袜第一页| 亚洲综合色在线| 欧美日韩在线播| 蜜乳av一区二区| 精品国产一区二区三区不卡| 蜜臀国产一区二区三区在线播放| 欧美一区二区三区不卡| 美女精品一区二区| 国产日韩欧美制服另类| 色婷婷综合久色| 五月婷婷另类国产| 亚洲日本青草视频在线怡红院 | 色呦呦网站一区| 亚洲视频精选在线| 欧美一区二区女人| 日韩一区二区三区四区| 911精品国产一区二区在线| 在线播放中文字幕一区| 婷婷国产v国产偷v亚洲高清| 欧美日韩中文一区| 午夜激情久久久| 欧美一区二区私人影院日本| 免费的成人av| 久久久久成人黄色影片| 豆国产96在线|亚洲| 中文字幕一区二区三区不卡在线 | 国产亚洲欧美色| 国产91高潮流白浆在线麻豆 | 色婷婷综合久久久久中文一区二区| 亚洲日本va午夜在线影院| 一本色道综合亚洲| 五月开心婷婷久久| 日韩欧美电影在线| 国产成人一区在线| 亚洲手机成人高清视频| 欧美色偷偷大香| 精品在线一区二区| 国产日韩精品一区二区三区在线| 99久久久久久| 视频一区在线视频| 26uuu久久综合| 成人禁用看黄a在线| 一区二区三区不卡在线观看 | 久久国产乱子精品免费女| 精品99一区二区| 91在线你懂得| 五月婷婷激情综合网| www成人在线观看| 91麻豆精品一区二区三区| 日韩综合一区二区| 欧美国产激情二区三区| 日本精品视频一区二区| 另类中文字幕网| 欧美日本在线一区| 激情图片小说一区| 中文字幕在线免费不卡| 91精品国产一区二区| 国产99久久久国产精品潘金 | 4438成人网| 国产东北露脸精品视频| 亚洲自拍偷拍综合| 久久亚洲一区二区三区四区| 日本久久精品电影| 国产一区在线观看视频| 亚洲激情图片qvod| 久久久www免费人成精品| 精品视频123区在线观看| 国产大陆a不卡| 日韩av中文在线观看| 中文字幕日本不卡| 精品国产一区a| 欧美亚洲国产一卡| 不卡一卡二卡三乱码免费网站| 日日夜夜精品视频天天综合网| 国产精品盗摄一区二区三区| 欧美一级日韩一级| 色综合中文字幕国产 | 久久久精品国产免费观看同学| 欧美写真视频网站| 福利91精品一区二区三区| 中文一区二区完整视频在线观看| 中文字幕在线观看不卡视频| 一区二区三区四区激情| 午夜精品福利一区二区蜜股av | 精品国产区一区| 国产精品视频麻豆| 日韩av成人高清| 成人午夜短视频| 91超碰这里只有精品国产| 2023国产精华国产精品| 一片黄亚洲嫩模| 国产成人综合网站| 精品久久人人做人人爰| 国产日产精品1区| 亚洲bt欧美bt精品| 91免费看视频| 亚洲另类色综合网站| 色久优优欧美色久优优| 亚洲永久精品大片| 成人久久久精品乱码一区二区三区| 久热成人在线视频| 欧美优质美女网站| 国产精品国产三级国产aⅴ入口| 奇米色777欧美一区二区| 久久久久国产精品免费免费搜索| 欧美色老头old∨ideo| 高清视频一区二区| 色拍拍在线精品视频8848| 国产成人一区在线| 国内精品伊人久久久久av一坑| 日本视频免费一区| 天天操天天色综合| 亚洲国产裸拍裸体视频在线观看乱了| 日韩毛片视频在线看| 中文字幕欧美三区| 欧美激情在线免费观看| 国产人久久人人人人爽| 欧美精品一区在线观看| 日韩精品资源二区在线| 日韩午夜激情免费电影| 欧美一区二区三区四区高清| 欧美日本在线播放| 欧美久久久久中文字幕| 欧美日韩精品一二三区| 欧美日韩不卡在线| 91麻豆精品国产91久久久久| 777午夜精品视频在线播放| 7777精品伊人久久久大香线蕉超级流畅 | 国产综合成人久久大片91| 久久国产精品99久久久久久老狼| 免费人成网站在线观看欧美高清| 蜜桃视频第一区免费观看| 久久成人18免费观看| 久久成人av少妇免费| 国产精品综合av一区二区国产馆| 国产毛片精品国产一区二区三区| 国产成人精品三级麻豆| 日韩专区在线视频| 美女视频黄久久| 国产精品亚洲午夜一区二区三区| 成人一区二区三区| 91欧美一区二区|