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

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

?? fastsb.c

?? 用DSP實現MP3解壓縮的源碼文件
?? C
字號:
/* Fast Inverse DCT implemented using Lee's algorithm */
/* Bjorn Wesen 1997 */

#include "mp3dec.h"

/*

  The DCT matrix for N values is defined as:

  D(i,j) = cos((2*j+1)*i*PI/(2*N))

  Lee's fast-DCT algorithm, as used here, needs an 8-value DCT
  and an 16-value DCT matrix.

*/

#ifdef USE_DATA
#include "fastsb_A8.h"
#include "fastsb_B8.h"
#include "fastsb_B16.h"
#else

static mpfloat A16[16][16], A8[8][8];       /* DCT matrix         */
static mpfloat G16[16][16], G8[8][8];       /* Output butterfly   */
static mpfloat H16[16][16], H8[8][8];       /* Scaling            */

static mpfloat B16[16][16], B8[8][8];       /* B = G * DCT * H    */

#if 0
static mpfloat A32[32][32];
#endif

void matrix_mul16(mpfloat in1[16][16],
		  mpfloat in2[16][16],
		  mpfloat out[16][16]);

void matrix_mul8(mpfloat in1[8][8],
		 mpfloat in2[8][8],
		 mpfloat out[8][8]);

void
fast_idct_init()
{
    int i,j;
    mpfloat t16[16][16], t8[8][8];

#if 0
    for(i = 0; i < 32; i++)
	for(j = 0; j < 32; j++)
	    A32[i][j] = cos((2*j+1)*i*PI/64);
#endif

    /* create the 16 matrixes */

    for(i = 0; i < 16; i++) {
	for(j = 0; j < 16; j++) {
	    A16[i][j] = cos((2*j+1)*i*PI/32);
	    if(i == j || j == (i + 1))
		G16[i][j] = 1.0f;
	    else
		G16[i][j] = 0.0f;
	    if(i == j)
		H16[i][j] = 1.0f/(2*cos((2*i+1)*PI/64));
	    else
		H16[i][j] = 0.0;
	}
    }

    /* create the 8 matrixes */

    for(i = 0; i < 8; i++) {
	for(j = 0; j < 8; j++) {
	    A8[i][j] = cos((2*j+1)*i*PI/16);
	    if(i == j || j == (i + 1))
		G8[i][j] = 1.0f;
	    else
		G8[i][j] = 0.0f;
	    if(i == j)
		H8[i][j] = 1.0f/(2*cos((2*i+1)*PI/32));
	    else
		H8[i][j] = 0.0f;
	}
    }

    /* generate the B matrixes */

    matrix_mul16(A16, H16, t16);
    matrix_mul16(G16, t16, B16);

    matrix_mul8(A8, H8, t8);
    matrix_mul8(G8, t8, B8);

#ifdef MAKE_DATA
    make_data_file_2d("fastsb_A8.h", "A8", &A8[0][0], 8, 8);
    make_data_file_2d("fastsb_B8.h", "B8", &B8[0][0], 8, 8);
    make_data_file_2d("fastsb_B16.h", "B16", &B16[0][0], 16, 16);
#endif
}

#endif

/* This is a two-level implementation of Lee's fast-DCT algorithm */
/* 
   The 32 input values are split in two 16-value vectors using an
   even butterfly and an odd butterfly. The odd values are taken
   through Lee's odd path using a 16x16 DCT matrix (A16) and appropriate
   scaling (G16*A16*H16). The even values are further split into
   two 8-value vectors using even and odd butterflies into ee and eo.
   The ee values are fed through an 8x8 DCT matrix (A8) while the eo
   values are fed through the odd path using G8*A8*H8.

   This two-level configuration uses 384 muls and 432 adds, compared
   to the direct 32x32 DCT which uses 1024 muls and 992 adds.
*/

