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

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

?? synthesisfilter.java

?? Java編寫的一個mp3播放器源代碼,對于想做這方面工作的網友來說還是有很大的參考價值的
?? JAVA
?? 第 1 頁 / 共 4 頁
字號:
/*
 * 11/19/04 1.0 moved to LGPL.
 * 
 * 04/01/00 Fixes for running under build 23xx Microsoft JVM. mdm.
 * 
 * 19/12/99 Performance improvements to compute_pcm_samples().  
 *			Mat McGowan. mdm@techie.com. 
 *
 * 16/02/99 Java Conversion by E.B , javalayer@javazoom.net
 *
 *  @(#) synthesis_filter.h 1.8, last edit: 6/15/94 16:52:00
 *  @(#) Copyright (C) 1993, 1994 Tobias Bading (bading@cs.tu-berlin.de)
 *  @(#) Berlin University of Technology
 *
 *-----------------------------------------------------------------------
 *   This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU Library General Public License as published
 *   by the Free Software Foundation; either version 2 of the License, or
 *   (at your option) any later version.
 *
 *   This program is distributed in the hope that it will be useful,
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *   GNU Library General Public License for more details.
 *
 *   You should have received a copy of the GNU Library General Public
 *   License along with this program; if not, write to the Free Software
 *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 *----------------------------------------------------------------------
 */
package javazoom.jl.decoder;

import java.io.IOException;

/**
 * A class for the synthesis filter bank.
 * This class does a fast downsampling from 32, 44.1 or 48 kHz to 8 kHz, if ULAW is defined.
 * Frequencies above 4 kHz are removed by ignoring higher subbands.
 */
final class SynthesisFilter
{
  private float[] 			 v1;
  private float[]		 	 v2;
  private float[]			 actual_v;			// v1 or v2
  private int 			 	 actual_write_pos;	// 0-15
  private float[]			 samples;			// 32 new subband samples
  private int				 channel;
  private float 			 scalefactor;
  private float[]			 eq;
	
	/**
	 * Quality value for controlling CPU usage/quality tradeoff. 
	 */
	/*
	private int				quality;
	
	private int				v_inc;
	
	
	
	public static final int	HIGH_QUALITY = 1;
	public static final int MEDIUM_QUALITY = 2;
	public static final int LOW_QUALITY = 4;
	*/
	
  /**
   * Contructor.
   * The scalefactor scales the calculated float pcm samples to short values
   * (raw pcm samples are in [-1.0, 1.0], if no violations occur).
   */
  public SynthesisFilter(int channelnumber, float factor, float[] eq0)
  {  	 
	  if (d==null)
	  {
			d = load_d();
			d16 = splitArray(d, 16);
	  }
	  
	  v1 = new float[512];
	 v2 = new float[512];
	 samples = new float[32];
     channel = channelnumber;
	 scalefactor = factor;
	 setEQ(eq);	 
	 //setQuality(HIGH_QUALITY);
	 
     reset();
  }
  
  public void setEQ(float[] eq0)
  {
	 this.eq = eq0;	 
	 if (eq==null)
	 {
		 eq = new float[32];
		 for (int i=0; i<32; i++)
			 eq[i] = 1.0f;
	 }
	 if (eq.length<32)
	 {
		throw new IllegalArgumentException("eq0");	 
	 }
	  
  }
  
	/*
	private void setQuality(int quality0)
	{
	  	switch (quality0)
	  	{		
		case HIGH_QUALITY:
		case MEDIUM_QUALITY:
		case LOW_QUALITY:						  
			v_inc = 16 * quality0;			
			quality = quality0;
			break;	
		default :
			throw new IllegalArgumentException("Unknown quality value");
	  	}				
	}
	
	public int getQuality()
	{
		return quality;	
	}
	*/
  
