From 7039a05147b8bbfc829babea1c65bd436450b505 Mon Sep 17 00:00:00 2001 From: Björn Stenberg Date: Mon, 8 Jan 2007 23:53:00 +0000 Subject: Splitting out songdbj git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11953 a1c6a512-1295-4272-9138-f99709370657 --- songdbj/com/jcraft/jorbis/Floor1.java | 653 ---------------------------------- 1 file changed, 653 deletions(-) delete mode 100644 songdbj/com/jcraft/jorbis/Floor1.java (limited to 'songdbj/com/jcraft/jorbis/Floor1.java') diff --git a/songdbj/com/jcraft/jorbis/Floor1.java b/songdbj/com/jcraft/jorbis/Floor1.java deleted file mode 100644 index 1e52c3e537..0000000000 --- a/songdbj/com/jcraft/jorbis/Floor1.java +++ /dev/null @@ -1,653 +0,0 @@ -/* JOrbis - * Copyright (C) 2000 ymnk, JCraft,Inc. - * - * Written by: 2000 ymnk - * - * Many thanks to - * Monty and - * The XIPHOPHORUS Company http://www.xiph.org/ . - * JOrbis has been based on their awesome works, Vorbis codec. - * - * 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 com.jcraft.jorbis; - -import com.jcraft.jogg.*; - -class Floor1 extends FuncFloor{ - static final int floor1_rangedb=140; - static final int VIF_POSIT=63; - - void pack(Object i, Buffer opb){ - InfoFloor1 info=(InfoFloor1)i; - - int count=0; - int rangebits; - int maxposit=info.postlist[1]; - int maxclass=-1; - - /* save out partitions */ - opb.write(info.partitions,5); /* only 0 to 31 legal */ - for(int j=0;j=vi.books){ - //goto err_out; - info.free(); - return(null); - } - for(int k=0;k<(1<=vi.books){ - //goto err_out; - info.free(); - return(null); - } - } - } - - /* read the post list */ - info.mult=opb.read(2)+1; /* only 1,2,3,4 legal now */ - rangebits=opb.read(4); - - for(int j=0,k=0;j=(1<info.postlist[sortpointer[k]]){ - foo=sortpointer[k]; - sortpointer[k]=sortpointer[j]; - sortpointer[j]=foo; - } - } - } - - /* points from sort order back to range number */ - for(int j=0;j<_n;j++){ - look.forward_index[j]=sortpointer[j]; - } - /* points from range order to sorted position */ - for(int j=0;j<_n;j++){ - look.reverse_index[look.forward_index[j]]=j; - } - /* we actually need the post values too */ - for(int j=0;j<_n;j++){ - look.sorted_index[j]=info.postlist[look.forward_index[j]]; - } - - - /* quantize values to multiplier spec */ - switch(info.mult){ - case 1: /* 1024 -> 256 */ - look.quant_q=256; - break; - case 2: /* 1024 -> 128 */ - look.quant_q=128; - break; - case 3: /* 1024 -> 86 */ - look.quant_q=86; - break; - case 4: /* 1024 -> 64 */ - look.quant_q=64; - break; - default: - look.quant_q=-1; - } - - /* discover our neighbors for decode where we don't use fit flags - (that would push the neighbors outward) */ - for(int j=0;j<_n-2;j++){ - int lo=0; - int hi=1; - int lx=0; - int hx=look.n; - int currentx=info.postlist[j+2]; - for(int k=0;klx && xcurrentx){ - hi=k; - hx=x; - } - } - look.loneighbor[j]=lo; - look.hineighbor[j]=hi; - } - - return look; - } - - void free_info(Object i){} - void free_look(Object i){} - void free_state(Object vs){} - - int forward(Block vb, Object i, float[] in, float[] out, Object vs){return 0;} - - Object inverse1(Block vb, Object ii, Object memo){ - //System.err.println("Floor1.inverse "+i.getClass()+"]"); - LookFloor1 look=(LookFloor1)ii; - InfoFloor1 info=look.vi; - CodeBook[] books=vb.vd.fullbooks; - - /* unpack wrapped/predicted values from stream */ - if(vb.opb.read(1)==1){ - int[] fit_value=null; - if(memo instanceof int[]){ - fit_value=(int[])memo; - } - if(fit_value==null || fit_value.length>>=csubbits; - if(book>=0){ - if((fit_value[j+k]=books[book].decode(vb.opb))==-1){ - //goto eop; - return(null); - } - } - else{ - fit_value[j+k]=0; - } - } - j+=cdim; - } - - /* unwrap positive values and reconsitute via linear interpolation */ - for(int i=2;i=room){ - if(hiroom>loroom){ - val = val-loroom; - } - else{ - val = -1-(val-hiroom); - } - } - else{ - if((val&1)!=0){ - val= -((val+1)>>>1); - } - else{ - val>>=1; - } - } - - fit_value[i]=val+predicted; - fit_value[look.loneighbor[i-2]]&=0x7fff; - fit_value[look.hineighbor[i-2]]&=0x7fff; - } - else{ - fit_value[i]=predicted|0x8000; - } - } - return(fit_value); - } - -// eop: -// return(NULL); - return(null); - } - - private static int render_point(int x0,int x1,int y0,int y1,int x){ - y0&=0x7fff; /* mask off flag */ - y1&=0x7fff; - - { - int dy=y1-y0; - int adx=x1-x0; - int ady=Math.abs(dy); - int err=ady*(x-x0); - - int off=(int)(err/adx); - if(dy<0)return(y0-off); - return(y0+off); - } - } - - int inverse2(Block vb, Object i, Object memo, float[] out){ - LookFloor1 look=(LookFloor1)i; - InfoFloor1 info=look.vi; - int n=vb.vd.vi.blocksizes[vb.mode]/2; - - if(memo!=null){ - /* render the lines */ - int[] fit_value=(int[] )memo; - int hx=0; - int lx=0; - int ly=fit_value[0]*info.mult; - for(int j=1;j=adx){ - err-=adx; - y+=sy; - } - else{ - y+=base; - } - d[x]*=FLOOR_fromdB_LOOKUP[y]; - } - } - - static int ilog(int v){ - int ret=0; - while(v!=0){ - ret++; - v>>>=1; - } - return(ret); - } - - private static int ilog2(int v){ - int ret=0; - while(v>1){ - ret++; - v>>>=1; - } - return(ret); - } -} - -class InfoFloor1{ - static final int VIF_POSIT=63; - static final int VIF_CLASS=16; - static final int VIF_PARTS=31; - - int partitions; /* 0 to 31 */ - int[] partitionclass=new int[VIF_PARTS]; /* 0 to 15 */ - - int[] class_dim=new int[VIF_CLASS]; /* 1 to 8 */ - int[] class_subs=new int[VIF_CLASS]; /* 0,1,2,3 (bits: 1<