diff options
author | unknown <unknown@xiph.org> | 2004-03-20 18:42:46 +0000 |
---|---|---|
committer | unknown <unknown@xiph.org> | 2004-03-20 18:42:46 +0000 |
commit | cf3072e83c64b771ffeaf3e92db326dfc980c5bf (patch) | |
tree | 7e15141c69e171028ba8b375420c6da8c1e9367b /lib | |
parent | 1e5e61342bfe996bc153175cb1a5d0ddb8befc9a (diff) | |
download | libvorbis-git-cf3072e83c64b771ffeaf3e92db326dfc980c5bf.tar.gz |
This commit was manufactured by cvs2svn to create branch
'branch_monty_20010708'.
svn path=/branches/branch_monty_20010708/vorbis/; revision=1545
Diffstat (limited to 'lib')
143 files changed, 134 insertions, 31679 deletions
diff --git a/lib/.cvsignore b/lib/.cvsignore deleted file mode 100644 index 0839b71d..00000000 --- a/lib/.cvsignore +++ /dev/null @@ -1,6 +0,0 @@ -*.la -*.lo -.libs -.deps -Makefile -Makefile.in diff --git a/lib/Makefile.am b/lib/Makefile.am deleted file mode 100644 index 8751b151..00000000 --- a/lib/Makefile.am +++ /dev/null @@ -1,43 +0,0 @@ -## Process this file with automake to produce Makefile.in - -AUTOMAKE_OPTIONS = foreign - -SUBDIRS = modes books - -INCLUDES = -I$(top_srcdir)/include @OGG_CFLAGS@ - -lib_LTLIBRARIES = libvorbis.la libvorbisfile.la libvorbisenc.la - -libvorbis_la_SOURCES = mdct.c smallft.c block.c envelope.c window.c lsp.c \ - lpc.c analysis.c synthesis.c psy.c info.c time0.c \ - floor1.c floor0.c\ - res0.c mapping0.c registry.c codebook.c sharedbook.c\ - lookup.c bitbuffer.c\ - envelope.h lpc.h lsp.h codebook.h misc.h psy.h\ - masking.h iir.h os.h mdct.h smallft.h\ - registry.h scales.h window.h lookup.h lookup_data.h\ - codec_internal.h backends.h bitbuffer.h -libvorbis_la_LDFLAGS = -version-info @V_LIB_CURRENT@:@V_LIB_REVISION@:@V_LIB_AGE@ - -libvorbisfile_la_SOURCES = vorbisfile.c -libvorbisfile_la_LDFLAGS = -version-info @VF_LIB_CURRENT@:@VF_LIB_REVISION@:@VF_LIB_AGE@ - -libvorbisenc_la_SOURCES = vorbisenc.c -libvorbisenc_la_LDFLAGS = -version-info @VE_LIB_CURRENT@:@VE_LIB_REVISION@:@VE_LIB_AGE@ - -EXTRA_PROGRAMS = barkmel tone psytune -CLEANFILES = $(EXTRA_PROGRAMS) - -barkmel_SOURCES = barkmel.c -tone_SOURCES = tone.c -psytune_SOURCES = psytune.c -psytune_LDFLAGS = -static -psytune_LDADD = libvorbis.la - -EXTRA_DIST = lookups.pl iir.c - -debug: - $(MAKE) all CFLAGS="@DEBUG@" - -profile: - $(MAKE) all CFLAGS="@PROFILE@" diff --git a/lib/analysis.c b/lib/analysis.c deleted file mode 100644 index 85f2368c..00000000 --- a/lib/analysis.c +++ /dev/null @@ -1,114 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: single-block PCM analysis mode dispatch - last mod: $Id: analysis.c,v 1.44 2001/05/27 06:43:59 xiphmont Exp $ - - ********************************************************************/ - -#include <stdio.h> -#include <string.h> -#include <math.h> -#include <ogg/ogg.h> -#include "vorbis/codec.h" -#include "registry.h" -#include "scales.h" -#include "os.h" - -/* decides between modes, dispatches to the appropriate mapping. */ -int vorbis_analysis(vorbis_block *vb,ogg_packet *op){ - vorbis_dsp_state *vd=vb->vd; - backend_lookup_state *b=vd->backend_state; - vorbis_info *vi=vd->vi; - codec_setup_info *ci=vi->codec_setup; - int type,ret; - int mode=0; - - vb->glue_bits=0; - vb->time_bits=0; - vb->floor_bits=0; - vb->res_bits=0; - - /* first things first. Make sure encode is ready */ - oggpack_reset(&vb->opb); - /* Encode the packet type */ - oggpack_write(&vb->opb,0,1); - - /* currently lazy. Short block dispatches to 0, long to 1. */ - - if(vb->W &&ci->modes>1)mode=1; - type=ci->map_type[ci->mode_param[mode]->mapping]; - vb->mode=mode; - - /* Encode frame mode, pre,post windowsize, then dispatch */ - oggpack_write(&vb->opb,mode,b->modebits); - if(vb->W){ - oggpack_write(&vb->opb,vb->lW,1); - oggpack_write(&vb->opb,vb->nW,1); - /*fprintf(stderr,"*"); - }else{ - fprintf(stderr,".");*/ - } - - if((ret=_mapping_P[type]->forward(vb,b->mode[mode]))) - return(ret); - - /* set up the packet wrapper */ - - op->packet=oggpack_get_buffer(&vb->opb); - op->bytes=oggpack_bytes(&vb->opb); - op->b_o_s=0; - op->e_o_s=vb->eofflag; - op->granulepos=vb->granulepos; - op->packetno=vb->sequence; /* for sake of completeness */ - - return(0); -} - -/* there was no great place to put this.... */ -void _analysis_output_always(char *base,int i,float *v,int n,int bark,int dB){ - int j; - FILE *of; - char buffer[80]; - - // if(i==5870){ - sprintf(buffer,"%s_%d.m",base,i); - of=fopen(buffer,"w"); - - if(!of)perror("failed to open data dump file"); - - for(j=0;j<n;j++){ - if(dB && v[j]==0) - fprintf(of,"\n\n"); - else{ - if(bark) - fprintf(of,"%g ",toBARK(22050.f*j/n)); - else - fprintf(of,"%g ",(double)j); - - if(dB){ - fprintf(of,"%g\n",todB(v+j)); - }else{ - fprintf(of,"%g\n",v[j]); - } - } - } - fclose(of); - // } -} - -void _analysis_output(char *base,int i,float *v,int n,int bark,int dB){ -#ifdef ANALYSIS - _analysis_output_always(base,i,v,n,bark,dB); -#endif -} - diff --git a/lib/backends.h b/lib/backends.h deleted file mode 100644 index e4199d5f..00000000 --- a/lib/backends.h +++ /dev/null @@ -1,187 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: libvorbis backend and mapping structures; needed for - static mode headers - last mod: $Id: backends.h,v 1.9 2001/06/15 23:31:00 xiphmont Exp $ - - ********************************************************************/ - -/* this is exposed up here because we need it for static modes. - Lookups for each backend aren't exposed because there's no reason - to do so */ - -#ifndef _vorbis_backend_h_ -#define _vorbis_backend_h_ - -#include "codec_internal.h" - -/* this would all be simpler/shorter with templates, but.... */ -/* Transform backend generic *************************************/ - -/* only mdct right now. Flesh it out more if we ever transcend mdct - in the transform domain */ - -/* Time backend generic ******************************************/ -typedef struct{ - void (*pack) (vorbis_info_time *,oggpack_buffer *); - vorbis_info_time *(*unpack)(vorbis_info *,oggpack_buffer *); - vorbis_look_time *(*look) (vorbis_dsp_state *,vorbis_info_mode *, - vorbis_info_time *); - vorbis_info_time *(*copy_info)(vorbis_info_time *); - - void (*free_info) (vorbis_info_time *); - void (*free_look) (vorbis_look_time *); - int (*forward) (struct vorbis_block *,vorbis_look_time *, - float *,float *); - int (*inverse) (struct vorbis_block *,vorbis_look_time *, - float *,float *); -} vorbis_func_time; - -typedef struct{ - int dummy; -} vorbis_info_time0; - -/* Floor backend generic *****************************************/ -typedef struct{ - void (*pack) (vorbis_info_floor *,oggpack_buffer *); - vorbis_info_floor *(*unpack)(vorbis_info *,oggpack_buffer *); - vorbis_look_floor *(*look) (vorbis_dsp_state *,vorbis_info_mode *, - vorbis_info_floor *); - vorbis_info_floor *(*copy_info)(vorbis_info_floor *); - void (*free_info) (vorbis_info_floor *); - void (*free_look) (vorbis_look_floor *); - int (*forward) (struct vorbis_block *,vorbis_look_floor *, - const float *, const float *, /* in */ - const float *, const float *, /* in */ - float *, float *); /* out */ - void *(*inverse1) (struct vorbis_block *,vorbis_look_floor *); - int (*inverse2) (struct vorbis_block *,vorbis_look_floor *, - void *buffer,float *); -} vorbis_func_floor; - -typedef struct{ - int order; - long rate; - long barkmap; - - int ampbits; - int ampdB; - - int numbooks; /* <= 16 */ - int books[16]; - - float lessthan; /* encode-only config setting hacks for libvorbis */ - float greaterthan; /* encode-only config setting hacks for libvorbis */ - -} vorbis_info_floor0; - -#define VIF_POSIT 63 -#define VIF_CLASS 16 -#define VIF_PARTS 31 -typedef struct{ - int partitions; /* 0 to 31 */ - int partitionclass[VIF_PARTS]; /* 0 to 15 */ - - int class_dim[VIF_CLASS]; /* 1 to 8 */ - int class_subs[VIF_CLASS]; /* 0,1,2,3 (bits: 1<<n poss) */ - int class_book[VIF_CLASS]; /* subs ^ dim entries */ - int class_subbook[VIF_CLASS][8]; /* [VIF_CLASS][subs] */ - - - int mult; /* 1 2 3 or 4 */ - int postlist[VIF_POSIT+2]; /* first two implicit */ - - - /* encode side analysis parameters */ - float maxover; - float maxunder; - float maxerr; - - int twofitminsize; - int twofitminused; - int twofitweight; - float twofitatten; - int unusedminsize; - int unusedmin_n; - -} vorbis_info_floor1; - -/* Residue backend generic *****************************************/ -typedef struct{ - void (*pack) (vorbis_info_residue *,oggpack_buffer *); - vorbis_info_residue *(*unpack)(vorbis_info *,oggpack_buffer *); - vorbis_look_residue *(*look) (vorbis_dsp_state *,vorbis_info_mode *, - vorbis_info_residue *); - vorbis_info_residue *(*copy_info)(vorbis_info_residue *); - void (*free_info) (vorbis_info_residue *); - void (*free_look) (vorbis_look_residue *); - int (*forward) (struct vorbis_block *,vorbis_look_residue *, - float **,int *,int); - int (*inverse) (struct vorbis_block *,vorbis_look_residue *, - float **,int *,int); -} vorbis_func_residue; - -typedef struct vorbis_info_residue0{ -/* block-partitioned VQ coded straight residue */ - long begin; - long end; - - /* first stage (lossless partitioning) */ - int grouping; /* group n vectors per partition */ - int partitions; /* possible codebooks for a partition */ - int groupbook; /* huffbook for partitioning */ - int secondstages[64]; /* expanded out to pointers in lookup */ - int booklist[256]; /* list of second stage books */ - - /* encode-only heuristic settings */ - float entmax[64]; /* book entropy threshholds*/ - float ampmax[64]; /* book amp threshholds*/ - int subgrp[64]; /* book heuristic subgroup size */ - int blimit[64]; /* subgroup position limits */ - -} vorbis_info_residue0; - -/* Mapping backend generic *****************************************/ -typedef struct{ - void (*pack) (vorbis_info *,vorbis_info_mapping *, - oggpack_buffer *); - vorbis_info_mapping *(*unpack)(vorbis_info *,oggpack_buffer *); - vorbis_look_mapping *(*look) (vorbis_dsp_state *,vorbis_info_mode *, - vorbis_info_mapping *); - vorbis_info_mapping *(*copy_info)(vorbis_info_mapping *); - void (*free_info) (vorbis_info_mapping *); - void (*free_look) (vorbis_look_mapping *); - int (*forward) (struct vorbis_block *vb,vorbis_look_mapping *); - int (*inverse) (struct vorbis_block *vb,vorbis_look_mapping *); -} vorbis_func_mapping; - -typedef struct vorbis_info_mapping0{ - int submaps; /* <= 16 */ - int chmuxlist[256]; /* up to 256 channels in a Vorbis stream */ - - int timesubmap[16]; /* [mux] */ - int floorsubmap[16]; /* [mux] submap to floors */ - int residuesubmap[16]; /* [mux] submap to residue */ - int psysubmap[16]; /* [mux]; encode only */ - - int coupling_steps; - int coupling_mag[256]; - int coupling_ang[256]; -} vorbis_info_mapping0; - -#endif - - - - - diff --git a/lib/barkmel.c b/lib/barkmel.c deleted file mode 100644 index d458614d..00000000 --- a/lib/barkmel.c +++ /dev/null @@ -1,64 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: bark scale utility - last mod: $Id: barkmel.c,v 1.7 2001/06/15 21:15:39 xiphmont Exp $ - - ********************************************************************/ - -#include <stdio.h> -#include "scales.h" -int main(){ - int i; - double rate; - for(i=64;i<32000;i*=2){ - rate=48000.f; - fprintf(stderr,"rate=%gHz, block=%d, f(1)=%.2gHz bark(1)=%.2g (of %.2g)\n", - rate,i,rate/2 / (i/2),toBARK(rate/2 /(i/2)),toBARK(rate/2)); - - rate=44100.f; - fprintf(stderr,"rate=%gHz, block=%d, f(1)=%.2gHz bark(1)=%.2g (of %.2g)\n", - rate,i,rate/2 / (i/2),toBARK(rate/2 /(i/2)),toBARK(rate/2)); - - rate=32000.f; - fprintf(stderr,"rate=%gHz, block=%d, f(1)=%.2gHz bark(1)=%.2g (of %.2g)\n", - rate,i,rate/2 / (i/2),toBARK(rate/2 /(i/2)),toBARK(rate/2)); - - rate=22050.f; - fprintf(stderr,"rate=%gHz, block=%d, f(1)=%.2gHz bark(1)=%.2g (of %.2g)\n", - rate,i,rate/2 / (i/2),toBARK(rate/2 /(i/2)),toBARK(rate/2)); - - rate=16000.f; - fprintf(stderr,"rate=%gHz, block=%d, f(1)=%.2gHz bark(1)=%.2g (of %.2g)\n", - rate,i,rate/2 / (i/2),toBARK(rate/2 /(i/2)),toBARK(rate/2)); - - rate=11025.f; - fprintf(stderr,"rate=%gHz, block=%d, f(1)=%.2gHz bark(1)=%.2g (of %.2g)\n", - rate,i,rate/2 / (i/2),toBARK(rate/2 /(i/2)),toBARK(rate/2)); - - rate=8000.f; - fprintf(stderr,"rate=%gHz, block=%d, f(1)=%.2gHz bark(1)=%.2g (of %.2g)\n\n", - rate,i,rate/2 / (i/2),toBARK(rate/2 /(i/2)),toBARK(rate/2)); - - - } - { - float i; - int j; - for(i=0.,j=0;i<28;i+=1.,j++){ - fprintf(stderr,"(%d) bark=%f %gHz (%d of 128)\n", - j,i,fromBARK(i),(int)(fromBARK(i)/22050.*128.)); - } - } - return(0); -} - diff --git a/lib/bitbuffer.c b/lib/bitbuffer.c deleted file mode 100644 index 60580443..00000000 --- a/lib/bitbuffer.c +++ /dev/null @@ -1,67 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: flexible, delayed bitpacking abstraction - last mod: $Id: bitbuffer.c,v 1.5 2001/02/26 03:50:41 xiphmont Exp $ - - ********************************************************************/ - -#include <string.h> -#include <ogg/ogg.h> -#include <vorbis/codec.h> -#include "misc.h" -#include "bitbuffer.h" - -/* done carefully to do two things: - 1) no realloc - 2) draws from our exact-size vorbis_block pool -*/ - -void bitbuf_init(vorbis_bitbuffer *vbb,vorbis_block *vb){ - memset(vbb,0,sizeof(vorbis_bitbuffer)); - vbb->vb=vb; - vbb->first=vbb->last=_vorbis_block_alloc(vb,sizeof(vorbis_bitbuffer_chain)); - vbb->first->next=0; /* overengineering */ -} - -void bitbuf_write(vorbis_bitbuffer *vbb,unsigned long word,int length){ - vorbis_block *vb=vbb->vb; - if(vbb->ptr>=_VBB_ALLOCSIZE){ - vbb->last->next=_vorbis_block_alloc(vb,sizeof(vorbis_bitbuffer_chain)); - vbb->last=vbb->last->next; - vbb->last->next=0; /* overengineering */ - vbb->ptr=0; - } - vbb->last->words[vbb->ptr]=word; - vbb->last->bits[vbb->ptr++]=length; -} - -void bitbuf_pack(oggpack_buffer *dest,vorbis_bitbuffer *vbb){ - vorbis_bitbuffer_chain *vbc=vbb->first; - int i; - - while(vbc->next){ - for(i=0;i<_VBB_ALLOCSIZE;i++) - oggpack_write(dest,vbc->words[i],vbc->bits[i]); - vbc=vbc->next; - } - for(i=0;i<vbb->ptr;i++) - oggpack_write(dest,vbc->words[i],vbc->bits[i]); -} - -/* codebook variants for encoding to the bitbuffer */ - -int vorbis_book_bufencode(codebook *book, int a, vorbis_bitbuffer *b){ - bitbuf_write(b,book->codelist[a],book->c->lengthlist[a]); - return(book->c->lengthlist[a]); -} - diff --git a/lib/bitbuffer.h b/lib/bitbuffer.h deleted file mode 100644 index 3d21baa4..00000000 --- a/lib/bitbuffer.h +++ /dev/null @@ -1,44 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: flexible, delayed bitpacking abstraction - last mod: $Id: bitbuffer.h,v 1.3 2001/02/26 03:50:41 xiphmont Exp $ - - ********************************************************************/ - -#ifndef _V_BITBUF_ -#define _V_BITBUF_ - -#include "codebook.h" - -#define _VBB_ALLOCSIZE 128 -typedef struct vorbis_bitbuffer_chain{ - ogg_uint32_t words[_VBB_ALLOCSIZE]; - int bits[_VBB_ALLOCSIZE]; - struct vorbis_bitbuffer_chain *next; -} vorbis_bitbuffer_chain; - -typedef struct vorbis_bitbuffer{ - long ptr; - vorbis_bitbuffer_chain *first; - vorbis_bitbuffer_chain *last; - vorbis_block *vb; -} vorbis_bitbuffer; - -void bitbuf_init(vorbis_bitbuffer *vbb,vorbis_block *vb); -extern void bitbuf_write(vorbis_bitbuffer *vbb,unsigned long word,int length); -extern void bitbuf_pack(oggpack_buffer *dest,vorbis_bitbuffer *source); - - -extern int vorbis_book_bufencode(codebook *book, int a, vorbis_bitbuffer *b); - -#endif diff --git a/lib/block.c b/lib/block.c deleted file mode 100644 index 0bba4140..00000000 --- a/lib/block.c +++ /dev/null @@ -1,807 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: PCM data vector blocking, windowing and dis/reassembly - last mod: $Id: block.c,v 1.48 2001/05/27 06:43:59 xiphmont Exp $ - - Handle windowing, overlap-add, etc of the PCM vectors. This is made - more amusing by Vorbis' current two allowed block sizes. - - ********************************************************************/ - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <ogg/ogg.h> -#include "vorbis/codec.h" -#include "codec_internal.h" - -#include "window.h" -#include "envelope.h" -#include "mdct.h" -#include "lpc.h" -#include "registry.h" -#include "codebook.h" -#include "misc.h" -#include "os.h" -#include "psy.h" - -static int ilog2(unsigned int v){ - int ret=0; - while(v>1){ - ret++; - v>>=1; - } - return(ret); -} - -/* pcm accumulator examples (not exhaustive): - - <-------------- lW ----------------> - <--------------- W ----------------> -: .....|..... _______________ | -: .''' | '''_--- | |\ | -:.....''' |_____--- '''......| | \_______| -:.................|__________________|_______|__|______| - |<------ Sl ------>| > Sr < |endW - |beginSl |endSl | |endSr - |beginW |endlW |beginSr - - - |< lW >| - <--------------- W ----------------> - | | .. ______________ | - | | ' `/ | ---_ | - |___.'___/`. | ---_____| - |_______|__|_______|_________________| - | >|Sl|< |<------ Sr ----->|endW - | | |endSl |beginSr |endSr - |beginW | |endlW - mult[0] |beginSl mult[n] - - <-------------- lW -----------------> - |<--W-->| -: .............. ___ | | -: .''' |`/ \ | | -:.....''' |/`....\|...| -:.........................|___|___|___| - |Sl |Sr |endW - | | |endSr - | |beginSr - | |endSl - |beginSl - |beginW -*/ - -/* block abstraction setup *********************************************/ - -#ifndef WORD_ALIGN -#define WORD_ALIGN 8 -#endif - -int vorbis_block_init(vorbis_dsp_state *v, vorbis_block *vb){ - memset(vb,0,sizeof(vorbis_block)); - vb->vd=v; - vb->localalloc=0; - vb->localstore=NULL; - if(v->analysisp){ - oggpack_writeinit(&vb->opb); - vb->internal=_ogg_calloc(1,sizeof(vorbis_block_internal)); - ((vorbis_block_internal *)vb->internal)->ampmax=-9999; - } - - return(0); -} - -void *_vorbis_block_alloc(vorbis_block *vb,long bytes){ - bytes=(bytes+(WORD_ALIGN-1)) & ~(WORD_ALIGN-1); - if(bytes+vb->localtop>vb->localalloc){ - /* can't just _ogg_realloc... there are outstanding pointers */ - if(vb->localstore){ - struct alloc_chain *link=_ogg_malloc(sizeof(struct alloc_chain)); - vb->totaluse+=vb->localtop; - link->next=vb->reap; - link->ptr=vb->localstore; - vb->reap=link; - } - /* highly conservative */ - vb->localalloc=bytes; - vb->localstore=_ogg_malloc(vb->localalloc); - vb->localtop=0; - } - { - void *ret=(void *)(((char *)vb->localstore)+vb->localtop); - vb->localtop+=bytes; - return ret; - } -} - -/* reap the chain, pull the ripcord */ -void _vorbis_block_ripcord(vorbis_block *vb){ - /* reap the chain */ - struct alloc_chain *reap=vb->reap; - while(reap){ - struct alloc_chain *next=reap->next; - _ogg_free(reap->ptr); - memset(reap,0,sizeof(struct alloc_chain)); - _ogg_free(reap); - reap=next; - } - /* consolidate storage */ - if(vb->totaluse){ - vb->localstore=_ogg_realloc(vb->localstore,vb->totaluse+vb->localalloc); - vb->localalloc+=vb->totaluse; - vb->totaluse=0; - } - - /* pull the ripcord */ - vb->localtop=0; - vb->reap=NULL; -} - -int vorbis_block_clear(vorbis_block *vb){ - if(vb->vd) - if(vb->vd->analysisp) - oggpack_writeclear(&vb->opb); - _vorbis_block_ripcord(vb); - if(vb->localstore)_ogg_free(vb->localstore); - if(vb->internal)_ogg_free(vb->internal); - - memset(vb,0,sizeof(vorbis_block)); - return(0); -} - -/* Analysis side code, but directly related to blocking. Thus it's - here and not in analysis.c (which is for analysis transforms only). - The init is here because some of it is shared */ - -static int _vds_shared_init(vorbis_dsp_state *v,vorbis_info *vi,int encp){ - int i; - codec_setup_info *ci=vi->codec_setup; - backend_lookup_state *b=NULL; - - memset(v,0,sizeof(vorbis_dsp_state)); - b=v->backend_state=_ogg_calloc(1,sizeof(backend_lookup_state)); - - v->vi=vi; - b->modebits=ilog2(ci->modes); - b->ampmax=-9999; - - b->transform[0]=_ogg_calloc(VI_TRANSFORMB,sizeof(vorbis_look_transform *)); - b->transform[1]=_ogg_calloc(VI_TRANSFORMB,sizeof(vorbis_look_transform *)); - - /* MDCT is tranform 0 */ - - b->transform[0][0]=_ogg_calloc(1,sizeof(mdct_lookup)); - b->transform[1][0]=_ogg_calloc(1,sizeof(mdct_lookup)); - mdct_init(b->transform[0][0],ci->blocksizes[0]); - mdct_init(b->transform[1][0],ci->blocksizes[1]); - - b->window[0][0][0]=_ogg_calloc(VI_WINDOWB,sizeof(float *)); - b->window[0][0][1]=b->window[0][0][0]; - b->window[0][1][0]=b->window[0][0][0]; - b->window[0][1][1]=b->window[0][0][0]; - b->window[1][0][0]=_ogg_calloc(VI_WINDOWB,sizeof(float *)); - b->window[1][0][1]=_ogg_calloc(VI_WINDOWB,sizeof(float *)); - b->window[1][1][0]=_ogg_calloc(VI_WINDOWB,sizeof(float *)); - b->window[1][1][1]=_ogg_calloc(VI_WINDOWB,sizeof(float *)); - - for(i=0;i<VI_WINDOWB;i++){ - b->window[0][0][0][i]= - _vorbis_window(i,ci->blocksizes[0],ci->blocksizes[0]/2,ci->blocksizes[0]/2); - b->window[1][0][0][i]= - _vorbis_window(i,ci->blocksizes[1],ci->blocksizes[0]/2,ci->blocksizes[0]/2); - b->window[1][0][1][i]= - _vorbis_window(i,ci->blocksizes[1],ci->blocksizes[0]/2,ci->blocksizes[1]/2); - b->window[1][1][0][i]= - _vorbis_window(i,ci->blocksizes[1],ci->blocksizes[1]/2,ci->blocksizes[0]/2); - b->window[1][1][1][i]= - _vorbis_window(i,ci->blocksizes[1],ci->blocksizes[1]/2,ci->blocksizes[1]/2); - } - - if(encp){ /* encode/decode differ here */ - /* finish the codebooks */ - b->fullbooks=_ogg_calloc(ci->books,sizeof(codebook)); - for(i=0;i<ci->books;i++) - vorbis_book_init_encode(b->fullbooks+i,ci->book_param[i]); - v->analysisp=1; - }else{ - /* finish the codebooks */ - b->fullbooks=_ogg_calloc(ci->books,sizeof(codebook)); - for(i=0;i<ci->books;i++) - vorbis_book_init_decode(b->fullbooks+i,ci->book_param[i]); - } - - /* initialize the storage vectors to a decent size greater than the - minimum */ - - v->pcm_storage=8192; /* we'll assume later that we have - a minimum of twice the blocksize of - accumulated samples in analysis */ - v->pcm=_ogg_malloc(vi->channels*sizeof(float *)); - v->pcmret=_ogg_malloc(vi->channels*sizeof(float *)); - { - int i; - for(i=0;i<vi->channels;i++) - v->pcm[i]=_ogg_calloc(v->pcm_storage,sizeof(float)); - } - - /* all 1 (large block) or 0 (small block) */ - /* explicitly set for the sake of clarity */ - v->lW=0; /* previous window size */ - v->W=0; /* current window size */ - - /* all vector indexes */ - v->centerW=ci->blocksizes[1]/2; - - v->pcm_current=v->centerW; - - /* initialize all the mapping/backend lookups */ - b->mode=_ogg_calloc(ci->modes,sizeof(vorbis_look_mapping *)); - for(i=0;i<ci->modes;i++){ - int mapnum=ci->mode_param[i]->mapping; - int maptype=ci->map_type[mapnum]; - b->mode[i]=_mapping_P[maptype]->look(v,ci->mode_param[i], - ci->map_param[mapnum]); - } - - return(0); -} - -/* arbitrary settings and spec-mandated numbers get filled in here */ -int vorbis_analysis_init(vorbis_dsp_state *v,vorbis_info *vi){ - backend_lookup_state *b=NULL; - - _vds_shared_init(v,vi,1); - b=v->backend_state; - - /* Initialize the envelope state storage */ - b->ve=_ogg_calloc(1,sizeof(envelope_lookup)); - _ve_envelope_init(b->ve,vi); - - return(0); -} - -void vorbis_dsp_clear(vorbis_dsp_state *v){ - int i,j,k; - if(v){ - vorbis_info *vi=v->vi; - codec_setup_info *ci=(vi?vi->codec_setup:NULL); - backend_lookup_state *b=v->backend_state; - - if(b){ - if(b->window[0][0][0]){ - for(i=0;i<VI_WINDOWB;i++) - if(b->window[0][0][0][i])_ogg_free(b->window[0][0][0][i]); - _ogg_free(b->window[0][0][0]); - - for(j=0;j<2;j++) - for(k=0;k<2;k++){ - for(i=0;i<VI_WINDOWB;i++) - if(b->window[1][j][k][i])_ogg_free(b->window[1][j][k][i]); - _ogg_free(b->window[1][j][k]); - } - } - - if(b->ve){ - _ve_envelope_clear(b->ve); - _ogg_free(b->ve); - } - - if(b->transform[0]){ - mdct_clear(b->transform[0][0]); - _ogg_free(b->transform[0][0]); - _ogg_free(b->transform[0]); - } - if(b->transform[1]){ - mdct_clear(b->transform[1][0]); - _ogg_free(b->transform[1][0]); - _ogg_free(b->transform[1]); - } - - } - - if(v->pcm){ - for(i=0;i<vi->channels;i++) - if(v->pcm[i])_ogg_free(v->pcm[i]); - _ogg_free(v->pcm); - if(v->pcmret)_ogg_free(v->pcmret); - } - - /* free mode lookups; these are actually vorbis_look_mapping structs */ - if(ci){ - for(i=0;i<ci->modes;i++){ - int mapnum=ci->mode_param[i]->mapping; - int maptype=ci->map_type[mapnum]; - if(b && b->mode)_mapping_P[maptype]->free_look(b->mode[i]); - } - /* free codebooks */ - for(i=0;i<ci->books;i++) - if(b && b->fullbooks)vorbis_book_clear(b->fullbooks+i); - } - - if(b){ - if(b->mode)_ogg_free(b->mode); - if(b->fullbooks)_ogg_free(b->fullbooks); - - /* free header, header1, header2 */ - if(b->header)_ogg_free(b->header); - if(b->header1)_ogg_free(b->header1); - if(b->header2)_ogg_free(b->header2); - _ogg_free(b); - } - - memset(v,0,sizeof(vorbis_dsp_state)); - } -} - -float **vorbis_analysis_buffer(vorbis_dsp_state *v, int vals){ - int i; - vorbis_info *vi=v->vi; - backend_lookup_state *b=v->backend_state; - - /* free header, header1, header2 */ - if(b->header)_ogg_free(b->header);b->header=NULL; - if(b->header1)_ogg_free(b->header1);b->header1=NULL; - if(b->header2)_ogg_free(b->header2);b->header2=NULL; - - /* Do we have enough storage space for the requested buffer? If not, - expand the PCM (and envelope) storage */ - - if(v->pcm_current+vals>=v->pcm_storage){ - v->pcm_storage=v->pcm_current+vals*2; - - for(i=0;i<vi->channels;i++){ - v->pcm[i]=_ogg_realloc(v->pcm[i],v->pcm_storage*sizeof(float)); - } - } - - for(i=0;i<vi->channels;i++) - v->pcmret[i]=v->pcm[i]+v->pcm_current; - - return(v->pcmret); -} - -static void _preextrapolate_helper(vorbis_dsp_state *v){ - int i; - int order=32; - float *lpc=alloca(order*sizeof(float)); - float *work=alloca(v->pcm_current*sizeof(float)); - long j; - v->preextrapolate=1; - - if(v->pcm_current-v->centerW>order*2){ /* safety */ - for(i=0;i<v->vi->channels;i++){ - - /* need to run the extrapolation in reverse! */ - for(j=0;j<v->pcm_current;j++) - work[j]=v->pcm[i][v->pcm_current-j-1]; - - /* prime as above */ - vorbis_lpc_from_data(work,lpc,v->pcm_current-v->centerW,order); - - /* run the predictor filter */ - vorbis_lpc_predict(lpc,work+v->pcm_current-v->centerW-order, - order, - work+v->pcm_current-v->centerW, - v->centerW); - for(j=0;j<v->pcm_current;j++) - v->pcm[i][v->pcm_current-j-1]=work[j]; - } - } -} - - -/* call with val<=0 to set eof */ - -int vorbis_analysis_wrote(vorbis_dsp_state *v, int vals){ - vorbis_info *vi=v->vi; - codec_setup_info *ci=vi->codec_setup; - - if(vals<=0){ - int order=32; - int i; - float *lpc=alloca(order*sizeof(float)); - - /* if it wasn't done earlier (very short sample) */ - if(!v->preextrapolate) - _preextrapolate_helper(v); - - /* We're encoding the end of the stream. Just make sure we have - [at least] a full block of zeroes at the end. */ - /* actually, we don't want zeroes; that could drop a large - amplitude off a cliff, creating spread spectrum noise that will - suck to encode. Extrapolate for the sake of cleanliness. */ - - vorbis_analysis_buffer(v,ci->blocksizes[1]*2); - v->eofflag=v->pcm_current; - v->pcm_current+=ci->blocksizes[1]*2; - - for(i=0;i<vi->channels;i++){ - if(v->eofflag>order*2){ - /* extrapolate with LPC to fill in */ - long n; - - /* make a predictor filter */ - n=v->eofflag; - if(n>ci->blocksizes[1])n=ci->blocksizes[1]; - vorbis_lpc_from_data(v->pcm[i]+v->eofflag-n,lpc,n,order); - - /* run the predictor filter */ - vorbis_lpc_predict(lpc,v->pcm[i]+v->eofflag-order,order, - v->pcm[i]+v->eofflag,v->pcm_current-v->eofflag); - }else{ - /* not enough data to extrapolate (unlikely to happen due to - guarding the overlap, but bulletproof in case that - assumtion goes away). zeroes will do. */ - memset(v->pcm[i]+v->eofflag,0, - (v->pcm_current-v->eofflag)*sizeof(float)); - - } - } - }else{ - - if(v->pcm_current+vals>v->pcm_storage) - return(OV_EINVAL); - - v->pcm_current+=vals; - - /* we may want to reverse extrapolate the beginning of a stream - too... in case we're beginning on a cliff! */ - /* clumsy, but simple. It only runs once, so simple is good. */ - if(!v->preextrapolate && v->pcm_current-v->centerW>ci->blocksizes[1]) - _preextrapolate_helper(v); - - } - return(0); -} - -/* do the deltas, envelope shaping, pre-echo and determine the size of - the next block on which to continue analysis */ -int vorbis_analysis_blockout(vorbis_dsp_state *v,vorbis_block *vb){ - int i; - vorbis_info *vi=v->vi; - codec_setup_info *ci=vi->codec_setup; - backend_lookup_state *b=v->backend_state; - long beginW=v->centerW-ci->blocksizes[v->W]/2,centerNext; - - /* check to see if we're started... */ - if(!v->preextrapolate)return(0); - - /* check to see if we're done... */ - if(v->eofflag==-1)return(0); - - /* By our invariant, we have lW, W and centerW set. Search for - the next boundary so we can determine nW (the next window size) - which lets us compute the shape of the current block's window */ - - if(ci->blocksizes[0]<ci->blocksizes[1]){ - long largebound; - long bp; - - if(v->W) - /* min boundary; nW large, next small */ - largebound=v->centerW+ci->blocksizes[1]*3/4+ci->blocksizes[0]/4; - else - /* min boundary; nW large, next small */ - largebound=v->centerW+ci->blocksizes[1]/2+ci->blocksizes[0]/2; - - bp=_ve_envelope_search(v,largebound); - if(bp==-1)return(0); /* not enough data currently to search for a - full long block */ - v->nW=bp; - - }else - v->nW=0; - - centerNext=v->centerW+ci->blocksizes[v->W]/4+ci->blocksizes[v->nW]/4; - - { - /* center of next block + next block maximum right side. */ - - long blockbound=centerNext+ci->blocksizes[v->nW]/2; - if(v->pcm_current<blockbound)return(0); /* not enough data yet; - although this check is - less strict that the - _ve_envelope_search, - the search is not run - if we only use one - block size */ - } - - /* fill in the block. Note that for a short window, lW and nW are *short* - regardless of actual settings in the stream */ - - _vorbis_block_ripcord(vb); - if(v->W){ - vb->lW=v->lW; - vb->W=v->W; - vb->nW=v->nW; - }else{ - vb->lW=0; - vb->W=v->W; - vb->nW=0; - } - vb->vd=v; - vb->sequence=v->sequence; - vb->granulepos=v->granulepos; - vb->pcmend=ci->blocksizes[v->W]; - - - /* copy the vectors; this uses the local storage in vb */ - { - vorbis_block_internal *vbi=(vorbis_block_internal *)vb->internal; - - /* this tracks 'strongest peak' for later psychoacoustics */ - if(vbi->ampmax>b->ampmax)b->ampmax=vbi->ampmax; - b->ampmax=_vp_ampmax_decay(b->ampmax,v); - vbi->ampmax=b->ampmax; - - vb->pcm=_vorbis_block_alloc(vb,sizeof(float *)*vi->channels); - vbi->pcmdelay=_vorbis_block_alloc(vb,sizeof(float *)*vi->channels); - for(i=0;i<vi->channels;i++){ - vbi->pcmdelay[i]= - _vorbis_block_alloc(vb,(vb->pcmend+beginW)*sizeof(float)); - memcpy(vbi->pcmdelay[i],v->pcm[i],(vb->pcmend+beginW)*sizeof(float)); - vb->pcm[i]=vbi->pcmdelay[i]+beginW; - - /* before we added the delay - vb->pcm[i]=_vorbis_block_alloc(vb,vb->pcmend*sizeof(float)); - memcpy(vb->pcm[i],v->pcm[i]+beginW,ci->blocksizes[v->W]*sizeof(float)); - */ - - } - } - - /* handle eof detection: eof==0 means that we've not yet received EOF - eof>0 marks the last 'real' sample in pcm[] - eof<0 'no more to do'; doesn't get here */ - - if(v->eofflag){ - if(v->centerW>=v->eofflag){ - v->eofflag=-1; - vb->eofflag=1; - return(1); - } - } - - /* advance storage vectors and clean up */ - { - int new_centerNext=ci->blocksizes[1]/2+ci->delaycache; - int movementW=centerNext-new_centerNext; - - if(movementW>0){ - - _ve_envelope_shift(b->ve,movementW); - v->pcm_current-=movementW; - - for(i=0;i<vi->channels;i++) - memmove(v->pcm[i],v->pcm[i]+movementW, - v->pcm_current*sizeof(float)); - - - v->lW=v->W; - v->W=v->nW; - v->centerW=new_centerNext; - - v->sequence++; - - if(v->eofflag){ - v->eofflag-=movementW; - /* do not add padding to end of stream! */ - if(v->centerW>=v->eofflag){ - v->granulepos+=movementW-(v->centerW-v->eofflag); - }else{ - v->granulepos+=movementW; - } - }else{ - v->granulepos+=movementW; - } - } - } - - /* done */ - return(1); -} - -int vorbis_synthesis_init(vorbis_dsp_state *v,vorbis_info *vi){ - codec_setup_info *ci=vi->codec_setup; - _vds_shared_init(v,vi,0); - - v->pcm_returned=-1; - v->granulepos=-1; - v->sequence=-1; - - return(0); -} - -/* Unlike in analysis, the window is only partially applied for each - block. The time domain envelope is not yet handled at the point of - calling (as it relies on the previous block). */ - -int vorbis_synthesis_blockin(vorbis_dsp_state *v,vorbis_block *vb){ - vorbis_info *vi=v->vi; - codec_setup_info *ci=vi->codec_setup; - - /* Shift out any PCM that we returned previously */ - /* centerW is currently the center of the last block added */ - - if(v->centerW>ci->blocksizes[1]/2 && - /* Quick additional hack; to avoid *alot* of shifts, use an - oversized buffer. This increases memory usage, but doesn't make - much difference wrt L1/L2 cache pressure. */ - v->pcm_returned>8192){ - - /* don't shift too much; we need to have a minimum PCM buffer of - 1/2 long block */ - - int shiftPCM=v->centerW-ci->blocksizes[1]/2; - shiftPCM=(v->pcm_returned<shiftPCM?v->pcm_returned:shiftPCM); - - v->pcm_current-=shiftPCM; - v->centerW-=shiftPCM; - v->pcm_returned-=shiftPCM; - - if(shiftPCM){ - int i; - for(i=0;i<vi->channels;i++) - memmove(v->pcm[i],v->pcm[i]+shiftPCM, - v->pcm_current*sizeof(float)); - } - } - - v->lW=v->W; - v->W=vb->W; - v->nW=-1; - - v->glue_bits+=vb->glue_bits; - v->time_bits+=vb->time_bits; - v->floor_bits+=vb->floor_bits; - v->res_bits+=vb->res_bits; - - if(v->sequence+1 != vb->sequence)v->granulepos=-1; /* out of sequence; - lose count */ - - v->sequence=vb->sequence; - - { - int sizeW=ci->blocksizes[v->W]; - int centerW=v->centerW+ci->blocksizes[v->lW]/4+sizeW/4; - int beginW=centerW-sizeW/2; - int endW=beginW+sizeW; - int beginSl; - int endSl; - int i,j; - - /* Do we have enough PCM/mult storage for the block? */ - if(endW>v->pcm_storage){ - /* expand the storage */ - v->pcm_storage=endW+ci->blocksizes[1]; - - for(i=0;i<vi->channels;i++) - v->pcm[i]=_ogg_realloc(v->pcm[i],v->pcm_storage*sizeof(float)); - } - - /* overlap/add PCM */ - - switch(v->W){ - case 0: - beginSl=0; - endSl=ci->blocksizes[0]/2; - break; - case 1: - beginSl=ci->blocksizes[1]/4-ci->blocksizes[v->lW]/4; - endSl=beginSl+ci->blocksizes[v->lW]/2; - break; - default: - return(-1); - } - - for(j=0;j<vi->channels;j++){ - static int seq=0; - float *pcm=v->pcm[j]+beginW; - float *p=vb->pcm[j]; - - /* the overlap/add section */ - for(i=beginSl;i<endSl;i++) - pcm[i]+=p[i]; - /* the remaining section */ - for(;i<sizeW;i++) - pcm[i]=p[i]; - - _analysis_output("lapped",seq,pcm,sizeW,0,0); - _analysis_output("buffered",seq++,v->pcm[j],sizeW+beginW,0,0); - - } - - /* deal with initial packet state; we do this using the explicit - pcm_returned==-1 flag otherwise we're sensitive to first block - being short or long */ - - if(v->pcm_returned==-1) - v->pcm_returned=centerW; - - /* track the frame number... This is for convenience, but also - making sure our last packet doesn't end with added padding. If - the last packet is partial, the number of samples we'll have to - return will be past the vb->granulepos. - - This is not foolproof! It will be confused if we begin - decoding at the last page after a seek or hole. In that case, - we don't have a starting point to judge where the last frame - is. For this reason, vorbisfile will always try to make sure - it reads the last two marked pages in proper sequence */ - - if(v->granulepos==-1) - if(vb->granulepos==-1){ - v->granulepos=0; - }else{ - v->granulepos=vb->granulepos; - } - else{ - v->granulepos+=(centerW-v->centerW); - if(vb->granulepos!=-1 && v->granulepos!=vb->granulepos){ - - if(v->granulepos>vb->granulepos){ - long extra=v->granulepos-vb->granulepos; - - if(vb->eofflag){ - /* partial last frame. Strip the extra samples off */ - centerW-=extra; - }else if(vb->sequence == 1){ - /* ^^^ argh, this can be 1 from seeking! */ - - - /* partial first frame. Discard extra leading samples */ - v->pcm_returned+=extra; - if(v->pcm_returned>centerW)v->pcm_returned=centerW; - - } - - }/* else{ Shouldn't happen *unless* the bitstream is out of - spec. Either way, believe the bitstream } */ - v->granulepos=vb->granulepos; - } - } - - /* Update, cleanup */ - - v->centerW=centerW; - v->pcm_current=endW; - - if(vb->eofflag)v->eofflag=1; - } - - return(0); -} - -/* pcm==NULL indicates we just want the pending samples, no more */ -int vorbis_synthesis_pcmout(vorbis_dsp_state *v,float ***pcm){ - vorbis_info *vi=v->vi; - if(v->pcm_returned>-1 && v->pcm_returned<v->centerW){ - if(pcm){ - int i; - for(i=0;i<vi->channels;i++) - v->pcmret[i]=v->pcm[i]+v->pcm_returned; - *pcm=v->pcmret; - } - return(v->centerW-v->pcm_returned); - } - return(0); -} - -int vorbis_synthesis_read(vorbis_dsp_state *v,int bytes){ - if(bytes && v->pcm_returned+bytes>v->centerW)return(OV_EINVAL); - v->pcm_returned+=bytes; - return(0); -} - diff --git a/lib/books/.cvsignore b/lib/books/.cvsignore deleted file mode 100644 index 282522db..00000000 --- a/lib/books/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile -Makefile.in diff --git a/lib/books/Makefile.am b/lib/books/Makefile.am deleted file mode 100644 index 2427a5bd..00000000 --- a/lib/books/Makefile.am +++ /dev/null @@ -1,33 +0,0 @@ -## Process this file with automake to produce Makefile.in - -AUTOMAKE_OPTIONS = foreign - -EXTRA_DIST = lsp12_0.vqh lsp12_1.vqh lsp30_0.vqh lsp30_1.vqh lsp9_0.vqh\ - lsp9_1.vqh res0_128_1024_1.vqh res0_128_1024_2.vqh res0_128_1024_3.vqh\ - res0_128_1024_4.vqh res0_128_1024_5.vqh res0_128_1024_6.vqh\ - res0_128_1024_7.vqh res0_128_1024_8.vqh res0_128_1024_9.vqh\ - res0_128_1024aux.vqh res0_128_128_1.vqh res0_128_128_2.vqh\ - res0_128_128_3.vqh res0_128_128_4.vqh res0_128_128_5.vqh\ - res0_128_128aux.vqh res0_160_1024_1.vqh res0_160_1024_2.vqh\ - res0_160_1024_3.vqh res0_160_1024_4.vqh res0_160_1024_5.vqh\ - res0_160_1024_6.vqh res0_160_1024_7.vqh res0_160_1024_8.vqh\ - res0_160_1024_9.vqh res0_160_1024aux.vqh res0_160_128_1.vqh\ - res0_160_128_2.vqh res0_160_128_3.vqh res0_160_128_4.vqh\ - res0_160_128_5.vqh res0_160_128aux.vqh res0_192_1024_1.vqh\ - res0_192_1024_2.vqh res0_192_1024_3.vqh res0_192_1024_4.vqh\ - res0_192_1024_5.vqh res0_192_1024_6.vqh res0_192_1024_7.vqh\ - res0_192_1024_8.vqh res0_192_1024_9.vqh res0_192_1024aux.vqh\ - res0_192_128_1.vqh res0_192_128_2.vqh res0_192_128_3.vqh\ - res0_192_128_4.vqh res0_192_128_5.vqh res0_192_128aux.vqh\ - res0_256_1024_1.vqh res0_256_1024_2.vqh res0_256_1024_3.vqh\ - res0_256_1024_4.vqh res0_256_1024_5.vqh res0_256_1024_6.vqh\ - res0_256_1024_7.vqh res0_256_1024aux.vqh res0_256_128_1.vqh\ - res0_256_128_2.vqh res0_256_128_3.vqh res0_256_128_4.vqh\ - res0_256_128_5.vqh res0_256_128aux.vqh res0_96_1024_1.vqh\ - res0_96_1024_2.vqh res0_96_1024_3.vqh res0_96_1024_4.vqh\ - res0_96_1024_5.vqh res0_96_1024_6.vqh res0_96_1024_7.vqh\ - res0_96_1024_8.vqh res0_96_1024_9.vqh res0_96_1024aux.vqh\ - res0_96_128_1.vqh res0_96_128_2.vqh res0_96_128_3.vqh\ - res0_96_128_4.vqh res0_96_128_5.vqh res0_96_128aux.vqh\ - res0_350_1024_7.vqh - diff --git a/lib/books/lsp12_0.vqh b/lib/books/lsp12_0.vqh deleted file mode 100644 index ad1a0081..00000000 --- a/lib/books/lsp12_0.vqh +++ /dev/null @@ -1,168 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_lsp12_0_VQH_ -#define _V_lsp12_0_VQH_ -#include "codebook.h" - -static long _vq_quantlist_lsp12_0[] = { - 0, - 5, - 10, - 15, - 20, - 25, - 30, - 35, - 40, - 45, - 50, - 55, - 60, - 65, - 68, - 71, - 74, - 77, - 80, - 83, - 86, - 89, - 92, - 95, - 98, - 101, - 104, - 107, - 110, - 115, - 120, - 125, - 130, - 135, - 145, - 160, - 180, - 205, - 235, - 270, - 310, - 355, - 405, -}; - -static long _vq_lengthlist_lsp12_0[] = { - 16,16,16,14,15,14,15,15,12,11,10, 9, 9, 8, 7, 7, - 7, 5, 4, 3, 3, 2, 3, 4, 4, 5, 6, 7, 6, 5, 6, 8, - 10,11,13,14,14,14,16,14,16,16,14, -}; - -static long _vq_pigeonmap_lsp12_0[] = { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 11, 11, 11, - 11, 11, 11, 11, 11, 11, 11, 11, - 11, 11, 11, 11, 11, 11, 11, 11, - 11, 11, 11, 11, 11, 11, 11, 11, - 11, 11, 11, 11, 11, 11, 11, 11, - 11, 11, 11, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, -}; - -static long _vq_fitlist_lsp12_0[] = { - 0, 1, 2, 3, 3, 4, 5, 6, - 6, 7, 8, 9, 9, 10, 11, 12, - 12, 13, 14, 15, 15, 16, 17, 18, - 18, 19, 20, 21, 21, 22, 23, 24, - 24, 25, 26, 27, 27, 28, 29, 30, - 30, 31, 32, 33, 33, 34, 35, 36, - 36, 37, 38, 39, 39, 40, 41, 42, -}; - -static long _vq_fitmap_lsp12_0[] = { - 0, 4, 8, 12, 16, 20, 24, 28, - 32, 36, 40, 44, 48, 52, 52, -}; - -static long _vq_fitlength_lsp12_0[] = { - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, -}; - -static encode_aux_pigeonhole _vq_auxp_lsp12_0 = { - 0.06, 0.002, 405, 15, - _vq_pigeonmap_lsp12_0, - 56, - _vq_fitlist_lsp12_0, - _vq_fitmap_lsp12_0, - _vq_fitlength_lsp12_0 -}; - -static static_codebook _vq_book_lsp12_0 = { - 1, 43, - _vq_lengthlist_lsp12_0, - 1, 1602140242, 1592812110, 9, 1, - _vq_quantlist_lsp12_0, - NULL, - NULL, - &_vq_auxp_lsp12_0, - 0 -}; - - -#endif diff --git a/lib/books/lsp12_1.vqh b/lib/books/lsp12_1.vqh deleted file mode 100644 index b5e90672..00000000 --- a/lib/books/lsp12_1.vqh +++ /dev/null @@ -1,2979 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_lsp12_1_VQH_ -#define _V_lsp12_1_VQH_ -#include "codebook.h" - -static long _vq_quantlist_lsp12_1[] = { - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, -}; - -static long _vq_lengthlist_lsp12_1[] = { - 17,15,17,17,16,16,17,17,17,17,17,16,17,17,17,17, - 16,16,16,16,17,17,14,17,17,17,17,17,16,16,17,16, - 15,17,15,15,15,15,17,16,17,17,17,15,14,15,15,15, - 15,16,15,15,16,17,17,17,15,15,15,14,15,15,15,14, - 15,16,16,17,17,17,17,16,16,17,16,16,15,15,17,16, - 16,16,17,17,17,16,17,17,17,15,15,15,17,16,16,17, - 17,17,17,17,17,15,14,14,14,15,16,16,17,15,15,17, - 17,17,17,17,17,17,14,13,16,14,15,17,17,17,17,17, - 17,17,15,14,16,15,15,16,17,17,16,17,17,17,17,16, - 15,16,14,17,16,15,15,17,17,17,17,17,17,17,17,17, - 16,17,15,17,15,17,17,16,17,17,17,17,17,17,17,16, - 17,17,17,17,17,17,17,17,17,17,17,17,16,17,17,16, - 17,16,17,17,17,17,15,15,17,16,17,17,16,17,17,17, - 17,17,17,17,15,15,15,16,17,17,17,17,17,17,17,17, - 17,16,16,15,15,14,15,15,15,15,16,16,17,17,16,16, - 15,16,14,15,14,14,15,14,16,17,16,17,17,17,15,15, - 14,14,13,14,14,14,17,17,16,15,16,17,15,15,14,14, - 14,14,15,15,16,17,16,16,17,17,17,15,13,13,14,13, - 14,15,15,16,16,17,17,17,17,15,14,14,13,13,14,14, - 15,17,16,16,17,17,17,17,14,14,13,12,13,14,15,15, - 15,17,17,17,17,17,15,14,13,12,14,14,16,15,15,16, - 17,17,17,15,15,15,14,14,15,14,14,15,17,16,17,17, - 17,17,17,16,14,15,14,16,16,17,17,17,16,17,17,17, - 17,17,15,14,16,15,17,17,17,17,17,17,17,15,17,17, - 17,16,15,15,14,16,16,17,17,16,15,16,15,16,15,15, - 16,17,17,17,17,17,17,17,16,14,15,15,15,15,16,17, - 17,17,17,17,17,15,15,15,14,14,14,15,15,15,17,17, - 17,17,17,17,15,14,13,14,13,14,14,15,15,16,17,16, - 17,17,15,15,12,13,13,12,13,14,15,16,16,17,17,17, - 16,14,13,13,12,12,13,13,15,16,15,15,17,17,17,14, - 12,12,11,11,13,13,14,15,16,15,17,17,17,14,13,11, - 11,11,13,13,14,15,15,17,17,17,17,14,14,12,11,11, - 13,13,13,14,16,15,17,17,17,15,14,14,12,12,13,13, - 14,14,15,15,17,17,17,17,15,14,14,13,13,13,14,15, - 15,16,15,17,17,17,15,14,16,14,13,14,14,14,15,16, - 17,16,17,17,15,16,15,14,15,16,15,17,17,17,17,17, - 17,17,15,15,16,15,15,15,15,15,15,17,17,16,15,14, - 16,17,17,15,17,17,17,16,17,17,17,17,16,14,14,14, - 15,15,16,17,16,15,17,17,15,17,15,15,14,14,14,14, - 15,15,15,16,15,15,17,16,15,14,13,13,13,13,13,15, - 15,16,15,17,17,16,15,13,11,12,12,12,12,13,14,14, - 16,15,17,17,16,13,11,10,10,11,12,12,13,14,14,17, - 17,17,17,14,11,10,10,10,11,12,14,14,15,14,17,17, - 14,16,13,10,10,10,11,12,13,15,15,15,16,17,17,15, - 13,11,10,10,11,12,13,14,15,17,17,17,17,15,13,12, - 11,11,11,12,13,14,14,15,17,17,16,15,15,13,12,12, - 12,12,13,15,14,15,17,16,15,16,16,13,13,13,13,13, - 14,15,16,16,16,17,17,16,16,14,15,14,14,15,15,15, - 16,17,16,16,17,15,16,17,15,15,15,16,14,15,16,17, - 16,16,17,15,15,15,15,17,15,17,16,17,16,17,17,17, - 16,15,14,13,14,14,16,15,16,15,15,15,17,16,15,13, - 13,12,12,13,14,13,14,13,13,13,17,17,15,13,11,11, - 12,12,11,12,12,12,13,14,17,17,15,13,10,10,10,10, - 10,11,11,12,13,14,17,17,14,13,10, 9, 9,10,10,10, - 10,12,12,14,17,16,15,13,11, 9, 9, 9, 9,10,11,13, - 15,14,16,15,15,13,11, 9, 8, 9, 9,10,12,13,14,14, - 16,15,15,15,12,10, 9, 9, 9,11,12,13,14,15,17,16, - 16,15,13,11,10,10,10,11,12,13,15,15,15,17,15,15, - 14,13,11,11,12,12,13,13,14,14,17,16,15,17,14,14, - 13,12,12,13,13,13,15,15,17,16,15,15,14,14,14,13, - 14,14,13,14,15,16,17,17,16,17,15,17,15,14,15,15, - 15,15,17,16,17,17,16,15,16,14,17,15,15,15,16,16, - 15,16,17,17,16,15,13,13,12,13,14,14,13,14,14,13, - 17,17,15,12,11,11,10,11,12,12,12,12,12,11,17,15, - 15,12,10,10,10,10,10,10,11,11,11,12,17,16,13,12, - 9, 8, 9, 9, 9, 8, 9,10,11,12,16,16,14,12, 9, 7, - 7, 8, 7, 8, 9,10,12,13,17,15,13,12, 9, 7, 7, 7, - 7, 9,10,11,12,12,15,15,14,13,10, 8, 7, 7, 8, 9, - 11,13,13,14,15,15,15,13,11,10, 8, 8, 9,10,11,13, - 13,13,15,17,15,14,12,11,10, 9,10,11,12,13,13,14, - 15,17,17,14,14,12,11,11,11,11,13,13,14,15,17,15, - 16,14,13,13,12,12,12,12,13,15,15,17,17,15,15,14, - 13,14,13,13,13,13,15,15,17,17,17,16,16,15,15,15, - 15,14,14,15,15,15,16,17,17,16,17,16,16,14,13,13, - 13,15,15,16,16,15,17,17,17,15,13,12,12,12,13,14, - 13,14,14,14,17,16,15,13,11,10,10,11,12,12,12,12, - 11,12,15,15,13,11, 9, 9, 9,10,10, 9,10,10,11,11, - 17,15,13,11, 9, 8, 8, 9, 8, 7, 8, 9,11,12,14,14, - 12,11, 8, 7, 6, 7, 7, 7, 9,10,11,12,14,14,13,10, - 9, 6, 6, 6, 7, 9,10,11,12,13,15,14,14,12,10, 8, - 6, 7, 8, 9,10,12,13,15,15,15,14,13,11, 9, 8, 8, - 9,10,11,12,13,15,15,15,14,13,11,10, 9, 9,10,11, - 11,13,13,14,15,16,14,14,13,11,10,11,11,11,12,13, - 14,15,16,17,14,14,12,13,12,11,11,13,13,15,17,15, - 17,15,17,14,13,14,12,13,14,14,15,15,16,17,17,17, - 14,14,15,15,14,15,14,15,14,16,15,17,17,17,17,17, - 15,14,13,14,14,14,15,15,15,14,16,17,17,13,12,12, - 11,12,13,13,14,14,13,13,17,15,15,12,10,10,11,11, - 12,12,12,13,12,13,17,14,13,11, 9, 9,10,10,11,10, - 10,11,12,12,15,14,12,10, 9, 8, 8, 9, 9, 9, 9,10, - 12,12,17,14,11, 9, 8, 7, 6, 7, 8, 9,10,11,12,13, - 15,14,11,10, 8, 6, 6, 7, 8, 9,10,11,13,13,16,15, - 12,11, 9, 8, 7, 7, 8, 9,11,12,13,14,16,14,12,12, - 10, 9, 8, 8, 9,10,11,13,13,14,15,15,14,13,12,10, - 10, 9,10,10,11,12,13,14,16,15,14,13,12,11,11,11, - 11,12,12,14,14,16,17,16,15,14,13,12,12,12,12,13, - 13,14,15,17,16,17,16,14,15,13,13,13,12,14,15,15, - 16,16,17,17,15,15,15,14,14,14,14,15,14,15,17,16, - 17,17,17,17,14,13,14,14,15,13,14,16,14,16,17,17, - 16,14,12,13,12,13,13,13,14,15,15,15,16,15,15,13, - 11,11,11,12,13,13,13,14,15,14,17,14,13,12,10, 9, - 10,11,11,11,12,13,13,13,15,13,12,10, 9, 8, 9, 9, - 10,10,11,12,12,13,15,13,11,10, 8, 8, 8, 8, 9,10, - 10,11,13,13,16,12,11,10, 9, 8, 8, 8, 9, 9,11,13, - 13,14,15,14,12,11, 9, 8, 8, 8, 9,10,11,13,14,14, - 16,14,13,12,11, 9, 9, 9, 9,10,11,13,14,14,15,15, - 14,14,11,10,10,10,10,11,12,12,14,14,17,15,14,14, - 12,11,11,11,11,12,13,13,15,15,17,15,15,14,12,12, - 12,12,12,12,14,15,15,15,17,16,15,14,13,14,13,13, - 13,15,15,16,15,17,16,17,15,15,15,15,13,13,14,15, - 15,15,15,17,17,17,17,17,14,14,16,15,15,16,15,14, - 17,16,17,17,16,14,13,13,14,14,15,14,15,17,15,15, - 15,15,14,13,12,12,12,12,13,13,13,14,15,15,16,13, - 12,12,11,10,11,11,11,11,12,13,13,14,17,13,12,11, - 10, 9,10,10,10,10,11,12,13,14,15,13,12,11, 9, 9, - 9, 9, 9,10,11,13,13,14,15,13,11,11,10, 9, 9, 9, - 9,10,11,13,14,15,15,14,13,11,10,10, 9, 9, 9,10, - 12,12,14,15,15,15,13,12,11,10,10, 9,10,11,12,13, - 14,16,15,15,14,13,12,11,10,10,11,11,12,13,14,16, - 16,16,14,13,12,11,11,11,12,12,13,14,14,15,15,15, - 14,13,13,12,12,12,13,13,14,14,14,17,16,16,14,15, - 13,13,13,13,13,13,14,14,15,16,17,16,16,15,15,14, - 13,13,14,13,14,15,16,16,17,17,17,15,14,15,15,15, - 15,15,15,16,17,15,16,16,16,15,14,15,15,15,15,14, - 15,16,16,17,17,14,14,13,12,13,13,13,13,13,14,14, - 15,17,16,13,13,13,12,11,12,12,12,12,12,13,15,14, - 15,13,13,12,11,11,10,11,11,11,11,13,15,14,15,13, - 12,11,10,10,10,10,10,11,11,13,13,15,14,13,12,12, - 11,10,10, 9,10,11,13,13,14,14,15,13,13,12,11,10, - 10,10,10,11,12,12,13,14,16,14,14,13,12,11,10,10, - 10,12,12,13,14,15,16,15,14,13,12,11,10,11,11,11, - 13,12,14,14,16,15,14,12,12,12,11,11,11,12,12,13, - 14,15,16,15,14,14,13,12,12,12,12,12,13,13,15,17, - 17,16,15,14,14,13,12,13,12,12,13,15,15,17,15,16, - 15,15,14,13,13,13,12,13,14,15,16,17,17,16,15,15, - 15,15,15,15,15,16,14,15,17,16,17,17,15,14,14,14, - 15,14,15,14,15,14,17,14,17,14,14,13,14,13,13,14, - 13,13,13,14,14,15,15,14,14,13,12,12,12,12,12,12, - 12,13,14,15,15,14,13,12,12,11,11,11,11,11,13,13, - 14,14,17,14,13,12,11,10,10,10,11,11,12,13,13,14, - 15,14,13,13,11,10,10,10,10,11,12,12,13,14,16,16, - 13,12,11,11,11,10,11,11,12,13,14,14,17,15,14,13, - 11,11,10,11,10,11,12,12,13,14,17,15,14,13,12,12, - 11,11,11,12,12,13,13,14,15,15,13,14,13,12,11,11, - 12,12,13,13,15,16,16,16,15,14,13,13,12,12,12,12, - 13,14,16,16,17,16,15,14,15,13,13,13,13,13,14,15, - 17,17,16,16,14,14,14,14,13,14,13,14,16,17,17,17, - 16,17,16,16,17,15,14,17,16,16,15,16,17,17,17,17, - 14,15,15,14,16,16,15,15,15,15,16,17,17,15,14,15, - 14,14,13,14,13,13,14,14,15,17,17,14,13,14,14,13, - 12,12,12,12,13,13,15,15,16,14,13,13,13,12,11,11, - 11,11,12,13,14,14,17,14,13,13,12,11,11,11,11,12, - 12,13,13,14,17,16,14,13,12,11,11,11,11,11,12,13, - 13,14,16,15,13,13,12,11,11,11,11,11,12,13,14,14, - 16,14,15,13,13,12,11,11,11,12,12,12,14,14,16,15, - 15,14,13,12,12,11,11,11,12,13,14,14,17,15,15,14, - 13,12,11,12,11,12,14,15,14,15,15,16,15,15,13,12, - 12,13,14,14,15,17,16,15,17,16,16,15,15,14,12,14, - 14,14,15,16,17,17,15,15,14,16,14,14,15,15,16,17, - 17,16,16,16,17,17,17,16,15,15,16,15,16,16,17,16, - 17,17,17,17,15,17,14,15,14,14,14,15,15,16,17,16, - 17,15,15,15,14,14,13,14,13,13,14,16,16,15,16,14, - 14,14,15,13,12,12,12,12,13,14,14,17,15,14,13,13, - 14,12,12,11,11,12,13,14,15,15,15,14,14,14,13,12, - 11,11,11,12,12,13,13,15,16,16,14,14,13,11,11,11, - 11,11,12,12,13,14,17,16,14,13,12,12,11,11,11,11, - 11,12,14,14,17,15,14,13,12,11,11,10,11,11,12,12, - 15,15,17,14,13,13,13,12,11,11,11,11,12,14,15,16, - 15,16,15,14,12,12,12,12,12,12,14,14,17,15,16,15, - 14,14,14,13,13,13,13,14,14,17,16,16,14,15,14,14, - 14,14,14,15,14,15,16,17,17,17,15,16,14,14,14,17, - 15,15,15,17,17,17,17,17, -}; - -static long _vq_pigeonmap_lsp12_1[] = { - 0, 0, 0, 1, 1, 1, 2, 2, - 2, 3, 3, 3, 4, -}; - -static long _vq_fitlist_lsp12_1[] = { - 0, 1, 14, 15, 28, 196, 197, 210, - 392, 2, 16, 29, 198, 211, 224, 393, - 406, 3, 4, 17, 30, 43, 199, 212, - 225, 394, 407, 589, 42, 588, 56, 238, - 420, 602, 31, 44, 200, 213, 226, 239, - 395, 408, 421, 590, 57, 252, 434, 603, - 18, 45, 58, 214, 227, 240, 253, 396, - 409, 422, 435, 591, 604, 617, 785, 784, - 616, 786, 798, 70, 448, 630, 799, 32, - 71, 241, 254, 410, 423, 436, 449, 592, - 605, 618, 631, 787, 800, 813, 981, 980, - 812, 994, 982, 266, 644, 826, 995, 228, - 267, 437, 450, 606, 619, 632, 645, 788, - 801, 814, 827, 983, 996, 3, 4, 16, - 17, 18, 30, 31, 198, 199, 200, 212, - 213, 226, 394, 395, 408, 5, 19, 32, - 201, 214, 227, 396, 409, 591, 6, 7, - 20, 33, 46, 202, 215, 228, 397, 410, - 592, 44, 45, 240, 422, 59, 241, 423, - 605, 34, 47, 203, 216, 229, 242, 398, - 411, 424, 593, 58, 72, 254, 436, 60, - 255, 437, 606, 21, 48, 61, 217, 230, - 243, 256, 399, 412, 425, 438, 594, 607, - 590, 604, 787, 788, 618, 619, 620, 789, - 268, 450, 632, 801, 73, 451, 633, 802, - 35, 74, 244, 257, 413, 426, 439, 452, - 595, 608, 621, 634, 790, 803, 816, 786, - 800, 814, 983, 815, 984, 985, 646, 828, - 997, 269, 647, 829, 998, 231, 270, 440, - 453, 609, 622, 635, 648, 791, 804, 817, - 830, 986, 999, 6, 7, 19, 20, 21, - 33, 34, 201, 202, 203, 215, 216, 229, - 397, 398, 411, 8, 22, 35, 204, 217, - 230, 399, 412, 9, 10, 23, 36, 49, - 205, 218, 231, 400, 413, 595, 47, 48, - 243, 425, 594, 62, 244, 426, 608, 24, - 37, 50, 206, 219, 232, 245, 401, 414, - 427, 596, 61, 75, 257, 439, 621, 63, - 258, 440, 609, 51, 64, 220, 233, 246, - 259, 402, 415, 428, 441, 597, 610, 593, - 607, 790, 791, 622, 623, 792, 271, 453, - 635, 804, 76, 454, 636, 805, 38, 77, - 234, 247, 260, 416, 429, 442, 455, 598, - 611, 624, 637, 793, 806, 819, 789, 803, - 817, 986, 818, 987, 988, 649, 831, 1000, - 272, 650, 832, 1001, 273, 430, 443, 456, - 612, 625, 638, 651, 794, 807, 820, 833, - 989, 1002, 9, 10, 22, 23, 24, 36, - 37, 204, 205, 206, 218, 219, 232, 400, - 401, 414, 11, 25, 38, 207, 220, 233, - 402, 415, 597, 12, 13, 26, 39, 52, - 208, 221, 234, 403, 416, 598, 50, 51, - 246, 428, 65, 247, 429, 611, 27, 40, - 53, 66, 209, 222, 235, 248, 404, 417, - 430, 599, 64, 78, 260, 442, 624, 79, - 261, 443, 612, 625, 54, 67, 223, 236, - 249, 262, 405, 418, 431, 444, 600, 613, - 596, 610, 793, 794, 626, 795, 456, 638, - 807, 457, 639, 808, 41, 80, 237, 250, - 263, 276, 419, 432, 445, 458, 601, 614, - 627, 640, 796, 809, 792, 806, 989, 820, - 821, 990, 822, 991, 274, 652, 834, 1003, - 275, 471, 653, 835, 1004, 1017, 433, 446, - 459, 472, 615, 628, 641, 654, 797, 810, - 823, 836, 992, 1005, 12, 13, 25, 26, - 27, 39, 40, 207, 208, 209, 221, 222, - 235, 403, 404, 417, 41, 53, 54, 223, - 236, 249, 405, 418, 431, 600, 55, 67, - 68, 81, 237, 250, 263, 419, 432, 445, - 601, 614, 627, 599, 613, 796, 251, 264, - 433, 446, 459, 615, 628, 641, 797, 810, - 795, 809, 823, 992, 277, 447, 460, 629, - 642, 655, 811, 824, 837, 993, 1006, 15, - 16, 28, 29, 30, 42, 43, 56, 57, - 70, 198, 211, 212, 224, 225, 226, 238, - 239, 252, 394, 407, 408, 420, 421, 434, - 603, 616, 3, 17, 31, 44, 58, 71, - 199, 213, 227, 240, 253, 266, 395, 409, - 422, 435, 448, 591, 604, 617, 630, 18, - 32, 45, 46, 59, 72, 85, 200, 214, - 228, 241, 254, 267, 396, 410, 423, 436, - 449, 592, 605, 618, 631, 84, 98, 280, - 462, 73, 86, 242, 255, 268, 281, 424, - 437, 450, 463, 619, 632, 644, 99, 294, - 476, 645, 60, 87, 100, 256, 269, 282, - 295, 438, 451, 464, 477, 633, 646, 590, - 799, 812, 787, 800, 813, 826, 606, 788, - 801, 814, 827, 658, 620, 659, 815, 828, - 840, 112, 490, 672, 841, 74, 113, 270, - 283, 296, 309, 452, 465, 478, 491, 634, - 647, 660, 673, 816, 829, 842, 855, 786, - 995, 1008, 996, 1009, 802, 997, 1010, 1022, - 854, 1023, 1011, 1024, 1036, 308, 686, 868, - 1037, 479, 492, 648, 661, 674, 687, 830, - 843, 856, 869, 1025, 1038, 18, 19, 31, - 32, 33, 45, 46, 58, 59, 60, 72, - 73, 201, 214, 215, 227, 228, 229, 240, - 241, 242, 254, 255, 268, 397, 410, 411, - 423, 424, 436, 437, 450, 606, 619, 6, - 20, 34, 47, 61, 74, 202, 216, 230, - 243, 256, 269, 398, 412, 425, 438, 451, - 607, 620, 7, 21, 35, 48, 49, 62, - 75, 88, 203, 217, 231, 244, 257, 270, - 399, 413, 426, 439, 452, 595, 608, 621, - 634, 86, 87, 282, 464, 633, 101, 283, - 465, 647, 76, 89, 245, 258, 271, 284, - 427, 440, 453, 466, 622, 635, 100, 114, - 296, 478, 660, 102, 297, 479, 648, 63, - 90, 103, 259, 272, 285, 298, 441, 454, - 467, 480, 636, 649, 593, 632, 646, 802, - 815, 594, 790, 803, 816, 829, 609, 791, - 804, 817, 830, 842, 661, 623, 662, 818, - 831, 310, 492, 674, 843, 115, 493, 675, - 844, 77, 116, 273, 286, 299, 312, 455, - 468, 481, 494, 637, 650, 663, 676, 819, - 832, 845, 858, 789, 828, 998, 1011, 999, - 1012, 805, 1000, 1013, 856, 1025, 857, 1026, - 1014, 1027, 688, 870, 1039, 311, 689, 871, - 1040, 482, 495, 651, 664, 677, 690, 833, - 846, 859, 872, 1028, 1041, 21, 22, 34, - 35, 36, 48, 49, 61, 62, 63, 75, - 76, 204, 217, 218, 230, 231, 232, 243, - 244, 245, 257, 258, 271, 400, 413, 414, - 426, 427, 439, 440, 453, 609, 622, 9, - 23, 37, 50, 64, 77, 205, 219, 233, - 246, 259, 272, 401, 415, 428, 441, 454, - 610, 623, 10, 24, 38, 51, 52, 65, - 78, 91, 206, 220, 234, 247, 260, 273, - 402, 416, 429, 442, 455, 598, 611, 624, - 637, 89, 90, 285, 467, 636, 104, 286, - 468, 650, 66, 79, 92, 248, 261, 274, - 287, 430, 443, 456, 469, 612, 625, 638, - 103, 117, 299, 481, 663, 105, 300, 482, - 651, 80, 93, 106, 262, 275, 288, 301, - 444, 457, 470, 483, 626, 639, 652, 596, - 635, 649, 805, 818, 597, 793, 806, 819, - 832, 794, 807, 820, 833, 845, 664, 665, - 821, 834, 313, 495, 677, 846, 118, 496, - 678, 847, 119, 276, 289, 302, 315, 458, - 471, 484, 497, 640, 653, 666, 679, 822, - 835, 848, 861, 792, 831, 1001, 1014, 1002, - 1015, 808, 1003, 1016, 859, 1028, 860, 1029, - 1004, 1017, 1030, 691, 873, 1042, 314, 692, - 874, 1043, 472, 485, 498, 654, 667, 680, - 693, 836, 849, 862, 875, 1018, 1031, 1044, - 24, 25, 37, 38, 39, 51, 52, 64, - 65, 66, 78, 79, 207, 220, 221, 233, - 234, 235, 246, 247, 248, 260, 261, 274, - 403, 416, 417, 429, 430, 442, 443, 456, - 612, 625, 12, 26, 40, 53, 67, 80, - 208, 222, 236, 249, 262, 275, 404, 418, - 431, 444, 457, 613, 626, 13, 27, 41, - 54, 55, 68, 81, 94, 209, 223, 237, - 250, 263, 276, 405, 419, 432, 445, 458, - 601, 614, 627, 640, 92, 93, 288, 470, - 639, 107, 289, 471, 653, 69, 82, 95, - 108, 251, 264, 277, 290, 433, 446, 459, - 472, 615, 628, 641, 106, 302, 484, 121, - 303, 485, 654, 667, 96, 109, 265, 278, - 291, 304, 447, 460, 473, 486, 629, 642, - 655, 599, 638, 652, 808, 821, 600, 796, - 809, 822, 835, 797, 810, 823, 666, 836, - 849, 668, 824, 837, 120, 498, 680, 317, - 499, 681, 850, 83, 122, 292, 305, 461, - 474, 487, 500, 643, 656, 669, 682, 825, - 838, 851, 795, 834, 848, 1004, 1017, 1005, - 1018, 811, 1006, 1019, 862, 1031, 863, 1032, - 864, 1007, 1020, 1033, 316, 694, 876, 1045, - 513, 695, 877, 1046, 1059, 279, 318, 488, - 501, 657, 670, 683, 696, 839, 852, 865, - 878, 1021, 1034, 1047, 27, 40, 41, 54, - 55, 67, 68, 69, 81, 82, 223, 236, - 237, 249, 250, 251, 263, 264, 277, 419, - 432, 433, 445, 446, 459, 615, 628, 83, - 95, 96, 265, 278, 291, 447, 460, 473, - 629, 642, 97, 109, 110, 279, 292, 305, - 461, 474, 487, 643, 656, 641, 655, 811, - 824, 669, 825, 838, 123, 293, 306, 475, - 488, 501, 657, 670, 683, 839, 852, 837, - 851, 1007, 1020, 865, 1021, 1034, 319, 489, - 502, 671, 684, 697, 853, 866, 879, 1035, - 1048, 57, 58, 70, 71, 72, 84, 85, - 98, 99, 112, 240, 253, 254, 266, 267, - 268, 280, 281, 294, 436, 449, 450, 462, - 463, 476, 645, 658, 45, 59, 73, 86, - 100, 113, 241, 255, 269, 282, 295, 308, - 437, 451, 464, 477, 490, 646, 659, 46, - 60, 74, 87, 88, 101, 114, 127, 242, - 256, 270, 283, 296, 309, 438, 452, 465, - 478, 491, 634, 647, 660, 673, 126, 672, - 140, 322, 504, 686, 115, 128, 284, 297, - 310, 323, 466, 479, 492, 505, 661, 674, - 141, 336, 518, 687, 102, 129, 142, 298, - 311, 324, 337, 480, 493, 506, 519, 675, - 688, 632, 841, 854, 633, 829, 842, 855, - 868, 648, 843, 856, 700, 869, 662, 701, - 857, 870, 882, 154, 532, 714, 883, 116, - 155, 312, 325, 338, 351, 494, 507, 520, - 533, 676, 689, 702, 715, 858, 871, 884, - 897, 828, 1037, 1050, 1038, 1051, 830, 844, - 1039, 1052, 1064, 896, 1065, 1053, 1066, 1078, - 350, 728, 910, 1079, 521, 534, 547, 690, - 703, 716, 729, 872, 885, 898, 911, 1067, - 1080, 60, 61, 73, 74, 75, 87, 88, - 100, 101, 102, 114, 115, 243, 256, 257, - 269, 270, 271, 282, 283, 284, 296, 297, - 310, 439, 452, 453, 465, 466, 478, 479, - 492, 648, 661, 48, 62, 76, 89, 103, - 116, 244, 258, 272, 285, 298, 311, 440, - 454, 467, 480, 493, 649, 662, 49, 63, - 77, 90, 91, 104, 117, 130, 245, 259, - 273, 286, 299, 312, 441, 455, 468, 481, - 494, 637, 650, 663, 676, 128, 129, 324, - 506, 675, 143, 325, 507, 689, 118, 131, - 287, 300, 313, 326, 469, 482, 495, 508, - 664, 677, 142, 156, 338, 520, 702, 144, - 339, 521, 690, 105, 132, 145, 301, 314, - 327, 340, 483, 496, 509, 522, 678, 691, - 635, 674, 688, 844, 857, 636, 832, 845, - 858, 871, 651, 846, 859, 884, 703, 872, - 665, 704, 860, 873, 352, 534, 716, 885, - 157, 535, 717, 886, 119, 158, 315, 328, - 341, 354, 497, 510, 523, 536, 679, 692, - 705, 718, 861, 874, 887, 900, 831, 870, - 1040, 1053, 1041, 1054, 833, 847, 1042, 1055, - 898, 1067, 899, 1068, 1056, 1069, 730, 912, - 1081, 353, 731, 913, 1082, 524, 537, 550, - 693, 706, 719, 732, 875, 888, 901, 914, - 1070, 1083, 63, 64, 76, 77, 78, 90, - 91, 103, 104, 105, 117, 118, 246, 259, - 260, 272, 273, 274, 285, 286, 287, 299, - 300, 313, 442, 455, 456, 468, 469, 481, - 482, 495, 651, 664, 51, 65, 79, 92, - 106, 119, 247, 261, 275, 288, 301, 314, - 443, 457, 470, 483, 496, 652, 665, 52, - 66, 80, 93, 94, 107, 120, 133, 248, - 262, 276, 289, 302, 315, 444, 458, 471, - 484, 497, 640, 653, 666, 679, 131, 132, - 327, 509, 678, 146, 328, 510, 692, 108, - 121, 134, 147, 290, 303, 316, 329, 472, - 485, 498, 511, 654, 667, 680, 693, 145, - 159, 341, 523, 705, 342, 524, 135, 148, - 304, 317, 330, 343, 486, 499, 512, 525, - 668, 681, 694, 638, 677, 691, 847, 860, - 639, 835, 848, 861, 874, 836, 849, 862, - 887, 706, 875, 707, 850, 863, 876, 537, - 719, 888, 160, 538, 720, 889, 122, 161, - 331, 344, 500, 513, 526, 539, 682, 695, - 708, 721, 864, 877, 890, 903, 834, 873, - 1043, 1056, 1044, 1057, 1045, 1058, 901, 1070, - 902, 1071, 1046, 1059, 1072, 1085, 355, 733, - 915, 1084, 356, 734, 916, 318, 357, 527, - 540, 696, 709, 722, 735, 878, 891, 904, - 917, 1060, 1073, 1086, 66, 67, 79, 80, - 81, 93, 94, 106, 107, 108, 120, 121, - 249, 262, 263, 275, 276, 277, 288, 289, - 290, 302, 303, 316, 445, 458, 459, 471, - 472, 484, 485, 498, 654, 667, 54, 68, - 82, 95, 109, 122, 250, 264, 278, 291, - 304, 317, 446, 460, 473, 486, 499, 655, - 668, 55, 69, 83, 96, 97, 110, 123, - 136, 251, 265, 279, 292, 305, 318, 447, - 461, 474, 487, 500, 643, 656, 669, 682, - 134, 135, 330, 512, 681, 149, 331, 513, - 695, 111, 124, 137, 150, 293, 306, 319, - 332, 475, 488, 501, 514, 670, 683, 148, - 162, 344, 526, 708, 163, 345, 527, 696, - 138, 151, 164, 307, 320, 333, 346, 489, - 502, 515, 528, 684, 697, 641, 680, 694, - 850, 863, 642, 838, 851, 864, 877, 657, - 839, 852, 865, 878, 709, 891, 671, 710, - 866, 879, 358, 540, 722, 904, 359, 541, - 723, 892, 125, 334, 347, 360, 503, 516, - 529, 542, 685, 698, 711, 724, 867, 880, - 893, 906, 837, 876, 890, 1046, 1059, 1047, - 1060, 853, 1048, 1061, 1073, 905, 1074, 1087, - 1062, 1075, 736, 918, 555, 737, 919, 1088, - 321, 530, 543, 556, 699, 712, 725, 738, - 881, 894, 907, 920, 1076, 1089, 69, 82, - 83, 96, 97, 109, 110, 111, 123, 124, - 265, 278, 279, 291, 292, 293, 305, 306, - 319, 461, 474, 475, 487, 488, 501, 657, - 670, 125, 137, 138, 307, 320, 333, 489, - 502, 515, 671, 684, 139, 151, 152, 165, - 321, 334, 347, 503, 516, 529, 685, 698, - 711, 683, 697, 853, 866, 867, 880, 335, - 348, 361, 517, 530, 543, 699, 712, 725, - 881, 894, 907, 879, 893, 1049, 1062, 1063, - 1076, 531, 544, 713, 726, 739, 895, 908, - 921, 1077, 1090, 99, 100, 112, 113, 114, - 126, 127, 140, 141, 154, 282, 295, 296, - 308, 309, 310, 322, 323, 336, 478, 491, - 492, 504, 505, 518, 687, 700, 87, 101, - 115, 128, 142, 155, 283, 297, 311, 324, - 337, 350, 479, 493, 506, 519, 532, 688, - 701, 88, 102, 116, 129, 130, 143, 156, - 169, 284, 298, 312, 325, 338, 351, 480, - 494, 507, 520, 533, 676, 689, 702, 715, - 168, 714, 182, 364, 546, 728, 157, 170, - 326, 339, 352, 365, 508, 521, 534, 547, - 703, 716, 183, 378, 560, 729, 144, 171, - 184, 340, 353, 366, 379, 522, 535, 548, - 561, 717, 730, 674, 883, 896, 675, 871, - 884, 897, 910, 690, 885, 898, 742, 911, - 704, 743, 899, 912, 924, 574, 756, 925, - 158, 354, 367, 380, 536, 549, 562, 575, - 718, 731, 744, 757, 900, 913, 926, 870, - 1079, 1092, 1080, 1093, 872, 886, 1081, 1094, - 1106, 938, 1107, 939, 1095, 1108, 1120, 770, - 952, 1121, 550, 563, 576, 732, 745, 758, - 771, 914, 927, 940, 953, 1109, 1122, 102, - 103, 115, 116, 117, 129, 130, 142, 143, - 144, 156, 157, 285, 298, 299, 311, 312, - 313, 324, 325, 326, 338, 339, 352, 481, - 494, 495, 507, 508, 520, 521, 534, 690, - 703, 90, 104, 118, 131, 145, 158, 286, - 300, 314, 327, 340, 353, 482, 496, 509, - 522, 535, 691, 704, 91, 105, 119, 132, - 133, 146, 159, 172, 287, 301, 315, 328, - 341, 354, 483, 497, 510, 523, 536, 679, - 692, 705, 718, 170, 171, 366, 548, 717, - 185, 367, 549, 731, 147, 160, 173, 186, - 329, 342, 355, 368, 511, 524, 537, 550, - 693, 706, 719, 732, 184, 380, 562, 744, - 381, 563, 745, 174, 187, 343, 356, 369, - 382, 525, 538, 551, 564, 720, 733, 677, - 716, 730, 886, 899, 678, 874, 887, 900, - 913, 888, 901, 926, 914, 707, 746, 902, - 915, 576, 758, 927, 577, 759, 928, 161, - 370, 383, 539, 552, 565, 578, 721, 734, - 747, 760, 903, 916, 929, 873, 912, 1082, - 1095, 1083, 1096, 875, 889, 1084, 1097, 940, - 1109, 941, 1110, 942, 1085, 1098, 1111, 1124, - 772, 954, 1123, 773, 955, 1137, 357, 566, - 579, 735, 748, 761, 774, 917, 930, 943, - 956, 1112, 1125, 105, 106, 118, 119, 120, - 132, 133, 145, 146, 147, 159, 160, 288, - 301, 302, 314, 315, 316, 327, 328, 329, - 341, 342, 355, 484, 497, 498, 510, 511, - 523, 524, 537, 693, 706, 107, 121, 134, - 148, 161, 289, 303, 317, 330, 343, 356, - 485, 499, 512, 525, 538, 694, 707, 94, - 108, 122, 135, 136, 149, 162, 175, 290, - 304, 318, 331, 344, 357, 486, 500, 513, - 526, 539, 682, 695, 708, 721, 173, 174, - 369, 551, 720, 188, 370, 552, 734, 150, - 163, 176, 189, 332, 345, 358, 371, 514, - 527, 540, 553, 709, 722, 187, 383, 565, - 747, 384, 566, 735, 164, 177, 190, 346, - 359, 372, 385, 528, 541, 554, 567, 723, - 736, 680, 719, 733, 889, 902, 681, 890, - 903, 696, 878, 891, 904, 917, 916, 748, - 930, 710, 749, 905, 918, 579, 761, 943, - 580, 762, 931, 360, 373, 386, 542, 555, - 568, 581, 724, 737, 750, 763, 906, 919, - 932, 945, 876, 915, 929, 1085, 1098, 877, - 1086, 1099, 892, 1074, 1087, 1100, 1113, 1112, - 944, 1126, 1101, 1114, 775, 957, 776, 958, - 1127, 556, 569, 582, 738, 751, 764, 777, - 920, 933, 946, 959, 1115, 1128, 108, 109, - 121, 122, 123, 135, 136, 148, 149, 150, - 162, 163, 291, 304, 305, 317, 318, 319, - 330, 331, 332, 344, 345, 358, 487, 500, - 501, 513, 514, 526, 527, 540, 696, 709, - 96, 110, 124, 137, 151, 164, 292, 306, - 320, 333, 346, 359, 488, 502, 515, 528, - 541, 697, 710, 97, 111, 125, 138, 139, - 152, 165, 178, 293, 307, 321, 334, 347, - 360, 489, 503, 516, 529, 542, 685, 698, - 711, 724, 176, 177, 372, 554, 723, 191, - 373, 555, 737, 153, 166, 179, 192, 335, - 348, 361, 374, 517, 530, 543, 556, 712, - 725, 190, 386, 568, 387, 569, 738, 167, - 180, 193, 349, 362, 375, 388, 531, 544, - 557, 570, 726, 739, 683, 722, 736, 892, - 905, 684, 880, 893, 906, 919, 699, 881, - 894, 907, 920, 750, 751, 713, 752, 908, - 921, 582, 764, 933, 583, 765, 934, 363, - 376, 389, 545, 558, 571, 584, 727, 740, - 753, 766, 909, 922, 935, 948, 879, 918, - 932, 1088, 1101, 1089, 1102, 895, 1077, 1090, - 1103, 946, 1115, 947, 1116, 1104, 1117, 778, - 960, 1129, 779, 961, 1130, 559, 572, 585, - 741, 754, 767, 780, 923, 936, 949, 962, - 1118, 1131, 111, 124, 125, 138, 139, 151, - 152, 153, 165, 166, 307, 320, 321, 333, - 334, 335, 347, 348, 361, 503, 516, 517, - 529, 530, 543, 699, 712, 167, 179, 180, - 349, 362, 375, 531, 544, 557, 713, 726, - 181, 193, 194, 363, 376, 389, 545, 558, - 571, 727, 740, 725, 739, 895, 908, 753, - 909, 922, 377, 390, 559, 572, 585, 741, - 754, 767, 923, 936, 921, 935, 1091, 1104, - 949, 1105, 1118, 573, 586, 755, 768, 781, - 937, 950, 963, 1119, 1132, 141, 142, 154, - 155, 156, 168, 169, 182, 183, 324, 337, - 338, 350, 351, 352, 364, 365, 378, 520, - 533, 534, 546, 547, 560, 729, 742, 143, - 157, 170, 184, 325, 339, 353, 366, 379, - 521, 535, 548, 561, 574, 730, 743, 130, - 144, 158, 171, 172, 185, 326, 340, 354, - 367, 380, 522, 536, 549, 562, 575, 718, - 731, 744, 757, 716, 756, 925, 938, 717, - 770, 926, 939, 381, 550, 563, 576, 732, - 745, 758, 771, 927, 940, 912, 952, 1121, - 1134, 913, 953, 966, 1122, 1135, 368, 577, - 746, 759, 772, 914, 928, 941, 954, 967, - 1123, 1136, 144, 145, 157, 158, 159, 171, - 172, 184, 185, 186, 327, 340, 341, 353, - 354, 355, 366, 367, 368, 380, 381, 523, - 536, 537, 549, 550, 562, 563, 576, 732, - 745, 146, 160, 173, 187, 328, 342, 356, - 369, 382, 524, 538, 551, 564, 577, 733, - 746, 133, 147, 161, 174, 175, 188, 329, - 343, 357, 370, 383, 525, 539, 552, 565, - 578, 721, 734, 747, 760, 719, 758, 759, - 772, 928, 941, 720, 773, 929, 942, 371, - 384, 553, 566, 579, 735, 748, 761, 774, - 917, 930, 943, 956, 915, 954, 955, 968, - 1124, 1137, 916, 969, 1125, 1138, 567, 580, - 749, 762, 775, 931, 944, 957, 970, 1113, - 1126, 1139, 1152, 147, 148, 160, 161, 162, - 174, 175, 187, 188, 189, 330, 343, 344, - 356, 357, 358, 369, 370, 371, 383, 384, - 526, 539, 540, 552, 553, 565, 566, 579, - 735, 748, 149, 163, 176, 190, 331, 345, - 359, 372, 385, 527, 541, 554, 567, 580, - 736, 749, 136, 150, 164, 177, 178, 191, - 332, 346, 360, 373, 386, 528, 542, 555, - 568, 581, 724, 737, 750, 763, 722, 761, - 762, 775, 931, 944, 723, 776, 932, 945, - 374, 387, 556, 569, 582, 738, 751, 764, - 777, 920, 933, 946, 959, 918, 957, 958, - 971, 1127, 1140, 919, 972, 1128, 1141, 570, - 583, 752, 765, 778, 934, 947, 960, 973, - 1116, 1129, 1142, 1155, 150, 151, 163, 164, - 165, 177, 178, 190, 191, 192, 333, 346, - 347, 359, 360, 361, 372, 373, 374, 386, - 387, 529, 542, 543, 555, 556, 568, 569, - 582, 738, 751, 138, 152, 166, 179, 193, - 334, 348, 362, 375, 388, 530, 544, 557, - 570, 583, 739, 752, 139, 153, 167, 180, - 181, 194, 335, 349, 363, 376, 389, 531, - 545, 558, 571, 584, 727, 740, 753, 766, - 725, 764, 765, 778, 934, 947, 726, 779, - 922, 935, 948, 961, 377, 390, 559, 572, - 585, 741, 754, 767, 780, 923, 936, 949, - 962, 921, 960, 974, 1130, 1143, 975, 1131, - 1144, 573, 586, 755, 768, 781, 937, 950, - 963, 976, 1119, 1132, 1145, 153, 166, 167, - 180, 181, 193, 194, 195, 349, 362, 363, - 375, 376, 377, 389, 390, 545, 558, 559, - 571, 572, 585, 741, 754, 391, 573, 586, - 755, 767, 768, 781, 937, 950, 587, 769, - 782, 951, 963, 964, 977, 1133, 1146, 15, - 28, 197, 198, 210, 211, 224, 392, 393, - 394, 406, 407, 420, 588, 589, 602, 603, - 616, 784, 785, 798, 980, 16, 29, 199, - 212, 225, 238, 395, 408, 421, 434, 590, - 604, 617, 786, 799, 812, 981, 994, 17, - 30, 200, 213, 226, 239, 396, 409, 422, - 435, 591, 592, 605, 618, 631, 787, 800, - 813, 982, 995, 1177, 42, 630, 1176, 43, - 252, 448, 644, 826, 1008, 1190, 31, 44, - 214, 227, 240, 253, 410, 423, 436, 449, - 619, 632, 788, 801, 814, 827, 983, 996, - 1009, 1178, 56, 57, 266, 462, 645, 840, - 1022, 1191, 45, 58, 228, 241, 254, 267, - 424, 437, 450, 463, 606, 633, 646, 802, - 815, 828, 841, 984, 997, 1010, 1023, 1179, - 1192, 1373, 1372, 1204, 1205, 1374, 1386, 658, - 1036, 1218, 1387, 620, 659, 829, 842, 998, - 1011, 1024, 1037, 1180, 1193, 1206, 1219, 1375, - 1388, 1401, 1568, 1400, 1569, 1570, 1582, 854, - 1232, 1414, 1583, 816, 855, 1025, 1038, 1194, - 1207, 1220, 1233, 1376, 1389, 1402, 1415, 1571, - 1584, 1597, 18, 31, 200, 201, 213, 214, - 226, 227, 240, 395, 396, 397, 408, 409, - 410, 422, 423, 436, 591, 592, 604, 605, - 606, 618, 619, 786, 787, 788, 800, 801, - 814, 982, 983, 996, 19, 32, 202, 215, - 228, 241, 398, 411, 424, 437, 593, 607, - 620, 789, 802, 815, 984, 997, 7, 20, - 33, 46, 203, 216, 229, 242, 399, 412, - 425, 438, 594, 595, 608, 621, 634, 790, - 803, 816, 985, 998, 1180, 45, 254, 450, - 632, 633, 828, 1010, 1179, 59, 255, 451, - 647, 829, 1011, 1193, 34, 47, 217, 230, - 243, 256, 413, 426, 439, 452, 622, 635, - 791, 804, 817, 830, 986, 999, 1012, 1181, - 72, 268, 464, 646, 660, 842, 1024, 60, - 269, 465, 648, 843, 1025, 1194, 48, 61, - 231, 244, 257, 270, 427, 440, 453, 466, - 609, 636, 649, 805, 818, 831, 844, 987, - 1000, 1013, 1026, 1182, 1195, 1178, 1192, 1375, - 1376, 1206, 1207, 1208, 1377, 856, 1038, 1220, - 1389, 661, 1039, 1221, 1390, 623, 662, 832, - 845, 1001, 1014, 1027, 1040, 1183, 1196, 1209, - 1222, 1378, 1391, 1404, 1374, 1388, 1571, 1402, - 1403, 1572, 1573, 1234, 1416, 1585, 857, 1235, - 1417, 1586, 819, 858, 1028, 1041, 1197, 1210, - 1223, 1236, 1379, 1392, 1405, 1418, 1574, 1587, - 1600, 21, 34, 203, 204, 216, 217, 229, - 230, 243, 398, 399, 400, 411, 412, 413, - 425, 426, 439, 594, 595, 607, 608, 609, - 621, 622, 789, 790, 791, 803, 804, 817, - 985, 986, 999, 22, 35, 205, 218, 231, - 244, 401, 414, 427, 440, 596, 610, 623, - 792, 805, 818, 987, 1000, 10, 23, 36, - 49, 206, 219, 232, 245, 402, 415, 428, - 441, 597, 598, 611, 624, 637, 793, 806, - 819, 988, 1001, 1183, 48, 257, 453, 635, - 636, 831, 1013, 1182, 62, 258, 454, 650, - 832, 1014, 1196, 37, 50, 220, 233, 246, - 259, 416, 429, 442, 455, 612, 625, 638, - 794, 807, 820, 833, 989, 1002, 1015, 1184, - 75, 271, 467, 649, 663, 845, 1027, 63, - 272, 468, 651, 846, 1028, 1197, 38, 51, - 64, 234, 247, 260, 273, 430, 443, 456, - 469, 626, 639, 652, 808, 821, 834, 847, - 990, 1003, 1016, 1029, 1185, 1198, 1181, 1195, - 1378, 1379, 1209, 1210, 1211, 1380, 859, 1041, - 1223, 1392, 664, 1042, 1224, 1393, 665, 822, - 835, 848, 1004, 1017, 1030, 1043, 1186, 1199, - 1212, 1225, 1381, 1394, 1407, 1377, 1391, 1574, - 1405, 1406, 1575, 1576, 1237, 1419, 1588, 860, - 1238, 1420, 1589, 861, 1018, 1031, 1044, 1200, - 1213, 1226, 1239, 1382, 1395, 1408, 1421, 1577, - 1590, 1603, 24, 37, 206, 207, 219, 220, - 232, 233, 246, 401, 402, 403, 414, 415, - 416, 428, 429, 442, 597, 598, 610, 611, - 612, 624, 625, 792, 793, 794, 806, 807, - 820, 988, 989, 1002, 12, 25, 38, 51, - 208, 221, 234, 247, 404, 417, 430, 443, - 599, 613, 626, 795, 808, 821, 990, 1003, - 1185, 13, 26, 39, 52, 209, 222, 235, - 248, 405, 418, 431, 444, 600, 601, 614, - 627, 640, 796, 809, 822, 991, 1004, 1186, - 260, 456, 638, 639, 834, 1016, 65, 261, - 457, 653, 835, 1017, 1199, 40, 53, 223, - 236, 249, 262, 419, 432, 445, 458, 615, - 628, 641, 654, 797, 810, 823, 836, 992, - 1005, 1018, 1187, 274, 470, 652, 848, 1030, - 66, 275, 471, 667, 849, 1031, 1200, 1213, - 41, 54, 67, 80, 237, 250, 263, 276, - 433, 446, 459, 472, 629, 642, 655, 668, - 811, 824, 837, 850, 993, 1006, 1019, 1032, - 1188, 1201, 1184, 1198, 1381, 1382, 1212, 1214, - 1383, 666, 1044, 1226, 1395, 1045, 1227, 1396, - 825, 838, 851, 864, 1007, 1020, 1033, 1046, - 1189, 1202, 1215, 1228, 1384, 1397, 1380, 1394, - 1577, 1408, 1409, 1578, 1410, 1579, 862, 1240, - 1422, 1591, 863, 1059, 1241, 1423, 1592, 1605, - 1021, 1034, 1047, 1060, 1203, 1216, 1229, 1242, - 1385, 1398, 1411, 1424, 1580, 1593, 27, 40, - 209, 222, 223, 235, 236, 249, 404, 405, - 417, 418, 419, 431, 432, 445, 600, 601, - 613, 614, 615, 627, 628, 795, 796, 797, - 809, 810, 823, 991, 992, 1005, 41, 54, - 237, 250, 263, 433, 446, 459, 629, 641, - 642, 811, 824, 837, 993, 1006, 1019, 1188, - 55, 68, 251, 264, 277, 447, 460, 473, - 643, 655, 656, 825, 838, 851, 1007, 1020, - 1033, 1189, 1202, 1187, 1201, 1215, 1384, 669, - 839, 852, 1021, 1034, 1047, 1203, 1216, 1229, - 1385, 1398, 1383, 1397, 1411, 1580, 865, 1035, - 1048, 1217, 1230, 1243, 1399, 1412, 1425, 1581, - 1594, 57, 70, 226, 239, 240, 252, 253, - 266, 408, 421, 422, 434, 435, 436, 448, - 449, 462, 603, 604, 616, 617, 618, 630, - 631, 644, 645, 658, 786, 799, 800, 812, - 813, 814, 826, 827, 840, 982, 995, 996, - 1008, 1009, 1022, 1191, 1204, 58, 71, 227, - 241, 254, 267, 280, 409, 423, 437, 450, - 463, 476, 591, 605, 619, 632, 646, 659, - 787, 801, 815, 828, 841, 854, 983, 997, - 1010, 1023, 1036, 1192, 1205, 46, 59, 72, - 85, 228, 242, 255, 268, 281, 410, 424, - 438, 451, 464, 477, 592, 606, 620, 633, - 634, 647, 660, 673, 788, 802, 816, 829, - 842, 855, 984, 998, 1011, 1024, 1037, 1180, - 1193, 1206, 1219, 84, 672, 1218, 98, 294, - 490, 686, 868, 1050, 73, 86, 256, 269, - 282, 295, 452, 465, 478, 491, 661, 674, - 830, 843, 856, 869, 1012, 1025, 1038, 1051, - 1207, 1220, 1232, 99, 308, 504, 687, 882, - 1064, 1233, 74, 87, 100, 113, 270, 283, - 296, 309, 466, 479, 492, 505, 648, 675, - 688, 844, 857, 870, 883, 1026, 1039, 1052, - 1065, 1221, 1234, 1178, 1387, 1400, 1179, 1375, - 1388, 1401, 1414, 1194, 1376, 1389, 1402, 1415, - 1246, 1208, 1247, 1403, 1416, 1428, 700, 1078, - 1260, 1429, 662, 701, 858, 871, 884, 897, - 1040, 1053, 1066, 1079, 1222, 1235, 1248, 1261, - 1404, 1417, 1430, 1443, 1374, 1583, 1596, 1571, - 1584, 1597, 1610, 1390, 1585, 1598, 1442, 1611, - 1599, 1612, 1624, 896, 1274, 1456, 1625, 1067, - 1080, 1236, 1249, 1262, 1275, 1418, 1431, 1444, - 1457, 1600, 1613, 1626, 1639, 60, 73, 229, - 242, 243, 255, 256, 268, 269, 282, 411, - 424, 425, 437, 438, 439, 450, 451, 452, - 464, 465, 478, 606, 607, 619, 620, 621, - 633, 634, 646, 647, 648, 660, 661, 789, - 802, 803, 815, 816, 817, 828, 829, 830, - 842, 843, 856, 985, 998, 999, 1011, 1012, - 1024, 1025, 1038, 1194, 1207, 61, 74, 230, - 244, 257, 270, 283, 412, 426, 440, 453, - 466, 479, 594, 608, 622, 635, 649, 662, - 790, 804, 818, 831, 844, 857, 986, 1000, - 1013, 1026, 1039, 1195, 1208, 49, 62, 75, - 88, 231, 245, 258, 271, 284, 413, 427, - 441, 454, 467, 480, 595, 609, 623, 636, - 637, 650, 663, 676, 791, 805, 819, 832, - 845, 858, 987, 1001, 1014, 1027, 1040, 1183, - 1196, 1209, 1222, 87, 100, 296, 492, 674, - 675, 688, 870, 1052, 1221, 101, 297, 493, - 689, 871, 1053, 76, 89, 259, 272, 285, - 298, 455, 468, 481, 494, 664, 677, 833, - 846, 859, 872, 1015, 1028, 1041, 1054, 1210, - 1223, 114, 310, 506, 702, 884, 1066, 1235, - 102, 311, 507, 690, 885, 1067, 1236, 77, - 90, 103, 116, 273, 286, 299, 312, 469, - 482, 495, 508, 651, 678, 691, 847, 860, - 873, 886, 1029, 1042, 1055, 1068, 1224, 1237, - 1181, 1220, 1234, 1390, 1403, 1182, 1378, 1391, - 1404, 1417, 1197, 1379, 1392, 1405, 1418, 1248, - 1430, 1249, 1211, 1250, 1406, 1419, 898, 1080, - 1262, 1431, 703, 1081, 1263, 1432, 665, 704, - 861, 874, 887, 900, 1043, 1056, 1069, 1082, - 1225, 1238, 1251, 1264, 1407, 1420, 1433, 1446, - 1377, 1416, 1586, 1599, 1574, 1587, 1600, 1613, - 1393, 1588, 1601, 1444, 1626, 1445, 1614, 1602, - 1615, 1276, 1458, 1627, 899, 1277, 1459, 1628, - 1070, 1083, 1239, 1252, 1265, 1278, 1421, 1434, - 1447, 1460, 1603, 1616, 1629, 1642, 63, 76, - 232, 245, 246, 258, 259, 271, 272, 285, - 414, 427, 428, 440, 441, 442, 453, 454, - 455, 467, 468, 481, 609, 610, 622, 623, - 624, 636, 637, 649, 650, 651, 663, 664, - 792, 805, 806, 818, 819, 820, 831, 832, - 833, 845, 846, 859, 988, 1001, 1002, 1014, - 1015, 1027, 1028, 1041, 1197, 1210, 64, 77, - 233, 247, 260, 273, 286, 415, 429, 443, - 456, 469, 482, 597, 611, 625, 638, 652, - 665, 793, 807, 821, 834, 847, 860, 989, - 1003, 1016, 1029, 1042, 1198, 1211, 52, 65, - 78, 91, 234, 248, 261, 274, 287, 416, - 430, 444, 457, 470, 483, 598, 612, 626, - 639, 640, 653, 666, 679, 794, 808, 822, - 835, 848, 861, 990, 1004, 1017, 1030, 1043, - 1186, 1199, 1212, 1225, 90, 103, 299, 495, - 677, 678, 691, 873, 1055, 1224, 104, 300, - 496, 692, 874, 1056, 79, 92, 262, 275, - 288, 301, 458, 471, 484, 497, 654, 667, - 680, 836, 849, 862, 875, 1018, 1031, 1044, - 1057, 1200, 1213, 1226, 117, 313, 509, 705, - 887, 1069, 1238, 105, 314, 510, 693, 888, - 1070, 1239, 80, 93, 106, 119, 276, 289, - 302, 315, 472, 485, 498, 511, 668, 681, - 694, 850, 863, 876, 889, 1032, 1045, 1058, - 1071, 1214, 1227, 1240, 1184, 1223, 1237, 1393, - 1406, 1185, 1381, 1394, 1407, 1420, 1382, 1395, - 1408, 1421, 1251, 1433, 1252, 1253, 1409, 1422, - 901, 1083, 1265, 1434, 706, 1084, 1266, 1435, - 707, 864, 877, 890, 903, 1046, 1059, 1072, - 1085, 1228, 1241, 1254, 1267, 1410, 1423, 1436, - 1449, 1380, 1419, 1589, 1602, 1577, 1590, 1603, - 1616, 1396, 1591, 1604, 1447, 1629, 1448, 1617, - 1592, 1605, 1618, 1279, 1461, 1630, 902, 1280, - 1462, 1631, 1060, 1073, 1086, 1242, 1255, 1268, - 1281, 1424, 1437, 1450, 1463, 1606, 1619, 1632, - 1645, 66, 79, 235, 248, 249, 261, 262, - 274, 275, 288, 417, 430, 431, 443, 444, - 445, 456, 457, 458, 470, 471, 484, 612, - 613, 625, 626, 627, 639, 640, 652, 653, - 654, 666, 667, 795, 808, 809, 821, 822, - 823, 834, 835, 836, 848, 849, 862, 991, - 1004, 1005, 1017, 1018, 1030, 1031, 1044, 1200, - 1213, 67, 80, 93, 236, 250, 263, 276, - 289, 418, 432, 446, 459, 472, 485, 600, - 614, 628, 641, 655, 668, 796, 810, 824, - 837, 850, 863, 992, 1006, 1019, 1032, 1045, - 1201, 1214, 55, 68, 81, 94, 237, 251, - 264, 277, 290, 419, 433, 447, 460, 473, - 486, 601, 615, 629, 642, 643, 656, 669, - 682, 797, 811, 825, 838, 851, 864, 993, - 1007, 1020, 1033, 1046, 1189, 1202, 1215, 1228, - 302, 498, 680, 681, 876, 1058, 1227, 107, - 303, 499, 695, 877, 1059, 1241, 82, 95, - 265, 278, 291, 304, 461, 474, 487, 500, - 657, 670, 683, 696, 839, 852, 865, 878, - 1021, 1034, 1047, 1060, 1203, 1216, 1229, 316, - 512, 694, 890, 1072, 108, 317, 513, 709, - 891, 1073, 1242, 1255, 96, 109, 279, 292, - 305, 318, 475, 488, 501, 514, 684, 697, - 853, 866, 879, 892, 1035, 1048, 1061, 1074, - 1217, 1230, 1243, 1187, 1226, 1240, 1396, 1409, - 1188, 1384, 1397, 1410, 1423, 1385, 1398, 1411, - 1254, 1424, 1437, 1256, 1412, 1425, 708, 1086, - 1268, 905, 1087, 1269, 1438, 671, 710, 880, - 893, 1049, 1062, 1075, 1088, 1231, 1244, 1257, - 1270, 1413, 1426, 1439, 1383, 1422, 1436, 1592, - 1605, 1580, 1593, 1606, 1619, 1399, 1594, 1607, - 1450, 1451, 1620, 1452, 1595, 1608, 1621, 1634, - 904, 1282, 1464, 1633, 1101, 1283, 1465, 1647, - 867, 906, 1076, 1089, 1245, 1258, 1271, 1284, - 1427, 1440, 1453, 1466, 1609, 1622, 1635, 69, - 82, 251, 264, 265, 277, 278, 291, 433, - 446, 447, 459, 460, 461, 473, 474, 487, - 615, 628, 629, 642, 643, 655, 656, 657, - 669, 670, 811, 824, 825, 837, 838, 839, - 851, 852, 865, 1007, 1020, 1021, 1033, 1034, - 1047, 1203, 1216, 83, 96, 279, 292, 305, - 475, 488, 501, 671, 683, 684, 853, 866, - 879, 1035, 1048, 1061, 1217, 1230, 97, 110, - 293, 306, 319, 489, 502, 515, 685, 697, - 698, 867, 880, 893, 1049, 1062, 1075, 1231, - 1244, 1229, 1243, 1399, 1412, 1257, 1413, 1426, - 711, 881, 894, 1063, 1076, 1089, 1245, 1258, - 1271, 1427, 1440, 1425, 1439, 1595, 1608, 1453, - 1609, 1622, 907, 1077, 1090, 1259, 1272, 1285, - 1441, 1454, 1467, 1623, 1636, 99, 112, 268, - 281, 282, 294, 295, 308, 450, 463, 464, - 476, 477, 478, 490, 491, 504, 645, 646, - 658, 659, 660, 672, 673, 686, 687, 700, - 828, 841, 842, 854, 855, 856, 868, 869, - 882, 1024, 1037, 1038, 1050, 1051, 1064, 1233, - 1246, 100, 113, 269, 283, 296, 309, 322, - 451, 465, 479, 492, 505, 518, 633, 647, - 661, 674, 688, 701, 829, 843, 857, 870, - 883, 896, 1025, 1039, 1052, 1065, 1078, 1234, - 1247, 88, 101, 114, 127, 270, 284, 297, - 310, 323, 452, 466, 480, 493, 506, 519, - 648, 662, 675, 676, 689, 702, 715, 830, - 844, 858, 871, 884, 897, 1026, 1040, 1053, - 1066, 1079, 1235, 1248, 126, 714, 1260, 336, - 532, 910, 1092, 1261, 115, 128, 298, 311, - 324, 337, 494, 507, 520, 533, 703, 716, - 872, 885, 898, 911, 1054, 1067, 1080, 1093, - 1249, 1262, 140, 728, 1274, 141, 350, 546, - 729, 924, 1106, 1275, 116, 129, 142, 155, - 312, 325, 338, 351, 508, 521, 534, 547, - 690, 717, 730, 743, 886, 899, 912, 925, - 1068, 1081, 1094, 1107, 1263, 1276, 1220, 1429, - 1442, 1221, 1417, 1430, 1443, 1456, 1222, 1236, - 1431, 1444, 1288, 1457, 1250, 1289, 1445, 1458, - 1470, 742, 1120, 1302, 1471, 704, 900, 913, - 926, 939, 1082, 1095, 1108, 1121, 1264, 1277, - 1290, 1303, 1446, 1459, 1472, 1485, 1416, 1625, - 1638, 1613, 1626, 1639, 1652, 1418, 1432, 1627, - 1640, 1484, 1653, 1641, 1654, 1666, 938, 1316, - 1498, 1667, 1109, 1122, 1135, 1278, 1291, 1304, - 1317, 1460, 1473, 1486, 1499, 1642, 1655, 1668, - 1681, 102, 115, 271, 284, 285, 297, 298, - 310, 311, 324, 453, 466, 467, 479, 480, - 481, 492, 493, 494, 506, 507, 520, 648, - 649, 661, 662, 663, 675, 676, 688, 689, - 690, 702, 703, 831, 844, 845, 857, 858, - 859, 870, 871, 872, 884, 885, 898, 1027, - 1040, 1041, 1053, 1054, 1066, 1067, 1080, 1236, - 1249, 103, 116, 272, 286, 299, 312, 325, - 454, 468, 482, 495, 508, 521, 636, 650, - 664, 677, 691, 704, 832, 846, 860, 873, - 886, 899, 1028, 1042, 1055, 1068, 1081, 1237, - 1250, 91, 104, 117, 130, 273, 287, 300, - 313, 326, 455, 469, 483, 496, 509, 522, - 651, 665, 678, 679, 692, 705, 718, 833, - 847, 861, 874, 887, 900, 1029, 1043, 1056, - 1069, 1082, 1238, 1251, 129, 142, 338, 534, - 716, 717, 730, 912, 1094, 1263, 339, 535, - 913, 1095, 1264, 118, 131, 301, 314, 327, - 340, 497, 510, 523, 536, 706, 719, 875, - 888, 901, 914, 1057, 1070, 1083, 1096, 1252, - 1265, 143, 156, 352, 548, 731, 744, 926, - 1108, 1277, 144, 353, 549, 732, 927, 1109, - 1278, 119, 132, 145, 158, 315, 328, 341, - 354, 511, 524, 537, 550, 693, 720, 733, - 746, 889, 902, 915, 928, 1071, 1084, 1097, - 1110, 1266, 1279, 1223, 1262, 1276, 1432, 1445, - 1224, 1420, 1433, 1446, 1459, 1225, 1239, 1434, - 1447, 1290, 1472, 1291, 1460, 1253, 1292, 1448, - 1461, 940, 1122, 1304, 1473, 745, 1123, 1305, - 1474, 707, 903, 916, 929, 942, 1085, 1098, - 1111, 1124, 1267, 1280, 1293, 1306, 1449, 1462, - 1475, 1488, 1419, 1458, 1628, 1641, 1616, 1629, - 1642, 1655, 1421, 1435, 1630, 1643, 1486, 1487, - 1656, 1644, 1657, 1318, 1500, 1669, 941, 1319, - 1501, 1670, 1112, 1125, 1138, 1281, 1294, 1307, - 1320, 1463, 1476, 1489, 1502, 1645, 1658, 1671, - 1684, 105, 118, 274, 287, 288, 300, 301, - 313, 314, 327, 456, 469, 470, 482, 483, - 484, 495, 496, 497, 509, 510, 523, 651, - 652, 664, 665, 666, 678, 679, 691, 692, - 693, 705, 706, 834, 847, 848, 860, 861, - 862, 873, 874, 875, 887, 888, 901, 1030, - 1043, 1044, 1056, 1057, 1069, 1070, 1083, 1239, - 1252, 106, 119, 275, 289, 302, 315, 328, - 457, 471, 485, 498, 511, 524, 639, 653, - 667, 680, 694, 707, 835, 849, 863, 876, - 889, 902, 1031, 1045, 1058, 1071, 1084, 1240, - 1253, 94, 107, 120, 276, 290, 303, 316, - 329, 458, 472, 486, 499, 512, 525, 640, - 654, 668, 681, 682, 695, 708, 836, 850, - 864, 877, 890, 903, 1032, 1046, 1059, 1072, - 1085, 1228, 1241, 1254, 132, 145, 341, 537, - 719, 720, 733, 915, 1097, 1266, 133, 342, - 538, 721, 916, 1098, 1267, 121, 134, 304, - 317, 330, 343, 500, 513, 526, 539, 696, - 709, 722, 735, 878, 891, 904, 917, 1060, - 1073, 1086, 1099, 1242, 1255, 1268, 1281, 146, - 355, 551, 734, 929, 1111, 1280, 147, 356, - 552, 930, 1112, 135, 148, 318, 331, 344, - 357, 514, 527, 540, 553, 723, 736, 892, - 905, 918, 931, 1074, 1087, 1100, 1113, 1256, - 1269, 1282, 1226, 1265, 1279, 1435, 1448, 1227, - 1423, 1436, 1449, 1462, 1424, 1437, 1450, 1293, - 1475, 1294, 1463, 1295, 1438, 1451, 1464, 747, - 1125, 1307, 1476, 748, 1126, 1308, 1477, 710, - 749, 919, 932, 1088, 1101, 1114, 1127, 1270, - 1283, 1296, 1309, 1452, 1465, 1478, 1491, 1422, - 1461, 1631, 1644, 1619, 1632, 1645, 1658, 1633, - 1646, 1489, 1490, 1659, 1634, 1647, 1660, 1673, - 943, 1321, 1503, 1672, 944, 1322, 1504, 906, - 945, 1115, 1128, 1284, 1297, 1310, 1323, 1466, - 1479, 1492, 1505, 1648, 1661, 1674, 1687, 108, - 121, 277, 290, 291, 303, 304, 316, 317, - 330, 459, 472, 473, 485, 486, 487, 498, - 499, 500, 512, 513, 526, 654, 655, 667, - 668, 669, 681, 682, 694, 695, 696, 708, - 709, 837, 850, 851, 863, 864, 865, 876, - 877, 878, 890, 891, 904, 1033, 1046, 1047, - 1059, 1060, 1072, 1073, 1086, 1242, 1255, 109, - 122, 278, 292, 305, 318, 331, 460, 474, - 488, 501, 514, 527, 642, 656, 670, 683, - 697, 710, 838, 852, 866, 879, 892, 905, - 1034, 1048, 1061, 1074, 1087, 1243, 1256, 97, - 110, 123, 136, 279, 293, 306, 319, 332, - 461, 475, 489, 502, 515, 528, 643, 657, - 671, 684, 685, 698, 711, 724, 839, 853, - 867, 880, 893, 906, 1035, 1049, 1062, 1075, - 1088, 1231, 1244, 1257, 1270, 135, 344, 540, - 722, 723, 918, 1100, 1269, 149, 345, 541, - 737, 919, 1101, 1283, 124, 137, 307, 320, - 333, 346, 503, 516, 529, 542, 699, 712, - 725, 738, 881, 894, 907, 920, 1063, 1076, - 1089, 1102, 1258, 1271, 162, 358, 554, 736, - 750, 932, 1114, 1296, 150, 359, 555, 751, - 933, 1115, 1284, 138, 151, 321, 334, 347, - 360, 517, 530, 543, 556, 726, 739, 752, - 895, 908, 921, 934, 1077, 1090, 1103, 1116, - 1272, 1285, 1229, 1268, 1282, 1438, 1451, 1230, - 1426, 1439, 1452, 1465, 1245, 1427, 1440, 1453, - 1466, 1297, 1479, 1259, 1298, 1454, 1467, 946, - 1128, 1310, 1492, 947, 1129, 1311, 1480, 713, - 922, 935, 948, 1091, 1104, 1117, 1130, 1273, - 1286, 1299, 1312, 1455, 1468, 1481, 1494, 1425, - 1464, 1478, 1634, 1647, 1622, 1635, 1648, 1661, - 1441, 1636, 1649, 1493, 1662, 1675, 1637, 1650, - 1663, 1676, 1324, 1506, 1143, 1325, 1507, 1689, - 909, 1118, 1131, 1144, 1287, 1300, 1313, 1326, - 1469, 1482, 1495, 1508, 1651, 1664, 1677, 1690, - 111, 124, 293, 306, 307, 319, 320, 333, - 475, 488, 489, 501, 502, 503, 515, 516, - 529, 657, 670, 671, 684, 685, 697, 698, - 699, 711, 712, 853, 866, 867, 879, 880, - 881, 893, 894, 907, 1049, 1062, 1063, 1075, - 1076, 1089, 1245, 1258, 125, 138, 321, 334, - 347, 517, 530, 543, 713, 725, 726, 895, - 908, 921, 1077, 1090, 1103, 1259, 1272, 139, - 152, 165, 335, 348, 361, 531, 544, 557, - 727, 739, 740, 753, 909, 922, 935, 1091, - 1104, 1117, 1273, 1286, 1299, 1271, 1285, 1441, - 1454, 1455, 1468, 923, 936, 949, 1105, 1118, - 1131, 1287, 1300, 1313, 1469, 1482, 1495, 1467, - 1481, 1637, 1650, 1651, 1664, 1119, 1132, 1301, - 1314, 1327, 1483, 1496, 1509, 1665, 1678, 141, - 154, 310, 323, 324, 336, 337, 350, 492, - 505, 506, 518, 519, 520, 532, 533, 546, - 687, 688, 700, 701, 702, 714, 715, 728, - 729, 742, 870, 883, 884, 896, 897, 898, - 910, 911, 924, 1066, 1079, 1080, 1092, 1093, - 1106, 1275, 1288, 142, 155, 311, 325, 338, - 351, 364, 493, 507, 521, 534, 547, 560, - 675, 689, 703, 716, 730, 743, 871, 885, - 899, 912, 925, 938, 1067, 1081, 1094, 1107, - 1120, 1276, 1289, 130, 143, 156, 169, 312, - 326, 339, 352, 365, 494, 508, 522, 535, - 548, 561, 690, 704, 717, 718, 731, 744, - 757, 872, 886, 900, 913, 926, 939, 1068, - 1082, 1095, 1108, 1121, 1277, 1290, 168, 756, - 1302, 378, 574, 952, 1134, 1303, 157, 170, - 340, 353, 366, 379, 536, 549, 562, 575, - 745, 758, 914, 927, 940, 953, 1096, 1109, - 1122, 1135, 1291, 1304, 182, 770, 1316, 183, - 771, 966, 1148, 1317, 158, 171, 184, 354, - 367, 380, 550, 563, 576, 732, 746, 759, - 772, 928, 941, 954, 967, 1110, 1123, 1136, - 1149, 1305, 1318, 1262, 1471, 1484, 1263, 1459, - 1472, 1485, 1498, 1264, 1278, 1473, 1486, 1330, - 1499, 1292, 1331, 1487, 1500, 1512, 1162, 1344, - 1513, 942, 955, 968, 1124, 1137, 1150, 1163, - 1306, 1319, 1332, 1345, 1488, 1501, 1514, 1458, - 1667, 1680, 1655, 1668, 1681, 1694, 1460, 1474, - 1669, 1682, 1526, 1695, 1527, 1683, 1696, 1708, - 1358, 1540, 1709, 1138, 1151, 1164, 1320, 1333, - 1346, 1359, 1502, 1515, 1528, 1541, 1684, 1697, - 1710, 144, 157, 313, 326, 327, 339, 340, - 352, 353, 366, 495, 508, 509, 521, 522, - 523, 534, 535, 536, 548, 549, 562, 690, - 691, 703, 704, 705, 717, 718, 730, 731, - 732, 744, 745, 873, 886, 887, 899, 900, - 901, 912, 913, 914, 926, 927, 940, 1069, - 1082, 1083, 1095, 1096, 1108, 1109, 1122, 1278, - 1291, 145, 158, 314, 328, 341, 354, 367, - 496, 510, 524, 537, 550, 563, 678, 692, - 706, 719, 733, 746, 874, 888, 902, 915, - 928, 941, 1070, 1084, 1097, 1110, 1123, 1279, - 1292, 146, 159, 315, 329, 342, 355, 368, - 497, 511, 525, 538, 551, 564, 693, 707, - 720, 734, 747, 875, 889, 903, 916, 929, - 942, 1071, 1085, 1098, 1111, 1124, 1280, 1293, - 171, 184, 380, 576, 758, 759, 772, 954, - 1136, 1305, 172, 381, 577, 760, 955, 1137, - 1306, 160, 173, 343, 356, 369, 382, 539, - 552, 565, 578, 721, 735, 748, 761, 774, - 917, 930, 943, 956, 1099, 1112, 1125, 1138, - 1281, 1294, 1307, 1320, 185, 773, 968, 1150, - 1319, 186, 969, 1151, 1333, 174, 187, 357, - 370, 383, 553, 566, 579, 762, 775, 931, - 944, 957, 970, 1113, 1126, 1139, 1152, 1308, - 1321, 1265, 1304, 1318, 1474, 1487, 1266, 1462, - 1475, 1488, 1501, 1267, 1476, 1489, 1332, 1514, - 1502, 1295, 1334, 1490, 1503, 1164, 1346, 1515, - 1165, 1347, 1516, 749, 958, 971, 1127, 1140, - 1153, 1166, 1309, 1322, 1335, 1348, 1491, 1504, - 1517, 1461, 1500, 1670, 1683, 1658, 1671, 1684, - 1697, 1463, 1477, 1672, 1685, 1528, 1529, 1698, - 1530, 1673, 1686, 1699, 1712, 1360, 1542, 1711, - 1361, 1543, 1725, 945, 1154, 1167, 1323, 1336, - 1349, 1362, 1505, 1518, 1531, 1544, 1687, 1700, - 1713, 147, 160, 316, 329, 330, 342, 343, - 355, 356, 369, 498, 511, 512, 524, 525, - 526, 537, 538, 539, 551, 552, 565, 693, - 694, 706, 707, 708, 720, 721, 733, 734, - 735, 747, 748, 876, 889, 890, 902, 903, - 904, 915, 916, 917, 929, 930, 943, 1072, - 1085, 1086, 1098, 1099, 1111, 1112, 1125, 1281, - 1294, 148, 161, 317, 331, 344, 357, 370, - 499, 513, 527, 540, 553, 566, 695, 709, - 722, 736, 749, 877, 891, 905, 918, 931, - 944, 1073, 1087, 1100, 1113, 1126, 1282, 1295, - 136, 149, 162, 175, 318, 332, 345, 358, - 371, 500, 514, 528, 541, 554, 567, 682, - 696, 710, 723, 724, 737, 750, 763, 878, - 892, 906, 919, 932, 945, 1074, 1088, 1101, - 1114, 1127, 1270, 1283, 1296, 1309, 174, 383, - 579, 761, 762, 957, 1139, 1308, 188, 384, - 580, 776, 958, 1140, 1322, 163, 176, 346, - 359, 372, 385, 542, 555, 568, 581, 738, - 751, 764, 777, 920, 933, 946, 959, 1102, - 1115, 1128, 1141, 1297, 1310, 775, 971, 1153, - 1335, 189, 972, 1154, 1323, 177, 190, 360, - 373, 386, 556, 569, 582, 752, 765, 778, - 934, 947, 960, 973, 1116, 1129, 1142, 1155, - 1311, 1324, 1268, 1307, 1321, 1477, 1490, 1269, - 1478, 1491, 1284, 1466, 1479, 1492, 1505, 1504, - 1336, 1518, 1298, 1337, 1493, 1506, 1167, 1349, - 1531, 1168, 1350, 1519, 948, 961, 974, 1130, - 1143, 1156, 1169, 1312, 1325, 1338, 1351, 1494, - 1507, 1520, 1533, 1464, 1503, 1517, 1673, 1686, - 1465, 1674, 1687, 1480, 1662, 1675, 1688, 1701, - 1700, 1532, 1714, 1676, 1689, 1702, 1715, 1363, - 1545, 1364, 1546, 1144, 1157, 1170, 1326, 1339, - 1352, 1365, 1508, 1521, 1534, 1547, 1690, 1703, - 1716, 1729, 150, 163, 319, 332, 333, 345, - 346, 358, 359, 372, 501, 514, 515, 527, - 528, 529, 540, 541, 542, 554, 555, 568, - 696, 697, 709, 710, 711, 723, 724, 736, - 737, 738, 750, 751, 879, 892, 893, 905, - 906, 907, 918, 919, 920, 932, 933, 946, - 1075, 1088, 1089, 1101, 1102, 1114, 1115, 1128, - 1284, 1297, 151, 164, 320, 334, 347, 360, - 373, 502, 516, 530, 543, 556, 569, 684, - 698, 712, 725, 739, 752, 880, 894, 908, - 921, 934, 947, 1076, 1090, 1103, 1116, 1129, - 1285, 1298, 139, 152, 165, 178, 321, 335, - 348, 361, 374, 503, 517, 531, 544, 557, - 570, 685, 699, 713, 726, 727, 740, 753, - 766, 881, 895, 909, 922, 935, 948, 1077, - 1091, 1104, 1117, 1130, 1273, 1286, 1299, 1312, - 177, 386, 582, 764, 765, 960, 1142, 1311, - 191, 387, 583, 779, 961, 1143, 1325, 166, - 179, 349, 362, 375, 388, 545, 558, 571, - 584, 741, 754, 767, 780, 923, 936, 949, - 962, 1105, 1118, 1131, 1144, 1300, 1313, 778, - 974, 1156, 192, 975, 1157, 1326, 180, 193, - 363, 376, 389, 559, 572, 585, 755, 768, - 781, 937, 950, 963, 976, 1119, 1132, 1145, - 1158, 1314, 1327, 1271, 1310, 1324, 1480, 1493, - 1272, 1468, 1481, 1494, 1507, 1287, 1469, 1482, - 1495, 1508, 1338, 1339, 1301, 1340, 1496, 1509, - 1170, 1352, 1521, 1171, 1353, 1522, 951, 964, - 977, 1133, 1146, 1159, 1172, 1315, 1328, 1341, - 1354, 1510, 1523, 1467, 1506, 1520, 1676, 1689, - 1664, 1677, 1690, 1703, 1483, 1665, 1678, 1691, - 1534, 1535, 1704, 1497, 1536, 1692, 1705, 1366, - 1548, 1717, 1367, 1549, 1718, 1147, 1160, 1173, - 1329, 1342, 1355, 1368, 1511, 1524, 1537, 1550, - 1693, 1706, 1719, 153, 166, 335, 348, 349, - 361, 362, 375, 517, 530, 531, 543, 544, - 545, 557, 558, 571, 699, 712, 713, 726, - 727, 739, 740, 741, 753, 754, 895, 908, - 909, 921, 922, 923, 935, 936, 949, 1091, - 1104, 1105, 1117, 1118, 1131, 1287, 1300, 167, - 180, 363, 376, 389, 559, 572, 585, 755, - 767, 768, 937, 950, 963, 1119, 1132, 1145, - 1301, 1314, 181, 194, 377, 390, 573, 586, - 769, 781, 782, 951, 964, 977, 1133, 1146, - 1159, 1315, 1328, 1313, 1327, 1483, 1496, 1341, - 1497, 1510, 965, 978, 1147, 1160, 1173, 1329, - 1342, 1355, 1511, 1524, 1509, 1523, 1679, 1692, - 1537, 1693, 1706, 1161, 1174, 1343, 1356, 1369, - 1525, 1538, 1551, 1707, 1720, 183, 352, 365, - 366, 378, 379, 534, 547, 548, 560, 561, - 562, 574, 575, 729, 730, 742, 743, 744, - 756, 757, 770, 771, 912, 925, 926, 938, - 939, 940, 952, 953, 966, 1108, 1121, 1122, - 1134, 1135, 1148, 1317, 1330, 184, 353, 367, - 380, 535, 549, 563, 576, 731, 745, 758, - 772, 913, 927, 941, 954, 967, 1109, 1123, - 1136, 1149, 1162, 1318, 1331, 185, 354, 368, - 381, 536, 550, 564, 577, 732, 746, 759, - 773, 914, 928, 942, 955, 968, 1110, 1124, - 1137, 1150, 1163, 1319, 1332, 1304, 1344, 1513, - 1526, 1305, 1345, 1358, 1514, 1527, 760, 969, - 1138, 1151, 1164, 1306, 1320, 1333, 1346, 1359, - 1515, 1528, 1500, 1540, 1709, 1722, 1501, 1541, - 1554, 1710, 1723, 956, 1165, 1334, 1347, 1360, - 1502, 1516, 1529, 1542, 1555, 1711, 1724, 186, - 355, 368, 369, 381, 382, 537, 550, 551, - 563, 564, 565, 576, 577, 578, 732, 733, - 745, 746, 747, 759, 760, 772, 773, 774, - 915, 928, 929, 941, 942, 943, 954, 955, - 956, 968, 969, 1111, 1124, 1125, 1137, 1138, - 1150, 1151, 1164, 1320, 1333, 187, 356, 370, - 383, 538, 552, 566, 579, 734, 748, 761, - 775, 916, 930, 944, 957, 970, 1112, 1126, - 1139, 1152, 1165, 1321, 1334, 175, 188, 357, - 371, 384, 539, 553, 567, 580, 721, 735, - 749, 762, 763, 776, 917, 931, 945, 958, - 971, 1113, 1127, 1140, 1153, 1166, 1309, 1322, - 1335, 1348, 1307, 1346, 1347, 1360, 1516, 1529, - 1308, 1361, 1517, 1530, 959, 972, 1141, 1154, - 1167, 1323, 1336, 1349, 1362, 1505, 1518, 1531, - 1544, 1503, 1542, 1543, 1556, 1712, 1725, 1738, - 1504, 1557, 1713, 1726, 1155, 1168, 1337, 1350, - 1363, 1519, 1532, 1545, 1558, 1701, 1714, 1727, - 1740, 189, 358, 371, 372, 384, 385, 540, - 553, 554, 566, 567, 568, 579, 580, 581, - 735, 736, 748, 749, 750, 762, 763, 775, - 776, 777, 918, 931, 932, 944, 945, 946, - 957, 958, 959, 971, 972, 1114, 1127, 1128, - 1140, 1141, 1153, 1154, 1167, 1323, 1336, 190, - 359, 373, 386, 541, 555, 569, 582, 737, - 751, 764, 778, 919, 933, 947, 960, 973, - 1115, 1129, 1142, 1155, 1168, 1324, 1337, 178, - 191, 360, 374, 387, 542, 556, 570, 583, - 724, 738, 752, 765, 766, 779, 920, 934, - 948, 961, 974, 1116, 1130, 1143, 1156, 1169, - 1312, 1325, 1338, 1351, 1310, 1349, 1350, 1363, - 1519, 1532, 1311, 1364, 1520, 1533, 962, 975, - 1144, 1157, 1170, 1326, 1339, 1352, 1365, 1508, - 1521, 1534, 1547, 1506, 1545, 1546, 1559, 1715, - 1728, 1507, 1560, 1716, 1729, 1158, 1171, 1340, - 1353, 1366, 1522, 1535, 1548, 1561, 1704, 1717, - 1730, 1743, 192, 361, 374, 375, 387, 388, - 543, 556, 557, 569, 570, 571, 582, 583, - 584, 738, 739, 751, 752, 753, 765, 766, - 778, 779, 780, 921, 934, 935, 947, 948, - 949, 960, 961, 962, 974, 975, 1117, 1130, - 1131, 1143, 1144, 1156, 1157, 1170, 1326, 1339, - 193, 362, 376, 389, 544, 558, 572, 585, - 726, 740, 754, 767, 781, 922, 936, 950, - 963, 976, 1118, 1132, 1145, 1158, 1171, 1327, - 1340, 181, 194, 363, 377, 390, 545, 559, - 573, 586, 727, 741, 755, 768, 782, 923, - 937, 951, 964, 977, 1119, 1133, 1146, 1159, - 1172, 1328, 1341, 1313, 1352, 1353, 1366, 1522, - 1535, 1314, 1354, 1367, 1523, 1536, 769, 965, - 978, 1147, 1160, 1173, 1315, 1329, 1342, 1355, - 1368, 1511, 1524, 1537, 1550, 1509, 1548, 1549, - 1562, 1718, 1731, 1510, 1563, 1706, 1719, 1732, - 1745, 1161, 1174, 1343, 1356, 1369, 1525, 1538, - 1551, 1564, 1707, 1720, 1733, 195, 377, 390, - 391, 559, 572, 573, 585, 586, 587, 741, - 754, 755, 768, 769, 781, 782, 783, 937, - 950, 951, 963, 964, 965, 977, 978, 1133, - 1146, 1147, 1159, 1160, 1173, 1329, 1342, 979, - 1161, 1174, 1343, 1355, 1356, 1369, 1525, 1538, - 1175, 1357, 1370, 1539, 1551, 1552, 1565, 1721, - 1734, 603, 616, 785, 786, 798, 799, 812, - 980, 981, 982, 994, 995, 1008, 1176, 1177, - 1190, 1191, 1204, 1372, 1373, 1386, 1568, 604, - 617, 787, 800, 813, 826, 983, 996, 1009, - 1022, 1178, 1192, 1205, 1374, 1387, 1400, 1569, - 1582, 592, 605, 618, 631, 788, 801, 814, - 827, 984, 997, 1010, 1023, 1179, 1180, 1193, - 1206, 1219, 1375, 1388, 1401, 1570, 1583, 1765, - 630, 1218, 1764, 644, 840, 1036, 1232, 1414, - 1596, 1778, 619, 632, 802, 815, 828, 841, - 998, 1011, 1024, 1037, 1207, 1220, 1376, 1389, - 1402, 1415, 1571, 1584, 1597, 1766, 645, 854, - 1050, 1233, 1428, 1610, 1779, 633, 646, 816, - 829, 842, 855, 1012, 1025, 1038, 1051, 1194, - 1221, 1234, 1390, 1403, 1416, 1429, 1572, 1585, - 1598, 1611, 1767, 1780, 1960, 1961, 1792, 1793, - 1962, 1974, 1246, 1624, 1806, 1975, 1208, 1247, - 1417, 1430, 1586, 1599, 1612, 1625, 1768, 1781, - 1794, 1807, 1963, 1976, 1989, 2157, 2156, 1988, - 2158, 2171, 2170, 1442, 1638, 1820, 2002, 2184, - 1404, 1443, 1613, 1626, 1782, 1795, 1808, 1821, - 1964, 1977, 1990, 2003, 2159, 2172, 2185, 606, - 619, 788, 789, 801, 802, 814, 815, 828, - 983, 984, 985, 996, 997, 998, 1010, 1011, - 1024, 1179, 1180, 1192, 1193, 1194, 1206, 1207, - 1374, 1375, 1376, 1388, 1389, 1402, 1570, 1571, - 1584, 607, 620, 790, 803, 816, 829, 986, - 999, 1012, 1025, 1181, 1195, 1208, 1377, 1390, - 1403, 1572, 1585, 595, 608, 621, 634, 791, - 804, 817, 830, 987, 1000, 1013, 1026, 1182, - 1183, 1196, 1209, 1222, 1378, 1391, 1404, 1573, - 1586, 1768, 633, 842, 1038, 1220, 1221, 1416, - 1598, 1767, 647, 843, 1039, 1235, 1417, 1599, - 1781, 622, 635, 805, 818, 831, 844, 1001, - 1014, 1027, 1040, 1210, 1223, 1379, 1392, 1405, - 1418, 1574, 1587, 1600, 1769, 660, 856, 1052, - 1234, 1248, 1430, 1612, 648, 857, 1053, 1236, - 1431, 1613, 1782, 636, 649, 819, 832, 845, - 858, 1015, 1028, 1041, 1054, 1197, 1224, 1237, - 1393, 1406, 1419, 1432, 1575, 1588, 1601, 1614, - 1770, 1783, 1766, 1780, 1963, 1964, 1794, 1795, - 1796, 1965, 1444, 1626, 1808, 1977, 1249, 1627, - 1809, 1978, 1211, 1250, 1420, 1433, 1589, 1602, - 1615, 1628, 1771, 1784, 1797, 1810, 1966, 1979, - 1992, 1962, 1976, 2159, 2160, 1990, 1991, 2161, - 2174, 1822, 2004, 2173, 1445, 1641, 1823, 2005, - 2187, 1407, 1446, 1616, 1629, 1785, 1798, 1811, - 1824, 1967, 1980, 1993, 2006, 2162, 2175, 2188, - 609, 622, 791, 792, 804, 805, 817, 818, - 831, 986, 987, 988, 999, 1000, 1001, 1013, - 1014, 1027, 1182, 1183, 1195, 1196, 1197, 1209, - 1210, 1377, 1378, 1379, 1391, 1392, 1405, 1573, - 1574, 1587, 610, 623, 793, 806, 819, 832, - 989, 1002, 1015, 1028, 1184, 1198, 1211, 1380, - 1393, 1406, 1575, 1588, 598, 611, 624, 637, - 794, 807, 820, 833, 990, 1003, 1016, 1029, - 1185, 1186, 1199, 1212, 1225, 1381, 1394, 1407, - 1576, 1589, 1771, 636, 845, 1041, 1223, 1224, - 1419, 1601, 1770, 650, 846, 1042, 1238, 1420, - 1602, 1784, 625, 638, 808, 821, 834, 847, - 1004, 1017, 1030, 1043, 1200, 1213, 1226, 1382, - 1395, 1408, 1421, 1577, 1590, 1603, 1772, 663, - 859, 1055, 1237, 1251, 1433, 1615, 651, 860, - 1056, 1239, 1434, 1616, 1785, 639, 652, 822, - 835, 848, 861, 1018, 1031, 1044, 1057, 1214, - 1227, 1240, 1396, 1409, 1422, 1435, 1578, 1591, - 1604, 1617, 1773, 1786, 1769, 1783, 1966, 1967, - 1797, 1798, 1799, 1968, 1447, 1629, 1811, 1980, - 1252, 1630, 1812, 1981, 1253, 1410, 1423, 1436, - 1592, 1605, 1618, 1631, 1774, 1787, 1800, 1813, - 1969, 1982, 1995, 1965, 1979, 2162, 2163, 1993, - 1994, 2164, 2177, 1825, 2007, 2176, 1448, 1644, - 1826, 2008, 2190, 1449, 1606, 1619, 1632, 1788, - 1801, 1814, 1827, 1970, 1983, 1996, 2009, 2165, - 2178, 2191, 612, 625, 794, 795, 807, 808, - 820, 821, 834, 989, 990, 991, 1002, 1003, - 1004, 1016, 1017, 1030, 1185, 1186, 1198, 1199, - 1200, 1212, 1213, 1380, 1381, 1382, 1394, 1395, - 1408, 1576, 1577, 1590, 600, 613, 626, 639, - 796, 809, 822, 835, 992, 1005, 1018, 1031, - 1187, 1201, 1214, 1383, 1396, 1409, 1578, 1591, - 1773, 601, 614, 627, 640, 797, 810, 823, - 836, 993, 1006, 1019, 1032, 1188, 1189, 1202, - 1215, 1228, 1384, 1397, 1410, 1579, 1592, 1774, - 848, 1044, 1226, 1227, 1422, 1604, 653, 849, - 1045, 1241, 1423, 1605, 1787, 628, 641, 811, - 824, 837, 850, 1007, 1020, 1033, 1046, 1203, - 1216, 1229, 1242, 1385, 1398, 1411, 1424, 1580, - 1593, 1606, 1775, 862, 1058, 1240, 1436, 1618, - 654, 863, 1059, 1255, 1437, 1619, 1788, 1801, - 642, 655, 825, 838, 851, 864, 1021, 1034, - 1047, 1060, 1217, 1230, 1243, 1256, 1399, 1412, - 1425, 1438, 1581, 1594, 1607, 1620, 1776, 1789, - 1772, 1786, 1969, 1970, 1800, 1802, 1971, 1254, - 1632, 1814, 1983, 1633, 1815, 1984, 1413, 1426, - 1439, 1452, 1595, 1608, 1621, 1634, 1777, 1790, - 1803, 1816, 1972, 1985, 1968, 1982, 2165, 2166, - 1996, 1997, 1998, 2167, 2180, 1450, 1828, 2010, - 2179, 1451, 1647, 1829, 2011, 2193, 1609, 1622, - 1635, 1648, 1791, 1804, 1817, 1830, 1973, 1986, - 1999, 2012, 2168, 2181, 615, 628, 797, 810, - 811, 823, 824, 837, 992, 993, 1005, 1006, - 1007, 1019, 1020, 1033, 1188, 1189, 1201, 1202, - 1203, 1215, 1216, 1383, 1384, 1385, 1397, 1398, - 1411, 1579, 1580, 1593, 629, 642, 825, 838, - 851, 1021, 1034, 1047, 1217, 1229, 1230, 1399, - 1412, 1425, 1581, 1594, 1607, 1776, 643, 656, - 839, 852, 865, 1035, 1048, 1061, 1231, 1243, - 1244, 1413, 1426, 1439, 1595, 1608, 1621, 1777, - 1790, 1775, 1789, 1803, 1972, 1257, 1427, 1440, - 1609, 1622, 1635, 1791, 1804, 1817, 1973, 1986, - 1971, 1985, 1999, 2168, 1453, 1623, 1636, 1805, - 1818, 1831, 1987, 2000, 2013, 2169, 2182, 645, - 658, 814, 827, 828, 840, 841, 854, 996, - 1009, 1010, 1022, 1023, 1024, 1036, 1037, 1050, - 1191, 1192, 1204, 1205, 1206, 1218, 1219, 1232, - 1233, 1246, 1374, 1387, 1388, 1400, 1401, 1402, - 1414, 1415, 1428, 1570, 1583, 1584, 1596, 1597, - 1610, 1779, 1792, 646, 659, 815, 829, 842, - 855, 868, 997, 1011, 1025, 1038, 1051, 1064, - 1179, 1193, 1207, 1220, 1234, 1247, 1375, 1389, - 1403, 1416, 1429, 1442, 1571, 1585, 1598, 1611, - 1624, 1780, 1793, 634, 647, 660, 673, 816, - 830, 843, 856, 869, 998, 1012, 1026, 1039, - 1052, 1065, 1180, 1194, 1208, 1221, 1222, 1235, - 1248, 1261, 1376, 1390, 1404, 1417, 1430, 1443, - 1572, 1586, 1599, 1612, 1625, 1768, 1781, 1794, - 1807, 672, 1260, 1806, 686, 882, 1078, 1274, - 1456, 1638, 661, 674, 844, 857, 870, 883, - 1040, 1053, 1066, 1079, 1249, 1262, 1418, 1431, - 1444, 1457, 1600, 1613, 1626, 1639, 1795, 1808, - 1820, 687, 896, 1092, 1275, 1470, 1652, 1821, - 662, 675, 688, 701, 858, 871, 884, 897, - 1054, 1067, 1080, 1093, 1236, 1263, 1276, 1432, - 1445, 1458, 1471, 1614, 1627, 1640, 1653, 1809, - 1822, 1766, 1975, 1988, 1767, 1963, 1976, 1989, - 2002, 1782, 1964, 1977, 1990, 2003, 1834, 1796, - 1835, 1991, 2004, 2016, 1288, 1666, 1848, 2017, - 1250, 1289, 1446, 1459, 1472, 1485, 1628, 1641, - 1654, 1667, 1810, 1823, 1836, 1849, 1992, 2005, - 2018, 2031, 1962, 2158, 2171, 2184, 2159, 2172, - 2185, 2198, 1978, 2160, 2173, 2186, 2199, 2030, - 2174, 2187, 2200, 2213, 2212, 1484, 1680, 1862, - 2044, 2226, 1642, 1655, 1668, 1681, 1824, 1837, - 1850, 1863, 2006, 2019, 2032, 2045, 2188, 2201, - 2214, 2227, 648, 661, 817, 830, 831, 843, - 844, 856, 857, 870, 999, 1012, 1013, 1025, - 1026, 1027, 1038, 1039, 1040, 1052, 1053, 1066, - 1194, 1195, 1207, 1208, 1209, 1221, 1222, 1234, - 1235, 1236, 1248, 1249, 1377, 1390, 1391, 1403, - 1404, 1405, 1416, 1417, 1418, 1430, 1431, 1444, - 1573, 1586, 1587, 1599, 1600, 1612, 1613, 1626, - 1782, 1795, 649, 662, 818, 832, 845, 858, - 871, 1000, 1014, 1028, 1041, 1054, 1067, 1182, - 1196, 1210, 1223, 1237, 1250, 1378, 1392, 1406, - 1419, 1432, 1445, 1574, 1588, 1601, 1614, 1627, - 1783, 1796, 637, 650, 663, 676, 819, 833, - 846, 859, 872, 1001, 1015, 1029, 1042, 1055, - 1068, 1183, 1197, 1211, 1224, 1225, 1238, 1251, - 1264, 1379, 1393, 1407, 1420, 1433, 1446, 1575, - 1589, 1602, 1615, 1628, 1771, 1784, 1797, 1810, - 675, 884, 1080, 1262, 1263, 1276, 1458, 1640, - 1809, 689, 885, 1081, 1277, 1459, 1641, 664, - 677, 847, 860, 873, 886, 1043, 1056, 1069, - 1082, 1252, 1265, 1421, 1434, 1447, 1460, 1603, - 1616, 1629, 1642, 1798, 1811, 702, 898, 1094, - 1290, 1472, 1654, 1823, 690, 899, 1095, 1278, - 1473, 1655, 1824, 665, 678, 691, 704, 861, - 874, 887, 900, 1057, 1070, 1083, 1096, 1239, - 1266, 1279, 1435, 1448, 1461, 1474, 1617, 1630, - 1643, 1656, 1812, 1825, 1769, 1808, 1822, 1978, - 1991, 1770, 1966, 1979, 1992, 2005, 1785, 1967, - 1980, 1993, 2006, 1836, 2018, 1837, 1799, 1838, - 1994, 2007, 1486, 1668, 1850, 2019, 1291, 1669, - 1851, 2020, 1253, 1292, 1449, 1462, 1475, 1488, - 1631, 1644, 1657, 1670, 1813, 1826, 1839, 1852, - 1995, 2008, 2021, 2034, 1965, 2004, 2161, 2174, - 2187, 2200, 2162, 2175, 2188, 2201, 1981, 2163, - 2176, 2189, 2202, 2032, 2214, 2033, 2177, 2190, - 2203, 2216, 1864, 2046, 2215, 1487, 1683, 1865, - 2047, 2229, 1645, 1658, 1671, 1684, 1827, 1840, - 1853, 1866, 2009, 2022, 2035, 2048, 2191, 2204, - 2217, 2230, 651, 664, 820, 833, 834, 846, - 847, 859, 860, 873, 1002, 1015, 1016, 1028, - 1029, 1030, 1041, 1042, 1043, 1055, 1056, 1069, - 1197, 1198, 1210, 1211, 1212, 1224, 1225, 1237, - 1238, 1239, 1251, 1252, 1380, 1393, 1394, 1406, - 1407, 1408, 1419, 1420, 1421, 1433, 1434, 1447, - 1576, 1589, 1590, 1602, 1603, 1615, 1616, 1629, - 1785, 1798, 652, 665, 821, 835, 848, 861, - 874, 1003, 1017, 1031, 1044, 1057, 1070, 1185, - 1199, 1213, 1226, 1240, 1253, 1381, 1395, 1409, - 1422, 1435, 1448, 1577, 1591, 1604, 1617, 1630, - 1786, 1799, 640, 653, 666, 679, 822, 836, - 849, 862, 875, 1004, 1018, 1032, 1045, 1058, - 1071, 1186, 1200, 1214, 1227, 1228, 1241, 1254, - 1267, 1382, 1396, 1410, 1423, 1436, 1449, 1578, - 1592, 1605, 1618, 1631, 1774, 1787, 1800, 1813, - 678, 887, 1083, 1265, 1266, 1279, 1461, 1643, - 1812, 692, 888, 1084, 1280, 1462, 1644, 667, - 680, 850, 863, 876, 889, 1046, 1059, 1072, - 1085, 1242, 1255, 1268, 1424, 1437, 1450, 1463, - 1606, 1619, 1632, 1645, 1788, 1801, 1814, 705, - 901, 1097, 1293, 1475, 1657, 1826, 693, 902, - 1098, 1281, 1476, 1658, 1827, 668, 681, 694, - 707, 864, 877, 890, 903, 1060, 1073, 1086, - 1099, 1256, 1269, 1282, 1438, 1451, 1464, 1477, - 1620, 1633, 1646, 1659, 1802, 1815, 1828, 1772, - 1811, 1825, 1981, 1994, 1773, 1969, 1982, 1995, - 2008, 1970, 1983, 1996, 2009, 1839, 2021, 1840, - 1841, 1997, 2010, 1489, 1671, 1853, 2022, 1294, - 1672, 1854, 2023, 1295, 1452, 1465, 1478, 1491, - 1634, 1647, 1660, 1673, 1816, 1829, 1842, 1855, - 1998, 2011, 2024, 2037, 1968, 2007, 2164, 2177, - 2190, 2203, 2165, 2178, 2191, 2204, 1984, 2166, - 2179, 2192, 2205, 2035, 2217, 2036, 2180, 2193, - 2206, 2219, 1867, 2049, 2218, 1490, 1686, 1868, - 2050, 2232, 1648, 1661, 1674, 1687, 1830, 1843, - 1856, 1869, 2012, 2025, 2038, 2051, 2194, 2207, - 2220, 2233, 654, 667, 823, 836, 837, 849, - 850, 862, 863, 876, 1005, 1018, 1019, 1031, - 1032, 1033, 1044, 1045, 1046, 1058, 1059, 1072, - 1200, 1201, 1213, 1214, 1215, 1227, 1228, 1240, - 1241, 1242, 1254, 1255, 1383, 1396, 1397, 1409, - 1410, 1411, 1422, 1423, 1424, 1436, 1437, 1450, - 1579, 1592, 1593, 1605, 1606, 1618, 1619, 1632, - 1788, 1801, 655, 668, 681, 824, 838, 851, - 864, 877, 1006, 1020, 1034, 1047, 1060, 1073, - 1188, 1202, 1216, 1229, 1243, 1256, 1384, 1398, - 1412, 1425, 1438, 1451, 1580, 1594, 1607, 1620, - 1633, 1789, 1802, 643, 656, 669, 682, 825, - 839, 852, 865, 878, 1007, 1021, 1035, 1048, - 1061, 1074, 1189, 1203, 1217, 1230, 1231, 1244, - 1257, 1270, 1385, 1399, 1413, 1426, 1439, 1452, - 1581, 1595, 1608, 1621, 1634, 1777, 1790, 1803, - 1816, 890, 1086, 1268, 1269, 1464, 1646, 1815, - 695, 891, 1087, 1283, 1465, 1647, 1829, 670, - 683, 853, 866, 879, 892, 1049, 1062, 1075, - 1088, 1245, 1258, 1271, 1284, 1427, 1440, 1453, - 1466, 1609, 1622, 1635, 1648, 1791, 1804, 1817, - 904, 1100, 1282, 1478, 1660, 696, 905, 1101, - 1297, 1479, 1661, 1830, 1843, 684, 697, 867, - 880, 893, 906, 1063, 1076, 1089, 1102, 1272, - 1285, 1441, 1454, 1467, 1480, 1623, 1636, 1649, - 1662, 1805, 1818, 1831, 1775, 1814, 1828, 1984, - 1997, 1776, 1972, 1985, 1998, 2011, 1973, 1986, - 1999, 1842, 2012, 1844, 2000, 2013, 1296, 1674, - 1856, 2025, 1493, 1675, 1857, 2026, 1259, 1298, - 1468, 1481, 1637, 1650, 1663, 1676, 1819, 1832, - 1845, 1858, 2001, 2014, 2027, 1971, 2010, 2024, - 2180, 2193, 2181, 2194, 1987, 2169, 2182, 2195, - 2038, 2207, 2039, 2208, 2221, 2040, 2183, 2196, - 2209, 2222, 1492, 1870, 2052, 1689, 1871, 2053, - 2235, 1455, 1494, 1664, 1677, 1833, 1846, 1859, - 1872, 2015, 2028, 2041, 2054, 2210, 2223, 657, - 670, 839, 852, 853, 865, 866, 879, 1021, - 1034, 1035, 1047, 1048, 1049, 1061, 1062, 1075, - 1203, 1216, 1217, 1230, 1231, 1243, 1244, 1245, - 1257, 1258, 1399, 1412, 1413, 1425, 1426, 1427, - 1439, 1440, 1453, 1595, 1608, 1609, 1621, 1622, - 1635, 1791, 1804, 671, 684, 867, 880, 893, - 1063, 1076, 1089, 1259, 1271, 1272, 1441, 1454, - 1467, 1623, 1636, 1649, 1805, 1818, 685, 698, - 881, 894, 907, 1077, 1090, 1103, 1273, 1285, - 1286, 1455, 1468, 1481, 1637, 1650, 1663, 1819, - 1832, 1817, 1831, 1987, 2000, 1845, 2001, 2014, - 1299, 1469, 1482, 1651, 1664, 1677, 1833, 1846, - 1859, 2015, 2028, 2013, 2027, 2183, 2196, 2209, - 2041, 2197, 2210, 1495, 1665, 1678, 1847, 1860, - 1873, 2029, 2042, 2055, 2211, 2224, 687, 700, - 856, 869, 870, 882, 883, 896, 1038, 1051, - 1052, 1064, 1065, 1066, 1078, 1079, 1092, 1233, - 1234, 1246, 1247, 1248, 1260, 1261, 1274, 1275, - 1288, 1416, 1429, 1430, 1442, 1443, 1444, 1456, - 1457, 1470, 1612, 1625, 1626, 1638, 1639, 1652, - 1821, 1834, 688, 701, 857, 871, 884, 897, - 910, 1039, 1053, 1067, 1080, 1093, 1106, 1221, - 1235, 1249, 1262, 1276, 1289, 1417, 1431, 1445, - 1458, 1471, 1484, 1613, 1627, 1640, 1653, 1666, - 1822, 1835, 676, 689, 702, 715, 858, 872, - 885, 898, 911, 1040, 1054, 1068, 1081, 1094, - 1107, 1236, 1250, 1263, 1264, 1277, 1290, 1303, - 1418, 1432, 1446, 1459, 1472, 1485, 1614, 1628, - 1641, 1654, 1667, 1823, 1836, 714, 1302, 1848, - 924, 1120, 1498, 1680, 1849, 703, 716, 886, - 899, 912, 925, 1082, 1095, 1108, 1121, 1291, - 1304, 1460, 1473, 1486, 1499, 1642, 1655, 1668, - 1681, 1837, 1850, 728, 1316, 1862, 729, 938, - 1134, 1317, 1512, 1694, 1863, 704, 717, 730, - 900, 913, 926, 939, 1096, 1109, 1122, 1135, - 1278, 1305, 1318, 1331, 1474, 1487, 1500, 1513, - 1656, 1669, 1682, 1695, 1851, 1864, 1808, 2017, - 2030, 1809, 2005, 2018, 2031, 2044, 1810, 1824, - 2019, 2032, 1876, 2045, 1838, 1877, 2033, 2046, - 2058, 1330, 1708, 1890, 2059, 1292, 1488, 1501, - 1514, 1527, 1670, 1683, 1696, 1709, 1852, 1865, - 1878, 1891, 2034, 2047, 2060, 2073, 2004, 2200, - 2213, 2226, 2201, 2214, 2227, 2240, 2006, 2020, - 2215, 2228, 2072, 2241, 2216, 2229, 2242, 2255, - 2254, 1526, 1904, 2086, 1684, 1697, 1710, 1723, - 1866, 1879, 1892, 1905, 2048, 2061, 2074, 2087, - 2230, 2243, 2256, 2269, 690, 703, 859, 872, - 873, 885, 886, 898, 899, 912, 1041, 1054, - 1055, 1067, 1068, 1069, 1080, 1081, 1082, 1094, - 1095, 1108, 1236, 1237, 1249, 1250, 1251, 1263, - 1264, 1276, 1277, 1278, 1290, 1291, 1419, 1432, - 1433, 1445, 1446, 1447, 1458, 1459, 1460, 1472, - 1473, 1486, 1615, 1628, 1629, 1641, 1642, 1654, - 1655, 1668, 1824, 1837, 691, 704, 860, 874, - 887, 900, 913, 1042, 1056, 1070, 1083, 1096, - 1109, 1224, 1238, 1252, 1265, 1279, 1292, 1420, - 1434, 1448, 1461, 1474, 1487, 1616, 1630, 1643, - 1656, 1669, 1825, 1838, 679, 692, 705, 718, - 861, 875, 888, 901, 914, 1043, 1057, 1071, - 1084, 1097, 1110, 1239, 1253, 1266, 1267, 1280, - 1293, 1306, 1421, 1435, 1449, 1462, 1475, 1488, - 1617, 1631, 1644, 1657, 1670, 1826, 1839, 717, - 926, 1122, 1304, 1305, 1318, 1500, 1682, 1851, - 927, 1123, 1501, 1683, 1852, 706, 719, 889, - 902, 915, 928, 1085, 1098, 1111, 1124, 1294, - 1307, 1463, 1476, 1489, 1502, 1645, 1658, 1671, - 1684, 1840, 1853, 731, 744, 940, 1136, 1319, - 1332, 1514, 1696, 1865, 732, 941, 1137, 1320, - 1515, 1697, 1866, 707, 720, 733, 903, 916, - 929, 942, 1099, 1112, 1125, 1138, 1281, 1308, - 1321, 1334, 1477, 1490, 1503, 1516, 1659, 1672, - 1685, 1698, 1854, 1867, 1811, 1850, 1864, 2020, - 2033, 1812, 2008, 2021, 2034, 2047, 1813, 1827, - 2022, 2035, 1878, 2060, 1879, 2048, 1841, 1880, - 2036, 2049, 1528, 1710, 1892, 2061, 1333, 1711, - 1893, 2062, 1295, 1491, 1504, 1517, 1530, 1673, - 1686, 1699, 1712, 1855, 1868, 1881, 1894, 2037, - 2050, 2063, 2076, 2007, 2046, 2203, 2216, 2229, - 2242, 2204, 2217, 2230, 2243, 2009, 2023, 2218, - 2231, 2074, 2075, 2244, 2219, 2232, 2245, 2258, - 1906, 2088, 2257, 1529, 1907, 2089, 1687, 1700, - 1713, 1726, 1869, 1882, 1895, 1908, 2051, 2064, - 2077, 2090, 2233, 2246, 2259, 2272, 693, 706, - 862, 875, 876, 888, 889, 901, 902, 915, - 1044, 1057, 1058, 1070, 1071, 1072, 1083, 1084, - 1085, 1097, 1098, 1111, 1239, 1240, 1252, 1253, - 1254, 1266, 1267, 1279, 1280, 1281, 1293, 1294, - 1422, 1435, 1436, 1448, 1449, 1450, 1461, 1462, - 1463, 1475, 1476, 1489, 1618, 1631, 1632, 1644, - 1645, 1657, 1658, 1671, 1827, 1840, 694, 707, - 863, 877, 890, 903, 916, 1045, 1059, 1073, - 1086, 1099, 1112, 1227, 1241, 1255, 1268, 1282, - 1295, 1423, 1437, 1451, 1464, 1477, 1490, 1619, - 1633, 1646, 1659, 1672, 1828, 1841, 682, 695, - 708, 864, 878, 891, 904, 917, 1046, 1060, - 1074, 1087, 1100, 1113, 1228, 1242, 1256, 1269, - 1270, 1283, 1296, 1424, 1438, 1452, 1465, 1478, - 1491, 1620, 1634, 1647, 1660, 1673, 1816, 1829, - 1842, 720, 929, 1125, 1307, 1308, 1321, 1503, - 1685, 1854, 721, 930, 1126, 1309, 1504, 1686, - 1855, 709, 722, 892, 905, 918, 931, 1088, - 1101, 1114, 1127, 1284, 1297, 1310, 1323, 1466, - 1479, 1492, 1505, 1648, 1661, 1674, 1687, 1830, - 1843, 1856, 1869, 734, 943, 1139, 1322, 1517, - 1699, 1868, 735, 944, 1140, 1518, 1700, 723, - 736, 906, 919, 932, 945, 1102, 1115, 1128, - 1141, 1311, 1324, 1480, 1493, 1506, 1519, 1662, - 1675, 1688, 1701, 1844, 1857, 1870, 1814, 1853, - 1867, 2023, 2036, 1815, 2011, 2024, 2037, 2050, - 2012, 2025, 2038, 1881, 2063, 1882, 2051, 1883, - 2026, 2039, 2052, 1335, 1713, 1895, 2064, 1336, - 1714, 1896, 2065, 1298, 1337, 1507, 1520, 1676, - 1689, 1702, 1715, 1858, 1871, 1884, 1897, 2040, - 2053, 2066, 2079, 2010, 2049, 2206, 2219, 2232, - 2245, 2207, 2220, 2233, 2246, 2208, 2221, 2234, - 2077, 2078, 2247, 2222, 2235, 2248, 2261, 1531, - 1909, 2091, 2260, 1532, 1728, 1910, 2092, 2274, - 1494, 1533, 1703, 1716, 1872, 1885, 1898, 1911, - 2054, 2067, 2080, 2093, 2249, 2262, 696, 709, - 865, 878, 879, 891, 892, 904, 905, 918, - 1047, 1060, 1061, 1073, 1074, 1075, 1086, 1087, - 1088, 1100, 1101, 1114, 1242, 1243, 1255, 1256, - 1257, 1269, 1270, 1282, 1283, 1284, 1296, 1297, - 1425, 1438, 1439, 1451, 1452, 1453, 1464, 1465, - 1466, 1478, 1479, 1492, 1621, 1634, 1635, 1647, - 1648, 1660, 1661, 1674, 1830, 1843, 697, 710, - 866, 880, 893, 906, 919, 1048, 1062, 1076, - 1089, 1102, 1115, 1230, 1244, 1258, 1271, 1285, - 1298, 1426, 1440, 1454, 1467, 1480, 1493, 1622, - 1636, 1649, 1662, 1675, 1831, 1844, 685, 698, - 711, 724, 867, 881, 894, 907, 920, 1049, - 1063, 1077, 1090, 1103, 1116, 1231, 1245, 1259, - 1272, 1273, 1286, 1299, 1312, 1427, 1441, 1455, - 1468, 1481, 1494, 1623, 1637, 1650, 1663, 1676, - 1819, 1832, 1845, 1858, 723, 932, 1128, 1310, - 1311, 1506, 1688, 1857, 737, 933, 1129, 1325, - 1507, 1689, 1871, 712, 725, 895, 908, 921, - 934, 1091, 1104, 1117, 1130, 1287, 1300, 1313, - 1326, 1469, 1482, 1495, 1508, 1651, 1664, 1677, - 1690, 1846, 1859, 750, 946, 1142, 1324, 1338, - 1520, 1702, 1884, 738, 947, 1143, 1339, 1521, - 1703, 1872, 726, 739, 909, 922, 935, 948, - 1105, 1118, 1131, 1144, 1314, 1327, 1340, 1483, - 1496, 1509, 1522, 1665, 1678, 1691, 1704, 1860, - 1873, 1817, 1856, 1870, 2026, 2039, 1818, 2014, - 2027, 2040, 2053, 1833, 2015, 2028, 2041, 2054, - 1885, 2067, 1847, 1886, 2042, 2055, 1716, 1898, - 1535, 1717, 1899, 2068, 1301, 1510, 1523, 1536, - 1679, 1692, 1705, 1718, 1861, 1874, 1887, 1900, - 2056, 2069, 2013, 2052, 2066, 2209, 2222, 2235, - 2248, 2223, 2236, 2029, 2224, 2237, 2080, 2249, - 2081, 2250, 2263, 2043, 2082, 2238, 2251, 1534, - 1912, 2094, 2276, 1731, 1913, 2095, 2264, 1497, - 1706, 1719, 1732, 1875, 1888, 1901, 1914, 2057, - 2070, 2083, 2096, 2239, 2252, 2265, 2278, 699, - 712, 881, 894, 895, 907, 908, 921, 1063, - 1076, 1077, 1089, 1090, 1091, 1103, 1104, 1117, - 1245, 1258, 1259, 1272, 1273, 1285, 1286, 1287, - 1299, 1300, 1441, 1454, 1455, 1467, 1468, 1469, - 1481, 1482, 1495, 1637, 1650, 1651, 1663, 1664, - 1677, 1833, 1846, 713, 726, 909, 922, 935, - 1105, 1118, 1131, 1301, 1313, 1314, 1483, 1496, - 1509, 1665, 1678, 1691, 1847, 1860, 727, 740, - 923, 936, 949, 1119, 1132, 1145, 1315, 1327, - 1328, 1497, 1510, 1523, 1679, 1692, 1705, 1861, - 1874, 1859, 1873, 2029, 2042, 1887, 2043, 2056, - 1341, 1511, 1524, 1537, 1693, 1706, 1719, 1875, - 1888, 1901, 2057, 2070, 2083, 2055, 2069, 2225, - 2238, 2239, 2252, 1707, 1720, 1889, 1902, 1915, - 2071, 2084, 2097, 2253, 2266, 2279, 729, 742, - 898, 911, 912, 924, 925, 938, 1080, 1093, - 1094, 1106, 1107, 1108, 1120, 1121, 1134, 1275, - 1276, 1288, 1289, 1290, 1302, 1303, 1316, 1317, - 1330, 1458, 1471, 1472, 1484, 1485, 1486, 1498, - 1499, 1512, 1654, 1667, 1668, 1680, 1681, 1694, - 1863, 1876, 730, 743, 899, 913, 926, 939, - 952, 1081, 1095, 1109, 1122, 1135, 1148, 1263, - 1277, 1291, 1304, 1318, 1331, 1459, 1473, 1487, - 1500, 1513, 1526, 1655, 1669, 1682, 1695, 1708, - 1864, 1877, 718, 731, 744, 757, 900, 914, - 927, 940, 953, 1082, 1096, 1110, 1123, 1136, - 1149, 1278, 1292, 1305, 1306, 1319, 1332, 1345, - 1460, 1474, 1488, 1501, 1514, 1527, 1656, 1670, - 1683, 1696, 1709, 1865, 1878, 756, 1344, 1890, - 966, 1162, 1540, 1722, 1891, 745, 758, 928, - 941, 954, 967, 1124, 1137, 1150, 1163, 1333, - 1346, 1502, 1515, 1528, 1541, 1684, 1697, 1710, - 1723, 1879, 1892, 770, 1358, 1904, 771, 1359, - 1554, 1736, 1905, 759, 772, 942, 955, 968, - 1138, 1151, 1164, 1320, 1334, 1347, 1360, 1516, - 1529, 1542, 1555, 1698, 1711, 1724, 1737, 1893, - 1906, 1850, 2059, 2072, 1851, 2047, 2060, 2073, - 2086, 1852, 1866, 2061, 2074, 1918, 2087, 1880, - 1919, 2075, 2088, 2100, 1750, 1932, 2101, 1530, - 1543, 1556, 1712, 1725, 1738, 1751, 1894, 1907, - 1920, 1933, 2076, 2089, 2102, 2046, 2242, 2255, - 2268, 2243, 2256, 2269, 2282, 2048, 2062, 2257, - 2270, 2114, 2283, 2115, 2258, 2271, 2284, 2297, - 2296, 1946, 2128, 1739, 1752, 1908, 1921, 1934, - 1947, 2090, 2103, 2116, 2129, 2285, 2298, 732, - 745, 901, 914, 915, 927, 928, 940, 941, - 954, 1083, 1096, 1097, 1109, 1110, 1111, 1122, - 1123, 1124, 1136, 1137, 1150, 1278, 1279, 1291, - 1292, 1293, 1305, 1306, 1318, 1319, 1320, 1332, - 1333, 1461, 1474, 1475, 1487, 1488, 1489, 1500, - 1501, 1502, 1514, 1515, 1528, 1657, 1670, 1671, - 1683, 1684, 1696, 1697, 1710, 1866, 1879, 733, - 746, 902, 916, 929, 942, 955, 1084, 1098, - 1112, 1125, 1138, 1151, 1266, 1280, 1294, 1307, - 1321, 1334, 1462, 1476, 1490, 1503, 1516, 1529, - 1658, 1672, 1685, 1698, 1711, 1867, 1880, 734, - 747, 903, 917, 930, 943, 956, 1085, 1099, - 1113, 1126, 1139, 1152, 1281, 1295, 1308, 1322, - 1335, 1463, 1477, 1491, 1504, 1517, 1530, 1659, - 1673, 1686, 1699, 1712, 1868, 1881, 759, 968, - 1164, 1346, 1347, 1360, 1542, 1724, 1893, 760, - 969, 1165, 1348, 1543, 1725, 1894, 748, 761, - 931, 944, 957, 970, 1127, 1140, 1153, 1166, - 1309, 1323, 1336, 1349, 1362, 1505, 1518, 1531, - 1544, 1687, 1700, 1713, 1726, 1869, 1882, 1895, - 1908, 773, 1361, 1556, 1738, 1907, 774, 1557, - 1739, 1921, 762, 775, 945, 958, 971, 1141, - 1154, 1167, 1350, 1363, 1519, 1532, 1545, 1558, - 1701, 1714, 1727, 1740, 1896, 1909, 1853, 1892, - 1906, 2062, 2075, 1854, 2050, 2063, 2076, 2089, - 1855, 2064, 2077, 1920, 2102, 2090, 1883, 1922, - 2078, 2091, 1752, 1934, 2103, 1753, 1935, 2104, - 1337, 1546, 1559, 1715, 1728, 1741, 1754, 1897, - 1910, 1923, 1936, 2079, 2092, 2105, 2049, 2088, - 2245, 2258, 2271, 2284, 2246, 2259, 2272, 2285, - 2051, 2065, 2260, 2273, 2116, 2117, 2286, 2118, - 2261, 2274, 2287, 2300, 1948, 2130, 2299, 1949, - 2131, 2313, 1533, 1742, 1755, 1911, 1924, 1937, - 1950, 2093, 2106, 2119, 2132, 2288, 2301, 735, - 748, 904, 917, 918, 930, 931, 943, 944, - 957, 1086, 1099, 1100, 1112, 1113, 1114, 1125, - 1126, 1127, 1139, 1140, 1153, 1281, 1282, 1294, - 1295, 1296, 1308, 1309, 1321, 1322, 1323, 1335, - 1336, 1464, 1477, 1478, 1490, 1491, 1492, 1503, - 1504, 1505, 1517, 1518, 1531, 1660, 1673, 1674, - 1686, 1687, 1699, 1700, 1713, 1869, 1882, 736, - 749, 905, 919, 932, 945, 958, 1087, 1101, - 1115, 1128, 1141, 1154, 1283, 1297, 1310, 1324, - 1337, 1465, 1479, 1493, 1506, 1519, 1532, 1661, - 1675, 1688, 1701, 1714, 1870, 1883, 724, 737, - 750, 763, 906, 920, 933, 946, 959, 1088, - 1102, 1116, 1129, 1142, 1155, 1270, 1284, 1298, - 1311, 1312, 1325, 1338, 1351, 1466, 1480, 1494, - 1507, 1520, 1533, 1662, 1676, 1689, 1702, 1715, - 1858, 1871, 1884, 1897, 762, 971, 1167, 1349, - 1350, 1545, 1727, 1896, 776, 972, 1168, 1364, - 1546, 1728, 1910, 751, 764, 934, 947, 960, - 973, 1130, 1143, 1156, 1169, 1326, 1339, 1352, - 1365, 1508, 1521, 1534, 1547, 1690, 1703, 1716, - 1729, 1885, 1898, 1363, 1559, 1741, 1923, 777, - 1560, 1742, 1911, 765, 778, 948, 961, 974, - 1144, 1157, 1170, 1340, 1353, 1366, 1522, 1535, - 1548, 1561, 1704, 1717, 1730, 1743, 1899, 1912, - 1856, 1895, 1909, 2065, 2078, 1857, 2066, 2079, - 1872, 2054, 2067, 2080, 2093, 2092, 1924, 1886, - 1925, 2081, 2094, 1755, 1937, 2106, 1756, 1938, - 2107, 1536, 1549, 1562, 1718, 1731, 1744, 1757, - 1900, 1913, 1926, 1939, 2095, 2108, 2052, 2091, - 2105, 2248, 2261, 2274, 2287, 2053, 2262, 2275, - 2068, 2250, 2263, 2276, 2289, 2119, 2288, 2120, - 2302, 2082, 2121, 2277, 2290, 1951, 2133, 2315, - 1952, 2134, 2303, 1732, 1745, 1758, 1914, 1927, - 1940, 1953, 2096, 2109, 2122, 2135, 2278, 2291, - 2304, 2317, 738, 751, 907, 920, 921, 933, - 934, 946, 947, 960, 1089, 1102, 1103, 1115, - 1116, 1117, 1128, 1129, 1130, 1142, 1143, 1156, - 1284, 1285, 1297, 1298, 1299, 1311, 1312, 1324, - 1325, 1326, 1338, 1339, 1467, 1480, 1481, 1493, - 1494, 1495, 1506, 1507, 1508, 1520, 1521, 1534, - 1663, 1676, 1677, 1689, 1690, 1702, 1703, 1716, - 1872, 1885, 739, 752, 908, 922, 935, 948, - 961, 1090, 1104, 1118, 1131, 1144, 1157, 1272, - 1286, 1300, 1313, 1327, 1340, 1468, 1482, 1496, - 1509, 1522, 1535, 1664, 1678, 1691, 1704, 1717, - 1873, 1886, 727, 740, 753, 766, 909, 923, - 936, 949, 962, 1091, 1105, 1119, 1132, 1145, - 1158, 1273, 1287, 1301, 1314, 1328, 1341, 1469, - 1483, 1497, 1510, 1523, 1536, 1665, 1679, 1692, - 1705, 1718, 1874, 1887, 765, 974, 1170, 1352, - 1353, 1548, 1730, 1899, 779, 975, 1171, 1354, - 1549, 1731, 1900, 741, 754, 767, 780, 937, - 950, 963, 976, 1133, 1146, 1159, 1172, 1315, - 1329, 1342, 1355, 1368, 1511, 1524, 1537, 1550, - 1693, 1706, 1719, 1732, 1888, 1901, 1366, 1367, - 1562, 1744, 1913, 1563, 1745, 1914, 768, 781, - 951, 964, 977, 1147, 1160, 1173, 1343, 1356, - 1369, 1525, 1538, 1551, 1564, 1707, 1720, 1733, - 1746, 1902, 1915, 1859, 1898, 1912, 2068, 2081, - 1860, 2069, 2082, 1861, 1875, 2057, 2070, 2083, - 2096, 1926, 2095, 1927, 2109, 1889, 1928, 2084, - 2097, 1758, 1940, 1759, 1941, 2110, 1539, 1552, - 1565, 1721, 1734, 1747, 1760, 1903, 1916, 1929, - 1942, 2098, 2111, 2055, 2094, 2108, 2264, 2277, - 2056, 2252, 2265, 2278, 2291, 2071, 2253, 2266, - 2279, 2292, 2122, 2123, 2305, 2085, 2124, 2280, - 2293, 1954, 2136, 1955, 2137, 2306, 1735, 1748, - 1761, 1917, 1930, 1943, 1956, 2099, 2112, 2125, - 2138, 2281, 2294, 2307, 2320, 741, 754, 923, - 936, 937, 949, 950, 963, 1105, 1118, 1119, - 1131, 1132, 1133, 1145, 1146, 1159, 1287, 1300, - 1301, 1314, 1315, 1327, 1328, 1329, 1341, 1342, - 1483, 1496, 1497, 1509, 1510, 1511, 1523, 1524, - 1537, 1679, 1692, 1693, 1705, 1706, 1719, 1875, - 1888, 755, 768, 951, 964, 977, 1147, 1160, - 1173, 1343, 1355, 1356, 1525, 1538, 1551, 1707, - 1720, 1733, 1889, 1902, 769, 782, 965, 978, - 1161, 1174, 1357, 1369, 1370, 1539, 1552, 1565, - 1721, 1734, 1747, 1903, 1916, 1901, 1915, 2071, - 2084, 1929, 2085, 2098, 1553, 1566, 1735, 1748, - 1761, 1917, 1930, 1943, 2099, 2112, 2097, 2111, - 2267, 2280, 2125, 2281, 2294, 1749, 1762, 1931, - 1944, 1957, 2113, 2126, 2139, 2295, 2308, 771, - 940, 953, 954, 966, 967, 1122, 1135, 1136, - 1148, 1149, 1150, 1162, 1163, 1317, 1318, 1330, - 1331, 1332, 1344, 1345, 1358, 1359, 1500, 1513, - 1514, 1526, 1527, 1528, 1540, 1541, 1554, 1696, - 1709, 1710, 1722, 1723, 1736, 1905, 1918, 772, - 941, 955, 968, 1123, 1137, 1151, 1164, 1319, - 1333, 1346, 1360, 1501, 1515, 1529, 1542, 1555, - 1697, 1711, 1724, 1737, 1750, 1906, 1919, 773, - 942, 956, 969, 1124, 1138, 1152, 1165, 1320, - 1334, 1347, 1361, 1502, 1516, 1530, 1543, 1556, - 1698, 1712, 1725, 1738, 1751, 1907, 1920, 1892, - 1932, 2101, 2114, 1893, 1933, 1946, 2102, 2115, - 1348, 1557, 1726, 1739, 1752, 1894, 1908, 1921, - 1934, 1947, 2103, 2116, 2088, 2128, 2297, 2310, - 2089, 2129, 2142, 2298, 2311, 1544, 1753, 1922, - 1935, 1948, 2090, 2104, 2117, 2130, 2143, 2299, - 2312, 774, 943, 956, 957, 969, 970, 1125, - 1138, 1139, 1151, 1152, 1153, 1164, 1165, 1166, - 1320, 1321, 1333, 1334, 1335, 1347, 1348, 1360, - 1361, 1362, 1503, 1516, 1517, 1529, 1530, 1531, - 1542, 1543, 1544, 1556, 1557, 1699, 1712, 1713, - 1725, 1726, 1738, 1739, 1752, 1908, 1921, 775, - 944, 958, 971, 1126, 1140, 1154, 1167, 1322, - 1336, 1349, 1363, 1504, 1518, 1532, 1545, 1558, - 1700, 1714, 1727, 1740, 1753, 1909, 1922, 763, - 776, 945, 959, 972, 1127, 1141, 1155, 1168, - 1309, 1323, 1337, 1350, 1351, 1364, 1505, 1519, - 1533, 1546, 1559, 1701, 1715, 1728, 1741, 1754, - 1897, 1910, 1923, 1936, 1895, 1934, 1935, 1948, - 2104, 2117, 1896, 1949, 2105, 2118, 1547, 1560, - 1729, 1742, 1755, 1911, 1924, 1937, 1950, 2093, - 2106, 2119, 2132, 2091, 2130, 2131, 2144, 2287, - 2300, 2313, 2326, 2092, 2145, 2301, 2314, 1743, - 1756, 1925, 1938, 1951, 2107, 2120, 2133, 2146, - 2289, 2302, 2315, 2328, 777, 946, 959, 960, - 972, 973, 1128, 1141, 1142, 1154, 1155, 1156, - 1167, 1168, 1169, 1323, 1324, 1336, 1337, 1338, - 1350, 1351, 1363, 1364, 1365, 1506, 1519, 1520, - 1532, 1533, 1534, 1545, 1546, 1547, 1559, 1560, - 1702, 1715, 1716, 1728, 1729, 1741, 1742, 1755, - 1911, 1924, 778, 947, 961, 974, 1129, 1143, - 1157, 1170, 1325, 1339, 1352, 1366, 1507, 1521, - 1535, 1548, 1561, 1703, 1717, 1730, 1743, 1756, - 1912, 1925, 766, 779, 948, 962, 975, 1130, - 1144, 1158, 1171, 1312, 1326, 1340, 1353, 1367, - 1508, 1522, 1536, 1549, 1562, 1704, 1718, 1731, - 1744, 1757, 1913, 1926, 1898, 1937, 1938, 1951, - 2107, 2120, 1899, 1939, 1952, 2108, 2121, 1354, - 1550, 1563, 1732, 1745, 1758, 1900, 1914, 1927, - 1940, 1953, 2096, 2109, 2122, 2135, 2094, 2133, - 2134, 2147, 2303, 2316, 2095, 2148, 2304, 2317, - 1746, 1759, 1928, 1941, 1954, 2110, 2123, 2136, - 2149, 2292, 2305, 2318, 2331, 780, 949, 962, - 963, 975, 976, 1131, 1144, 1145, 1157, 1158, - 1159, 1170, 1171, 1172, 1326, 1327, 1339, 1340, - 1341, 1353, 1354, 1366, 1367, 1368, 1509, 1522, - 1523, 1535, 1536, 1537, 1548, 1549, 1550, 1562, - 1563, 1705, 1718, 1719, 1731, 1732, 1744, 1745, - 1758, 1914, 1927, 781, 950, 964, 977, 1132, - 1146, 1160, 1173, 1314, 1328, 1342, 1355, 1369, - 1510, 1524, 1538, 1551, 1564, 1706, 1720, 1733, - 1746, 1759, 1915, 1928, 769, 782, 951, 965, - 978, 1133, 1147, 1161, 1174, 1315, 1329, 1343, - 1356, 1370, 1511, 1525, 1539, 1552, 1565, 1707, - 1721, 1734, 1747, 1760, 1916, 1929, 1901, 1940, - 1941, 1954, 2110, 2123, 1902, 1942, 1955, 2111, - 2124, 1357, 1553, 1566, 1735, 1748, 1761, 1903, - 1917, 1930, 1943, 1956, 2099, 2112, 2125, 2138, - 2097, 2136, 2137, 2150, 2306, 2319, 2098, 2151, - 2294, 2307, 2320, 2333, 1749, 1762, 1931, 1944, - 1957, 2113, 2126, 2139, 2152, 2295, 2308, 2321, - 2334, 783, 965, 978, 979, 1147, 1160, 1161, - 1173, 1174, 1175, 1329, 1342, 1343, 1356, 1357, - 1369, 1370, 1371, 1525, 1538, 1539, 1551, 1552, - 1553, 1565, 1566, 1721, 1734, 1735, 1747, 1748, - 1761, 1917, 1930, 1567, 1749, 1762, 1931, 1943, - 1944, 1957, 2113, 2126, 1763, 1945, 1958, 2127, - 2139, 2140, 2153, 2309, 2322, 1191, 1204, 1373, - 1374, 1386, 1387, 1400, 1568, 1569, 1570, 1582, - 1583, 1596, 1764, 1765, 1778, 1779, 1792, 1960, - 1961, 1974, 2156, 1192, 1205, 1375, 1388, 1401, - 1414, 1571, 1584, 1597, 1610, 1766, 1780, 1793, - 1962, 1975, 1988, 2157, 2170, 1180, 1193, 1206, - 1219, 1376, 1389, 1402, 1415, 1572, 1585, 1598, - 1611, 1767, 1768, 1781, 1794, 1807, 1963, 1976, - 1989, 2158, 2171, 2353, 1218, 1806, 2352, 1232, - 1428, 1624, 1820, 2002, 2184, 2366, 1207, 1220, - 1390, 1403, 1416, 1429, 1586, 1599, 1612, 1625, - 1795, 1808, 1964, 1977, 1990, 2003, 2159, 2172, - 2185, 2354, 1233, 1442, 1638, 1821, 2016, 2198, - 2367, 1221, 1234, 1404, 1417, 1430, 1443, 1600, - 1613, 1626, 1639, 1782, 1809, 1822, 1978, 1991, - 2004, 2017, 2160, 2173, 2186, 2199, 2355, 2368, - 2549, 2548, 2380, 2381, 2550, 2562, 1834, 2212, - 2394, 2563, 1796, 1835, 2005, 2018, 2174, 2187, - 2200, 2213, 2356, 2369, 2382, 2395, 2551, 2564, - 2577, 2576, 2030, 2408, 2590, 1992, 2031, 2201, - 2214, 2370, 2383, 2396, 2409, 2552, 2565, 2578, - 2591, 1194, 1207, 1376, 1377, 1389, 1390, 1402, - 1403, 1416, 1571, 1572, 1573, 1584, 1585, 1586, - 1598, 1599, 1612, 1767, 1768, 1780, 1781, 1782, - 1794, 1795, 1962, 1963, 1964, 1976, 1977, 1990, - 2158, 2159, 2172, 1195, 1208, 1378, 1391, 1404, - 1417, 1574, 1587, 1600, 1613, 1769, 1783, 1796, - 1965, 1978, 1991, 2160, 2173, 1183, 1196, 1209, - 1222, 1379, 1392, 1405, 1418, 1575, 1588, 1601, - 1614, 1770, 1771, 1784, 1797, 1810, 1966, 1979, - 1992, 2161, 2174, 2356, 1221, 1430, 1626, 1808, - 1809, 2004, 2186, 2355, 1235, 1431, 1627, 1823, - 2005, 2187, 2369, 1210, 1223, 1393, 1406, 1419, - 1432, 1589, 1602, 1615, 1628, 1798, 1811, 1967, - 1980, 1993, 2006, 2162, 2175, 2188, 2357, 1248, - 1444, 1640, 1822, 1836, 2018, 2200, 2382, 1236, - 1445, 1641, 1824, 2019, 2201, 2370, 1224, 1237, - 1407, 1420, 1433, 1446, 1603, 1616, 1629, 1642, - 1785, 1812, 1825, 1981, 1994, 2007, 2020, 2163, - 2176, 2189, 2202, 2358, 2371, 2354, 2368, 2551, - 2552, 2383, 2384, 2553, 2032, 2214, 2396, 2565, - 1837, 2215, 2397, 2566, 1799, 1838, 2008, 2021, - 2177, 2190, 2203, 2216, 2359, 2372, 2385, 2398, - 2554, 2567, 2580, 2550, 2564, 2578, 2579, 2228, - 2410, 2592, 2033, 2411, 2593, 1995, 2034, 2204, - 2217, 2373, 2386, 2399, 2412, 2555, 2568, 2581, - 2594, 1197, 1210, 1379, 1380, 1392, 1393, 1405, - 1406, 1419, 1574, 1575, 1576, 1587, 1588, 1589, - 1601, 1602, 1615, 1770, 1771, 1783, 1784, 1785, - 1797, 1798, 1965, 1966, 1967, 1979, 1980, 1993, - 2161, 2162, 2175, 1198, 1211, 1381, 1394, 1407, - 1420, 1577, 1590, 1603, 1616, 1772, 1786, 1799, - 1968, 1981, 1994, 2163, 2176, 1186, 1199, 1212, - 1225, 1382, 1395, 1408, 1421, 1578, 1591, 1604, - 1617, 1773, 1774, 1787, 1800, 1813, 1969, 1982, - 1995, 2164, 2177, 2359, 1224, 1433, 1629, 1811, - 1812, 2007, 2189, 2358, 1238, 1434, 1630, 1826, - 2008, 2190, 2372, 1213, 1226, 1396, 1409, 1422, - 1435, 1592, 1605, 1618, 1631, 1788, 1801, 1814, - 1970, 1983, 1996, 2009, 2165, 2178, 2191, 2360, - 1251, 1447, 1643, 1825, 1839, 2021, 2203, 2385, - 1239, 1448, 1644, 1827, 2022, 2204, 2373, 1227, - 1240, 1410, 1423, 1436, 1449, 1606, 1619, 1632, - 1645, 1802, 1815, 1828, 1984, 1997, 2010, 2023, - 2166, 2179, 2192, 2205, 2361, 2374, 2357, 2371, - 2554, 2555, 2386, 2387, 2556, 2035, 2217, 2399, - 2568, 1840, 2218, 2400, 2569, 1841, 1998, 2011, - 2024, 2180, 2193, 2206, 2219, 2362, 2375, 2388, - 2401, 2557, 2570, 2583, 2553, 2567, 2581, 2582, - 2231, 2413, 2595, 2036, 2414, 2596, 2037, 2194, - 2207, 2220, 2376, 2389, 2402, 2415, 2558, 2571, - 2584, 2597, 1200, 1213, 1382, 1383, 1395, 1396, - 1408, 1409, 1422, 1577, 1578, 1579, 1590, 1591, - 1592, 1604, 1605, 1618, 1773, 1774, 1786, 1787, - 1788, 1800, 1801, 1968, 1969, 1970, 1982, 1983, - 1996, 2164, 2165, 2178, 1188, 1201, 1214, 1227, - 1384, 1397, 1410, 1423, 1580, 1593, 1606, 1619, - 1775, 1789, 1802, 1971, 1984, 1997, 2166, 2179, - 2361, 1189, 1202, 1215, 1228, 1385, 1398, 1411, - 1424, 1581, 1594, 1607, 1620, 1776, 1777, 1790, - 1803, 1816, 1972, 1985, 1998, 2167, 2180, 2362, - 1436, 1632, 1814, 1815, 2010, 2192, 1241, 1437, - 1633, 1829, 2011, 2193, 2375, 1216, 1229, 1399, - 1412, 1425, 1438, 1595, 1608, 1621, 1634, 1791, - 1804, 1817, 1830, 1973, 1986, 1999, 2012, 2168, - 2181, 2194, 2363, 1450, 1646, 1828, 2024, 2206, - 1242, 1451, 1647, 1843, 2025, 2207, 2376, 2389, - 1230, 1243, 1413, 1426, 1439, 1452, 1609, 1622, - 1635, 1648, 1805, 1818, 1831, 1844, 1987, 2000, - 2013, 2026, 2169, 2182, 2195, 2208, 2364, 2377, - 2360, 2374, 2557, 2558, 2388, 2390, 2559, 1842, - 2220, 2402, 2571, 2221, 2403, 2572, 2001, 2014, - 2027, 2040, 2183, 2196, 2209, 2222, 2365, 2378, - 2391, 2404, 2560, 2573, 2556, 2570, 2584, 2585, - 2586, 2038, 2416, 2598, 2039, 2235, 2417, 2599, - 2197, 2210, 2223, 2236, 2379, 2392, 2405, 2418, - 2561, 2574, 2587, 2600, 1203, 1216, 1385, 1398, - 1399, 1411, 1412, 1425, 1580, 1581, 1593, 1594, - 1595, 1607, 1608, 1621, 1776, 1777, 1789, 1790, - 1791, 1803, 1804, 1971, 1972, 1973, 1985, 1986, - 1999, 2167, 2168, 2181, 1217, 1230, 1413, 1426, - 1439, 1609, 1622, 1635, 1805, 1817, 1818, 1987, - 2000, 2013, 2169, 2182, 2195, 2364, 1231, 1244, - 1427, 1440, 1453, 1623, 1636, 1649, 1819, 1831, - 1832, 2001, 2014, 2027, 2183, 2196, 2209, 2365, - 2378, 2363, 2377, 2391, 2560, 1845, 2015, 2028, - 2197, 2210, 2223, 2379, 2392, 2405, 2561, 2574, - 2559, 2573, 2587, 2041, 2211, 2224, 2393, 2406, - 2419, 2575, 2588, 2601, 1233, 1246, 1402, 1415, - 1416, 1428, 1429, 1442, 1584, 1597, 1598, 1610, - 1611, 1612, 1624, 1625, 1638, 1779, 1780, 1792, - 1793, 1794, 1806, 1807, 1820, 1821, 1834, 1962, - 1975, 1976, 1988, 1989, 1990, 2002, 2003, 2016, - 2158, 2171, 2172, 2184, 2185, 2198, 2367, 2380, - 1234, 1247, 1403, 1417, 1430, 1443, 1456, 1585, - 1599, 1613, 1626, 1639, 1652, 1767, 1781, 1795, - 1808, 1822, 1835, 1963, 1977, 1991, 2004, 2017, - 2030, 2159, 2173, 2186, 2199, 2212, 2368, 2381, - 1222, 1235, 1248, 1261, 1404, 1418, 1431, 1444, - 1457, 1586, 1600, 1614, 1627, 1640, 1653, 1768, - 1782, 1796, 1809, 1810, 1823, 1836, 1849, 1964, - 1978, 1992, 2005, 2018, 2031, 2160, 2174, 2187, - 2200, 2213, 2356, 2369, 2382, 2395, 1260, 1848, - 2394, 1274, 1470, 1666, 1862, 2044, 2226, 2408, - 1249, 1262, 1432, 1445, 1458, 1471, 1628, 1641, - 1654, 1667, 1837, 1850, 2006, 2019, 2032, 2045, - 2188, 2201, 2214, 2227, 2383, 2396, 1275, 1484, - 1680, 1863, 2058, 2240, 2409, 1250, 1263, 1276, - 1289, 1446, 1459, 1472, 1485, 1642, 1655, 1668, - 1681, 1824, 1851, 1864, 2020, 2033, 2046, 2059, - 2202, 2215, 2228, 2241, 2397, 2410, 2354, 2563, - 2576, 2355, 2551, 2564, 2577, 2590, 2370, 2552, - 2565, 2578, 2591, 2422, 2384, 2423, 2579, 2592, - 2604, 1876, 2254, 2436, 2605, 1838, 1877, 2034, - 2047, 2060, 2073, 2216, 2229, 2242, 2255, 2398, - 2411, 2424, 2437, 2580, 2593, 2606, 2619, 2550, - 2566, 2618, 2072, 2450, 2632, 2230, 2243, 2256, - 2269, 2412, 2425, 2438, 2451, 2594, 2607, 2620, - 2633, 1236, 1249, 1405, 1418, 1419, 1431, 1432, - 1444, 1445, 1458, 1587, 1600, 1601, 1613, 1614, - 1615, 1626, 1627, 1628, 1640, 1641, 1654, 1782, - 1783, 1795, 1796, 1797, 1809, 1810, 1822, 1823, - 1824, 1836, 1837, 1965, 1978, 1979, 1991, 1992, - 1993, 2004, 2005, 2006, 2018, 2019, 2032, 2161, - 2174, 2175, 2187, 2188, 2200, 2201, 2214, 2370, - 2383, 1237, 1250, 1406, 1420, 1433, 1446, 1459, - 1588, 1602, 1616, 1629, 1642, 1655, 1770, 1784, - 1798, 1811, 1825, 1838, 1966, 1980, 1994, 2007, - 2020, 2033, 2162, 2176, 2189, 2202, 2215, 2371, - 2384, 1225, 1238, 1251, 1264, 1407, 1421, 1434, - 1447, 1460, 1589, 1603, 1617, 1630, 1643, 1656, - 1771, 1785, 1799, 1812, 1813, 1826, 1839, 1852, - 1967, 1981, 1995, 2008, 2021, 2034, 2163, 2177, - 2190, 2203, 2216, 2359, 2372, 2385, 2398, 1263, - 1472, 1668, 1850, 1851, 1864, 2046, 2228, 2397, - 1277, 1473, 1669, 1865, 2047, 2229, 2411, 1252, - 1265, 1435, 1448, 1461, 1474, 1631, 1644, 1657, - 1670, 1840, 1853, 2009, 2022, 2035, 2048, 2191, - 2204, 2217, 2230, 2386, 2399, 1290, 1486, 1682, - 1878, 2060, 2242, 2424, 1278, 1487, 1683, 1866, - 2061, 2243, 2412, 1253, 1266, 1279, 1292, 1449, - 1462, 1475, 1488, 1645, 1658, 1671, 1684, 1827, - 1854, 1867, 2023, 2036, 2049, 2062, 2205, 2218, - 2231, 2244, 2400, 2413, 2357, 2396, 2410, 2566, - 2579, 2358, 2554, 2567, 2580, 2593, 2373, 2555, - 2568, 2581, 2594, 2606, 2425, 2387, 2426, 2582, - 2595, 2074, 2256, 2438, 2607, 1879, 2257, 2439, - 2608, 1841, 1880, 2037, 2050, 2063, 2076, 2219, - 2232, 2245, 2258, 2401, 2414, 2427, 2440, 2583, - 2596, 2609, 2622, 2553, 2592, 2569, 2620, 2621, - 2270, 2452, 2634, 2075, 2453, 2635, 2233, 2246, - 2259, 2272, 2415, 2428, 2441, 2454, 2597, 2610, - 2623, 2636, 1239, 1252, 1408, 1421, 1422, 1434, - 1435, 1447, 1448, 1461, 1590, 1603, 1604, 1616, - 1617, 1618, 1629, 1630, 1631, 1643, 1644, 1657, - 1785, 1786, 1798, 1799, 1800, 1812, 1813, 1825, - 1826, 1827, 1839, 1840, 1968, 1981, 1982, 1994, - 1995, 1996, 2007, 2008, 2009, 2021, 2022, 2035, - 2164, 2177, 2178, 2190, 2191, 2203, 2204, 2217, - 2373, 2386, 1240, 1253, 1409, 1423, 1436, 1449, - 1462, 1591, 1605, 1619, 1632, 1645, 1658, 1773, - 1787, 1801, 1814, 1828, 1841, 1969, 1983, 1997, - 2010, 2023, 2036, 2165, 2179, 2192, 2205, 2218, - 2374, 2387, 1228, 1241, 1254, 1267, 1410, 1424, - 1437, 1450, 1463, 1592, 1606, 1620, 1633, 1646, - 1659, 1774, 1788, 1802, 1815, 1816, 1829, 1842, - 1855, 1970, 1984, 1998, 2011, 2024, 2037, 2166, - 2180, 2193, 2206, 2219, 2362, 2375, 2388, 2401, - 1266, 1475, 1671, 1853, 1854, 1867, 2049, 2231, - 2400, 1280, 1476, 1672, 1868, 2050, 2232, 2414, - 1255, 1268, 1438, 1451, 1464, 1477, 1634, 1647, - 1660, 1673, 1830, 1843, 1856, 2012, 2025, 2038, - 2051, 2194, 2207, 2220, 2233, 2376, 2389, 2402, - 1293, 1489, 1685, 1881, 2063, 2245, 2427, 1281, - 1490, 1686, 1869, 2064, 2246, 2415, 1256, 1269, - 1282, 1295, 1452, 1465, 1478, 1491, 1648, 1661, - 1674, 1687, 1844, 1857, 1870, 2026, 2039, 2052, - 2065, 2208, 2221, 2234, 2247, 2390, 2403, 2416, - 2360, 2399, 2413, 2569, 2582, 2361, 2557, 2570, - 2583, 2596, 2558, 2571, 2584, 2597, 2609, 2428, - 2429, 2585, 2598, 2077, 2259, 2441, 2610, 1882, - 2260, 2442, 2611, 1883, 2040, 2053, 2066, 2079, - 2222, 2235, 2248, 2261, 2404, 2417, 2430, 2443, - 2586, 2599, 2612, 2625, 2556, 2595, 2572, 2623, - 2624, 2273, 2455, 2637, 2078, 2456, 2638, 2236, - 2249, 2262, 2275, 2418, 2431, 2444, 2457, 2600, - 2613, 2626, 2639, 1242, 1255, 1411, 1424, 1425, - 1437, 1438, 1450, 1451, 1464, 1593, 1606, 1607, - 1619, 1620, 1621, 1632, 1633, 1634, 1646, 1647, - 1660, 1788, 1789, 1801, 1802, 1803, 1815, 1816, - 1828, 1829, 1830, 1842, 1843, 1971, 1984, 1985, - 1997, 1998, 1999, 2010, 2011, 2012, 2024, 2025, - 2038, 2167, 2180, 2181, 2193, 2194, 2206, 2207, - 2220, 2376, 2389, 1243, 1256, 1269, 1412, 1426, - 1439, 1452, 1465, 1594, 1608, 1622, 1635, 1648, - 1661, 1776, 1790, 1804, 1817, 1831, 1844, 1972, - 1986, 2000, 2013, 2026, 2039, 2168, 2182, 2195, - 2208, 2221, 2377, 2390, 1231, 1244, 1257, 1270, - 1413, 1427, 1440, 1453, 1466, 1595, 1609, 1623, - 1636, 1649, 1662, 1777, 1791, 1805, 1818, 1819, - 1832, 1845, 1858, 1973, 1987, 2001, 2014, 2027, - 2040, 2169, 2183, 2196, 2209, 2222, 2365, 2378, - 2391, 2404, 1478, 1674, 1856, 1857, 2052, 2234, - 2403, 1283, 1479, 1675, 1871, 2053, 2235, 2417, - 1258, 1271, 1441, 1454, 1467, 1480, 1637, 1650, - 1663, 1676, 1833, 1846, 1859, 1872, 2015, 2028, - 2041, 2054, 2197, 2210, 2223, 2236, 2379, 2392, - 2405, 1492, 1688, 1870, 2066, 2248, 1284, 1493, - 1689, 1885, 2067, 2249, 2418, 2431, 1272, 1285, - 1455, 1468, 1481, 1494, 1651, 1664, 1677, 1690, - 1860, 1873, 2029, 2042, 2055, 2068, 2211, 2224, - 2237, 2250, 2393, 2406, 2419, 2363, 2402, 2416, - 2572, 2585, 2364, 2560, 2573, 2586, 2599, 2561, - 2574, 2587, 2430, 2600, 2432, 2588, 2601, 1884, - 2262, 2444, 2613, 2081, 2263, 2445, 2614, 1847, - 1886, 2056, 2069, 2225, 2238, 2251, 2264, 2407, - 2420, 2433, 2446, 2602, 2615, 2559, 2598, 2612, - 2575, 2626, 2627, 2589, 2628, 2080, 2458, 2640, - 2277, 2459, 2641, 2043, 2082, 2252, 2265, 2421, - 2434, 2447, 2460, 2603, 2616, 2629, 2642, 1245, - 1258, 1427, 1440, 1441, 1453, 1454, 1467, 1609, - 1622, 1623, 1635, 1636, 1637, 1649, 1650, 1663, - 1791, 1804, 1805, 1818, 1819, 1831, 1832, 1833, - 1845, 1846, 1987, 2000, 2001, 2013, 2014, 2015, - 2027, 2028, 2041, 2183, 2196, 2197, 2209, 2210, - 2223, 2379, 2392, 1259, 1272, 1455, 1468, 1481, - 1651, 1664, 1677, 1847, 1859, 1860, 2029, 2042, - 2055, 2211, 2224, 2237, 2393, 2406, 1273, 1286, - 1469, 1482, 1495, 1665, 1678, 1691, 1861, 1873, - 1874, 2043, 2056, 2069, 2225, 2238, 2251, 2407, - 2420, 2405, 2419, 2575, 2588, 2433, 2589, 2602, - 1887, 2057, 2070, 2239, 2252, 2265, 2421, 2434, - 2447, 2603, 2616, 2601, 2615, 2629, 2083, 2253, - 2266, 2435, 2448, 2461, 2617, 2630, 2643, 1275, - 1288, 1444, 1457, 1458, 1470, 1471, 1484, 1626, - 1639, 1640, 1652, 1653, 1654, 1666, 1667, 1680, - 1821, 1822, 1834, 1835, 1836, 1848, 1849, 1862, - 1863, 1876, 2004, 2017, 2018, 2030, 2031, 2032, - 2044, 2045, 2058, 2200, 2213, 2214, 2226, 2227, - 2240, 2409, 2422, 1276, 1289, 1445, 1459, 1472, - 1485, 1498, 1627, 1641, 1655, 1668, 1681, 1694, - 1809, 1823, 1837, 1850, 1864, 1877, 2005, 2019, - 2033, 2046, 2059, 2072, 2201, 2215, 2228, 2241, - 2254, 2410, 2423, 1264, 1277, 1290, 1303, 1446, - 1460, 1473, 1486, 1499, 1628, 1642, 1656, 1669, - 1682, 1695, 1824, 1838, 1851, 1852, 1865, 1878, - 1891, 2006, 2020, 2034, 2047, 2060, 2073, 2202, - 2216, 2229, 2242, 2255, 2411, 2424, 1302, 1890, - 2436, 1512, 1708, 2086, 2268, 2437, 1291, 1304, - 1474, 1487, 1500, 1513, 1670, 1683, 1696, 1709, - 1879, 1892, 2048, 2061, 2074, 2087, 2230, 2243, - 2256, 2269, 2425, 2438, 1316, 1904, 2450, 1317, - 1526, 1722, 1905, 2100, 2282, 2451, 1292, 1305, - 1318, 1488, 1501, 1514, 1527, 1684, 1697, 1710, - 1723, 1866, 1893, 1906, 1919, 2062, 2075, 2088, - 2101, 2244, 2257, 2270, 2283, 2439, 2452, 2396, - 2605, 2618, 2397, 2593, 2606, 2619, 2632, 2398, - 2412, 2607, 2620, 2464, 2633, 2426, 2465, 2621, - 2634, 2646, 1918, 2296, 2478, 2647, 1880, 2076, - 2089, 2102, 2115, 2258, 2271, 2284, 2297, 2440, - 2453, 2466, 2479, 2622, 2635, 2648, 2661, 2592, - 2594, 2608, 2660, 2114, 2492, 2674, 2272, 2285, - 2298, 2311, 2454, 2467, 2480, 2493, 2636, 2649, - 2662, 2675, 1278, 1291, 1447, 1460, 1461, 1473, - 1474, 1486, 1487, 1500, 1629, 1642, 1643, 1655, - 1656, 1657, 1668, 1669, 1670, 1682, 1683, 1696, - 1824, 1825, 1837, 1838, 1839, 1851, 1852, 1864, - 1865, 1866, 1878, 1879, 2007, 2020, 2021, 2033, - 2034, 2035, 2046, 2047, 2048, 2060, 2061, 2074, - 2203, 2216, 2217, 2229, 2230, 2242, 2243, 2256, - 2412, 2425, 1279, 1292, 1448, 1462, 1475, 1488, - 1501, 1630, 1644, 1658, 1671, 1684, 1697, 1812, - 1826, 1840, 1853, 1867, 1880, 2008, 2022, 2036, - 2049, 2062, 2075, 2204, 2218, 2231, 2244, 2257, - 2413, 2426, 1267, 1280, 1293, 1306, 1449, 1463, - 1476, 1489, 1502, 1631, 1645, 1659, 1672, 1685, - 1698, 1827, 1841, 1854, 1855, 1868, 1881, 1894, - 2009, 2023, 2037, 2050, 2063, 2076, 2205, 2219, - 2232, 2245, 2258, 2414, 2427, 1305, 1514, 1710, - 1892, 1893, 1906, 2088, 2270, 2439, 1515, 1711, - 2089, 2271, 2440, 1294, 1307, 1477, 1490, 1503, - 1516, 1673, 1686, 1699, 1712, 1882, 1895, 2051, - 2064, 2077, 2090, 2233, 2246, 2259, 2272, 2428, - 2441, 1319, 1332, 1528, 1724, 1907, 1920, 2102, - 2284, 2453, 2466, 1320, 1529, 1725, 1908, 2103, - 2285, 2454, 1295, 1308, 1321, 1491, 1504, 1517, - 1530, 1687, 1700, 1713, 1726, 1869, 1896, 1909, - 1922, 2065, 2078, 2091, 2104, 2247, 2260, 2273, - 2286, 2442, 2455, 2399, 2438, 2452, 2608, 2621, - 2400, 2596, 2609, 2622, 2635, 2401, 2415, 2610, - 2623, 2467, 2636, 2429, 2468, 2624, 2637, 2116, - 2298, 2480, 2649, 1921, 2299, 2481, 2650, 1883, - 2079, 2092, 2105, 2118, 2261, 2274, 2287, 2300, - 2443, 2456, 2469, 2482, 2625, 2638, 2651, 2664, - 2595, 2634, 2648, 2597, 2611, 2662, 2663, 2312, - 2494, 2676, 2117, 2495, 2677, 2275, 2288, 2301, - 2314, 2457, 2470, 2483, 2496, 2639, 2652, 2665, - 2678, 1281, 1294, 1450, 1463, 1464, 1476, 1477, - 1489, 1490, 1503, 1632, 1645, 1646, 1658, 1659, - 1660, 1671, 1672, 1673, 1685, 1686, 1699, 1827, - 1828, 1840, 1841, 1842, 1854, 1855, 1867, 1868, - 1869, 1881, 1882, 2010, 2023, 2024, 2036, 2037, - 2038, 2049, 2050, 2051, 2063, 2064, 2077, 2206, - 2219, 2220, 2232, 2233, 2245, 2246, 2259, 2415, - 2428, 1282, 1295, 1451, 1465, 1478, 1491, 1504, - 1633, 1647, 1661, 1674, 1687, 1700, 1815, 1829, - 1843, 1856, 1870, 1883, 2011, 2025, 2039, 2052, - 2065, 2078, 2207, 2221, 2234, 2247, 2260, 2416, - 2429, 1270, 1283, 1296, 1452, 1466, 1479, 1492, - 1505, 1634, 1648, 1662, 1675, 1688, 1701, 1816, - 1830, 1844, 1857, 1858, 1871, 1884, 2012, 2026, - 2040, 2053, 2066, 2079, 2208, 2222, 2235, 2248, - 2261, 2404, 2417, 2430, 1308, 1517, 1713, 1895, - 1896, 1909, 2091, 2273, 2442, 1309, 1518, 1714, - 1897, 2092, 2274, 2443, 1297, 1310, 1480, 1493, - 1506, 1519, 1676, 1689, 1702, 1715, 1872, 1885, - 1898, 1911, 2054, 2067, 2080, 2093, 2236, 2249, - 2262, 2275, 2418, 2431, 2444, 2457, 1322, 1335, - 1531, 1727, 1910, 1923, 2105, 2287, 2456, 2469, - 1323, 1532, 1728, 2106, 2288, 1311, 1324, 1494, - 1507, 1520, 1533, 1690, 1703, 1716, 1729, 1899, - 1912, 2068, 2081, 2094, 2107, 2250, 2263, 2276, - 2289, 2432, 2445, 2458, 2402, 2441, 2455, 2611, - 2624, 2403, 2599, 2612, 2625, 2638, 2600, 2613, - 2626, 2470, 2639, 2471, 2614, 2627, 2640, 2301, - 2483, 2652, 1924, 2302, 2484, 2653, 1886, 1925, - 2095, 2108, 2264, 2277, 2290, 2303, 2446, 2459, - 2472, 2485, 2641, 2654, 2598, 2637, 2651, 2665, - 2666, 2628, 2667, 2119, 2497, 2679, 2120, 2498, - 2680, 2082, 2121, 2291, 2304, 2460, 2473, 2486, - 2499, 2642, 2655, 2668, 2681, 1284, 1297, 1453, - 1466, 1467, 1479, 1480, 1492, 1493, 1506, 1635, - 1648, 1649, 1661, 1662, 1663, 1674, 1675, 1676, - 1688, 1689, 1702, 1830, 1831, 1843, 1844, 1845, - 1857, 1858, 1870, 1871, 1872, 1884, 1885, 2013, - 2026, 2027, 2039, 2040, 2041, 2052, 2053, 2054, - 2066, 2067, 2080, 2209, 2222, 2223, 2235, 2236, - 2248, 2249, 2262, 2418, 2431, 1285, 1298, 1454, - 1468, 1481, 1494, 1507, 1636, 1650, 1664, 1677, - 1690, 1703, 1818, 1832, 1846, 1859, 1873, 1886, - 2014, 2028, 2042, 2055, 2068, 2081, 2210, 2224, - 2237, 2250, 2263, 2419, 2432, 1286, 1299, 1455, - 1469, 1482, 1495, 1508, 1637, 1651, 1665, 1678, - 1691, 1704, 1833, 1847, 1860, 1874, 1887, 2015, - 2029, 2043, 2056, 2069, 2082, 2211, 2225, 2238, - 2251, 2264, 2420, 2433, 1311, 1520, 1716, 1898, - 1899, 2094, 2276, 2445, 1312, 1325, 1521, 1717, - 1900, 1913, 2095, 2277, 2446, 2459, 1287, 1300, - 1313, 1326, 1483, 1496, 1509, 1522, 1679, 1692, - 1705, 1718, 1861, 1875, 1888, 1901, 1914, 2057, - 2070, 2083, 2096, 2239, 2252, 2265, 2278, 2434, - 2447, 1338, 1534, 1730, 1912, 2108, 2290, 1339, - 1535, 1731, 1927, 2109, 2291, 2460, 1314, 1327, - 1497, 1510, 1523, 1536, 1693, 1706, 1719, 1732, - 1902, 1915, 1928, 2071, 2084, 2097, 2110, 2253, - 2266, 2279, 2292, 2448, 2461, 2405, 2444, 2458, - 2614, 2627, 2406, 2615, 2628, 2407, 2421, 2603, - 2616, 2629, 2642, 2472, 2641, 2473, 2655, 2435, - 2474, 2630, 2643, 1926, 2122, 2304, 2486, 2668, - 2123, 2305, 2487, 2656, 1889, 2098, 2111, 2124, - 2267, 2280, 2293, 2306, 2449, 2462, 2475, 2488, - 2644, 2657, 2601, 2640, 2654, 2602, 2617, 2669, - 2631, 2670, 2318, 2500, 2682, 2319, 2501, 2683, - 2085, 2294, 2307, 2320, 2463, 2476, 2489, 2502, - 2645, 2658, 2671, 2684, 1287, 1300, 1469, 1482, - 1483, 1495, 1496, 1509, 1651, 1664, 1665, 1677, - 1678, 1679, 1691, 1692, 1705, 1833, 1846, 1847, - 1860, 1861, 1873, 1874, 1875, 1887, 1888, 2029, - 2042, 2043, 2055, 2056, 2057, 2069, 2070, 2083, - 2225, 2238, 2239, 2251, 2252, 2265, 2421, 2434, - 1301, 1314, 1497, 1510, 1523, 1693, 1706, 1719, - 1889, 1901, 1902, 2071, 2084, 2097, 2253, 2266, - 2279, 2435, 2448, 1315, 1328, 1341, 1511, 1524, - 1537, 1707, 1720, 1733, 1903, 1915, 1916, 2085, - 2098, 2111, 2267, 2280, 2293, 2449, 2462, 2447, - 2461, 2617, 2630, 2475, 2631, 2644, 1929, 2099, - 2112, 2125, 2281, 2294, 2307, 2463, 2476, 2489, - 2645, 2658, 2671, 2643, 2657, 2295, 2308, 2321, - 2477, 2490, 2503, 2659, 2672, 2685, 1317, 1330, - 1486, 1499, 1500, 1512, 1513, 1526, 1668, 1681, - 1682, 1694, 1695, 1696, 1708, 1709, 1722, 1863, - 1864, 1876, 1877, 1878, 1890, 1891, 1904, 1905, - 1918, 2046, 2059, 2060, 2072, 2073, 2074, 2086, - 2087, 2100, 2242, 2255, 2256, 2268, 2269, 2282, - 2451, 2464, 1318, 1331, 1487, 1501, 1514, 1527, - 1540, 1669, 1683, 1697, 1710, 1723, 1736, 1851, - 1865, 1879, 1892, 1906, 1919, 2047, 2061, 2075, - 2088, 2101, 2114, 2243, 2257, 2270, 2283, 2296, - 2452, 2465, 1306, 1319, 1332, 1345, 1488, 1502, - 1515, 1528, 1541, 1670, 1684, 1698, 1711, 1724, - 1737, 1866, 1880, 1893, 1894, 1907, 1920, 1933, - 2048, 2062, 2076, 2089, 2102, 2115, 2244, 2258, - 2271, 2284, 2297, 2453, 2466, 1344, 1932, 2478, - 1554, 1750, 2128, 2310, 2479, 1333, 1346, 1516, - 1529, 1542, 1555, 1712, 1725, 1738, 1751, 1921, - 1934, 2090, 2103, 2116, 2129, 2272, 2285, 2298, - 2311, 2467, 2480, 1358, 1946, 2492, 1359, 1947, - 2142, 2324, 2493, 1347, 1360, 1530, 1543, 1556, - 1726, 1739, 1752, 1908, 1922, 1935, 1948, 2104, - 2117, 2130, 2143, 2286, 2299, 2312, 2325, 2481, - 2494, 2438, 2647, 2660, 2439, 2635, 2648, 2661, - 2674, 2440, 2454, 2649, 2662, 2506, 2675, 2468, - 2507, 2663, 2676, 2688, 2338, 2520, 2689, 2118, - 2131, 2144, 2300, 2313, 2326, 2339, 2482, 2495, - 2508, 2521, 2664, 2677, 2690, 2634, 2636, 2650, - 2702, 2703, 2534, 2716, 2327, 2340, 2496, 2509, - 2522, 2535, 2678, 2691, 2704, 2717, 1320, 1333, - 1489, 1502, 1503, 1515, 1516, 1528, 1529, 1542, - 1671, 1684, 1685, 1697, 1698, 1699, 1710, 1711, - 1712, 1724, 1725, 1738, 1866, 1867, 1879, 1880, - 1881, 1893, 1894, 1906, 1907, 1908, 1920, 1921, - 2049, 2062, 2063, 2075, 2076, 2077, 2088, 2089, - 2090, 2102, 2103, 2116, 2245, 2258, 2259, 2271, - 2272, 2284, 2285, 2298, 2454, 2467, 1321, 1334, - 1490, 1504, 1517, 1530, 1543, 1672, 1686, 1700, - 1713, 1726, 1739, 1854, 1868, 1882, 1895, 1909, - 1922, 2050, 2064, 2078, 2091, 2104, 2117, 2246, - 2260, 2273, 2286, 2299, 2455, 2468, 1322, 1335, - 1491, 1505, 1518, 1531, 1544, 1673, 1687, 1701, - 1714, 1727, 1740, 1869, 1883, 1896, 1910, 1923, - 2051, 2065, 2079, 2092, 2105, 2118, 2247, 2261, - 2274, 2287, 2300, 2456, 2469, 1347, 1556, 1752, - 1934, 1935, 1948, 2130, 2312, 2481, 1348, 1557, - 1753, 1936, 2131, 2313, 2482, 1336, 1349, 1519, - 1532, 1545, 1558, 1715, 1728, 1741, 1754, 1897, - 1911, 1924, 1937, 1950, 2093, 2106, 2119, 2132, - 2275, 2288, 2301, 2314, 2457, 2470, 2483, 2496, - 1361, 1949, 2144, 2326, 2495, 1362, 2145, 2327, - 2509, 1350, 1363, 1533, 1546, 1559, 1729, 1742, - 1755, 1938, 1951, 2107, 2120, 2133, 2146, 2289, - 2302, 2315, 2328, 2484, 2497, 2441, 2480, 2494, - 2650, 2663, 2442, 2638, 2651, 2664, 2677, 2443, - 2652, 2665, 2508, 2678, 2471, 2510, 2666, 2679, - 2340, 2522, 2691, 2341, 2523, 2692, 1925, 2134, - 2147, 2303, 2316, 2329, 2342, 2485, 2498, 2511, - 2524, 2680, 2693, 2637, 2676, 2690, 2639, 2653, - 2704, 2705, 2667, 2706, 2536, 2718, 2537, 2719, - 2121, 2330, 2343, 2499, 2512, 2525, 2538, 2681, - 2694, 2707, 2720, 1323, 1336, 1492, 1505, 1506, - 1518, 1519, 1531, 1532, 1545, 1674, 1687, 1688, - 1700, 1701, 1702, 1713, 1714, 1715, 1727, 1728, - 1741, 1869, 1870, 1882, 1883, 1884, 1896, 1897, - 1909, 1910, 1911, 1923, 1924, 2052, 2065, 2066, - 2078, 2079, 2080, 2091, 2092, 2093, 2105, 2106, - 2119, 2248, 2261, 2262, 2274, 2275, 2287, 2288, - 2301, 2457, 2470, 1324, 1337, 1493, 1507, 1520, - 1533, 1546, 1675, 1689, 1703, 1716, 1729, 1742, - 1871, 1885, 1898, 1912, 1925, 2053, 2067, 2081, - 2094, 2107, 2120, 2249, 2263, 2276, 2289, 2302, - 2458, 2471, 1312, 1325, 1338, 1351, 1494, 1508, - 1521, 1534, 1547, 1676, 1690, 1704, 1717, 1730, - 1743, 1858, 1872, 1886, 1899, 1900, 1913, 1926, - 1939, 2054, 2068, 2082, 2095, 2108, 2121, 2250, - 2264, 2277, 2290, 2303, 2446, 2459, 2472, 2485, - 1350, 1559, 1755, 1937, 1938, 2133, 2315, 2484, - 1364, 1560, 1756, 1952, 2134, 2316, 2498, 1326, - 1339, 1352, 1365, 1522, 1535, 1548, 1561, 1718, - 1731, 1744, 1757, 1914, 1927, 1940, 1953, 2096, - 2109, 2122, 2135, 2278, 2291, 2304, 2317, 2473, - 2486, 1951, 2147, 2329, 2148, 2330, 2499, 1353, - 1366, 1536, 1549, 1562, 1732, 1745, 1758, 1928, - 1941, 1954, 2110, 2123, 2136, 2149, 2292, 2305, - 2318, 2331, 2487, 2500, 2444, 2483, 2497, 2653, - 2666, 2445, 2654, 2667, 2460, 2642, 2655, 2668, - 2681, 2511, 2680, 2512, 2694, 2474, 2513, 2669, - 2682, 2343, 2525, 2707, 2344, 2526, 2695, 2124, - 2137, 2150, 2306, 2319, 2332, 2345, 2488, 2501, - 2514, 2527, 2683, 2696, 2640, 2679, 2693, 2641, - 2656, 2708, 2670, 2709, 2539, 2721, 2540, 2722, - 2320, 2333, 2346, 2502, 2515, 2528, 2541, 2684, - 2697, 2710, 2723, 1326, 1339, 1495, 1508, 1509, - 1521, 1522, 1534, 1535, 1548, 1677, 1690, 1691, - 1703, 1704, 1705, 1716, 1717, 1718, 1730, 1731, - 1744, 1872, 1873, 1885, 1886, 1887, 1899, 1900, - 1912, 1913, 1914, 1926, 1927, 2055, 2068, 2069, - 2081, 2082, 2083, 2094, 2095, 2096, 2108, 2109, - 2122, 2251, 2264, 2265, 2277, 2278, 2290, 2291, - 2304, 2460, 2473, 1327, 1340, 1496, 1510, 1523, - 1536, 1549, 1678, 1692, 1706, 1719, 1732, 1745, - 1860, 1874, 1888, 1901, 1915, 1928, 2056, 2070, - 2084, 2097, 2110, 2123, 2252, 2266, 2279, 2292, - 2305, 2461, 2474, 1315, 1328, 1341, 1354, 1497, - 1511, 1524, 1537, 1550, 1679, 1693, 1707, 1720, - 1733, 1746, 1861, 1875, 1889, 1902, 1903, 1916, - 1929, 2057, 2071, 2085, 2098, 2111, 2124, 2253, - 2267, 2280, 2293, 2306, 2449, 2462, 2475, 1353, - 1562, 1758, 1940, 1941, 2136, 2318, 2487, 1367, - 1563, 1759, 1942, 2137, 2319, 2488, 1329, 1342, - 1355, 1368, 1525, 1538, 1551, 1564, 1721, 1734, - 1747, 1760, 1917, 1930, 1943, 1956, 2099, 2112, - 2125, 2138, 2281, 2294, 2307, 2320, 2476, 2489, - 1954, 1955, 2150, 2332, 2501, 2151, 2333, 2502, - 1356, 1369, 1539, 1552, 1565, 1735, 1748, 1761, - 1931, 1944, 1957, 2113, 2126, 2139, 2152, 2295, - 2308, 2321, 2334, 2490, 2503, 2447, 2486, 2500, - 2656, 2669, 2448, 2657, 2670, 2463, 2645, 2658, - 2671, 2684, 2514, 2683, 2515, 2697, 2477, 2516, - 2672, 2685, 2346, 2528, 2347, 2529, 2698, 2127, - 2140, 2153, 2309, 2322, 2335, 2348, 2491, 2504, - 2517, 2530, 2686, 2699, 2643, 2682, 2696, 2644, - 2659, 2710, 2711, 2673, 2712, 2542, 2724, 2543, - 2725, 2323, 2336, 2349, 2505, 2518, 2531, 2544, - 2687, 2700, 2713, 2726, 1329, 1342, 1511, 1524, - 1525, 1537, 1538, 1551, 1693, 1706, 1707, 1719, - 1720, 1721, 1733, 1734, 1747, 1875, 1888, 1889, - 1902, 1903, 1915, 1916, 1917, 1929, 1930, 2071, - 2084, 2085, 2097, 2098, 2099, 2111, 2112, 2125, - 2267, 2280, 2281, 2293, 2294, 2307, 2463, 2476, - 1343, 1356, 1539, 1552, 1565, 1735, 1748, 1761, - 1931, 1943, 1944, 2113, 2126, 2139, 2295, 2308, - 2321, 2477, 2490, 1357, 1370, 1553, 1566, 1749, - 1762, 1945, 1957, 1958, 2127, 2140, 2153, 2309, - 2322, 2335, 2491, 2504, 2489, 2503, 2659, 2672, - 2517, 2673, 2686, 2141, 2154, 2323, 2336, 2349, - 2505, 2518, 2531, 2687, 2700, 2685, 2699, 2713, - 2337, 2350, 2519, 2532, 2545, 2701, 2714, 2727, - 1359, 1528, 1541, 1542, 1554, 1555, 1710, 1723, - 1724, 1736, 1737, 1738, 1750, 1751, 1905, 1906, - 1918, 1919, 1920, 1932, 1933, 1946, 1947, 2088, - 2101, 2102, 2114, 2115, 2116, 2128, 2129, 2142, - 2284, 2297, 2298, 2310, 2311, 2324, 2493, 2506, - 1360, 1529, 1543, 1556, 1711, 1725, 1739, 1752, - 1907, 1921, 1934, 1948, 2089, 2103, 2117, 2130, - 2143, 2285, 2299, 2312, 2325, 2338, 2494, 2507, - 1361, 1530, 1544, 1557, 1712, 1726, 1740, 1753, - 1908, 1922, 1935, 1949, 2090, 2104, 2118, 2131, - 2144, 2286, 2300, 2313, 2326, 2339, 2495, 2508, - 2480, 2520, 2689, 2702, 2481, 2521, 2534, 2690, - 2703, 1936, 2145, 2314, 2327, 2340, 2482, 2496, - 2509, 2522, 2535, 2691, 2704, 2676, 2716, 2677, - 2717, 2730, 2132, 2341, 2510, 2523, 2536, 2678, - 2692, 2705, 2718, 2731, 1362, 1531, 1544, 1545, - 1557, 1558, 1713, 1726, 1727, 1739, 1740, 1741, - 1752, 1753, 1754, 1908, 1909, 1921, 1922, 1923, - 1935, 1936, 1948, 1949, 1950, 2091, 2104, 2105, - 2117, 2118, 2119, 2130, 2131, 2132, 2144, 2145, - 2287, 2300, 2301, 2313, 2314, 2326, 2327, 2340, - 2496, 2509, 1363, 1532, 1546, 1559, 1714, 1728, - 1742, 1755, 1910, 1924, 1937, 1951, 2092, 2106, - 2120, 2133, 2146, 2288, 2302, 2315, 2328, 2341, - 2497, 2510, 1351, 1364, 1533, 1547, 1560, 1715, - 1729, 1743, 1756, 1897, 1911, 1925, 1938, 1939, - 1952, 2093, 2107, 2121, 2134, 2147, 2289, 2303, - 2316, 2329, 2342, 2485, 2498, 2511, 2524, 2483, - 2522, 2523, 2536, 2692, 2705, 2484, 2537, 2693, - 2706, 2135, 2148, 2317, 2330, 2343, 2499, 2512, - 2525, 2538, 2681, 2694, 2707, 2720, 2679, 2718, - 2719, 2732, 2680, 2733, 2331, 2344, 2513, 2526, - 2539, 2695, 2708, 2721, 2734, 1365, 1534, 1547, - 1548, 1560, 1561, 1716, 1729, 1730, 1742, 1743, - 1744, 1755, 1756, 1757, 1911, 1912, 1924, 1925, - 1926, 1938, 1939, 1951, 1952, 1953, 2094, 2107, - 2108, 2120, 2121, 2122, 2133, 2134, 2135, 2147, - 2148, 2290, 2303, 2304, 2316, 2317, 2329, 2330, - 2343, 2499, 2512, 1366, 1535, 1549, 1562, 1717, - 1731, 1745, 1758, 1913, 1927, 1940, 1954, 2095, - 2109, 2123, 2136, 2149, 2291, 2305, 2318, 2331, - 2344, 2500, 2513, 1354, 1367, 1536, 1550, 1563, - 1718, 1732, 1746, 1759, 1900, 1914, 1928, 1941, - 1942, 1955, 2096, 2110, 2124, 2137, 2150, 2292, - 2306, 2319, 2332, 2345, 2488, 2501, 2514, 2527, - 2486, 2525, 2526, 2539, 2695, 2708, 2487, 2540, - 2696, 2709, 2138, 2151, 2320, 2333, 2346, 2502, - 2515, 2528, 2541, 2684, 2697, 2710, 2723, 2682, - 2721, 2722, 2735, 2683, 2736, 2334, 2347, 2516, - 2529, 2542, 2698, 2711, 2724, 2737, 1368, 1537, - 1550, 1551, 1563, 1564, 1719, 1732, 1733, 1745, - 1746, 1747, 1758, 1759, 1760, 1914, 1915, 1927, - 1928, 1929, 1941, 1942, 1954, 1955, 1956, 2097, - 2110, 2111, 2123, 2124, 2125, 2136, 2137, 2138, - 2150, 2151, 2293, 2306, 2307, 2319, 2320, 2332, - 2333, 2346, 2502, 2515, 1369, 1538, 1552, 1565, - 1720, 1734, 1748, 1761, 1902, 1916, 1930, 1943, - 1957, 2098, 2112, 2126, 2139, 2152, 2294, 2308, - 2321, 2334, 2347, 2503, 2516, 1357, 1370, 1539, - 1553, 1566, 1721, 1735, 1749, 1762, 1903, 1917, - 1931, 1944, 1945, 1958, 2099, 2113, 2127, 2140, - 2153, 2295, 2309, 2322, 2335, 2348, 2491, 2504, - 2517, 2489, 2528, 2529, 2542, 2698, 2711, 2490, - 2530, 2543, 2699, 2712, 2141, 2154, 2323, 2336, - 2349, 2505, 2518, 2531, 2544, 2687, 2700, 2713, - 2726, 2685, 2724, 2725, 2738, 2686, 2739, 2337, - 2350, 2519, 2532, 2545, 2701, 2714, 2727, 2740, - 1371, 1553, 1566, 1567, 1735, 1748, 1749, 1761, - 1762, 1763, 1917, 1930, 1931, 1944, 1945, 1957, - 1958, 1959, 2113, 2126, 2127, 2139, 2140, 2141, - 2153, 2154, 2309, 2322, 2323, 2335, 2336, 2349, - 2505, 2518, 2155, 2337, 2350, 2519, 2531, 2532, - 2545, 2701, 2714, 2351, 2533, 2546, 2715, 2727, - 2728, 2741, 2099, 2112, 2125, 2281, 2294, 2295, - 2307, 2308, 2321, 2463, 2476, 2477, 2490, 2491, - 2503, 2504, 2517, 2659, 2672, 2673, 2685, 2686, - 2687, 2699, 2700, 2713, 1779, 1792, 1961, 1962, - 1974, 1975, 1988, 2156, 2157, 2158, 2170, 2171, - 2184, 2352, 2353, 2366, 2367, 2380, 2548, 2549, - 2562, 1780, 1793, 1963, 1976, 1989, 2002, 2159, - 2172, 2185, 2198, 2354, 2368, 2381, 2550, 2563, - 2576, 1768, 1781, 1794, 1807, 1964, 1977, 1990, - 2003, 2160, 2173, 2186, 2199, 2355, 2356, 2369, - 2382, 2395, 2551, 2564, 2577, 1806, 2394, 1820, - 2016, 2212, 2408, 2590, 1795, 1808, 1978, 1991, - 2004, 2017, 2174, 2187, 2200, 2213, 2383, 2396, - 2552, 2565, 2578, 2591, 1821, 2030, 2226, 2409, - 2604, 1809, 1822, 1992, 2005, 2018, 2031, 2188, - 2201, 2214, 2227, 2370, 2397, 2410, 2566, 2579, - 2592, 2605, 1782, 1795, 1964, 1965, 1977, 1978, - 1990, 1991, 2004, 2159, 2160, 2161, 2172, 2173, - 2174, 2186, 2187, 2200, 2355, 2356, 2368, 2369, - 2370, 2382, 2383, 2550, 2551, 2552, 2564, 2565, - 2578, 1783, 1796, 1966, 1979, 1992, 2005, 2162, - 2175, 2188, 2201, 2357, 2371, 2384, 2553, 2566, - 2579, 1771, 1784, 1797, 1810, 1967, 1980, 1993, - 2006, 2163, 2176, 2189, 2202, 2358, 2359, 2372, - 2385, 2398, 2554, 2567, 2580, 1809, 2018, 2214, - 2396, 2397, 2592, 1823, 2019, 2215, 2411, 2593, - 1798, 1811, 1981, 1994, 2007, 2020, 2177, 2190, - 2203, 2216, 2386, 2399, 2555, 2568, 2581, 2594, - 1836, 2032, 2228, 2410, 2424, 2606, 1824, 2033, - 2229, 2412, 2607, 1812, 1825, 1995, 2008, 2021, - 2034, 2191, 2204, 2217, 2230, 2373, 2400, 2413, - 2569, 2582, 2595, 2608, 1785, 1798, 1967, 1968, - 1980, 1981, 1993, 1994, 2007, 2162, 2163, 2164, - 2175, 2176, 2177, 2189, 2190, 2203, 2358, 2359, - 2371, 2372, 2373, 2385, 2386, 2553, 2554, 2555, - 2567, 2568, 2581, 1786, 1799, 1969, 1982, 1995, - 2008, 2165, 2178, 2191, 2204, 2360, 2374, 2387, - 2556, 2569, 2582, 1774, 1787, 1800, 1813, 1970, - 1983, 1996, 2009, 2166, 2179, 2192, 2205, 2361, - 2362, 2375, 2388, 2401, 2557, 2570, 2583, 1812, - 2021, 2217, 2399, 2400, 2595, 1826, 2022, 2218, - 2414, 2596, 1801, 1814, 1984, 1997, 2010, 2023, - 2180, 2193, 2206, 2219, 2376, 2389, 2402, 2558, - 2571, 2584, 2597, 1839, 2035, 2231, 2413, 2427, - 2609, 1827, 2036, 2232, 2415, 2610, 1815, 1828, - 1998, 2011, 2024, 2037, 2194, 2207, 2220, 2233, - 2390, 2403, 2416, 2572, 2585, 2598, 2611, 1788, - 1801, 1970, 1971, 1983, 1984, 1996, 1997, 2010, - 2165, 2166, 2167, 2178, 2179, 2180, 2192, 2193, - 2206, 2361, 2362, 2374, 2375, 2376, 2388, 2389, - 2556, 2557, 2558, 2570, 2571, 2584, 1776, 1789, - 1802, 1815, 1972, 1985, 1998, 2011, 2168, 2181, - 2194, 2207, 2363, 2377, 2390, 2559, 2572, 2585, - 1777, 1790, 1803, 1816, 1973, 1986, 1999, 2012, - 2169, 2182, 2195, 2208, 2364, 2365, 2378, 2391, - 2404, 2560, 2573, 2586, 2024, 2220, 2402, 2403, - 2598, 1829, 2025, 2221, 2417, 2599, 1804, 1817, - 1987, 2000, 2013, 2026, 2183, 2196, 2209, 2222, - 2379, 2392, 2405, 2418, 2561, 2574, 2587, 2600, - 2038, 2234, 2416, 2612, 1830, 2039, 2235, 2431, - 2613, 1818, 1831, 2001, 2014, 2027, 2040, 2197, - 2210, 2223, 2236, 2393, 2406, 2419, 2432, 2575, - 2588, 2601, 2614, 1821, 1834, 1990, 2003, 2004, - 2016, 2017, 2030, 2172, 2185, 2186, 2198, 2199, - 2200, 2212, 2213, 2226, 2367, 2368, 2380, 2381, - 2382, 2394, 2395, 2408, 2409, 2422, 2550, 2563, - 2564, 2576, 2577, 2578, 2590, 2591, 2604, 1822, - 1835, 1991, 2005, 2018, 2031, 2044, 2173, 2187, - 2201, 2214, 2227, 2240, 2355, 2369, 2383, 2396, - 2410, 2423, 2551, 2565, 2579, 2592, 2605, 2618, - 1810, 1823, 1836, 1849, 1992, 2006, 2019, 2032, - 2045, 2174, 2188, 2202, 2215, 2228, 2241, 2356, - 2370, 2384, 2397, 2398, 2411, 2424, 2437, 2552, - 2566, 2580, 2593, 2606, 2619, 1848, 2436, 1862, - 2058, 2254, 2450, 2632, 1837, 1850, 2020, 2033, - 2046, 2059, 2216, 2229, 2242, 2255, 2425, 2438, - 2594, 2607, 2620, 2633, 1863, 2072, 2268, 2451, - 2646, 1838, 1851, 1864, 1877, 2034, 2047, 2060, - 2073, 2230, 2243, 2256, 2269, 2412, 2439, 2452, - 2608, 2621, 2634, 2647, 1824, 1837, 1993, 2006, - 2007, 2019, 2020, 2032, 2033, 2046, 2175, 2188, - 2189, 2201, 2202, 2203, 2214, 2215, 2216, 2228, - 2229, 2242, 2370, 2371, 2383, 2384, 2385, 2397, - 2398, 2410, 2411, 2412, 2424, 2425, 2553, 2566, - 2567, 2579, 2580, 2581, 2592, 2593, 2594, 2606, - 2607, 2620, 1825, 1838, 1994, 2008, 2021, 2034, - 2047, 2176, 2190, 2204, 2217, 2230, 2243, 2358, - 2372, 2386, 2399, 2413, 2426, 2554, 2568, 2582, - 2595, 2608, 2621, 1813, 1826, 1839, 1852, 1995, - 2009, 2022, 2035, 2048, 2177, 2191, 2205, 2218, - 2231, 2244, 2359, 2373, 2387, 2400, 2401, 2414, - 2427, 2440, 2555, 2569, 2583, 2596, 2609, 2622, - 1851, 2060, 2256, 2438, 2439, 2452, 2634, 1865, - 2061, 2257, 2453, 2635, 1840, 1853, 2023, 2036, - 2049, 2062, 2219, 2232, 2245, 2258, 2428, 2441, - 2597, 2610, 2623, 2636, 1878, 2074, 2270, 2466, - 2648, 1866, 2075, 2271, 2454, 2649, 1841, 1854, - 1867, 1880, 2037, 2050, 2063, 2076, 2233, 2246, - 2259, 2272, 2415, 2442, 2455, 2611, 2624, 2637, - 2650, 1827, 1840, 1996, 2009, 2010, 2022, 2023, - 2035, 2036, 2049, 2178, 2191, 2192, 2204, 2205, - 2206, 2217, 2218, 2219, 2231, 2232, 2245, 2373, - 2374, 2386, 2387, 2388, 2400, 2401, 2413, 2414, - 2415, 2427, 2428, 2556, 2569, 2570, 2582, 2583, - 2584, 2595, 2596, 2597, 2609, 2610, 2623, 1828, - 1841, 1997, 2011, 2024, 2037, 2050, 2179, 2193, - 2207, 2220, 2233, 2246, 2361, 2375, 2389, 2402, - 2416, 2429, 2557, 2571, 2585, 2598, 2611, 2624, - 1816, 1829, 1842, 1855, 1998, 2012, 2025, 2038, - 2051, 2180, 2194, 2208, 2221, 2234, 2247, 2362, - 2376, 2390, 2403, 2404, 2417, 2430, 2443, 2558, - 2572, 2586, 2599, 2612, 2625, 1854, 2063, 2259, - 2441, 2442, 2455, 2637, 1868, 2064, 2260, 2456, - 2638, 1843, 1856, 2026, 2039, 2052, 2065, 2222, - 2235, 2248, 2261, 2418, 2431, 2444, 2600, 2613, - 2626, 2639, 1881, 2077, 2273, 2469, 2651, 1869, - 2078, 2274, 2457, 2652, 1844, 1857, 1870, 1883, - 2040, 2053, 2066, 2079, 2236, 2249, 2262, 2275, - 2432, 2445, 2458, 2614, 2627, 2640, 2653, 1830, - 1843, 1999, 2012, 2013, 2025, 2026, 2038, 2039, - 2052, 2181, 2194, 2195, 2207, 2208, 2209, 2220, - 2221, 2222, 2234, 2235, 2248, 2376, 2377, 2389, - 2390, 2391, 2403, 2404, 2416, 2417, 2418, 2430, - 2431, 2559, 2572, 2573, 2585, 2586, 2587, 2598, - 2599, 2600, 2612, 2613, 2626, 1831, 1844, 1857, - 2000, 2014, 2027, 2040, 2053, 2182, 2196, 2210, - 2223, 2236, 2249, 2364, 2378, 2392, 2405, 2419, - 2432, 2560, 2574, 2588, 2601, 2614, 2627, 1819, - 1832, 1845, 2001, 2015, 2028, 2041, 2054, 2183, - 2197, 2211, 2224, 2237, 2250, 2365, 2379, 2393, - 2406, 2420, 2433, 2561, 2575, 2589, 2602, 2615, - 2628, 2066, 2262, 2444, 2445, 2640, 1858, 1871, - 2067, 2263, 2446, 2641, 1833, 1846, 1859, 1872, - 2029, 2042, 2055, 2068, 2225, 2238, 2251, 2264, - 2407, 2421, 2434, 2447, 2460, 2603, 2616, 2629, - 2642, 2080, 2276, 2458, 2459, 2654, 1885, 2081, - 2277, 2473, 2655, 1860, 1873, 2043, 2056, 2069, - 2082, 2239, 2252, 2265, 2278, 2448, 2461, 2617, - 2630, 2643, 2656, 1833, 1846, 2015, 2028, 2029, - 2041, 2042, 2055, 2197, 2210, 2211, 2223, 2224, - 2225, 2237, 2238, 2251, 2379, 2392, 2393, 2406, - 2407, 2419, 2420, 2421, 2433, 2434, 2575, 2588, - 2589, 2601, 2602, 2603, 2615, 2616, 2629, 1847, - 1860, 2043, 2056, 2069, 2239, 2252, 2265, 2435, - 2447, 2448, 2617, 2630, 2643, 1861, 1874, 2057, - 2070, 2083, 2253, 2266, 2279, 2449, 2461, 2462, - 2631, 2644, 2657, 1863, 1876, 2032, 2045, 2046, - 2058, 2059, 2072, 2214, 2227, 2228, 2240, 2241, - 2242, 2254, 2255, 2268, 2409, 2410, 2422, 2423, - 2424, 2436, 2437, 2450, 2451, 2464, 2592, 2605, - 2606, 2618, 2619, 2620, 2632, 2633, 2646, 1864, - 1877, 2033, 2047, 2060, 2073, 2086, 2215, 2229, - 2243, 2256, 2269, 2282, 2397, 2411, 2425, 2438, - 2452, 2465, 2593, 2607, 2621, 2634, 2647, 2660, - 1852, 1865, 1878, 1891, 2034, 2048, 2061, 2074, - 2087, 2216, 2230, 2244, 2257, 2270, 2283, 2412, - 2426, 2439, 2440, 2453, 2466, 2479, 2594, 2608, - 2622, 2635, 2648, 2661, 1890, 2478, 2100, 2296, - 2674, 1879, 1892, 2062, 2075, 2088, 2101, 2258, - 2271, 2284, 2297, 2467, 2480, 2636, 2649, 2662, - 2675, 1904, 2492, 1905, 2114, 2310, 2493, 2688, - 1880, 1893, 1906, 2076, 2089, 2102, 2115, 2272, - 2285, 2298, 2311, 2454, 2481, 2494, 2507, 2650, - 2663, 2676, 2689, 1866, 1879, 2035, 2048, 2049, - 2061, 2062, 2074, 2075, 2088, 2217, 2230, 2231, - 2243, 2244, 2245, 2256, 2257, 2258, 2270, 2271, - 2284, 2412, 2413, 2425, 2426, 2427, 2439, 2440, - 2452, 2453, 2454, 2466, 2467, 2595, 2608, 2609, - 2621, 2622, 2623, 2634, 2635, 2636, 2648, 2649, - 2662, 1867, 1880, 2036, 2050, 2063, 2076, 2089, - 2218, 2232, 2246, 2259, 2272, 2285, 2400, 2414, - 2428, 2441, 2455, 2468, 2596, 2610, 2624, 2637, - 2650, 2663, 1855, 1868, 1881, 1894, 2037, 2051, - 2064, 2077, 2090, 2219, 2233, 2247, 2260, 2273, - 2286, 2415, 2429, 2442, 2443, 2456, 2469, 2482, - 2597, 2611, 2625, 2638, 2651, 2664, 1893, 2102, - 2298, 2480, 2481, 2494, 2676, 2103, 2299, 2677, - 1882, 1895, 2065, 2078, 2091, 2104, 2261, 2274, - 2287, 2300, 2470, 2483, 2639, 2652, 2665, 2678, - 1907, 1920, 2116, 2312, 2495, 2508, 2690, 1908, - 2117, 2313, 2496, 2691, 1883, 1896, 1909, 2079, - 2092, 2105, 2118, 2275, 2288, 2301, 2314, 2457, - 2484, 2497, 2510, 2653, 2666, 2679, 2692, 1869, - 1882, 2038, 2051, 2052, 2064, 2065, 2077, 2078, - 2091, 2220, 2233, 2234, 2246, 2247, 2248, 2259, - 2260, 2261, 2273, 2274, 2287, 2415, 2416, 2428, - 2429, 2430, 2442, 2443, 2455, 2456, 2457, 2469, - 2470, 2598, 2611, 2612, 2624, 2625, 2626, 2637, - 2638, 2639, 2651, 2652, 2665, 1870, 1883, 2039, - 2053, 2066, 2079, 2092, 2221, 2235, 2249, 2262, - 2275, 2288, 2403, 2417, 2431, 2444, 2458, 2471, - 2599, 2613, 2627, 2640, 2653, 2666, 1858, 1871, - 1884, 2040, 2054, 2067, 2080, 2093, 2222, 2236, - 2250, 2263, 2276, 2289, 2404, 2418, 2432, 2445, - 2459, 2472, 2600, 2614, 2628, 2641, 2654, 2667, - 1896, 2105, 2301, 2483, 2484, 2497, 2679, 1897, - 2106, 2302, 2485, 2680, 1872, 1885, 1898, 1911, - 2068, 2081, 2094, 2107, 2264, 2277, 2290, 2303, - 2446, 2460, 2473, 2486, 2499, 2642, 2655, 2668, - 2681, 1910, 2119, 2315, 2498, 2693, 2120, 2316, - 2694, 1899, 1912, 2082, 2095, 2108, 2121, 2278, - 2291, 2304, 2317, 2487, 2500, 2656, 2669, 2682, - 2695, 1872, 1885, 2041, 2054, 2055, 2067, 2068, - 2080, 2081, 2094, 2223, 2236, 2237, 2249, 2250, - 2251, 2262, 2263, 2264, 2276, 2277, 2290, 2418, - 2419, 2431, 2432, 2433, 2445, 2446, 2458, 2459, - 2460, 2472, 2473, 2601, 2614, 2615, 2627, 2628, - 2629, 2640, 2641, 2642, 2654, 2655, 2668, 1873, - 1886, 2042, 2056, 2069, 2082, 2095, 2224, 2238, - 2252, 2265, 2278, 2291, 2406, 2420, 2434, 2447, - 2461, 2474, 2602, 2616, 2630, 2643, 2656, 2669, - 1874, 1887, 2043, 2057, 2070, 2083, 2096, 2225, - 2239, 2253, 2266, 2279, 2292, 2421, 2435, 2448, - 2462, 2475, 2603, 2617, 2631, 2644, 2657, 2670, - 1899, 2108, 2304, 2486, 2487, 2682, 1900, 1913, - 2109, 2305, 2488, 2501, 2683, 1875, 1888, 1901, - 1914, 2071, 2084, 2097, 2110, 2267, 2280, 2293, - 2306, 2449, 2463, 2476, 2489, 2502, 2645, 2658, - 2671, 2684, 1926, 2122, 2318, 2500, 2696, 1927, - 2123, 2319, 2515, 2697, 1902, 1915, 2085, 2098, - 2111, 2124, 2281, 2294, 2307, 2320, 2490, 2503, - 2516, 2659, 2672, 2685, 2698, 1875, 1888, 2057, - 2070, 2071, 2083, 2084, 2097, 2239, 2252, 2253, - 2265, 2266, 2267, 2279, 2280, 2293, 2421, 2434, - 2435, 2448, 2449, 2461, 2462, 2463, 2475, 2476, - 2617, 2630, 2631, 2643, 2644, 2645, 2657, 2658, - 2671, 1889, 1902, 2085, 2098, 2111, 2281, 2294, - 2307, 2477, 2489, 2490, 2659, 2672, 2685, 1903, - 1916, 1929, 2099, 2112, 2125, 2295, 2308, 2321, - 2491, 2503, 2504, 2673, 2686, 2699, 1905, 1918, - 2074, 2087, 2088, 2100, 2101, 2114, 2256, 2269, - 2270, 2282, 2283, 2284, 2296, 2297, 2310, 2451, - 2452, 2464, 2465, 2466, 2478, 2479, 2492, 2493, - 2506, 2634, 2647, 2648, 2660, 2661, 2662, 2674, - 2675, 2688, 1906, 1919, 2075, 2089, 2102, 2115, - 2128, 2257, 2271, 2285, 2298, 2311, 2324, 2439, - 2453, 2467, 2480, 2494, 2507, 2635, 2649, 2663, - 2676, 2689, 2702, 1894, 1907, 1920, 1933, 2076, - 2090, 2103, 2116, 2129, 2258, 2272, 2286, 2299, - 2312, 2325, 2454, 2468, 2481, 2482, 2495, 2508, - 2521, 2636, 2650, 2664, 2677, 2690, 2703, 1932, - 2520, 2142, 2338, 2716, 1921, 1934, 2104, 2117, - 2130, 2143, 2300, 2313, 2326, 2339, 2509, 2522, - 2678, 2691, 2704, 2717, 1946, 2534, 1947, 2535, - 2730, 1935, 1948, 2118, 2131, 2144, 2314, 2327, - 2340, 2496, 2510, 2523, 2536, 2692, 2705, 2718, - 2731, 1908, 1921, 2077, 2090, 2091, 2103, 2104, - 2116, 2117, 2130, 2259, 2272, 2273, 2285, 2286, - 2287, 2298, 2299, 2300, 2312, 2313, 2326, 2454, - 2455, 2467, 2468, 2469, 2481, 2482, 2494, 2495, - 2496, 2508, 2509, 2637, 2650, 2651, 2663, 2664, - 2665, 2676, 2677, 2678, 2690, 2691, 2704, 1909, - 1922, 2078, 2092, 2105, 2118, 2131, 2260, 2274, - 2288, 2301, 2314, 2327, 2442, 2456, 2470, 2483, - 2497, 2510, 2638, 2652, 2666, 2679, 2692, 2705, - 1910, 1923, 2079, 2093, 2106, 2119, 2132, 2261, - 2275, 2289, 2302, 2315, 2328, 2457, 2471, 2484, - 2498, 2511, 2639, 2653, 2667, 2680, 2693, 2706, - 1935, 2144, 2340, 2522, 2523, 2536, 2718, 1936, - 2145, 2341, 2524, 2719, 1911, 1924, 1937, 1950, - 2107, 2120, 2133, 2146, 2303, 2316, 2329, 2342, - 2485, 2499, 2512, 2525, 2538, 2681, 2694, 2707, - 2720, 1949, 2537, 2732, 2733, 1938, 1951, 2121, - 2134, 2147, 2317, 2330, 2343, 2526, 2539, 2695, - 2708, 2721, 2734, 1911, 1924, 2080, 2093, 2094, - 2106, 2107, 2119, 2120, 2133, 2262, 2275, 2276, - 2288, 2289, 2290, 2301, 2302, 2303, 2315, 2316, - 2329, 2457, 2458, 2470, 2471, 2472, 2484, 2485, - 2497, 2498, 2499, 2511, 2512, 2640, 2653, 2654, - 2666, 2667, 2668, 2679, 2680, 2681, 2693, 2694, - 2707, 1912, 1925, 2081, 2095, 2108, 2121, 2134, - 2263, 2277, 2291, 2304, 2317, 2330, 2459, 2473, - 2486, 2500, 2513, 2641, 2655, 2669, 2682, 2695, - 2708, 1900, 1913, 1926, 1939, 2082, 2096, 2109, - 2122, 2135, 2264, 2278, 2292, 2305, 2318, 2331, - 2446, 2460, 2474, 2487, 2488, 2501, 2514, 2527, - 2642, 2656, 2670, 2683, 2696, 2709, 1938, 2147, - 2343, 2525, 2526, 2721, 1952, 2148, 2344, 2540, - 2722, 1914, 1927, 1940, 1953, 2110, 2123, 2136, - 2149, 2306, 2319, 2332, 2345, 2502, 2515, 2528, - 2541, 2684, 2697, 2710, 2723, 2539, 2735, 2736, - 1941, 1954, 2124, 2137, 2150, 2320, 2333, 2346, - 2516, 2529, 2542, 2698, 2711, 2724, 2737, 1914, - 1927, 2083, 2096, 2097, 2109, 2110, 2122, 2123, - 2136, 2265, 2278, 2279, 2291, 2292, 2293, 2304, - 2305, 2306, 2318, 2319, 2332, 2460, 2461, 2473, - 2474, 2475, 2487, 2488, 2500, 2501, 2502, 2514, - 2515, 2643, 2656, 2657, 2669, 2670, 2671, 2682, - 2683, 2684, 2696, 2697, 2710, 1915, 1928, 2084, - 2098, 2111, 2124, 2137, 2266, 2280, 2294, 2307, - 2320, 2333, 2448, 2462, 2476, 2489, 2503, 2516, - 2644, 2658, 2672, 2685, 2698, 2711, 1903, 1916, - 1929, 1942, 2085, 2099, 2112, 2125, 2138, 2267, - 2281, 2295, 2308, 2321, 2334, 2449, 2463, 2477, - 2490, 2491, 2504, 2517, 2645, 2659, 2673, 2686, - 2699, 2712, 1941, 2150, 2346, 2528, 2529, 2724, - 1955, 2151, 2347, 2530, 2725, 1917, 1930, 1943, - 1956, 2113, 2126, 2139, 2152, 2309, 2322, 2335, - 2348, 2505, 2518, 2531, 2544, 2687, 2700, 2713, - 2726, 2542, 2543, 2738, 2739, 1944, 1957, 2127, - 2140, 2153, 2323, 2336, 2349, 2519, 2532, 2545, - 2701, 2714, 2727, 2740, 1947, 2116, 2129, 2130, - 2142, 2143, 2298, 2311, 2312, 2324, 2325, 2326, - 2338, 2339, 2493, 2494, 2506, 2507, 2508, 2520, - 2521, 2534, 2535, 2676, 2689, 2690, 2702, 2703, - 2704, 2716, 2717, 2730, 1948, 2117, 2131, 2144, - 2299, 2313, 2327, 2340, 2495, 2509, 2522, 2536, - 2677, 2691, 2705, 2718, 2731, 1949, 2118, 2132, - 2145, 2300, 2314, 2328, 2341, 2496, 2510, 2523, - 2537, 2678, 2692, 2706, 2719, 2732, 1950, 2119, - 2132, 2133, 2145, 2146, 2301, 2314, 2315, 2327, - 2328, 2329, 2340, 2341, 2342, 2496, 2497, 2509, - 2510, 2511, 2523, 2524, 2536, 2537, 2538, 2679, - 2692, 2693, 2705, 2706, 2707, 2718, 2719, 2720, - 2732, 2733, 1951, 2120, 2134, 2147, 2302, 2316, - 2330, 2343, 2498, 2512, 2525, 2539, 2680, 2694, - 2708, 2721, 2734, 1939, 1952, 2121, 2135, 2148, - 2303, 2317, 2331, 2344, 2485, 2499, 2513, 2526, - 2527, 2540, 2681, 2695, 2709, 2722, 2735, 1953, - 2122, 2135, 2136, 2148, 2149, 2304, 2317, 2318, - 2330, 2331, 2332, 2343, 2344, 2345, 2499, 2500, - 2512, 2513, 2514, 2526, 2527, 2539, 2540, 2541, - 2682, 2695, 2696, 2708, 2709, 2710, 2721, 2722, - 2723, 2735, 2736, 1954, 2123, 2137, 2150, 2305, - 2319, 2333, 2346, 2501, 2515, 2528, 2542, 2683, - 2697, 2711, 2724, 2737, 1942, 1955, 2124, 2138, - 2151, 2306, 2320, 2334, 2347, 2488, 2502, 2516, - 2529, 2530, 2543, 2684, 2698, 2712, 2725, 2738, - 1956, 2125, 2138, 2139, 2151, 2152, 2307, 2320, - 2321, 2333, 2334, 2335, 2346, 2347, 2348, 2502, - 2503, 2515, 2516, 2517, 2529, 2530, 2542, 2543, - 2544, 2685, 2698, 2699, 2711, 2712, 2713, 2724, - 2725, 2726, 2738, 2739, 1957, 2126, 2140, 2153, - 2308, 2322, 2336, 2349, 2490, 2504, 2518, 2531, - 2545, 2686, 2700, 2714, 2727, 2740, 1945, 1958, - 2127, 2141, 2154, 2309, 2323, 2337, 2350, 2491, - 2505, 2519, 2532, 2533, 2546, 2687, 2701, 2715, - 2728, 2741, 1959, 2141, 2154, 2155, 2323, 2336, - 2337, 2349, 2350, 2351, 2505, 2518, 2519, 2532, - 2533, 2545, 2546, 2547, 2701, 2714, 2715, 2727, - 2728, 2729, 2741, 2742, -}; - -static long _vq_fitmap_lsp12_1[] = { - 0, 109, 243, 378, 516, 583, 757, 957, - 1160, 1364, 1449, 1625, 1826, 2028, 2230, 2315, - 2487, 2683, 2878, 3074, 3157, 3258, 3371, 3484, - 3597, 3639, 3810, 4017, 4226, 4438, 4537, 4789, - 5078, 5369, 5655, 5773, 6025, 6313, 6599, 6888, - 7007, 7249, 7521, 7794, 8067, 8181, 8311, 8457, - 8602, 8749, 8801, 8975, 9184, 9394, 9604, 9703, - 9962, 10258, 10554, 10839, 10958, 11212, 11502, 11790, - 12079, 12198, 12439, 12711, 12986, 13261, 13375, 13505, - 13652, 13797, 13945, 13997, 14161, 14361, 14562, 14764, - 14860, 15097, 15370, 15643, 15911, 16023, 16258, 16529, - 16797, 17068, 17182, 17406, 17659, 17915, 18172, 18280, - 18404, 18541, 18678, 18816, 18892, 18994, 19116, 19239, - 15643, 19363, 19500, 19657, 19815, 19971, 20035, 20171, - 20327, 20481, 20637, 20702, 20833, 20979, 21127, 18816, - 21276, 21342, 21415, 21488, 21562, -}; - -static long _vq_fitlength_lsp12_1[] = { - 109, 134, 135, 138, 67, 174, 200, 203, - 204, 85, 176, 201, 202, 202, 85, 172, - 196, 195, 196, 83, 101, 113, 113, 113, - 42, 171, 207, 209, 212, 99, 252, 289, - 291, 286, 118, 252, 288, 286, 289, 119, - 242, 272, 273, 273, 114, 130, 146, 145, - 147, 52, 174, 209, 210, 210, 99, 259, - 296, 296, 285, 119, 254, 290, 288, 289, - 119, 241, 272, 275, 275, 114, 130, 147, - 145, 148, 52, 164, 200, 201, 202, 96, - 237, 273, 273, 268, 112, 235, 271, 268, - 271, 114, 224, 253, 256, 257, 108, 124, - 137, 137, 138, 76, 102, 122, 123, 124, - 268, 137, 157, 158, 156, 64, 136, 156, - 154, 156, 65, 131, 146, 148, 149, 76, - 66, 73, 73, 74, 26, -}; - -static encode_aux_pigeonhole _vq_auxp_lsp12_1 = { - 0.202, 0.006, 13, 5, - _vq_pigeonmap_lsp12_1, - 21588, - _vq_fitlist_lsp12_1, - _vq_fitmap_lsp12_1, - _vq_fitlength_lsp12_1 -}; - -static static_codebook _vq_book_lsp12_1 = { - 3, 2744, - _vq_lengthlist_lsp12_1, - 1, 1606015779, 1595446133, 4, 1, - _vq_quantlist_lsp12_1, - NULL, - NULL, - &_vq_auxp_lsp12_1, - 0 -}; - - -#endif diff --git a/lib/books/lsp30_0.vqh b/lib/books/lsp30_0.vqh deleted file mode 100644 index 872fb489..00000000 --- a/lib/books/lsp30_0.vqh +++ /dev/null @@ -1,375 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_lsp30_0_VQH_ -#define _V_lsp30_0_VQH_ -#include "codebook.h" - -static long _vq_quantlist_lsp30_0[] = { - 0, - 2, - 4, - 6, - 8, - 10, - 12, - 14, - 16, - 18, - 20, - 22, - 24, - 26, - 28, - 31, - 35, - 39, - 43, - 47, - 51, - 55, - 63, - 73, - 83, - 93, -}; - -static long _vq_lengthlist_lsp30_0[] = { - 18,18,18,18,18,18,18,18,18,18,18,18,17,18,18,18, - 18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18, - 18,18,18,18,18,18,18,18,17,15,14,17,18,18,18,18, - 18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18, - 17,14,14,13,13,15,18,18,18,18,18,18,18,18,18,18, - 18,18,18,18,18,18,18,15,14,13,13,14,13,13,12,13, - 16,18,16,18,18,18,18,18,18,18,18,18,18,18,18,18, - 17,13,12,12,13,15,15,14,12,13,16,15,18,18,18,18, - 18,18,18,18,18,18,18,18,18,16,17,13,12,13,14,14, - 13,14,13,14,18,14,17,18,15,18,18,18,18,18,18,18, - 18,18,18,17,13,11,11,13,15,14,12,12,12,13,13,14, - 15,14,16,18,18,18,18,18,18,18,18,18,15,15,13,11, - 11,11,12,12,11,11,12,11,12,13,14,14,13,18,18,18, - 18,18,18,18,18,18,14,12,11,11,11,12,12,10,10,11, - 11,10,11,11,13,15,13,18,18,18,18,18,18,18,17,16, - 14,13,12,12,13,14,12,11,11,11,10,10,10,11,14,16, - 13,18,18,18,18,18,17,17,16,15,16,15,12,13,13,14, - 14,13,11,10, 9,10,11,11,13,13,12,18,18,18,18,18, - 18,18,18,15,15,16,15,13,12,11,11,11,10, 9,10,11, - 11,11,12,11,13,18,18,18,18,18,16,17,18,15,14,13, - 12,11,10,11,10,10, 9, 9, 9,10,10,11,11,11,13,18, - 18,18,18,18,17,18,15,16,13,12,10,11,10,10,10, 9, - 8, 8, 7, 8, 9,10,12,12,13,18,17,18,18,18,18,17, - 12,11,10,11,10, 9,10,10, 9, 8, 7, 6, 6, 7, 9,10, - 11,11,13,16,18,18,18,18,18,16,13,12,12,11,10,10, - 10, 8, 7, 6, 5, 4, 4, 6, 7, 9,10,11,12,17,18,18, - 18,16,15,13,13,12,11,11,11,12, 9, 9, 8, 7, 5, 4, - 3, 5, 7, 8, 9,10,13,16,18,17,16,14,12,12,11,12, - 11,11,12,11,10, 9, 9, 8, 7, 5, 4, 5, 7, 8, 9,10, - 14,18,18,18,15,14,12,12,11,10,10,11,11,12,11,11, - 10, 9, 8, 6, 6, 6, 7, 9,10,11,14,17,18,18,15,14, - 13,11,11,10,10,10,12,13,12,12,10,10, 9, 8, 7, 7, - 7, 9,10,11,16,18,17,18,16,16,13,12,12,11,11,11, - 13,13,12,12,12,11,10, 8, 7, 7, 8, 9,10,12,17,18, - 14,17,16,15,14,11, 9,10,11,11,12,13,13,13,13,12, - 12,10,10, 9, 9, 9,10,14,18,18,13,16,16,15,12,10, - 10,10,11,12,11,11,10, 9, 8, 8, 8, 8, 8, 9,12,15, - 16,17,17,18,16,18,17,17,18,16,17,15,14,13,12,11, - 10,10,10, 9, 9,10,14,16,16,17,13,17,18,16,18,17, - 18,18,18,18,18,18,17,15,14,13,12,12,13,14,17,17, - 18,17,16,18,17,17,16,15,18,17,18,18,18,18,18,18, - 17,18,18,18,18,18,18,18,18,18,18,18,18,18,18,16, - 16,18,18,18, -}; - -static long _vq_pigeonmap_lsp30_0[] = { - 0, 0, 0, 0, 0, 0, 1, 1, - 1, 1, 1, 1, 2, 2, 2, 2, - 2, 2, 3, 3, 3, 3, 3, 3, - 4, 4, 4, 4, 4, 4, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, -}; - -static long _vq_fitlist_lsp30_0[] = { - 0, 1, 26, 27, 2, 28, 3, 52, - 29, 53, 54, 79, 55, 78, 80, 105, - 81, 106, 3, 4, 29, 5, 30, 6, - 31, 55, 56, 32, 57, 81, 58, 83, - 82, 107, 108, 84, 109, 6, 7, 32, - 8, 33, 9, 34, 59, 35, 60, 58, - 85, 61, 84, 86, 87, 9, 35, 10, - 36, 11, 12, 37, 38, 63, 61, 62, - 87, 64, 89, 88, 113, 114, 90, 115, - 12, 13, 38, 14, 39, 40, 15, 64, - 65, 66, 41, 91, 67, 92, 90, 116, - 117, 93, 118, 15, 41, 67, 16, 42, - 17, 68, 43, 69, 18, 44, 93, 94, - 95, 120, 121, 70, 119, 18, 44, 70, - 19, 45, 71, 20, 46, 21, 72, 96, - 97, 98, 47, 122, 124, 73, 123, 99, - 21, 47, 73, 99, 22, 125, 48, 74, - 100, 126, 23, 49, 75, 101, 127, 24, - 152, 153, 50, 151, 178, 179, 76, 24, - 50, 76, 102, 128, 25, 154, 51, 77, - 180, 103, 206, 129, 232, 155, 258, 181, - 53, 78, 79, 104, 54, 105, 80, 55, - 81, 106, 130, 131, 107, 132, 156, 157, - 133, 158, 183, 159, 56, 81, 82, 107, - 57, 83, 108, 58, 109, 84, 133, 134, - 110, 135, 159, 160, 136, 161, 185, 162, - 187, 59, 84, 85, 110, 60, 86, 111, - 61, 87, 112, 137, 113, 138, 136, 163, - 139, 164, 162, 189, 165, 62, 87, 113, - 88, 63, 89, 114, 64, 90, 115, 139, - 116, 141, 140, 165, 142, 167, 166, 191, - 168, 193, 65, 90, 91, 116, 66, 117, - 92, 118, 67, 93, 144, 142, 143, 119, - 168, 170, 169, 145, 195, 196, 67, 93, - 119, 42, 68, 145, 94, 120, 43, 69, - 146, 95, 121, 44, 70, 147, 96, 122, - 171, 172, 173, 148, 197, 198, 199, 70, - 96, 122, 71, 148, 45, 97, 123, 46, - 72, 149, 98, 124, 47, 73, 150, 99, - 175, 176, 125, 174, 200, 201, 202, 151, - 177, 73, 99, 125, 151, 22, 48, 177, - 74, 100, 126, 152, 178, 23, 49, 204, - 75, 101, 127, 153, 179, 24, 205, 50, - 76, 102, 203, 230, 231, 128, 229, 256, - 257, 154, 131, 156, 157, 182, 132, 183, - 158, 133, 159, 184, 208, 209, 185, 210, - 234, 235, 211, 236, 260, 237, 134, 159, - 160, 185, 135, 186, 161, 136, 187, 162, - 188, 213, 211, 212, 237, 238, 214, 239, - 263, 264, 240, 265, 137, 162, 163, 188, - 138, 164, 189, 139, 165, 190, 214, 215, - 191, 216, 241, 217, 242, 240, 267, 243, - 268, 140, 165, 191, 166, 141, 167, 192, - 142, 168, 193, 217, 194, 218, 219, 243, - 220, 245, 244, 246, 271, 143, 168, 194, - 169, 144, 195, 170, 196, 145, 171, 222, - 221, 197, 220, 246, 247, 248, 223, 272, - 273, 274, 145, 171, 197, 120, 146, 223, - 172, 198, 121, 147, 224, 173, 199, 148, - 174, 225, 249, 250, 251, 200, 275, 277, - 226, 276, 252, 148, 174, 200, 123, 149, - 226, 175, 201, 124, 150, 227, 176, 202, - 125, 151, 228, 177, 203, 252, 253, 254, - 278, 279, 229, 280, 151, 177, 203, 229, - 100, 126, 255, 152, 178, 204, 230, 256, - 101, 127, 282, 75, 153, 179, 205, 231, - 257, 102, 283, 76, 128, 154, 180, 281, - 308, 309, 206, 307, 334, 335, 232, 102, - 128, 154, 180, 206, 232, 258, 103, 129, - 284, 77, 155, 181, 207, 310, 233, 336, - 259, 209, 234, 235, 260, 210, 261, 236, - 211, 237, 262, 287, 263, 286, 288, 313, - 289, 314, 312, 338, 339, 315, 212, 237, - 238, 263, 213, 239, 264, 214, 265, 240, - 289, 266, 291, 290, 315, 316, 292, 317, - 341, 342, 318, 343, 215, 240, 241, 266, - 216, 242, 267, 217, 243, 268, 293, 269, - 292, 294, 295, 318, 319, 320, 345, 321, - 346, 218, 243, 269, 244, 219, 245, 270, - 220, 246, 271, 295, 272, 297, 296, 321, - 322, 298, 323, 347, 324, 349, 221, 246, - 247, 272, 222, 273, 248, 274, 223, 249, - 299, 275, 300, 298, 324, 325, 301, 326, - 352, 350, 351, 223, 249, 275, 224, 301, - 198, 250, 276, 199, 225, 302, 251, 277, - 200, 226, 303, 252, 328, 329, 278, 327, - 353, 354, 355, 304, 330, 226, 252, 278, - 201, 227, 304, 253, 279, 228, 305, 202, - 254, 280, 203, 229, 306, 255, 330, 332, - 281, 331, 307, 356, 357, 358, 229, 255, - 281, 307, 178, 204, 333, 230, 256, 282, - 308, 334, 179, 205, 360, 153, 231, 257, - 283, 309, 335, 180, 361, 154, 206, 232, - 258, 359, 386, 387, 284, 385, 412, 413, - 310, 180, 206, 232, 258, 284, 310, 336, - 181, 207, 362, 155, 233, 259, 285, 388, - 311, 414, 337, 363, 440, 389, 287, 312, - 313, 338, 288, 314, 339, 289, 315, 340, - 364, 365, 341, 366, 367, 390, 391, 392, - 290, 315, 316, 341, 291, 317, 342, 292, - 343, 318, 367, 368, 344, 369, 370, 393, - 394, 395, 392, 293, 318, 344, 319, 294, - 320, 345, 295, 321, 346, 371, 347, 372, - 370, 373, 398, 395, 396, 397, 296, 321, - 322, 347, 297, 323, 348, 298, 324, 349, - 373, 350, 375, 374, 376, 399, 401, 398, - 400, 299, 324, 325, 350, 300, 351, 326, - 352, 301, 327, 376, 378, 377, 353, 402, - 403, 379, 404, 401, 301, 327, 353, 276, - 302, 379, 328, 354, 277, 303, 380, 329, - 355, 278, 304, 381, 330, 356, 406, 407, - 405, 382, 304, 330, 356, 305, 331, 357, - 280, 306, 383, 332, 358, 281, 307, 384, - 333, 382, 359, 408, 410, 385, 409, 307, - 333, 359, 385, 256, 282, 308, 334, 360, - 386, 257, 283, 412, 231, 309, 335, 361, - 387, 258, 413, 232, 284, 310, 411, 336, - 438, 439, 362, 437, 388, 365, 390, 340, - 366, 391, 367, 392, 368, 393, 416, 417, - 418, 394, 419, 442, 443, 444, 420, 445, - 468, 469, 470, 446, 471, 368, 393, 369, - 394, 370, 395, 371, 396, 418, 419, 420, - 421, 397, 422, 444, 445, 446, 447, 423, - 448, 470, 471, 472, 473, 449, 474, 371, - 396, 372, 397, 347, 373, 398, 348, 374, - 399, 421, 422, 423, 424, 400, 425, 447, - 448, 449, 450, 426, 451, 473, 474, 475, - 476, 452, 477, 374, 399, 375, 400, 376, - 401, 377, 402, 424, 425, 426, 427, 403, - 428, 450, 451, 452, 453, 429, 454, 476, - 477, 478, 479, 455, 480, 377, 402, 378, - 403, 404, 379, 405, 430, 427, 428, 429, - 431, 456, 453, 454, 455, 457, 482, 479, - 480, 481, 379, 404, 405, 354, 380, 406, - 355, 381, 407, 356, 382, 431, 432, 408, - 433, 430, 457, 434, 458, 459, 456, 460, - 483, 484, 485, 482, 382, 408, 357, 383, - 409, 358, 384, 410, 359, 385, 411, 434, - 435, 436, 461, 437, 460, 462, 486, 463, - 487, 488, 385, 411, 437, 334, 360, 386, - 412, 438, 335, 361, 309, 387, 413, 439, - 336, 310, 362, 388, 464, 465, 414, 463, - 490, 491, 440, 489, 516, 517, 466, 515, - 336, 362, 388, 414, 440, 337, 363, 311, - 389, 415, 466, 441, 492, 467, 518, 493, - 443, 468, 444, 469, 445, 470, 446, 471, - 494, 495, 496, 472, 497, 520, 521, 522, - 498, 523, 546, 547, 548, 524, 549, 446, - 471, 447, 472, 448, 473, 449, 474, 496, - 497, 498, 499, 475, 500, 522, 523, 524, - 525, 501, 526, 548, 549, 550, 551, 527, - 552, 449, 474, 450, 475, 451, 476, 452, - 477, 499, 500, 501, 502, 478, 503, 525, - 526, 527, 528, 504, 529, 551, 552, 553, - 554, 530, 555, 452, 477, 453, 478, 454, - 479, 455, 480, 502, 503, 504, 505, 481, - 506, 528, 529, 530, 531, 507, 532, 554, - 555, 556, 557, 533, 558, 455, 480, 456, - 481, 482, 457, 483, 508, 505, 506, 507, - 509, 534, 531, 532, 533, 535, 560, 557, - 558, 559, 457, 482, 483, 458, 484, 459, - 485, 460, 486, 511, 509, 510, 508, 536, - 512, 535, 537, 534, 561, 538, 562, 563, - 560, 460, 486, 461, 487, 462, 488, 463, - 489, 512, 513, 514, 515, 540, 538, 539, - 565, 541, 564, 566, 463, 489, 515, 438, - 464, 490, 516, 439, 465, 491, 517, 440, - 466, 542, 543, 492, 541, 568, 569, 518, - 567, 544, 466, 492, 518, 441, 467, 493, - 544, 519, 570, 545, 571, 521, 546, 522, - 547, 523, 548, 524, 549, 550, 573, 572, - 574, 575, 576, 598, 599, 600, 577, 601, - 602, 624, 625, 626, 603, 524, 549, 525, - 550, 526, 551, 527, 552, 553, 574, 575, - 576, 577, 578, 579, 600, 602, 599, 601, - 603, 580, 604, 605, 626, 628, 625, 627, - 629, 606, 527, 552, 528, 553, 529, 554, - 530, 555, 556, 577, 578, 579, 580, 581, - 582, 603, 604, 605, 602, 606, 583, 607, - 608, 629, 628, 630, 631, 632, 609, 555, - 530, 531, 556, 532, 557, 533, 558, 559, - 581, 582, 583, 580, 584, 585, 606, 607, - 608, 605, 609, 586, 610, 611, 632, 633, - 634, 631, 635, 612, 533, 558, 534, 559, - 560, 535, 561, 583, 584, 585, 586, 587, - 610, 611, 608, 609, 612, 613, 636, 637, - 634, 635, 638, 535, 561, 536, 562, 537, - 563, 538, 564, 586, 587, 588, 589, 590, - 611, 612, 613, 614, 615, 616, 638, 639, - 640, 637, 641, 538, 564, 539, 565, 540, - 566, 541, 567, 589, 590, 591, 592, 593, - 615, 616, 617, 618, 619, 641, 642, 643, - 644, 541, 567, 516, 542, 568, 517, 543, - 594, 569, 518, 544, 595, 593, 570, 592, - 620, 621, 596, 619, 618, 622, 647, 646, - 645, 644, 544, 570, 519, 545, 596, 571, - 597, 622, 623, 648, 649, 599, 600, 624, - 601, 625, 602, 626, 627, 628, 650, 651, - 652, 629, 653, 603, 626, 627, 604, 628, - 605, 629, 630, 631, 653, 654, 651, 652, - 655, 632, 656, 606, 629, 630, 607, 631, - 608, 632, 633, 634, 655, 657, 654, 656, - 658, 635, 659, 609, 632, 633, 610, 634, - 611, 635, 636, 637, 658, 657, 659, 660, - 661, 638, 662, 612, 635, 636, 637, 613, - 638, 639, 661, 662, 663, 660, 664, 638, - 614, 639, 615, 640, 616, 641, 642, 663, - 664, 665, 666, 667, 668, 641, 642, 617, - 643, 618, 619, 644, 645, 667, 668, 669, - 670, 671, 644, 645, 620, 646, 621, 647, - 622, 648, 672, 673, 671, 670, 674, 622, - 648, 623, 649, 674, 675, -}; - -static long _vq_fitmap_lsp30_0[] = { - 0, 18, 37, 53, 72, 91, 109, 128, - 151, 168, 188, 209, 229, 250, 270, 295, - 321, 151, 354, 374, 396, 417, 437, 458, - 483, 508, 543, 561, 582, 604, 625, 646, - 667, 693, 718, 753, 774, 792, 811, 830, - 849, 868, 890, 911, 753, 941, 965, 991, - 1019, 1045, 1066, 1092, 1114, 1144, 1160, 1183, - 1209, 1235, 1261, 1282, 1305, 1324, 1346, 1357, - 1381, 1410, 1439, 1468, 1491, 1515, 1537, 1562, - 1573, 1587, 1603, 1619, 1635, 1647, 1661, 1674, - 1687, -}; - -static long _vq_fitlength_lsp30_0[] = { - 18, 19, 16, 19, 19, 18, 19, 23, - 17, 20, 21, 20, 21, 20, 25, 26, - 33, 17, 20, 22, 21, 20, 21, 25, - 25, 35, 18, 21, 22, 21, 21, 21, - 26, 25, 35, 21, 18, 19, 19, 19, - 19, 22, 21, 30, 21, 24, 26, 28, - 26, 21, 26, 22, 30, 16, 23, 26, - 26, 26, 21, 23, 19, 22, 11, 24, - 29, 29, 29, 23, 24, 22, 25, 11, - 14, 16, 16, 16, 12, 14, 13, 13, - 6, -}; - -static encode_aux_pigeonhole _vq_auxp_lsp30_0 = { - 0.067, 0.001, 93, 9, - _vq_pigeonmap_lsp30_0, - 1693, - _vq_fitlist_lsp30_0, - _vq_fitmap_lsp30_0, - _vq_fitlength_lsp30_0 -}; - -static static_codebook _vq_book_lsp30_0 = { - 2, 676, - _vq_lengthlist_lsp30_0, - 1, 1603348202, 1590714958, 7, 1, - _vq_quantlist_lsp30_0, - NULL, - NULL, - &_vq_auxp_lsp30_0, - 0 -}; - - -#endif diff --git a/lib/books/lsp30_1.vqh b/lib/books/lsp30_1.vqh deleted file mode 100644 index c8672e4c..00000000 --- a/lib/books/lsp30_1.vqh +++ /dev/null @@ -1,1575 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_lsp30_1_VQH_ -#define _V_lsp30_1_VQH_ -#include "codebook.h" - -static long _vq_quantlist_lsp30_1[] = { - 0, - 2, - 4, - 6, - 8, - 10, - 12, - 15, - 19, - 23, - 27, - 31, - 35, - 39, -}; - -static long _vq_lengthlist_lsp30_1[] = { - 19,20,20,19,17,18,20,16,16,19,18,20,19,19,19,19, - 18,18,18,18,18,17,17,19,19,19,19,19,19,19,19,19, - 19,19,18,17,17,18,19,19,19,19,19,19,19,19,19,19, - 17,16,14,19,19,19,19,19,19,19,19,19,19,19,18,13, - 15,18,19,19,19,19,19,19,19,19,19,19,17,15,15,18, - 19,19,19,19,19,19,19,19,19,19,17,18,17,18,19,19, - 19,19,19,19,19,19,19,19,19,19,18,18,19,19,18,18, - 19,19,19,19,19,19,19,19,18,18,17,16,15,17,19,19, - 19,19,19,19,19,19,18,16,16,15,15,15,19,19,19,19, - 19,19,19,18,18,17,16,15,14,16,19,19,19,19,19,19, - 19,18,17,16,16,14,16,19,19,19,19,19,19,19,18,19, - 14,15,15,16,19,19,19,18,18,19,18,18,18,15,16,16, - 16,18,18,19,18,19,19,18,18,17,17,17,18,18,19,19, - 19,19,19,19,19,17,18,19,18,17,17,19,19,19,19,19, - 19,19,19,19,19,19,17,17,16,19,19,19,19,19,19,19, - 19,19,19,19,18,17,16,19,18,19,19,19,19,19,19,19, - 19,19,18,17,18,16,19,19,19,19,19,19,19,19,19,19, - 17,17,18,17,19,18,19,18,19,19,19,19,19,19,16,18, - 18,17,19,18,18,18,19,19,19,19,19,19,18,19,17,16, - 18,17,16,16,19,19,19,19,19,19,18,15,15,17,16,14, - 15,14,19,19,19,19,19,19,19,17,14,15,16,15,14,14, - 19,19,19,19,19,19,19,16,15,15,15,14,14,16,19,19, - 19,19,18,18,19,17,17,14,15,14,16,18,19,19,17,18, - 17,17,17,16,13,14,15,15,19,18,17,16,16,17,17,16, - 16,14,15,14,15,16,18,19,19,19,19,19,18,17,17,17, - 18,19,19,19,19,19,19,19,19,19,18,17,18,17,17,19, - 19,17,19,19,19,18,19,19,18,18,17,16,16,18,17,18, - 17,19,19,19,19,19,19,19,19,16,17,17,17,19,16,18, - 19,19,19,19,19,19,19,18,17,17,17,18,17,18,19,19, - 19,19,19,18,19,17,17,16,17,17,17,17,19,19,19,19, - 19,17,17,18,16,15,17,17,17,17,19,19,19,19,19,19, - 17,17,15,15,16,16,15,15,19,19,19,19,19,19,19,16, - 16,16,16,14,15,14,19,19,19,19,19,19,18,15,13,14, - 15,14,14,15,19,19,19,19,19,17,18,16,15,15,14,14, - 14,15,19,19,19,18,17,19,19,16,15,14,14,15,16,17, - 18,16,16,16,16,16,18,15,14,13,15,15,16,19,16,17, - 17,17,16,16,15,15,14,14,14,16,18,19,19,18,19,19, - 19,17,17,19,18,19,19,18,19,19,18,19,19,19,19,18, - 17,17,16,18,19,18,16,17,18,19,19,19,17,16,16,17, - 16,17,18,17,15,17,19,19,19,19,19,18,17,19,17,16, - 16,16,15,19,19,19,19,19,19,19,19,19,17,16,16,16, - 18,16,19,19,19,19,18,18,19,18,16,15,15,17,17,16, - 19,19,18,18,18,17,17,16,15,15,15,17,16,16,19,19, - 19,19,19,19,17,15,15,12,15,15,15,14,19,19,19,19, - 19,19,17,15,13,13,14,14,14,15,19,19,19,19,19,17, - 15,13,13,14,13,14,15,16,19,19,18,19,18,17,16,15, - 14,14,13,15,16,16,18,18,17,17,16,17,18,16,14,13, - 13,16,17,17,15,16,17,17,17,16,16,15,14,13,16,17, - 17,19,19,19,17,17,16,17,16,15,13,14,15,16,19,19, - 19,19,19,19,18,17,17,19,18,17,19,16,15,17,18,19, - 19,19,19,18,17,17,17,19,17,15,15,16,19,19,19,19, - 19,17,17,17,17,19,16,15,17,17,19,18,19,19,17,16, - 17,17,18,17,16,17,17,17,19,19,19,19,17,18,17,19, - 17,14,16,16,18,16,19,19,19,19,19,19,16,17,15,14, - 14,16,19,16,19,19,19,18,18,16,15,15,14,14,13,15, - 16,15,19,19,19,18,18,17,15,14,13,12,13,14,13,14, - 18,19,19,19,19,16,14,12,11,11,12,13,13,15,19,19, - 18,18,17,15,14,12,12,12,12,13,16,18,19,18,17,16, - 18,16,16,14,13,13,12,15,17,18,17,18,17,17,17,18, - 16,14,14,12,14,17,18,19,18,17,17,17,17,17,16,15, - 14,13,15,17,16,19,19,18,17,17,17,17,17,14,12,14, - 14,17,19,19,18,19,19,19,18,19,19,17,18,18,17,14, - 13,17,19,19,19,18,17,15,15,15,16,19,16,14,14,17, - 18,18,18,18,16,15,14,16,16,17,16,15,15,17,19,18, - 19,18,18,17,17,16,16,16,15,17,17,17,19,19,18,19, - 17,19,16,16,16,15,15,17,17,16,19,19,19,18,17,17, - 15,15,14,14,14,16,16,15,19,19,19,18,17,16,14,13, - 13,13,14,14,14,14,19,18,18,17,16,14,12,11,11,11, - 12,13,13,14,19,19,18,15,15,14,12,10,10,11,12,12, - 13,17,19,19,17,15,14,14,12,11,10,11,11,13,16,18, - 17,17,17,16,17,15,14,12,12,12,12,16,17,18,18,17, - 16,16,16,16,15,14,13,12,15,17,19,19,17,16,16,16, - 16,16,16,15,13,13,15,16,16,19,17,17,15,17,17,16, - 17,14,13,14,15,18,19,19,14,17,18,18,19,19,18,17, - 17,17,16,15,15,17,14,16,17,18,16,14,14,16,15,18, - 17,15,14,18,16,16,17,16,14,16,12,15,15,17,16,15, - 16,18,19,18,17,17,17,15,15,16,15,15,16,15,17,15, - 17,18,18,16,16,15,15,15,14,14,14,14,15,14,19,19, - 18,18,16,14,14,13,13,13,14,14,14,13,17,18,17,17, - 16,14,12,11,10,11,13,13,13,13,17,17,17,15,13,12, - 10, 9, 8,10,11,12,12,16,18,16,13,12,11,10, 9, 8, - 7, 9,10,12,15,17,19,17,16,13,12,12,10, 9, 8,10, - 11,14,16,17,16,16,16,16,14,14,13,11,11,11,12,15, - 16,19,19,16,16,15,15,15,14,13,12,12,15,16,17,19, - 17,16,15,15,15,15,15,14,12,14,15,17,19,19,17,16, - 16,16,16,16,15,13,13,14,16,17,19,19,18,18,19,19, - 16,16,15,15,14,14,16,17,17,18,19,16,15,15,16,15, - 14,13,14,15,15,17,17,19,18,15,15,14,14,14,14,13, - 14,14,15,16,16,16,17,18,15,13,13,14,14,14,13,14, - 15,15,13,13,17,15,15,15,15,15,14,13,12,13,13,13, - 12,13,15,16,16,16,16,15,13,11,11,11,12,11,12,14, - 15,14,13,14,14,12,10, 9, 8, 9,10,10,12,16,14,12, - 12,13,11,10, 8, 6, 5, 8, 9,11,13,17,16,15,13,12, - 10, 9, 7, 4, 4, 7, 9,12,14,16,17,17,15,13,11,10, - 9, 6, 6, 9,11,13,15,17,19,16,15,14,14,13,11,10, - 9,11,12,14,16,18,17,15,14,14,14,13,13,12,11,12, - 15,15,17,19,16,15,14,14,15,15,14,13,12,14,15,15, - 19,19,16,15,16,15,15,15,14,13,12,14,16,18,18,18, - 19,19,19,19,17,17,16,15,14,15,17,19,18,17,19,19, - 18,18,17,18,16,13,14,15,17,16,16,15,18,19,19,17, - 14,14,14,14,13,14,14,14,14,14,18,18,17,15,15,14, - 14,13,12,12,13,12,12,13,18,16,14,14,14,14,13,12, - 11,11,11,11,11,14,17,14,14,14,14,12,11,11,10,10, - 10,10,12,16,15,15,14,14,13,11,10, 9, 7, 8, 9,10, - 13,17,16,15,14,13,11,10, 8, 5, 4, 6, 8,11,15,17, - 15,15,14,13,11, 9, 7, 4, 3, 6, 9,12,14,18,17,15, - 15,13,12,10, 9, 6, 6, 8,10,12,16,17,16,15,14,14, - 13,12,10, 9, 9,10,13,14,14,18,13,15,14,14,13,12, - 11,12,11,13,13,12,15,19,16,15,13,14,13,14,14,13, - 13,15,16,17,17,19,15,15,15,14,14,13,13,12,13,16, - 16,17,19,17,19,19,19,19,17,18,18,18,17,17,18,17, - 18,15,19,19,19,17,17,18,17,15,15,17,16,16,15,14, - 19,19,18,17,17,16,16,14,14,14,14,14,12,13,19,17, - 16,16,15,15,15,13,13,12,13,12,12,14,17,15,16,15, - 15,13,13,12,11,11,11,11,12,16,18,16,15,14,14,13, - 12,11,10,10,10,11,14,18,17,17,14,13,13,12,11,10, - 8, 9, 9,11,15,19,18,17,14,13,12,11, 9, 7, 6, 7, - 10,13,17,18,17,16,14,13,11,10, 9, 6, 6, 7,10,13, - 16,19,18,17,15,14,12,11,10, 8, 7, 9,11,14,16,19, - 14,15,16,14,14,12,11,10,10,10,12,13,15,18,15,15, - 14,14,14,14,13,12,12,12,13,14,18,18,15,15,15,14, - 15,15,14,13,14,15,14,18,19,19,15,15,14,14,14,12, - 13,14,14,16,16,18,19,19,19,19,18,19,18,19,19,18, - 18,19,19,19,17,15,19,19,17,19,18,19,18,17,16,18, - 17,16,15,14,19,19,18,18,19,18,17,16,15,16,16,14, - 13,15,19,18,19,18,18,18,16,13,14,14,14,13,14,17, - 18,19,18,18,17,16,15,13,13,13,12,13,15,18,17,19, - 18,18,15,14,14,12,12,12,12,13,18,19,18,19,17,15, - 14,13,12,11,10,10,12,14,17,19,17,17,15,13,13,12, - 11, 9, 8, 9,12,15,17,19,18,18,15,14,12,11,10, 8, - 7, 8,11,14,17,19,18,16,15,14,13,12,11, 9, 8, 9, - 10,13,17,19,15,16,16,15,14,13,12,10,10,10,11,13, - 19,19,16,16,15,14,14,14,14,13,12,12,12,15,18,19, - 15,15,14,15,16,16,14,14,13,13,15,17,19,19,17,15, - 16,15,14,13,14,14,15,15,18,18,19,19,19,18,19,19, - 19,19,19,18,17,19,19,19,19,17,19,18,19,19,19,19, - 19,17,17,19,19,19,15,18,19,19,19,19,19,18,18,15, - 17,17,18,18,15,19,18,19,19,19,19,19,18,14,15,16, - 16,15,16,19,19,18,19,19,18,18,16,14,14,14,15,15, - 16,19,19,18,19,17,17,16,15,13,12,13,15,16,17,19, - 18,19,17,16,15,16,13,11,11,11,14,15,18,19,19,18, - 16,16,15,13,12,10, 9, 9,13,14,17,19,19,16,15,15, - 13,12,11, 9, 7, 8,11,13,17,19,17,16,16,15,14,13, - 12, 9, 8, 8,10,13,18,19,16,16,16,15,15,14,13,11, - 10, 9,11,14,18,19,16,15,15,15,16,15,14,13,11,11, - 12,15,19,19,15,16,16,17,17,15,15,14,13,13,14,19, - 19,19,19,17,17,16,14,14,14,14,15,15,18,19,19,19, - 19,19,19,19,19,19,19,19,18,19,19,19,19,19,19,19, - 19,19,19,19,19,19,19,19,19,19,18,19,19,19,19,19, - 19,19,19,17,18,19,19,19,19,19,19,19,19,19,19,19, - 19,15,17,18,18,19,19,19,19,19,19,19,19,18,18,15, - 14,16,17,18,19,19,19,19,19,18,18,18,16,15,14,15, - 17,16,18,19,18,18,19,18,18,15,15,13,12,13,14,16, - 18,19,19,19,18,18,15,14,13,11,10,10,13,15,18,19, - 18,18,17,16,15,14,13,10, 9, 9,11,14,18,19,18,18, - 18,17,15,14,13,10, 9, 9,11,14,17,19,17,17,16,17, - 16,16,14,11, 9,10,12,14,19,19,15,16,17,18,17,16, - 14,12,11,12,14,16,19,19,16,17,17,17,17,16,16,14, - 14,15,16,18,19,19,18,16,16,15,16,14,15,14,15,16, - 17,19,19,19,18,19,19,19,19,19,19,19,18,19,19,19, - 19,19,19,19,19,19,19,19,17,18,18,19,19,19,19,19, - 19,19,19,19,19,18,18,19,19,18,19,18,18,19,19,19, - 19,19,19,19,18,19,18,18,19,19,19,19,19,19,19,19, - 19,19,18,19,18,18,16,19,17,19,19,19,19,19,19,18, - 18,16,16,16,17,19,19,19,19,19,19,19,18,16,16,15, - 15,14,16,17,18,18,19,19,19,18,16,15,15,13,13,13, - 14,17,19,19,19,18,19,18,16,15,15,12,11,12,14,17, - 17,19,19,18,17,17,16,16,14,12,11,12,13,16,18,19, - 18,16,17,18,16,15,15,13,12,13,13,16,19,19,16,15, - 17,19,17,17,16,15,14,13,14,18,19,19,18,17,18,19, - 19,18,16,15,16,15,16,19,18,19,19,18,17,16,15,15, - 16,18,17,18,19,19,19,19, -}; - -static long _vq_pigeonmap_lsp30_1[] = { - 0, 0, 0, 0, 0, 0, 1, 1, - 1, 1, 1, 1, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 4, 4, 4, 4, 4, -}; - -static long _vq_fitlist_lsp30_1[] = { - 0, 14, 196, 1, 15, 197, 2, 16, - 198, 3, 210, 211, 17, 199, 212, 28, - 29, 30, 224, 43, 225, 31, 213, 226, - 42, 44, 238, 57, 239, 45, 58, 227, - 240, 394, 392, 393, 407, 395, 406, 408, - 409, 422, 420, 56, 421, 434, 253, 435, - 241, 254, 423, 436, 590, 588, 589, 603, - 591, 604, 602, 617, 605, 618, 616, 252, - 630, 449, 631, 437, 450, 619, 632, 785, - 786, 784, 798, 799, 787, 800, 813, 801, - 814, 812, 448, 3, 17, 199, 4, 5, - 18, 200, 6, 19, 201, 31, 213, 32, - 214, 20, 33, 202, 215, 45, 227, 228, - 34, 47, 216, 229, 46, 59, 241, 60, - 242, 48, 230, 243, 395, 396, 397, 409, - 410, 398, 411, 424, 412, 423, 425, 61, - 255, 437, 438, 244, 426, 439, 591, 592, - 593, 605, 606, 594, 607, 608, 619, 620, - 256, 621, 257, 633, 634, 440, 622, 635, - 787, 788, 789, 801, 790, 802, 803, 816, - 804, 815, 451, 452, 817, 453, 6, 20, - 202, 7, 216, 21, 203, 217, 399, 8, - 35, 204, 22, 218, 9, 36, 205, 400, - 34, 230, 231, 49, 232, 23, 48, 413, - 50, 219, 244, 245, 63, 246, 428, 37, - 62, 427, 64, 233, 398, 414, 412, 401, - 426, 415, 440, 441, 259, 260, 442, 51, - 595, 610, 609, 624, 258, 429, 594, 596, - 608, 597, 622, 623, 611, 636, 455, 637, - 456, 638, 247, 790, 791, 806, 818, 820, - 454, 625, 807, 805, 792, 804, 793, 819, - 832, 651, 833, 652, 834, 443, 9, 23, - 205, 219, 401, 10, 37, 24, 206, 220, - 11, 38, 207, 402, 25, 221, 12, 39, - 208, 403, 233, 415, 234, 416, 235, 26, - 53, 51, 52, 417, 222, 247, 248, 66, - 249, 40, 67, 404, 65, 429, 430, 431, - 236, 418, 261, 443, 444, 262, 445, 54, - 263, 597, 598, 599, 611, 612, 613, 600, - 625, 626, 627, 432, 614, 639, 457, 640, - 458, 641, 459, 793, 794, 795, 807, 808, - 809, 796, 823, 821, 822, 250, 628, 810, - 835, 653, 836, 654, 655, 837, 12, 26, - 208, 222, 13, 40, 209, 404, 27, 236, - 54, 418, 223, 41, 250, 68, 237, 55, - 405, 432, 419, 264, 446, 600, 628, 433, - 251, 614, 601, 615, 460, 642, 796, 810, - 797, 824, 629, 447, 811, 656, 838, 992, - 1006, 993, 1020, 825, 643, 1007, 852, 1034, - 1188, 1202, 1216, 1021, 839, 1189, 1203, 1230, - 1048, 1217, 1035, 1398, 1412, 1244, 29, 42, - 56, 225, 238, 43, 30, 57, 226, 239, - 44, 31, 45, 58, 227, 240, 70, 252, - 71, 253, 59, 72, 241, 254, 84, 266, - 85, 267, 73, 86, 255, 268, 280, 281, - 87, 269, 282, 421, 434, 422, 435, 423, - 436, 448, 449, 437, 450, 462, 463, 451, - 464, 476, 477, 283, 465, 478, 617, 630, - 618, 631, 619, 632, 644, 645, 633, 646, - 658, 647, 659, 660, 672, 673, 479, 661, - 674, 813, 826, 814, 827, 815, 828, 840, - 829, 841, 842, 843, 854, 855, 856, 32, - 45, 46, 59, 228, 241, 33, 47, 60, - 229, 242, 34, 61, 230, 243, 48, 73, - 255, 256, 62, 244, 257, 74, 75, 269, - 270, 76, 258, 271, 87, 88, 89, 283, - 284, 90, 272, 285, 424, 437, 425, 426, - 438, 439, 440, 451, 452, 453, 454, 465, - 466, 467, 479, 480, 286, 468, 481, 620, - 621, 622, 633, 634, 635, 636, 647, 648, - 649, 650, 663, 661, 662, 675, 676, 482, - 664, 677, 816, 829, 817, 818, 831, 830, - 844, 832, 843, 845, 857, 846, 859, 858, - 48, 62, 244, 35, 49, 217, 231, 258, - 413, 63, 245, 36, 218, 259, 50, 232, - 64, 246, 23, 37, 219, 260, 442, 51, - 233, 76, 77, 428, 78, 247, 272, 427, - 454, 273, 455, 274, 65, 429, 90, 91, - 92, 456, 261, 443, 286, 287, 469, 288, - 470, 79, 468, 275, 440, 441, 414, 415, - 457, 482, 105, 483, 484, 93, 106, 609, - 637, 638, 624, 651, 625, 650, 652, 665, - 639, 104, 664, 666, 471, 623, 636, 610, - 611, 653, 678, 301, 679, 680, 289, 302, - 833, 834, 820, 847, 821, 846, 848, 861, - 835, 300, 860, 862, 667, 805, 819, 832, - 806, 807, 849, 874, 875, 497, 876, 485, - 498, 37, 51, 233, 65, 247, 24, 38, - 220, 261, 443, 52, 234, 66, 248, 39, - 221, 262, 53, 80, 235, 417, 67, 249, - 40, 222, 263, 54, 81, 236, 418, 79, - 444, 445, 250, 275, 93, 430, 276, 94, - 431, 277, 68, 457, 458, 95, 264, 446, - 289, 290, 291, 473, 82, 471, 472, 109, - 278, 460, 429, 416, 432, 459, 107, 485, - 486, 108, 487, 612, 613, 639, 640, 628, - 626, 627, 655, 653, 654, 642, 669, 667, - 304, 96, 474, 625, 641, 614, 668, 656, - 303, 681, 682, 305, 683, 292, 808, 809, - 837, 835, 836, 824, 822, 850, 851, 849, - 838, 864, 865, 863, 500, 670, 821, 823, - 810, 852, 499, 877, 878, 879, 488, 501, - 40, 54, 236, 68, 250, 27, 41, 223, - 264, 446, 55, 237, 82, 251, 433, 69, - 278, 460, 96, 265, 447, 83, 292, 474, - 279, 97, 432, 419, 461, 488, 110, 642, - 629, 656, 643, 670, 475, 293, 628, 615, - 657, 684, 306, 838, 825, 852, 839, 866, - 671, 489, 824, 811, 853, 880, 502, 71, - 84, 85, 267, 280, 98, 72, 86, 268, - 281, 73, 269, 282, 87, 100, 476, 99, - 294, 477, 283, 295, 465, 478, 74, 88, - 101, 270, 296, 479, 490, 112, 491, 113, - 297, 492, 114, 308, 309, 102, 310, 493, - 115, 298, 504, 126, 505, 127, 311, 506, - 322, 323, 128, 116, 324, 507, 463, 464, - 284, 129, 312, 672, 673, 661, 674, 466, - 675, 686, 687, 688, 689, 494, 700, 701, - 702, 518, 519, 520, 703, 659, 660, 480, - 325, 508, 855, 868, 869, 857, 870, 662, - 871, 882, 883, 884, 885, 690, 896, 897, - 898, 714, 715, 716, 899, 856, 676, 521, - 704, 74, 87, 270, 283, 88, 101, 75, - 271, 284, 89, 102, 76, 272, 285, 90, - 100, 296, 466, 479, 297, 480, 103, 286, - 298, 481, 104, 299, 482, 114, 493, 115, - 494, 116, 300, 495, 310, 311, 312, 117, - 313, 496, 118, 128, 507, 129, 508, 130, - 314, 509, 131, 324, 325, 326, 327, 510, - 467, 468, 132, 492, 675, 676, 677, 678, - 689, 690, 691, 506, 692, 703, 704, 705, - 520, 521, 522, 523, 706, 662, 663, 664, - 328, 688, 871, 872, 873, 874, 885, 886, - 887, 702, 888, 899, 900, 901, 716, 717, - 718, 719, 902, 858, 859, 860, 524, 90, - 286, 77, 91, 104, 259, 273, 287, 64, - 78, 105, 260, 274, 456, 483, 92, 288, - 65, 79, 106, 261, 275, 457, 484, 93, - 103, 299, 482, 300, 301, 470, 302, 289, - 471, 496, 497, 119, 120, 498, 107, 485, - 117, 118, 315, 316, 303, 313, 314, 510, - 511, 121, 499, 512, 133, 134, 317, 131, - 132, 329, 330, 327, 328, 455, 469, 693, - 513, 652, 679, 653, 680, 495, 678, 666, - 667, 692, 694, 681, 509, 707, 695, 706, - 708, 523, 524, 525, 526, 651, 665, 889, - 890, 903, 709, 875, 848, 849, 876, 691, - 874, 861, 862, 863, 888, 877, 705, 891, - 902, 904, 719, 720, 721, 722, 847, 1085, - 905, 79, 93, 275, 289, 66, 80, 107, - 262, 276, 485, 94, 458, 290, 67, 81, - 108, 263, 277, 459, 486, 95, 291, 68, - 82, 109, 264, 278, 460, 487, 96, 303, - 304, 305, 292, 474, 472, 121, 499, 500, - 122, 501, 110, 123, 488, 317, 318, 319, - 306, 124, 502, 515, 513, 135, 514, 136, - 137, 320, 331, 332, 333, 471, 473, 696, - 697, 709, 710, 516, 681, 654, 655, 682, - 656, 683, 670, 695, 684, 698, 711, 527, - 528, 529, 667, 668, 669, 892, 893, 905, - 906, 712, 850, 877, 851, 878, 852, 879, - 864, 866, 891, 880, 894, 907, 723, 724, - 725, 863, 865, 1088, 1089, 1101, 1102, 908, - 82, 96, 278, 292, 69, 83, 110, 265, - 279, 461, 488, 97, 306, 293, 475, 111, - 489, 124, 502, 320, 307, 503, 125, 516, - 138, 321, 334, 517, 474, 699, 712, 139, - 657, 684, 671, 685, 698, 530, 713, 670, - 335, 853, 880, 881, 867, 894, 895, 908, - 726, 909, 866, 531, 1049, 1076, 1077, 1063, - 1090, 1091, 1104, 922, 1105, 1062, 727, 1245, - 1272, 1273, 1286, 1287, 1300, 1118, 1301, 1258, - 1259, 923, 1314, 1441, 1468, 1469, 1455, 1482, - 1483, 1496, 1119, 1497, 113, 126, 309, 114, - 127, 310, 322, 505, 115, 128, 311, 323, - 506, 116, 129, 312, 324, 507, 518, 140, - 519, 141, 325, 520, 336, 337, 142, 130, - 338, 521, 143, 326, 532, 154, 533, 155, - 339, 534, 350, 351, 156, 144, 352, 535, - 157, 340, 546, 168, 547, 169, 353, 548, - 170, 364, 365, 158, 366, 549, 171, 354, - 701, 702, 508, 703, 714, 715, 716, 717, - 522, 728, 729, 730, 731, 536, 742, 743, - 744, 560, 561, 562, 745, 367, 550, 897, - 898, 704, 899, 910, 911, 912, 913, 718, - 924, 925, 926, 927, 732, 938, 939, 940, - 756, 757, 758, 941, 563, 746, 116, 129, - 312, 117, 130, 313, 325, 508, 118, 131, - 314, 326, 509, 132, 327, 510, 142, 521, - 143, 522, 144, 328, 523, 145, 338, 339, - 340, 341, 524, 146, 156, 535, 157, 536, - 158, 342, 537, 159, 352, 353, 354, 355, - 538, 160, 170, 549, 171, 550, 172, 356, - 551, 366, 367, 368, 173, 369, 552, 174, - 704, 705, 706, 717, 718, 719, 534, 720, - 731, 732, 733, 548, 734, 745, 746, 747, - 562, 563, 564, 565, 748, 370, 900, 901, - 902, 913, 914, 915, 730, 916, 927, 928, - 929, 744, 930, 941, 942, 943, 758, 759, - 760, 761, 944, 566, 132, 119, 315, 328, - 133, 511, 120, 316, 329, 134, 512, 525, - 121, 317, 330, 513, 524, 147, 526, 135, - 148, 331, 145, 146, 343, 344, 341, 342, - 527, 538, 539, 161, 540, 149, 162, 345, - 159, 160, 357, 358, 355, 356, 552, 163, - 541, 554, 174, 553, 175, 176, 359, 173, - 371, 372, 369, 370, 722, 723, 735, 736, - 749, 555, 707, 708, 709, 720, 721, 537, - 734, 551, 737, 750, 748, 565, 566, 567, - 568, 903, 918, 919, 931, 932, 945, 751, - 904, 905, 916, 917, 733, 930, 747, 933, - 944, 946, 761, 762, 763, 764, 1101, 1114, - 1115, 1127, 1128, 1141, 947, 121, 135, 317, - 513, 122, 318, 331, 514, 136, 123, 319, - 332, 137, 515, 528, 124, 320, 333, 516, - 527, 149, 150, 529, 138, 151, 334, 345, - 346, 347, 541, 530, 163, 542, 164, 543, - 152, 165, 348, 359, 360, 361, 544, 555, - 177, 556, 178, 557, 166, 179, 362, 373, - 374, 375, 710, 712, 723, 725, 726, 738, - 739, 740, 751, 752, 753, 558, 709, 711, - 724, 737, 569, 570, 571, 906, 919, 922, - 935, 936, 948, 949, 754, 905, 907, 908, - 920, 921, 933, 934, 947, 765, 766, 767, - 1102, 1115, 1118, 1131, 1132, 1144, 1145, 950, - 124, 138, 320, 516, 125, 321, 334, 517, - 139, 530, 152, 335, 348, 531, 153, 544, - 166, 349, 362, 545, 167, 558, 180, 363, - 376, 559, 726, 727, 740, 181, 712, 713, - 741, 754, 572, 755, 922, 923, 936, 937, - 950, 377, 908, 909, 768, 951, 1105, 1118, - 1119, 1132, 573, 1104, 1133, 1146, 964, 1147, - 1301, 1314, 1315, 1328, 769, 1300, 1329, 1342, - 1160, 1343, 965, 1497, 1510, 1511, 1524, 1356, - 1496, 1525, 1538, 1161, 1539, 168, 351, 156, - 169, 352, 364, 547, 157, 170, 353, 365, - 548, 158, 171, 354, 366, 549, 560, 182, - 561, 183, 367, 562, 378, 379, 184, 172, - 380, 563, 185, 368, 574, 575, 381, 576, - 743, 744, 550, 745, 756, 757, 758, 759, - 564, 770, 771, 577, 772, 939, 940, 746, - 941, 952, 953, 954, 955, 760, 966, 967, - 773, 968, 171, 354, 159, 172, 355, 367, - 550, 160, 173, 356, 368, 551, 174, 369, - 552, 184, 563, 185, 564, 186, 370, 565, - 187, 380, 381, 382, 383, 566, 188, 577, - 578, 384, 579, 746, 747, 748, 759, 760, - 761, 576, 762, 773, 774, 580, 775, 942, - 943, 944, 955, 956, 957, 772, 958, 969, - 970, 776, 971, 1138, 1139, 1140, 1151, 1152, - 1153, 968, 1154, 1165, 1166, 972, 1167, 1334, - 1335, 1336, 1347, 1348, 1349, 1164, 1350, 1361, - 1362, 1168, 1363, 1360, 1530, 1531, 1532, 1543, - 1544, 1545, 1546, 1364, 174, 161, 357, 370, - 175, 553, 566, 162, 358, 371, 176, 554, - 567, 163, 359, 372, 555, 189, 568, 177, - 190, 373, 187, 188, 385, 386, 383, 384, - 569, 749, 751, 764, 580, 581, 582, 191, - 750, 763, 762, 579, 765, 945, 776, 777, - 778, 387, 946, 947, 958, 959, 960, 775, - 961, 1141, 972, 973, 974, 583, 1142, 1155, - 1143, 1154, 1156, 971, 1157, 1168, 1169, 1170, - 779, 1337, 1338, 1339, 1350, 1351, 1352, 1167, - 975, 1353, 1364, 1365, 1366, 1363, 1171, 1533, - 1534, 1547, 1535, 1546, 1548, 1549, 163, 177, - 359, 555, 164, 360, 373, 556, 178, 165, - 361, 374, 557, 179, 166, 362, 375, 180, - 558, 571, 569, 191, 570, 192, 193, 376, - 387, 388, 389, 584, 194, 572, 585, 752, - 753, 765, 766, 583, 751, 754, 767, 779, - 780, 768, 948, 949, 950, 961, 962, 963, - 781, 390, 947, 975, 976, 964, 1144, 1145, - 1157, 1158, 977, 586, 166, 180, 362, 558, - 167, 363, 376, 181, 559, 572, 194, 377, - 390, 573, 195, 586, 391, 754, 755, 768, - 769, 782, 587, 950, 951, 964, 965, 978, - 783, 1146, 1147, 1160, 1161, 1174, 979, 1342, - 1343, 1356, 1357, 1370, 1175, 1538, 1539, 1552, - 1553, 1371, 393, 406, 588, 602, 784, 589, - 394, 407, 603, 785, 590, 395, 408, 604, - 786, 591, 420, 798, 421, 799, 409, 422, - 605, 618, 787, 800, 616, 617, 434, 812, - 435, 631, 813, 423, 436, 619, 632, 801, - 814, 630, 448, 826, 449, 645, 827, 437, - 450, 633, 815, 828, 980, 981, 982, 994, - 995, 983, 996, 1008, 1009, 997, 644, 1010, - 646, 840, 1022, 1023, 829, 842, 1011, 1024, - 1176, 1177, 1178, 1190, 1191, 1179, 1192, 1204, - 1193, 1205, 841, 1206, 1218, 1219, 1025, 1038, - 1207, 1220, 1036, 1037, 396, 409, 591, 592, - 605, 787, 397, 410, 593, 606, 788, 398, - 411, 607, 789, 594, 423, 619, 801, 424, - 802, 412, 425, 608, 790, 803, 620, 621, - 437, 815, 438, 816, 426, 439, 622, 804, - 817, 633, 634, 635, 451, 829, 452, 830, - 440, 453, 636, 818, 831, 983, 984, 985, - 986, 997, 998, 999, 1012, 1000, 1013, 1011, - 647, 648, 649, 1025, 844, 1026, 832, 845, - 1014, 1027, 1179, 1180, 1181, 1182, 1193, 1194, - 1195, 1208, 1196, 1209, 1207, 843, 1039, 1221, - 1040, 1222, 1028, 1041, 1210, 1223, 412, 594, - 608, 790, 230, 399, 426, 595, 804, 986, - 413, 609, 791, 427, 805, 204, 400, 596, - 623, 414, 610, 792, 232, 428, 806, 988, - 205, 401, 597, 624, 622, 218, 219, 415, - 793, 244, 440, 818, 1000, 245, 441, 819, - 246, 442, 820, 1002, 611, 636, 637, 638, - 233, 429, 807, 989, 454, 832, 259, 455, - 833, 1015, 260, 456, 834, 1016, 625, 258, - 650, 651, 652, 247, 443, 821, 987, 1001, - 1014, 1003, 1028, 1029, 847, 1030, 639, 848, - 1182, 1183, 1184, 1198, 1196, 1211, 1185, 846, - 1212, 1017, 1197, 1210, 1199, 1224, 1043, 1225, - 1226, 835, 1044, 1042, 1213, 1379, 1394, 1393, - 1408, 1239, 1031, 1240, 401, 597, 415, 611, - 793, 233, 429, 807, 989, 206, 402, 598, - 625, 416, 612, 794, 430, 808, 207, 234, - 403, 599, 626, 990, 417, 613, 795, 431, - 809, 208, 404, 600, 627, 220, 235, 991, - 418, 796, 247, 443, 821, 1003, 444, 822, - 640, 445, 823, 222, 614, 639, 248, 1004, - 249, 641, 236, 432, 810, 992, 457, 835, - 653, 458, 836, 654, 263, 459, 837, 1019, - 628, 261, 1017, 262, 1018, 655, 250, 446, - 824, 1006, 1005, 1031, 849, 850, 1032, 851, - 1033, 1186, 1185, 1199, 1200, 1201, 1188, 1215, - 1213, 642, 1020, 1202, 1187, 1214, 1227, 1045, - 1046, 1228, 1047, 1229, 838, 1216, 1381, 1382, - 1383, 1395, 1396, 1397, 1409, 1241, 1242, 1410, - 1034, 1243, 1398, 435, 448, 617, 630, 631, - 644, 813, 826, 436, 449, 618, 632, 645, - 814, 827, 437, 450, 619, 646, 815, 828, - 633, 462, 658, 840, 463, 841, 451, 464, - 647, 829, 842, 659, 660, 476, 854, 477, - 855, 465, 478, 661, 843, 856, 672, 673, - 674, 868, 869, 479, 675, 857, 870, 1009, - 1022, 1010, 1011, 1023, 1024, 1025, 1036, 1037, - 1038, 1039, 1050, 1051, 1052, 1064, 1065, 871, - 1053, 1066, 1205, 1206, 1207, 1218, 1219, 1220, - 1221, 1232, 1233, 1234, 1235, 1248, 1246, 1247, - 1260, 1261, 1067, 1249, 1262, 438, 451, 620, - 633, 647, 816, 829, 634, 439, 452, 621, - 648, 817, 830, 635, 440, 453, 622, 649, - 818, 831, 636, 465, 843, 466, 844, 454, - 467, 650, 832, 845, 661, 662, 663, 479, - 857, 480, 858, 468, 481, 664, 846, 859, - 675, 676, 677, 871, 872, 482, 678, 860, - 873, 1012, 1025, 1013, 1026, 1014, 1027, 1039, - 1040, 1028, 1041, 1053, 1054, 1042, 1055, 1067, - 1068, 874, 1056, 1069, 1208, 1221, 1209, 1222, - 1210, 1223, 1235, 1236, 1224, 1237, 1249, 1250, - 1238, 1251, 1263, 1264, 1070, 1252, 1265, 454, - 636, 650, 832, 427, 441, 468, 623, 637, - 805, 819, 846, 455, 651, 833, 273, 428, - 469, 610, 624, 806, 847, 1029, 442, 638, - 820, 456, 652, 834, 274, 429, 470, 611, - 625, 807, 848, 1030, 443, 639, 821, 664, - 665, 260, 1016, 666, 457, 835, 482, 860, - 287, 483, 861, 1043, 484, 862, 653, 680, - 1017, 678, 1042, 679, 288, 1044, 471, 849, - 874, 875, 1057, 876, 667, 1031, 300, 496, - 1056, 497, 302, 498, 1058, 485, 863, 1001, - 1015, 1028, 1002, 1003, 1045, 1070, 1071, 693, - 1072, 681, 694, 1225, 1226, 1212, 1213, 1238, - 1239, 1240, 1253, 1227, 692, 1254, 1059, 1197, - 1211, 1224, 1198, 1199, 1252, 1241, 1266, 1267, - 889, 1268, 877, 890, 888, 1086, 1255, 1421, - 1422, 1408, 1409, 1435, 1436, 1434, 1449, 1423, - 1084, 1448, 1085, 1450, 1073, 443, 625, 639, - 821, 457, 653, 835, 430, 471, 626, 808, - 849, 248, 444, 640, 667, 822, 1004, 458, - 654, 836, 431, 472, 627, 809, 850, 445, - 641, 823, 459, 655, 837, 277, 432, 473, - 614, 628, 810, 851, 1033, 446, 642, 824, - 275, 1031, 276, 668, 1019, 669, 264, 460, - 838, 1020, 485, 863, 262, 681, 1018, 290, - 486, 864, 1046, 291, 487, 865, 1047, 656, - 289, 1045, 682, 683, 278, 474, 852, 1034, - 877, 878, 1060, 879, 1061, 670, 303, 499, - 500, 696, 501, 488, 866, 1017, 1032, 1005, - 1006, 1059, 1048, 695, 1073, 1074, 1075, 684, - 697, 1200, 1201, 1229, 1202, 1227, 1228, 1215, - 1216, 1242, 1243, 1256, 1230, 1255, 1257, 1062, - 1213, 1214, 1241, 1244, 891, 1269, 1270, 892, - 1271, 880, 893, 1258, 1396, 1425, 1423, 1424, - 1412, 1410, 1439, 1437, 1426, 1452, 1453, 1087, - 1451, 1088, 1089, 446, 628, 642, 824, 460, - 656, 838, 278, 433, 474, 615, 629, 811, - 852, 1034, 447, 643, 825, 670, 461, 839, - 657, 488, 866, 684, 1021, 292, 1048, 475, - 853, 671, 880, 1035, 306, 502, 1062, 489, - 867, 685, 1020, 1007, 1049, 1076, 698, 1230, - 1217, 1244, 1063, 881, 1216, 1203, 1231, 1258, - 1245, 894, 1272, 1090, 1259, 1077, 1426, 1413, - 1440, 1427, 1454, 477, 659, 672, 855, 868, - 490, 673, 686, 478, 660, 856, 869, 491, - 674, 687, 479, 661, 857, 870, 492, 675, - 294, 1064, 295, 882, 1052, 1065, 296, 688, - 871, 883, 1066, 297, 480, 493, 676, 689, - 858, 884, 1067, 308, 504, 1078, 309, 505, - 700, 1079, 310, 506, 701, 885, 1080, 896, - 897, 702, 311, 494, 507, 690, 898, 1081, - 703, 886, 322, 518, 1092, 323, 519, 714, - 1093, 324, 520, 715, 899, 1094, 910, 911, - 716, 325, 508, 521, 704, 912, 1095, 1051, - 1053, 872, 717, 900, 1260, 1261, 1262, 1054, - 1263, 1274, 1275, 1276, 1277, 1082, 1288, 1289, - 1290, 1106, 1107, 1108, 1291, 1247, 1248, 1249, - 1068, 913, 1096, 1250, 1278, 1302, 1303, 1304, - 1443, 1456, 1457, 1445, 1458, 1264, 1459, 1470, - 1471, 1472, 1473, 1484, 1485, 1486, 1109, 1292, - 1487, 480, 662, 675, 858, 871, 493, 676, - 689, 481, 663, 859, 872, 494, 677, 690, - 482, 664, 860, 873, 495, 678, 297, 688, - 884, 1067, 298, 885, 1068, 299, 691, 874, - 886, 1069, 300, 496, 692, 887, 1070, 311, - 506, 507, 702, 1081, 312, 508, 703, 1082, - 313, 509, 704, 888, 1083, 898, 899, 900, - 705, 314, 510, 901, 1084, 706, 325, 520, - 521, 716, 1095, 326, 522, 717, 1096, 327, - 523, 718, 902, 1097, 719, 912, 913, 914, - 328, 524, 915, 1098, 1054, 1055, 1056, 720, - 1080, 1263, 1264, 1265, 1266, 1277, 1278, 1279, - 1094, 1280, 1291, 1292, 1293, 1108, 1109, 1110, - 1111, 1294, 1250, 1251, 1252, 916, 1276, 1290, - 1304, 1305, 1306, 1307, 1459, 1460, 1461, 1462, - 1473, 1474, 1475, 1476, 1487, 1488, 1489, 1112, - 1490, 678, 874, 469, 483, 496, 665, 679, - 692, 847, 861, 875, 301, 470, 484, 497, - 652, 666, 693, 848, 862, 1044, 1071, 288, - 680, 876, 289, 302, 471, 485, 498, 653, - 667, 694, 849, 863, 1045, 1072, 681, 300, - 691, 887, 1070, 888, 889, 890, 877, 1058, - 499, 314, 510, 1084, 315, 511, 1085, 707, - 303, 316, 512, 708, 1086, 695, 1073, 509, - 705, 706, 891, 901, 902, 903, 904, 525, - 317, 513, 526, 1087, 328, 524, 1098, 329, - 721, 1099, 330, 1100, 709, 722, 523, 719, - 720, 905, 915, 916, 917, 918, 1043, 1057, - 1059, 1281, 1101, 1239, 1267, 1240, 1241, 1268, - 1083, 1266, 1254, 1255, 1280, 1282, 1269, 1097, - 1283, 1294, 1295, 1296, 1111, 1112, 1113, 1114, - 1253, 1297, 1279, 1477, 1293, 1307, 1308, 1309, - 1310, 1436, 1463, 1437, 1464, 1462, 1450, 1476, - 1451, 1478, 1465, 1491, 1479, 1490, 1492, 485, - 667, 681, 863, 877, 290, 303, 472, 486, - 499, 654, 668, 695, 850, 864, 1046, 1073, - 682, 878, 291, 304, 473, 487, 500, 655, - 669, 696, 851, 865, 1047, 1074, 683, 879, - 305, 474, 488, 501, 656, 670, 697, 852, - 866, 1075, 292, 684, 1048, 891, 1060, 892, - 893, 880, 306, 502, 1062, 317, 513, 1087, - 709, 318, 514, 1061, 1088, 710, 319, 515, - 711, 1089, 698, 1076, 894, 905, 906, 907, - 527, 332, 528, 1102, 320, 333, 516, 529, - 712, 1090, 1103, 331, 1101, 723, 724, 725, - 908, 919, 920, 921, 1059, 1284, 1285, 1297, - 1298, 1104, 1242, 1269, 1243, 1270, 1271, 1244, - 1256, 1283, 1257, 1272, 1286, 1299, 1115, 1116, - 1117, 1255, 1258, 1300, 1480, 1493, 1311, 1312, - 1313, 1465, 1439, 1466, 1467, 1440, 1452, 1454, - 1479, 1481, 1468, 1494, 1482, 1495, 518, 701, - 714, 897, 323, 519, 702, 715, 898, 910, - 1093, 324, 520, 703, 716, 899, 911, 1094, - 325, 521, 704, 717, 900, 912, 1095, 336, - 532, 1106, 337, 533, 728, 1107, 338, 534, - 729, 913, 1108, 730, 924, 925, 339, 522, - 535, 718, 926, 1109, 731, 914, 350, 546, - 1120, 351, 547, 742, 1121, 743, 352, 548, - 927, 1122, 744, 938, 939, 353, 536, 549, - 732, 940, 1123, 745, 928, 364, 560, 1134, - 756, 365, 561, 1135, 366, 562, 757, 941, - 1136, 952, 953, 758, 367, 550, 563, 746, - 954, 1137, 759, 942, 1289, 1290, 1096, 1291, - 1302, 1303, 1304, 1305, 1110, 1316, 1317, 1318, - 1319, 1124, 1330, 1331, 1332, 1148, 1149, 1150, - 1333, 955, 1138, 1292, 1306, 1320, 1344, 1345, - 1346, 1485, 1486, 1487, 1498, 1499, 1500, 1501, - 1512, 1513, 1514, 1515, 1526, 1527, 1528, 1151, - 1334, 1529, 521, 704, 717, 900, 326, 522, - 705, 718, 901, 913, 1096, 327, 523, 706, - 719, 902, 914, 1097, 328, 524, 720, 915, - 1098, 339, 534, 535, 730, 1109, 731, 340, - 536, 1110, 732, 341, 537, 916, 1111, 926, - 927, 928, 733, 342, 538, 929, 1112, 734, - 353, 548, 549, 744, 1123, 354, 550, 745, - 1124, 355, 551, 746, 930, 1125, 940, 941, - 942, 747, 356, 552, 943, 1126, 748, 367, - 562, 563, 758, 1137, 368, 564, 759, 1138, - 369, 565, 760, 944, 1139, 954, 955, 956, - 761, 370, 566, 957, 1140, 762, 1292, 1293, - 1294, 1305, 1306, 1307, 1122, 1308, 1319, 1320, - 1321, 1136, 1322, 1333, 1334, 1335, 1150, 1151, - 1152, 1153, 1336, 958, 1318, 1332, 1346, 1347, - 1348, 1349, 1488, 1489, 1490, 1501, 1502, 1503, - 1504, 1515, 1516, 1517, 1518, 1529, 1530, 1531, - 1154, 1532, 524, 720, 525, 707, 903, 916, - 329, 721, 1099, 708, 904, 917, 330, 526, - 539, 1100, 722, 709, 905, 918, 331, 527, - 540, 1101, 342, 538, 1112, 343, 1113, 735, - 344, 1114, 723, 736, 537, 733, 734, 919, - 929, 930, 931, 932, 553, 345, 358, 541, - 554, 737, 1115, 1128, 356, 552, 1126, 357, - 1127, 749, 750, 551, 747, 748, 933, 943, - 944, 945, 946, 371, 567, 1141, 359, 372, - 555, 568, 751, 1129, 1142, 370, 566, 1140, - 763, 764, 565, 761, 762, 947, 957, 958, - 959, 960, 1297, 1310, 1311, 1323, 1324, 1337, - 1143, 1295, 1296, 1308, 1309, 1125, 1322, 1139, - 1325, 1336, 1338, 1153, 1154, 1155, 1156, 1339, - 1506, 1321, 1519, 1335, 1349, 1350, 1351, 1352, - 1491, 1492, 1493, 1504, 1505, 1507, 1520, 1518, - 1533, 1521, 1534, 1532, 331, 527, 723, 905, - 1101, 710, 906, 919, 332, 345, 528, 541, - 724, 1102, 1115, 711, 907, 920, 333, 346, - 529, 542, 725, 1103, 1116, 712, 908, 921, - 334, 530, 543, 1104, 737, 738, 347, 1117, - 726, 739, 922, 933, 934, 935, 359, 555, - 1129, 556, 348, 544, 557, 1118, 751, 360, - 1130, 752, 361, 1131, 740, 753, 936, 947, - 948, 949, 569, 570, 362, 558, 571, 1132, - 1145, 373, 1143, 765, 374, 1144, 766, 375, - 754, 767, 950, 961, 962, 963, 1298, 1311, - 1314, 1327, 1328, 1340, 1341, 1146, 1297, 1299, - 1300, 1312, 1313, 1325, 1326, 1339, 1157, 1158, - 1159, 1342, 1510, 1523, 1524, 1536, 1537, 1353, - 1354, 1355, 1493, 1494, 1507, 1495, 1508, 1496, - 1509, 1521, 1522, 1535, 560, 756, 939, 365, - 561, 744, 757, 940, 952, 1135, 366, 562, - 745, 758, 941, 953, 1136, 367, 563, 746, - 759, 942, 954, 1137, 378, 574, 1148, 379, - 575, 770, 1149, 380, 576, 771, 955, 1150, - 966, 967, 772, 381, 564, 577, 760, 968, - 1151, 773, 956, 1162, 1163, 969, 1164, 1331, - 1332, 1138, 1333, 1344, 1345, 1346, 1347, 1152, - 1358, 1359, 1165, 1360, 1334, 1348, 1527, 1528, - 1529, 1540, 1541, 1542, 1543, 1361, 373, 569, - 765, 947, 1143, 752, 948, 961, 374, 570, - 583, 1144, 766, 753, 949, 962, 375, 571, - 584, 1145, 1158, 767, 754, 950, 963, 376, - 572, 585, 768, 1146, 387, 1157, 779, 388, - 780, 389, 781, 1159, 964, 975, 976, 977, - 1171, 390, 586, 1160, 1340, 1341, 1353, 1354, - 1172, 1173, 782, 1339, 1342, 1355, 1367, 1356, - 1368, 1369, 978, 1536, 1537, 1549, 1550, 1174, - 1535, 1538, 1551, 1563, 1564, 1552, 981, 994, - 1176, 1177, 1190, 982, 995, 1178, 1191, 983, - 996, 1192, 1179, 1374, 1372, 1008, 1204, 1373, - 1009, 997, 1010, 1193, 1205, 1387, 1206, 1375, - 1388, 1386, 1022, 1023, 1011, 1024, 1207, 1218, - 1400, 1219, 1401, 1220, 1389, 1036, 1037, 1402, - 1025, 1038, 1221, 1234, 984, 1180, 1194, 1376, - 1232, 1414, 1233, 1415, 1208, 1390, 1403, 1416, - 1428, 1429, 1417, 1568, 1569, 1570, 1582, 1583, - 1571, 1584, 1596, 1597, 1585, 1598, 1610, 1611, - 1404, 1430, 1599, 1612, 1572, 1586, 1624, 1625, - 1613, 1626, 1764, 1765, 1766, 1778, 1779, 1767, - 1780, 1792, 1793, 1781, 1794, 1806, 1807, 1600, - 1795, 1808, 1768, 1782, 984, 997, 1179, 1193, - 1180, 1375, 985, 998, 1194, 1181, 1376, 986, - 999, 1182, 1195, 1011, 1207, 1012, 1208, 1377, - 1000, 1013, 1196, 1209, 1389, 1378, 1025, 1221, - 1390, 1026, 1391, 1014, 1027, 1210, 1223, 1222, - 1392, 1403, 1039, 1235, 1404, 1040, 1236, 1405, - 1028, 1041, 1224, 1237, 1010, 1192, 1206, 1388, - 1220, 1402, 1234, 1416, 1417, 1418, 1406, 1419, - 1430, 1431, 1432, 1420, 1571, 1572, 1573, 1585, - 1586, 1574, 1587, 1599, 1600, 1588, 1601, 1613, - 1614, 1433, 1602, 1615, 1584, 1598, 1612, 1626, - 1627, 1628, 1616, 1629, 1767, 1768, 1769, 1781, - 1782, 1770, 1783, 1795, 1796, 1784, 1797, 1809, - 1810, 1798, 1811, 1780, 1794, 1808, 1000, 1182, - 1196, 987, 1014, 1183, 1378, 1001, 1197, 819, - 1015, 1379, 792, 988, 1184, 1211, 1393, 1002, - 1198, 1016, 1380, 793, 820, 989, 1185, 1212, - 1394, 805, 1210, 1392, 1003, 1028, 1029, 1225, - 1030, 1199, 1226, 1381, 832, 1224, 1406, 1407, - 834, 1408, 1017, 1042, 1043, 1239, 1044, 821, - 1213, 1240, 1395, 1238, 1420, 847, 1421, 848, - 1422, 1031, 1195, 1209, 1391, 1223, 1405, 1237, - 1419, 1227, 1409, 1433, 1435, 1253, 1436, 1254, - 1574, 1575, 1576, 1588, 1590, 1577, 1603, 1604, - 1434, 1589, 1602, 1617, 1591, 1618, 1616, 1423, - 1587, 1601, 1615, 1449, 1631, 1450, 1605, 1632, - 1629, 1771, 1772, 1770, 1784, 1785, 1786, 1799, - 1773, 1630, 1800, 1798, 1813, 1787, 1814, 1812, - 1619, 1783, 1797, 1811, 1645, 1827, 1646, 1801, - 1828, 989, 1185, 1003, 1199, 1017, 1381, 794, - 821, 990, 1186, 1213, 1395, 1004, 1200, 1018, - 1382, 795, 991, 1187, 1214, 1396, 1005, 1201, - 823, 1019, 1383, 796, 992, 1188, 1215, 1397, - 809, 810, 1006, 1031, 836, 1032, 837, 1033, - 1202, 1229, 1384, 1227, 1409, 1228, 1410, 1411, - 1020, 1045, 850, 1046, 1242, 1047, 824, 1216, - 1243, 1398, 1241, 1423, 1424, 851, 1425, 1034, - 1230, 1412, 1059, 1255, 1437, 1256, 1438, 1439, - 1257, 1577, 1578, 1579, 1591, 1592, 1580, 1607, - 1605, 1594, 1593, 1606, 1619, 1620, 1621, 1451, - 1633, 1452, 1634, 1426, 1453, 1608, 1635, 1773, - 1774, 1775, 1788, 1787, 1789, 1802, 1776, 1803, - 1801, 1815, 1816, 1790, 1817, 1622, 1647, 1829, - 1648, 1830, 1649, 1804, 1831, 992, 1188, 1006, - 1202, 1020, 1384, 797, 824, 993, 1189, 1216, - 1398, 1007, 1203, 1034, 811, 1230, 1385, 838, - 1412, 1021, 1217, 1048, 1244, 1399, 852, 1426, - 1035, 1231, 1413, 1062, 1258, 1440, 1580, 1594, - 1608, 1427, 1581, 1595, 1622, 1609, 1454, 1636, - 1776, 1790, 1777, 1804, 1623, 1791, 1818, 1805, - 1650, 1832, 1023, 1036, 1205, 1218, 1232, 1219, - 1401, 1414, 1024, 1037, 1206, 1233, 1220, 1402, - 1415, 1025, 1038, 1207, 1221, 1234, 1403, 1050, - 1051, 1416, 1039, 1052, 1235, 1248, 1246, 1428, - 1247, 1417, 1064, 1260, 1429, 1065, 1261, 1430, - 1053, 1066, 1249, 1262, 1431, 1442, 1443, 1444, - 1067, 1263, 1387, 1400, 1388, 1389, 1208, 1222, - 1404, 1236, 1418, 1456, 1457, 1078, 1079, 1080, - 1250, 1432, 1445, 1458, 1390, 1274, 1275, 1459, - 1583, 1596, 1597, 1610, 1584, 1598, 1611, 1585, - 1599, 1612, 1624, 1625, 1613, 1626, 1638, 1639, - 1627, 1640, 1652, 1471, 1653, 1446, 1641, 1654, - 1586, 1600, 1614, 1470, 1472, 1628, 1655, 1779, - 1792, 1793, 1806, 1780, 1794, 1807, 1781, 1795, - 1808, 1820, 1821, 1809, 1822, 1834, 1835, 1823, - 1836, 1848, 1849, 1642, 1837, 1850, 1782, 1796, - 1810, 1666, 1667, 1668, 1824, 1026, 1039, 1208, - 1221, 1222, 1235, 1404, 1027, 1040, 1209, 1223, - 1236, 1405, 1028, 1041, 1210, 1224, 1237, 1406, - 1417, 1053, 1249, 1418, 1054, 1250, 1419, 1042, - 1055, 1238, 1251, 1420, 1431, 1067, 1263, 1432, - 1068, 1264, 1433, 1056, 1069, 1252, 1265, 1434, - 1447, 1445, 1446, 1070, 1266, 1234, 1248, 1390, - 1403, 1430, 1391, 1392, 1262, 1444, 1458, 1459, - 1460, 1081, 1277, 1082, 1083, 1279, 1448, 1461, - 1276, 1278, 1462, 1586, 1599, 1600, 1613, 1587, - 1601, 1614, 1588, 1602, 1615, 1627, 1628, 1616, - 1629, 1641, 1642, 1630, 1643, 1655, 1656, 1644, - 1657, 1626, 1640, 1654, 1472, 1473, 1474, 1475, - 1658, 1782, 1795, 1796, 1809, 1783, 1797, 1810, - 1784, 1798, 1811, 1823, 1824, 1812, 1825, 1837, - 1838, 1826, 1839, 1669, 1851, 1852, 1671, 1840, - 1853, 1822, 1836, 1850, 1668, 1670, 1042, 1224, - 1238, 1015, 1029, 1056, 1211, 1225, 1393, 1407, - 1420, 1043, 1239, 1016, 1057, 1212, 1421, 834, - 1030, 1226, 1253, 1394, 1408, 1044, 1240, 1017, - 1058, 1213, 1422, 1031, 1227, 1395, 1409, 1252, - 1434, 861, 1435, 1254, 1436, 1045, 847, 874, - 1070, 1071, 848, 1267, 1072, 1241, 1423, 1266, - 1448, 875, 1449, 1268, 1450, 863, 1059, 1255, - 1437, 1084, 1462, 1085, 1463, 1086, 1464, 877, - 1073, 1282, 1237, 1251, 1406, 1433, 1265, 1447, - 1461, 1280, 1281, 890, 1269, 1451, 1279, 1617, - 1618, 1604, 1631, 1605, 1630, 1632, 1645, 1619, - 1644, 1646, 1602, 1616, 1589, 1603, 1590, 1591, - 1659, 1633, 1660, 1658, 1476, 1477, 1478, 1629, - 1643, 1657, 1475, 1465, 1647, 1673, 1786, 1813, - 1814, 1800, 1827, 1842, 1841, 1674, 1798, 1812, - 1785, 1799, 1787, 1801, 1828, 1826, 1815, 1840, - 1855, 1829, 1856, 1672, 1854, 1661, 1825, 1839, - 1853, 1671, 1843, 1031, 1213, 1227, 1409, 1045, - 1241, 863, 1018, 1059, 1200, 1214, 1396, 1423, - 1032, 1228, 1410, 1046, 1242, 864, 1019, 1060, - 1201, 1215, 1397, 1424, 837, 1033, 1229, 1256, - 1411, 1047, 1243, 1020, 1061, 1216, 1425, 838, - 1034, 1230, 1257, 1398, 1412, 1255, 1437, 850, - 1438, 865, 1439, 1048, 877, 1073, 1269, 1074, - 1270, 1075, 852, 1244, 1271, 1426, 1451, 878, - 1452, 879, 1453, 1062, 1258, 1440, 891, 1087, - 1465, 892, 1088, 1466, 1089, 1467, 880, 1076, - 1285, 1283, 1284, 893, 1454, 1272, 1592, 1621, - 1619, 1607, 1608, 1634, 1635, 1622, 1648, 1649, - 1605, 1606, 1633, 1620, 1593, 1594, 1647, 1479, - 1661, 1662, 1636, 1663, 1480, 1481, 1468, 1650, - 1677, 1815, 1789, 1790, 1802, 1816, 1817, 1829, - 1803, 1804, 1830, 1831, 1818, 1843, 1844, 1845, - 1801, 1788, 1857, 1858, 1832, 1859, 1675, 1676, - 1664, 1846, 1034, 1216, 1230, 1412, 1048, 1244, - 1021, 1062, 1217, 1426, 1035, 1231, 1399, 1413, - 1258, 1440, 853, 1049, 1245, 880, 1076, 1427, - 1272, 1454, 867, 1063, 1259, 1441, 1090, 1468, - 881, 1077, 1286, 1273, 894, 1455, 1622, 1609, - 1636, 1623, 1650, 1469, 1608, 1595, 1637, 1664, - 1482, 1651, 1818, 1846, 1678, 1665, 1804, 1791, - 1805, 1832, 1819, 1833, 1860, 1847, 1065, 1247, - 1260, 1261, 1078, 1443, 1066, 1248, 1262, 1079, - 1444, 1067, 1249, 1263, 1080, 1445, 882, 1274, - 1456, 883, 1275, 1457, 884, 1276, 1458, 1470, - 1471, 885, 1068, 1081, 1264, 1277, 1459, 1472, - 896, 1092, 897, 1093, 1288, 898, 1094, 1289, - 1290, 1473, 899, 1082, 1095, 1278, 1484, 1485, - 1291, 1486, 910, 1106, 911, 1107, 1302, 1303, - 912, 1108, 1304, 1487, 913, 1096, 1109, 1292, - 1429, 1442, 1430, 1431, 1250, 1446, 1460, 1474, - 1498, 1499, 1305, 1500, 1432, 1488, 1639, 1652, - 1640, 1653, 1641, 1654, 1655, 1666, 1667, 1668, - 1669, 1680, 1681, 1682, 1683, 1625, 1638, 1626, - 1627, 1656, 1501, 1628, 1642, 1670, 1694, 1695, - 1696, 1684, 1848, 1849, 1850, 1851, 1862, 1863, - 1864, 1865, 1876, 1877, 1878, 1879, 1821, 1834, - 1835, 1822, 1836, 1823, 1837, 1697, 1824, 1838, - 1852, 1866, 1890, 1891, 1892, 1068, 1250, 1263, - 1264, 1081, 1277, 1446, 1069, 1251, 1082, 1265, - 1278, 1447, 1460, 1070, 1252, 1083, 1266, 1279, - 1448, 1461, 885, 1276, 1459, 886, 887, 1473, - 1474, 888, 1084, 1280, 1462, 1475, 899, 1094, - 1095, 1290, 1291, 900, 1096, 1292, 901, 1097, - 1293, 1476, 902, 1098, 1487, 1488, 1294, 1489, - 913, 1108, 1109, 1304, 1305, 914, 1110, 915, - 1111, 1306, 1307, 1490, 916, 1112, 1432, 1445, - 1433, 1434, 1472, 1486, 1500, 1501, 1502, 1308, - 1503, 1642, 1655, 1643, 1656, 1657, 1658, 1669, - 1670, 1671, 1672, 1683, 1684, 1685, 1686, 1628, - 1641, 1629, 1630, 1644, 1504, 1668, 1682, 1696, - 1697, 1698, 1699, 1851, 1839, 1852, 1853, 1854, - 1865, 1866, 1867, 1868, 1879, 1880, 1881, 1882, - 1824, 1837, 1838, 1825, 1826, 1840, 1700, 1864, - 1878, 1892, 1893, 1894, 1895, 1266, 875, 888, - 1057, 1071, 1084, 1253, 1267, 1280, 1435, 1449, - 1462, 876, 889, 1058, 1072, 1085, 1240, 1254, - 1281, 1436, 1463, 1268, 1450, 877, 890, 1059, - 1073, 1086, 1241, 1255, 1282, 1437, 1464, 1269, - 1451, 1279, 1476, 1477, 1478, 891, 1087, 1465, - 902, 1098, 1293, 1294, 903, 1099, 1295, 904, - 1100, 1296, 1283, 1097, 1490, 1479, 1491, 917, - 1113, 1309, 1492, 905, 918, 1101, 1114, 1297, - 916, 1112, 1307, 1308, 1310, 1111, 1504, 1493, - 1448, 1475, 1489, 1503, 1505, 1506, 1659, 1660, - 1673, 1661, 1632, 1645, 1633, 1646, 1631, 1644, - 1658, 1672, 1647, 1674, 1686, 1687, 1675, 1688, - 1700, 1701, 1689, 1702, 1671, 1685, 1699, 1856, - 1869, 1870, 1868, 1871, 1883, 1884, 1882, 1827, - 1828, 1841, 1855, 1829, 1842, 1840, 1854, 1843, - 1857, 1896, 1897, 1885, 1898, 1867, 1881, 1895, - 1073, 1255, 1269, 1451, 891, 1060, 1074, 1087, - 1242, 1256, 1283, 1438, 1465, 878, 1270, 1452, - 892, 1061, 1075, 1088, 1243, 1257, 1284, 1439, - 1466, 1271, 1453, 880, 893, 1062, 1076, 1089, - 1244, 1258, 1285, 1440, 1467, 1272, 1454, 1479, - 1480, 1481, 1090, 1468, 905, 1101, 1297, 906, - 1102, 1298, 894, 907, 1103, 1299, 1286, 1482, - 1493, 919, 1115, 1494, 920, 1116, 1495, 908, - 921, 1104, 1117, 1300, 1313, 1311, 1312, 1496, - 1507, 1508, 1509, 1661, 1663, 1676, 1677, 1689, - 1690, 1634, 1647, 1635, 1648, 1662, 1636, 1649, - 1650, 1675, 1664, 1678, 1691, 1703, 1704, 1692, - 1705, 1857, 1858, 1871, 1872, 1873, 1885, 1874, - 1886, 1887, 1830, 1843, 1831, 1844, 1832, 1845, - 1859, 1846, 1860, 1899, 1900, 1888, 1901, 1076, - 1258, 1272, 1454, 881, 894, 1063, 1077, 1090, - 1245, 1259, 1286, 1441, 1468, 1273, 1455, 1482, - 895, 1091, 1469, 1287, 908, 1104, 1300, 1483, - 909, 1105, 1301, 1496, 922, 1118, 1314, 1497, - 923, 1119, 1315, 1510, 1664, 1665, 1637, 1650, - 1651, 1678, 1679, 1692, 1511, 1693, 1706, 1860, - 1874, 1861, 1875, 1888, 1833, 1846, 1847, 1707, - 1889, 1902, 1106, 1289, 1302, 911, 1107, 1290, - 1303, 1485, 1498, 912, 1108, 1291, 1304, 1486, - 1499, 913, 1109, 1292, 1305, 1487, 1500, 924, - 1120, 1316, 925, 1121, 1317, 926, 1122, 1318, - 1501, 927, 1110, 1123, 1306, 1512, 1513, 1319, - 1514, 938, 1134, 939, 1135, 1330, 940, 1136, - 1331, 1332, 1515, 941, 1124, 1137, 1320, 1526, - 1527, 1333, 1528, 952, 1148, 953, 1149, 1344, - 954, 1150, 1345, 1346, 1529, 955, 1138, 1151, - 1334, 1488, 1502, 1516, 1540, 1541, 1347, 1542, - 1530, 1681, 1682, 1683, 1694, 1695, 1696, 1697, - 1708, 1709, 1710, 1711, 1722, 1723, 1724, 1725, - 1543, 1684, 1698, 1712, 1736, 1737, 1738, 1726, - 1877, 1878, 1879, 1890, 1891, 1892, 1893, 1904, - 1905, 1906, 1907, 1918, 1919, 1920, 1921, 1739, - 1880, 1894, 1908, 1932, 1933, 1934, 1109, 1305, - 914, 1110, 1293, 1306, 1488, 1501, 1489, 915, - 1111, 1294, 1307, 1502, 1490, 916, 1112, 1308, - 1503, 927, 1122, 1123, 1318, 928, 1124, 1319, - 929, 1125, 1320, 1321, 1504, 930, 1126, 1515, - 1516, 1322, 1517, 941, 1136, 1137, 1332, 1333, - 942, 1138, 943, 1139, 1334, 1335, 1518, 944, - 1140, 1529, 1530, 1336, 1531, 955, 1150, 1151, - 1346, 1347, 956, 1152, 1348, 957, 1153, 1349, - 1532, 958, 1154, 1514, 1528, 1542, 1543, 1544, - 1350, 1545, 1500, 1684, 1685, 1686, 1697, 1698, - 1699, 1700, 1711, 1712, 1713, 1714, 1725, 1726, - 1727, 1728, 1546, 1696, 1710, 1724, 1738, 1739, - 1740, 1741, 1880, 1881, 1882, 1893, 1894, 1895, - 1896, 1907, 1908, 1909, 1910, 1921, 1922, 1923, - 1924, 1742, 1892, 1906, 1920, 1934, 1935, 1936, - 1937, 1112, 1308, 1113, 1295, 1491, 1504, 917, - 1309, 1296, 1505, 918, 931, 1100, 1114, 1127, - 1310, 1492, 1297, 1506, 919, 932, 1101, 1115, - 1128, 1311, 1493, 930, 1126, 1323, 1324, 1125, - 1321, 1322, 1518, 1507, 1519, 945, 1141, 1520, - 933, 946, 1129, 1142, 1325, 944, 1140, 1337, - 1338, 1139, 1335, 1336, 1532, 1521, 1533, 959, - 1155, 1534, 947, 960, 1143, 1156, 1339, 1352, - 958, 1154, 1349, 1350, 1351, 1153, 1546, 1535, - 1517, 1531, 1545, 1547, 1548, 1503, 1689, 1700, - 1702, 1703, 1715, 1716, 1729, 1687, 1688, 1701, - 1714, 1728, 1717, 1730, 1742, 1743, 1731, 1744, - 1699, 1713, 1727, 1741, 1883, 1884, 1885, 1898, - 1897, 1896, 1911, 1899, 1912, 1910, 1913, 1925, - 1926, 1924, 1938, 1939, 1927, 1940, 1895, 1909, - 1923, 1937, 919, 1115, 1311, 1493, 1298, 1507, - 920, 933, 1102, 1116, 1129, 1312, 1494, 1299, - 1508, 921, 934, 1103, 1117, 1130, 1313, 1326, - 1495, 1300, 1509, 922, 935, 1104, 1118, 1131, - 1314, 1496, 1325, 1327, 1510, 1521, 947, 1143, - 1339, 1522, 948, 1144, 1523, 936, 949, 1132, - 1145, 1328, 1341, 1340, 1524, 1535, 961, 1157, - 1536, 962, 1158, 1354, 1537, 950, 963, 1146, - 1159, 1342, 1353, 1355, 1538, 1549, 1550, 1551, - 1690, 1703, 1706, 1719, 1720, 1732, 1733, 1689, - 1691, 1704, 1692, 1705, 1717, 1718, 1731, 1745, - 1746, 1734, 1747, 1885, 1886, 1887, 1888, 1899, - 1900, 1901, 1902, 1915, 1913, 1914, 1928, 1916, - 1927, 1929, 1941, 1942, 1930, 1943, 922, 1118, - 1314, 1496, 1301, 1510, 923, 936, 1105, 1119, - 1132, 1315, 1328, 1497, 1511, 937, 1133, 1329, - 1524, 950, 1146, 1342, 1525, 951, 1147, 1343, - 1538, 964, 1160, 1356, 1539, 965, 1161, 1357, - 1552, 1693, 1706, 1707, 1720, 1692, 1721, 1734, - 1553, 1735, 1748, 1888, 1889, 1902, 1903, 1916, - 1917, 1930, 1749, 1931, 1944, 1148, 1331, 1344, - 1527, 953, 1149, 1332, 1345, 1540, 954, 1150, - 1333, 1346, 1528, 1541, 955, 1151, 1334, 1347, - 1529, 1542, 966, 1162, 967, 1163, 1358, 1359, - 968, 1164, 1360, 1543, 969, 1152, 1165, 1348, - 1554, 1555, 1361, 1556, 1530, 1544, 1557, 1723, - 1724, 1725, 1736, 1737, 1738, 1739, 1750, 1751, - 1752, 1726, 1740, 1753, 1919, 1920, 1921, 1932, - 1933, 1934, 1935, 1946, 1947, 1948, 1922, 1936, - 1151, 1347, 956, 1152, 1335, 1348, 1530, 1543, - 957, 1153, 1336, 1349, 1531, 1544, 1532, 958, - 1154, 1350, 1545, 969, 1164, 1165, 1360, 970, - 1166, 1361, 971, 1167, 1362, 1363, 1546, 972, - 1168, 1557, 1558, 1364, 1559, 1556, 1542, 1560, - 1726, 1727, 1728, 1739, 1740, 1741, 1742, 1753, - 1754, 1755, 1738, 1752, 1756, 1922, 1923, 1924, - 1935, 1936, 1937, 1938, 1949, 1950, 1951, 1934, - 1948, 1154, 1350, 1155, 1337, 1533, 1546, 959, - 1351, 1338, 1547, 960, 973, 1142, 1156, 1169, - 1352, 1365, 1534, 1339, 1548, 961, 974, 1143, - 1157, 1170, 1353, 1535, 972, 1168, 1363, 1364, - 1366, 1167, 1560, 1549, 1561, 1562, 975, 1171, - 1367, 1559, 1545, 1729, 1742, 1730, 1743, 1731, - 1744, 1757, 1563, 1745, 1758, 1756, 1741, 1755, - 1925, 1926, 1927, 1939, 1940, 1938, 1953, 1759, - 1941, 1954, 1952, 1937, 1951, 961, 1157, 1353, - 1535, 1340, 1549, 962, 975, 1144, 1158, 1171, - 1354, 1367, 1536, 1341, 1550, 963, 976, 1145, - 1159, 1172, 1355, 1537, 1342, 1551, 964, 977, - 1146, 1160, 1173, 1356, 1369, 1538, 1368, 1552, - 1563, 1564, 1565, 978, 1174, 1370, 1732, 1733, - 1745, 1746, 1731, 1734, 1747, 1759, 1760, 1566, - 1748, 1761, 1927, 1928, 1929, 1941, 1930, 1942, - 1943, 1955, 1956, 1762, 1944, 1957, 964, 1160, - 1356, 1538, 1343, 1552, 965, 978, 1147, 1161, - 1174, 1357, 1539, 1370, 1553, 979, 1175, 1371, - 1566, 1567, 1734, 1735, 1748, 1749, 1762, 1930, - 1931, 1944, 1763, 1945, 1958, 1582, 1764, 1569, - 1583, 1596, 1765, 1778, 1570, 1584, 1597, 1766, - 1779, 1571, 1585, 1598, 1767, 1780, 1792, 1793, - 1610, 1611, 1599, 1612, 1768, 1781, 1794, 1806, - 1807, 1624, 1625, 1613, 1626, 1782, 1795, 1808, - 1820, 1821, 1809, 1822, 1960, 1961, 1962, 1974, - 1975, 1963, 1976, 1988, 1989, 1977, 1990, 2002, - 2003, 1796, 1991, 2004, 1964, 1978, 2016, 2017, - 2005, 2018, 2156, 2157, 2158, 2170, 2171, 2159, - 2172, 2184, 2185, 2173, 2186, 2198, 2199, 1992, - 2187, 2200, 2160, 2174, 2212, 2213, 2201, 2352, - 2353, 2354, 2366, 2367, 2355, 2368, 2380, 2381, - 2369, 2382, 2394, 2395, 2188, 2214, 2383, 2396, - 2356, 2370, 1572, 1585, 1767, 1586, 1599, 1768, - 1781, 1573, 1587, 1600, 1769, 1782, 1574, 1588, - 1601, 1770, 1783, 1780, 1794, 1795, 1796, 1613, - 1614, 1602, 1615, 1784, 1797, 1808, 1809, 1810, - 1627, 1628, 1616, 1629, 1798, 1811, 1822, 1823, - 1824, 1812, 1825, 1963, 1964, 1965, 1977, 1978, - 1966, 1979, 1991, 1992, 1980, 1993, 2005, 2006, - 1994, 2007, 1976, 1990, 2004, 2018, 2019, 2020, - 2008, 2159, 2160, 2161, 2173, 2174, 2162, 2175, - 2187, 2188, 2176, 2189, 2201, 2202, 2021, 2190, - 2203, 2172, 2186, 2200, 2214, 2215, 2216, 2204, - 2355, 2356, 2357, 2369, 2370, 2358, 2371, 2383, - 2384, 2372, 2385, 2397, 2398, 2217, 2386, 2399, - 2368, 2382, 2396, 1588, 1770, 1575, 1602, 1771, - 1784, 1589, 1576, 1603, 1785, 1590, 1772, 1799, - 1577, 1604, 1786, 1591, 1773, 1800, 1783, 1797, - 1617, 1618, 1616, 1798, 1811, 1813, 1631, 1605, - 1632, 1787, 1814, 1630, 1812, 1825, 1645, 1827, - 1619, 1646, 1801, 1828, 1967, 1968, 1966, 1980, - 1981, 1982, 1826, 1995, 1969, 1996, 1994, 2009, - 1983, 2010, 2008, 1979, 1993, 2007, 1841, 2023, - 1815, 1842, 1997, 2024, 2021, 2163, 2164, 2178, - 2177, 2192, 2022, 2162, 2176, 2191, 2165, 2190, - 2205, 2179, 2206, 2204, 2011, 2175, 2189, 2203, - 2037, 2219, 2038, 2193, 2220, 2217, 2358, 2359, - 2360, 2372, 2374, 2387, 2388, 2218, 2373, 2361, - 2386, 2401, 2375, 2402, 2400, 2207, 2371, 2385, - 2399, 2233, 2415, 2234, 2389, 2416, 1577, 1591, - 1773, 1578, 1605, 1787, 1592, 1774, 1801, 1579, - 1606, 1788, 1593, 1775, 1802, 1580, 1607, 1789, - 1594, 1776, 1803, 1619, 1620, 1621, 1790, 1633, - 1815, 1816, 1634, 1817, 1608, 1635, 1829, 1647, - 1830, 1648, 1622, 1649, 1804, 1831, 1969, 1970, - 1971, 1983, 1984, 1985, 1997, 1998, 1972, 1999, - 2011, 2012, 1986, 2013, 1818, 1843, 2025, 1844, - 2026, 1845, 2000, 2027, 2165, 2166, 2167, 2179, - 2180, 2181, 2193, 2194, 2182, 2168, 2195, 2207, - 2208, 2209, 2039, 2221, 2040, 2222, 2014, 2041, - 2196, 2223, 2361, 2362, 2363, 2375, 2376, 2364, - 2391, 2389, 2378, 2377, 2390, 2403, 2404, 2405, - 2235, 2417, 2236, 2418, 2210, 2237, 2392, 2419, - 1580, 1594, 1776, 1581, 1608, 1790, 1595, 1777, - 1804, 1622, 1609, 1791, 1636, 1818, 1623, 1805, - 1650, 1832, 1972, 1986, 1819, 1973, 2000, 1987, - 2014, 2001, 1846, 2028, 2168, 2182, 2196, 2015, - 2169, 2183, 2210, 2197, 2042, 2224, 2364, 2378, - 2365, 2392, 2211, 2379, 2406, 2393, 2238, 2420, - 1637, 1664, 1651, 1833, 1860, 1665, 1847, 1678, - 1874, 2029, 1861, 2056, 2043, 2057, 2225, 2252, - 2070, 2239, 2407, 2434, 2253, 2421, 2448, 2266, - 2435, 1611, 1624, 1793, 1806, 1625, 1638, 1780, - 1794, 1807, 1820, 1612, 1626, 1639, 1781, 1795, - 1808, 1821, 1613, 1627, 1640, 1782, 1796, 1809, - 1822, 1834, 1835, 1652, 1653, 1641, 1654, 1810, - 1823, 1836, 1848, 1849, 1655, 1824, 1837, 1850, - 1667, 1851, 1975, 1988, 1989, 2002, 1976, 1990, - 2003, 1977, 1991, 2004, 2016, 2017, 2005, 2018, - 2030, 2031, 2019, 2032, 2044, 2045, 1838, 2033, - 2046, 1978, 1992, 2006, 1862, 1863, 1864, 2020, - 2047, 2171, 2184, 2185, 2198, 2172, 2186, 2199, - 2173, 2187, 2200, 2212, 2213, 2201, 2214, 2226, - 2227, 2215, 2228, 2240, 2059, 2241, 2034, 2060, - 2229, 2242, 2174, 2188, 2202, 2058, 2216, 2243, - 2367, 2380, 2381, 2394, 2368, 2382, 2395, 2369, - 2383, 2396, 2408, 2409, 2397, 2410, 2422, 2423, - 2411, 2424, 2436, 2255, 2437, 2230, 2425, 2438, - 2370, 2384, 2398, 2254, 2256, 2412, 1627, 1796, - 1809, 1614, 1628, 1641, 1783, 1797, 1810, 1823, - 1615, 1629, 1642, 1784, 1798, 1811, 1824, 1616, - 1630, 1643, 1812, 1825, 1822, 1836, 1837, 1838, - 1655, 1656, 1644, 1657, 1826, 1839, 1850, 1851, - 1852, 1658, 1840, 1853, 1668, 1854, 1978, 1991, - 1992, 2005, 1979, 1993, 2006, 1980, 1994, 2007, - 2019, 2020, 2008, 2021, 2033, 2034, 2022, 2035, - 1865, 2047, 2048, 1867, 2036, 2049, 2018, 2032, - 2046, 1864, 1866, 2050, 2174, 2187, 2188, 2201, - 2175, 2189, 2202, 2176, 2190, 2203, 2215, 2216, - 2204, 2217, 2229, 2230, 2218, 2231, 2061, 2243, - 2244, 2232, 2245, 2214, 2228, 2242, 2060, 2062, - 2063, 2246, 2370, 2383, 2384, 2397, 2371, 2385, - 2398, 2372, 2386, 2399, 2411, 2412, 2400, 2413, - 2425, 2426, 2414, 2427, 2439, 2440, 2428, 2441, - 2410, 2424, 2438, 2256, 2257, 2258, 2259, 1630, - 1812, 1617, 1644, 1799, 1826, 1631, 1813, 1604, - 1618, 1645, 1786, 1800, 1827, 1632, 1814, 1605, - 1619, 1646, 1787, 1801, 1828, 1825, 1839, 1659, - 1841, 1633, 1660, 1815, 1842, 1658, 1840, 1853, - 1855, 1856, 1647, 1829, 1854, 1672, 1673, 1674, - 1661, 1843, 1981, 1982, 2010, 2009, 1997, 1995, - 2022, 2024, 2011, 2036, 2037, 2038, 1869, 1994, - 2008, 1996, 2023, 1983, 2051, 2025, 2052, 2050, - 1868, 1870, 1857, 2021, 2035, 2049, 1867, 2039, - 2177, 2205, 2206, 2192, 2219, 2193, 2218, 2220, - 2233, 2207, 2232, 2234, 2190, 2204, 2191, 2178, - 2179, 2247, 2221, 2248, 2246, 2064, 2065, 2066, - 2053, 2217, 2231, 2245, 2063, 2235, 2401, 2402, - 2388, 2415, 2389, 2414, 2416, 2429, 2403, 2430, - 2386, 2400, 2373, 2387, 2374, 2375, 2428, 2443, - 2417, 2444, 2442, 2260, 2261, 2262, 2413, 2427, - 2441, 2259, 2249, 2431, 1619, 1633, 1801, 1815, - 1606, 1620, 1647, 1788, 1802, 1829, 1816, 1634, - 1607, 1621, 1648, 1789, 1803, 1830, 1635, 1817, - 1608, 1622, 1649, 1790, 1804, 1831, 1843, 1661, - 1844, 1662, 1636, 1663, 1818, 1845, 1857, 1858, - 1650, 1832, 1859, 1675, 1676, 1677, 1664, 1846, - 2011, 1985, 1986, 1998, 2012, 2013, 2025, 1999, - 2026, 2014, 2041, 2039, 2040, 1873, 2028, 1997, - 1984, 2000, 2027, 2053, 2054, 2055, 1871, 1872, - 1860, 2042, 2067, 2180, 2181, 2209, 2207, 2208, - 2196, 2194, 2223, 2221, 2210, 2236, 2237, 2235, - 2068, 2193, 2195, 2222, 2182, 2249, 2250, 2224, - 2251, 2069, 2056, 2238, 2376, 2405, 2403, 2391, - 2392, 2418, 2419, 2406, 2432, 2433, 2264, 2389, - 2390, 2417, 2404, 2377, 2378, 2431, 2263, 2445, - 2446, 2420, 2447, 2265, 2252, 2434, 1835, 1848, - 1653, 1666, 1822, 1836, 1849, 1654, 1667, 1823, - 1837, 1850, 1863, 1655, 1668, 1824, 1838, 1851, - 1862, 1864, 1669, 1852, 1865, 1680, 1681, 1682, - 1876, 1877, 1878, 1683, 1866, 1879, 1694, 1695, - 1696, 1890, 1891, 1892, 1697, 1880, 2044, 2045, - 2046, 2047, 2058, 2059, 2060, 2061, 2072, 2073, - 2074, 2075, 2017, 2030, 2031, 2018, 2032, 2019, - 2033, 1893, 2020, 2034, 2048, 2062, 2086, 2087, - 2088, 2076, 2240, 2241, 2229, 2242, 2243, 2254, - 2255, 2256, 2257, 2268, 2269, 2270, 2271, 2213, - 2226, 2227, 2214, 2228, 2215, 2089, 2216, 2230, - 2244, 2258, 2282, 2283, 2284, 2272, 2423, 2436, - 2424, 2437, 2425, 2438, 2439, 2450, 2451, 2452, - 2453, 2464, 2465, 2466, 2467, 2409, 2422, 2410, - 2411, 2440, 2285, 2412, 2426, 2454, 2478, 2479, - 2480, 1838, 1851, 1656, 1669, 1825, 1839, 1852, - 1657, 1670, 1826, 1840, 1853, 1658, 1671, 1854, - 1864, 1865, 1866, 1867, 1672, 1868, 1683, 1684, - 1685, 1878, 1879, 1880, 1881, 1686, 1882, 1697, - 1698, 1699, 1892, 1893, 1894, 1895, 1700, 2034, - 2047, 2035, 2048, 2036, 2049, 2050, 2061, 2062, - 2063, 2064, 2075, 2076, 2077, 2078, 2020, 2033, - 2021, 2022, 1896, 2060, 2074, 2088, 2089, 2090, - 2091, 2230, 2243, 2244, 2245, 2246, 2257, 2258, - 2259, 2260, 2271, 2272, 2273, 2274, 2216, 2229, - 2217, 2231, 2218, 2232, 2092, 2256, 2270, 2284, - 2285, 2286, 2287, 2426, 2439, 2427, 2440, 2441, - 2442, 2453, 2454, 2455, 2456, 2467, 2468, 2469, - 2470, 2412, 2425, 2413, 2414, 2428, 2288, 2452, - 2466, 2480, 2481, 2482, 2483, 1854, 1659, 1672, - 1841, 1855, 1868, 1646, 1660, 1673, 1828, 1842, - 1869, 1856, 1647, 1661, 1674, 1829, 1843, 1870, - 1857, 1867, 2051, 2052, 1675, 1686, 1687, 1688, - 1871, 1884, 1881, 1882, 2064, 1883, 2065, 2066, - 1700, 1701, 1689, 1702, 1897, 1885, 1898, 2067, - 2080, 1895, 1896, 2079, 2078, 2024, 2037, 2025, - 2038, 2050, 2039, 2053, 2036, 2023, 2092, 2093, - 2081, 2094, 2063, 2077, 2091, 2248, 2261, 2262, - 2260, 2263, 2275, 2276, 2274, 2220, 2233, 2247, - 2221, 2234, 2219, 2232, 2246, 2235, 2249, 2288, - 2289, 2277, 2290, 2259, 2273, 2287, 2443, 2444, - 2456, 2457, 2458, 2445, 2459, 2471, 2472, 2470, - 2416, 2429, 2417, 2430, 2415, 2428, 2442, 2431, - 2484, 2485, 2473, 2486, 2455, 2469, 2483, 1661, - 1843, 1857, 1648, 1662, 1675, 1830, 1844, 1871, - 1858, 1649, 1663, 1676, 1831, 1845, 1872, 1859, - 1650, 1664, 1677, 1832, 1846, 1873, 1860, 2053, - 2054, 2055, 1678, 1689, 1885, 1690, 1691, 1874, - 2067, 1886, 2068, 1887, 2069, 2056, 1703, 1704, - 1692, 1705, 1899, 2081, 1900, 1888, 1901, 2070, - 2082, 2083, 2026, 2039, 2027, 2040, 2028, 2041, - 2042, 2095, 2096, 2084, 2097, 2250, 2251, 2263, - 2264, 2265, 2277, 2266, 2278, 2279, 2222, 2235, - 2249, 2223, 2236, 2224, 2237, 2238, 2252, 2291, - 2292, 2280, 2293, 2445, 2446, 2447, 2459, 2460, - 2461, 2473, 2474, 2462, 2475, 2418, 2431, 2419, - 2432, 2420, 2433, 2434, 2448, 2487, 2488, 2476, - 2489, 1664, 1846, 1860, 1651, 1665, 1678, 1833, - 1847, 1874, 1861, 2056, 1679, 1875, 1692, 1888, - 2070, 1693, 1706, 1889, 2071, 1902, 2084, 1707, - 2029, 2042, 2043, 2057, 1903, 2085, 2098, 2252, - 2266, 2267, 2280, 2225, 2238, 2239, 2253, 2099, - 2281, 2294, 2448, 2462, 2449, 2463, 2476, 2421, - 2434, 2435, 2295, 2477, 2490, 1694, 1695, 1877, - 1890, 1878, 1891, 1696, 1879, 1892, 1697, 1880, - 1893, 1708, 1709, 1710, 1904, 1905, 1906, 1711, - 1894, 1907, 1722, 1723, 1724, 1918, 1919, 1920, - 1725, 1908, 1921, 1736, 1737, 1738, 1932, 1933, - 1934, 1739, 1922, 2073, 2074, 2075, 2086, 2087, - 2088, 2089, 2100, 2101, 2102, 2103, 2114, 2115, - 2116, 2117, 1935, 2076, 2090, 2104, 2128, 2129, - 2130, 2118, 2269, 2270, 2271, 2282, 2283, 2284, - 2285, 2296, 2297, 2298, 2299, 2310, 2311, 2312, - 2313, 2131, 2272, 2286, 2300, 2324, 2325, 2326, - 2314, 2465, 2466, 2467, 2478, 2479, 2480, 2481, - 2492, 2493, 2494, 2495, 2506, 2507, 2508, 2509, - 2327, 2468, 2482, 2496, 2520, 2521, 2522, 1697, - 1698, 1880, 1892, 1893, 1881, 1894, 1699, 1882, - 1895, 1700, 1896, 1711, 1712, 1713, 1906, 1907, - 1908, 1909, 1714, 1910, 1725, 1726, 1727, 1920, - 1921, 1922, 1923, 1728, 1924, 1739, 1740, 1741, - 1934, 1935, 1936, 1937, 1742, 2076, 2077, 2078, - 2089, 2090, 2091, 2092, 2103, 2104, 2105, 2106, - 2117, 2118, 2119, 2120, 1938, 2088, 2102, 2116, - 2130, 2131, 2132, 2133, 2272, 2273, 2274, 2285, - 2286, 2287, 2288, 2299, 2300, 2301, 2302, 2313, - 2314, 2315, 2316, 2134, 2284, 2298, 2312, 2326, - 2327, 2328, 2329, 2468, 2469, 2470, 2481, 2482, - 2483, 2484, 2495, 2496, 2497, 2498, 2509, 2510, - 2511, 2512, 2330, 2480, 2494, 2508, 2522, 2523, - 2524, 2525, 1700, 1883, 1895, 1896, 1701, 1714, - 1897, 2079, 1884, 1702, 1715, 1898, 2080, 1885, - 1703, 1716, 1911, 2093, 1899, 1912, 2081, 2094, - 1909, 1910, 2092, 1728, 1729, 1717, 1730, 1925, - 2107, 1913, 1926, 2095, 1923, 1924, 2108, 2106, - 1742, 1743, 1731, 1744, 1939, 1927, 1940, 2109, - 1937, 1938, 2120, 2121, 2122, 2134, 2135, 2123, - 2136, 2091, 2105, 2119, 2133, 2275, 2276, 2277, - 2290, 2289, 2288, 2303, 2291, 2304, 2302, 2305, - 2316, 2317, 2318, 2330, 2331, 2319, 2332, 2287, - 2301, 2315, 2329, 2471, 2472, 2473, 2486, 2484, - 2485, 2499, 2487, 2500, 2498, 2513, 2501, 2512, - 2514, 2526, 2527, 2515, 2528, 2483, 2497, 2511, - 2525, 1703, 1885, 1899, 2081, 1886, 1704, 1717, - 1900, 2082, 1887, 1705, 1718, 1901, 2083, 1888, - 1706, 1719, 1913, 1914, 1902, 1915, 2084, 2097, - 2095, 2096, 1731, 1732, 1720, 1733, 1927, 1928, - 2110, 1916, 1929, 2098, 2111, 2109, 1745, 1746, - 1734, 1747, 1941, 2123, 1942, 2124, 1930, 1943, - 2112, 2125, 2137, 2138, 2126, 2139, 2277, 2278, - 2279, 2280, 2291, 2292, 2293, 2294, 2307, 2305, - 2306, 2320, 2308, 2319, 2321, 2333, 2334, 2322, - 2335, 2473, 2474, 2475, 2487, 2476, 2488, 2489, - 2490, 2503, 2501, 2502, 2516, 2504, 2517, 2515, - 2529, 2530, 2518, 2531, 1706, 1888, 1902, 2084, - 1889, 1707, 1720, 1903, 2085, 1916, 2098, 1721, - 1734, 1917, 2099, 1930, 2112, 1735, 1748, 1931, - 2113, 1944, 2126, 1749, 1945, 2127, 2140, 2280, - 2281, 2294, 2295, 2308, 2309, 2322, 2141, 2323, - 2336, 2476, 2477, 2490, 2491, 2504, 2505, 2518, - 2337, 2519, 2532, 1736, 1737, 1919, 1932, 1920, - 1933, 1738, 1921, 1934, 1739, 1922, 1935, 1750, - 1751, 1752, 1946, 1947, 1948, 1753, 1936, 1949, - 2115, 2116, 2117, 2128, 2129, 2130, 2131, 2142, - 2143, 2144, 2118, 2132, 2145, 2311, 2312, 2313, - 2324, 2325, 2326, 2327, 2338, 2339, 2340, 2314, - 2328, 2341, 2507, 2508, 2509, 2520, 2521, 2522, - 2523, 2534, 2535, 2536, 2510, 2524, 1739, 1740, - 1922, 1934, 1935, 1923, 1936, 1741, 1924, 1937, - 1742, 1938, 1753, 1754, 1755, 1948, 1949, 1950, - 1951, 1756, 1952, 2118, 2119, 2120, 2131, 2132, - 2133, 2134, 2145, 2146, 2147, 2130, 2144, 2148, - 2314, 2315, 2316, 2327, 2328, 2329, 2330, 2341, - 2342, 2343, 2326, 2340, 2344, 2510, 2511, 2512, - 2523, 2524, 2525, 2526, 2537, 2538, 2539, 2522, - 2536, 1742, 1925, 1937, 1938, 1743, 1756, 1939, - 2121, 1926, 1744, 1757, 1940, 2122, 1927, 1745, - 1758, 1953, 1941, 1954, 2123, 2136, 1951, 1952, - 2134, 2135, 1759, 2149, 1955, 2137, 2150, 2148, - 2133, 2147, 2317, 2318, 2319, 2331, 2332, 2330, - 2345, 2151, 2333, 2346, 2344, 2329, 2343, 2513, - 2514, 2515, 2527, 2528, 2526, 2541, 2347, 2529, - 2542, 2540, 2525, 2539, 1745, 1927, 1941, 2123, - 1928, 1746, 1759, 1942, 2124, 1929, 1747, 1760, - 1943, 2125, 1930, 1748, 1761, 1955, 2137, 1956, - 1944, 1957, 2126, 2138, 2139, 1762, 2151, 2152, - 1958, 2140, 2153, 2319, 2320, 2321, 2333, 2322, - 2334, 2335, 2347, 2348, 2154, 2336, 2349, 2515, - 2516, 2517, 2529, 2530, 2518, 2531, 2543, 2544, - 2350, 2532, 2545, 1748, 1930, 1944, 2126, 1931, - 1749, 1762, 1945, 2127, 1958, 2140, 1763, 1959, - 2141, 2154, 2322, 2323, 2336, 2155, 2337, 2350, - 2518, 2519, 2532, 2351, 2533, 2546, 2157, 2170, - 2352, 2171, 2184, 2353, 2366, 2158, 2172, 2185, - 2354, 2367, 2159, 2173, 2186, 2355, 2368, 2380, - 2381, 2198, 2199, 2187, 2200, 2356, 2369, 2382, - 2394, 2395, 2212, 2213, 2201, 2214, 2370, 2383, - 2396, 2408, 2409, 2397, 2410, 2548, 2549, 2550, - 2562, 2563, 2551, 2564, 2576, 2577, 2565, 2578, - 2590, 2591, 2384, 2579, 2592, 2552, 2566, 2604, - 2605, 2173, 2355, 2160, 2174, 2187, 2356, 2369, - 2161, 2175, 2188, 2357, 2370, 2162, 2176, 2189, - 2358, 2371, 2368, 2382, 2383, 2384, 2201, 2202, - 2190, 2203, 2372, 2385, 2396, 2397, 2398, 2215, - 2216, 2204, 2217, 2386, 2399, 2410, 2411, 2412, - 2400, 2413, 2551, 2552, 2553, 2565, 2566, 2554, - 2567, 2579, 2580, 2568, 2581, 2593, 2594, 2582, - 2595, 2564, 2578, 2592, 2606, 2607, 2608, 2176, - 2358, 2163, 2190, 2359, 2372, 2177, 2164, 2191, - 2373, 2178, 2360, 2387, 2165, 2192, 2374, 2179, - 2361, 2388, 2371, 2385, 2205, 2206, 2204, 2386, - 2399, 2401, 2219, 2193, 2220, 2375, 2402, 2218, - 2400, 2413, 2233, 2415, 2207, 2234, 2389, 2416, - 2555, 2556, 2554, 2568, 2569, 2570, 2557, 2414, - 2583, 2584, 2582, 2597, 2571, 2598, 2596, 2403, - 2567, 2581, 2595, 2429, 2611, 2430, 2585, 2612, - 2609, 2165, 2179, 2361, 2166, 2193, 2375, 2180, - 2362, 2389, 2167, 2194, 2376, 2181, 2363, 2390, - 2168, 2195, 2377, 2182, 2364, 2391, 2207, 2208, - 2209, 2378, 2221, 2403, 2404, 2222, 2405, 2196, - 2223, 2392, 2235, 2417, 2418, 2236, 2419, 2210, - 2237, 2557, 2558, 2559, 2572, 2571, 2573, 2560, - 2586, 2587, 2585, 2599, 2600, 2574, 2601, 2406, - 2431, 2613, 2432, 2614, 2433, 2588, 2615, 2249, - 2250, 2224, 2251, 2445, 2446, 2238, 2420, 2447, - 2263, 2264, 2265, 2252, 2434, 2461, 2602, 2627, - 2628, 2629, 2641, 2642, 2616, 2643, 2459, 2460, - 2448, 2630, 2168, 2182, 2364, 2169, 2196, 2378, - 2183, 2365, 2392, 2210, 2197, 2379, 2224, 2406, - 2211, 2393, 2238, 2420, 2560, 2574, 2561, 2588, - 2407, 2575, 2602, 2589, 2434, 2616, 2225, 2252, - 2239, 2421, 2448, 2253, 2435, 2266, 2630, 2462, - 2449, 2603, 2617, 2644, 2631, 2212, 2381, 2394, - 2199, 2213, 2226, 2368, 2382, 2395, 2408, 2200, - 2214, 2227, 2369, 2383, 2396, 2409, 2201, 2215, - 2228, 2370, 2384, 2397, 2410, 2422, 2423, 2240, - 2241, 2229, 2242, 2398, 2411, 2424, 2436, 2437, - 2243, 2412, 2425, 2438, 2255, 2439, 2563, 2576, - 2577, 2590, 2564, 2578, 2591, 2565, 2579, 2592, - 2604, 2605, 2593, 2606, 2618, 2619, 2607, 2620, - 2632, 2633, 2426, 2621, 2634, 2566, 2580, 2594, - 2450, 2451, 2452, 2608, 2202, 2215, 2384, 2397, - 2216, 2229, 2371, 2385, 2398, 2411, 2203, 2217, - 2230, 2372, 2386, 2399, 2412, 2204, 2218, 2231, - 2400, 2413, 2410, 2424, 2425, 2426, 2243, 2244, - 2232, 2245, 2414, 2427, 2438, 2439, 2440, 2246, - 2428, 2441, 2256, 2257, 2442, 2566, 2579, 2580, - 2593, 2567, 2581, 2594, 2568, 2582, 2595, 2607, - 2608, 2596, 2609, 2621, 2622, 2610, 2623, 2453, - 2635, 2636, 2455, 2624, 2637, 2606, 2620, 2634, - 2452, 2454, 2218, 2400, 2205, 2232, 2387, 2401, - 2414, 2219, 2192, 2206, 2233, 2374, 2388, 2415, - 2220, 2402, 2193, 2207, 2234, 2375, 2389, 2416, - 2413, 2427, 2247, 2429, 2221, 2248, 2403, 2430, - 2246, 2428, 2441, 2443, 2235, 2417, 2444, 2442, - 2259, 2260, 2261, 2457, 2262, 2249, 2431, 2570, - 2597, 2598, 2583, 2610, 2584, 2611, 2626, 2625, - 2458, 2582, 2596, 2569, 2571, 2585, 2612, 2599, - 2624, 2639, 2613, 2640, 2456, 2638, 2445, 2609, - 2623, 2637, 2455, 2627, 2241, 2423, 2436, 2254, - 2410, 2424, 2437, 2242, 2255, 2411, 2425, 2438, - 2451, 2243, 2256, 2412, 2426, 2439, 2450, 2452, - 2257, 2440, 2453, 2268, 2269, 2270, 2464, 2465, - 2466, 2271, 2454, 2467, 2282, 2283, 2284, 2478, - 2479, 2480, 2285, 2468, 2632, 2633, 2634, 2635, - 2646, 2647, 2648, 2649, 2660, 2661, 2662, 2663, - 2605, 2618, 2619, 2606, 2620, 2607, 2621, 2481, - 2608, 2622, 2636, 2650, 2674, 2675, 2676, 2664, - 2244, 2426, 2439, 2257, 2413, 2427, 2440, 2453, - 2245, 2258, 2414, 2428, 2441, 2246, 2259, 2442, - 2452, 2454, 2455, 2260, 2456, 2271, 2272, 2273, - 2466, 2467, 2468, 2469, 2274, 2470, 2285, 2286, - 2287, 2480, 2481, 2482, 2483, 2288, 2635, 2623, - 2636, 2637, 2638, 2649, 2650, 2651, 2652, 2663, - 2664, 2665, 2666, 2608, 2621, 2622, 2609, 2610, - 2624, 2484, 2648, 2662, 2676, 2677, 2678, 2679, - 2442, 2247, 2260, 2429, 2443, 2456, 2234, 2248, - 2261, 2416, 2430, 2457, 2444, 2235, 2249, 2262, - 2417, 2431, 2458, 2445, 2455, 2640, 2263, 2274, - 2275, 2276, 2459, 2472, 2469, 2470, 2471, 2653, - 2654, 2641, 2652, 2288, 2289, 2277, 2290, 2485, - 2473, 2486, 2655, 2483, 2484, 2667, 2668, 2666, - 2611, 2612, 2625, 2639, 2613, 2626, 2624, 2638, - 2627, 2680, 2681, 2669, 2682, 2651, 2665, 2679, - 2249, 2431, 2445, 2236, 2250, 2263, 2418, 2432, - 2459, 2446, 2237, 2251, 2264, 2419, 2433, 2460, - 2447, 2238, 2252, 2265, 2420, 2434, 2461, 2641, - 2642, 2448, 2266, 2277, 2473, 2278, 2474, 2279, - 2462, 2655, 2656, 2475, 2657, 2291, 2292, 2280, - 2293, 2487, 2669, 2488, 2476, 2489, 2658, 2670, - 2671, 2614, 2627, 2615, 2628, 2616, 2629, 2643, - 2630, 2644, 2683, 2684, 2672, 2685, 2252, 2434, - 2448, 2239, 2253, 2266, 2421, 2435, 2462, 2449, - 2644, 2267, 2463, 2280, 2476, 2658, 2281, 2294, - 2477, 2659, 2490, 2672, 2295, 2617, 2630, 2631, - 2645, 2491, 2673, 2686, 2282, 2283, 2465, 2478, - 2466, 2479, 2284, 2467, 2480, 2285, 2468, 2481, - 2296, 2297, 2298, 2492, 2493, 2494, 2299, 2482, - 2495, 2310, 2311, 2312, 2506, 2507, 2508, 2313, - 2496, 2509, 2324, 2325, 2326, 2520, 2521, 2522, - 2327, 2510, 2661, 2662, 2663, 2674, 2675, 2676, - 2677, 2688, 2689, 2690, 2691, 2702, 2703, 2704, - 2705, 2523, 2664, 2678, 2692, 2716, 2717, 2718, - 2706, 2285, 2286, 2468, 2480, 2481, 2469, 2482, - 2287, 2470, 2483, 2288, 2484, 2299, 2300, 2301, - 2494, 2495, 2496, 2497, 2302, 2498, 2313, 2314, - 2315, 2508, 2509, 2510, 2511, 2316, 2512, 2327, - 2328, 2329, 2522, 2523, 2524, 2525, 2330, 2664, - 2665, 2666, 2677, 2678, 2679, 2680, 2691, 2692, - 2693, 2694, 2705, 2706, 2707, 2708, 2526, 2676, - 2690, 2704, 2718, 2719, 2720, 2721, 2288, 2471, - 2483, 2484, 2289, 2302, 2485, 2667, 2472, 2290, - 2303, 2486, 2668, 2473, 2291, 2304, 2499, 2487, - 2500, 2669, 2682, 2497, 2498, 2680, 2681, 2316, - 2317, 2305, 2318, 2513, 2695, 2501, 2514, 2683, - 2511, 2512, 2696, 2694, 2330, 2331, 2319, 2332, - 2527, 2515, 2528, 2697, 2525, 2526, 2709, 2710, - 2708, 2722, 2723, 2711, 2724, 2679, 2693, 2707, - 2721, 2291, 2473, 2487, 2669, 2474, 2292, 2305, - 2488, 2670, 2475, 2293, 2306, 2489, 2671, 2476, - 2294, 2307, 2501, 2502, 2490, 2503, 2672, 2683, - 2684, 2685, 2319, 2320, 2308, 2321, 2515, 2516, - 2504, 2517, 2686, 2699, 2697, 2698, 2333, 2334, - 2322, 2335, 2529, 2530, 2712, 2518, 2531, 2700, - 2711, 2713, 2725, 2726, 2714, 2727, 2294, 2476, - 2490, 2672, 2477, 2295, 2308, 2491, 2673, 2504, - 2686, 2309, 2322, 2505, 2687, 2518, 2700, 2323, - 2336, 2519, 2701, 2532, 2714, 2337, 2533, 2715, - 2728, 2324, 2325, 2507, 2520, 2508, 2521, 2326, - 2509, 2522, 2327, 2510, 2523, 2338, 2339, 2340, - 2534, 2535, 2536, 2341, 2524, 2537, 2703, 2704, - 2705, 2716, 2717, 2718, 2719, 2730, 2731, 2732, - 2706, 2720, 2733, 2327, 2328, 2510, 2522, 2523, - 2511, 2524, 2329, 2512, 2525, 2330, 2526, 2341, - 2342, 2343, 2536, 2537, 2538, 2539, 2344, 2540, - 2706, 2707, 2708, 2719, 2720, 2721, 2722, 2733, - 2734, 2735, 2718, 2732, 2736, 2330, 2513, 2525, - 2526, 2331, 2344, 2527, 2709, 2514, 2332, 2345, - 2528, 2710, 2515, 2333, 2346, 2541, 2529, 2542, - 2711, 2539, 2540, 2723, 2724, 2722, 2347, 2737, - 2543, 2725, 2738, 2736, 2721, 2735, 2333, 2515, - 2529, 2711, 2516, 2334, 2347, 2530, 2712, 2517, - 2335, 2348, 2531, 2713, 2518, 2336, 2349, 2543, - 2725, 2544, 2532, 2545, 2714, 2726, 2727, 2350, - 2739, 2740, 2546, 2728, 2741, 2336, 2518, 2532, - 2714, 2519, 2337, 2350, 2533, 2715, 2546, 2728, - 2351, 2547, 2729, 2742, 2743, -}; - -static long _vq_fitmap_lsp30_1[] = { - 0, 83, 166, 254, 342, 406, 495, 584, - 697, 816, 871, 977, 1079, 1193, 1304, 1388, - 1494, 1596, 1701, 1800, 1877, 1938, 2028, 2118, - 2180, 2226, 2316, 2406, 2516, 342, 2635, 2725, - 2815, 2949, 3091, 3155, 3289, 3417, 3559, 1304, - 3694, 3834, 3970, 4100, 1800, 4220, 1938, 2028, - 4294, 2180, 4366, 4468, 4574, 4697, 4813, 4866, - 4997, 5126, 5267, 5402, 5462, 5597, 5725, 5856, - 5975, 6034, 6158, 6281, 6402, 6510, 6565, 6632, - 6697, 6765, 6830, 6861, 6962, 7067, 7182, 7288, - 7361, 7494, 7623, 7756, 7288, 7878, 8001, 8117, - 8231, 8337, 8389, 8495, 8602, 8705, 8796, 8843, - 8902, 8961, 9020, 9075, 9102, 9161, 9223, 9289, - 9378, 9421, 9492, 9562, 9289, 9378, 9636, 9704, - 9768, 9832, 9894, 9924, 9985, 10046, 10105, 10158, - 10185, 10219, 10253, 10286, 10317, -}; - -static long _vq_fitlength_lsp30_1[] = { - 83, 83, 88, 88, 64, 89, 89, 113, - 119, 55, 106, 102, 114, 111, 84, 106, - 102, 105, 99, 77, 61, 90, 90, 62, - 46, 90, 90, 110, 119, 64, 90, 90, - 134, 142, 64, 134, 128, 142, 135, 84, - 140, 136, 130, 120, 77, 74, 90, 90, - 72, 46, 102, 106, 123, 116, 53, 131, - 129, 141, 135, 60, 135, 128, 131, 119, - 59, 124, 123, 121, 108, 55, 67, 65, - 68, 65, 31, 101, 105, 115, 106, 73, - 133, 129, 133, 122, 73, 123, 116, 114, - 106, 52, 106, 107, 103, 91, 47, 59, - 59, 59, 55, 27, 59, 62, 66, 89, - 43, 71, 70, 74, 89, 43, 68, 64, - 64, 62, 30, 61, 61, 59, 53, 27, - 34, 34, 33, 31, 16, -}; - -static encode_aux_pigeonhole _vq_auxp_lsp30_1 = { - 0.083, 0.001, 39, 5, - _vq_pigeonmap_lsp30_1, - 10333, - _vq_fitlist_lsp30_1, - _vq_fitmap_lsp30_1, - _vq_fitlength_lsp30_1 -}; - -static static_codebook _vq_book_lsp30_1 = { - 3, 2744, - _vq_lengthlist_lsp30_1, - 1, 1603616637, 1590714958, 6, 1, - _vq_quantlist_lsp30_1, - NULL, - NULL, - &_vq_auxp_lsp30_1, - 0 -}; - - -#endif diff --git a/lib/books/lsp9_0.vqh b/lib/books/lsp9_0.vqh deleted file mode 100644 index fa59ae41..00000000 --- a/lib/books/lsp9_0.vqh +++ /dev/null @@ -1,122 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * - * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_lsp9_0_VQH_ -#define _V_lsp9_0_VQH_ -#include "codebook.h" - -static long _vq_quantlist_lsp9_0[] = { - 0, - 5, - 10, - 15, - 25, - 30, - 35, - 40, - 46, - 52, - 56, - 60, - 65, - 70, - 76, - 82, - 88, - 95, - 102, - 111, - 121, - 132, - 145, - 170, - 220, -}; - -static long _vq_lengthlist_lsp9_0[] = { - 7,10, 8, 7, 6, 7, 9, 5, 5, 5, 5, 4, 3, 3, 3, 3, - 4, 4, 6, 6, 4, 6, 6,10, 6, -}; - -static long _vq_pigeonmap_lsp9_0[] = { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, -}; - -static long _vq_fitlist_lsp9_0[] = { - 0, 1, 2, 3, 3, 4, 5, 6, - 6, 7, 8, 9, 9, 10, 11, 12, - 12, 13, 14, 15, 15, 16, 17, 18, - 18, 19, 20, 21, 21, 22, 23, 24, -}; - -static long _vq_fitmap_lsp9_0[] = { - 0, 4, 8, 12, 16, 20, 24, 28, - 28, -}; - -static long _vq_fitlength_lsp9_0[] = { - 4, 4, 4, 4, 4, 4, 4, 4, - 4, -}; - -static encode_aux_pigeonhole _vq_auxp_lsp9_0 = { - 0.16, 0.002, 220, 9, - _vq_pigeonmap_lsp9_0, - 32, - _vq_fitlist_lsp9_0, - _vq_fitmap_lsp9_0, - _vq_fitlength_lsp9_0 -}; - -static static_codebook _vq_book_lsp9_0 = { - 1, 25, - _vq_lengthlist_lsp9_0, - 1, 1605663457, 1592812110, 8, 1, - _vq_quantlist_lsp9_0, - NULL, - NULL, - &_vq_auxp_lsp9_0, - 0 -}; - - -#endif diff --git a/lib/books/lsp9_1.vqh b/lib/books/lsp9_1.vqh deleted file mode 100644 index 80ae3d3c..00000000 --- a/lib/books/lsp9_1.vqh +++ /dev/null @@ -1,880 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * - * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_lsp9_1_VQH_ -#define _V_lsp9_1_VQH_ -#include "codebook.h" - -static long _vq_quantlist_lsp9_1[] = { - 0, - 6, - 10, - 14, - 19, - 24, - 30, - 36, - 42, - 49, - 56, - 65, -}; - -static long _vq_lengthlist_lsp9_1[] = { - 17,17,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,15,16, - 16,16,16,16,15,15,14,16,16,16,16,16,16,16,16,16, - 15,12,14,16,16,15,16,16,16,14,16,16,15,11,13,14, - 14,15,16,16,14,16,16,16,15,16,15,14,14,16,16,16, - 16,16,16,16,16,16,14,13,15,16,16,16,16,16,15,15, - 14,14,14,15,16,16,16,16,16,16,16,15,16,16,14,16, - 16,16,16,16,16,16,16,16,16,15,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,14,15, - 16,16,16,16,15,14,15,14,14,15,14,16,16,16,15,16, - 15,11,13,16,14,14,16,16,16,16,15,16,14,11,13,13, - 13,14,16,15,16,16,16,16,16,13,13,13,14,16,16,16, - 16,16,16,16,14,13,14,12,14,16,16,16,16,16,16,15, - 14,14,14,15,14,16,16,16,16,16,15,15,15,16,15,15, - 14,16,16,16,16,16,16,16,16,16,16,16,15,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,15,16,16,16,16,16,16,16,16,16,16,16,16, - 16,15,16,15,16,16,16,16,16,16,15,16,16,15,15,16, - 16,16,16,16,15,12,12,14,15,14,16,15,15,16,16,16, - 13,10,11,12,13,14,16,16,16,16,16,16,12,11,10,11, - 12,14,14,16,16,16,16,14,13,11,11,11,12,14,15,16, - 16,16,16,15,13,11,12,12,14,15,15,16,16,16,16,16, - 13,13,14,14,15,14,16,16,16,16,15,15,14,16,14,14, - 16,16,16,16,16,16,16,15,16,16,15,15,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,15,16,16,16,16,16,15,15,15, - 15,15,16,15,16,16,16,16,16,16,13,15,13,14,14,16, - 16,15,16,16,14,11,10,11,12,13,14,16,16,16,16,16, - 12,10,10,10,11,12,14,15,16,16,16,13,10, 9, 9,10, - 11,13,15,15,16,14,15,13,10,10, 9,10,11,13,15,16, - 16,16,14,14,12,10,10,11,13,14,16,16,16,16,16,14, - 12,12,12,12,14,16,16,16,16,15,16,14,13,14,14,15, - 16,14,16,16,16,16,16,15,15,16,14,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,14,15,15,16,16,16,16, - 16,16,15,16,13,14,15,16,16,16,16,16,16,16,14,14, - 13,14,14,15,16,16,16,16,14,12,11,12,11,12,14,16, - 16,16,16,15,12, 9, 9,10,10,12,13,16,16,15,14,13, - 10, 9, 8, 9,10,11,13,16,16,16,13,10, 8, 8, 7, 8, - 9,12,14,15,16,14,12,10, 8, 8, 8, 8,10,12,14,16, - 16,14,15,11,10, 9, 9, 9,11,13,13,16,14,16,14,13, - 11,11,11,11,13,13,16,16,16,16,15,13,13,12,12,14, - 13,14,16,16,16,16,16,15,16,14,15,14,15,16,16,16, - 16,16,16,16,16,16,15,15,14,16,16,16,16,16,16,16, - 16,16,15,13,13,14,14,16,16,16,16,16,14,13,12,12, - 12,12,13,15,16,16,16,15,13,10,10,11,10,11,12,13, - 16,16,16,14,10, 8, 8, 8, 9,10,11,16,16,16,14,11, - 8, 8, 7, 8, 9,10,12,16,16,15,10, 8, 7, 7, 6, 6, - 8,10,12,15,16,14,11, 8, 7, 6, 6, 7, 9,11,12,14, - 15,14,12,10, 8, 8, 8, 9,10,12,13,16,13,14,13,11, - 10,10,10,10,11,13,14,15,16,16,14,14,12,12,12,11, - 13,15,14,16,16,16,16,14,13,13,13,16,16,16,16,16, - 16,16,16,16,16,16,15,15,14,15,14,16,16,16,16,16, - 16,16,14,12,12,13,15,11,16,14,16,16,14,12,10,10, - 10,12,13,13,16,16,16,16,11, 9, 9, 9,10,11,11,12, - 16,16,14,11, 7, 7, 7, 8, 9,10,10,16,16,16,13, 8, - 7, 7, 6, 7, 8, 9,12,14,16,15,10, 7, 6, 6, 5, 5, - 8,10,12,16,14,12,10, 8, 6, 6, 5, 7, 9,10,12,14, - 15,13,10, 9, 8, 8, 8, 9, 9,11,12,14,16,13,13,12, - 10,10,10,10,10,12,13,16,16,16,14,13,12,12,11,11, - 12,14,15,16,16,16,15,16,14,12,13,13,16,15,16,16, - 16,15,16,16,16,16,16,13,13,15,15,16,16,16,16,16, - 16,16,11,12,12,13,15,16,16,15,16,15,13,10, 9,10, - 11,12,16,14,16,16,16,12, 9, 8, 8, 9,10,12,12,14, - 16,16,13,10, 7, 7, 7, 8, 9,11,12,16,16,15,12, 8, - 7, 6, 6, 7, 9,10,12,16,16,13,10, 8, 6, 6, 6, 7, - 9,10,12,14,13,12,10, 8, 7, 7, 7, 8, 9,10,12,15, - 16,11,10,10, 9, 9, 9, 8, 9,10,13,16,14,12,12,12, - 11,10, 9, 9,10,12,14,16,15,15,14,12,11,11,10,11, - 13,13,14,16,16,15,15,15,13,13,13,15,15,16,16,16, - 16,16,16,16,16,16,15,13,15,16,16,16,16,16,16,16, - 15,14,12,12,13,15,16,16,16,16,15,16,13,11,10,11, - 12,13,16,16,16,16,16,12,10, 9, 8, 9,10,13,14,16, - 16,14,13,11, 9, 8, 8, 9,12,13,14,16,16,12,11,10, - 8, 7, 8, 9,11,12,13,16,14,13,11, 9, 8, 8, 8, 9, - 10,11,13,15,14,12,11,10, 9, 9, 9, 9, 9,10,12,16, - 13,13,12,10,10,10, 9, 9, 9,11,13,15,14,13,12,11, - 11,10,10,10,10,12,16,16,14,14,13,12,12,11,12,11, - 13,15,16,16,15,14,14,15,14,14,15,15,16,16,16,16, - 16,16,16,16,16,16,16,16,16,15,16,15,16,16,16,15, - 16,14,15,13,14,15,16,16,16,16,16,14,13,12,13,13, - 13,16,16,16,16,15,15,13,12,11,11,11,14,14,16,16, - 16,15,12,11,10,10,10,12,13,15,15,16,14,12,12,11, - 10, 9,10,12,12,14,15,16,14,12,11,10, 9, 9,10,11, - 11,12,14,16,16,13,11,10,10,10,10, 9, 9,11,13,15, - 15,13,12,11,11,11,10, 9,10,12,14,16,15,12,12,12, - 12,11,10,10,11,13,15,16,12,13,14,16,13,14,12,12, - 14,14,16,16,15,15,16,16,14,14,14,15,16,16,16,16, - 16,16,16,16,16,15,16,16,16,16,16,16,16,16,16,16, - 16,14,16,15,16,16,16,16,16,16,16,14,15,14,14,14, - 15,16,16,16,15,15,13,15,13,13,12,14,16,16,16,16, - 14,13,13,12,11,12,14,14,16,16,16,16,13,13,12,11, - 10,11,13,14,13,14,15,16,15,14,11,11,11,11,12,12, - 12,13,15,16,16,15,12,11,11,12,11,11,11,13,15,16, - 16,14,13,13,13,12,11,10,11,14,16,16,14,13,15,16, - 16,13,11,11,12,15,16,16,15,16,16,16,15,15,12,12, - 14,16,16,16,15,14,16,16,15,15,15,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,14,16,16,14,15,15,16, - 16,16,16,16,16,16,15,14,14,15,16,15,16,16,16,16, - 16,15,14,13,13,14,16,16,16,16,16,16,16,14,13,12, - 13,13,14,16,15,16,16,16,16,13,14,13,14,13,16,15, - 15,16,16,16,16,14,14,14,16,15,16,14,16,16,16,16, - 16,16,15,13,16,14,14,15,14,15,16,16,16,15,16,16, - 16,16,15,15,16,16,16,16,15,16,16,16,16,16,16,16, - 16,16,16,16,16,14,16,16,16,16,16,16,16,16,16,16, -}; - -static long _vq_pigeonmap_lsp9_1[] = { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, -}; - -static long _vq_fitlist_lsp9_1[] = { - 0, 1, 12, 144, 2, 3, 145, 146, - 13, 14, 24, 25, 156, 15, 26, 147, - 36, 27, 38, 168, 37, 157, 158, 169, - 159, 170, 180, 181, 39, 171, 182, 48, - 288, 289, 290, 291, 300, 301, 302, 312, - 313, 314, 303, 432, 324, 325, 315, 326, - 433, 434, 435, 444, 446, 445, 456, 447, - 457, 458, 468, 469, 459, 470, 3, 4, - 15, 147, 5, 16, 148, 6, 17, 149, - 14, 26, 27, 28, 29, 18, 150, 161, - 39, 40, 41, 171, 30, 159, 160, 172, - 173, 162, 38, 183, 184, 185, 158, 53, - 174, 291, 292, 293, 294, 303, 304, 305, - 317, 315, 316, 306, 302, 170, 329, 327, - 328, 435, 436, 437, 438, 318, 447, 448, - 449, 461, 459, 460, 450, 446, 314, 473, - 471, 472, 462, 6, 18, 150, 7, 19, - 151, 8, 20, 152, 9, 29, 30, 31, - 32, 162, 163, 164, 21, 44, 42, 43, - 174, 33, 165, 153, 176, 41, 175, 188, - 186, 187, 56, 54, 55, 294, 295, 296, - 173, 306, 307, 308, 297, 320, 318, 319, - 177, 185, 309, 332, 440, 438, 439, 330, - 331, 200, 321, 450, 451, 452, 441, 464, - 462, 463, 453, 476, 317, 474, 475, 344, - 465, 9, 20, 21, 153, 10, 22, 154, - 11, 34, 23, 155, 33, 32, 165, 166, - 46, 178, 45, 35, 44, 58, 190, 167, - 47, 164, 177, 189, 179, 57, 310, 297, - 298, 299, 176, 309, 322, 321, 188, 311, - 334, 333, 202, 320, 191, 323, 441, 442, - 443, 454, 466, 201, 478, 308, 453, 465, - 455, 332, 477, 346, 335, 467, 464, 345, - 36, 25, 37, 26, 38, 27, 39, 48, - 180, 50, 49, 181, 171, 182, 60, 51, - 183, 192, 61, 193, 62, 194, 63, 195, - 72, 204, 205, 206, 73, 74, 169, 170, - 157, 207, 216, 168, 324, 315, 313, 314, - 326, 325, 327, 336, 337, 338, 339, 348, - 349, 350, 217, 218, 351, 360, 468, 469, - 480, 481, 482, 492, 493, 361, 362, 457, - 458, 459, 470, 471, 483, 494, 495, 504, - 505, 506, 27, 39, 28, 40, 29, 41, - 30, 51, 183, 52, 184, 53, 185, 42, - 174, 50, 63, 64, 195, 196, 65, 197, - 54, 186, 62, 75, 207, 76, 208, 77, - 209, 66, 198, 74, 172, 173, 171, 162, - 210, 221, 194, 206, 219, 220, 329, 327, - 316, 328, 317, 318, 339, 340, 341, 330, - 351, 352, 353, 342, 218, 182, 315, 338, - 350, 497, 354, 365, 473, 472, 483, 484, - 485, 474, 495, 496, 486, 363, 362, 364, - 459, 460, 461, 471, 462, 482, 494, 498, - 509, 507, 506, 508, 30, 42, 31, 43, - 32, 44, 33, 56, 54, 186, 55, 187, - 188, 45, 65, 66, 67, 68, 198, 199, - 200, 57, 78, 210, 79, 211, 80, 212, - 69, 201, 53, 174, 175, 176, 177, 189, - 163, 164, 165, 222, 223, 224, 213, 309, - 332, 318, 330, 331, 319, 320, 342, 343, - 344, 333, 354, 355, 356, 345, 197, 321, - 500, 368, 366, 367, 357, 474, 475, 476, - 486, 487, 488, 498, 499, 462, 463, 464, - 453, 465, 477, 489, 510, 511, 501, 512, - 33, 45, 34, 57, 46, 23, 35, 58, - 190, 167, 47, 56, 189, 202, 179, 70, - 59, 191, 69, 68, 201, 214, 71, 203, - 82, 80, 81, 213, 83, 215, 177, 178, - 226, 166, 225, 311, 200, 212, 358, 224, - 94, 310, 333, 334, 321, 322, 323, 346, - 335, 345, 347, 357, 370, 359, 502, 501, - 369, 478, 455, 477, 467, 490, 489, 479, - 491, 227, 465, 454, 466, 344, 356, 514, - 503, 368, 238, 513, 371, 72, 61, 73, - 205, 62, 63, 74, 206, 216, 75, 207, - 84, 217, 218, 85, 86, 228, 87, 219, - 96, 229, 230, 97, 98, 240, 99, 231, - 108, 241, 242, 109, 110, 243, 384, 385, - 386, 252, 349, 350, 351, 360, 361, 362, - 363, 372, 373, 374, 375, 253, 254, 387, - 493, 504, 505, 516, 528, 529, 494, 506, - 517, 518, 396, 397, 530, 495, 507, 519, - 398, 531, 672, 540, 673, 541, 674, 63, - 74, 75, 207, 64, 76, 208, 65, 77, - 209, 66, 219, 220, 78, 210, 221, 87, - 88, 89, 86, 90, 101, 222, 233, 99, - 231, 100, 232, 98, 243, 102, 234, 245, - 244, 113, 110, 111, 112, 246, 218, 242, - 389, 387, 388, 257, 351, 352, 353, 354, - 363, 364, 365, 230, 366, 375, 376, 377, - 378, 254, 255, 362, 386, 256, 374, 522, - 533, 531, 532, 390, 496, 497, 498, 507, - 508, 509, 510, 519, 520, 521, 398, 399, - 401, 495, 400, 506, 530, 518, 534, 677, - 675, 676, 542, 543, 544, 545, 66, 78, - 210, 67, 79, 211, 68, 80, 212, 69, - 90, 222, 223, 224, 91, 92, 81, 213, - 102, 234, 103, 235, 236, 104, 93, 225, - 246, 247, 248, 114, 115, 105, 116, 237, - 113, 390, 391, 392, 258, 259, 249, 260, - 354, 355, 356, 366, 367, 368, 357, 378, - 379, 380, 369, 381, 500, 511, 522, 524, - 534, 535, 536, 525, 404, 499, 498, 510, - 512, 501, 523, 513, 393, 402, 403, 537, - 548, 678, 679, 680, 546, 547, 69, 81, - 213, 70, 82, 214, 71, 83, 215, 92, - 225, 93, 94, 226, 95, 227, 104, 237, - 105, 106, 238, 250, 107, 239, 249, 116, - 117, 118, 251, 224, 236, 248, 262, 203, - 370, 359, 382, 371, 394, 393, 383, 261, - 357, 358, 347, 369, 381, 260, 395, 406, - 501, 502, 514, 503, 526, 525, 515, 538, - 537, 527, 513, 405, 380, 392, 539, 550, - 404, 549, 682, 681, 108, 240, 97, 241, - 98, 109, 99, 242, 110, 252, 111, 120, - 253, 254, 121, 122, 264, 123, 265, 266, - 132, 133, 134, 267, 276, 135, 243, 255, - 277, 278, 408, 409, 410, 385, 386, 387, - 396, 397, 398, 399, 411, 420, 384, 421, - 279, 422, 552, 553, 529, 540, 541, 542, - 554, 530, 555, 564, 531, 543, 423, 566, - 565, 696, 697, 673, 674, 684, 685, 686, - 698, 110, 243, 100, 111, 244, 112, 101, - 245, 113, 102, 246, 255, 114, 257, 256, - 125, 122, 123, 124, 258, 126, 269, 267, - 268, 134, 135, 136, 137, 270, 280, 279, - 138, 281, 413, 411, 412, 278, 414, 254, - 389, 388, 390, 401, 399, 400, 266, 402, - 387, 425, 398, 410, 422, 423, 424, 557, - 555, 556, 282, 531, 533, 532, 534, 545, - 543, 544, 546, 558, 569, 567, 568, 542, - 554, 566, 426, 701, 699, 700, 675, 676, - 677, 678, 689, 687, 688, 690, 102, 113, - 246, 114, 103, 247, 115, 104, 248, 116, - 105, 258, 259, 249, 260, 127, 117, 128, - 126, 125, 270, 271, 261, 272, 129, 140, - 138, 137, 139, 281, 282, 283, 273, 284, - 257, 269, 416, 414, 415, 391, 390, 392, - 393, 404, 402, 403, 405, 426, 427, 141, - 428, 417, 425, 401, 548, 413, 549, 560, - 558, 559, 534, 535, 536, 537, 546, 547, - 570, 571, 572, 561, 569, 285, 557, 545, - 704, 702, 703, 678, 679, 680, 681, 692, - 690, 691, 693, 105, 249, 117, 106, 250, - 118, 107, 251, 119, 116, 128, 260, 261, - 129, 262, 130, 263, 131, 272, 273, 274, - 142, 141, 275, 140, 284, 285, 286, 143, - 418, 419, 407, 417, 430, 393, 394, 395, - 405, 406, 428, 429, 287, 404, 416, 562, - 563, 539, 551, 561, 574, 537, 538, 549, - 550, 572, 573, 548, 560, 431, 706, 707, - 695, 705, 718, 681, 682, 683, 693, 694, - 432, 289, 300, 576, 433, 290, 434, 291, - 435, 444, 301, 577, 302, 578, 445, 446, - 312, 303, 157, 456, 588, 313, 314, 447, - 579, 457, 458, 324, 325, 315, 326, 468, - 600, 469, 459, 470, 589, 590, 591, 601, - 602, 612, 613, 471, 603, 614, 480, 720, - 722, 721, 732, 723, 733, 734, 744, 735, - 745, 746, 756, 757, 615, 747, 758, 624, - 864, 865, 866, 876, 867, 877, 878, 888, - 889, 879, 890, 900, 901, 759, 891, 902, - 768, 291, 435, 292, 303, 436, 579, 293, - 304, 437, 580, 161, 294, 305, 581, 438, - 447, 448, 449, 446, 315, 316, 317, 459, - 460, 306, 461, 582, 591, 592, 593, 450, - 329, 327, 328, 471, 472, 473, 605, 318, - 462, 594, 314, 603, 604, 458, 590, 617, - 615, 616, 606, 485, 723, 724, 725, 726, - 735, 736, 737, 749, 747, 748, 738, 602, - 734, 761, 759, 760, 750, 629, 867, 868, - 869, 746, 879, 880, 870, 881, 893, 891, - 892, 882, 758, 903, 904, 905, 878, 773, - 894, 294, 438, 295, 306, 582, 439, 163, - 296, 307, 583, 440, 164, 308, 584, 297, - 452, 450, 451, 441, 318, 319, 320, 462, - 594, 463, 595, 464, 596, 309, 330, 331, - 332, 453, 476, 474, 606, 475, 607, 608, - 321, 344, 465, 317, 461, 585, 597, 620, - 473, 618, 619, 488, 486, 487, 609, 726, - 727, 728, 605, 738, 739, 740, 617, 750, - 751, 752, 729, 741, 764, 762, 763, 632, - 630, 631, 753, 872, 870, 871, 749, 761, - 882, 883, 884, 894, 896, 885, 873, 895, - 908, 906, 907, 776, 774, 775, 297, 308, - 441, 309, 585, 298, 453, 442, 166, 310, - 586, 454, 299, 155, 443, 452, 322, 466, - 311, 587, 321, 598, 320, 464, 465, 167, - 455, 597, 334, 478, 333, 610, 323, 477, - 467, 609, 476, 346, 599, 345, 490, 622, - 335, 596, 621, 479, 611, 489, 608, 620, - 729, 730, 731, 742, 741, 754, 743, 753, - 634, 766, 740, 765, 623, 755, 633, 752, - 764, 873, 874, 875, 898, 778, 885, 886, - 897, 887, 910, 767, 884, 909, 899, 777, - 324, 468, 313, 336, 457, 325, 469, 458, - 326, 470, 459, 327, 480, 612, 337, 338, - 471, 601, 481, 613, 482, 614, 348, 349, - 339, 350, 483, 492, 624, 493, 625, 494, - 626, 351, 495, 360, 636, 504, 361, 637, - 362, 638, 505, 506, 602, 603, 615, 627, - 639, 648, 600, 649, 650, 745, 746, 756, - 747, 758, 757, 768, 759, 769, 770, 771, - 780, 781, 782, 783, 792, 744, 793, 794, - 913, 900, 889, 890, 901, 902, 903, 912, - 914, 915, 924, 925, 926, 891, 877, 927, - 936, 888, 327, 459, 471, 460, 328, 472, - 461, 329, 473, 318, 341, 462, 339, 340, - 330, 485, 617, 483, 615, 604, 616, 484, - 605, 474, 606, 482, 351, 352, 353, 342, - 495, 627, 496, 628, 497, 629, 486, 618, - 494, 354, 363, 639, 364, 640, 365, 641, - 498, 630, 507, 509, 508, 506, 603, 594, - 642, 626, 638, 651, 652, 653, 650, 614, - 747, 748, 749, 761, 759, 760, 750, 771, - 772, 773, 762, 783, 784, 785, 774, 738, - 786, 795, 796, 797, 770, 782, 794, 758, - 917, 928, 929, 905, 903, 904, 893, 894, - 915, 916, 906, 927, 918, 892, 891, 882, - 930, 941, 914, 926, 939, 940, 330, 462, - 474, 319, 342, 463, 331, 475, 320, 343, - 464, 332, 476, 344, 321, 465, 486, 618, - 487, 619, 488, 620, 607, 608, 333, 477, - 356, 354, 355, 498, 630, 499, 631, 500, - 632, 345, 489, 368, 366, 642, 367, 643, - 224, 644, 357, 510, 511, 512, 501, 633, - 606, 609, 621, 485, 595, 596, 597, 656, - 654, 655, 645, 750, 751, 752, 629, 762, - 763, 764, 774, 775, 776, 786, 787, 788, - 777, 741, 753, 641, 765, 739, 740, 800, - 798, 799, 789, 773, 919, 932, 906, 907, - 908, 896, 785, 918, 920, 930, 931, 921, - 894, 895, 897, 909, 883, 884, 885, 942, - 943, 944, 933, 465, 333, 477, 345, 322, - 466, 334, 478, 346, 490, 622, 323, 455, - 467, 599, 335, 479, 489, 621, 488, 609, - 610, 611, 358, 357, 502, 634, 347, 491, - 623, 500, 501, 633, 370, 646, 359, 226, - 514, 503, 635, 368, 225, 369, 645, 512, - 513, 371, 647, 382, 658, 598, 515, 657, - 656, 743, 632, 644, 790, 753, 754, 766, - 755, 765, 778, 767, 777, 779, 789, 791, - 742, 526, 802, 659, 801, 800, 776, 788, - 887, 910, 899, 922, 921, 911, 934, 933, - 923, 909, 897, 898, 670, 803, 935, 946, - 886, 945, 920, 932, 944, 360, 504, 493, - 361, 637, 494, 505, 362, 495, 506, 363, - 372, 638, 648, 507, 516, 373, 649, 374, - 650, 517, 518, 375, 229, 384, 519, 240, - 660, 528, 385, 661, 386, 662, 529, 530, - 387, 241, 672, 531, 396, 252, 673, 674, - 540, 397, 398, 253, 541, 542, 639, 651, - 663, 675, 684, 816, 685, 781, 782, 792, - 793, 794, 804, 805, 806, 807, 817, 818, - 686, 783, 795, 819, 828, 829, 925, 936, - 937, 948, 960, 961, 962, 830, 926, 927, - 938, 939, 949, 950, 951, 963, 972, 363, - 506, 507, 496, 364, 640, 508, 497, 365, - 641, 509, 498, 222, 366, 377, 642, 653, - 375, 651, 376, 652, 233, 510, 519, 520, - 521, 518, 234, 378, 389, 654, 665, 387, - 663, 388, 664, 245, 522, 531, 532, 533, - 530, 246, 390, 666, 675, 676, 401, 677, - 534, 399, 400, 257, 255, 256, 545, 398, - 542, 543, 544, 639, 650, 662, 678, 674, - 689, 821, 819, 820, 686, 687, 688, 783, - 784, 785, 786, 797, 795, 796, 798, 809, - 807, 808, 810, 794, 806, 822, 833, 818, - 830, 831, 832, 928, 929, 951, 952, 954, - 965, 963, 964, 927, 939, 940, 930, 941, - 942, 953, 966, 950, 962, 977, 366, 498, - 642, 510, 499, 367, 643, 511, 500, 368, - 644, 512, 501, 223, 378, 654, 224, 379, - 655, 380, 234, 235, 656, 369, 524, 645, - 522, 523, 513, 390, 666, 391, 392, 246, - 667, 668, 381, 536, 657, 534, 535, 525, - 679, 402, 678, 403, 404, 680, 249, 260, - 393, 669, 258, 259, 537, 548, 546, 547, - 545, 690, 691, 681, 692, 822, 823, 824, - 786, 787, 788, 798, 799, 800, 789, 811, - 810, 812, 801, 813, 689, 834, 835, 825, - 836, 932, 944, 943, 933, 956, 954, 945, - 957, 968, 966, 967, 930, 931, 942, 955, - 833, 978, 979, 969, 980, 501, 369, 645, - 513, 502, 370, 646, 514, 359, 382, 503, - 658, 371, 647, 225, 380, 381, 238, 515, - 237, 657, 525, 526, 227, 524, 383, 659, - 394, 670, 392, 393, 250, 239, 527, 669, - 537, 538, 536, 395, 671, 682, 406, 251, - 539, 405, 681, 261, 262, 550, 549, 683, - 656, 668, 404, 680, 407, 548, 694, 693, - 826, 825, 815, 789, 790, 802, 791, 801, - 803, 814, 813, 692, 827, 800, 812, 824, - 551, 838, 837, 933, 945, 934, 946, 935, - 958, 957, 947, 969, 970, 959, 836, 695, - 971, 944, 956, 968, 982, 923, 981, 396, - 540, 529, 673, 253, 397, 530, 541, 674, - 398, 531, 542, 675, 399, 408, 684, 543, - 264, 685, 686, 552, 409, 410, 265, 553, - 266, 554, 687, 411, 696, 555, 697, 698, - 276, 420, 421, 564, 277, 565, 422, 566, - 699, 278, 423, 708, 567, 709, 710, 840, - 841, 842, 817, 828, 829, 830, 818, 819, - 831, 843, 852, 711, 816, 853, 854, 984, - 985, 986, 961, 962, 972, 973, 974, 987, - 855, 960, 996, 963, 975, 997, 998, 399, - 531, 542, 675, 532, 543, 676, 400, 533, - 544, 677, 257, 401, 545, 534, 256, 402, - 678, 258, 689, 687, 688, 413, 546, 411, - 412, 269, 267, 268, 557, 410, 554, 555, - 556, 690, 270, 414, 701, 699, 700, 558, - 281, 425, 422, 566, 279, 423, 280, 424, - 568, 567, 569, 702, 426, 282, 713, 711, - 712, 570, 686, 698, 710, 845, 843, 844, - 820, 821, 822, 833, 831, 832, 834, 819, - 846, 857, 855, 856, 714, 830, 854, 842, - 987, 988, 989, 965, 964, 966, 976, 977, - 975, 978, 963, 990, 999, 1000, 858, 1001, - 974, 986, 998, 534, 545, 678, 402, 546, - 535, 679, 259, 403, 547, 536, 680, 404, - 548, 537, 258, 260, 414, 690, 415, 691, - 272, 405, 416, 681, 692, 261, 270, 271, - 549, 560, 558, 559, 557, 702, 703, 417, - 693, 704, 273, 284, 428, 561, 282, 426, - 283, 427, 569, 570, 571, 572, 425, 714, - 715, 429, 705, 716, 713, 689, 701, 848, - 846, 847, 823, 822, 824, 825, 836, 834, - 835, 837, 858, 859, 573, 849, 860, 833, - 857, 845, 990, 992, 991, 967, 968, 966, - 969, 980, 978, 979, 981, 717, 993, 1002, - 1003, 1004, 1001, 861, 977, 989, 1134, 537, - 681, 261, 405, 549, 538, 682, 262, 406, - 550, 395, 539, 683, 263, 407, 548, 416, - 417, 693, 418, 694, 551, 273, 274, 562, - 561, 695, 275, 419, 560, 705, 706, 563, - 286, 430, 285, 429, 574, 707, 573, 572, - 287, 431, 716, 717, 718, 575, 692, 704, - 850, 851, 839, 849, 862, 825, 826, 827, - 837, 838, 860, 861, 719, 836, 848, 994, - 995, 993, 983, 1006, 969, 970, 971, 981, - 982, 863, 980, 992, 1005, 1004, 1138, 1139, - 864, 721, 732, 865, 722, 733, 866, 723, - 734, 867, 876, 877, 878, 744, 745, 735, - 746, 888, 889, 879, 890, 756, 757, 747, - 758, 900, 901, 891, 902, 768, 1008, 1009, - 1010, 1020, 1011, 1032, 1021, 1022, 1033, 1023, - 1034, 1044, 1045, 903, 1035, 1046, 912, 1152, - 1153, 1154, 1164, 1155, 1176, 1165, 1166, 1177, - 1167, 1178, 1188, 1189, 1047, 1179, 1190, 1056, - 1296, 1297, 1298, 1308, 1299, 1310, 1309, 1320, - 1321, 1311, 1322, 1191, 1333, 1200, 1332, 1201, - 1323, 1334, 723, 867, 724, 735, 868, 725, - 736, 869, 726, 737, 870, 881, 879, 880, - 878, 746, 747, 748, 749, 738, 891, 892, - 893, 761, 882, 759, 760, 750, 903, 904, - 905, 894, 773, 1011, 1013, 1012, 890, 1014, - 1025, 1035, 1023, 1024, 1036, 1037, 1026, 902, - 1047, 1048, 1049, 1022, 917, 1038, 1157, 1155, - 1156, 1034, 1167, 1168, 1158, 1169, 1179, 1180, - 1181, 1170, 1046, 1191, 1192, 1193, 1166, 1061, - 1182, 1299, 1300, 1301, 1178, 1302, 1311, 1312, - 1313, 1323, 1324, 1325, 1314, 1335, 1203, 1336, - 1204, 1205, 1337, 726, 870, 727, 738, 871, - 728, 739, 872, 740, 729, 882, 883, 884, - 752, 873, 750, 751, 895, 896, 893, 894, - 741, 764, 762, 763, 885, 753, 908, 906, - 907, 774, 775, 776, 897, 1014, 1015, 1016, - 905, 1026, 1027, 1028, 1039, 1029, 1017, 1040, - 1038, 1052, 1050, 1051, 920, 918, 919, 1037, - 1041, 1158, 1159, 1160, 1049, 1170, 1171, 1172, - 1182, 1183, 1184, 1173, 1161, 1196, 1194, 1195, - 1064, 1062, 1063, 1181, 1185, 1193, 1302, 1303, - 1304, 1314, 1315, 1316, 1328, 1305, 1326, 1327, - 1317, 1340, 1208, 1205, 1206, 1338, 1207, 1339, - 729, 740, 873, 741, 730, 874, 742, 731, - 886, 875, 884, 885, 754, 753, 743, 898, - 897, 887, 896, 765, 766, 764, 910, 755, - 909, 899, 908, 778, 777, 767, 1017, 1018, - 1019, 1042, 922, 1029, 1030, 1031, 1054, 911, - 1028, 1041, 1053, 1043, 921, 1040, 1052, 1161, - 1162, 1163, 1174, 1186, 1066, 1175, 1173, 1185, - 1198, 1055, 1172, 1197, 1187, 1065, 1184, 1196, - 1210, 1305, 1306, 1307, 1199, 1318, 1317, 1330, - 1329, 1319, 1342, 1316, 1341, 1209, 1331, 1328, - 756, 888, 900, 768, 889, 757, 901, 890, - 758, 902, 891, 759, 769, 770, 903, 912, - 913, 914, 780, 781, 771, 782, 915, 924, - 925, 926, 783, 792, 793, 794, 927, 936, - 937, 938, 1068, 1069, 1070, 1044, 1045, 1035, - 1046, 1047, 1056, 1057, 1058, 1059, 1033, 1034, - 1021, 1071, 1080, 1032, 1081, 1082, 1212, 1201, - 1213, 1214, 1188, 1177, 1178, 1189, 1179, 1190, - 1191, 1200, 1202, 1203, 1215, 1165, 1224, 1176, - 1225, 1226, 1332, 1333, 1344, 1345, 1356, 1357, - 1321, 1334, 1335, 1346, 1347, 1358, 1309, 1322, - 1323, 1359, 1320, 1310, 1311, 1368, 759, 891, - 903, 760, 771, 892, 904, 761, 772, 893, - 905, 773, 894, 762, 915, 916, 917, 906, - 914, 782, 783, 784, 785, 774, 929, 927, - 928, 918, 926, 786, 795, 796, 797, 930, - 941, 939, 940, 938, 902, 1073, 1062, 1071, - 1072, 1047, 1048, 1049, 1059, 1060, 1061, 1050, - 1036, 1037, 1038, 1035, 1026, 1074, 1085, 1058, - 1070, 1083, 1084, 1082, 1046, 1192, 1193, 1204, - 1205, 1215, 1216, 1217, 1206, 1191, 1181, 1182, - 1203, 1194, 1180, 1179, 1170, 1218, 1229, 1202, - 1214, 1227, 1228, 1226, 1190, 1335, 1336, 1337, - 1347, 1348, 1338, 1349, 1359, 1360, 1361, 1350, - 1324, 1325, 1326, 1314, 1323, 1312, 1313, 1362, - 1373, 762, 894, 906, 774, 895, 763, 907, - 775, 896, 764, 908, 776, 753, 765, 885, - 897, 920, 918, 919, 909, 788, 786, 787, - 931, 777, 932, 930, 921, 800, 798, 799, - 789, 942, 943, 944, 933, 917, 1052, 1062, - 1074, 1075, 1076, 1050, 1051, 1039, 929, 1063, - 1064, 1065, 1038, 1040, 1041, 1053, 1027, 1028, - 1029, 1086, 1087, 1088, 1077, 1061, 1196, 1206, - 1207, 1208, 1218, 1219, 1220, 1194, 1195, 1183, - 1184, 1073, 1209, 1182, 1185, 1197, 1171, 1172, - 1173, 1230, 1231, 1232, 1221, 1205, 1340, 1338, - 1339, 1217, 1350, 1351, 1352, 1362, 1363, 1364, - 1327, 1353, 1326, 1315, 1316, 1328, 1317, 1329, - 1341, 1361, 1374, 1375, 1365, 1376, 765, 897, - 909, 777, 754, 766, 886, 898, 910, 778, - 755, 887, 899, 922, 767, 911, 921, 920, - 790, 789, 779, 934, 923, 933, 932, 802, - 791, 801, 935, 946, 944, 945, 803, 1031, - 1054, 1043, 1066, 1055, 1078, 1077, 1067, 1053, - 1065, 947, 1079, 1041, 1042, 1090, 1030, 1089, - 1064, 1076, 1088, 1175, 1198, 1197, 1187, 1210, - 1209, 1199, 1222, 1221, 1211, 1185, 1186, 1091, - 1223, 1234, 1174, 1233, 1208, 1220, 1232, 1342, - 1341, 1354, 1343, 1353, 1366, 1355, 1365, 1235, - 1319, 1329, 1330, 1331, 1367, 1318, 1352, 1364, - 1378, 1317, 1340, 1376, 1377, 1246, 792, 936, - 925, 793, 926, 937, 794, 927, 938, 795, - 804, 805, 806, 939, 948, 949, 950, 807, - 816, 817, 818, 951, 960, 961, 962, 819, - 828, 963, 829, 830, 972, 973, 1069, 1070, - 1080, 1081, 1082, 1092, 1093, 1094, 1104, 1105, - 1106, 974, 1071, 1083, 1095, 1107, 1116, 1117, - 1213, 1214, 1224, 1225, 1226, 1236, 1237, 1238, - 1248, 1249, 1250, 1118, 1215, 1227, 1239, 1251, - 1260, 1261, 1262, 1357, 1358, 1368, 1369, 1370, - 1380, 1382, 1381, 1392, 1393, 1359, 1371, 1383, - 1394, 1395, 1404, 795, 927, 938, 939, 928, - 796, 940, 929, 797, 941, 930, 798, 809, - 807, 808, 942, 953, 951, 952, 950, 810, - 821, 819, 820, 954, 965, 963, 964, 962, - 822, 833, 831, 832, 966, 974, 975, 976, - 977, 1071, 1072, 1073, 1074, 1083, 1084, 1085, - 1086, 1097, 1095, 1096, 1098, 1107, 1109, 1108, - 1110, 1082, 1106, 1121, 1094, 1118, 1119, 1215, - 1216, 1217, 1218, 1229, 1227, 1228, 1230, 1239, - 1240, 1241, 1242, 1253, 1251, 1252, 1120, 1254, - 1250, 1265, 1226, 1238, 1262, 1263, 1264, 1397, - 1359, 1360, 1361, 1362, 1371, 1372, 1373, 1374, - 1383, 1384, 1385, 1386, 1395, 1396, 1398, 1409, - 798, 930, 942, 931, 799, 943, 932, 800, - 944, 933, 810, 811, 812, 801, 954, 955, - 956, 945, 822, 823, 824, 813, 966, 967, - 957, 968, 834, 835, 825, 836, 980, 979, - 969, 978, 1074, 1075, 1076, 1087, 1088, 1086, - 1077, 1099, 1089, 1100, 1098, 1111, 1112, 1110, - 1101, 977, 1122, 1123, 1113, 1124, 1218, 1219, - 1220, 1231, 1221, 1232, 1230, 1242, 1243, 1244, - 1233, 1254, 1255, 1256, 1245, 1121, 1266, 1267, - 1257, 1268, 1399, 1362, 1363, 1364, 1374, 1375, - 1376, 1365, 1386, 1387, 1388, 1377, 1398, 1400, - 1389, 1229, 1241, 1373, 1253, 1385, 1265, 1410, - 1411, 1401, 1412, 933, 801, 945, 934, 802, - 946, 791, 814, 935, 803, 813, 947, 812, - 958, 956, 957, 815, 826, 825, 959, 824, - 970, 968, 969, 827, 838, 971, 836, 837, - 982, 981, 1077, 1078, 1079, 1089, 1090, 1091, - 1101, 1102, 1103, 1113, 1114, 980, 839, 1115, - 1088, 1100, 1112, 1126, 1067, 1125, 1221, 1222, - 1223, 1233, 1234, 1235, 1245, 1246, 1247, 1257, - 1258, 1124, 983, 1259, 1232, 1244, 1256, 1270, - 1211, 1269, 1379, 1402, 1268, 1401, 1365, 1366, - 1367, 1378, 1377, 1390, 1389, 1391, 1127, 1376, - 1388, 1400, 1271, 1403, 1355, 1414, 1412, 1413, - 828, 972, 961, 829, 962, 973, 830, 963, - 974, 831, 840, 975, 841, 842, 984, 985, - 986, 843, 987, 852, 1128, 853, 997, 854, - 996, 1129, 1130, 998, 855, 1105, 1116, 1117, - 1118, 1131, 999, 1104, 1106, 1140, 1107, 1119, - 1141, 1142, 1273, 1272, 1274, 1249, 1250, 1260, - 1261, 1262, 1275, 1284, 1143, 1248, 1251, 1263, - 1285, 1286, 1393, 1405, 1416, 1417, 1418, 1287, - 1394, 1404, 1406, 1419, 1428, 1395, 1407, 1430, - 1429, 831, 963, 974, 964, 975, 832, 965, - 976, 833, 977, 966, 834, 845, 843, 844, - 978, 986, 987, 988, 989, 846, 990, 1133, - 857, 854, 855, 1131, 856, 998, 999, 1132, - 1000, 1001, 858, 1108, 1109, 1110, 1121, 1119, - 1120, 1122, 1002, 1107, 1134, 1143, 1145, 1144, - 1142, 1118, 1130, 1277, 1275, 1276, 1251, 1252, - 1253, 1254, 1265, 1263, 1264, 1266, 1146, 1278, - 1287, 1289, 1288, 1262, 1274, 1286, 1409, 1421, - 1419, 1420, 1395, 1396, 1397, 1398, 1407, 1408, - 1410, 1290, 1422, 1433, 1431, 1432, 1430, 966, - 834, 978, 967, 835, 979, 968, 836, 980, - 969, 977, 846, 847, 837, 848, 981, 992, - 990, 991, 989, 849, 860, 993, 858, 1134, - 859, 1136, 1135, 1004, 1001, 1002, 1003, 861, - 1110, 1111, 1112, 1122, 1123, 1113, 1124, 1125, - 1146, 1145, 1137, 1147, 1148, 1121, 1133, 1280, - 1279, 1278, 1005, 1254, 1255, 1256, 1266, 1267, - 1257, 1268, 1269, 1281, 1291, 1290, 1292, 1289, - 1265, 1277, 1149, 1399, 1401, 1412, 1413, 1424, - 1411, 1422, 1423, 1398, 1400, 1410, 1434, 1435, - 1425, 1436, 1421, 1433, 1293, 969, 837, 981, - 970, 838, 982, 827, 971, 839, 848, 980, - 849, 850, 983, 994, 993, 851, 992, 995, - 862, 1138, 861, 718, 1127, 1137, 1006, 1005, - 1004, 863, 1139, 1150, 719, 1007, 1113, 1114, - 1115, 1125, 1126, 1124, 1136, 1148, 1149, 1282, - 1283, 1271, 1281, 1294, 1151, 1257, 1258, 1259, - 1269, 1270, 1268, 1280, 1292, 1293, 1426, 1427, - 1295, 1401, 1402, 1413, 1414, 1403, 1415, 1425, - 1438, 1412, 1424, 1436, 1437, 1296, 1153, 1164, - 1297, 1154, 1165, 1298, 1155, 1166, 1299, 1308, - 1176, 1309, 1177, 1310, 1167, 1178, 1320, 1188, - 1189, 1321, 1179, 1190, 1311, 1322, 1333, 1332, - 1191, 1323, 1334, 1200, 1440, 1441, 1442, 1452, - 1443, 1454, 1453, 1464, 1465, 1455, 1466, 1335, - 1344, 1476, 1345, 1477, 1467, 1478, 1584, 1585, - 1586, 1479, 1587, 1596, 1598, 1608, 1597, 1599, - 1488, 1609, 1490, 1610, 1620, 1489, 1621, 1611, - 1622, 1155, 1166, 1299, 1156, 1167, 1300, 1157, - 1168, 1301, 1158, 1169, 1302, 1311, 1312, 1313, - 1181, 1178, 1310, 1179, 1180, 1170, 1322, 1325, - 1191, 1323, 1192, 1324, 1193, 1314, 1182, 1335, - 1336, 1337, 1194, 1205, 1326, 1445, 1443, 1444, - 1455, 1456, 1446, 1457, 1467, 1468, 1469, 1458, - 1479, 1347, 1480, 1348, 1349, 1481, 1454, 1466, - 1338, 1470, 1589, 1478, 1587, 1588, 1590, 1601, - 1599, 1600, 1613, 1611, 1612, 1491, 1492, 1493, - 1602, 1586, 1623, 1624, 1625, 1482, 1598, 1610, - 1614, 1158, 1302, 1159, 1170, 1303, 1160, 1171, - 1304, 1172, 1161, 1316, 1314, 1182, 1315, 1183, - 1184, 1305, 1326, 1327, 1173, 1196, 1328, 1193, - 1325, 1194, 1195, 1185, 1317, 1340, 1337, 1338, - 1339, 1206, 1207, 1208, 1329, 1446, 1448, 1447, - 1313, 1458, 1459, 1460, 1472, 1449, 1470, 1471, - 1461, 1484, 1352, 1349, 1350, 1482, 1351, 1483, - 1469, 1481, 1473, 1457, 1590, 1591, 1592, 1496, - 1601, 1604, 1602, 1603, 1593, 1614, 1615, 1616, - 1605, 1493, 1494, 1495, 1628, 1626, 1627, 1613, - 1625, 1617, 1161, 1172, 1305, 1173, 1162, 1306, - 1174, 1163, 1318, 1307, 1317, 1186, 1184, 1316, - 1185, 1175, 1330, 1198, 1328, 1197, 1329, 1187, - 1319, 1196, 1342, 1341, 1210, 1199, 1331, 1340, - 1208, 1209, 1449, 1450, 1451, 1354, 1343, 1462, - 1461, 1474, 1473, 1463, 1486, 1460, 1485, 1353, - 1475, 1472, 1484, 1352, 1498, 1487, 1593, 1594, - 1595, 1497, 1618, 1630, 1606, 1604, 1605, 1617, - 1607, 1616, 1629, 1619, 1496, 1628, 1592, 1642, - 1188, 1320, 1332, 1200, 1189, 1321, 1178, 1310, - 1322, 1333, 1190, 1323, 1334, 1191, 1201, 1202, - 1344, 1335, 1212, 1345, 1346, 1203, 1213, 1214, - 1356, 1357, 1347, 1358, 1215, 1224, 1225, 1226, - 1359, 1368, 1369, 1370, 1500, 1476, 1477, 1488, - 1489, 1501, 1465, 1478, 1479, 1490, 1491, 1502, - 1453, 1466, 1467, 1503, 1464, 1454, 1455, 1512, - 1513, 1514, 1644, 1645, 1646, 1608, 1597, 1620, - 1609, 1610, 1621, 1622, 1611, 1623, 1632, 1633, - 1634, 1635, 1515, 1647, 1598, 1599, 1656, 1657, - 1658, 1191, 1323, 1335, 1192, 1203, 1324, 1336, - 1193, 1204, 1325, 1337, 1205, 1194, 1326, 1202, - 1347, 1348, 1349, 1338, 1217, 1346, 1214, 1215, - 1216, 1206, 1359, 1360, 1361, 1350, 1358, 1218, - 1226, 1227, 1228, 1229, 1362, 1371, 1372, 1373, - 1370, 1334, 1505, 1503, 1504, 1479, 1480, 1481, - 1491, 1492, 1493, 1494, 1468, 1469, 1482, 1458, - 1470, 1467, 1456, 1457, 1506, 1517, 1490, 1502, - 1515, 1516, 1514, 1478, 1649, 1647, 1648, 1611, - 1600, 1623, 1612, 1601, 1624, 1613, 1602, 1625, - 1614, 1637, 1635, 1636, 1626, 1638, 1622, 1634, - 1646, 1518, 1650, 1661, 1659, 1660, 1658, 1194, - 1326, 1338, 1206, 1195, 1327, 1339, 1207, 1196, - 1328, 1340, 1208, 1185, 1197, 1317, 1329, 1349, - 1350, 1351, 1352, 1218, 1219, 1220, 1341, 1209, - 1361, 1362, 1363, 1364, 1353, 1221, 1232, 1230, - 1231, 1374, 1375, 1376, 1365, 1507, 1508, 1506, - 1484, 1482, 1483, 1495, 1496, 1494, 1471, 1497, - 1470, 1459, 1460, 1472, 1461, 1473, 1485, 1505, - 1493, 1518, 1519, 1509, 1520, 1650, 1651, 1652, - 1614, 1603, 1626, 1615, 1604, 1627, 1616, 1628, - 1605, 1617, 1638, 1639, 1640, 1629, 1641, 1662, - 1531, 1663, 1637, 1649, 1530, 1664, 1653, 1197, - 1329, 1341, 1209, 1186, 1198, 1318, 1330, 1342, - 1210, 1187, 1319, 1331, 1354, 1199, 1222, 1343, - 1353, 1220, 1352, 1221, 1211, 1366, 1355, 1364, - 1365, 1234, 1223, 1233, 1378, 1367, 1376, 1377, - 1246, 1235, 1510, 1509, 1486, 1485, 1498, 1487, - 1497, 1499, 1379, 1463, 1473, 1474, 1475, 1511, - 1462, 1496, 1508, 1522, 1461, 1484, 1520, 1521, - 1390, 1523, 1654, 1642, 1619, 1631, 1653, 1643, - 1655, 1605, 1617, 1629, 1606, 1618, 1630, 1607, - 1641, 1534, 1666, 1628, 1640, 1652, 1532, 1664, - 1665, 1533, 1224, 1368, 1357, 1225, 1358, 1369, - 1226, 1359, 1370, 1227, 1236, 1237, 1238, 1371, - 1380, 1381, 1382, 1239, 1248, 1249, 1250, 1383, - 1392, 1393, 1394, 1251, 1260, 1261, 1262, 1395, - 1404, 1356, 1405, 1501, 1512, 1513, 1524, 1525, - 1536, 1406, 1502, 1514, 1526, 1537, 1503, 1515, - 1527, 1538, 1539, 1548, 1500, 1549, 1550, 1680, - 1645, 1656, 1657, 1668, 1669, 1658, 1670, 1681, - 1682, 1646, 1647, 1659, 1671, 1633, 1683, 1644, - 1692, 1693, 1694, 1227, 1359, 1370, 1360, 1371, - 1228, 1361, 1372, 1229, 1373, 1362, 1230, 1241, - 1238, 1239, 1240, 1374, 1383, 1384, 1385, 1382, - 1242, 1253, 1250, 1251, 1252, 1386, 1395, 1396, - 1397, 1394, 1254, 1265, 1263, 1264, 1398, 1409, - 1406, 1407, 1408, 1504, 1505, 1506, 1517, 1515, - 1516, 1518, 1529, 1527, 1528, 1530, 1541, 1539, - 1540, 1503, 1542, 1553, 1514, 1526, 1538, 1550, - 1551, 1552, 1685, 1650, 1661, 1662, 1673, 1674, - 1683, 1684, 1648, 1649, 1659, 1660, 1671, 1672, - 1647, 1638, 1658, 1670, 1682, 1686, 1697, 1694, - 1695, 1696, 1230, 1362, 1374, 1363, 1231, 1375, - 1364, 1232, 1376, 1365, 1242, 1243, 1244, 1233, - 1388, 1386, 1387, 1377, 1254, 1255, 1256, 1245, - 1400, 1398, 1399, 1389, 1266, 1267, 1257, 1268, - 1410, 1401, 1412, 1411, 1506, 1507, 1508, 1519, - 1518, 1520, 1530, 1531, 1532, 1542, 1543, 1544, - 1533, 1509, 1521, 1373, 1385, 1517, 1397, 1529, - 1409, 1554, 1555, 1545, 1556, 1541, 1688, 1686, - 1687, 1651, 1652, 1662, 1663, 1664, 1674, 1675, - 1676, 1677, 1553, 1650, 1653, 1665, 1673, 1639, - 1640, 1641, 1698, 1699, 1689, 1700, 1661, 1685, - 1365, 1233, 1377, 1366, 1234, 1378, 1223, 1246, - 1355, 1367, 1235, 1245, 1244, 1390, 1379, 1389, - 1388, 1258, 1247, 1257, 1256, 1402, 1391, 1401, - 1400, 1259, 1270, 1268, 1269, 1403, 1414, 1412, - 1413, 1509, 1510, 1511, 1522, 1521, 1523, 1534, - 1533, 1535, 1546, 1545, 1520, 1532, 1544, 1271, - 1415, 1547, 1499, 1558, 1556, 1557, 1689, 1690, - 1653, 1654, 1666, 1655, 1665, 1667, 1677, 1678, - 1679, 1559, 1691, 1664, 1643, 1676, 1688, 1642, - 1700, 1701, 1702, 1260, 1249, 1393, 1404, 1261, - 1394, 1405, 1262, 1395, 1406, 1263, 1272, 1273, - 1274, 1407, 1416, 1417, 1418, 1275, 1419, 1284, - 1285, 1286, 1429, 1428, 1430, 1287, 1392, 1536, - 1537, 1548, 1549, 1560, 1561, 1562, 1538, 1550, - 1563, 1572, 1431, 1539, 1551, 1573, 1574, 1575, - 1681, 1692, 1693, 1704, 1705, 1682, 1683, 1694, - 1706, 1716, 1695, 1707, 1717, 1718, 1680, 1719, - 1263, 1395, 1406, 1396, 1407, 1264, 1397, 1408, - 1265, 1254, 1398, 1409, 1266, 1277, 1275, 1276, - 1410, 1421, 1418, 1419, 1420, 1278, 1422, 1287, - 1288, 1289, 1286, 1430, 1431, 1432, 1433, 1290, - 1539, 1540, 1541, 1542, 1553, 1551, 1552, 1554, - 1565, 1563, 1564, 1434, 1566, 1577, 1575, 1576, - 1574, 1550, 1562, 1697, 1709, 1578, 1684, 1685, - 1686, 1695, 1696, 1698, 1707, 1708, 1710, 1683, - 1721, 1719, 1720, 1694, 1706, 1718, 1398, 1266, - 1255, 1399, 1410, 1267, 1256, 1400, 1411, 1268, - 1257, 1401, 1412, 1409, 1278, 1279, 1269, 1280, - 1277, 1423, 1413, 1424, 1422, 1421, 1281, 1292, - 1290, 1291, 1425, 1436, 1433, 1434, 1435, 1293, - 1542, 1543, 1544, 1554, 1555, 1545, 1556, 1567, - 1557, 1568, 1566, 1578, 1579, 1569, 1580, 1553, - 1437, 1577, 1565, 1686, 1687, 1688, 1689, 1700, - 1698, 1699, 1701, 1712, 1710, 1711, 1581, 1713, - 1724, 1722, 1723, 1721, 1697, 1709, 1401, 1269, - 1258, 1402, 1413, 1270, 1414, 1259, 1403, 1271, - 1282, 1280, 1412, 1281, 1415, 1426, 1424, 1425, - 1283, 1294, 1427, 1293, 1292, 1438, 1437, 1295, - 1436, 1570, 1571, 1439, 1545, 1546, 1547, 1557, - 1558, 1559, 1569, 1582, 1556, 1568, 1580, 1581, - 1583, 1689, 1690, 1691, 1701, 1702, 1703, 1713, - 1714, 1715, 1726, 1724, 1725, 1700, 1712, 1679, - 1727, -}; - -static long _vq_fitmap_lsp9_1[] = { - 0, 62, 131, 201, 264, 338, 428, 512, - 589, 663, 758, 838, 908, 977, 1062, 1147, - 1216, 1297, 1385, 1478, 1560, 1650, 1758, 1867, - 1965, 2055, 2166, 2269, 2367, 2447, 2547, 2647, - 2728, 2810, 2899, 2992, 3072, 3166, 3273, 3382, - 3478, 3563, 3664, 3763, 3856, 3929, 4015, 4101, - 4173, 4241, 4321, 4402, 4472, 4553, 4647, 4735, - 4818, 4891, 4978, 5064, 5139, 5200, 5270, 5342, -}; - -static long _vq_fitlength_lsp9_1[] = { - 62, 69, 70, 63, 74, 90, 84, 77, - 74, 95, 80, 70, 69, 85, 85, 69, - 81, 88, 93, 82, 90, 108, 109, 98, - 90, 111, 103, 98, 80, 100, 100, 81, - 82, 89, 93, 80, 94, 107, 109, 96, - 85, 101, 99, 93, 73, 86, 86, 72, - 68, 80, 81, 70, 81, 94, 88, 83, - 73, 87, 86, 75, 61, 70, 72, 59, -}; - -static encode_aux_pigeonhole _vq_auxp_lsp9_1 = { - 0.252, 0.002, 65, 4, - _vq_pigeonmap_lsp9_1, - 5401, - _vq_fitlist_lsp9_1, - _vq_fitmap_lsp9_1, - _vq_fitlength_lsp9_1 -}; - -static static_codebook _vq_book_lsp9_1 = { - 3, 1728, - _vq_lengthlist_lsp9_1, - 1, 1607475397, 1592812110, 7, 1, - _vq_quantlist_lsp9_1, - NULL, - NULL, - &_vq_auxp_lsp9_1, - 0 -}; - - -#endif diff --git a/lib/books/res0_128_1024_1.vqh b/lib/books/res0_128_1024_1.vqh deleted file mode 100644 index 2bbc639a..00000000 --- a/lib/books/res0_128_1024_1.vqh +++ /dev/null @@ -1,63 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_128_1024_1_VQH_ -#define _V_res0_128_1024_1_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_128_1024_1[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist_res0_128_1024_1[] = { - 1, 4, 4, 5, 8, 7, 4, 7, 7, 5, 8, 8, 8,11,11, 8, - 11,11, 5, 8, 7, 8,11,11, 8,11,11, 5, 8, 8, 8,11, - 11, 8,11,11, 8,12,11,11,15,15,12,15,15, 8,11,11, - 11,15,15,11,15,15, 4, 8, 8, 8,11,11, 8,11,11, 8, - 11,11,11,15,15,11,15,15, 8,11,11,11,15,15,11,15, - 15, -}; - -static float _vq_quantthresh_res0_128_1024_1[] = { - -0.5, 0.5, -}; - -static long _vq_quantmap_res0_128_1024_1[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt_res0_128_1024_1 = { - _vq_quantthresh_res0_128_1024_1, - _vq_quantmap_res0_128_1024_1, - 3, - 3 -}; - -static static_codebook _vq_book_res0_128_1024_1 = { - 4, 81, - _vq_lengthlist_res0_128_1024_1, - 1, -535822336, 1611661312, 2, 0, - _vq_quantlist_res0_128_1024_1, - NULL, - &_vq_auxt_res0_128_1024_1, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_128_1024_2.vqh b/lib/books/res0_128_1024_2.vqh deleted file mode 100644 index 262c6a02..00000000 --- a/lib/books/res0_128_1024_2.vqh +++ /dev/null @@ -1,63 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_128_1024_2_VQH_ -#define _V_res0_128_1024_2_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_128_1024_2[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist_res0_128_1024_2[] = { - 3, 4, 4, 5, 6, 6, 4, 6, 6, 5, 6, 6, 6, 8, 8, 6, - 8, 8, 4, 6, 6, 6, 8, 8, 6, 8, 8, 5, 7, 6, 7, 8, - 8, 6, 8, 8, 6, 8, 8, 8,10,10, 8,10,10, 6, 8, 8, - 8,10,10, 8,10,10, 5, 6, 6, 6, 8, 8, 6, 8, 8, 6, - 8, 8, 8,10,10, 8,10,10, 6, 8, 8, 8,10,10, 8,10, - 10, -}; - -static float _vq_quantthresh_res0_128_1024_2[] = { - -0.5, 0.5, -}; - -static long _vq_quantmap_res0_128_1024_2[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt_res0_128_1024_2 = { - _vq_quantthresh_res0_128_1024_2, - _vq_quantmap_res0_128_1024_2, - 3, - 3 -}; - -static static_codebook _vq_book_res0_128_1024_2 = { - 4, 81, - _vq_lengthlist_res0_128_1024_2, - 1, -535822336, 1611661312, 2, 0, - _vq_quantlist_res0_128_1024_2, - NULL, - &_vq_auxt_res0_128_1024_2, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_128_1024_3.vqh b/lib/books/res0_128_1024_3.vqh deleted file mode 100644 index e00fabfa..00000000 --- a/lib/books/res0_128_1024_3.vqh +++ /dev/null @@ -1,99 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_128_1024_3_VQH_ -#define _V_res0_128_1024_3_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_128_1024_3[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist_res0_128_1024_3[] = { - 2, 4, 4, 7, 7, 5, 7, 7, 9, 9, 5, 7, 7, 9, 9, 7, - 10,10,14,13, 7,10,10,14,14, 5, 7, 7, 9, 9, 7, 9, - 9,12,12, 7, 9, 9,12,12,10,12,12,16,16,10,12,12, - 16,17, 4, 7, 7, 9, 9, 7, 9, 9,12,12, 7, 9, 9,12, - 12,10,12,12,17,16,10,12,12,16,16, 7,10, 9,13,13, - 10,12,12,16,16,10,12,12,17,16,14,17,17,21,21,14, - 16,17,21,22, 7,10,10,13,13,10,12,12,16,16,10,12, - 12,16,17,14,17,16,19,20,14,16,16,19,21, 5, 7, 7, - 10, 9, 7, 9, 9,12,12, 7, 9, 9,12,12,10,12,12,16, - 17,10,12,12,17,16, 7, 9, 9,12,12, 9,12,12,14,14, - 9,12,11,15,15,12,15,15,17,19,12,14,15,18,18, 7, - 9, 9,12,12, 9,12,11,14,14, 9,12,12,14,14,12,15, - 14,19,18,12,14,14,18,19,10,12,12,16,17,12,14,15, - 18,19,12,15,15,18,19,17,17,19,19,22,17,19,19,20, - 20,10,12,12,17,16,12,14,15,18,19,12,15,15,19,18, - 16,18,17,21,20,17,19,19,20,21, 5, 7, 7, 9, 9, 7, - 9, 9,12,12, 7, 9, 9,12,12,10,12,12,17,17,10,12, - 12,17,16, 7, 9, 9,12,12, 9,12,12,14,14, 9,11,12, - 14,14,12,14,15,19,19,12,14,14,18,18, 7, 9, 9,12, - 12, 9,11,12,14,14, 9,12,11,14,14,12,14,15,18,20, - 12,15,14,19,18,10,12,12,16,16,12,15,15,20,18,12, - 14,14,19,19,16,19,19,21,20,16,18,20,21,20,10,12, - 12,17,17,12,14,15,19,19,12,14,14,19,19,17,19,18, - 20,21,16,19,17,20,20, 7,10,10,13,13,10,12,12,17, - 17,10,12,12,17,17,13,16,17,21,21,13,16,17,20,20, - 10,12,12,17,17,12,15,15,19,18,12,15,15,19,20,16, - 19,18,20,21,17,19,18,20,21,10,12,12,17,16,12,15, - 15,20,18,12,15,15,19,19,16,19,18,21,21,16,18,18, - 21,21,14,17,17,20,19,17,18,18,21,21,17,18,19,21, - 20,19,19,20,21,21,20,20,20,21,21,14,17,17,19,21, - 16,19,18,21,19,17,19,19,21,20,21,20,19,21,20,20, - 21,20,20,21, 7,10,10,13,13,10,12,12,17,17,10,12, - 12,17,16,13,17,17,20,20,13,17,17,20,21,10,12,12, - 16,17,12,15,15,19,18,12,15,15,21,18,17,19,18,21, - 21,17,19,19,20,21,10,12,12,17,16,12,15,14,19,19, - 12,15,14,20,19,16,19,18,20,21,17,19,18,21,20,14, - 17,16,19,20,17,19,19,20,21,16,18,19,20,21,20,20, - 21,21,21,20,21,21,21,21,14,17,17,19,21,17,19,19, - 21,21,16,18,17,21,21,20,21,21,21,21,19,21,20,21, - 21, -}; - -static float _vq_quantthresh_res0_128_1024_3[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap_res0_128_1024_3[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt_res0_128_1024_3 = { - _vq_quantthresh_res0_128_1024_3, - _vq_quantmap_res0_128_1024_3, - 5, - 5 -}; - -static static_codebook _vq_book_res0_128_1024_3 = { - 4, 625, - _vq_lengthlist_res0_128_1024_3, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist_res0_128_1024_3, - NULL, - &_vq_auxt_res0_128_1024_3, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_128_1024_4.vqh b/lib/books/res0_128_1024_4.vqh deleted file mode 100644 index 3111f744..00000000 --- a/lib/books/res0_128_1024_4.vqh +++ /dev/null @@ -1,99 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_128_1024_4_VQH_ -#define _V_res0_128_1024_4_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_128_1024_4[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist_res0_128_1024_4[] = { - 5, 6, 6, 8, 8, 6, 6, 6, 9, 9, 6, 6, 6, 9, 9, 8, - 9, 9,11,11, 8, 9, 9,11,11, 6, 6, 6, 9, 9, 6, 7, - 7,10,10, 6, 7, 7,10,10, 9,10,10,12,13, 9,10,10, - 13,13, 6, 6, 6, 9, 9, 6, 7, 7,10,10, 6, 7, 7,10, - 10, 9,10,10,13,12, 9,10,10,13,12, 8, 9, 9,12,12, - 9,10,10,13,13, 9,10,10,13,13,12,13,13,15,15,12, - 13,13,15,15, 8, 9, 9,12,12, 9,10,10,13,13, 9,10, - 10,13,13,12,13,13,15,15,12,13,13,15,15, 6, 7, 7, - 9, 9, 7, 8, 8,10,10, 6, 7, 8,10,10, 9,10,10,13, - 13, 9,10,10,13,13, 6, 8, 7,10,10, 7, 8, 9,11,11, - 7, 9, 9,11,11,10,11,11,14,14,10,11,11,14,13, 6, - 8, 8,10,10, 7, 9, 8,11,11, 7, 9, 9,11,11,10,11, - 11,14,14,10,11,11,14,14, 9,10,10,13,13,10,11,11, - 14,14,10,11,11,14,14,13,13,14,15,17,13,14,14,17, - 17, 9,10,10,13,14,10,11,11,15,14,10,11,11,14,14, - 13,14,14,16,15,13,14,14,17,17, 6, 7, 7, 9, 9, 7, - 7, 7,10,10, 7, 8, 7,10,10, 9,10,10,13,13, 9,10, - 10,13,13, 6, 8, 7,10,10, 7, 9, 8,11,11, 7, 9, 9, - 11,11,10,11,11,14,14,10,11,11,14,14, 6, 7, 8,10, - 10, 7, 9, 9,11,11, 7, 9, 8,11,11,10,11,11,14,14, - 10,11,11,14,14, 9,10,10,13,13,10,11,11,14,14,10, - 11,11,14,14,13,14,14,16,16,13,14,15,16,16, 9,10, - 10,13,13,10,11,11,14,14,10,11,11,14,14,13,14,14, - 16,16,13,14,14,17,15, 8, 9,10,12,12, 9,11,11,14, - 13, 9,10,10,13,13,12,14,14,16,16,12,14,13,16,16, - 9,10,10,13,13,10,11,12,14,14,10,12,12,15,14,14, - 14,15,16,17,14,14,15,17,17, 9,10,11,13,14,10,12, - 11,14,14,10,11,12,14,14,13,15,15,17,16,13,14,15, - 16,17,12,13,13,16,16,13,14,14,17,16,13,15,15,17, - 17,15,16,17,18,18,17,17,17,18,20,12,14,13,16,16, - 13,15,14,17,16,13,14,14,16,16,15,16,16,19,16,15, - 17,17,18,19, 8, 9, 9,12,12, 9,10,10,13,13, 9,11, - 10,14,13,12,14,13,16,16,12,13,14,16,15, 9,10,10, - 14,13,10,12,11,15,14,10,11,12,15,15,13,14,14,17, - 17,14,14,15,16,19, 9,10,10,13,14,10,11,12,14,15, - 10,12,11,15,14,13,14,15,17,17,14,15,14,17,16,12, - 14,13,16,16,13,15,14,17,17,13,14,14,16,17,16,16, - 16,20,18,15,16,16,17,18,12,13,14,16,17,13,15,14, - 18,17,13,14,14,16,17,16,17,16,20,19,15,18,16,20, - 18, -}; - -static float _vq_quantthresh_res0_128_1024_4[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap_res0_128_1024_4[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt_res0_128_1024_4 = { - _vq_quantthresh_res0_128_1024_4, - _vq_quantmap_res0_128_1024_4, - 5, - 5 -}; - -static static_codebook _vq_book_res0_128_1024_4 = { - 4, 625, - _vq_lengthlist_res0_128_1024_4, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist_res0_128_1024_4, - NULL, - &_vq_auxt_res0_128_1024_4, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_128_1024_5.vqh b/lib/books/res0_128_1024_5.vqh deleted file mode 100644 index d529b911..00000000 --- a/lib/books/res0_128_1024_5.vqh +++ /dev/null @@ -1,80 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_128_1024_5_VQH_ -#define _V_res0_128_1024_5_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_128_1024_5[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist_res0_128_1024_5[] = { - 1, 4, 4, 6, 6, 6, 6, 8, 8, 9, 9,10,10, 4, 6, 6, - 9, 9, 9, 9,11,11,12,12,13,13, 4, 6, 6, 9, 9, 9, - 9,11,11,12,12,13,13, 6, 9, 9,12,11,12,12,14,14, - 15,14,15,16, 6, 9, 9,12,11,12,12,13,13,14,15,16, - 16, 6, 9, 9,12,12,14,14,15,15,16,17,16,17, 7, 9, - 9,12,12,14,14,15,15,16,16,16,16, 8,11,11,14,14, - 15,15,16,16,17,17,18,18, 8,11,11,14,14,15,15,16, - 16,16,18,17,18, 9,12,12,15,15,16,16,17,17,18,17, - 19,18, 9,13,13,15,15,16,16,17,16,17,17,19,18,10, - 14,14,16,17,17,17,18,18,18,18,19,19,10,14,14,16, - 16,17,17,18,18,21,21,20,19, -}; - -static float _vq_quantthresh_res0_128_1024_5[] = { - -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, - 2.5, 3.5, 4.5, 5.5, -}; - -static long _vq_quantmap_res0_128_1024_5[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt_res0_128_1024_5 = { - _vq_quantthresh_res0_128_1024_5, - _vq_quantmap_res0_128_1024_5, - 13, - 13 -}; - -static static_codebook _vq_book_res0_128_1024_5 = { - 2, 169, - _vq_lengthlist_res0_128_1024_5, - 1, -531103744, 1611661312, 4, 0, - _vq_quantlist_res0_128_1024_5, - NULL, - &_vq_auxt_res0_128_1024_5, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_128_1024_6.vqh b/lib/books/res0_128_1024_6.vqh deleted file mode 100644 index c0aff00f..00000000 --- a/lib/books/res0_128_1024_6.vqh +++ /dev/null @@ -1,80 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_128_1024_6_VQH_ -#define _V_res0_128_1024_6_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_128_1024_6[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist_res0_128_1024_6[] = { - 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 4, 5, 5, - 6, 6, 7, 7, 8, 8, 9, 9,10,10, 4, 5, 5, 6, 6, 7, - 7, 8, 8, 9, 9,10,10, 6, 6, 6, 7, 7, 9, 9,10,10, - 11,11,12,12, 5, 6, 6, 7, 7, 9, 9,10,10,11,11,12, - 12, 7, 7, 7, 9, 9,10,10,11,11,12,12,13,13, 7, 7, - 7, 9, 9,10,10,11,11,12,12,13,13, 8, 9, 9,10,10, - 11,11,13,12,13,13,14,14, 8, 9, 9,10,10,11,11,12, - 12,13,13,14,14, 9,10,10,11,11,12,13,13,13,14,14, - 14,14, 9,10,10,11,11,12,12,13,13,14,14,15,14,10, - 11,11,12,12,13,13,14,14,15,14,15,15,10,11,11,12, - 12,13,13,14,14,15,15,15,15, -}; - -static float _vq_quantthresh_res0_128_1024_6[] = { - -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, - 2.5, 3.5, 4.5, 5.5, -}; - -static long _vq_quantmap_res0_128_1024_6[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt_res0_128_1024_6 = { - _vq_quantthresh_res0_128_1024_6, - _vq_quantmap_res0_128_1024_6, - 13, - 13 -}; - -static static_codebook _vq_book_res0_128_1024_6 = { - 2, 169, - _vq_lengthlist_res0_128_1024_6, - 1, -531103744, 1611661312, 4, 0, - _vq_quantlist_res0_128_1024_6, - NULL, - &_vq_auxt_res0_128_1024_6, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_128_1024_7.vqh b/lib/books/res0_128_1024_7.vqh deleted file mode 100644 index 32de71cb..00000000 --- a/lib/books/res0_128_1024_7.vqh +++ /dev/null @@ -1,124 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_128_1024_7_VQH_ -#define _V_res0_128_1024_7_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_128_1024_7[] = { - 12, - 11, - 13, - 10, - 14, - 9, - 15, - 8, - 16, - 7, - 17, - 6, - 18, - 5, - 19, - 4, - 20, - 3, - 21, - 2, - 22, - 1, - 23, - 0, - 24, -}; - -static long _vq_lengthlist_res0_128_1024_7[] = { - 2, 4, 4, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, - 8, 9, 9, 9, 9, 9, 9,10,10, 4, 6, 6, 7, 7, 8, 8, - 9, 9, 9, 9,10,10, 9, 9,10,10,10,10,11,11,11,11, - 12,12, 4, 6, 6, 7, 7, 8, 8, 9, 9, 9, 9,10,10, 9, - 9,10,10,10,10,11,11,11,11,12,12, 6, 7, 7, 9, 9, - 9, 9,10,10,11,11,11,11,11,11,11,11,12,12,12,12, - 13,13,13,13, 6, 7, 7, 8, 8, 9, 9,10,10,11,10,11, - 11,11,11,11,11,12,12,12,12,13,13,13,13, 7, 8, 8, - 9,10,10,10,11,11,11,12,12,12,12,12,12,12,13,13, - 13,13,13,13,14,14, 7, 8, 8,10,10,10,10,11,11,11, - 12,12,12,12,12,12,12,13,13,13,13,14,13,14,14, 8, - 9, 9,10,10,11,11,12,12,13,12,13,13,13,13,13,13, - 14,14,14,14,14,14,15,15, 8, 9, 9,10,10,11,11,12, - 12,12,12,13,13,13,13,13,13,13,14,14,14,14,14,15, - 15, 8,10,10,11,11,12,12,13,13,13,13,13,13,13,14, - 14,14,15,14,14,15,15,15,15,15, 8,10,10,11,11,12, - 12,13,13,13,13,13,13,13,13,14,14,14,14,14,15,15, - 15,16,15, 9,10,10,11,12,12,12,13,13,14,14,14,14, - 14,14,14,14,15,15,15,15,15,16,16,16, 9,10,10,12, - 11,13,12,13,13,14,14,14,14,14,14,14,14,15,14,15, - 15,16,15,16,16, 8,10,10,12,12,12,13,13,13,14,14, - 14,14,14,14,15,15,15,15,15,16,16,16,16,17, 8,10, - 10,12,11,12,12,13,13,14,14,14,14,14,14,15,15,15, - 15,15,15,16,16,16,16, 9,11,11,12,12,13,13,14,13, - 14,14,15,14,15,15,15,15,15,16,16,16,16,16,17,16, - 9,11,11,12,12,13,13,14,14,14,14,14,14,15,14,15, - 15,15,15,16,16,16,16,17,17, 9,11,11,13,13,14,14, - 14,14,15,14,15,15,15,15,15,15,16,16,16,16,16,17, - 17,17, 9,11,11,12,13,13,13,14,14,14,15,15,15,15, - 15,15,16,17,16,16,17,16,16,17,17,10,12,11,13,13, - 14,14,14,15,15,15,15,15,15,16,16,17,16,16,16,17, - 17,17,17,18,10,12,12,13,13,14,14,15,14,15,15,15, - 15,16,16,17,16,16,16,16,17,17,18,17,17,10,12,12, - 14,13,15,15,15,15,16,15,16,16,16,16,17,16,17,16, - 16,16,17,17,17,17,10,12,12,14,14,15,15,15,15,16, - 15,16,16,17,16,16,17,17,16,17,17,16,17,18,18,11, - 12,13,14,14,15,15,15,15,16,15,16,16,17,16,17,17, - 18,17,18,18,18,17,18,18,11,13,13,14,14,14,15,15, - 16,16,16,16,16,16,16,17,16,17,16,17,17,18,17,17, - 18, -}; - -static float _vq_quantthresh_res0_128_1024_7[] = { - -11.5, -10.5, -9.5, -8.5, -7.5, -6.5, -5.5, -4.5, - -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, - 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, -}; - -static long _vq_quantmap_res0_128_1024_7[] = { - 23, 21, 19, 17, 15, 13, 11, 9, - 7, 5, 3, 1, 0, 2, 4, 6, - 8, 10, 12, 14, 16, 18, 20, 22, - 24, -}; - -static encode_aux_threshmatch _vq_auxt_res0_128_1024_7 = { - _vq_quantthresh_res0_128_1024_7, - _vq_quantmap_res0_128_1024_7, - 25, - 25 -}; - -static static_codebook _vq_book_res0_128_1024_7 = { - 2, 625, - _vq_lengthlist_res0_128_1024_7, - 1, -529006592, 1611661312, 5, 0, - _vq_quantlist_res0_128_1024_7, - NULL, - &_vq_auxt_res0_128_1024_7, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_128_1024_8.vqh b/lib/books/res0_128_1024_8.vqh deleted file mode 100644 index 0c454093..00000000 --- a/lib/books/res0_128_1024_8.vqh +++ /dev/null @@ -1,110 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_128_1024_8_VQH_ -#define _V_res0_128_1024_8_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_128_1024_8[] = { - 21, - 20, - 22, - 19, - 23, - 18, - 24, - 17, - 25, - 16, - 26, - 15, - 27, - 14, - 28, - 13, - 29, - 12, - 30, - 11, - 31, - 10, - 32, - 9, - 33, - 8, - 34, - 7, - 35, - 6, - 36, - 5, - 37, - 4, - 38, - 3, - 39, - 2, - 40, - 1, - 41, - 0, - 42, -}; - -static long _vq_lengthlist_res0_128_1024_8[] = { - 2, 3, 3, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, - 6, 7, 7, 7, 7, 7, 7, 8, 8, 7, 7, 7, 7, 8, 8, 8, - 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, -}; - -static float _vq_quantthresh_res0_128_1024_8[] = { - -20.5, -19.5, -18.5, -17.5, -16.5, -15.5, -14.5, -13.5, - -12.5, -11.5, -10.5, -9.5, -8.5, -7.5, -6.5, -5.5, - -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, - 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, - 11.5, 12.5, 13.5, 14.5, 15.5, 16.5, 17.5, 18.5, - 19.5, 20.5, -}; - -static long _vq_quantmap_res0_128_1024_8[] = { - 41, 39, 37, 35, 33, 31, 29, 27, - 25, 23, 21, 19, 17, 15, 13, 11, - 9, 7, 5, 3, 1, 0, 2, 4, - 6, 8, 10, 12, 14, 16, 18, 20, - 22, 24, 26, 28, 30, 32, 34, 36, - 38, 40, 42, -}; - -static encode_aux_threshmatch _vq_auxt_res0_128_1024_8 = { - _vq_quantthresh_res0_128_1024_8, - _vq_quantmap_res0_128_1024_8, - 43, - 43 -}; - -static static_codebook _vq_book_res0_128_1024_8 = { - 1, 43, - _vq_lengthlist_res0_128_1024_8, - 1, -527106048, 1611661312, 6, 0, - _vq_quantlist_res0_128_1024_8, - NULL, - &_vq_auxt_res0_128_1024_8, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_128_1024_9.vqh b/lib/books/res0_128_1024_9.vqh deleted file mode 100644 index 963cf0ce..00000000 --- a/lib/books/res0_128_1024_9.vqh +++ /dev/null @@ -1,501 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_128_1024_9_VQH_ -#define _V_res0_128_1024_9_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_128_1024_9[] = { - 170, - 169, - 171, - 168, - 172, - 167, - 173, - 166, - 174, - 165, - 175, - 164, - 176, - 163, - 177, - 162, - 178, - 161, - 179, - 160, - 180, - 159, - 181, - 158, - 182, - 157, - 183, - 156, - 184, - 155, - 185, - 154, - 186, - 153, - 187, - 152, - 188, - 151, - 189, - 150, - 190, - 149, - 191, - 148, - 192, - 147, - 193, - 146, - 194, - 145, - 195, - 144, - 196, - 143, - 197, - 142, - 198, - 141, - 199, - 140, - 200, - 139, - 201, - 138, - 202, - 137, - 203, - 136, - 204, - 135, - 205, - 134, - 206, - 133, - 207, - 132, - 208, - 131, - 209, - 130, - 210, - 129, - 211, - 128, - 212, - 127, - 213, - 126, - 214, - 125, - 215, - 124, - 216, - 123, - 217, - 122, - 218, - 121, - 219, - 120, - 220, - 119, - 221, - 118, - 222, - 117, - 223, - 116, - 224, - 115, - 225, - 114, - 226, - 113, - 227, - 112, - 228, - 111, - 229, - 110, - 230, - 109, - 231, - 108, - 232, - 107, - 233, - 106, - 234, - 105, - 235, - 104, - 236, - 103, - 237, - 102, - 238, - 101, - 239, - 100, - 240, - 99, - 241, - 98, - 242, - 97, - 243, - 96, - 244, - 95, - 245, - 94, - 246, - 93, - 247, - 92, - 248, - 91, - 249, - 90, - 250, - 89, - 251, - 88, - 252, - 87, - 253, - 86, - 254, - 85, - 255, - 84, - 256, - 83, - 257, - 82, - 258, - 81, - 259, - 80, - 260, - 79, - 261, - 78, - 262, - 77, - 263, - 76, - 264, - 75, - 265, - 74, - 266, - 73, - 267, - 72, - 268, - 71, - 269, - 70, - 270, - 69, - 271, - 68, - 272, - 67, - 273, - 66, - 274, - 65, - 275, - 64, - 276, - 63, - 277, - 62, - 278, - 61, - 279, - 60, - 280, - 59, - 281, - 58, - 282, - 57, - 283, - 56, - 284, - 55, - 285, - 54, - 286, - 53, - 287, - 52, - 288, - 51, - 289, - 50, - 290, - 49, - 291, - 48, - 292, - 47, - 293, - 46, - 294, - 45, - 295, - 44, - 296, - 43, - 297, - 42, - 298, - 41, - 299, - 40, - 300, - 39, - 301, - 38, - 302, - 37, - 303, - 36, - 304, - 35, - 305, - 34, - 306, - 33, - 307, - 32, - 308, - 31, - 309, - 30, - 310, - 29, - 311, - 28, - 312, - 27, - 313, - 26, - 314, - 25, - 315, - 24, - 316, - 23, - 317, - 22, - 318, - 21, - 319, - 20, - 320, - 19, - 321, - 18, - 322, - 17, - 323, - 16, - 324, - 15, - 325, - 14, - 326, - 13, - 327, - 12, - 328, - 11, - 329, - 10, - 330, - 9, - 331, - 8, - 332, - 7, - 333, - 6, - 334, - 5, - 335, - 4, - 336, - 3, - 337, - 2, - 338, - 1, - 339, - 0, - 340, -}; - -static long _vq_lengthlist_res0_128_1024_9[] = { - 3, 3, 3, 4, 4, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, - 6, 6, 6, 7, 6, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9,10,10,10,10,10,10,10,10, - 10,10,10,10,10,11,10,11,11,11,11,11,11,11,11,11, - 11,11,11,12,11,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,14,14,13,14,13,14,14,14,14, - 14,14,14,14,14,14,14,14,15,15,15,14,15,15,15,15, - 15,15,15,15,15,15,15,15,16,15,15,15,15,15,15,15, - 15,15,15,16,16,16,16,16,16,16,17,16,16,17,17,16, - 16,16,16,16,16,16,16,16,16,16,17,17,17,17,17,18, - 17,17,17,17,18,17,18,18,17,17,18,17,17,19,20,18, - 19,18,18,17,18,17,18,17,18,18,19,18,18,18,19,19, - 18,19,19,20,18,19,19,18,19,19,17,19,19,19,20,19, - 20,20,20,20,19,19,19,19,20,20,19,19,20,18,20,19, - 20,20,19,19,20,20,19,20,19,20,20,20,19,20,20,19, - 20,18,20,20,20,20,20,20,20,20,20,19,20,20,20,19, - 20,20,20,20,20,20,19,20,19,20,20,20,20,20,20,20, - 19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20, - 20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20, - 20,19,19,20,20, -}; - -static float _vq_quantthresh_res0_128_1024_9[] = { - -169.5, -168.5, -167.5, -166.5, -165.5, -164.5, -163.5, -162.5, - -161.5, -160.5, -159.5, -158.5, -157.5, -156.5, -155.5, -154.5, - -153.5, -152.5, -151.5, -150.5, -149.5, -148.5, -147.5, -146.5, - -145.5, -144.5, -143.5, -142.5, -141.5, -140.5, -139.5, -138.5, - -137.5, -136.5, -135.5, -134.5, -133.5, -132.5, -131.5, -130.5, - -129.5, -128.5, -127.5, -126.5, -125.5, -124.5, -123.5, -122.5, - -121.5, -120.5, -119.5, -118.5, -117.5, -116.5, -115.5, -114.5, - -113.5, -112.5, -111.5, -110.5, -109.5, -108.5, -107.5, -106.5, - -105.5, -104.5, -103.5, -102.5, -101.5, -100.5, -99.5, -98.5, - -97.5, -96.5, -95.5, -94.5, -93.5, -92.5, -91.5, -90.5, - -89.5, -88.5, -87.5, -86.5, -85.5, -84.5, -83.5, -82.5, - -81.5, -80.5, -79.5, -78.5, -77.5, -76.5, -75.5, -74.5, - -73.5, -72.5, -71.5, -70.5, -69.5, -68.5, -67.5, -66.5, - -65.5, -64.5, -63.5, -62.5, -61.5, -60.5, -59.5, -58.5, - -57.5, -56.5, -55.5, -54.5, -53.5, -52.5, -51.5, -50.5, - -49.5, -48.5, -47.5, -46.5, -45.5, -44.5, -43.5, -42.5, - -41.5, -40.5, -39.5, -38.5, -37.5, -36.5, -35.5, -34.5, - -33.5, -32.5, -31.5, -30.5, -29.5, -28.5, -27.5, -26.5, - -25.5, -24.5, -23.5, -22.5, -21.5, -20.5, -19.5, -18.5, - -17.5, -16.5, -15.5, -14.5, -13.5, -12.5, -11.5, -10.5, - -9.5, -8.5, -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, - -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, - 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5, - 14.5, 15.5, 16.5, 17.5, 18.5, 19.5, 20.5, 21.5, - 22.5, 23.5, 24.5, 25.5, 26.5, 27.5, 28.5, 29.5, - 30.5, 31.5, 32.5, 33.5, 34.5, 35.5, 36.5, 37.5, - 38.5, 39.5, 40.5, 41.5, 42.5, 43.5, 44.5, 45.5, - 46.5, 47.5, 48.5, 49.5, 50.5, 51.5, 52.5, 53.5, - 54.5, 55.5, 56.5, 57.5, 58.5, 59.5, 60.5, 61.5, - 62.5, 63.5, 64.5, 65.5, 66.5, 67.5, 68.5, 69.5, - 70.5, 71.5, 72.5, 73.5, 74.5, 75.5, 76.5, 77.5, - 78.5, 79.5, 80.5, 81.5, 82.5, 83.5, 84.5, 85.5, - 86.5, 87.5, 88.5, 89.5, 90.5, 91.5, 92.5, 93.5, - 94.5, 95.5, 96.5, 97.5, 98.5, 99.5, 100.5, 101.5, - 102.5, 103.5, 104.5, 105.5, 106.5, 107.5, 108.5, 109.5, - 110.5, 111.5, 112.5, 113.5, 114.5, 115.5, 116.5, 117.5, - 118.5, 119.5, 120.5, 121.5, 122.5, 123.5, 124.5, 125.5, - 126.5, 127.5, 128.5, 129.5, 130.5, 131.5, 132.5, 133.5, - 134.5, 135.5, 136.5, 137.5, 138.5, 139.5, 140.5, 141.5, - 142.5, 143.5, 144.5, 145.5, 146.5, 147.5, 148.5, 149.5, - 150.5, 151.5, 152.5, 153.5, 154.5, 155.5, 156.5, 157.5, - 158.5, 159.5, 160.5, 161.5, 162.5, 163.5, 164.5, 165.5, - 166.5, 167.5, 168.5, 169.5, -}; - -static long _vq_quantmap_res0_128_1024_9[] = { - 339, 337, 335, 333, 331, 329, 327, 325, - 323, 321, 319, 317, 315, 313, 311, 309, - 307, 305, 303, 301, 299, 297, 295, 293, - 291, 289, 287, 285, 283, 281, 279, 277, - 275, 273, 271, 269, 267, 265, 263, 261, - 259, 257, 255, 253, 251, 249, 247, 245, - 243, 241, 239, 237, 235, 233, 231, 229, - 227, 225, 223, 221, 219, 217, 215, 213, - 211, 209, 207, 205, 203, 201, 199, 197, - 195, 193, 191, 189, 187, 185, 183, 181, - 179, 177, 175, 173, 171, 169, 167, 165, - 163, 161, 159, 157, 155, 153, 151, 149, - 147, 145, 143, 141, 139, 137, 135, 133, - 131, 129, 127, 125, 123, 121, 119, 117, - 115, 113, 111, 109, 107, 105, 103, 101, - 99, 97, 95, 93, 91, 89, 87, 85, - 83, 81, 79, 77, 75, 73, 71, 69, - 67, 65, 63, 61, 59, 57, 55, 53, - 51, 49, 47, 45, 43, 41, 39, 37, - 35, 33, 31, 29, 27, 25, 23, 21, - 19, 17, 15, 13, 11, 9, 7, 5, - 3, 1, 0, 2, 4, 6, 8, 10, - 12, 14, 16, 18, 20, 22, 24, 26, - 28, 30, 32, 34, 36, 38, 40, 42, - 44, 46, 48, 50, 52, 54, 56, 58, - 60, 62, 64, 66, 68, 70, 72, 74, - 76, 78, 80, 82, 84, 86, 88, 90, - 92, 94, 96, 98, 100, 102, 104, 106, - 108, 110, 112, 114, 116, 118, 120, 122, - 124, 126, 128, 130, 132, 134, 136, 138, - 140, 142, 144, 146, 148, 150, 152, 154, - 156, 158, 160, 162, 164, 166, 168, 170, - 172, 174, 176, 178, 180, 182, 184, 186, - 188, 190, 192, 194, 196, 198, 200, 202, - 204, 206, 208, 210, 212, 214, 216, 218, - 220, 222, 224, 226, 228, 230, 232, 234, - 236, 238, 240, 242, 244, 246, 248, 250, - 252, 254, 256, 258, 260, 262, 264, 266, - 268, 270, 272, 274, 276, 278, 280, 282, - 284, 286, 288, 290, 292, 294, 296, 298, - 300, 302, 304, 306, 308, 310, 312, 314, - 316, 318, 320, 322, 324, 326, 328, 330, - 332, 334, 336, 338, 340, -}; - -static encode_aux_threshmatch _vq_auxt_res0_128_1024_9 = { - _vq_quantthresh_res0_128_1024_9, - _vq_quantmap_res0_128_1024_9, - 341, - 341 -}; - -static static_codebook _vq_book_res0_128_1024_9 = { - 1, 341, - _vq_lengthlist_res0_128_1024_9, - 1, -520798208, 1611661312, 9, 0, - _vq_quantlist_res0_128_1024_9, - NULL, - &_vq_auxt_res0_128_1024_9, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_128_1024aux.vqh b/lib/books/res0_128_1024aux.vqh deleted file mode 100644 index b84f1590..00000000 --- a/lib/books/res0_128_1024aux.vqh +++ /dev/null @@ -1,43 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - * * - ******************************************************************** - - function: static codebook autogenerated by huff/huffbuld - - ********************************************************************/ - -#ifndef _V_res0_128_1024aux_VQH_ -#define _V_res0_128_1024aux_VQH_ -#include "codebook.h" - -static long _huff_lengthlist_res0_128_1024aux[] = { - 3, 6,10, 9,12, 9,15,12,15,20, 5, 3, 4, 5, 7, 6, - 12,11,12,15, 9, 4, 4, 5, 6, 8,11,13,16,17, 8, 4, - 5, 5, 7, 6,11,10,13,16,12, 7, 6, 7, 8, 9,10,12, - 16,20, 8, 6, 7, 6, 9, 6,10, 9,12,19,14,10, 9, 8, - 7, 7, 8, 9,12,18, 9, 9,10, 8, 9, 6, 8, 7, 9,15, - 11,11,12,10,10, 8, 7, 6, 8,13,12,12,13,12,11,10, - 6, 6, 7,12, -}; - -static static_codebook _huff_book_res0_128_1024aux = { - 2, 100, - _huff_lengthlist_res0_128_1024aux, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_128_128_1.vqh b/lib/books/res0_128_128_1.vqh deleted file mode 100644 index 931c5351..00000000 --- a/lib/books/res0_128_128_1.vqh +++ /dev/null @@ -1,63 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_128_128_1_VQH_ -#define _V_res0_128_128_1_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_128_128_1[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist_res0_128_128_1[] = { - 3, 4, 4, 4, 6, 6, 4, 6, 6, 5, 6, 6, 6, 8, 8, 6, - 8, 8, 5, 6, 6, 6, 8, 8, 6, 8, 8, 5, 6, 6, 7, 8, - 8, 6, 8, 8, 7, 8, 8, 8, 9,10, 8,10, 9, 6, 8, 8, - 8,10, 9, 8, 9,10, 5, 6, 6, 6, 8, 8, 7, 8, 8, 6, - 8, 8, 8,10, 9, 8, 9,10, 6, 8, 8, 8, 9,10, 8,10, - 9, -}; - -static float _vq_quantthresh_res0_128_128_1[] = { - -0.5, 0.5, -}; - -static long _vq_quantmap_res0_128_128_1[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt_res0_128_128_1 = { - _vq_quantthresh_res0_128_128_1, - _vq_quantmap_res0_128_128_1, - 3, - 3 -}; - -static static_codebook _vq_book_res0_128_128_1 = { - 4, 81, - _vq_lengthlist_res0_128_128_1, - 1, -535822336, 1611661312, 2, 0, - _vq_quantlist_res0_128_128_1, - NULL, - &_vq_auxt_res0_128_128_1, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_128_128_2.vqh b/lib/books/res0_128_128_2.vqh deleted file mode 100644 index cbe0aa8a..00000000 --- a/lib/books/res0_128_128_2.vqh +++ /dev/null @@ -1,65 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_128_128_2_VQH_ -#define _V_res0_128_128_2_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_128_128_2[] = { - 3, - 2, - 4, - 1, - 5, - 0, - 6, -}; - -static long _vq_lengthlist_res0_128_128_2[] = { - 2, 3, 3, 6, 6, 9, 9, 3, 5, 5, 7, 7,10,10, 3, 5, - 5, 7, 7,10,10, 6, 8, 8,11,11,14,14, 6, 8, 8,12, - 12,14,14, 9,11,11,15,14,16,16, 9,11,11,15,15,15, - 15, -}; - -static float _vq_quantthresh_res0_128_128_2[] = { - -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, -}; - -static long _vq_quantmap_res0_128_128_2[] = { - 5, 3, 1, 0, 2, 4, 6, -}; - -static encode_aux_threshmatch _vq_auxt_res0_128_128_2 = { - _vq_quantthresh_res0_128_128_2, - _vq_quantmap_res0_128_128_2, - 7, - 7 -}; - -static static_codebook _vq_book_res0_128_128_2 = { - 2, 49, - _vq_lengthlist_res0_128_128_2, - 1, -533200896, 1611661312, 3, 0, - _vq_quantlist_res0_128_128_2, - NULL, - &_vq_auxt_res0_128_128_2, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_128_128_3.vqh b/lib/books/res0_128_128_3.vqh deleted file mode 100644 index 1e41aa8a..00000000 --- a/lib/books/res0_128_128_3.vqh +++ /dev/null @@ -1,152 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_128_128_3_VQH_ -#define _V_res0_128_128_3_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_128_128_3[] = { - 15, - 14, - 16, - 13, - 17, - 12, - 18, - 11, - 19, - 10, - 20, - 9, - 21, - 8, - 22, - 7, - 23, - 6, - 24, - 5, - 25, - 4, - 26, - 3, - 27, - 2, - 28, - 1, - 29, - 0, - 30, -}; - -static long _vq_lengthlist_res0_128_128_3[] = { - 3, 4, 4, 6, 6, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 9, 8, 9, 9,10, 9,10,10,11,10, 4, - 5, 5, 6, 6, 7, 7, 8, 8, 8, 8, 8, 8, 8, 9, 8, 9, - 9, 8, 9, 9, 9, 9, 9, 9,10, 9,10,10,11,10, 4, 5, - 5, 6, 6, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 8, - 9, 9, 9, 9, 9,10, 9,10, 9,10,10,11,10, 7, 7, 7, - 9, 9, 9, 9,10,10,10,10,10,11,10,11,10,11,10,10, - 11,11,11,11,11,11,12,12,12,12,13,12, 7, 7, 7, 9, - 8, 9, 9,10,10,10,10,10,10,10,11,10,11,10,10,11, - 11,11,11,11,11,11,11,12,12,13,13, 9, 9, 9,10,10, - 11,11,11,12,11,12,12,12,11,12,12,12,12,12,12,12, - 12,12,13,13,13,13,13,13,14,14, 8, 9, 9,10,10,11, - 11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,13, - 13,13,12,13,13,13,13,14,14, 9,10,10,11,12,13,12, - 13,13,13,13,13,14,13,14,13,14,13,14,13,13,14,14, - 15,14,15,14,15,14,15,16, 9,10,10,11,11,12,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,14,14,14, - 14,15,14,15,14,15,15,10,11,11,12,13,13,13,14,14, - 14,15,14,14,14,14,14,14,14,15,14,14,14,15,15,16, - 15,17,16,16,15,15,10,11,11,13,13,13,13,13,14,13, - 14,14,14,14,14,15,14,15,14,15,14,15,14,15,16,16, - 15,16,15,15,16,11,12,12,13,14,14,14,15,14,14,15, - 15,15,15,15,15,15,15,14,16,15,16,16,16,16,16,15, - 17,15,16,17,11,12,12,14,13,14,15,14,15,14,15,14, - 15,16,16,15,15,15,15,16,15,16,16,18,15,17,15,17, - 15,18,16,12,13,13,14,14,14,15,15,16,16,15,15,16, - 15,16,16,16,15,15,16,16,17,16,17,16,17,15,17,17, - 17,18,12,13,12,15,14,15,14,17,15,16,16,16,16,16, - 16,15,15,16,15,16,16,16,15,16,15,17,17,18,16,16, - 18,13,14,13,14,14,15,15,16,16,15,16,16,16,16,17, - 16,16,16,17,16,16,16,16,17,16,17,18,18,17,17,18, - 14,13,13,15,15,15,15,17,15,16,18,15,17,16,17,15, - 16,16,16,17,16,16,16,16,15,17,17,18,18,17,17,13, - 14,14,16,16,18,16,16,16,16,18,18,17,16,18,16,16, - 16,16,17,16,16,16,18,16,17,17,16,17,17,18,13,14, - 14,15,15,17,16,17,16,17,16,18,17,16,16,16,17,17, - 17,16,17,16,16,17,17,18,16,17,18,18,17,15,15,15, - 16,15,18,17,18,17,16,18,16,17,16,16,18,17,18,17, - 18,16,18,17,18,18,18,18,18,17,18,18,13,15,15,16, - 16,16,16,17,16,17,17,17,16,16,17,16,16,17,18,17, - 17,16,17,18,17,18,17,18,17,18,18,16,14,15,16,16, - 17,17,17,16,16,17,18,18,18,18,16,17,18,18,18,17, - 18,17,18,18,18,18,17,18,18,18,15,15,15,16,16,18, - 18,17,18,18,18,18,18,16,18,16,18,16,18,18,16,17, - 17,18,17,18,16,18,18,17,18,15,15,15,16,16,17,17, - 16,17,18,16,18,17,18,18,17,18,17,18,18,16,18,18, - 18,18,17,18,17,18,18,18,17,15,15,16,16,17,18,16, - 17,18,18,18,18,18,18,17,18,18,18,17,18,18,16,18, - 18,17,18,18,18,18,17,16,16,16,18,18,17,18,17,17, - 18,18,18,18,18,18,18,18,16,18,18,18,18,17,18,18, - 18,18,18,18,18,18,16,15,16,15,18,18,16,18,18,18, - 16,17,18,18,16,18,17,17,16,18,17,17,18,18,16,18, - 18,18,18,18,17,17,16,18,18,18,16,17,18,18,18,18, - 17,18,18,18,18,18,18,17,18,17,18,17,18,17,18,18, - 18,18,18,18,15,17,16,17,18,18,18,18,18,18,18,18, - 18,17,16,18,18,17,18,17,17,18,18,18,18,18,18,18, - 18,18,18,16,16,17,17,18,17,18,18,18,18,18,18,18, - 18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18, - 18,18,16,17,18,17,16,18,17,16,18,18,18,18,18,18, - 18,18,18,18,18,18,18,18,18,18,18,18,17,18,18,18, - 18, -}; - -static float _vq_quantthresh_res0_128_128_3[] = { - -14.5, -13.5, -12.5, -11.5, -10.5, -9.5, -8.5, -7.5, - -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, - 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, - 9.5, 10.5, 11.5, 12.5, 13.5, 14.5, -}; - -static long _vq_quantmap_res0_128_128_3[] = { - 29, 27, 25, 23, 21, 19, 17, 15, - 13, 11, 9, 7, 5, 3, 1, 0, - 2, 4, 6, 8, 10, 12, 14, 16, - 18, 20, 22, 24, 26, 28, 30, -}; - -static encode_aux_threshmatch _vq_auxt_res0_128_128_3 = { - _vq_quantthresh_res0_128_128_3, - _vq_quantmap_res0_128_128_3, - 31, - 31 -}; - -static static_codebook _vq_book_res0_128_128_3 = { - 2, 961, - _vq_lengthlist_res0_128_128_3, - 1, -528613376, 1611661312, 5, 0, - _vq_quantlist_res0_128_128_3, - NULL, - &_vq_auxt_res0_128_128_3, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_128_128_4.vqh b/lib/books/res0_128_128_4.vqh deleted file mode 100644 index 335a6990..00000000 --- a/lib/books/res0_128_128_4.vqh +++ /dev/null @@ -1,123 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_128_128_4_VQH_ -#define _V_res0_128_128_4_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_128_128_4[] = { - 26, - 25, - 27, - 24, - 28, - 23, - 29, - 22, - 30, - 21, - 31, - 20, - 32, - 19, - 33, - 18, - 34, - 17, - 35, - 16, - 36, - 15, - 37, - 14, - 38, - 13, - 39, - 12, - 40, - 11, - 41, - 10, - 42, - 9, - 43, - 8, - 44, - 7, - 45, - 6, - 46, - 5, - 47, - 4, - 48, - 3, - 49, - 2, - 50, - 1, - 51, - 0, - 52, -}; - -static long _vq_lengthlist_res0_128_128_4[] = { - 2, 2, 2, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 7, 8, - 8, 9, 8,10, 9,10,10,11,10,11,11,12,12,12,12, 7, - 7, 8, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9,10,10,10,10, - 11,10,11,10,11, -}; - -static float _vq_quantthresh_res0_128_128_4[] = { - -25.5, -24.5, -23.5, -22.5, -21.5, -20.5, -19.5, -18.5, - -17.5, -16.5, -15.5, -14.5, -13.5, -12.5, -11.5, -10.5, - -9.5, -8.5, -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, - -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, - 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5, - 14.5, 15.5, 16.5, 17.5, 18.5, 19.5, 20.5, 21.5, - 22.5, 23.5, 24.5, 25.5, -}; - -static long _vq_quantmap_res0_128_128_4[] = { - 51, 49, 47, 45, 43, 41, 39, 37, - 35, 33, 31, 29, 27, 25, 23, 21, - 19, 17, 15, 13, 11, 9, 7, 5, - 3, 1, 0, 2, 4, 6, 8, 10, - 12, 14, 16, 18, 20, 22, 24, 26, - 28, 30, 32, 34, 36, 38, 40, 42, - 44, 46, 48, 50, 52, -}; - -static encode_aux_threshmatch _vq_auxt_res0_128_128_4 = { - _vq_quantthresh_res0_128_128_4, - _vq_quantmap_res0_128_128_4, - 53, - 53 -}; - -static static_codebook _vq_book_res0_128_128_4 = { - 1, 53, - _vq_lengthlist_res0_128_128_4, - 1, -526778368, 1611661312, 6, 0, - _vq_quantlist_res0_128_128_4, - NULL, - &_vq_auxt_res0_128_128_4, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_128_128_5.vqh b/lib/books/res0_128_128_5.vqh deleted file mode 100644 index b204f317..00000000 --- a/lib/books/res0_128_128_5.vqh +++ /dev/null @@ -1,448 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_128_128_5_VQH_ -#define _V_res0_128_128_5_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_128_128_5[] = { - 150, - 149, - 151, - 148, - 152, - 147, - 153, - 146, - 154, - 145, - 155, - 144, - 156, - 143, - 157, - 142, - 158, - 141, - 159, - 140, - 160, - 139, - 161, - 138, - 162, - 137, - 163, - 136, - 164, - 135, - 165, - 134, - 166, - 133, - 167, - 132, - 168, - 131, - 169, - 130, - 170, - 129, - 171, - 128, - 172, - 127, - 173, - 126, - 174, - 125, - 175, - 124, - 176, - 123, - 177, - 122, - 178, - 121, - 179, - 120, - 180, - 119, - 181, - 118, - 182, - 117, - 183, - 116, - 184, - 115, - 185, - 114, - 186, - 113, - 187, - 112, - 188, - 111, - 189, - 110, - 190, - 109, - 191, - 108, - 192, - 107, - 193, - 106, - 194, - 105, - 195, - 104, - 196, - 103, - 197, - 102, - 198, - 101, - 199, - 100, - 200, - 99, - 201, - 98, - 202, - 97, - 203, - 96, - 204, - 95, - 205, - 94, - 206, - 93, - 207, - 92, - 208, - 91, - 209, - 90, - 210, - 89, - 211, - 88, - 212, - 87, - 213, - 86, - 214, - 85, - 215, - 84, - 216, - 83, - 217, - 82, - 218, - 81, - 219, - 80, - 220, - 79, - 221, - 78, - 222, - 77, - 223, - 76, - 224, - 75, - 225, - 74, - 226, - 73, - 227, - 72, - 228, - 71, - 229, - 70, - 230, - 69, - 231, - 68, - 232, - 67, - 233, - 66, - 234, - 65, - 235, - 64, - 236, - 63, - 237, - 62, - 238, - 61, - 239, - 60, - 240, - 59, - 241, - 58, - 242, - 57, - 243, - 56, - 244, - 55, - 245, - 54, - 246, - 53, - 247, - 52, - 248, - 51, - 249, - 50, - 250, - 49, - 251, - 48, - 252, - 47, - 253, - 46, - 254, - 45, - 255, - 44, - 256, - 43, - 257, - 42, - 258, - 41, - 259, - 40, - 260, - 39, - 261, - 38, - 262, - 37, - 263, - 36, - 264, - 35, - 265, - 34, - 266, - 33, - 267, - 32, - 268, - 31, - 269, - 30, - 270, - 29, - 271, - 28, - 272, - 27, - 273, - 26, - 274, - 25, - 275, - 24, - 276, - 23, - 277, - 22, - 278, - 21, - 279, - 20, - 280, - 19, - 281, - 18, - 282, - 17, - 283, - 16, - 284, - 15, - 285, - 14, - 286, - 13, - 287, - 12, - 288, - 11, - 289, - 10, - 290, - 9, - 291, - 8, - 292, - 7, - 293, - 6, - 294, - 5, - 295, - 4, - 296, - 3, - 297, - 2, - 298, - 1, - 299, - 0, - 300, -}; - -static long _vq_lengthlist_res0_128_128_5[] = { - 2, 3, 2, 4, 4, 5, 5, 6, 6, 7, 6, 7, 8, 8, 8, 9, - 9, 9, 9,11,12,11,11,10,13,11,11,12,12,10,13,13, - 13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13, 7, 8, 8,10, 8, 9, 9, 9, 8, 9, 9, - 10, 9,10, 8,10, 9,11, 9,11, 9,10, 9,11,11,11,10, - 11,10,12,10,11,11,12,10,11,10,12,10,11,11,12,11, - 11,11,10,12,11,12,12,12,13,11,13,12,13,12,13,13, - 10,12,13,13,13,13,11,13,12,11,13,12,12,12,13,12, - 13,12,13,13,12,12,13,12,13,13,12,12,13,13,13,11, - 13,13,12,12,13,12,13,12,12,13,13,13,13,11,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,12,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,12, -}; - -static float _vq_quantthresh_res0_128_128_5[] = { - -149.5, -148.5, -147.5, -146.5, -145.5, -144.5, -143.5, -142.5, - -141.5, -140.5, -139.5, -138.5, -137.5, -136.5, -135.5, -134.5, - -133.5, -132.5, -131.5, -130.5, -129.5, -128.5, -127.5, -126.5, - -125.5, -124.5, -123.5, -122.5, -121.5, -120.5, -119.5, -118.5, - -117.5, -116.5, -115.5, -114.5, -113.5, -112.5, -111.5, -110.5, - -109.5, -108.5, -107.5, -106.5, -105.5, -104.5, -103.5, -102.5, - -101.5, -100.5, -99.5, -98.5, -97.5, -96.5, -95.5, -94.5, - -93.5, -92.5, -91.5, -90.5, -89.5, -88.5, -87.5, -86.5, - -85.5, -84.5, -83.5, -82.5, -81.5, -80.5, -79.5, -78.5, - -77.5, -76.5, -75.5, -74.5, -73.5, -72.5, -71.5, -70.5, - -69.5, -68.5, -67.5, -66.5, -65.5, -64.5, -63.5, -62.5, - -61.5, -60.5, -59.5, -58.5, -57.5, -56.5, -55.5, -54.5, - -53.5, -52.5, -51.5, -50.5, -49.5, -48.5, -47.5, -46.5, - -45.5, -44.5, -43.5, -42.5, -41.5, -40.5, -39.5, -38.5, - -37.5, -36.5, -35.5, -34.5, -33.5, -32.5, -31.5, -30.5, - -29.5, -28.5, -27.5, -26.5, -25.5, -24.5, -23.5, -22.5, - -21.5, -20.5, -19.5, -18.5, -17.5, -16.5, -15.5, -14.5, - -13.5, -12.5, -11.5, -10.5, -9.5, -8.5, -7.5, -6.5, - -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, - 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, - 10.5, 11.5, 12.5, 13.5, 14.5, 15.5, 16.5, 17.5, - 18.5, 19.5, 20.5, 21.5, 22.5, 23.5, 24.5, 25.5, - 26.5, 27.5, 28.5, 29.5, 30.5, 31.5, 32.5, 33.5, - 34.5, 35.5, 36.5, 37.5, 38.5, 39.5, 40.5, 41.5, - 42.5, 43.5, 44.5, 45.5, 46.5, 47.5, 48.5, 49.5, - 50.5, 51.5, 52.5, 53.5, 54.5, 55.5, 56.5, 57.5, - 58.5, 59.5, 60.5, 61.5, 62.5, 63.5, 64.5, 65.5, - 66.5, 67.5, 68.5, 69.5, 70.5, 71.5, 72.5, 73.5, - 74.5, 75.5, 76.5, 77.5, 78.5, 79.5, 80.5, 81.5, - 82.5, 83.5, 84.5, 85.5, 86.5, 87.5, 88.5, 89.5, - 90.5, 91.5, 92.5, 93.5, 94.5, 95.5, 96.5, 97.5, - 98.5, 99.5, 100.5, 101.5, 102.5, 103.5, 104.5, 105.5, - 106.5, 107.5, 108.5, 109.5, 110.5, 111.5, 112.5, 113.5, - 114.5, 115.5, 116.5, 117.5, 118.5, 119.5, 120.5, 121.5, - 122.5, 123.5, 124.5, 125.5, 126.5, 127.5, 128.5, 129.5, - 130.5, 131.5, 132.5, 133.5, 134.5, 135.5, 136.5, 137.5, - 138.5, 139.5, 140.5, 141.5, 142.5, 143.5, 144.5, 145.5, - 146.5, 147.5, 148.5, 149.5, -}; - -static long _vq_quantmap_res0_128_128_5[] = { - 299, 297, 295, 293, 291, 289, 287, 285, - 283, 281, 279, 277, 275, 273, 271, 269, - 267, 265, 263, 261, 259, 257, 255, 253, - 251, 249, 247, 245, 243, 241, 239, 237, - 235, 233, 231, 229, 227, 225, 223, 221, - 219, 217, 215, 213, 211, 209, 207, 205, - 203, 201, 199, 197, 195, 193, 191, 189, - 187, 185, 183, 181, 179, 177, 175, 173, - 171, 169, 167, 165, 163, 161, 159, 157, - 155, 153, 151, 149, 147, 145, 143, 141, - 139, 137, 135, 133, 131, 129, 127, 125, - 123, 121, 119, 117, 115, 113, 111, 109, - 107, 105, 103, 101, 99, 97, 95, 93, - 91, 89, 87, 85, 83, 81, 79, 77, - 75, 73, 71, 69, 67, 65, 63, 61, - 59, 57, 55, 53, 51, 49, 47, 45, - 43, 41, 39, 37, 35, 33, 31, 29, - 27, 25, 23, 21, 19, 17, 15, 13, - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, 14, 16, 18, - 20, 22, 24, 26, 28, 30, 32, 34, - 36, 38, 40, 42, 44, 46, 48, 50, - 52, 54, 56, 58, 60, 62, 64, 66, - 68, 70, 72, 74, 76, 78, 80, 82, - 84, 86, 88, 90, 92, 94, 96, 98, - 100, 102, 104, 106, 108, 110, 112, 114, - 116, 118, 120, 122, 124, 126, 128, 130, - 132, 134, 136, 138, 140, 142, 144, 146, - 148, 150, 152, 154, 156, 158, 160, 162, - 164, 166, 168, 170, 172, 174, 176, 178, - 180, 182, 184, 186, 188, 190, 192, 194, - 196, 198, 200, 202, 204, 206, 208, 210, - 212, 214, 216, 218, 220, 222, 224, 226, - 228, 230, 232, 234, 236, 238, 240, 242, - 244, 246, 248, 250, 252, 254, 256, 258, - 260, 262, 264, 266, 268, 270, 272, 274, - 276, 278, 280, 282, 284, 286, 288, 290, - 292, 294, 296, 298, 300, -}; - -static encode_aux_threshmatch _vq_auxt_res0_128_128_5 = { - _vq_quantthresh_res0_128_128_5, - _vq_quantmap_res0_128_128_5, - 301, - 301 -}; - -static static_codebook _vq_book_res0_128_128_5 = { - 1, 301, - _vq_lengthlist_res0_128_128_5, - 1, -520962048, 1611661312, 9, 0, - _vq_quantlist_res0_128_128_5, - NULL, - &_vq_auxt_res0_128_128_5, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_128_128aux.vqh b/lib/books/res0_128_128aux.vqh deleted file mode 100644 index 621f4abb..00000000 --- a/lib/books/res0_128_128aux.vqh +++ /dev/null @@ -1,50 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - * * - ******************************************************************** - - function: static codebook autogenerated by huff/huffbuld - - ********************************************************************/ - -#ifndef _V_res0_128_128aux_VQH_ -#define _V_res0_128_128aux_VQH_ -#include "codebook.h" - -static long _huff_lengthlist_res0_128_128aux[] = { - 13,16,16,16,16,16,12,11,13,14,16,16,11,11,13,13, - 16,16,10,13,14,14,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,10,10,12,14,16,16, 5, 3, 7,13,16,16, - 6, 5, 9,14,16,16,10,12,14,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16, 8, 9,11,11,16,16, 4, 3, - 8,13,16,16, 7, 6,10,14,16,16,11,13,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,10,10,12,15, - 16,16, 9, 2, 4, 9,16,16,11, 3, 5, 9,16,16,13, 8, - 9,13,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 13,15,16,16,16,16,15, 5, 7,12,16,16,16, 6, 7,12, - 16,16,15,11,12,15,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16, 8,10,15,16,16, - 16,10,10,15,16,16,16,14,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16, -}; - -static static_codebook _huff_book_res0_128_128aux = { - 3, 216, - _huff_lengthlist_res0_128_128aux, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_160_1024_1.vqh b/lib/books/res0_160_1024_1.vqh deleted file mode 100644 index d201982d..00000000 --- a/lib/books/res0_160_1024_1.vqh +++ /dev/null @@ -1,63 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_160_1024_1_VQH_ -#define _V_res0_160_1024_1_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_160_1024_1[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist_res0_160_1024_1[] = { - 1, 4, 4, 4, 7, 7, 4, 7, 7, 5, 8, 8, 8,11,11, 8, - 11,11, 5, 8, 8, 8,11,11, 8,11,11, 5, 8, 8, 8,11, - 11, 8,11,11, 8,12,11,11,15,15,11,15,15, 8,11,11, - 11,15,15,11,15,15, 5, 8, 8, 8,11,11, 8,11,11, 8, - 11,11,12,15,15,11,15,15, 8,11,11,11,15,15,11,15, - 15, -}; - -static float _vq_quantthresh_res0_160_1024_1[] = { - -0.5, 0.5, -}; - -static long _vq_quantmap_res0_160_1024_1[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt_res0_160_1024_1 = { - _vq_quantthresh_res0_160_1024_1, - _vq_quantmap_res0_160_1024_1, - 3, - 3 -}; - -static static_codebook _vq_book_res0_160_1024_1 = { - 4, 81, - _vq_lengthlist_res0_160_1024_1, - 1, -535822336, 1611661312, 2, 0, - _vq_quantlist_res0_160_1024_1, - NULL, - &_vq_auxt_res0_160_1024_1, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_160_1024_2.vqh b/lib/books/res0_160_1024_2.vqh deleted file mode 100644 index 35db9939..00000000 --- a/lib/books/res0_160_1024_2.vqh +++ /dev/null @@ -1,63 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_160_1024_2_VQH_ -#define _V_res0_160_1024_2_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_160_1024_2[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist_res0_160_1024_2[] = { - 3, 4, 4, 5, 6, 6, 5, 6, 6, 5, 6, 6, 6, 7, 8, 6, - 8, 7, 5, 6, 6, 6, 8, 7, 6, 8, 7, 5, 6, 6, 6, 8, - 8, 6, 8, 7, 6, 8, 8, 8, 9, 9, 8, 9, 9, 6, 8, 8, - 8, 9, 9, 8, 9, 9, 5, 6, 6, 6, 8, 7, 6, 8, 8, 6, - 8, 8, 8, 9, 9, 8, 9, 9, 6, 7, 8, 8, 9, 9, 7, 9, - 9, -}; - -static float _vq_quantthresh_res0_160_1024_2[] = { - -0.5, 0.5, -}; - -static long _vq_quantmap_res0_160_1024_2[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt_res0_160_1024_2 = { - _vq_quantthresh_res0_160_1024_2, - _vq_quantmap_res0_160_1024_2, - 3, - 3 -}; - -static static_codebook _vq_book_res0_160_1024_2 = { - 4, 81, - _vq_lengthlist_res0_160_1024_2, - 1, -535822336, 1611661312, 2, 0, - _vq_quantlist_res0_160_1024_2, - NULL, - &_vq_auxt_res0_160_1024_2, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_160_1024_3.vqh b/lib/books/res0_160_1024_3.vqh deleted file mode 100644 index a0a67f55..00000000 --- a/lib/books/res0_160_1024_3.vqh +++ /dev/null @@ -1,99 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_160_1024_3_VQH_ -#define _V_res0_160_1024_3_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_160_1024_3[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist_res0_160_1024_3[] = { - 3, 5, 5, 7, 7, 5, 6, 6, 9, 9, 5, 6, 6, 9, 9, 7, - 9, 9,13,12, 7, 9, 9,13,12, 5, 7, 7, 9, 9, 7, 8, - 8,11,11, 7, 8, 8,11,11, 9,11,11,14,15, 9,11,11, - 14,14, 5, 6, 6, 9, 9, 7, 8, 8,11,11, 6, 8, 8,11, - 11, 9,11,11,15,14, 9,11,11,14,14, 7, 9, 9,13,12, - 9,11,11,15,15, 9,11,11,15,15,13,15,15,18,18,13, - 15,15,19,18, 7, 9, 9,12,13, 9,11,11,14,14, 9,11, - 11,15,15,13,15,15,18,18,13,15,15,18,18, 5, 7, 7, - 9, 9, 7, 8, 8,11,11, 7, 8, 8,11,11, 9,11,11,15, - 15, 9,11,11,15,15, 7, 8, 8,11,11, 8,10,10,13,13, - 8,10,10,13,13,11,13,13,16,17,11,13,13,17,16, 6, - 8, 8,11,11, 8,10,10,13,13, 8,10,10,13,13,11,13, - 13,17,16,11,13,13,17,17, 9,11,11,15,15,11,13,13, - 17,17,11,13,13,17,17,15,17,16,20,20,15,17,17,21, - 22, 9,11,11,15,15,11,13,13,16,16,11,13,13,17,17, - 15,17,16,19,18,15,17,17,19,20, 5, 7, 6, 9, 9, 7, - 8, 8,11,11, 7, 8, 8,11,11, 9,11,11,15,15, 9,11, - 11,15,15, 7, 8, 8,11,11, 8,10,10,13,13, 8,10,10, - 13,13,11,13,13,17,16,11,13,13,16,17, 6, 8, 8,11, - 11, 8,10,10,13,13, 8,10,10,13,13,11,13,13,16,17, - 11,13,13,16,16, 9,11,11,15,15,11,13,13,17,17,11, - 13,13,17,17,15,17,17,19,20,15,16,17,20,20, 9,11, - 11,15,15,11,13,13,16,16,11,13,13,17,17,15,17,17, - 20,19,15,17,16,19,19, 7, 9, 9,13,13, 9,11,11,15, - 15, 9,11,11,15,15,13,15,15,18,19,13,15,15,19,18, - 9,11,11,15,15,11,13,13,16,16,11,13,13,16,16,15, - 16,16,20,20,15,17,17,20,20, 9,11,11,15,15,11,13, - 13,17,17,11,13,13,17,17,15,16,16,22,20,15,17,17, - 20,20,13,15,15,18,18,14,17,17,20,20,15,17,16,21, - 19,18,19,21,21,20,18,21,20,21,21,13,15,15,19,19, - 15,17,16,19,19,15,17,17,20,20,18,21,19,20,21,19, - 21,20,21,21, 7, 9, 9,13,13, 9,11,11,15,15, 9,11, - 11,15,15,13,15,15,18,19,13,15,15,18,19, 9,11,11, - 15,15,11,13,13,17,17,11,13,13,16,17,15,17,17,20, - 19,15,17,17,19,20, 9,11,11,15,15,11,13,13,17,17, - 11,13,13,17,16,15,16,16,20,20,15,17,17,21,20,13, - 15,15,18,18,15,17,17,20,20,15,16,16,21,20,18,20, - 19,21,21,18,19,21,20,21,13,15,15,18,18,15,16,16, - 19,20,15,17,16,21,21,18,21,20,21,21,18,19,19,20, - 20, -}; - -static float _vq_quantthresh_res0_160_1024_3[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap_res0_160_1024_3[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt_res0_160_1024_3 = { - _vq_quantthresh_res0_160_1024_3, - _vq_quantmap_res0_160_1024_3, - 5, - 5 -}; - -static static_codebook _vq_book_res0_160_1024_3 = { - 4, 625, - _vq_lengthlist_res0_160_1024_3, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist_res0_160_1024_3, - NULL, - &_vq_auxt_res0_160_1024_3, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_160_1024_4.vqh b/lib/books/res0_160_1024_4.vqh deleted file mode 100644 index c0bd3901..00000000 --- a/lib/books/res0_160_1024_4.vqh +++ /dev/null @@ -1,99 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_160_1024_4_VQH_ -#define _V_res0_160_1024_4_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_160_1024_4[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist_res0_160_1024_4[] = { - 5, 6, 6, 8, 8, 6, 7, 7, 9, 9, 6, 7, 6, 9, 9, 8, - 9, 9,11,11, 8, 9, 9,11,11, 6, 7, 7, 9, 9, 7, 7, - 7, 9,10, 7, 7, 7, 9,10, 9,10,10,12,12, 9,10,10, - 12,12, 6, 7, 7, 9, 9, 7, 7, 7,10, 9, 6, 7, 7,10, - 9, 9,10,10,12,12, 9,10, 9,12,12, 8, 9, 9,11,11, - 9,10,10,12,12, 9,10,10,12,12,11,12,12,14,14,11, - 12,12,14,14, 8, 9, 9,11,11, 9,10,10,12,12, 9,10, - 10,12,12,11,12,12,14,14,11,12,12,15,14, 6, 7, 7, - 9, 9, 7, 7, 7,10,10, 7, 7, 7,10,10, 9,10,10,12, - 12, 9,10,10,12,12, 7, 7, 7,10,10, 7, 8, 8,10,10, - 7, 8, 8,10,10,10,10,11,13,13,10,11,10,13,13, 7, - 7, 7,10,10, 7, 8, 8,11,10, 7, 8, 8,10,10,10,10, - 10,13,13,10,10,10,13,13, 9,10,10,12,12,10,10,10, - 13,13,10,11,10,13,13,12,13,13,15,16,12,13,13,15, - 16, 9,10,10,12,12,10,10,10,13,13,10,10,11,13,13, - 12,13,13,16,15,12,13,13,15,16, 6, 7, 7, 9, 9, 7, - 7, 7,10,10, 7, 7, 7,10,10, 9,10,10,12,12, 9,10, - 10,12,12, 7, 7, 7,10,10, 7, 8, 8,10,10, 7, 8, 8, - 10,10,10,11,10,13,13,10,10,10,13,13, 7, 7, 7,10, - 10, 7, 8, 8,10,10, 7, 8, 8,10,10,10,10,10,13,13, - 10,10,10,13,13, 9,10,10,12,12,10,11,11,13,13,10, - 10,10,13,13,12,13,13,16,15,12,13,13,15,15, 9,10, - 10,12,12,10,10,11,13,13, 9,10,10,13,13,12,13,13, - 15,15,12,13,13,16,15, 8, 9, 9,11,11, 9,10,10,12, - 12, 9,10,10,12,12,11,12,12,15,15,11,12,12,15,15, - 9,10,10,12,12,10,10,11,13,13,10,11,11,13,13,12, - 13,13,15,16,12,13,13,16,15, 9,10,10,12,12,10,11, - 10,13,13,10,11,11,13,13,12,13,13,16,15,12,13,13, - 16,16,11,12,12,15,15,12,13,13,15,15,12,13,13,16, - 15,14,15,16,17,17,15,16,15,18,18,11,12,12,15,15, - 12,13,13,16,15,12,13,13,16,16,14,16,15,18,17,15, - 15,15,18,18, 8, 9, 9,11,11, 9,10,10,12,12, 9,10, - 10,12,12,11,12,12,15,15,11,12,12,15,15, 9,10,10, - 12,12,10,11,10,13,13,10,10,11,13,13,12,13,13,15, - 16,12,13,13,16,16, 9,10,10,12,12,10,10,11,13,13, - 10,10,10,13,13,12,13,13,16,16,12,13,13,15,16,11, - 12,12,15,15,12,13,13,16,16,12,13,13,15,15,15,15, - 15,18,18,15,15,15,17,17,11,12,12,14,15,12,13,13, - 16,16,12,13,13,15,15,15,15,15,18,18,14,15,15,18, - 16, -}; - -static float _vq_quantthresh_res0_160_1024_4[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap_res0_160_1024_4[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt_res0_160_1024_4 = { - _vq_quantthresh_res0_160_1024_4, - _vq_quantmap_res0_160_1024_4, - 5, - 5 -}; - -static static_codebook _vq_book_res0_160_1024_4 = { - 4, 625, - _vq_lengthlist_res0_160_1024_4, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist_res0_160_1024_4, - NULL, - &_vq_auxt_res0_160_1024_4, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_160_1024_5.vqh b/lib/books/res0_160_1024_5.vqh deleted file mode 100644 index 3b429e77..00000000 --- a/lib/books/res0_160_1024_5.vqh +++ /dev/null @@ -1,80 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_160_1024_5_VQH_ -#define _V_res0_160_1024_5_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_160_1024_5[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist_res0_160_1024_5[] = { - 2, 3, 3, 6, 6, 7, 7, 8, 8,10, 9,11,11, 4, 5, 5, - 8, 8, 8, 8,11,11,12,12,14,13, 3, 5, 5, 8, 8, 8, - 8,11,11,12,12,13,13, 6, 8, 8,10,10,11,11,13,13, - 15,15,16,16, 6, 8, 8,10,10,11,11,13,13,15,15,16, - 16, 7, 9, 9,11,11,13,13,15,15,16,16,17,17, 7, 9, - 9,11,11,13,13,15,15,16,17,17,17, 8,11,11,13,13, - 15,15,16,16,18,18,19,19, 8,11,11,13,13,15,15,16, - 16,18,18,19,19,10,13,12,15,15,16,16,18,17,19,18, - 20,21,10,12,12,15,15,16,17,17,17,18,19,19,19,11, - 14,14,16,16,18,18,19,19,20,19,21,20,11,14,14,16, - 16,17,17,19,18,20,19,21,21, -}; - -static float _vq_quantthresh_res0_160_1024_5[] = { - -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, - 2.5, 3.5, 4.5, 5.5, -}; - -static long _vq_quantmap_res0_160_1024_5[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt_res0_160_1024_5 = { - _vq_quantthresh_res0_160_1024_5, - _vq_quantmap_res0_160_1024_5, - 13, - 13 -}; - -static static_codebook _vq_book_res0_160_1024_5 = { - 2, 169, - _vq_lengthlist_res0_160_1024_5, - 1, -531103744, 1611661312, 4, 0, - _vq_quantlist_res0_160_1024_5, - NULL, - &_vq_auxt_res0_160_1024_5, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_160_1024_6.vqh b/lib/books/res0_160_1024_6.vqh deleted file mode 100644 index 09e374c3..00000000 --- a/lib/books/res0_160_1024_6.vqh +++ /dev/null @@ -1,80 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_160_1024_6_VQH_ -#define _V_res0_160_1024_6_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_160_1024_6[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist_res0_160_1024_6[] = { - 3, 4, 4, 5, 5, 6, 7, 8, 8, 9, 9,10,10, 4, 5, 4, - 6, 6, 7, 7, 9, 9,10,10,11,11, 4, 5, 4, 6, 6, 7, - 7, 9, 9,10,10,11,11, 5, 6, 6, 8, 8, 9, 9,10,10, - 12,12,13,13, 5, 6, 6, 8, 8, 9, 9,10,10,12,11,13, - 13, 7, 8, 8, 9, 9,11,11,12,12,13,13,14,14, 7, 8, - 8, 9, 9,10,11,12,12,13,13,14,14, 8, 9, 9,11,11, - 12,12,13,13,14,14,15,15, 8, 9, 9,11,11,12,12,13, - 13,14,14,15,15, 9,10,10,12,12,13,13,14,14,15,15, - 16,16, 9,10,10,12,12,13,13,14,14,15,15,16,16,10, - 12,12,13,13,14,15,15,15,16,16,17,17,10,12,11,13, - 13,14,14,15,15,16,16,17,17, -}; - -static float _vq_quantthresh_res0_160_1024_6[] = { - -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, - 2.5, 3.5, 4.5, 5.5, -}; - -static long _vq_quantmap_res0_160_1024_6[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt_res0_160_1024_6 = { - _vq_quantthresh_res0_160_1024_6, - _vq_quantmap_res0_160_1024_6, - 13, - 13 -}; - -static static_codebook _vq_book_res0_160_1024_6 = { - 2, 169, - _vq_lengthlist_res0_160_1024_6, - 1, -531103744, 1611661312, 4, 0, - _vq_quantlist_res0_160_1024_6, - NULL, - &_vq_auxt_res0_160_1024_6, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_160_1024_7.vqh b/lib/books/res0_160_1024_7.vqh deleted file mode 100644 index 15c32504..00000000 --- a/lib/books/res0_160_1024_7.vqh +++ /dev/null @@ -1,142 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_160_1024_7_VQH_ -#define _V_res0_160_1024_7_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_160_1024_7[] = { - 14, - 13, - 15, - 12, - 16, - 11, - 17, - 10, - 18, - 9, - 19, - 8, - 20, - 7, - 21, - 6, - 22, - 5, - 23, - 4, - 24, - 3, - 25, - 2, - 26, - 1, - 27, - 0, - 28, -}; - -static long _vq_lengthlist_res0_160_1024_7[] = { - 2, 4, 4, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, - 8, 9, 9, 9, 9,10,10,10,10,10,10,10,10, 4, 6, 6, - 7, 7, 8, 8, 9, 9, 9, 9,10,10,10,10,10,10,11,10, - 11,11,11,11,12,11,12,12,12,12, 4, 6, 6, 7, 7, 8, - 8, 9, 9, 9, 9,10,10,10,10,10,10,10,10,11,11,11, - 11,11,11,12,12,12,12, 6, 7, 7, 9, 9, 9, 9,10,10, - 11,11,11,11,11,11,12,12,12,12,12,12,13,13,13,13, - 13,13,14,14, 6, 7, 7, 9, 9, 9, 9,10,10,11,11,11, - 11,11,11,11,12,12,12,12,12,13,13,13,13,13,13,14, - 13, 7, 8, 8, 9,10,10,10,11,11,12,12,12,12,12,12, - 13,13,13,13,13,13,14,14,14,14,14,14,14,14, 7, 8, - 8,10, 9,10,10,11,11,12,12,12,12,12,12,13,13,13, - 13,13,13,14,14,14,14,14,14,14,15, 8, 9, 9,10,10, - 11,11,12,12,12,12,13,13,13,13,13,13,14,14,14,14, - 15,14,15,15,15,15,15,15, 8, 9, 9,10,10,11,11,12, - 12,12,12,13,13,13,13,13,13,14,14,14,14,14,14,15, - 15,15,15,15,15, 8,10,10,11,11,12,12,12,12,13,13, - 13,13,13,14,14,14,14,14,15,15,15,15,15,15,15,15, - 16,16, 8,10,10,11,11,12,12,12,12,13,13,14,13,14, - 14,14,14,14,14,15,14,15,15,15,15,15,15,16,15, 9, - 10,10,12,12,12,12,13,13,14,14,14,14,14,14,14,15, - 15,15,15,15,16,16,15,16,16,16,16,16, 9,10,10,12, - 12,12,12,13,13,14,14,14,14,14,14,15,15,15,15,15, - 16,16,15,16,15,16,16,17,16, 8,10,10,12,11,12,12, - 13,13,14,14,14,14,15,15,15,15,16,15,16,16,16,16, - 16,16,16,16,16,17, 9,10,10,12,11,13,12,13,13,14, - 14,14,14,15,15,15,15,15,16,15,16,16,16,16,16,17, - 16,17,17, 9,11,11,12,12,13,13,14,14,14,14,15,15, - 15,15,15,15,15,16,16,16,17,16,17,16,17,16,17,17, - 9,11,11,12,12,13,13,14,13,14,14,15,15,15,15,15, - 16,16,15,16,16,17,17,16,17,17,17,17,17, 9,11,11, - 13,12,13,13,14,14,15,15,15,15,16,16,16,16,16,16, - 17,16,16,17,17,16,17,17,17,18, 9,11,11,12,13,14, - 13,14,14,15,14,15,15,15,15,16,16,16,16,17,17,16, - 17,16,17,18,17,18,17,10,11,12,13,13,14,14,15,15, - 15,15,15,16,16,16,17,16,17,17,17,17,17,17,18,18, - 17,18,18,18,10,12,11,13,13,14,14,15,14,15,15,16, - 16,16,16,16,16,16,16,17,16,17,17,17,17,17,17,18, - 18,10,12,12,13,13,14,14,15,15,15,16,16,16,16,16, - 17,17,16,17,17,17,17,17,17,17,18,18,18,18,10,12, - 12,13,13,14,14,15,15,16,15,16,16,16,16,17,17,17, - 17,17,17,17,17,17,17,17,18,18,18,11,12,12,14,14, - 15,15,15,15,16,16,16,16,17,17,17,17,17,17,17,17, - 19,17,17,18,19,18,17,19,11,12,12,14,14,15,14,16, - 15,16,15,16,16,16,17,17,16,18,17,17,17,18,17,18, - 18,18,18,18,18,11,13,13,14,14,15,15,16,15,16,16, - 16,16,17,17,17,17,17,17,17,18,17,17,18,17,19,18, - 18,18,11,13,13,14,14,15,15,15,16,16,16,17,17,17, - 17,17,17,17,17,18,18,18,17,18,18,18,17,19,19,11, - 13,13,14,14,15,15,16,16,17,16,17,16,18,17,17,17, - 17,17,17,17,19,18,19,18,18,18,18,19,11,13,13,15, - 15,15,15,16,16,16,17,17,17,17,17,18,17,17,18,17, - 18,18,17,18,19,18,18,18,18, -}; - -static float _vq_quantthresh_res0_160_1024_7[] = { - -13.5, -12.5, -11.5, -10.5, -9.5, -8.5, -7.5, -6.5, - -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, - 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, - 10.5, 11.5, 12.5, 13.5, -}; - -static long _vq_quantmap_res0_160_1024_7[] = { - 27, 25, 23, 21, 19, 17, 15, 13, - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, 14, 16, 18, - 20, 22, 24, 26, 28, -}; - -static encode_aux_threshmatch _vq_auxt_res0_160_1024_7 = { - _vq_quantthresh_res0_160_1024_7, - _vq_quantmap_res0_160_1024_7, - 29, - 29 -}; - -static static_codebook _vq_book_res0_160_1024_7 = { - 2, 841, - _vq_lengthlist_res0_160_1024_7, - 1, -528744448, 1611661312, 5, 0, - _vq_quantlist_res0_160_1024_7, - NULL, - &_vq_auxt_res0_160_1024_7, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_160_1024_8.vqh b/lib/books/res0_160_1024_8.vqh deleted file mode 100644 index 022c12a1..00000000 --- a/lib/books/res0_160_1024_8.vqh +++ /dev/null @@ -1,133 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_160_1024_8_VQH_ -#define _V_res0_160_1024_8_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_160_1024_8[] = { - 30, - 29, - 31, - 28, - 32, - 27, - 33, - 26, - 34, - 25, - 35, - 24, - 36, - 23, - 37, - 22, - 38, - 21, - 39, - 20, - 40, - 19, - 41, - 18, - 42, - 17, - 43, - 16, - 44, - 15, - 45, - 14, - 46, - 13, - 47, - 12, - 48, - 11, - 49, - 10, - 50, - 9, - 51, - 8, - 52, - 7, - 53, - 6, - 54, - 5, - 55, - 4, - 56, - 3, - 57, - 2, - 58, - 1, - 59, - 0, - 60, -}; - -static long _vq_lengthlist_res0_160_1024_8[] = { - 2, 3, 3, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 7, - 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 7, 8, - 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9,10, - 10,10,10,10,10,10,10,10,10,11,11,11,11, -}; - -static float _vq_quantthresh_res0_160_1024_8[] = { - -29.5, -28.5, -27.5, -26.5, -25.5, -24.5, -23.5, -22.5, - -21.5, -20.5, -19.5, -18.5, -17.5, -16.5, -15.5, -14.5, - -13.5, -12.5, -11.5, -10.5, -9.5, -8.5, -7.5, -6.5, - -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, - 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, - 10.5, 11.5, 12.5, 13.5, 14.5, 15.5, 16.5, 17.5, - 18.5, 19.5, 20.5, 21.5, 22.5, 23.5, 24.5, 25.5, - 26.5, 27.5, 28.5, 29.5, -}; - -static long _vq_quantmap_res0_160_1024_8[] = { - 59, 57, 55, 53, 51, 49, 47, 45, - 43, 41, 39, 37, 35, 33, 31, 29, - 27, 25, 23, 21, 19, 17, 15, 13, - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, 14, 16, 18, - 20, 22, 24, 26, 28, 30, 32, 34, - 36, 38, 40, 42, 44, 46, 48, 50, - 52, 54, 56, 58, 60, -}; - -static encode_aux_threshmatch _vq_auxt_res0_160_1024_8 = { - _vq_quantthresh_res0_160_1024_8, - _vq_quantmap_res0_160_1024_8, - 61, - 61 -}; - -static static_codebook _vq_book_res0_160_1024_8 = { - 1, 61, - _vq_lengthlist_res0_160_1024_8, - 1, -526516224, 1611661312, 6, 0, - _vq_quantlist_res0_160_1024_8, - NULL, - &_vq_auxt_res0_160_1024_8, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_160_1024_9.vqh b/lib/books/res0_160_1024_9.vqh deleted file mode 100644 index 6aa78674..00000000 --- a/lib/books/res0_160_1024_9.vqh +++ /dev/null @@ -1,632 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_160_1024_9_VQH_ -#define _V_res0_160_1024_9_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_160_1024_9[] = { - 220, - 219, - 221, - 218, - 222, - 217, - 223, - 216, - 224, - 215, - 225, - 214, - 226, - 213, - 227, - 212, - 228, - 211, - 229, - 210, - 230, - 209, - 231, - 208, - 232, - 207, - 233, - 206, - 234, - 205, - 235, - 204, - 236, - 203, - 237, - 202, - 238, - 201, - 239, - 200, - 240, - 199, - 241, - 198, - 242, - 197, - 243, - 196, - 244, - 195, - 245, - 194, - 246, - 193, - 247, - 192, - 248, - 191, - 249, - 190, - 250, - 189, - 251, - 188, - 252, - 187, - 253, - 186, - 254, - 185, - 255, - 184, - 256, - 183, - 257, - 182, - 258, - 181, - 259, - 180, - 260, - 179, - 261, - 178, - 262, - 177, - 263, - 176, - 264, - 175, - 265, - 174, - 266, - 173, - 267, - 172, - 268, - 171, - 269, - 170, - 270, - 169, - 271, - 168, - 272, - 167, - 273, - 166, - 274, - 165, - 275, - 164, - 276, - 163, - 277, - 162, - 278, - 161, - 279, - 160, - 280, - 159, - 281, - 158, - 282, - 157, - 283, - 156, - 284, - 155, - 285, - 154, - 286, - 153, - 287, - 152, - 288, - 151, - 289, - 150, - 290, - 149, - 291, - 148, - 292, - 147, - 293, - 146, - 294, - 145, - 295, - 144, - 296, - 143, - 297, - 142, - 298, - 141, - 299, - 140, - 300, - 139, - 301, - 138, - 302, - 137, - 303, - 136, - 304, - 135, - 305, - 134, - 306, - 133, - 307, - 132, - 308, - 131, - 309, - 130, - 310, - 129, - 311, - 128, - 312, - 127, - 313, - 126, - 314, - 125, - 315, - 124, - 316, - 123, - 317, - 122, - 318, - 121, - 319, - 120, - 320, - 119, - 321, - 118, - 322, - 117, - 323, - 116, - 324, - 115, - 325, - 114, - 326, - 113, - 327, - 112, - 328, - 111, - 329, - 110, - 330, - 109, - 331, - 108, - 332, - 107, - 333, - 106, - 334, - 105, - 335, - 104, - 336, - 103, - 337, - 102, - 338, - 101, - 339, - 100, - 340, - 99, - 341, - 98, - 342, - 97, - 343, - 96, - 344, - 95, - 345, - 94, - 346, - 93, - 347, - 92, - 348, - 91, - 349, - 90, - 350, - 89, - 351, - 88, - 352, - 87, - 353, - 86, - 354, - 85, - 355, - 84, - 356, - 83, - 357, - 82, - 358, - 81, - 359, - 80, - 360, - 79, - 361, - 78, - 362, - 77, - 363, - 76, - 364, - 75, - 365, - 74, - 366, - 73, - 367, - 72, - 368, - 71, - 369, - 70, - 370, - 69, - 371, - 68, - 372, - 67, - 373, - 66, - 374, - 65, - 375, - 64, - 376, - 63, - 377, - 62, - 378, - 61, - 379, - 60, - 380, - 59, - 381, - 58, - 382, - 57, - 383, - 56, - 384, - 55, - 385, - 54, - 386, - 53, - 387, - 52, - 388, - 51, - 389, - 50, - 390, - 49, - 391, - 48, - 392, - 47, - 393, - 46, - 394, - 45, - 395, - 44, - 396, - 43, - 397, - 42, - 398, - 41, - 399, - 40, - 400, - 39, - 401, - 38, - 402, - 37, - 403, - 36, - 404, - 35, - 405, - 34, - 406, - 33, - 407, - 32, - 408, - 31, - 409, - 30, - 410, - 29, - 411, - 28, - 412, - 27, - 413, - 26, - 414, - 25, - 415, - 24, - 416, - 23, - 417, - 22, - 418, - 21, - 419, - 20, - 420, - 19, - 421, - 18, - 422, - 17, - 423, - 16, - 424, - 15, - 425, - 14, - 426, - 13, - 427, - 12, - 428, - 11, - 429, - 10, - 430, - 9, - 431, - 8, - 432, - 7, - 433, - 6, - 434, - 5, - 435, - 4, - 436, - 3, - 437, - 2, - 438, - 1, - 439, - 0, - 440, -}; - -static long _vq_lengthlist_res0_160_1024_9[] = { - 3, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, - 6, 6, 6, 6, 6, 7, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,12,12,11,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,14,14,14,14,13,14,14,14,14, - 14,14,14,14,14,14,14,14,14,15,14,15,14,14,14,14, - 14,14,14,15,15,15,15,14,15,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15,17,15,16,15, - 16,15,16,16,16,16,15,16,16,16,16,16,16,16,16,16, - 16,16,17,16,17,17,16,16,17,17,17,16,16,17,16,17, - 17,17,17,17,17,17,17,17,17,17,17,18,17,17,17,18, - 17,18,19,17,18,17,20,18,18,18,18,18,18,18,17,18, - 19,18,19,18,19,17,18,19,19,18,18,18,18,18,19,18, - 19,19,18,19,18,20,19,19,19,20,19,18,18,18,19,20, - 19,20,20,19,21,21,20,21,19,21,20,21,20,19,20,19, - 19,20,19,20,20,19,21,21,19,21,19,21,20,20,20,19, - 19,20,21,21,20,21,20,20,20,21,21,21,21,21,21,21, - 21,21,20,21,21,20,21,21,21,21,21,21,21,20,19,21, - 21,20,21,20,21,21,20,21,21,20,21,21,21,21,21,21, - 21,21,21,21,20,21,21,21,21,21,21,21,21,21,21,21, - 21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21, - 21,21,21,21,20,21,21,21,21,21,21,21,21,21,21,20, - 21,21,21,21,21,21,21,21,20, -}; - -static float _vq_quantthresh_res0_160_1024_9[] = { - -219.5, -218.5, -217.5, -216.5, -215.5, -214.5, -213.5, -212.5, - -211.5, -210.5, -209.5, -208.5, -207.5, -206.5, -205.5, -204.5, - -203.5, -202.5, -201.5, -200.5, -199.5, -198.5, -197.5, -196.5, - -195.5, -194.5, -193.5, -192.5, -191.5, -190.5, -189.5, -188.5, - -187.5, -186.5, -185.5, -184.5, -183.5, -182.5, -181.5, -180.5, - -179.5, -178.5, -177.5, -176.5, -175.5, -174.5, -173.5, -172.5, - -171.5, -170.5, -169.5, -168.5, -167.5, -166.5, -165.5, -164.5, - -163.5, -162.5, -161.5, -160.5, -159.5, -158.5, -157.5, -156.5, - -155.5, -154.5, -153.5, -152.5, -151.5, -150.5, -149.5, -148.5, - -147.5, -146.5, -145.5, -144.5, -143.5, -142.5, -141.5, -140.5, - -139.5, -138.5, -137.5, -136.5, -135.5, -134.5, -133.5, -132.5, - -131.5, -130.5, -129.5, -128.5, -127.5, -126.5, -125.5, -124.5, - -123.5, -122.5, -121.5, -120.5, -119.5, -118.5, -117.5, -116.5, - -115.5, -114.5, -113.5, -112.5, -111.5, -110.5, -109.5, -108.5, - -107.5, -106.5, -105.5, -104.5, -103.5, -102.5, -101.5, -100.5, - -99.5, -98.5, -97.5, -96.5, -95.5, -94.5, -93.5, -92.5, - -91.5, -90.5, -89.5, -88.5, -87.5, -86.5, -85.5, -84.5, - -83.5, -82.5, -81.5, -80.5, -79.5, -78.5, -77.5, -76.5, - -75.5, -74.5, -73.5, -72.5, -71.5, -70.5, -69.5, -68.5, - -67.5, -66.5, -65.5, -64.5, -63.5, -62.5, -61.5, -60.5, - -59.5, -58.5, -57.5, -56.5, -55.5, -54.5, -53.5, -52.5, - -51.5, -50.5, -49.5, -48.5, -47.5, -46.5, -45.5, -44.5, - -43.5, -42.5, -41.5, -40.5, -39.5, -38.5, -37.5, -36.5, - -35.5, -34.5, -33.5, -32.5, -31.5, -30.5, -29.5, -28.5, - -27.5, -26.5, -25.5, -24.5, -23.5, -22.5, -21.5, -20.5, - -19.5, -18.5, -17.5, -16.5, -15.5, -14.5, -13.5, -12.5, - -11.5, -10.5, -9.5, -8.5, -7.5, -6.5, -5.5, -4.5, - -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, - 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, - 12.5, 13.5, 14.5, 15.5, 16.5, 17.5, 18.5, 19.5, - 20.5, 21.5, 22.5, 23.5, 24.5, 25.5, 26.5, 27.5, - 28.5, 29.5, 30.5, 31.5, 32.5, 33.5, 34.5, 35.5, - 36.5, 37.5, 38.5, 39.5, 40.5, 41.5, 42.5, 43.5, - 44.5, 45.5, 46.5, 47.5, 48.5, 49.5, 50.5, 51.5, - 52.5, 53.5, 54.5, 55.5, 56.5, 57.5, 58.5, 59.5, - 60.5, 61.5, 62.5, 63.5, 64.5, 65.5, 66.5, 67.5, - 68.5, 69.5, 70.5, 71.5, 72.5, 73.5, 74.5, 75.5, - 76.5, 77.5, 78.5, 79.5, 80.5, 81.5, 82.5, 83.5, - 84.5, 85.5, 86.5, 87.5, 88.5, 89.5, 90.5, 91.5, - 92.5, 93.5, 94.5, 95.5, 96.5, 97.5, 98.5, 99.5, - 100.5, 101.5, 102.5, 103.5, 104.5, 105.5, 106.5, 107.5, - 108.5, 109.5, 110.5, 111.5, 112.5, 113.5, 114.5, 115.5, - 116.5, 117.5, 118.5, 119.5, 120.5, 121.5, 122.5, 123.5, - 124.5, 125.5, 126.5, 127.5, 128.5, 129.5, 130.5, 131.5, - 132.5, 133.5, 134.5, 135.5, 136.5, 137.5, 138.5, 139.5, - 140.5, 141.5, 142.5, 143.5, 144.5, 145.5, 146.5, 147.5, - 148.5, 149.5, 150.5, 151.5, 152.5, 153.5, 154.5, 155.5, - 156.5, 157.5, 158.5, 159.5, 160.5, 161.5, 162.5, 163.5, - 164.5, 165.5, 166.5, 167.5, 168.5, 169.5, 170.5, 171.5, - 172.5, 173.5, 174.5, 175.5, 176.5, 177.5, 178.5, 179.5, - 180.5, 181.5, 182.5, 183.5, 184.5, 185.5, 186.5, 187.5, - 188.5, 189.5, 190.5, 191.5, 192.5, 193.5, 194.5, 195.5, - 196.5, 197.5, 198.5, 199.5, 200.5, 201.5, 202.5, 203.5, - 204.5, 205.5, 206.5, 207.5, 208.5, 209.5, 210.5, 211.5, - 212.5, 213.5, 214.5, 215.5, 216.5, 217.5, 218.5, 219.5, -}; - -static long _vq_quantmap_res0_160_1024_9[] = { - 439, 437, 435, 433, 431, 429, 427, 425, - 423, 421, 419, 417, 415, 413, 411, 409, - 407, 405, 403, 401, 399, 397, 395, 393, - 391, 389, 387, 385, 383, 381, 379, 377, - 375, 373, 371, 369, 367, 365, 363, 361, - 359, 357, 355, 353, 351, 349, 347, 345, - 343, 341, 339, 337, 335, 333, 331, 329, - 327, 325, 323, 321, 319, 317, 315, 313, - 311, 309, 307, 305, 303, 301, 299, 297, - 295, 293, 291, 289, 287, 285, 283, 281, - 279, 277, 275, 273, 271, 269, 267, 265, - 263, 261, 259, 257, 255, 253, 251, 249, - 247, 245, 243, 241, 239, 237, 235, 233, - 231, 229, 227, 225, 223, 221, 219, 217, - 215, 213, 211, 209, 207, 205, 203, 201, - 199, 197, 195, 193, 191, 189, 187, 185, - 183, 181, 179, 177, 175, 173, 171, 169, - 167, 165, 163, 161, 159, 157, 155, 153, - 151, 149, 147, 145, 143, 141, 139, 137, - 135, 133, 131, 129, 127, 125, 123, 121, - 119, 117, 115, 113, 111, 109, 107, 105, - 103, 101, 99, 97, 95, 93, 91, 89, - 87, 85, 83, 81, 79, 77, 75, 73, - 71, 69, 67, 65, 63, 61, 59, 57, - 55, 53, 51, 49, 47, 45, 43, 41, - 39, 37, 35, 33, 31, 29, 27, 25, - 23, 21, 19, 17, 15, 13, 11, 9, - 7, 5, 3, 1, 0, 2, 4, 6, - 8, 10, 12, 14, 16, 18, 20, 22, - 24, 26, 28, 30, 32, 34, 36, 38, - 40, 42, 44, 46, 48, 50, 52, 54, - 56, 58, 60, 62, 64, 66, 68, 70, - 72, 74, 76, 78, 80, 82, 84, 86, - 88, 90, 92, 94, 96, 98, 100, 102, - 104, 106, 108, 110, 112, 114, 116, 118, - 120, 122, 124, 126, 128, 130, 132, 134, - 136, 138, 140, 142, 144, 146, 148, 150, - 152, 154, 156, 158, 160, 162, 164, 166, - 168, 170, 172, 174, 176, 178, 180, 182, - 184, 186, 188, 190, 192, 194, 196, 198, - 200, 202, 204, 206, 208, 210, 212, 214, - 216, 218, 220, 222, 224, 226, 228, 230, - 232, 234, 236, 238, 240, 242, 244, 246, - 248, 250, 252, 254, 256, 258, 260, 262, - 264, 266, 268, 270, 272, 274, 276, 278, - 280, 282, 284, 286, 288, 290, 292, 294, - 296, 298, 300, 302, 304, 306, 308, 310, - 312, 314, 316, 318, 320, 322, 324, 326, - 328, 330, 332, 334, 336, 338, 340, 342, - 344, 346, 348, 350, 352, 354, 356, 358, - 360, 362, 364, 366, 368, 370, 372, 374, - 376, 378, 380, 382, 384, 386, 388, 390, - 392, 394, 396, 398, 400, 402, 404, 406, - 408, 410, 412, 414, 416, 418, 420, 422, - 424, 426, 428, 430, 432, 434, 436, 438, - 440, -}; - -static encode_aux_threshmatch _vq_auxt_res0_160_1024_9 = { - _vq_quantthresh_res0_160_1024_9, - _vq_quantmap_res0_160_1024_9, - 441, - 441 -}; - -static static_codebook _vq_book_res0_160_1024_9 = { - 1, 441, - _vq_lengthlist_res0_160_1024_9, - 1, -520388608, 1611661312, 9, 0, - _vq_quantlist_res0_160_1024_9, - NULL, - &_vq_auxt_res0_160_1024_9, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_160_1024aux.vqh b/lib/books/res0_160_1024aux.vqh deleted file mode 100644 index 2941c4ce..00000000 --- a/lib/books/res0_160_1024aux.vqh +++ /dev/null @@ -1,43 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - * * - ******************************************************************** - - function: static codebook autogenerated by huff/huffbuld - - ********************************************************************/ - -#ifndef _V_res0_160_1024aux_VQH_ -#define _V_res0_160_1024aux_VQH_ -#include "codebook.h" - -static long _huff_lengthlist_res0_160_1024aux[] = { - 3, 7,12,11,15,10,14,11,14,19, 5, 4, 7, 7, 8, 8, - 9,10,12,19,10, 6, 5, 5, 6, 7, 8,12,14,18, 9, 6, - 5, 4, 5, 6, 6, 9,12,17,13, 8, 5, 5, 5, 6, 7,11, - 14,18, 9, 7, 7, 5, 6, 5, 6, 7,11,18,13, 8, 7, 6, - 6, 6, 6, 8,10,17,10, 9,10, 8, 9, 6, 6, 6, 8,14, - 10,10,12,10,11, 8, 7, 6, 7,12,13,12,13,11,13,10, - 7, 6, 6,12, -}; - -static static_codebook _huff_book_res0_160_1024aux = { - 2, 100, - _huff_lengthlist_res0_160_1024aux, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_160_128_1.vqh b/lib/books/res0_160_128_1.vqh deleted file mode 100644 index d5c5b05b..00000000 --- a/lib/books/res0_160_128_1.vqh +++ /dev/null @@ -1,63 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_160_128_1_VQH_ -#define _V_res0_160_128_1_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_160_128_1[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist_res0_160_128_1[] = { - 3, 4, 4, 5, 6, 6, 4, 6, 6, 5, 6, 6, 6, 7, 8, 6, - 7, 8, 5, 6, 6, 6, 8, 7, 6, 8, 7, 5, 6, 6, 7, 8, - 8, 6, 8, 8, 6, 8, 8, 8, 9, 9, 8, 9, 9, 6, 8, 8, - 8, 9, 9, 8, 9, 9, 5, 6, 6, 6, 8, 8, 7, 8, 8, 6, - 8, 8, 8, 9, 9, 8, 9, 9, 6, 8, 8, 8, 9, 9, 8, 9, - 9, -}; - -static float _vq_quantthresh_res0_160_128_1[] = { - -0.5, 0.5, -}; - -static long _vq_quantmap_res0_160_128_1[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt_res0_160_128_1 = { - _vq_quantthresh_res0_160_128_1, - _vq_quantmap_res0_160_128_1, - 3, - 3 -}; - -static static_codebook _vq_book_res0_160_128_1 = { - 4, 81, - _vq_lengthlist_res0_160_128_1, - 1, -535822336, 1611661312, 2, 0, - _vq_quantlist_res0_160_128_1, - NULL, - &_vq_auxt_res0_160_128_1, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_160_128_2.vqh b/lib/books/res0_160_128_2.vqh deleted file mode 100644 index c4a9f7be..00000000 --- a/lib/books/res0_160_128_2.vqh +++ /dev/null @@ -1,65 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_160_128_2_VQH_ -#define _V_res0_160_128_2_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_160_128_2[] = { - 3, - 2, - 4, - 1, - 5, - 0, - 6, -}; - -static long _vq_lengthlist_res0_160_128_2[] = { - 2, 3, 3, 5, 5, 8, 8, 4, 5, 5, 7, 7,10, 9, 3, 5, - 5, 7, 7, 9, 9, 6, 7, 7,10,10,13,13, 6, 7, 7,10, - 10,13,13, 8,10,10,14,13,16,17, 8,10,10,13,13,15, - 17, -}; - -static float _vq_quantthresh_res0_160_128_2[] = { - -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, -}; - -static long _vq_quantmap_res0_160_128_2[] = { - 5, 3, 1, 0, 2, 4, 6, -}; - -static encode_aux_threshmatch _vq_auxt_res0_160_128_2 = { - _vq_quantthresh_res0_160_128_2, - _vq_quantmap_res0_160_128_2, - 7, - 7 -}; - -static static_codebook _vq_book_res0_160_128_2 = { - 2, 49, - _vq_lengthlist_res0_160_128_2, - 1, -533200896, 1611661312, 3, 0, - _vq_quantlist_res0_160_128_2, - NULL, - &_vq_auxt_res0_160_128_2, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_160_128_3.vqh b/lib/books/res0_160_128_3.vqh deleted file mode 100644 index e7ee2f6b..00000000 --- a/lib/books/res0_160_128_3.vqh +++ /dev/null @@ -1,152 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_160_128_3_VQH_ -#define _V_res0_160_128_3_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_160_128_3[] = { - 15, - 14, - 16, - 13, - 17, - 12, - 18, - 11, - 19, - 10, - 20, - 9, - 21, - 8, - 22, - 7, - 23, - 6, - 24, - 5, - 25, - 4, - 26, - 3, - 27, - 2, - 28, - 1, - 29, - 0, - 30, -}; - -static long _vq_lengthlist_res0_160_128_3[] = { - 3, 4, 4, 6, 6, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, - 9, 8, 9, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 4, - 5, 5, 6, 6, 7, 7, 8, 8, 8, 8, 8, 9, 8, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 4, 5, - 5, 6, 6, 7, 7, 8, 8, 8, 8, 8, 9, 8, 9, 8, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 9, 7, 7, 7, - 9, 9,10,10,10,10,10,11,10,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11, 7, 7, 7, 9, - 9,10, 9,10,10,10,10,10,10,10,11,11,11,11,11,11, - 12,11,11,11,11,11,11,11,11,11,11, 8, 9, 9,10,10, - 11,11,11,11,12,12,12,12,12,13,12,12,12,13,13,13, - 12,12,12,13,12,13,12,13,12,13, 8, 9, 9,11,10,11, - 11,12,12,12,12,12,12,12,12,12,13,12,13,12,13,12, - 12,12,12,12,12,13,13,13,12, 8,10,10,12,11,12,12, - 13,14,13,14,14,14,14,14,13,14,14,14,13,15,13,14, - 13,13,13,14,14,13,14,14, 8,10,10,11,11,12,13,13, - 13,13,13,13,14,13,14,13,14,13,15,14,13,14,14,13, - 14,14,14,13,14,14,13,10,11,11,12,13,13,14,13,14, - 14,14,14,13,14,16,14,15,14,15,14,15,14,15,14,15, - 15,15,14,14,15,15,10,11,11,13,12,13,13,13,14,14, - 14,14,14,14,15,14,15,14,15,15,15,15,15,14,14,15, - 14,15,15,17,14,11,12,12,14,13,13,14,14,15,14,14, - 15,15,15,15,15,15,16,16,15,16,16,15,15,15,15,15, - 15,14,15,15,11,12,12,13,13,14,15,15,15,15,15,15, - 16,15,15,15,15,15,16,15,15,15,15,15,16,16,15,17, - 15,17,16,11,13,13,15,15,15,14,14,16,15,16,15,16, - 15,16,14,17,15,16,15,17,15,15,16,16,16,16,15,16, - 17,17,11,12,12,14,14,14,15,16,15,16,15,16,16,15, - 16,16,17,15,16,15,17,16,15,16,15,17,16,16,15,16, - 16,12,13,13,15,15,14,16,16,15,16,15,16,16,16,16, - 16,16,16,16,17,16,15,17,16,16,16,16,17,16,17,17, - 12,14,13,15,15,15,14,17,16,16,16,15,16,17,16,16, - 17,16,15,15,16,16,16,16,16,16,16,17,16,16,16,13, - 14,14,16,15,17,16,16,17,15,16,15,17,16,17,17,17, - 16,16,16,16,16,16,16,16,17,16,17,16,17,17,13,15, - 14,15,15,17,16,17,17,17,16,16,16,16,17,16,16,17, - 16,15,17,16,17,17,16,16,16,16,16,17,17,13,15,14, - 16,16,17,16,17,16,16,16,15,17,17,17,16,16,16,17, - 17,17,16,16,16,17,16,15,17,16,17,16,13,14,13,16, - 16,16,16,17,16,16,16,16,16,16,16,17,17,17,17,16, - 17,17,17,16,17,17,16,16,16,17,16,14,14,15,16,15, - 16,16,17,17,16,17,17,16,16,17,17,17,17,16,16,17, - 16,17,17,17,16,17,17,17,17,17,13,14,14,17,16,16, - 17,16,16,16,17,17,17,15,16,16,17,16,17,16,16,16, - 17,16,16,17,17,17,15,16,16,14,15,15,17,16,16,17, - 17,17,17,17,16,16,16,17,17,17,17,17,17,17,17,17, - 17,17,17,17,17,17,17,17,14,15,14,17,16,16,17,17, - 17,16,17,17,17,17,17,17,17,17,17,17,17,16,17,17, - 17,16,17,17,17,16,16,15,16,15,16,16,17,17,16,16, - 17,17,17,17,17,17,17,17,15,17,17,16,17,17,16,17, - 17,17,17,17,17,17,15,15,16,16,17,16,16,17,16,17, - 17,17,17,17,17,17,17,17,17,17,17,16,15,17,17,17, - 17,17,16,17,17,15,16,15,16,17,16,17,17,17,17,17, - 17,17,17,16,17,16,17,17,17,17,17,17,17,17,17,17, - 17,17,17,17,15,16,16,15,16,17,16,16,17,17,17,17, - 16,17,16,16,17,16,17,17,17,16,16,17,16,16,16,17, - 16,17,17,15,17,16,16,17,16,16,17,17,17,17,17,17, - 16,17,17,17,17,17,17,17,17,17,17,17,17,16,17,16, - 17,16,15,16,16,17,16,17,16,17,17,17,17,17,16,16, - 17,16,17,16,16,17,17,16,16,17,17,17,16,17,17,17, - 17, -}; - -static float _vq_quantthresh_res0_160_128_3[] = { - -14.5, -13.5, -12.5, -11.5, -10.5, -9.5, -8.5, -7.5, - -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, - 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, - 9.5, 10.5, 11.5, 12.5, 13.5, 14.5, -}; - -static long _vq_quantmap_res0_160_128_3[] = { - 29, 27, 25, 23, 21, 19, 17, 15, - 13, 11, 9, 7, 5, 3, 1, 0, - 2, 4, 6, 8, 10, 12, 14, 16, - 18, 20, 22, 24, 26, 28, 30, -}; - -static encode_aux_threshmatch _vq_auxt_res0_160_128_3 = { - _vq_quantthresh_res0_160_128_3, - _vq_quantmap_res0_160_128_3, - 31, - 31 -}; - -static static_codebook _vq_book_res0_160_128_3 = { - 2, 961, - _vq_lengthlist_res0_160_128_3, - 1, -528613376, 1611661312, 5, 0, - _vq_quantlist_res0_160_128_3, - NULL, - &_vq_auxt_res0_160_128_3, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_160_128_4.vqh b/lib/books/res0_160_128_4.vqh deleted file mode 100644 index e3c1d3d8..00000000 --- a/lib/books/res0_160_128_4.vqh +++ /dev/null @@ -1,123 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_160_128_4_VQH_ -#define _V_res0_160_128_4_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_160_128_4[] = { - 26, - 25, - 27, - 24, - 28, - 23, - 29, - 22, - 30, - 21, - 31, - 20, - 32, - 19, - 33, - 18, - 34, - 17, - 35, - 16, - 36, - 15, - 37, - 14, - 38, - 13, - 39, - 12, - 40, - 11, - 41, - 10, - 42, - 9, - 43, - 8, - 44, - 7, - 45, - 6, - 46, - 5, - 47, - 4, - 48, - 3, - 49, - 2, - 50, - 1, - 51, - 0, - 52, -}; - -static long _vq_lengthlist_res0_160_128_4[] = { - 2, 2, 2, 5, 5, 6, 6, 7, 7, 7, 7, 7, 8, 8, 8, 8, - 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 9, 7, - 7, 8, 7, 8, 8, 8, 8, 9, 8, 9, 8, 9, 9,10, 9,10, - 10,10,10,10,10, -}; - -static float _vq_quantthresh_res0_160_128_4[] = { - -25.5, -24.5, -23.5, -22.5, -21.5, -20.5, -19.5, -18.5, - -17.5, -16.5, -15.5, -14.5, -13.5, -12.5, -11.5, -10.5, - -9.5, -8.5, -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, - -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, - 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5, - 14.5, 15.5, 16.5, 17.5, 18.5, 19.5, 20.5, 21.5, - 22.5, 23.5, 24.5, 25.5, -}; - -static long _vq_quantmap_res0_160_128_4[] = { - 51, 49, 47, 45, 43, 41, 39, 37, - 35, 33, 31, 29, 27, 25, 23, 21, - 19, 17, 15, 13, 11, 9, 7, 5, - 3, 1, 0, 2, 4, 6, 8, 10, - 12, 14, 16, 18, 20, 22, 24, 26, - 28, 30, 32, 34, 36, 38, 40, 42, - 44, 46, 48, 50, 52, -}; - -static encode_aux_threshmatch _vq_auxt_res0_160_128_4 = { - _vq_quantthresh_res0_160_128_4, - _vq_quantmap_res0_160_128_4, - 53, - 53 -}; - -static static_codebook _vq_book_res0_160_128_4 = { - 1, 53, - _vq_lengthlist_res0_160_128_4, - 1, -526778368, 1611661312, 6, 0, - _vq_quantlist_res0_160_128_4, - NULL, - &_vq_auxt_res0_160_128_4, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_160_128_5.vqh b/lib/books/res0_160_128_5.vqh deleted file mode 100644 index 64522eb9..00000000 --- a/lib/books/res0_160_128_5.vqh +++ /dev/null @@ -1,448 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_160_128_5_VQH_ -#define _V_res0_160_128_5_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_160_128_5[] = { - 150, - 149, - 151, - 148, - 152, - 147, - 153, - 146, - 154, - 145, - 155, - 144, - 156, - 143, - 157, - 142, - 158, - 141, - 159, - 140, - 160, - 139, - 161, - 138, - 162, - 137, - 163, - 136, - 164, - 135, - 165, - 134, - 166, - 133, - 167, - 132, - 168, - 131, - 169, - 130, - 170, - 129, - 171, - 128, - 172, - 127, - 173, - 126, - 174, - 125, - 175, - 124, - 176, - 123, - 177, - 122, - 178, - 121, - 179, - 120, - 180, - 119, - 181, - 118, - 182, - 117, - 183, - 116, - 184, - 115, - 185, - 114, - 186, - 113, - 187, - 112, - 188, - 111, - 189, - 110, - 190, - 109, - 191, - 108, - 192, - 107, - 193, - 106, - 194, - 105, - 195, - 104, - 196, - 103, - 197, - 102, - 198, - 101, - 199, - 100, - 200, - 99, - 201, - 98, - 202, - 97, - 203, - 96, - 204, - 95, - 205, - 94, - 206, - 93, - 207, - 92, - 208, - 91, - 209, - 90, - 210, - 89, - 211, - 88, - 212, - 87, - 213, - 86, - 214, - 85, - 215, - 84, - 216, - 83, - 217, - 82, - 218, - 81, - 219, - 80, - 220, - 79, - 221, - 78, - 222, - 77, - 223, - 76, - 224, - 75, - 225, - 74, - 226, - 73, - 227, - 72, - 228, - 71, - 229, - 70, - 230, - 69, - 231, - 68, - 232, - 67, - 233, - 66, - 234, - 65, - 235, - 64, - 236, - 63, - 237, - 62, - 238, - 61, - 239, - 60, - 240, - 59, - 241, - 58, - 242, - 57, - 243, - 56, - 244, - 55, - 245, - 54, - 246, - 53, - 247, - 52, - 248, - 51, - 249, - 50, - 250, - 49, - 251, - 48, - 252, - 47, - 253, - 46, - 254, - 45, - 255, - 44, - 256, - 43, - 257, - 42, - 258, - 41, - 259, - 40, - 260, - 39, - 261, - 38, - 262, - 37, - 263, - 36, - 264, - 35, - 265, - 34, - 266, - 33, - 267, - 32, - 268, - 31, - 269, - 30, - 270, - 29, - 271, - 28, - 272, - 27, - 273, - 26, - 274, - 25, - 275, - 24, - 276, - 23, - 277, - 22, - 278, - 21, - 279, - 20, - 280, - 19, - 281, - 18, - 282, - 17, - 283, - 16, - 284, - 15, - 285, - 14, - 286, - 13, - 287, - 12, - 288, - 11, - 289, - 10, - 290, - 9, - 291, - 8, - 292, - 7, - 293, - 6, - 294, - 5, - 295, - 4, - 296, - 3, - 297, - 2, - 298, - 1, - 299, - 0, - 300, -}; - -static long _vq_lengthlist_res0_160_128_5[] = { - 2, 2, 3, 4, 4, 5, 5, 6, 6, 7, 7, 7, 7, 7, 7, 8, - 8, 8, 8, 9, 8, 9, 8, 9, 9,10,10,11, 9,12,11,12, - 11,13,12,13,12,13,13,12,13,15,13,15,14,14,13,15, - 15,14,15,14,14, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, - 10, 9,10, 9,10, 9,11,10,11,10,11,10,11,10,11,10, - 11,11,11,10,12,11,13,10,11,11,12,11,11,11,12,12, - 13,11,12,12,12,12,12,12,13,12,13,13,13,12,13,12, - 13,13,15,12,13,13,14,12,13,13,13,13,14,12,14,14, - 15,13,15,13,13,13,15,12,15,13,14,13,15,15,14,13, - 15,14,15,15,14,14,13,13,13,15,15,15,13,14,15,13, - 14,15,15,13,13,15,15,14,15,14,14,15,14,14,15,14, - 15,15,15,14,13,15,14,15,15,15,15,15,14,14,15,14, - 15,15,14,14,15,15,15,14,15,15,15,14,15,15,15,15, - 14,15,15,15,15,15,13,15,15,15,14,15,15,15,15,15, - 15,15,15,14,15,13,15,14,15,15,15,15,15,14,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,14,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, - 15,15,15,14,15,15,15,15,15,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,15,15,15,15,14,13, -}; - -static float _vq_quantthresh_res0_160_128_5[] = { - -149.5, -148.5, -147.5, -146.5, -145.5, -144.5, -143.5, -142.5, - -141.5, -140.5, -139.5, -138.5, -137.5, -136.5, -135.5, -134.5, - -133.5, -132.5, -131.5, -130.5, -129.5, -128.5, -127.5, -126.5, - -125.5, -124.5, -123.5, -122.5, -121.5, -120.5, -119.5, -118.5, - -117.5, -116.5, -115.5, -114.5, -113.5, -112.5, -111.5, -110.5, - -109.5, -108.5, -107.5, -106.5, -105.5, -104.5, -103.5, -102.5, - -101.5, -100.5, -99.5, -98.5, -97.5, -96.5, -95.5, -94.5, - -93.5, -92.5, -91.5, -90.5, -89.5, -88.5, -87.5, -86.5, - -85.5, -84.5, -83.5, -82.5, -81.5, -80.5, -79.5, -78.5, - -77.5, -76.5, -75.5, -74.5, -73.5, -72.5, -71.5, -70.5, - -69.5, -68.5, -67.5, -66.5, -65.5, -64.5, -63.5, -62.5, - -61.5, -60.5, -59.5, -58.5, -57.5, -56.5, -55.5, -54.5, - -53.5, -52.5, -51.5, -50.5, -49.5, -48.5, -47.5, -46.5, - -45.5, -44.5, -43.5, -42.5, -41.5, -40.5, -39.5, -38.5, - -37.5, -36.5, -35.5, -34.5, -33.5, -32.5, -31.5, -30.5, - -29.5, -28.5, -27.5, -26.5, -25.5, -24.5, -23.5, -22.5, - -21.5, -20.5, -19.5, -18.5, -17.5, -16.5, -15.5, -14.5, - -13.5, -12.5, -11.5, -10.5, -9.5, -8.5, -7.5, -6.5, - -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, - 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, - 10.5, 11.5, 12.5, 13.5, 14.5, 15.5, 16.5, 17.5, - 18.5, 19.5, 20.5, 21.5, 22.5, 23.5, 24.5, 25.5, - 26.5, 27.5, 28.5, 29.5, 30.5, 31.5, 32.5, 33.5, - 34.5, 35.5, 36.5, 37.5, 38.5, 39.5, 40.5, 41.5, - 42.5, 43.5, 44.5, 45.5, 46.5, 47.5, 48.5, 49.5, - 50.5, 51.5, 52.5, 53.5, 54.5, 55.5, 56.5, 57.5, - 58.5, 59.5, 60.5, 61.5, 62.5, 63.5, 64.5, 65.5, - 66.5, 67.5, 68.5, 69.5, 70.5, 71.5, 72.5, 73.5, - 74.5, 75.5, 76.5, 77.5, 78.5, 79.5, 80.5, 81.5, - 82.5, 83.5, 84.5, 85.5, 86.5, 87.5, 88.5, 89.5, - 90.5, 91.5, 92.5, 93.5, 94.5, 95.5, 96.5, 97.5, - 98.5, 99.5, 100.5, 101.5, 102.5, 103.5, 104.5, 105.5, - 106.5, 107.5, 108.5, 109.5, 110.5, 111.5, 112.5, 113.5, - 114.5, 115.5, 116.5, 117.5, 118.5, 119.5, 120.5, 121.5, - 122.5, 123.5, 124.5, 125.5, 126.5, 127.5, 128.5, 129.5, - 130.5, 131.5, 132.5, 133.5, 134.5, 135.5, 136.5, 137.5, - 138.5, 139.5, 140.5, 141.5, 142.5, 143.5, 144.5, 145.5, - 146.5, 147.5, 148.5, 149.5, -}; - -static long _vq_quantmap_res0_160_128_5[] = { - 299, 297, 295, 293, 291, 289, 287, 285, - 283, 281, 279, 277, 275, 273, 271, 269, - 267, 265, 263, 261, 259, 257, 255, 253, - 251, 249, 247, 245, 243, 241, 239, 237, - 235, 233, 231, 229, 227, 225, 223, 221, - 219, 217, 215, 213, 211, 209, 207, 205, - 203, 201, 199, 197, 195, 193, 191, 189, - 187, 185, 183, 181, 179, 177, 175, 173, - 171, 169, 167, 165, 163, 161, 159, 157, - 155, 153, 151, 149, 147, 145, 143, 141, - 139, 137, 135, 133, 131, 129, 127, 125, - 123, 121, 119, 117, 115, 113, 111, 109, - 107, 105, 103, 101, 99, 97, 95, 93, - 91, 89, 87, 85, 83, 81, 79, 77, - 75, 73, 71, 69, 67, 65, 63, 61, - 59, 57, 55, 53, 51, 49, 47, 45, - 43, 41, 39, 37, 35, 33, 31, 29, - 27, 25, 23, 21, 19, 17, 15, 13, - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, 14, 16, 18, - 20, 22, 24, 26, 28, 30, 32, 34, - 36, 38, 40, 42, 44, 46, 48, 50, - 52, 54, 56, 58, 60, 62, 64, 66, - 68, 70, 72, 74, 76, 78, 80, 82, - 84, 86, 88, 90, 92, 94, 96, 98, - 100, 102, 104, 106, 108, 110, 112, 114, - 116, 118, 120, 122, 124, 126, 128, 130, - 132, 134, 136, 138, 140, 142, 144, 146, - 148, 150, 152, 154, 156, 158, 160, 162, - 164, 166, 168, 170, 172, 174, 176, 178, - 180, 182, 184, 186, 188, 190, 192, 194, - 196, 198, 200, 202, 204, 206, 208, 210, - 212, 214, 216, 218, 220, 222, 224, 226, - 228, 230, 232, 234, 236, 238, 240, 242, - 244, 246, 248, 250, 252, 254, 256, 258, - 260, 262, 264, 266, 268, 270, 272, 274, - 276, 278, 280, 282, 284, 286, 288, 290, - 292, 294, 296, 298, 300, -}; - -static encode_aux_threshmatch _vq_auxt_res0_160_128_5 = { - _vq_quantthresh_res0_160_128_5, - _vq_quantmap_res0_160_128_5, - 301, - 301 -}; - -static static_codebook _vq_book_res0_160_128_5 = { - 1, 301, - _vq_lengthlist_res0_160_128_5, - 1, -520962048, 1611661312, 9, 0, - _vq_quantlist_res0_160_128_5, - NULL, - &_vq_auxt_res0_160_128_5, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_160_128aux.vqh b/lib/books/res0_160_128aux.vqh deleted file mode 100644 index 199f20c6..00000000 --- a/lib/books/res0_160_128aux.vqh +++ /dev/null @@ -1,50 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - * * - ******************************************************************** - - function: static codebook autogenerated by huff/huffbuld - - ********************************************************************/ - -#ifndef _V_res0_160_128aux_VQH_ -#define _V_res0_160_128aux_VQH_ -#include "codebook.h" - -static long _huff_lengthlist_res0_160_128aux[] = { - 13,16,16,16,16,16,15,14,15,16,16,16,14,12,14,14, - 15,16,10,12,14,13,16,16,15,16,15,16,16,16,16,16, - 16,16,16,16,12,13,14,16,16,16, 8, 4, 7,13,16,16, - 7, 4, 7,12,16,16, 9, 9,11,13,16,16,14,16,16,16, - 16,16,15,16,16,16,16,16,10,10,13,11,16,16, 5, 3, - 7,11,16,16, 5, 3, 7,13,16,16, 9, 9,12,14,16,16, - 15,16,16,16,16,16,16,16,16,16,16,16,10,10,11,12, - 16,16, 8, 3, 4,10,16,16, 8, 4, 5, 9,16,16,12, 8, - 9,12,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 14,13,15,16,16,16,13, 4, 5,10,16,16,14, 4, 6,10, - 16,16,15, 9,10,13,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,14,16,16,16,16,16,14, 7, 8,12,16,16, - 16, 7, 8,12,16,16,16,13,13,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16, -}; - -static static_codebook _huff_book_res0_160_128aux = { - 3, 216, - _huff_lengthlist_res0_160_128aux, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_192_1024_1.vqh b/lib/books/res0_192_1024_1.vqh deleted file mode 100644 index a79db190..00000000 --- a/lib/books/res0_192_1024_1.vqh +++ /dev/null @@ -1,63 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_192_1024_1_VQH_ -#define _V_res0_192_1024_1_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_192_1024_1[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist_res0_192_1024_1[] = { - 1, 4, 4, 4, 8, 8, 4, 8, 8, 5, 8, 8, 8,12,12, 8, - 12,12, 4, 8, 8, 8,12,12, 8,12,12, 5, 8, 8, 9,12, - 12, 8,12,12, 9,12,12,12,16,16,12,17,16, 9,12,12, - 12,16,16,12,17,16, 5, 8, 8, 8,12,12, 8,12,12, 9, - 12,12,13,16,16,12,16,16, 8,12,12,13,16,16,12,16, - 15, -}; - -static float _vq_quantthresh_res0_192_1024_1[] = { - -0.5, 0.5, -}; - -static long _vq_quantmap_res0_192_1024_1[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt_res0_192_1024_1 = { - _vq_quantthresh_res0_192_1024_1, - _vq_quantmap_res0_192_1024_1, - 3, - 3 -}; - -static static_codebook _vq_book_res0_192_1024_1 = { - 4, 81, - _vq_lengthlist_res0_192_1024_1, - 1, -535822336, 1611661312, 2, 0, - _vq_quantlist_res0_192_1024_1, - NULL, - &_vq_auxt_res0_192_1024_1, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_192_1024_2.vqh b/lib/books/res0_192_1024_2.vqh deleted file mode 100644 index 61a2391e..00000000 --- a/lib/books/res0_192_1024_2.vqh +++ /dev/null @@ -1,63 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_192_1024_2_VQH_ -#define _V_res0_192_1024_2_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_192_1024_2[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist_res0_192_1024_2[] = { - 3, 4, 4, 5, 6, 6, 4, 6, 6, 5, 6, 6, 6, 8, 8, 6, - 8, 8, 5, 6, 6, 6, 8, 8, 6, 8, 8, 5, 6, 6, 6, 8, - 8, 6, 8, 8, 6, 8, 8, 8, 9, 9, 8, 9, 9, 6, 8, 8, - 8, 9, 9, 8, 9, 9, 5, 6, 6, 6, 8, 8, 6, 8, 8, 6, - 8, 8, 8, 9, 9, 8, 9, 9, 6, 8, 8, 8, 9, 9, 8, 9, - 9, -}; - -static float _vq_quantthresh_res0_192_1024_2[] = { - -0.5, 0.5, -}; - -static long _vq_quantmap_res0_192_1024_2[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt_res0_192_1024_2 = { - _vq_quantthresh_res0_192_1024_2, - _vq_quantmap_res0_192_1024_2, - 3, - 3 -}; - -static static_codebook _vq_book_res0_192_1024_2 = { - 4, 81, - _vq_lengthlist_res0_192_1024_2, - 1, -535822336, 1611661312, 2, 0, - _vq_quantlist_res0_192_1024_2, - NULL, - &_vq_auxt_res0_192_1024_2, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_192_1024_3.vqh b/lib/books/res0_192_1024_3.vqh deleted file mode 100644 index 617ba81c..00000000 --- a/lib/books/res0_192_1024_3.vqh +++ /dev/null @@ -1,99 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_192_1024_3_VQH_ -#define _V_res0_192_1024_3_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_192_1024_3[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist_res0_192_1024_3[] = { - 3, 5, 5, 7, 7, 5, 6, 6, 9, 9, 5, 6, 6, 9, 9, 7, - 9, 9,12,12, 7, 9, 9,12,12, 5, 7, 6, 9, 9, 7, 8, - 8,10,10, 7, 8, 8,10,10, 9,11,11,14,14, 9,11,11, - 14,14, 5, 6, 6, 9, 9, 7, 8, 8,10,10, 7, 8, 8,10, - 10, 9,11,11,14,13, 9,11,11,14,14, 8, 9, 9,12,12, - 9,11,11,14,14, 9,11,11,14,14,13,14,14,17,18,13, - 14,14,17,18, 8, 9, 9,12,12, 9,11,11,14,14, 9,11, - 11,14,14,12,14,14,17,17,12,14,14,17,18, 5, 7, 7, - 9, 9, 7, 8, 8,11,11, 7, 8, 8,10,11, 9,11,11,14, - 14, 9,11,11,14,14, 7, 8, 8,11,11, 8, 9,10,12,12, - 8,10, 9,12,12,11,12,12,15,15,11,12,12,15,16, 7, - 8, 8,11,11, 8,10, 9,12,12, 8, 9, 9,12,12,11,12, - 12,15,15,11,12,12,16,16, 9,11,11,14,14,11,12,13, - 16,15,11,12,12,16,16,14,16,15,20,19,14,16,15,19, - 18, 9,11,11,14,14,11,12,12,16,16,11,12,13,15,16, - 14,16,15,19,18,14,16,16,19,19, 5, 7, 7, 9, 9, 7, - 8, 8,10,10, 7, 8, 8,10,11, 9,11,11,14,14, 9,11, - 11,14,14, 7, 8, 8,11,10, 8,10, 9,12,12, 8, 9, 9, - 12,12,11,12,12,15,15,11,12,12,15,15, 7, 8, 8,11, - 10, 8, 9,10,12,12, 8, 9, 9,12,12,11,12,12,16,16, - 11,12,12,16,15, 9,11,11,14,14,11,12,12,15,15,11, - 12,12,16,15,14,16,15,19,18,14,15,16,19,18, 9,11, - 11,14,14,11,12,13,16,15,11,12,12,16,15,14,16,16, - 19,19,14,16,15,19,18, 7, 9, 9,12,12, 9,11,11,14, - 14, 9,11,11,14,14,12,14,14,17,17,12,14,14,17,17, - 9,11,11,14,14,11,12,12,16,15,11,12,12,16,15,14, - 15,16,19,19,14,17,15,21,19, 9,11,11,14,14,11,12, - 12,16,15,11,12,12,15,16,14,16,16,19,18,14,16,16, - 19,18,12,14,14,17,18,14,15,16,19,18,14,16,16,19, - 18,18,19,18,20,20,17,19,19,20,21,12,14,14,17,17, - 14,15,15,21,18,14,16,16,18,18,17,18,19,20,21,18, - 20,18,21,21, 7, 9, 9,12,12, 9,11,11,14,14, 9,11, - 11,14,14,12,14,14,17,17,12,14,14,17,18, 9,11,11, - 14,14,11,12,12,16,16,11,12,12,15,16,14,16,15,19, - 19,14,15,15,18,19, 9,11,11,14,14,11,12,12,16,15, - 11,12,12,15,15,14,16,16,18,19,14,16,15,18,19,12, - 14,14,17,17,14,16,15,18,20,14,16,16,18,18,16,18, - 19,21,21,18,17,19,21,21,12,14,14,17,17,14,16,16, - 18,20,14,16,15,18,18,17,18,20,19,21,17,18,19,21, - 20, -}; - -static float _vq_quantthresh_res0_192_1024_3[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap_res0_192_1024_3[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt_res0_192_1024_3 = { - _vq_quantthresh_res0_192_1024_3, - _vq_quantmap_res0_192_1024_3, - 5, - 5 -}; - -static static_codebook _vq_book_res0_192_1024_3 = { - 4, 625, - _vq_lengthlist_res0_192_1024_3, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist_res0_192_1024_3, - NULL, - &_vq_auxt_res0_192_1024_3, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_192_1024_4.vqh b/lib/books/res0_192_1024_4.vqh deleted file mode 100644 index fccbd292..00000000 --- a/lib/books/res0_192_1024_4.vqh +++ /dev/null @@ -1,99 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_192_1024_4_VQH_ -#define _V_res0_192_1024_4_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_192_1024_4[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist_res0_192_1024_4[] = { - 6, 7, 7, 8, 8, 7, 7, 7, 9, 9, 7, 7, 7, 9, 9, 8, - 9, 9,10,10, 8, 9, 9,10,10, 7, 7, 7, 9, 9, 7, 7, - 7, 9, 9, 7, 7, 7, 9, 9, 9, 9, 9,11,11, 9, 9, 9, - 11,11, 7, 7, 7, 9, 9, 7, 7, 7, 9, 9, 7, 7, 7, 9, - 9, 9, 9, 9,11,11, 9, 9, 9,11,11, 8, 9, 9,11,11, - 9, 9, 9,11,11, 9, 9, 9,11,11,11,11,11,13,13,11, - 11,11,13,13, 8, 9, 9,11,11, 9, 9, 9,11,11, 9, 9, - 9,11,11,11,11,11,13,13,11,11,11,13,13, 7, 7, 7, - 9, 9, 7, 8, 8, 9, 9, 7, 7, 7, 9, 9, 9, 9, 9,11, - 11, 9, 9, 9,11,11, 7, 8, 7, 9, 9, 8, 8, 8,10,10, - 8, 8, 8,10,10, 9,10,10,12,12, 9,10,10,12,12, 7, - 8, 8, 9, 9, 7, 8, 8,10,10, 8, 8, 8,10,10, 9,10, - 10,12,12, 9,10,10,12,12, 9, 9, 9,11,11, 9,10,10, - 12,12, 9,10,10,12,12,11,12,12,13,14,11,12,12,14, - 14, 9, 9, 9,11,11, 9,10,10,12,12, 9,10,10,12,12, - 11,12,12,14,13,11,12,12,13,14, 7, 7, 7, 9, 9, 7, - 7, 7, 9, 9, 7, 8, 7, 9, 9, 9, 9, 9,11,11, 9, 9, - 9,11,11, 7, 8, 7, 9, 9, 8, 8, 8,10,10, 8, 8, 8, - 10,10, 9,10,10,12,12, 9,10,10,12,12, 7, 7, 7, 9, - 9, 7, 8, 8,10,10, 7, 8, 8,10,10, 9,10,10,12,12, - 9,10,10,12,11, 9, 9, 9,11,11, 9,10,10,12,12, 9, - 10,10,12,12,11,12,12,14,14,11,12,12,13,13, 9, 9, - 9,11,11, 9,10,10,12,12, 9,10,10,12,12,11,12,12, - 14,14,11,12,12,14,13, 8, 9, 9,11,11, 9, 9, 9,11, - 11, 9, 9, 9,11,11,11,11,11,13,13,11,11,11,13,13, - 9, 9, 9,11,11, 9,10,10,12,12, 9,10,10,12,12,11, - 12,12,14,14,11,12,12,14,14, 9, 9, 9,11,11, 9,10, - 10,12,12, 9,10,10,12,12,11,12,12,14,14,11,12,12, - 14,14,11,11,11,13,13,11,12,12,14,14,11,12,12,14, - 13,13,13,14,15,15,13,14,14,15,16,11,11,11,13,13, - 11,12,12,14,14,11,12,12,13,14,13,14,13,15,15,13, - 14,14,15,15, 8, 9, 9,11,11, 9, 9, 9,11,11, 9, 9, - 9,11,11,11,11,11,13,13,11,11,11,13,13, 9, 9, 9, - 11,11, 9,10,10,12,12, 9,10,10,12,12,11,12,12,14, - 14,11,12,12,14,14, 9, 9, 9,11,11, 9,10,10,12,12, - 9,10,10,12,12,11,12,12,14,14,11,12,12,14,14,11, - 11,11,13,13,11,12,12,14,14,11,12,12,14,14,13,14, - 14,16,16,13,13,14,15,15,10,11,11,13,13,11,12,12, - 14,14,11,12,12,14,13,13,14,14,15,15,13,14,13,16, - 15, -}; - -static float _vq_quantthresh_res0_192_1024_4[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap_res0_192_1024_4[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt_res0_192_1024_4 = { - _vq_quantthresh_res0_192_1024_4, - _vq_quantmap_res0_192_1024_4, - 5, - 5 -}; - -static static_codebook _vq_book_res0_192_1024_4 = { - 4, 625, - _vq_lengthlist_res0_192_1024_4, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist_res0_192_1024_4, - NULL, - &_vq_auxt_res0_192_1024_4, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_192_1024_5.vqh b/lib/books/res0_192_1024_5.vqh deleted file mode 100644 index 3ac3341b..00000000 --- a/lib/books/res0_192_1024_5.vqh +++ /dev/null @@ -1,80 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_192_1024_5_VQH_ -#define _V_res0_192_1024_5_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_192_1024_5[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist_res0_192_1024_5[] = { - 2, 3, 3, 5, 5, 7, 7, 9, 9,10,10,11,11, 4, 5, 5, - 7, 7, 8, 8,11,11,12,12,14,14, 4, 5, 5, 7, 7, 8, - 8,11,11,13,12,14,14, 6, 7, 7, 9, 9,11,11,13,13, - 15,15,16,16, 6, 7, 7, 9, 9,11,11,13,13,15,15,16, - 16, 7, 9, 8,11,11,13,13,15,15,16,16,17,18, 7, 8, - 8,11,11,13,13,15,15,17,17,18,18, 9,11,11,13,13, - 15,15,17,17,18,18,18,18, 9,11,11,13,13,15,15,17, - 17,18,18,18,19,10,13,13,15,15,17,16,17,18,18,18, - 19,21,10,13,13,15,15,17,17,17,18,18,20,19,20,11, - 14,14,16,16,18,18,19,18,18,18,19,21,12,14,14,16, - 16,18,18,19,18,19,20,20,20, -}; - -static float _vq_quantthresh_res0_192_1024_5[] = { - -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, - 2.5, 3.5, 4.5, 5.5, -}; - -static long _vq_quantmap_res0_192_1024_5[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt_res0_192_1024_5 = { - _vq_quantthresh_res0_192_1024_5, - _vq_quantmap_res0_192_1024_5, - 13, - 13 -}; - -static static_codebook _vq_book_res0_192_1024_5 = { - 2, 169, - _vq_lengthlist_res0_192_1024_5, - 1, -531103744, 1611661312, 4, 0, - _vq_quantlist_res0_192_1024_5, - NULL, - &_vq_auxt_res0_192_1024_5, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_192_1024_6.vqh b/lib/books/res0_192_1024_6.vqh deleted file mode 100644 index 9c1a861c..00000000 --- a/lib/books/res0_192_1024_6.vqh +++ /dev/null @@ -1,80 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_192_1024_6_VQH_ -#define _V_res0_192_1024_6_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_192_1024_6[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist_res0_192_1024_6[] = { - 4, 4, 4, 5, 5, 7, 7, 8, 8, 9, 9,10,10, 4, 5, 4, - 6, 6, 7, 7, 9, 9,10,10,11,11, 4, 4, 4, 6, 6, 7, - 7, 9, 9,10,10,11,11, 5, 6, 6, 7, 7, 9, 8,10,10, - 11,11,12,12, 5, 6, 6, 7, 7, 9, 9,10,10,11,11,12, - 12, 7, 7, 7, 9, 9,10,10,11,11,12,12,14,14, 7, 7, - 7, 9, 9,10,10,11,11,12,12,14,14, 8, 9, 9,10,10, - 11,11,12,13,14,14,15,15, 8, 9, 9,10,10,11,11,13, - 13,13,14,15,15,10,10,10,11,12,13,13,14,14,15,15, - 16,15,10,10,10,11,11,13,13,14,14,15,15,16,16,11, - 11,11,13,13,14,14,15,15,16,16,17,17,11,11,11,13, - 13,14,14,15,15,16,16,16,16, -}; - -static float _vq_quantthresh_res0_192_1024_6[] = { - -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, - 2.5, 3.5, 4.5, 5.5, -}; - -static long _vq_quantmap_res0_192_1024_6[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt_res0_192_1024_6 = { - _vq_quantthresh_res0_192_1024_6, - _vq_quantmap_res0_192_1024_6, - 13, - 13 -}; - -static static_codebook _vq_book_res0_192_1024_6 = { - 2, 169, - _vq_lengthlist_res0_192_1024_6, - 1, -531103744, 1611661312, 4, 0, - _vq_quantlist_res0_192_1024_6, - NULL, - &_vq_auxt_res0_192_1024_6, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_192_1024_7.vqh b/lib/books/res0_192_1024_7.vqh deleted file mode 100644 index 39ef0fa2..00000000 --- a/lib/books/res0_192_1024_7.vqh +++ /dev/null @@ -1,236 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_192_1024_7_VQH_ -#define _V_res0_192_1024_7_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_192_1024_7[] = { - 22, - 21, - 23, - 20, - 24, - 19, - 25, - 18, - 26, - 17, - 27, - 16, - 28, - 15, - 29, - 14, - 30, - 13, - 31, - 12, - 32, - 11, - 33, - 10, - 34, - 9, - 35, - 8, - 36, - 7, - 37, - 6, - 38, - 5, - 39, - 4, - 40, - 3, - 41, - 2, - 42, - 1, - 43, - 0, - 44, -}; - -static long _vq_lengthlist_res0_192_1024_7[] = { - 3, 4, 4, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 9, - 9, 9, 9,10,10,10,10,10,10,10,10,11,11,11,11,11, - 11,11,11,11,12,12,12,12,12,12,12,12,12, 5, 5, 5, - 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9,10,10,10,10, - 11,11,11,11,11,11,12,12,12,12,12,12,12,12,13,13, - 13,13,13,13,13,13,14,14,14,14, 4, 5, 5, 7, 7, 8, - 8, 8, 8, 9, 9, 9, 9, 9, 9,10,10,10,10,11,11,11, - 11,11,11,12,12,12,12,12,12,12,12,13,13,13,13,13, - 13,13,13,14,13,14,14, 6, 7, 7, 8, 8, 9, 9, 9, 9, - 10,10,10,11,11,11,11,11,12,12,12,12,12,12,13,13, - 13,13,13,13,13,13,14,14,14,14,14,14,14,14,14,14, - 15,15,15,15, 6, 7, 7, 8, 8, 9, 9, 9, 9,10,10,10, - 10,11,11,11,11,12,12,12,12,12,12,13,13,13,13,13, - 13,13,13,14,14,14,14,14,14,14,14,15,15,15,15,15, - 15, 7, 8, 8, 9, 9,10,10,10,10,11,11,11,11,11,11, - 12,12,12,12,13,13,13,13,13,13,14,14,14,14,14,14, - 15,14,15,15,15,15,15,15,16,15,16,16,16,16, 7, 8, - 8, 9, 9,10, 9,10,10,11,11,11,11,11,11,12,12,12, - 12,13,13,13,13,13,13,14,14,14,14,14,14,15,15,15, - 15,15,15,15,15,15,15,16,16,16,16, 8, 8, 8,10, 9, - 10,10,11,11,12,12,12,12,12,12,13,13,13,13,14,14, - 14,14,14,14,14,14,15,15,15,15,15,15,15,15,16,15, - 16,16,16,16,16,16,16,16, 8, 8, 8, 9,10,10,10,11, - 11,12,12,12,12,12,12,13,13,13,13,13,14,14,14,14, - 14,14,14,15,15,15,15,15,15,15,15,15,16,16,16,16, - 16,17,17,17,16, 8, 9, 9,10,10,11,11,12,12,12,12, - 13,13,13,13,13,13,14,14,14,14,14,14,15,15,15,15, - 15,15,15,16,16,16,16,16,16,16,16,16,16,17,17,17, - 17,17, 8, 9, 9,10,10,11,11,12,12,12,12,13,13,13, - 13,13,13,14,14,14,14,14,14,15,15,15,15,15,15,16, - 15,16,16,16,16,16,16,17,16,17,17,17,17,17,17, 9, - 10,10,11,11,11,11,12,12,13,13,13,13,13,13,14,14, - 14,14,15,14,15,15,15,15,15,15,16,15,16,16,16,16, - 16,16,17,17,17,16,17,17,17,17,18,17, 9,10,10,11, - 11,12,12,12,12,13,13,13,13,13,14,14,14,14,14,14, - 15,15,15,15,15,15,15,16,16,16,16,16,16,16,16,17, - 16,16,17,17,17,17,17,17,17, 9,10,10,11,11,12,12, - 12,12,13,13,13,13,14,14,14,14,15,15,15,15,15,15, - 15,16,16,16,16,16,16,16,16,17,17,17,17,17,18,17, - 17,17,17,17,17,17, 9,10,10,11,11,12,12,12,12,13, - 13,13,14,14,14,14,14,15,15,15,15,15,15,16,16,16, - 16,16,16,16,16,16,17,17,17,17,17,17,17,17,17,18, - 18,18,18, 9,10,10,11,11,12,12,13,13,13,13,14,14, - 14,14,15,15,15,15,15,15,16,16,16,16,16,17,16,16, - 17,16,17,17,17,17,17,17,18,18,18,17,18,18,18,18, - 9,10,10,11,11,12,12,13,13,13,13,14,14,14,15,15, - 15,15,15,15,15,16,16,16,16,16,16,17,16,17,17,17, - 17,17,17,17,18,17,18,18,18,18,18,18,18,10,11,11, - 12,12,13,13,13,13,14,14,14,14,15,15,15,15,15,15, - 16,16,16,16,16,16,16,16,17,17,17,17,17,17,17,18, - 18,17,18,18,18,18,18,18,18,19,10,11,11,12,12,13, - 13,13,13,14,14,14,14,15,15,15,15,16,15,16,16,16, - 16,16,16,17,17,17,17,17,17,17,17,18,17,18,17,18, - 18,18,18,18,18,18,18,10,11,11,12,12,13,13,14,14, - 15,14,15,15,15,15,15,16,16,16,16,16,16,16,17,16, - 17,17,17,17,17,17,18,17,17,18,18,18,18,18,19,19, - 18,19,19,19,10,11,11,12,12,13,13,14,14,14,14,15, - 15,15,15,15,15,16,16,16,16,16,16,17,17,17,17,17, - 17,17,17,17,17,18,18,17,18,18,18,18,18,18,18,19, - 18,10,11,11,13,13,14,14,14,14,15,15,15,15,15,15, - 16,16,17,16,16,17,17,17,17,17,17,17,18,17,18,17, - 18,18,18,18,18,18,18,18,19,19,18,18,19,19,10,12, - 11,13,13,14,13,14,14,15,15,15,15,16,16,16,16,16, - 16,16,17,16,16,17,17,17,17,18,17,17,18,17,18,18, - 18,18,18,18,19,19,18,19,19,19,18,11,12,12,13,13, - 14,14,15,14,15,15,16,15,16,16,16,16,17,17,17,17, - 17,17,17,18,17,17,18,18,18,18,18,18,19,18,19,20, - 18,18,18,19,19,19,19,19,11,12,12,13,13,14,14,15, - 15,15,15,15,15,16,16,16,16,17,17,17,17,17,17,17, - 17,18,17,17,17,18,18,18,18,17,18,18,18,19,19,19, - 19,19,19,19,19,11,12,12,14,13,14,14,15,15,15,15, - 16,16,16,16,17,17,17,17,17,17,17,18,17,18,17,18, - 18,18,18,18,19,18,19,19,19,18,18,19,19,19,19,19, - 19,19,11,12,12,13,13,14,14,15,15,15,15,16,16,16, - 16,17,17,17,17,17,17,17,17,17,18,18,17,18,18,19, - 18,18,19,19,18,19,19,19,19,19,19,19,19,19,19,11, - 12,12,14,14,14,15,15,15,16,15,16,17,16,17,16,17, - 17,17,17,17,17,17,18,18,17,18,18,18,19,18,19,19, - 19,18,20,19,18,18,19,19,21,19,20,19,11,13,12,14, - 14,15,14,16,15,16,16,16,16,17,16,17,17,17,17,17, - 17,17,18,18,18,18,18,18,18,19,19,19,18,19,19,19, - 18,20,19,19,18,19,19,19,20,12,13,13,14,14,15,15, - 16,16,16,16,16,16,16,17,17,18,17,17,18,18,17,18, - 18,18,18,18,19,18,18,19,19,18,19,19,19,19,19,19, - 19,20,20,21,20,20,12,13,13,14,14,15,15,15,16,16, - 16,16,16,17,17,17,17,17,17,18,18,18,18,18,18,18, - 17,19,18,18,19,19,19,19,19,19,19,19,19,19,20,19, - 19,21,21,12,13,13,14,14,15,15,16,16,17,16,16,17, - 17,17,18,17,18,18,17,18,19,18,18,19,19,19,18,18, - 19,19,19,19,19,18,20,19,19,20,20,20,19,19,19,19, - 12,13,13,14,14,15,15,16,16,16,17,16,17,17,17,18, - 17,18,17,18,18,18,18,18,18,18,18,18,18,18,19,18, - 19,19,19,19,19,20,21,19,19,20,19,19,21,12,13,13, - 15,15,15,16,16,16,17,17,17,17,17,17,18,17,18,18, - 18,19,18,18,19,18,19,19,19,18,18,19,19,19,19,20, - 21,20,20,20,21,19,20,20,20,21,12,13,13,15,15,16, - 15,16,16,17,17,17,17,17,17,18,18,18,18,19,18,18, - 19,19,18,19,18,19,18,19,19,19,20,20,19,19,21,19, - 21,20,19,19,20,20,20,12,14,14,15,15,16,16,16,16, - 17,17,17,17,17,18,18,18,18,18,18,19,19,18,18,19, - 19,19,19,19,19,19,19,20,19,19,19,19,19,20,19,19, - 21,20,20,19,12,14,14,15,15,16,16,17,16,17,17,17, - 17,18,18,17,17,18,18,19,18,19,18,18,19,19,19,18, - 19,20,19,19,19,19,19,21,19,20,20,20,20,20,19,21, - 21,13,14,14,15,15,16,16,17,17,17,17,18,18,18,18, - 18,18,19,19,19,19,18,19,19,19,19,20,19,19,20,19, - 19,20,20,20,19,19,20,19,20,20,20,19,20,21,13,14, - 14,15,15,16,16,17,17,17,18,18,18,18,18,18,18,18, - 18,19,18,19,19,19,20,19,18,19,19,20,20,20,19,20, - 20,19,19,20,19,21,21,21,22,20,21,13,14,14,15,15, - 16,16,17,17,18,17,18,18,18,18,19,18,19,18,19,18, - 19,19,20,19,19,19,19,19,20,20,19,19,19,19,22,20, - 19,20,21,20,21,20,20,20,13,14,14,15,15,16,16,17, - 17,17,17,18,18,19,18,18,18,18,18,19,18,19,18,19, - 19,19,19,20,20,20,19,20,20,20,20,20,20,21,22,21, - 20,19,20,21,22,13,14,14,15,16,17,16,17,17,17,18, - 18,19,18,18,19,19,18,19,20,20,20,19,19,19,19,20, - 21,20,20,20,21,19,21,21,21,21,20,20,21,21,20,22, - 20,20,13,14,14,16,16,17,17,17,17,17,17,19,18,18, - 18,19,19,19,19,19,19,19,19,20,19,20,20,20,20,19, - 19,19,19,20,20,20,20,20,19,20,20,21,21,21,22,13, - 15,15,16,16,17,17,17,17,18,18,18,19,20,18,19,19, - 19,20,19,19,19,19,19,20,19,21,20,21,20,20,21,20, - 19,20,21,20,21,21,20,21,20,20,21,21,13,15,15,16, - 16,17,17,18,17,18,19,18,18,19,18,19,19,19,19,18, - 20,20,19,20,20,20,20,20,21,19,19,19,20,20,20,20, - 20,20,19,20,20,21,21,21,19, -}; - -static float _vq_quantthresh_res0_192_1024_7[] = { - -21.5, -20.5, -19.5, -18.5, -17.5, -16.5, -15.5, -14.5, - -13.5, -12.5, -11.5, -10.5, -9.5, -8.5, -7.5, -6.5, - -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, - 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, - 10.5, 11.5, 12.5, 13.5, 14.5, 15.5, 16.5, 17.5, - 18.5, 19.5, 20.5, 21.5, -}; - -static long _vq_quantmap_res0_192_1024_7[] = { - 43, 41, 39, 37, 35, 33, 31, 29, - 27, 25, 23, 21, 19, 17, 15, 13, - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, 14, 16, 18, - 20, 22, 24, 26, 28, 30, 32, 34, - 36, 38, 40, 42, 44, -}; - -static encode_aux_threshmatch _vq_auxt_res0_192_1024_7 = { - _vq_quantthresh_res0_192_1024_7, - _vq_quantmap_res0_192_1024_7, - 45, - 45 -}; - -static static_codebook _vq_book_res0_192_1024_7 = { - 2, 2025, - _vq_lengthlist_res0_192_1024_7, - 1, -527040512, 1611661312, 6, 0, - _vq_quantlist_res0_192_1024_7, - NULL, - &_vq_auxt_res0_192_1024_7, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_192_1024_8.vqh b/lib/books/res0_192_1024_8.vqh deleted file mode 100644 index 968804b7..00000000 --- a/lib/books/res0_192_1024_8.vqh +++ /dev/null @@ -1,160 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_192_1024_8_VQH_ -#define _V_res0_192_1024_8_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_192_1024_8[] = { - 40, - 39, - 41, - 38, - 42, - 37, - 43, - 36, - 44, - 35, - 45, - 34, - 46, - 33, - 47, - 32, - 48, - 31, - 49, - 30, - 50, - 29, - 51, - 28, - 52, - 27, - 53, - 26, - 54, - 25, - 55, - 24, - 56, - 23, - 57, - 22, - 58, - 21, - 59, - 20, - 60, - 19, - 61, - 18, - 62, - 17, - 63, - 16, - 64, - 15, - 65, - 14, - 66, - 13, - 67, - 12, - 68, - 11, - 69, - 10, - 70, - 9, - 71, - 8, - 72, - 7, - 73, - 6, - 74, - 5, - 75, - 4, - 76, - 3, - 77, - 2, - 78, - 1, - 79, - 0, - 80, -}; - -static long _vq_lengthlist_res0_192_1024_8[] = { - 2, 3, 3, 4, 4, 5, 5, 5, 6, 6, 6, 6, 6, 6, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 9, 8, 9, 9, 9, 9, 9, 9, 9, 9, 8, 8, 9, - 8, 9, 9, 9, 9, 9, 9, 9, 9,10, 9,10,10,10,10,10, - 10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11, - 11, -}; - -static float _vq_quantthresh_res0_192_1024_8[] = { - -39.5, -38.5, -37.5, -36.5, -35.5, -34.5, -33.5, -32.5, - -31.5, -30.5, -29.5, -28.5, -27.5, -26.5, -25.5, -24.5, - -23.5, -22.5, -21.5, -20.5, -19.5, -18.5, -17.5, -16.5, - -15.5, -14.5, -13.5, -12.5, -11.5, -10.5, -9.5, -8.5, - -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, - 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, - 8.5, 9.5, 10.5, 11.5, 12.5, 13.5, 14.5, 15.5, - 16.5, 17.5, 18.5, 19.5, 20.5, 21.5, 22.5, 23.5, - 24.5, 25.5, 26.5, 27.5, 28.5, 29.5, 30.5, 31.5, - 32.5, 33.5, 34.5, 35.5, 36.5, 37.5, 38.5, 39.5, -}; - -static long _vq_quantmap_res0_192_1024_8[] = { - 79, 77, 75, 73, 71, 69, 67, 65, - 63, 61, 59, 57, 55, 53, 51, 49, - 47, 45, 43, 41, 39, 37, 35, 33, - 31, 29, 27, 25, 23, 21, 19, 17, - 15, 13, 11, 9, 7, 5, 3, 1, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, 18, 20, 22, 24, 26, 28, 30, - 32, 34, 36, 38, 40, 42, 44, 46, - 48, 50, 52, 54, 56, 58, 60, 62, - 64, 66, 68, 70, 72, 74, 76, 78, - 80, -}; - -static encode_aux_threshmatch _vq_auxt_res0_192_1024_8 = { - _vq_quantthresh_res0_192_1024_8, - _vq_quantmap_res0_192_1024_8, - 81, - 81 -}; - -static static_codebook _vq_book_res0_192_1024_8 = { - 1, 81, - _vq_lengthlist_res0_192_1024_8, - 1, -525074432, 1611661312, 7, 0, - _vq_quantlist_res0_192_1024_8, - NULL, - &_vq_auxt_res0_192_1024_8, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_192_1024_9.vqh b/lib/books/res0_192_1024_9.vqh deleted file mode 100644 index 28101f63..00000000 --- a/lib/books/res0_192_1024_9.vqh +++ /dev/null @@ -1,790 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_192_1024_9_VQH_ -#define _V_res0_192_1024_9_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_192_1024_9[] = { - 280, - 279, - 281, - 278, - 282, - 277, - 283, - 276, - 284, - 275, - 285, - 274, - 286, - 273, - 287, - 272, - 288, - 271, - 289, - 270, - 290, - 269, - 291, - 268, - 292, - 267, - 293, - 266, - 294, - 265, - 295, - 264, - 296, - 263, - 297, - 262, - 298, - 261, - 299, - 260, - 300, - 259, - 301, - 258, - 302, - 257, - 303, - 256, - 304, - 255, - 305, - 254, - 306, - 253, - 307, - 252, - 308, - 251, - 309, - 250, - 310, - 249, - 311, - 248, - 312, - 247, - 313, - 246, - 314, - 245, - 315, - 244, - 316, - 243, - 317, - 242, - 318, - 241, - 319, - 240, - 320, - 239, - 321, - 238, - 322, - 237, - 323, - 236, - 324, - 235, - 325, - 234, - 326, - 233, - 327, - 232, - 328, - 231, - 329, - 230, - 330, - 229, - 331, - 228, - 332, - 227, - 333, - 226, - 334, - 225, - 335, - 224, - 336, - 223, - 337, - 222, - 338, - 221, - 339, - 220, - 340, - 219, - 341, - 218, - 342, - 217, - 343, - 216, - 344, - 215, - 345, - 214, - 346, - 213, - 347, - 212, - 348, - 211, - 349, - 210, - 350, - 209, - 351, - 208, - 352, - 207, - 353, - 206, - 354, - 205, - 355, - 204, - 356, - 203, - 357, - 202, - 358, - 201, - 359, - 200, - 360, - 199, - 361, - 198, - 362, - 197, - 363, - 196, - 364, - 195, - 365, - 194, - 366, - 193, - 367, - 192, - 368, - 191, - 369, - 190, - 370, - 189, - 371, - 188, - 372, - 187, - 373, - 186, - 374, - 185, - 375, - 184, - 376, - 183, - 377, - 182, - 378, - 181, - 379, - 180, - 380, - 179, - 381, - 178, - 382, - 177, - 383, - 176, - 384, - 175, - 385, - 174, - 386, - 173, - 387, - 172, - 388, - 171, - 389, - 170, - 390, - 169, - 391, - 168, - 392, - 167, - 393, - 166, - 394, - 165, - 395, - 164, - 396, - 163, - 397, - 162, - 398, - 161, - 399, - 160, - 400, - 159, - 401, - 158, - 402, - 157, - 403, - 156, - 404, - 155, - 405, - 154, - 406, - 153, - 407, - 152, - 408, - 151, - 409, - 150, - 410, - 149, - 411, - 148, - 412, - 147, - 413, - 146, - 414, - 145, - 415, - 144, - 416, - 143, - 417, - 142, - 418, - 141, - 419, - 140, - 420, - 139, - 421, - 138, - 422, - 137, - 423, - 136, - 424, - 135, - 425, - 134, - 426, - 133, - 427, - 132, - 428, - 131, - 429, - 130, - 430, - 129, - 431, - 128, - 432, - 127, - 433, - 126, - 434, - 125, - 435, - 124, - 436, - 123, - 437, - 122, - 438, - 121, - 439, - 120, - 440, - 119, - 441, - 118, - 442, - 117, - 443, - 116, - 444, - 115, - 445, - 114, - 446, - 113, - 447, - 112, - 448, - 111, - 449, - 110, - 450, - 109, - 451, - 108, - 452, - 107, - 453, - 106, - 454, - 105, - 455, - 104, - 456, - 103, - 457, - 102, - 458, - 101, - 459, - 100, - 460, - 99, - 461, - 98, - 462, - 97, - 463, - 96, - 464, - 95, - 465, - 94, - 466, - 93, - 467, - 92, - 468, - 91, - 469, - 90, - 470, - 89, - 471, - 88, - 472, - 87, - 473, - 86, - 474, - 85, - 475, - 84, - 476, - 83, - 477, - 82, - 478, - 81, - 479, - 80, - 480, - 79, - 481, - 78, - 482, - 77, - 483, - 76, - 484, - 75, - 485, - 74, - 486, - 73, - 487, - 72, - 488, - 71, - 489, - 70, - 490, - 69, - 491, - 68, - 492, - 67, - 493, - 66, - 494, - 65, - 495, - 64, - 496, - 63, - 497, - 62, - 498, - 61, - 499, - 60, - 500, - 59, - 501, - 58, - 502, - 57, - 503, - 56, - 504, - 55, - 505, - 54, - 506, - 53, - 507, - 52, - 508, - 51, - 509, - 50, - 510, - 49, - 511, - 48, - 512, - 47, - 513, - 46, - 514, - 45, - 515, - 44, - 516, - 43, - 517, - 42, - 518, - 41, - 519, - 40, - 520, - 39, - 521, - 38, - 522, - 37, - 523, - 36, - 524, - 35, - 525, - 34, - 526, - 33, - 527, - 32, - 528, - 31, - 529, - 30, - 530, - 29, - 531, - 28, - 532, - 27, - 533, - 26, - 534, - 25, - 535, - 24, - 536, - 23, - 537, - 22, - 538, - 21, - 539, - 20, - 540, - 19, - 541, - 18, - 542, - 17, - 543, - 16, - 544, - 15, - 545, - 14, - 546, - 13, - 547, - 12, - 548, - 11, - 549, - 10, - 550, - 9, - 551, - 8, - 552, - 7, - 553, - 6, - 554, - 5, - 555, - 4, - 556, - 3, - 557, - 2, - 558, - 1, - 559, - 0, - 560, -}; - -static long _vq_lengthlist_res0_192_1024_9[] = { - 3, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9,10,10,10,10,10,10,10,10,10,10,10, - 10, 9, 9,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,13,13,13,12,13,12,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,14,13,13,14,14,14,14,14,14,14, - 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, - 14,14,14,14,14,14,14,14,15,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, - 15,15,15,15,16,15,16,15,16,15,16,16,15,16,15,16, - 16,15,16,16,16,16,16,15,16,16,16,16,16,17,16,16, - 16,17,16,16,15,17,17,16,17,16,16,16,17,16,17,17, - 16,17,16,16,16,16,18,16,17,17,17,16,16,17,17,17, - 17,17,17,16,17,18,17,18,17,17,18,18,17,17,17,17, - 17,18,18,17,17,18,17,17,18,18,19,17,18,17,18,18, - 18,18,18,18,18,18,18,18,18,19,18,18,18,18,18,19, - 18,20,18,19,19,18,18,19,19,18,19,19,18,20,19,19, - 19,18,19,19,18,19,18,20,19,20,20,18,19,18,20,20, - 19,19,18,20,19,19,20,20,19,20,19,20,20,19,18,19, - 19,19,20,19,18,20,20,18,19,18,19,19,20,20,20,19, - 19,20,20,19,19,19,20,20,20,20,19,19,20,20,20,20, - 19,20,20,20,19,20,19,20,20,19,19,19,20,19,20,19, - 20,20,20,20,19,20,19,20,20,20,20,20,20,20,20,20, - 20,19,20,20,20,19,20,20,20,20,20,20,20,19,20,19, - 20,20,20,20,20,20,20,20,19,20,19,20,20,20,20,20, - 20,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20, - 20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20, - 20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20, - 20,20,20,20,20,20,20,20,19,20,20,20,20,20,20,20, - 20, -}; - -static float _vq_quantthresh_res0_192_1024_9[] = { - -279.5, -278.5, -277.5, -276.5, -275.5, -274.5, -273.5, -272.5, - -271.5, -270.5, -269.5, -268.5, -267.5, -266.5, -265.5, -264.5, - -263.5, -262.5, -261.5, -260.5, -259.5, -258.5, -257.5, -256.5, - -255.5, -254.5, -253.5, -252.5, -251.5, -250.5, -249.5, -248.5, - -247.5, -246.5, -245.5, -244.5, -243.5, -242.5, -241.5, -240.5, - -239.5, -238.5, -237.5, -236.5, -235.5, -234.5, -233.5, -232.5, - -231.5, -230.5, -229.5, -228.5, -227.5, -226.5, -225.5, -224.5, - -223.5, -222.5, -221.5, -220.5, -219.5, -218.5, -217.5, -216.5, - -215.5, -214.5, -213.5, -212.5, -211.5, -210.5, -209.5, -208.5, - -207.5, -206.5, -205.5, -204.5, -203.5, -202.5, -201.5, -200.5, - -199.5, -198.5, -197.5, -196.5, -195.5, -194.5, -193.5, -192.5, - -191.5, -190.5, -189.5, -188.5, -187.5, -186.5, -185.5, -184.5, - -183.5, -182.5, -181.5, -180.5, -179.5, -178.5, -177.5, -176.5, - -175.5, -174.5, -173.5, -172.5, -171.5, -170.5, -169.5, -168.5, - -167.5, -166.5, -165.5, -164.5, -163.5, -162.5, -161.5, -160.5, - -159.5, -158.5, -157.5, -156.5, -155.5, -154.5, -153.5, -152.5, - -151.5, -150.5, -149.5, -148.5, -147.5, -146.5, -145.5, -144.5, - -143.5, -142.5, -141.5, -140.5, -139.5, -138.5, -137.5, -136.5, - -135.5, -134.5, -133.5, -132.5, -131.5, -130.5, -129.5, -128.5, - -127.5, -126.5, -125.5, -124.5, -123.5, -122.5, -121.5, -120.5, - -119.5, -118.5, -117.5, -116.5, -115.5, -114.5, -113.5, -112.5, - -111.5, -110.5, -109.5, -108.5, -107.5, -106.5, -105.5, -104.5, - -103.5, -102.5, -101.5, -100.5, -99.5, -98.5, -97.5, -96.5, - -95.5, -94.5, -93.5, -92.5, -91.5, -90.5, -89.5, -88.5, - -87.5, -86.5, -85.5, -84.5, -83.5, -82.5, -81.5, -80.5, - -79.5, -78.5, -77.5, -76.5, -75.5, -74.5, -73.5, -72.5, - -71.5, -70.5, -69.5, -68.5, -67.5, -66.5, -65.5, -64.5, - -63.5, -62.5, -61.5, -60.5, -59.5, -58.5, -57.5, -56.5, - -55.5, -54.5, -53.5, -52.5, -51.5, -50.5, -49.5, -48.5, - -47.5, -46.5, -45.5, -44.5, -43.5, -42.5, -41.5, -40.5, - -39.5, -38.5, -37.5, -36.5, -35.5, -34.5, -33.5, -32.5, - -31.5, -30.5, -29.5, -28.5, -27.5, -26.5, -25.5, -24.5, - -23.5, -22.5, -21.5, -20.5, -19.5, -18.5, -17.5, -16.5, - -15.5, -14.5, -13.5, -12.5, -11.5, -10.5, -9.5, -8.5, - -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, - 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, - 8.5, 9.5, 10.5, 11.5, 12.5, 13.5, 14.5, 15.5, - 16.5, 17.5, 18.5, 19.5, 20.5, 21.5, 22.5, 23.5, - 24.5, 25.5, 26.5, 27.5, 28.5, 29.5, 30.5, 31.5, - 32.5, 33.5, 34.5, 35.5, 36.5, 37.5, 38.5, 39.5, - 40.5, 41.5, 42.5, 43.5, 44.5, 45.5, 46.5, 47.5, - 48.5, 49.5, 50.5, 51.5, 52.5, 53.5, 54.5, 55.5, - 56.5, 57.5, 58.5, 59.5, 60.5, 61.5, 62.5, 63.5, - 64.5, 65.5, 66.5, 67.5, 68.5, 69.5, 70.5, 71.5, - 72.5, 73.5, 74.5, 75.5, 76.5, 77.5, 78.5, 79.5, - 80.5, 81.5, 82.5, 83.5, 84.5, 85.5, 86.5, 87.5, - 88.5, 89.5, 90.5, 91.5, 92.5, 93.5, 94.5, 95.5, - 96.5, 97.5, 98.5, 99.5, 100.5, 101.5, 102.5, 103.5, - 104.5, 105.5, 106.5, 107.5, 108.5, 109.5, 110.5, 111.5, - 112.5, 113.5, 114.5, 115.5, 116.5, 117.5, 118.5, 119.5, - 120.5, 121.5, 122.5, 123.5, 124.5, 125.5, 126.5, 127.5, - 128.5, 129.5, 130.5, 131.5, 132.5, 133.5, 134.5, 135.5, - 136.5, 137.5, 138.5, 139.5, 140.5, 141.5, 142.5, 143.5, - 144.5, 145.5, 146.5, 147.5, 148.5, 149.5, 150.5, 151.5, - 152.5, 153.5, 154.5, 155.5, 156.5, 157.5, 158.5, 159.5, - 160.5, 161.5, 162.5, 163.5, 164.5, 165.5, 166.5, 167.5, - 168.5, 169.5, 170.5, 171.5, 172.5, 173.5, 174.5, 175.5, - 176.5, 177.5, 178.5, 179.5, 180.5, 181.5, 182.5, 183.5, - 184.5, 185.5, 186.5, 187.5, 188.5, 189.5, 190.5, 191.5, - 192.5, 193.5, 194.5, 195.5, 196.5, 197.5, 198.5, 199.5, - 200.5, 201.5, 202.5, 203.5, 204.5, 205.5, 206.5, 207.5, - 208.5, 209.5, 210.5, 211.5, 212.5, 213.5, 214.5, 215.5, - 216.5, 217.5, 218.5, 219.5, 220.5, 221.5, 222.5, 223.5, - 224.5, 225.5, 226.5, 227.5, 228.5, 229.5, 230.5, 231.5, - 232.5, 233.5, 234.5, 235.5, 236.5, 237.5, 238.5, 239.5, - 240.5, 241.5, 242.5, 243.5, 244.5, 245.5, 246.5, 247.5, - 248.5, 249.5, 250.5, 251.5, 252.5, 253.5, 254.5, 255.5, - 256.5, 257.5, 258.5, 259.5, 260.5, 261.5, 262.5, 263.5, - 264.5, 265.5, 266.5, 267.5, 268.5, 269.5, 270.5, 271.5, - 272.5, 273.5, 274.5, 275.5, 276.5, 277.5, 278.5, 279.5, -}; - -static long _vq_quantmap_res0_192_1024_9[] = { - 559, 557, 555, 553, 551, 549, 547, 545, - 543, 541, 539, 537, 535, 533, 531, 529, - 527, 525, 523, 521, 519, 517, 515, 513, - 511, 509, 507, 505, 503, 501, 499, 497, - 495, 493, 491, 489, 487, 485, 483, 481, - 479, 477, 475, 473, 471, 469, 467, 465, - 463, 461, 459, 457, 455, 453, 451, 449, - 447, 445, 443, 441, 439, 437, 435, 433, - 431, 429, 427, 425, 423, 421, 419, 417, - 415, 413, 411, 409, 407, 405, 403, 401, - 399, 397, 395, 393, 391, 389, 387, 385, - 383, 381, 379, 377, 375, 373, 371, 369, - 367, 365, 363, 361, 359, 357, 355, 353, - 351, 349, 347, 345, 343, 341, 339, 337, - 335, 333, 331, 329, 327, 325, 323, 321, - 319, 317, 315, 313, 311, 309, 307, 305, - 303, 301, 299, 297, 295, 293, 291, 289, - 287, 285, 283, 281, 279, 277, 275, 273, - 271, 269, 267, 265, 263, 261, 259, 257, - 255, 253, 251, 249, 247, 245, 243, 241, - 239, 237, 235, 233, 231, 229, 227, 225, - 223, 221, 219, 217, 215, 213, 211, 209, - 207, 205, 203, 201, 199, 197, 195, 193, - 191, 189, 187, 185, 183, 181, 179, 177, - 175, 173, 171, 169, 167, 165, 163, 161, - 159, 157, 155, 153, 151, 149, 147, 145, - 143, 141, 139, 137, 135, 133, 131, 129, - 127, 125, 123, 121, 119, 117, 115, 113, - 111, 109, 107, 105, 103, 101, 99, 97, - 95, 93, 91, 89, 87, 85, 83, 81, - 79, 77, 75, 73, 71, 69, 67, 65, - 63, 61, 59, 57, 55, 53, 51, 49, - 47, 45, 43, 41, 39, 37, 35, 33, - 31, 29, 27, 25, 23, 21, 19, 17, - 15, 13, 11, 9, 7, 5, 3, 1, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, 18, 20, 22, 24, 26, 28, 30, - 32, 34, 36, 38, 40, 42, 44, 46, - 48, 50, 52, 54, 56, 58, 60, 62, - 64, 66, 68, 70, 72, 74, 76, 78, - 80, 82, 84, 86, 88, 90, 92, 94, - 96, 98, 100, 102, 104, 106, 108, 110, - 112, 114, 116, 118, 120, 122, 124, 126, - 128, 130, 132, 134, 136, 138, 140, 142, - 144, 146, 148, 150, 152, 154, 156, 158, - 160, 162, 164, 166, 168, 170, 172, 174, - 176, 178, 180, 182, 184, 186, 188, 190, - 192, 194, 196, 198, 200, 202, 204, 206, - 208, 210, 212, 214, 216, 218, 220, 222, - 224, 226, 228, 230, 232, 234, 236, 238, - 240, 242, 244, 246, 248, 250, 252, 254, - 256, 258, 260, 262, 264, 266, 268, 270, - 272, 274, 276, 278, 280, 282, 284, 286, - 288, 290, 292, 294, 296, 298, 300, 302, - 304, 306, 308, 310, 312, 314, 316, 318, - 320, 322, 324, 326, 328, 330, 332, 334, - 336, 338, 340, 342, 344, 346, 348, 350, - 352, 354, 356, 358, 360, 362, 364, 366, - 368, 370, 372, 374, 376, 378, 380, 382, - 384, 386, 388, 390, 392, 394, 396, 398, - 400, 402, 404, 406, 408, 410, 412, 414, - 416, 418, 420, 422, 424, 426, 428, 430, - 432, 434, 436, 438, 440, 442, 444, 446, - 448, 450, 452, 454, 456, 458, 460, 462, - 464, 466, 468, 470, 472, 474, 476, 478, - 480, 482, 484, 486, 488, 490, 492, 494, - 496, 498, 500, 502, 504, 506, 508, 510, - 512, 514, 516, 518, 520, 522, 524, 526, - 528, 530, 532, 534, 536, 538, 540, 542, - 544, 546, 548, 550, 552, 554, 556, 558, - 560, -}; - -static encode_aux_threshmatch _vq_auxt_res0_192_1024_9 = { - _vq_quantthresh_res0_192_1024_9, - _vq_quantmap_res0_192_1024_9, - 561, - 561 -}; - -static static_codebook _vq_book_res0_192_1024_9 = { - 1, 561, - _vq_lengthlist_res0_192_1024_9, - 1, -518946816, 1611661312, 10, 0, - _vq_quantlist_res0_192_1024_9, - NULL, - &_vq_auxt_res0_192_1024_9, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_192_1024aux.vqh b/lib/books/res0_192_1024aux.vqh deleted file mode 100644 index 5f4c88e5..00000000 --- a/lib/books/res0_192_1024aux.vqh +++ /dev/null @@ -1,43 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - * * - ******************************************************************** - - function: static codebook autogenerated by huff/huffbuld - - ********************************************************************/ - -#ifndef _V_res0_192_1024aux_VQH_ -#define _V_res0_192_1024aux_VQH_ -#include "codebook.h" - -static long _huff_lengthlist_res0_192_1024aux[] = { - 3, 7,12,11,17,10,15,11,15,21, 5, 5, 8, 8,11, 9, - 10,10,13,21, 9, 6, 6, 7, 8, 8, 8,11,15,21, 9, 6, - 6, 6, 6, 6, 6, 9,13,19,14,10, 7, 6, 5, 5, 5,10, - 16,21,10, 8, 7, 6, 5, 5, 5, 7,12,19,14, 9, 7, 6, - 5, 5, 4, 6,11,19, 9, 9, 9, 8, 8, 6, 5, 4, 7,13, - 11,11,13,11,12, 9, 7, 5, 7,13,12,12,13,11,13,10, - 8, 5, 8,13, -}; - -static static_codebook _huff_book_res0_192_1024aux = { - 2, 100, - _huff_lengthlist_res0_192_1024aux, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_192_128_1.vqh b/lib/books/res0_192_128_1.vqh deleted file mode 100644 index 075b97f8..00000000 --- a/lib/books/res0_192_128_1.vqh +++ /dev/null @@ -1,63 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_192_128_1_VQH_ -#define _V_res0_192_128_1_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_192_128_1[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist_res0_192_128_1[] = { - 2, 4, 4, 5, 6, 6, 5, 6, 6, 5, 7, 6, 7, 7, 8, 6, - 7, 8, 5, 6, 7, 6, 8, 7, 6, 8, 7, 5, 7, 7, 7, 8, - 8, 7, 8, 8, 7, 8, 8, 8, 8, 9, 8, 9, 9, 7, 8, 8, - 8, 9, 8, 8, 9, 9, 5, 7, 7, 7, 8, 8, 7, 8, 8, 7, - 8, 8, 8, 9, 9, 8, 8, 9, 7, 8, 8, 8, 9, 9, 8, 9, - 8, -}; - -static float _vq_quantthresh_res0_192_128_1[] = { - -0.5, 0.5, -}; - -static long _vq_quantmap_res0_192_128_1[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt_res0_192_128_1 = { - _vq_quantthresh_res0_192_128_1, - _vq_quantmap_res0_192_128_1, - 3, - 3 -}; - -static static_codebook _vq_book_res0_192_128_1 = { - 4, 81, - _vq_lengthlist_res0_192_128_1, - 1, -535822336, 1611661312, 2, 0, - _vq_quantlist_res0_192_128_1, - NULL, - &_vq_auxt_res0_192_128_1, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_192_128_2.vqh b/lib/books/res0_192_128_2.vqh deleted file mode 100644 index 0665fe15..00000000 --- a/lib/books/res0_192_128_2.vqh +++ /dev/null @@ -1,65 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_192_128_2_VQH_ -#define _V_res0_192_128_2_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_192_128_2[] = { - 3, - 2, - 4, - 1, - 5, - 0, - 6, -}; - -static long _vq_lengthlist_res0_192_128_2[] = { - 3, 3, 3, 5, 5, 8, 8, 4, 4, 4, 6, 6, 9, 9, 4, 4, - 4, 6, 6, 9, 9, 6, 7, 6, 9, 9,12,12, 5, 7, 7, 9, - 9,12,12, 8,10, 9,12,12,15,15, 8,10, 9,12,13,15, - 15, -}; - -static float _vq_quantthresh_res0_192_128_2[] = { - -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, -}; - -static long _vq_quantmap_res0_192_128_2[] = { - 5, 3, 1, 0, 2, 4, 6, -}; - -static encode_aux_threshmatch _vq_auxt_res0_192_128_2 = { - _vq_quantthresh_res0_192_128_2, - _vq_quantmap_res0_192_128_2, - 7, - 7 -}; - -static static_codebook _vq_book_res0_192_128_2 = { - 2, 49, - _vq_lengthlist_res0_192_128_2, - 1, -533200896, 1611661312, 3, 0, - _vq_quantlist_res0_192_128_2, - NULL, - &_vq_auxt_res0_192_128_2, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_192_128_3.vqh b/lib/books/res0_192_128_3.vqh deleted file mode 100644 index 2bd3c4e3..00000000 --- a/lib/books/res0_192_128_3.vqh +++ /dev/null @@ -1,265 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_192_128_3_VQH_ -#define _V_res0_192_128_3_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_192_128_3[] = { - 24, - 23, - 25, - 22, - 26, - 21, - 27, - 20, - 28, - 19, - 29, - 18, - 30, - 17, - 31, - 16, - 32, - 15, - 33, - 14, - 34, - 13, - 35, - 12, - 36, - 11, - 37, - 10, - 38, - 9, - 39, - 8, - 40, - 7, - 41, - 6, - 42, - 5, - 43, - 4, - 44, - 3, - 45, - 2, - 46, - 1, - 47, - 0, - 48, -}; - -static long _vq_lengthlist_res0_192_128_3[] = { - 4, 4, 4, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 9, - 9, 9, 9, 9, 9, 9,10,10,10,10,10,10,10,10,10,11, - 10,11,11,11,11,12,11,12,11,12,12,13,12,13,12,13, - 12, 5, 5, 5, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10,10,10,10,10, - 11,10,11,10,11,10,11,11,12,12,12,12,12,12,13,12, - 13,13, 5, 5, 5, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9, - 9, 9, 9, 9, 9, 9, 9, 9,10, 9,10,10,10,10,10,10, - 10,11,10,11,10,11,11,11,11,12,11,12,12,12,12,13, - 12,13,13, 7, 7, 7, 8, 8, 8, 9, 9, 9, 9, 9,10,10, - 10,10,10,10,10,11,10,11,10,11,11,11,11,11,11,11, - 11,11,11,11,12,11,12,11,13,12,13,12,14,13,14,13, - 14,13,14,14, 6, 7, 7, 8, 8, 9, 8, 9, 9, 9, 9,10, - 10,10,10,10,10,10,10,10,11,10,11,11,11,11,11,11, - 11,11,11,12,11,12,11,12,12,13,12,13,12,13,13,13, - 13,14,13,15,14, 8, 8, 8, 9, 9,10,10,10,10,11,11, - 11,11,11,11,11,12,11,12,11,12,12,12,11,12,12,12, - 12,12,12,12,13,12,13,12,14,13,13,13,15,13,14,13, - 15,14,15,14,15,15, 8, 8, 8, 9, 9,10,10,11,10,10, - 11,11,11,11,11,11,11,12,12,11,12,12,12,12,12,12, - 12,12,12,12,12,12,12,13,12,13,13,13,13,14,13,14, - 14,14,14,15,15,15,15, 8, 9, 9,10,10,11,11,11,11, - 12,12,12,12,12,12,12,12,12,13,12,13,12,13,12,13, - 12,12,13,12,13,13,13,13,14,14,15,14,14,14,15,14, - 14,15,14,14,16,15,15,16, 8, 9, 9,10,10,11,11,11, - 12,12,12,12,12,12,13,12,13,12,12,12,13,12,12,12, - 13,13,13,13,12,13,13,13,13,14,13,14,13,15,14,15, - 14,16,15,16,15,16,15,15,15, 9,10,10,11,11,12,12, - 12,13,12,13,13,13,13,13,13,14,12,14,13,14,13,14, - 14,13,13,13,14,14,13,14,13,14,14,13,15,14,15,14, - 16,15,15,15,16,15,16,15,16,16, 9,10,10,11,11,12, - 12,12,12,12,12,13,13,13,13,14,13,13,13,13,13,13, - 13,13,13,14,14,14,14,14,14,14,14,15,14,15,14,15, - 14,15,15,16,15,16,15,16,16,16,16,10,11,11,12,12, - 13,13,13,13,13,14,14,13,14,14,14,14,14,14,14,14, - 14,14,14,14,14,14,14,14,15,14,15,15,15,14,15,15, - 16,15,17,15,16,16,17,16,17,16,16,17,10,11,11,12, - 12,13,13,13,13,13,13,14,13,13,13,14,14,13,14,14, - 14,14,14,14,14,14,14,14,14,14,14,14,15,15,14,16, - 14,16,15,15,15,17,15,17,15,17,16,17,17,11,12,11, - 13,13,13,13,13,14,13,14,14,14,14,15,14,15,14,14, - 14,15,14,15,14,14,14,15,14,15,15,14,15,15,15,15, - 16,16,17,15,16,17,16,16,17,16,17,16,18,17,11,12, - 11,12,13,13,14,14,14,14,13,14,15,15,14,15,15,14, - 14,14,15,14,15,15,15,14,14,15,15,17,15,15,16,15, - 16,16,15,16,15,17,15,17,16,17,16,18,17,17,17,12, - 12,12,13,14,14,14,14,14,14,15,14,15,15,15,15,15, - 14,15,15,15,14,15,15,15,15,16,15,16,16,15,15,16, - 17,15,18,15,16,16,16,16,17,17,16,17,16,17,18,18, - 12,12,12,13,13,14,14,14,14,14,14,14,16,15,15,16, - 15,16,15,15,15,16,15,16,15,16,15,16,15,17,15,17, - 16,15,16,17,16,18,16,17,17,17,16,17,17,17,18,16, - 16,12,13,13,14,13,15,14,15,15,15,16,16,15,15,16, - 15,16,15,16,16,15,16,17,15,16,16,16,17,16,18,16, - 17,16,17,17,17,17,17,16,17,17,18,17,18,18,18,18, - 16,17,12,12,12,14,13,14,15,14,15,15,15,15,15,15, - 15,15,16,14,15,16,16,16,15,16,15,16,17,16,16,15, - 16,16,17,16,16,16,16,17,16,17,17,16,16,17,17,17, - 17,17,17,13,13,13,15,14,15,15,16,16,16,16,16,16, - 15,17,15,16,15,16,15,16,15,17,15,16,16,17,16,16, - 16,16,18,16,18,17,17,17,17,16,18,18,18,17,18,16, - 17,17,18,18,13,13,13,14,14,16,15,16,15,16,16,16, - 16,16,15,15,16,15,16,16,15,16,16,16,17,16,16,16, - 16,16,16,17,17,17,16,17,16,17,17,18,17,18,16,18, - 18,17,17,18,18,13,14,13,15,15,15,16,15,16,16,16, - 15,17,16,17,15,16,16,17,16,17,16,16,17,16,18,15, - 16,17,17,16,16,17,18,16,17,16,17,17,17,18,18,17, - 17,17,17,18,18,18,13,14,13,15,15,15,15,16,15,16, - 16,16,16,16,16,16,16,16,16,17,17,17,16,17,16,17, - 16,17,16,17,16,18,16,17,16,17,16,18,17,18,17,17, - 17,18,17,17,18,18,18,13,14,14,16,15,15,16,16,16, - 16,17,17,15,16,17,16,16,15,17,16,17,17,16,16,16, - 16,17,16,17,17,17,18,17,16,17,17,17,18,17,17,17, - 18,17,18,18,17,18,18,18,13,14,14,15,16,15,14,16, - 16,16,17,17,16,17,16,18,16,16,16,17,16,17,18,17, - 15,17,17,17,17,18,16,16,16,18,17,17,18,17,17,18, - 17,17,17,18,18,18,17,17,17,13,15,14,16,15,15,16, - 17,15,16,17,16,15,17,17,16,17,17,17,15,16,18,17, - 17,17,16,17,17,18,17,16,17,17,17,17,18,17,17,17, - 18,17,18,18,17,18,18,18,18,18,15,14,15,16,15,16, - 15,16,17,16,16,16,17,17,18,16,17,16,17,17,16,16, - 16,17,16,17,16,18,17,17,18,18,18,17,17,18,17,17, - 17,17,17,17,18,17,17,18,18,17,18,14,15,15,15,16, - 16,16,16,16,16,17,16,18,17,16,16,16,16,17,18,17, - 17,18,17,17,17,17,17,17,17,17,18,18,18,17,18,18, - 17,17,18,18,18,17,18,17,18,18,17,18,14,15,15,16, - 16,16,15,16,18,16,16,16,17,17,16,17,17,17,17,17, - 17,16,18,18,17,17,16,18,17,18,17,17,17,17,17,17, - 17,18,17,18,18,17,17,18,18,18,17,18,18,14,15,15, - 16,16,16,17,17,17,16,16,17,17,17,17,17,17,17,18, - 18,18,16,17,17,18,17,17,18,17,17,17,18,18,18,18, - 18,16,18,18,18,18,18,18,18,18,18,18,18,18,15,16, - 16,16,16,16,16,17,16,16,16,17,18,16,18,17,17,17, - 17,16,18,16,17,18,16,17,16,17,16,18,18,18,17,17, - 17,18,17,18,17,18,18,17,18,18,18,18,18,17,18,16, - 16,15,16,17,16,16,17,17,16,17,17,18,18,18,16,18, - 17,18,17,17,17,17,18,18,17,17,17,17,18,18,18,17, - 17,17,17,17,17,18,18,18,18,18,18,18,17,18,18,18, - 14,15,15,16,15,15,17,17,16,15,17,17,16,16,18,17, - 17,17,17,17,16,17,17,17,17,16,17,17,18,18,17,17, - 18,18,17,17,17,18,17,18,17,17,17,18,18,18,18,18, - 18,15,16,15,17,17,18,17,16,18,17,16,17,17,18,17, - 17,17,18,17,16,18,18,17,18,17,17,16,17,17,17,18, - 18,17,18,18,18,18,18,18,18,18,17,18,18,18,18,18, - 17,18,15,15,17,16,17,17,17,16,16,18,17,17,18,18, - 17,17,18,17,17,18,18,17,17,17,18,17,17,18,16,18, - 18,17,18,18,18,18,18,18,18,18,17,18,18,18,18,18, - 17,18,18,16,17,16,16,16,16,17,18,17,17,17,17,18, - 17,18,16,18,18,18,18,18,18,17,18,18,17,18,18,17, - 18,18,18,17,17,18,18,18,17,18,18,17,18,18,18,18, - 18,18,18,18,16,16,17,16,16,17,18,18,17,16,17,17, - 18,17,17,17,18,16,18,17,17,18,17,17,17,18,18,18, - 17,17,17,17,18,17,17,18,17,18,17,18,18,18,18,18, - 18,18,18,18,18,16,16,16,17,17,17,17,17,18,18,18, - 17,17,18,18,17,17,18,18,18,18,18,18,18,17,18,18, - 17,18,17,18,17,18,18,17,18,18,18,18,18,18,18,18, - 18,18,18,18,18,18,16,17,17,17,17,16,16,18,16,18, - 17,18,18,18,18,18,18,17,17,17,18,17,18,18,17,18, - 18,17,17,17,18,18,18,18,18,18,17,18,17,18,18,18, - 18,18,18,18,18,18,18,17,16,17,16,18,18,17,18,18, - 18,18,18,18,18,18,18,18,18,17,18,18,18,18,18,18, - 18,18,18,18,18,18,18,18,18,18,18,17,18,18,18,16, - 18,18,18,17,18,18,18,18,16,18,18,18,16,18,17,16, - 17,17,18,18,18,16,18,18,18,18,18,17,18,18,18,18, - 18,17,18,18,18,18,18,17,18,17,17,18,18,18,18,18, - 17,18,18,18,18,18,18,18,18,17,17,17,17,17,17,18, - 18,18,18,17,18,18,18,18,18,17,18,18,18,18,18,18, - 18,17,18,17,17,17,18,17,18,18,18,18,17,17,18,18, - 18,18,18,18,18,18,18,18,18,18,16,16,17,18,17,17, - 18,17,17,18,17,18,17,18,17,18,18,18,18,18,17,17, - 18,18,18,17,17,17,17,18,17,18,18,18,17,18,18,18, - 17,18,18,18,18,18,18,18,18,17,18,17,17,18,18,17, - 17,18,17,17,18,18,17,17,18,17,18,18,18,18,18,18, - 18,18,18,17,18,18,18,18,18,18,18,18,18,18,18,18, - 18,17,18,17,18,18,18,18,18,18,18,18,16,17,17,16, - 18,17,17,18,18,18,18,17,18,18,18,18,18,18,18,18, - 18,18,17,18,18,18,18,17,18,18,18,18,18,18,18,18, - 18,18,18,18,18,18,17,18,18,18,18,18,18,17,17,18, - 18,17,18,17,18,17,17,18,17,18,18,18,18,18,18,17, - 18,18,18,18,18,18,18,18,18,17,18,18,18,18,18,18, - 18,18,18,18,18,18,18,18,18,18,18,18,18,18,16,18, - 17,18,17,18,18,17,17,18,18,17,18,18,17,18,18,17, - 17,18,17,18,18,18,18,18,18,18,18,18,18,18,18,18, - 17,18,18,18,17,18,18,18,18,18,18,18,18,18,18,17, - 17,18,18,18,17,17,17,17,18,18,18,18,18,18,17,18, - 18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18, - 18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18, - 16,17,17,17,18,18,18,18,17,18,18,18,18,17,18,18, - 18,18,18,18,18,17,18,18,18,18,18,18,18,18,18,18, - 18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18, - 18, -}; - -static float _vq_quantthresh_res0_192_128_3[] = { - -23.5, -22.5, -21.5, -20.5, -19.5, -18.5, -17.5, -16.5, - -15.5, -14.5, -13.5, -12.5, -11.5, -10.5, -9.5, -8.5, - -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, - 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, - 8.5, 9.5, 10.5, 11.5, 12.5, 13.5, 14.5, 15.5, - 16.5, 17.5, 18.5, 19.5, 20.5, 21.5, 22.5, 23.5, -}; - -static long _vq_quantmap_res0_192_128_3[] = { - 47, 45, 43, 41, 39, 37, 35, 33, - 31, 29, 27, 25, 23, 21, 19, 17, - 15, 13, 11, 9, 7, 5, 3, 1, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, 18, 20, 22, 24, 26, 28, 30, - 32, 34, 36, 38, 40, 42, 44, 46, - 48, -}; - -static encode_aux_threshmatch _vq_auxt_res0_192_128_3 = { - _vq_quantthresh_res0_192_128_3, - _vq_quantmap_res0_192_128_3, - 49, - 49 -}; - -static static_codebook _vq_book_res0_192_128_3 = { - 2, 2401, - _vq_lengthlist_res0_192_128_3, - 1, -526909440, 1611661312, 6, 0, - _vq_quantlist_res0_192_128_3, - NULL, - &_vq_auxt_res0_192_128_3, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_192_128_4.vqh b/lib/books/res0_192_128_4.vqh deleted file mode 100644 index 8b439f82..00000000 --- a/lib/books/res0_192_128_4.vqh +++ /dev/null @@ -1,160 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_192_128_4_VQH_ -#define _V_res0_192_128_4_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_192_128_4[] = { - 40, - 39, - 41, - 38, - 42, - 37, - 43, - 36, - 44, - 35, - 45, - 34, - 46, - 33, - 47, - 32, - 48, - 31, - 49, - 30, - 50, - 29, - 51, - 28, - 52, - 27, - 53, - 26, - 54, - 25, - 55, - 24, - 56, - 23, - 57, - 22, - 58, - 21, - 59, - 20, - 60, - 19, - 61, - 18, - 62, - 17, - 63, - 16, - 64, - 15, - 65, - 14, - 66, - 13, - 67, - 12, - 68, - 11, - 69, - 10, - 70, - 9, - 71, - 8, - 72, - 7, - 73, - 6, - 74, - 5, - 75, - 4, - 76, - 3, - 77, - 2, - 78, - 1, - 79, - 0, - 80, -}; - -static long _vq_lengthlist_res0_192_128_4[] = { - 2, 3, 3, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 6, 7, 7, - 7, 7, 7, 7, 7, 8, 8, 8, 8, 9, 8, 9, 9, 9, 9,10, - 10,11,10,11,10,11,11,11,11,12,12,13,11,12,12,13, - 12, 7, 7, 8, 8, 8, 8, 8, 8, 8, 9, 8, 9, 8, 9, 9, - 9, 9,10, 9,10, 9,10, 9,11,10,11, 9,10,10,11,10, - 11, -}; - -static float _vq_quantthresh_res0_192_128_4[] = { - -39.5, -38.5, -37.5, -36.5, -35.5, -34.5, -33.5, -32.5, - -31.5, -30.5, -29.5, -28.5, -27.5, -26.5, -25.5, -24.5, - -23.5, -22.5, -21.5, -20.5, -19.5, -18.5, -17.5, -16.5, - -15.5, -14.5, -13.5, -12.5, -11.5, -10.5, -9.5, -8.5, - -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, - 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, - 8.5, 9.5, 10.5, 11.5, 12.5, 13.5, 14.5, 15.5, - 16.5, 17.5, 18.5, 19.5, 20.5, 21.5, 22.5, 23.5, - 24.5, 25.5, 26.5, 27.5, 28.5, 29.5, 30.5, 31.5, - 32.5, 33.5, 34.5, 35.5, 36.5, 37.5, 38.5, 39.5, -}; - -static long _vq_quantmap_res0_192_128_4[] = { - 79, 77, 75, 73, 71, 69, 67, 65, - 63, 61, 59, 57, 55, 53, 51, 49, - 47, 45, 43, 41, 39, 37, 35, 33, - 31, 29, 27, 25, 23, 21, 19, 17, - 15, 13, 11, 9, 7, 5, 3, 1, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, 18, 20, 22, 24, 26, 28, 30, - 32, 34, 36, 38, 40, 42, 44, 46, - 48, 50, 52, 54, 56, 58, 60, 62, - 64, 66, 68, 70, 72, 74, 76, 78, - 80, -}; - -static encode_aux_threshmatch _vq_auxt_res0_192_128_4 = { - _vq_quantthresh_res0_192_128_4, - _vq_quantmap_res0_192_128_4, - 81, - 81 -}; - -static static_codebook _vq_book_res0_192_128_4 = { - 1, 81, - _vq_lengthlist_res0_192_128_4, - 1, -525074432, 1611661312, 7, 0, - _vq_quantlist_res0_192_128_4, - NULL, - &_vq_auxt_res0_192_128_4, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_192_128_5.vqh b/lib/books/res0_192_128_5.vqh deleted file mode 100644 index 952a812b..00000000 --- a/lib/books/res0_192_128_5.vqh +++ /dev/null @@ -1,448 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_192_128_5_VQH_ -#define _V_res0_192_128_5_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_192_128_5[] = { - 150, - 149, - 151, - 148, - 152, - 147, - 153, - 146, - 154, - 145, - 155, - 144, - 156, - 143, - 157, - 142, - 158, - 141, - 159, - 140, - 160, - 139, - 161, - 138, - 162, - 137, - 163, - 136, - 164, - 135, - 165, - 134, - 166, - 133, - 167, - 132, - 168, - 131, - 169, - 130, - 170, - 129, - 171, - 128, - 172, - 127, - 173, - 126, - 174, - 125, - 175, - 124, - 176, - 123, - 177, - 122, - 178, - 121, - 179, - 120, - 180, - 119, - 181, - 118, - 182, - 117, - 183, - 116, - 184, - 115, - 185, - 114, - 186, - 113, - 187, - 112, - 188, - 111, - 189, - 110, - 190, - 109, - 191, - 108, - 192, - 107, - 193, - 106, - 194, - 105, - 195, - 104, - 196, - 103, - 197, - 102, - 198, - 101, - 199, - 100, - 200, - 99, - 201, - 98, - 202, - 97, - 203, - 96, - 204, - 95, - 205, - 94, - 206, - 93, - 207, - 92, - 208, - 91, - 209, - 90, - 210, - 89, - 211, - 88, - 212, - 87, - 213, - 86, - 214, - 85, - 215, - 84, - 216, - 83, - 217, - 82, - 218, - 81, - 219, - 80, - 220, - 79, - 221, - 78, - 222, - 77, - 223, - 76, - 224, - 75, - 225, - 74, - 226, - 73, - 227, - 72, - 228, - 71, - 229, - 70, - 230, - 69, - 231, - 68, - 232, - 67, - 233, - 66, - 234, - 65, - 235, - 64, - 236, - 63, - 237, - 62, - 238, - 61, - 239, - 60, - 240, - 59, - 241, - 58, - 242, - 57, - 243, - 56, - 244, - 55, - 245, - 54, - 246, - 53, - 247, - 52, - 248, - 51, - 249, - 50, - 250, - 49, - 251, - 48, - 252, - 47, - 253, - 46, - 254, - 45, - 255, - 44, - 256, - 43, - 257, - 42, - 258, - 41, - 259, - 40, - 260, - 39, - 261, - 38, - 262, - 37, - 263, - 36, - 264, - 35, - 265, - 34, - 266, - 33, - 267, - 32, - 268, - 31, - 269, - 30, - 270, - 29, - 271, - 28, - 272, - 27, - 273, - 26, - 274, - 25, - 275, - 24, - 276, - 23, - 277, - 22, - 278, - 21, - 279, - 20, - 280, - 19, - 281, - 18, - 282, - 17, - 283, - 16, - 284, - 15, - 285, - 14, - 286, - 13, - 287, - 12, - 288, - 11, - 289, - 10, - 290, - 9, - 291, - 8, - 292, - 7, - 293, - 6, - 294, - 5, - 295, - 4, - 296, - 3, - 297, - 2, - 298, - 1, - 299, - 0, - 300, -}; - -static long _vq_lengthlist_res0_192_128_5[] = { - 3, 3, 2, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 6, 7, - 7, 7, 8, 8, 8, 9, 8, 9, 9, 9, 9, 9,11, 9,10,10, - 11,10,11,12,10,11,11,10,11,11,11,11,13,12,11,10, - 12,11,13,12,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13, 8, 9, 8, 9, 8, 9, 8, 9, 9, 9,10,10,10,10,10, - 10, 9,10, 9,10, 9,10, 9,12, 9,11,10,11,10,11,10, - 10,10,11,12,12,10,10,11,11, 9,12,10,12,10,11,11, - 13,11,12,11,12,11,12,11,13,12,11,11,12,11,11,10, - 12,12,12,10,12,13,13,12,13,12,13,13,13,13,13,11, - 11,13,12,13,13,12,12,13,11,11,12,12,13,11,11,12, - 12,11,13,13,13,12,13,13,12,13,12,12,13,13,12,13, - 13,12,13,12,13,13,13,12,13,13,13,13,13,13,13,13, - 12,13,13,11,12,13,12,13,13,13,12,13,12,13,13,13, - 13,13,13,13,13,13,13,11,13,13,13,13,13,12,13,13, - 13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,12,13,13,13,13, - 13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,12,12, -}; - -static float _vq_quantthresh_res0_192_128_5[] = { - -149.5, -148.5, -147.5, -146.5, -145.5, -144.5, -143.5, -142.5, - -141.5, -140.5, -139.5, -138.5, -137.5, -136.5, -135.5, -134.5, - -133.5, -132.5, -131.5, -130.5, -129.5, -128.5, -127.5, -126.5, - -125.5, -124.5, -123.5, -122.5, -121.5, -120.5, -119.5, -118.5, - -117.5, -116.5, -115.5, -114.5, -113.5, -112.5, -111.5, -110.5, - -109.5, -108.5, -107.5, -106.5, -105.5, -104.5, -103.5, -102.5, - -101.5, -100.5, -99.5, -98.5, -97.5, -96.5, -95.5, -94.5, - -93.5, -92.5, -91.5, -90.5, -89.5, -88.5, -87.5, -86.5, - -85.5, -84.5, -83.5, -82.5, -81.5, -80.5, -79.5, -78.5, - -77.5, -76.5, -75.5, -74.5, -73.5, -72.5, -71.5, -70.5, - -69.5, -68.5, -67.5, -66.5, -65.5, -64.5, -63.5, -62.5, - -61.5, -60.5, -59.5, -58.5, -57.5, -56.5, -55.5, -54.5, - -53.5, -52.5, -51.5, -50.5, -49.5, -48.5, -47.5, -46.5, - -45.5, -44.5, -43.5, -42.5, -41.5, -40.5, -39.5, -38.5, - -37.5, -36.5, -35.5, -34.5, -33.5, -32.5, -31.5, -30.5, - -29.5, -28.5, -27.5, -26.5, -25.5, -24.5, -23.5, -22.5, - -21.5, -20.5, -19.5, -18.5, -17.5, -16.5, -15.5, -14.5, - -13.5, -12.5, -11.5, -10.5, -9.5, -8.5, -7.5, -6.5, - -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, - 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, - 10.5, 11.5, 12.5, 13.5, 14.5, 15.5, 16.5, 17.5, - 18.5, 19.5, 20.5, 21.5, 22.5, 23.5, 24.5, 25.5, - 26.5, 27.5, 28.5, 29.5, 30.5, 31.5, 32.5, 33.5, - 34.5, 35.5, 36.5, 37.5, 38.5, 39.5, 40.5, 41.5, - 42.5, 43.5, 44.5, 45.5, 46.5, 47.5, 48.5, 49.5, - 50.5, 51.5, 52.5, 53.5, 54.5, 55.5, 56.5, 57.5, - 58.5, 59.5, 60.5, 61.5, 62.5, 63.5, 64.5, 65.5, - 66.5, 67.5, 68.5, 69.5, 70.5, 71.5, 72.5, 73.5, - 74.5, 75.5, 76.5, 77.5, 78.5, 79.5, 80.5, 81.5, - 82.5, 83.5, 84.5, 85.5, 86.5, 87.5, 88.5, 89.5, - 90.5, 91.5, 92.5, 93.5, 94.5, 95.5, 96.5, 97.5, - 98.5, 99.5, 100.5, 101.5, 102.5, 103.5, 104.5, 105.5, - 106.5, 107.5, 108.5, 109.5, 110.5, 111.5, 112.5, 113.5, - 114.5, 115.5, 116.5, 117.5, 118.5, 119.5, 120.5, 121.5, - 122.5, 123.5, 124.5, 125.5, 126.5, 127.5, 128.5, 129.5, - 130.5, 131.5, 132.5, 133.5, 134.5, 135.5, 136.5, 137.5, - 138.5, 139.5, 140.5, 141.5, 142.5, 143.5, 144.5, 145.5, - 146.5, 147.5, 148.5, 149.5, -}; - -static long _vq_quantmap_res0_192_128_5[] = { - 299, 297, 295, 293, 291, 289, 287, 285, - 283, 281, 279, 277, 275, 273, 271, 269, - 267, 265, 263, 261, 259, 257, 255, 253, - 251, 249, 247, 245, 243, 241, 239, 237, - 235, 233, 231, 229, 227, 225, 223, 221, - 219, 217, 215, 213, 211, 209, 207, 205, - 203, 201, 199, 197, 195, 193, 191, 189, - 187, 185, 183, 181, 179, 177, 175, 173, - 171, 169, 167, 165, 163, 161, 159, 157, - 155, 153, 151, 149, 147, 145, 143, 141, - 139, 137, 135, 133, 131, 129, 127, 125, - 123, 121, 119, 117, 115, 113, 111, 109, - 107, 105, 103, 101, 99, 97, 95, 93, - 91, 89, 87, 85, 83, 81, 79, 77, - 75, 73, 71, 69, 67, 65, 63, 61, - 59, 57, 55, 53, 51, 49, 47, 45, - 43, 41, 39, 37, 35, 33, 31, 29, - 27, 25, 23, 21, 19, 17, 15, 13, - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, 14, 16, 18, - 20, 22, 24, 26, 28, 30, 32, 34, - 36, 38, 40, 42, 44, 46, 48, 50, - 52, 54, 56, 58, 60, 62, 64, 66, - 68, 70, 72, 74, 76, 78, 80, 82, - 84, 86, 88, 90, 92, 94, 96, 98, - 100, 102, 104, 106, 108, 110, 112, 114, - 116, 118, 120, 122, 124, 126, 128, 130, - 132, 134, 136, 138, 140, 142, 144, 146, - 148, 150, 152, 154, 156, 158, 160, 162, - 164, 166, 168, 170, 172, 174, 176, 178, - 180, 182, 184, 186, 188, 190, 192, 194, - 196, 198, 200, 202, 204, 206, 208, 210, - 212, 214, 216, 218, 220, 222, 224, 226, - 228, 230, 232, 234, 236, 238, 240, 242, - 244, 246, 248, 250, 252, 254, 256, 258, - 260, 262, 264, 266, 268, 270, 272, 274, - 276, 278, 280, 282, 284, 286, 288, 290, - 292, 294, 296, 298, 300, -}; - -static encode_aux_threshmatch _vq_auxt_res0_192_128_5 = { - _vq_quantthresh_res0_192_128_5, - _vq_quantmap_res0_192_128_5, - 301, - 301 -}; - -static static_codebook _vq_book_res0_192_128_5 = { - 1, 301, - _vq_lengthlist_res0_192_128_5, - 1, -520962048, 1611661312, 9, 0, - _vq_quantlist_res0_192_128_5, - NULL, - &_vq_auxt_res0_192_128_5, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_192_128aux.vqh b/lib/books/res0_192_128aux.vqh deleted file mode 100644 index fa3ec0c8..00000000 --- a/lib/books/res0_192_128aux.vqh +++ /dev/null @@ -1,117 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - * * - ******************************************************************** - - function: static codebook autogenerated by huff/huffbuld - - ********************************************************************/ - -#ifndef _V_res0_192_128aux_VQH_ -#define _V_res0_192_128aux_VQH_ -#include "codebook.h" - -static long _huff_lengthlist_res0_192_128aux[] = { - 10,16,16,16,16,16,12,16,16,16,16,16,15,16,16,16, - 16,16,13,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,10,14,16,16,16,16,12,15,16,16,16,16, - 14,16,16,16,16,16,14,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,12,16,16,16,16,16,13,16, - 16,16,16,16,15,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,10,16,16,16, - 16,16,12,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16, 5,12,14,16,16,16, 9,12, - 16,16,16,16,13,14,16,16,16,16,12,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16, 4, 9,12,13, - 16,16, 5, 5, 9,11,16,16,10, 8, 9,16,16,16,13,15, - 15,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 8,12,16,13,16,16, 7, 7,10,13,16,16,11, 9, 9,14, - 16,16,14,14,15,15,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,11,16,16,16,16,16,15,13,14,16,16,16, - 16,16,14,16,16,16,16,15,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 5,11,14,16,16,16, 9,11,16,16,16,16,15,13,14,16, - 16,16,16,16,15,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16, 4, 8,11,13,16,16, 4, 4, 9,10,16,16, - 10, 8, 9,16,16,16,16,14,15,15,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16, 7,11,15,12,16,16, 6, 6, - 9,11,16,16,10, 8, 9,14,16,16,14,15,14,15,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,11,14,16,16, - 16,16,13,13,14,16,16,16,13,13,15,14,16,16,14,14, - 13,14,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 15,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16, 8,12,16,16,16,16,11,12, - 15,15,16,16,16,15,16,16,16,16,16,15,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16, 7,12,15,15, - 16,16, 9, 7, 7,11,16,16,12, 7, 6, 9,16,16,14,11, - 9,11,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 10,14,16,15,16,16,10, 6, 4, 8,16,16,12, 4, 3, 6, - 16,16,12, 8, 6, 8,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,12,14,14,13,16,16,14, 9, 7, 8,14,16, - 14, 7, 5, 7,16,16,14, 9, 7, 8,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,15,16,16,16,16,16,15,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 14,14,16,16,16,16,15,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,15,16,16,16,16,14,11,10,15,16,16, - 16,11, 9,13,16,16,15,13,12,14,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, 9, - 8,11,16,16,14, 8, 6, 9,16,16,15,12,10,11,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,12,10,13,16,16,16,10, 8,11,16,16,15,14, - 11,12,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,15,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,15,16,16, - 16,16,16,13,13,16,16,16,16,14,12,14,16,16,16,16, - 15,15,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,12,10,14,16,16,16,10, 9,11, - 16,16,16,13,12,15,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,15,13,16,16,16, - 16,15,11,13,16,16,16,16,13,15,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, -}; - -static static_codebook _huff_book_res0_192_128aux = { - 4, 1296, - _huff_lengthlist_res0_192_128aux, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_256_1024_1.vqh b/lib/books/res0_256_1024_1.vqh deleted file mode 100644 index e2d502d5..00000000 --- a/lib/books/res0_256_1024_1.vqh +++ /dev/null @@ -1,99 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_256_1024_1_VQH_ -#define _V_res0_256_1024_1_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_256_1024_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist_res0_256_1024_1[] = { - 2, 4, 4, 8, 8, 5, 7, 7,10,10, 5, 7, 7,10,10, 9, - 10,10,12,12, 9,10,10,12,12, 5, 7, 7,10,10, 7, 8, - 8,11,11, 7, 8, 8,11,11,10,11,11,13,13,10,11,11, - 13,13, 5, 7, 7,10,10, 7, 8, 8,11,11, 7, 8, 8,11, - 11,10,11,11,13,13,10,11,11,13,13, 9,10,10,12,12, - 10,11,11,13,13,10,11,11,13,13,13,13,13,15,15,13, - 13,14,15,15, 9,10,10,12,12,10,11,11,13,13,10,11, - 11,13,13,13,14,13,15,15,13,13,13,15,15, 5, 7, 7, - 10,10, 7, 9, 9,11,11, 7, 9, 8,11,11,10,11,11,13, - 13,10,11,11,13,13, 7, 9, 9,11,11, 9,10,10,12,12, - 9,10,10,12,12,11,12,12,14,14,11,12,12,14,14, 7, - 9, 9,11,11, 9,10,10,12,12, 9,10,10,12,12,11,12, - 12,14,14,11,12,12,14,14,10,11,11,13,13,11,12,12, - 14,14,11,12,12,14,14,13,14,14,15,16,14,14,14,16, - 16,10,11,11,13,13,11,12,12,14,14,11,12,12,14,14, - 14,14,14,16,15,14,14,14,15,15, 5, 7, 7,10,10, 7, - 8, 8,11,11, 7, 9, 9,11,11,10,11,11,13,13,10,11, - 11,13,13, 7, 9, 9,11,11, 9,10,10,12,12, 9,10,10, - 12,12,11,12,12,14,14,11,12,12,14,14, 7, 9, 9,11, - 11, 9,10,10,12,12, 9,10,10,12,12,11,12,12,14,14, - 11,12,12,14,14,10,11,11,13,13,11,12,12,14,14,11, - 12,12,14,14,14,14,14,16,16,13,14,14,15,16,10,11, - 11,13,13,11,12,12,14,14,11,12,12,14,14,14,14,14, - 16,16,13,14,14,16,15, 9,10,10,13,13,10,11,11,14, - 13,10,11,11,14,13,13,14,14,15,15,13,14,14,15,15, - 10,11,11,14,13,11,12,12,14,14,11,12,12,14,14,14, - 14,15,16,16,14,14,14,16,16,10,11,11,14,13,11,12, - 12,14,14,11,12,12,14,14,14,14,14,16,16,14,14,14, - 16,15,13,14,13,15,15,13,14,14,16,16,13,14,14,16, - 16,15,16,16,16,17,15,16,16,17,17,13,14,14,15,15, - 13,14,14,16,15,14,14,14,16,16,15,16,16,17,16,15, - 16,16,17,17, 9,10,10,13,13,10,11,11,13,14,10,11, - 11,13,13,13,14,14,15,15,13,13,14,15,15,10,11,11, - 13,14,11,12,12,14,14,11,12,12,14,14,14,14,14,16, - 16,14,14,14,15,16,10,11,11,13,13,11,12,12,14,14, - 11,12,12,14,14,14,14,14,16,16,13,14,14,16,16,13, - 14,13,15,15,14,14,14,16,16,13,14,14,16,16,15,16, - 16,18,18,15,15,16,17,17,13,14,14,15,15,14,14,14, - 16,16,13,14,14,16,16,16,16,16,17,17,16,16,15,17, - 16, -}; - -static float _vq_quantthresh_res0_256_1024_1[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap_res0_256_1024_1[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt_res0_256_1024_1 = { - _vq_quantthresh_res0_256_1024_1, - _vq_quantmap_res0_256_1024_1, - 5, - 5 -}; - -static static_codebook _vq_book_res0_256_1024_1 = { - 4, 625, - _vq_lengthlist_res0_256_1024_1, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist_res0_256_1024_1, - NULL, - &_vq_auxt_res0_256_1024_1, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_256_1024_2.vqh b/lib/books/res0_256_1024_2.vqh deleted file mode 100644 index b1026ccb..00000000 --- a/lib/books/res0_256_1024_2.vqh +++ /dev/null @@ -1,70 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_256_1024_2_VQH_ -#define _V_res0_256_1024_2_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_256_1024_2[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static long _vq_lengthlist_res0_256_1024_2[] = { - 3, 4, 4, 5, 5, 6, 6, 8, 8, 4, 5, 5, 6, 6, 7, 7, - 8, 8, 4, 5, 5, 6, 6, 7, 7, 8, 8, 5, 6, 6, 7, 7, - 8, 8, 9, 9, 5, 6, 6, 7, 7, 8, 8, 9, 9, 7, 7, 7, - 8, 8, 9, 9,10,10, 6, 7, 7, 8, 8, 9, 9,10,10, 8, - 9, 9, 9, 9,11,11,12,12, 8, 9, 9, 9, 9,10,10,12, - 12, -}; - -static float _vq_quantthresh_res0_256_1024_2[] = { - -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, -}; - -static long _vq_quantmap_res0_256_1024_2[] = { - 7, 5, 3, 1, 0, 2, 4, 6, - 8, -}; - -static encode_aux_threshmatch _vq_auxt_res0_256_1024_2 = { - _vq_quantthresh_res0_256_1024_2, - _vq_quantmap_res0_256_1024_2, - 9, - 9 -}; - -static static_codebook _vq_book_res0_256_1024_2 = { - 2, 81, - _vq_lengthlist_res0_256_1024_2, - 1, -531628032, 1611661312, 4, 0, - _vq_quantlist_res0_256_1024_2, - NULL, - &_vq_auxt_res0_256_1024_2, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_256_1024_3.vqh b/lib/books/res0_256_1024_3.vqh deleted file mode 100644 index fa0116b4..00000000 --- a/lib/books/res0_256_1024_3.vqh +++ /dev/null @@ -1,107 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_256_1024_3_VQH_ -#define _V_res0_256_1024_3_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_256_1024_3[] = { - 10, - 9, - 11, - 8, - 12, - 7, - 13, - 6, - 14, - 5, - 15, - 4, - 16, - 3, - 17, - 2, - 18, - 1, - 19, - 0, - 20, -}; - -static long _vq_lengthlist_res0_256_1024_3[] = { - 3, 4, 4, 6, 5, 7, 7, 8, 8, 8, 8, 9, 9,10,10,11, - 11,11,11,12,12, 5, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, - 10,10,11,11,12,12,13,13,13,13, 4, 5, 5, 6, 6, 7, - 7, 8, 8, 9, 9,10,10,11,11,12,12,13,13,13,13, 6, - 6, 6, 7, 7, 8, 8, 9, 9,10,10,11,11,12,12,13,13, - 14,14,15,15, 6, 6, 6, 7, 7, 8, 8, 9, 9, 9,10,11, - 11,12,12,13,13,14,14,15,15, 7, 7, 7, 8, 8, 9, 9, - 10,10,11,11,12,12,13,13,15,15,15,15,16,16, 7, 7, - 7, 8, 8, 9, 9,10,10,11,11,12,12,13,13,15,15,15, - 15,16,16, 8, 8, 8, 9, 9,10,10,11,11,12,12,13,13, - 14,15,15,15,17,16,17,17, 8, 8, 8, 9, 9,10,10,11, - 11,12,12,13,13,14,14,15,15,16,16,17,17, 8, 9, 9, - 10,10,11,11,12,12,13,13,14,15,16,15,16,16,17,17, - 17,17, 8, 9, 9,10,10,11,11,12,12,13,13,14,14,16, - 15,17,17,17,17,18,18, 9,10,10,11,11,12,12,13,13, - 14,14,16,16,16,17,17,17,18,18,18,18, 9,10,10,11, - 11,12,12,13,13,14,14,15,16,16,16,17,17,18,18,19, - 18,10,11,11,12,12,14,13,15,14,16,16,17,17,17,17, - 18,18,18,18,18,18,10,11,11,12,12,14,13,15,14,16, - 16,16,16,17,18,18,17,18,18,18,19,11,12,12,13,14, - 15,15,16,16,16,17,17,17,18,18,18,18,19,19,19,19, - 11,12,12,14,14,15,15,16,16,17,17,17,17,18,18,19, - 18,18,18,18,19,11,13,13,14,15,16,16,17,17,17,17, - 17,18,18,19,18,18,19,19,20,19,12,13,13,15,14,16, - 16,16,17,17,17,18,18,18,19,19,18,19,19,20,20,12, - 14,14,15,15,16,17,18,17,18,18,18,19,18,18,19,19, - 19,19,19,20,12,14,14,15,15,16,16,17,17,17,17,18, - 19,18,18,19,19,20,19,19,20, -}; - -static float _vq_quantthresh_res0_256_1024_3[] = { - -9.5, -8.5, -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, - -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, - 6.5, 7.5, 8.5, 9.5, -}; - -static long _vq_quantmap_res0_256_1024_3[] = { - 19, 17, 15, 13, 11, 9, 7, 5, - 3, 1, 0, 2, 4, 6, 8, 10, - 12, 14, 16, 18, 20, -}; - -static encode_aux_threshmatch _vq_auxt_res0_256_1024_3 = { - _vq_quantthresh_res0_256_1024_3, - _vq_quantmap_res0_256_1024_3, - 21, - 21 -}; - -static static_codebook _vq_book_res0_256_1024_3 = { - 2, 441, - _vq_lengthlist_res0_256_1024_3, - 1, -529268736, 1611661312, 5, 0, - _vq_quantlist_res0_256_1024_3, - NULL, - &_vq_auxt_res0_256_1024_3, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_256_1024_4.vqh b/lib/books/res0_256_1024_4.vqh deleted file mode 100644 index 1dad6656..00000000 --- a/lib/books/res0_256_1024_4.vqh +++ /dev/null @@ -1,107 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_256_1024_4_VQH_ -#define _V_res0_256_1024_4_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_256_1024_4[] = { - 10, - 9, - 11, - 8, - 12, - 7, - 13, - 6, - 14, - 5, - 15, - 4, - 16, - 3, - 17, - 2, - 18, - 1, - 19, - 0, - 20, -}; - -static long _vq_lengthlist_res0_256_1024_4[] = { - 6, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 9, 9, 9, 9,10, - 10,11,11,11,11, 6, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, - 9, 9, 9, 9,10,10,11,11,12,12, 6, 6, 6, 6, 6, 7, - 7, 7, 7, 8, 8, 9, 9, 9, 9,10,10,11,11,11,12, 6, - 6, 6, 7, 6, 7, 7, 8, 8, 8, 8, 9, 9,10,10,11,11, - 11,11,12,12, 6, 6, 6, 6, 7, 7, 7, 8, 8, 8, 8, 9, - 9,10,10,11,11,11,11,12,12, 7, 7, 7, 7, 7, 7, 7, - 8, 8, 9, 9, 9, 9,10,10,11,11,12,12,12,12, 7, 7, - 7, 7, 7, 7, 7, 8, 8, 9, 9, 9, 9,10,10,11,11,12, - 12,12,12, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9,10,10, - 11,11,12,12,12,12,13,13, 7, 7, 7, 8, 8, 8, 8, 9, - 9, 9, 9,10,10,11,11,12,12,12,12,13,13, 8, 8, 8, - 8, 8, 9, 9, 9, 9,10,10,11,11,11,11,12,12,13,13, - 13,14, 8, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11,11,11, - 11,12,12,13,13,13,13, 9, 9, 9, 9, 9,10,10,10,10, - 11,11,11,11,12,12,13,13,13,13,14,14, 9, 9, 9, 9, - 9,10,10,10,10,11,11,11,11,12,12,13,13,13,13,14, - 14, 9,10,10,10,10,10,10,11,11,12,11,12,12,13,13, - 13,13,14,14,15,15, 9,10,10,10,10,10,10,11,11,12, - 11,12,12,13,13,13,13,14,14,15,15,10,10,10,11,11, - 11,11,12,12,12,12,13,13,13,13,14,14,14,14,15,15, - 10,10,10,11,11,11,11,12,12,12,12,13,13,13,13,14, - 14,15,14,15,15,11,11,11,12,12,12,12,13,12,13,13, - 14,13,14,14,15,14,15,15,15,16,11,11,11,12,12,12, - 12,13,12,13,13,14,14,14,14,15,14,15,15,16,16,12, - 12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15, - 16,16,16,16,12,12,12,12,12,13,13,13,13,14,14,14, - 14,15,15,15,15,15,16,16,16, -}; - -static float _vq_quantthresh_res0_256_1024_4[] = { - -9.5, -8.5, -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, - -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, - 6.5, 7.5, 8.5, 9.5, -}; - -static long _vq_quantmap_res0_256_1024_4[] = { - 19, 17, 15, 13, 11, 9, 7, 5, - 3, 1, 0, 2, 4, 6, 8, 10, - 12, 14, 16, 18, 20, -}; - -static encode_aux_threshmatch _vq_auxt_res0_256_1024_4 = { - _vq_quantthresh_res0_256_1024_4, - _vq_quantmap_res0_256_1024_4, - 21, - 21 -}; - -static static_codebook _vq_book_res0_256_1024_4 = { - 2, 441, - _vq_lengthlist_res0_256_1024_4, - 1, -529268736, 1611661312, 5, 0, - _vq_quantlist_res0_256_1024_4, - NULL, - &_vq_auxt_res0_256_1024_4, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_256_1024_5.vqh b/lib/books/res0_256_1024_5.vqh deleted file mode 100644 index 09dfa780..00000000 --- a/lib/books/res0_256_1024_5.vqh +++ /dev/null @@ -1,210 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_256_1024_5_VQH_ -#define _V_res0_256_1024_5_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_256_1024_5[] = { - 20, - 19, - 21, - 18, - 22, - 17, - 23, - 16, - 24, - 15, - 25, - 14, - 26, - 13, - 27, - 12, - 28, - 11, - 29, - 10, - 30, - 9, - 31, - 8, - 32, - 7, - 33, - 6, - 34, - 5, - 35, - 4, - 36, - 3, - 37, - 2, - 38, - 1, - 39, - 0, - 40, -}; - -static long _vq_lengthlist_res0_256_1024_5[] = { - 4, 5, 5, 6, 6, 7, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, - 9, 9, 9,10,10, 9, 9,10,10,10,10,10,10,11,11,11, - 11,11,11,11,11,12,12,12,12, 5, 6, 6, 7, 7, 8, 8, - 8, 8, 8, 8, 9, 9, 9, 9,10,10,10,10,10,10,10,10, - 10,10,11,11,11,11,11,11,12,12,12,12,12,12,13,13, - 13,13, 5, 6, 6, 7, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, - 9,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11, - 11,12,12,12,12,12,12,12,12,13,13, 6, 7, 7, 8, 8, - 8, 8, 9, 9, 9, 9, 9, 9,10,10,10,10,10,10,11,11, - 11,11,11,11,11,11,12,12,12,12,12,13,13,13,13,13, - 13,13,14,14, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, - 9,10,10,10,10,10,10,11,11,11,11,11,11,11,11,12, - 12,12,12,12,12,13,13,13,13,13,13,14,14, 7, 8, 8, - 8, 8, 9, 9, 9, 9, 9, 9,10,10,10,10,10,10,11,11, - 11,11,11,11,12,12,12,12,12,12,13,13,13,13,13,13, - 14,14,14,14,14,14, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, - 9,10,10,10,10,10,10,11,11,11,11,11,11,12,12,12, - 12,12,12,13,13,13,13,13,13,14,14,14,14,14,14, 8, - 8, 8, 9, 9, 9, 9, 9, 9,10,10,10,10,11,10,11,11, - 11,11,12,12,12,12,12,12,12,12,13,13,13,13,13,13, - 14,14,14,14,15,14,15,15, 8, 8, 8, 9, 9, 9, 9, 9, - 9,10,10,10,10,11,11,11,11,11,11,12,12,12,12,12, - 12,12,12,13,13,13,13,13,13,14,14,14,14,14,14,15, - 15, 8, 9, 9, 9, 9, 9, 9,10,10,10,10,11,10,11,11, - 11,11,12,12,12,12,12,12,12,12,13,13,13,13,14,13, - 14,14,14,14,14,15,15,15,15,15, 8, 9, 9, 9, 9, 9, - 9,10,10,10,10,10,11,11,11,11,11,12,12,12,12,12, - 12,12,12,13,13,13,13,14,13,14,14,14,14,15,15,15, - 15,15,15, 9, 9, 9, 9, 9,10,10,10,10,11,11,11,11, - 11,11,12,12,12,12,12,12,12,12,13,13,13,13,13,14, - 14,14,14,14,15,15,15,15,15,15,16,15, 9, 9, 9, 9, - 9,10,10,10,10,11,11,11,11,11,11,12,12,12,12,12, - 12,12,12,13,13,13,13,14,14,14,14,14,14,15,14,15, - 15,15,15,15,15, 9, 9, 9,10,10,10,10,11,11,11,11, - 11,11,12,12,12,12,12,12,13,13,13,13,13,13,13,13, - 14,14,14,14,15,15,15,15,15,15,16,16,16,16, 9, 9, - 9,10,10,10,10,11,11,11,11,11,11,12,12,12,12,12, - 12,13,13,13,13,13,13,14,14,14,14,14,14,15,14,15, - 15,15,15,15,16,16,16, 9,10,10,10,10,11,11,11,11, - 11,11,12,12,12,12,12,12,13,13,13,13,13,13,14,13, - 14,14,14,14,15,15,15,15,15,15,15,16,16,16,16,16, - 9,10,10,10,10,11,11,11,11,11,11,12,12,12,12,12, - 12,13,13,13,13,13,13,13,14,14,14,14,14,15,14,15, - 15,15,15,16,16,16,16,16,16,10,10,10,11,11,11,11, - 11,11,12,12,12,12,13,12,13,13,13,13,14,13,13,14, - 14,14,14,14,15,15,15,15,15,15,15,15,16,16,16,16, - 16,16,10,10,10,11,11,11,11,11,11,12,12,12,12,12, - 12,13,13,13,13,13,13,13,13,14,14,14,14,14,15,15, - 15,15,15,16,15,16,16,16,16,17,17,10,11,11,11,11, - 11,11,12,12,12,12,12,12,13,13,13,13,13,13,14,14, - 14,14,14,14,15,15,15,15,15,15,16,16,16,16,16,16, - 17,16,17,17,10,11,11,11,11,11,11,12,12,12,12,12, - 12,13,13,13,13,14,13,14,14,14,14,14,14,15,15,15, - 15,15,15,15,16,16,16,16,16,16,16,16,17,10,10,10, - 11,11,11,11,12,12,12,12,12,12,13,13,13,13,14,13, - 14,14,14,14,15,15,15,15,15,15,16,16,16,16,16,16, - 17,16,17,17,18,17,10,10,10,11,11,11,11,12,12,12, - 12,13,12,13,13,13,13,14,14,14,14,14,14,15,15,15, - 15,15,15,16,16,16,16,16,16,17,17,17,17,17,17,10, - 11,11,11,11,12,12,12,12,13,13,13,13,13,13,14,14, - 14,14,14,14,15,15,15,15,15,15,16,15,16,16,16,16, - 16,16,17,17,17,17,17,18,10,11,11,11,11,12,12,12, - 12,13,13,13,13,13,13,14,14,14,14,14,14,15,15,15, - 15,16,15,16,16,16,16,16,17,17,16,17,17,17,17,17, - 17,10,11,11,12,12,12,12,13,13,13,13,13,13,14,14, - 14,14,14,14,15,14,15,15,15,16,15,16,16,16,16,16, - 17,17,17,17,17,17,17,18,17,18,10,11,11,12,12,12, - 12,13,13,13,13,13,13,14,14,14,14,14,14,15,15,15, - 15,15,15,16,16,16,16,16,16,17,17,17,17,17,17,17, - 18,18,18,11,12,12,12,12,13,13,13,13,14,13,14,14, - 14,14,14,14,15,15,15,15,16,15,16,16,16,16,16,16, - 16,17,17,17,17,17,17,17,18,18,18,18,11,12,12,12, - 12,13,13,13,13,13,13,14,14,14,14,14,15,15,15,15, - 15,15,15,16,16,16,16,16,16,17,17,17,17,17,17,17, - 18,18,17,18,18,11,12,12,13,13,13,13,13,13,14,14, - 14,14,15,15,15,15,15,15,15,15,16,16,16,16,16,16, - 17,16,17,17,18,17,18,17,17,18,18,18,18,18,11,12, - 12,13,13,13,13,13,14,14,14,14,14,15,15,15,15,15, - 15,15,15,16,16,16,16,16,16,17,17,17,17,17,17,17, - 17,17,18,19,18,18,18,11,12,12,13,13,14,14,14,14, - 14,14,15,14,15,15,15,15,15,16,16,16,16,16,17,17, - 17,16,17,17,17,17,18,18,17,18,18,18,18,18,18,18, - 11,12,12,13,13,14,13,14,14,14,14,14,15,15,15,15, - 15,16,16,16,16,16,16,16,16,16,17,17,17,17,18,18, - 17,18,18,19,18,18,19,19,18,12,13,13,13,13,14,14, - 14,14,14,14,15,15,15,15,16,16,16,16,16,16,16,16, - 17,17,17,18,18,17,17,17,18,18,18,18,18,18,18,19, - 18,18,12,13,13,13,13,14,14,14,14,15,15,15,15,16, - 15,16,16,16,16,16,16,16,17,17,17,17,17,17,17,18, - 18,18,19,18,18,18,19,18,19,19,19,12,13,13,14,14, - 14,14,15,15,15,15,15,15,16,16,16,16,16,16,16,17, - 16,17,17,17,17,18,17,17,17,18,18,18,18,18,19,19, - 18,18,18,18,12,13,13,14,14,14,14,15,15,15,15,15, - 15,16,16,16,16,16,16,16,17,17,17,17,17,17,18,17, - 17,18,18,18,18,18,18,18,18,19,18,19,19,12,13,13, - 14,14,15,15,15,15,15,15,16,16,16,16,16,16,17,16, - 17,17,17,17,17,18,18,18,18,18,18,17,18,18,19,19, - 19,18,19,18,19,18,12,13,13,14,14,15,15,15,15,15, - 16,16,16,16,16,16,16,17,17,17,16,17,17,17,17,17, - 18,18,17,18,19,18,18,19,18,19,19,19,18,19,18,13, - 14,14,14,15,15,15,15,16,16,16,16,16,17,16,17,17, - 17,17,17,17,18,17,17,18,18,18,18,18,18,19,18,18, - 19,18,19,20,19,19,20,19,13,14,14,14,14,15,15,15, - 15,16,16,16,16,16,16,16,17,17,17,17,17,17,17,18, - 18,18,17,19,18,18,19,19,18,18,19,19,19,19,18,19, - 19, -}; - -static float _vq_quantthresh_res0_256_1024_5[] = { - -19.5, -18.5, -17.5, -16.5, -15.5, -14.5, -13.5, -12.5, - -11.5, -10.5, -9.5, -8.5, -7.5, -6.5, -5.5, -4.5, - -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, - 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, - 12.5, 13.5, 14.5, 15.5, 16.5, 17.5, 18.5, 19.5, -}; - -static long _vq_quantmap_res0_256_1024_5[] = { - 39, 37, 35, 33, 31, 29, 27, 25, - 23, 21, 19, 17, 15, 13, 11, 9, - 7, 5, 3, 1, 0, 2, 4, 6, - 8, 10, 12, 14, 16, 18, 20, 22, - 24, 26, 28, 30, 32, 34, 36, 38, - 40, -}; - -static encode_aux_threshmatch _vq_auxt_res0_256_1024_5 = { - _vq_quantthresh_res0_256_1024_5, - _vq_quantmap_res0_256_1024_5, - 41, - 41 -}; - -static static_codebook _vq_book_res0_256_1024_5 = { - 2, 1681, - _vq_lengthlist_res0_256_1024_5, - 1, -527171584, 1611661312, 6, 0, - _vq_quantlist_res0_256_1024_5, - NULL, - &_vq_auxt_res0_256_1024_5, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_256_1024_6.vqh b/lib/books/res0_256_1024_6.vqh deleted file mode 100644 index bfd61a2e..00000000 --- a/lib/books/res0_256_1024_6.vqh +++ /dev/null @@ -1,565 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_256_1024_6_VQH_ -#define _V_res0_256_1024_6_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_256_1024_6[] = { - 40, - 39, - 41, - 38, - 42, - 37, - 43, - 36, - 44, - 35, - 45, - 34, - 46, - 33, - 47, - 32, - 48, - 31, - 49, - 30, - 50, - 29, - 51, - 28, - 52, - 27, - 53, - 26, - 54, - 25, - 55, - 24, - 56, - 23, - 57, - 22, - 58, - 21, - 59, - 20, - 60, - 19, - 61, - 18, - 62, - 17, - 63, - 16, - 64, - 15, - 65, - 14, - 66, - 13, - 67, - 12, - 68, - 11, - 69, - 10, - 70, - 9, - 71, - 8, - 72, - 7, - 73, - 6, - 74, - 5, - 75, - 4, - 76, - 3, - 77, - 2, - 78, - 1, - 79, - 0, - 80, -}; - -static long _vq_lengthlist_res0_256_1024_6[] = { - 4, 5, 5, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10,10,10,10,10, - 10,10,10,10,11,11,11,11,11,10,10,10,10,10,10,11, - 10,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12, - 12,12,12,13,13,13,13,13,13,13,13,13,13,14,13,14, - 14, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, - 9,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11, - 11,11,11,11,12,11,12,12,12,12,11,11,11,11,11,11, - 12,12,12,12,12,12,12,12,12,12,13,13,13,13,13,13, - 13,13,13,13,14,14,14,14,14,14,14,14,14,14,15,14, - 15,14, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, - 9, 9, 9,10,10,10,10,10,10,10,10,10,11,11,11,11, - 11,11,11,11,11,11,11,12,11,12,12,11,11,11,11,11, - 11,12,11,12,12,12,12,12,12,12,12,13,13,13,13,13, - 13,13,13,13,13,14,14,14,14,14,14,14,14,14,14,14, - 14,15,15, 7, 7, 7, 8, 8, 9, 9, 9, 9, 9, 9,10,10, - 10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11, - 12,12,12,12,12,12,12,12,12,12,13,13,12,12,12,12, - 12,12,12,12,13,12,13,13,13,13,13,13,13,13,13,13, - 14,14,14,14,14,14,14,14,15,14,15,14,15,14,15,15, - 15,15,15,15, 7, 7, 7, 8, 8, 8, 9, 9, 9, 9, 9,10, - 10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11, - 11,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,13,13,13,13,13,13,13,13,13, - 13,14,14,14,14,14,14,14,14,14,14,15,15,15,15,15, - 14,15,15,15,16, 8, 8, 8, 9, 9, 9, 9, 9, 9,10,10, - 10,10,10,10,11,11,11,11,11,11,11,11,11,11,12,12, - 12,12,12,12,12,12,12,12,13,12,13,13,13,13,12,12, - 12,12,13,13,13,13,13,13,13,13,13,13,14,14,14,14, - 14,14,14,14,14,14,15,15,14,15,15,15,15,15,15,15, - 15,15,16,15,16,15, 8, 8, 8, 9, 9, 9, 9, 9, 9,10, - 10,10,10,10,10,11,11,11,11,11,11,11,11,11,11,12, - 12,12,12,12,12,12,12,12,12,13,12,13,13,13,13,12, - 12,13,12,13,13,13,13,13,13,13,13,13,13,14,14,14, - 14,14,14,14,14,14,14,15,14,15,15,15,15,15,15,15, - 15,15,15,16,16,15,15, 8, 9, 9, 9, 9,10,10,10,10, - 10,10,11,10,11,11,11,11,11,11,11,11,12,12,12,12, - 12,12,12,12,13,12,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,14,13,14,14,14,14,14,14, - 14,14,14,14,15,15,15,15,15,15,16,15,15,15,15,15, - 16,15,16,16,16,16,16,16, 8, 9, 9, 9, 9,10,10,10, - 10,10,10,10,11,11,11,11,11,11,11,11,12,12,12,12, - 12,12,12,12,12,12,12,12,12,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,14,13,14,14,14,14,14, - 14,14,15,14,14,15,15,15,15,15,15,15,15,15,15,15, - 15,16,15,15,16,16,16,16,16, 9, 9, 9,10,10,10,10, - 10,10,11,11,11,11,11,11,11,11,11,11,12,12,12,12, - 12,12,12,12,13,12,13,13,13,13,13,13,13,13,13,13, - 14,14,13,13,13,13,13,13,14,14,14,14,14,14,14,14, - 15,14,15,14,15,15,15,15,15,15,15,15,16,15,16,16, - 16,16,16,16,16,16,16,16,16,16, 9, 9, 9,10,10,10, - 10,10,10,11,11,11,11,11,11,11,11,12,12,12,12,12, - 12,12,12,12,12,13,13,13,13,13,13,13,13,13,13,13, - 14,14,14,13,13,13,13,14,13,13,14,14,14,14,14,14, - 14,14,14,15,14,15,15,15,15,15,15,15,15,16,15,16, - 16,16,15,16,16,16,16,16,16,16,16, 9, 9, 9,10,10, - 10,10,11,11,11,11,11,11,11,11,12,12,12,12,12,12, - 12,12,12,12,13,13,13,13,13,13,13,13,13,13,14,13, - 14,14,14,14,13,14,14,14,14,14,14,14,14,14,14,14, - 14,15,15,15,15,15,15,15,15,15,15,15,16,16,16,16, - 16,16,16,16,16,16,16,17,17,17,17,16, 9, 9, 9,10, - 10,10,10,11,11,11,11,11,11,11,11,12,12,12,12,12, - 12,12,12,12,12,13,13,13,13,13,13,13,13,13,13,14, - 14,14,14,14,14,13,13,14,13,14,14,14,14,14,14,14, - 14,15,14,15,15,15,15,15,15,15,16,15,16,16,16,16, - 15,17,16,16,16,17,16,17,16,17,16,17,16, 9,10,10, - 10,10,11,11,11,11,11,11,11,11,12,12,12,12,12,12, - 12,12,13,13,13,13,13,13,13,13,13,13,14,13,14,14, - 14,14,14,14,14,14,14,14,14,14,14,14,14,14,15,15, - 15,15,15,15,15,15,15,15,15,15,15,16,16,16,16,16, - 16,16,16,17,16,16,17,17,16,16,16,17,18,17, 9,10, - 10,10,10,11,11,11,11,11,11,11,11,12,12,12,12,12, - 12,12,12,13,13,13,13,13,13,13,13,13,13,13,14,13, - 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,15, - 15,15,15,15,15,15,15,15,15,15,15,16,15,16,16,16, - 16,16,16,17,16,16,16,16,16,17,16,17,16,17,16,10, - 10,10,11,11,11,11,11,11,11,12,12,12,12,12,12,12, - 13,12,13,13,13,13,13,13,13,13,13,13,14,14,14,14, - 14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,15, - 15,15,15,15,15,15,15,15,15,15,16,16,16,16,16,16, - 16,16,16,16,17,17,16,16,17,17,17,17,18,18,17,17, - 10,10,10,10,11,11,11,11,11,11,12,12,12,12,12,12, - 12,13,12,13,13,13,13,13,13,13,13,14,13,14,14,14, - 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, - 14,14,15,15,15,15,15,15,15,16,16,15,15,16,16,16, - 16,16,16,16,16,17,17,17,17,16,17,17,17,17,17,17, - 17,10,10,10,11,11,11,11,12,12,12,12,12,12,12,12, - 12,12,13,13,13,13,13,13,13,13,14,14,14,14,14,14, - 14,14,14,14,14,14,15,14,15,15,14,14,15,14,15,15, - 15,15,15,15,15,15,15,16,16,16,15,16,16,16,16,16, - 17,16,17,16,16,17,16,17,17,17,17,17,17,17,17,17, - 18,17,10,10,10,11,11,11,11,11,12,12,12,12,12,12, - 12,13,13,13,13,13,13,13,13,13,13,13,13,14,14,14, - 14,14,14,14,14,14,14,14,14,15,15,14,14,14,14,15, - 15,15,15,15,15,15,15,16,16,16,15,16,15,16,15,16, - 16,16,16,16,17,16,16,17,16,18,17,16,17,17,17,17, - 17,17,17,10,11,11,11,11,11,12,12,12,12,12,12,12, - 13,13,13,13,13,13,13,13,13,13,14,13,14,14,14,14, - 14,14,14,14,14,15,15,15,15,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,15,16,16,16,16,16,16,16,16, - 16,16,18,17,17,16,17,17,17,18,18,18,18,17,18,18, - 18,19,17,17,10,11,11,11,11,12,12,12,12,12,12,12, - 12,13,13,13,13,13,13,13,13,13,13,14,14,14,14,14, - 14,14,14,14,14,15,15,15,15,15,15,15,15,14,15,15, - 14,15,15,15,15,15,15,16,16,16,16,16,16,16,16,17, - 16,16,16,16,17,17,17,17,17,17,16,17,17,17,17,17, - 17,18,18,18,17,10,11,11,11,11,12,12,12,12,12,12, - 13,13,13,13,13,13,13,13,14,14,14,14,14,14,14,14, - 14,14,14,15,15,15,15,14,15,15,15,15,16,15,15,15, - 15,15,15,15,15,15,16,16,16,16,16,16,16,16,16,16, - 17,16,16,16,17,17,17,18,17,17,17,17,17,17,18,17, - 19,17,18,18,17,18,10,11,11,11,11,12,12,12,12,12, - 12,13,13,13,13,13,13,13,13,13,13,14,14,14,14,14, - 14,14,14,14,15,15,15,15,15,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,15,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,18,17,17,17,17,18,17,17,17, - 18,18,18,17,18,18,18,11,11,11,12,12,12,12,12,12, - 13,13,13,13,13,13,13,13,13,13,14,14,14,14,14,14, - 14,14,14,15,15,15,15,15,15,15,15,15,15,15,15,15, - 15,15,15,15,16,16,16,16,16,16,16,16,16,16,16,16, - 17,17,17,16,16,17,17,17,18,17,17,17,18,17,18,17, - 17,18,18,18,18,18,18,18,11,11,11,12,12,12,12,12, - 12,13,13,13,13,13,13,13,13,14,13,14,14,14,14,14, - 14,14,14,15,14,15,15,15,15,15,15,15,15,15,15,16, - 16,15,15,15,15,16,16,16,16,15,16,16,16,16,15,16, - 16,16,17,18,16,17,17,18,17,18,16,17,17,17,17,17, - 17,18,19,18,17,18,18,18,18,11,11,11,12,12,12,12, - 13,13,13,13,13,13,14,13,14,14,14,14,14,14,14,14, - 14,15,14,14,15,15,15,15,15,15,15,15,16,15,15,15, - 16,16,15,15,15,15,16,16,16,15,16,16,16,16,16,16, - 17,16,17,16,17,17,17,17,18,17,17,17,17,18,17,17, - 17,18,17,18,18,18,18,18,18,18,11,11,11,12,12,12, - 12,13,13,13,13,13,13,13,14,14,14,14,14,14,14,14, - 14,14,15,15,15,15,15,15,15,15,15,16,15,16,16,16, - 16,16,15,15,15,15,15,16,15,16,16,16,16,16,17,16, - 17,17,17,17,17,17,17,18,17,18,17,17,18,18,17,18, - 17,18,18,18,17,17,17,17,18,18,18,11,12,12,12,12, - 13,13,13,13,13,13,13,14,14,14,14,14,14,14,15,14, - 15,14,15,15,15,15,15,15,15,15,15,15,15,15,16,16, - 16,16,16,16,15,15,16,16,16,16,16,17,16,16,16,16, - 17,16,17,16,17,17,17,17,17,17,17,18,18,18,18,18, - 19,18,18,18,19,18,19,18,18,17,18,18,11,12,12,12, - 12,12,13,13,13,13,13,14,14,14,13,14,14,14,14,14, - 15,14,14,15,15,15,15,15,15,15,15,15,15,16,15,16, - 16,16,16,16,16,16,16,16,16,16,16,17,16,16,16,17, - 16,17,16,17,16,17,17,17,17,18,17,17,17,18,17,18, - 18,18,17,19,18,17,18,18,19,18,18,18,18,11,12,12, - 13,12,13,13,13,13,13,14,14,14,14,14,14,14,14,14, - 14,15,15,15,15,15,15,15,15,15,16,15,15,16,15,16, - 16,16,16,16,16,17,16,16,16,16,16,17,17,17,16,17, - 16,17,17,17,17,17,17,17,17,17,17,18,18,17,18,18, - 18,18,19,18,19,18,19,20,18,19,18,19,18,19,11,12, - 12,13,13,13,13,13,13,13,13,14,14,14,14,14,14,14, - 14,15,14,14,15,15,15,15,15,15,15,15,15,16,16,16, - 15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16, - 16,17,16,17,17,17,17,17,17,18,18,18,17,17,18,17, - 17,17,17,18,18,18,18,17,18,18,19,18,18,18,18,11, - 12,12,13,13,13,13,13,13,14,14,14,14,14,14,14,15, - 15,14,15,15,15,15,15,15,16,15,15,15,16,16,16,16, - 15,16,16,16,16,16,16,16,16,16,16,17,16,17,16,17, - 17,16,17,17,17,17,17,17,17,18,17,18,18,17,17,17, - 18,18,18,18,18,18,19,18,18,19,19,18,19,18,19,19, - 11,12,12,13,13,13,13,13,14,14,14,14,14,14,14,15, - 14,14,15,15,14,15,15,15,15,15,16,16,16,16,16,15, - 16,16,16,16,16,17,16,16,16,16,16,16,16,17,17,17, - 17,16,16,17,16,17,17,18,17,17,17,18,18,18,18,18, - 17,18,18,18,17,19,19,18,18,18,18,18,18,19,19,19, - 18,12,12,12,13,13,13,13,14,14,14,14,14,14,14,14, - 15,14,15,15,15,15,15,16,15,15,16,15,16,15,16,16, - 16,15,16,16,16,16,16,17,17,16,16,16,16,16,17,16, - 16,17,17,17,17,17,17,17,17,17,18,17,18,18,18,18, - 18,17,18,18,19,18,18,18,18,18,19,19,19,19,19,19, - 19,19,12,12,12,13,13,13,13,14,13,14,14,14,14,14, - 14,14,14,15,15,15,15,15,15,15,15,16,15,16,16,16, - 16,16,16,16,16,16,17,16,16,17,16,16,17,17,16,16, - 17,17,17,17,17,17,17,17,18,18,17,17,17,18,18,18, - 18,18,18,18,18,18,18,18,18,19,18,19,19,18,18,18, - 20,20,18,12,13,13,13,13,14,13,14,14,14,14,14,14, - 15,15,15,15,15,15,15,15,15,15,16,15,16,16,16,16, - 16,17,16,16,16,16,17,16,17,17,17,17,17,16,16,17, - 17,17,17,16,17,17,17,18,18,18,17,18,18,17,18,18, - 18,18,19,19,19,18,19,18,18,18,21,18,19,19,18,19, - 19,19,20,20,12,13,13,13,13,13,14,14,14,14,14,15, - 14,15,15,15,15,15,15,15,15,16,15,16,15,16,16,16, - 16,16,16,16,16,16,16,16,17,16,16,17,17,16,16,17, - 17,17,16,17,17,17,17,17,18,17,18,18,18,17,17,17, - 17,18,18,18,17,19,18,19,19,19,19,19,19,18,19,18, - 18,19,18,19,20,12,13,13,14,13,14,14,14,14,14,14, - 14,15,15,15,15,15,15,15,16,16,16,16,16,16,16,16, - 16,16,17,16,17,16,17,16,17,17,17,17,17,18,17,16, - 17,17,17,17,17,17,18,17,17,18,18,18,18,18,17,17, - 18,18,19,18,19,17,18,19,18,18,18,19,20,19,19,19, - 18,19,18,19,18,19,12,13,13,13,13,14,14,14,14,14, - 14,15,15,15,15,15,15,15,16,16,16,16,15,16,16,17, - 16,16,16,17,16,17,16,16,17,17,17,17,17,17,18,16, - 16,17,16,17,17,17,17,17,17,18,17,18,18,18,18,17, - 18,18,18,19,17,19,19,18,19,18,18,19,19,19,19,19, - 18,20,19,19,19,19,19,12,13,13,14,14,14,14,15,14, - 15,15,15,15,15,15,15,15,15,16,16,16,15,15,16,16, - 16,16,16,17,17,17,17,16,17,17,17,17,18,17,17,17, - 17,17,18,17,17,17,17,17,18,18,17,18,18,18,18,18, - 18,18,19,18,18,18,18,18,20,19,19,18,21,18,19,20, - 19,19,19,19,19,19,19,19,13,13,13,14,14,14,14,14, - 14,15,15,15,15,15,15,15,16,15,15,16,16,16,16,16, - 16,16,16,16,16,17,17,17,17,17,16,17,17,17,17,17, - 17,17,16,17,17,17,17,17,17,17,18,17,18,18,18,18, - 19,18,19,18,18,18,18,18,18,19,18,18,19,19,19,19, - 19,20,18,19,19,20,19,20,20,11,12,12,13,13,13,13, - 13,14,14,14,14,14,14,15,15,15,15,15,15,15,16,15, - 15,15,16,15,16,16,16,16,16,17,16,16,17,17,17,17, - 17,17,16,17,17,17,17,17,18,18,18,17,18,18,18,18, - 18,18,18,18,19,18,18,19,20,19,18,19,19,18,18,19, - 19,18,19,19,19,19,21,21,19,18,11,12,12,13,13,13, - 13,14,14,14,14,15,14,15,15,15,15,15,15,15,15,15, - 15,15,15,16,16,16,16,16,15,16,16,17,16,16,16,17, - 17,17,16,17,17,17,17,17,18,18,18,18,17,18,18,18, - 18,18,18,18,18,18,18,18,18,19,18,18,18,18,18,18, - 19,20,19,19,18,19,19,19,20,19,19,11,12,12,13,13, - 13,13,14,14,14,14,14,15,14,15,15,15,15,15,15,16, - 16,16,16,16,16,16,16,16,16,16,16,17,16,17,17,16, - 17,17,17,18,17,18,18,17,17,17,18,19,18,18,17,18, - 18,18,21,18,18,17,19,19,18,18,18,19,20,18,18,18, - 19,19,19,18,18,20,21,19,18,19,19,20,11,12,12,13, - 13,14,13,14,14,14,14,14,14,15,15,15,15,15,15,15, - 16,16,16,16,16,16,16,16,16,16,16,18,16,17,16,17, - 16,17,17,17,17,18,17,18,17,18,18,18,18,18,18,17, - 18,17,18,18,18,18,17,20,18,18,18,19,19,19,18,18, - 19,19,19,19,19,19,19,19,19,18,19,19,20,12,13,13, - 13,13,14,14,14,14,15,15,15,15,15,15,15,15,15,16, - 16,15,16,16,16,15,16,16,16,17,17,16,17,16,17,17, - 18,17,17,17,17,17,17,17,18,17,18,18,18,18,18,18, - 18,17,19,20,18,18,18,18,19,18,19,20,19,19,19,20, - 19,19,19,19,18,19,20,20,19,19,19,21,19,19,12,12, - 13,13,13,14,14,14,14,14,14,15,15,15,15,15,15,15, - 15,16,16,16,16,16,16,16,16,16,16,16,16,17,17,17, - 17,16,17,17,17,17,17,17,17,17,18,17,17,17,18,19, - 18,18,18,19,18,18,17,19,18,19,18,19,19,19,19,19, - 21,19,20,19,19,19,19,19,21,19,20,20,20,19,21,12, - 13,13,13,13,14,14,14,14,15,15,15,15,15,15,15,15, - 16,16,16,16,16,16,16,16,16,16,16,16,17,17,17,17, - 18,17,18,17,17,17,18,17,18,18,18,17,19,18,18,19, - 18,18,18,19,18,18,18,20,19,18,19,18,19,19,19,19, - 19,20,20,18,19,20,20,21,19,19,19,19,19,21,20,21, - 12,13,13,14,14,14,14,14,14,14,15,15,15,15,15,16, - 15,15,16,16,16,16,16,16,16,17,16,17,16,17,17,16, - 17,17,18,17,18,17,18,17,18,17,17,18,18,18,17,18, - 18,18,18,18,17,19,19,18,18,19,19,18,19,19,19,18, - 19,21,19,18,20,19,19,19,21,19,20,19,20,19,20,21, - 21,12,13,13,14,14,14,15,15,15,15,15,15,15,16,16, - 16,16,16,16,16,16,16,16,17,16,17,17,18,17,17,17, - 17,17,18,17,18,18,18,17,18,18,17,18,18,18,18,19, - 19,19,18,19,18,18,18,19,18,18,19,18,19,19,19,19, - 19,20,20,20,19,21,19,20,20,19,20,19,19,20,19,19, - 20,21,12,13,13,14,14,14,14,15,15,15,15,16,15,15, - 15,16,15,16,16,17,16,16,16,17,16,17,17,16,17,17, - 17,17,17,17,17,17,17,18,18,17,18,18,18,18,17,18, - 18,18,19,20,19,19,18,19,19,18,19,19,19,19,19,19, - 20,19,19,19,21,19,18,20,19,19,19,20,19,20,20,21, - 21,19,20,12,13,14,14,14,14,15,15,15,15,15,16,16, - 16,16,16,16,17,16,16,17,17,16,17,17,17,16,17,17, - 17,17,18,18,18,17,18,18,18,17,18,18,20,18,17,19, - 19,19,19,19,18,18,19,18,18,18,20,19,18,19,19,19, - 19,18,19,19,18,19,19,18,21,19,20,19,19,21,19,20, - 19,20,21,20,12,13,13,14,14,15,14,15,15,15,16,16, - 15,16,16,16,16,16,16,17,16,16,16,17,16,17,17,18, - 17,17,17,18,17,18,18,17,18,18,18,19,18,18,18,19, - 19,18,19,18,19,17,19,18,19,19,19,18,21,19,21,18, - 18,19,19,19,19,21,20,19,19,19,19,19,19,19,20,20, - 19,20,20,21,19,13,14,14,14,14,15,15,15,16,15,15, - 16,16,16,16,16,16,16,17,17,17,17,17,17,17,17,17, - 17,17,18,17,18,18,18,18,18,18,18,18,18,19,18,18, - 18,19,17,18,20,18,18,19,19,19,20,20,19,19,19,19, - 19,19,19,21,19,20,21,19,19,19,21,19,19,19,19,20, - 19,19,19,21,20,19,13,14,14,14,14,15,15,15,15,15, - 16,16,16,16,17,16,16,17,16,17,17,17,17,18,17,18, - 17,17,17,18,17,18,17,18,17,18,18,18,18,19,19,18, - 18,19,19,20,19,20,19,19,18,18,19,19,19,19,19,18, - 19,20,19,19,19,19,20,19,21,19,20,19,20,19,20,20, - 21,21,21,20,19,20,20,13,14,14,15,15,15,15,15,15, - 16,16,16,16,17,17,16,17,17,17,17,18,17,17,18,17, - 17,18,18,18,18,18,18,19,18,17,18,18,18,18,19,19, - 19,19,19,19,19,18,19,19,19,18,20,19,20,19,19,20, - 20,19,18,20,20,21,19,19,19,20,19,20,19,20,21,19, - 20,21,20,20,21,19,19,21,13,14,14,14,14,15,15,16, - 16,16,16,16,16,16,16,17,17,18,17,17,18,17,17,18, - 18,18,18,19,18,18,18,18,18,18,18,18,18,18,18,18, - 19,19,18,19,19,18,19,19,19,21,18,21,18,20,19,19, - 19,21,20,20,18,20,19,20,21,21,19,19,20,20,20,20, - 21,19,19,21,21,19,21,21,21,13,14,14,15,15,15,16, - 15,16,16,16,16,17,17,17,18,17,17,17,17,18,18,17, - 18,17,17,17,19,18,18,18,18,18,18,19,18,20,19,19, - 19,19,18,19,19,21,20,18,18,19,18,18,21,18,19,19, - 20,19,19,19,19,19,21,21,21,21,20,19,20,19,21,21, - 19,21,21,20,19,20,19,20,21,20,13,14,14,15,15,15, - 16,16,16,16,16,16,17,17,16,17,16,17,17,17,18,18, - 17,18,17,18,17,18,18,18,18,19,18,18,18,17,18,19, - 19,18,18,21,18,18,18,19,21,19,19,19,19,19,20,18, - 19,19,20,19,19,19,19,19,20,21,20,20,20,19,19,19, - 21,19,21,21,19,21,19,20,21,20,20,13,15,14,15,15, - 15,16,16,16,17,17,17,17,18,17,17,18,17,17,17,17, - 17,17,19,18,18,18,18,18,18,18,18,18,18,19,18,19, - 19,20,20,19,19,20,20,19,20,19,19,19,20,19,19,20, - 19,20,20,21,20,20,19,19,19,20,20,21,19,21,21,21, - 19,20,19,19,19,21,20,19,21,20,20,21,13,14,14,15, - 15,16,16,16,16,16,16,17,17,17,17,17,18,17,17,18, - 18,18,18,18,18,19,18,18,18,20,19,18,18,19,18,18, - 19,19,19,19,18,18,21,18,19,19,19,21,19,19,19,21, - 20,20,21,19,21,21,21,19,20,21,19,19,20,20,20,20, - 21,20,20,20,20,20,21,20,21,20,21,19,21,14,15,15, - 15,16,16,16,17,16,17,17,17,18,18,17,17,17,17,18, - 17,18,18,18,19,18,18,18,18,18,18,18,20,18,19,19, - 19,19,19,19,19,19,19,19,20,20,20,21,20,19,19,20, - 21,19,19,19,21,19,20,20,20,19,20,20,20,20,21,19, - 20,20,21,20,19,21,21,21,21,21,20,19,21,20,14,15, - 15,15,15,16,16,16,17,17,16,17,17,18,17,17,17,18, - 18,19,18,18,18,18,18,19,19,18,19,18,19,18,19,19, - 19,19,19,20,19,19,19,20,19,19,19,19,18,19,20,19, - 19,19,20,20,20,21,19,19,19,20,20,21,21,20,19,20, - 20,20,20,19,21,20,20,19,21,19,21,21,20,21,20,14, - 15,15,16,16,17,16,17,16,17,17,17,17,17,18,18,19, - 17,18,17,18,19,18,18,19,19,18,19,18,18,19,20,18, - 21,19,19,18,19,20,18,19,20,20,19,19,19,19,20,20, - 19,20,21,20,21,19,20,19,20,20,20,21,21,19,19,21, - 21,20,21,20,21,21,20,20,21,19,21,21,21,19,19,20, - 14,15,15,16,15,16,16,17,17,17,17,17,18,18,18,18, - 18,18,17,17,19,19,19,18,19,19,19,19,19,19,19,19, - 18,19,19,18,19,19,19,19,20,20,20,19,21,20,19,20, - 19,20,19,19,20,20,21,18,20,19,20,21,19,20,20,21, - 21,21,19,19,20,20,19,19,20,21,20,21,21,21,21,21, - 21,14,15,15,16,16,16,17,17,18,17,17,18,17,18,17, - 18,18,18,17,18,18,18,19,20,18,19,19,19,18,18,19, - 20,19,19,19,20,19,21,21,19,20,20,19,19,18,21,20, - 21,19,20,20,19,19,20,21,20,20,20,20,21,20,20,19, - 18,21,19,20,21,20,20,20,20,21,20,21,20,21,19,21, - 21,20,14,15,15,16,16,16,18,17,17,17,17,17,18,18, - 18,18,18,18,18,18,19,18,19,18,18,19,19,18,19,19, - 18,20,19,19,18,19,20,19,20,19,19,19,19,20,19,19, - 20,21,20,21,19,20,19,19,20,20,20,20,19,20,20,20, - 21,19,20,21,21,21,21,21,21,20,20,21,21,21,21,20, - 21,20,20,14,16,16,16,16,17,17,17,17,17,17,18,18, - 18,18,18,19,18,18,18,18,18,18,19,18,19,18,19,19, - 19,19,19,20,19,19,21,20,19,19,20,20,20,19,19,21, - 20,19,21,21,19,21,20,19,20,20,21,20,21,21,20,21, - 20,21,21,21,20,21,21,21,20,21,21,20,20,21,21,21, - 20,21,20,21,15,16,15,17,17,18,17,17,18,17,18,19, - 18,18,17,18,20,18,18,18,18,18,19,20,19,18,19,21, - 20,20,19,19,20,21,19,20,19,19,18,21,19,19,20,20, - 21,19,19,20,19,20,20,21,20,20,20,20,21,21,20,21, - 21,20,21,20,20,21,19,21,19,19,21,21,21,19,21,20, - 21,21,21,21,20,15,16,16,17,17,17,17,18,17,18,18, - 18,18,18,18,18,19,19,19,19,21,18,19,19,19,19,19, - 19,19,20,19,20,19,21,21,19,19,20,19,21,19,21,19, - 20,19,19,21,21,19,20,20,21,21,20,21,20,19,20,20, - 21,21,21,21,20,19,21,20,20,20,21,19,21,21,21,21, - 21,21,21,20,20,21,15,16,16,17,17,17,17,17,18,18, - 19,18,18,18,21,18,19,19,19,20,18,20,20,19,19,18, - 18,18,21,21,19,20,19,20,19,19,19,21,20,20,21,20, - 19,19,20,21,19,19,21,20,20,21,19,20,21,20,21,21, - 20,20,20,21,21,19,21,20,20,21,20,21,19,21,21,21, - 20,21,20,21,20,21,20,15,16,17,17,18,17,18,18,18, - 18,18,17,18,19,19,19,18,19,18,19,19,19,20,21,19, - 19,19,20,19,20,19,20,20,20,19,20,19,19,21,21,19, - 20,21,21,20,21,19,21,20,21,21,20,21,21,19,20,21, - 21,21,20,19,21,21,21,21,21,21,21,21,20,21,21,21, - 21,21,21,19,20,21,21,20,15,16,17,17,18,18,18,18, - 18,18,18,18,19,18,19,19,19,19,19,19,20,19,19,20, - 19,20,19,21,19,20,19,19,19,20,21,19,21,21,19,20, - 19,20,21,20,20,21,21,21,20,20,20,21,21,20,19,20, - 21,20,19,20,21,21,21,21,21,21,21,21,21,21,21,20, - 21,21,19,21,20,20,21,21,21,15,16,17,17,18,18,18, - 20,18,19,18,20,19,18,19,19,18,19,19,19,19,20,19, - 19,19,20,19,19,20,19,21,19,19,21,20,20,19,20,20, - 21,19,19,20,21,21,21,21,20,19,19,21,20,21,20,20, - 21,21,21,21,21,21,21,21,21,21,21,21,21,21,20,21, - 21,21,21,21,21,20,21,21,19,21,16,17,17,18,18,18, - 18,18,20,18,19,18,19,18,19,18,19,20,21,21,21,19, - 21,19,20,21,20,19,20,21,19,19,21,20,21,19,21,20, - 21,21,20,21,19,19,19,19,21,20,20,20,21,19,21,19, - 21,20,19,21,21,21,21,21,21,21,21,21,20,21,21,21, - 21,20,21,21,21,21,20,21,21,21,21,16,17,16,18,18, - 19,18,19,19,19,19,19,18,20,18,19,19,19,21,19,19, - 19,20,21,21,20,20,19,19,19,19,20,21,19,20,21,20, - 21,21,19,21,20,20,21,21,19,21,21,21,21,19,21,21, - 21,21,20,21,20,21,21,20,21,20,20,21,21,21,21,21, - 20,20,21,21,21,21,21,21,21,21,21,21,16,17,18,18, - 18,18,18,17,19,19,20,20,19,19,19,20,19,19,18,19, - 20,20,19,20,21,21,19,20,20,21,19,21,21,21,19,21, - 20,21,19,20,21,21,19,20,20,19,21,21,21,20,21,21, - 21,20,20,20,21,21,21,21,21,20,21,21,20,21,21,20, - 21,20,21,21,21,21,20,21,21,21,21,21,21,16,17,18, - 19,19,19,19,18,19,19,20,19,19,21,19,19,19,19,20, - 21,19,20,21,21,19,21,21,19,19,21,21,21,21,21,21, - 21,21,20,19,21,21,21,20,21,20,19,21,21,21,21,21, - 20,21,21,21,21,21,21,21,21,21,21,20,20,21,21,21, - 21,21,21,21,21,21,21,21,20,21,20,21,21,21,16,17, - 17,18,18,18,19,19,21,19,19,19,19,21,21,20,20,19, - 19,21,20,21,20,20,21,21,21,20,20,21,21,20,21,19, - 19,19,20,21,20,21,21,21,20,21,21,21,21,21,21,21, - 21,21,21,20,21,21,21,21,21,19,21,21,21,21,21,21, - 20,19,21,21,21,21,21,20,21,21,21,21,21,21,21,16, - 17,18,18,18,19,18,18,19,19,19,19,20,21,20,19,21, - 21,21,21,20,21,20,20,21,21,21,21,21,20,20,20,21, - 21,21,21,21,21,21,20,20,20,21,21,21,21,20,20,20, - 21,20,21,21,20,20,21,21,20,21,21,21,20,21,21,21, - 21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21, - 17,18,18,19,18,19,19,18,18,20,19,19,21,19,20,20, - 21,21,19,20,20,20,19,20,20,21,20,21,21,20,21,21, - 20,21,20,21,20,21,20,19,21,19,19,20,21,21,21,21, - 21,21,21,21,20,21,21,21,20,21,20,21,20,21,21,20, - 21,21,21,21,20,21,21,21,21,21,21,21,21,20,21,21, - 20, -}; - -static float _vq_quantthresh_res0_256_1024_6[] = { - -39.5, -38.5, -37.5, -36.5, -35.5, -34.5, -33.5, -32.5, - -31.5, -30.5, -29.5, -28.5, -27.5, -26.5, -25.5, -24.5, - -23.5, -22.5, -21.5, -20.5, -19.5, -18.5, -17.5, -16.5, - -15.5, -14.5, -13.5, -12.5, -11.5, -10.5, -9.5, -8.5, - -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, - 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, - 8.5, 9.5, 10.5, 11.5, 12.5, 13.5, 14.5, 15.5, - 16.5, 17.5, 18.5, 19.5, 20.5, 21.5, 22.5, 23.5, - 24.5, 25.5, 26.5, 27.5, 28.5, 29.5, 30.5, 31.5, - 32.5, 33.5, 34.5, 35.5, 36.5, 37.5, 38.5, 39.5, -}; - -static long _vq_quantmap_res0_256_1024_6[] = { - 79, 77, 75, 73, 71, 69, 67, 65, - 63, 61, 59, 57, 55, 53, 51, 49, - 47, 45, 43, 41, 39, 37, 35, 33, - 31, 29, 27, 25, 23, 21, 19, 17, - 15, 13, 11, 9, 7, 5, 3, 1, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, 18, 20, 22, 24, 26, 28, 30, - 32, 34, 36, 38, 40, 42, 44, 46, - 48, 50, 52, 54, 56, 58, 60, 62, - 64, 66, 68, 70, 72, 74, 76, 78, - 80, -}; - -static encode_aux_threshmatch _vq_auxt_res0_256_1024_6 = { - _vq_quantthresh_res0_256_1024_6, - _vq_quantmap_res0_256_1024_6, - 81, - 81 -}; - -static static_codebook _vq_book_res0_256_1024_6 = { - 2, 6561, - _vq_lengthlist_res0_256_1024_6, - 1, -525074432, 1611661312, 7, 0, - _vq_quantlist_res0_256_1024_6, - NULL, - &_vq_auxt_res0_256_1024_6, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_256_1024_7.vqh b/lib/books/res0_256_1024_7.vqh deleted file mode 100644 index 1440772b..00000000 --- a/lib/books/res0_256_1024_7.vqh +++ /dev/null @@ -1,816 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_256_1024_7_VQH_ -#define _V_res0_256_1024_7_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_256_1024_7[] = { - 290, - 289, - 291, - 288, - 292, - 287, - 293, - 286, - 294, - 285, - 295, - 284, - 296, - 283, - 297, - 282, - 298, - 281, - 299, - 280, - 300, - 279, - 301, - 278, - 302, - 277, - 303, - 276, - 304, - 275, - 305, - 274, - 306, - 273, - 307, - 272, - 308, - 271, - 309, - 270, - 310, - 269, - 311, - 268, - 312, - 267, - 313, - 266, - 314, - 265, - 315, - 264, - 316, - 263, - 317, - 262, - 318, - 261, - 319, - 260, - 320, - 259, - 321, - 258, - 322, - 257, - 323, - 256, - 324, - 255, - 325, - 254, - 326, - 253, - 327, - 252, - 328, - 251, - 329, - 250, - 330, - 249, - 331, - 248, - 332, - 247, - 333, - 246, - 334, - 245, - 335, - 244, - 336, - 243, - 337, - 242, - 338, - 241, - 339, - 240, - 340, - 239, - 341, - 238, - 342, - 237, - 343, - 236, - 344, - 235, - 345, - 234, - 346, - 233, - 347, - 232, - 348, - 231, - 349, - 230, - 350, - 229, - 351, - 228, - 352, - 227, - 353, - 226, - 354, - 225, - 355, - 224, - 356, - 223, - 357, - 222, - 358, - 221, - 359, - 220, - 360, - 219, - 361, - 218, - 362, - 217, - 363, - 216, - 364, - 215, - 365, - 214, - 366, - 213, - 367, - 212, - 368, - 211, - 369, - 210, - 370, - 209, - 371, - 208, - 372, - 207, - 373, - 206, - 374, - 205, - 375, - 204, - 376, - 203, - 377, - 202, - 378, - 201, - 379, - 200, - 380, - 199, - 381, - 198, - 382, - 197, - 383, - 196, - 384, - 195, - 385, - 194, - 386, - 193, - 387, - 192, - 388, - 191, - 389, - 190, - 390, - 189, - 391, - 188, - 392, - 187, - 393, - 186, - 394, - 185, - 395, - 184, - 396, - 183, - 397, - 182, - 398, - 181, - 399, - 180, - 400, - 179, - 401, - 178, - 402, - 177, - 403, - 176, - 404, - 175, - 405, - 174, - 406, - 173, - 407, - 172, - 408, - 171, - 409, - 170, - 410, - 169, - 411, - 168, - 412, - 167, - 413, - 166, - 414, - 165, - 415, - 164, - 416, - 163, - 417, - 162, - 418, - 161, - 419, - 160, - 420, - 159, - 421, - 158, - 422, - 157, - 423, - 156, - 424, - 155, - 425, - 154, - 426, - 153, - 427, - 152, - 428, - 151, - 429, - 150, - 430, - 149, - 431, - 148, - 432, - 147, - 433, - 146, - 434, - 145, - 435, - 144, - 436, - 143, - 437, - 142, - 438, - 141, - 439, - 140, - 440, - 139, - 441, - 138, - 442, - 137, - 443, - 136, - 444, - 135, - 445, - 134, - 446, - 133, - 447, - 132, - 448, - 131, - 449, - 130, - 450, - 129, - 451, - 128, - 452, - 127, - 453, - 126, - 454, - 125, - 455, - 124, - 456, - 123, - 457, - 122, - 458, - 121, - 459, - 120, - 460, - 119, - 461, - 118, - 462, - 117, - 463, - 116, - 464, - 115, - 465, - 114, - 466, - 113, - 467, - 112, - 468, - 111, - 469, - 110, - 470, - 109, - 471, - 108, - 472, - 107, - 473, - 106, - 474, - 105, - 475, - 104, - 476, - 103, - 477, - 102, - 478, - 101, - 479, - 100, - 480, - 99, - 481, - 98, - 482, - 97, - 483, - 96, - 484, - 95, - 485, - 94, - 486, - 93, - 487, - 92, - 488, - 91, - 489, - 90, - 490, - 89, - 491, - 88, - 492, - 87, - 493, - 86, - 494, - 85, - 495, - 84, - 496, - 83, - 497, - 82, - 498, - 81, - 499, - 80, - 500, - 79, - 501, - 78, - 502, - 77, - 503, - 76, - 504, - 75, - 505, - 74, - 506, - 73, - 507, - 72, - 508, - 71, - 509, - 70, - 510, - 69, - 511, - 68, - 512, - 67, - 513, - 66, - 514, - 65, - 515, - 64, - 516, - 63, - 517, - 62, - 518, - 61, - 519, - 60, - 520, - 59, - 521, - 58, - 522, - 57, - 523, - 56, - 524, - 55, - 525, - 54, - 526, - 53, - 527, - 52, - 528, - 51, - 529, - 50, - 530, - 49, - 531, - 48, - 532, - 47, - 533, - 46, - 534, - 45, - 535, - 44, - 536, - 43, - 537, - 42, - 538, - 41, - 539, - 40, - 540, - 39, - 541, - 38, - 542, - 37, - 543, - 36, - 544, - 35, - 545, - 34, - 546, - 33, - 547, - 32, - 548, - 31, - 549, - 30, - 550, - 29, - 551, - 28, - 552, - 27, - 553, - 26, - 554, - 25, - 555, - 24, - 556, - 23, - 557, - 22, - 558, - 21, - 559, - 20, - 560, - 19, - 561, - 18, - 562, - 17, - 563, - 16, - 564, - 15, - 565, - 14, - 566, - 13, - 567, - 12, - 568, - 11, - 569, - 10, - 570, - 9, - 571, - 8, - 572, - 7, - 573, - 6, - 574, - 5, - 575, - 4, - 576, - 3, - 577, - 2, - 578, - 1, - 579, - 0, - 580, -}; - -static long _vq_lengthlist_res0_256_1024_7[] = { - 3, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 7, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 9, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,11,10,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,13,13,13,12,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 14,13,13,14,14,14,14,14,13,14,14,14,14,14,14,14, - 14,14,14,14,14,14,14,14,14,14,14,14,14,15,14,15, - 14,15,14,15,15,14,15,15,15,15,15,15,15,14,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15,16,15,15,15, - 15,15,16,15,15,15,16,16,16,16,16,16,16,16,16,15, - 16,15,16,16,16,16,16,16,16,16,16,16,16,16,16,17, - 16,16,16,16,16,16,17,17,17,16,16,16,17,17,17,17, - 16,16,17,17,16,17,17,17,17,17,17,17,19,16,17,16, - 17,17,17,17,17,17,18,18,17,17,18,17,18,18,17,18, - 17,18,18,17,18,18,18,17,18,19,18,17,18,18,19,18, - 19,18,19,19,18,18,18,19,17,19,18,19,19,19,18,18, - 20,18,19,20,18,18,18,18,20,18,18,18,20,21,21,19, - 19,20,19,20,20,20,19,19,19,19,21,21,18,21,18,19, - 19,20,19,19,20,19,21,20,21,20,19,18,21,21,19,21, - 19,19,20,19,21,21,20,21,21,20,19,20,19,20,20,20, - 20,20,19,19,19,21,20,21,21,20,20,21,20,19,20,21, - 21,20,19,20,21,21,21,20,21,21,21,21,21,20,21,21, - 20,20,21,21,21,20,20,21,21,21,21,21,20,21,21,21, - 21,21,21,21,21,21,21,21,21,21,21,19,21,21,21,21, - 21,21,21,20,21,21,21,21,21,21,20,21,21,21,21,21, - 21,21,21,21,21,20,21,21,21,21,21,21,21,20,21,20, - 21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21, - 21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21, - 21,21,20,21,21,21,21,21,21,21,21,21,21,21,21,21, - 21,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21, - 21,21,21,20,20, -}; - -static float _vq_quantthresh_res0_256_1024_7[] = { - -289.5, -288.5, -287.5, -286.5, -285.5, -284.5, -283.5, -282.5, - -281.5, -280.5, -279.5, -278.5, -277.5, -276.5, -275.5, -274.5, - -273.5, -272.5, -271.5, -270.5, -269.5, -268.5, -267.5, -266.5, - -265.5, -264.5, -263.5, -262.5, -261.5, -260.5, -259.5, -258.5, - -257.5, -256.5, -255.5, -254.5, -253.5, -252.5, -251.5, -250.5, - -249.5, -248.5, -247.5, -246.5, -245.5, -244.5, -243.5, -242.5, - -241.5, -240.5, -239.5, -238.5, -237.5, -236.5, -235.5, -234.5, - -233.5, -232.5, -231.5, -230.5, -229.5, -228.5, -227.5, -226.5, - -225.5, -224.5, -223.5, -222.5, -221.5, -220.5, -219.5, -218.5, - -217.5, -216.5, -215.5, -214.5, -213.5, -212.5, -211.5, -210.5, - -209.5, -208.5, -207.5, -206.5, -205.5, -204.5, -203.5, -202.5, - -201.5, -200.5, -199.5, -198.5, -197.5, -196.5, -195.5, -194.5, - -193.5, -192.5, -191.5, -190.5, -189.5, -188.5, -187.5, -186.5, - -185.5, -184.5, -183.5, -182.5, -181.5, -180.5, -179.5, -178.5, - -177.5, -176.5, -175.5, -174.5, -173.5, -172.5, -171.5, -170.5, - -169.5, -168.5, -167.5, -166.5, -165.5, -164.5, -163.5, -162.5, - -161.5, -160.5, -159.5, -158.5, -157.5, -156.5, -155.5, -154.5, - -153.5, -152.5, -151.5, -150.5, -149.5, -148.5, -147.5, -146.5, - -145.5, -144.5, -143.5, -142.5, -141.5, -140.5, -139.5, -138.5, - -137.5, -136.5, -135.5, -134.5, -133.5, -132.5, -131.5, -130.5, - -129.5, -128.5, -127.5, -126.5, -125.5, -124.5, -123.5, -122.5, - -121.5, -120.5, -119.5, -118.5, -117.5, -116.5, -115.5, -114.5, - -113.5, -112.5, -111.5, -110.5, -109.5, -108.5, -107.5, -106.5, - -105.5, -104.5, -103.5, -102.5, -101.5, -100.5, -99.5, -98.5, - -97.5, -96.5, -95.5, -94.5, -93.5, -92.5, -91.5, -90.5, - -89.5, -88.5, -87.5, -86.5, -85.5, -84.5, -83.5, -82.5, - -81.5, -80.5, -79.5, -78.5, -77.5, -76.5, -75.5, -74.5, - -73.5, -72.5, -71.5, -70.5, -69.5, -68.5, -67.5, -66.5, - -65.5, -64.5, -63.5, -62.5, -61.5, -60.5, -59.5, -58.5, - -57.5, -56.5, -55.5, -54.5, -53.5, -52.5, -51.5, -50.5, - -49.5, -48.5, -47.5, -46.5, -45.5, -44.5, -43.5, -42.5, - -41.5, -40.5, -39.5, -38.5, -37.5, -36.5, -35.5, -34.5, - -33.5, -32.5, -31.5, -30.5, -29.5, -28.5, -27.5, -26.5, - -25.5, -24.5, -23.5, -22.5, -21.5, -20.5, -19.5, -18.5, - -17.5, -16.5, -15.5, -14.5, -13.5, -12.5, -11.5, -10.5, - -9.5, -8.5, -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, - -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, - 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5, - 14.5, 15.5, 16.5, 17.5, 18.5, 19.5, 20.5, 21.5, - 22.5, 23.5, 24.5, 25.5, 26.5, 27.5, 28.5, 29.5, - 30.5, 31.5, 32.5, 33.5, 34.5, 35.5, 36.5, 37.5, - 38.5, 39.5, 40.5, 41.5, 42.5, 43.5, 44.5, 45.5, - 46.5, 47.5, 48.5, 49.5, 50.5, 51.5, 52.5, 53.5, - 54.5, 55.5, 56.5, 57.5, 58.5, 59.5, 60.5, 61.5, - 62.5, 63.5, 64.5, 65.5, 66.5, 67.5, 68.5, 69.5, - 70.5, 71.5, 72.5, 73.5, 74.5, 75.5, 76.5, 77.5, - 78.5, 79.5, 80.5, 81.5, 82.5, 83.5, 84.5, 85.5, - 86.5, 87.5, 88.5, 89.5, 90.5, 91.5, 92.5, 93.5, - 94.5, 95.5, 96.5, 97.5, 98.5, 99.5, 100.5, 101.5, - 102.5, 103.5, 104.5, 105.5, 106.5, 107.5, 108.5, 109.5, - 110.5, 111.5, 112.5, 113.5, 114.5, 115.5, 116.5, 117.5, - 118.5, 119.5, 120.5, 121.5, 122.5, 123.5, 124.5, 125.5, - 126.5, 127.5, 128.5, 129.5, 130.5, 131.5, 132.5, 133.5, - 134.5, 135.5, 136.5, 137.5, 138.5, 139.5, 140.5, 141.5, - 142.5, 143.5, 144.5, 145.5, 146.5, 147.5, 148.5, 149.5, - 150.5, 151.5, 152.5, 153.5, 154.5, 155.5, 156.5, 157.5, - 158.5, 159.5, 160.5, 161.5, 162.5, 163.5, 164.5, 165.5, - 166.5, 167.5, 168.5, 169.5, 170.5, 171.5, 172.5, 173.5, - 174.5, 175.5, 176.5, 177.5, 178.5, 179.5, 180.5, 181.5, - 182.5, 183.5, 184.5, 185.5, 186.5, 187.5, 188.5, 189.5, - 190.5, 191.5, 192.5, 193.5, 194.5, 195.5, 196.5, 197.5, - 198.5, 199.5, 200.5, 201.5, 202.5, 203.5, 204.5, 205.5, - 206.5, 207.5, 208.5, 209.5, 210.5, 211.5, 212.5, 213.5, - 214.5, 215.5, 216.5, 217.5, 218.5, 219.5, 220.5, 221.5, - 222.5, 223.5, 224.5, 225.5, 226.5, 227.5, 228.5, 229.5, - 230.5, 231.5, 232.5, 233.5, 234.5, 235.5, 236.5, 237.5, - 238.5, 239.5, 240.5, 241.5, 242.5, 243.5, 244.5, 245.5, - 246.5, 247.5, 248.5, 249.5, 250.5, 251.5, 252.5, 253.5, - 254.5, 255.5, 256.5, 257.5, 258.5, 259.5, 260.5, 261.5, - 262.5, 263.5, 264.5, 265.5, 266.5, 267.5, 268.5, 269.5, - 270.5, 271.5, 272.5, 273.5, 274.5, 275.5, 276.5, 277.5, - 278.5, 279.5, 280.5, 281.5, 282.5, 283.5, 284.5, 285.5, - 286.5, 287.5, 288.5, 289.5, -}; - -static long _vq_quantmap_res0_256_1024_7[] = { - 579, 577, 575, 573, 571, 569, 567, 565, - 563, 561, 559, 557, 555, 553, 551, 549, - 547, 545, 543, 541, 539, 537, 535, 533, - 531, 529, 527, 525, 523, 521, 519, 517, - 515, 513, 511, 509, 507, 505, 503, 501, - 499, 497, 495, 493, 491, 489, 487, 485, - 483, 481, 479, 477, 475, 473, 471, 469, - 467, 465, 463, 461, 459, 457, 455, 453, - 451, 449, 447, 445, 443, 441, 439, 437, - 435, 433, 431, 429, 427, 425, 423, 421, - 419, 417, 415, 413, 411, 409, 407, 405, - 403, 401, 399, 397, 395, 393, 391, 389, - 387, 385, 383, 381, 379, 377, 375, 373, - 371, 369, 367, 365, 363, 361, 359, 357, - 355, 353, 351, 349, 347, 345, 343, 341, - 339, 337, 335, 333, 331, 329, 327, 325, - 323, 321, 319, 317, 315, 313, 311, 309, - 307, 305, 303, 301, 299, 297, 295, 293, - 291, 289, 287, 285, 283, 281, 279, 277, - 275, 273, 271, 269, 267, 265, 263, 261, - 259, 257, 255, 253, 251, 249, 247, 245, - 243, 241, 239, 237, 235, 233, 231, 229, - 227, 225, 223, 221, 219, 217, 215, 213, - 211, 209, 207, 205, 203, 201, 199, 197, - 195, 193, 191, 189, 187, 185, 183, 181, - 179, 177, 175, 173, 171, 169, 167, 165, - 163, 161, 159, 157, 155, 153, 151, 149, - 147, 145, 143, 141, 139, 137, 135, 133, - 131, 129, 127, 125, 123, 121, 119, 117, - 115, 113, 111, 109, 107, 105, 103, 101, - 99, 97, 95, 93, 91, 89, 87, 85, - 83, 81, 79, 77, 75, 73, 71, 69, - 67, 65, 63, 61, 59, 57, 55, 53, - 51, 49, 47, 45, 43, 41, 39, 37, - 35, 33, 31, 29, 27, 25, 23, 21, - 19, 17, 15, 13, 11, 9, 7, 5, - 3, 1, 0, 2, 4, 6, 8, 10, - 12, 14, 16, 18, 20, 22, 24, 26, - 28, 30, 32, 34, 36, 38, 40, 42, - 44, 46, 48, 50, 52, 54, 56, 58, - 60, 62, 64, 66, 68, 70, 72, 74, - 76, 78, 80, 82, 84, 86, 88, 90, - 92, 94, 96, 98, 100, 102, 104, 106, - 108, 110, 112, 114, 116, 118, 120, 122, - 124, 126, 128, 130, 132, 134, 136, 138, - 140, 142, 144, 146, 148, 150, 152, 154, - 156, 158, 160, 162, 164, 166, 168, 170, - 172, 174, 176, 178, 180, 182, 184, 186, - 188, 190, 192, 194, 196, 198, 200, 202, - 204, 206, 208, 210, 212, 214, 216, 218, - 220, 222, 224, 226, 228, 230, 232, 234, - 236, 238, 240, 242, 244, 246, 248, 250, - 252, 254, 256, 258, 260, 262, 264, 266, - 268, 270, 272, 274, 276, 278, 280, 282, - 284, 286, 288, 290, 292, 294, 296, 298, - 300, 302, 304, 306, 308, 310, 312, 314, - 316, 318, 320, 322, 324, 326, 328, 330, - 332, 334, 336, 338, 340, 342, 344, 346, - 348, 350, 352, 354, 356, 358, 360, 362, - 364, 366, 368, 370, 372, 374, 376, 378, - 380, 382, 384, 386, 388, 390, 392, 394, - 396, 398, 400, 402, 404, 406, 408, 410, - 412, 414, 416, 418, 420, 422, 424, 426, - 428, 430, 432, 434, 436, 438, 440, 442, - 444, 446, 448, 450, 452, 454, 456, 458, - 460, 462, 464, 466, 468, 470, 472, 474, - 476, 478, 480, 482, 484, 486, 488, 490, - 492, 494, 496, 498, 500, 502, 504, 506, - 508, 510, 512, 514, 516, 518, 520, 522, - 524, 526, 528, 530, 532, 534, 536, 538, - 540, 542, 544, 546, 548, 550, 552, 554, - 556, 558, 560, 562, 564, 566, 568, 570, - 572, 574, 576, 578, 580, -}; - -static encode_aux_threshmatch _vq_auxt_res0_256_1024_7 = { - _vq_quantthresh_res0_256_1024_7, - _vq_quantmap_res0_256_1024_7, - 581, - 581 -}; - -static static_codebook _vq_book_res0_256_1024_7 = { - 1, 581, - _vq_lengthlist_res0_256_1024_7, - 1, -518905856, 1611661312, 10, 0, - _vq_quantlist_res0_256_1024_7, - NULL, - &_vq_auxt_res0_256_1024_7, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_256_1024aux.vqh b/lib/books/res0_256_1024aux.vqh deleted file mode 100644 index f458bd9c..00000000 --- a/lib/books/res0_256_1024aux.vqh +++ /dev/null @@ -1,40 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - * * - ******************************************************************** - - function: static codebook autogenerated by huff/huffbuld - - ********************************************************************/ - -#ifndef _V_res0_256_1024aux_VQH_ -#define _V_res0_256_1024aux_VQH_ -#include "codebook.h" - -static long _huff_lengthlist_res0_256_1024aux[] = { - 2, 8,11,11,18,13,15,20, 5, 3, 6, 7,10,10,13,20, - 10, 5, 4, 5, 7, 9,13,19,10, 6, 4, 4, 6, 7,10,17, - 17,10, 6, 5, 5, 6,10,17,10, 9, 8, 6, 6, 5, 7,14, - 11,10,10, 8, 8, 5, 6,12,13,11,10, 9, 8, 6, 7,13, -}; - -static static_codebook _huff_book_res0_256_1024aux = { - 2, 64, - _huff_lengthlist_res0_256_1024aux, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_256_128_1.vqh b/lib/books/res0_256_128_1.vqh deleted file mode 100644 index 0ecb0954..00000000 --- a/lib/books/res0_256_128_1.vqh +++ /dev/null @@ -1,63 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_256_128_1_VQH_ -#define _V_res0_256_128_1_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_256_128_1[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist_res0_256_128_1[] = { - 2, 3, 3, 4, 6, 6, 4, 6, 6, 5, 7, 7, 7, 8, 8, 7, - 8, 8, 5, 7, 7, 7, 8, 8, 7, 8, 8, 6, 7, 8, 8, 9, - 9, 8, 9, 9, 8, 9, 9, 9, 9,10,10,10,10, 8, 9, 9, - 9,10, 9, 9,10,10, 6, 7, 7, 8, 8, 9, 8, 9, 9, 8, - 9, 9,10,10,10, 9, 9,10, 8, 9, 9, 9,10,10, 9,10, - 9, -}; - -static float _vq_quantthresh_res0_256_128_1[] = { - -0.5, 0.5, -}; - -static long _vq_quantmap_res0_256_128_1[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt_res0_256_128_1 = { - _vq_quantthresh_res0_256_128_1, - _vq_quantmap_res0_256_128_1, - 3, - 3 -}; - -static static_codebook _vq_book_res0_256_128_1 = { - 4, 81, - _vq_lengthlist_res0_256_128_1, - 1, -535822336, 1611661312, 2, 0, - _vq_quantlist_res0_256_128_1, - NULL, - &_vq_auxt_res0_256_128_1, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_256_128_2.vqh b/lib/books/res0_256_128_2.vqh deleted file mode 100644 index 09922690..00000000 --- a/lib/books/res0_256_128_2.vqh +++ /dev/null @@ -1,99 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_256_128_2_VQH_ -#define _V_res0_256_128_2_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_256_128_2[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static long _vq_lengthlist_res0_256_128_2[] = { - 5, 6, 6, 7, 7, 6, 7, 7, 8, 8, 6, 7, 7, 8, 8, 8, - 8, 8,10,10, 8, 8, 8,10,10, 7, 7, 7, 8, 8, 7, 7, - 8, 8, 9, 7, 8, 8, 9, 9, 9, 9, 9,10,10, 9, 9, 9, - 10,10, 7, 7, 7, 8, 8, 7, 8, 8, 8, 8, 7, 8, 8, 9, - 9, 9, 9, 9,10,10, 9, 9, 9,10,10, 8, 9, 9,10,10, - 9, 9, 9,10,10, 9, 9, 9,11,10,10,11,11,12,12,11, - 10,11,11,12, 8, 9, 9,10,10, 9, 9, 9,10,10, 9, 9, - 9,10,10,10,11,10,12,12,10,11,11,12,12, 7, 8, 8, - 9, 9, 8, 8, 8, 9, 9, 8, 8, 8, 9, 9, 9, 9, 9,11, - 11, 9, 9, 9,10,11, 8, 8, 8, 9, 9, 8, 8, 8, 9,10, - 8, 8, 8,10, 9,10, 9,10,11,11, 9,10,10,11,11, 8, - 8, 8, 9, 9, 8, 8, 8,10, 9, 8, 8, 8, 9,10,10,10, - 9,11,10,10,10, 9,11,11, 9, 9, 9,11,10, 9, 9,10, - 11,11,10,10,10,11,11,11,11,11,12,13,11,11,11,13, - 12, 9, 9,10,10,11, 9,10, 9,11,11,10,10,10,11,11, - 11,11,10,12,11,11,11,11,12,13, 7, 8, 8, 9, 9, 8, - 8, 8, 9, 9, 8, 8, 8, 9, 9, 9, 9, 9,10,10, 9, 9, - 9,11,11, 8, 8, 8, 9, 9, 8, 8, 8,10, 9, 8, 8, 8, - 9, 9, 9,10,10,11,11,10, 9,10,10,11, 8, 8, 8, 9, - 9, 8, 8, 9, 9,10, 8, 8, 8, 9, 9, 9,10,10,11,10, - 9,10, 9,11,11,10,10, 9,11,11,10,10,10,11,11, 9, - 10,10,11,11,11,11,11,12,13,11,11,11,12,13, 9, 9, - 10,10,11,10, 9,10,11,11, 9,10, 9,11,11,11,11,11, - 13,12,11,11,10,12,12, 9, 9, 9,11,11,10,10,10,12, - 11, 9, 9, 9,11,11,10,11,11,13,13,11,11,11,12,12, - 10,10, 9,11,11, 9,10,10,11,12,10,10,10,11,11,11, - 11,11,13,13,11,11,11,13,13, 9, 9,10,11,11,10,10, - 10,11,11, 9,10,10,11,11,11,11,11,13,13,11,11,11, - 12,12,11,11,11,12,13,11,11,11,13,13,11,11,11,13, - 12,12,12,13,12,13,13,13,13,14,14,11,11,11,12,12, - 11,11,10,12,12,11,12,12,13,13,12,13,11,14,12,13, - 13,13,13,13, 9, 9, 9,11,11, 9, 9, 9,11,11,10,10, - 10,11,11,10,11,11,12,12,11,11,11,12,12, 9,10, 9, - 11,11,10,10,10,11,11, 9,10,10,11,11,11,11,11,13, - 12,11,11,11,12,13, 9, 9,10,11,11,10,10,10,11,11, - 10,10, 9,11,11,11,11,12,12,13,12,12,11,13,13,11, - 11,11,12,12,11,12,11,13,13,11,11,11,13,13,13,12, - 13,14,15,12,12,12,12,15,11,11,11,12,12,11,11,12, - 12,13,11,11,11,12,12,12,12,13,14,14,12,13,12,14, - 13, -}; - -static float _vq_quantthresh_res0_256_128_2[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap_res0_256_128_2[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt_res0_256_128_2 = { - _vq_quantthresh_res0_256_128_2, - _vq_quantmap_res0_256_128_2, - 5, - 5 -}; - -static static_codebook _vq_book_res0_256_128_2 = { - 4, 625, - _vq_lengthlist_res0_256_128_2, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist_res0_256_128_2, - NULL, - &_vq_auxt_res0_256_128_2, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_256_128_3.vqh b/lib/books/res0_256_128_3.vqh deleted file mode 100644 index 17230958..00000000 --- a/lib/books/res0_256_128_3.vqh +++ /dev/null @@ -1,80 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_256_128_3_VQH_ -#define _V_res0_256_128_3_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_256_128_3[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static long _vq_lengthlist_res0_256_128_3[] = { - 4, 4, 4, 5, 5, 6, 6, 7, 7, 9, 9,10,10, 4, 5, 5, - 6, 6, 7, 7, 8, 8, 9, 9,10,10, 4, 5, 5, 6, 6, 7, - 6, 8, 8, 9, 9,10,10, 6, 6, 6, 7, 7, 8, 8, 9, 9, - 10,10,12,11, 5, 6, 6, 7, 7, 8, 8, 9, 9,10,10,12, - 11, 6, 7, 7, 8, 8, 9, 9,10,10,12,12,13,13, 6, 7, - 7, 8, 8, 9, 9,10,10,11,12,13,13, 8, 8, 8, 9, 9, - 10,10,12,11,13,13,14,14, 8, 8, 8, 9, 9,10,10,12, - 12,13,13,14,14, 9,10, 9,11,11,12,12,13,13,14,14, - 15,15, 9, 9, 9,11,11,12,12,13,13,14,14,15,15,10, - 11,11,12,12,13,13,15,14,16,15,16,16,10,11,11,12, - 12,13,13,14,14,15,16,16,16, -}; - -static float _vq_quantthresh_res0_256_128_3[] = { - -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, - 2.5, 3.5, 4.5, 5.5, -}; - -static long _vq_quantmap_res0_256_128_3[] = { - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, -}; - -static encode_aux_threshmatch _vq_auxt_res0_256_128_3 = { - _vq_quantthresh_res0_256_128_3, - _vq_quantmap_res0_256_128_3, - 13, - 13 -}; - -static static_codebook _vq_book_res0_256_128_3 = { - 2, 169, - _vq_lengthlist_res0_256_128_3, - 1, -531103744, 1611661312, 4, 0, - _vq_quantlist_res0_256_128_3, - NULL, - &_vq_auxt_res0_256_128_3, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_256_128_4.vqh b/lib/books/res0_256_128_4.vqh deleted file mode 100644 index 3c09d1ec..00000000 --- a/lib/books/res0_256_128_4.vqh +++ /dev/null @@ -1,565 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_256_128_4_VQH_ -#define _V_res0_256_128_4_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_256_128_4[] = { - 40, - 39, - 41, - 38, - 42, - 37, - 43, - 36, - 44, - 35, - 45, - 34, - 46, - 33, - 47, - 32, - 48, - 31, - 49, - 30, - 50, - 29, - 51, - 28, - 52, - 27, - 53, - 26, - 54, - 25, - 55, - 24, - 56, - 23, - 57, - 22, - 58, - 21, - 59, - 20, - 60, - 19, - 61, - 18, - 62, - 17, - 63, - 16, - 64, - 15, - 65, - 14, - 66, - 13, - 67, - 12, - 68, - 11, - 69, - 10, - 70, - 9, - 71, - 8, - 72, - 7, - 73, - 6, - 74, - 5, - 75, - 4, - 76, - 3, - 77, - 2, - 78, - 1, - 79, - 0, - 80, -}; - -static long _vq_lengthlist_res0_256_128_4[] = { - 5, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 8, 8, 9, - 9, 9, 9,10,10,10,10,10,10,10,10,11,10,11,11,11, - 11,11,11,11,11,11,11,12,12,12,12,12,12,13,12,13, - 12,13,13,13,13,13,14,14,13,14,14,14,14,14,15,15, - 15,15,15,15,15,16,17,15,18,17,17,17,17,16,17,18, - 17, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, - 9, 9, 9, 9, 9, 9, 9, 9,10,10,10,10,10,10,10,10, - 10,10,10,11,11,11,11,11,11,11,11,11,12,11,12,11, - 12,12,12,12,13,12,13,13,13,13,14,13,14,14,14,14, - 14,14,14,14,15,15,15,15,15,16,15,16,15,15,16,17, - 15,17, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, - 8, 9, 9, 9, 9, 9, 9, 9,10,10,10,10,10,10,10,10, - 10,10,10,10,10,11,10,11,11,11,11,11,11,12,12,12, - 12,12,12,12,12,13,12,13,13,13,13,14,13,14,14,14, - 13,14,14,14,14,14,15,15,16,14,15,16,16,15,15,16, - 15,15,16, 7, 7, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, - 9, 9, 9, 9,10,10,10,10,10,10,10,10,10,11,11,11, - 11,11,11,11,11,11,11,11,12,11,12,12,12,12,12,12, - 13,12,13,13,13,12,14,13,13,13,14,14,14,14,15,14, - 14,15,15,15,15,15,14,15,16,15,16,16,15,16,15,17, - 16,15,15,17, 7, 7, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, - 9, 9, 9, 9, 9,10,10,10,10,10,10,10,10,10,11,10, - 11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12, - 12,13,12,13,12,13,13,13,13,14,13,14,14,14,14,14, - 14,14,14,15,15,15,15,15,16,15,16,16,16,16,16,17, - 16,16,16,16,18, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, - 10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11, - 11,11,11,11,12,11,12,12,12,12,12,12,12,12,13,12, - 13,13,13,12,13,13,14,13,14,13,14,14,14,14,15,14, - 14,15,15,15,15,15,15,16,14,15,15,15,16,17,16,16, - 17,16,17,17,16,16, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, - 10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11, - 11,11,11,11,11,12,11,12,12,12,12,12,12,12,12,13, - 12,13,12,13,13,13,13,14,14,14,14,14,14,14,15,14, - 14,14,14,16,15,15,16,15,16,15,15,16,16,17,16,16, - 16,17,17,17,19,16,19, 8, 8, 8, 9, 9, 9, 9,10,10, - 10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,11, - 11,11,11,12,12,12,12,12,12,12,12,12,12,12,13,12, - 13,12,13,13,13,13,14,13,14,13,14,14,14,14,15,14, - 15,14,14,14,15,16,15,15,16,15,16,15,16,16,16,17, - 17,17,16,19,16,17,16,18, 8, 8, 8, 9, 9, 9, 9,10, - 10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,11, - 11,11,11,12,12,12,11,12,12,12,12,12,12,13,13,13, - 12,13,13,13,13,14,13,14,13,14,14,15,14,14,14,15, - 14,15,15,14,15,15,15,16,15,16,16,17,16,16,16,16, - 16,15,18,18,16,17,19,17,19, 9, 9, 9,10,10,10,10, - 10,10,10,11,11,11,11,11,11,11,11,11,11,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,13,13,13,13, - 13,13,13,13,13,13,14,13,14,13,14,14,14,14,15,14, - 15,15,16,14,16,15,15,15,16,16,16,17,16,16,17,16, - 16,17,16,16,16,17,18,17,17,17, 9, 9, 9,10,10,10, - 10,10,10,10,11,11,11,11,11,11,11,11,11,12,11,11, - 12,11,12,12,12,12,12,12,12,12,12,12,12,13,13,13, - 13,13,13,13,13,14,13,14,13,14,14,15,14,14,14,15, - 15,15,15,16,15,15,15,16,17,16,16,15,16,15,17,16, - 16,16,17,17,19,18,18,17,18,17,19,10, 9, 9,10,10, - 10,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12, - 12,12,12,12,12,12,12,13,12,13,13,13,13,13,13,13, - 13,13,14,13,14,14,14,13,14,14,14,14,15,14,14,14, - 15,15,15,16,17,15,17,15,16,16,16,16,15,16,18,17, - 16,18,16,17,17,17,17,17,19,16,17,17,10, 9, 9,10, - 10,11,10,11,11,11,11,11,11,11,12,12,12,12,12,12, - 12,12,12,12,12,12,13,12,12,13,12,13,12,13,13,13, - 13,13,13,13,13,14,13,14,14,14,14,15,14,15,14,15, - 14,16,15,16,15,15,15,16,16,16,15,15,15,15,17,16, - 16,17,16,16,16,18,18,16,19,17,17,17,16, 9, 9, 9, - 10,10,11,11,11,11,12,11,11,12,12,12,12,12,12,13, - 12,12,13,13,12,13,12,13,13,13,13,13,13,13,13,13, - 13,13,14,14,14,13,14,14,14,14,14,14,15,15,15,14, - 16,15,16,15,15,15,16,16,16,16,16,16,16,17,16,17, - 17,19,16,16,16,18,19,17,17,18,17,19,18,19, 9, 9, - 9,10,10,11,11,11,11,11,11,12,12,12,12,12,12,12, - 12,12,12,12,12,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,14,13,14,14,14,13,14,14,14,14,15,14,15, - 15,15,16,16,16,16,16,15,16,16,17,16,16,17,19,16, - 17,17,17,19,18,17,17,17,17,17,18,18,18,17,18,10, - 10,10,11,11,11,11,12,12,12,12,12,12,12,13,12,13, - 12,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,14,14,13,14,13,15,14,15,14,14,14,15,14,15,15, - 16,15,16,15,17,16,16,17,16,16,16,16,18,16,17,16, - 18,17,19,17,17,16,18,18,18,17,16,19,17,18,17,19, - 10,10,10,11,11,11,11,12,12,12,12,12,12,12,12,12, - 12,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13, - 13,14,14,14,14,14,14,14,13,14,14,14,14,15,15,15, - 14,15,15,16,16,16,16,17,15,16,16,19,17,18,16,19, - 18,16,18,18,17,17,19,16,19,17,19,18,17,18,19,17, - 18,11,10,11,11,11,12,12,12,12,12,13,13,12,13,13, - 12,13,13,13,13,13,13,13,13,14,13,14,13,13,13,13, - 13,14,14,14,14,14,14,14,14,14,15,14,15,16,16,14, - 16,15,19,15,16,15,16,17,17,17,17,16,18,17,17,19, - 19,16,19,18,17,17,19,18,18,19,19,18,17,17,17,18, - 19,19,10,11,11,11,12,12,12,12,12,12,12,12,12,13, - 13,13,13,13,13,13,13,13,13,13,14,13,13,13,14,14, - 14,14,14,14,14,14,14,15,14,15,14,15,14,15,15,15, - 15,15,15,17,15,16,16,16,16,16,16,16,17,16,16,17, - 18,18,17,17,17,19,17,18,18,18,17,17,17,18,17,19, - 19,18,19,11,11,11,12,12,12,12,12,13,13,13,13,13, - 13,13,13,13,13,14,14,13,13,14,14,14,14,14,14,14, - 14,14,14,14,14,14,14,14,14,15,14,14,15,14,15,14, - 16,15,16,15,18,15,17,16,18,15,19,17,18,16,19,18, - 19,17,18,18,17,19,19,18,19,17,19,19,17,19,18,19, - 17,17,19,19,11,11,11,12,12,12,12,12,12,13,13,13, - 13,13,13,13,13,13,13,13,14,14,13,14,13,14,14,14, - 13,14,14,14,14,14,14,15,14,14,14,15,15,15,15,15, - 16,16,16,19,15,16,16,16,16,17,16,17,16,19,19,16, - 16,19,16,18,17,18,17,16,18,18,18,18,19,17,18,18, - 19,18,19,18,19,12,12,11,12,12,13,13,13,13,13,13, - 13,13,13,14,13,14,14,14,14,14,13,14,14,14,14,14, - 15,14,14,14,14,14,14,14,14,15,15,15,15,15,16,15, - 16,15,16,15,16,15,17,15,16,16,17,16,19,17,16,17, - 19,17,17,17,17,17,19,19,18,19,19,19,18,18,18,19, - 19,18,19,17,19,19,12,12,12,12,12,13,13,13,13,13, - 13,13,13,13,14,14,13,14,14,14,14,14,13,14,14,14, - 14,14,14,14,15,14,15,14,14,15,14,15,14,14,15,15, - 15,18,14,17,15,16,15,17,15,18,17,16,17,17,16,16, - 18,16,19,16,16,18,17,18,19,18,18,19,19,17,19,19, - 18,18,19,17,19,19,19,12,12,12,13,13,13,13,13,14, - 13,13,13,14,13,14,14,14,14,14,14,14,14,15,15,14, - 14,14,15,15,15,14,14,14,14,14,15,15,15,15,17,15, - 16,14,16,15,16,15,16,16,17,16,17,16,17,17,17,16, - 18,17,19,19,18,18,18,18,17,18,17,19,19,18,19,18, - 17,19,19,19,17,19,18,19,12,12,12,13,13,13,13,13, - 13,13,13,14,14,14,14,13,14,14,14,14,14,14,15,14, - 15,14,14,15,15,15,15,14,14,15,15,15,15,14,15,16, - 15,16,16,16,15,16,15,17,15,19,15,17,15,17,15,17, - 18,17,16,17,17,17,17,17,17,19,17,18,17,17,18,19, - 19,18,19,18,18,19,19,19,17,12,12,12,13,13,13,14, - 14,14,14,14,14,14,14,15,14,14,14,14,15,14,15,15, - 14,14,15,15,15,14,14,15,15,15,16,15,15,15,16,15, - 16,16,16,17,15,16,16,18,16,16,17,17,17,17,16,16, - 19,17,19,17,19,17,19,18,19,17,17,19,18,18,17,18, - 17,19,18,18,19,19,17,19,19,19,12,12,12,13,13,13, - 13,13,13,14,14,14,14,14,14,15,14,14,14,15,14,14, - 15,14,14,14,15,14,15,15,15,14,14,15,15,15,15,17, - 16,16,16,16,16,17,15,17,16,16,15,16,16,19,16,18, - 16,19,17,17,18,17,17,17,17,18,18,17,18,19,18,18, - 19,18,19,19,18,19,19,18,19,19,19,13,13,13,13,13, - 14,14,14,14,14,14,14,14,14,14,14,15,14,15,15,14, - 14,15,15,15,15,15,15,15,14,15,15,16,16,14,15,15, - 15,16,16,16,17,15,17,17,16,16,16,16,17,17,17,16, - 19,17,18,17,17,18,17,18,18,18,18,17,19,18,19,19, - 18,17,19,19,19,19,19,18,19,18,19,17,13,13,13,13, - 13,13,13,14,14,14,14,14,14,15,15,15,14,15,14,15, - 15,14,15,14,14,15,15,15,15,15,14,15,16,16,15,15, - 16,16,15,15,16,16,17,16,16,17,17,17,18,19,16,17, - 17,19,18,18,17,17,18,19,17,18,19,19,17,17,19,19, - 19,18,17,19,19,19,19,19,17,19,19,19,19,13,13,13, - 14,14,14,14,14,14,15,15,14,14,15,14,14,15,14,16, - 14,15,14,14,15,15,15,15,15,15,15,15,15,16,16,15, - 15,16,17,16,16,16,16,18,16,17,18,16,17,17,17,16, - 17,18,17,17,19,17,18,17,17,16,18,19,19,17,19,19, - 19,19,18,19,18,19,19,19,19,18,19,18,19,18,13,13, - 13,14,14,14,14,14,15,15,15,15,15,15,15,14,14,14, - 15,15,14,14,16,15,15,15,15,15,15,16,15,15,15,15, - 15,16,15,16,16,17,16,16,16,18,15,16,17,19,17,19, - 16,17,17,17,18,18,19,17,18,18,18,18,18,18,19,19, - 19,18,18,19,19,19,19,19,19,19,19,19,19,19,18,14, - 14,13,14,14,14,14,15,15,15,14,14,16,15,15,15,16, - 16,15,15,15,15,16,15,16,15,15,15,15,15,15,15,15, - 15,16,16,16,17,17,16,16,17,16,16,18,15,17,16,16, - 16,16,19,17,19,17,17,19,18,18,19,19,18,18,19,17, - 19,17,19,19,18,19,19,18,19,18,18,18,19,19,19,18, - 14,14,13,14,13,14,15,14,15,14,14,14,14,14,14,15, - 15,15,15,17,15,15,16,15,15,15,15,16,15,16,15,16, - 16,17,15,16,16,17,16,16,16,16,16,17,18,18,18,17, - 18,18,17,19,17,18,19,19,17,18,18,17,17,19,17,19, - 19,18,19,19,19,19,17,19,18,19,18,19,19,19,18,19, - 19,14,13,13,14,14,14,14,14,15,15,15,15,15,15,15, - 15,16,15,15,15,16,15,15,15,16,15,16,17,15,16,16, - 16,17,15,16,17,16,16,16,16,19,16,17,17,16,18,16, - 18,17,18,17,17,17,17,18,17,17,18,19,19,19,19,18, - 17,19,19,18,19,19,19,19,19,19,19,19,19,19,19,19, - 18,19,13,14,14,14,14,14,14,15,14,14,14,15,15,15, - 15,15,15,16,16,16,16,16,16,15,16,15,15,16,16,16, - 16,16,17,17,15,17,16,16,16,18,16,19,16,19,17,18, - 18,18,17,16,19,17,17,18,18,17,16,18,18,19,19,19, - 17,19,18,18,19,18,19,18,18,18,19,18,19,19,19,19, - 18,18,19,14,14,14,14,14,16,14,15,15,15,15,14,15, - 16,15,16,16,15,16,14,15,15,16,15,17,16,16,15,18, - 15,16,16,16,16,15,17,16,17,18,18,17,17,18,18,19, - 19,17,18,17,17,19,17,18,18,19,17,19,17,18,19,17, - 18,19,19,17,18,19,19,19,19,19,19,19,17,19,18,19, - 19,19,18,19,14,13,14,14,14,14,14,14,16,15,15,15, - 15,15,15,15,16,15,16,15,16,16,15,16,16,15,16,16, - 16,15,16,17,16,16,17,16,16,18,19,16,17,17,16,17, - 18,19,16,17,18,19,18,19,18,19,17,19,18,19,18,19, - 19,19,19,17,19,18,19,19,18,19,19,18,19,19,19,19, - 19,19,19,19,19,14,14,14,14,15,16,15,16,15,15,16, - 16,15,15,15,15,17,16,17,16,15,15,16,15,15,15,16, - 16,17,16,16,16,16,17,17,17,15,18,17,16,17,19,16, - 17,19,16,18,19,18,18,19,18,16,18,17,18,17,18,19, - 19,19,18,18,19,17,19,18,19,19,19,18,19,19,18,19, - 19,19,19,19,19,19,14,14,14,14,15,14,15,14,15,15, - 15,16,15,14,15,17,16,16,16,16,16,17,15,16,16,16, - 16,16,17,16,16,16,17,16,16,17,17,16,15,17,17,18, - 17,19,18,16,18,19,17,19,17,18,17,19,19,19,17,19, - 18,19,19,19,19,17,19,19,18,19,19,19,19,18,19,19, - 19,19,19,19,18,19,19,14,14,14,15,15,15,15,15,15, - 16,17,15,15,16,15,15,15,15,16,16,18,15,17,16,16, - 16,16,17,18,19,17,18,16,17,16,17,16,18,17,18,17, - 19,17,17,19,19,17,17,19,18,17,19,17,19,17,19,19, - 19,19,19,18,17,19,19,19,19,19,19,19,19,19,19,19, - 18,19,19,19,19,19,19,19,14,14,15,15,16,15,16,15, - 15,16,16,16,15,16,16,15,17,16,16,17,16,17,15,17, - 16,18,16,17,16,16,17,15,16,18,16,17,16,16,17,17, - 16,18,16,18,16,19,16,18,18,17,18,18,19,17,19,19, - 19,19,18,19,19,19,18,19,19,19,19,19,19,19,19,19, - 18,19,19,19,19,19,19,19,19,15,14,14,15,16,16,16, - 15,15,15,15,15,15,16,15,16,16,17,17,16,16,16,16, - 16,18,16,16,16,16,18,16,17,16,16,17,18,17,18,19, - 19,17,17,19,18,18,18,17,19,17,18,19,18,17,19,19, - 18,18,19,19,19,18,19,19,19,19,19,19,19,19,19,19, - 19,19,19,19,19,18,18,19,19,19,15,14,14,15,15,15, - 15,16,16,16,16,15,18,15,15,18,16,19,16,16,16,16, - 17,16,17,17,16,16,16,17,16,18,16,17,16,18,17,18, - 18,19,16,18,16,19,16,17,17,18,18,18,19,18,18,18, - 18,19,19,18,18,19,19,19,19,18,19,19,19,19,19,19, - 19,19,19,18,18,19,19,19,19,19,19,14,15,16,15,16, - 15,15,16,16,15,16,17,16,16,17,16,17,17,18,17,17, - 16,17,16,17,18,16,16,15,16,16,19,16,17,16,17,18, - 18,17,17,17,18,16,18,17,19,17,17,17,18,19,19,19, - 19,19,19,19,19,19,19,19,19,18,18,18,19,19,19,19, - 19,19,19,19,19,19,19,19,19,19,19,19,15,15,14,15, - 15,15,15,16,15,15,17,16,16,16,18,17,17,16,16,18, - 17,16,16,18,17,16,18,16,16,17,16,16,16,19,17,16, - 18,17,17,19,17,18,18,18,17,19,17,18,18,19,19,19, - 19,19,18,18,18,18,18,19,19,19,19,19,19,19,19,18, - 19,19,18,19,19,19,18,19,19,19,19,19,19,15,15,15, - 16,15,15,16,16,16,16,17,16,17,16,15,16,16,16,17, - 16,17,17,16,17,16,16,18,16,18,18,17,17,16,17,16, - 17,16,19,18,16,17,18,18,18,17,18,19,18,18,17,18, - 18,19,19,19,19,19,19,19,19,19,19,19,18,19,19,19, - 19,19,19,19,19,19,19,19,19,19,19,19,19,19,16,15, - 15,16,14,16,16,16,16,16,16,16,19,15,16,15,16,17, - 16,16,16,17,16,17,16,17,18,17,17,18,16,19,17,17, - 17,18,16,19,17,17,17,19,18,19,19,19,17,18,19,19, - 18,19,19,19,19,19,19,18,19,19,18,19,17,19,19,19, - 18,19,19,19,19,19,19,19,19,18,19,19,19,19,19,17, - 15,15,16,16,16,17,15,17,16,16,17,17,17,17,15,16, - 18,18,17,17,16,15,17,16,16,17,16,17,17,17,18,18, - 17,18,19,19,19,18,19,19,19,19,18,18,19,18,19,19, - 18,19,19,17,19,19,19,18,19,18,19,19,19,18,19,19, - 19,19,18,19,19,19,19,19,19,19,19,19,18,19,19,19, - 16,16,17,15,16,16,16,17,16,17,17,16,16,17,16,16, - 16,18,18,17,16,17,17,18,18,17,18,18,17,17,18,19, - 18,17,17,19,18,17,19,17,19,19,19,18,18,18,18,18, - 19,19,19,19,18,19,18,18,19,19,19,19,19,18,19,19, - 19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19, - 19,16,15,16,15,15,16,18,17,16,17,17,17,16,19,17, - 16,18,17,17,16,17,16,18,18,17,16,17,18,19,18,17, - 18,17,17,19,19,18,18,18,19,18,19,18,19,17,18,18, - 19,19,19,19,18,19,19,18,19,19,19,19,19,19,18,18, - 19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19, - 19,19,16,15,15,16,16,17,17,16,16,17,17,16,18,17, - 18,18,16,16,17,19,17,18,17,16,17,18,18,16,16,17, - 17,18,16,19,17,18,17,19,19,17,19,18,18,19,17,19, - 18,18,18,19,19,19,19,19,19,18,18,17,17,19,19,19, - 19,19,18,19,19,19,19,19,18,19,19,19,19,19,19,19, - 19,19,19,19,16,15,17,15,16,15,16,16,17,17,16,17, - 19,18,16,16,17,17,19,17,18,17,17,18,18,18,18,17, - 19,18,18,17,19,17,18,17,17,18,19,18,18,19,19,18, - 17,19,19,17,18,18,19,19,19,19,19,18,19,19,19,19, - 19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19, - 19,19,19,19,16,16,16,15,15,16,17,16,16,16,18,16, - 17,16,17,19,17,16,19,18,19,16,17,18,18,17,19,16, - 17,19,17,18,18,19,18,19,17,19,18,18,18,19,18,18, - 18,17,18,19,18,18,19,19,19,19,18,19,17,19,19,19, - 17,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19, - 19,19,19,19,19,17,16,15,15,16,16,18,16,16,16,18, - 17,16,17,17,19,17,17,17,16,17,18,19,19,18,17,17, - 17,18,19,18,18,18,17,17,18,16,19,18,19,18,18,17, - 19,18,19,18,18,17,19,18,17,19,19,19,19,18,19,19, - 19,19,19,19,19,19,19,19,19,19,19,19,18,19,19,19, - 19,19,19,19,19,19,16,16,15,16,16,16,16,17,19,17, - 17,17,17,19,16,17,17,17,18,17,19,18,19,17,17,19, - 16,19,18,19,17,17,17,17,18,17,17,19,18,18,19,19, - 18,17,18,18,18,19,18,18,17,19,19,19,19,19,19,19, - 18,19,19,19,18,19,19,19,19,19,19,19,19,19,19,19, - 19,19,19,19,19,19,19,17,15,16,16,19,17,17,19,18, - 17,18,17,17,18,17,17,16,16,18,19,17,18,19,17,18, - 17,18,17,18,18,18,19,17,17,17,18,17,18,18,19,19, - 19,18,19,19,18,18,19,18,19,19,19,19,19,19,19,18, - 19,19,19,18,19,19,19,19,19,19,19,19,19,19,19,19, - 19,19,19,19,19,19,19,19,18,16,16,16,16,18,16,18, - 17,17,17,16,19,16,18,17,17,16,18,18,19,18,18,17, - 18,17,18,18,17,18,18,18,19,19,16,19,19,19,18,17, - 19,18,19,19,19,19,19,18,19,18,19,19,19,19,17,19, - 19,19,18,19,18,19,19,19,19,19,19,19,19,19,19,19, - 19,18,19,19,19,19,19,19,19,19,18,16,16,16,17,19, - 18,19,17,18,18,18,18,17,17,18,18,17,18,19,17,19, - 17,19,18,18,19,19,19,18,19,19,19,18,19,18,19,18, - 19,19,19,19,19,19,19,18,19,19,18,19,19,19,19,19, - 19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19, - 19,19,19,19,19,19,19,18,19,19,17,17,16,16,17,18, - 19,17,18,18,17,19,17,18,18,18,17,17,17,17,18,19, - 19,19,18,17,19,19,19,16,17,18,17,19,18,18,17,17, - 17,18,18,18,19,17,18,19,18,19,18,19,19,19,19,19, - 19,18,19,19,19,19,19,19,17,19,19,19,19,19,19,19, - 19,19,19,19,19,19,19,19,19,19,19,17,16,17,17,17, - 17,19,18,17,17,18,18,19,18,18,19,18,19,19,18,18, - 19,18,19,18,19,17,18,18,18,18,17,19,19,18,19,19, - 19,19,17,17,19,19,19,19,19,19,19,19,19,19,19,19, - 19,18,18,19,19,19,19,19,18,19,19,18,19,19,19,19, - 19,19,19,19,19,19,19,19,19,19,19,19,18,16,17,16, - 18,18,17,17,19,17,17,18,18,19,19,17,19,17,19,19, - 19,18,18,19,17,19,17,18,19,17,18,18,19,17,19,18, - 19,19,19,19,19,19,18,19,18,19,18,19,18,19,19,19, - 18,19,19,19,18,19,19,19,19,19,19,19,19,19,19,19, - 19,19,19,18,19,19,19,19,19,19,19,19,19,17,16,17, - 18,18,17,19,17,18,17,16,19,19,17,18,17,19,18,17, - 19,18,19,19,19,18,19,19,19,18,18,19,19,19,19,19, - 19,17,18,19,18,19,19,19,19,19,19,19,19,19,19,19, - 19,19,17,19,19,19,19,18,19,18,19,19,19,18,19,19, - 19,19,19,19,19,19,19,19,19,19,19,19,19,19,18,17, - 17,18,18,18,18,17,18,18,18,17,18,19,18,19,19,19, - 19,17,17,17,19,18,18,19,19,19,19,19,18,19,18,19, - 19,19,19,19,18,18,19,19,19,19,19,19,19,19,19,19, - 19,19,19,19,18,19,19,19,19,19,19,19,19,19,19,19, - 19,19,19,19,19,19,19,19,18,19,19,19,19,19,19,18, - 17,17,18,19,18,18,17,18,18,17,18,19,16,18,19,19, - 19,18,18,18,19,18,19,19,19,19,19,19,19,18,18,19, - 19,18,17,19,19,19,19,19,19,19,19,18,19,19,19,19, - 19,19,19,19,19,19,19,17,19,19,19,18,19,19,19,19, - 19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19, - 16,17,16,16,18,18,17,19,19,18,17,17,16,18,19,17, - 17,19,18,18,19,19,19,19,18,19,18,19,19,18,19,19, - 18,19,18,19,18,19,18,19,19,19,19,19,18,19,19,19, - 19,19,19,19,18,19,18,19,19,19,19,19,19,19,19,18, - 19,19,19,19,19,19,19,19,19,19,19,19,19,18,19,19, - 19,18,16,18,18,19,17,19,17,18,18,17,19,19,18,19, - 19,19,19,18,18,19,17,18,19,19,19,18,19,19,19,19, - 18,17,18,19,19,19,19,19,18,19,19,19,19,18,19,19, - 19,19,19,18,19,18,19,19,19,19,19,18,19,19,19,18, - 19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19, - 19,19,18,17,18,17,19,18,18,19,16,18,18,19,19,17, - 17,18,19,19,18,19,19,18,18,19,19,19,19,19,19,18, - 19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19, - 19,19,18,19,18,19,19,19,19,19,18,19,19,19,19,19, - 19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19, - 19,19,19,17,18,17,18,18,18,17,17,18,18,19,18,19, - 17,18,19,19,17,17,19,19,17,19,17,18,19,19,18,19, - 19,19,19,19,19,18,18,19,19,19,19,19,19,19,19,19, - 19,18,19,18,19,19,19,19,19,19,18,19,19,19,19,19, - 19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19, - 19,19,19,19,17,18,16,16,18,18,17,18,17,19,17,19, - 19,18,19,19,18,19,19,19,19,19,19,19,18,18,19,19, - 19,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19, - 19,19,19,19,19,19,18,19,19,19,19,19,19,19,19,19, - 19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19, - 19,19,19,19,19,18,19,18,19,17,17,17,19,19,18,19, - 17,19,18,19,19,19,19,19,19,19,19,19,18,19,19,19, - 18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19, - 19,19,19,18,19,19,19,18,19,19,19,19,19,19,19,19, - 19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19, - 19,19,19,19,19,19,19,16,19,19,19,17,19,17,19,17, - 19,19,18,19,19,19,19,19,19,17,19,19,19,18,19,19, - 19,19,19,19,18,19,18,19,19,19,19,19,19,19,18,19, - 19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19, - 19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19, - 19,19,19,19,19,19,19,18,18,19,19,18,18,18,19,17, - 19,17,19,19,19,19,18,18,18,18,19,19,19,19,18,19, - 19,19,18,19,19,19,19,18,19,19,19,18,19,19,19,19, - 19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19, - 19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19, - 19,19,19,19,19,19,19,19,19,18,19,19,17,19,18,17, - 19,17,19,19,19,19,19,19,19,19,18,17,19,18,19,19, - 17,19,19,19,18,19,19,19,18,19,19,19,18,19,19,19, - 19,19,19,19,19,19,19,19,19,19,19,19,18,19,19,19, - 19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19, - 19,19,19,19,19,19,19,19,19,19,18,18,18,18,19,18, - 17,18,18,18,18,19,19,19,19,18,17,19,19,19,18,19, - 19,19,18,19,19,19,19,19,19,19,19,18,19,18,19,19, - 19,19,17,18,19,19,19,19,19,19,19,19,19,19,19,19, - 19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19, - 19,19,19,19,19,19,19,19,19,19,17,18,17,18,19,19, - 19,19,19,18,19,18,19,19,19,19,18,19,18,19,18,19, - 18,19,19,19,19,19,19,18,19,19,19,17,19,19,19,19, - 19,19,19,18,19,19,18,19,19,19,19,19,19,19,19,19, - 19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19, - 19,19,19,19,19,19,19,19,19,19,19,19,19,17,19,18, - 19,19,19,19,19,19,18,19,19,19,18,17,19,18,18,19, - 19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19, - 19,19,19,18,19,19,19,19,19,19,19,19,19,19,19,19, - 19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19, - 19,19,19,19,19,19,19,19,19,19,19,19,18,19,19,17, - 19,18,18,19,19,19,18,19,18,19,18,19,18,19,19,19, - 19,19,19,19,19,19,19,19,19,18,19,19,19,19,19,19, - 19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19, - 19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19, - 19,19,19,19,19,19,19,19,19,19,19,19,19,19,18,17, - 19,19,19,19,18,18,19,19,18,19,19,19,19,18,19,19, - 19,18,19,19,19,19,18,19,19,19,19,19,19,19,18,19, - 19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19, - 19,19,19,19,19,19,19,18,19,19,19,19,19,19,19,19, - 19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,17, - 17,19,19,19,19,19,18,19,19,19,19,19,19,19,19,19, - 19,18,19,19,19,19,18,19,19,19,19,19,19,19,19,19, - 18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19, - 19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19, - 19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19, - 18,18,18,19,18,19,19,19,19,19,19,18,19,19,19,19, - 19,19,19,19,19,19,19,19,19,19,19,19,19,19,18,19, - 19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19, - 19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19, - 19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19, - 19,19,19,18,18,19,19,18,18,19,19,19,19,18,19,19, - 18,19,18,18,19,19,18,19,19,19,19,19,19,19,19,19, - 19,19,18,19,19,19,19,19,18,19,19,19,19,19,19,19, - 19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19, - 19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19, - 19, -}; - -static float _vq_quantthresh_res0_256_128_4[] = { - -39.5, -38.5, -37.5, -36.5, -35.5, -34.5, -33.5, -32.5, - -31.5, -30.5, -29.5, -28.5, -27.5, -26.5, -25.5, -24.5, - -23.5, -22.5, -21.5, -20.5, -19.5, -18.5, -17.5, -16.5, - -15.5, -14.5, -13.5, -12.5, -11.5, -10.5, -9.5, -8.5, - -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, - 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, - 8.5, 9.5, 10.5, 11.5, 12.5, 13.5, 14.5, 15.5, - 16.5, 17.5, 18.5, 19.5, 20.5, 21.5, 22.5, 23.5, - 24.5, 25.5, 26.5, 27.5, 28.5, 29.5, 30.5, 31.5, - 32.5, 33.5, 34.5, 35.5, 36.5, 37.5, 38.5, 39.5, -}; - -static long _vq_quantmap_res0_256_128_4[] = { - 79, 77, 75, 73, 71, 69, 67, 65, - 63, 61, 59, 57, 55, 53, 51, 49, - 47, 45, 43, 41, 39, 37, 35, 33, - 31, 29, 27, 25, 23, 21, 19, 17, - 15, 13, 11, 9, 7, 5, 3, 1, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, 18, 20, 22, 24, 26, 28, 30, - 32, 34, 36, 38, 40, 42, 44, 46, - 48, 50, 52, 54, 56, 58, 60, 62, - 64, 66, 68, 70, 72, 74, 76, 78, - 80, -}; - -static encode_aux_threshmatch _vq_auxt_res0_256_128_4 = { - _vq_quantthresh_res0_256_128_4, - _vq_quantmap_res0_256_128_4, - 81, - 81 -}; - -static static_codebook _vq_book_res0_256_128_4 = { - 2, 6561, - _vq_lengthlist_res0_256_128_4, - 1, -525074432, 1611661312, 7, 0, - _vq_quantlist_res0_256_128_4, - NULL, - &_vq_auxt_res0_256_128_4, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_256_128_5.vqh b/lib/books/res0_256_128_5.vqh deleted file mode 100644 index b98fd652..00000000 --- a/lib/books/res0_256_128_5.vqh +++ /dev/null @@ -1,580 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_256_128_5_VQH_ -#define _V_res0_256_128_5_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_256_128_5[] = { - 200, - 199, - 201, - 198, - 202, - 197, - 203, - 196, - 204, - 195, - 205, - 194, - 206, - 193, - 207, - 192, - 208, - 191, - 209, - 190, - 210, - 189, - 211, - 188, - 212, - 187, - 213, - 186, - 214, - 185, - 215, - 184, - 216, - 183, - 217, - 182, - 218, - 181, - 219, - 180, - 220, - 179, - 221, - 178, - 222, - 177, - 223, - 176, - 224, - 175, - 225, - 174, - 226, - 173, - 227, - 172, - 228, - 171, - 229, - 170, - 230, - 169, - 231, - 168, - 232, - 167, - 233, - 166, - 234, - 165, - 235, - 164, - 236, - 163, - 237, - 162, - 238, - 161, - 239, - 160, - 240, - 159, - 241, - 158, - 242, - 157, - 243, - 156, - 244, - 155, - 245, - 154, - 246, - 153, - 247, - 152, - 248, - 151, - 249, - 150, - 250, - 149, - 251, - 148, - 252, - 147, - 253, - 146, - 254, - 145, - 255, - 144, - 256, - 143, - 257, - 142, - 258, - 141, - 259, - 140, - 260, - 139, - 261, - 138, - 262, - 137, - 263, - 136, - 264, - 135, - 265, - 134, - 266, - 133, - 267, - 132, - 268, - 131, - 269, - 130, - 270, - 129, - 271, - 128, - 272, - 127, - 273, - 126, - 274, - 125, - 275, - 124, - 276, - 123, - 277, - 122, - 278, - 121, - 279, - 120, - 280, - 119, - 281, - 118, - 282, - 117, - 283, - 116, - 284, - 115, - 285, - 114, - 286, - 113, - 287, - 112, - 288, - 111, - 289, - 110, - 290, - 109, - 291, - 108, - 292, - 107, - 293, - 106, - 294, - 105, - 295, - 104, - 296, - 103, - 297, - 102, - 298, - 101, - 299, - 100, - 300, - 99, - 301, - 98, - 302, - 97, - 303, - 96, - 304, - 95, - 305, - 94, - 306, - 93, - 307, - 92, - 308, - 91, - 309, - 90, - 310, - 89, - 311, - 88, - 312, - 87, - 313, - 86, - 314, - 85, - 315, - 84, - 316, - 83, - 317, - 82, - 318, - 81, - 319, - 80, - 320, - 79, - 321, - 78, - 322, - 77, - 323, - 76, - 324, - 75, - 325, - 74, - 326, - 73, - 327, - 72, - 328, - 71, - 329, - 70, - 330, - 69, - 331, - 68, - 332, - 67, - 333, - 66, - 334, - 65, - 335, - 64, - 336, - 63, - 337, - 62, - 338, - 61, - 339, - 60, - 340, - 59, - 341, - 58, - 342, - 57, - 343, - 56, - 344, - 55, - 345, - 54, - 346, - 53, - 347, - 52, - 348, - 51, - 349, - 50, - 350, - 49, - 351, - 48, - 352, - 47, - 353, - 46, - 354, - 45, - 355, - 44, - 356, - 43, - 357, - 42, - 358, - 41, - 359, - 40, - 360, - 39, - 361, - 38, - 362, - 37, - 363, - 36, - 364, - 35, - 365, - 34, - 366, - 33, - 367, - 32, - 368, - 31, - 369, - 30, - 370, - 29, - 371, - 28, - 372, - 27, - 373, - 26, - 374, - 25, - 375, - 24, - 376, - 23, - 377, - 22, - 378, - 21, - 379, - 20, - 380, - 19, - 381, - 18, - 382, - 17, - 383, - 16, - 384, - 15, - 385, - 14, - 386, - 13, - 387, - 12, - 388, - 11, - 389, - 10, - 390, - 9, - 391, - 8, - 392, - 7, - 393, - 6, - 394, - 5, - 395, - 4, - 396, - 3, - 397, - 2, - 398, - 1, - 399, - 0, - 400, -}; - -static long _vq_lengthlist_res0_256_128_5[] = { - 4, 3, 3, 4, 4, 4, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, - 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, - 8, 9, 9, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10, - 10,10,10,10,10,10,10,11,12,12,11,11,11,11,11,12, - 12,13,13,12,13,12,12,12,11,13,12,13,12,13,13,12, - 13, 8, 9, 8,10, 9, 9, 9, 9, 9,10, 9,10, 9,10, 9, - 11, 9,10,10,11,10,11,10,11,10,11,11,11,10,12,10, - 11,10,12,11,12,11,11,11,12,11,12,12,12,11,12,11, - 12,12,12,13,12,12,12,11,12,11,12,12,14,12,13,12, - 13,11,13,13,12,12,14,12,14,13,13,12,13,13,13,12, - 14,12,13,13,14,13,14,13,14,13,13,12,14,14,14,14, - 13,13,14,13,13,13,13,14,14,12,13,13,14,14,13,13, - 13,14,14,13,13,14,14,13,13,13,13,13,13,14,13,13, - 13,14,13,13,13,14,13,14,14,14,14,13,14,13,13,13, - 13,13,14,14,14,14,14,13,14,13,13,14,14,13,13,13, - 14,14,14,13,14,14,14,14,14,14,14,14,14,13,14,14, - 14,14,14,14,14,14,14,14,13,14,13,13,14,14,14,14, - 14,13,13,14,14,13,14,14,14,14,14,13,14,14,14,14, - 14,14,14,14,14,13,14,14,14,14,14,13,14,14,14,14, - 14,13,14,14,14,14,14,14,14,14,14,13,14,14,14,14, - 14,14,14,14,14,14,14,13,14,14,14,14,14,14,14,14, - 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, - 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, - 14,14,14,14,14,14,14,14,13,14,14,14,14,14,14,14, - 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, - 14, -}; - -static float _vq_quantthresh_res0_256_128_5[] = { - -199.5, -198.5, -197.5, -196.5, -195.5, -194.5, -193.5, -192.5, - -191.5, -190.5, -189.5, -188.5, -187.5, -186.5, -185.5, -184.5, - -183.5, -182.5, -181.5, -180.5, -179.5, -178.5, -177.5, -176.5, - -175.5, -174.5, -173.5, -172.5, -171.5, -170.5, -169.5, -168.5, - -167.5, -166.5, -165.5, -164.5, -163.5, -162.5, -161.5, -160.5, - -159.5, -158.5, -157.5, -156.5, -155.5, -154.5, -153.5, -152.5, - -151.5, -150.5, -149.5, -148.5, -147.5, -146.5, -145.5, -144.5, - -143.5, -142.5, -141.5, -140.5, -139.5, -138.5, -137.5, -136.5, - -135.5, -134.5, -133.5, -132.5, -131.5, -130.5, -129.5, -128.5, - -127.5, -126.5, -125.5, -124.5, -123.5, -122.5, -121.5, -120.5, - -119.5, -118.5, -117.5, -116.5, -115.5, -114.5, -113.5, -112.5, - -111.5, -110.5, -109.5, -108.5, -107.5, -106.5, -105.5, -104.5, - -103.5, -102.5, -101.5, -100.5, -99.5, -98.5, -97.5, -96.5, - -95.5, -94.5, -93.5, -92.5, -91.5, -90.5, -89.5, -88.5, - -87.5, -86.5, -85.5, -84.5, -83.5, -82.5, -81.5, -80.5, - -79.5, -78.5, -77.5, -76.5, -75.5, -74.5, -73.5, -72.5, - -71.5, -70.5, -69.5, -68.5, -67.5, -66.5, -65.5, -64.5, - -63.5, -62.5, -61.5, -60.5, -59.5, -58.5, -57.5, -56.5, - -55.5, -54.5, -53.5, -52.5, -51.5, -50.5, -49.5, -48.5, - -47.5, -46.5, -45.5, -44.5, -43.5, -42.5, -41.5, -40.5, - -39.5, -38.5, -37.5, -36.5, -35.5, -34.5, -33.5, -32.5, - -31.5, -30.5, -29.5, -28.5, -27.5, -26.5, -25.5, -24.5, - -23.5, -22.5, -21.5, -20.5, -19.5, -18.5, -17.5, -16.5, - -15.5, -14.5, -13.5, -12.5, -11.5, -10.5, -9.5, -8.5, - -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, - 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, - 8.5, 9.5, 10.5, 11.5, 12.5, 13.5, 14.5, 15.5, - 16.5, 17.5, 18.5, 19.5, 20.5, 21.5, 22.5, 23.5, - 24.5, 25.5, 26.5, 27.5, 28.5, 29.5, 30.5, 31.5, - 32.5, 33.5, 34.5, 35.5, 36.5, 37.5, 38.5, 39.5, - 40.5, 41.5, 42.5, 43.5, 44.5, 45.5, 46.5, 47.5, - 48.5, 49.5, 50.5, 51.5, 52.5, 53.5, 54.5, 55.5, - 56.5, 57.5, 58.5, 59.5, 60.5, 61.5, 62.5, 63.5, - 64.5, 65.5, 66.5, 67.5, 68.5, 69.5, 70.5, 71.5, - 72.5, 73.5, 74.5, 75.5, 76.5, 77.5, 78.5, 79.5, - 80.5, 81.5, 82.5, 83.5, 84.5, 85.5, 86.5, 87.5, - 88.5, 89.5, 90.5, 91.5, 92.5, 93.5, 94.5, 95.5, - 96.5, 97.5, 98.5, 99.5, 100.5, 101.5, 102.5, 103.5, - 104.5, 105.5, 106.5, 107.5, 108.5, 109.5, 110.5, 111.5, - 112.5, 113.5, 114.5, 115.5, 116.5, 117.5, 118.5, 119.5, - 120.5, 121.5, 122.5, 123.5, 124.5, 125.5, 126.5, 127.5, - 128.5, 129.5, 130.5, 131.5, 132.5, 133.5, 134.5, 135.5, - 136.5, 137.5, 138.5, 139.5, 140.5, 141.5, 142.5, 143.5, - 144.5, 145.5, 146.5, 147.5, 148.5, 149.5, 150.5, 151.5, - 152.5, 153.5, 154.5, 155.5, 156.5, 157.5, 158.5, 159.5, - 160.5, 161.5, 162.5, 163.5, 164.5, 165.5, 166.5, 167.5, - 168.5, 169.5, 170.5, 171.5, 172.5, 173.5, 174.5, 175.5, - 176.5, 177.5, 178.5, 179.5, 180.5, 181.5, 182.5, 183.5, - 184.5, 185.5, 186.5, 187.5, 188.5, 189.5, 190.5, 191.5, - 192.5, 193.5, 194.5, 195.5, 196.5, 197.5, 198.5, 199.5, -}; - -static long _vq_quantmap_res0_256_128_5[] = { - 399, 397, 395, 393, 391, 389, 387, 385, - 383, 381, 379, 377, 375, 373, 371, 369, - 367, 365, 363, 361, 359, 357, 355, 353, - 351, 349, 347, 345, 343, 341, 339, 337, - 335, 333, 331, 329, 327, 325, 323, 321, - 319, 317, 315, 313, 311, 309, 307, 305, - 303, 301, 299, 297, 295, 293, 291, 289, - 287, 285, 283, 281, 279, 277, 275, 273, - 271, 269, 267, 265, 263, 261, 259, 257, - 255, 253, 251, 249, 247, 245, 243, 241, - 239, 237, 235, 233, 231, 229, 227, 225, - 223, 221, 219, 217, 215, 213, 211, 209, - 207, 205, 203, 201, 199, 197, 195, 193, - 191, 189, 187, 185, 183, 181, 179, 177, - 175, 173, 171, 169, 167, 165, 163, 161, - 159, 157, 155, 153, 151, 149, 147, 145, - 143, 141, 139, 137, 135, 133, 131, 129, - 127, 125, 123, 121, 119, 117, 115, 113, - 111, 109, 107, 105, 103, 101, 99, 97, - 95, 93, 91, 89, 87, 85, 83, 81, - 79, 77, 75, 73, 71, 69, 67, 65, - 63, 61, 59, 57, 55, 53, 51, 49, - 47, 45, 43, 41, 39, 37, 35, 33, - 31, 29, 27, 25, 23, 21, 19, 17, - 15, 13, 11, 9, 7, 5, 3, 1, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, 18, 20, 22, 24, 26, 28, 30, - 32, 34, 36, 38, 40, 42, 44, 46, - 48, 50, 52, 54, 56, 58, 60, 62, - 64, 66, 68, 70, 72, 74, 76, 78, - 80, 82, 84, 86, 88, 90, 92, 94, - 96, 98, 100, 102, 104, 106, 108, 110, - 112, 114, 116, 118, 120, 122, 124, 126, - 128, 130, 132, 134, 136, 138, 140, 142, - 144, 146, 148, 150, 152, 154, 156, 158, - 160, 162, 164, 166, 168, 170, 172, 174, - 176, 178, 180, 182, 184, 186, 188, 190, - 192, 194, 196, 198, 200, 202, 204, 206, - 208, 210, 212, 214, 216, 218, 220, 222, - 224, 226, 228, 230, 232, 234, 236, 238, - 240, 242, 244, 246, 248, 250, 252, 254, - 256, 258, 260, 262, 264, 266, 268, 270, - 272, 274, 276, 278, 280, 282, 284, 286, - 288, 290, 292, 294, 296, 298, 300, 302, - 304, 306, 308, 310, 312, 314, 316, 318, - 320, 322, 324, 326, 328, 330, 332, 334, - 336, 338, 340, 342, 344, 346, 348, 350, - 352, 354, 356, 358, 360, 362, 364, 366, - 368, 370, 372, 374, 376, 378, 380, 382, - 384, 386, 388, 390, 392, 394, 396, 398, - 400, -}; - -static encode_aux_threshmatch _vq_auxt_res0_256_128_5 = { - _vq_quantthresh_res0_256_128_5, - _vq_quantmap_res0_256_128_5, - 401, - 401 -}; - -static static_codebook _vq_book_res0_256_128_5 = { - 1, 401, - _vq_lengthlist_res0_256_128_5, - 1, -520552448, 1611661312, 9, 0, - _vq_quantlist_res0_256_128_5, - NULL, - &_vq_auxt_res0_256_128_5, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_256_128aux.vqh b/lib/books/res0_256_128aux.vqh deleted file mode 100644 index 58315e34..00000000 --- a/lib/books/res0_256_128aux.vqh +++ /dev/null @@ -1,39 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - * * - ******************************************************************** - - function: static codebook autogenerated by huff/huffbuld - - ********************************************************************/ - -#ifndef _V_res0_256_128aux_VQH_ -#define _V_res0_256_128aux_VQH_ -#include "codebook.h" - -static long _huff_lengthlist_res0_256_128aux[] = { - 4, 8,11,11,11,16, 4, 4, 7, 8,10,15, 7, 5, 5, 4, - 7,15, 7, 4, 4, 3, 5,16, 9, 7, 5, 2, 4,13,16,12, - 10, 7, 9,16, -}; - -static static_codebook _huff_book_res0_256_128aux = { - 2, 36, - _huff_lengthlist_res0_256_128aux, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_350_1024_7.vqh b/lib/books/res0_350_1024_7.vqh deleted file mode 100644 index ac3add60..00000000 --- a/lib/books/res0_350_1024_7.vqh +++ /dev/null @@ -1,868 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_350_1024_7_VQH_ -#define _V_res0_350_1024_7_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_350_1024_7[] = { - 310, - 309, - 311, - 308, - 312, - 307, - 313, - 306, - 314, - 305, - 315, - 304, - 316, - 303, - 317, - 302, - 318, - 301, - 319, - 300, - 320, - 299, - 321, - 298, - 322, - 297, - 323, - 296, - 324, - 295, - 325, - 294, - 326, - 293, - 327, - 292, - 328, - 291, - 329, - 290, - 330, - 289, - 331, - 288, - 332, - 287, - 333, - 286, - 334, - 285, - 335, - 284, - 336, - 283, - 337, - 282, - 338, - 281, - 339, - 280, - 340, - 279, - 341, - 278, - 342, - 277, - 343, - 276, - 344, - 275, - 345, - 274, - 346, - 273, - 347, - 272, - 348, - 271, - 349, - 270, - 350, - 269, - 351, - 268, - 352, - 267, - 353, - 266, - 354, - 265, - 355, - 264, - 356, - 263, - 357, - 262, - 358, - 261, - 359, - 260, - 360, - 259, - 361, - 258, - 362, - 257, - 363, - 256, - 364, - 255, - 365, - 254, - 366, - 253, - 367, - 252, - 368, - 251, - 369, - 250, - 370, - 249, - 371, - 248, - 372, - 247, - 373, - 246, - 374, - 245, - 375, - 244, - 376, - 243, - 377, - 242, - 378, - 241, - 379, - 240, - 380, - 239, - 381, - 238, - 382, - 237, - 383, - 236, - 384, - 235, - 385, - 234, - 386, - 233, - 387, - 232, - 388, - 231, - 389, - 230, - 390, - 229, - 391, - 228, - 392, - 227, - 393, - 226, - 394, - 225, - 395, - 224, - 396, - 223, - 397, - 222, - 398, - 221, - 399, - 220, - 400, - 219, - 401, - 218, - 402, - 217, - 403, - 216, - 404, - 215, - 405, - 214, - 406, - 213, - 407, - 212, - 408, - 211, - 409, - 210, - 410, - 209, - 411, - 208, - 412, - 207, - 413, - 206, - 414, - 205, - 415, - 204, - 416, - 203, - 417, - 202, - 418, - 201, - 419, - 200, - 420, - 199, - 421, - 198, - 422, - 197, - 423, - 196, - 424, - 195, - 425, - 194, - 426, - 193, - 427, - 192, - 428, - 191, - 429, - 190, - 430, - 189, - 431, - 188, - 432, - 187, - 433, - 186, - 434, - 185, - 435, - 184, - 436, - 183, - 437, - 182, - 438, - 181, - 439, - 180, - 440, - 179, - 441, - 178, - 442, - 177, - 443, - 176, - 444, - 175, - 445, - 174, - 446, - 173, - 447, - 172, - 448, - 171, - 449, - 170, - 450, - 169, - 451, - 168, - 452, - 167, - 453, - 166, - 454, - 165, - 455, - 164, - 456, - 163, - 457, - 162, - 458, - 161, - 459, - 160, - 460, - 159, - 461, - 158, - 462, - 157, - 463, - 156, - 464, - 155, - 465, - 154, - 466, - 153, - 467, - 152, - 468, - 151, - 469, - 150, - 470, - 149, - 471, - 148, - 472, - 147, - 473, - 146, - 474, - 145, - 475, - 144, - 476, - 143, - 477, - 142, - 478, - 141, - 479, - 140, - 480, - 139, - 481, - 138, - 482, - 137, - 483, - 136, - 484, - 135, - 485, - 134, - 486, - 133, - 487, - 132, - 488, - 131, - 489, - 130, - 490, - 129, - 491, - 128, - 492, - 127, - 493, - 126, - 494, - 125, - 495, - 124, - 496, - 123, - 497, - 122, - 498, - 121, - 499, - 120, - 500, - 119, - 501, - 118, - 502, - 117, - 503, - 116, - 504, - 115, - 505, - 114, - 506, - 113, - 507, - 112, - 508, - 111, - 509, - 110, - 510, - 109, - 511, - 108, - 512, - 107, - 513, - 106, - 514, - 105, - 515, - 104, - 516, - 103, - 517, - 102, - 518, - 101, - 519, - 100, - 520, - 99, - 521, - 98, - 522, - 97, - 523, - 96, - 524, - 95, - 525, - 94, - 526, - 93, - 527, - 92, - 528, - 91, - 529, - 90, - 530, - 89, - 531, - 88, - 532, - 87, - 533, - 86, - 534, - 85, - 535, - 84, - 536, - 83, - 537, - 82, - 538, - 81, - 539, - 80, - 540, - 79, - 541, - 78, - 542, - 77, - 543, - 76, - 544, - 75, - 545, - 74, - 546, - 73, - 547, - 72, - 548, - 71, - 549, - 70, - 550, - 69, - 551, - 68, - 552, - 67, - 553, - 66, - 554, - 65, - 555, - 64, - 556, - 63, - 557, - 62, - 558, - 61, - 559, - 60, - 560, - 59, - 561, - 58, - 562, - 57, - 563, - 56, - 564, - 55, - 565, - 54, - 566, - 53, - 567, - 52, - 568, - 51, - 569, - 50, - 570, - 49, - 571, - 48, - 572, - 47, - 573, - 46, - 574, - 45, - 575, - 44, - 576, - 43, - 577, - 42, - 578, - 41, - 579, - 40, - 580, - 39, - 581, - 38, - 582, - 37, - 583, - 36, - 584, - 35, - 585, - 34, - 586, - 33, - 587, - 32, - 588, - 31, - 589, - 30, - 590, - 29, - 591, - 28, - 592, - 27, - 593, - 26, - 594, - 25, - 595, - 24, - 596, - 23, - 597, - 22, - 598, - 21, - 599, - 20, - 600, - 19, - 601, - 18, - 602, - 17, - 603, - 16, - 604, - 15, - 605, - 14, - 606, - 13, - 607, - 12, - 608, - 11, - 609, - 10, - 610, - 9, - 611, - 8, - 612, - 7, - 613, - 6, - 614, - 5, - 615, - 4, - 616, - 3, - 617, - 2, - 618, - 1, - 619, - 0, - 620, -}; - -static long _vq_lengthlist_res0_350_1024_7[] = { - 3, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 9,10,10,10,10,10, - 10, 9, 9, 9, 9, 9, 9, 9,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,11,10,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,13,12,12,13,12,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,14,14,13,14,14,14,14,14,14,14,14,14,14,14, - 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, - 15,14,15,15,15,14,15,15,15,15,15,14,15,15,15,15, - 15,15,15,15,15,15,15,15,15,15,16,15,15,16,16,16, - 16,15,15,15,16,16,16,16,16,16,16,16,16,16,15,15, - 16,16,16,16,16,16,16,16,16,16,16,16,16,17,16,16, - 16,16,16,16,16,16,16,16,16,16,17,16,16,17,16,17, - 16,16,17,17,17,17,16,17,18,18,17,17,17,17,16,17, - 18,18,18,17,18,17,17,17,17,17,17,18,17,17,18,17, - 17,18,18,19,18,17,19,19,18,17,18,18,17,18,18,18, - 19,18,18,18,18,18,18,18,19,18,18,18,18,18,18,19, - 18,18,19,18,18,19,20,18,19,18,18,18,18,18,19,18, - 19,19,20,20,18,20,18,18,19,20,18,19,21,19,19,19, - 20,20,20,19,20,19,18,21,20,20,19,20,20,21,21,20, - 19,21,21,20,20,20,21,21,21,20,20,21,21,20,21,21, - 21,21,21,21,19,21,20,21,20,21,21,20,20,20,21,21, - 21,21,21,20,21,21,21,21,21,21,21,21,20,21,20,21, - 21,21,21,20,21,21,19,21,21,21,21,21,21,21,21,21, - 21,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21, - 21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21, - 21,21,20,20,21,21,21,20,21,21,20,21,21,21,21,21, - 21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21, - 21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21, - 21,21,21,21,21,21,21,21,21,21,21,21,21,20,21,21, - 21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21, - 21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21, - 21,21,21,21,21,21,21,21,20,21,21,21,21,21,21,20, - 21,21,21,21,21,21,21,21,21,21,20,20,20, -}; - -static float _vq_quantthresh_res0_350_1024_7[] = { - -309.5, -308.5, -307.5, -306.5, -305.5, -304.5, -303.5, -302.5, - -301.5, -300.5, -299.5, -298.5, -297.5, -296.5, -295.5, -294.5, - -293.5, -292.5, -291.5, -290.5, -289.5, -288.5, -287.5, -286.5, - -285.5, -284.5, -283.5, -282.5, -281.5, -280.5, -279.5, -278.5, - -277.5, -276.5, -275.5, -274.5, -273.5, -272.5, -271.5, -270.5, - -269.5, -268.5, -267.5, -266.5, -265.5, -264.5, -263.5, -262.5, - -261.5, -260.5, -259.5, -258.5, -257.5, -256.5, -255.5, -254.5, - -253.5, -252.5, -251.5, -250.5, -249.5, -248.5, -247.5, -246.5, - -245.5, -244.5, -243.5, -242.5, -241.5, -240.5, -239.5, -238.5, - -237.5, -236.5, -235.5, -234.5, -233.5, -232.5, -231.5, -230.5, - -229.5, -228.5, -227.5, -226.5, -225.5, -224.5, -223.5, -222.5, - -221.5, -220.5, -219.5, -218.5, -217.5, -216.5, -215.5, -214.5, - -213.5, -212.5, -211.5, -210.5, -209.5, -208.5, -207.5, -206.5, - -205.5, -204.5, -203.5, -202.5, -201.5, -200.5, -199.5, -198.5, - -197.5, -196.5, -195.5, -194.5, -193.5, -192.5, -191.5, -190.5, - -189.5, -188.5, -187.5, -186.5, -185.5, -184.5, -183.5, -182.5, - -181.5, -180.5, -179.5, -178.5, -177.5, -176.5, -175.5, -174.5, - -173.5, -172.5, -171.5, -170.5, -169.5, -168.5, -167.5, -166.5, - -165.5, -164.5, -163.5, -162.5, -161.5, -160.5, -159.5, -158.5, - -157.5, -156.5, -155.5, -154.5, -153.5, -152.5, -151.5, -150.5, - -149.5, -148.5, -147.5, -146.5, -145.5, -144.5, -143.5, -142.5, - -141.5, -140.5, -139.5, -138.5, -137.5, -136.5, -135.5, -134.5, - -133.5, -132.5, -131.5, -130.5, -129.5, -128.5, -127.5, -126.5, - -125.5, -124.5, -123.5, -122.5, -121.5, -120.5, -119.5, -118.5, - -117.5, -116.5, -115.5, -114.5, -113.5, -112.5, -111.5, -110.5, - -109.5, -108.5, -107.5, -106.5, -105.5, -104.5, -103.5, -102.5, - -101.5, -100.5, -99.5, -98.5, -97.5, -96.5, -95.5, -94.5, - -93.5, -92.5, -91.5, -90.5, -89.5, -88.5, -87.5, -86.5, - -85.5, -84.5, -83.5, -82.5, -81.5, -80.5, -79.5, -78.5, - -77.5, -76.5, -75.5, -74.5, -73.5, -72.5, -71.5, -70.5, - -69.5, -68.5, -67.5, -66.5, -65.5, -64.5, -63.5, -62.5, - -61.5, -60.5, -59.5, -58.5, -57.5, -56.5, -55.5, -54.5, - -53.5, -52.5, -51.5, -50.5, -49.5, -48.5, -47.5, -46.5, - -45.5, -44.5, -43.5, -42.5, -41.5, -40.5, -39.5, -38.5, - -37.5, -36.5, -35.5, -34.5, -33.5, -32.5, -31.5, -30.5, - -29.5, -28.5, -27.5, -26.5, -25.5, -24.5, -23.5, -22.5, - -21.5, -20.5, -19.5, -18.5, -17.5, -16.5, -15.5, -14.5, - -13.5, -12.5, -11.5, -10.5, -9.5, -8.5, -7.5, -6.5, - -5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, - 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, - 10.5, 11.5, 12.5, 13.5, 14.5, 15.5, 16.5, 17.5, - 18.5, 19.5, 20.5, 21.5, 22.5, 23.5, 24.5, 25.5, - 26.5, 27.5, 28.5, 29.5, 30.5, 31.5, 32.5, 33.5, - 34.5, 35.5, 36.5, 37.5, 38.5, 39.5, 40.5, 41.5, - 42.5, 43.5, 44.5, 45.5, 46.5, 47.5, 48.5, 49.5, - 50.5, 51.5, 52.5, 53.5, 54.5, 55.5, 56.5, 57.5, - 58.5, 59.5, 60.5, 61.5, 62.5, 63.5, 64.5, 65.5, - 66.5, 67.5, 68.5, 69.5, 70.5, 71.5, 72.5, 73.5, - 74.5, 75.5, 76.5, 77.5, 78.5, 79.5, 80.5, 81.5, - 82.5, 83.5, 84.5, 85.5, 86.5, 87.5, 88.5, 89.5, - 90.5, 91.5, 92.5, 93.5, 94.5, 95.5, 96.5, 97.5, - 98.5, 99.5, 100.5, 101.5, 102.5, 103.5, 104.5, 105.5, - 106.5, 107.5, 108.5, 109.5, 110.5, 111.5, 112.5, 113.5, - 114.5, 115.5, 116.5, 117.5, 118.5, 119.5, 120.5, 121.5, - 122.5, 123.5, 124.5, 125.5, 126.5, 127.5, 128.5, 129.5, - 130.5, 131.5, 132.5, 133.5, 134.5, 135.5, 136.5, 137.5, - 138.5, 139.5, 140.5, 141.5, 142.5, 143.5, 144.5, 145.5, - 146.5, 147.5, 148.5, 149.5, 150.5, 151.5, 152.5, 153.5, - 154.5, 155.5, 156.5, 157.5, 158.5, 159.5, 160.5, 161.5, - 162.5, 163.5, 164.5, 165.5, 166.5, 167.5, 168.5, 169.5, - 170.5, 171.5, 172.5, 173.5, 174.5, 175.5, 176.5, 177.5, - 178.5, 179.5, 180.5, 181.5, 182.5, 183.5, 184.5, 185.5, - 186.5, 187.5, 188.5, 189.5, 190.5, 191.5, 192.5, 193.5, - 194.5, 195.5, 196.5, 197.5, 198.5, 199.5, 200.5, 201.5, - 202.5, 203.5, 204.5, 205.5, 206.5, 207.5, 208.5, 209.5, - 210.5, 211.5, 212.5, 213.5, 214.5, 215.5, 216.5, 217.5, - 218.5, 219.5, 220.5, 221.5, 222.5, 223.5, 224.5, 225.5, - 226.5, 227.5, 228.5, 229.5, 230.5, 231.5, 232.5, 233.5, - 234.5, 235.5, 236.5, 237.5, 238.5, 239.5, 240.5, 241.5, - 242.5, 243.5, 244.5, 245.5, 246.5, 247.5, 248.5, 249.5, - 250.5, 251.5, 252.5, 253.5, 254.5, 255.5, 256.5, 257.5, - 258.5, 259.5, 260.5, 261.5, 262.5, 263.5, 264.5, 265.5, - 266.5, 267.5, 268.5, 269.5, 270.5, 271.5, 272.5, 273.5, - 274.5, 275.5, 276.5, 277.5, 278.5, 279.5, 280.5, 281.5, - 282.5, 283.5, 284.5, 285.5, 286.5, 287.5, 288.5, 289.5, - 290.5, 291.5, 292.5, 293.5, 294.5, 295.5, 296.5, 297.5, - 298.5, 299.5, 300.5, 301.5, 302.5, 303.5, 304.5, 305.5, - 306.5, 307.5, 308.5, 309.5, -}; - -static long _vq_quantmap_res0_350_1024_7[] = { - 619, 617, 615, 613, 611, 609, 607, 605, - 603, 601, 599, 597, 595, 593, 591, 589, - 587, 585, 583, 581, 579, 577, 575, 573, - 571, 569, 567, 565, 563, 561, 559, 557, - 555, 553, 551, 549, 547, 545, 543, 541, - 539, 537, 535, 533, 531, 529, 527, 525, - 523, 521, 519, 517, 515, 513, 511, 509, - 507, 505, 503, 501, 499, 497, 495, 493, - 491, 489, 487, 485, 483, 481, 479, 477, - 475, 473, 471, 469, 467, 465, 463, 461, - 459, 457, 455, 453, 451, 449, 447, 445, - 443, 441, 439, 437, 435, 433, 431, 429, - 427, 425, 423, 421, 419, 417, 415, 413, - 411, 409, 407, 405, 403, 401, 399, 397, - 395, 393, 391, 389, 387, 385, 383, 381, - 379, 377, 375, 373, 371, 369, 367, 365, - 363, 361, 359, 357, 355, 353, 351, 349, - 347, 345, 343, 341, 339, 337, 335, 333, - 331, 329, 327, 325, 323, 321, 319, 317, - 315, 313, 311, 309, 307, 305, 303, 301, - 299, 297, 295, 293, 291, 289, 287, 285, - 283, 281, 279, 277, 275, 273, 271, 269, - 267, 265, 263, 261, 259, 257, 255, 253, - 251, 249, 247, 245, 243, 241, 239, 237, - 235, 233, 231, 229, 227, 225, 223, 221, - 219, 217, 215, 213, 211, 209, 207, 205, - 203, 201, 199, 197, 195, 193, 191, 189, - 187, 185, 183, 181, 179, 177, 175, 173, - 171, 169, 167, 165, 163, 161, 159, 157, - 155, 153, 151, 149, 147, 145, 143, 141, - 139, 137, 135, 133, 131, 129, 127, 125, - 123, 121, 119, 117, 115, 113, 111, 109, - 107, 105, 103, 101, 99, 97, 95, 93, - 91, 89, 87, 85, 83, 81, 79, 77, - 75, 73, 71, 69, 67, 65, 63, 61, - 59, 57, 55, 53, 51, 49, 47, 45, - 43, 41, 39, 37, 35, 33, 31, 29, - 27, 25, 23, 21, 19, 17, 15, 13, - 11, 9, 7, 5, 3, 1, 0, 2, - 4, 6, 8, 10, 12, 14, 16, 18, - 20, 22, 24, 26, 28, 30, 32, 34, - 36, 38, 40, 42, 44, 46, 48, 50, - 52, 54, 56, 58, 60, 62, 64, 66, - 68, 70, 72, 74, 76, 78, 80, 82, - 84, 86, 88, 90, 92, 94, 96, 98, - 100, 102, 104, 106, 108, 110, 112, 114, - 116, 118, 120, 122, 124, 126, 128, 130, - 132, 134, 136, 138, 140, 142, 144, 146, - 148, 150, 152, 154, 156, 158, 160, 162, - 164, 166, 168, 170, 172, 174, 176, 178, - 180, 182, 184, 186, 188, 190, 192, 194, - 196, 198, 200, 202, 204, 206, 208, 210, - 212, 214, 216, 218, 220, 222, 224, 226, - 228, 230, 232, 234, 236, 238, 240, 242, - 244, 246, 248, 250, 252, 254, 256, 258, - 260, 262, 264, 266, 268, 270, 272, 274, - 276, 278, 280, 282, 284, 286, 288, 290, - 292, 294, 296, 298, 300, 302, 304, 306, - 308, 310, 312, 314, 316, 318, 320, 322, - 324, 326, 328, 330, 332, 334, 336, 338, - 340, 342, 344, 346, 348, 350, 352, 354, - 356, 358, 360, 362, 364, 366, 368, 370, - 372, 374, 376, 378, 380, 382, 384, 386, - 388, 390, 392, 394, 396, 398, 400, 402, - 404, 406, 408, 410, 412, 414, 416, 418, - 420, 422, 424, 426, 428, 430, 432, 434, - 436, 438, 440, 442, 444, 446, 448, 450, - 452, 454, 456, 458, 460, 462, 464, 466, - 468, 470, 472, 474, 476, 478, 480, 482, - 484, 486, 488, 490, 492, 494, 496, 498, - 500, 502, 504, 506, 508, 510, 512, 514, - 516, 518, 520, 522, 524, 526, 528, 530, - 532, 534, 536, 538, 540, 542, 544, 546, - 548, 550, 552, 554, 556, 558, 560, 562, - 564, 566, 568, 570, 572, 574, 576, 578, - 580, 582, 584, 586, 588, 590, 592, 594, - 596, 598, 600, 602, 604, 606, 608, 610, - 612, 614, 616, 618, 620, -}; - -static encode_aux_threshmatch _vq_auxt_res0_350_1024_7 = { - _vq_quantthresh_res0_350_1024_7, - _vq_quantmap_res0_350_1024_7, - 621, - 621 -}; - -static static_codebook _vq_book_res0_350_1024_7 = { - 1, 621, - _vq_lengthlist_res0_350_1024_7, - 1, -518823936, 1611661312, 10, 0, - _vq_quantlist_res0_350_1024_7, - NULL, - &_vq_auxt_res0_350_1024_7, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_96_1024_1.vqh b/lib/books/res0_96_1024_1.vqh deleted file mode 100644 index d237edac..00000000 --- a/lib/books/res0_96_1024_1.vqh +++ /dev/null @@ -1,63 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_96_1024_1_VQH_ -#define _V_res0_96_1024_1_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_96_1024_1[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist_res0_96_1024_1[] = { - 1, 4, 4, 5, 8, 7, 4, 7, 7, 5, 8, 8, 8,11,11, 8, - 10,10, 5, 8, 8, 8,11,10, 8,11,10, 5, 8, 8, 8,11, - 11, 8,11,11, 8,11,11,11,14,14,11,14,14, 8,11,11, - 11,14,14,11,14,14, 4, 8, 8, 8,11,11, 8,11,11, 8, - 11,11,11,14,14,11,14,14, 8,11,10,11,14,14,10,14, - 14, -}; - -static float _vq_quantthresh_res0_96_1024_1[] = { - -0.5, 0.5, -}; - -static long _vq_quantmap_res0_96_1024_1[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt_res0_96_1024_1 = { - _vq_quantthresh_res0_96_1024_1, - _vq_quantmap_res0_96_1024_1, - 3, - 3 -}; - -static static_codebook _vq_book_res0_96_1024_1 = { - 4, 81, - _vq_lengthlist_res0_96_1024_1, - 1, -535822336, 1611661312, 2, 0, - _vq_quantlist_res0_96_1024_1, - NULL, - &_vq_auxt_res0_96_1024_1, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_96_1024_2.vqh b/lib/books/res0_96_1024_2.vqh deleted file mode 100644 index 0a144176..00000000 --- a/lib/books/res0_96_1024_2.vqh +++ /dev/null @@ -1,63 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_96_1024_2_VQH_ -#define _V_res0_96_1024_2_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_96_1024_2[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist_res0_96_1024_2[] = { - 3, 5, 4, 5, 6, 6, 4, 6, 6, 5, 6, 6, 6, 7, 8, 6, - 7, 7, 5, 6, 6, 6, 8, 7, 6, 7, 7, 5, 6, 6, 6, 8, - 8, 6, 8, 8, 6, 8, 8, 8, 9, 9, 8, 9, 9, 6, 8, 8, - 8, 9, 9, 8, 9, 9, 5, 6, 6, 6, 8, 8, 6, 8, 8, 6, - 8, 8, 8, 9, 9, 7, 9, 9, 6, 8, 8, 8, 9, 9, 7, 9, - 9, -}; - -static float _vq_quantthresh_res0_96_1024_2[] = { - -0.5, 0.5, -}; - -static long _vq_quantmap_res0_96_1024_2[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt_res0_96_1024_2 = { - _vq_quantthresh_res0_96_1024_2, - _vq_quantmap_res0_96_1024_2, - 3, - 3 -}; - -static static_codebook _vq_book_res0_96_1024_2 = { - 4, 81, - _vq_lengthlist_res0_96_1024_2, - 1, -535822336, 1611661312, 2, 0, - _vq_quantlist_res0_96_1024_2, - NULL, - &_vq_auxt_res0_96_1024_2, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_96_1024_3.vqh b/lib/books/res0_96_1024_3.vqh deleted file mode 100644 index 0b80f637..00000000 --- a/lib/books/res0_96_1024_3.vqh +++ /dev/null @@ -1,187 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_96_1024_3_VQH_ -#define _V_res0_96_1024_3_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_96_1024_3[] = { - 3, - 2, - 4, - 0, - 6, -}; - -static long _vq_lengthlist_res0_96_1024_3[] = { - 2, 4, 4, 6, 6, 5, 7, 7,10,10, 4, 7, 7,10,10, 7, - 10,10,15,15, 7,10,10,15,15, 5, 7, 7, 9, 9, 7,10, - 10,13,12, 7,10,10,12,12,10,13,13,17,18,10,13,13, - 17,18, 4, 7, 7, 9, 9, 7,10,10,12,12, 7,10,10,12, - 12,10,13,13,16,18,10,13,13,18,17, 7,10, 9,12,13, - 10,13,13,17,17,10,13,13,17,17,15,18,21, 0, 0,15, - 17,17,21, 0, 7, 9, 9,13,13,10,13,13,16,18,10,13, - 13,17,17,16,19,18, 0, 0,15,18,17, 0, 0, 5, 7, 7, - 9, 9, 7,10,10,13,13, 7,10,10,13,13,10,13,13,18, - 17,10,13,13,19,17, 7,10,10,13,13,10,12,13,15,16, - 10,12,12,15,15,13,15,16,19, 0,13,16,15,19,20, 7, - 10,10,13,12,10,13,12,16,15,10,12,12,15,16,13,16, - 15,20,18,13,15,15,19,18,10,13,13,17,17,13,15,16, - 0,19,13,16,15, 0,20,18,18,20, 0, 0,18,19, 0, 0, - 0,10,13,13,18,18,13,15,15,19,19,13,16,16,20,19, - 19,20,19, 0, 0,18,19,20,20, 0, 5, 7, 7, 9, 9, 7, - 10,10,13,13, 7,10,10,13,13,10,13,13,18,17,10,13, - 13,18,18, 7,10,10,13,13,10,12,12,16,16,10,12,12, - 15,16,13,15,15, 0, 0,13,15,15,19, 0, 7,10,10,12, - 13,10,12,12,15,15,10,12,12,16,15,13,16,15, 0, 0, - 13,15,15, 0, 0,10,13,13,18,18,13,15,15,20,20,13, - 16,15,19,19,18,19,19, 0, 0,17,18,20, 0, 0,10,13, - 13,17,17,13,15,15,19,20,13,15,15,20,18,17,19,20, - 0, 0,17,20,18,20,19, 7,10,10,13,13,10,13,13,18, - 18,10,13,13,17,17,14,18,19,20, 0,13,17,18, 0, 0, - 10,13,13,17,18,13,15,16, 0, 0,13,16,15, 0,20,18, - 20, 0, 0, 0,18,20, 0, 0, 0,10,13,13,18,18,13,16, - 15, 0, 0,13,16,15, 0, 0,17,20, 0, 0, 0,17, 0,20, - 0, 0,15,18,18, 0,20,17,20,19,20, 0,18, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,18,18, 0, 0, - 18, 0,18, 0, 0,17,20, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7,10,10,13,13,10,13,13,18,18,10,13, - 13,18,17,14,18,18,20, 0,13,19,18, 0, 0,10,13,13, - 18,17,13,16,15,20, 0,13,16,16, 0, 0,18, 0,19,20, - 0,17,19,19, 0, 0,10,13,13,18,17,13,16,15,20, 0, - 13,15,15,19, 0,18, 0,20,20, 0,18, 0,20, 0, 0,15, - 18,19,20, 0,18,20,20, 0,20,18, 0,19, 0, 0, 0, 0, - 0, 0, 0, 0,19, 0,20, 0,15,17,19, 0, 0,18,19,20, - 0,20,18,19,19, 0, 0, 0, 0, 0, 0, 0, 0, 0,20, 0, - 0, -}; - -static float _vq_quantthresh_res0_96_1024_3[] = { - -2, -0.5, 0.5, 2, -}; - -static long _vq_quantmap_res0_96_1024_3[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt_res0_96_1024_3 = { - _vq_quantthresh_res0_96_1024_3, - _vq_quantmap_res0_96_1024_3, - 5, - 5 -}; - -static long _vq_pigeonmap_res0_96_1024_3[] = { - 1, 0, 0, 0, 0, 0, -}; - -static long _vq_fitlist_res0_96_1024_3[] = { - 1, 5, 6, 8, 16, 25, 26, 28, - 30, 31, 33, 40, 41, 43, 76, 80, - 81, 83, 91, 125, 126, 128, 130, 131, - 133, 140, 141, 143, 150, 151, 153, 155, - 156, 158, 165, 166, 168, 200, 201, 203, - 205, 206, 215, 216, 376, 380, 381, 383, - 391, 400, 401, 403, 405, 406, 415, 416, - 451, 455, 456, 458, 0, 7, 15, 27, - 32, 42, 75, 82, 90, 127, 132, 142, - 152, 157, 167, 202, 207, 217, 375, 382, - 390, 402, 407, 450, 457, 2, 17, 77, - 92, 377, 392, 452, 9, 29, 34, 44, - 84, 129, 134, 144, 154, 159, 204, 209, - 384, 404, 4, 19, 79, 379, 454, 3, - 11, 35, 36, 38, 78, 86, 135, 136, - 138, 160, 161, 163, 210, 211, 378, 386, - 410, 411, 10, 37, 85, 137, 162, 212, - 385, 412, 460, 12, 87, 387, 39, 139, - 164, 214, 414, 14, 89, 389, 13, 88, - 388, 21, 45, 46, 48, 96, 145, 146, - 148, 170, 171, 173, 220, 221, 396, 420, - 421, 20, 47, 95, 147, 172, 395, 22, - 97, 397, 49, 149, 174, 24, 23, 98, - 18, 51, 55, 56, 58, 66, 175, 176, - 178, 180, 181, 183, 190, 191, 193, 393, - 426, 430, 431, 441, 50, 57, 65, 177, - 182, 192, 425, 432, 440, 52, 67, 427, - 59, 179, 184, 194, 54, 69, 429, 53, - 61, 185, 186, 188, 428, 436, 60, 187, - 435, 62, 437, 189, 64, 63, 71, 195, - 196, 198, 70, 197, 445, 72, 447, 199, - 74, 73, 68, 101, 105, 106, 108, 116, - 225, 226, 228, 230, 231, 233, 240, 241, - 476, 480, 100, 107, 115, 227, 232, 242, - 475, 482, 102, 117, 477, 109, 229, 234, - 104, 103, 111, 235, 236, 238, 486, 110, - 237, 485, 112, 239, 114, 113, 121, 245, - 246, 248, 120, 247, 122, 314, 322, 362, - 364, 372, 374, 251, 255, 256, 258, 266, - 275, 276, 278, 280, 281, 283, 290, 291, - 326, 330, 331, 333, 341, 250, 257, 265, - 277, 282, 292, 325, 332, 340, 252, 267, - 327, 342, 259, 279, 284, 334, 254, 269, - 329, 253, 261, 285, 286, 288, 328, 336, - 260, 287, 335, 262, 337, 289, 264, 339, - 263, 338, 271, 295, 296, 298, 346, 270, - 297, 345, 272, 347, 274, 273, 268, 301, - 305, 306, 308, 316, 300, 307, 315, 302, - 317, 309, 304, 303, 311, 310, 312, 313, - 321, 320, 351, 355, 356, 358, 366, 350, - 357, 365, 352, 367, 359, 354, 353, 361, - 360, 363, 371, 370, 373, 501, 505, 506, - 508, 516, 525, 526, 528, 530, 531, 533, - 540, 543, 576, 580, 581, 500, 507, 515, - 527, 532, 542, 575, 582, 502, 517, 577, - 509, 529, 584, 504, 503, 511, 535, 536, - 578, 510, 537, 585, 512, 587, 514, 513, - 521, 545, 546, 596, 520, 547, 522, 598, - 572, 518, 551, 555, 556, 558, 550, 557, - 565, 552, 567, 554, 553, 561, 560, 562, - 563, 570, 568, 601, 605, 606, 600, 607, - 602, 609, 611, 610, 612, 622, -}; - -static long _vq_fitmap_res0_96_1024_3[] = { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, -}; - -static long _vq_fitlength_res0_96_1024_3[] = { - 494, 494, 494, 494, 494, 494, 494, 494, - 494, 494, 494, 494, 494, 494, 494, 494, -}; - -static encode_aux_pigeonhole _vq_auxp_res0_96_1024_3 = { - -3, 1, 6, 2, - _vq_pigeonmap_res0_96_1024_3, - 494, - _vq_fitlist_res0_96_1024_3, - _vq_fitmap_res0_96_1024_3, - _vq_fitlength_res0_96_1024_3 -}; - -static static_codebook _vq_book_res0_96_1024_3 = { - 4, 625, - _vq_lengthlist_res0_96_1024_3, - 1, -533200896, 1611661312, 3, 0, - _vq_quantlist_res0_96_1024_3, - NULL, - &_vq_auxt_res0_96_1024_3, - &_vq_auxp_res0_96_1024_3, - 0 -}; - - -#endif diff --git a/lib/books/res0_96_1024_4.vqh b/lib/books/res0_96_1024_4.vqh deleted file mode 100644 index 410bbb3b..00000000 --- a/lib/books/res0_96_1024_4.vqh +++ /dev/null @@ -1,99 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_96_1024_4_VQH_ -#define _V_res0_96_1024_4_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_96_1024_4[] = { - 3, - 2, - 4, - 0, - 6, -}; - -static long _vq_lengthlist_res0_96_1024_4[] = { - 5, 5, 5, 8, 8, 6, 6, 6, 9, 9, 5, 6, 6, 9, 8, 8, - 9, 9,11,11, 8, 9, 9,11,11, 6, 7, 6, 9, 9, 6, 7, - 7,10,10, 6, 7, 7,10,10, 9,10,10,12,12, 9,10,10, - 12,12, 6, 6, 6, 9, 9, 6, 7, 7,10,10, 6, 7, 7,10, - 10, 9,10,10,12,12, 9,10,10,12,12, 8, 9, 9,12,12, - 9,10,10,13,13, 9,10,10,12,13,12,13,13,14,14,12, - 13,13,15,15, 8, 9, 9,12,12, 9,10,10,12,13, 9,10, - 10,13,13,12,12,12,15,15,12,13,12,15,14, 6, 7, 7, - 9, 9, 7, 8, 8,10,10, 7, 7, 7,10,10, 9,10,10,12, - 13, 9,10,10,13,13, 7, 8, 8,10,10, 8, 8, 8,11,11, - 8, 8, 8,11,10,10,11,11,13,13,10,11,11,13,13, 7, - 8, 8,10,10, 7, 8, 8,11,11, 7, 8, 8,11,11,10,11, - 11,13,13,10,11,11,13,13, 9,10,10,13,13,10,11,11, - 13,13,10,11,11,13,13,13,13,13,15,15,13,14,13,15, - 15, 9,10,10,13,13,10,11,11,13,13,10,11,11,14,13, - 13,13,13,16,15,13,13,13,15,15, 6, 7, 7, 9, 9, 7, - 8, 7,10,10, 7, 7, 8,10,10, 9,10,10,13,12, 9,10, - 10,12,12, 7, 8, 8,10,10, 8, 8, 8,11,10, 7, 8, 8, - 11,10,10,11,11,13,13,10,11,11,13,13, 7, 8, 8,10, - 10, 7, 8, 8,11,11, 7, 8, 8,11,10,10,11,11,13,13, - 10,11,11,13,12, 9,10,10,13,13,10,11,11,13,13,10, - 11,11,13,13,13,13,13,15,15,13,13,13,15,15, 9,10, - 11,13,13,10,11,11,13,13,10,11,11,13,13,13,14,13, - 15,15,13,13,13,15,15, 8,10, 9,12,12,10,11,11,13, - 13,10,10,11,13,13,12,13,13,16,15,12,13,13,15,15, - 9,11,11,13,13,10,11,11,14,14,11,11,11,14,14,13, - 14,14,15,15,13,14,14,16,15, 9,10,11,13,13,11,11, - 11,14,14,10,11,11,13,14,13,14,13,16,15,14,14,14, - 16,15,13,13,13,16,15,13,14,14,16,15,13,14,14,15, - 16,16,15,15,16,17,16,16,15,17,17,13,13,14,15,16, - 13,14,14,15,16,13,14,14,15,16,15,15,15,16,17,15, - 15,15,16,18, 8,10,10,12,12,10,11,11,13,13,10,11, - 11,13,13,13,13,14,15,15,12,14,13,15,15, 9,11,11, - 13,13,11,11,11,14,14,10,11,11,14,13,13,14,14,15, - 15,13,14,14,16,15, 9,11,11,13,13,10,11,11,13,14, - 11,11,11,13,13,13,14,14,15,16,14,14,14,16,15,13, - 14,14,15,14,13,14,13,15,16,13,13,14,15,16,16,15, - 16,17,18,15,15,16,16,17,13,14,13,15,15,13,13,13, - 16,15,13,14,13,15,16,15,16,15,17,18,15,15,15,18, - 17, -}; - -static float _vq_quantthresh_res0_96_1024_4[] = { - -2, -0.5, 0.5, 2, -}; - -static long _vq_quantmap_res0_96_1024_4[] = { - 3, 1, 0, 2, 4, -}; - -static encode_aux_threshmatch _vq_auxt_res0_96_1024_4 = { - _vq_quantthresh_res0_96_1024_4, - _vq_quantmap_res0_96_1024_4, - 5, - 5 -}; - -static static_codebook _vq_book_res0_96_1024_4 = { - 4, 625, - _vq_lengthlist_res0_96_1024_4, - 1, -533200896, 1611661312, 3, 0, - _vq_quantlist_res0_96_1024_4, - NULL, - &_vq_auxt_res0_96_1024_4, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_96_1024_5.vqh b/lib/books/res0_96_1024_5.vqh deleted file mode 100644 index 96d70c38..00000000 --- a/lib/books/res0_96_1024_5.vqh +++ /dev/null @@ -1,70 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_96_1024_5_VQH_ -#define _V_res0_96_1024_5_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_96_1024_5[] = { - 8, - 7, - 9, - 5, - 11, - 3, - 13, - 0, - 16, -}; - -static long _vq_lengthlist_res0_96_1024_5[] = { - 1, 4, 4, 6, 6, 6, 6, 7, 7, 4, 6, 6, 9, 9, 9, 9, - 11,11, 4, 6, 6, 9, 9, 9, 9,11,11, 6, 9, 9,12,11, - 11,12,13,13, 6, 9, 9,12,12,12,12,13,14, 6, 9, 9, - 12,12,13,13,15,14, 6, 9, 9,12,12,13,13,15,15, 8, - 12,12,14,14,15,15,16,17, 8,12,12,14,14,15,16,16, - 17, -}; - -static float _vq_quantthresh_res0_96_1024_5[] = { - -6.5, -4, -2, -0.5, 0.5, 2, 4, 6.5, -}; - -static long _vq_quantmap_res0_96_1024_5[] = { - 7, 5, 3, 1, 0, 2, 4, 6, - 8, -}; - -static encode_aux_threshmatch _vq_auxt_res0_96_1024_5 = { - _vq_quantthresh_res0_96_1024_5, - _vq_quantmap_res0_96_1024_5, - 9, - 9 -}; - -static static_codebook _vq_book_res0_96_1024_5 = { - 2, 81, - _vq_lengthlist_res0_96_1024_5, - 1, -529530880, 1611661312, 5, 0, - _vq_quantlist_res0_96_1024_5, - NULL, - &_vq_auxt_res0_96_1024_5, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_96_1024_6.vqh b/lib/books/res0_96_1024_6.vqh deleted file mode 100644 index 00b37dc0..00000000 --- a/lib/books/res0_96_1024_6.vqh +++ /dev/null @@ -1,70 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_96_1024_6_VQH_ -#define _V_res0_96_1024_6_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_96_1024_6[] = { - 8, - 7, - 9, - 5, - 11, - 3, - 13, - 0, - 16, -}; - -static long _vq_lengthlist_res0_96_1024_6[] = { - 3, 4, 4, 5, 5, 6, 6, 7, 7, 4, 5, 4, 6, 6, 7, 7, - 8, 8, 4, 4, 4, 6, 6, 7, 7, 8, 8, 6, 6, 6, 8, 8, - 9, 9,10,10, 6, 6, 6, 8, 8, 9, 9,10,10, 7, 8, 8, - 9, 9,10,10,11,11, 7, 8, 8, 9, 9,10,10,11,11, 8, - 9, 9,11,10,11,11,12,12, 8, 9, 9,10,11,11,11,12, - 12, -}; - -static float _vq_quantthresh_res0_96_1024_6[] = { - -6.5, -4, -2, -0.5, 0.5, 2, 4, 6.5, -}; - -static long _vq_quantmap_res0_96_1024_6[] = { - 7, 5, 3, 1, 0, 2, 4, 6, - 8, -}; - -static encode_aux_threshmatch _vq_auxt_res0_96_1024_6 = { - _vq_quantthresh_res0_96_1024_6, - _vq_quantmap_res0_96_1024_6, - 9, - 9 -}; - -static static_codebook _vq_book_res0_96_1024_6 = { - 2, 81, - _vq_lengthlist_res0_96_1024_6, - 1, -529530880, 1611661312, 5, 0, - _vq_quantlist_res0_96_1024_6, - NULL, - &_vq_auxt_res0_96_1024_6, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_96_1024_7.vqh b/lib/books/res0_96_1024_7.vqh deleted file mode 100644 index 95c2a9de..00000000 --- a/lib/books/res0_96_1024_7.vqh +++ /dev/null @@ -1,86 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_96_1024_7_VQH_ -#define _V_res0_96_1024_7_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_96_1024_7[] = { - 17, - 16, - 18, - 14, - 20, - 12, - 22, - 9, - 25, - 6, - 28, - 3, - 31, - 0, - 34, -}; - -static long _vq_lengthlist_res0_96_1024_7[] = { - 3, 4, 4, 5, 5, 6, 6, 7, 6, 7, 7, 8, 8, 9, 9, 5, - 5, 5, 6, 6, 7, 7, 7, 7, 8, 8, 9, 9,10,10, 4, 5, - 5, 6, 6, 7, 7, 8, 7, 8, 8, 9, 9,10,10, 6, 7, 7, - 8, 8, 8, 8, 9, 9, 9, 9,10,10,11,11, 6, 7, 7, 8, - 8, 8, 8, 9, 9, 9, 9,10,10,11,11, 7, 8, 8, 9, 9, - 9, 9,10, 9,10,10,11,11,12,12, 7, 8, 8, 9, 9, 9, - 9,10,10,10,10,11,11,12,12, 8, 9, 9,10,10,10,10, - 11,10,11,11,12,12,13,12, 8, 9, 9,10,10,10,10,11, - 10,11,11,12,12,13,12, 8, 9, 9,10,10,11,11,11,11, - 12,12,13,13,13,14, 8, 9, 9,10,10,11,11,11,11,12, - 12,13,13,14,14,10,11,11,12,12,12,12,13,13,13,13, - 14,14,15,15,10,11,11,12,12,12,12,13,13,13,14,14, - 14,15,15,12,13,13,14,14,14,14,14,14,15,15,15,16, - 16,16,12,13,13,14,13,14,14,14,14,14,15,15,16,16, - 16, -}; - -static float _vq_quantthresh_res0_96_1024_7[] = { - -15.5, -12.5, -9.5, -6.5, -4, -2, -0.5, 0.5, - 2, 4, 6.5, 9.5, 12.5, 15.5, -}; - -static long _vq_quantmap_res0_96_1024_7[] = { - 13, 11, 9, 7, 5, 3, 1, 0, - 2, 4, 6, 8, 10, 12, 14, -}; - -static encode_aux_threshmatch _vq_auxt_res0_96_1024_7 = { - _vq_quantthresh_res0_96_1024_7, - _vq_quantmap_res0_96_1024_7, - 15, - 15 -}; - -static static_codebook _vq_book_res0_96_1024_7 = { - 2, 225, - _vq_lengthlist_res0_96_1024_7, - 1, -527368192, 1611661312, 6, 0, - _vq_quantlist_res0_96_1024_7, - NULL, - &_vq_auxt_res0_96_1024_7, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_96_1024_8.vqh b/lib/books/res0_96_1024_8.vqh deleted file mode 100644 index 28002ca0..00000000 --- a/lib/books/res0_96_1024_8.vqh +++ /dev/null @@ -1,124 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_96_1024_8_VQH_ -#define _V_res0_96_1024_8_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_96_1024_8[] = { - 35, - 34, - 36, - 32, - 38, - 30, - 40, - 27, - 43, - 24, - 46, - 21, - 49, - 18, - 52, - 15, - 55, - 11, - 59, - 7, - 63, - 4, - 66, - 0, - 70, -}; - -static long _vq_lengthlist_res0_96_1024_8[] = { - 5, 5, 5, 5, 6, 6, 6, 6, 6, 7, 7, 8, 8, 8, 8, 8, - 8, 9, 9,10,10,10,10,11,11, 6, 6, 6, 6, 6, 6, 6, - 7, 6, 7, 7, 8, 8, 9, 9, 8, 8, 9, 9,10,10,10,11, - 11,11, 6, 6, 6, 6, 6, 6, 6, 7, 6, 7, 7, 8, 8, 9, - 9, 8, 8, 9, 9,10,10,11,10,11,11, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 8, 8, 9, 9, 9, 9, 9, 9,10,10,10,11, - 11,11,11,12, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 9, - 9, 9, 9, 9, 9,10,10,10,11,11,11,11,12, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 9, 9, 9, 9,10,10,10,10,10,10, - 11,11,11,12,12,12, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, - 9, 9, 9,10,10,10,10,10,10,11,11,11,12,12,12, 9, - 9, 9, 8, 9, 9, 9, 9, 9,10, 9,10,10,11,11,10,11, - 11,11,12,12,12,12,13,13, 9, 9, 9, 9, 9, 9, 9, 9, - 9,10, 9,10,10,11,11,11,11,11,11,12,12,12,12,12, - 13,10,10,10,10,10,10,10,10,10,11,11,11,11,12,12, - 11,11,12,12,13,13,13,14,13,14,10,10,10,10,10,10, - 10,10,10,11,11,11,11,12,12,11,11,12,12,12,13,13, - 13,14,14,11,11,11,11,11,11,11,11,11,12,12,13,12, - 13,13,13,13,13,13,14,14,14,14,14,15,11,11,11,11, - 11,11,11,11,11,12,12,12,12,13,13,13,13,13,13,14, - 14,14,14,14,14,13,12,12,13,12,12,12,13,13,13,13, - 14,14,15,14,14,14,14,14,15,15,15,15,16,16,13,13, - 12,12,12,12,12,13,13,13,13,14,13,14,14,14,14,14, - 14,15,15,15,16,16,16,12,13,13,13,14,13,14,14,14, - 14,14,15,15,15,15,15,16,16,15,17,18,16,18,16,16, - 12,13,13,13,13,13,13,14,14,14,14,15,15,15,15,15, - 15,15,15,16,17,17,16,17,16,15,15,15,16,16,16,15, - 16,16,17,16,17,16,18,17,16,16,17,17,19,18,19,18, - 18,19,15,16,15,15,15,16,16,15,16,16,16,16,17,16, - 16,16,16,17,18,17,18,17,18,17,18,16,18,19,18,18, - 19,19,19,18,19,18,18,19,18,18,19,18,18,19,19,19, - 19,19,19,19,17,18,17,18,18,19,18,18,18,19,18,18, - 18,19,18,18,18,18,17,18,19,19,19,19,19,19,19,18, - 19,19,19,18,19,19,19,19,19,19,19,18,18,19,19,18, - 19,19,19,19,19,18,19,19,19,18,19,18,19,19,19,19, - 19,19,18,19,19,19,19,19,19,19,19,19,19,19,19,19, - 19,19,18,19,19,19,19,19,19,19,19,19,19,19,19,19, - 19,19,19,18,19,19,19,19,19,19,19,19,19,19,19,19, - 19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19, - 19, -}; - -static float _vq_quantthresh_res0_96_1024_8[] = { - -33, -29.5, -26, -22, -18.5, -15.5, -12.5, -9.5, - -6.5, -4, -2, -0.5, 0.5, 2, 4, 6.5, - 9.5, 12.5, 15.5, 18.5, 22, 26, 29.5, 33, -}; - -static long _vq_quantmap_res0_96_1024_8[] = { - 23, 21, 19, 17, 15, 13, 11, 9, - 7, 5, 3, 1, 0, 2, 4, 6, - 8, 10, 12, 14, 16, 18, 20, 22, - 24, -}; - -static encode_aux_threshmatch _vq_auxt_res0_96_1024_8 = { - _vq_quantthresh_res0_96_1024_8, - _vq_quantmap_res0_96_1024_8, - 25, - 25 -}; - -static static_codebook _vq_book_res0_96_1024_8 = { - 2, 625, - _vq_lengthlist_res0_96_1024_8, - 1, -525238272, 1611661312, 7, 0, - _vq_quantlist_res0_96_1024_8, - NULL, - &_vq_auxt_res0_96_1024_8, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_96_1024_9.vqh b/lib/books/res0_96_1024_9.vqh deleted file mode 100644 index 0ad3bffc..00000000 --- a/lib/books/res0_96_1024_9.vqh +++ /dev/null @@ -1,131 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_96_1024_9_VQH_ -#define _V_res0_96_1024_9_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_96_1024_9[] = { - 123, - 122, - 124, - 120, - 126, - 118, - 128, - 115, - 131, - 112, - 134, - 109, - 137, - 106, - 140, - 103, - 143, - 99, - 147, - 95, - 151, - 92, - 154, - 88, - 158, - 84, - 162, - 80, - 166, - 76, - 170, - 72, - 174, - 67, - 179, - 62, - 184, - 57, - 189, - 52, - 194, - 51, - 195, - 45, - 201, - 39, - 207, - 33, - 213, - 27, - 219, - 21, - 225, - 15, - 231, - 8, - 238, - 0, - 246, -}; - -static long _vq_lengthlist_res0_96_1024_9[] = { - 3, 3, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 7, 7, 8, - 8, 8, 8, 9, 9,10,10,10,11, 8, 8, 8, 9, 9, 9,10, - 10,10,10,11,11,12,12,13,13,13,13,13,13,14,15,16, - 15,16,15,17,16,17,18,17,18,17,17, -}; - -static float _vq_quantthresh_res0_96_1024_9[] = { - -119, -111.5, -105, -99, -93, -87, -81, -75, - -71.5, -68.5, -63.5, -58.5, -53.5, -49, -45, -41, - -37, -33, -29.5, -26, -22, -18.5, -15.5, -12.5, - -9.5, -6.5, -4, -2, -0.5, 0.5, 2, 4, - 6.5, 9.5, 12.5, 15.5, 18.5, 22, 26, 29.5, - 33, 37, 41, 45, 49, 53.5, 58.5, 63.5, - 68.5, 71.5, 75, 81, 87, 93, 99, 105, - 111.5, 119, -}; - -static long _vq_quantmap_res0_96_1024_9[] = { - 57, 55, 53, 51, 49, 47, 45, 43, - 41, 39, 37, 35, 33, 31, 29, 27, - 25, 23, 21, 19, 17, 15, 13, 11, - 9, 7, 5, 3, 1, 0, 2, 4, - 6, 8, 10, 12, 14, 16, 18, 20, - 22, 24, 26, 28, 30, 32, 34, 36, - 38, 40, 42, 44, 46, 48, 50, 52, - 54, 56, 58, -}; - -static encode_aux_threshmatch _vq_auxt_res0_96_1024_9 = { - _vq_quantthresh_res0_96_1024_9, - _vq_quantmap_res0_96_1024_9, - 59, - 59 -}; - -static static_codebook _vq_book_res0_96_1024_9 = { - 1, 59, - _vq_lengthlist_res0_96_1024_9, - 1, -522272768, 1611661312, 8, 0, - _vq_quantlist_res0_96_1024_9, - NULL, - &_vq_auxt_res0_96_1024_9, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_96_1024aux.vqh b/lib/books/res0_96_1024aux.vqh deleted file mode 100644 index b2f98367..00000000 --- a/lib/books/res0_96_1024aux.vqh +++ /dev/null @@ -1,99 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - * * - ******************************************************************** - - function: static codebook autogenerated by huff/huffbuld - - ********************************************************************/ - -#ifndef _V_res0_96_1024aux_VQH_ -#define _V_res0_96_1024aux_VQH_ -#include "codebook.h" - -static long _huff_lengthlist_res0_96_1024aux[] = { - 5, 7,12,11,14,12,18,17,18,19, 8, 7, 9,11,11,13, - 18,16,19,19,14,10,11,13,13,18,19,19,19,19,10,11, - 13,12,14,13,19,18,19,19,14,12,14,15,16,18,18,19, - 19,19,11,12,16,13,18,13,19,18,19,19,16,17,19,19, - 19,19,19,19,19,19,14,16,19,19,19,18,19,19,19,19, - 19,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19, - 19,19,19,19, 7, 7,10,11,12,13,19,16,19,19, 6, 3, - 4, 6, 8, 9,14,15,19,19,10, 5, 5, 8, 8,12,16,18, - 19,19, 9, 6, 7, 7,10,10,15,15,19,19,12, 8, 8,10, - 11,13,16,18,19,19,10, 8,11, 9,13,10,16,15,18,19, - 16,14,15,15,17,17,17,18,19,19,14,14,17,15,18,15, - 18,16,19,19,18,18,19,19,19,19,19,18,19,19,19,19, - 19,19,19,19,19,19,19,19,12,10,12,14,15,16,19,19, - 19,19, 9, 4, 5, 8, 9,11,16,17,19,19,11, 5, 4, 8, - 8,13,16,17,19,19,13, 7, 8, 9,11,12,17,17,19,19, - 14, 8, 8,10,10,14,16,17,19,19,12,10,11,11,14,13, - 18,17,19,19,19,14,15,15,16,17,18,19,19,19,12,14, - 15,15,17,16,19,19,19,19,19,19,18,19,19,19,19,19, - 19,19,19,19,19,19,19,19,19,19,19,19, 9,10,13,12, - 15,13,18,17,19,19, 9, 6, 7, 7,10, 9,16,14,18,19, - 13, 7, 7, 9,10,12,16,17,19,19,11, 7, 9, 7,11, 9, - 16,14,19,19,14, 9,10,11,12,13,19,19,19,19,11, 9, - 11, 9,13,10,17,14,19,19,19,14,16,15,18,15,18,19, - 19,19,13,14,16,13,17,12,18,17,19,19,19,18,19,18, - 19,19,19,18,19,19,19,19,19,19,19,19,19,19,19,19, - 14,12,13,14,15,17,19,19,19,19,11, 7, 8, 9,10,11, - 16,16,19,19,13, 7, 7, 9,10,13,17,17,19,19,14, 8, - 9, 9,11,11,16,17,19,19,16, 9, 9,11,12,14,17,18, - 19,19,13,10,11,10,13,12,17,16,19,19,18,14,16,16, - 17,17,18,19,19,19,15,15,15,14,19,15,19,17,19,19, - 19,19,19,18,18,18,19,19,19,19,19,19,19,19,19,19, - 19,19,19,19, 9,11,15,13,17,13,18,16,19,19,10, 8, - 9, 8,11, 9,17,14,19,19,17, 9,10,10,12,13,18,17, - 19,19,12, 8,10, 8,12, 9,16,14,19,19,16,10,11,11, - 14,13,17,17,19,19,12, 9,11, 8,12, 9,16,13,19,19, - 19,14,16,15,17,14,19,18,19,19,14,12,15,12,16,11, - 18,14,19,19,19,18,19,17,19,17,19,19,19,19,19,19, - 19,19,19,19,19,19,19,19,12,13,15,15,17,18,19,19, - 19,19,15,10,10,10,12,12,17,16,19,19,18,11,11,12, - 13,13,17,15,19,19,13, 9,11, 9,13,11,16,15,19,19, - 17,11,12,12,10,12,13,12,19,19,12,10,13,10,14,11, - 15,13,19,19,16,14,16,15,13,13,13,12,18,19,14,13, - 16,13,16,12,14,12,18,19,18,18,19,18,18,16,16,17, - 18,19,19,19,19,19,19,19,19,19,19,19,10,13,16,14, - 19,16,19,16,19,19,13,11,11,11,12,11,15,15,18,19, - 19,13,12,14,13,14,15,14,18,19,12,10,11,10,12,10, - 14,14,18,19,16,11,11,12, 8,11, 9,11,18,19,10,10, - 12, 9,13, 9,11,10,16,19,15,12,12,11, 8, 9, 7, 9, - 14,19,11,11,14,10,10, 9, 8, 8,13,19,16,18,18,16, - 17,14,13,13,17,19,19,19,19,19,19,19,19,19,19,19, - 12,15,17,17,18,18,18,19,19,19,14,13,13,14,13,15, - 14,19,19,19,19,15,13,16,12,16,14,17,19,19,16,14, - 14,14,13,14,13,15,19,19,19,14,12,15, 8,13, 9,12, - 18,19,13,13,16,12,13,11,11,12,19,19,18,14,11,13, - 7,10, 6, 8,13,19,14,13,13,12, 9,10, 6, 7,13,19, - 16,19,18,16,14,15,12,12,17,19,19,19,19,19,19,18, - 19,19,19,19,15,18,18,19,19,19,18,19,19,19,16,16, - 16,15,15,17,15,18,19,19,19,18,16,18,15,19,14,17, - 19,19,18,17,16,17,14,16,14,16,19,19,19,18,15,17, - 11,15,11,14,19,19,18,18,17,17,16,14,14,15,19,19, - 19,17,14,15, 9,13, 8,10,15,19,19,19,15,16,11,13, - 9, 9,14,19,19,19,19,19,15,17,14,14,19,19,19,19, - 19,19,19,19,19,19,19,19, -}; - -static static_codebook _huff_book_res0_96_1024aux = { - 3, 1000, - _huff_lengthlist_res0_96_1024aux, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_96_128_1.vqh b/lib/books/res0_96_128_1.vqh deleted file mode 100644 index 2a5eff0b..00000000 --- a/lib/books/res0_96_128_1.vqh +++ /dev/null @@ -1,63 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_96_128_1_VQH_ -#define _V_res0_96_128_1_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_96_128_1[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist_res0_96_128_1[] = { - 2, 4, 4, 4, 7, 6, 4, 6, 6, 4, 7, 7, 7,10,10, 7, - 9,10, 4, 7, 7, 7,10, 9, 7,10, 9, 4, 7, 7, 7,10, - 10, 7,10,10, 7,10,10,10,12,13,10,13,13, 7,10,10, - 9,13,12,10,13,12, 4, 7, 7, 7,10,10, 7,10,10, 7, - 10,10,10,13,12, 9,11,13, 7,10,10,10,13,13,10,13, - 12, -}; - -static float _vq_quantthresh_res0_96_128_1[] = { - -0.5, 0.5, -}; - -static long _vq_quantmap_res0_96_128_1[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt_res0_96_128_1 = { - _vq_quantthresh_res0_96_128_1, - _vq_quantmap_res0_96_128_1, - 3, - 3 -}; - -static static_codebook _vq_book_res0_96_128_1 = { - 4, 81, - _vq_lengthlist_res0_96_128_1, - 1, -535822336, 1611661312, 2, 0, - _vq_quantlist_res0_96_128_1, - NULL, - &_vq_auxt_res0_96_128_1, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_96_128_2.vqh b/lib/books/res0_96_128_2.vqh deleted file mode 100644 index 9c2f3261..00000000 --- a/lib/books/res0_96_128_2.vqh +++ /dev/null @@ -1,63 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_96_128_2_VQH_ -#define _V_res0_96_128_2_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_96_128_2[] = { - 1, - 0, - 2, -}; - -static long _vq_lengthlist_res0_96_128_2[] = { - 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, - 6, 7, 6, 6, 6, 6, 7, 6, 6, 7, 6, 6, 6, 6, 7, 7, - 7, 6, 6, 6, 6, 7, 6, 6, 6, 8, 7, 8, 8, 6, 6, 7, - 6, 8, 7, 7, 7, 8, 6, 6, 6, 6, 6, 6, 6, 7, 7, 6, - 7, 6, 7, 8, 7, 6, 6, 8, 6, 6, 7, 7, 8, 8, 6, 8, - 7, -}; - -static float _vq_quantthresh_res0_96_128_2[] = { - -0.5, 0.5, -}; - -static long _vq_quantmap_res0_96_128_2[] = { - 1, 0, 2, -}; - -static encode_aux_threshmatch _vq_auxt_res0_96_128_2 = { - _vq_quantthresh_res0_96_128_2, - _vq_quantmap_res0_96_128_2, - 3, - 3 -}; - -static static_codebook _vq_book_res0_96_128_2 = { - 4, 81, - _vq_lengthlist_res0_96_128_2, - 1, -535822336, 1611661312, 2, 0, - _vq_quantlist_res0_96_128_2, - NULL, - &_vq_auxt_res0_96_128_2, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_96_128_3.vqh b/lib/books/res0_96_128_3.vqh deleted file mode 100644 index 93a7eef6..00000000 --- a/lib/books/res0_96_128_3.vqh +++ /dev/null @@ -1,70 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_96_128_3_VQH_ -#define _V_res0_96_128_3_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_96_128_3[] = { - 8, - 7, - 9, - 5, - 11, - 3, - 13, - 0, - 16, -}; - -static long _vq_lengthlist_res0_96_128_3[] = { - 3, 3, 3, 5, 5, 8, 8, 8, 8, 4, 4, 4, 6, 6, 8, 8, - 9, 8, 4, 4, 4, 6, 6, 8, 8, 8, 9, 6, 7, 7,10,10, - 11,11,11,11, 6, 7, 7,10,10,11,11,11,11, 9,10,10, - 12,13,13,14,13,14, 9,10,10,12,12,13,14,13,13,11, - 13,12,15,14,15,15,15,16,11,12,12,14,14,15,16,15, - 15, -}; - -static float _vq_quantthresh_res0_96_128_3[] = { - -6.5, -4, -2, -0.5, 0.5, 2, 4, 6.5, -}; - -static long _vq_quantmap_res0_96_128_3[] = { - 7, 5, 3, 1, 0, 2, 4, 6, - 8, -}; - -static encode_aux_threshmatch _vq_auxt_res0_96_128_3 = { - _vq_quantthresh_res0_96_128_3, - _vq_quantmap_res0_96_128_3, - 9, - 9 -}; - -static static_codebook _vq_book_res0_96_128_3 = { - 2, 81, - _vq_lengthlist_res0_96_128_3, - 1, -529530880, 1611661312, 5, 0, - _vq_quantlist_res0_96_128_3, - NULL, - &_vq_auxt_res0_96_128_3, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_96_128_4.vqh b/lib/books/res0_96_128_4.vqh deleted file mode 100644 index aaf035cc..00000000 --- a/lib/books/res0_96_128_4.vqh +++ /dev/null @@ -1,100 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_96_128_4_VQH_ -#define _V_res0_96_128_4_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_96_128_4[] = { - 24, - 23, - 25, - 21, - 27, - 19, - 29, - 16, - 32, - 13, - 35, - 10, - 38, - 7, - 41, - 4, - 44, - 0, - 48, -}; - -static long _vq_lengthlist_res0_96_128_4[] = { - 4, 4, 4, 6, 6, 6, 6, 7, 7, 6, 7, 7, 7, 8, 8, 8, - 9, 9, 9, 5, 4, 4, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, - 8, 8, 9, 9, 9,10, 5, 4, 4, 6, 6, 6, 6, 7, 7, 7, - 7, 7, 7, 8, 8, 9, 9,10,10, 7, 7, 7, 8, 8, 9, 9, - 10,10,10,10,10,10,11,11,12,11,12,12, 7, 7, 7, 8, - 8, 9, 9,10,10, 9,10,10,10,11,11,11,12,12,12, 9, - 9, 9,10,11,11,11,12,12,12,12,13,13,13,13,14,14, - 14,15,10, 9, 9,11,10,11,11,12,12,11,12,13,13,13, - 13,14,14,15,15,11,12,11,12,12,13,13,13,13,13,13, - 14,14,15,14,15,15,16,17,11,11,11,12,12,13,13,14, - 14,14,13,14,14,15,14,15,14,15,15,11,12,12,14,14, - 15,14,15,14,15,15,16,16,14,15,17,17,17,16,11,12, - 12,13,14,14,14,15,14,15,15,16,15,16,16,17,16,17, - 17,13,13,15,15,15,16,17,14,16,17,15,16,16,15,17, - 17,17,17,17,13,14,13,15,15,15,15,16,15,16,16,17, - 15,16,16,17,17,17,16,14,15,14,16,15,17,16,17,16, - 16,17,17,17,16,17,16,17,16,17,14,15,14,16,14,17, - 16,16,17,16,15,17,17,17,17,17,16,17,17,15,17,15, - 17,15,17,16,17,17,17,17,16,17,17,17,17,17,17,17, - 15,15,14,15,15,17,17,17,17,16,17,17,16,17,17,17, - 17,17,17,15,15,16,17,15,17,16,17,16,16,17,17,17, - 17,17,17,17,17,17,15,15,16,16,17,17,17,17,17,17, - 17,17,17,17,17,17,17,17,17, -}; - -static float _vq_quantthresh_res0_96_128_4[] = { - -22, -18.5, -15.5, -12.5, -9.5, -6.5, -4, -2, - -0.5, 0.5, 2, 4, 6.5, 9.5, 12.5, 15.5, - 18.5, 22, -}; - -static long _vq_quantmap_res0_96_128_4[] = { - 17, 15, 13, 11, 9, 7, 5, 3, - 1, 0, 2, 4, 6, 8, 10, 12, - 14, 16, 18, -}; - -static encode_aux_threshmatch _vq_auxt_res0_96_128_4 = { - _vq_quantthresh_res0_96_128_4, - _vq_quantmap_res0_96_128_4, - 19, - 19 -}; - -static static_codebook _vq_book_res0_96_128_4 = { - 2, 361, - _vq_lengthlist_res0_96_128_4, - 1, -526909440, 1611661312, 6, 0, - _vq_quantlist_res0_96_128_4, - NULL, - &_vq_auxt_res0_96_128_4, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_96_128_5.vqh b/lib/books/res0_96_128_5.vqh deleted file mode 100644 index b4ef47af..00000000 --- a/lib/books/res0_96_128_5.vqh +++ /dev/null @@ -1,102 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_96_128_5_VQH_ -#define _V_res0_96_128_5_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_96_128_5[] = { - 61, - 60, - 62, - 58, - 64, - 56, - 66, - 53, - 69, - 50, - 72, - 47, - 75, - 44, - 78, - 41, - 81, - 37, - 85, - 33, - 89, - 30, - 92, - 26, - 96, - 22, - 100, - 18, - 104, - 14, - 108, - 10, - 112, - 5, - 117, - 0, - 122, -}; - -static long _vq_lengthlist_res0_96_128_5[] = { - 2, 2, 2, 5, 5, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 9, - 9,11,10, 6, 6, 7, 7, 9, 8, 9, 9,10,10,11,11,11, - 11,13,14,12,14, -}; - -static float _vq_quantthresh_res0_96_128_5[] = { - -58.5, -53.5, -49, -45, -41, -37, -33, -29.5, - -26, -22, -18.5, -15.5, -12.5, -9.5, -6.5, -4, - -2, -0.5, 0.5, 2, 4, 6.5, 9.5, 12.5, - 15.5, 18.5, 22, 26, 29.5, 33, 37, 41, - 45, 49, 53.5, 58.5, -}; - -static long _vq_quantmap_res0_96_128_5[] = { - 35, 33, 31, 29, 27, 25, 23, 21, - 19, 17, 15, 13, 11, 9, 7, 5, - 3, 1, 0, 2, 4, 6, 8, 10, - 12, 14, 16, 18, 20, 22, 24, 26, - 28, 30, 32, 34, 36, -}; - -static encode_aux_threshmatch _vq_auxt_res0_96_128_5 = { - _vq_quantthresh_res0_96_128_5, - _vq_quantmap_res0_96_128_5, - 37, - 37 -}; - -static static_codebook _vq_book_res0_96_128_5 = { - 1, 37, - _vq_lengthlist_res0_96_128_5, - 1, -524386304, 1611661312, 7, 0, - _vq_quantlist_res0_96_128_5, - NULL, - &_vq_auxt_res0_96_128_5, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_96_128aux.vqh b/lib/books/res0_96_128aux.vqh deleted file mode 100644 index 2ef5f208..00000000 --- a/lib/books/res0_96_128aux.vqh +++ /dev/null @@ -1,50 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - * * - ******************************************************************** - - function: static codebook autogenerated by huff/huffbuld - - ********************************************************************/ - -#ifndef _V_res0_96_128aux_VQH_ -#define _V_res0_96_128aux_VQH_ -#include "codebook.h" - -static long _huff_lengthlist_res0_96_128aux[] = { - 5, 7,10,10,15,16, 6, 5, 7, 9,14,16,11, 9,10,12, - 16,16,10, 9,13,11,14,16,15,14,16,16,16,16,16,16, - 16,16,16,16, 5, 5, 9,10,13,16, 4, 2, 5, 7,16,16, - 8, 5, 7,11,16,16, 9, 7,10,10,14,16,15,14,16,16, - 16,16,16,16,16,16,16,16, 9, 8,12,14,16,16, 7, 4, - 8,12,16,16,10, 7, 8,15,16,16,12,11,13,14,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16, 8, 8,13,11, - 15,16, 7, 6,10,10,16,16,12, 8, 7, 9,16,16,11, 7, - 6, 7,14,16,16,11,12,10,15,16,16,14,14,16,16,16, - 11,13,16,16,16,16,12,13,12,12,16,16,15, 6, 5, 6, - 14,16,12, 5, 4, 4,11,14,15, 9, 9, 8,13,15,16,15, - 15,15,16,16,16,16,16,16,16,16,16,16,16,14,16,16, - 16,10, 9,10,16,16,16, 8, 8, 8,16,16,16,13,13,13, - 16,16,16,16,16,16,16,15, -}; - -static static_codebook _huff_book_res0_96_128aux = { - 3, 216, - _huff_lengthlist_res0_96_128aux, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - 0 -}; - - -#endif diff --git a/lib/codebook.h b/lib/codebook.h deleted file mode 100644 index 7402c708..00000000 --- a/lib/codebook.h +++ /dev/null @@ -1,164 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: basic shared codebook operations - last mod: $Id: codebook.h,v 1.8 2001/06/15 21:15:39 xiphmont Exp $ - - ********************************************************************/ - -#ifndef _V_CODEBOOK_H_ -#define _V_CODEBOOK_H_ - -#include "ogg/ogg.h" - -/* This structure encapsulates huffman and VQ style encoding books; it - doesn't do anything specific to either. - - valuelist/quantlist are nonNULL (and q_* significant) only if - there's entry->value mapping to be done. - - If encode-side mapping must be done (and thus the entry needs to be - hunted), the auxiliary encode pointer will point to a decision - tree. This is true of both VQ and huffman, but is mostly useful - with VQ. - -*/ - -typedef struct static_codebook{ - long dim; /* codebook dimensions (elements per vector) */ - long entries; /* codebook entries */ - long *lengthlist; /* codeword lengths in bits */ - - /* mapping ***************************************************************/ - int maptype; /* 0=none - 1=implicitly populated values from map column - 2=listed arbitrary values */ - - /* The below does a linear, single monotonic sequence mapping. */ - long q_min; /* packed 32 bit float; quant value 0 maps to minval */ - long q_delta; /* packed 32 bit float; val 1 - val 0 == delta */ - int q_quant; /* bits: 0 < quant <= 16 */ - int q_sequencep; /* bitflag */ - - long *quantlist; /* map == 1: (int)(entries^(1/dim)) element column map - map == 2: list of dim*entries quantized entry vals - */ - - /* encode helpers ********************************************************/ - struct encode_aux_nearestmatch *nearest_tree; - struct encode_aux_threshmatch *thresh_tree; - struct encode_aux_pigeonhole *pigeon_tree; - - int allocedp; -} static_codebook; - -/* this structures an arbitrary trained book to quickly find the - nearest cell match */ -typedef struct encode_aux_nearestmatch{ - /* pre-calculated partitioning tree */ - long *ptr0; - long *ptr1; - - long *p; /* decision points (each is an entry) */ - long *q; /* decision points (each is an entry) */ - long aux; /* number of tree entries */ - long alloc; -} encode_aux_nearestmatch; - -/* assumes a maptype of 1; encode side only, so that's OK */ -typedef struct encode_aux_threshmatch{ - float *quantthresh; - long *quantmap; - int quantvals; - int threshvals; -} encode_aux_threshmatch; - -typedef struct encode_aux_pigeonhole{ - float min; - float del; - - int mapentries; - int quantvals; - long *pigeonmap; - - long fittotal; - long *fitlist; - long *fitmap; - long *fitlength; -} encode_aux_pigeonhole; - -typedef struct decode_aux{ - long *tab; - int *tabl; - int tabn; - - long *ptr0; - long *ptr1; - long aux; /* number of tree entries */ -} decode_aux; - -typedef struct codebook{ - long dim; /* codebook dimensions (elements per vector) */ - long entries; /* codebook entries */ - const static_codebook *c; - - float *valuelist; /* list of dim*entries actual entry values */ - long *codelist; /* list of bitstream codewords for each entry */ - struct decode_aux *decode_tree; - - long zeroentry; -} codebook; - -extern void vorbis_staticbook_clear(static_codebook *b); -extern void vorbis_staticbook_destroy(static_codebook *b); -extern int vorbis_book_init_encode(codebook *dest,const static_codebook *source); -extern int vorbis_book_init_decode(codebook *dest,const static_codebook *source); -extern void vorbis_book_clear(codebook *b); - -extern float *_book_unquantize(const static_codebook *b); -extern float *_book_logdist(const static_codebook *b,float *vals); -extern float _float32_unpack(long val); -extern long _float32_pack(float val); -extern int _best(codebook *book, float *a, int step); -extern int _ilog(unsigned int v); -extern long _book_maptype1_quantvals(const static_codebook *b); - -extern int vorbis_book_besterror(codebook *book,float *a,int step,int addmul); -extern long vorbis_book_codeword(codebook *book,int entry); -extern long vorbis_book_codelen(codebook *book,int entry); - - - -extern int vorbis_staticbook_pack(const static_codebook *c,oggpack_buffer *b); -extern int vorbis_staticbook_unpack(oggpack_buffer *b,static_codebook *c); - -extern int vorbis_book_encode(codebook *book, int a, oggpack_buffer *b); -extern int vorbis_book_errorv(codebook *book, float *a); -extern int vorbis_book_encodev(codebook *book, int best,float *a, - oggpack_buffer *b); -extern int vorbis_book_encodevs(codebook *book, float *a, oggpack_buffer *b, - int step,int stagetype); - -extern long vorbis_book_decode(codebook *book, oggpack_buffer *b); -extern long vorbis_book_decodevs_add(codebook *book, float *a, - oggpack_buffer *b,int n); -extern long vorbis_book_decodev_set(codebook *book, float *a, - oggpack_buffer *b,int n); -extern long vorbis_book_decodev_add(codebook *book, float *a, - oggpack_buffer *b,int n); -extern long vorbis_book_decodevv_add(codebook *book, float **a, - long off,int ch, - oggpack_buffer *b,int n); - - - -#endif diff --git a/lib/codec_internal.h b/lib/codec_internal.h deleted file mode 100644 index 3b333684..00000000 --- a/lib/codec_internal.h +++ /dev/null @@ -1,124 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - ******************************************************************** - - function: libvorbis codec headers - last mod: $Id: codec_internal.h,v 1.8 2001/03/26 23:27:43 xiphmont Exp $ - - ********************************************************************/ - -#ifndef _V_CODECI_H_ -#define _V_CODECI_H_ - -#include "envelope.h" -#include "codebook.h" -#include "psy.h" -#include "bitbuffer.h" - -typedef struct vorbis_block_internal{ - float **pcmdelay; /* this is a pointer into local storage */ - float ampmax; -} vorbis_block_internal; - -typedef void vorbis_look_time; -typedef void vorbis_look_mapping; -typedef void vorbis_look_floor; -typedef void vorbis_look_residue; -typedef void vorbis_look_transform; - -typedef struct backend_lookup_state { - /* local lookup storage */ - envelope_lookup *ve; /* envelope lookup */ - float **window[2][2][2]; /* block, leadin, leadout, type */ - vorbis_look_transform **transform[2]; /* block, type */ - codebook *fullbooks; - - /* backend lookups are tied to the mode, not the backend or naked mapping */ - int modebits; - vorbis_look_mapping **mode; - - /* local storage, only used on the encoding side. This way the - application does not need to worry about freeing some packets' - memory and not others'; packet storage is always tracked. - Cleared next call to a _dsp_ function */ - unsigned char *header; - unsigned char *header1; - unsigned char *header2; - - float ampmax; - -} backend_lookup_state; - -/* mode ************************************************************/ -typedef struct { - int blockflag; - int windowtype; - int transformtype; - int mapping; -} vorbis_info_mode; - -typedef void vorbis_info_time; -typedef void vorbis_info_floor; -typedef void vorbis_info_residue; -typedef void vorbis_info_mapping; - -/* vorbis_info contains all the setup information specific to the - specific compression/decompression mode in progress (eg, - psychoacoustic settings, channel setup, options, codebook - etc). -*********************************************************************/ - -typedef struct codec_setup_info { - - /* Vorbis supports only short and long blocks, but allows the - encoder to choose the sizes */ - - long blocksizes[2]; - - /* modes are the primary means of supporting on-the-fly different - blocksizes, different channel mappings (LR or mid-side), - different residue backends, etc. Each mode consists of a - blocksize flag and a mapping (along with the mapping setup */ - - int modes; - int maps; - int times; - int floors; - int residues; - int books; - int psys; /* encode only */ - - vorbis_info_mode *mode_param[64]; - int map_type[64]; - vorbis_info_mapping *map_param[64]; - int time_type[64]; - vorbis_info_time *time_param[64]; - int floor_type[64]; - vorbis_info_floor *floor_param[64]; - int residue_type[64]; - vorbis_info_residue *residue_param[64]; - static_codebook *book_param[256]; - vorbis_info_psy *psy_param[64]; /* encode only */ - - /* for block long/sort tuning; encode only */ - int envelopesa; - float preecho_thresh[4]; - float postecho_thresh[4]; - float preecho_minenergy; - - float ampmax_att_per_sec; - - /* delay caching... how many samples to keep around prior to our - current block to aid in analysis? */ - int delaycache; - -} codec_setup_info; - -#endif diff --git a/lib/envelope.c b/lib/envelope.c deleted file mode 100644 index 53d7bf00..00000000 --- a/lib/envelope.c +++ /dev/null @@ -1,236 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: PCM data envelope analysis and manipulation - last mod: $Id: envelope.c,v 1.36 2001/05/27 06:43:59 xiphmont Exp $ - - Preecho calculation. - - ********************************************************************/ - -#include <stdlib.h> -#include <string.h> -#include <stdio.h> -#include <math.h> -#include <ogg/ogg.h> -#include "vorbis/codec.h" -#include "codec_internal.h" - -#include "os.h" -#include "scales.h" -#include "envelope.h" -#include "misc.h" -#include "iir.c" /* Yes, ugly, but needed for inlining */ - -/* Digital filter designed by mkfilter/mkshape/gencode A.J. Fisher */ - -static int cheb_highpass_stages=6; -static float cheb_highpass_B[]={1.f,-6.f,15.f,-20.f,15.f,-6.f,1.f}; - -static int cheb_bandpass_stages=6; -static float cheb_bandpass_B[]={-1.f,0.f,3.f,0.f,-3.f,0.f,1.f}; - - -/* 10kHz Chebyshev highpass */ -static float cheb_highpass10k_gain= 54.34519586f; -static float cheb_highpass10k_A[]={ - -0.2064797169f, - -0.5609713214f, - -1.1352465327f, - -1.4495555418f, - -1.7938140760f, - -0.9473564683f}; - -/* 6kHz-10kHz Chebyshev bandpass */ -static float cheb_bandpass6k_gain=113.4643935f; -static float cheb_bandpass6k_A[]={ - -0.5712621337f, - 1.5626130710f, - -3.3348854983f, - 4.0471340821f, - -4.0051680331f, - 2.2786325610f}; - -/* 3kHz-6kHz Chebyshev bandpass */ -static float cheb_bandpass3k_gain= 248.8359377f; -static float cheb_bandpass3k_A[]={ - -0.6564230022f, - 3.3747911257f, - -8.0098635981f, - 11.0040876874f, - -9.2250963484f, - 4.4760355389f}; - -/* 1.5kHz-3kHz Chebyshev bandpass */ -static float cheb_bandpass1k_gain= 1798.537183f; -static float cheb_bandpass1k_A[]={ - -0.8097527363f, - 4.7725742682f, - -11.9800219408f, - 16.3770336223f, - -12.8553129536f, - 5.4948074309f}; - -void _ve_envelope_init(envelope_lookup *e,vorbis_info *vi){ - codec_setup_info *ci=vi->codec_setup; - int ch=vi->channels; - int window=ci->envelopesa; - int i; - e->winlength=window; - e->minenergy=fromdB(ci->preecho_minenergy); - e->iir=_ogg_calloc(ch*4,sizeof(IIR_state)); - e->filtered=_ogg_calloc(ch*4,sizeof(float *)); - e->ch=ch; - e->storage=128; - for(i=0;i<ch*4;i+=4){ - - IIR_init(e->iir+i,cheb_highpass_stages,cheb_highpass10k_gain, - cheb_highpass10k_A,cheb_highpass_B); - IIR_init(e->iir+i+1,cheb_bandpass_stages,cheb_bandpass6k_gain, - cheb_bandpass6k_A,cheb_bandpass_B); - IIR_init(e->iir+i+2,cheb_bandpass_stages,cheb_bandpass3k_gain, - cheb_bandpass3k_A,cheb_bandpass_B); - IIR_init(e->iir+i+3,cheb_bandpass_stages,cheb_bandpass1k_gain, - cheb_bandpass1k_A,cheb_bandpass_B); - - e->filtered[i]=_ogg_calloc(e->storage,sizeof(float)); - e->filtered[i+1]=_ogg_calloc(e->storage,sizeof(float)); - e->filtered[i+2]=_ogg_calloc(e->storage,sizeof(float)); - e->filtered[i+3]=_ogg_calloc(e->storage,sizeof(float)); - } - -} - -void _ve_envelope_clear(envelope_lookup *e){ - int i; - for(i=0;i<e->ch*4;i++){ - IIR_clear((e->iir+i)); - _ogg_free(e->filtered[i]); - } - _ogg_free(e->filtered); - _ogg_free(e->iir); - memset(e,0,sizeof(envelope_lookup)); -} - -/* straight threshhold based until we find something that works better - and isn't patented */ -static float _ve_deltai(envelope_lookup *ve,float *pre,float *post){ - long n=ve->winlength; - - long i; - - /* we want to have a 'minimum bar' for energy, else we're just - basing blocks on quantization noise that outweighs the signal - itself (for low power signals) */ - - float min=ve->minenergy; - float A=min*min*n; - float B=A; - - for(i=0;i<n;i++){ - A+=pre[i]*pre[i]; - B+=post[i]*post[i]; - } - - A=todB(&A); - B=todB(&B); - - return(B-A); -} - -long _ve_envelope_search(vorbis_dsp_state *v,long searchpoint){ - vorbis_info *vi=v->vi; - codec_setup_info *ci=vi->codec_setup; - envelope_lookup *ve=((backend_lookup_state *)(v->backend_state))->ve; - long i,j,k,l; - float *work=alloca(sizeof(float)*ve->winlength*2); - static int seq=0; - - /* make sure we have enough storage to match the PCM */ - if(v->pcm_storage>ve->storage){ - ve->storage=v->pcm_storage; - for(i=0;i<ve->ch*4;i++) - ve->filtered[i]=_ogg_realloc(ve->filtered[i],ve->storage*sizeof(float)); - } - - /* catch up the highpass to match the pcm */ - for(i=0;i<ve->ch;i++){ - float *pcm=v->pcm[i]; - float *filtered0=ve->filtered[i*4]; - float *filtered1=ve->filtered[i*4+1]; - float *filtered2=ve->filtered[i*4+2]; - float *filtered3=ve->filtered[i*4+3]; - IIR_state *iir0=ve->iir+i*4; - IIR_state *iir1=ve->iir+i*4+1; - IIR_state *iir2=ve->iir+i*4+2; - IIR_state *iir3=ve->iir+i*4+3; - int flag=1; - for(j=ve->current;j<v->pcm_current;j++){ - filtered0[j]=IIR_filter(iir0,pcm[j]); - filtered1[j]=IIR_filter_Band(iir1,pcm[j]); - filtered2[j]=IIR_filter_Band(iir2,pcm[j]); - filtered3[j]=IIR_filter_Band(iir3,pcm[j]); - if(pcm[j])flag=0; - } - if(flag && ve->current+64<v->pcm_current){ - IIR_reset(iir0); - IIR_reset(iir1); - IIR_reset(iir2); - IIR_reset(iir3); - } - - } - - ve->current=v->pcm_current; - - /* Now search through our cached highpass data for breaking points */ - /* starting point */ - if(v->W) - j=v->centerW+ci->blocksizes[1]/4-ci->blocksizes[0]/4; - else - j=v->centerW; - - if(j<ve->lastmark)j=ve->lastmark; - - while(j+ve->winlength<=v->pcm_current){ - if(j>=searchpoint)return(1); - - ve->lastmark=j; - for(i=0;i<ve->ch;i++){ - for(k=0;k<4;k++){ - float *filtered=ve->filtered[i*4+k]+j; - float m=_ve_deltai(ve,filtered-ve->winlength,filtered); - - if(m>ci->preecho_thresh[k])return(0); - if(m<ci->postecho_thresh[k])return(0); - - } - } - - j+=min(ci->blocksizes[0],ve->winlength)/2; - - } - if(j>=searchpoint)return(1); - - return(-1); -} - -void _ve_envelope_shift(envelope_lookup *e,long shift){ - int i; - for(i=0;i<e->ch*4;i++) - memmove(e->filtered[i],e->filtered[i]+shift,(e->current-shift)* - sizeof(float)); - e->current-=shift; - e->lastmark-=shift; -} - - diff --git a/lib/envelope.h b/lib/envelope.h deleted file mode 100644 index 59079a68..00000000 --- a/lib/envelope.h +++ /dev/null @@ -1,45 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: PCM data envelope analysis and manipulation - last mod: $Id: envelope.h,v 1.16 2001/02/26 03:50:41 xiphmont Exp $ - - ********************************************************************/ - -#ifndef _V_ENVELOPE_ -#define _V_ENVELOPE_ - -#include "iir.h" -#include "smallft.h" - -typedef struct { - int ch; - int winlength; - int searchstep; - float minenergy; - - IIR_state *iir; - float **filtered; - - long storage; - long current; - long lastmark; -} envelope_lookup; - -extern void _ve_envelope_init(envelope_lookup *e,vorbis_info *vi); -extern void _ve_envelope_clear(envelope_lookup *e); -extern long _ve_envelope_search(vorbis_dsp_state *v,long searchpoint); -extern void _ve_envelope_shift(envelope_lookup *e,long shift); - - -#endif - diff --git a/lib/floor0.c b/lib/floor0.c deleted file mode 100644 index a6372148..00000000 --- a/lib/floor0.c +++ /dev/null @@ -1,464 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: floor backend 0 implementation - last mod: $Id: floor0.c,v 1.44 2001/06/18 09:07:31 xiphmont Exp $ - - ********************************************************************/ - -#include <stdlib.h> -#include <string.h> -#include <math.h> -#include <ogg/ogg.h> -#include "vorbis/codec.h" -#include "codec_internal.h" -#include "registry.h" -#include "lpc.h" -#include "lsp.h" -#include "codebook.h" -#include "scales.h" -#include "misc.h" -#include "os.h" - -#include "misc.h" -#include <stdio.h> - -typedef struct { - long n; - int ln; - int m; - int *linearmap; - - vorbis_info_floor0 *vi; - lpc_lookup lpclook; - float *lsp_look; - -} vorbis_look_floor0; - -/* infrastructure for finding fit */ -static long _f0_fit(codebook *book, - float *orig, - float *workfit, - int cursor){ - int dim=book->dim; - float norm,base=0.f; - int i,best=0; - float *lsp=workfit+cursor; - - if(cursor)base=workfit[cursor-1]; - norm=orig[cursor+dim-1]-base; - - for(i=0;i<dim;i++) - lsp[i]=(orig[i+cursor]-base); - best=_best(book,lsp,1); - - memcpy(lsp,book->valuelist+best*dim,dim*sizeof(float)); - for(i=0;i<dim;i++) - lsp[i]+=base; - return(best); -} - -/***********************************************/ - -static vorbis_info_floor *floor0_copy_info (vorbis_info_floor *i){ - vorbis_info_floor0 *info=(vorbis_info_floor0 *)i; - vorbis_info_floor0 *ret=_ogg_malloc(sizeof(vorbis_info_floor0)); - memcpy(ret,info,sizeof(vorbis_info_floor0)); - return(ret); -} - -static void floor0_free_info(vorbis_info_floor *i){ - if(i){ - memset(i,0,sizeof(vorbis_info_floor0)); - _ogg_free(i); - } -} - -static void floor0_free_look(vorbis_look_floor *i){ - vorbis_look_floor0 *look=(vorbis_look_floor0 *)i; - if(i){ - if(look->linearmap)_ogg_free(look->linearmap); - if(look->lsp_look)_ogg_free(look->lsp_look); - lpc_clear(&look->lpclook); - memset(look,0,sizeof(vorbis_look_floor0)); - _ogg_free(look); - } -} - -static void floor0_pack (vorbis_info_floor *i,oggpack_buffer *opb){ - vorbis_info_floor0 *info=(vorbis_info_floor0 *)i; - int j; - oggpack_write(opb,info->order,8); - oggpack_write(opb,info->rate,16); - oggpack_write(opb,info->barkmap,16); - oggpack_write(opb,info->ampbits,6); - oggpack_write(opb,info->ampdB,8); - oggpack_write(opb,info->numbooks-1,4); - for(j=0;j<info->numbooks;j++) - oggpack_write(opb,info->books[j],8); -} - -static vorbis_info_floor *floor0_unpack (vorbis_info *vi,oggpack_buffer *opb){ - codec_setup_info *ci=vi->codec_setup; - int j; - - vorbis_info_floor0 *info=_ogg_malloc(sizeof(vorbis_info_floor0)); - info->order=oggpack_read(opb,8); - info->rate=oggpack_read(opb,16); - info->barkmap=oggpack_read(opb,16); - info->ampbits=oggpack_read(opb,6); - info->ampdB=oggpack_read(opb,8); - info->numbooks=oggpack_read(opb,4)+1; - - if(info->order<1)goto err_out; - if(info->rate<1)goto err_out; - if(info->barkmap<1)goto err_out; - if(info->numbooks<1)goto err_out; - - for(j=0;j<info->numbooks;j++){ - info->books[j]=oggpack_read(opb,8); - if(info->books[j]<0 || info->books[j]>=ci->books)goto err_out; - } - return(info); - - err_out: - floor0_free_info(info); - return(NULL); -} - -/* initialize Bark scale and normalization lookups. We could do this - with static tables, but Vorbis allows a number of possible - combinations, so it's best to do it computationally. - - The below is authoritative in terms of defining scale mapping. - Note that the scale depends on the sampling rate as well as the - linear block and mapping sizes */ - -static vorbis_look_floor *floor0_look (vorbis_dsp_state *vd,vorbis_info_mode *mi, - vorbis_info_floor *i){ - int j; - float scale; - vorbis_info *vi=vd->vi; - codec_setup_info *ci=vi->codec_setup; - vorbis_info_floor0 *info=(vorbis_info_floor0 *)i; - vorbis_look_floor0 *look=_ogg_calloc(1,sizeof(vorbis_look_floor0)); - look->m=info->order; - look->n=ci->blocksizes[mi->blockflag]/2; - look->ln=info->barkmap; - look->vi=info; - - if(vd->analysisp) - lpc_init(&look->lpclook,look->ln,look->m); - - /* we choose a scaling constant so that: - floor(bark(rate/2-1)*C)=mapped-1 - floor(bark(rate/2)*C)=mapped */ - scale=look->ln/toBARK(info->rate/2.f); - - /* the mapping from a linear scale to a smaller bark scale is - straightforward. We do *not* make sure that the linear mapping - does not skip bark-scale bins; the decoder simply skips them and - the encoder may do what it wishes in filling them. They're - necessary in some mapping combinations to keep the scale spacing - accurate */ - look->linearmap=_ogg_malloc((look->n+1)*sizeof(int)); - for(j=0;j<look->n;j++){ - int val=floor( toBARK((info->rate/2.f)/look->n*j) - *scale); /* bark numbers represent band edges */ - if(val>=look->ln)val=look->ln; /* guard against the approximation */ - look->linearmap[j]=val; - } - look->linearmap[j]=-1; - - look->lsp_look=_ogg_malloc(look->ln*sizeof(float)); - for(j=0;j<look->ln;j++) - look->lsp_look[j]=2*cos(M_PI/look->ln*j); - - return look; -} - -/* less efficient than the decode side (written for clarity). We're - not bottlenecked here anyway */ - -float _curve_to_lpc(float *curve,float *lpc, - vorbis_look_floor0 *l){ - /* map the input curve to a bark-scale curve for encoding */ - - int mapped=l->ln; - float *work=alloca(sizeof(float)*mapped); - int i,j,last=0; - int bark=0; - static int seq=0; - - memset(work,0,sizeof(float)*mapped); - - /* Only the decode side is behavior-specced; for now in the encoder, - we select the maximum value of each band as representative (this - helps make sure peaks don't go out of range. In error terms, - selecting min would make more sense, but the codebook is trained - numerically, so we don't actually lose. We'd still want to - use the original curve for error and noise estimation */ - - for(i=0;i<l->n;i++){ - bark=l->linearmap[i]; - if(work[bark]<curve[i])work[bark]=curve[i]; - if(bark>last+1){ - /* If the bark scale is climbing rapidly, some bins may end up - going unused. This isn't a waste actually; it keeps the - scale resolution even so that the LPC generator has an easy - time. However, if we leave the bins empty we lose energy. - So, fill 'em in. The decoder does not do anything with he - unused bins, so we can fill them anyway we like to end up - with a better spectral curve */ - - /* we'll always have a bin zero, so we don't need to guard init */ - long span=bark-last; - for(j=1;j<span;j++){ - float del=(float)j/span; - work[j+last]=work[bark]*del+work[last]*(1.f-del); - } - } - last=bark; - } - - /* If we're over-ranged to avoid edge effects, fill in the end of spectrum gap */ - for(i=bark+1;i<mapped;i++) - work[i]=work[i-1]; - - - /**********************/ - - for(i=0;i<l->n;i++) - curve[i]-=150; - - _analysis_output("barkfloor",seq,work,bark,0,0); - _analysis_output("barkcurve",seq++,curve,l->n,1,0); - - for(i=0;i<l->n;i++) - curve[i]+=150; - - /**********************/ - - return vorbis_lpc_from_curve(work,lpc,&(l->lpclook)); -} - -static int floor0_forward(vorbis_block *vb,vorbis_look_floor *in, - const float *mdct, const float *logmdct, /* in */ - const float *logmask, const float *logmax, /* in */ - float *residue, float *codedflr){ /* out */ - long j; - vorbis_look_floor0 *look=(vorbis_look_floor0 *)in; - vorbis_info_floor0 *info=look->vi; - float amp; - long bits=0; - long val=0; - static int seq=0; - -#ifdef TRAIN_LSP - FILE *of; - FILE *ef; - char buffer[80]; - -#if 1 - sprintf(buffer,"lsp0coeff_%d.vqd",vb->mode); - of=fopen(buffer,"a"); -#endif -#endif - - seq++; - - - /* our floor comes in on a [-Inf...0] dB scale. The curve has to be - positive, so we offset it. */ - - for(j=0;j<look->n;j++) - codedflr[j]=logmask[j]+info->ampdB; - - /* use 'out' as temp storage */ - /* Convert our floor to a set of lpc coefficients */ - amp=sqrt(_curve_to_lpc(codedflr,codedflr,look)); - - /* amp is in the range (0. to ampdB]. Encode that range using - ampbits bits */ - - { - long maxval=(1L<<info->ampbits)-1; - - val=rint(amp/info->ampdB*maxval); - - if(val<0)val=0; /* likely */ - if(val>maxval)val=maxval; /* not bloody likely */ - - if(val>0) - amp=(float)val/maxval*info->ampdB; - else - amp=0; - } - - if(val){ - /* LSP <-> LPC is orthogonal and LSP quantizes more stably */ - _analysis_output("lpc",seq-1,codedflr,look->m,0,0); - if(vorbis_lpc_to_lsp(codedflr,codedflr,look->m)) - val=0; - - } - - oggpack_write(&vb->opb,val,info->ampbits); - - if(val){ - float *lspwork=alloca(look->m*sizeof(float)); - - /* the spec supports using one of a number of codebooks. Right - now, encode using this lib supports only one */ - backend_lookup_state *be=vb->vd->backend_state; - codebook *b; - int booknum; - - _analysis_output("lsp",seq-1,codedflr,look->m,0,0); - - /* which codebook to use? We do it only by range right now. */ - if(info->numbooks>1){ - float last=0.; - for(j=0;j<look->m;j++){ - float val=codedflr[j]-last; - if(val<info->lessthan || val>info->greaterthan)break; - last=codedflr[j]; - } - if(j<look->m) - booknum=0; - else - booknum=1; - }else - booknum=0; - - b=be->fullbooks+info->books[booknum]; - oggpack_write(&vb->opb,booknum,_ilog(info->numbooks)); - - -#ifdef TRAIN_LSP - { - float last=0.f; - for(j=0;j<look->m;j++){ - fprintf(of,"%.12g, ",codedflr[j]-last); - last=codedflr[j]; - } - } - fprintf(of,"\n"); - fclose(of); - - sprintf(buffer,"lsp0ent_m%d_b%d.vqd",vb->mode,booknum); - ef=fopen(buffer,"a"); - -#endif - - /* code the spectral envelope, and keep track of the actual - quantized values; we don't want creeping error as each block is - nailed to the last quantized value of the previous block. */ - - for(j=0;j<look->m;j+=b->dim){ - int entry=_f0_fit(b,codedflr,lspwork,j); - bits+=vorbis_book_encode(b,entry,&vb->opb); - -#ifdef TRAIN_LSP - fprintf(ef,"%d,\n",entry); -#endif - - } - -#ifdef TRAIN_LSP - fclose(ef); -#endif - - _analysis_output("lsp2",seq-1,lspwork,look->m,0,0); - - /* take the coefficients back to a spectral envelope curve */ - for(j=0;j<look->n;j++) - codedflr[j]=1.f; - vorbis_lsp_to_curve(codedflr,look->linearmap,look->n,look->ln, - lspwork,look->m,amp,info->ampdB); - - _analysis_output("barklsp",seq-1,codedflr,look->n,1,1); - _analysis_output("lsp3",seq-1,codedflr,look->n,0,1); - - /* generate residue output */ - for(j=0;j<look->n;j++) - residue[j]=mdct[j]/codedflr[j]; - - return(val); - } - -#ifdef TRAIN_LSP - fclose(of); -#endif - - memset(codedflr,0,sizeof(float)*look->n); - memset(residue,0,sizeof(float)*look->n); - return(val); -} - -static void *floor0_inverse1(vorbis_block *vb,vorbis_look_floor *i){ - vorbis_look_floor0 *look=(vorbis_look_floor0 *)i; - vorbis_info_floor0 *info=look->vi; - int j,k; - - int ampraw=oggpack_read(&vb->opb,info->ampbits); - if(ampraw>0){ /* also handles the -1 out of data case */ - long maxval=(1<<info->ampbits)-1; - float amp=(float)ampraw/maxval*info->ampdB; - int booknum=oggpack_read(&vb->opb,_ilog(info->numbooks)); - - if(booknum!=-1 && booknum<info->numbooks){ /* be paranoid */ - backend_lookup_state *be=vb->vd->backend_state; - codebook *b=be->fullbooks+info->books[booknum]; - float last=0.f; - float *lsp=_vorbis_block_alloc(vb,sizeof(float)*(look->m+1)); - - for(j=0;j<look->m;j+=b->dim) - if(vorbis_book_decodev_set(b,lsp+j,&vb->opb,b->dim)==-1)goto eop; - for(j=0;j<look->m;){ - for(k=0;k<b->dim;k++,j++)lsp[j]+=last; - last=lsp[j-1]; - } - - lsp[look->m]=amp; - return(lsp); - } - } - eop: - return(NULL); -} - -static int floor0_inverse2(vorbis_block *vb,vorbis_look_floor *i, - void *memo,float *out){ - vorbis_look_floor0 *look=(vorbis_look_floor0 *)i; - vorbis_info_floor0 *info=look->vi; - - if(memo){ - float *lsp=(float *)memo; - float amp=lsp[look->m]; - - /* take the coefficients back to a spectral envelope curve */ - vorbis_lsp_to_curve(out,look->linearmap,look->n,look->ln, - lsp,look->m,amp,info->ampdB); - return(1); - } - memset(out,0,sizeof(float)*look->n); - return(0); -} - -/* export hooks */ -vorbis_func_floor floor0_exportbundle={ - &floor0_pack,&floor0_unpack,&floor0_look,&floor0_copy_info,&floor0_free_info, - &floor0_free_look,&floor0_forward,&floor0_inverse1,&floor0_inverse2 -}; - - diff --git a/lib/floor1.c b/lib/floor1.c deleted file mode 100644 index 8094d02c..00000000 --- a/lib/floor1.c +++ /dev/null @@ -1,1140 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - * * - ******************************************************************** - - function: floor backend 1 implementation - last mod: $Id: floor1.c,v 1.10 2001/06/15 23:59:47 xiphmont Exp $ - - ********************************************************************/ - -#include <stdlib.h> -#include <string.h> -#include <math.h> -#include <ogg/ogg.h> -#include "vorbis/codec.h" -#include "codec_internal.h" -#include "registry.h" -#include "codebook.h" -#include "misc.h" -#include "scales.h" - -#include <stdio.h> - -#define floor1_rangedB 140 /* floor 1 fixed at -140dB to 0dB range */ - -typedef struct { - int sorted_index[VIF_POSIT+2]; - int forward_index[VIF_POSIT+2]; - int reverse_index[VIF_POSIT+2]; - - int hineighbor[VIF_POSIT]; - int loneighbor[VIF_POSIT]; - int posts; - - int n; - int quant_q; - vorbis_info_floor1 *vi; - -} vorbis_look_floor1; - -typedef struct lsfit_acc{ - long x0; - long x1; - - long xa; - long ya; - long x2a; - long y2a; - long xya; - long n; - long an; - long un; - long edgey0; - long edgey1; -} lsfit_acc; - -/***********************************************/ - -static vorbis_info_floor *floor1_copy_info (vorbis_info_floor *i){ - vorbis_info_floor1 *info=(vorbis_info_floor1 *)i; - vorbis_info_floor1 *ret=_ogg_malloc(sizeof(vorbis_info_floor1)); - memcpy(ret,info,sizeof(vorbis_info_floor1)); - return(ret); -} - -static void floor1_free_info(vorbis_info_floor *i){ - if(i){ - memset(i,0,sizeof(vorbis_info_floor1)); - _ogg_free(i); - } -} - -static void floor1_free_look(vorbis_look_floor *i){ - vorbis_look_floor1 *look=(vorbis_look_floor1 *)i; - if(i){ - memset(look,0,sizeof(vorbis_look_floor1)); - free(i); - } -} - -static int ilog(unsigned int v){ - int ret=0; - while(v){ - ret++; - v>>=1; - } - return(ret); -} - -static int ilog2(unsigned int v){ - int ret=0; - while(v>1){ - ret++; - v>>=1; - } - return(ret); -} - -static void floor1_pack (vorbis_info_floor *i,oggpack_buffer *opb){ - vorbis_info_floor1 *info=(vorbis_info_floor1 *)i; - int j,k; - int count=0; - int rangebits; - int maxposit=info->postlist[1]; - int maxclass=-1; - - /* save out partitions */ - oggpack_write(opb,info->partitions,5); /* only 0 to 31 legal */ - for(j=0;j<info->partitions;j++){ - oggpack_write(opb,info->partitionclass[j],4); /* only 0 to 15 legal */ - if(maxclass<info->partitionclass[j])maxclass=info->partitionclass[j]; - } - - /* save out partition classes */ - for(j=0;j<maxclass+1;j++){ - oggpack_write(opb,info->class_dim[j]-1,3); /* 1 to 8 */ - oggpack_write(opb,info->class_subs[j],2); /* 0 to 3 */ - if(info->class_subs[j])oggpack_write(opb,info->class_book[j],8); - for(k=0;k<(1<<info->class_subs[j]);k++) - oggpack_write(opb,info->class_subbook[j][k]+1,8); - } - - /* save out the post list */ - oggpack_write(opb,info->mult-1,2); /* only 1,2,3,4 legal now */ - oggpack_write(opb,ilog2(maxposit),4); - rangebits=ilog2(maxposit); - - for(j=0,k=0;j<info->partitions;j++){ - count+=info->class_dim[info->partitionclass[j]]; - for(;k<count;k++) - oggpack_write(opb,info->postlist[k+2],rangebits); - } -} - - -static vorbis_info_floor *floor1_unpack (vorbis_info *vi,oggpack_buffer *opb){ - codec_setup_info *ci=vi->codec_setup; - int j,k,count=0,maxclass=-1,rangebits; - - vorbis_info_floor1 *info=_ogg_calloc(1,sizeof(vorbis_info_floor1)); - /* read partitions */ - info->partitions=oggpack_read(opb,5); /* only 0 to 31 legal */ - for(j=0;j<info->partitions;j++){ - info->partitionclass[j]=oggpack_read(opb,4); /* only 0 to 15 legal */ - if(maxclass<info->partitionclass[j])maxclass=info->partitionclass[j]; - } - - /* read partition classes */ - for(j=0;j<maxclass+1;j++){ - info->class_dim[j]=oggpack_read(opb,3)+1; /* 1 to 8 */ - info->class_subs[j]=oggpack_read(opb,2); /* 0,1,2,3 bits */ - if(info->class_subs[j]<0) - goto err_out; - if(info->class_subs[j])info->class_book[j]=oggpack_read(opb,8); - if(info->class_book[j]<0 || info->class_book[j]>=ci->books) - goto err_out; - for(k=0;k<(1<<info->class_subs[j]);k++){ - info->class_subbook[j][k]=oggpack_read(opb,8)-1; - if(info->class_subbook[j][k]<-1 || info->class_subbook[j][k]>=ci->books) - goto err_out; - } - } - - /* read the post list */ - info->mult=oggpack_read(opb,2)+1; /* only 1,2,3,4 legal now */ - rangebits=oggpack_read(opb,4); - - for(j=0,k=0;j<info->partitions;j++){ - count+=info->class_dim[info->partitionclass[j]]; - for(;k<count;k++){ - int t=info->postlist[k+2]=oggpack_read(opb,rangebits); - if(t<0 || t>=(1<<rangebits)) - goto err_out; - } - } - info->postlist[0]=0; - info->postlist[1]=1<<rangebits; - - return(info); - - err_out: - floor1_free_info(info); - return(NULL); -} - -static int icomp(const void *a,const void *b){ - return(**(int **)a-**(int **)b); -} - -static vorbis_look_floor *floor1_look(vorbis_dsp_state *vd,vorbis_info_mode *mi, - vorbis_info_floor *in){ - - int *sortpointer[VIF_POSIT+2]; - vorbis_info_floor1 *info=(vorbis_info_floor1 *)in; - vorbis_look_floor1 *look=_ogg_calloc(1,sizeof(vorbis_look_floor1)); - int i,j,n=0; - - look->vi=info; - look->n=info->postlist[1]; - - /* we drop each position value in-between already decoded values, - and use linear interpolation to predict each new value past the - edges. The positions are read in the order of the position - list... we precompute the bounding positions in the lookup. Of - course, the neighbors can change (if a position is declined), but - this is an initial mapping */ - - for(i=0;i<info->partitions;i++)n+=info->class_dim[info->partitionclass[i]]; - n+=2; - look->posts=n; - - /* also store a sorted position index */ - for(i=0;i<n;i++)sortpointer[i]=info->postlist+i; - qsort(sortpointer,n,sizeof(int),icomp); - - /* points from sort order back to range number */ - for(i=0;i<n;i++)look->forward_index[i]=sortpointer[i]-info->postlist; - /* points from range order to sorted position */ - for(i=0;i<n;i++)look->reverse_index[look->forward_index[i]]=i; - /* we actually need the post values too */ - for(i=0;i<n;i++)look->sorted_index[i]=info->postlist[look->forward_index[i]]; - - /* 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; - } - - /* discover our neighbors for decode where we don't use fit flags - (that would push the neighbors outward) */ - for(i=0;i<n-2;i++){ - int lo=0; - int hi=1; - int lx=0; - int hx=look->n; - int currentx=info->postlist[i+2]; - for(j=0;j<i+2;j++){ - int x=info->postlist[j]; - if(x>lx && x<currentx){ - lo=j; - lx=x; - } - if(x<hx && x>currentx){ - hi=j; - hx=x; - } - } - look->loneighbor[i]=lo; - look->hineighbor[i]=hi; - } - - return(look); -} - -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=abs(dy); - int err=ady*(x-x0); - - int off=err/adx; - if(dy<0)return(y0-off); - return(y0+off); - } -} - -static int vorbis_dBquant(const float *x){ - int i= *x*7.3142857f+1023.5f; - if(i>1023)return(1023); - if(i<0)return(0); - return i; -} - -static float FLOOR_fromdB_LOOKUP[256]={ - 1.0649863e-07F, 1.1341951e-07F, 1.2079015e-07F, 1.2863978e-07F, - 1.3699951e-07F, 1.4590251e-07F, 1.5538408e-07F, 1.6548181e-07F, - 1.7623575e-07F, 1.8768855e-07F, 1.9988561e-07F, 2.128753e-07F, - 2.2670913e-07F, 2.4144197e-07F, 2.5713223e-07F, 2.7384213e-07F, - 2.9163793e-07F, 3.1059021e-07F, 3.3077411e-07F, 3.5226968e-07F, - 3.7516214e-07F, 3.9954229e-07F, 4.2550680e-07F, 4.5315863e-07F, - 4.8260743e-07F, 5.1396998e-07F, 5.4737065e-07F, 5.8294187e-07F, - 6.2082472e-07F, 6.6116941e-07F, 7.0413592e-07F, 7.4989464e-07F, - 7.9862701e-07F, 8.5052630e-07F, 9.0579828e-07F, 9.6466216e-07F, - 1.0273513e-06F, 1.0941144e-06F, 1.1652161e-06F, 1.2409384e-06F, - 1.3215816e-06F, 1.4074654e-06F, 1.4989305e-06F, 1.5963394e-06F, - 1.7000785e-06F, 1.8105592e-06F, 1.9282195e-06F, 2.0535261e-06F, - 2.1869758e-06F, 2.3290978e-06F, 2.4804557e-06F, 2.6416497e-06F, - 2.8133190e-06F, 2.9961443e-06F, 3.1908506e-06F, 3.3982101e-06F, - 3.6190449e-06F, 3.8542308e-06F, 4.1047004e-06F, 4.3714470e-06F, - 4.6555282e-06F, 4.9580707e-06F, 5.2802740e-06F, 5.6234160e-06F, - 5.9888572e-06F, 6.3780469e-06F, 6.7925283e-06F, 7.2339451e-06F, - 7.7040476e-06F, 8.2047000e-06F, 8.7378876e-06F, 9.3057248e-06F, - 9.9104632e-06F, 1.0554501e-05F, 1.1240392e-05F, 1.1970856e-05F, - 1.2748789e-05F, 1.3577278e-05F, 1.4459606e-05F, 1.5399272e-05F, - 1.6400004e-05F, 1.7465768e-05F, 1.8600792e-05F, 1.9809576e-05F, - 2.1096914e-05F, 2.2467911e-05F, 2.3928002e-05F, 2.5482978e-05F, - 2.7139006e-05F, 2.8902651e-05F, 3.0780908e-05F, 3.2781225e-05F, - 3.4911534e-05F, 3.7180282e-05F, 3.9596466e-05F, 4.2169667e-05F, - 4.4910090e-05F, 4.7828601e-05F, 5.0936773e-05F, 5.4246931e-05F, - 5.7772202e-05F, 6.1526565e-05F, 6.5524908e-05F, 6.9783085e-05F, - 7.4317983e-05F, 7.9147585e-05F, 8.4291040e-05F, 8.9768747e-05F, - 9.5602426e-05F, 0.00010181521F, 0.00010843174F, 0.00011547824F, - 0.00012298267F, 0.00013097477F, 0.00013948625F, 0.00014855085F, - 0.00015820453F, 0.00016848555F, 0.00017943469F, 0.00019109536F, - 0.00020351382F, 0.00021673929F, 0.00023082423F, 0.00024582449F, - 0.00026179955F, 0.00027881276F, 0.00029693158F, 0.00031622787F, - 0.00033677814F, 0.00035866388F, 0.00038197188F, 0.00040679456F, - 0.00043323036F, 0.00046138411F, 0.00049136745F, 0.00052329927F, - 0.00055730621F, 0.00059352311F, 0.00063209358F, 0.00067317058F, - 0.00071691700F, 0.00076350630F, 0.00081312324F, 0.00086596457F, - 0.00092223983F, 0.00098217216F, 0.0010459992F, 0.0011139742F, - 0.0011863665F, 0.0012634633F, 0.0013455702F, 0.0014330129F, - 0.0015261382F, 0.0016253153F, 0.0017309374F, 0.0018434235F, - 0.0019632195F, 0.0020908006F, 0.0022266726F, 0.0023713743F, - 0.0025254795F, 0.0026895994F, 0.0028643847F, 0.0030505286F, - 0.0032487691F, 0.0034598925F, 0.0036847358F, 0.0039241906F, - 0.0041792066F, 0.0044507950F, 0.0047400328F, 0.0050480668F, - 0.0053761186F, 0.0057254891F, 0.0060975636F, 0.0064938176F, - 0.0069158225F, 0.0073652516F, 0.0078438871F, 0.0083536271F, - 0.0088964928F, 0.009474637F, 0.010090352F, 0.010746080F, - 0.011444421F, 0.012188144F, 0.012980198F, 0.013823725F, - 0.014722068F, 0.015678791F, 0.016697687F, 0.017782797F, - 0.018938423F, 0.020169149F, 0.021479854F, 0.022875735F, - 0.024362330F, 0.025945531F, 0.027631618F, 0.029427276F, - 0.031339626F, 0.033376252F, 0.035545228F, 0.037855157F, - 0.040315199F, 0.042935108F, 0.045725273F, 0.048696758F, - 0.051861348F, 0.055231591F, 0.058820850F, 0.062643361F, - 0.066714279F, 0.071049749F, 0.075666962F, 0.080584227F, - 0.085821044F, 0.091398179F, 0.097337747F, 0.10366330F, - 0.11039993F, 0.11757434F, 0.12521498F, 0.13335215F, - 0.14201813F, 0.15124727F, 0.16107617F, 0.17154380F, - 0.18269168F, 0.19456402F, 0.20720788F, 0.22067342F, - 0.23501402F, 0.25028656F, 0.26655159F, 0.28387361F, - 0.30232132F, 0.32196786F, 0.34289114F, 0.36517414F, - 0.38890521F, 0.41417847F, 0.44109412F, 0.46975890F, - 0.50028648F, 0.53279791F, 0.56742212F, 0.60429640F, - 0.64356699F, 0.68538959F, 0.72993007F, 0.77736504F, - 0.82788260F, 0.88168307F, 0.9389798F, 1.F, -}; - -static void render_line(int x0,int x1,int y0,int y1,float *d){ - int dy=y1-y0; - int adx=x1-x0; - int ady=abs(dy); - int base=dy/adx; - int sy=(dy<0?base-1:base+1); - int x=x0; - int y=y0; - int err=0; - - ady-=abs(base*adx); - - d[x]*=FLOOR_fromdB_LOOKUP[y]; - while(++x<x1){ - err=err+ady; - if(err>=adx){ - err-=adx; - y+=sy; - }else{ - y+=base; - } - d[x]*=FLOOR_fromdB_LOOKUP[y]; - } -} - -static void render_line0(int x0,int x1,int y0,int y1,float *d){ - int dy=y1-y0; - int adx=x1-x0; - int ady=abs(dy); - int base=dy/adx; - int sy=(dy<0?base-1:base+1); - int x=x0; - int y=y0; - int err=0; - - ady-=abs(base*adx); - - d[x]=FLOOR_fromdB_LOOKUP[y]; - while(++x<x1){ - err=err+ady; - if(err>=adx){ - err-=adx; - y+=sy; - }else{ - y+=base; - } - d[x]=FLOOR_fromdB_LOOKUP[y]; - } -} - -/* the floor has already been filtered to only include relevant sections */ -static int accumulate_fit(const float *flr,const float *mdct, - int x0, int x1,lsfit_acc *a, - int n,vorbis_info_floor1 *info){ - long i; - int quantized=vorbis_dBquant(flr); - - long xa=0,ya=0,x2a=0,y2a=0,xya=0,na=0, xb=0,yb=0,x2b=0,y2b=0,xyb=0,nb=0; - - memset(a,0,sizeof(lsfit_acc)); - a->x0=x0; - a->x1=x1; - a->edgey0=quantized; - if(x1>n)x1=n; - - for(i=x0;i<x1;i++){ - int quantized=vorbis_dBquant(flr+i); - if(quantized){ - if(mdct[i]+info->twofitatten>=flr[i]){ - xa += i; - ya += quantized; - x2a += i*i; - y2a += quantized*quantized; - xya += i*quantized; - na++; - }else{ - xb += i; - yb += quantized; - x2b += i*i; - y2b += quantized*quantized; - xyb += i*quantized; - nb++; - } - } - } - - xb+=xa; - yb+=ya; - x2b+=x2a; - y2b+=y2a; - xyb+=xya; - nb+=na; - - /* weight toward the actually used frequencies if we meet the threshhold */ - { - int weight; - if(nb<info->twofitminsize || na<info->twofitminused){ - weight=0; - }else{ - weight=nb*info->twofitweight/na; - } - a->xa=xa*weight+xb; - a->ya=ya*weight+yb; - a->x2a=x2a*weight+x2b; - a->y2a=y2a*weight+y2b; - a->xya=xya*weight+xyb; - a->an=na*weight+nb; - a->n=nb; - a->un=na; - if(nb>=info->unusedminsize)a->un++; - } - - a->edgey1=-200; - if(x1<n){ - int quantized=vorbis_dBquant(flr+i); - a->edgey1=quantized; - } - return(a->n); -} - -/* returns < 0 on too few points to fit, >=0 (meansq error) on success */ -static int fit_line(lsfit_acc *a,int fits,int *y0,int *y1){ - long x=0,y=0,x2=0,y2=0,xy=0,n=0,an=0,i; - long x0=a[0].x0; - long x1=a[fits-1].x1; - - for(i=0;i<fits;i++){ - if(a[i].un){ - x+=a[i].xa; - y+=a[i].ya; - x2+=a[i].x2a; - y2+=a[i].y2a; - xy+=a[i].xya; - n+=a[i].n; - an+=a[i].an; - } - } - - if(*y0>=0){ /* hint used to break degenerate cases */ - x+= x0; - y+= *y0; - x2+= x0 * x0; - y2+= *y0 * *y0; - xy+= *y0 * x0; - n++; - an++; - } - - if(*y1>=0){ /* hint used to break degenerate cases */ - x+= x1; - y+= *y1; - x2+= x1 * x1; - y2+= *y1 * *y1; - xy+= *y1 * x1; - n++; - an++; - } - - if(n<2)return(n-2); - - { - /* need 64 bit multiplies, which C doesn't give portably as int */ - double fx=x; - double fy=y; - double fx2=x2; - double fxy=xy; - double denom=1./(an*fx2-fx*fx); - double a=(fy*fx2-fxy*fx)*denom; - double b=(an*fxy-fx*fy)*denom; - *y0=rint(a+b*x0); - *y1=rint(a+b*x1); - - /* limit to our range! */ - if(*y0>1023)*y0=1023; - if(*y1>1023)*y1=1023; - if(*y0<0)*y0=0; - if(*y1<0)*y1=0; - - return(0); - } -} - -/*static void fit_line_point(lsfit_acc *a,int fits,int *y0,int *y1){ - long y=0; - int i; - - for(i=0;i<fits && y==0;i++) - y+=a[i].ya; - - *y0=*y1=y; - }*/ - -static int inspect_error(int x0,int x1,int y0,int y1,const float *mask, - const float *mdct, - vorbis_info_floor1 *info){ - int dy=y1-y0; - int adx=x1-x0; - int ady=abs(dy); - int base=dy/adx; - int sy=(dy<0?base-1:base+1); - int x=x0; - int y=y0; - int err=0; - int val=vorbis_dBquant(mask+x); - int mse=0; - int n=0; - - ady-=abs(base*adx); - - if(mdct[x]+info->twofitatten>=mask[x]){ - if(y+info->maxover<val)return(1); - if(y-info->maxunder>val)return(1); - mse=(y-val); - mse*=mse; - n++; - } - - while(++x<x1){ - err=err+ady; - if(err>=adx){ - err-=adx; - y+=sy; - }else{ - y+=base; - } - - if(mdct[x]+info->twofitatten>=mask[x]){ - val=vorbis_dBquant(mask+x); - if(val){ - if(y+info->maxover<val)return(1); - if(y-info->maxunder>val)return(1); - mse+=((y-val)*(y-val)); - n++; - } - } - } - - if(n){ - if(info->maxover*info->maxover/n>info->maxerr)return(0); - if(info->maxunder*info->maxunder/n>info->maxerr)return(0); - if(mse/n>info->maxerr)return(1); - } - return(0); -} - -static int post_Y(int *A,int *B,int pos){ - if(A[pos]<0) - return B[pos]; - if(B[pos]<0) - return A[pos]; - return (A[pos]+B[pos])>>1; -} - -static int floor1_forward(vorbis_block *vb,vorbis_look_floor *in, - const float *mdct, const float *logmdct, /* in */ - const float *logmask, const float *logmax, /* in */ - float *residue, float *codedflr){ /* out */ - static int seq=0; - long i,j,k,l; - vorbis_look_floor1 *look=(vorbis_look_floor1 *)in; - vorbis_info_floor1 *info=look->vi; - long n=look->n; - long posts=look->posts; - long nonzero=0; - lsfit_acc fits[VIF_POSIT+1]; - int fit_valueA[VIF_POSIT+2]; /* index by range list position */ - int fit_valueB[VIF_POSIT+2]; /* index by range list position */ - int fit_flag[VIF_POSIT+2]; - - int loneighbor[VIF_POSIT+2]; /* sorted index of range list position (+2) */ - int hineighbor[VIF_POSIT+2]; - int memo[VIF_POSIT+2]; - codec_setup_info *ci=vb->vd->vi->codec_setup; - static_codebook **sbooks=ci->book_param; - codebook *books=((backend_lookup_state *)(vb->vd->backend_state))-> - fullbooks; - - memset(fit_flag,0,sizeof(fit_flag)); - for(i=0;i<posts;i++)loneighbor[i]=0; /* 0 for the implicit 0 post */ - for(i=0;i<posts;i++)hineighbor[i]=1; /* 1 for the implicit post at n */ - for(i=0;i<posts;i++)memo[i]=-1; /* no neighbor yet */ - - /* Scan back from high edge to first 'used' frequency */ - for(;n>info->unusedmin_n;n--) - if(logmdct[n-1]>-floor1_rangedB && - logmdct[n-1]+info->twofitatten>logmask[n-1])break; - - /* quantize the relevant floor points and collect them into line fit - structures (one per minimal division) at the same time */ - if(posts==0){ - nonzero+=accumulate_fit(logmask,logmax,0,n,fits,n,info); - }else{ - for(i=0;i<posts-1;i++) - nonzero+=accumulate_fit(logmask,logmax,look->sorted_index[i], - look->sorted_index[i+1],fits+i, - n,info); - } - - if(nonzero){ - /* start by fitting the implicit base case.... */ - int y0=-200; - int y1=-200; - int mse=fit_line(fits,posts-1,&y0,&y1); - if(mse<0){ - /* Only a single nonzero point */ - y0=-200; - y1=0; - fit_line(fits,posts-1,&y0,&y1); - } - - fit_flag[0]=1; - fit_flag[1]=1; - fit_valueA[0]=y0; - fit_valueB[0]=y0; - fit_valueB[1]=y1; - fit_valueA[1]=y1; - - if(mse>=0){ - /* Non degenerate case */ - /* start progressive splitting. This is a greedy, non-optimal - algorithm, but simple and close enough to the best - answer. */ - for(i=2;i<posts;i++){ - int sortpos=look->reverse_index[i]; - int ln=loneighbor[sortpos]; - int hn=hineighbor[sortpos]; - - /* eliminate repeat searches of a particular range with a memo */ - if(memo[ln]!=hn){ - /* haven't performed this error search yet */ - int lsortpos=look->reverse_index[ln]; - int hsortpos=look->reverse_index[hn]; - memo[ln]=hn; - - /* if this is an empty segment, its endpoints don't matter. - Mark as such */ - for(j=lsortpos;j<hsortpos;j++) - if(fits[j].un)break; - if(j==hsortpos){ - /* empty segment; important to note that this does not - break 0/n post case */ - fit_valueB[ln]=-200; - if(fit_valueA[ln]<0) - fit_flag[ln]=0; - fit_valueA[hn]=-200; - if(fit_valueB[hn]<0) - fit_flag[hn]=0; - - }else{ - /* A note: we want to bound/minimize *local*, not global, error */ - int lx=info->postlist[ln]; - int hx=info->postlist[hn]; - int ly=post_Y(fit_valueA,fit_valueB,ln); - int hy=post_Y(fit_valueA,fit_valueB,hn); - - if(inspect_error(lx,hx,ly,hy,logmask,logmdct,info)){ - /* outside error bounds/begin search area. Split it. */ - int ly0=-200; - int ly1=-200; - int hy0=-200; - int hy1=-200; - int lmse=fit_line(fits+lsortpos,sortpos-lsortpos,&ly0,&ly1); - int hmse=fit_line(fits+sortpos,hsortpos-sortpos,&hy0,&hy1); - - /* the boundary/sparsity cases are the hard part. They - don't happen often given that we use the full mask - curve (weighted) now, but when they do happen they - can go boom. Pay them detailed attention */ - /* cases for a segment: - >=0) normal fit (>=2 unique points) - -1) one point on x0; - one point on x1; <-- disallowed by fit_line - -2) one point in between x0 and x1 - -3) no points */ - - switch(lmse){ - case -2: - /* no points in the low segment */ - break; - case -1: - ly0=fits[lsortpos].edgey0; - break; - /*default: - break;*/ - } - - switch(hmse){ - case -2: - /* no points in the hi segment */ - break; - case -1: - hy0=fits[sortpos].edgey0; - break; - } - - /* store new edge values */ - fit_valueB[ln]=ly0; - if(ln==0 && ly0>=0)fit_valueA[ln]=ly0; - fit_valueA[i]=ly1; - fit_valueB[i]=hy0; - fit_valueA[hn]=hy1; - if(hn==1 && hy1>=0)fit_valueB[hn]=hy1; - - if(ly0<0 && fit_valueA[ln]<0) - fit_flag[ln]=0; - if(hy1<0 && fit_valueB[hn]<0) - fit_flag[hn]=0; - - if(ly1>=0 || hy0>=0){ - /* store new neighbor values */ - for(j=sortpos-1;j>=0;j--) - if(hineighbor[j]==hn) - hineighbor[j]=i; - else - break; - for(j=sortpos+1;j<posts;j++) - if(loneighbor[j]==ln) - loneighbor[j]=i; - else - break; - - /* store flag (set) */ - fit_flag[i]=1; - } - } - } - } - } - } - - /* quantize values to multiplier spec */ - switch(info->mult){ - case 1: /* 1024 -> 256 */ - for(i=0;i<posts;i++) - if(fit_flag[i]) - fit_valueA[i]=post_Y(fit_valueA,fit_valueB,i)>>2; - break; - case 2: /* 1024 -> 128 */ - for(i=0;i<posts;i++) - if(fit_flag[i]) - fit_valueA[i]=post_Y(fit_valueA,fit_valueB,i)>>3; - break; - case 3: /* 1024 -> 86 */ - for(i=0;i<posts;i++) - if(fit_flag[i]) - fit_valueA[i]=post_Y(fit_valueA,fit_valueB,i)/12; - break; - case 4: /* 1024 -> 64 */ - for(i=0;i<posts;i++) - if(fit_flag[i]) - fit_valueA[i]=post_Y(fit_valueA,fit_valueB,i)>>4; - break; - } - - /* find prediction values for each post and subtract them */ - for(i=2;i<posts;i++){ - int sp=look->reverse_index[i]; - int ln=look->loneighbor[i-2]; - int hn=look->hineighbor[i-2]; - int x0=info->postlist[ln]; - int x1=info->postlist[hn]; - int y0=fit_valueA[ln]; - int y1=fit_valueA[hn]; - - int predicted=render_point(x0,x1,y0,y1,info->postlist[i]); - - if(fit_flag[i]){ - int headroom=(look->quant_q-predicted<predicted? - look->quant_q-predicted:predicted); - - int val=fit_valueA[i]-predicted; - - /* at this point the 'deviation' value is in the range +/- max - range, but the real, unique range can always be mapped to - only [0-maxrange). So we want to wrap the deviation into - this limited range, but do it in the way that least screws - an essentially gaussian probability distribution. */ - - if(val<0) - if(val<-headroom) - val=headroom-val-1; - else - val=-1-(val<<1); - else - if(val>=headroom) - val= val+headroom; - else - val<<=1; - - fit_valueB[i]=val; - - /* unroll the neighbor arrays */ - for(j=sp+1;j<posts;j++) - if(loneighbor[j]==i) - loneighbor[j]=loneighbor[sp]; - else - break; - for(j=sp-1;j>=0;j--) - if(hineighbor[j]==i) - hineighbor[j]=hineighbor[sp]; - else - break; - - }else{ - fit_valueA[i]=predicted; - fit_valueB[i]=0; - } - if(fit_valueB[i]==0) - fit_valueA[i]|=0x8000; - else{ - fit_valueA[look->loneighbor[i-2]]&=0x7fff; - fit_valueA[look->hineighbor[i-2]]&=0x7fff; - } - } - - /* we have everything we need. pack it out */ - /* mark nontrivial floor */ - oggpack_write(&vb->opb,1,1); - - /* beginning/end post */ - oggpack_write(&vb->opb,fit_valueA[0],ilog(look->quant_q-1)); - oggpack_write(&vb->opb,fit_valueA[1],ilog(look->quant_q-1)); - -#ifdef TRAIN_FLOOR1 - { - FILE *of; - char buffer[80]; - sprintf(buffer,"line%d_full.vqd",vb->mode); - of=fopen(buffer,"a"); - for(j=2;j<posts;j++) - fprintf(of,"%d\n",fit_valueB[j]); - fclose(of); - } -#endif - - - /* partition by partition */ - for(i=0,j=2;i<info->partitions;i++){ - int class=info->partitionclass[i]; - int cdim=info->class_dim[class]; - int csubbits=info->class_subs[class]; - int csub=1<<csubbits; - int bookas[8]={0,0,0,0,0,0,0,0}; - int cval=0; - int cshift=0; - - /* generate the partition's first stage cascade value */ - if(csubbits){ - int maxval[8]; - for(k=0;k<csub;k++){ - int booknum=info->class_subbook[class][k]; - if(booknum<0){ - maxval[k]=1; - }else{ - maxval[k]=sbooks[info->class_subbook[class][k]]->entries; - } - } - for(k=0;k<cdim;k++){ - for(l=0;l<csub;l++){ - int val=fit_valueB[j+k]; - if(val<maxval[l]){ - bookas[k]=l; - break; - } - } - cval|= bookas[k]<<cshift; - cshift+=csubbits; - } - /* write it */ - vorbis_book_encode(books+info->class_book[class],cval,&vb->opb); - -#ifdef TRAIN_FLOOR1 - { - FILE *of; - char buffer[80]; - sprintf(buffer,"line%d_class%d.vqd",vb->mode,class); - of=fopen(buffer,"a"); - fprintf(of,"%d\n",cval); - fclose(of); - } -#endif - } - - /* write post values */ - for(k=0;k<cdim;k++){ - int book=info->class_subbook[class][bookas[k]]; - if(book>=0){ - vorbis_book_encode(books+book, - fit_valueB[j+k],&vb->opb); - -#ifdef TRAIN_FLOOR1 - { - FILE *of; - char buffer[80]; - sprintf(buffer,"line%d_%dsub%d.vqd",vb->mode,class,bookas[k]); - of=fopen(buffer,"a"); - fprintf(of,"%d\n",fit_valueB[j+k]); - fclose(of); - } -#endif - } - } - j+=cdim; - } - - { - /* generate quantized floor equivalent to what we'd unpack in decode */ - int hx; - int lx=0; - int ly=fit_valueA[0]*info->mult; - - for(j=1;j<posts;j++){ - int current=look->forward_index[j]; - if(!(fit_valueA[current]&0x8000)){ - int hy=(fit_valueA[current]&0x7fff)*info->mult; - hx=info->postlist[current]; - - render_line0(lx,hx,ly,hy,codedflr); - - lx=hx; - ly=hy; - } - } - for(j=hx;j<look->n;j++)codedflr[j]=codedflr[j-1]; /* be certain */ - - /* use it to create residue vector. Eliminate residue elements - that were below the error training attenuation relative to - the original mask. This avoids portions of the floor fit - that were considered 'unused' in fitting from being used in - coding residue if the unfit values are significantly below - the original input mask */ - for(j=0;j<n;j++) - if(logmdct[j]+info->twofitatten<logmask[j]) - residue[j]=0.f; - else - residue[j]=mdct[j]/codedflr[j]; - for(j=n;j<look->n;j++)residue[j]=0.f; - - } - - }else{ - oggpack_write(&vb->opb,0,1); - memset(codedflr,0,n*sizeof(float)); - memset(residue,0,n*sizeof(float)); - } - seq++; - return(nonzero); -} - -static void *floor1_inverse1(vorbis_block *vb,vorbis_look_floor *in){ - vorbis_look_floor1 *look=(vorbis_look_floor1 *)in; - vorbis_info_floor1 *info=look->vi; - - codec_setup_info *ci=vb->vd->vi->codec_setup; - int i,j,k; - codebook *books=((backend_lookup_state *)(vb->vd->backend_state))-> - fullbooks; - - /* unpack wrapped/predicted values from stream */ - if(oggpack_read(&vb->opb,1)==1){ - int *fit_value=_vorbis_block_alloc(vb,(look->posts)*sizeof(int)); - - fit_value[0]=oggpack_read(&vb->opb,ilog(look->quant_q-1)); - fit_value[1]=oggpack_read(&vb->opb,ilog(look->quant_q-1)); - - /* partition by partition */ - /* partition by partition */ - for(i=0,j=2;i<info->partitions;i++){ - int class=info->partitionclass[i]; - int cdim=info->class_dim[class]; - int csubbits=info->class_subs[class]; - int csub=1<<csubbits; - int cval=0; - - /* decode the partition's first stage cascade value */ - if(csubbits){ - cval=vorbis_book_decode(books+info->class_book[class],&vb->opb); - - if(cval==-1)goto eop; - } - - for(k=0;k<cdim;k++){ - int book=info->class_subbook[class][cval&(csub-1)]; - cval>>=csubbits; - if(book>=0){ - if((fit_value[j+k]=vorbis_book_decode(books+book,&vb->opb))==-1) - goto eop; - }else{ - fit_value[j+k]=0; - } - } - j+=cdim; - } - - /* unwrap positive values and reconsitute via linear interpolation */ - for(i=2;i<look->posts;i++){ - int predicted=render_point(info->postlist[look->loneighbor[i-2]], - info->postlist[look->hineighbor[i-2]], - fit_value[look->loneighbor[i-2]], - fit_value[look->hineighbor[i-2]], - info->postlist[i]); - int hiroom=look->quant_q-predicted; - int loroom=predicted; - int room=(hiroom<loroom?hiroom:loroom)<<1; - int val=fit_value[i]; - - if(val){ - if(val>=room){ - if(hiroom>loroom){ - val = val-loroom; - }else{ - val = -1-(val-hiroom); - } - }else{ - if(val&1){ - 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); -} - -static int floor1_inverse2(vorbis_block *vb,vorbis_look_floor *in,void *memo, - float *out){ - vorbis_look_floor1 *look=(vorbis_look_floor1 *)in; - vorbis_info_floor1 *info=look->vi; - - codec_setup_info *ci=vb->vd->vi->codec_setup; - int n=ci->blocksizes[vb->mode]/2; - int j; - - if(memo){ - /* render the lines */ - int *fit_value=(int *)memo; - int hx; - int lx=0; - int ly=fit_value[0]*info->mult; - for(j=1;j<look->posts;j++){ - int current=look->forward_index[j]; - int hy=fit_value[current]&0x7fff; - if(hy==fit_value[current]){ - - hy*=info->mult; - hx=info->postlist[current]; - - render_line(lx,hx,ly,hy,out); - - lx=hx; - ly=hy; - } - } - for(j=hx;j<n;j++)out[j]*=out[j-1]; /* be certain */ - return(1); - } - memset(out,0,sizeof(float)*n); - return(0); -} - -/* export hooks */ -vorbis_func_floor floor1_exportbundle={ - &floor1_pack,&floor1_unpack,&floor1_look,&floor1_copy_info,&floor1_free_info, - &floor1_free_look,&floor1_forward,&floor1_inverse1,&floor1_inverse2 -}; - diff --git a/lib/iir.c b/lib/iir.c deleted file mode 100644 index 7a4a39e0..00000000 --- a/lib/iir.c +++ /dev/null @@ -1,300 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: Direct Form II IIR filters, plus some specializations - last mod: $Id: iir.c,v 1.10 2001/02/26 03:50:41 xiphmont Exp $ - - ********************************************************************/ - -/* LPC is actually a degenerate case of form I/II filters, but we need - both */ - -#include <ogg/ogg.h> -#include <stdlib.h> -#include <string.h> -#include <math.h> -#include "iir.h" - -void IIR_init(IIR_state *s,int stages,float gain, float *A, float *B){ - memset(s,0,sizeof(IIR_state)); - s->stages=stages; - s->gain=1.f/gain; - s->coeff_A=_ogg_malloc(stages*sizeof(float)); - s->coeff_B=_ogg_malloc((stages+1)*sizeof(float)); - s->z_A=_ogg_calloc(stages*2,sizeof(float)); - - memcpy(s->coeff_A,A,stages*sizeof(float)); - memcpy(s->coeff_B,B,(stages+1)*sizeof(float)); -} - -void IIR_clear(IIR_state *s){ - if(s){ - _ogg_free(s->coeff_A); - _ogg_free(s->coeff_B); - _ogg_free(s->z_A); - memset(s,0,sizeof(IIR_state)); - } -} - -void IIR_reset(IIR_state *s){ - memset(s->z_A,0,sizeof(float)*s->stages*2); -} - -float IIR_filter(IIR_state *s,float in){ - int stages=s->stages,i; - float newA= in*s->gain; - float newB=0; - float *zA=s->z_A+s->ring; - - for(i=0;i<stages;i++){ - newA+= s->coeff_A[i] * zA[i]; - newB+= s->coeff_B[i] * zA[i]; - } - newB+=newA*s->coeff_B[stages]; - - zA[0]=zA[stages]=newA; - if(++s->ring>=stages)s->ring=0; - return(newB); -} - -/* this assumes the symmetrical structure of the feed-forward stage of - a typical bandpass to save multiplies */ -float IIR_filter_Band(IIR_state *s,float in){ - int stages=s->stages,i; - int stages2=stages>>1; - float newA= in*s->gain; - float newB=0; - float *zA=s->z_A+s->ring; - - newA+= s->coeff_A[0] * zA[0]; - for(i=1;i<stages2;i++){ - newA+= s->coeff_A[i] * zA[i]; - newB+= s->coeff_B[i] * (zA[i]-zA[stages-i]); - } - newB+= s->coeff_B[i] * zA[i]; - for(;i<stages;i++) - newA+= s->coeff_A[i] * zA[i]; - - newB+=newA-zA[0]; - - zA[0]=zA[stages]=newA; - if(++s->ring>=stages)s->ring=0; - return(newB); -} - -#ifdef _V_SELFTEST - -/* z^-stage, z^-stage+1... */ -static float cheb_bandpass_B[]={-1.f,0.f,5.f,0.f,-10.f,0.f,10.f,0.f,-5.f,0.f,1f}; -static float cheb_bandpass_A[]={-0.6665900311f, - 1.0070146601f, - -3.1262875409f, - 3.5017171569f, - -6.2779211945f, - 5.2966481740f, - -6.7570216587f, - 4.0760335768f, - -3.9134284363f, - 1.3997338886f}; - -static float data[128]={ - 0.0426331f, - 0.0384521f, - 0.0345764f, - 0.0346069f, - 0.0314636f, - 0.0310059f, - 0.0318604f, - 0.0336304f, - 0.036438f, - 0.0348511f, - 0.0354919f, - 0.0343628f, - 0.0325623f, - 0.0318909f, - 0.0263367f, - 0.0225525f, - 0.0195618f, - 0.0160828f, - 0.0168762f, - 0.0145569f, - 0.0126343f, - 0.0127258f, - 0.00820923f, - 0.00787354f, - 0.00558472f, - 0.00204468f, - 3.05176e-05f, - -0.00357056f, - -0.00570679f, - -0.00991821f, - -0.0101013f, - -0.00881958f, - -0.0108948f, - -0.0110168f, - -0.0119324f, - -0.0161438f, - -0.0194702f, - -0.0229187f, - -0.0260315f, - -0.0282288f, - -0.0306091f, - -0.0330505f, - -0.0364685f, - -0.0385742f, - -0.0428772f, - -0.043457f, - -0.0425415f, - -0.0462341f, - -0.0467529f, - -0.0489807f, - -0.0520325f, - -0.0558167f, - -0.0596924f, - -0.0591431f, - -0.0612793f, - -0.0618591f, - -0.0615845f, - -0.0634155f, - -0.0639648f, - -0.0683594f, - -0.0718079f, - -0.0729675f, - -0.0791931f, - -0.0860901f, - -0.0885315f, - -0.088623f, - -0.089386f, - -0.0899353f, - -0.0886841f, - -0.0910645f, - -0.0948181f, - -0.0919495f, - -0.0891418f, - -0.0916443f, - -0.096344f, - -0.100464f, - -0.105499f, - -0.108612f, - -0.112213f, - -0.117676f, - -0.120911f, - -0.124329f, - -0.122162f, - -0.120605f, - -0.12326f, - -0.12619f, - -0.128998f, - -0.13205f, - -0.134247f, - -0.137939f, - -0.143555f, - -0.14389f, - -0.14859f, - -0.153717f, - -0.159851f, - -0.164551f, - -0.162811f, - -0.164276f, - -0.156952f, - -0.140564f, - -0.123291f, - -0.10321f, - -0.0827637f, - -0.0652466f, - -0.053772f, - -0.0509949f, - -0.0577698f, - -0.0818176f, - -0.114929f, - -0.148895f, - -0.181122f, - -0.200714f, - -0.21048f, - -0.203644f, - -0.179413f, - -0.145325f, - -0.104492f, - -0.0658264f, - -0.0332031f, - -0.0106201f, - -0.00363159f, - -0.00909424f, - -0.0244141f, - -0.0422058f, - -0.0537415f, - -0.0610046f, - -0.0609741f, - -0.0547791f}; - -/* comparison test code from http://www-users.cs.york.ac.uk/~fisher/mkfilter/ - (the above page kicks ass, BTW)*/ - -#define NZEROS 10 -#define NPOLES 10 -#define GAIN 4.599477515e+02f - -static float xv[NZEROS+1], yv[NPOLES+1]; - -static float filterloop(float next){ - xv[0] = xv[1]; xv[1] = xv[2]; xv[2] = xv[3]; xv[3] = xv[4]; xv[4] = xv[5]; - xv[5] = xv[6]; xv[6] = xv[7]; xv[7] = xv[8]; xv[8] = xv[9]; xv[9] = xv[10]; - xv[10] = next / GAIN; - yv[0] = yv[1]; yv[1] = yv[2]; yv[2] = yv[3]; yv[3] = yv[4]; yv[4] = yv[5]; - yv[5] = yv[6]; yv[6] = yv[7]; yv[7] = yv[8]; yv[8] = yv[9]; yv[9] = yv[10]; - yv[10] = (xv[10] - xv[0]) + 5 * (xv[2] - xv[8]) + 10 * (xv[6] - xv[4]) - + ( -0.6665900311f * yv[0]) + ( 1.0070146601f * yv[1]) - + ( -3.1262875409f * yv[2]) + ( 3.5017171569f * yv[3]) - + ( -6.2779211945f * yv[4]) + ( 5.2966481740f * yv[5]) - + ( -6.7570216587f * yv[6]) + ( 4.0760335768f * yv[7]) - + ( -3.9134284363f * yv[8]) + ( 1.3997338886f * yv[9]); - return(yv[10]); -} - -#include <stdio.h> -int main(){ - - /* run the pregenerated Chebyshev filter, then our own distillation - through the generic and specialized code */ - float *work=_ogg_malloc(128*sizeof(float)); - IIR_state iir; - int i; - - for(i=0;i<128;i++)work[i]=filterloop(data[i]); - { - FILE *out=fopen("IIR_ref.m","w"); - for(i=0;i<128;i++)fprintf(out,"%g\n",work[i]); - fclose(out); - } - - IIR_init(&iir,NPOLES,GAIN,cheb_bandpass_A,cheb_bandpass_B); - for(i=0;i<128;i++)work[i]=IIR_filter(&iir,data[i]); - { - FILE *out=fopen("IIR_gen.m","w"); - for(i=0;i<128;i++)fprintf(out,"%g\n",work[i]); - fclose(out); - } - IIR_clear(&iir); - - IIR_init(&iir,NPOLES,GAIN,cheb_bandpass_A,cheb_bandpass_B); - for(i=0;i<128;i++)work[i]=IIR_filter_ChebBand(&iir,data[i]); - { - FILE *out=fopen("IIR_cheb.m","w"); - for(i=0;i<128;i++)fprintf(out,"%g\n",work[i]); - fclose(out); - } - IIR_clear(&iir); - - return(0); -} - -#endif diff --git a/lib/iir.h b/lib/iir.h deleted file mode 100644 index a3be4790..00000000 --- a/lib/iir.h +++ /dev/null @@ -1,36 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: Direct Form I, II IIR filters, plus some specializations - last mod: $Id: iir.h,v 1.7 2001/02/26 03:50:41 xiphmont Exp $ - - ********************************************************************/ - -#ifndef _V_IIR_H_ -#define _V_IIR_H_ - -typedef struct { - int stages; - float *coeff_A; - float *coeff_B; - float *z_A; - int ring; - float gain; -} IIR_state; - -extern void IIR_init(IIR_state *s,int stages,float gain, float *A, float *B); -extern void IIR_clear(IIR_state *s); -extern float IIR_filter(IIR_state *s,float in); -extern float IIR_filter_Band(IIR_state *s,float in); -extern void IIR_reset(IIR_state *s); - -#endif diff --git a/lib/info.c b/lib/info.c deleted file mode 100644 index 50a484cc..00000000 --- a/lib/info.c +++ /dev/null @@ -1,589 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: maintain the info structure, info <-> header packets - last mod: $Id: info.c,v 1.41 2001/06/15 21:15:39 xiphmont Exp $ - - ********************************************************************/ - -/* general handling of the header and the vorbis_info structure (and - substructures) */ - -#include <stdlib.h> -#include <string.h> -#include <ctype.h> -#include <ogg/ogg.h> -#include "vorbis/codec.h" -#include "backends.h" -#include "codec_internal.h" -#include "codebook.h" -#include "registry.h" -#include "window.h" -#include "psy.h" -#include "misc.h" -#include "os.h" - -/* helpers */ -static int ilog2(unsigned int v){ - int ret=0; - while(v>1){ - ret++; - v>>=1; - } - return(ret); -} - -static void _v_writestring(oggpack_buffer *o,char *s){ - while(*s){ - oggpack_write(o,*s++,8); - } -} - -static void _v_readstring(oggpack_buffer *o,char *buf,int bytes){ - while(bytes--){ - *buf++=oggpack_read(o,8); - } -} - -void vorbis_comment_init(vorbis_comment *vc){ - memset(vc,0,sizeof(vorbis_comment)); -} - -void vorbis_comment_add(vorbis_comment *vc,char *comment){ - vc->user_comments=_ogg_realloc(vc->user_comments, - (vc->comments+2)*sizeof(char *)); - vc->comment_lengths=_ogg_realloc(vc->comment_lengths, - (vc->comments+2)*sizeof(int)); - vc->user_comments[vc->comments]=strdup(comment); - vc->comment_lengths[vc->comments]=strlen(comment); - vc->comments++; - vc->user_comments[vc->comments]=NULL; -} - -void vorbis_comment_add_tag(vorbis_comment *vc, char *tag, char *contents){ - char *comment=alloca(strlen(tag)+strlen(contents)+2); /* +2 for = and \0 */ - strcpy(comment, tag); - strcat(comment, "="); - strcat(comment, contents); - vorbis_comment_add(vc, comment); -} - -/* This is more or less the same as strncasecmp - but that doesn't exist - * everywhere, and this is a fairly trivial function, so we include it */ -static int tagcompare(const char *s1, const char *s2, int n){ - int c=0; - while(c < n){ - if(toupper(s1[c]) != toupper(s2[c])) - return !0; - c++; - } - return 0; -} - -char *vorbis_comment_query(vorbis_comment *vc, char *tag, int count){ - long i; - int found = 0; - int taglen = strlen(tag)+1; /* +1 for the = we append */ - char *fulltag = alloca(taglen+ 1); - - strcpy(fulltag, tag); - strcat(fulltag, "="); - - for(i=0;i<vc->comments;i++){ - if(!tagcompare(vc->user_comments[i], fulltag, taglen)){ - if(count == found) - /* We return a pointer to the data, not a copy */ - return vc->user_comments[i] + taglen; - else - found++; - } - } - return NULL; /* didn't find anything */ -} - -int vorbis_comment_query_count(vorbis_comment *vc, char *tag){ - int i,count=0; - int taglen = strlen(tag)+1; /* +1 for the = we append */ - char *fulltag = alloca(taglen+1); - strcpy(fulltag,tag); - strcat(fulltag, "="); - - for(i=0;i<vc->comments;i++){ - if(!tagcompare(vc->user_comments[i], fulltag, taglen)) - count++; - } - - return count; -} - -void vorbis_comment_clear(vorbis_comment *vc){ - if(vc){ - long i; - for(i=0;i<vc->comments;i++) - if(vc->user_comments[i])_ogg_free(vc->user_comments[i]); - if(vc->user_comments)_ogg_free(vc->user_comments); - if(vc->comment_lengths)_ogg_free(vc->comment_lengths); - if(vc->vendor)_ogg_free(vc->vendor); - } - memset(vc,0,sizeof(vorbis_comment)); -} - -/* used by synthesis, which has a full, alloced vi */ -void vorbis_info_init(vorbis_info *vi){ - memset(vi,0,sizeof(vorbis_info)); - vi->codec_setup=_ogg_calloc(1,sizeof(codec_setup_info)); -} - -void vorbis_info_clear(vorbis_info *vi){ - codec_setup_info *ci=vi->codec_setup; - int i; - - if(ci){ - - for(i=0;i<ci->modes;i++) - if(ci->mode_param[i])_ogg_free(ci->mode_param[i]); - - for(i=0;i<ci->maps;i++) /* unpack does the range checking */ - _mapping_P[ci->map_type[i]]->free_info(ci->map_param[i]); - - for(i=0;i<ci->times;i++) /* unpack does the range checking */ - _time_P[ci->time_type[i]]->free_info(ci->time_param[i]); - - for(i=0;i<ci->floors;i++) /* unpack does the range checking */ - _floor_P[ci->floor_type[i]]->free_info(ci->floor_param[i]); - - for(i=0;i<ci->residues;i++) /* unpack does the range checking */ - _residue_P[ci->residue_type[i]]->free_info(ci->residue_param[i]); - - for(i=0;i<ci->books;i++){ - if(ci->book_param[i]){ - /* knows if the book was not alloced */ - vorbis_staticbook_destroy(ci->book_param[i]); - } - } - - for(i=0;i<ci->psys;i++) - _vi_psy_free(ci->psy_param[i]); - - _ogg_free(ci); - } - - memset(vi,0,sizeof(vorbis_info)); -} - -/* Header packing/unpacking ********************************************/ - -static int _vorbis_unpack_info(vorbis_info *vi,oggpack_buffer *opb){ - codec_setup_info *ci=vi->codec_setup; - if(!ci)return(OV_EFAULT); - - vi->version=oggpack_read(opb,32); - if(vi->version!=0)return(OV_EVERSION); - - vi->channels=oggpack_read(opb,8); - vi->rate=oggpack_read(opb,32); - - vi->bitrate_upper=oggpack_read(opb,32); - vi->bitrate_nominal=oggpack_read(opb,32); - vi->bitrate_lower=oggpack_read(opb,32); - - ci->blocksizes[0]=1<<oggpack_read(opb,4); - ci->blocksizes[1]=1<<oggpack_read(opb,4); - - if(vi->rate<1)goto err_out; - if(vi->channels<1)goto err_out; - if(ci->blocksizes[0]<8)goto err_out; - if(ci->blocksizes[1]<ci->blocksizes[0])goto err_out; - - if(oggpack_read(opb,1)!=1)goto err_out; /* EOP check */ - - return(0); - err_out: - vorbis_info_clear(vi); - return(OV_EBADHEADER); -} - -static int _vorbis_unpack_comment(vorbis_comment *vc,oggpack_buffer *opb){ - int i; - int vendorlen=oggpack_read(opb,32); - if(vendorlen<0)goto err_out; - vc->vendor=_ogg_calloc(vendorlen+1,1); - _v_readstring(opb,vc->vendor,vendorlen); - vc->comments=oggpack_read(opb,32); - if(vc->comments<0)goto err_out; - vc->user_comments=_ogg_calloc(vc->comments+1,sizeof(char **)); - vc->comment_lengths=_ogg_calloc(vc->comments+1, sizeof(int)); - - for(i=0;i<vc->comments;i++){ - int len=oggpack_read(opb,32); - if(len<0)goto err_out; - vc->comment_lengths[i]=len; - vc->user_comments[i]=_ogg_calloc(len+1,1); - _v_readstring(opb,vc->user_comments[i],len); - } - if(oggpack_read(opb,1)!=1)goto err_out; /* EOP check */ - - return(0); - err_out: - vorbis_comment_clear(vc); - return(OV_EBADHEADER); -} - -/* all of the real encoding details are here. The modes, books, - everything */ -static int _vorbis_unpack_books(vorbis_info *vi,oggpack_buffer *opb){ - codec_setup_info *ci=vi->codec_setup; - int i; - if(!ci)return(OV_EFAULT); - - /* codebooks */ - ci->books=oggpack_read(opb,8)+1; - /*ci->book_param=_ogg_calloc(ci->books,sizeof(static_codebook *));*/ - for(i=0;i<ci->books;i++){ - ci->book_param[i]=_ogg_calloc(1,sizeof(static_codebook)); - if(vorbis_staticbook_unpack(opb,ci->book_param[i]))goto err_out; - } - - /* time backend settings */ - ci->times=oggpack_read(opb,6)+1; - /*ci->time_type=_ogg_malloc(ci->times*sizeof(int));*/ - /*ci->time_param=_ogg_calloc(ci->times,sizeof(void *));*/ - for(i=0;i<ci->times;i++){ - ci->time_type[i]=oggpack_read(opb,16); - if(ci->time_type[i]<0 || ci->time_type[i]>=VI_TIMEB)goto err_out; - ci->time_param[i]=_time_P[ci->time_type[i]]->unpack(vi,opb); - if(!ci->time_param[i])goto err_out; - } - - /* floor backend settings */ - ci->floors=oggpack_read(opb,6)+1; - /*ci->floor_type=_ogg_malloc(ci->floors*sizeof(int));*/ - /*ci->floor_param=_ogg_calloc(ci->floors,sizeof(void *));*/ - for(i=0;i<ci->floors;i++){ - ci->floor_type[i]=oggpack_read(opb,16); - if(ci->floor_type[i]<0 || ci->floor_type[i]>=VI_FLOORB)goto err_out; - ci->floor_param[i]=_floor_P[ci->floor_type[i]]->unpack(vi,opb); - if(!ci->floor_param[i])goto err_out; - } - - /* residue backend settings */ - ci->residues=oggpack_read(opb,6)+1; - /*ci->residue_type=_ogg_malloc(ci->residues*sizeof(int));*/ - /*ci->residue_param=_ogg_calloc(ci->residues,sizeof(void *));*/ - for(i=0;i<ci->residues;i++){ - ci->residue_type[i]=oggpack_read(opb,16); - if(ci->residue_type[i]<0 || ci->residue_type[i]>=VI_RESB)goto err_out; - ci->residue_param[i]=_residue_P[ci->residue_type[i]]->unpack(vi,opb); - if(!ci->residue_param[i])goto err_out; - } - - /* map backend settings */ - ci->maps=oggpack_read(opb,6)+1; - /*ci->map_type=_ogg_malloc(ci->maps*sizeof(int));*/ - /*ci->map_param=_ogg_calloc(ci->maps,sizeof(void *));*/ - for(i=0;i<ci->maps;i++){ - ci->map_type[i]=oggpack_read(opb,16); - if(ci->map_type[i]<0 || ci->map_type[i]>=VI_MAPB)goto err_out; - ci->map_param[i]=_mapping_P[ci->map_type[i]]->unpack(vi,opb); - if(!ci->map_param[i])goto err_out; - } - - /* mode settings */ - ci->modes=oggpack_read(opb,6)+1; - /*vi->mode_param=_ogg_calloc(vi->modes,sizeof(void *));*/ - for(i=0;i<ci->modes;i++){ - ci->mode_param[i]=_ogg_calloc(1,sizeof(vorbis_info_mode)); - ci->mode_param[i]->blockflag=oggpack_read(opb,1); - ci->mode_param[i]->windowtype=oggpack_read(opb,16); - ci->mode_param[i]->transformtype=oggpack_read(opb,16); - ci->mode_param[i]->mapping=oggpack_read(opb,8); - - if(ci->mode_param[i]->windowtype>=VI_WINDOWB)goto err_out; - if(ci->mode_param[i]->transformtype>=VI_WINDOWB)goto err_out; - if(ci->mode_param[i]->mapping>=ci->maps)goto err_out; - } - - if(oggpack_read(opb,1)!=1)goto err_out; /* top level EOP check */ - - return(0); - err_out: - vorbis_info_clear(vi); - return(OV_EBADHEADER); -} - -/* The Vorbis header is in three packets; the initial small packet in - the first page that identifies basic parameters, a second packet - with bitstream comments and a third packet that holds the - codebook. */ - -int vorbis_synthesis_headerin(vorbis_info *vi,vorbis_comment *vc,ogg_packet *op){ - oggpack_buffer opb; - - if(op){ - oggpack_readinit(&opb,op->packet,op->bytes); - - /* Which of the three types of header is this? */ - /* Also verify header-ness, vorbis */ - { - char buffer[6]; - int packtype=oggpack_read(&opb,8); - memset(buffer,0,6); - _v_readstring(&opb,buffer,6); - if(memcmp(buffer,"vorbis",6)){ - /* not a vorbis header */ - return(OV_ENOTVORBIS); - } - switch(packtype){ - case 0x01: /* least significant *bit* is read first */ - if(!op->b_o_s){ - /* Not the initial packet */ - return(OV_EBADHEADER); - } - if(vi->rate!=0){ - /* previously initialized info header */ - return(OV_EBADHEADER); - } - - return(_vorbis_unpack_info(vi,&opb)); - - case 0x03: /* least significant *bit* is read first */ - if(vi->rate==0){ - /* um... we didn't get the initial header */ - return(OV_EBADHEADER); - } - - return(_vorbis_unpack_comment(vc,&opb)); - - case 0x05: /* least significant *bit* is read first */ - if(vi->rate==0 || vc->vendor==NULL){ - /* um... we didn;t get the initial header or comments yet */ - return(OV_EBADHEADER); - } - - return(_vorbis_unpack_books(vi,&opb)); - - default: - /* Not a valid vorbis header type */ - return(OV_EBADHEADER); - break; - } - } - } - return(OV_EBADHEADER); -} - -/* pack side **********************************************************/ - -static int _vorbis_pack_info(oggpack_buffer *opb,vorbis_info *vi){ - codec_setup_info *ci=vi->codec_setup; - if(!ci)return(OV_EFAULT); - - /* preamble */ - oggpack_write(opb,0x01,8); - _v_writestring(opb,"vorbis"); - - /* basic information about the stream */ - oggpack_write(opb,0x00,32); - oggpack_write(opb,vi->channels,8); - oggpack_write(opb,vi->rate,32); - - oggpack_write(opb,vi->bitrate_upper,32); - oggpack_write(opb,vi->bitrate_nominal,32); - oggpack_write(opb,vi->bitrate_lower,32); - - oggpack_write(opb,ilog2(ci->blocksizes[0]),4); - oggpack_write(opb,ilog2(ci->blocksizes[1]),4); - oggpack_write(opb,1,1); - - return(0); -} - -static int _vorbis_pack_comment(oggpack_buffer *opb,vorbis_comment *vc){ - char temp[]="Xiphophorus libVorbis I 20010615"; - - /* preamble */ - oggpack_write(opb,0x03,8); - _v_writestring(opb,"vorbis"); - - /* vendor */ - oggpack_write(opb,strlen(temp),32); - _v_writestring(opb,temp); - - /* comments */ - - oggpack_write(opb,vc->comments,32); - if(vc->comments){ - int i; - for(i=0;i<vc->comments;i++){ - if(vc->user_comments[i]){ - oggpack_write(opb,vc->comment_lengths[i],32); - _v_writestring(opb,vc->user_comments[i]); - }else{ - oggpack_write(opb,0,32); - } - } - } - oggpack_write(opb,1,1); - - return(0); -} - -static int _vorbis_pack_books(oggpack_buffer *opb,vorbis_info *vi){ - codec_setup_info *ci=vi->codec_setup; - int i; - if(!ci)return(OV_EFAULT); - - oggpack_write(opb,0x05,8); - _v_writestring(opb,"vorbis"); - - /* books */ - oggpack_write(opb,ci->books-1,8); - for(i=0;i<ci->books;i++) - if(vorbis_staticbook_pack(ci->book_param[i],opb))goto err_out; - - /* times */ - oggpack_write(opb,ci->times-1,6); - for(i=0;i<ci->times;i++){ - oggpack_write(opb,ci->time_type[i],16); - _time_P[ci->time_type[i]]->pack(ci->time_param[i],opb); - } - - /* floors */ - oggpack_write(opb,ci->floors-1,6); - for(i=0;i<ci->floors;i++){ - oggpack_write(opb,ci->floor_type[i],16); - _floor_P[ci->floor_type[i]]->pack(ci->floor_param[i],opb); - } - - /* residues */ - oggpack_write(opb,ci->residues-1,6); - for(i=0;i<ci->residues;i++){ - oggpack_write(opb,ci->residue_type[i],16); - _residue_P[ci->residue_type[i]]->pack(ci->residue_param[i],opb); - } - - /* maps */ - oggpack_write(opb,ci->maps-1,6); - for(i=0;i<ci->maps;i++){ - oggpack_write(opb,ci->map_type[i],16); - _mapping_P[ci->map_type[i]]->pack(vi,ci->map_param[i],opb); - } - - /* modes */ - oggpack_write(opb,ci->modes-1,6); - for(i=0;i<ci->modes;i++){ - oggpack_write(opb,ci->mode_param[i]->blockflag,1); - oggpack_write(opb,ci->mode_param[i]->windowtype,16); - oggpack_write(opb,ci->mode_param[i]->transformtype,16); - oggpack_write(opb,ci->mode_param[i]->mapping,8); - } - oggpack_write(opb,1,1); - - return(0); -err_out: - return(-1); -} - -int vorbis_commentheader_out(vorbis_comment *vc, - ogg_packet *op){ - - oggpack_buffer opb; - - oggpack_writeinit(&opb); - if(_vorbis_pack_comment(&opb,vc)) return OV_EIMPL; - - op->packet = _ogg_malloc(oggpack_bytes(&opb)); - memcpy(op->packet, opb.buffer, oggpack_bytes(&opb)); - - op->bytes=oggpack_bytes(&opb); - op->b_o_s=0; - op->e_o_s=0; - op->granulepos=0; - - return 0; -} - -int vorbis_analysis_headerout(vorbis_dsp_state *v, - vorbis_comment *vc, - ogg_packet *op, - ogg_packet *op_comm, - ogg_packet *op_code){ - int ret=OV_EIMPL; - vorbis_info *vi=v->vi; - oggpack_buffer opb; - backend_lookup_state *b=v->backend_state; - - if(!b){ - ret=OV_EFAULT; - goto err_out; - } - - /* first header packet **********************************************/ - - oggpack_writeinit(&opb); - if(_vorbis_pack_info(&opb,vi))goto err_out; - - /* build the packet */ - if(b->header)_ogg_free(b->header); - b->header=_ogg_malloc(oggpack_bytes(&opb)); - memcpy(b->header,opb.buffer,oggpack_bytes(&opb)); - op->packet=b->header; - op->bytes=oggpack_bytes(&opb); - op->b_o_s=1; - op->e_o_s=0; - op->granulepos=0; - - /* second header packet (comments) **********************************/ - - oggpack_reset(&opb); - if(_vorbis_pack_comment(&opb,vc))goto err_out; - - if(b->header1)_ogg_free(b->header1); - b->header1=_ogg_malloc(oggpack_bytes(&opb)); - memcpy(b->header1,opb.buffer,oggpack_bytes(&opb)); - op_comm->packet=b->header1; - op_comm->bytes=oggpack_bytes(&opb); - op_comm->b_o_s=0; - op_comm->e_o_s=0; - op_comm->granulepos=0; - - /* third header packet (modes/codebooks) ****************************/ - - oggpack_reset(&opb); - if(_vorbis_pack_books(&opb,vi))goto err_out; - - if(b->header2)_ogg_free(b->header2); - b->header2=_ogg_malloc(oggpack_bytes(&opb)); - memcpy(b->header2,opb.buffer,oggpack_bytes(&opb)); - op_code->packet=b->header2; - op_code->bytes=oggpack_bytes(&opb); - op_code->b_o_s=0; - op_code->e_o_s=0; - op_code->granulepos=0; - - oggpack_writeclear(&opb); - return(0); - err_out: - oggpack_writeclear(&opb); - memset(op,0,sizeof(ogg_packet)); - memset(op_comm,0,sizeof(ogg_packet)); - memset(op_code,0,sizeof(ogg_packet)); - - if(b->header)_ogg_free(b->header); - if(b->header1)_ogg_free(b->header1); - if(b->header2)_ogg_free(b->header2); - b->header=NULL; - b->header1=NULL; - b->header2=NULL; - return(ret); -} - diff --git a/lib/lookup.c b/lib/lookup.c deleted file mode 100644 index b1c43366..00000000 --- a/lib/lookup.c +++ /dev/null @@ -1,93 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: lookup based functions - last mod: $Id: lookup.c,v 1.7 2001/02/26 03:50:42 xiphmont Exp $ - - ********************************************************************/ - -#include <math.h> -#include "lookup.h" -#include "lookup_data.h" -#include "os.h" - -#ifdef FLOAT_LOOKUP - -/* interpolated lookup based cos function, domain 0 to PI only */ -float vorbis_coslook(float a){ - double d=a*(.31830989*(float)COS_LOOKUP_SZ); - int i=vorbis_ftoi(d-.5); - - return COS_LOOKUP[i]+ (d-i)*(COS_LOOKUP[i+1]-COS_LOOKUP[i]); -} - -/* interpolated 1./sqrt(p) where .5 <= p < 1. */ -float vorbis_invsqlook(float a){ - double d=a*(2.f*(float)INVSQ_LOOKUP_SZ)-(float)INVSQ_LOOKUP_SZ; - int i=vorbis_ftoi(d-.5f); - return INVSQ_LOOKUP[i]+ (d-i)*(INVSQ_LOOKUP[i+1]-INVSQ_LOOKUP[i]); -} - -/* interpolated 1./sqrt(p) where .5 <= p < 1. */ -float vorbis_invsq2explook(int a){ - return INVSQ2EXP_LOOKUP[a-INVSQ2EXP_LOOKUP_MIN]; -} - -#include <stdio.h> -/* interpolated lookup based fromdB function, domain -140dB to 0dB only */ -float vorbis_fromdBlook(float a){ - int i=vorbis_ftoi(a*((float)(-(1<<FROMdB2_SHIFT)))-.5f); - return (i<0)?1.f: - ((i>=(FROMdB_LOOKUP_SZ<<FROMdB_SHIFT))?0.f: - FROMdB_LOOKUP[i>>FROMdB_SHIFT]*FROMdB2_LOOKUP[i&FROMdB2_MASK]); -} - -#endif - -#ifdef INT_LOOKUP -/* interpolated 1./sqrt(p) where .5 <= a < 1. (.100000... to .111111...) in - 16.16 format - - returns in m.8 format */ -long vorbis_invsqlook_i(long a,long e){ - long i=(a&0x7fff)>>(INVSQ_LOOKUP_I_SHIFT-1); - long d=(a&INVSQ_LOOKUP_I_MASK)<<(16-INVSQ_LOOKUP_I_SHIFT); /* 0.16 */ - long val=INVSQ_LOOKUP_I[i]- /* 1.16 */ - (((INVSQ_LOOKUP_I[i]-INVSQ_LOOKUP_I[i+1])* /* 0.16 */ - d)>>16); /* result 1.16 */ - - e+=32; - if(e&1)val=(val*5792)>>13; /* multiply val by 1/sqrt(2) */ - e=(e>>1)-8; - - return(val>>e); -} - -/* interpolated lookup based fromdB function, domain -140dB to 0dB only */ -/* a is in n.12 format */ -float vorbis_fromdBlook_i(long a){ - int i=(-a)>>(12-FROMdB2_SHIFT); - return (i<0)?1.f: - ((i>=(FROMdB_LOOKUP_SZ<<FROMdB_SHIFT))?0.f: - FROMdB_LOOKUP[i>>FROMdB_SHIFT]*FROMdB2_LOOKUP[i&FROMdB2_MASK]); -} - -/* interpolated lookup based cos function, domain 0 to PI only */ -/* a is in 0.16 format, where 0==0, 2^^16-1==PI, return 0.14 */ -long vorbis_coslook_i(long a){ - int i=a>>COS_LOOKUP_I_SHIFT; - int d=a&COS_LOOKUP_I_MASK; - return COS_LOOKUP_I[i]- ((d*(COS_LOOKUP_I[i]-COS_LOOKUP_I[i+1]))>> - COS_LOOKUP_I_SHIFT); -} - -#endif diff --git a/lib/lookup.h b/lib/lookup.h deleted file mode 100644 index 126e8286..00000000 --- a/lib/lookup.h +++ /dev/null @@ -1,32 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: lookup based functions - last mod: $Id: lookup.h,v 1.5 2001/02/26 03:50:42 xiphmont Exp $ - - ********************************************************************/ - -#ifndef _V_LOOKUP_H_ - -#ifdef FLOAT_LOOKUP -extern float vorbis_coslook(float a); -extern float vorbis_invsqlook(float a); -extern float vorbis_invsq2explook(int a); -extern float vorbis_fromdBlook(float a); -#endif -#ifdef INT_LOOKUP -extern long vorbis_invsqlook_i(long a,long e); -extern long vorbis_coslook_i(long a); -extern float vorbis_fromdBlook_i(long a); -#endif - -#endif diff --git a/lib/lookup_data.h b/lib/lookup_data.h deleted file mode 100644 index 5798fb22..00000000 --- a/lib/lookup_data.h +++ /dev/null @@ -1,189 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: lookup data; generated by lookups.pl; edit there - last mod: $Id: lookup_data.h,v 1.7 2001/02/26 03:50:42 xiphmont Exp $ - - ********************************************************************/ - -#ifndef _V_LOOKUP_DATA_H_ - -#ifdef FLOAT_LOOKUP -#define COS_LOOKUP_SZ 128 -static float COS_LOOKUP[COS_LOOKUP_SZ+1]={ - +1.0000000000000f,+0.9996988186962f,+0.9987954562052f,+0.9972904566787f, - +0.9951847266722f,+0.9924795345987f,+0.9891765099648f,+0.9852776423889f, - +0.9807852804032f,+0.9757021300385f,+0.9700312531945f,+0.9637760657954f, - +0.9569403357322f,+0.9495281805930f,+0.9415440651830f,+0.9329927988347f, - +0.9238795325113f,+0.9142097557035f,+0.9039892931234f,+0.8932243011955f, - +0.8819212643484f,+0.8700869911087f,+0.8577286100003f,+0.8448535652497f, - +0.8314696123025f,+0.8175848131516f,+0.8032075314806f,+0.7883464276266f, - +0.7730104533627f,+0.7572088465065f,+0.7409511253550f,+0.7242470829515f, - +0.7071067811865f,+0.6895405447371f,+0.6715589548470f,+0.6531728429538f, - +0.6343932841636f,+0.6152315905806f,+0.5956993044924f,+0.5758081914178f, - +0.5555702330196f,+0.5349976198871f,+0.5141027441932f,+0.4928981922298f, - +0.4713967368260f,+0.4496113296546f,+0.4275550934303f,+0.4052413140050f, - +0.3826834323651f,+0.3598950365350f,+0.3368898533922f,+0.3136817403989f, - +0.2902846772545f,+0.2667127574749f,+0.2429801799033f,+0.2191012401569f, - +0.1950903220161f,+0.1709618887603f,+0.1467304744554f,+0.1224106751992f, - +0.0980171403296f,+0.0735645635997f,+0.0490676743274f,+0.0245412285229f, - +0.0000000000000f,-0.0245412285229f,-0.0490676743274f,-0.0735645635997f, - -0.0980171403296f,-0.1224106751992f,-0.1467304744554f,-0.1709618887603f, - -0.1950903220161f,-0.2191012401569f,-0.2429801799033f,-0.2667127574749f, - -0.2902846772545f,-0.3136817403989f,-0.3368898533922f,-0.3598950365350f, - -0.3826834323651f,-0.4052413140050f,-0.4275550934303f,-0.4496113296546f, - -0.4713967368260f,-0.4928981922298f,-0.5141027441932f,-0.5349976198871f, - -0.5555702330196f,-0.5758081914178f,-0.5956993044924f,-0.6152315905806f, - -0.6343932841636f,-0.6531728429538f,-0.6715589548470f,-0.6895405447371f, - -0.7071067811865f,-0.7242470829515f,-0.7409511253550f,-0.7572088465065f, - -0.7730104533627f,-0.7883464276266f,-0.8032075314806f,-0.8175848131516f, - -0.8314696123025f,-0.8448535652497f,-0.8577286100003f,-0.8700869911087f, - -0.8819212643484f,-0.8932243011955f,-0.9039892931234f,-0.9142097557035f, - -0.9238795325113f,-0.9329927988347f,-0.9415440651830f,-0.9495281805930f, - -0.9569403357322f,-0.9637760657954f,-0.9700312531945f,-0.9757021300385f, - -0.9807852804032f,-0.9852776423889f,-0.9891765099648f,-0.9924795345987f, - -0.9951847266722f,-0.9972904566787f,-0.9987954562052f,-0.9996988186962f, - -1.0000000000000f, -}; - -#define INVSQ_LOOKUP_SZ 32 -static float INVSQ_LOOKUP[INVSQ_LOOKUP_SZ+1]={ - 1.414213562373f,1.392621247646f,1.371988681140f,1.352246807566f, - 1.333333333333f,1.315191898443f,1.297771369046f,1.281025230441f, - 1.264911064067f,1.249390095109f,1.234426799697f,1.219988562661f, - 1.206045378311f,1.192569588000f,1.179535649239f,1.166919931983f, - 1.154700538379f,1.142857142857f,1.131370849898f,1.120224067222f, - 1.109400392450f,1.098884511590f,1.088662107904f,1.078719779941f, - 1.069044967650f,1.059625885652f,1.050451462878f,1.041511287847f, - 1.032795558989f,1.024295039463f,1.016001016002f,1.007905261358f, - 1.000000000000f, -}; - -#define INVSQ2EXP_LOOKUP_MIN -32 -#define INVSQ2EXP_LOOKUP_MAX 32 -static float INVSQ2EXP_LOOKUP[INVSQ2EXP_LOOKUP_MAX-\ - INVSQ2EXP_LOOKUP_MIN+1]={ - 65536.f, 46340.95001f, 32768.f, 23170.47501f, - 16384.f, 11585.2375f, 8192.f, 5792.618751f, - 4096.f, 2896.309376f, 2048.f, 1448.154688f, - 1024.f, 724.0773439f, 512.f, 362.038672f, - 256.f, 181.019336f, 128.f, 90.50966799f, - 64.f, 45.254834f, 32.f, 22.627417f, - 16.f, 11.3137085f, 8.f, 5.656854249f, - 4.f, 2.828427125f, 2.f, 1.414213562f, - 1.f, 0.7071067812f, 0.5f, 0.3535533906f, - 0.25f, 0.1767766953f, 0.125f, 0.08838834765f, - 0.0625f, 0.04419417382f, 0.03125f, 0.02209708691f, - 0.015625f, 0.01104854346f, 0.0078125f, 0.005524271728f, - 0.00390625f, 0.002762135864f, 0.001953125f, 0.001381067932f, - 0.0009765625f, 0.000690533966f, 0.00048828125f, 0.000345266983f, - 0.000244140625f,0.0001726334915f,0.0001220703125f,8.631674575e-05f, - 6.103515625e-05f,4.315837288e-05f,3.051757812e-05f,2.157918644e-05f, - 1.525878906e-05f, -}; - -#endif - -#define FROMdB_LOOKUP_SZ 35 -#define FROMdB2_LOOKUP_SZ 32 -#define FROMdB_SHIFT 5 -#define FROMdB2_SHIFT 3 -#define FROMdB2_MASK 31 -static float FROMdB_LOOKUP[FROMdB_LOOKUP_SZ]={ - 1.f, 0.6309573445f, 0.3981071706f, 0.2511886432f, - 0.1584893192f, 0.1f, 0.06309573445f, 0.03981071706f, - 0.02511886432f, 0.01584893192f, 0.01f, 0.006309573445f, - 0.003981071706f, 0.002511886432f, 0.001584893192f, 0.001f, - 0.0006309573445f,0.0003981071706f,0.0002511886432f,0.0001584893192f, - 0.0001f,6.309573445e-05f,3.981071706e-05f,2.511886432e-05f, - 1.584893192e-05f, 1e-05f,6.309573445e-06f,3.981071706e-06f, - 2.511886432e-06f,1.584893192e-06f, 1e-06f,6.309573445e-07f, - 3.981071706e-07f,2.511886432e-07f,1.584893192e-07f, -}; - -static float FROMdB2_LOOKUP[FROMdB2_LOOKUP_SZ]={ - 0.9928302478f, 0.9786445908f, 0.9646616199f, 0.9508784391f, - 0.9372921937f, 0.92390007f, 0.9106992942f, 0.8976871324f, - 0.8848608897f, 0.8722179097f, 0.8597555737f, 0.8474713009f, - 0.835362547f, 0.8234268041f, 0.8116616003f, 0.8000644989f, - 0.7886330981f, 0.7773650302f, 0.7662579617f, 0.755309592f, - 0.7445176537f, 0.7338799116f, 0.7233941627f, 0.7130582353f, - 0.7028699885f, 0.6928273125f, 0.6829281272f, 0.6731703824f, - 0.6635520573f, 0.6540711597f, 0.6447257262f, 0.6355138211f, -}; - -#ifdef INT_LOOKUP - -#define INVSQ_LOOKUP_I_SHIFT 10 -#define INVSQ_LOOKUP_I_MASK 1023 -static long INVSQ_LOOKUP_I[64+1]={ - 92682l, 91966l, 91267l, 90583l, - 89915l, 89261l, 88621l, 87995l, - 87381l, 86781l, 86192l, 85616l, - 85051l, 84497l, 83953l, 83420l, - 82897l, 82384l, 81880l, 81385l, - 80899l, 80422l, 79953l, 79492l, - 79039l, 78594l, 78156l, 77726l, - 77302l, 76885l, 76475l, 76072l, - 75674l, 75283l, 74898l, 74519l, - 74146l, 73778l, 73415l, 73058l, - 72706l, 72359l, 72016l, 71679l, - 71347l, 71019l, 70695l, 70376l, - 70061l, 69750l, 69444l, 69141l, - 68842l, 68548l, 68256l, 67969l, - 67685l, 67405l, 67128l, 66855l, - 66585l, 66318l, 66054l, 65794l, - 65536l, -}; - -#define COS_LOOKUP_I_SHIFT 9 -#define COS_LOOKUP_I_MASK 511 -#define COS_LOOKUP_I_SZ 128 -static long COS_LOOKUP_I[COS_LOOKUP_I_SZ+1]={ - 16384l, 16379l, 16364l, 16340l, - 16305l, 16261l, 16207l, 16143l, - 16069l, 15986l, 15893l, 15791l, - 15679l, 15557l, 15426l, 15286l, - 15137l, 14978l, 14811l, 14635l, - 14449l, 14256l, 14053l, 13842l, - 13623l, 13395l, 13160l, 12916l, - 12665l, 12406l, 12140l, 11866l, - 11585l, 11297l, 11003l, 10702l, - 10394l, 10080l, 9760l, 9434l, - 9102l, 8765l, 8423l, 8076l, - 7723l, 7366l, 7005l, 6639l, - 6270l, 5897l, 5520l, 5139l, - 4756l, 4370l, 3981l, 3590l, - 3196l, 2801l, 2404l, 2006l, - 1606l, 1205l, 804l, 402l, - 0l, -401l, -803l, -1204l, - -1605l, -2005l, -2403l, -2800l, - -3195l, -3589l, -3980l, -4369l, - -4755l, -5138l, -5519l, -5896l, - -6269l, -6638l, -7004l, -7365l, - -7722l, -8075l, -8422l, -8764l, - -9101l, -9433l, -9759l, -10079l, - -10393l, -10701l, -11002l, -11296l, - -11584l, -11865l, -12139l, -12405l, - -12664l, -12915l, -13159l, -13394l, - -13622l, -13841l, -14052l, -14255l, - -14448l, -14634l, -14810l, -14977l, - -15136l, -15285l, -15425l, -15556l, - -15678l, -15790l, -15892l, -15985l, - -16068l, -16142l, -16206l, -16260l, - -16304l, -16339l, -16363l, -16378l, - -16383l, -}; - -#endif - -#endif diff --git a/lib/lookups.pl b/lib/lookups.pl deleted file mode 100755 index 211deea5..00000000 --- a/lib/lookups.pl +++ /dev/null @@ -1,142 +0,0 @@ -#!/usr/bin/perl -print <<'EOD'; -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: lookup data; generated by lookups.pl; edit there - last mod: $Id: lookups.pl,v 1.5 2001/02/26 03:50:42 xiphmont Exp $ - - ********************************************************************/ - -#ifndef _V_LOOKUP_DATA_H_ - -#ifdef FLOAT_LOOKUP -EOD - -$cos_sz=128; -$invsq_sz=32; -$invsq2exp_min=-32; -$invsq2exp_max=32; - -$fromdB_sz=35; -$fromdB_shift=5; -$fromdB2_shift=3; - -$invsq_i_shift=10; -$cos_i_shift=9; -$delta_shift=6; - -print "#define COS_LOOKUP_SZ $cos_sz\n"; -print "static float COS_LOOKUP[COS_LOOKUP_SZ+1]={\n"; - -for($i=0;$i<=$cos_sz;){ - print "\t"; - for($j=0;$j<4 && $i<=$cos_sz;$j++){ - printf "%+.13f,", cos(3.14159265358979323846*($i++)/$cos_sz) ; - } - print "\n"; -} -print "};\n\n"; - -print "#define INVSQ_LOOKUP_SZ $invsq_sz\n"; -print "static float INVSQ_LOOKUP[INVSQ_LOOKUP_SZ+1]={\n"; - -for($i=0;$i<=$invsq_sz;){ - print "\t"; - for($j=0;$j<4 && $i<=$invsq_sz;$j++){ - my$indexmap=$i++/$invsq_sz*.5+.5; - printf "%.12f,", 1./sqrt($indexmap); - } - print "\n"; -} -print "};\n\n"; - -print "#define INVSQ2EXP_LOOKUP_MIN $invsq2exp_min\n"; -print "#define INVSQ2EXP_LOOKUP_MAX $invsq2exp_max\n"; -print "static float INVSQ2EXP_LOOKUP[INVSQ2EXP_LOOKUP_MAX-\\\n". - " INVSQ2EXP_LOOKUP_MIN+1]={\n"; - -for($i=$invsq2exp_min;$i<=$invsq2exp_max;){ - print "\t"; - for($j=0;$j<4 && $i<=$invsq2exp_max;$j++){ - printf "%15.10g,", 2**($i++*-.5); - } - print "\n"; -} -print "};\n\n#endif\n\n"; - - -# 0 to -140 dB -$fromdB2_sz=1<<$fromdB_shift; -$fromdB_gran=1<<($fromdB_shift-$fromdB2_shift); -print "#define FROMdB_LOOKUP_SZ $fromdB_sz\n"; -print "#define FROMdB2_LOOKUP_SZ $fromdB2_sz\n"; -print "#define FROMdB_SHIFT $fromdB_shift\n"; -print "#define FROMdB2_SHIFT $fromdB2_shift\n"; -print "#define FROMdB2_MASK ".((1<<$fromdB_shift)-1)."\n"; - -print "static float FROMdB_LOOKUP[FROMdB_LOOKUP_SZ]={\n"; - -for($i=0;$i<$fromdB_sz;){ - print "\t"; - for($j=0;$j<4 && $i<$fromdB_sz;$j++){ - printf "%15.10g,", 10**(.05*(-$fromdB_gran*$i++)); - } - print "\n"; -} -print "};\n\n"; - -print "static float FROMdB2_LOOKUP[FROMdB2_LOOKUP_SZ]={\n"; - -for($i=0;$i<$fromdB2_sz;){ - print "\t"; - for($j=0;$j<4 && $i<$fromdB_sz;$j++){ - printf "%15.10g,", 10**(.05*(-$fromdB_gran/$fromdB2_sz*(.5+$i++))); - } - print "\n"; -} -print "};\n\n#ifdef INT_LOOKUP\n\n"; - - -$iisz=0x10000>>$invsq_i_shift; -print "#define INVSQ_LOOKUP_I_SHIFT $invsq_i_shift\n"; -print "#define INVSQ_LOOKUP_I_MASK ".(0x0ffff>>(16-$invsq_i_shift))."\n"; -print "static long INVSQ_LOOKUP_I[$iisz+1]={\n"; -for($i=0;$i<=$iisz;){ - print "\t"; - for($j=0;$j<4 && $i<=$iisz;$j++){ - my$indexmap=$i++/$iisz*.5+.5; - printf "%8d,", int(1./sqrt($indexmap)*65536.+.5); - } - print "\n"; -} -print "};\n\n"; - -$cisz=0x10000>>$cos_i_shift; -print "#define COS_LOOKUP_I_SHIFT $cos_i_shift\n"; -print "#define COS_LOOKUP_I_MASK ".(0x0ffff>>(16-$cos_i_shift))."\n"; -print "#define COS_LOOKUP_I_SZ $cisz\n"; -print "static long COS_LOOKUP_I[COS_LOOKUP_I_SZ+1]={\n"; - -for($i=0;$i<=$cisz;){ - print "\t"; - for($j=0;$j<4 && $i<=$cisz;$j++){ - printf "%8d,", int(cos(3.14159265358979323846*($i++)/$cos_sz)*16384.+.5) ; - } - print "\n"; -} -print "};\n\n"; - - -print "#endif\n\n#endif\n"; - - diff --git a/lib/lpc.c b/lib/lpc.c deleted file mode 100644 index 6d491cd3..00000000 --- a/lib/lpc.c +++ /dev/null @@ -1,200 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: LPC low level routines - last mod: $Id: lpc.c,v 1.31 2001/02/26 03:50:42 xiphmont Exp $ - - ********************************************************************/ - -/* Some of these routines (autocorrelator, LPC coefficient estimator) - are derived from code written by Jutta Degener and Carsten Bormann; - thus we include their copyright below. The entirety of this file - is freely redistributable on the condition that both of these - copyright notices are preserved without modification. */ - -/* Preserved Copyright: *********************************************/ - -/* Copyright 1992, 1993, 1994 by Jutta Degener and Carsten Bormann, -Technische Universita"t Berlin - -Any use of this software is permitted provided that this notice is not -removed and that neither the authors nor the Technische Universita"t -Berlin are deemed to have made any representations as to the -suitability of this software for any purpose nor are held responsible -for any defects of this software. THERE IS ABSOLUTELY NO WARRANTY FOR -THIS SOFTWARE. - -As a matter of courtesy, the authors request to be informed about uses -this software has found, about bugs in this software, and about any -improvements that may be of general interest. - -Berlin, 28.11.1994 -Jutta Degener -Carsten Bormann - -*********************************************************************/ - -#include <stdlib.h> -#include <string.h> -#include <math.h> -#include "os.h" -#include "smallft.h" -#include "lpc.h" -#include "scales.h" -#include "misc.h" - -/* Autocorrelation LPC coeff generation algorithm invented by - N. Levinson in 1947, modified by J. Durbin in 1959. */ - -/* Input : n elements of time doamin data - Output: m lpc coefficients, excitation energy */ - -float vorbis_lpc_from_data(float *data,float *lpc,int n,int m){ - float *aut=alloca(sizeof(float)*(m+1)); - float error; - int i,j; - - /* autocorrelation, p+1 lag coefficients */ - - j=m+1; - while(j--){ - float d=0; - for(i=j;i<n;i++)d+=data[i]*data[i-j]; - aut[j]=d; - } - - /* Generate lpc coefficients from autocorr values */ - - error=aut[0]; - - for(i=0;i<m;i++){ - float r=-aut[i+1]; - - if(error==0){ - memset(lpc,0,m*sizeof(float)); - return 0; - } - - /* Sum up this iteration's reflection coefficient; note that in - Vorbis we don't save it. If anyone wants to recycle this code - and needs reflection coefficients, save the results of 'r' from - each iteration. */ - - for(j=0;j<i;j++)r-=lpc[j]*aut[i-j]; - r/=error; - - /* Update LPC coefficients and total error */ - - lpc[i]=r; - for(j=0;j<i/2;j++){ - float tmp=lpc[j]; - lpc[j]+=r*lpc[i-1-j]; - lpc[i-1-j]+=r*tmp; - } - if(i%2)lpc[j]+=lpc[j]*r; - - error*=1.f-r*r; - } - - /* we need the error value to know how big an impulse to hit the - filter with later */ - - return error; -} - -/* Input : n element envelope spectral curve - Output: m lpc coefficients, excitation energy */ - -float vorbis_lpc_from_curve(float *curve,float *lpc,lpc_lookup *l){ - int n=l->ln; - int m=l->m; - float *work=alloca(sizeof(float)*(n+n)); - float fscale=.5f/n; - int i,j; - - /* input is a real curve. make it complex-real */ - /* This mixes phase, but the LPC generation doesn't care. */ - for(i=0;i<n;i++){ - work[i*2]=curve[i]*fscale; - work[i*2+1]=0; - } - work[n*2-1]=curve[n-1]*fscale; - - n*=2; - drft_backward(&l->fft,work); - - /* The autocorrelation will not be circular. Shift, else we lose - most of the power in the edges. */ - - for(i=0,j=n/2;i<n/2;){ - float temp=work[i]; - work[i++]=work[j]; - work[j++]=temp; - } - - /* we *could* shave speed here by skimping on the edges (thus - speeding up the autocorrelation in vorbis_lpc_from_data) but we - don't right now. */ - - return(vorbis_lpc_from_data(work,lpc,n,m)); -} - -void lpc_init(lpc_lookup *l,long mapped, int m){ - memset(l,0,sizeof(lpc_lookup)); - - l->ln=mapped; - l->m=m; - - /* we cheat decoding the LPC spectrum via FFTs */ - drft_init(&l->fft,mapped*2); - -} - -void lpc_clear(lpc_lookup *l){ - if(l){ - drft_clear(&l->fft); - } -} - -void vorbis_lpc_predict(float *coeff,float *prime,int m, - float *data,long n){ - - /* in: coeff[0...m-1] LPC coefficients - prime[0...m-1] initial values (allocated size of n+m-1) - out: data[0...n-1] data samples */ - - long i,j,o,p; - float y; - float *work=alloca(sizeof(float)*(m+n)); - - if(!prime) - for(i=0;i<m;i++) - work[i]=0.f; - else - for(i=0;i<m;i++) - work[i]=prime[i]; - - for(i=0;i<n;i++){ - y=0; - o=i; - p=m; - for(j=0;j<m;j++) - y-=work[o++]*coeff[--p]; - - data[i]=work[o]=y; - } -} - - - - - diff --git a/lib/lpc.h b/lib/lpc.h deleted file mode 100644 index 48251738..00000000 --- a/lib/lpc.h +++ /dev/null @@ -1,43 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: LPC low level routines - last mod: $Id: lpc.h,v 1.17 2001/02/26 03:50:42 xiphmont Exp $ - - ********************************************************************/ - -#ifndef _V_LPC_H_ -#define _V_LPC_H_ - -#include "vorbis/codec.h" -#include "smallft.h" - -typedef struct lpclook{ - /* en/decode lookups */ - drft_lookup fft; - - int ln; - int m; - -} lpc_lookup; - -extern void lpc_init(lpc_lookup *l,long mapped, int m); -extern void lpc_clear(lpc_lookup *l); - -/* simple linear scale LPC code */ -extern float vorbis_lpc_from_data(float *data,float *lpc,int n,int m); -extern float vorbis_lpc_from_curve(float *curve,float *lpc,lpc_lookup *l); - -extern void vorbis_lpc_predict(float *coeff,float *prime,int m, - float *data,long n); - -#endif diff --git a/lib/lsp.c b/lib/lsp.c deleted file mode 100644 index 1854a370..00000000 --- a/lib/lsp.c +++ /dev/null @@ -1,457 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: LSP (also called LSF) conversion routines - last mod: $Id: lsp.c,v 1.18 2001/06/15 21:15:39 xiphmont Exp $ - - The LSP generation code is taken (with minimal modification and a - few bugfixes) from "On the Computation of the LSP Frequencies" by - Joseph Rothweiler <rothwlr@altavista.net>, available at: - - http://www2.xtdl.com/~rothwlr/lsfpaper/lsfpage.html - - ********************************************************************/ - -/* Note that the lpc-lsp conversion finds the roots of polynomial with - an iterative root polisher (CACM algorithm 283). It *is* possible - to confuse this algorithm into not converging; that should only - happen with absurdly closely spaced roots (very sharp peaks in the - LPC f response) which in turn should be impossible in our use of - the code. If this *does* happen anyway, it's a bug in the floor - finder; find the cause of the confusion (probably a single bin - spike or accidental near-float-limit resolution problems) and - correct it. */ - -#include <math.h> -#include <string.h> -#include <stdlib.h> -#include "lsp.h" -#include "os.h" -#include "misc.h" -#include "lookup.h" -#include "scales.h" - -/* three possible LSP to f curve functions; the exact computation - (float), a lookup based float implementation, and an integer - implementation. The float lookup is likely the optimal choice on - any machine with an FPU. The integer implementation is *not* fixed - point (due to the need for a large dynamic range and thus a - seperately tracked exponent) and thus much more complex than the - relatively simple float implementations. It's mostly for future - work on a fully fixed point implementation for processors like the - ARM family. */ - -/* undefine both for the 'old' but more precise implementation */ -#undef FLOAT_LOOKUP -#undef INT_LOOKUP - -#ifdef FLOAT_LOOKUP -#include "lookup.c" /* catch this in the build system; we #include for - compilers (like gcc) that can't inline across - modules */ - -/* side effect: changes *lsp to cosines of lsp */ -void vorbis_lsp_to_curve(float *curve,int *map,int n,int ln,float *lsp,int m, - float amp,float ampoffset){ - int i; - float wdel=M_PI/ln; - vorbis_fpu_control fpu; - - vorbis_fpu_setround(&fpu); - for(i=0;i<m;i++)lsp[i]=vorbis_coslook(lsp[i]); - - i=0; - while(i<n){ - int k=map[i]; - int qexp; - float p=.7071067812f; - float q=.7071067812f; - float w=vorbis_coslook(wdel*k); - float *ftmp=lsp; - int c=m>>1; - - do{ - q*=ftmp[0]-w; - p*=ftmp[1]-w; - ftmp+=2; - }while(--c); - - if(m&1){ - /* odd order filter; slightly assymetric */ - /* the last coefficient */ - q*=ftmp[0]-w; - q*=q; - p*=p*(1.f-w*w); - }else{ - /* even order filter; still symmetric */ - q*=q*(1.f+w); - p*=p*(1.f-w); - } - - q=frexp(p+q,&qexp); - q=vorbis_fromdBlook(amp* - vorbis_invsqlook(q)* - vorbis_invsq2explook(qexp+m)- - ampoffset); - - do{ - curve[i++]*=q; - }while(map[i]==k); - } - vorbis_fpu_restore(fpu); -} - -#else - -#ifdef INT_LOOKUP -#include "lookup.c" /* catch this in the build system; we #include for - compilers (like gcc) that can't inline across - modules */ - -static int MLOOP_1[64]={ - 0,10,11,11, 12,12,12,12, 13,13,13,13, 13,13,13,13, - 14,14,14,14, 14,14,14,14, 14,14,14,14, 14,14,14,14, - 15,15,15,15, 15,15,15,15, 15,15,15,15, 15,15,15,15, - 15,15,15,15, 15,15,15,15, 15,15,15,15, 15,15,15,15, -}; - -static int MLOOP_2[64]={ - 0,4,5,5, 6,6,6,6, 7,7,7,7, 7,7,7,7, - 8,8,8,8, 8,8,8,8, 8,8,8,8, 8,8,8,8, - 9,9,9,9, 9,9,9,9, 9,9,9,9, 9,9,9,9, - 9,9,9,9, 9,9,9,9, 9,9,9,9, 9,9,9,9, -}; - -static int MLOOP_3[8]={0,1,2,2,3,3,3,3}; - - -/* side effect: changes *lsp to cosines of lsp */ -void vorbis_lsp_to_curve(float *curve,int *map,int n,int ln,float *lsp,int m, - float amp,float ampoffset){ - - /* 0 <= m < 256 */ - - /* set up for using all int later */ - int i; - int ampoffseti=rint(ampoffset*4096.f); - int ampi=rint(amp*16.f); - long *ilsp=alloca(m*sizeof(long)); - for(i=0;i<m;i++)ilsp[i]=vorbis_coslook_i(lsp[i]/M_PI*65536.f+.5f); - - i=0; - while(i<n){ - int j,k=map[i]; - unsigned long pi=46341; /* 2**-.5 in 0.16 */ - unsigned long qi=46341; - int qexp=0,shift; - long wi=vorbis_coslook_i(k*65536/ln); - - qi*=labs(ilsp[0]-wi); - pi*=labs(ilsp[1]-wi); - - for(j=3;j<m;j+=2){ - if(!(shift=MLOOP_1[(pi|qi)>>25])) - if(!(shift=MLOOP_2[(pi|qi)>>19])) - shift=MLOOP_3[(pi|qi)>>16]; - qi=(qi>>shift)*labs(ilsp[j-1]-wi); - pi=(pi>>shift)*labs(ilsp[j]-wi); - qexp+=shift; - } - if(!(shift=MLOOP_1[(pi|qi)>>25])) - if(!(shift=MLOOP_2[(pi|qi)>>19])) - shift=MLOOP_3[(pi|qi)>>16]; - - /* pi,qi normalized collectively, both tracked using qexp */ - - if(m&1){ - /* odd order filter; slightly assymetric */ - /* the last coefficient */ - qi=(qi>>shift)*labs(ilsp[j-1]-wi); - pi=(pi>>shift)<<14; - qexp+=shift; - - if(!(shift=MLOOP_1[(pi|qi)>>25])) - if(!(shift=MLOOP_2[(pi|qi)>>19])) - shift=MLOOP_3[(pi|qi)>>16]; - - pi>>=shift; - qi>>=shift; - qexp+=shift-14*((m+1)>>1); - - pi=((pi*pi)>>16); - qi=((qi*qi)>>16); - qexp=qexp*2+m; - - pi*=(1<<14)-((wi*wi)>>14); - qi+=pi>>14; - - }else{ - /* even order filter; still symmetric */ - - /* p*=p(1-w), q*=q(1+w), let normalization drift because it isn't - worth tracking step by step */ - - pi>>=shift; - qi>>=shift; - qexp+=shift-7*m; - - pi=((pi*pi)>>16); - qi=((qi*qi)>>16); - qexp=qexp*2+m; - - pi*=(1<<14)-wi; - qi*=(1<<14)+wi; - qi=(qi+pi)>>14; - - } - - - /* we've let the normalization drift because it wasn't important; - however, for the lookup, things must be normalized again. We - need at most one right shift or a number of left shifts */ - - if(qi&0xffff0000){ /* checks for 1.xxxxxxxxxxxxxxxx */ - qi>>=1; qexp++; - }else - while(qi && !(qi&0x8000)){ /* checks for 0.0xxxxxxxxxxxxxxx or less*/ - qi<<=1; qexp--; - } - - amp=vorbis_fromdBlook_i(ampi* /* n.4 */ - vorbis_invsqlook_i(qi,qexp)- - /* m.8, m+n<=8 */ - ampoffseti); /* 8.12[0] */ - - curve[i]*=amp; - while(map[++i]==k)curve[i]*=amp; - } -} - -#else - -/* old, nonoptimized but simple version for any poor sap who needs to - figure out what the hell this code does, or wants the other - fraction of a dB precision */ - -/* side effect: changes *lsp to cosines of lsp */ -void vorbis_lsp_to_curve(float *curve,int *map,int n,int ln,float *lsp,int m, - float amp,float ampoffset){ - int i; - float wdel=M_PI/ln; - for(i=0;i<m;i++)lsp[i]=2.f*cos(lsp[i]); - - i=0; - while(i<n){ - int j,k=map[i]; - float p=.5f; - float q=.5f; - float w=2.f*cos(wdel*k); - for(j=1;j<m;j+=2){ - q *= w-lsp[j-1]; - p *= w-lsp[j]; - } - if(j==m){ - /* odd order filter; slightly assymetric */ - /* the last coefficient */ - q*=w-lsp[j-1]; - p*=p*(4.f-w*w); - q*=q; - }else{ - /* even order filter; still symmetric */ - p*=p*(2.f-w); - q*=q*(2.f+w); - } - - q=fromdB(amp/sqrt(p+q)-ampoffset); - - curve[i]*=q; - while(map[++i]==k)curve[i]*=q; - } -} - -#endif -#endif - -static void cheby(float *g, int ord) { - int i, j; - - g[0] *= .5f; - for(i=2; i<= ord; i++) { - for(j=ord; j >= i; j--) { - g[j-2] -= g[j]; - g[j] += g[j]; - } - } -} - -static int comp(const void *a,const void *b){ - if(*(float *)a<*(float *)b) - return(1); - else - return(-1); -} - -/* Newton-Raphson-Maehly actually functioned as a decent root finder, - but there are root sets for which it gets into limit cycles - (exacerbated by zero suppression) and fails. We can't afford to - fail, even if the failure is 1 in 100,000,000, so we now use - Laguerre and later polish with Newton-Raphson (which can then - afford to fail) */ - -#define EPSILON 10e-7 -static int Laguerre_With_Deflation(float *a,int ord,float *r){ - int i,m; - double lastdelta=0.f; - double *defl=alloca(sizeof(double)*(ord+1)); - for(i=0;i<=ord;i++)defl[i]=a[i]; - - for(m=ord;m>0;m--){ - double new=0.f,delta; - - /* iterate a root */ - while(1){ - double p=defl[m],pp=0.f,ppp=0.f,denom; - - /* eval the polynomial and its first two derivatives */ - for(i=m;i>0;i--){ - ppp = new*ppp + pp; - pp = new*pp + p; - p = new*p + defl[i-1]; - } - - /* Laguerre's method */ - denom=(m-1) * ((m-1)*pp*pp - m*p*ppp); - if(denom<0) - return(-1); /* complex root! The LPC generator handed us a bad filter */ - - if(pp>0){ - denom = pp + sqrt(denom); - if(denom<EPSILON)denom=EPSILON; - }else{ - denom = pp - sqrt(denom); - if(denom>-(EPSILON))denom=-(EPSILON); - } - - delta = m*p/denom; - new -= delta; - - if(delta<0.f)delta*=-1; - - if(fabs(delta/new)<10e-12)break; - lastdelta=delta; - } - - r[m-1]=new; - - /* forward deflation */ - - for(i=m;i>0;i--) - defl[i-1]+=new*defl[i]; - defl++; - - } - return(0); -} - - -/* for spit-and-polish only */ -static int Newton_Raphson(float *a,int ord,float *r){ - int i, k, count=0; - double error=1.f; - double *root=alloca(ord*sizeof(double)); - - for(i=0; i<ord;i++) root[i] = r[i]; - - while(error>1e-20){ - error=0; - - for(i=0; i<ord; i++) { /* Update each point. */ - double pp=0.,delta; - double rooti=root[i]; - double p=a[ord]; - for(k=ord-1; k>= 0; k--) { - - pp= pp* rooti + p; - p = p * rooti + a[k]; - } - - delta = p/pp; - root[i] -= delta; - error+= delta*delta; - } - - if(count>40)return(-1); - - count++; - } - - /* Replaced the original bubble sort with a real sort. With your - help, we can eliminate the bubble sort in our lifetime. --Monty */ - - for(i=0; i<ord;i++) r[i] = root[i]; - return(0); -} - - -/* Convert lpc coefficients to lsp coefficients */ -int vorbis_lpc_to_lsp(float *lpc,float *lsp,int m){ - int order2=(m+1)>>1; - int g1_order,g2_order; - float *g1=alloca(sizeof(float)*(order2+1)); - float *g2=alloca(sizeof(float)*(order2+1)); - float *g1r=alloca(sizeof(float)*(order2+1)); - float *g2r=alloca(sizeof(float)*(order2+1)); - int i; - - /* even and odd are slightly different base cases */ - g1_order=(m+1)>>1; - g2_order=(m) >>1; - - /* Compute the lengths of the x polynomials. */ - /* Compute the first half of K & R F1 & F2 polynomials. */ - /* Compute half of the symmetric and antisymmetric polynomials. */ - /* Remove the roots at +1 and -1. */ - - g1[g1_order] = 1.f; - for(i=1;i<=g1_order;i++) g1[g1_order-i] = lpc[i-1]+lpc[m-i]; - g2[g2_order] = 1.f; - for(i=1;i<=g2_order;i++) g2[g2_order-i] = lpc[i-1]-lpc[m-i]; - - if(g1_order>g2_order){ - for(i=2; i<=g2_order;i++) g2[g2_order-i] += g2[g2_order-i+2]; - }else{ - for(i=1; i<=g1_order;i++) g1[g1_order-i] -= g1[g1_order-i+1]; - for(i=1; i<=g2_order;i++) g2[g2_order-i] += g2[g2_order-i+1]; - } - - /* Convert into polynomials in cos(alpha) */ - cheby(g1,g1_order); - cheby(g2,g2_order); - - /* Find the roots of the 2 even polynomials.*/ - if(Laguerre_With_Deflation(g1,g1_order,g1r) || - Laguerre_With_Deflation(g2,g2_order,g2r)) - return(-1); - - Newton_Raphson(g1,g1_order,g1r); /* if it fails, it leaves g1r alone */ - Newton_Raphson(g2,g2_order,g2r); /* if it fails, it leaves g2r alone */ - - qsort(g1r,g1_order,sizeof(float),comp); - qsort(g2r,g2_order,sizeof(float),comp); - - for(i=0;i<g1_order;i++) - lsp[i*2] = acos(g1r[i]); - - for(i=0;i<g2_order;i++) - lsp[i*2+1] = acos(g2r[i]); - return(0); -} diff --git a/lib/lsp.h b/lib/lsp.h deleted file mode 100644 index e8fcf6a8..00000000 --- a/lib/lsp.h +++ /dev/null @@ -1,28 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: LSP (also called LSF) conversion routines - last mod: $Id: lsp.h,v 1.9 2001/02/26 03:50:42 xiphmont Exp $ - - ********************************************************************/ - - -#ifndef _V_LSP_H_ -#define _V_LSP_H_ - -extern int vorbis_lpc_to_lsp(float *lpc,float *lsp,int m); - -extern void vorbis_lsp_to_curve(float *curve,int *map,int n,int ln, - float *lsp,int m, - float amp,float ampoffset); - -#endif diff --git a/lib/mapping0.c b/lib/mapping0.c deleted file mode 100644 index b16e0150..00000000 --- a/lib/mapping0.c +++ /dev/null @@ -1,565 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - * * - ******************************************************************** - - function: channel mapping 0 implementation - last mod: $Id: mapping0.c,v 1.33 2001/06/17 22:25:50 xiphmont Exp $ - - ********************************************************************/ - -#include <stdlib.h> -#include <stdio.h> -#include <string.h> -#include <math.h> -#include <ogg/ogg.h> -#include "vorbis/codec.h" -#include "codec_internal.h" -#include "codebook.h" -#include "bitbuffer.h" -#include "registry.h" -#include "psy.h" -#include "misc.h" - -/* simplistic, wasteful way of doing this (unique lookup for each - mode/submapping); there should be a central repository for - identical lookups. That will require minor work, so I'm putting it - off as low priority. - - Why a lookup for each backend in a given mode? Because the - blocksize is set by the mode, and low backend lookups may require - parameters from other areas of the mode/mapping */ - -typedef struct { - drft_lookup fft_look; - vorbis_info_mode *mode; - vorbis_info_mapping0 *map; - - vorbis_look_time **time_look; - vorbis_look_floor **floor_look; - - vorbis_look_residue **residue_look; - vorbis_look_psy *psy_look; - - vorbis_func_time **time_func; - vorbis_func_floor **floor_func; - vorbis_func_residue **residue_func; - - int ch; - long lastframe; /* if a different mode is called, we need to - invalidate decay */ -} vorbis_look_mapping0; - -static vorbis_info_mapping *mapping0_copy_info(vorbis_info_mapping *vm){ - vorbis_info_mapping0 *info=(vorbis_info_mapping0 *)vm; - vorbis_info_mapping0 *ret=_ogg_malloc(sizeof(vorbis_info_mapping0)); - memcpy(ret,info,sizeof(vorbis_info_mapping0)); - return(ret); -} - -static void mapping0_free_info(vorbis_info_mapping *i){ - if(i){ - memset(i,0,sizeof(vorbis_info_mapping0)); - _ogg_free(i); - } -} - -static void mapping0_free_look(vorbis_look_mapping *look){ - int i; - vorbis_look_mapping0 *l=(vorbis_look_mapping0 *)look; - if(l){ - drft_clear(&l->fft_look); - - for(i=0;i<l->map->submaps;i++){ - l->time_func[i]->free_look(l->time_look[i]); - l->floor_func[i]->free_look(l->floor_look[i]); - l->residue_func[i]->free_look(l->residue_look[i]); - if(l->psy_look)_vp_psy_clear(l->psy_look+i); - } - - _ogg_free(l->time_func); - _ogg_free(l->floor_func); - _ogg_free(l->residue_func); - _ogg_free(l->time_look); - _ogg_free(l->floor_look); - _ogg_free(l->residue_look); - if(l->psy_look)_ogg_free(l->psy_look); - memset(l,0,sizeof(vorbis_look_mapping0)); - _ogg_free(l); - } -} - -static vorbis_look_mapping *mapping0_look(vorbis_dsp_state *vd,vorbis_info_mode *vm, - vorbis_info_mapping *m){ - int i; - vorbis_info *vi=vd->vi; - codec_setup_info *ci=vi->codec_setup; - vorbis_look_mapping0 *look=_ogg_calloc(1,sizeof(vorbis_look_mapping0)); - vorbis_info_mapping0 *info=look->map=(vorbis_info_mapping0 *)m; - look->mode=vm; - - look->time_look=_ogg_calloc(info->submaps,sizeof(vorbis_look_time *)); - look->floor_look=_ogg_calloc(info->submaps,sizeof(vorbis_look_floor *)); - - look->residue_look=_ogg_calloc(info->submaps,sizeof(vorbis_look_residue *)); - if(ci->psys)look->psy_look=_ogg_calloc(info->submaps,sizeof(vorbis_look_psy)); - - look->time_func=_ogg_calloc(info->submaps,sizeof(vorbis_func_time *)); - look->floor_func=_ogg_calloc(info->submaps,sizeof(vorbis_func_floor *)); - look->residue_func=_ogg_calloc(info->submaps,sizeof(vorbis_func_residue *)); - - for(i=0;i<info->submaps;i++){ - int timenum=info->timesubmap[i]; - int floornum=info->floorsubmap[i]; - int resnum=info->residuesubmap[i]; - - look->time_func[i]=_time_P[ci->time_type[timenum]]; - look->time_look[i]=look->time_func[i]-> - look(vd,vm,ci->time_param[timenum]); - look->floor_func[i]=_floor_P[ci->floor_type[floornum]]; - look->floor_look[i]=look->floor_func[i]-> - look(vd,vm,ci->floor_param[floornum]); - look->residue_func[i]=_residue_P[ci->residue_type[resnum]]; - look->residue_look[i]=look->residue_func[i]-> - look(vd,vm,ci->residue_param[resnum]); - - if(ci->psys && vd->analysisp){ - int psynum=info->psysubmap[i]; - _vp_psy_init(look->psy_look+i,ci->psy_param[psynum], - ci->blocksizes[vm->blockflag]/2,vi->rate); - } - } - - look->ch=vi->channels; - - if(vd->analysisp)drft_init(&look->fft_look,ci->blocksizes[vm->blockflag]); - return(look); -} - -static int ilog2(unsigned int v){ - int ret=0; - while(v>1){ - ret++; - v>>=1; - } - return(ret); -} - -static void mapping0_pack(vorbis_info *vi,vorbis_info_mapping *vm,oggpack_buffer *opb){ - int i; - vorbis_info_mapping0 *info=(vorbis_info_mapping0 *)vm; - - /* another 'we meant to do it this way' hack... up to beta 4, we - packed 4 binary zeros here to signify one submapping in use. We - now redefine that to mean four bitflags that indicate use of - deeper features; bit0:submappings, bit1:coupling, - bit2,3:reserved. This is backward compatable with all actual uses - of the beta code. */ - - if(info->submaps>1){ - oggpack_write(opb,1,1); - oggpack_write(opb,info->submaps-1,4); - }else - oggpack_write(opb,0,1); - - if(info->coupling_steps>0){ - oggpack_write(opb,1,1); - oggpack_write(opb,info->coupling_steps-1,8); - - for(i=0;i<info->coupling_steps;i++){ - oggpack_write(opb,info->coupling_mag[i],ilog2(vi->channels)); - oggpack_write(opb,info->coupling_ang[i],ilog2(vi->channels)); - } - }else - oggpack_write(opb,0,1); - - oggpack_write(opb,0,2); /* 2,3:reserved */ - - /* we don't write the channel submappings if we only have one... */ - if(info->submaps>1){ - for(i=0;i<vi->channels;i++) - oggpack_write(opb,info->chmuxlist[i],4); - } - for(i=0;i<info->submaps;i++){ - oggpack_write(opb,info->timesubmap[i],8); - oggpack_write(opb,info->floorsubmap[i],8); - oggpack_write(opb,info->residuesubmap[i],8); - } -} - -/* also responsible for range checking */ -static vorbis_info_mapping *mapping0_unpack(vorbis_info *vi,oggpack_buffer *opb){ - int i; - vorbis_info_mapping0 *info=_ogg_calloc(1,sizeof(vorbis_info_mapping0)); - codec_setup_info *ci=vi->codec_setup; - memset(info,0,sizeof(vorbis_info_mapping0)); - - if(oggpack_read(opb,1)) - info->submaps=oggpack_read(opb,4)+1; - else - info->submaps=1; - - if(oggpack_read(opb,1)){ - info->coupling_steps=oggpack_read(opb,8)+1; - - for(i=0;i<info->coupling_steps;i++){ - int testM=info->coupling_mag[i]=oggpack_read(opb,ilog2(vi->channels)); - int testA=info->coupling_ang[i]=oggpack_read(opb,ilog2(vi->channels)); - - if(testM<0 || - testA<0 || - testM==testA || - testM>=vi->channels || - testA>=vi->channels) goto err_out; - } - - } - - if(oggpack_read(opb,2)>0)goto err_out; /* 2,3:reserved */ - - if(info->submaps>1){ - for(i=0;i<vi->channels;i++){ - info->chmuxlist[i]=oggpack_read(opb,4); - if(info->chmuxlist[i]>=info->submaps)goto err_out; - } - } - for(i=0;i<info->submaps;i++){ - info->timesubmap[i]=oggpack_read(opb,8); - if(info->timesubmap[i]>=ci->times)goto err_out; - info->floorsubmap[i]=oggpack_read(opb,8); - if(info->floorsubmap[i]>=ci->floors)goto err_out; - info->residuesubmap[i]=oggpack_read(opb,8); - if(info->residuesubmap[i]>=ci->residues)goto err_out; - } - - return info; - - err_out: - mapping0_free_info(info); - return(NULL); -} - -#include "os.h" -#include "lpc.h" -#include "lsp.h" -#include "envelope.h" -#include "mdct.h" -#include "psy.h" -#include "scales.h" - -/* no time mapping implementation for now */ -static long seq=0; -static int mapping0_forward(vorbis_block *vb,vorbis_look_mapping *l){ - vorbis_dsp_state *vd=vb->vd; - vorbis_info *vi=vd->vi; - backend_lookup_state *b=vb->vd->backend_state; - vorbis_look_mapping0 *look=(vorbis_look_mapping0 *)l; - vorbis_info_mapping0 *info=look->map; - vorbis_info_mode *mode=look->mode; - vorbis_block_internal *vbi=(vorbis_block_internal *)vb->internal; - int n=vb->pcmend; - int i,j; - float *window=b->window[vb->W][vb->lW][vb->nW][mode->windowtype]; - - float **pcmbundle=alloca(sizeof(float *)*vi->channels); - int *zerobundle=alloca(sizeof(int)*vi->channels); - - int *nonzero=alloca(sizeof(int)*vi->channels); - - float *work=_vorbis_block_alloc(vb,n*sizeof(float)); - float newmax=vbi->ampmax; - - for(i=0;i<vi->channels;i++){ - float scale=4.f/n; - int submap=info->chmuxlist[i]; - float ret; - - /* the following makes things clearer to *me* anyway */ - float *pcm =vb->pcm[i]; - float *mdct =pcm; - float *logmdct =pcm+n/2; - float *res =pcm; - float *codedflr=pcm+n/2; - float *fft =work; - float *logfft =work; - float *logmax =work; - float *logmask =work+n/2; - - /* window the PCM data */ - for(j=0;j<n;j++) - fft[j]=pcm[j]*=window[j]; - - /* transform the PCM data */ - /* only MDCT right now.... */ - mdct_forward(b->transform[vb->W][0],pcm,pcm); - for(j=0;j<n/2;j++) - logmdct[j]=todB(mdct+j); - - /* FFT yields more accurate tonal estimation (not phase sensitive) */ - drft_forward(&look->fft_look,fft); - fft[0]*=scale; - fft[0]=todB(fft); - for(j=1;j<n-1;j+=2){ - float temp=scale*FAST_HYPOT(fft[j],fft[j+1]); - logfft[(j+1)>>1]=todB(&temp); - } - - _analysis_output("fft",seq,logfft,n/2,0,0); - _analysis_output("mdct",seq,logmdct,n/2,0,0); - - /* perform psychoacoustics; do masking */ - ret=_vp_compute_mask(look->psy_look+submap, - logfft, /* -> logmax */ - logmdct, - logmask, - vbi->ampmax); - if(ret>newmax)newmax=ret; - - _analysis_output("mask",seq,logmask,n/2,0,0); - - /* perform floor encoding */ - nonzero[i]=look->floor_func[submap]-> - forward(vb,look->floor_look[submap], - mdct, - logmdct, - logmask, - logmax, - res, - codedflr); - - /*for(j=0;j<n/2;j++) - if(fabs(vb->pcm[i][j]>200)) - fprintf(stderr,"%ld ",seq);*/ - - _analysis_output("res",seq-vi->channels+j,vb->pcm[i],n,0,0); - _analysis_output("codedflr",seq++,codedflr,n/2,0,1); - - } - - vbi->ampmax=newmax; - - /* channel coupling */ - for(i=0;i<info->coupling_steps;i++){ - if(nonzero[info->coupling_mag[i]] || - nonzero[info->coupling_ang[i]]){ - - float *pcmM=vb->pcm[info->coupling_mag[i]]; - float *pcmA=vb->pcm[info->coupling_ang[i]]; - - /* +- - B - | A-B - -4 -3 -2 -1 0 - | - 3 | 1 - | - -+ 2-----+-----2----A ++ - | - 1 | 3 - | - 0 -1 -2 -3 -4 - B-A | - -- - - */ - - nonzero[info->coupling_mag[i]]=1; - nonzero[info->coupling_ang[i]]=1; - - for(j=n/2-1;j>=0;j--){ - float A=rint(pcmM[j]); - float B=rint(pcmA[j]); - float mag; - float ang; - - if(fabs(A)>fabs(B)){ - mag=A; - if(A>0) - ang=A-B; - else - ang=B-A; - }else{ - mag=B; - if(B>0) - ang=A-B; - else - ang=B-A; - } - - /*if(fabs(mag)<3.5f) - ang=rint(ang/(mag*2.f))*mag*2.f;*/ - - /*if(fabs(mag)<1.5) - ang=0; - - if(j>(n*3/16)) - ang=0; - - if(ang>=fabs(mag*2))ang=-fabs(mag*2);*/ - - pcmM[j]=mag; - pcmA[j]=ang; - } - } - } - - /* perform residue encoding with residue mapping; this is - multiplexed. All the channels belonging to one submap are - encoded (values interleaved), then the next submap, etc */ - - for(i=0;i<info->submaps;i++){ - int ch_in_bundle=0; - for(j=0;j<vi->channels;j++){ - if(info->chmuxlist[j]==i){ - if(nonzero[j]) - zerobundle[ch_in_bundle]=1; - else - zerobundle[ch_in_bundle]=0; - pcmbundle[ch_in_bundle++]=vb->pcm[j]; - } - } - - look->residue_func[i]->forward(vb,look->residue_look[i], - pcmbundle,zerobundle,ch_in_bundle); - } - - look->lastframe=vb->sequence; - return(0); -} - -static int mapping0_inverse(vorbis_block *vb,vorbis_look_mapping *l){ - vorbis_dsp_state *vd=vb->vd; - vorbis_info *vi=vd->vi; - codec_setup_info *ci=vi->codec_setup; - backend_lookup_state *b=vd->backend_state; - vorbis_look_mapping0 *look=(vorbis_look_mapping0 *)l; - vorbis_info_mapping0 *info=look->map; - vorbis_info_mode *mode=look->mode; - int i,j; - long n=vb->pcmend=ci->blocksizes[vb->W]; - - float *window=b->window[vb->W][vb->lW][vb->nW][mode->windowtype]; - float **pcmbundle=alloca(sizeof(float *)*vi->channels); - int *zerobundle=alloca(sizeof(int)*vi->channels); - - int *nonzero =alloca(sizeof(int)*vi->channels); - void **floormemo=alloca(sizeof(void *)*vi->channels); - - /* time domain information decode (note that applying the - information would have to happen later; we'll probably add a - function entry to the harness for that later */ - /* NOT IMPLEMENTED */ - - /* recover the spectral envelope; store it in the PCM vector for now */ - for(i=0;i<vi->channels;i++){ - int submap=info->chmuxlist[i]; - floormemo[i]=look->floor_func[submap]-> - inverse1(vb,look->floor_look[submap]); - if(floormemo[i]) - nonzero[i]=1; - else - nonzero[i]=0; - memset(vb->pcm[i],0,sizeof(float)*n/2); - } - - /* channel coupling can 'dirty' the nonzero listing */ - for(i=0;i<info->coupling_steps;i++){ - if(nonzero[info->coupling_mag[i]] || - nonzero[info->coupling_ang[i]]){ - nonzero[info->coupling_mag[i]]=1; - nonzero[info->coupling_ang[i]]=1; - } - } - - /* recover the residue into our working vectors */ - for(i=0;i<info->submaps;i++){ - int ch_in_bundle=0; - for(j=0;j<vi->channels;j++){ - if(info->chmuxlist[j]==i){ - if(nonzero[j]) - zerobundle[ch_in_bundle]=1; - else - zerobundle[ch_in_bundle]=0; - pcmbundle[ch_in_bundle++]=vb->pcm[j]; - } - } - - look->residue_func[i]->inverse(vb,look->residue_look[i], - pcmbundle,zerobundle,ch_in_bundle); - } - - /* channel coupling */ - for(i=info->coupling_steps-1;i>=0;i--){ - float *pcmM=vb->pcm[info->coupling_mag[i]]; - float *pcmA=vb->pcm[info->coupling_ang[i]]; - - for(j=0;j<n/2;j++){ - float mag=pcmM[j]; - float ang=pcmA[j]; - - if(mag>0) - if(ang>0){ - pcmM[j]=mag; - pcmA[j]=mag-ang; - }else{ - pcmA[j]=mag; - pcmM[j]=mag+ang; - } - else - if(ang>0){ - pcmM[j]=mag; - pcmA[j]=mag+ang; - }else{ - pcmA[j]=mag; - pcmM[j]=mag-ang; - } - } - } - - /* compute and apply spectral envelope */ - for(i=0;i<vi->channels;i++){ - float *pcm=vb->pcm[i]; - int submap=info->chmuxlist[i]; - look->floor_func[submap]-> - inverse2(vb,look->floor_look[submap],floormemo[i],pcm); - } - - /* transform the PCM data; takes PCM vector, vb; modifies PCM vector */ - /* only MDCT right now.... */ - for(i=0;i<vi->channels;i++){ - float *pcm=vb->pcm[i]; - _analysis_output("out",seq+i,pcm,n/2,0,1); - mdct_backward(b->transform[vb->W][0],pcm,pcm); - } - - /* window the data */ - for(i=0;i<vi->channels;i++){ - float *pcm=vb->pcm[i]; - if(nonzero[i]) - for(j=0;j<n;j++) - pcm[j]*=window[j]; - else - for(j=0;j<n;j++) - pcm[j]=0.f; - _analysis_output("final",seq++,pcm,n,0,0); - } - - /* now apply the decoded post-window time information */ - /* NOT IMPLEMENTED */ - - /* all done! */ - return(0); -} - -/* export hooks */ -vorbis_func_mapping mapping0_exportbundle={ - &mapping0_pack,&mapping0_unpack,&mapping0_look,&mapping0_copy_info, - &mapping0_free_info,&mapping0_free_look,&mapping0_forward,&mapping0_inverse -}; diff --git a/lib/masking.h b/lib/masking.h deleted file mode 100644 index eb19c073..00000000 --- a/lib/masking.h +++ /dev/null @@ -1,243 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: masking curve data for psychoacoustics - last mod: $Id: masking.h,v 1.17 2001/06/18 09:07:31 xiphmont Exp $ - - ********************************************************************/ - -#ifndef _V_MASKING_H_ -#define _V_MASKING_H_ - -/* Not really an ATH, more a bottom curve to limit LSP dynamic range */ -static float ATH_Bark_dB_lspconservative[]={ - 15, 15, 15, 15, 11, 10, 8, 7, 7, 7, - 6, 2, 0, 0, -3, -5, -6, -6, -4.5f, 2.5f, - 10, 15, 15, 15, 15, 15, 15}; - -/* The below masking curves are straight from the R. Ehmer - (J. Acoustical Society of America) papers ca 1958-59. I modified - them slightly as Ehmer does not correct for the Absolute Threshold - of Hearing, and the low dB portions of the curves are thus highly - suspect. */ - -/* Let's all do the Trek thing and just call them 'Ehmer curves' ;-) - Note these are octaves, not Bark scale. */ - -#define EHMER_OFFSET 16 -#define EHMER_MAX 56 - -static float tone_125_40dB_SL[EHMER_MAX]={ - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 18, 16, 14, 12, 11, 9, 7, 5, 3, 2, 0, -2, -4, -6, -8, - -10, -12, -14, -16, -18, -20, -23, -25, -28,-30,-34,-37,-40,-44,-48,-52, --900,-900,-900,-900,-900,-900,-900,-900}; -static float tone_125_60dB_SL[EHMER_MAX]={ - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 38, 36, 34, 32, 31, 29, 27, 25, 23, 22, 20, 18, 16, 14, 12, - 10, 8, 6, 4, 2, 0, -3, -5, -8,-10,-14,-17,-20,-24,-28,-32, --900,-900,-900,-900,-900,-900,-900,-900}; -static float tone_125_80dB_SL[EHMER_MAX]={ - 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, - 60, 58, 56, 54, 52, 51, 49, 47, 45, 43, 42, 40, 38, 36, 34, 32, - 30, 28, 26, 24, 22, 20, 17, 15, 12, 10, 6, 3, 0, -4, -8,-12, --900,-900,-900,-900,-900,-900,-900,-900}; -static float tone_125_100dB_SL[EHMER_MAX]={ - 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, - 78, 77, 75, 74, 73, 72, 71, 70, 69, 68, 67, 65, 64, 63, 62, 60, - 58, 57, 55, 54, 52, 50, 48, 46, 44, 42, 40, 38, 36, 34, 31, 29, - 27, 24, 22, 20, 18, 15, 13, 11}; - -static float tone_250_40dB_SL[EHMER_MAX]={ --900,-900,-900,-900,-900,-900,-900,-900, -19, -13, -7, -1, 4, 9, 15, 20, - 22, 23, 22, 19, 18, 18, 16, 13, 9, 7, 3, 1, -1, -3, -6, -8, - -10, -13, -16, -19, -21, -24, -28, -32, -900,-900,-900,-900,-900,-900,-900,-900, --900,-900,-900,-900,-900,-900,-900,-900}; -static float tone_250_60dB_SL[EHMER_MAX]={ --900,-900,-900,-900,-900,-900,-900, -10, -5, 1, 7, 13, 19, 25, 30, 33, - 36, 39, 38, 37, 38, 39, 39, 40, 38, 36, 35, 34, 33, 31, 29, 28, - 28, 28, 25, 20, 14, 10, 5, 0, -5,-10,-15,-20,-25,-30,-35,-40, --900,-900,-900,-900,-900,-900,-900,-900}; -static float tone_250_80dB_SL[EHMER_MAX]={ --900,-900,-900,-900,-900,-900,-900, -10, 10, 17, 24, 30, 37, 41, 48, 49, - 50, 53, 54, 53, 53, 54, 55, 57, 57, 57, 58, 59, 60, 58, 57, 58, - 59, 58, 57, 54, 52, 50, 49, 47, 46, 47, 46, 44, 43, 42, 41, 40, - 38, 32, 27, 22, 17, 11, 6, 0}; -/* no data, just interpolated from 80 */ -static float tone_250_100dB_SL[EHMER_MAX]={ --900,-900,-900,-900,-900,-900,-900, -10, 15, 25, 34, 40, 50, 56, 60, 70, - 70, 73, 74, 73, 73, 74, 75, 77, 77, 77, 78, 79, 80, 78, 77, 78, - 79, 78, 77, 74, 72, 70, 69, 67, 66, 67, 66, 64, 63, 62, 61, 60, - 58, 52, 47, 42, 37, 31, 26, 20}; - -static float tone_500_40dB_SL[EHMER_MAX]={ --900,-900,-900,-900,-900,-900,-900, -40, -26, -20, -14, -8, -2, 4, 10, 17, - 23, 16, 12, 9, 6, 3, 0, -3, -7, -10, -13, -16, -20, -23, -26, -30, --900,-900,-900,-900,-900,-900,-900,-900, -900,-900,-900,-900,-900,-900,-900,-900, --900,-900,-900,-900,-900,-900,-900,-900}; -static float tone_500_60dB_SL[EHMER_MAX]={ --900,-900,-900,-900,-900,-900,-900,-900, -18, -12, -6, 0, 6, 13, 20, 30, - 39, 34, 31, 29, 29, 27, 24, 21, 18, 16, 13, 8, 6, 3, 1, -1, - -5, -2, -5, -8, -12, -15, -18, -22, -900,-900,-900,-900,-900,-900,-900,-900, --900,-900,-900,-900,-900,-900,-900,-900}; -static float tone_500_80dB_SL[EHMER_MAX]={ --900,-900,-900,-900,-900,-900,-900,-900, -22,-16,-10, 0, 10, 20, 32, 43, - 53, 52, 52, 50, 49, 50, 52, 55, 55, 54, 51, 49, 46, 44, 44, 42, - 38, 34, 32, 29, 29, 28, 25, 23, 20, 16, 10, 7, 4, 2, -1, -4, - -7, -10, -15, -20, -25, -30, -35, -40}; -static float tone_500_100dB_SL[EHMER_MAX]={ --900,-900,-900,-900,-900,-900,-900, -10, -7, 2, 10, 19, 27, 35, 55, 56, - 62, 61, 60, 58, 57, 57, 59, 63, 65, 66, 62, 60, 57, 57, 58, 58, - 57, 56, 56, 56, 57, 57, 56, 57, 57, 54, 47, 41, 37, 28, 21, 16, - 10, 3, -3, -8, -13, -18, -23, -28}; - -static float tone_1000_40dB_SL[EHMER_MAX]={ --900,-900,-900,-900,-900,-900,-900,-900, -55, -40, -30, -20, -10, 0, 9, 20, - 27, 20, 13, 14, 13, 5, -1, -6, -11, -20, -30,-900,-900,-900,-900,-900, --900,-900,-900,-900,-900,-900,-900,-900, -900,-900,-900,-900,-900,-900,-900,-900, --900,-900,-900,-900,-900,-900,-900,-900}; -static float tone_1000_60dB_SL[EHMER_MAX]={ --900,-900,-900,-900,-900,-900,-900, -43, -33,-23,-13, -3, 7, 17, 25, 37, - 42, 33, 25, 25, 23, 18, 13, 9, 4, -1, -7,-13,-18, -23, -28, -33, --900,-900,-900,-900,-900,-900,-900,-900, -900,-900,-900,-900,-900,-900,-900,-900, --900,-900,-900,-900,-900,-900,-900,-900}; -static float tone_1000_80dB_SL[EHMER_MAX]={ --900,-900,-900,-900,-900,-900,-900, -35, -25,-14, -4, 6, 16, 27, 33, 50, - 59, 57, 47, 41, 40, 43, 47, 48, 47, 42, 39, 37, 37, 36, 35, 32, - 30, 27, 21, 15, 5, -2, -10, -18, -900,-900,-900,-900,-900,-900,-900,-900, --900,-900,-900,-900,-900,-900,-900,-900}; -static float tone_1000_100dB_SL[EHMER_MAX]={ --900,-900,-900,-900,-900,-900, -40, -30, -20,-10, 0, 10, 23, 33, 45, 60, - 70, 72, 55, 49, 43, 40, 44, 54, 59, 58, 49, 43, 52, 57, 57, 58, - 58, 54, 49, 47, 42, 39, 33, 28, 20, 15, 5, 0, -5,-15,-20,-25, --900,-900,-900,-900,-900,-900,-900,-900}; - -static float tone_2000_40dB_SL[EHMER_MAX]={ --900,-900,-900,-900,-900,-900,-900,-900, -40, -30, -21, -12, -3, 5, 12, 20, - 24, 21, 14, 5, -5, -15, -25, -35, -900,-900,-900,-900,-900,-900,-900,-900, --900,-900,-900,-900,-900,-900,-900,-900, -900,-900,-900,-900,-900,-900,-900,-900, --900,-900,-900,-900,-900,-900,-900,-900}; -static float tone_2000_60dB_SL[EHMER_MAX]={ --900,-900,-900,-900,-900,-900,-900,-900, -40, -30, -21, -12, -2, 8, 19, 31, - 38, 34, 24, 17, 14, 13, 11, 7, 3, -2, -6, -10, -14, -20, -26, -32, --900,-900,-900,-900,-900,-900,-900,-900, -900,-900,-900,-900,-900,-900,-900,-900, --900,-900,-900,-900,-900,-900,-900,-900}; -static float tone_2000_80dB_SL[EHMER_MAX]={ --900,-900,-900,-900,-900,-900,-900,-900, -40, -30, -21, -12, -2, 13, 28, 40, - 51, 51, 43, 35, 28, 29, 35, 37, 37, 35, 31, 28, 25, 22, 19, 15, - 11, 8, 6, 2, -6, -14, -22, -30, -900,-900,-900,-900,-900,-900,-900,-900, --900,-900,-900,-900,-900,-900,-900,-900}; -static float tone_2000_100dB_SL[EHMER_MAX]={ --900,-900,-900,-900,-900,-900,-900,-900, -40, -30, -21, -10, 6, 25, 42, 60, - 66, 60, 53, 43, 35, 31, 34, 47, 58, 51, 43, 45, 54, 59, 59, 56, - 54, 51, 40, 29, 20, 11, 2, -8, -17, -26, -35,-900,-900,-900,-900,-900, --900,-900,-900,-900,-900,-900,-900,-900}; - -static float tone_4000_40dB_SL[EHMER_MAX]={ --900,-900,-900,-900,-900,-900,-900,-900, -40, -30, -21, -12, 0, 3, 10, 18, - 24, 21, 14, 5, -5, -15, -25, -35, -900,-900,-900,-900,-900,-900,-900,-900, --900,-900,-900,-900,-900,-900,-900,-900, -900,-900,-900,-900,-900,-900,-900,-900, --900,-900,-900,-900,-900,-900,-900,-900}; - -static float tone_4000_60dB_SL[EHMER_MAX]={ --900,-900,-900,-900,-900,-900,-900,-900, -40, -30, -21, -12, -2, 8, 19, 31, - 38, 33, 28, 23, 19, 14, 11, 8, 3, -2, -7, -12, -17, -22, -27, -37, --900,-900,-900,-900,-900,-900,-900,-900, -900,-900,-900,-900,-900,-900,-900,-900, --900,-900,-900,-900,-900,-900,-900,-900}; - -static float tone_4000_80dB_SL[EHMER_MAX]={ --900,-900,-900,-900,-900,-900,-900,-900, -60, -50, -40, -29, -12, 5, 19, 37, - 51, 49, 40, 35, 36, 36, 36, 33, 32, 24, 18, 8, -3, -12, -20, -29, --900,-900,-900,-900,-900,-900,-900,-900, -900,-900,-900,-900,-900,-900,-900,-900, --900,-900,-900,-900,-900,-900,-900,-900}; - -static float tone_4000_100dB_SL[EHMER_MAX]={ - -20, -12, -8, -4, 0, 4, 8, 11, 15, 22, 26, 28, 32, 36, 43, 52, - 62, 59, 50, 48, 50, 50, 45, 36, 45, 30, 20, 10, 0, -10, -19, -28, - -37,-900,-900,-900,-900,-900,-900,-900, -900,-900,-900,-900,-900,-900,-900,-900, --900,-900,-900,-900,-900,-900,-900,-900}; - - -static float tone_8000_40dB_SL[EHMER_MAX]={ --900,-900,-900,-900,-900,-900,-900,-900, -40, -30, -21, -12, 0, 3, 10, 18, - 24, 21, 14, 5, 0, 0, 5, 10, 15, 25, 30, 45, 50, 55, 60, 65, - 70, 75, 80, 85, 90, 95, 100, 100, -900,-900,-900,-900,-900,-900,-900,-900, --900,-900,-900,-900,-900,-900,-900,-900}; -static float tone_8000_60dB_SL[EHMER_MAX]={ --900,-900,-900,-900,-900,-900,-900, -10, -21, -18, -14, -10, 0, 3, 15, 30, - 43, 40, 36, 35, 36, 38, 41, 43, 45, 47, 50, 55, 60, 65, 70, 75, - 80, 85, 90, 95, 100, 100, 100, 100, -900,-900,-900,-900,-900,-900,-900,-900, - -900,-900,-900,-900,-900,-900,-900,-900}; -static float tone_8000_80dB_SL[EHMER_MAX]={ --900,-900,-900,-900,-900,-900,-900, -10, -1, 2, 6, 10, 13, 19, 25, 35, - 63, 55, 50, 48, 46, 45, 45, 50, 55, 65, 75, 80, 85, 90, 95, 100, - 100, 100, 100, 100,-900,-900,-900,-900, -900,-900,-900,-900,-900,-900,-900,-900, - -900,-900,-900,-900,-900,-900,-900,-900}; -static float tone_8000_100dB_SL[EHMER_MAX]={ - -18, -12, -7, -3, 0, 2, 6, 9, 12, 19, 22, 21, 19, 21, 40, 40, - 80, 60, 35, 25, 15, 5, 5, 5, 25, 30, 35, 43, 50, 55, 60, 65, - 70, 75, 80, 85, 90, 95, 100, 100, -900,-900,-900,-900,-900,-900,-900,-900, - -900,-900,-900,-900,-900,-900,-900,-900}; - -#if 0 /* not used for the time being */ -static float noise_500_60dB_SL[EHMER_MAX]={ --900,-900,-900,-900,-900, -20, -11, -2, 7, 16, 25, 34, 43, 52, 61, 66, - 69, 68, 58, 50, 44, 38, 32, 28, 25, 24, 20, 18, 17, 12, 10, 8, - 5, 0, -5, -8, -12, -15, -18, -22, -900,-900,-900,-900,-900,-900,-900,-900, --900,-900,-900,-900,-900,-900,-900,-900}; - -static float noise_500_80dB_SL[EHMER_MAX]={ --900,-900,-900, -20, -10, -1, 8, 17, 26, 35, 44, 53, 62, 70, 79, 83, - 85, 85, 81, 77, 74, 71, 68, 63, 61, 59, 56, 55, 54, 52, 48, 47, - 45, 46, 45, 43, 40, 37, 33, 32, 35, 32, 30, 29, 20, 10, 0, -10, - -20, -30,-900,-900,-900,-900,-900,-900}; - -static float noise_1000_60dB_SL[EHMER_MAX]={ --900,-900,-900,-900, -24, -15, -6, 3, 12, 21, 28, 34, 40, 48, 57, 60, - 61, 56, 54, 45, 36, 27, 21, 19, 17, 13, 10, 0, -10, -20, -20,-900, --900,-900,-900,-900,-900,-900,-900,-900, -900,-900,-900,-900,-900,-900,-900,-900, --900,-900,-900,-900,-900,-900,-900,-900}; - -static float noise_1000_80dB_SL[EHMER_MAX]={ --900, -26, -17, -8, 1, 10, 19, 28, 37, 41, 46, 51, 58, 68, 74, 81, - 80, 81, 70, 66, 58, 61, 59, 55, 54, 53, 52, 49, 48, 42, 38, 38, - 39, 34, 30, 27, 20, 10, 0, -10, -20, -30,-900,-900,-900,-900,-900,-900, --900,-900,-900,-900,-900,-900,-900,-900}; - -static float noise_2000_60dB_SL[EHMER_MAX]={ --900,-900,-900, -34, -25, -16, -7, 2, 11, 18, 23, 30, 35, 42, 51, 58, - 58, 57, 50, 40,-900,-900,-900,-900, -900,-900,-900,-900,-900,-900,-900,-900, --900,-900,-900,-900,-900,-900,-900,-900, -900,-900,-900,-900,-900,-900,-900,-900, --900,-900,-900,-900,-900,-900,-900,-900}; - -static float noise_2000_80dB_SL[EHMER_MAX]={ --900, -26, -17, -8, 1, 10, 19, 28, 33, 38, 43, 48, 53, 62, 70, 77, - 77, 75, 70, 67, 68, 66, 62, 61, 60, 59, 52, 47, 39, 35, 34, 35, - 35, 33, 30, 27, 20, 10, 0, -10, -20, -30,-900,-900,-900,-900,-900,-900, --900,-900,-900,-900,-900,-900,-900,-900}; - -static float noise_4000_60dB_SL[EHMER_MAX]={ --900,-900,-900, -34, -25, -16, -7, 2, 11, 20, 25, 31, 37, 45, 56, 62, - 64, 61,-900,-900,-900,-900,-900,-900, -900,-900,-900,-900,-900,-900,-900,-900, --900,-900,-900,-900,-900,-900,-900,-900, -900,-900,-900,-900,-900,-900,-900,-900, --900,-900,-900,-900,-900,-900,-900,-900}; - -static float noise_4000_80dB_SL[EHMER_MAX]={ --900, -26, -17, -8, 1, 10, 19, 26, 33, 39, 45, 50, 55, 65, 75, 82, - 84, 81, 78, 72, 70, 69, 66, 61, 50, 48, 46, 40, 35, 30, 25, 20, - 15, 10, 5, 0, -10, -20, -30,-900, -900,-900,-900,-900,-900,-900,-900,-900, --900,-900,-900,-900,-900,-900,-900,-900}; - -#endif -#endif - - diff --git a/lib/mdct.c b/lib/mdct.c deleted file mode 100644 index c145e9cc..00000000 --- a/lib/mdct.c +++ /dev/null @@ -1,568 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: normalized modified discrete cosine transform - power of two length transform only [64 <= n ] - last mod: $Id: mdct.c,v 1.25 2001/02/26 03:50:42 xiphmont Exp $ - - Original algorithm adapted long ago from _The use of multirate filter - banks for coding of high quality digital audio_, by T. Sporer, - K. Brandenburg and B. Edler, collection of the European Signal - Processing Conference (EUSIPCO), Amsterdam, June 1992, Vol.1, pp - 211-214 - - The below code implements an algorithm that no longer looks much like - that presented in the paper, but the basic structure remains if you - dig deep enough to see it. - - This module DOES NOT INCLUDE code to generate/apply the window - function. Everybody has their own weird favorite including me... I - happen to like the properties of y=sin(2PI*sin^2(x)), but others may - vehemently disagree. - - ********************************************************************/ - -/* this can also be run as an integer transform by uncommenting a - define in mdct.h; the integerization is a first pass and although - it's likely stable for Vorbis, the dynamic range is constrained and - roundoff isn't done (so it's noisy). Consider it functional, but - only a starting point. There's no point on a machine with an FPU */ - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <math.h> -#include "vorbis/codec.h" -#include "mdct.h" -#include "os.h" - -/* build lookups for trig functions; also pre-figure scaling and - some window function algebra. */ - -void mdct_init(mdct_lookup *lookup,int n){ - int *bitrev=_ogg_malloc(sizeof(int)*(n/4)); - DATA_TYPE *T=_ogg_malloc(sizeof(DATA_TYPE)*(n+n/4)); - - int i; - int n2=n>>1; - int log2n=lookup->log2n=rint(log(n)/log(2)); - lookup->n=n; - lookup->trig=T; - lookup->bitrev=bitrev; - -/* trig lookups... */ - - for(i=0;i<n/4;i++){ - T[i*2]=FLOAT_CONV(cos((M_PI/n)*(4*i))); - T[i*2+1]=FLOAT_CONV(-sin((M_PI/n)*(4*i))); - T[n2+i*2]=FLOAT_CONV(cos((M_PI/(2*n))*(2*i+1))); - T[n2+i*2+1]=FLOAT_CONV(sin((M_PI/(2*n))*(2*i+1))); - } - for(i=0;i<n/8;i++){ - T[n+i*2]=FLOAT_CONV(cos((M_PI/n)*(4*i+2))*.5); - T[n+i*2+1]=FLOAT_CONV(-sin((M_PI/n)*(4*i+2))*.5); - } - - /* bitreverse lookup... */ - - { - int mask=(1<<(log2n-1))-1,i,j; - int msb=1<<(log2n-2); - for(i=0;i<n/8;i++){ - int acc=0; - for(j=0;msb>>j;j++) - if((msb>>j)&i)acc|=1<<j; - bitrev[i*2]=((~acc)&mask)-1; - bitrev[i*2+1]=acc; - - } - } - lookup->scale=FLOAT_CONV(4.f/n); -} - -/* 8 point butterfly (in place, 4 register) */ -STIN void mdct_butterfly_8(DATA_TYPE *x){ - REG_TYPE r0 = x[6] + x[2]; - REG_TYPE r1 = x[6] - x[2]; - REG_TYPE r2 = x[4] + x[0]; - REG_TYPE r3 = x[4] - x[0]; - - r0 = x[6] + x[2]; - r1 = x[6] - x[2]; - r2 = x[4] + x[0]; - r3 = x[4] - x[0]; - - x[6] = r0 + r2; - x[4] = r0 - r2; - - r0 = x[5] - x[1]; - r2 = x[7] - x[3]; - x[0] = r1 + r0; - x[2] = r1 - r0; - - r0 = x[5] + x[1]; - r1 = x[7] + x[3]; - x[3] = r2 + r3; - x[1] = r2 - r3; - x[7] = r1 + r0; - x[5] = r1 - r0; - -} - -/* 16 point butterfly (in place, 4 register) */ -STIN void mdct_butterfly_16(DATA_TYPE *x){ - REG_TYPE r0 = x[1] - x[9]; - REG_TYPE r1 = x[0] - x[8]; - - x[8] += x[0]; - x[9] += x[1]; - x[0] = MULT_NORM((r0 + r1) * cPI2_8); - x[1] = MULT_NORM((r0 - r1) * cPI2_8); - - r0 = x[3] - x[11]; - r1 = x[10] - x[2]; - x[10] += x[2]; - x[11] += x[3]; - x[2] = r0; - x[3] = r1; - - r0 = x[12] - x[4]; - r1 = x[13] - x[5]; - x[12] += x[4]; - x[13] += x[5]; - x[4] = MULT_NORM((r0 - r1) * cPI2_8); - x[5] = MULT_NORM((r0 + r1) * cPI2_8); - - r0 = x[14] - x[6]; - r1 = x[15] - x[7]; - x[14] += x[6]; - x[15] += x[7]; - x[6] = r0; - x[7] = r1; - - mdct_butterfly_8(x); - mdct_butterfly_8(x+8); -} - -/* 32 point butterfly (in place, 4 register) */ -STIN void mdct_butterfly_32(DATA_TYPE *x){ - REG_TYPE r0 = x[30] - x[14]; - REG_TYPE r1 = x[31] - x[15]; - - x[30] += x[14]; - x[31] += x[15]; - x[14] = r0; - x[15] = r1; - - r0 = x[28] - x[12]; - r1 = x[29] - x[13]; - x[28] += x[12]; - x[29] += x[13]; - x[12] = MULT_NORM( r0 * cPI1_8 - r1 * cPI3_8 ); - x[13] = MULT_NORM( r0 * cPI3_8 + r1 * cPI1_8 ); - - r0 = x[26] - x[10]; - r1 = x[27] - x[11]; - x[26] += x[10]; - x[27] += x[11]; - x[10] = MULT_NORM(( r0 - r1 ) * cPI2_8); - x[11] = MULT_NORM(( r0 + r1 ) * cPI2_8); - - r0 = x[24] - x[8]; - r1 = x[25] - x[9]; - x[24] += x[8]; - x[25] += x[9]; - x[8] = MULT_NORM( r0 * cPI3_8 - r1 * cPI1_8 ); - x[9] = MULT_NORM( r1 * cPI3_8 + r0 * cPI1_8 ); - - r0 = x[22] - x[6]; - r1 = x[7] - x[23]; - x[22] += x[6]; - x[23] += x[7]; - x[6] = r1; - x[7] = r0; - - r0 = x[4] - x[20]; - r1 = x[5] - x[21]; - x[20] += x[4]; - x[21] += x[5]; - x[4] = MULT_NORM( r1 * cPI1_8 + r0 * cPI3_8 ); - x[5] = MULT_NORM( r1 * cPI3_8 - r0 * cPI1_8 ); - - r0 = x[2] - x[18]; - r1 = x[3] - x[19]; - x[18] += x[2]; - x[19] += x[3]; - x[2] = MULT_NORM(( r1 + r0 ) * cPI2_8); - x[3] = MULT_NORM(( r1 - r0 ) * cPI2_8); - - r0 = x[0] - x[16]; - r1 = x[1] - x[17]; - x[16] += x[0]; - x[17] += x[1]; - x[0] = MULT_NORM( r1 * cPI3_8 + r0 * cPI1_8 ); - x[1] = MULT_NORM( r1 * cPI1_8 - r0 * cPI3_8 ); - - mdct_butterfly_16(x); - mdct_butterfly_16(x+16); - -} - -/* N point first stage butterfly (in place, 2 register) */ -STIN void mdct_butterfly_first(DATA_TYPE *T, - DATA_TYPE *x, - int points){ - - DATA_TYPE *x1 = x + points - 8; - DATA_TYPE *x2 = x + (points>>1) - 8; - REG_TYPE r0; - REG_TYPE r1; - - do{ - - r0 = x1[6] - x2[6]; - r1 = x1[7] - x2[7]; - x1[6] += x2[6]; - x1[7] += x2[7]; - x2[6] = MULT_NORM(r1 * T[1] + r0 * T[0]); - x2[7] = MULT_NORM(r1 * T[0] - r0 * T[1]); - - r0 = x1[4] - x2[4]; - r1 = x1[5] - x2[5]; - x1[4] += x2[4]; - x1[5] += x2[5]; - x2[4] = MULT_NORM(r1 * T[5] + r0 * T[4]); - x2[5] = MULT_NORM(r1 * T[4] - r0 * T[5]); - - r0 = x1[2] - x2[2]; - r1 = x1[3] - x2[3]; - x1[2] += x2[2]; - x1[3] += x2[3]; - x2[2] = MULT_NORM(r1 * T[9] + r0 * T[8]); - x2[3] = MULT_NORM(r1 * T[8] - r0 * T[9]); - - r0 = x1[0] - x2[0]; - r1 = x1[1] - x2[1]; - x1[0] += x2[0]; - x1[1] += x2[1]; - x2[0] = MULT_NORM(r1 * T[13] + r0 * T[12]); - x2[1] = MULT_NORM(r1 * T[12] - r0 * T[13]); - - x1-=8; - x2-=8; - T+=16; - - }while(x2>=x); -} - -/* N/stage point generic N stage butterfly (in place, 2 register) */ -STIN void mdct_butterfly_generic(DATA_TYPE *T, - DATA_TYPE *x, - int points, - int trigint){ - - DATA_TYPE *x1 = x + points - 8; - DATA_TYPE *x2 = x + (points>>1) - 8; - REG_TYPE r0; - REG_TYPE r1; - - do{ - - r0 = x1[6] - x2[6]; - r1 = x1[7] - x2[7]; - x1[6] += x2[6]; - x1[7] += x2[7]; - x2[6] = MULT_NORM(r1 * T[1] + r0 * T[0]); - x2[7] = MULT_NORM(r1 * T[0] - r0 * T[1]); - - T+=trigint; - - r0 = x1[4] - x2[4]; - r1 = x1[5] - x2[5]; - x1[4] += x2[4]; - x1[5] += x2[5]; - x2[4] = MULT_NORM(r1 * T[1] + r0 * T[0]); - x2[5] = MULT_NORM(r1 * T[0] - r0 * T[1]); - - T+=trigint; - - r0 = x1[2] - x2[2]; - r1 = x1[3] - x2[3]; - x1[2] += x2[2]; - x1[3] += x2[3]; - x2[2] = MULT_NORM(r1 * T[1] + r0 * T[0]); - x2[3] = MULT_NORM(r1 * T[0] - r0 * T[1]); - - T+=trigint; - - r0 = x1[0] - x2[0]; - r1 = x1[1] - x2[1]; - x1[0] += x2[0]; - x1[1] += x2[1]; - x2[0] = MULT_NORM(r1 * T[1] + r0 * T[0]); - x2[1] = MULT_NORM(r1 * T[0] - r0 * T[1]); - - T+=trigint; - x1-=8; - x2-=8; - - }while(x2>=x); -} - -STIN void mdct_butterflies(mdct_lookup *init, - DATA_TYPE *x, - int points){ - - DATA_TYPE *T=init->trig; - int stages=init->log2n-5; - int i,j; - - if(--stages>0){ - mdct_butterfly_first(T,x,points); - } - - for(i=1;--stages>0;i++){ - for(j=0;j<(1<<i);j++) - mdct_butterfly_generic(T,x+(points>>i)*j,points>>i,4<<i); - } - - for(j=0;j<points;j+=32) - mdct_butterfly_32(x+j); - -} - -void mdct_clear(mdct_lookup *l){ - if(l){ - if(l->trig)_ogg_free(l->trig); - if(l->bitrev)_ogg_free(l->bitrev); - memset(l,0,sizeof(mdct_lookup)); - } -} - -STIN void mdct_bitreverse(mdct_lookup *init, - DATA_TYPE *x){ - int n = init->n; - int *bit = init->bitrev; - DATA_TYPE *w0 = x; - DATA_TYPE *w1 = x = w0+(n>>1); - DATA_TYPE *T = init->trig+n; - - do{ - DATA_TYPE *x0 = x+bit[0]; - DATA_TYPE *x1 = x+bit[1]; - - REG_TYPE r0 = x0[1] - x1[1]; - REG_TYPE r1 = x0[0] + x1[0]; - REG_TYPE r2 = MULT_NORM(r1 * T[0] + r0 * T[1]); - REG_TYPE r3 = MULT_NORM(r1 * T[1] - r0 * T[0]); - - w1 -= 4; - - r0 = HALVE(x0[1] + x1[1]); - r1 = HALVE(x0[0] - x1[0]); - - w0[0] = r0 + r2; - w1[2] = r0 - r2; - w0[1] = r1 + r3; - w1[3] = r3 - r1; - - x0 = x+bit[2]; - x1 = x+bit[3]; - - r0 = x0[1] - x1[1]; - r1 = x0[0] + x1[0]; - r2 = MULT_NORM(r1 * T[2] + r0 * T[3]); - r3 = MULT_NORM(r1 * T[3] - r0 * T[2]); - - r0 = HALVE(x0[1] + x1[1]); - r1 = HALVE(x0[0] - x1[0]); - - w0[2] = r0 + r2; - w1[0] = r0 - r2; - w0[3] = r1 + r3; - w1[1] = r3 - r1; - - T += 4; - bit += 4; - w0 += 4; - - }while(w0<w1); -} - -void mdct_backward(mdct_lookup *init, DATA_TYPE *in, DATA_TYPE *out){ - int n=init->n; - int n2=n>>1; - int n4=n>>2; - - /* rotate */ - - DATA_TYPE *iX = in+n2-7; - DATA_TYPE *oX = out+n2+n4; - DATA_TYPE *T = init->trig+n4; - - do{ - oX -= 4; - oX[0] = MULT_NORM(-iX[2] * T[3] - iX[0] * T[2]); - oX[1] = MULT_NORM (iX[0] * T[3] - iX[2] * T[2]); - oX[2] = MULT_NORM(-iX[6] * T[1] - iX[4] * T[0]); - oX[3] = MULT_NORM (iX[4] * T[1] - iX[6] * T[0]); - iX -= 8; - T += 4; - }while(iX>=in); - - iX = in+n2-8; - oX = out+n2+n4; - T = init->trig+n4; - - do{ - T -= 4; - oX[0] = MULT_NORM (iX[4] * T[3] + iX[6] * T[2]); - oX[1] = MULT_NORM (iX[4] * T[2] - iX[6] * T[3]); - oX[2] = MULT_NORM (iX[0] * T[1] + iX[2] * T[0]); - oX[3] = MULT_NORM (iX[0] * T[0] - iX[2] * T[1]); - iX -= 8; - oX += 4; - }while(iX>=in); - - mdct_butterflies(init,out+n2,n2); - mdct_bitreverse(init,out); - - /* roatate + window */ - - { - DATA_TYPE *oX1=out+n2+n4; - DATA_TYPE *oX2=out+n2+n4; - DATA_TYPE *iX =out; - T =init->trig+n2; - - do{ - oX1-=4; - - oX1[3] = MULT_NORM (iX[0] * T[1] - iX[1] * T[0]); - oX2[0] = -MULT_NORM (iX[0] * T[0] + iX[1] * T[1]); - - oX1[2] = MULT_NORM (iX[2] * T[3] - iX[3] * T[2]); - oX2[1] = -MULT_NORM (iX[2] * T[2] + iX[3] * T[3]); - - oX1[1] = MULT_NORM (iX[4] * T[5] - iX[5] * T[4]); - oX2[2] = -MULT_NORM (iX[4] * T[4] + iX[5] * T[5]); - - oX1[0] = MULT_NORM (iX[6] * T[7] - iX[7] * T[6]); - oX2[3] = -MULT_NORM (iX[6] * T[6] + iX[7] * T[7]); - - oX2+=4; - iX += 8; - T += 8; - }while(iX<oX1); - - iX=out+n2+n4; - oX1=out+n4; - oX2=oX1; - - do{ - oX1-=4; - iX-=4; - - oX2[0] = -(oX1[3] = iX[3]); - oX2[1] = -(oX1[2] = iX[2]); - oX2[2] = -(oX1[1] = iX[1]); - oX2[3] = -(oX1[0] = iX[0]); - - oX2+=4; - }while(oX2<iX); - - iX=out+n2+n4; - oX1=out+n2+n4; - oX2=out+n2; - do{ - oX1-=4; - oX1[0]= iX[3]; - oX1[1]= iX[2]; - oX1[2]= iX[1]; - oX1[3]= iX[0]; - iX+=4; - }while(oX1>oX2); - } -} - -void mdct_forward(mdct_lookup *init, DATA_TYPE *in, DATA_TYPE *out){ - int n=init->n; - int n2=n>>1; - int n4=n>>2; - int n8=n>>3; - DATA_TYPE *w=alloca(n*sizeof(DATA_TYPE)); /* forward needs working space */ - DATA_TYPE *w2=w+n2; - - /* rotate */ - - /* window + rotate + step 1 */ - - REG_TYPE r0; - REG_TYPE r1; - DATA_TYPE *x0=in+n2+n4; - DATA_TYPE *x1=x0+1; - DATA_TYPE *T=init->trig+n2; - - int i=0; - - for(i=0;i<n8;i+=2){ - x0 -=4; - T-=2; - r0= x0[2] + x1[0]; - r1= x0[0] + x1[2]; - w2[i]= MULT_NORM(r1*T[1] + r0*T[0]); - w2[i+1]= MULT_NORM(r1*T[0] - r0*T[1]); - x1 +=4; - } - - x1=in+1; - - for(;i<n2-n8;i+=2){ - T-=2; - x0 -=4; - r0= x0[2] - x1[0]; - r1= x0[0] - x1[2]; - w2[i]= MULT_NORM(r1*T[1] + r0*T[0]); - w2[i+1]= MULT_NORM(r1*T[0] - r0*T[1]); - x1 +=4; - } - - x0=in+n; - - for(;i<n2;i+=2){ - T-=2; - x0 -=4; - r0= -x0[2] - x1[0]; - r1= -x0[0] - x1[2]; - w2[i]= MULT_NORM(r1*T[1] + r0*T[0]); - w2[i+1]= MULT_NORM(r1*T[0] - r0*T[1]); - x1 +=4; - } - - - mdct_butterflies(init,w+n2,n2); - mdct_bitreverse(init,w); - - /* roatate + window */ - - T=init->trig+n2; - x0=out+n2; - - for(i=0;i<n4;i++){ - x0--; - out[i] =MULT_NORM((w[0]*T[0]+w[1]*T[1])*init->scale); - x0[0] =MULT_NORM((w[0]*T[1]-w[1]*T[0])*init->scale); - w+=2; - T+=2; - } -} - diff --git a/lib/mdct.h b/lib/mdct.h deleted file mode 100644 index d2810deb..00000000 --- a/lib/mdct.h +++ /dev/null @@ -1,79 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: modified discrete cosine transform prototypes - last mod: $Id: mdct.h,v 1.18 2001/02/26 03:50:42 xiphmont Exp $ - - ********************************************************************/ - -#ifndef _OGG_mdct_H_ -#define _OGG_mdct_H_ - -#include "vorbis/codec.h" - -/*#define MDCT_INTEGERIZED <- be warned there could be some hurt left here*/ -#ifdef MDCT_INTEGERIZED - -#define DATA_TYPE int -#define REG_TYPE register int -#define TRIGBITS 14 -#define cPI3_8 6270 -#define cPI2_8 11585 -#define cPI1_8 15137 - -#define FLOAT_CONV(x) ((int)((x)*(1<<TRIGBITS)+.5)) -#define MULT_NORM(x) ((x)>>TRIGBITS) -#define HALVE(x) ((x)>>1) - -#else - -#define DATA_TYPE float -#define REG_TYPE float -#define cPI3_8 .38268343236508977175F -#define cPI2_8 .70710678118654752441F -#define cPI1_8 .92387953251128675613F - -#define FLOAT_CONV(x) (x) -#define MULT_NORM(x) (x) -#define HALVE(x) ((x)*.5f) - -#endif - - -typedef struct { - int n; - int log2n; - - DATA_TYPE *trig; - int *bitrev; - - DATA_TYPE scale; -} mdct_lookup; - -extern void mdct_init(mdct_lookup *lookup,int n); -extern void mdct_clear(mdct_lookup *l); -extern void mdct_forward(mdct_lookup *init, DATA_TYPE *in, DATA_TYPE *out); -extern void mdct_backward(mdct_lookup *init, DATA_TYPE *in, DATA_TYPE *out); - -#endif - - - - - - - - - - - - diff --git a/lib/misc.c b/lib/misc.c deleted file mode 100644 index 9bdbe345..00000000 --- a/lib/misc.c +++ /dev/null @@ -1,106 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ********************************************************************/ - -#define HEAD_ALIGN 32 -#include <pthread.h> -#include <stdlib.h> -#include <stdio.h> -#include "vorbis/codec.h" -#define MISC_C -#include "misc.h" - -static pthread_mutex_t memlock=PTHREAD_MUTEX_INITIALIZER; -void **pointers=NULL; -long *insertlist=NULL; /* We can't embed this in the pointer list; - a pointer can have any value... */ -int ptop=0; -int palloced=0; -int pinsert=0; - -typedef struct { - char *file; - long line; - long ptr; -} head; - -static void *_insert(void *ptr,char *file,long line){ - ((head *)ptr)->file=file; - ((head *)ptr)->line=line; - ((head *)ptr)->ptr=pinsert; - - pthread_mutex_lock(&memlock); - if(pinsert>=palloced){ - palloced+=64; - if(pointers){ - pointers=(void **)realloc(pointers,sizeof(void **)*palloced); - insertlist=(long *)realloc(insertlist,sizeof(long *)*palloced); - }else{ - pointers=(void **)malloc(sizeof(void **)*palloced); - insertlist=(long *)malloc(sizeof(long *)*palloced); - } - } - - pointers[pinsert]=ptr; - - if(pinsert==ptop) - pinsert=++ptop; - else - pinsert=insertlist[pinsert]; - - pthread_mutex_unlock(&memlock); - return(ptr+HEAD_ALIGN); -} - -static void _ripremove(void *ptr){ - int insert; - pthread_mutex_lock(&memlock); - insert=((head *)ptr)->ptr; - insertlist[insert]=pinsert; - pinsert=insert; - pointers[insert]=NULL; - pthread_mutex_unlock(&memlock); -} - -void _VDBG_dump(void){ - int i; - pthread_mutex_lock(&memlock); - for(i=0;i<ptop;i++){ - head *ptr=pointers[i]; - if(ptr) - fprintf(stderr,"unfreed bytes from %s:%ld\n", - ptr->file,ptr->line); - } - - pthread_mutex_unlock(&memlock); -} - -extern void *_VDBG_malloc(void *ptr,long bytes,char *file,long line){ - bytes+=HEAD_ALIGN; - if(ptr){ - ptr-=HEAD_ALIGN; - _ripremove(ptr); - ptr=realloc(ptr,bytes); - }else{ - ptr=malloc(bytes); - memset(ptr,0,bytes); - } - return _insert(ptr,file,line); -} - -extern void _VDBG_free(void *ptr,char *file,long line){ - if(ptr){ - ptr-=HEAD_ALIGN; - _ripremove(ptr); - free(ptr); - } -} - diff --git a/lib/misc.h b/lib/misc.h deleted file mode 100644 index 6cb105a0..00000000 --- a/lib/misc.h +++ /dev/null @@ -1,43 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: miscellaneous prototypes - last mod: $Id: misc.h,v 1.9 2001/02/26 03:50:42 xiphmont Exp $ - - ********************************************************************/ - -#ifndef _V_RANDOM_H_ -#define _V_RANDOM_H_ -#include "vorbis/codec.h" - -extern void *_vorbis_block_alloc(vorbis_block *vb,long bytes); -extern void _vorbis_block_ripcord(vorbis_block *vb); -extern void _analysis_output(char *base,int i,float *v,int n,int bark,int dB); - -#ifdef DEBUG_LEAKS -extern void *_VDBG_malloc(void *ptr,long bytes,char *file,long line); -extern void _VDBG_free(void *ptr,char *file,long line); - -#ifndef MISC_C -#undef _ogg_malloc -#undef _ogg_calloc -#undef _ogg_realloc -#undef _ogg_free - -#define _ogg_malloc(x) _VDBG__ogg_malloc(NULL,(x),__FILE__,__LINE__) -#define _ogg_calloc(x,y) _VDBG__ogg_malloc(NULL,(x)*(y),__FILE__,__LINE__) -#define _ogg_realloc(x,y) _VDBG__ogg_malloc((x),(y),__FILE__,__LINE__) -#define _ogg_free(x) _VDBG__ogg_free((x),__FILE__,__LINE__) -#endif -#endif - -#endif diff --git a/lib/modes/.cvsignore b/lib/modes/.cvsignore deleted file mode 100644 index 282522db..00000000 --- a/lib/modes/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile -Makefile.in diff --git a/lib/modes/Makefile.am b/lib/modes/Makefile.am deleted file mode 100644 index f6ca9d7e..00000000 --- a/lib/modes/Makefile.am +++ /dev/null @@ -1,5 +0,0 @@ -## Process this file with automake to produce Makefile.in - -AUTOMAKE_OPTIONS = foreign - -EXTRA_DIST = mode_AA.h mode_A.h mode_B.h mode_C.h mode_D.h mode_E.h modes.h diff --git a/lib/modes/mode_A.h b/lib/modes/mode_A.h index 71ea7031..da4ff583 100644 --- a/lib/modes/mode_A.h +++ b/lib/modes/mode_A.h @@ -11,7 +11,7 @@ ******************************************************************** function: predefined encoding modes - last mod: $Id: mode_A.h,v 1.16 2001/06/18 09:07:32 xiphmont Exp $ + last mod: $Id: mode_A.h,v 1.14.4.5 2001/05/23 02:15:24 xiphmont Exp $ ********************************************************************/ @@ -22,10 +22,33 @@ #include "vorbis/codec.h" #include "backends.h" -#include "books/lsp12_0.vqh" -#include "books/lsp30_0.vqh" -#include "books/lsp12_1.vqh" -#include "books/lsp30_1.vqh" +#include "books/line0_class0.vqh" +#include "books/line0_class1.vqh" +#include "books/line0_class2.vqh" +#include "books/line1_class0.vqh" +#include "books/line1_class1.vqh" +#include "books/line1_class2.vqh" +#include "books/line1_class3.vqh" + +#include "books/line0_0sub0.vqh" +#include "books/line0_0sub1.vqh" +#include "books/line0_1sub1.vqh" +#include "books/line0_1sub2.vqh" +#include "books/line0_1sub3.vqh" +#include "books/line0_2sub1.vqh" +#include "books/line0_2sub2.vqh" +#include "books/line0_2sub3.vqh" + +#include "books/line1_0sub0.vqh" +#include "books/line1_0sub1.vqh" +#include "books/line1_1sub0.vqh" +#include "books/line1_1sub1.vqh" +#include "books/line1_2sub1.vqh" +#include "books/line1_2sub2.vqh" +#include "books/line1_2sub3.vqh" +#include "books/line1_3sub1.vqh" +#include "books/line1_3sub2.vqh" +#include "books/line1_3sub3.vqh" #include "books/res0_128_128aux.vqh" #include "books/res0_128_1024aux.vqh" @@ -48,7 +71,7 @@ static vorbis_info_psy _psy_set_A0={ - ATH_Bark_dB_lspconservative, + 1,/*athp*/ 1,/*decayp*/ -100., @@ -136,7 +159,7 @@ static vorbis_info_psy _psy_set_A0={ }; static vorbis_info_psy _psy_set_A={ - ATH_Bark_dB_lspconservative, + 1,/*athp*/ 1,/*decayp*/ -100.f, @@ -199,7 +222,7 @@ static vorbis_info_psy _psy_set_A={ .5f, /* high window */ 25, 25, - 50, + 40, {.000f, 0.f, /*63*/ .000f, 0.f, /*88*/ .000f, 0.f, /*125*/ @@ -227,22 +250,71 @@ static vorbis_info_psy _psy_set_A={ /* with GNUisms, this could be short and readable. Oh well */ static vorbis_info_time0 _time_set0A={0}; -static vorbis_info_floor0 _floor_set0A={12, 44100, 64, 10,130, 2, {0,1}, - 0.199f, .285f}; -static vorbis_info_floor0 _floor_set1A={30, 44100, 256, 12,150, 2, {2,3}, - .082f, .126f}; -static vorbis_info_residue0 _residue_set0A={0,96,16,6,4, +/*static vorbis_info_floor0 _floor_set0A={12, 44100, 64, 10,130, 2, {0,1}, + 0.199f, .285f};*/ +/*static vorbis_info_floor0 _floor_set1A={30, 44100, 256, 12,150, 2, {2,3}, + .082f, .126f};*/ + +static vorbis_info_floor1 _floor_set0A={4, + {0,1,2,2}, + + {3,3,3}, + {1,2,2}, + {0,1,2}, + {{3,4},{-1,5,6,7},{-1,8,9,10}}, + + 4, + {0,128, + 5,21, + + 2,1,3, + 11,7,15, + 45,30,73}, + + 60,30,600, + 999,999,0,18., + 8,96}; + +static vorbis_info_floor1 _floor_set1A={10, + {0,1,2,2,2,2,2, 3,3,3}, + + {3,4,3,3}, + {1,1,2,2}, + {11,12,13,14}, + {{15,16}, + {17,18}, + {-1,19,20,21}, + {-1,22,23,24}, + }, + + 4, + {0,1024, + + 88,31,243, + + 14,54,143,460, + + 6,3,10, 22,18,26, 41,36,47, + 69,61,78, 112,99,126, 185,162,211, + 329,282,387, 672,553,825 + }, + + 60,30,600, + 20,8,1,18., + 20,600}; + +static vorbis_info_residue0 _residue_set0A={0,96,16,6,25, {0,1,1,1,1,1}, - {6,7,8,9,10}, + {27,28,29,30,31}, {0,99999,9999,9999,9999}, {999.f,1.5f,3.5f,15.5f,26.5f}, {4,4,4,4,4}, {99,99,99,99,99}}; -static vorbis_info_residue0 _residue_set1A={0, 960, 32,10,5, +static vorbis_info_residue0 _residue_set1A={0, 960, 32,10,26, {0,1,1,1,1,1,1,1,1,1}, - {11,12,13,14,15,16,17,18,19}, + {32,33,34,35,36,37,38,39,40}, {0,8,9999,16,9999, 24,9999,9999,9999}, @@ -251,10 +323,8 @@ static vorbis_info_residue0 _residue_set1A={0, 960, 32,10,5, {5,5,5,5,5,5,5,5,5}, {99,99,99,99,99,99,99,99,99}}; -static vorbis_info_mapping0 _mapping_set0A={1, {0,0}, {0}, {0}, {0}, {0}, - 0,{0},{0}}; -static vorbis_info_mapping0 _mapping_set1A={1, {0,0}, {0}, {1}, {1}, {1}, - 0,{0},{0}}; +static vorbis_info_mapping0 _mapping_set0A={1, {0,0}, {0}, {0}, {0}, {0}}; +static vorbis_info_mapping0 _mapping_set1A={1, {0,0}, {0}, {1}, {1}, {1}}; static vorbis_info_mode _mode_set0A={0,0,0,0}; static vorbis_info_mode _mode_set1A={1,0,0,1}; @@ -264,7 +334,7 @@ codec_setup_info info_A={ /* smallblock, largeblock */ {256, 2048}, /* modes,maps,times,floors,residues,books,psys */ - 2, 2, 1, 2, 2, 20, 2, + 2, 2, 1, 2, 2, 41, 2, /* modes */ {&_mode_set0A,&_mode_set1A}, /* maps */ @@ -272,32 +342,56 @@ codec_setup_info info_A={ /* times */ {0,0},{&_time_set0A}, /* floors */ - {0,0},{&_floor_set0A,&_floor_set1A}, + {1,1},{&_floor_set0A,&_floor_set1A}, /* residue */ - {0,0},{&_residue_set0A,&_residue_set1A}, + {1,1},{&_residue_set0A,&_residue_set1A}, /* books */ - {&_vq_book_lsp12_0, /* 0 */ - &_vq_book_lsp12_1, /* 1 */ - &_vq_book_lsp30_0, /* 2 */ - &_vq_book_lsp30_1, /* 3 */ - - &_huff_book_res0_128_128aux, + {&_huff_book_line0_class0, /* 0 */ + &_huff_book_line0_class1, + &_huff_book_line0_class2, /* 2 */ + + &_huff_book_line0_0sub0, /* 3 */ + &_huff_book_line0_0sub1, + &_huff_book_line0_1sub1, /* 5 */ + &_huff_book_line0_1sub2, + &_huff_book_line0_1sub3, /* 7 */ + &_huff_book_line0_2sub1, + &_huff_book_line0_2sub2, /* 9 */ + &_huff_book_line0_2sub3, + + &_huff_book_line1_class0, + &_huff_book_line1_class1, /* 12 */ + &_huff_book_line1_class2, + &_huff_book_line1_class3, /* 14 */ + + &_huff_book_line1_0sub0, + &_huff_book_line1_0sub1, /* 16 */ + &_huff_book_line1_1sub0, + &_huff_book_line1_1sub1, + &_huff_book_line1_2sub1, + &_huff_book_line1_2sub2, /* 20 */ + &_huff_book_line1_2sub3, + &_huff_book_line1_3sub1, + &_huff_book_line1_3sub2, + &_huff_book_line1_3sub3, /* 24 */ + + &_huff_book_res0_128_128aux, &_huff_book_res0_128_1024aux, - &_vq_book_res0_128_128_1, + &_vq_book_res0_128_128_1, &_vq_book_res0_128_128_2, &_vq_book_res0_128_128_3, &_vq_book_res0_128_128_4, - &_vq_book_res0_128_128_5, + &_vq_book_res0_128_128_5, &_vq_book_res0_128_1024_1, - &_vq_book_res0_128_1024_2, + &_vq_book_res0_128_1024_2, &_vq_book_res0_128_1024_3, - &_vq_book_res0_128_1024_4, + &_vq_book_res0_128_1024_4, &_vq_book_res0_128_1024_5, - &_vq_book_res0_128_1024_6, + &_vq_book_res0_128_1024_6, &_vq_book_res0_128_1024_7, - &_vq_book_res0_128_1024_8, + &_vq_book_res0_128_1024_8, &_vq_book_res0_128_1024_9, }, diff --git a/lib/modes/mode_B.h b/lib/modes/mode_B.h deleted file mode 100644 index 35fdb770..00000000 --- a/lib/modes/mode_B.h +++ /dev/null @@ -1,314 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: predefined encoding modes - last mod: $Id: mode_B.h,v 1.15 2001/06/18 09:07:32 xiphmont Exp $ - - ********************************************************************/ - -#ifndef _V_MODES_B_H_ -#define _V_MODES_B_H_ - -#include <stdio.h> -#include "vorbis/codec.h" -#include "backends.h" - -#include "books/lsp12_0.vqh" -#include "books/lsp30_0.vqh" -#include "books/lsp12_1.vqh" -#include "books/lsp30_1.vqh" - -#include "books/res0_160_128aux.vqh" -#include "books/res0_160_1024aux.vqh" - -#include "books/res0_160_128_1.vqh" -#include "books/res0_160_128_2.vqh" -#include "books/res0_160_128_3.vqh" -#include "books/res0_160_128_4.vqh" -#include "books/res0_160_128_5.vqh" - -#include "books/res0_160_1024_1.vqh" -#include "books/res0_160_1024_2.vqh" -#include "books/res0_160_1024_3.vqh" -#include "books/res0_160_1024_4.vqh" -#include "books/res0_160_1024_5.vqh" -#include "books/res0_160_1024_6.vqh" -#include "books/res0_160_1024_7.vqh" -#include "books/res0_160_1024_8.vqh" -#include "books/res0_160_1024_9.vqh" - - -static vorbis_info_psy _psy_set_B0={ - ATH_Bark_dB_lspconservative, - 1,/*decayp*/ - - -100., - -140., - - 8, - - /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ - /* x: 63 88 125 175 250 350 500 700 1k 1.4k 2k 2.8k 4k 5.6k 8k 11.5k 16k Hz */ - /* y: 0 10 20 30 40 50 60 70 80 90 100 dB */ - - 1,/* tonemaskp */ - /* 0 10 20 30 40 50 60 70 80 90 100 */ - { - {-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.}, /*63*/ - {-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.}, /*88*/ - {-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.}, /*125*/ - {-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.}, /*175*/ - {-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.}, /*250*/ - {-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.}, /*350*/ - {-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.}, /*500*/ - {-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.}, /*700*/ - - {-30.,-35.,-40.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*1000*/ - {-30.,-35.,-40.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*1400*/ - {-40.,-40.,-40.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*2000*/ - {-40.,-40.,-40.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*2800*/ - {-30.,-35.,-40.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*4000*/ - {-30.,-35.,-40.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*5600*/ - {-30.,-35.,-40.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*8000*/ - {-30.,-35.,-40.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*11500*/ - {-30.,-35.,-35.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*16000*/ - }, - - 1,/* peakattp */ - {{-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-24.f,-24.f,-24.f,-24.f,-24.f},/*63*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-24.f,-24.f,-24.f,-24.f,-24.f},/*88*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-24.f,-24.f,-24.f,-24.f,-24.f},/*125*/ - {-14.f,-14.f,-14.f,-14.f,-16.f,-16.f,-20.f,-24.f,-24.f,-24.f,-24.f},/*175*/ - {-14.f,-14.f,-14.f,-14.f,-16.f,-16.f,-20.f,-24.f,-24.f,-24.f,-24.f},/*250*/ - {-14.f,-14.f,-14.f,-14.f,-16.f,-16.f,-20.f,-24.f,-24.f,-24.f,-24.f},/*350*/ - {-14.f,-14.f,-14.f,-14.f,-16.f,-16.f,-20.f,-24.f,-24.f,-24.f,-24.f},/*500*/ - {-14.f,-14.f,-14.f,-14.f,-14.f,-14.f,-18.f,-24.f,-24.f,-24.f,-24.f},/*700*/ - {-14.f,-14.f,-14.f,-14.f,-14.f,-14.f,-14.f,-24.f,-24.f,-24.f,-24.f},/*1000*/ - {-14.f,-14.f,-14.f,-14.f,-14.f,-16.f,-18.f,-24.f,-24.f,-24.f,-24.f},/*1400*/ - {-14.f,-14.f,-14.f,-14.f,-14.f,-16.f,-18.f,-24.f,-24.f,-24.f,-24.f},/*2000*/ - {-14.f,-14.f,-14.f,-14.f,-14.f,-16.f,-18.f,-24.f,-24.f,-24.f,-24.f},/*2400*/ - {-14.f,-14.f,-14.f,-14.f,-14.f,-16.f,-18.f,-24.f,-24.f,-24.f,-24.f},/*4000*/ - {-14.f,-14.f,-14.f,-14.f,-14.f,-14.f,-12.f,-20.f,-24.f,-24.f,-24.f},/*5600*/ - {-14.f,-14.f,-14.f,-14.f,-14.f,-14.f,-14.f,-20.f,-24.f,-24.f,-24.f},/*8000*/ - {-14.f,-14.f,-14.f,-14.f,-14.f,-14.f,-14.f,-20.f,-24.f,-24.f,-24.f},/*11500*/ - {-14.f,-14.f,-14.f,-14.f,-14.f,-14.f,-14.f,-14.f,-20.f,-24.f,-24.f},/*16000*/ - }, - - 1,/*noisemaskp */ - -10.f, /* suppress any noise curve over maxspec+n */ - .5f, /* low window */ - .5f, /* high window */ - 5, - 5, - 10, - {.000f, 0.f,/*63*/ - .000f, 0.f,/*88*/ - .000f, 0.f,/*125*/ - .000f, 0.f,/*175*/ - .000f, 0.f,/*250*/ - .000f, 0.f,/*350*/ - .000f, 0.f,/*500*/ - .300f, 0.f,/*700*/ - .500f, 0.f,/*1000*/ - .500f, 0.f,/*1400*/ - .500f, 0.f,/*2000*/ - .500f, 0.f,/*2800*/ - .600f, 0.f,/*4000*/ - .700f, 0.f,/*5600*/ - .800f, 0.f,/*8000*/ - .800f, 0.f,/*11500*/ - .800f, 0.f,/*16000*/ - }, - - 95.f, /* even decade + 5 is important; saves an rint() later in a - tight loop) */ - -26., -}; - -static vorbis_info_psy _psy_set_B={ - ATH_Bark_dB_lspconservative, - 1,/*decayp*/ - - -100.f, - -140.f, - - 8, - - /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ - /* x: 63 88 125 175 250 350 500 700 1k 1.4k 2k 2.8k 4k 5.6k 8k 11.5k 16k Hz */ - /* y: 0 10 20 30 40 50 60 70 80 90 100 dB */ - 1,/* tonemaskp */ - /* 0 10 20 30 40 50 60 70 80 90 100 */ - { - {-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f}, /*63*/ - {-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f}, /*88*/ - {-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f}, /*125*/ - - {-40.f,-40.f,-40.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*175*/ - {-40.f,-40.f,-40.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*250*/ - {-40.f,-40.f,-40.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*350*/ - {-40.f,-40.f,-40.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*500*/ - {-40.f,-40.f,-40.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*700*/ - - {-40.f,-40.f,-40.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*1000*/ - {-40.f,-40.f,-40.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*1400*/ - {-40.f,-40.f,-40.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*2000*/ - {-40.f,-40.f,-40.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*2800*/ - {-40.f,-40.f,-40.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*4000*/ - {-40.f,-40.f,-40.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*5600*/ - - {-35.f,-40.f,-40.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*8000*/ - {-35.f,-40.f,-40.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*11500*/ - {-30.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*16000*/ - - }, - - 1,/* peakattp */ - {{-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-26.f,-26.f,-26.f,-26.f,-26.f},/*63*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-26.f,-26.f,-26.f,-26.f,-26.f},/*88*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-26.f,-26.f,-26.f,-26.f,-26.f},/*125*/ - {-14.f,-14.f,-14.f,-14.f,-16.f,-16.f,-20.f,-24.f,-26.f,-26.f,-26.f},/*175*/ - {-14.f,-14.f,-14.f,-14.f,-16.f,-16.f,-20.f,-24.f,-26.f,-26.f,-26.f},/*250*/ - {-14.f,-14.f,-14.f,-14.f,-16.f,-16.f,-20.f,-24.f,-26.f,-26.f,-26.f},/*350*/ - {-14.f,-14.f,-14.f,-14.f,-16.f,-16.f,-20.f,-24.f,-26.f,-26.f,-26.f},/*500*/ - {-14.f,-14.f,-14.f,-14.f,-14.f,-14.f,-18.f,-24.f,-26.f,-26.f,-26.f},/*700*/ - {-14.f,-14.f,-14.f,-14.f,-14.f,-14.f,-14.f,-24.f,-26.f,-26.f,-26.f},/*1000*/ - {-14.f,-14.f,-14.f,-14.f,-14.f,-16.f,-18.f,-24.f,-26.f,-26.f,-26.f},/*1400*/ - {-14.f,-14.f,-14.f,-14.f,-14.f,-16.f,-18.f,-24.f,-26.f,-26.f,-26.f},/*2000*/ - {-14.f,-14.f,-14.f,-14.f,-14.f,-16.f,-18.f,-24.f,-26.f,-26.f,-26.f},/*2400*/ - {-14.f,-14.f,-14.f,-14.f,-14.f,-16.f,-18.f,-24.f,-26.f,-26.f,-26.f},/*4000*/ - {-14.f,-14.f,-14.f,-14.f,-14.f,-14.f,-12.f,-20.f,-26.f,-26.f,-26.f},/*5600*/ - {-10.f,-10.f,-14.f,-14.f,-14.f,-14.f,-14.f,-20.f,-22.f,-24.f,-26.f},/*8000*/ - {-10.f,-10.f,-10.f,-14.f,-14.f,-14.f,-14.f,-20.f,-22.f,-24.f,-26.f},/*11500*/ - {-10.f,-10.f,-10.f,-14.f,-14.f,-14.f,-14.f,-14.f,-20.f,-24.f,-26.f},/*16000*/ - }, - - 1,/*noisemaskp */ - -28.f, /* suppress any noise curve over maxspec+n */ - .5f, /* low window */ - .5f, /* high window */ - 25, - 25, - 40, - {.000f, 0.f, /*63*/ - .000f, 0.f, /*88*/ - .000f, 0.f, /*125*/ - .000f, 0.f, /*175*/ - .000f, 0.f, /*250*/ - .000f, 0.f, /*350*/ - .000f, 0.f, /*500*/ - .000f, 0.f, /*700*/ - .200f, 0.f, /*1000*/ - .300f, 0.f, /*1400*/ - .300f, 0.f, /*2000*/ - .300f, 0.f, /*2800*/ - .700f, 0.f, /*4000*/ - .700f, 0.f, /*5600*/ - .750f, 0.f, /*8000*/ - .750f, 0.f, /*11500*/ - .800f, 0.f, /*16000*/ - }, - - 105.f, /* even decade + 5 is important; saves an rint() later in a - tight loop) */ - -30., - -}; - -/* with GNUisms, this could be short and readable. Oh well */ -static vorbis_info_time0 _time_set0B={0}; -static vorbis_info_floor0 _floor_set0B={12, 44100, 64, 10,130, 2, {0,1}, - 0.199f, .285f}; -static vorbis_info_floor0 _floor_set1B={30, 44100, 256, 12,150, 2, {2,3}, - .082f, .126f}; -static vorbis_info_residue0 _residue_set0B={0,96,16,6,4, - {0,1,1,1,1,1}, - {6,7,8,9,10}, - - {0,99999,9999,9999,9999}, - {999.f,1.5f,3.5f,15.5f,26.5f}, - {4,4,4,4,4}, - {99,99,99,99,99}}; - -static vorbis_info_residue0 _residue_set1B={0, 960, 32,10,5, - {0,1,1,1,1,1,1,1,1,1}, - {11,12,13,14,15,16,17,18,19}, - - {0,8,9999,16,9999, - 24,9999,9999,9999}, - {999.f,1.5f,1.5f,2.5f,2.5f, - 6.5f,6.5f,12.5f,22.5f}, - {5,5,5,5,5,5,5,5,5}, - {99,99,99,99,99,99,99,99,99}}; - -static vorbis_info_mapping0 _mapping_set0B={1, {0,0}, {0}, {0}, {0}, {0}}; -static vorbis_info_mapping0 _mapping_set1B={1, {0,0}, {0}, {1}, {1}, {1}}; -static vorbis_info_mode _mode_set0B={0,0,0,0}; -static vorbis_info_mode _mode_set1B={1,0,0,1}; - -/* CD quality stereo, no channel coupling */ -codec_setup_info info_B={ - - /* smallblock, largeblock */ - {256, 2048}, - /* modes,maps,times,floors,residues,books,psys */ - 2, 2, 1, 2, 2, 20, 2, - /* modes */ - {&_mode_set0B,&_mode_set1B}, - /* maps */ - {0,0},{&_mapping_set0B,&_mapping_set1B}, - /* times */ - {0,0},{&_time_set0B}, - /* floors */ - {0,0},{&_floor_set0B,&_floor_set1B}, - /* residue */ - {0,0},{&_residue_set0B,&_residue_set1B}, - /* books */ - {&_vq_book_lsp12_0, /* 0 */ - &_vq_book_lsp12_1, /* 1 */ - &_vq_book_lsp30_0, /* 2 */ - &_vq_book_lsp30_1, /* 3 */ - - &_huff_book_res0_160_128aux, - &_huff_book_res0_160_1024aux, - - &_vq_book_res0_160_128_1, - &_vq_book_res0_160_128_2, - &_vq_book_res0_160_128_3, - &_vq_book_res0_160_128_4, - &_vq_book_res0_160_128_5, - - &_vq_book_res0_160_1024_1, - &_vq_book_res0_160_1024_2, - &_vq_book_res0_160_1024_3, - &_vq_book_res0_160_1024_4, - &_vq_book_res0_160_1024_5, - &_vq_book_res0_160_1024_6, - &_vq_book_res0_160_1024_7, - &_vq_book_res0_160_1024_8, - &_vq_book_res0_160_1024_9, - - }, - /* psy */ - {&_psy_set_B0,&_psy_set_B}, - - /* thresh sample period, preecho clamp trigger threshhold, range, minenergy */ - 256, {26.f,26.f,26.f,30.f}, {-90.f,-90.f,-90.f,-90.f}, -90.f, - - -10., - - 0, -}; - -#define PREDEF_INFO_MAX 0 - -#endif diff --git a/lib/modes/mode_C.h b/lib/modes/mode_C.h deleted file mode 100644 index 75ea9673..00000000 --- a/lib/modes/mode_C.h +++ /dev/null @@ -1,314 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: predefined encoding modes - last mod: $Id: mode_C.h,v 1.14 2001/06/18 09:07:32 xiphmont Exp $ - - ********************************************************************/ - -#ifndef _V_MODES_C_H_ -#define _V_MODES_C_H_ - -#include <stdio.h> -#include "vorbis/codec.h" -#include "backends.h" - -#include "books/lsp12_0.vqh" -#include "books/lsp30_0.vqh" -#include "books/lsp12_1.vqh" -#include "books/lsp30_1.vqh" - -#include "books/res0_192_128aux.vqh" -#include "books/res0_192_1024aux.vqh" - -#include "books/res0_192_128_1.vqh" -#include "books/res0_192_128_2.vqh" -#include "books/res0_192_128_3.vqh" -#include "books/res0_192_128_4.vqh" -#include "books/res0_192_128_5.vqh" - -#include "books/res0_192_1024_1.vqh" -#include "books/res0_192_1024_2.vqh" -#include "books/res0_192_1024_3.vqh" -#include "books/res0_192_1024_4.vqh" -#include "books/res0_192_1024_5.vqh" -#include "books/res0_192_1024_6.vqh" -#include "books/res0_192_1024_7.vqh" -#include "books/res0_192_1024_8.vqh" -#include "books/res0_192_1024_9.vqh" - - -static vorbis_info_psy _psy_set_C0={ - ATH_Bark_dB_lspconservative, - 1,/*decayp*/ - - -100., - -140., - - 8, - - /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ - /* x: 63 88 125 175 250 350 500 700 1k 1.4k 2k 2.8k 4k 5.6k 8k 11.5k 16k Hz */ - /* y: 0 10 20 30 40 50 60 70 80 90 100 dB */ - - 1,/* tonemaskp */ - /* 0 10 20 30 40 50 60 70 80 90 100 */ - { - {-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.}, /*63*/ - {-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.}, /*88*/ - {-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.}, /*125*/ - {-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.}, /*175*/ - {-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.}, /*250*/ - {-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.}, /*350*/ - {-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.}, /*500*/ - {-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.}, /*700*/ - - {-35.,-40.,-40.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*1000*/ - {-35.,-40.,-40.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*1400*/ - {-40.,-40.,-40.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*2000*/ - {-40.,-40.,-40.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*2800*/ - {-35.,-40.,-40.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*4000*/ - {-35.,-40.,-40.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*5600*/ - {-35.,-40.,-40.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*8000*/ - {-35.,-40.,-40.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*11500*/ - {-35.,-40.,-40.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*16000*/ - }, - - 1,/* peakattp */ - {{-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-24.f,-24.f,-24.f,-24.f,-24.f},/*63*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-24.f,-24.f,-24.f,-24.f,-24.f},/*88*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-24.f,-24.f,-24.f,-24.f,-24.f},/*125*/ - {-14.f,-14.f,-14.f,-14.f,-16.f,-16.f,-20.f,-24.f,-24.f,-24.f,-24.f},/*175*/ - {-14.f,-14.f,-14.f,-14.f,-16.f,-16.f,-20.f,-24.f,-24.f,-24.f,-24.f},/*250*/ - {-14.f,-14.f,-14.f,-14.f,-16.f,-16.f,-20.f,-24.f,-24.f,-24.f,-24.f},/*350*/ - {-14.f,-14.f,-14.f,-14.f,-16.f,-16.f,-20.f,-24.f,-24.f,-24.f,-24.f},/*500*/ - {-14.f,-14.f,-14.f,-14.f,-14.f,-14.f,-18.f,-24.f,-24.f,-24.f,-24.f},/*700*/ - {-14.f,-14.f,-14.f,-14.f,-14.f,-14.f,-14.f,-24.f,-24.f,-24.f,-24.f},/*1000*/ - {-14.f,-14.f,-14.f,-14.f,-14.f,-16.f,-18.f,-24.f,-24.f,-24.f,-24.f},/*1400*/ - {-14.f,-14.f,-14.f,-14.f,-14.f,-16.f,-18.f,-24.f,-24.f,-24.f,-24.f},/*2000*/ - {-14.f,-14.f,-14.f,-14.f,-14.f,-16.f,-18.f,-24.f,-24.f,-24.f,-24.f},/*2400*/ - {-14.f,-14.f,-14.f,-14.f,-14.f,-16.f,-18.f,-24.f,-24.f,-24.f,-24.f},/*4000*/ - {-14.f,-14.f,-14.f,-14.f,-14.f,-14.f,-12.f,-20.f,-24.f,-24.f,-24.f},/*5600*/ - {-14.f,-14.f,-14.f,-14.f,-14.f,-14.f,-14.f,-20.f,-24.f,-24.f,-24.f},/*8000*/ - {-14.f,-14.f,-14.f,-14.f,-14.f,-14.f,-14.f,-20.f,-24.f,-24.f,-24.f},/*11500*/ - {-14.f,-14.f,-14.f,-14.f,-14.f,-14.f,-14.f,-14.f,-20.f,-24.f,-24.f},/*16000*/ - }, - - 1,/*noisemaskp */ - -20.f, /* suppress any noise curve over maxspec+n */ - .5f, /* low window */ - .5f, /* high window */ - 5, - 5, - 10, - {.000f, 0.f,/*63*/ - .000f, 0.f,/*88*/ - .000f, 0.f,/*125*/ - .000f, 0.f,/*175*/ - .000f, 0.f,/*250*/ - .000f, 0.f,/*350*/ - .000f, 0.f,/*500*/ - .200f, 0.f,/*700*/ - .300f, 0.f,/*1000*/ - .300f, 0.f,/*1400*/ - .300f, 0.f,/*2000*/ - .300f, 0.f,/*2800*/ - .500f, 0.f,/*4000*/ - .600f, 0.f,/*5600*/ - .700f, 0.f,/*8000*/ - .700f, 0.f,/*11500*/ - .700f, 1.f,/*16000*/ - }, - - 105.f, /* even decade + 5 is important; saves an rint() later in a - tight loop) */ - -26., -}; - -static vorbis_info_psy _psy_set_C={ - ATH_Bark_dB_lspconservative, - 1,/*decayp*/ - - -100.f, - -140.f, - - 8, - - /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ - /* x: 63 88 125 175 250 350 500 700 1k 1.4k 2k 2.8k 4k 5.6k 8k 11.5k 16k Hz */ - /* y: 0 10 20 30 40 50 60 70 80 90 100 dB */ - 1,/* tonemaskp */ - /* 0 10 20 30 40 50 60 70 80 90 100 */ - { - {-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f}, /*63*/ - {-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f}, /*88*/ - {-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f}, /*125*/ - - {-40.f,-40.f,-40.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*175*/ - {-40.f,-40.f,-40.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*250*/ - {-40.f,-40.f,-40.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*350*/ - {-40.f,-40.f,-40.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*500*/ - {-40.f,-40.f,-40.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*700*/ - - {-40.f,-40.f,-40.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*1000*/ - {-40.f,-40.f,-40.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*1400*/ - {-40.f,-40.f,-40.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*2000*/ - {-40.f,-40.f,-40.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*2800*/ - {-40.f,-40.f,-40.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*4000*/ - {-40.f,-40.f,-40.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*5600*/ - - {-40.f,-40.f,-40.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*8000*/ - {-40.f,-40.f,-40.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*11500*/ - {-40.f,-40.f,-40.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*16000*/ - - }, - - 1, - {{-20.f,-20.f,-20.f,-24.f,-24.f,-24.f,-28.f,-28.f,-28.f,-28.f,-28.f},/*63*/ - {-20.f,-20.f,-20.f,-24.f,-24.f,-24.f,-28.f,-28.f,-28.f,-28.f,-28.f},/*88*/ - {-20.f,-20.f,-20.f,-20.f,-24.f,-24.f,-28.f,-28.f,-28.f,-28.f,-28.f},/*125*/ - {-20.f,-20.f,-20.f,-20.f,-24.f,-24.f,-24.f,-24.f,-28.f,-28.f,-28.f},/*175*/ - {-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-24.f,-24.f,-28.f,-28.f,-28.f},/*250*/ - {-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-24.f,-24.f,-28.f,-28.f,-28.f},/*350*/ - {-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-28.f,-24.f,-28.f,-28.f,-28.f},/*500*/ - {-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-24.f,-24.f,-28.f,-28.f,-28.f},/*700*/ - {-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-24.f,-24.f,-28.f,-28.f,-28.f},/*1000*/ - {-20.f,-20.f,-20.f,-20.f,-24.f,-24.f,-24.f,-24.f,-28.f,-28.f,-28.f},/*1400*/ - {-20.f,-20.f,-20.f,-20.f,-24.f,-24.f,-24.f,-24.f,-28.f,-28.f,-28.f},/*2000*/ - {-20.f,-20.f,-20.f,-20.f,-24.f,-24.f,-24.f,-24.f,-28.f,-28.f,-28.f},/*2800*/ - {-20.f,-20.f,-20.f,-20.f,-22.f,-20.f,-24.f,-24.f,-28.f,-28.f,-28.f},/*4000*/ - {-20.f,-20.f,-20.f,-20.f,-22.f,-20.f,-22.f,-24.f,-28.f,-28.f,-28.f},/*5600*/ - {-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-22.f,-24.f,-28.f,-28.f,-28.f},/*8000*/ - {-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-22.f,-24.f,-28.f,-28.f,-28.f},/*11500*/ - {-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-22.f,-24.f,-28.f,-28.f,-28.f},/*16000*/ - }, - - 1,/*noisemaskp */ - -28.f, /* suppress any noise curve over maxspec+n */ - .5f, /* low window */ - .5f, /* high window */ - 25, - 25, - 40, - {.000f, 0.f, /*63*/ - .000f, 0.f, /*88*/ - .000f, 0.f, /*125*/ - .000f, 0.f, /*175*/ - .000f, 0.f, /*250*/ - .000f, 0.f, /*350*/ - .000f, 0.f, /*500*/ - .000f, 0.f, /*700*/ - .200f, 0.f, /*1000*/ - .300f, 0.f, /*1400*/ - .300f, 0.f, /*2000*/ - .300f, 0.f, /*2800*/ - .300f, 0.f, /*4000*/ - .400f, 0.f, /*5600*/ - .600f, 0.f, /*8000*/ - .600f, 0.f, /*11500*/ - .650f, 0.f, /*16000*/ - }, - - 105.f, /* even decade + 5 is important; saves an rint() later in a - tight loop) */ - -32., - -}; - -/* with GNUisms, this could be short and readable. Oh well */ -static vorbis_info_time0 _time_set0C={0}; -static vorbis_info_floor0 _floor_set0C={12, 44100, 64, 10,130, 2, {0,1}, - 0.199f, .285f}; -static vorbis_info_floor0 _floor_set1C={30, 44100, 256, 12,150, 2, {2,3}, - .082f, .126f}; -static vorbis_info_residue0 _residue_set0C={0,128,16,6,4, - {0,1,1,1,1,1}, - {6,7,8,9,10}, - - {0,99999,9999,9999,9999}, - {999.f,1.5f,3.5f,15.5f,26.5f}, - {4,4,4,4,4}, - {99,99,99,99,99}}; - -static vorbis_info_residue0 _residue_set1C={0, 960, 32,10,5, - {0,1,1,1,1,1,1,1,1,1}, - {11,12,13,14,15,16,17,18,19}, - - {0,8,9999,16,9999, - 24,9999,9999,9999}, - {999.f,1.5f,1.5f,2.5f,2.5f, - 6.5f,6.5f,14.5f,30.f}, - {5,5,5,5,5,5,5,5,5}, - {99,99,99,99,99,99,99,99,99}}; - -static vorbis_info_mapping0 _mapping_set0C={1, {0,0}, {0}, {0}, {0}, {0}}; -static vorbis_info_mapping0 _mapping_set1C={1, {0,0}, {0}, {1}, {1}, {1}}; -static vorbis_info_mode _mode_set0C={0,0,0,0}; -static vorbis_info_mode _mode_set1C={1,0,0,1}; - -/* CD quality stereo, no channel coupling */ -codec_setup_info info_C={ - - /* smallblock, largeblock */ - {256, 2048}, - /* modes,maps,times,floors,residues,books,psys */ - 2, 2, 1, 2, 2, 20, 2, - /* modes */ - {&_mode_set0C,&_mode_set1C}, - /* maps */ - {0,0},{&_mapping_set0C,&_mapping_set1C}, - /* times */ - {0,0},{&_time_set0C}, - /* floors */ - {0,0},{&_floor_set0C,&_floor_set1C}, - /* residue */ - {0,0},{&_residue_set0C,&_residue_set1C}, - /* books */ - {&_vq_book_lsp12_0, /* 0 */ - &_vq_book_lsp12_1, /* 1 */ - &_vq_book_lsp30_0, /* 2 */ - &_vq_book_lsp30_1, /* 3 */ - - &_huff_book_res0_192_128aux, - &_huff_book_res0_192_1024aux, - - &_vq_book_res0_192_128_1, - &_vq_book_res0_192_128_2, - &_vq_book_res0_192_128_3, - &_vq_book_res0_192_128_4, - &_vq_book_res0_192_128_5, - - &_vq_book_res0_192_1024_1, - &_vq_book_res0_192_1024_2, - &_vq_book_res0_192_1024_3, - &_vq_book_res0_192_1024_4, - &_vq_book_res0_192_1024_5, - &_vq_book_res0_192_1024_6, - &_vq_book_res0_192_1024_7, - &_vq_book_res0_192_1024_8, - &_vq_book_res0_192_1024_9, - - }, - /* psy */ - {&_psy_set_C0,&_psy_set_C}, - - /* thresh sample period, preecho clamp trigger threshhold, range, minenergy */ - 256, {26.f,26.f,26.f,30.f}, {-90.f,-90.f,-90.f,-90.f}, -90.f, - - -10., - - 0, -}; - -#define PREDEF_INFO_MAX 0 - -#endif diff --git a/lib/modes/mode_D.h b/lib/modes/mode_D.h deleted file mode 100644 index 27145d1f..00000000 --- a/lib/modes/mode_D.h +++ /dev/null @@ -1,310 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: predefined encoding modes - last mod: $Id: mode_D.h,v 1.15 2001/06/18 09:07:32 xiphmont Exp $ - - ********************************************************************/ - -#ifndef _V_MODES_D_H_ -#define _V_MODES_D_H_ - -#include <stdio.h> -#include "vorbis/codec.h" -#include "backends.h" - -#include "books/lsp12_0.vqh" -#include "books/lsp30_0.vqh" -#include "books/lsp12_1.vqh" -#include "books/lsp30_1.vqh" - -#include "books/res0_256_128aux.vqh" -#include "books/res0_256_1024aux.vqh" - -#include "books/res0_256_128_1.vqh" -#include "books/res0_256_128_2.vqh" -#include "books/res0_256_128_3.vqh" -#include "books/res0_256_128_4.vqh" -#include "books/res0_256_128_5.vqh" - -#include "books/res0_256_1024_1.vqh" -#include "books/res0_256_1024_2.vqh" -#include "books/res0_256_1024_3.vqh" -#include "books/res0_256_1024_4.vqh" -#include "books/res0_256_1024_5.vqh" -#include "books/res0_256_1024_6.vqh" -#include "books/res0_256_1024_7.vqh" - - -static vorbis_info_psy _psy_set_D0={ - ATH_Bark_dB_lspconservative, - 1,/*decayp*/ - - -100., - -140., - - 8, - - /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ - /* x: 63 88 125 175 250 350 500 700 1k 1.4k 2k 2.8k 4k 5.6k 8k 11.5k 16k Hz */ - /* y: 0 10 20 30 40 50 60 70 80 90 100 dB */ - - 1,/* tonemaskp */ - /* 0 10 20 30 40 50 60 70 80 90 100 */ - { - {-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.}, /*63*/ - {-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.}, /*88*/ - {-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.}, /*125*/ - {-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.}, /*175*/ - {-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.}, /*250*/ - {-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.}, /*350*/ - {-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.}, /*500*/ - {-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.}, /*700*/ - - {-35.,-40.,-40.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*1000*/ - {-35.,-40.,-40.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*1400*/ - {-40.,-40.,-40.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*2000*/ - {-40.,-40.,-40.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*2800*/ - {-35.,-40.,-40.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*4000*/ - {-35.,-40.,-40.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*5600*/ - {-35.,-40.,-40.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*8000*/ - {-35.,-40.,-40.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*11500*/ - {-35.,-40.,-40.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*16000*/ - }, - - 1,/* peakattp */ - {{-16.f,-20.f,-20.f,-22.f,-22.f,-22.f,-26.f,-26.f,-26.f,-26.f,-26.f},/*63*/ - {-16.f,-20.f,-20.f,-22.f,-22.f,-22.f,-26.f,-26.f,-26.f,-26.f,-26.f},/*88*/ - {-16.f,-20.f,-20.f,-22.f,-22.f,-22.f,-26.f,-26.f,-26.f,-26.f,-26.f},/*125*/ - {-16.f,-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-26.f,-26.f,-26.f,-26.f},/*175*/ - {-16.f,-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-26.f,-26.f,-26.f,-26.f},/*250*/ - {-16.f,-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-26.f,-26.f,-26.f,-26.f},/*350*/ - {-16.f,-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-26.f,-26.f,-26.f,-26.f},/*500*/ - {-16.f,-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-26.f,-26.f,-26.f,-26.f},/*700*/ - {-16.f,-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-26.f,-26.f,-26.f,-26.f},/*1000*/ - {-16.f,-20.f,-20.f,-20.f,-20.f,-20.f,-22.f,-26.f,-26.f,-26.f,-26.f},/*2000*/ - {-16.f,-20.f,-20.f,-20.f,-20.f,-20.f,-22.f,-26.f,-26.f,-26.f,-26.f},/*2000*/ - {-16.f,-20.f,-20.f,-20.f,-20.f,-20.f,-22.f,-26.f,-26.f,-26.f,-26.f},/*2600*/ - {-16.f,-20.f,-20.f,-20.f,-20.f,-20.f,-22.f,-26.f,-26.f,-26.f,-26.f},/*4000*/ - {-16.f,-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-26.f,-26.f,-26.f},/*5600*/ - {-16.f,-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-26.f,-26.f,-26.f},/*8000*/ - {-16.f,-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-26.f,-26.f,-26.f},/*11500*/ - {-16.f,-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-26.f,-26.f},/*16000*/ - }, - - 1,/*noisemaskp */ - -20.f, /* suppress any noise curve over maxspec+n */ - .5f, /* low window */ - .5f, /* high window */ - 5, - 5, - 10, - {.000f, 0.f,/*63*/ - .000f, 0.f,/*88*/ - .000f, 0.f,/*125*/ - .000f, 0.f,/*175*/ - .000f, 0.f,/*250*/ - .000f, 0.f,/*350*/ - .000f, 0.f,/*500*/ - .100f, 0.f,/*700*/ - .100f, 0.f,/*1000*/ - .100f, 0.f,/*1400*/ - .100f, 0.f,/*2000*/ - .100f, 0.f,/*2800*/ - .200f, 0.f,/*4000*/ - .300f, 0.f,/*5600*/ - .400f, 0.f,/*8000*/ - .400f, 0.f,/*11500*/ - .400f, 0.f,/*16000*/ - }, - - 105.f, /* even decade + 5 is important; saves an rint() later in a - tight loop) */ - -28., -}; - -static vorbis_info_psy _psy_set_D={ - ATH_Bark_dB_lspconservative, - 1,/*decayp*/ - - -100.f, - -140.f, - - 8, - - /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ - /* x: 63 88 125 175 250 350 500 700 1k 1.4k 2k 2.8k 4k 5.6k 8k 11.5k 16k Hz */ - /* y: 0 10 20 30 40 50 60 70 80 90 100 dB */ - 1,/* tonemaskp */ - /* 0 10 20 30 40 50 60 70 80 90 100 */ - { - {-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f}, /*63*/ - {-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f}, /*88*/ - {-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f}, /*125*/ - - {-40.f,-40.f,-40.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*175*/ - {-40.f,-40.f,-40.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*250*/ - {-40.f,-40.f,-40.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*350*/ - {-40.f,-40.f,-40.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*500*/ - {-40.f,-40.f,-40.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*700*/ - - {-40.f,-40.f,-40.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*1000*/ - {-40.f,-40.f,-40.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*1400*/ - {-40.f,-40.f,-40.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*2000*/ - {-40.f,-40.f,-40.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*2800*/ - {-40.f,-40.f,-40.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*4000*/ - {-40.f,-40.f,-40.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*5600*/ - - {-40.f,-40.f,-40.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*8000*/ - {-40.f,-40.f,-40.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*11500*/ - {-40.f,-40.f,-40.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*16000*/ - - }, - - 1, - {{-20.f,-20.f,-20.f,-24.f,-24.f,-24.f,-28.f,-28.f,-28.f,-28.f,-28.f},/*63*/ - {-20.f,-20.f,-20.f,-24.f,-24.f,-24.f,-28.f,-28.f,-28.f,-28.f,-28.f},/*88*/ - {-20.f,-20.f,-20.f,-20.f,-24.f,-24.f,-28.f,-28.f,-28.f,-28.f,-28.f},/*125*/ - {-20.f,-20.f,-20.f,-20.f,-24.f,-24.f,-24.f,-24.f,-28.f,-28.f,-28.f},/*175*/ - {-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-24.f,-24.f,-28.f,-28.f,-28.f},/*250*/ - {-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-24.f,-24.f,-28.f,-28.f,-28.f},/*350*/ - {-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-28.f,-24.f,-28.f,-28.f,-28.f},/*500*/ - {-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-24.f,-24.f,-28.f,-28.f,-28.f},/*700*/ - {-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-24.f,-24.f,-28.f,-28.f,-28.f},/*1000*/ - {-20.f,-20.f,-20.f,-20.f,-24.f,-24.f,-24.f,-24.f,-28.f,-28.f,-28.f},/*1400*/ - {-20.f,-20.f,-20.f,-20.f,-24.f,-24.f,-24.f,-24.f,-28.f,-28.f,-28.f},/*2000*/ - {-20.f,-20.f,-20.f,-20.f,-24.f,-24.f,-24.f,-24.f,-28.f,-28.f,-28.f},/*2800*/ - {-20.f,-20.f,-20.f,-20.f,-22.f,-20.f,-24.f,-24.f,-28.f,-28.f,-28.f},/*4000*/ - {-20.f,-20.f,-20.f,-20.f,-22.f,-20.f,-22.f,-24.f,-28.f,-28.f,-28.f},/*5600*/ - {-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-22.f,-24.f,-28.f,-28.f,-28.f},/*8000*/ - {-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-22.f,-24.f,-28.f,-28.f,-28.f},/*11500*/ - {-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-22.f,-24.f,-28.f,-28.f,-28.f},/*16000*/ - }, - - 1,/*noisemaskp */ - -28.f, /* suppress any noise curve over maxspec+n */ - .5f, /* low window */ - .5f, /* high window */ - 25, - 25, - 40, - {.000f, 0.f, /*63*/ - .000f, 0.f, /*88*/ - .000f, 0.f, /*125*/ - .000f, 0.f, /*175*/ - .000f, 0.f, /*250*/ - .000f, 0.f, /*350*/ - .000f, 0.f, /*500*/ - .000f, 0.f, /*700*/ - .000f, 0.f, /*1000*/ - .000f, 0.f, /*1400*/ - .000f, 0.f, /*2000*/ - .000f, 0.f, /*2800*/ - .050f, 0.f, /*4000*/ - .100f, 0.f, /*5600*/ - .100f, 0.f, /*8000*/ - .120f, 0.f, /*11500*/ - .150f, 0.f, /*16000*/ - }, - - 105.f, /* even decade + 5 is important; saves an rint() later in a - tight loop) */ - -32., - -}; - -/* with GNUisms, this could be short and readable. Oh well */ -static vorbis_info_time0 _time_set0D={0}; -static vorbis_info_floor0 _floor_set0D={12, 44100, 64, 10,130, 2, {0,1}, - 0.199f, .285f}; -static vorbis_info_floor0 _floor_set1D={30, 44100, 256, 12,150, 2, {2,3}, - .082f, .126f}; -static vorbis_info_residue0 _residue_set0D={0,128,16,6,4, - {0,1,1,1,1,1}, - {6,7,8,9,10}, - - {0,99999,9999,9999,9999}, - {999.f,1.5f,2.5f,6.5f,40.5f}, - {4,4,4,4,4}, - {99,99,99,99,99}}; - -static vorbis_info_residue0 _residue_set1D={0,1024, 32,8,5, - {0,1,1,1,1,1,1,1,1,1}, - {11,12,13,14,15,16,17,18,19}, - - {0,9999,9999,60,9999, - 9999,9999}, - {999.f,2.5f,4.5f,10.5f,10.5f, - 20.5f,40.f}, - {5,5,5,5,5,5,5}, - {99,99,99,99,99,99,99,99,99}}; - -static vorbis_info_mapping0 _mapping_set0D={1, {0,0}, {0}, {0}, {0}, {0}}; -static vorbis_info_mapping0 _mapping_set1D={1, {0,0}, {0}, {1}, {1}, {1}}; -static vorbis_info_mode _mode_set0D={0,0,0,0}; -static vorbis_info_mode _mode_set1D={1,0,0,1}; - -/* CD quality stereo, no channel coupling */ -codec_setup_info info_D={ - - /* smallblock, largeblock */ - {256, 2048}, - /* modes,maps,times,floors,residues,books,psys */ - 2, 2, 1, 2, 2, 18, 2, - /* modes */ - {&_mode_set0D,&_mode_set1D}, - /* maps */ - {0,0},{&_mapping_set0D,&_mapping_set1D}, - /* times */ - {0,0},{&_time_set0D}, - /* floors */ - {0,0},{&_floor_set0D,&_floor_set1D}, - /* residue */ - {0,0},{&_residue_set0D,&_residue_set1D}, - /* books */ - {&_vq_book_lsp12_0, /* 0 */ - &_vq_book_lsp12_1, /* 1 */ - &_vq_book_lsp30_0, /* 2 */ - &_vq_book_lsp30_1, /* 3 */ - - &_huff_book_res0_256_128aux, - &_huff_book_res0_256_1024aux, - - &_vq_book_res0_256_128_1, - &_vq_book_res0_256_128_2, - &_vq_book_res0_256_128_3, - &_vq_book_res0_256_128_4, - &_vq_book_res0_256_128_5, - - &_vq_book_res0_256_1024_1, - &_vq_book_res0_256_1024_2, - &_vq_book_res0_256_1024_3, - &_vq_book_res0_256_1024_4, - &_vq_book_res0_256_1024_5, - &_vq_book_res0_256_1024_6, - &_vq_book_res0_256_1024_7, - - }, - /* psy */ - {&_psy_set_D0,&_psy_set_D}, - - /* thresh sample period, preecho clamp trigger threshhold, range, minenergy */ - 256, {26.f,26.f,26.f,30.f}, {-36.f,-36.f,-36.f,-36.f}, -90.f, - - -10., - - 0, -}; - -#define PREDEF_INFO_MAX 0 - -#endif diff --git a/lib/modes/mode_E.h b/lib/modes/mode_E.h deleted file mode 100644 index f8700503..00000000 --- a/lib/modes/mode_E.h +++ /dev/null @@ -1,276 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: predefined encoding modes - last mod: $Id: mode_E.h,v 1.14 2001/06/18 09:07:32 xiphmont Exp $ - - ********************************************************************/ - -#ifndef _V_MODES_E_H_ -#define _V_MODES_E_H_ - -#include <stdio.h> -#include "vorbis/codec.h" -#include "backends.h" - -#include "books/lsp12_0.vqh" -#include "books/lsp30_0.vqh" -#include "books/lsp12_1.vqh" -#include "books/lsp30_1.vqh" - -#include "books/res0_256_128aux.vqh" -#include "books/res0_256_1024aux.vqh" - -#include "books/res0_256_128_1.vqh" -#include "books/res0_256_128_2.vqh" -#include "books/res0_256_128_3.vqh" -#include "books/res0_256_128_4.vqh" -#include "books/res0_256_128_5.vqh" - -#include "books/res0_256_1024_1.vqh" -#include "books/res0_256_1024_2.vqh" -#include "books/res0_256_1024_3.vqh" -#include "books/res0_256_1024_4.vqh" -#include "books/res0_256_1024_5.vqh" -#include "books/res0_256_1024_6.vqh" -#include "books/res0_350_1024_7.vqh" - - -static vorbis_info_psy _psy_set_E0={ - ATH_Bark_dB_lspconservative, - 1,/*decayp*/ - - -100., - -140., - - 8, - - /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ - /* x: 63 88 125 175 250 350 500 700 1k 1.4k 2k 2.8k 4k 5.6k 8k 11.5k 16k Hz */ - /* y: 0 10 20 30 40 50 60 70 80 90 100 dB */ - - 1,/* tonemaskp */ - /* 0 10 20 30 40 50 60 70 80 90 100 */ - { - {-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.}, /*63*/ - {-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.}, /*88*/ - {-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.}, /*125*/ - {-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.}, /*175*/ - {-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.}, /*250*/ - {-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.}, /*350*/ - {-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.}, /*500*/ - {-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.,-999.}, /*700*/ - - {-40.,-40.,-40.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*1000*/ - {-40.,-40.,-40.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*1400*/ - {-40.,-45.,-45.,-45.,-45.,-55.,-65.,-75.,-85.,-95.,-105.}, /*2000*/ - {-40.,-45.,-45.,-45.,-45.,-55.,-65.,-75.,-85.,-95.,-105.}, /*2800*/ - {-40.,-45.,-45.,-45.,-45.,-55.,-65.,-75.,-85.,-95.,-105.}, /*4000*/ - {-40.,-40.,-40.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*5600*/ - {-40.,-40.,-40.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*8000*/ - {-40.,-40.,-40.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*11500*/ - {-40.,-40.,-40.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*16000*/ - }, - - 1,/* peakattp */ - {{-20.f,-22.f,-24.f,-26.f,-26.f,-26.f,-26.f,-26.f,-26.f,-26.f,-26.f},/*63*/ - {-20.f,-22.f,-24.f,-26.f,-26.f,-26.f,-26.f,-26.f,-26.f,-26.f,-26.f},/*88*/ - {-20.f,-22.f,-24.f,-26.f,-26.f,-26.f,-26.f,-26.f,-26.f,-26.f,-26.f},/*125*/ - {-20.f,-22.f,-24.f,-26.f,-26.f,-26.f,-26.f,-26.f,-26.f,-26.f,-26.f},/*175*/ - {-20.f,-22.f,-24.f,-26.f,-26.f,-26.f,-26.f,-26.f,-26.f,-26.f,-26.f},/*250*/ - {-20.f,-22.f,-24.f,-26.f,-26.f,-26.f,-26.f,-26.f,-26.f,-26.f,-26.f},/*350*/ - {-20.f,-22.f,-24.f,-26.f,-26.f,-26.f,-26.f,-26.f,-26.f,-26.f,-26.f},/*500*/ - {-20.f,-22.f,-24.f,-26.f,-26.f,-26.f,-26.f,-26.f,-26.f,-26.f,-26.f},/*700*/ - {-20.f,-22.f,-24.f,-26.f,-26.f,-26.f,-26.f,-26.f,-26.f,-26.f,-26.f},/*1000*/ - {-20.f,-22.f,-24.f,-26.f,-26.f,-26.f,-26.f,-26.f,-26.f,-26.f,-26.f},/*1400*/ - {-20.f,-22.f,-24.f,-26.f,-26.f,-26.f,-26.f,-26.f,-26.f,-26.f,-26.f},/*2000*/ - {-20.f,-22.f,-24.f,-26.f,-26.f,-26.f,-26.f,-26.f,-26.f,-26.f,-26.f},/*2600*/ - {-20.f,-22.f,-24.f,-26.f,-26.f,-26.f,-26.f,-26.f,-26.f,-26.f,-26.f},/*4000*/ - {-20.f,-22.f,-24.f,-26.f,-26.f,-26.f,-26.f,-26.f,-26.f,-26.f,-26.f},/*5600*/ - {-20.f,-22.f,-22.f,-24.f,-26.f,-26.f,-26.f,-26.f,-26.f,-26.f,-26.f},/*8000*/ - {-20.f,-22.f,-22.f,-22.f,-24.f,-26.f,-26.f,-26.f,-26.f,-26.f,-26.f},/*11500*/ - {-16.f,-20.f,-22.f,-22.f,-24.f,-26.f,-26.f,-26.f,-26.f,-26.f,-26.f},/*16000*/ - }, - - 0,/*noisemaskp */ - -20.f, /* suppress any noise curve over maxspec+n */ - .5f, /* low window */ - .5f, /* high window */ - 5, - 5, - 10, - {0.f}, - - 105.f, /* even decade + 5 is important; saves an rint() later in a - tight loop) */ - -28., -}; - -static vorbis_info_psy _psy_set_E={ - ATH_Bark_dB_lspconservative, - 1,/*decayp*/ - - -100.f, - -140.f, - - 8, - - /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ - /* x: 63 88 125 175 250 350 500 700 1k 1.4k 2k 2.8k 4k 5.6k 8k 11.5k 16k Hz */ - /* y: 0 10 20 30 40 50 60 70 80 90 100 dB */ - 1,/* tonemaskp */ - /* 0 10 20 30 40 50 60 70 80 90 100 */ - { - {-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f}, /*63*/ - {-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f}, /*88*/ - {-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f}, /*125*/ - - {-40.f,-45.f,-45.f,-45.f,-45.f,-55.f,-65.f,-75.f,-85.f,-95.f,-105.f}, /*175*/ - {-40.f,-45.f,-45.f,-45.f,-45.f,-55.f,-65.f,-75.f,-85.f,-95.f,-105.f}, /*250*/ - {-40.f,-45.f,-45.f,-45.f,-45.f,-55.f,-65.f,-75.f,-85.f,-95.f,-105.f}, /*350*/ - {-40.f,-45.f,-45.f,-45.f,-45.f,-55.f,-65.f,-75.f,-85.f,-95.f,-105.f}, /*500*/ - {-40.f,-45.f,-45.f,-45.f,-45.f,-55.f,-65.f,-75.f,-85.f,-95.f,-105.f}, /*700*/ - - {-40.f,-45.f,-45.f,-45.f,-45.f,-55.f,-65.f,-75.f,-85.f,-95.f,-105.f}, /*1000*/ - {-40.f,-45.f,-50.f,-50.f,-50.f,-60.f,-70.f,-80.f,-90.f,-99.f,-110.f}, /*1400*/ - {-40.f,-45.f,-50.f,-50.f,-50.f,-60.f,-70.f,-80.f,-90.f,-99.f,-110.f}, /*2000*/ - {-40.f,-45.f,-50.f,-50.f,-50.f,-60.f,-70.f,-80.f,-90.f,-99.f,-110.f}, /*2800*/ - {-40.f,-45.f,-50.f,-50.f,-50.f,-60.f,-70.f,-80.f,-90.f,-99.f,-110.f}, /*4000*/ - {-40.f,-45.f,-45.f,-45.f,-45.f,-55.f,-65.f,-75.f,-85.f,-95.f,-105.f}, /*5600*/ - - {-40.f,-45.f,-45.f,-45.f,-45.f,-55.f,-65.f,-75.f,-85.f,-95.f,-105.f}, /*8000*/ - {-40.f,-45.f,-45.f,-45.f,-45.f,-55.f,-65.f,-75.f,-85.f,-95.f,-105.f}, /*11500*/ - {-40.f,-40.f,-45.f,-45.f,-45.f,-55.f,-65.f,-75.f,-85.f,-95.f,-105.f}, /*16000*/ - - }, - - 1, - {{-26.f,-26.f,-26.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f},/*63*/ - {-26.f,-26.f,-26.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f},/*88*/ - {-26.f,-26.f,-26.f,-26.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f},/*125*/ - {-26.f,-26.f,-26.f,-26.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f},/*175*/ - {-26.f,-26.f,-26.f,-26.f,-26.f,-26.f,-28.f,-28.f,-28.f,-28.f,-28.f},/*250*/ - {-26.f,-26.f,-26.f,-26.f,-26.f,-26.f,-28.f,-28.f,-28.f,-28.f,-28.f},/*350*/ - {-26.f,-26.f,-26.f,-26.f,-26.f,-26.f,-28.f,-28.f,-28.f,-28.f,-28.f},/*500*/ - {-26.f,-26.f,-26.f,-26.f,-26.f,-26.f,-28.f,-28.f,-28.f,-28.f,-28.f},/*700*/ - {-26.f,-26.f,-26.f,-26.f,-26.f,-26.f,-28.f,-28.f,-28.f,-28.f,-28.f},/*1000*/ - {-26.f,-26.f,-26.f,-26.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f},/*1400*/ - {-26.f,-26.f,-26.f,-26.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f},/*2000*/ - {-26.f,-26.f,-26.f,-26.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f},/*2800*/ - {-26.f,-26.f,-26.f,-26.f,-26.f,-26.f,-28.f,-28.f,-28.f,-28.f,-28.f},/*4000*/ - {-26.f,-26.f,-26.f,-26.f,-26.f,-26.f,-26.f,-28.f,-28.f,-28.f,-28.f},/*5600*/ - {-26.f,-26.f,-26.f,-26.f,-26.f,-26.f,-26.f,-28.f,-28.f,-28.f,-28.f},/*8000*/ - {-26.f,-26.f,-26.f,-26.f,-26.f,-26.f,-26.f,-28.f,-28.f,-28.f,-28.f},/*11500*/ - {-26.f,-26.f,-26.f,-26.f,-26.f,-26.f,-26.f,-28.f,-28.f,-28.f,-28.f},/*16000*/ - }, - - 0,/*noisemaskp */ - -28.f, /* suppress any noise curve over maxspec+n */ - .5f, /* low window */ - .5f, /* high window */ - 25, - 25, - 40, - {0.f}, - - 105.f, /* even decade + 5 is important; saves an rint() later in a - tight loop) */ - -32., - -}; - -/* with GNUisms, this could be short and readable. Oh well */ -static vorbis_info_time0 _time_set0E={0}; -static vorbis_info_floor0 _floor_set0E={12, 44100, 64, 10,130, 2, {0,1}, - 0.199f, .285f}; -static vorbis_info_floor0 _floor_set1E={30, 44100, 256, 12,150, 2, {2,3}, - .082f, .126f}; -static vorbis_info_residue0 _residue_set0E={0,128,16,6,4, - {0,1,1,1,1,1}, - {6,7,8,9,10}, - - {0,99999,9999,9999,9999}, - {999.f,1.5f,2.5f,6.5f,40.5f}, - {4,4,4,4,4}, - {99,99,99,99,99}}; - -static vorbis_info_residue0 _residue_set1E={0,1024, 32,8,5, - {0,1,1,1,1,1,1,1,1,1}, - {11,12,13,14,15,16,17,18,19}, - - {0,9999,9999,60,9999, - 9999,9999}, - {999.f,2.5f,4.5f,10.5f,10.5f, - 20.5f,40.f}, - {5,5,5,5,5,5,5}, - {99,99,99,99,99,99,99,99,99}}; - -static vorbis_info_mapping0 _mapping_set0E={1, {0,0}, {0}, {0}, {0}, {0}}; -static vorbis_info_mapping0 _mapping_set1E={1, {0,0}, {0}, {1}, {1}, {1}}; -static vorbis_info_mode _mode_set0E={0,0,0,0}; -static vorbis_info_mode _mode_set1E={1,0,0,1}; - -/* CD quality stereo, no channel coupling */ -codec_setup_info info_E={ - - /* smallblock, largeblock */ - {256, 2048}, - /* modes,maps,times,floors,residues,books,psys */ - 2, 2, 1, 2, 2, 18, 2, - /* modes */ - {&_mode_set0E,&_mode_set1E}, - /* maps */ - {0,0},{&_mapping_set0E,&_mapping_set1E}, - /* times */ - {0,0},{&_time_set0E}, - /* floors */ - {0,0},{&_floor_set0E,&_floor_set1E}, - /* residue */ - {0,0},{&_residue_set0E,&_residue_set1E}, - /* books */ - {&_vq_book_lsp12_0, /* 0 */ - &_vq_book_lsp12_1, /* 1 */ - &_vq_book_lsp30_0, /* 2 */ - &_vq_book_lsp30_1, /* 3 */ - - &_huff_book_res0_256_128aux, - &_huff_book_res0_256_1024aux, - - &_vq_book_res0_256_128_1, - &_vq_book_res0_256_128_2, - &_vq_book_res0_256_128_3, - &_vq_book_res0_256_128_4, - &_vq_book_res0_256_128_5, - - &_vq_book_res0_256_1024_1, - &_vq_book_res0_256_1024_2, - &_vq_book_res0_256_1024_3, - &_vq_book_res0_256_1024_4, - &_vq_book_res0_256_1024_5, - &_vq_book_res0_256_1024_6, - &_vq_book_res0_350_1024_7, - - }, - /* psy */ - {&_psy_set_E0,&_psy_set_E}, - - /* thresh sample period, preecho clamp trigger threshhold, range, minenergy */ - 256, {26.f,26.f,26.f,30.f}, {-36.f,-36.f,-36.f,-36.f}, -90.f, - - -10., - - 0, -}; - -#define PREDEF_INFO_MAX 0 - -#endif diff --git a/lib/modes/modes.h b/lib/modes/modes.h deleted file mode 100644 index b218e76e..00000000 --- a/lib/modes/modes.h +++ /dev/null @@ -1,29 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: predefined encoding modes - last mod: $Id: modes.h,v 1.8 2001/06/15 21:15:43 xiphmont Exp $ - - ********************************************************************/ - -#ifndef _V_MODES_H_ -#define _V_MODES_H_ - -#include "masking.h" -#include "modes/mode_AA.h" -#include "modes/mode_A.h" -#include "modes/mode_B.h" -#include "modes/mode_C.h" -#include "modes/mode_D.h" -#include "modes/mode_E.h" - -#endif diff --git a/lib/os.h b/lib/os.h deleted file mode 100644 index bef8a595..00000000 --- a/lib/os.h +++ /dev/null @@ -1,166 +0,0 @@ -#ifndef _OS_H -#define _OS_H -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - * * - ******************************************************************** - - function: #ifdef jail to whip a few platforms into the UNIX ideal. - last mod: $Id: os.h,v 1.26 2001/06/04 05:50:10 xiphmont Exp $ - - ********************************************************************/ - -#include <math.h> -#include <ogg/os_types.h> - -#ifndef _V_IFDEFJAIL_H_ -# define _V_IFDEFJAIL_H_ - -# ifdef __GNUC__ -# define STIN static inline -# elif _WIN32 -# define STIN static __inline -#else -# define STIN static -#endif - -#ifndef M_PI -# define M_PI (3.1415926536f) -#endif - -#ifdef _WIN32 -# include <malloc.h> -# define rint(x) (floor((x)+0.5f)) -# define NO_FLOAT_MATH_LIB -# define FAST_HYPOT(a, b) sqrt((a)*(a) + (b)*(b)) -#endif - -#ifdef HAVE_SQRTF -# define sqrt sqrtf -#endif -#ifdef HAVE_LOGF -# define log logf -#endif -#ifdef HAVE_EXPF -# define exp expf -#endif -#ifdef HAVE_POWF -# define pow powf -#endif -#ifdef HAVE_ACOSF -# define acos acosf -#endif -#ifdef HAVE_ATANF -# define atan atanf -#endif -#ifdef HAVE_FREXPF -# define frexp frexpf -#endif -#ifdef HAVE_RINTF -# define rint rintf -#endif - -#ifndef FAST_HYPOT -# define FAST_HYPOT hypot -#endif - -#endif - -#ifdef HAVE_ALLOCA_H -# include <alloca.h> -#endif - -#ifdef USE_MEMORY_H -# include <memory.h> -#endif - -#ifndef min -# define min(x,y) ((x)>(y)?(y):(x)) -#endif - -#ifndef max -# define max(x,y) ((x)<(y)?(y):(x)) -#endif - -#if defined(__i386__) && defined(__GNUC__) && !defined(__BEOS__) -# define VORBIS_FPU_CONTROL -/* both GCC and MSVC are kinda stupid about rounding/casting to int. - Because of encapsulation constraints (GCC can't see inside the asm - block and so we end up doing stupid things like a store/load that - is collectively a noop), we do it this way */ - -/* we must set up the fpu before this works!! */ - -typedef ogg_int16_t vorbis_fpu_control; - -static inline void vorbis_fpu_setround(vorbis_fpu_control *fpu){ - ogg_int16_t ret; - ogg_int16_t temp; - __asm__ __volatile__("fnstcw %0\n\t" - "movw %0,%%dx\n\t" - "orw $62463,%%dx\n\t" - "movw %%dx,%1\n\t" - "fldcw %1\n\t":"=m"(ret):"m"(temp): "dx"); - *fpu=ret; -} - -static inline void vorbis_fpu_restore(vorbis_fpu_control fpu){ - __asm__ __volatile__("fldcw %0":: "m"(fpu)); -} - -/* assumes the FPU is in round mode! */ -static inline int vorbis_ftoi(double f){ /* yes, double! Otherwise, - we get extra fst/fld to - truncate precision */ - int i; - __asm__("fistl %0": "=m"(i) : "t"(f)); - return(i); -} -#endif - - -#if defined(_WIN32) && !defined(__GNUC__) -# define VORBIS_FPU_CONTROL - -typedef ogg_int16_t vorbis_fpu_control; - -static __inline int vorbis_ftoi(double f){ - int i; - __asm{ - fld f - fistp i - } - return i; -} - -static __inline void vorbis_fpu_setround(vorbis_fpu_control *fpu){ -} - -static __inline void vorbis_fpu_restore(vorbis_fpu_control fpu){ -} - -#endif - - -#ifndef VORBIS_FPU_CONTROL - -typedef int vorbis_fpu_control; - -static int vorbis_ftoi(double f){ - return (int)(f+.5); -} - -/* We don't have special code for this compiler/arch, so do it the slow way */ -# define vorbis_fpu_setround(vorbis_fpu_control) {} -# define vorbis_fpu_restore(vorbis_fpu_control) {} - -#endif - -#endif /* _OS_H */ diff --git a/lib/psy.h b/lib/psy.h deleted file mode 100644 index 4047f59b..00000000 --- a/lib/psy.h +++ /dev/null @@ -1,99 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: random psychoacoustics (not including preecho) - last mod: $Id: psy.h,v 1.21 2001/06/15 21:15:40 xiphmont Exp $ - - ********************************************************************/ - -#ifndef _V_PSY_H_ -#define _V_PSY_H_ -#include "smallft.h" - -#ifndef EHMER_MAX -#define EHMER_MAX 56 -#endif - -/* psychoacoustic setup ********************************************/ -#define MAX_BARK 27 -#define P_BANDS 17 -#define P_LEVELS 11 -typedef struct vorbis_info_psy{ - float *ath; - int decayp; - - float ath_adjatt; - float ath_maxatt; - - int eighth_octave_lines; - - /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ - /* x: 63 88 125 175 250 350 500 700 1k 1.4k 2k 2.8k 4k 5.6k 8k 11.5k 16k Hz */ - /* y: 0 10 20 30 40 50 60 70 80 90 100 dB */ - - int tonemaskp; - float toneatt[P_BANDS][P_LEVELS]; - - int peakattp; - float peakatt[P_BANDS][P_LEVELS]; - - int noisemaskp; - float noisemaxsupp; - float noisewindowlo; - float noisewindowhi; - int noisewindowlomin; - int noisewindowhimin; - int noisewindowfixed; - float noisemedian[P_BANDS*2]; - - float max_curve_dB; - float bound_att_dB; - -} vorbis_info_psy; - -typedef struct { - int n; - struct vorbis_info_psy *vi; - - float ***tonecurves; - float **peakatt; - int *noisemedian; - float *noiseoffset; - - float *ath; - long *octave; /* in n.ocshift format */ - unsigned long *bark; - - long firstoc; - long shiftoc; - int eighth_octave_lines; /* power of two, please */ - int total_octave_lines; - -} vorbis_look_psy; - -extern void _vp_psy_init(vorbis_look_psy *p,vorbis_info_psy *vi,int n,long rate); -extern void _vp_psy_clear(vorbis_look_psy *p); -extern void *_vi_psy_dup(void *source); - -extern void _vi_psy_free(vorbis_info_psy *i); -extern vorbis_info_psy *_vi_psy_copy(vorbis_info_psy *i); - -extern float _vp_compute_mask(vorbis_look_psy *p, - float *fft, - float *mdct, - float *mask, - float prev_maxamp); -extern float _vp_ampmax_decay(float amp,vorbis_dsp_state *vd); - -#endif - - diff --git a/lib/psytune.c b/lib/psytune.c deleted file mode 100644 index 12285d21..00000000 --- a/lib/psytune.c +++ /dev/null @@ -1,369 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: simple utility that runs audio through the psychoacoustics - without encoding - last mod: $Id: psytune.c,v 1.15 2001/05/27 06:44:00 xiphmont Exp $ - - ********************************************************************/ - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <math.h> - -#include "vorbis/codec.h" -#include "os.h" -#include "psy.h" -#include "mdct.h" -#include "smallft.h" -#include "window.h" -#include "scales.h" -#include "lpc.h" -#include "lsp.h" - -static vorbis_info_psy _psy_set0={ - 1,/*athp*/ - 1,/*decayp*/ - - -100.f, - -140.f, - - 8, - - /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */ - /* x: 63 88 125 175 250 350 500 700 1k 1.4k 2k 2.8k 4k 5.6k 8k 11.5k 16k Hz */ - /* y: 0 10 20 30 40 50 60 70 80 90 100 dB */ - 1,/* tonemaskp */ - /* 0 10 20 30 40 50 60 70 80 90 100 */ - { - {-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f}, /*63*/ - {-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f}, /*88*/ - {-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f,-999.f}, /*125*/ - - {-35.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*175*/ - {-35.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*250*/ - {-35.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*350*/ - {-35.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*500*/ - {-35.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*700*/ - - {-35.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*1000*/ - {-35.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*1400*/ - {-40.f,-40.f,-40.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*2000*/ - {-40.f,-40.f,-40.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*2800*/ - {-35.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*4000*/ - {-35.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*5600*/ - - {-30.f,-30.f,-33.f,-35.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*8000*/ - {-30.f,-30.f,-33.f,-35.f,-35.f,-45.f,-50.f,-60.f,-70.f,-90.f,-100.f}, /*11500*/ - {-24.f,-24.f,-26.f,-32.f,-32.f,-42.f,-50.f,-60.f,-70.f,-90.f,-100.f}, /*16000*/ - - }, - - 1,/* peakattp */ - {{-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-24.f,-24.f,-24.f},/*63*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-24.f,-24.f,-24.f},/*88*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-24.f,-24.f,-24.f},/*125*/ - {-10.f,-10.f,-10.f,-10.f,-16.f,-16.f,-18.f,-20.f,-24.f,-24.f,-24.f},/*175*/ - {-10.f,-10.f,-10.f,-10.f,-16.f,-16.f,-18.f,-20.f,-24.f,-24.f,-24.f},/*250*/ - {-10.f,-10.f,-10.f,-10.f,-16.f,-16.f,-18.f,-20.f,-22.f,-24.f,-24.f},/*350*/ - {-10.f,-10.f,-10.f,-10.f,-16.f,-16.f,-18.f,-20.f,-22.f,-24.f,-24.f},/*500*/ - {-10.f,-10.f,-10.f,-10.f,-14.f,-14.f,-16.f,-20.f,-22.f,-24.f,-24.f},/*700*/ - {-10.f,-10.f,-10.f,-10.f,-14.f,-14.f,-16.f,-20.f,-22.f,-24.f,-24.f},/*1000*/ - {-10.f,-10.f,-10.f,-10.f,-14.f,-14.f,-16.f,-20.f,-22.f,-24.f,-24.f},/*1400*/ - {-10.f,-10.f,-10.f,-10.f,-14.f,-14.f,-16.f,-20.f,-22.f,-24.f,-24.f},/*2000*/ - {-10.f,-10.f,-10.f,-12.f,-16.f,-16.f,-16.f,-20.f,-22.f,-24.f,-24.f},/*2400*/ - {-10.f,-10.f,-10.f,-12.f,-16.f,-16.f,-16.f,-20.f,-22.f,-24.f,-24.f},/*4000*/ - {-10.f,-10.f,-10.f,-12.f,-12.f,-14.f,-16.f,-18.f,-22.f,-24.f,-24.f},/*5600*/ - {-10.f,-10.f,-10.f,-10.f,-10.f,-14.f,-16.f,-18.f,-22.f,-24.f,-24.f},/*8000*/ - {-10.f,-10.f,-10.f,-10.f,-10.f,-14.f,-16.f,-18.f,-22.f,-24.f,-24.f},/*11500*/ - {-10.f,-10.f,-10.f,-10.f,-10.f,-12.f,-16.f,-18.f,-22.f,-24.f,-24.f},/*16000*/ - }, - - 1,/*noisemaskp */ - -24.f, /* suppress any noise curve over maxspec+n */ - .5f, /* low window */ - .5f, /* high window */ - 25, - 25, - {.000f, 0.f, /*63*/ - .000f, 0.f, /*88*/ - .000f, 0.f, /*125*/ - .000f, 0.f, /*175*/ - .000f, 0.f, /*250*/ - .000f, 0.f, /*350*/ - .000f, 0.f, /*500*/ - .200f, 0.f, /*700*/ - .300f, 0.f, /*1000*/ - .400f, 0.f, /*1400*/ - .400f, 0.f, /*2000*/ - .400f, 0.f, /*2800*/ - .700f, 0.f, /*4000*/ - .850f, 0.f, /*5600*/ - .900f, 0.f, /*8000*/ - .900f, 0.f, /*11500*/ - .900f, 1.f, /*16000*/ - }, - - 95.f, /* even decade + 5 is important; saves an rint() later in a - tight loop) */ - -28., - -}; - -static int noisy=1; -void analysis(char *base,int i,float *v,int n,int bark,int dB){ - if(noisy){ - int j; - FILE *of; - char buffer[80]; - sprintf(buffer,"%s_%d.m",base,i); - of=fopen(buffer,"w"); - - for(j=0;j<n;j++){ - if(dB && v[j]==0) - fprintf(of,"\n\n"); - else{ - if(bark) - fprintf(of,"%g ",toBARK(22050.f*j/n)); - else - fprintf(of,"%g ",(float)j); - - if(dB){ - fprintf(of,"%g\n",todB(fabs(v+j))); - }else{ - fprintf(of,"%g\n",v[j]); - } - } - } - fclose(of); - } -} - -long frameno=0; - -/****************************************************************/ - -int main(int argc,char *argv[]){ - int eos=0; - float nonz=0.f; - float acc=0.f; - float tot=0.f; - float ampmax=-9999,newmax; - - int framesize=2048; - int order=30; - int map=256; - float ampmax_att_per_sec=-10.; - - float *pcm[2],*out[2],*window,*lpc,*flr,*mask; - signed char *buffer,*buffer2; - mdct_lookup m_look; - drft_lookup f_look; - drft_lookup f_look2; - vorbis_look_psy p_look; - long i,j,k; - - int ath=0; - int decayp=0; - - argv++; - while(*argv){ - if(*argv[0]=='-'){ - /* option */ - if(argv[0][1]=='v'){ - noisy=0; - } - if(argv[0][1]=='o'){ - order=atoi(argv[0]+2); - } - if(argv[0][1]=='m'){ - map=atoi(argv[0]+2); - } - }else - if(*argv[0]=='+'){ - /* option */ - if(argv[0][1]=='v'){ - noisy=1; - } - if(argv[0][1]=='o'){ - order=atoi(argv[0]+2); - } - if(argv[0][1]=='m'){ - map=atoi(argv[0]+2); - } - }else - framesize=atoi(argv[0]); - argv++; - } - - mask=_ogg_malloc(framesize*sizeof(float)); - pcm[0]=_ogg_malloc(framesize*sizeof(float)); - pcm[1]=_ogg_malloc(framesize*sizeof(float)); - out[0]=_ogg_calloc(framesize/2,sizeof(float)); - out[1]=_ogg_calloc(framesize/2,sizeof(float)); - flr=_ogg_malloc(framesize*sizeof(float)); - lpc=_ogg_malloc(order*sizeof(float)); - buffer=_ogg_malloc(framesize*4); - buffer2=buffer+framesize*2; - window=_vorbis_window(0,framesize,framesize/2,framesize/2); - mdct_init(&m_look,framesize); - drft_init(&f_look,framesize); - drft_init(&f_look2,framesize/2); - _vp_psy_init(&p_look,&_psy_set0,framesize/2,44100); - - for(i=0;i<P_BANDS;i++) - for(j=0;j<P_LEVELS;j++) - analysis("Ptonecurve",i*100+j,p_look.tonecurves[i][j],EHMER_MAX,0,0); - - /* we cheat on the WAV header; we just bypass 44 bytes and never - verify that it matches 16bit/stereo/44.1kHz. */ - - fread(buffer,1,44,stdin); - fwrite(buffer,1,44,stdout); - memset(buffer,0,framesize*2); - - analysis("window",0,window,framesize,0,0); - - fprintf(stderr,"Processing for frame size %d...\n",framesize); - - while(!eos){ - long bytes=fread(buffer2,1,framesize*2,stdin); - if(bytes<framesize*2) - memset(buffer2+bytes,0,framesize*2-bytes); - - if(bytes!=0){ - - /* uninterleave samples */ - for(i=0;i<framesize;i++){ - pcm[0][i]=((buffer[i*4+1]<<8)| - (0x00ff&(int)buffer[i*4]))/32768.f; - pcm[1][i]=((buffer[i*4+3]<<8)| - (0x00ff&(int)buffer[i*4+2]))/32768.f; - } - - { - float secs=framesize/44100.; - - ampmax+=secs*ampmax_att_per_sec; - if(ampmax<-9999)ampmax=-9999; - } - newmax=ampmax; - - for(i=0;i<2;i++){ - float amp; - - analysis("pre",frameno,pcm[i],framesize,0,0); - memcpy(mask,pcm[i],sizeof(float)*framesize); - - /* do the psychacoustics */ - for(j=0;j<framesize;j++) - mask[j]=pcm[i][j]*=window[j]; - - drft_forward(&f_look,mask); - - mask[0]/=(framesize/4.); - for(j=1;j<framesize-1;j+=2) - mask[(j+1)>>1]=4*hypot(mask[j],mask[j+1])/framesize; - - mdct_forward(&m_look,pcm[i],pcm[i]); - memcpy(mask+framesize/2,pcm[i],sizeof(float)*framesize/2); - analysis("mdct",frameno,pcm[i],framesize/2,0,1); - analysis("fft",frameno,mask,framesize/2,0,1); - - { - float ret; - ret=_vp_compute_mask(&p_look,mask,mask+framesize/2,flr,NULL,ampmax); - if(ret>newmax)newmax=ret; - } - - analysis("mask",frameno,flr,framesize/2,0,0); - - mask[framesize-1]=0.; - mask[0]=0.; - for(j=1;j<framesize-1;j+=2){ - mask[j]=todB(pcm[i]+((j+1)>>1)); - mask[j+1]=0; - } - - analysis("lfft",frameno,mask,framesize,0,0); - drft_backward(&f_look,mask); - - analysis("cep",frameno,mask,framesize,0,0); - analysis("logcep",frameno,mask,framesize,0,1); - - - - /*for(j=0;j<framesize/2;j++){ - float val=fromdB(flr[j]); - int p=rint(pcm[i][j]/val); - pcm[i][j]=p*val; - }*/ - - /*for(j=0;j<framesize/2;j++){ - float val=todB(pcm[i]+j); - if(val+6.<flr[j]) - pcm[i][j]=0.; - }*/ - - for(j=0;j<framesize/2;j++){ - float val=rint(todB(pcm[i]+j)/6); - if(pcm[i][j]>0) - pcm[i][j]=fromdB(val*6); - else - pcm[i][j]=-fromdB(val*6); - } - - - analysis("final",frameno,pcm[i],framesize/2,0,1); - - /* take it back to time */ - mdct_backward(&m_look,pcm[i],pcm[i]); - for(j=0;j<framesize/2;j++) - out[i][j]+=pcm[i][j]*window[j]; - - frameno++; - } - ampmax=newmax; - - /* write data. Use the part of buffer we're about to shift out */ - for(i=0;i<2;i++){ - char *ptr=buffer+i*2; - float *mono=out[i]; - for(j=0;j<framesize/2;j++){ - int val=mono[j]*32767.; - /* might as well guard against clipping */ - if(val>32767)val=32767; - if(val<-32768)val=-32768; - ptr[0]=val&0xff; - ptr[1]=(val>>8)&0xff; - ptr+=4; - } - } - - fprintf(stderr,"*"); - fwrite(buffer,1,framesize*2,stdout); - memmove(buffer,buffer2,framesize*2); - - for(i=0;i<2;i++){ - for(j=0,k=framesize/2;j<framesize/2;j++,k++) - out[i][j]=pcm[i][k]*window[k]; - } - }else - eos=1; - } - fprintf(stderr,"average raw bits of entropy: %.03g/sample\n",acc/tot); - fprintf(stderr,"average nonzero samples: %.03g/%d\n",nonz/tot*framesize/2, - framesize/2); - fprintf(stderr,"Done\n\n"); - return 0; -} diff --git a/lib/registry.c b/lib/registry.c deleted file mode 100644 index c35b6bb9..00000000 --- a/lib/registry.c +++ /dev/null @@ -1,51 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: registry for time, floor, res backends and channel mappings - last mod: $Id: registry.c,v 1.8 2001/06/15 21:15:40 xiphmont Exp $ - - ********************************************************************/ - -#include "vorbis/codec.h" -#include "registry.h" -#include "misc.h" - -/* seems like major overkill now; the backend numbers will grow into - the infrastructure soon enough */ - -extern vorbis_func_time time0_exportbundle; -extern vorbis_func_floor floor0_exportbundle; -extern vorbis_func_floor floor1_exportbundle; -extern vorbis_func_residue residue0_exportbundle; -extern vorbis_func_residue residue1_exportbundle; -extern vorbis_func_residue residue2_exportbundle; -extern vorbis_func_mapping mapping0_exportbundle; - -vorbis_func_time *_time_P[]={ - &time0_exportbundle, -}; - -vorbis_func_floor *_floor_P[]={ - &floor0_exportbundle, - &floor1_exportbundle, -}; - -vorbis_func_residue *_residue_P[]={ - &residue0_exportbundle, - &residue1_exportbundle, - &residue2_exportbundle, -}; - -vorbis_func_mapping *_mapping_P[]={ - &mapping0_exportbundle, -}; - diff --git a/lib/registry.h b/lib/registry.h deleted file mode 100644 index 53d7c4a7..00000000 --- a/lib/registry.h +++ /dev/null @@ -1,35 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: registry for time, floor, res backends and channel mappings - last mod: $Id: registry.h,v 1.7 2001/06/15 21:15:40 xiphmont Exp $ - - ********************************************************************/ - -#ifndef _V_REG_H_ -#define _V_REG_H_ - -#include "backends.h" - -#define VI_TRANSFORMB 1 -#define VI_WINDOWB 1 -#define VI_TIMEB 1 -#define VI_FLOORB 2 -#define VI_RESB 3 -#define VI_MAPB 1 - -extern vorbis_func_time *_time_P[]; -extern vorbis_func_floor *_floor_P[]; -extern vorbis_func_residue *_residue_P[]; -extern vorbis_func_mapping *_mapping_P[]; - -#endif diff --git a/lib/res0.c b/lib/res0.c deleted file mode 100644 index 20df837b..00000000 --- a/lib/res0.c +++ /dev/null @@ -1,688 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - * * - ******************************************************************** - - function: residue backend 0, 1 and 2 implementation - last mod: $Id: res0.c,v 1.32 2001/06/15 23:31:00 xiphmont Exp $ - - ********************************************************************/ - -/* Slow, slow, slow, simpleminded and did I mention it was slow? The - encode/decode loops are coded for clarity and performance is not - yet even a nagging little idea lurking in the shadows. Oh and BTW, - it's slow. */ - -#include <stdlib.h> -#include <string.h> -#include <math.h> -#include <stdio.h> -#include <ogg/ogg.h> -#include "vorbis/codec.h" -#include "codec_internal.h" -#include "registry.h" -#include "codebook.h" -#include "misc.h" -#include "os.h" - -typedef struct { - vorbis_info_residue0 *info; - int map; - - int parts; - int stages; - codebook *fullbooks; - codebook *phrasebook; - codebook ***partbooks; - - int partvals; - int **decodemap; - - /*long resbits[32][32]; - long resbitsflat; - long resvals[32]; - long phrasebits; - long frames;*/ - -} vorbis_look_residue0; - -vorbis_info_residue *res0_copy_info(vorbis_info_residue *vr){ - vorbis_info_residue0 *info=(vorbis_info_residue0 *)vr; - vorbis_info_residue0 *ret=_ogg_malloc(sizeof(vorbis_info_residue0)); - memcpy(ret,info,sizeof(vorbis_info_residue0)); - return(ret); -} - -void res0_free_info(vorbis_info_residue *i){ - if(i){ - memset(i,0,sizeof(vorbis_info_residue0)); - _ogg_free(i); - } -} - -void res0_free_look(vorbis_look_residue *i){ - int j,k; - if(i){ - - vorbis_look_residue0 *look=(vorbis_look_residue0 *)i; - vorbis_info_residue0 *info=look->info; - - /*fprintf(stderr, - "%ld frames encoded in %ld phrasebits and %ld residue bits " - "(%g/frame) \n",look->frames,look->phrasebits, - look->resbitsflat, - (look->phrasebits+look->resbitsflat)/(float)look->frames); - - for(j=0;j<look->parts;j++){ - long acc=0; - fprintf(stderr,"\t[%d] == ",j); - for(k=0;k<look->stages;k++) - if((info->secondstages[j]>>k)&1){ - fprintf(stderr,"%ld,",look->resbits[j][k]); - acc+=look->resbits[j][k]; - } - - fprintf(stderr,":: (%ld vals) %1.2fbits/sample\n",look->resvals[j], - acc?(float)acc/(look->resvals[j]*info->grouping):0); - } - fprintf(stderr,"\n");*/ - - for(j=0;j<look->parts;j++) - if(look->partbooks[j])_ogg_free(look->partbooks[j]); - _ogg_free(look->partbooks); - for(j=0;j<look->partvals;j++) - _ogg_free(look->decodemap[j]); - _ogg_free(look->decodemap); - memset(i,0,sizeof(vorbis_look_residue0)); - _ogg_free(i); - } -} - -static int ilog(unsigned int v){ - int ret=0; - while(v){ - ret++; - v>>=1; - } - return(ret); -} - -static int icount(unsigned int v){ - int ret=0; - while(v){ - ret+=v&1; - v>>=1; - } - return(ret); -} - - -void res0_pack(vorbis_info_residue *vr,oggpack_buffer *opb){ - vorbis_info_residue0 *info=(vorbis_info_residue0 *)vr; - int j,acc=0; - oggpack_write(opb,info->begin,24); - oggpack_write(opb,info->end,24); - - oggpack_write(opb,info->grouping-1,24); /* residue vectors to group and - code with a partitioned book */ - oggpack_write(opb,info->partitions-1,6); /* possible partition choices */ - oggpack_write(opb,info->groupbook,8); /* group huffman book */ - - /* secondstages is a bitmask; as encoding progresses pass by pass, a - bitmask of one indicates this partition class has bits to write - this pass */ - for(j=0;j<info->partitions;j++){ - if(ilog(info->secondstages[j])>3){ - /* yes, this is a minor hack due to not thinking ahead */ - oggpack_write(opb,info->secondstages[j],3); - oggpack_write(opb,1,1); - oggpack_write(opb,info->secondstages[j]>>3,5); - }else - oggpack_write(opb,info->secondstages[j],4); /* trailing zero */ - acc+=icount(info->secondstages[j]); - } - for(j=0;j<acc;j++) - oggpack_write(opb,info->booklist[j],8); - -} - -/* vorbis_info is for range checking */ -vorbis_info_residue *res0_unpack(vorbis_info *vi,oggpack_buffer *opb){ - int j,acc=0; - vorbis_info_residue0 *info=_ogg_calloc(1,sizeof(vorbis_info_residue0)); - codec_setup_info *ci=vi->codec_setup; - - info->begin=oggpack_read(opb,24); - info->end=oggpack_read(opb,24); - info->grouping=oggpack_read(opb,24)+1; - info->partitions=oggpack_read(opb,6)+1; - info->groupbook=oggpack_read(opb,8); - - for(j=0;j<info->partitions;j++){ - int cascade=oggpack_read(opb,3); - if(oggpack_read(opb,1)) - cascade|=(oggpack_read(opb,5)<<3); - info->secondstages[j]=cascade; - - acc+=icount(cascade); - } - for(j=0;j<acc;j++) - info->booklist[j]=oggpack_read(opb,8); - - if(info->groupbook>=ci->books)goto errout; - for(j=0;j<acc;j++) - if(info->booklist[j]>=ci->books)goto errout; - - return(info); - errout: - res0_free_info(info); - return(NULL); -} - -vorbis_look_residue *res0_look (vorbis_dsp_state *vd,vorbis_info_mode *vm, - vorbis_info_residue *vr){ - vorbis_info_residue0 *info=(vorbis_info_residue0 *)vr; - vorbis_look_residue0 *look=_ogg_calloc(1,sizeof(vorbis_look_residue0)); - backend_lookup_state *be=vd->backend_state; - - int j,k,acc=0; - int dim; - int maxstage=0; - look->info=info; - look->map=vm->mapping; - - look->parts=info->partitions; - look->fullbooks=be->fullbooks; - look->phrasebook=be->fullbooks+info->groupbook; - dim=look->phrasebook->dim; - - look->partbooks=_ogg_calloc(look->parts,sizeof(codebook **)); - - for(j=0;j<look->parts;j++){ - int stages=ilog(info->secondstages[j]); - if(stages){ - if(stages>maxstage)maxstage=stages; - look->partbooks[j]=_ogg_calloc(stages,sizeof(codebook *)); - for(k=0;k<stages;k++) - if(info->secondstages[j]&(1<<k)) - look->partbooks[j][k]=be->fullbooks+info->booklist[acc++]; - } - } - - look->partvals=rint(pow(look->parts,dim)); - look->stages=maxstage; - look->decodemap=_ogg_malloc(look->partvals*sizeof(int *)); - for(j=0;j<look->partvals;j++){ - long val=j; - long mult=look->partvals/look->parts; - look->decodemap[j]=_ogg_malloc(dim*sizeof(int)); - for(k=0;k<dim;k++){ - long deco=val/mult; - val-=deco*mult; - mult/=look->parts; - look->decodemap[j][k]=deco; - } - } - - return(look); -} - - -/* does not guard against invalid settings; eg, a subn of 16 and a - subgroup request of 32. Max subn of 128 */ -static int _interleaved_testhack(float *vec,int n,vorbis_look_residue0 *look, - int auxparts,int auxpartnum){ - vorbis_info_residue0 *info=look->info; - int i,j=0; - float max,localmax=0.f; - float temp[128]; - float entropy[8]; - - /* setup */ - for(i=0;i<n;i++)temp[i]=fabs(vec[i]); - - /* handle case subgrp==1 outside */ - for(i=0;i<n;i++) - if(temp[i]>localmax)localmax=temp[i]; - max=localmax; - - for(i=0;i<n;i++)temp[i]=rint(temp[i]); - - while(1){ - entropy[j]=localmax; - n>>=1; - if(!n)break; - j++; - - for(i=0;i<n;i++){ - temp[i]+=temp[i+n]; - } - localmax=0.f; - for(i=0;i<n;i++) - if(temp[i]>localmax)localmax=temp[i]; - } - - for(i=0;i<auxparts-1;i++) - if(auxpartnum<info->blimit[i] && - entropy[info->subgrp[i]]<=info->entmax[i] && - max<=info->ampmax[i]) - break; - - return(i); -} - -static int _testhack(float *vec,int n,vorbis_look_residue0 *look, - int auxparts,int auxpartnum){ - vorbis_info_residue0 *info=look->info; - int i,j=0; - float max,localmax=0.f; - float temp[128]; - float entropy[8]; - - /* setup */ - for(i=0;i<n;i++)temp[i]=fabs(vec[i]); - - /* handle case subgrp==1 outside */ - for(i=0;i<n;i++) - if(temp[i]>localmax)localmax=temp[i]; - max=localmax; - - for(i=0;i<n;i++)temp[i]=rint(temp[i]); - - while(n){ - entropy[j]=localmax; - n>>=1; - j++; - if(!n)break; - for(i=0;i<n;i++){ - temp[i]=temp[i*2]+temp[i*2+1]; - } - localmax=0.f; - for(i=0;i<n;i++) - if(temp[i]>localmax)localmax=temp[i]; - } - - for(i=0;i<auxparts-1;i++) - if(auxpartnum<info->blimit[i] && - entropy[info->subgrp[i]]<=info->entmax[i] && - max<=info->ampmax[i]) - break; - - return(i); -} - -static int _interleaved_encodepart(oggpack_buffer *opb,float *vec, int n, - codebook *book,vorbis_look_residue0 *look){ - int i,bits=0; - int dim=book->dim; - int step=n/dim; -#ifdef TRAIN_RESENT - char buf[80]; - FILE *f; - sprintf(buf,"res0_b%d.vqd",book-look->fullbooks); - f=fopen(buf,"a"); -#endif - - for(i=0;i<step;i++){ - int entry=vorbis_book_besterror(book,vec+i,step,0); - -#ifdef TRAIN_RESENT - fprintf(f,"%d\n",entry); -#endif - - bits+=vorbis_book_encode(book,entry,opb); - } - -#ifdef TRAIN_RESENT - fclose(f); -#endif - return(bits); -} - -static int _encodepart(oggpack_buffer *opb,float *vec, int n, - codebook *book,vorbis_look_residue0 *look){ - int i,bits=0; - int dim=book->dim; - int step=n/dim; -#ifdef TRAIN_RESENT - char buf[80]; - FILE *f; - sprintf(buf,"res0_b%d.vqd",book-look->fullbooks); - f=fopen(buf,"a"); -#endif - - for(i=0;i<step;i++){ - int entry=vorbis_book_besterror(book,vec+i*dim,1,0); - -#ifdef TRAIN_RESENT - fprintf(f,"%d\n",entry); -#endif - - bits+=vorbis_book_encode(book,entry,opb); - } - -#ifdef TRAIN_RESENT - fclose(f); -#endif - return(bits); -} - -static int _01forward(vorbis_block *vb,vorbis_look_residue *vl, - float **in,int ch, - int (*classify)(float *,int,vorbis_look_residue0 *, - int,int), - int (*encode)(oggpack_buffer *,float *,int, - codebook *,vorbis_look_residue0 *)){ - long i,j,k,l,s; - vorbis_look_residue0 *look=(vorbis_look_residue0 *)vl; - vorbis_info_residue0 *info=look->info; - - /* move all this setup out later */ - int samples_per_partition=info->grouping; - int possible_partitions=info->partitions; - int partitions_per_word=look->phrasebook->dim; - int n=info->end-info->begin; - - int partvals=n/samples_per_partition; - int partwords=(partvals+partitions_per_word-1)/partitions_per_word; - long **partword=_vorbis_block_alloc(vb,ch*sizeof(long *)); - -#ifdef TRAIN_RES - FILE *of; - char buffer[80]; - int m; - - for(i=0;i<ch;i++){ - sprintf(buffer,"residue_%d.vqd",vb->mode); - of=fopen(buffer,"a"); - for(m=0;m<info->end;m++) - fprintf(of,"%.2f, ",in[i][m]); - fprintf(of,"\n"); - fclose(of); - } - -#endif - - partvals=partwords*partitions_per_word; - - /* we find the patition type for each partition of each - channel. We'll go back and do the interleaved encoding in a - bit. For now, clarity */ - - for(i=0;i<ch;i++){ - partword[i]=_vorbis_block_alloc(vb,n/samples_per_partition*sizeof(long)); - memset(partword[i],0,n/samples_per_partition*sizeof(long)); - } - - for(i=info->begin,l=0;i<info->end;i+=samples_per_partition,l++){ - for(j=0;j<ch;j++) - /* do the partition decision based on the 'entropy' - int the block */ - partword[j][l]= - classify(in[j]+i,samples_per_partition,look,possible_partitions,l); - - } - - /* we code the partition words for each channel, then the residual - words for a partition per channel until we've written all the - residual words for that partition word. Then write the next - partition channel words... */ - - /*look->frames++;*/ - for(s=0;s<look->stages;s++){ - for(i=info->begin,l=0;i<info->end;){ - - /* first we encode a partition codeword for each channel */ - if(s==0){ - for(j=0;j<ch;j++){ - long val=partword[j][l]; - long ret; - for(k=1;k<partitions_per_word;k++) - val= val*possible_partitions+partword[j][l+k]; - ret=vorbis_book_encode(look->phrasebook,val,&vb->opb); - /*look->phrasebits+=ret;*/ - } - } - - /* now we encode interleaved residual values for the partitions */ - for(k=0;k<partitions_per_word;k++,l++,i+=samples_per_partition){ - - for(j=0;j<ch;j++){ - /*if(s==0)look->resvals[partword[j][l]]++;*/ - if(info->secondstages[partword[j][l]]&(1<<s)){ - codebook *statebook=look->partbooks[partword[j][l]][s]; - if(statebook){ - int ret=encode(&vb->opb,in[j]+i,samples_per_partition, - statebook,look); - /*look->resbits[partword[j][l]][s]+=ret; - look->resbitsflat+=ret;*/ - - } - } - } - } - } - } - - return(0); -} - -/* a truncated packet here just means 'stop working'; it's not an error */ -static int _01inverse(vorbis_block *vb,vorbis_look_residue *vl, - float **in,int ch, - long (*decodepart)(codebook *, float *, - oggpack_buffer *,int)){ - - long i,j,k,l,s; - vorbis_look_residue0 *look=(vorbis_look_residue0 *)vl; - vorbis_info_residue0 *info=look->info; - - /* move all this setup out later */ - int samples_per_partition=info->grouping; - int partitions_per_word=look->phrasebook->dim; - int n=info->end-info->begin; - - int partvals=n/samples_per_partition; - int partwords=(partvals+partitions_per_word-1)/partitions_per_word; - int ***partword=alloca(ch*sizeof(int **)); - partvals=partwords*partitions_per_word; - - for(j=0;j<ch;j++) - partword[j]=_vorbis_block_alloc(vb,partwords*sizeof(int *)); - - for(s=0;s<look->stages;s++){ - for(i=info->begin,l=0;i<info->end;l++){ - - if(s==0){ - /* fetch the partition word for each channel */ - for(j=0;j<ch;j++){ - int temp=vorbis_book_decode(look->phrasebook,&vb->opb); - if(temp==-1)goto eopbreak; - partword[j][l]=look->decodemap[temp]; - if(partword[j][l]==NULL)goto errout; - } - } - - /* now we decode residual values for the partitions */ - for(k=0;k<partitions_per_word;k++,i+=samples_per_partition) - for(j=0;j<ch;j++){ - if(info->secondstages[partword[j][l][k]]&(1<<s)){ - codebook *stagebook=look->partbooks[partword[j][l][k]][s]; - if(stagebook){ - if(decodepart(stagebook,in[j]+i,&vb->opb, - samples_per_partition)==-1)goto eopbreak; - } - } - } - } - } - - errout: - eopbreak: - return(0); -} - -/* residue 0 and 1 are just slight variants of one another. 0 is - interleaved, 1 is not */ -int res0_forward(vorbis_block *vb,vorbis_look_residue *vl, - float **in,int *nonzero,int ch){ - /* we encode only the nonzero parts of a bundle */ - int i,used=0; - for(i=0;i<ch;i++) - if(nonzero[i]) - in[used++]=in[i]; - if(used) - return(_01forward(vb,vl,in,used,_interleaved_testhack,_interleaved_encodepart)); - else - return(0); -} - -int res0_inverse(vorbis_block *vb,vorbis_look_residue *vl, - float **in,int *nonzero,int ch){ - int i,used=0; - for(i=0;i<ch;i++) - if(nonzero[i]) - in[used++]=in[i]; - if(used) - return(_01inverse(vb,vl,in,used,vorbis_book_decodevs_add)); - else - return(0); -} - -int res1_forward(vorbis_block *vb,vorbis_look_residue *vl, - float **in,int *nonzero,int ch){ - int i,used=0; - for(i=0;i<ch;i++) - if(nonzero[i]) - in[used++]=in[i]; - if(used) - return(_01forward(vb,vl,in,used,_testhack,_encodepart)); - else - return(0); -} - -int res1_inverse(vorbis_block *vb,vorbis_look_residue *vl, - float **in,int *nonzero,int ch){ - int i,used=0; - for(i=0;i<ch;i++) - if(nonzero[i]) - in[used++]=in[i]; - if(used) - return(_01inverse(vb,vl,in,used,vorbis_book_decodev_add)); - else - return(0); -} - -/* res2 is slightly more different; all the channels are interleaved - into a single vector and encoded. */ -int res2_forward(vorbis_block *vb,vorbis_look_residue *vl, - float **in,int *nonzero,int ch){ - long i,j,k,n=vb->pcmend/2,used=0; - - /* don't duplicate the code; use a working vector hack for now and - reshape ourselves into a single channel res1 */ - float *work=_vorbis_block_alloc(vb,ch*n*sizeof(float)); - for(i=0;i<ch;i++){ - float *pcm=vb->pcm[i]; - if(nonzero[i])used++; - for(j=0,k=i;j<n;j++,k+=ch) - work[k]=pcm[j]; - } - - if(used) - return(_01forward(vb,vl,&work,1,_testhack,_encodepart)); - else - return(0); -} - -/* duplicate code here as speed is somewhat more important */ -int res2_inverse(vorbis_block *vb,vorbis_look_residue *vl, - float **in,int *nonzero,int ch){ - long i,k,l,s; - vorbis_look_residue0 *look=(vorbis_look_residue0 *)vl; - vorbis_info_residue0 *info=look->info; - - /* move all this setup out later */ - int samples_per_partition=info->grouping; - int partitions_per_word=look->phrasebook->dim; - int n=info->end-info->begin; - - int partvals=n/samples_per_partition; - int partwords=(partvals+partitions_per_word-1)/partitions_per_word; - int **partword=_vorbis_block_alloc(vb,partwords*sizeof(int *)); - int used; - partvals=partwords*partitions_per_word; - - for(i=0;i<ch;i++)if(nonzero[i])break; - if(i==ch)return(0); /* no nonzero vectors */ - - for(s=0;s<look->stages;s++){ - for(i=info->begin,l=0;i<info->end;l++){ - - if(s==0){ - /* fetch the partition word */ - int temp=vorbis_book_decode(look->phrasebook,&vb->opb); - if(temp==-1)goto eopbreak; - partword[l]=look->decodemap[temp]; - if(partword[l]==NULL)goto errout; - } - - /* now we decode residual values for the partitions */ - for(k=0;k<partitions_per_word;k++,i+=samples_per_partition) - if(info->secondstages[partword[l][k]]&(1<<s)){ - codebook *stagebook=look->partbooks[partword[l][k]][s]; - - if(stagebook){ - if(vorbis_book_decodevv_add(stagebook,in,i,ch, - &vb->opb,samples_per_partition)==-1) - goto eopbreak; - } - } - } - } - - errout: - eopbreak: - return(0); -} - - -vorbis_func_residue residue0_exportbundle={ - &res0_pack, - &res0_unpack, - &res0_look, - &res0_copy_info, - &res0_free_info, - &res0_free_look, - &res0_forward, - &res0_inverse -}; - -vorbis_func_residue residue1_exportbundle={ - &res0_pack, - &res0_unpack, - &res0_look, - &res0_copy_info, - &res0_free_info, - &res0_free_look, - &res1_forward, - &res1_inverse -}; - -vorbis_func_residue residue2_exportbundle={ - &res0_pack, - &res0_unpack, - &res0_look, - &res0_copy_info, - &res0_free_info, - &res0_free_look, - &res2_forward, - &res2_inverse -}; diff --git a/lib/scales.h b/lib/scales.h deleted file mode 100644 index 1f44889d..00000000 --- a/lib/scales.h +++ /dev/null @@ -1,132 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: linear scale -> dB, Bark and Mel scales - last mod: $Id: scales.h,v 1.16 2001/05/27 06:44:01 xiphmont Exp $ - - ********************************************************************/ - -#ifndef _V_SCALE_H_ -#define _V_SCALES_H_ - -#include <math.h> -#include "os.h" - -/* 20log10(x) */ -#ifdef VORBIS_IEEE_FLOAT32 -static float todB_LOOKUP[256]={ - -140.277330f, -139.633636f, -139.034372f, -138.473797f, - -137.450747f, -136.535597f, -135.707743f, -134.951972f, - -134.256730f, -133.613036f, -133.013772f, -132.453198f, - -131.430147f, -130.514997f, -129.687144f, -128.931372f, - -128.236130f, -127.592437f, -126.993172f, -126.432598f, - -125.409547f, -124.494397f, -123.666544f, -122.910772f, - -122.215530f, -121.571837f, -120.972572f, -120.411998f, - -119.388947f, -118.473797f, -117.645944f, -116.890173f, - -116.194930f, -115.551237f, -114.951972f, -114.391398f, - -113.368347f, -112.453198f, -111.625344f, -110.869573f, - -110.174331f, -109.530637f, -108.931372f, -108.370798f, - -107.347748f, -106.432598f, -105.604744f, -104.848973f, - -104.153731f, -103.510037f, -102.910773f, -102.350198f, - -101.327148f, -100.411998f, -99.584144f, -98.828373f, - -98.133131f, -97.489437f, -96.890173f, -96.329598f, - -95.306548f, -94.391398f, -93.563544f, -92.807773f, - -92.112531f, -91.468837f, -90.869573f, -90.308998f, - -89.285948f, -88.370798f, -87.542944f, -86.787173f, - -86.091931f, -85.448237f, -84.848973f, -84.288398f, - -83.265348f, -82.350198f, -81.522344f, -80.766573f, - -80.071331f, -79.427637f, -78.828373f, -78.267799f, - -77.244748f, -76.329598f, -75.501745f, -74.745973f, - -74.050731f, -73.407038f, -72.807773f, -72.247199f, - -71.224148f, -70.308998f, -69.481145f, -68.725373f, - -68.030131f, -67.386438f, -66.787173f, -66.226599f, - -65.203548f, -64.288399f, -63.460545f, -62.704774f, - -62.009531f, -61.365838f, -60.766573f, -60.205999f, - -59.182948f, -58.267799f, -57.439945f, -56.684174f, - -55.988932f, -55.345238f, -54.745973f, -54.185399f, - -53.162349f, -52.247199f, -51.419345f, -50.663574f, - -49.968332f, -49.324638f, -48.725374f, -48.164799f, - -47.141749f, -46.226599f, -45.398745f, -44.642974f, - -43.947732f, -43.304038f, -42.704774f, -42.144199f, - -41.121149f, -40.205999f, -39.378145f, -38.622374f, - -37.927132f, -37.283438f, -36.684174f, -36.123599f, - -35.100549f, -34.185399f, -33.357545f, -32.601774f, - -31.906532f, -31.262838f, -30.663574f, -30.102999f, - -29.079949f, -28.164799f, -27.336945f, -26.581174f, - -25.885932f, -25.242238f, -24.642974f, -24.082400f, - -23.059349f, -22.144199f, -21.316346f, -20.560574f, - -19.865332f, -19.221639f, -18.622374f, -18.061800f, - -17.038749f, -16.123599f, -15.295746f, -14.539974f, - -13.844732f, -13.201039f, -12.601774f, -12.041200f, - -11.018149f, -10.103000f, -9.275146f, -8.519375f, - -7.824132f, -7.180439f, -6.581174f, -6.020600f, - -4.997549f, -4.082400f, -3.254546f, -2.498775f, - -1.803533f, -1.159839f, -0.560574f, 0.000000f, - 1.023050f, 1.938200f, 2.766054f, 3.521825f, - 4.217067f, 4.860761f, 5.460025f, 6.020600f, - 7.043650f, 7.958800f, 8.786654f, 9.542425f, - 10.237667f, 10.881361f, 11.480625f, 12.041200f, - 13.064250f, 13.979400f, 14.807254f, 15.563025f, - 16.258267f, 16.901961f, 17.501225f, 18.061800f, - 19.084850f, 20.000000f, 20.827854f, 21.583625f, - 22.278867f, 22.922561f, 23.521825f, 24.082400f, - 25.105450f, 26.020600f, 26.848453f, 27.604225f, - 28.299467f, 28.943161f, 29.542425f, 30.102999f, - 31.126050f, 32.041200f, 32.869053f, 33.624825f, - 34.320067f, 34.963760f, 35.563025f, 36.123599f, - 37.146650f, 38.061800f, 38.889653f, 39.645424f, - 40.340667f, 40.984360f, 41.583625f, 42.144199f, - 43.167250f, 44.082399f, 44.910253f, 45.666024f, - 46.361266f, 47.004960f, 47.604225f, 48.164799f, - 49.187850f, 50.102999f, 50.930853f, 51.686624f -}; - -static float todB(const float *x){ - ogg_int32_t *i=(ogg_int32_t *)x; - ogg_int32_t temp=((*i&0x7fffffff)-0x33cfffff)>>20; - if(temp<0)return -400.f; - return(todB_LOOKUP[temp]); -} - -#define todB_nn(x) todB(x) - -#else - -#define todB(x) (*(x)==0?-400.f:log(*(x)**(x))*4.34294480f) -#define todB_nn(x) (*(x)==0.f?-400.f:log(*(x))*8.6858896f) - -#endif - -#define fromdB(x) (exp((x)*.11512925f)) - -/* The bark scale equations are approximations, since the original - table was somewhat hand rolled. The below are chosen to have the - best possible fit to the rolled tables, thus their somewhat odd - appearance (these are more accurate and over a longer range than - the oft-quoted bark equations found in the texts I have). The - approximations are valid from 0 - 30kHz (nyquist) or so. - - all f in Hz, z in Bark */ - -#define toBARK(n) (13.1f*atan(.00074f*(n))+2.24f*atan((n)*(n)*1.85e-8f)+1e-4f*(n)) -#define fromBARK(z) (102.f*(z)-2.f*pow(z,2.f)+.4f*pow(z,3.f)+pow(1.46f,z)-1.f) -#define toMEL(n) (log(1.f+(n)*.001f)*1442.695f) -#define fromMEL(m) (1000.f*exp((m)/1442.695f)-1000.f) - -/* Frequency to octave. We arbitrarily declare 63.5 Hz to be octave - 0.0 */ - -#define toOC(n) (log(n)*1.442695f-5.965784f) -#define fromOC(o) (exp(((o)+5.965784f)*.693147f)) - -#endif - diff --git a/lib/sharedbook.c b/lib/sharedbook.c deleted file mode 100644 index e6898c68..00000000 --- a/lib/sharedbook.c +++ /dev/null @@ -1,677 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: basic shared codebook operations - last mod: $Id: sharedbook.c,v 1.16 2001/02/26 03:50:43 xiphmont Exp $ - - ********************************************************************/ - -#include <stdlib.h> -#include <math.h> -#include <string.h> -#include <ogg/ogg.h> -#include "os.h" -#include "vorbis/codec.h" -#include "codebook.h" -#include "scales.h" - -/**** pack/unpack helpers ******************************************/ -int _ilog(unsigned int v){ - int ret=0; - while(v){ - ret++; - v>>=1; - } - return(ret); -} - -/* 32 bit float (not IEEE; nonnormalized mantissa + - biased exponent) : neeeeeee eeemmmmm mmmmmmmm mmmmmmmm - Why not IEEE? It's just not that important here. */ - -#define VQ_FEXP 10 -#define VQ_FMAN 21 -#define VQ_FEXP_BIAS 768 /* bias toward values smaller than 1. */ - -/* doesn't currently guard under/overflow */ -long _float32_pack(float val){ - int sign=0; - long exp; - long mant; - if(val<0){ - sign=0x80000000; - val= -val; - } - exp= floor(log(val)/log(2)); - mant=rint(ldexp(val,(VQ_FMAN-1)-exp)); - exp=(exp+VQ_FEXP_BIAS)<<VQ_FMAN; - - return(sign|exp|mant); -} - -float _float32_unpack(long val){ - double mant=val&0x1fffff; - int sign=val&0x80000000; - long exp =(val&0x7fe00000L)>>VQ_FMAN; - if(sign)mant= -mant; - return(ldexp(mant,exp-(VQ_FMAN-1)-VQ_FEXP_BIAS)); -} - -/* given a list of word lengths, generate a list of codewords. Works - for length ordered or unordered, always assigns the lowest valued - codewords first. Extended to handle unused entries (length 0) */ -long *_make_words(long *l,long n){ - long i,j; - long marker[33]; - long *r=_ogg_malloc(n*sizeof(long)); - memset(marker,0,sizeof(marker)); - - for(i=0;i<n;i++){ - long length=l[i]; - if(length>0){ - long entry=marker[length]; - - /* when we claim a node for an entry, we also claim the nodes - below it (pruning off the imagined tree that may have dangled - from it) as well as blocking the use of any nodes directly - above for leaves */ - - /* update ourself */ - if(length<32 && (entry>>length)){ - /* error condition; the lengths must specify an overpopulated tree */ - _ogg_free(r); - return(NULL); - } - r[i]=entry; - - /* Look to see if the next shorter marker points to the node - above. if so, update it and repeat. */ - { - for(j=length;j>0;j--){ - - if(marker[j]&1){ - /* have to jump branches */ - if(j==1) - marker[1]++; - else - marker[j]=marker[j-1]<<1; - break; /* invariant says next upper marker would already - have been moved if it was on the same path */ - } - marker[j]++; - } - } - - /* prune the tree; the implicit invariant says all the longer - markers were dangling from our just-taken node. Dangle them - from our *new* node. */ - for(j=length+1;j<33;j++) - if((marker[j]>>1) == entry){ - entry=marker[j]; - marker[j]=marker[j-1]<<1; - }else - break; - } - } - - /* bitreverse the words because our bitwise packer/unpacker is LSb - endian */ - for(i=0;i<n;i++){ - long temp=0; - for(j=0;j<l[i];j++){ - temp<<=1; - temp|=(r[i]>>j)&1; - } - r[i]=temp; - } - - return(r); -} - -/* build the decode helper tree from the codewords */ -decode_aux *_make_decode_tree(codebook *c){ - const static_codebook *s=c->c; - long top=0,i,j,n; - decode_aux *t=_ogg_malloc(sizeof(decode_aux)); - long *ptr0=t->ptr0=_ogg_calloc(c->entries*2,sizeof(long)); - long *ptr1=t->ptr1=_ogg_calloc(c->entries*2,sizeof(long)); - long *codelist=_make_words(s->lengthlist,s->entries); - - if(codelist==NULL)return(NULL); - t->aux=c->entries*2; - - for(i=0;i<c->entries;i++){ - if(s->lengthlist[i]>0){ - long ptr=0; - for(j=0;j<s->lengthlist[i]-1;j++){ - int bit=(codelist[i]>>j)&1; - if(!bit){ - if(!ptr0[ptr]) - ptr0[ptr]= ++top; - ptr=ptr0[ptr]; - }else{ - if(!ptr1[ptr]) - ptr1[ptr]= ++top; - ptr=ptr1[ptr]; - } - } - if(!((codelist[i]>>j)&1)) - ptr0[ptr]=-i; - else - ptr1[ptr]=-i; - } - } - _ogg_free(codelist); - - t->tabn = _ilog(c->entries)-4; /* this is magic */ - if(t->tabn<5)t->tabn=5; - n = 1<<t->tabn; - t->tab = _ogg_malloc(n*sizeof(long)); - t->tabl = _ogg_malloc(n*sizeof(int)); - for (i = 0; i < n; i++) { - long p = 0; - for (j = 0; j < t->tabn && (p > 0 || j == 0); j++) { - if (i & (1 << j)) - p = ptr1[p]; - else - p = ptr0[p]; - } - /* now j == length, and p == -code */ - t->tab[i] = p; - t->tabl[i] = j; - } - - return(t); -} - -/* there might be a straightforward one-line way to do the below - that's portable and totally safe against roundoff, but I haven't - thought of it. Therefore, we opt on the side of caution */ -long _book_maptype1_quantvals(const static_codebook *b){ - long vals=floor(pow(b->entries,1.f/b->dim)); - - /* the above *should* be reliable, but we'll not assume that FP is - ever reliable when bitstream sync is at stake; verify via integer - means that vals really is the greatest value of dim for which - vals^b->bim <= b->entries */ - /* treat the above as an initial guess */ - while(1){ - long acc=1; - long acc1=1; - int i; - for(i=0;i<b->dim;i++){ - acc*=vals; - acc1*=vals+1; - } - if(acc<=b->entries && acc1>b->entries){ - return(vals); - }else{ - if(acc>b->entries){ - vals--; - }else{ - vals++; - } - } - } -} - -/* unpack the quantized list of values for encode/decode ***********/ -/* we need to deal with two map types: in map type 1, the values are - generated algorithmically (each column of the vector counts through - the values in the quant vector). in map type 2, all the values came - in in an explicit list. Both value lists must be unpacked */ -float *_book_unquantize(const static_codebook *b){ - long j,k; - if(b->maptype==1 || b->maptype==2){ - int quantvals; - float mindel=_float32_unpack(b->q_min); - float delta=_float32_unpack(b->q_delta); - float *r=_ogg_calloc(b->entries*b->dim,sizeof(float)); - - /* maptype 1 and 2 both use a quantized value vector, but - different sizes */ - switch(b->maptype){ - case 1: - /* most of the time, entries%dimensions == 0, but we need to be - well defined. We define that the possible vales at each - scalar is values == entries/dim. If entries%dim != 0, we'll - have 'too few' values (values*dim<entries), which means that - we'll have 'left over' entries; left over entries use zeroed - values (and are wasted). So don't generate codebooks like - that */ - quantvals=_book_maptype1_quantvals(b); - for(j=0;j<b->entries;j++){ - float last=0.f; - int indexdiv=1; - for(k=0;k<b->dim;k++){ - int index= (j/indexdiv)%quantvals; - float val=b->quantlist[index]; - val=fabs(val)*delta+mindel+last; - if(b->q_sequencep)last=val; - r[j*b->dim+k]=val; - indexdiv*=quantvals; - } - } - break; - case 2: - for(j=0;j<b->entries;j++){ - float last=0.f; - for(k=0;k<b->dim;k++){ - float val=b->quantlist[j*b->dim+k]; - val=fabs(val)*delta+mindel+last; - if(b->q_sequencep)last=val; - r[j*b->dim+k]=val; - } - } - break; - } - - return(r); - } - return(NULL); -} - -void vorbis_staticbook_clear(static_codebook *b){ - if(b->allocedp){ - if(b->quantlist)_ogg_free(b->quantlist); - if(b->lengthlist)_ogg_free(b->lengthlist); - if(b->nearest_tree){ - _ogg_free(b->nearest_tree->ptr0); - _ogg_free(b->nearest_tree->ptr1); - _ogg_free(b->nearest_tree->p); - _ogg_free(b->nearest_tree->q); - memset(b->nearest_tree,0,sizeof(encode_aux_nearestmatch)); - _ogg_free(b->nearest_tree); - } - if(b->thresh_tree){ - _ogg_free(b->thresh_tree->quantthresh); - _ogg_free(b->thresh_tree->quantmap); - memset(b->thresh_tree,0,sizeof(encode_aux_threshmatch)); - _ogg_free(b->thresh_tree); - } - - memset(b,0,sizeof(static_codebook)); - } -} - -void vorbis_staticbook_destroy(static_codebook *b){ - if(b->allocedp){ - vorbis_staticbook_clear(b); - _ogg_free(b); - } -} - -void vorbis_book_clear(codebook *b){ - /* static book is not cleared; we're likely called on the lookup and - the static codebook belongs to the info struct */ - if(b->decode_tree){ - _ogg_free(b->decode_tree->tab); - _ogg_free(b->decode_tree->tabl); - - _ogg_free(b->decode_tree->ptr0); - _ogg_free(b->decode_tree->ptr1); - memset(b->decode_tree,0,sizeof(decode_aux)); - _ogg_free(b->decode_tree); - } - if(b->valuelist)_ogg_free(b->valuelist); - if(b->codelist)_ogg_free(b->codelist); - memset(b,0,sizeof(codebook)); -} - -int vorbis_book_init_encode(codebook *c,const static_codebook *s){ - long j,k; - memset(c,0,sizeof(codebook)); - c->c=s; - c->entries=s->entries; - c->dim=s->dim; - c->codelist=_make_words(s->lengthlist,s->entries); - c->valuelist=_book_unquantize(s); - - /* set the 'zero entry' */ - c->zeroentry=-1; - if(c->valuelist){ - for(j=0;j<s->entries;j++){ - int flag=1; - for(k=0;k<s->dim;k++){ - if(fabs(c->valuelist[j*s->dim+k])>1e-12f){ - flag=0; - break; - } - } - if(flag) - c->zeroentry=j; - } - } - - return(0); -} - -int vorbis_book_init_decode(codebook *c,const static_codebook *s){ - memset(c,0,sizeof(codebook)); - c->c=s; - c->entries=s->entries; - c->dim=s->dim; - c->valuelist=_book_unquantize(s); - c->decode_tree=_make_decode_tree(c); - if(c->decode_tree==NULL)goto err_out; - return(0); - err_out: - vorbis_book_clear(c); - return(-1); -} - -static float _dist(int el,float *ref, float *b,int step){ - int i; - float acc=0.f; - for(i=0;i<el;i++){ - float val=(ref[i]-b[i*step]); - acc+=val*val; - } - return(acc); -} - -#include <stdio.h> -int _best(codebook *book, float *a, int step){ - encode_aux_nearestmatch *nt=book->c->nearest_tree; - encode_aux_threshmatch *tt=book->c->thresh_tree; - encode_aux_pigeonhole *pt=book->c->pigeon_tree; - int dim=book->dim; - int ptr=0,k,o; - /*int savebest=-1; - float saverr;*/ - - /* do we have a threshhold encode hint? */ - if(tt){ - int index=0; - /* find the quant val of each scalar */ - for(k=0,o=step*(dim-1);k<dim;k++,o-=step){ - int i; - /* linear search the quant list for now; it's small and although - with > 8 entries, it would be faster to bisect, this would be - a misplaced optimization for now */ - for(i=0;i<tt->threshvals-1;i++) - if(a[o]<tt->quantthresh[i])break; - - index=(index*tt->quantvals)+tt->quantmap[i]; - } - /* regular lattices are easy :-) */ - if(book->c->lengthlist[index]>0) /* is this unused? If so, we'll - use a decision tree after all - and fall through*/ - return(index); - } - - /* do we have a pigeonhole encode hint? */ - if(pt){ - const static_codebook *c=book->c; - int i,besti=-1; - float best; - int entry=0; - - /* dealing with sequentialness is a pain in the ass */ - if(c->q_sequencep){ - int pv; - long mul=1; - float qlast=0; - for(k=0,o=0;k<dim;k++,o+=step){ - pv=(int)((a[o]-qlast-pt->min)/pt->del); - if(pv<0 || pv>=pt->mapentries)break; - entry+=pt->pigeonmap[pv]*mul; - mul*=pt->quantvals; - qlast+=pv*pt->del+pt->min; - } - }else{ - for(k=0,o=step*(dim-1);k<dim;k++,o-=step){ - int pv=(int)((a[o]-pt->min)/pt->del); - if(pv<0 || pv>=pt->mapentries)break; - entry=entry*pt->quantvals+pt->pigeonmap[pv]; - } - } - - /* must be within the pigeonholable range; if we quant outside (or - in an entry that we define no list for), brute force it */ - if(k==dim && pt->fitlength[entry]){ - /* search the abbreviated list */ - long *list=pt->fitlist+pt->fitmap[entry]; - for(i=0;i<pt->fitlength[entry];i++){ - float this=_dist(dim,book->valuelist+list[i]*dim,a,step); - if(besti==-1 || this<best){ - best=this; - besti=list[i]; - } - } - - return(besti); - } - } - - if(nt){ - /* optimized using the decision tree */ - while(1){ - float c=0.f; - float *p=book->valuelist+nt->p[ptr]; - float *q=book->valuelist+nt->q[ptr]; - - for(k=0,o=0;k<dim;k++,o+=step) - c+=(p[k]-q[k])*(a[o]-(p[k]+q[k])*.5); - - if(c>0.f) /* in A */ - ptr= -nt->ptr0[ptr]; - else /* in B */ - ptr= -nt->ptr1[ptr]; - if(ptr<=0)break; - } - return(-ptr); - } - - /* brute force it! */ - { - const static_codebook *c=book->c; - int i,besti=-1; - float best; - float *e=book->valuelist; - for(i=0;i<book->entries;i++){ - if(c->lengthlist[i]>0){ - float this=_dist(dim,e,a,step); - if(besti==-1 || this<best){ - best=this; - besti=i; - } - } - e+=dim; - } - - /*if(savebest!=-1 && savebest!=besti){ - fprintf(stderr,"brute force/pigeonhole disagreement:\n" - "original:"); - for(i=0;i<dim*step;i+=step)fprintf(stderr,"%g,",a[i]); - fprintf(stderr,"\n" - "pigeonhole (entry %d, err %g):",savebest,saverr); - for(i=0;i<dim;i++)fprintf(stderr,"%g,", - (book->valuelist+savebest*dim)[i]); - fprintf(stderr,"\n" - "bruteforce (entry %d, err %g):",besti,best); - for(i=0;i<dim;i++)fprintf(stderr,"%g,", - (book->valuelist+besti*dim)[i]); - fprintf(stderr,"\n"); - }*/ - return(besti); - } -} - -/* returns the entry number and *modifies a* to the remainder value ********/ -int vorbis_book_besterror(codebook *book,float *a,int step,int addmul){ - int dim=book->dim,i,o; - int best=_best(book,a,step); - switch(addmul){ - case 0: - for(i=0,o=0;i<dim;i++,o+=step) - a[o]-=(book->valuelist+best*dim)[i]; - break; - case 1: - for(i=0,o=0;i<dim;i++,o+=step){ - float val=(book->valuelist+best*dim)[i]; - if(val==0){ - a[o]=0; - }else{ - a[o]/=val; - } - } - break; - } - return(best); -} - -long vorbis_book_codeword(codebook *book,int entry){ - return book->codelist[entry]; -} - -long vorbis_book_codelen(codebook *book,int entry){ - return book->c->lengthlist[entry]; -} - -#ifdef _V_SELFTEST - -/* Unit tests of the dequantizer; this stuff will be OK - cross-platform, I simply want to be sure that special mapping cases - actually work properly; a bug could go unnoticed for a while */ - -#include <stdio.h> - -/* cases: - - no mapping - full, explicit mapping - algorithmic mapping - - nonsequential - sequential -*/ - -static long full_quantlist1[]={0,1,2,3, 4,5,6,7, 8,3,6,1}; -static long partial_quantlist1[]={0,7,2}; - -/* no mapping */ -static_codebook test1={ - 4,16, - NULL, - 0, - 0,0,0,0, - NULL, - NULL,NULL -}; -static float *test1_result=NULL; - -/* linear, full mapping, nonsequential */ -static_codebook test2={ - 4,3, - NULL, - 2, - -533200896,1611661312,4,0, - full_quantlist1, - NULL,NULL -}; -static float test2_result[]={-3,-2,-1,0, 1,2,3,4, 5,0,3,-2}; - -/* linear, full mapping, sequential */ -static_codebook test3={ - 4,3, - NULL, - 2, - -533200896,1611661312,4,1, - full_quantlist1, - NULL,NULL -}; -static float test3_result[]={-3,-5,-6,-6, 1,3,6,10, 5,5,8,6}; - -/* linear, algorithmic mapping, nonsequential */ -static_codebook test4={ - 3,27, - NULL, - 1, - -533200896,1611661312,4,0, - partial_quantlist1, - NULL,NULL -}; -static float test4_result[]={-3,-3,-3, 4,-3,-3, -1,-3,-3, - -3, 4,-3, 4, 4,-3, -1, 4,-3, - -3,-1,-3, 4,-1,-3, -1,-1,-3, - -3,-3, 4, 4,-3, 4, -1,-3, 4, - -3, 4, 4, 4, 4, 4, -1, 4, 4, - -3,-1, 4, 4,-1, 4, -1,-1, 4, - -3,-3,-1, 4,-3,-1, -1,-3,-1, - -3, 4,-1, 4, 4,-1, -1, 4,-1, - -3,-1,-1, 4,-1,-1, -1,-1,-1}; - -/* linear, algorithmic mapping, sequential */ -static_codebook test5={ - 3,27, - NULL, - 1, - -533200896,1611661312,4,1, - partial_quantlist1, - NULL,NULL -}; -static float test5_result[]={-3,-6,-9, 4, 1,-2, -1,-4,-7, - -3, 1,-2, 4, 8, 5, -1, 3, 0, - -3,-4,-7, 4, 3, 0, -1,-2,-5, - -3,-6,-2, 4, 1, 5, -1,-4, 0, - -3, 1, 5, 4, 8,12, -1, 3, 7, - -3,-4, 0, 4, 3, 7, -1,-2, 2, - -3,-6,-7, 4, 1, 0, -1,-4,-5, - -3, 1, 0, 4, 8, 7, -1, 3, 2, - -3,-4,-5, 4, 3, 2, -1,-2,-3}; - -void run_test(static_codebook *b,float *comp){ - float *out=_book_unquantize(b); - int i; - - if(comp){ - if(!out){ - fprintf(stderr,"_book_unquantize incorrectly returned NULL\n"); - exit(1); - } - - for(i=0;i<b->entries*b->dim;i++) - if(fabs(out[i]-comp[i])>.0001){ - fprintf(stderr,"disagreement in unquantized and reference data:\n" - "position %d, %g != %g\n",i,out[i],comp[i]); - exit(1); - } - - }else{ - if(out){ - fprintf(stderr,"_book_unquantize returned a value array: \n" - " correct result should have been NULL\n"); - exit(1); - } - } -} - -int main(){ - /* run the nine dequant tests, and compare to the hand-rolled results */ - fprintf(stderr,"Dequant test 1... "); - run_test(&test1,test1_result); - fprintf(stderr,"OK\nDequant test 2... "); - run_test(&test2,test2_result); - fprintf(stderr,"OK\nDequant test 3... "); - run_test(&test3,test3_result); - fprintf(stderr,"OK\nDequant test 4... "); - run_test(&test4,test4_result); - fprintf(stderr,"OK\nDequant test 5... "); - run_test(&test5,test5_result); - fprintf(stderr,"OK\n\n"); - - return(0); -} - -#endif diff --git a/lib/smallft.c b/lib/smallft.c deleted file mode 100644 index 60609a2f..00000000 --- a/lib/smallft.c +++ /dev/null @@ -1,1254 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: *unnormalized* fft transform - last mod: $Id: smallft.c,v 1.14 2001/02/26 03:50:43 xiphmont Exp $ - -********************************************************************/ - -/* FFT implementation from OggSquish, minus cosine transforms, - * minus all but radix 2/4 case. In Vorbis we only need this - * cut-down version. - * - * To do more than just power-of-two sized vectors, see the full - * version I wrote for NetLib. - * - * Note that the packing is a little strange; rather than the FFT r/i - * packing following R_0, I_n, R_1, I_1, R_2, I_2 ... R_n-1, I_n-1, - * it follows R_0, R_1, I_1, R_2, I_2 ... R_n-1, I_n-1, I_n like the - * FORTRAN version - */ - -#include <stdlib.h> -#include <string.h> -#include <math.h> -#include "smallft.h" -#include "misc.h" - -static void drfti1(int n, float *wa, int *ifac){ - static int ntryh[4] = { 4,2,3,5 }; - static float tpi = 6.28318530717958648f; - float arg,argh,argld,fi; - int ntry=0,i,j=-1; - int k1, l1, l2, ib; - int ld, ii, ip, is, nq, nr; - int ido, ipm, nfm1; - int nl=n; - int nf=0; - - L101: - j++; - if (j < 4) - ntry=ntryh[j]; - else - ntry+=2; - - L104: - nq=nl/ntry; - nr=nl-ntry*nq; - if (nr!=0) goto L101; - - nf++; - ifac[nf+1]=ntry; - nl=nq; - if(ntry!=2)goto L107; - if(nf==1)goto L107; - - for (i=1;i<nf;i++){ - ib=nf-i+1; - ifac[ib+1]=ifac[ib]; - } - ifac[2] = 2; - - L107: - if(nl!=1)goto L104; - ifac[0]=n; - ifac[1]=nf; - argh=tpi/n; - is=0; - nfm1=nf-1; - l1=1; - - if(nfm1==0)return; - - for (k1=0;k1<nfm1;k1++){ - ip=ifac[k1+2]; - ld=0; - l2=l1*ip; - ido=n/l2; - ipm=ip-1; - - for (j=0;j<ipm;j++){ - ld+=l1; - i=is; - argld=(float)ld*argh; - fi=0.f; - for (ii=2;ii<ido;ii+=2){ - fi+=1.f; - arg=fi*argld; - wa[i++]=cos(arg); - wa[i++]=sin(arg); - } - is+=ido; - } - l1=l2; - } -} - -static void fdrffti(int n, float *wsave, int *ifac){ - - if (n == 1) return; - drfti1(n, wsave+n, ifac); -} - -static void dradf2(int ido,int l1,float *cc,float *ch,float *wa1){ - int i,k; - float ti2,tr2; - int t0,t1,t2,t3,t4,t5,t6; - - t1=0; - t0=(t2=l1*ido); - t3=ido<<1; - for(k=0;k<l1;k++){ - ch[t1<<1]=cc[t1]+cc[t2]; - ch[(t1<<1)+t3-1]=cc[t1]-cc[t2]; - t1+=ido; - t2+=ido; - } - - if(ido<2)return; - if(ido==2)goto L105; - - t1=0; - t2=t0; - for(k=0;k<l1;k++){ - t3=t2; - t4=(t1<<1)+(ido<<1); - t5=t1; - t6=t1+t1; - for(i=2;i<ido;i+=2){ - t3+=2; - t4-=2; - t5+=2; - t6+=2; - tr2=wa1[i-2]*cc[t3-1]+wa1[i-1]*cc[t3]; - ti2=wa1[i-2]*cc[t3]-wa1[i-1]*cc[t3-1]; - ch[t6]=cc[t5]+ti2; - ch[t4]=ti2-cc[t5]; - ch[t6-1]=cc[t5-1]+tr2; - ch[t4-1]=cc[t5-1]-tr2; - } - t1+=ido; - t2+=ido; - } - - if(ido%2==1)return; - - L105: - t3=(t2=(t1=ido)-1); - t2+=t0; - for(k=0;k<l1;k++){ - ch[t1]=-cc[t2]; - ch[t1-1]=cc[t3]; - t1+=ido<<1; - t2+=ido; - t3+=ido; - } -} - -static void dradf4(int ido,int l1,float *cc,float *ch,float *wa1, - float *wa2,float *wa3){ - static float hsqt2 = .70710678118654752f; - int i,k,t0,t1,t2,t3,t4,t5,t6; - float ci2,ci3,ci4,cr2,cr3,cr4,ti1,ti2,ti3,ti4,tr1,tr2,tr3,tr4; - t0=l1*ido; - - t1=t0; - t4=t1<<1; - t2=t1+(t1<<1); - t3=0; - - for(k=0;k<l1;k++){ - tr1=cc[t1]+cc[t2]; - tr2=cc[t3]+cc[t4]; - - ch[t5=t3<<2]=tr1+tr2; - ch[(ido<<2)+t5-1]=tr2-tr1; - ch[(t5+=(ido<<1))-1]=cc[t3]-cc[t4]; - ch[t5]=cc[t2]-cc[t1]; - - t1+=ido; - t2+=ido; - t3+=ido; - t4+=ido; - } - - if(ido<2)return; - if(ido==2)goto L105; - - - t1=0; - for(k=0;k<l1;k++){ - t2=t1; - t4=t1<<2; - t5=(t6=ido<<1)+t4; - for(i=2;i<ido;i+=2){ - t3=(t2+=2); - t4+=2; - t5-=2; - - t3+=t0; - cr2=wa1[i-2]*cc[t3-1]+wa1[i-1]*cc[t3]; - ci2=wa1[i-2]*cc[t3]-wa1[i-1]*cc[t3-1]; - t3+=t0; - cr3=wa2[i-2]*cc[t3-1]+wa2[i-1]*cc[t3]; - ci3=wa2[i-2]*cc[t3]-wa2[i-1]*cc[t3-1]; - t3+=t0; - cr4=wa3[i-2]*cc[t3-1]+wa3[i-1]*cc[t3]; - ci4=wa3[i-2]*cc[t3]-wa3[i-1]*cc[t3-1]; - - tr1=cr2+cr4; - tr4=cr4-cr2; - ti1=ci2+ci4; - ti4=ci2-ci4; - - ti2=cc[t2]+ci3; - ti3=cc[t2]-ci3; - tr2=cc[t2-1]+cr3; - tr3=cc[t2-1]-cr3; - - ch[t4-1]=tr1+tr2; - ch[t4]=ti1+ti2; - - ch[t5-1]=tr3-ti4; - ch[t5]=tr4-ti3; - - ch[t4+t6-1]=ti4+tr3; - ch[t4+t6]=tr4+ti3; - - ch[t5+t6-1]=tr2-tr1; - ch[t5+t6]=ti1-ti2; - } - t1+=ido; - } - if(ido&1)return; - - L105: - - t2=(t1=t0+ido-1)+(t0<<1); - t3=ido<<2; - t4=ido; - t5=ido<<1; - t6=ido; - - for(k=0;k<l1;k++){ - ti1=-hsqt2*(cc[t1]+cc[t2]); - tr1=hsqt2*(cc[t1]-cc[t2]); - - ch[t4-1]=tr1+cc[t6-1]; - ch[t4+t5-1]=cc[t6-1]-tr1; - - ch[t4]=ti1-cc[t1+t0]; - ch[t4+t5]=ti1+cc[t1+t0]; - - t1+=ido; - t2+=ido; - t4+=t3; - t6+=ido; - } -} - -static void dradfg(int ido,int ip,int l1,int idl1,float *cc,float *c1, - float *c2,float *ch,float *ch2,float *wa){ - - static float tpi=6.283185307179586f; - int idij,ipph,i,j,k,l,ic,ik,is; - int t0,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10; - float dc2,ai1,ai2,ar1,ar2,ds2; - int nbd; - float dcp,arg,dsp,ar1h,ar2h; - int idp2,ipp2; - - arg=tpi/(float)ip; - dcp=cos(arg); - dsp=sin(arg); - ipph=(ip+1)>>1; - ipp2=ip; - idp2=ido; - nbd=(ido-1)>>1; - t0=l1*ido; - t10=ip*ido; - - if(ido==1)goto L119; - for(ik=0;ik<idl1;ik++)ch2[ik]=c2[ik]; - - t1=0; - for(j=1;j<ip;j++){ - t1+=t0; - t2=t1; - for(k=0;k<l1;k++){ - ch[t2]=c1[t2]; - t2+=ido; - } - } - - is=-ido; - t1=0; - if(nbd>l1){ - for(j=1;j<ip;j++){ - t1+=t0; - is+=ido; - t2= -ido+t1; - for(k=0;k<l1;k++){ - idij=is-1; - t2+=ido; - t3=t2; - for(i=2;i<ido;i+=2){ - idij+=2; - t3+=2; - ch[t3-1]=wa[idij-1]*c1[t3-1]+wa[idij]*c1[t3]; - ch[t3]=wa[idij-1]*c1[t3]-wa[idij]*c1[t3-1]; - } - } - } - }else{ - - for(j=1;j<ip;j++){ - is+=ido; - idij=is-1; - t1+=t0; - t2=t1; - for(i=2;i<ido;i+=2){ - idij+=2; - t2+=2; - t3=t2; - for(k=0;k<l1;k++){ - ch[t3-1]=wa[idij-1]*c1[t3-1]+wa[idij]*c1[t3]; - ch[t3]=wa[idij-1]*c1[t3]-wa[idij]*c1[t3-1]; - t3+=ido; - } - } - } - } - - t1=0; - t2=ipp2*t0; - if(nbd<l1){ - for(j=1;j<ipph;j++){ - t1+=t0; - t2-=t0; - t3=t1; - t4=t2; - for(i=2;i<ido;i+=2){ - t3+=2; - t4+=2; - t5=t3-ido; - t6=t4-ido; - for(k=0;k<l1;k++){ - t5+=ido; - t6+=ido; - c1[t5-1]=ch[t5-1]+ch[t6-1]; - c1[t6-1]=ch[t5]-ch[t6]; - c1[t5]=ch[t5]+ch[t6]; - c1[t6]=ch[t6-1]-ch[t5-1]; - } - } - } - }else{ - for(j=1;j<ipph;j++){ - t1+=t0; - t2-=t0; - t3=t1; - t4=t2; - for(k=0;k<l1;k++){ - t5=t3; - t6=t4; - for(i=2;i<ido;i+=2){ - t5+=2; - t6+=2; - c1[t5-1]=ch[t5-1]+ch[t6-1]; - c1[t6-1]=ch[t5]-ch[t6]; - c1[t5]=ch[t5]+ch[t6]; - c1[t6]=ch[t6-1]-ch[t5-1]; - } - t3+=ido; - t4+=ido; - } - } - } - -L119: - for(ik=0;ik<idl1;ik++)c2[ik]=ch2[ik]; - - t1=0; - t2=ipp2*idl1; - for(j=1;j<ipph;j++){ - t1+=t0; - t2-=t0; - t3=t1-ido; - t4=t2-ido; - for(k=0;k<l1;k++){ - t3+=ido; - t4+=ido; - c1[t3]=ch[t3]+ch[t4]; - c1[t4]=ch[t4]-ch[t3]; - } - } - - ar1=1.f; - ai1=0.f; - t1=0; - t2=ipp2*idl1; - t3=(ip-1)*idl1; - for(l=1;l<ipph;l++){ - t1+=idl1; - t2-=idl1; - ar1h=dcp*ar1-dsp*ai1; - ai1=dcp*ai1+dsp*ar1; - ar1=ar1h; - t4=t1; - t5=t2; - t6=t3; - t7=idl1; - - for(ik=0;ik<idl1;ik++){ - ch2[t4++]=c2[ik]+ar1*c2[t7++]; - ch2[t5++]=ai1*c2[t6++]; - } - - dc2=ar1; - ds2=ai1; - ar2=ar1; - ai2=ai1; - - t4=idl1; - t5=(ipp2-1)*idl1; - for(j=2;j<ipph;j++){ - t4+=idl1; - t5-=idl1; - - ar2h=dc2*ar2-ds2*ai2; - ai2=dc2*ai2+ds2*ar2; - ar2=ar2h; - - t6=t1; - t7=t2; - t8=t4; - t9=t5; - for(ik=0;ik<idl1;ik++){ - ch2[t6++]+=ar2*c2[t8++]; - ch2[t7++]+=ai2*c2[t9++]; - } - } - } - - t1=0; - for(j=1;j<ipph;j++){ - t1+=idl1; - t2=t1; - for(ik=0;ik<idl1;ik++)ch2[ik]+=c2[t2++]; - } - - if(ido<l1)goto L132; - - t1=0; - t2=0; - for(k=0;k<l1;k++){ - t3=t1; - t4=t2; - for(i=0;i<ido;i++)cc[t4++]=ch[t3++]; - t1+=ido; - t2+=t10; - } - - goto L135; - - L132: - for(i=0;i<ido;i++){ - t1=i; - t2=i; - for(k=0;k<l1;k++){ - cc[t2]=ch[t1]; - t1+=ido; - t2+=t10; - } - } - - L135: - t1=0; - t2=ido<<1; - t3=0; - t4=ipp2*t0; - for(j=1;j<ipph;j++){ - - t1+=t2; - t3+=t0; - t4-=t0; - - t5=t1; - t6=t3; - t7=t4; - - for(k=0;k<l1;k++){ - cc[t5-1]=ch[t6]; - cc[t5]=ch[t7]; - t5+=t10; - t6+=ido; - t7+=ido; - } - } - - if(ido==1)return; - if(nbd<l1)goto L141; - - t1=-ido; - t3=0; - t4=0; - t5=ipp2*t0; - for(j=1;j<ipph;j++){ - t1+=t2; - t3+=t2; - t4+=t0; - t5-=t0; - t6=t1; - t7=t3; - t8=t4; - t9=t5; - for(k=0;k<l1;k++){ - for(i=2;i<ido;i+=2){ - ic=idp2-i; - cc[i+t7-1]=ch[i+t8-1]+ch[i+t9-1]; - cc[ic+t6-1]=ch[i+t8-1]-ch[i+t9-1]; - cc[i+t7]=ch[i+t8]+ch[i+t9]; - cc[ic+t6]=ch[i+t9]-ch[i+t8]; - } - t6+=t10; - t7+=t10; - t8+=ido; - t9+=ido; - } - } - return; - - L141: - - t1=-ido; - t3=0; - t4=0; - t5=ipp2*t0; - for(j=1;j<ipph;j++){ - t1+=t2; - t3+=t2; - t4+=t0; - t5-=t0; - for(i=2;i<ido;i+=2){ - t6=idp2+t1-i; - t7=i+t3; - t8=i+t4; - t9=i+t5; - for(k=0;k<l1;k++){ - cc[t7-1]=ch[t8-1]+ch[t9-1]; - cc[t6-1]=ch[t8-1]-ch[t9-1]; - cc[t7]=ch[t8]+ch[t9]; - cc[t6]=ch[t9]-ch[t8]; - t6+=t10; - t7+=t10; - t8+=ido; - t9+=ido; - } - } - } -} - -static void drftf1(int n,float *c,float *ch,float *wa,int *ifac){ - int i,k1,l1,l2; - int na,kh,nf; - int ip,iw,ido,idl1,ix2,ix3; - - nf=ifac[1]; - na=1; - l2=n; - iw=n; - - for(k1=0;k1<nf;k1++){ - kh=nf-k1; - ip=ifac[kh+1]; - l1=l2/ip; - ido=n/l2; - idl1=ido*l1; - iw-=(ip-1)*ido; - na=1-na; - - if(ip!=4)goto L102; - - ix2=iw+ido; - ix3=ix2+ido; - if(na!=0) - dradf4(ido,l1,ch,c,wa+iw-1,wa+ix2-1,wa+ix3-1); - else - dradf4(ido,l1,c,ch,wa+iw-1,wa+ix2-1,wa+ix3-1); - goto L110; - - L102: - if(ip!=2)goto L104; - if(na!=0)goto L103; - - dradf2(ido,l1,c,ch,wa+iw-1); - goto L110; - - L103: - dradf2(ido,l1,ch,c,wa+iw-1); - goto L110; - - L104: - if(ido==1)na=1-na; - if(na!=0)goto L109; - - dradfg(ido,ip,l1,idl1,c,c,c,ch,ch,wa+iw-1); - na=1; - goto L110; - - L109: - dradfg(ido,ip,l1,idl1,ch,ch,ch,c,c,wa+iw-1); - na=0; - - L110: - l2=l1; - } - - if(na==1)return; - - for(i=0;i<n;i++)c[i]=ch[i]; -} - -static void dradb2(int ido,int l1,float *cc,float *ch,float *wa1){ - int i,k,t0,t1,t2,t3,t4,t5,t6; - float ti2,tr2; - - t0=l1*ido; - - t1=0; - t2=0; - t3=(ido<<1)-1; - for(k=0;k<l1;k++){ - ch[t1]=cc[t2]+cc[t3+t2]; - ch[t1+t0]=cc[t2]-cc[t3+t2]; - t2=(t1+=ido)<<1; - } - - if(ido<2)return; - if(ido==2)goto L105; - - t1=0; - t2=0; - for(k=0;k<l1;k++){ - t3=t1; - t5=(t4=t2)+(ido<<1); - t6=t0+t1; - for(i=2;i<ido;i+=2){ - t3+=2; - t4+=2; - t5-=2; - t6+=2; - ch[t3-1]=cc[t4-1]+cc[t5-1]; - tr2=cc[t4-1]-cc[t5-1]; - ch[t3]=cc[t4]-cc[t5]; - ti2=cc[t4]+cc[t5]; - ch[t6-1]=wa1[i-2]*tr2-wa1[i-1]*ti2; - ch[t6]=wa1[i-2]*ti2+wa1[i-1]*tr2; - } - t2=(t1+=ido)<<1; - } - - if(ido%2==1)return; - -L105: - t1=ido-1; - t2=ido-1; - for(k=0;k<l1;k++){ - ch[t1]=cc[t2]+cc[t2]; - ch[t1+t0]=-(cc[t2+1]+cc[t2+1]); - t1+=ido; - t2+=ido<<1; - } -} - -static void dradb3(int ido,int l1,float *cc,float *ch,float *wa1, - float *wa2){ - static float taur = -.5f; - static float taui = .8660254037844386f; - int i,k,t0,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10; - float ci2,ci3,di2,di3,cr2,cr3,dr2,dr3,ti2,tr2; - t0=l1*ido; - - t1=0; - t2=t0<<1; - t3=ido<<1; - t4=ido+(ido<<1); - t5=0; - for(k=0;k<l1;k++){ - tr2=cc[t3-1]+cc[t3-1]; - cr2=cc[t5]+(taur*tr2); - ch[t1]=cc[t5]+tr2; - ci3=taui*(cc[t3]+cc[t3]); - ch[t1+t0]=cr2-ci3; - ch[t1+t2]=cr2+ci3; - t1+=ido; - t3+=t4; - t5+=t4; - } - - if(ido==1)return; - - t1=0; - t3=ido<<1; - for(k=0;k<l1;k++){ - t7=t1+(t1<<1); - t6=(t5=t7+t3); - t8=t1; - t10=(t9=t1+t0)+t0; - - for(i=2;i<ido;i+=2){ - t5+=2; - t6-=2; - t7+=2; - t8+=2; - t9+=2; - t10+=2; - tr2=cc[t5-1]+cc[t6-1]; - cr2=cc[t7-1]+(taur*tr2); - ch[t8-1]=cc[t7-1]+tr2; - ti2=cc[t5]-cc[t6]; - ci2=cc[t7]+(taur*ti2); - ch[t8]=cc[t7]+ti2; - cr3=taui*(cc[t5-1]-cc[t6-1]); - ci3=taui*(cc[t5]+cc[t6]); - dr2=cr2-ci3; - dr3=cr2+ci3; - di2=ci2+cr3; - di3=ci2-cr3; - ch[t9-1]=wa1[i-2]*dr2-wa1[i-1]*di2; - ch[t9]=wa1[i-2]*di2+wa1[i-1]*dr2; - ch[t10-1]=wa2[i-2]*dr3-wa2[i-1]*di3; - ch[t10]=wa2[i-2]*di3+wa2[i-1]*dr3; - } - t1+=ido; - } -} - -static void dradb4(int ido,int l1,float *cc,float *ch,float *wa1, - float *wa2,float *wa3){ - static float sqrt2=1.414213562373095f; - int i,k,t0,t1,t2,t3,t4,t5,t6,t7,t8; - float ci2,ci3,ci4,cr2,cr3,cr4,ti1,ti2,ti3,ti4,tr1,tr2,tr3,tr4; - t0=l1*ido; - - t1=0; - t2=ido<<2; - t3=0; - t6=ido<<1; - for(k=0;k<l1;k++){ - t4=t3+t6; - t5=t1; - tr3=cc[t4-1]+cc[t4-1]; - tr4=cc[t4]+cc[t4]; - tr1=cc[t3]-cc[(t4+=t6)-1]; - tr2=cc[t3]+cc[t4-1]; - ch[t5]=tr2+tr3; - ch[t5+=t0]=tr1-tr4; - ch[t5+=t0]=tr2-tr3; - ch[t5+=t0]=tr1+tr4; - t1+=ido; - t3+=t2; - } - - if(ido<2)return; - if(ido==2)goto L105; - - t1=0; - for(k=0;k<l1;k++){ - t5=(t4=(t3=(t2=t1<<2)+t6))+t6; - t7=t1; - for(i=2;i<ido;i+=2){ - t2+=2; - t3+=2; - t4-=2; - t5-=2; - t7+=2; - ti1=cc[t2]+cc[t5]; - ti2=cc[t2]-cc[t5]; - ti3=cc[t3]-cc[t4]; - tr4=cc[t3]+cc[t4]; - tr1=cc[t2-1]-cc[t5-1]; - tr2=cc[t2-1]+cc[t5-1]; - ti4=cc[t3-1]-cc[t4-1]; - tr3=cc[t3-1]+cc[t4-1]; - ch[t7-1]=tr2+tr3; - cr3=tr2-tr3; - ch[t7]=ti2+ti3; - ci3=ti2-ti3; - cr2=tr1-tr4; - cr4=tr1+tr4; - ci2=ti1+ti4; - ci4=ti1-ti4; - - ch[(t8=t7+t0)-1]=wa1[i-2]*cr2-wa1[i-1]*ci2; - ch[t8]=wa1[i-2]*ci2+wa1[i-1]*cr2; - ch[(t8+=t0)-1]=wa2[i-2]*cr3-wa2[i-1]*ci3; - ch[t8]=wa2[i-2]*ci3+wa2[i-1]*cr3; - ch[(t8+=t0)-1]=wa3[i-2]*cr4-wa3[i-1]*ci4; - ch[t8]=wa3[i-2]*ci4+wa3[i-1]*cr4; - } - t1+=ido; - } - - if(ido%2 == 1)return; - - L105: - - t1=ido; - t2=ido<<2; - t3=ido-1; - t4=ido+(ido<<1); - for(k=0;k<l1;k++){ - t5=t3; - ti1=cc[t1]+cc[t4]; - ti2=cc[t4]-cc[t1]; - tr1=cc[t1-1]-cc[t4-1]; - tr2=cc[t1-1]+cc[t4-1]; - ch[t5]=tr2+tr2; - ch[t5+=t0]=sqrt2*(tr1-ti1); - ch[t5+=t0]=ti2+ti2; - ch[t5+=t0]=-sqrt2*(tr1+ti1); - - t3+=ido; - t1+=t2; - t4+=t2; - } -} - -static void dradbg(int ido,int ip,int l1,int idl1,float *cc,float *c1, - float *c2,float *ch,float *ch2,float *wa){ - static float tpi=6.283185307179586f; - int idij,ipph,i,j,k,l,ik,is,t0,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10, - t11,t12; - float dc2,ai1,ai2,ar1,ar2,ds2; - int nbd; - float dcp,arg,dsp,ar1h,ar2h; - int ipp2; - - t10=ip*ido; - t0=l1*ido; - arg=tpi/(float)ip; - dcp=cos(arg); - dsp=sin(arg); - nbd=(ido-1)>>1; - ipp2=ip; - ipph=(ip+1)>>1; - if(ido<l1)goto L103; - - t1=0; - t2=0; - for(k=0;k<l1;k++){ - t3=t1; - t4=t2; - for(i=0;i<ido;i++){ - ch[t3]=cc[t4]; - t3++; - t4++; - } - t1+=ido; - t2+=t10; - } - goto L106; - - L103: - t1=0; - for(i=0;i<ido;i++){ - t2=t1; - t3=t1; - for(k=0;k<l1;k++){ - ch[t2]=cc[t3]; - t2+=ido; - t3+=t10; - } - t1++; - } - - L106: - t1=0; - t2=ipp2*t0; - t7=(t5=ido<<1); - for(j=1;j<ipph;j++){ - t1+=t0; - t2-=t0; - t3=t1; - t4=t2; - t6=t5; - for(k=0;k<l1;k++){ - ch[t3]=cc[t6-1]+cc[t6-1]; - ch[t4]=cc[t6]+cc[t6]; - t3+=ido; - t4+=ido; - t6+=t10; - } - t5+=t7; - } - - if (ido == 1)goto L116; - if(nbd<l1)goto L112; - - t1=0; - t2=ipp2*t0; - t7=0; - for(j=1;j<ipph;j++){ - t1+=t0; - t2-=t0; - t3=t1; - t4=t2; - - t7+=(ido<<1); - t8=t7; - for(k=0;k<l1;k++){ - t5=t3; - t6=t4; - t9=t8; - t11=t8; - for(i=2;i<ido;i+=2){ - t5+=2; - t6+=2; - t9+=2; - t11-=2; - ch[t5-1]=cc[t9-1]+cc[t11-1]; - ch[t6-1]=cc[t9-1]-cc[t11-1]; - ch[t5]=cc[t9]-cc[t11]; - ch[t6]=cc[t9]+cc[t11]; - } - t3+=ido; - t4+=ido; - t8+=t10; - } - } - goto L116; - - L112: - t1=0; - t2=ipp2*t0; - t7=0; - for(j=1;j<ipph;j++){ - t1+=t0; - t2-=t0; - t3=t1; - t4=t2; - t7+=(ido<<1); - t8=t7; - t9=t7; - for(i=2;i<ido;i+=2){ - t3+=2; - t4+=2; - t8+=2; - t9-=2; - t5=t3; - t6=t4; - t11=t8; - t12=t9; - for(k=0;k<l1;k++){ - ch[t5-1]=cc[t11-1]+cc[t12-1]; - ch[t6-1]=cc[t11-1]-cc[t12-1]; - ch[t5]=cc[t11]-cc[t12]; - ch[t6]=cc[t11]+cc[t12]; - t5+=ido; - t6+=ido; - t11+=t10; - t12+=t10; - } - } - } - -L116: - ar1=1.f; - ai1=0.f; - t1=0; - t9=(t2=ipp2*idl1); - t3=(ip-1)*idl1; - for(l=1;l<ipph;l++){ - t1+=idl1; - t2-=idl1; - - ar1h=dcp*ar1-dsp*ai1; - ai1=dcp*ai1+dsp*ar1; - ar1=ar1h; - t4=t1; - t5=t2; - t6=0; - t7=idl1; - t8=t3; - for(ik=0;ik<idl1;ik++){ - c2[t4++]=ch2[t6++]+ar1*ch2[t7++]; - c2[t5++]=ai1*ch2[t8++]; - } - dc2=ar1; - ds2=ai1; - ar2=ar1; - ai2=ai1; - - t6=idl1; - t7=t9-idl1; - for(j=2;j<ipph;j++){ - t6+=idl1; - t7-=idl1; - ar2h=dc2*ar2-ds2*ai2; - ai2=dc2*ai2+ds2*ar2; - ar2=ar2h; - t4=t1; - t5=t2; - t11=t6; - t12=t7; - for(ik=0;ik<idl1;ik++){ - c2[t4++]+=ar2*ch2[t11++]; - c2[t5++]+=ai2*ch2[t12++]; - } - } - } - - t1=0; - for(j=1;j<ipph;j++){ - t1+=idl1; - t2=t1; - for(ik=0;ik<idl1;ik++)ch2[ik]+=ch2[t2++]; - } - - t1=0; - t2=ipp2*t0; - for(j=1;j<ipph;j++){ - t1+=t0; - t2-=t0; - t3=t1; - t4=t2; - for(k=0;k<l1;k++){ - ch[t3]=c1[t3]-c1[t4]; - ch[t4]=c1[t3]+c1[t4]; - t3+=ido; - t4+=ido; - } - } - - if(ido==1)goto L132; - if(nbd<l1)goto L128; - - t1=0; - t2=ipp2*t0; - for(j=1;j<ipph;j++){ - t1+=t0; - t2-=t0; - t3=t1; - t4=t2; - for(k=0;k<l1;k++){ - t5=t3; - t6=t4; - for(i=2;i<ido;i+=2){ - t5+=2; - t6+=2; - ch[t5-1]=c1[t5-1]-c1[t6]; - ch[t6-1]=c1[t5-1]+c1[t6]; - ch[t5]=c1[t5]+c1[t6-1]; - ch[t6]=c1[t5]-c1[t6-1]; - } - t3+=ido; - t4+=ido; - } - } - goto L132; - - L128: - t1=0; - t2=ipp2*t0; - for(j=1;j<ipph;j++){ - t1+=t0; - t2-=t0; - t3=t1; - t4=t2; - for(i=2;i<ido;i+=2){ - t3+=2; - t4+=2; - t5=t3; - t6=t4; - for(k=0;k<l1;k++){ - ch[t5-1]=c1[t5-1]-c1[t6]; - ch[t6-1]=c1[t5-1]+c1[t6]; - ch[t5]=c1[t5]+c1[t6-1]; - ch[t6]=c1[t5]-c1[t6-1]; - t5+=ido; - t6+=ido; - } - } - } - -L132: - if(ido==1)return; - - for(ik=0;ik<idl1;ik++)c2[ik]=ch2[ik]; - - t1=0; - for(j=1;j<ip;j++){ - t2=(t1+=t0); - for(k=0;k<l1;k++){ - c1[t2]=ch[t2]; - t2+=ido; - } - } - - if(nbd>l1)goto L139; - - is= -ido-1; - t1=0; - for(j=1;j<ip;j++){ - is+=ido; - t1+=t0; - idij=is; - t2=t1; - for(i=2;i<ido;i+=2){ - t2+=2; - idij+=2; - t3=t2; - for(k=0;k<l1;k++){ - c1[t3-1]=wa[idij-1]*ch[t3-1]-wa[idij]*ch[t3]; - c1[t3]=wa[idij-1]*ch[t3]+wa[idij]*ch[t3-1]; - t3+=ido; - } - } - } - return; - - L139: - is= -ido-1; - t1=0; - for(j=1;j<ip;j++){ - is+=ido; - t1+=t0; - t2=t1; - for(k=0;k<l1;k++){ - idij=is; - t3=t2; - for(i=2;i<ido;i+=2){ - idij+=2; - t3+=2; - c1[t3-1]=wa[idij-1]*ch[t3-1]-wa[idij]*ch[t3]; - c1[t3]=wa[idij-1]*ch[t3]+wa[idij]*ch[t3-1]; - } - t2+=ido; - } - } -} - -static void drftb1(int n, float *c, float *ch, float *wa, int *ifac){ - int i,k1,l1,l2; - int na; - int nf,ip,iw,ix2,ix3,ido,idl1; - - nf=ifac[1]; - na=0; - l1=1; - iw=1; - - for(k1=0;k1<nf;k1++){ - ip=ifac[k1 + 2]; - l2=ip*l1; - ido=n/l2; - idl1=ido*l1; - if(ip!=4)goto L103; - ix2=iw+ido; - ix3=ix2+ido; - - if(na!=0) - dradb4(ido,l1,ch,c,wa+iw-1,wa+ix2-1,wa+ix3-1); - else - dradb4(ido,l1,c,ch,wa+iw-1,wa+ix2-1,wa+ix3-1); - na=1-na; - goto L115; - - L103: - if(ip!=2)goto L106; - - if(na!=0) - dradb2(ido,l1,ch,c,wa+iw-1); - else - dradb2(ido,l1,c,ch,wa+iw-1); - na=1-na; - goto L115; - - L106: - if(ip!=3)goto L109; - - ix2=iw+ido; - if(na!=0) - dradb3(ido,l1,ch,c,wa+iw-1,wa+ix2-1); - else - dradb3(ido,l1,c,ch,wa+iw-1,wa+ix2-1); - na=1-na; - goto L115; - - L109: -/* The radix five case can be translated later..... */ -/* if(ip!=5)goto L112; - - ix2=iw+ido; - ix3=ix2+ido; - ix4=ix3+ido; - if(na!=0) - dradb5(ido,l1,ch,c,wa+iw-1,wa+ix2-1,wa+ix3-1,wa+ix4-1); - else - dradb5(ido,l1,c,ch,wa+iw-1,wa+ix2-1,wa+ix3-1,wa+ix4-1); - na=1-na; - goto L115; - - L112:*/ - if(na!=0) - dradbg(ido,ip,l1,idl1,ch,ch,ch,c,c,wa+iw-1); - else - dradbg(ido,ip,l1,idl1,c,c,c,ch,ch,wa+iw-1); - if(ido==1)na=1-na; - - L115: - l1=l2; - iw+=(ip-1)*ido; - } - - if(na==0)return; - - for(i=0;i<n;i++)c[i]=ch[i]; -} - -void drft_forward(drft_lookup *l,float *data){ - if(l->n==1)return; - drftf1(l->n,data,l->trigcache,l->trigcache+l->n,l->splitcache); -} - -void drft_backward(drft_lookup *l,float *data){ - if (l->n==1)return; - drftb1(l->n,data,l->trigcache,l->trigcache+l->n,l->splitcache); -} - -void drft_init(drft_lookup *l,int n){ - l->n=n; - l->trigcache=_ogg_calloc(3*n,sizeof(float)); - l->splitcache=_ogg_calloc(32,sizeof(int)); - fdrffti(n, l->trigcache, l->splitcache); -} - -void drft_clear(drft_lookup *l){ - if(l){ - if(l->trigcache)_ogg_free(l->trigcache); - if(l->splitcache)_ogg_free(l->splitcache); - memset(l,0,sizeof(drft_lookup)); - } -} diff --git a/lib/smallft.h b/lib/smallft.h deleted file mode 100644 index 2dd9b38d..00000000 --- a/lib/smallft.h +++ /dev/null @@ -1,34 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: fft transform - last mod: $Id: smallft.h,v 1.10 2001/02/26 03:50:43 xiphmont Exp $ - -********************************************************************/ - -#ifndef _V_SMFT_H_ -#define _V_SMFT_H_ - -#include "vorbis/codec.h" - -typedef struct { - int n; - float *trigcache; - int *splitcache; -} drft_lookup; - -extern void drft_forward(drft_lookup *l,float *data); -extern void drft_backward(drft_lookup *l,float *data); -extern void drft_init(drft_lookup *l,int n); -extern void drft_clear(drft_lookup *l); - -#endif diff --git a/lib/synthesis.c b/lib/synthesis.c deleted file mode 100644 index eb314b89..00000000 --- a/lib/synthesis.c +++ /dev/null @@ -1,103 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: single-block PCM synthesis - last mod: $Id: synthesis.c,v 1.22 2001/05/27 06:44:01 xiphmont Exp $ - - ********************************************************************/ - -#include <stdio.h> -#include <ogg/ogg.h> -#include "vorbis/codec.h" -#include "registry.h" -#include "misc.h" -#include "os.h" - -int vorbis_synthesis(vorbis_block *vb,ogg_packet *op){ - vorbis_dsp_state *vd=vb->vd; - backend_lookup_state *b=vd->backend_state; - vorbis_info *vi=vd->vi; - codec_setup_info *ci=vi->codec_setup; - oggpack_buffer *opb=&vb->opb; - int type,mode,i; - - /* first things first. Make sure decode is ready */ - _vorbis_block_ripcord(vb); - oggpack_readinit(opb,op->packet,op->bytes); - - /* Check the packet type */ - if(oggpack_read(opb,1)!=0){ - /* Oops. This is not an audio data packet */ - return(OV_ENOTAUDIO); - } - - /* read our mode and pre/post windowsize */ - mode=oggpack_read(opb,b->modebits); - if(mode==-1)return(OV_EBADPACKET); - - vb->mode=mode; - vb->W=ci->mode_param[mode]->blockflag; - if(vb->W){ - vb->lW=oggpack_read(opb,1); - vb->nW=oggpack_read(opb,1); - if(vb->nW==-1) return(OV_EBADPACKET); - }else{ - vb->lW=0; - vb->nW=0; - } - - /* more setup */ - vb->granulepos=op->granulepos; - vb->sequence=op->packetno-3; /* first block is third packet */ - vb->eofflag=op->e_o_s; - - /* alloc pcm passback storage */ - vb->pcmend=ci->blocksizes[vb->W]; - vb->pcm=_vorbis_block_alloc(vb,sizeof(float *)*vi->channels); - for(i=0;i<vi->channels;i++) - vb->pcm[i]=_vorbis_block_alloc(vb,vb->pcmend*sizeof(float)); - - /* unpack_header enforces range checking */ - type=ci->map_type[ci->mode_param[mode]->mapping]; - - return(_mapping_P[type]->inverse(vb,b->mode[mode])); -} - -long vorbis_packet_blocksize(vorbis_info *vi,ogg_packet *op){ - codec_setup_info *ci=vi->codec_setup; - oggpack_buffer opb; - int type,mode,i; - - oggpack_readinit(&opb,op->packet,op->bytes); - - /* Check the packet type */ - if(oggpack_read(&opb,1)!=0){ - /* Oops. This is not an audio data packet */ - return(OV_ENOTAUDIO); - } - - { - int modebits=0; - int v=ci->modes; - while(v>1){ - modebits++; - v>>=1; - } - - /* read our mode and pre/post windowsize */ - mode=oggpack_read(&opb,modebits); - } - if(mode==-1)return(OV_EBADPACKET); - return(ci->blocksizes[ci->mode_param[mode]->blockflag]); -} - - diff --git a/lib/time0.c b/lib/time0.c deleted file mode 100644 index b2db6dc1..00000000 --- a/lib/time0.c +++ /dev/null @@ -1,54 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: time backend 0 (dummy) - last mod: $Id: time0.c,v 1.9 2001/02/26 03:50:43 xiphmont Exp $ - - ********************************************************************/ - -#include <stdlib.h> -#include <string.h> -#include "vorbis/codec.h" -#include "registry.h" -#include "misc.h" - -static void time0_pack (vorbis_info_time *i,oggpack_buffer *opb){ -} -static vorbis_info_time *time0_unpack (vorbis_info *vi,oggpack_buffer *opb){ - return ""; - -} -static vorbis_info_time *time0_copy_info (vorbis_info_time *vi){ - return ""; -} -static vorbis_look_time *time0_look (vorbis_dsp_state *vd,vorbis_info_mode *mi, - vorbis_info_time *i){ - return ""; -} -static void time0_free_info(vorbis_info_time *i){ -} -static void time0_free_look(vorbis_look_time *i){ -} -static int time0_forward(vorbis_block *vb,vorbis_look_time *i, - float *in,float *out){ - return(0); -} -static int time0_inverse(vorbis_block *vb,vorbis_look_time *i, - float *in,float *out){ - return(0); -} - -/* export hooks */ -vorbis_func_time time0_exportbundle={ - &time0_pack,&time0_unpack,&time0_look,&time0_copy_info,&time0_free_info, - &time0_free_look,&time0_forward,&time0_inverse -}; diff --git a/lib/tone.c b/lib/tone.c deleted file mode 100644 index 3760344d..00000000 --- a/lib/tone.c +++ /dev/null @@ -1,54 +0,0 @@ -#include <stdlib.h> -#include <stdio.h> -#include <math.h> -#include <string.h> - -void usage(){ - fprintf(stderr,"tone <frequency_Hz>,[<amplitude>] [<frequency_Hz>,[<amplitude>]...]\n"); - exit(1); -} - -int main (int argc,char *argv[]){ - int i,j; - double *f; - double *amp; - - if(argc<2)usage(); - - f=alloca(sizeof(float)*(argc-1)); - amp=alloca(sizeof(float)*(argc-1)); - - i=0; - while(argv[i+1]){ - char *pos=strchr(argv[i+1],','); - - f[i]=atof(argv[i+1]); - if(pos) - amp[i]=atof(pos+1)*32767.f; - else - amp[i]=32767.f; - - fprintf(stderr,"%g Hz, %g amp\n",f[i],amp[i]); - - i++; - } - - for(i=0;i<44100*10;i++){ - float val=0; - int ival; - for(j=0;j<argc-1;j++) - val+=amp[j]*sin(i/44100.f*f[j]*2*M_PI); - ival=rint(val); - - if(ival>32767.f)ival=32767.f; - if(ival<-32768.f)ival=-32768.f; - - fprintf(stdout,"%c%c%c%c", - (char)(ival&0xff), - (char)((ival>>8)&0xff), - (char)(ival&0xff), - (char)((ival>>8)&0xff)); - } - return(0); -} - diff --git a/lib/vorbisenc.c b/lib/vorbisenc.c deleted file mode 100644 index 52e06834..00000000 --- a/lib/vorbisenc.c +++ /dev/null @@ -1,157 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: simple programmatic interface for encoder mode setup - last mod: $Id: vorbisenc.c,v 1.7 2001/05/27 06:44:01 xiphmont Exp $ - - ********************************************************************/ - -#include <stdlib.h> -#include <string.h> -#include <math.h> - -#include "vorbis/codec.h" -#include "vorbis/vorbisenc.h" - -#include "codec_internal.h" -#include "registry.h" -#include "modes/modes.h" - -#include "os.h" -#include "misc.h" - - -/* deepcopy all but the codebooks; in this usage, they're static - (don't copy as they could be big) */ -static void codec_setup_partialcopy(codec_setup_info *ci, - codec_setup_info *cs){ - int i; - - memcpy(ci,cs,sizeof(codec_setup_info)); /* to get the flat numbers */ - - /* codebooks */ - for(i=0;i<ci->books;i++){ - ci->book_param[i]=cs->book_param[i]; - } - - /* time backend settings */ - for(i=0;i<ci->times;i++){ - ci->time_param[i]=_time_P[ci->time_type[i]]-> - copy_info(cs->time_param[i]); - } - - /* floor backend settings */ - for(i=0;i<ci->floors;i++){ - ci->floor_param[i]=_floor_P[ci->floor_type[i]]-> - copy_info(cs->floor_param[i]); - } - - /* residue backend settings */ - for(i=0;i<ci->residues;i++){ - ci->residue_param[i]=_residue_P[ci->residue_type[i]]-> - copy_info(cs->residue_param[i]); - } - - /* map backend settings */ - for(i=0;i<ci->maps;i++){ - ci->map_param[i]=_mapping_P[ci->map_type[i]]-> - copy_info(cs->map_param[i]); - } - - /* mode settings */ - for(i=0;i<ci->modes;i++){ - ci->mode_param[i]=_ogg_calloc(1,sizeof(vorbis_info_mode)); - ci->mode_param[i]->blockflag=cs->mode_param[i]->blockflag; - ci->mode_param[i]->windowtype=cs->mode_param[i]->windowtype; - ci->mode_param[i]->transformtype=cs->mode_param[i]->transformtype; - ci->mode_param[i]->mapping=cs->mode_param[i]->mapping; - } - - /* psy settings */ - for(i=0;i<ci->psys;i++){ - ci->psy_param[i]=_vi_psy_copy(cs->psy_param[i]); - } - -} - -/* right now, this just encapsultes the old modes behind the interface - we'll be using from here on out. After beta 3, the new bitrate - tracking/modding/tuning engine will lurk inside */ -/* encoders will need to use vorbis_info_init beforehand and call - vorbis_info clear when all done */ - -int vorbis_encode_init(vorbis_info *vi, - long channels, - long rate, - - long max_bitrate, - long nominal_bitrate, - long min_bitrate){ - - long bpch; - int i,j; - codec_setup_info *ci=vi->codec_setup; - codec_setup_info *mode=NULL; - if(!ci)return(OV_EFAULT); - - vi->version=0; - vi->channels=channels; - vi->rate=rate; - - vi->bitrate_upper=max_bitrate; - vi->bitrate_nominal=nominal_bitrate; - vi->bitrate_lower=min_bitrate; - vi->bitrate_window=2; - - /* copy a mode into our allocated storage */ - bpch=nominal_bitrate/channels; - if(bpch<60000){ - /* mode A */ - mode=&info_AA; - }else if(bpch<75000){ - /* mode A */ - mode=&info_A; - }else if(bpch<90000){ - /* mode B */ - mode=&info_B; - }else if(bpch<110000){ - /* mode C */ - mode=&info_C; - }else if(bpch<160000){ - /* mode D */ - mode=&info_D; - }else{ - /* mode E */ - mode=&info_E; - } - - /* now we have to deepcopy */ - codec_setup_partialcopy(ci,mode); - - /* adjust for sample rate */ - for(i=0;i<ci->floors;i++) - if(ci->floor_type[i]==0) - ((vorbis_info_floor0 *)(ci->floor_param[i]))->rate=rate; - - /* adjust for channels; all our mappings use submap zero now */ - /* yeah, OK, _ogg_calloc did this for us. But it's a reminder/placeholder */ - for(i=0;i<ci->maps;i++) - for(j=0;j<channels;j++) - ((vorbis_info_mapping0 *)ci->map_param[i])->chmuxlist[j]=0; - - return(0); -} - -int vorbis_encode_ctl(vorbis_info *vi,int number,void *arg){ - return(OV_EIMPL); -} - diff --git a/lib/vorbisfile.c b/lib/vorbisfile.c index 07e4ac26..7d30fc7c 100644 --- a/lib/vorbisfile.c +++ b/lib/vorbisfile.c @@ -11,7 +11,7 @@ ******************************************************************** function: stdio-based convenience library for opening/seeking/decoding - last mod: $Id: vorbisfile.c,v 1.48 2001/06/02 11:38:14 msmith Exp $ + last mod: $Id: vorbisfile.c,v 1.46 2001/05/27 08:16:00 xiphmont Exp $ ********************************************************************/ @@ -49,7 +49,7 @@ information exists in an Ogg bitstream to seek to sample-granularity positions in the output. Or, one can seek by picking some portion of the stream roughly in the desired area if - we only want coarse navigation through the stream. */ + we only want course navigation through the stream. */ /************************************************************************* * Many, many internal helpers. The intention is not to be confusing; @@ -57,8 +57,7 @@ * harder to understand anyway. The high level functions are last. Begin * grokking near the end of the file */ -/* read a little more data from the file/pipe into the ogg_sync framer -*/ +/* read a little more data from the file/pipe into the ogg_sync framer */ #define CHUNKSIZE 8500 /* a shade over 8k; anyone using pages well over 8k gets what they deserve */ static long _get_data(OggVorbis_File *vf){ @@ -590,14 +589,13 @@ static int _ov_open1(void *f,OggVorbis_File *vf,char *initial, if((ret=_fetch_headers(vf,vf->vi,vf->vc,&vf->current_serialno,NULL))<0){ vf->datasource=NULL; ov_clear(vf); - }else if(vf->ready_state < PARTOPEN) + }else vf->ready_state=PARTOPEN; return(ret); } static int _ov_open2(OggVorbis_File *vf){ - if(vf->ready_state < OPENED) - vf->ready_state=OPENED; + vf->ready_state=OPENED; if(vf->seekable){ int ret=_open_seekable2(vf); if(ret){ diff --git a/lib/window.c b/lib/window.c deleted file mode 100644 index fe4cb269..00000000 --- a/lib/window.c +++ /dev/null @@ -1,62 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: window functions - last mod: $Id: window.c,v 1.13 2001/02/26 03:50:43 xiphmont Exp $ - - ********************************************************************/ - -#include <stdlib.h> -#include <math.h> -#include "os.h" -#include "misc.h" - -float *_vorbis_window(int type, int window,int left,int right){ - float *ret=_ogg_calloc(window,sizeof(float)); - - switch(type){ - case 0: - /* The 'vorbis window' (window 0) is sin(sin(x)*sin(x)*2pi) */ - { - int leftbegin=window/4-left/2; - int rightbegin=window-window/4-right/2; - int i; - - for(i=0;i<left;i++){ - float x=(i+.5f)/left*M_PI/2.; - x=sin(x); - x*=x; - x*=M_PI/2.f; - x=sin(x); - ret[i+leftbegin]=x; - } - - for(i=leftbegin+left;i<rightbegin;i++) - ret[i]=1.f; - - for(i=0;i<right;i++){ - float x=(right-i-.5f)/right*M_PI/2.; - x=sin(x); - x*=x; - x*=M_PI/2.f; - x=sin(x); - ret[i+rightbegin]=x; - } - } - break; - default: - _ogg_free(ret); - return(NULL); - } - return(ret); -} - diff --git a/lib/window.h b/lib/window.h deleted file mode 100644 index 541045b9..00000000 --- a/lib/window.h +++ /dev/null @@ -1,23 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the XIPHOPHORUS Company http://www.xiph.org/ * - - ******************************************************************** - - function: window functions - last mod: $Id: window.h,v 1.8 2001/02/26 03:50:43 xiphmont Exp $ - - ********************************************************************/ - -#ifndef _V_WINDOW_ -#define _V_WINDOW_ - -extern float *_vorbis_window(int type,int window,int left,int right); - -#endif |