  /**
   * Reset the synthesis filter.
   */
  public void reset()
  {
     //float[] floatp;
	 // float[] floatp2;

     // initialize v1[] and v2[]:
     //for (floatp = v1 + 512, floatp2 = v2 + 512; floatp > v1; )
	 //   *--floatp = *--floatp2 = 0.0;
	 for (int p=0;p<512;p++) 
		 v1[p] = v2[p] = 0.0f;

     // initialize samples[]:
     //for (floatp = samples + 32; floatp > samples; )
	 //  *--floatp = 0.0;
	 for (int p2=0;p2<32;p2++) 
		 samples[p2] = 0.0f;

     actual_v = v1;
     actual_write_pos = 15;
  }


  /**
   * Inject Sample.
   */
  public void input_sample(float sample, int subbandnumber)
  {	 	 		  
	  samples[subbandnumber] = eq[subbandnumber]*sample;
  }

  public void input_samples(float[] s)
  {
	  for (int i=31; i>=0; i--)
	  {		
		 samples[i] = s[i]*eq[i];
	  }
  }
  
  /**
   * Compute new values via a fast cosine transform.
   */
  private void compute_new_v()
  {
	// p is fully initialized from x1
	 //float[] p = _p;
	 // pp is fully initialized from p
	 //float[] pp = _pp; 
	  
	 //float[] new_v = _new_v;
	  
  	//float[] new_v = new float[32]; // new V[0-15] and V[33-48] of Figure 3-A.2 in ISO DIS 11172-3
	//float[] p = new float[16];
	//float[] pp = new float[16];
	  
	 /*
	 for (int i=31; i>=0; i--)
	 {
		 new_v[i] = 0.0f;
	 }
	  */
	  
	float new_v0, new_v1, new_v2, new_v3, new_v4, new_v5, new_v6, new_v7, new_v8, new_v9;
	float new_v10, new_v11, new_v12, new_v13, new_v14, new_v15, new_v16, new_v17, new_v18, new_v19;
	float new_v20, new_v21, new_v22, new_v23, new_v24, new_v25, new_v26, new_v27, new_v28, new_v29;
	float new_v30, new_v31;
	  
	new_v0 = new_v1 = new_v2 = new_v3 = new_v4 = new_v5 = new_v6 = new_v7 = new_v8 = new_v9 = 
	new_v10 = new_v11 = new_v12 = new_v13 = new_v14 = new_v15 = new_v16 = new_v17 = new_v18 = new_v19 = 
	new_v20 = new_v21 = new_v22 = new_v23 = new_v24 = new_v25 = new_v26 = new_v27 = new_v28 = new_v29 = 
	new_v30 = new_v31 = 0.0f;
	
	
//	float[] new_v = new float[32]; // new V[0-15] and V[33-48] of Figure 3-A.2 in ISO DIS 11172-3
//	float[] p = new float[16];
//	float[] pp = new float[16];

    float[] s = samples;
	
	float s0 = s[0];
	float s1 = s[1];
	float s2 = s[2];
	float s3 = s[3];
	float s4 = s[4];
	float s5 = s[5];
	float s6 = s[6];
	float s7 = s[7];
	float s8 = s[8];
	float s9 = s[9];
	float s10 = s[10];	
	float s11 = s[11];
	float s12 = s[12];
	float s13 = s[13];
	float s14 = s[14];
	float s15 = s[15];
	float s16 = s[16];
	float s17 = s[17];
	float s18 = s[18];
	float s19 = s[19];
	float s20 = s[20];	
	float s21 = s[21];
	float s22 = s[22];
	float s23 = s[23];
	float s24 = s[24];
	float s25 = s[25];
	float s26 = s[26];
	float s27 = s[27];
	float s28 = s[28];
	float s29 = s[29];
	float s30 = s[30];	
	float s31 = s[31];
		
	float p0 = s0 + s31;
	float p1 = s1 + s30;
	float p2 = s2 + s29;
	float p3 = s3 + s28;
	float p4 = s4 + s27;
	float p5 = s5 + s26;
	float p6 = s6 + s25;
	float p7 = s7 + s24;
	float p8 = s8 + s23;
	float p9 = s9 + s22;
	float p10 = s10 + s21;
	float p11 = s11 + s20;
	float p12 = s12 + s19;
	float p13 = s13 + s18;
	float p14 = s14 + s17;
	float p15 = s15 + s16;
	
	float pp0 = p0 + p15;
	float pp1 = p1 + p14;
	float pp2 = p2 + p13;
	float pp3 = p3 + p12;
	float pp4 = p4 + p11;
	float pp5 = p5 + p10;
	float pp6 = p6 + p9;
	float pp7 = p7 + p8;
	float pp8 = (p0 - p15) * cos1_32;
	float pp9 = (p1 - p14) * cos3_32;
	float pp10 = (p2 - p13) * cos5_32;
	float pp11 = (p3 - p12) * cos7_32;
	float pp12 = (p4 - p11) * cos9_32;
	float pp13 = (p5 - p10) * cos11_32;
	float pp14 = (p6 - p9) * cos13_32;
	float pp15 = (p7 - p8) * cos15_32;

	p0 = pp0 + pp7;
	p1 = pp1 + pp6;
	p2 = pp2 + pp5;
	p3 = pp3 + pp4;
	p4 = (pp0 - pp7) * cos1_16;
	p5 = (pp1 - pp6) * cos3_16;
	p6 = (pp2 - pp5) * cos5_16;
	p7 = (pp3 - pp4) * cos7_16;
	p8 = pp8 + pp15;
	p9 = pp9 + pp14;
	p10 = pp10 + pp13;
	p11 = pp11 + pp12;
	p12 = (pp8 - pp15) * cos1_16;
	p13 = (pp9 - pp14) * cos3_16;
	p14 = (pp10 - pp13) * cos5_16;
	p15 = (pp11 - pp12) * cos7_16;
	

	pp0 = p0 + p3;
	pp1 = p1 + p2;
	pp2 = (p0 - p3) * cos1_8;
	pp3 = (p1 - p2) * cos3_8;
	pp4 = p4 + p7;
	pp5 = p5 + p6;
	pp6 = (p4 - p7) * cos1_8;
	pp7 = (p5 - p6) * cos3_8;
	pp8 = p8 + p11;
	pp9 = p9 + p10;
	pp10 = (p8 - p11) * cos1_8;
	pp11 = (p9 - p10) * cos3_8;
	pp12 = p12 + p15;
	pp13 = p13 + p14;
	pp14 = (p12 - p15) * cos1_8;
	pp15 = (p13 - p14) * cos3_8;

	p0 = pp0 + pp1;
	p1 = (pp0 - pp1) * cos1_4;
	p2 = pp2 + pp3;
	p3 = (pp2 - pp3) * cos1_4;
	p4 = pp4 + pp5;
	p5 = (pp4 - pp5) * cos1_4;
	p6 = pp6 + pp7;
	p7 = (pp6 - pp7) * cos1_4;
	p8 = pp8 + pp9;
	p9 = (pp8 - pp9) * cos1_4;
	p10 = pp10 + pp11;
	p11 = (pp10 - pp11) * cos1_4;
	p12 = pp12 + pp13;
	p13 = (pp12 - pp13) * cos1_4;
	p14 = pp14 + pp15;
	p15 = (pp14 - pp15) * cos1_4;

	// this is pretty insane coding
	float tmp1;
	new_v19/*36-17*/ = -(new_v4 = (new_v12 = p7) + p5) - p6;
	new_v27/*44-17*/ = -p6 - p7 - p4;
	new_v6 = (new_v10 = (new_v14 = p15) + p11) + p13;
	new_v17/*34-17*/ = -(new_v2 = p15 + p13 + p9) - p14;
	new_v21/*38-17*/ = (tmp1 = -p14 - p15 - p10 - p11) - p13;
	new_v29/*46-17*/ = -p14 - p15 - p12 - p8;
	new_v25/*42-17*/ = tmp1 - p12;
	new_v31/*48-17*/ = -p0;
	new_v0 = p1;
	new_v23/*40-17*/ = -(new_v8 = p3) - p2;
	
	p0 = (s0 - s31) * cos1_64;
	p1 = (s1 - s30) * cos3_64;
	p2 = (s2 - s29) * cos5_64;
	p3 = (s3 - s28) * cos7_64;
	p4 = (s4 - s27) * cos9_64;
	p5 = (s5 - s26) * cos11_64;
	p6 = (s6 - s25) * cos13_64;
	p7 = (s7 - s24) * cos15_64;
	p8 = (s8 - s23) * cos17_64;
	p9 = (s9 - s22) * cos19_64;
	p10 = (s10 - s21) * cos21_64;
	p11 = (s11 - s20) * cos23_64;
	p12 = (s12 - s19) * cos25_64;
	p13 = (s13 - s18) * cos27_64;
	p14 = (s14 - s17) * cos29_64;
	p15 = (s15 - s16) * cos31_64;

	
	pp0 = p0 + p15;
	pp1 = p1 + p14;
	pp2 = p2 + p13;
	pp3 = p3 + p12;
	pp4 = p4 + p11;
	pp5 = p5 + p10;
	pp6 = p6 + p9;
	pp7 = p7 + p8;
	pp8 = (p0 - p15) * cos1_32;
	pp9 = (p1 - p14) * cos3_32;
	pp10 = (p2 - p13) * cos5_32;
	pp11 = (p3 - p12) * cos7_32;
	pp12 = (p4 - p11) * cos9_32;
	pp13 = (p5 - p10) * cos11_32;
	pp14 = (p6 - p9) * cos13_32;
	pp15 = (p7 - p8) * cos15_32;
	

	p0 = pp0 + pp7;
	p1 = pp1 + pp6;
	p2 = pp2 + pp5;
	p3 = pp3 + pp4;
	p4 = (pp0 - pp7) * cos1_16;
	p5 = (pp1 - pp6) * cos3_16;
	p6 = (pp2 - pp5) * cos5_16;
	p7 = (pp3 - pp4) * cos7_16;
	p8 = pp8 + pp15;
	p9 = pp9 + pp14;
	p10 = pp10 + pp13;
	p11 = pp11 + pp12;
	p12 = (pp8 - pp15) * cos1_16;
	p13 = (pp9 - pp14) * cos3_16;
	p14 = (pp10 - pp13) * cos5_16;
	p15 = (pp11 - pp12) * cos7_16;


	pp0 = p0 + p3;
	pp1 = p1 + p2;
	pp2 = (p0 - p3) * cos1_8;
	pp3 = (p1 - p2) * cos3_8;
	pp4 = p4 + p7;
	pp5 = p5 + p6;
	pp6 = (p4 - p7) * cos1_8;
	pp7 = (p5 - p6) * cos3_8;
	pp8 = p8 + p11;
	pp9 = p9 + p10;
	pp10 = (p8 - p11) * cos1_8;
	pp11 = (p9 - p10) * cos3_8;
	pp12 = p12 + p15;
	pp13 = p13 + p14;
	pp14 = (p12 - p15) * cos1_8;
	pp15 = (p13 - p14) * cos3_8;

	
	p0 = pp0 + pp1;
	p1 = (pp0 - pp1) * cos1_4;
	p2 = pp2 + pp3;
	p3 = (pp2 - pp3) * cos1_4;
	p4 = pp4 + pp5;
	p5 = (pp4 - pp5) * cos1_4;
	p6 = pp6 + pp7;
	p7 = (pp6 - pp7) * cos1_4;
	p8 = pp8 + pp9;
	p9 = (pp8 - pp9) * cos1_4;
	p10 = pp10 + pp11;
	p11 = (pp10 - pp11) * cos1_4;
	p12 = pp12 + pp13;
	p13 = (pp12 - pp13) * cos1_4;
	p14 = pp14 + pp15;
	p15 = (pp14 - pp15) * cos1_4;
	

	// manually doing something that a compiler should handle sucks
	// coding like this is hard to read
	float tmp2;
	new_v5 = (new_v11 = (new_v13 = (new_v15 = p15) + p7) + p11)
							+ p5 + p13;
	new_v7 = (new_v9 = p15 + p11 + p3) + p13;
	new_v16/*33-17*/ = -(new_v1 = (tmp1 = p13 + p15 + p9) + p1) - p14;
	new_v18/*35-17*/ = -(new_v3 = tmp1 + p5 + p7) - p6 - p14;

	new_v22/*39-17*/ = (tmp1 = -p10 - p11 - p14 - p15)
									- p13 - p2 - p3;
	new_v20/*37-17*/ = tmp1 - p13 - p5 - p6 - p7;
	new_v24/*41-17*/ = tmp1 - p12 - p2 - p3;
	new_v26/*43-17*/ = tmp1 - p12 - (tmp2 = p4 + p6 + p7);
	new_v30/*47-17*/ = (tmp1 = -p8 - p12 - p14 - p15) - p0;
	new_v28/*45-17*/ = tmp1 - tmp2;

	// insert V[0-15] (== new_v[0-15]) into actual v:	
	// float[] x2 = actual_v + actual_write_pos;
	float dest[] = actual_v;
	
	int pos = actual_write_pos;
	
	dest[0 + pos] = new_v0;
	dest[16 + pos] = new_v1;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美综合久久久| 国产精品亚洲第一| 欧美午夜精品久久久久久超碰 | 91玉足脚交白嫩脚丫在线播放| 国产精品视频一二三| 成人动漫精品一区二区| 亚洲男人的天堂在线aⅴ视频| 日本国产一区二区| 肉色丝袜一区二区| 欧美精品一区二区久久婷婷| 粉嫩嫩av羞羞动漫久久久| 亚洲欧美精品午睡沙发| 欧美日韩中文国产| 狠狠色丁香婷综合久久| 国产精品久久久久久久久图文区 | 欧美久久久久久蜜桃| 久久狠狠亚洲综合| 中文字幕免费不卡| 欧美精品日韩精品| 国产成人精品影视| 亚洲国产日韩a在线播放性色| 日韩免费视频线观看| 99国产麻豆精品| 免费在线观看一区| 亚洲欧美在线aaa| 日韩一区二区高清| 成人免费观看视频| 日韩影视精彩在线| 国产精品久久福利| 91精品国产综合久久精品| 成人永久免费视频| 性欧美大战久久久久久久久| 日本一区二区在线不卡| 欧美卡1卡2卡| 91香蕉国产在线观看软件| 久久av中文字幕片| 亚洲综合色噜噜狠狠| 国产午夜亚洲精品不卡| 91麻豆精品91久久久久久清纯 | 久久综合av免费| 欧美日韩免费观看一区二区三区| 国产精品亚洲第一| 日本不卡视频一二三区| 亚洲欧美日韩系列| 国产色产综合色产在线视频| 欧美精品三级在线观看| www.av精品| 国产精品亚洲人在线观看| 日韩精品福利网| 亚洲伦理在线精品| 国产精品麻豆99久久久久久| 精品毛片乱码1区2区3区| 欧美日韩一级大片网址| 波多野结衣欧美| 久久99精品视频| 热久久久久久久| 亚洲一区二区在线免费观看视频| 中文字幕一区二区三区在线不卡| 久久你懂得1024| 精品蜜桃在线看| 亚洲欧美日韩国产手机在线 | 懂色av噜噜一区二区三区av| 日韩国产精品91| 一区二区三区自拍| 亚洲日本电影在线| 国产精品成人免费| 中文字幕一区二区三区精华液| 国产午夜精品久久久久久免费视| 精品第一国产综合精品aⅴ| 91精品视频网| 欧美日韩dvd在线观看| 欧美三级电影网| 91成人免费网站| 91福利资源站| 91成人在线精品| 欧美日韩午夜在线| 欧美日韩日日骚| 欧美高清激情brazzers| 欧美精品一级二级| 日韩丝袜美女视频| 欧美写真视频网站| 91免费国产在线观看| 一本色道**综合亚洲精品蜜桃冫| 99精品欧美一区二区蜜桃免费| 成人国产精品视频| 成人国产一区二区三区精品| 91视视频在线直接观看在线看网页在线看| 成人免费av资源| 91蝌蚪porny九色| 欧美私模裸体表演在线观看| 欧美色倩网站大全免费| 3751色影院一区二区三区| 91精品一区二区三区久久久久久 | 久久综合九色综合欧美98| 久久久一区二区三区捆绑**| 国产精品人成在线观看免费| 亚洲男同性视频| 天天综合天天做天天综合| 麻豆91在线看| 国产成人福利片| 色婷婷综合五月| 日韩欧美激情四射| 国产精品视频一二| 五月激情六月综合| 国产一区免费电影| av一二三不卡影片| 91精品国产综合久久精品图片 | 精品一区二区三区香蕉蜜桃| 成人免费看视频| 欧美日韩国产首页| 久久这里只有精品视频网| 亚洲男人天堂av| 蜜臀av性久久久久蜜臀av麻豆| 国产91精品在线观看| 色哟哟精品一区| 欧美videos大乳护士334| 国产精品欧美久久久久一区二区| 亚洲自拍与偷拍| 国产成人精品三级| 欧美精品 国产精品| 欧美精彩视频一区二区三区| 亚洲成人动漫av| 不卡av免费在线观看| 欧美精品少妇一区二区三区| 国产精品护士白丝一区av| 日韩精品电影一区亚洲| 成人av免费网站| 日韩免费电影网站| 亚洲精品少妇30p| 国产aⅴ精品一区二区三区色成熟| 欧美日韩一区二区三区不卡| 国产精品网站在线播放| 久久99久久99精品免视看婷婷 | 欧美大白屁股肥臀xxxxxx| 中文字幕中文在线不卡住| 老司机一区二区| 欧美色国产精品| 中文字幕一区视频| 国产精品12区| 精品噜噜噜噜久久久久久久久试看| 一区二区三区免费看视频| 国产91在线看| 久久久亚洲午夜电影| 麻豆国产精品视频| 欧美日韩亚洲综合一区二区三区| 中文字幕中文字幕一区二区| 国产在线精品不卡| 欧美成人video| 男男成人高潮片免费网站| 欧美日韩一区视频| 日韩精品一区二区三区老鸭窝| 国产成人综合在线| 69堂精品视频| 亚洲h精品动漫在线观看| 91欧美激情一区二区三区成人| 亚洲精品一区二区三区影院| 蜜桃91丨九色丨蝌蚪91桃色| 欧美丰满少妇xxxxx高潮对白| 亚洲一区av在线| 精品视频一区二区不卡| 尤物在线观看一区| 色偷偷久久人人79超碰人人澡| 成人欧美一区二区三区1314| 成人综合婷婷国产精品久久蜜臀| 国产人久久人人人人爽| 国产不卡视频在线播放| 久久免费看少妇高潮| 国产成人免费视频网站高清观看视频| 欧美日韩国产精品自在自线| 亚洲欧洲www| 色综合夜色一区| 亚洲激情av在线| 在线精品国精品国产尤物884a| 亚洲自拍偷拍图区| 欧美日韩不卡一区| 日本不卡一二三| 26uuu欧美| av资源网一区| 亚洲一区二区偷拍精品| 欧美高清www午色夜在线视频| 免费成人结看片| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 日韩精品一区二区三区在线| 狠狠色丁香婷婷综合| 国产日产欧产精品推荐色| 91在线视频免费91| 亚洲线精品一区二区三区| 日韩一卡二卡三卡| 国产传媒欧美日韩成人| 亚洲图片激情小说| 这里是久久伊人| 国产资源精品在线观看| 国产精品视频观看| 欧美日韩性生活| 国产伦精品一区二区三区免费 | 韩国女主播一区| 久久精品欧美一区二区三区麻豆| www.欧美日韩| 婷婷综合五月天| 久久精品一区二区三区不卡牛牛|