#ifndef USE_C3X_ASM
void
fast_idct(mpfloat *in, mpfloat *out)
{
    mpfloat even[16], odd[16], ee[8], eo[8];
    mpfloat s1, s2;
    mpfloat t[32];
    int i, j;

#if 0
    /* direct 32x32 idct */

    for(i = 0; i < 32; i++) {
	s1 = 0.0;
	for(j = 0; j < 32; j++)
	    s1 += in[j] * A32[i][j];
	t[i] = s1;
    }
#endif

    /* input butterflies - level 1 */
    /* 32 adds */

    for(i = 0; i < 16; i++) {
	even[i] = in[i] + in[31-i];
	odd[i] = in[i] - in[31-i];
    }

    /* input butterflies - level 2 */
    /* 16 adds */

    for(i = 0; i < 8; i++) {
	ee[i] = even[i] + even[15-i];
	eo[i] = even[i] - even[15-i];
    }

    /* multiply the even_even vector (ee) with the ee matrix (A8) */
    /* multiply the even_odd vector (eo) with the eo matrix (B8) */
    /* 128 muls, 128 adds */

    for(i = 0; i < 8; i++) {
	s1 = 0.0;
	s2 = 0.0;
	for(j = 0; j < 8; j += 2) {
	    s1 += A8[i][j] * ee[j] +
		A8[i][j+1] * ee[j+1];
	    s2 += B8[i][j] * eo[j] +
		B8[i][j+1] * eo[j+1];
	}
	ISCALE(s1);
	t[i*4] = s1;
	ISCALE(s2);
	t[i*4+2] = s2;
    }

#if 0
    /* multiply the even vector (even) with the even matrix (A16) */
    /* JUST FOR TESTING if we only want to use a 1-level Lee */

    for(i = 0; i < 16; i++) {
	s1 = 0.0;
	for(j = 0; j < 16; j++) {
	    s1 += A16[i][j] * even[j];
	}
	ISCALE(s1);
	t[i*2] = s1;
    }
#endif

    /* multiply the odd vector (odd) with the odd matrix (B16) */
    /* 256 muls, 256 adds */

    for(i = 0; i < 16; i++) {
	s1 = 0.0;
	for(j = 0; j < 16; j += 4) {
	    s1 += B16[i][j] * odd[j] +
		B16[i][j+1] * odd[j+1] +
		B16[i][j+2] * odd[j+2] +
		B16[i][j+3] * odd[j+3];
	}
	ISCALE(s1);
	t[i*2+1] = s1;
    }

    /* the output vector t now is expanded to 64 values using the
       symmetric property of the cosinus function */

    for(i = 0; i < 16; i++) {
	out[i] = t[i+16];
	out[i+17] = -t[31-i];
	out[i+32] = -t[16-i];
	out[i+48] = -t[i];
    }
    out[16] = 0.0;
}
#endif

#ifndef USE_DATA
void matrix_mul16(mpfloat in1[16][16],
		  mpfloat in2[16][16],
		  mpfloat out[16][16])
{
    int i,j,z;

    for(i = 0; i < 16; i++) {
	for(j = 0; j < 16; j++) {
	    out[i][j] = 0.0;
	    for(z = 0; z < 16; z++)
		out[i][j] += in1[i][z] * in2[z][j];
	    ISCALE(out[i][j]);
	}
    }
}

void matrix_mul8(mpfloat in1[8][8],
		 mpfloat in2[8][8],
		 mpfloat out[8][8])
{
    int i,j,z;

    for(i = 0; i < 8; i++) {
	for(j = 0; j < 8; j++) {
	    out[i][j] = 0.0;
	    for(z = 0; z < 8; z++)
		out[i][j] += in1[i][z] * in2[z][j];
	    ISCALE(out[i][j]);
	}
    }
}
#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久久久久户外露出| 国产亚洲精品7777| 国产精品一区二区在线观看网站 | 91精品在线免费观看| 国产69精品久久久久777| 亚洲国产婷婷综合在线精品| 国产精品色呦呦| 日韩丝袜情趣美女图片| 色婷婷久久综合| 国产精品亚洲综合一区在线观看| 亚洲成a人片综合在线| 国产精品天干天干在线综合| 欧美大片一区二区三区| 在线免费观看日本欧美| 成人sese在线| 国产精品主播直播| 久久草av在线| 日韩激情在线观看| 亚洲国产毛片aaaaa无费看| 国产精品福利在线播放| 久久精品人人做| 日韩三级中文字幕| 欧美日韩国产综合一区二区| 色综合色狠狠天天综合色| 成人动漫一区二区三区| 国产成人午夜99999| 韩国欧美国产一区| 美腿丝袜亚洲一区| 秋霞成人午夜伦在线观看| 午夜av电影一区| 亚洲午夜国产一区99re久久| 亚洲乱码日产精品bd| 国产精品高潮呻吟久久| 日本一区二区免费在线观看视频| 精品第一国产综合精品aⅴ| 日韩一区二区在线观看| 91精品欧美综合在线观看最新| 欧美丝袜自拍制服另类| 欧美丝袜自拍制服另类| 欧美日韩一级黄| 欧美日韩一区二区三区免费看 | 亚洲va欧美va人人爽午夜| 亚洲精品乱码久久久久| 一区二区三区波多野结衣在线观看| 亚洲欧美综合色| 亚洲乱码国产乱码精品精可以看| 亚洲免费在线电影| 一区二区免费视频| 夜夜嗨av一区二区三区网页| 亚洲在线视频网站| 亚洲va中文字幕| 蜜桃久久久久久| 国产一区二区三区最好精华液| 国产精品亚洲а∨天堂免在线| 国产乱一区二区| 成人avav影音| 色偷偷久久一区二区三区| 欧美午夜精品一区二区蜜桃| 欧美一卡二卡在线观看| 精品国产露脸精彩对白 | 日韩高清中文字幕一区| 美女视频网站久久| 国产成人在线色| 91麻豆精品视频| 在线不卡中文字幕播放| 欧美成人伊人久久综合网| 国产欧美日产一区| 伊人婷婷欧美激情| 免费一级欧美片在线观看| 国产在线精品免费av| 成人av网在线| 欧美日韩精品高清| 久久久久久久久久久99999| 亚洲视频在线观看三级| 三级久久三级久久| 国产福利91精品一区| 色婷婷综合激情| 欧美一区中文字幕| 国产精品天美传媒| 天堂成人免费av电影一区| 国产成人免费视频一区| 欧美日韩午夜影院| 久久久精品免费免费| 亚洲成人免费观看| 国产成人免费视频| 欧美日韩精品久久久| 国产欧美一区二区精品性色 | 菠萝蜜视频在线观看一区| 欧美在线|欧美| 国产亚洲一区二区在线观看| 亚洲国产一二三| 丁香一区二区三区| 欧美一级二级三级乱码| 亚洲欧洲av另类| 国产一区在线精品| 欧美亚日韩国产aⅴ精品中极品| 国产亚洲欧美中文| 日韩精品成人一区二区在线| a级精品国产片在线观看| 欧美va亚洲va在线观看蝴蝶网| 亚洲激情第一区| 国产a区久久久| 欧美一区二区在线免费播放| 亚洲欧美日韩一区二区| 精品午夜久久福利影院| 欧美高清性hdvideosex| 亚洲男人天堂av| 成人a区在线观看| 日韩精品一区二区三区三区免费| 一区二区成人在线| 99这里只有精品| 久久美女艺术照精彩视频福利播放| 午夜久久久久久电影| 色婷婷久久综合| 国产精品灌醉下药二区| 国产黄色成人av| 欧美精品一区二区三区四区| 日日嗨av一区二区三区四区| 色吊一区二区三区| 一区免费观看视频| 成人a级免费电影| 国产夜色精品一区二区av| 国产综合一区二区| 欧美xxxxxxxx| 麻豆精品新av中文字幕| 欧美人狂配大交3d怪物一区| 亚洲黄色小视频| 99久久婷婷国产综合精品| 国产精品进线69影院| 成人激情免费网站| 欧美国产在线观看| 高清免费成人av| 日本一二三四高清不卡| 高清视频一区二区| 国产精品久久久久一区二区三区共| 国产一区二区三区国产| 国产视频一区二区在线观看| 国产一区在线看| 国产午夜亚洲精品羞羞网站| 黑人巨大精品欧美黑白配亚洲| 欧美成人三级在线| 国产毛片精品国产一区二区三区| 欧美mv日韩mv国产| 激情偷乱视频一区二区三区| 欧美精品一区二区三区在线| 国产精品综合久久| 中文字幕在线一区免费| 国产精品亚洲综合一区在线观看| 日本一区二区在线不卡| 成人黄色一级视频| 亚洲免费电影在线| 欧美女孩性生活视频| 免费成人在线观看视频| 久久久亚洲午夜电影| 成人性生交大片免费看视频在线| 国产精品网站在线播放| 日本大香伊一区二区三区| 亚洲一区成人在线| 91精品国产乱码久久蜜臀| 狠狠色综合色综合网络| 中文字幕一区二区5566日韩| 欧洲一区二区三区免费视频| 奇米精品一区二区三区四区| 久久久av毛片精品| 一本久道中文字幕精品亚洲嫩| 日韩成人精品在线| 国产欧美日韩精品一区| 欧美性猛交xxxxxxxx| 久久电影网站中文字幕| 国产精品国产a| 欧美一二三四区在线| 粉嫩久久99精品久久久久久夜| 亚洲精品视频一区| 日韩精品一区在线观看| 成人av网站在线观看| 日韩精品免费视频人成| 中文字幕av一区二区三区免费看 | 91小视频免费观看| 美女任你摸久久| **性色生活片久久毛片| 欧美一区永久视频免费观看| 成人中文字幕合集| 亚洲第一福利视频在线| 国产亚洲一区字幕| 欧美精品日韩综合在线| a亚洲天堂av| 久久精品免费看| 一区二区国产视频| 日本一区二区三区久久久久久久久不 | 蜜臀91精品一区二区三区| 国产精品国产三级国产三级人妇| 欧美一区二区三区思思人| 成人国产精品视频| 捆绑调教美女网站视频一区| 亚洲欧美日韩综合aⅴ视频| 久久婷婷成人综合色| 欧美视频完全免费看| 国产91对白在线观看九色| 美女视频黄频大全不卡视频在线播放| 亚洲男女毛片无遮挡|