diff options
author | Monty <xiphmont@xiph.org> | 2001-01-22 01:38:52 +0000 |
---|---|---|
committer | Monty <xiphmont@xiph.org> | 2001-01-22 01:38:52 +0000 |
commit | aa7a3d9b4e84e85a18512c98aa14aeefb2f3e129 (patch) | |
tree | 5b63fe7552399b0b82d55bff51962a971e27b9b6 | |
parent | 49d32ead8d9981c316cbcb6abb84716b81bec57f (diff) | |
download | libvorbis-git-aa7a3d9b4e84e85a18512c98aa14aeefb2f3e129.tar.gz |
Initial beta 4 merge
Monty
svn path=/trunk/vorbis/; revision=1191
133 files changed, 19891 insertions, 7894 deletions
@@ -1,13 +1,14 @@ - GNU LIBRARY GENERAL PUBLIC LICENSE - Version 2, June 1991 + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 - Copyright (C) 1991 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. -[This is the first released version of the library GPL. It is - numbered 2 because it goes with version 2 of the ordinary GPL.] +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] Preamble @@ -16,97 +17,109 @@ freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. - This license, the Library General Public License, applies to some -specially designated Free Software Foundation software, and to any -other libraries whose authors decide to use it. You can use it for -your libraries, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if -you distribute copies of the library, or if you modify it. +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source -code. If you link a program with the library, you must provide -complete object files to the recipients so that they can relink them -with the library, after making changes to the library and recompiling +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights. - Our method of protecting your rights has two steps: (1) copyright -the library, and (2) offer you this license which gives you legal + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library. - Also, for each distributor's protection, we want to make certain -that everyone understands that there is no warranty for this free -library. If the library is modified by someone else and passed on, we -want its recipients to know that what they have is not the original -version, so that any problems introduced by others will not reflect on -the original authors' reputations. + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that companies distributing free -software will individually obtain patent licenses, thus in effect -transforming the program into proprietary software. To prevent this, -we have made it clear that any patent must be licensed for everyone's -free use or not licensed at all. - - Most GNU software, including some libraries, is covered by the ordinary -GNU General Public License, which was designed for utility programs. This -license, the GNU Library General Public License, applies to certain -designated libraries. This license is quite different from the ordinary -one; be sure to read it in full, and don't assume that anything in it is -the same as in the ordinary license. - - The reason we have a separate public license for some libraries is that -they blur the distinction we usually make between modifying or adding to a -program and simply using it. Linking a program with a library, without -changing the library, is in some sense simply using the library, and is -analogous to running a utility program or application program. However, in -a textual and legal sense, the linked executable is a combined work, a -derivative of the original library, and the ordinary General Public License -treats it as such. - - Because of this blurred distinction, using the ordinary General -Public License for libraries did not effectively promote software -sharing, because most developers did not use the libraries. We -concluded that weaker conditions might promote sharing better. - - However, unrestricted linking of non-free programs would deprive the -users of those programs of all benefit from the free status of the -libraries themselves. This Library General Public License is intended to -permit developers of non-free programs to use free libraries, while -preserving your freedom as a user of such programs to change the free -libraries that are incorporated in them. (We have not seen how to achieve -this as regards changes in header files, but we have achieved it as regards -changes in the actual functions of the Library.) The hope is that this -will lead to faster development of free libraries. + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The -former contains code derived from the library, while the latter only -works together with the library. - - Note that it is possible for a library to be covered by the ordinary -General Public License rather than by this special one. +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. - GNU LIBRARY GENERAL PUBLIC LICENSE + GNU LESSER GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - 0. This License Agreement applies to any software library which -contains a notice placed by the copyright holder or other authorized -party saying it may be distributed under the terms of this Library -General Public License (also called "this License"). Each licensee is -addressed as "you". + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs @@ -255,7 +268,7 @@ distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. - 6. As an exception to the Sections above, you may also compile or + 6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit @@ -282,23 +295,31 @@ of these things: Library will not necessarily be able to recompile the application to use the modified definitions.) - b) Accompany the work with a written offer, valid for at + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. - c) If distribution of the work is made by offering access to copy + d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. - d) Verify that the user has already received a copy of these + e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, -the source code distributed need not include anything that is normally -distributed (in either source or binary form) with the major +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. @@ -347,7 +368,7 @@ Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to +You are not responsible for enforcing compliance by third parties with this License. 11. If, as a consequence of a court judgment or allegation of patent @@ -390,7 +411,7 @@ excluded. In such case, this License incorporates the limitation as if written in the body of this License. 13. The Free Software Foundation may publish revised and/or new -versions of the Library General Public License from time to time. +versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. @@ -453,17 +474,17 @@ convey the exclusion of warranty; and each file should have at least the Copyright (C) <year> <name of author> This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public + modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. + version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. + Lesser General Public License for more details. - You should have received a copy of the GNU Library General Public - License along with this library; if not, write to the Free + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail. @@ -479,3 +500,5 @@ necessary. Here is a sample; alter the names: Ty Coon, President of Vice That's all there is to it! + + diff --git a/configure.in b/configure.in index d06f1349..e1fac805 100644 --- a/configure.in +++ b/configure.in @@ -5,7 +5,7 @@ dnl Initialization and Versioning dnl ------------------------------------------------ AC_INIT(lib/mdct.c) -AM_INIT_AUTOMAKE(libvorbis,1.0beta3) +AM_INIT_AUTOMAKE(libvorbis,1.0prebeta4) dnl Library versioning diff --git a/debian/rules b/debian/rules index e25c1149..9937d63f 100755 --- a/debian/rules +++ b/debian/rules @@ -58,7 +58,7 @@ binary-arch: build install dh_movefiles - dh_installdocs debian/tmp/usr/share/doc/libvorbis-1.0beta3/* + dh_installdocs debian/tmp/usr/share/doc/libvorbis-1.0prebeta4/* dh_installexamples dh_installmanpages dh_installchangelogs diff --git a/examples/encoder_example.c b/examples/encoder_example.c index fb7edb5c..ca845e12 100644 --- a/examples/encoder_example.c +++ b/examples/encoder_example.c @@ -12,7 +12,7 @@ ******************************************************************** function: simple example encoder - last mod: $Id: encoder_example.c,v 1.18 2001/01/20 14:06:28 msmith Exp $ + last mod: $Id: encoder_example.c,v 1.19 2001/01/22 01:38:23 xiphmont Exp $ ********************************************************************/ @@ -80,7 +80,7 @@ int main(){ /* choose an encoding mode */ /* (mode 0: 44kHz stereo uncoupled, roughly 128kbps VBR) */ vorbis_info_init(&vi); - vorbis_encode_init(&vi,2,44100, -1, 160000, -1); + vorbis_encode_init(&vi,2,44100, -1, 128000, -1); /* add a comment */ vorbis_comment_init(&vc); diff --git a/include/vorbis/codec.h b/include/vorbis/codec.h index 8d15dc6f..ea2843a7 100644 --- a/include/vorbis/codec.h +++ b/include/vorbis/codec.h @@ -12,7 +12,7 @@ ******************************************************************** function: libvorbis codec headers - last mod: $Id: codec.h,v 1.34 2001/01/18 10:54:31 msmith Exp $ + last mod: $Id: codec.h,v 1.35 2001/01/22 01:38:23 xiphmont Exp $ ********************************************************************/ @@ -116,6 +116,8 @@ typedef struct vorbis_block{ long floor_bits; long res_bits; + void *internal; + } vorbis_block; /* vorbis_block is a single block of data to be processed as part of diff --git a/lib/analysis.c b/lib/analysis.c index 7f9a7edb..c2e2f4a0 100644 --- a/lib/analysis.c +++ b/lib/analysis.c @@ -12,7 +12,7 @@ ******************************************************************** function: single-block PCM analysis mode dispatch - last mod: $Id: analysis.c,v 1.40 2000/12/21 21:04:38 xiphmont Exp $ + last mod: $Id: analysis.c,v 1.41 2001/01/22 01:38:24 xiphmont Exp $ ********************************************************************/ diff --git a/lib/backends.h b/lib/backends.h index afd97456..d4719aa5 100644 --- a/lib/backends.h +++ b/lib/backends.h @@ -13,7 +13,7 @@ function: libvorbis backend and mapping structures; needed for static mode headers - last mod: $Id: backends.h,v 1.3 2000/11/17 11:47:18 xiphmont Exp $ + last mod: $Id: backends.h,v 1.4 2001/01/22 01:38:24 xiphmont Exp $ ********************************************************************/ @@ -62,9 +62,7 @@ typedef struct{ void (*free_info) (vorbis_info_floor *); void (*free_look) (vorbis_look_floor *); int (*forward) (struct vorbis_block *,vorbis_look_floor *, - float *,float *,vorbis_bitbuffer *); - float(*forward2) (struct vorbis_block *,vorbis_look_floor *, - long,float, vorbis_bitbuffer *); + float *); int (*inverse) (struct vorbis_block *,vorbis_look_floor *, float *); } vorbis_func_floor; @@ -79,6 +77,10 @@ typedef struct{ 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; /* Residue backend generic *****************************************/ @@ -91,7 +93,7 @@ typedef struct{ void (*free_info) (vorbis_info_residue *); void (*free_look) (vorbis_look_residue *); int (*forward) (struct vorbis_block *,vorbis_look_residue *, - float **,int,vorbis_bitbuffer *); + float **,int); int (*inverse) (struct vorbis_block *,vorbis_look_residue *, float **,int); } vorbis_func_residue; diff --git a/lib/block.c b/lib/block.c index 4c2cda3c..a27bbeea 100644 --- a/lib/block.c +++ b/lib/block.c @@ -12,7 +12,7 @@ ******************************************************************** function: PCM data vector blocking, windowing and dis/reassembly - last mod: $Id: block.c,v 1.42 2000/12/21 21:04:38 xiphmont Exp $ + last mod: $Id: block.c,v 1.43 2001/01/22 01:38:24 xiphmont Exp $ Handle windowing, overlap-add, etc of the PCM vectors. This is made more amusing by Vorbis' current two allowed block sizes. @@ -24,6 +24,7 @@ #include <string.h> #include <ogg/ogg.h> #include "vorbis/codec.h" +#include "codec_internal.h" #include "window.h" #include "envelope.h" @@ -33,6 +34,7 @@ #include "codebook.h" #include "misc.h" #include "os.h" +#include "psy.h" static int ilog2(unsigned int v){ int ret=0; @@ -92,9 +94,12 @@ int vorbis_block_init(vorbis_dsp_state *v, vorbis_block *vb){ vb->vd=v; vb->localalloc=0; vb->localstore=NULL; - if(v->analysisp) + 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); } @@ -150,6 +155,7 @@ int vorbis_block_clear(vorbis_block *vb){ 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); @@ -169,6 +175,7 @@ static int _vds_shared_init(vorbis_dsp_state *v,vorbis_info *vi,int encp){ 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 *)); @@ -529,13 +536,30 @@ int vorbis_analysis_blockout(vorbis_dsp_state *v,vorbis_block *vb){ 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)); + */ + } } @@ -553,33 +577,36 @@ int vorbis_analysis_blockout(vorbis_dsp_state *v,vorbis_block *vb){ /* advance storage vectors and clean up */ { - int new_centerNext=ci->blocksizes[1]/2; + int new_centerNext=ci->blocksizes[1]/2+ci->delaycache; int movementW=centerNext-new_centerNext; - _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; + if(movementW>0){ - 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); + _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; } - }else{ - v->granulepos+=movementW; } } @@ -683,6 +710,7 @@ int vorbis_synthesis_blockin(vorbis_dsp_state *v,vorbis_block *vb){ } for(j=0;j<vi->channels;j++){ + static int seq=0; float *pcm=v->pcm[j]+beginW; float *p=vb->pcm[j]; @@ -692,8 +720,13 @@ int vorbis_synthesis_blockin(vorbis_dsp_state *v,vorbis_block *vb){ /* 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); + } + /* 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 diff --git a/lib/books/lsp12_0.vqh b/lib/books/lsp12_0.vqh index 96ba7e7f..081bf1fc 100644 --- a/lib/books/lsp12_0.vqh +++ b/lib/books/lsp12_0.vqh @@ -5,9 +5,8 @@ * 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-2000 * - * by Monty <monty@xiph.org> and the XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -21,1136 +20,148 @@ static long _vq_quantlist_lsp12_0[] = { 0, - 3, - 6, - 7, - 8, - 9, + 5, 10, - 11, - 13, 15, - 19, + 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[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,16,15, 0, 0, 0, 0, 0, 0, 0, 0, 0,15,14,14, - 0, 0, 0, 0, 8, 0, 0, 0, 0,16,15,16, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,14,14,16, 0, 0, 0, 0, 0, 0, 0, - 0, 0,16,16,15, 0,16, 0, 0, 0, 0, 0, 0, 0,13,15, - 0, 0,15,13, 0, 0, 0, 0, 0, 0,15,14, 0, 0,15,14, - 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0,16,15,15, 0,16, 0, 0, 0, 0, - 0,15, 0, 0,16,15, 0, 0, 0, 0, 0, 0, 0, 0,15, 0, - 14,14,14,15,14,16, 0, 0, 0, 0, 0,15,12,12,13,13, - 13,16, 0, 0, 0, 0, 0, 0,16,12,12,13,11,11,14, 0, - 0, 0, 0, 0, 0, 0,12,12,12,10,11,12,15, 0, 0, 0, - 0, 0,14,14,12,10,10,10,12, 0,16, 0, 0, 0, 0, 0, - 14,13,11,11,11,13,16, 0, 0, 0, 0, 0, 0, 0,14,13, - 14,13,15, 0, 0, 0, 0, 0, 0, 0, 0,16,15, 0, 0,16, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0,14,15,13,14,14,13,16,15,16, - 0, 0, 0, 0,14,13,10,11,12,12,13, 0, 0, 0, 0, 0, - 0,14,10, 9, 9, 9,10,12,16, 0, 0, 0, 0, 0,14,11, - 9, 8, 9,10,12,15, 0, 0, 0, 0, 0,14,12, 9, 9, 9, - 9,12, 0, 0, 0, 0, 0, 0,14,13,11,10, 9,10,14, 0, - 0, 0, 0, 0, 0, 0,14,13,13,12,13,16, 0, 0, 0, 0, - 0, 0, 0, 0,15,16, 0,14, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0,16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0,15,16, 0, 0, 0, 0, 0, - 14,13,12,12,12,12,14, 0,15,16, 0, 0,15, 8, 9, 8, - 9,10,11,12,16, 0, 0, 0, 0,15, 9, 6, 7, 6, 7, 9, - 11, 0, 0, 0, 0, 0, 0,11, 8, 6, 5, 7, 8,12,16, 0, - 0, 0, 0, 0,12,10, 7, 7, 7, 8,12,15,16, 0, 0, 0, - 0,14,12, 9, 8, 8, 9,13, 0, 0, 0, 0, 0, 0,14,13, - 11,11,12,12,15, 0, 0, 0, 0, 0, 0,16,16,15,16,15, - 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,14,15,16, 0, 0, 0, 0,14,13,12,10,11, 8,12,14, - 16,16, 0, 0, 0, 0,14, 7, 7, 8, 9,10,12,16, 0, 0, - 0, 0, 0, 8, 6, 5, 5, 6, 8,11,14, 0, 0, 0, 0, 0, - 10, 6, 5, 4, 5, 7,11,15, 0, 0, 0, 0, 0,12, 9, 6, - 6, 6, 8,11,15, 0, 0, 0, 0, 0,13,10, 8, 7, 7, 9, - 13, 0, 0, 0, 0, 0,13,13,12,10,11,11,11,14, 0, 0, - 0, 0, 0, 0,16, 0, 0, 0,15,15, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0,15, 0, 0,16,14,13,14, 0,16, 0, 0, - 0,14,13,12,11,11,12,12,14,16, 0, 0, 0, 0, 0,12, - 10, 9, 8, 9,10,12, 0, 0, 0, 0, 0, 0,10, 8, 6, 6, - 6, 8,10,15, 0, 0, 0, 0, 0,10, 8, 6, 5, 6, 7,10, - 0, 0, 0, 0, 0, 0,11, 9, 7, 6, 6, 8,10,15, 0, 0, - 0, 0,14,11,10, 8, 7, 7, 8,12, 0,16, 0, 0, 0,13, - 13,13,11,11,11,11,15,15, 0, 0, 0, 0, 0, 0,16,16, - 16,16,14,16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,16, 0, - 15,16,14,14, 0, 0, 0, 0, 0, 0,15,12,13,12,12,12, - 12,15, 0, 0, 0, 0, 0,15,12,11,10,10, 9,10,12,16, - 0, 0, 0, 0,16,11,10, 8, 7, 7, 8,10,16, 0, 0, 0, - 0,15,11, 9, 8, 6, 6, 6,10,15, 0, 0, 0, 0,14,11, - 10, 8, 7, 6, 7,11,15, 0, 0, 0, 0,14,12,10, 8, 7, - 7, 7,13,15, 0, 0, 0, 0,15,14,12,10,10,12,13,14, - 0, 0, 0, 0, 0, 0, 0, 0,16, 0,16, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,15, 0, 0, 0, 0,16, 0, 0, 0,16, - 0, 0, 0, 0,12,14,12,12,14,14,14, 0,16, 0, 0, 0, - 0,13,14,12,11,12,12,13, 0, 0, 0, 0, 0,16,13,13, - 11,10, 9,10,13,15, 0, 0, 0, 0,15,12,11,11, 8, 8, - 9,12, 0, 0, 0, 0, 0,14,13,12, 9, 8, 8,10,15, 0, - 0, 0, 0, 0, 0,12,12, 9, 9,10,11,16, 0,16, 0, 0, - 0, 0, 0,14,13,13,14,15,16, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,14,15,15, - 15, 0, 0,16, 0, 0, 0, 0, 0, 0,15, 0,16,16, 0,16, - 0, 0, 0, 0, 0, 0, 0,14, 0,14,15, 0,16,16, 0, 0, - 0, 0, 0, 0,16, 0,15,15, 0,15, 0, 0, 0, 0, 0, 0, - 0,16,16,15,14,16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 15,15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15, 0, - 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15, 0, 0, - 0, 0,16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,15, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,16,16, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0,16, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0,15, 8, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, + 13,14,14,12,13,12,13,13,11,11,10, 9, 8, 6, 6, 6, + 5, 5, 4, 3, 3, 3, 3, 4, 4, 5, 5, 5, 6, 4, 6, 8, + 10,11,13,13,14,12,14,12,13,13,12, }; static long _vq_pigeonmap_lsp12_0[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, - 2, 2, 3, 3, 3, 4, 4, 4, - 4, 4, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, - 5, 6, 6, 6, 6, 6, 6, 6, + 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[] = { - 196, 353, 343, 344, 345, 356, 366, 379, - 535, 189, 357, 201, 368, 380, 238, 250, - 392, 536, 548, 716, 226, 381, 393, 537, - 549, 704, 369, 561, 705, 202, 214, 227, - 239, 251, 370, 382, 394, 406, 538, 550, - 562, 706, 215, 717, 418, 574, 718, 730, - 873, 874, 1032, 1200, 707, 865, 875, 1033, - 1201, 729, 872, 1029, 1198, 886, 1042, 563, - 575, 719, 731, 743, 887, 899, 1043, 343, - 344, 189, 345, 178, 190, 201, 202, 356, - 357, 214, 368, 369, 215, 226, 370, 191, - 203, 227, 347, 371, 538, 381, 537, 382, - 539, 865, 228, 383, 384, 540, 552, 697, - 708, 550, 551, 706, 707, 1032, 1033, 1034, - 866, 709, 1202, 394, 719, 875, 876, 395, - 720, 877, 1203, 1201, 396, 553, 564, 721, - 878, 889, 1035, 1045, 1046, 1200, 565, 722, - 733, 890, 1047, 1058, 1214, 1215, 178, 189, - 344, 345, 179, 190, 191, 347, 202, 203, - 216, 215, 230, 373, 372, 242, 385, 541, - 698, 867, 243, 542, 228, 371, 697, 398, - 554, 255, 256, 412, 568, 710, 724, 254, - 267, 397, 410, 411, 567, 543, 581, 438, - 712, 750, 763, 906, 424, 881, 540, 866, - 384, 357, 1035, 553, 709, 880, 865, 722, - 878, 723, 879, 893, 1037, 1049, 179, 191, - 543, 1037, 712, 881, 426, 713, 230, 243, - 256, 373, 542, 412, 568, 764, 724, 698, - 880, 867, 581, 893, 438, 1049, 1375, 1388, - 750, 906, 1048, 1217, 1115, 763, 1453, 1231, - 1413, 196, 353, 366, 716, 872, 379, 535, - 729, 1041, 392, 548, 704, 380, 536, 238, - 250, 368, 561, 717, 226, 393, 549, 418, - 574, 730, 406, 562, 587, 873, 743, 886, - 419, 575, 251, 239, 600, 407, 420, 432, - 588, 601, 950, 1106, 1236, 1249, 1262, 756, - 769, 408, 421, 433, 576, 589, 602, 614, - 757, 770, 782, 394, 744, 899, 1275, 912, - 925, 1119, 563, 938, 434, 446, 758, 1223, - 926, 590, 615, 771, 783, 939, 951, 718, - 1055, 1288, 1094, 1107, 603, 795, 952, 1120, - 1042, 189, 190, 201, 202, 214, 178, 226, - 215, 227, 191, 203, 228, 238, 239, 216, - 357, 371, 370, 369, 383, 384, 540, 697, - 382, 395, 539, 396, 254, 372, 397, 189, - 201, 202, 214, 226, 238, 250, 368, 227, - 239, 251, 215, 228, 369, 381, 370, 382, - 394, 383, 395, 393, 406, 538, 550, 371, - 407, 539, 551, 419, 563, 384, 396, 397, - 408, 409, 420, 421, 432, 433, 540, 552, - 553, 564, 565, 576, 577, 589, 708, 720, - 721, 733, 190, 201, 202, 214, 215, 226, - 227, 238, 239, 251, 203, 228, 191, 216, - 254, 242, 267, 384, 397, 255, 372, 385, - 371, 383, 396, 395, 408, 540, 552, 409, - 410, 421, 422, 541, 553, 565, 566, 578, - 709, 722, 398, 423, 554, 579, 710, 420, - 433, 434, 564, 577, 590, 721, 734, 201, - 238, 250, 356, 366, 368, 379, 380, 392, - 535, 536, 548, 704, 226, 393, 214, 239, - 251, 561, 227, 549, 381, 717, 418, 406, - 419, 407, 420, 432, 394, 574, 587, 575, - 588, 600, 383, 395, 396, 408, 409, 421, - 433, 564, 576, 577, 589, 601, 745, 757, - 562, 730, 382, 563, 743, 550, 731, 744, - 756, 551, 732, 769, 434, 590, 602, 758, - 770, 201, 202, 214, 215, 226, 227, 238, - 239, 250, 251, 228, 254, 203, 216, 267, - 396, 408, 409, 421, 395, 407, 420, 432, - 433, 383, 384, 397, 565, 577, 371, 410, - 419, 422, 434, 552, 553, 564, 576, 578, - 588, 589, 590, 601, 602, 733, 745, 746, - 758, 423, 435, 446, 591, 603, 370, 382, - 394, 406, 539, 551, 563, 575, 720, 732, - 540, 566, 721, 734, 579, 747, 759, 614, - 771, 436, 447, 592, 604, 615, 760, 772, - 203, 215, 216, 227, 228, 239, 251, 242, - 254, 267, 255, 230, 243, 384, 396, 397, - 409, 423, 436, 256, 411, 424, 410, 398, - 422, 435, 448, 592, 605, 412, 437, 449, - 580, 593, 749, 421, 434, 566, 578, 385, - 579, 567, 591, 447, 554, 604, 748, 761, - 736, 446, 603, 616, 760, 773, 617, 774, - 606, 618, 762, 230, 242, 254, 255, 267, - 243, 256, 412, 438, 543, 581, 426, 450, - 463, 712, 750, 763, 881, 424, 568, 411, - 437, 580, 593, 932, 606, 373, 398, 436, - 542, 567, 736, 749, 449, 762, 775, 619, - 788, 764, 631, 645, 1127, 1115, 1139, 618, - 385, 554, 723, 724, 880, 893, 906, 919, - 892, 905, 918, 1049, 1061, 1075, 1074, 931, - 1101, 944, 957, 1257, 1270, 1283, 1087, 1100, - 1126, 1113, 1295, 226, 238, 250, 251, 239, - 227, 418, 419, 432, 228, 254, 396, 407, - 408, 409, 420, 421, 433, 406, 600, 588, - 589, 601, 267, 397, 410, 422, 434, 435, - 446, 577, 578, 590, 602, 603, 614, 576, - 769, 615, 758, 770, 771, 782, 423, 447, - 591, 757, 783, 459, 436, 448, 604, 616, - 784, 587, 395, 564, 565, 575, 759, 795, - 939, 951, 460, 628, 796, 383, 745, 394, - 756, 938, 952, 393, 562, 563, 574, 743, - 744, 964, 925, 926, 927, 1107, 1120, 629, - 797, 215, 226, 227, 228, 238, 239, 251, - 254, 267, 384, 395, 396, 397, 407, 408, - 409, 420, 421, 432, 433, 434, 422, 242, - 435, 446, 255, 447, 423, 436, 448, 459, - 615, 449, 460, 604, 605, 616, 617, 592, - 628, 784, 785, 424, 437, 618, 629, 786, - 577, 589, 590, 602, 410, 603, 591, 614, - 578, 772, 773, 797, 798, 759, 771, 631, - 787, 799, 579, 760, 450, 800, 955, 956, - 968, 242, 254, 255, 267, 230, 243, 256, - 436, 424, 437, 449, 411, 423, 435, 447, - 448, 459, 460, 593, 605, 617, 618, 412, - 450, 606, 580, 616, 628, 629, 774, 786, - 787, 438, 463, 581, 619, 631, 775, 799, - 788, 592, 604, 798, 800, 398, 446, 761, - 773, 762, 567, 749, 956, 968, 969, 955, - 785, 797, 1137, 1138, 645, 1139, 1136, 1306, - 957, 1126, 1476, 426, 764, 713, 1115, 645, - 1453, 1815, 1994, 1993, 1139, 1138, 1295, 1464, - 1476, 1127, 1283, 1632, 1438, 1451, 1581, 1762, - 1775, 1787, 1270, 1413, 1463, 1388, 1375, 1399, - 1412, 1425, 1555, 1580, 1593, 1257, 1786, 750, - 763, 775, 906, 919, 931, 932, 944, 1075, - 1087, 1100, 1113, 1231, 1244, 1256, 1269, 1282, - 788, 957, 1101, 619, 1126, 238, 250, 251, - 379, 380, 392, 393, 406, 418, 419, 548, - 549, 561, 562, 574, 575, 587, 600, 717, - 729, 730, 743, 756, 950, 1106, 1249, 1262, - 1275, 432, 588, 769, 239, 407, 420, 601, - 744, 757, 925, 1119, 408, 421, 433, 576, - 589, 602, 614, 770, 782, 938, 434, 446, - 577, 590, 603, 615, 758, 771, 783, 939, - 951, 912, 926, 795, 254, 267, 422, 435, - 447, 459, 784, 952, 1288, 1107, 796, 964, - 1120, 616, 628, 1094, 448, 460, 797, 953, - 629, 798, 1289, 1134, 617, 799, 1135, 449, - 631, 800, 968, 1136, 1304, 618, 786, 787, - 969, 1137, 785, 463, 956, 1138, 1306, 955, - 954, 619, 645, 788, 1139, 1476, 1123, 1124, - 1125, 899, 1122, 1292, 1293, 1294, 1121, 1291, - 1276, 1290, 1461, 1462, 1460, 1463, 1630, 251, - 254, 267, 409, 420, 421, 422, 432, 433, - 434, 435, 446, 447, 459, 589, 590, 601, - 602, 603, 614, 615, 758, 770, 771, 782, - 783, 784, 795, 951, 448, 604, 616, 628, - 436, 460, 617, 796, 952, 449, 629, 797, - 964, 618, 798, 631, 799, 450, 787, 800, - 968, 1136, 463, 619, 956, 969, 1137, 1135, - 786, 1138, 788, 1304, 1306, 645, 1139, 957, - 1476, 1134, 955, 1126, 953, 785, 1125, 954, - 1124, 1295, 1294, 256, 424, 437, 438, 448, - 449, 450, 459, 460, 463, 606, 617, 618, - 619, 629, 631, 775, 786, 787, 798, 799, - 800, 788, 968, 969, 645, 1139, 956, 1453, - 1138, 1127, 1815, 436, 447, 605, 616, 774, - 593, 412, 581, 762, 931, 944, 955, 957, - 785, 943, 1125, 1124, 1137, 954, 1112, 1113, - 1126, 1295, 1306, 1123, 1281, 1100, 1282, 1136, - 1293, 1294, 1476, 1292, 1269, 1283, 1464, 450, - 463, 426, 645, 764, 1127, 1115, 1453, 1815, - 1139, 1994, 1993, 619, 631, 788, 799, 800, - 957, 968, 969, 1137, 1138, 1126, 1295, 1306, - 1476, 932, 1101, 763, 1270, 1283, 1464, 438, - 459, 460, 463, 628, 629, 631, 645, 796, - 797, 798, 799, 800, 956, 964, 968, 969, - 1124, 1125, 1134, 1135, 1136, 1137, 1138, 1293, - 1304, 1306, 1476, 1139, 1294, 1462, 1463, 1994, - 1993, 1815, 446, 447, 615, 616, 783, 784, - 795, 952, 953, 785, 617, 786, 954, 618, - 787, 955, 1123, 957, 1126, 1122, 1292, 1295, - 1291, 1464, 1632, 449, 619, 788, 1461, 1460, - 1630, 196, 353, 343, 344, 356, 366, 379, - 535, 345, 1029, 536, 704, 1198, 716, 872, - 357, 368, 380, 548, 705, 873, 729, 1041, - 1366, 392, 537, 549, 717, 874, 1032, 1042, - 1200, 561, 706, 718, 886, 1043, 1201, 1211, - 369, 381, 538, 1033, 393, 550, 875, 370, - 382, 394, 539, 551, 562, 707, 719, 865, - 876, 887, 1034, 1044, 1202, 189, 201, 356, - 357, 366, 368, 369, 379, 380, 381, 392, - 535, 536, 537, 548, 549, 705, 202, 214, - 226, 238, 370, 382, 393, 538, 550, 706, - 394, 250, 406, 562, 215, 227, 239, 251, - 371, 383, 395, 407, 539, 551, 563, 707, - 718, 719, 575, 731, 875, 396, 408, 540, - 552, 564, 576, 708, 720, 732, 876, 874, - 1032, 865, 1033, 887, 888, 419, 744, 900, - 1044, 384, 420, 565, 577, 709, 721, 733, - 745, 877, 889, 901, 1045, 190, 201, 202, - 214, 215, 226, 227, 238, 239, 357, 368, - 369, 370, 371, 381, 382, 383, 394, 537, - 538, 539, 550, 551, 707, 865, 203, 228, - 384, 395, 540, 552, 697, 708, 191, 216, - 372, 396, 553, 709, 866, 254, 385, 397, - 409, 541, 565, 566, 722, 408, 564, 410, - 721, 878, 1035, 720, 577, 733, 877, 578, - 734, 398, 554, 579, 710, 735, 876, 1034, - 698, 890, 891, 1047, 889, 421, 746, 902, - 1046, 422, 747, 903, 423, 567, 723, 748, - 879, 904, 191, 203, 216, 228, 371, 372, - 384, 385, 397, 540, 541, 553, 697, 698, - 866, 242, 373, 554, 710, 867, 230, 398, - 542, 243, 256, 412, 568, 724, 880, 893, - 255, 567, 723, 543, 581, 750, 906, 1037, - 1049, 411, 424, 580, 438, 712, 879, 736, - 593, 749, 763, 919, 892, 1048, 1075, 1231, - 905, 881, 1061, 1217, 1244, 918, 1074, 932, - 1230, 1257, 1375, 762, 1087, 1243, 1101, 196, - 716, 872, 353, 729, 1041, 366, 535, 379, - 548, 704, 380, 392, 536, 561, 717, 873, - 549, 705, 730, 886, 1366, 1042, 1210, 1223, - 1236, 393, 574, 718, 874, 899, 1055, 1029, - 1198, 1211, 1249, 418, 562, 743, 887, 1043, - 1068, 1106, 1224, 1262, 1405, 587, 731, 912, - 1056, 1212, 1237, 1275, 343, 344, 1200, 1032, - 1201, 1380, 706, 875, 1033, 1044, 1202, 1213, - 1225, 1381, 1418, 366, 379, 380, 392, 535, - 536, 548, 704, 368, 381, 393, 537, 549, - 561, 705, 717, 226, 238, 250, 369, 382, - 394, 406, 418, 538, 550, 562, 574, 706, - 718, 730, 239, 251, 395, 407, 419, 551, - 563, 575, 587, 719, 731, 873, 874, 886, - 707, 743, 875, 887, 899, 420, 432, 564, - 576, 588, 600, 720, 732, 744, 756, 888, - 900, 1042, 1043, 1055, 876, 912, 1044, 1056, - 1068, 408, 589, 601, 733, 745, 757, 769, - 889, 901, 913, 925, 1057, 1069, 214, 226, - 227, 238, 239, 250, 251, 369, 370, 381, - 382, 383, 393, 394, 395, 406, 407, 419, - 538, 539, 550, 551, 562, 563, 575, 707, - 719, 215, 228, 371, 384, 396, 408, 420, - 540, 552, 564, 576, 708, 720, 432, 588, - 732, 397, 409, 421, 433, 553, 565, 577, - 589, 721, 733, 731, 744, 876, 888, 709, - 745, 877, 889, 601, 757, 901, 422, 434, - 566, 578, 590, 602, 722, 734, 746, 758, - 890, 902, 900, 913, 1045, 1057, 878, 914, - 1046, 1058, 770, 926, 1070, 410, 591, 603, - 735, 747, 759, 771, 891, 903, 915, 927, - 1059, 1071, 228, 371, 383, 384, 395, 396, - 397, 408, 409, 421, 540, 552, 553, 564, - 565, 577, 709, 721, 216, 254, 372, 385, - 410, 422, 541, 566, 578, 722, 242, 267, - 398, 423, 554, 579, 710, 434, 590, 734, - 435, 591, 735, 255, 411, 436, 567, 592, - 723, 733, 746, 878, 890, 747, 891, 748, - 879, 603, 759, 903, 604, 760, 904, 424, - 580, 605, 736, 761, 892, 902, 915, 1047, - 1059, 916, 1060, 917, 1048, 772, 928, 1072, - 773, 929, 1073, 593, 749, 774, 905, 930, - 1061, 196, 716, 729, 872, 1041, 366, 379, - 380, 392, 535, 536, 548, 561, 704, 717, - 873, 393, 549, 574, 730, 418, 886, 250, - 406, 562, 575, 587, 705, 718, 731, 743, - 899, 1042, 1106, 1223, 1236, 1249, 1262, 756, - 912, 1055, 419, 600, 1210, 950, 1211, 1275, - 1068, 588, 744, 769, 925, 874, 887, 1405, - 1224, 900, 1081, 432, 757, 913, 938, 1094, - 1119, 238, 250, 368, 379, 380, 381, 392, - 393, 394, 406, 418, 536, 537, 548, 549, - 550, 561, 562, 574, 575, 587, 705, 717, - 718, 730, 731, 743, 886, 899, 251, 407, - 419, 563, 239, 382, 395, 408, 420, 432, - 551, 564, 576, 588, 600, 732, 744, 756, - 421, 433, 577, 589, 601, 745, 757, 769, - 912, 925, 434, 590, 602, 758, 770, 719, - 900, 720, 733, 901, 913, 746, 914, 926, - 938, 446, 603, 614, 759, 771, 782, 927, - 939, 887, 1068, 888, 1069, 1081, 889, 902, - 1070, 1082, 1094, 915, 1083, 1095, 1107, 615, - 772, 783, 928, 940, 951, 1096, 1108, 383, - 395, 396, 407, 408, 409, 419, 420, 421, - 432, 433, 552, 564, 565, 576, 577, 588, - 589, 601, 733, 745, 254, 384, 397, 410, - 422, 434, 553, 566, 578, 590, 602, 734, - 746, 758, 267, 423, 435, 446, 579, 591, - 603, 747, 759, 614, 771, 436, 447, 592, - 604, 615, 760, 772, 721, 757, 770, 902, - 914, 722, 735, 903, 915, 927, 748, 916, - 928, 783, 940, 448, 605, 616, 761, 773, - 784, 929, 941, 890, 926, 939, 1071, 1083, - 891, 904, 1072, 1084, 1096, 917, 1085, 1097, - 952, 1109, 459, 617, 774, 785, 930, 942, - 953, 1098, 1110, 254, 267, 397, 409, 410, - 421, 422, 423, 434, 435, 566, 578, 579, - 590, 591, 603, 735, 747, 242, 255, 385, - 398, 411, 436, 554, 567, 592, 604, 748, - 424, 580, 605, 736, 447, 760, 448, 761, - 437, 449, 593, 749, 616, 773, 460, 606, - 617, 618, 762, 774, 786, 930, 943, 759, - 772, 904, 916, 723, 917, 905, 929, 918, - 785, 942, 450, 775, 787, 931, 928, 941, - 1073, 1085, 892, 1086, 1074, 1098, 1099, 1087, - 954, 1111, 955, 1112, 619, 944, 956, 1100, - 716, 729, 1223, 1236, 379, 392, 535, 548, - 561, 574, 704, 717, 730, 1106, 1249, 1262, - 250, 380, 393, 406, 418, 536, 549, 562, - 575, 587, 600, 705, 718, 731, 743, 756, - 873, 886, 899, 912, 950, 1042, 1055, 1068, - 1275, 419, 432, 588, 601, 744, 757, 769, - 925, 1119, 938, 1081, 770, 782, 1094, 1288, - 420, 433, 576, 589, 602, 614, 745, 758, - 771, 783, 913, 926, 939, 951, 1095, 1107, - 1263, 1276, 446, 795, 1120, 615, 784, 796, - 952, 964, 1405, 1418, 1041, 1210, 1082, 1108, - 1121, 1289, 407, 418, 419, 420, 432, 433, - 575, 576, 587, 588, 589, 600, 601, 744, - 756, 757, 769, 770, 925, 938, 408, 421, - 434, 577, 590, 602, 614, 745, 758, 771, - 782, 926, 939, 409, 422, 435, 446, 578, - 591, 603, 615, 746, 759, 772, 783, 927, - 940, 1107, 951, 447, 784, 795, 952, 448, - 459, 604, 616, 628, 785, 796, 953, 1120, - 964, 1121, 460, 797, 617, 629, 798, 913, - 1094, 914, 1095, 1108, 1134, 786, 954, 1135, - 1082, 1263, 1276, 928, 941, 1109, 1289, 1122, - 799, 955, 1123, 1136, 1304, 422, 434, 435, - 446, 447, 591, 603, 604, 614, 615, 772, - 423, 436, 448, 459, 592, 605, 616, 773, - 784, 449, 460, 617, 628, 785, 618, 629, - 786, 797, 631, 787, 798, 799, 955, 800, - 956, 968, 1136, 760, 783, 941, 761, 774, - 942, 796, 953, 954, 1124, 1135, 969, 1137, - 929, 952, 1110, 930, 943, 1111, 1122, 1123, - 1304, 1125, 1138, 1306, 950, 1106, 1119, 1275, - 1288, 600, 769, 782, 432, 601, 614, 770, - 783, 795, 938, 939, 951, 1107, 1120, 1276, - 446, 615, 796, 952, 964, 1289, 459, 784, - 628, 797, 460, 629, 953, 1134, 1121, 785, - 798, 954, 1122, 1135, 1304, 799, 968, 1123, - 1136, 1290, 1291, 631, 800, 955, 969, 1124, - 1137, 1292, 1306, 1138, 1293, 1125, 1294, 1476, - 1459, 463, 1139, 1460, 1461, 1462, 645, 1463, - 1630, 1632, 1108, 1445, 190, 347, 697, 865, - 1034, 191, 698, 866, 1035, 867, 371, 1203, - 372, 373, 542, 724, 880, 541, 568, 893, - 1049, 384, 385, 397, 540, 553, 554, 566, - 709, 710, 722, 878, 879, 891, 1047, 398, - 567, 723, 892, 1048, 412, 581, 906, 1037, - 1033, 1202, 735, 1060, 1216, 736, 1061, 1217, - 1231, 366, 379, 535, 548, 704, 716, 729, - 872, 873, 1029, 1041, 1198, 536, 705, 717, - 368, 380, 392, 537, 549, 561, 706, 718, - 874, 886, 1032, 1042, 1200, 730, 369, 381, - 393, 538, 550, 562, 574, 719, 731, 875, - 887, 899, 1043, 1055, 743, 1211, 382, 394, - 406, 418, 551, 563, 575, 587, 707, 732, - 744, 876, 888, 900, 912, 1044, 1056, 1068, - 1212, 1210, 1223, 1201, 1224, 720, 756, 901, - 913, 1045, 1057, 1069, 1081, 1213, 1225, 1237, - 368, 369, 380, 381, 393, 536, 537, 538, - 549, 550, 562, 705, 706, 707, 718, 719, - 874, 875, 887, 1032, 1033, 1043, 1201, 370, - 382, 394, 539, 551, 563, 708, 720, 865, - 876, 888, 1034, 1044, 1202, 406, 575, 731, - 732, 900, 1056, 371, 383, 395, 407, 540, - 552, 564, 576, 721, 733, 877, 889, 901, - 1045, 1057, 419, 588, 744, 745, 913, 1069, - 1213, 384, 396, 408, 420, 553, 565, 577, - 589, 709, 734, 746, 878, 890, 902, 914, - 1046, 1058, 1070, 1214, 1212, 1203, 1225, 1226, - 757, 1082, 1238, 722, 758, 903, 915, 1047, - 1059, 1071, 1083, 1215, 1227, 1239, 370, 371, - 382, 383, 395, 538, 539, 540, 551, 552, - 564, 707, 708, 709, 720, 721, 865, 876, - 877, 889, 1034, 1045, 1203, 384, 396, 553, - 565, 697, 722, 866, 878, 890, 1035, 1046, - 372, 385, 397, 409, 410, 541, 554, 566, - 578, 698, 710, 734, 735, 867, 879, 891, - 903, 1047, 1059, 1060, 1216, 408, 577, 733, - 902, 1058, 579, 723, 904, 421, 590, 746, - 747, 915, 1071, 1215, 422, 591, 748, 916, - 1072, 398, 423, 567, 592, 736, 892, 917, - 1048, 1073, 1214, 1228, 1229, 1227, 759, 1084, - 1240, 760, 1085, 1241, 761, 905, 1061, 1086, - 1217, 1242, 380, 392, 393, 536, 548, 549, - 561, 562, 574, 704, 705, 717, 718, 730, - 743, 873, 874, 886, 887, 899, 1042, 1043, - 1055, 1211, 381, 394, 406, 418, 537, 550, - 563, 575, 587, 706, 719, 731, 744, 756, - 875, 888, 900, 912, 1044, 1056, 1068, 1212, - 1224, 382, 395, 407, 419, 538, 551, 564, - 576, 588, 600, 707, 720, 732, 745, 757, - 876, 889, 901, 913, 925, 1045, 1057, 1069, - 1081, 1213, 1225, 769, 1237, 408, 420, 432, - 577, 589, 601, 733, 758, 770, 902, 914, - 926, 938, 1058, 1070, 1082, 1094, 1226, 1238, - 1214, 1250, 746, 927, 939, 1071, 1083, 1095, - 1107, 1227, 1239, 1251, 1263, 383, 395, 396, - 407, 408, 419, 420, 432, 539, 551, 552, - 563, 564, 565, 575, 576, 577, 588, 589, - 601, 707, 708, 719, 720, 721, 732, 733, - 744, 745, 746, 757, 758, 876, 877, 888, - 889, 890, 900, 901, 902, 913, 914, 926, - 1045, 1046, 1057, 1058, 1069, 1070, 1082, 1214, - 1226, 384, 397, 409, 421, 433, 540, 553, - 566, 578, 590, 602, 709, 722, 734, 747, - 759, 878, 891, 903, 915, 927, 1047, 1059, - 1071, 1083, 1215, 1227, 770, 771, 939, 1095, - 1239, 410, 422, 434, 579, 591, 603, 735, - 760, 772, 904, 916, 928, 940, 1060, 1072, - 1084, 1096, 1228, 1240, 1238, 1251, 1216, 1252, - 1108, 1264, 748, 929, 941, 1073, 1085, 1097, - 1109, 1229, 1241, 1253, 1265, 397, 409, 410, - 421, 422, 434, 553, 565, 566, 577, 578, - 579, 590, 591, 603, 709, 721, 722, 734, - 735, 746, 747, 748, 759, 760, 878, 890, - 891, 902, 903, 904, 915, 916, 928, 1047, - 1059, 1060, 1071, 1072, 1084, 1216, 1228, 385, - 398, 423, 435, 541, 554, 567, 592, 604, - 710, 723, 761, 879, 892, 917, 929, 1048, - 1073, 1085, 1229, 411, 436, 580, 605, 736, - 749, 905, 930, 1061, 1086, 1217, 772, 773, - 941, 1097, 1241, 774, 942, 1098, 1242, 424, - 593, 762, 918, 943, 1074, 1099, 1230, 1240, - 1253, 1254, 1255, 1110, 1266, 1111, 1267, 931, - 1087, 1112, 1243, 1268, 411, 424, 542, 567, - 568, 580, 593, 723, 724, 736, 749, 762, - 880, 892, 893, 905, 918, 1049, 1061, 1074, - 1230, 412, 437, 581, 606, 750, 906, 931, - 1087, 763, 919, 1075, 1231, 438, 543, 712, - 881, 932, 1101, 1244, 1257, 775, 1243, 944, - 1100, 1270, 426, 1283, 1256, 1113, 1269, 764, - 1127, 1388, 450, 619, 788, 957, 463, 1126, - 1295, 1282, 1139, 1115, 1399, 1413, 1412, 1425, - 1438, 1581, 1451, 716, 729, 872, 1041, 1210, - 1223, 1236, 1249, 379, 392, 418, 548, 561, - 574, 704, 717, 730, 743, 873, 886, 899, - 1042, 1055, 1068, 1106, 1211, 1224, 1262, 1405, - 393, 406, 549, 562, 575, 587, 718, 731, - 756, 874, 887, 900, 912, 1043, 1056, 1081, - 1237, 1275, 950, 419, 588, 600, 744, 769, - 913, 925, 1069, 1094, 1119, 1250, 1418, 432, - 601, 757, 926, 938, 1082, 1107, 1263, 1288, - 1212, 1225, 1238, 770, 1095, 1251, 1276, 406, - 418, 419, 562, 574, 575, 587, 588, 600, - 730, 731, 743, 744, 756, 769, 887, 899, - 900, 912, 913, 925, 1056, 1068, 1069, 1081, - 1237, 407, 420, 432, 563, 576, 589, 601, - 732, 745, 757, 770, 888, 901, 914, 926, - 938, 1057, 1070, 1082, 1094, 1238, 1250, 408, - 421, 433, 564, 577, 590, 602, 733, 746, - 758, 771, 889, 902, 915, 927, 939, 1058, - 1071, 1083, 1095, 1107, 1239, 1251, 782, 1263, - 434, 603, 614, 759, 783, 928, 940, 951, - 1084, 1096, 1108, 1252, 1264, 1276, 446, 615, - 772, 784, 941, 952, 1097, 1109, 1120, 1265, - 1277, 1225, 1226, 1227, 1240, 1253, 795, 953, - 1110, 1121, 1266, 1278, 1289, 409, 421, 422, - 433, 434, 565, 577, 578, 589, 590, 591, - 601, 602, 603, 614, 733, 734, 745, 746, - 747, 758, 759, 770, 771, 772, 890, 902, - 903, 914, 915, 916, 926, 927, 928, 939, - 940, 1059, 1071, 1072, 1083, 1084, 1095, 1096, - 1108, 1240, 1252, 410, 423, 435, 446, 566, - 579, 592, 604, 615, 735, 748, 760, 773, - 891, 904, 917, 929, 941, 1060, 1073, 1085, - 1097, 1109, 1241, 1253, 783, 784, 952, 1265, - 436, 447, 605, 616, 761, 785, 930, 942, - 953, 1086, 1098, 1110, 1254, 1266, 1121, 1278, - 448, 459, 617, 628, 774, 786, 943, 954, - 1099, 1111, 1122, 1267, 1279, 1228, 1264, 1277, - 1229, 1242, 1255, 796, 1290, 797, 955, 1112, - 1123, 1268, 1280, 1291, 423, 435, 436, 447, - 579, 591, 592, 603, 604, 605, 616, 735, - 747, 748, 760, 761, 772, 773, 774, 904, - 916, 917, 928, 929, 930, 941, 942, 1073, - 1085, 1086, 1097, 1098, 1110, 1242, 1254, 411, - 424, 448, 567, 580, 593, 617, 736, 749, - 892, 905, 918, 943, 1061, 1074, 1099, 1111, - 1255, 437, 449, 606, 618, 762, 775, 931, - 1087, 1112, 1243, 785, 786, 954, 1267, 787, - 955, 1268, 944, 956, 1100, 1256, 460, 629, - 1123, 1280, 1124, 1281, 450, 619, 631, 788, - 1113, 1125, 1269, 1266, 1279, 1230, 798, 1292, - 799, 1293, 800, 957, 1282, 1294, 729, 1106, - 1223, 1236, 1249, 1262, 1275, 1405, 1418, 950, - 1119, 432, 588, 600, 601, 756, 757, 769, - 770, 782, 913, 925, 926, 938, 939, 1081, - 1082, 1094, 1095, 1107, 1250, 1263, 1276, 1288, - 614, 951, 1108, 1120, 1431, 783, 795, 952, - 1289, 964, 1121, 1445, 796, 1251, 1264, 1277, - 1432, 1290, 1134, 1419, 1459, 1420, 1433, 1446, - 1601, 1122, 1135, 1291, 1460, 1588, 1602, 1447, - 1304, 1616, 601, 614, 769, 770, 782, 926, - 938, 939, 951, 1095, 1107, 1108, 1276, 446, - 602, 615, 771, 783, 795, 927, 940, 952, - 1096, 1109, 1120, 1277, 447, 603, 616, 772, - 784, 796, 928, 941, 953, 964, 1097, 1110, - 1121, 1278, 1289, 459, 628, 785, 797, 954, - 1122, 1290, 460, 629, 1123, 1134, 1291, 798, - 1135, 1304, 799, 955, 968, 1124, 1136, 1292, - 1264, 1265, 1266, 1279, 1137, 1293, 447, 448, - 459, 604, 615, 616, 617, 628, 772, 773, - 784, 785, 796, 797, 929, 941, 942, 952, - 953, 954, 1098, 1110, 1111, 1121, 1122, 1279, - 449, 460, 605, 618, 629, 774, 786, 798, - 930, 943, 955, 1099, 1112, 1123, 1280, 1134, - 1291, 787, 799, 956, 1124, 1135, 1292, 631, - 968, 1125, 1136, 1293, 1304, 800, 969, 1137, - 1306, 1138, 1294, 1267, 1290, 1268, 1281, 950, - 1119, 1288, 782, 795, 951, 1107, 1120, 1276, - 1289, 614, 783, 952, 964, 1121, 796, 1134, - 1290, 1445, 459, 628, 797, 1122, 1135, 1291, - 1304, 1459, 629, 798, 1136, 799, 968, 1292, - 1460, 1137, 1306, 1461, 631, 800, 969, 1138, - 1293, 1462, 1630, 1463, 1476, 1632, 645, 1139, - 1815, 1993, 1994, 1277, 1432, 1601, 1446, 1786, - 1787, 1464, 1602, 1616, 1433, 1588, 1757, 1617, - 1447, 1603, 1590, 1732, 1604, 1775, 343, 344, - 345, 356, 1029, 1198, 357, 535, 536, 704, - 1032, 1200, 1201, 366, 873, 705, 1033, 874, - 706, 865, 875, 1202, 537, 718, 887, 1043, - 1044, 1212, 538, 707, 719, 876, 888, 1034, - 1045, 1203, 1213, 1056, 1057, 1214, 1371, 900, - 1055, 1068, 1069, 1211, 1224, 1225, 1226, 1237, - 1380, 1381, 1382, 1393, 345, 356, 357, 1032, - 1033, 1200, 1201, 865, 1034, 1202, 1203, 697, - 866, 540, 708, 709, 877, 1035, 707, 876, - 878, 539, 720, 889, 1045, 1046, 1214, 1371, - 371, 384, 552, 553, 565, 721, 722, 733, - 734, 890, 891, 902, 1047, 1058, 1059, 1215, - 1216, 1227, 903, 1060, 1071, 1228, 1383, 1384, - 541, 710, 735, 867, 879, 904, 1048, 1072, - 1229, 1385, 1057, 1070, 1213, 1226, 1239, 1382, - 1395, 1240, 1396, 1073, 1217, 1241, 1397, 347, - 697, 865, 866, 1033, 1034, 1035, 1202, 1203, - 698, 867, 373, 542, 880, 1049, 541, 710, - 568, 724, 893, 1037, 879, 723, 892, 1048, - 1217, 906, 1231, 372, 385, 554, 722, 735, - 878, 891, 904, 1047, 1060, 1216, 1229, 567, - 736, 1061, 905, 1230, 1371, 1386, 1074, 1073, - 1385, 1075, 1375, 1059, 1072, 1215, 1228, 1241, - 1242, 1384, 1397, 1398, 1243, 1399, 1244, 919, - 366, 379, 535, 536, 548, 704, 705, 717, - 729, 873, 886, 1029, 1042, 1198, 1200, 1210, - 1211, 1223, 1236, 874, 1043, 1055, 537, 549, - 706, 718, 730, 875, 887, 899, 1032, 1044, - 1056, 1201, 1212, 1224, 561, 1068, 550, 562, - 707, 719, 731, 743, 876, 888, 900, 912, - 1057, 1069, 1213, 1225, 1237, 574, 1081, 1380, - 563, 575, 720, 732, 744, 756, 889, 901, - 913, 925, 1045, 1070, 1082, 1214, 1226, 1238, - 1250, 1381, 1393, 1058, 1094, 1239, 1251, 1382, - 1394, 1406, 1249, 1405, 1549, 1227, 1263, 1383, - 1395, 1407, 1419, 1550, 538, 550, 706, 707, - 718, 719, 731, 874, 875, 876, 887, 888, - 900, 1032, 1033, 1043, 1044, 1045, 1056, 1057, - 1201, 1202, 1212, 1213, 1225, 539, 551, 708, - 720, 732, 865, 877, 889, 901, 1034, 1046, - 1058, 1203, 1214, 1226, 1371, 563, 744, 913, - 1069, 1070, 1238, 552, 564, 709, 721, 733, - 745, 878, 890, 902, 914, 1059, 1071, 1215, - 1227, 1239, 576, 757, 926, 1082, 1083, 1251, - 1382, 565, 577, 722, 734, 746, 758, 891, - 903, 915, 927, 1047, 1072, 1084, 1216, 1228, - 1240, 1252, 1383, 1381, 1394, 1395, 1095, 1407, - 1060, 1096, 1241, 1253, 1384, 1396, 1408, 1264, - 1420, 1551, 1229, 1265, 1385, 1397, 1409, 1421, - 1552, 540, 552, 708, 709, 720, 721, 733, - 876, 877, 878, 889, 890, 902, 1034, 1045, - 1046, 1047, 1058, 1059, 1203, 1214, 1215, 1227, - 553, 722, 734, 866, 891, 903, 1035, 1060, - 1216, 1228, 372, 385, 541, 554, 566, 579, - 698, 710, 723, 735, 747, 748, 867, 879, - 892, 904, 916, 1048, 1072, 1073, 1217, 1229, - 1241, 1385, 565, 746, 915, 1071, 1240, 917, - 1061, 1242, 578, 759, 928, 1084, 1085, 1253, - 1384, 760, 929, 1086, 1254, 567, 736, 761, - 905, 930, 1074, 1230, 1255, 1383, 1397, 1398, - 1396, 1097, 1409, 1098, 1410, 1099, 1243, 1386, - 1411, 1266, 1422, 1267, 1423, 1268, 1399, 1424, - 554, 710, 723, 867, 879, 892, 1048, 1061, - 1217, 373, 542, 567, 580, 724, 736, 749, - 880, 893, 905, 1049, 1074, 1230, 1386, 568, - 581, 750, 906, 1037, 1075, 1231, 543, 712, - 919, 1244, 1375, 918, 1243, 763, 881, 932, - 1101, 1257, 1413, 1087, 762, 931, 1256, 1270, - 1399, 1100, 1412, 1283, 1388, 1555, 1269, 1425, - 1581, 1113, 1282, 1438, 1451, 1464, 1580, 1593, - 1762, 1632, 1775, 1295, 1127, 716, 729, 872, - 1041, 1210, 1223, 1366, 1236, 1249, 548, 561, - 574, 704, 705, 717, 718, 730, 743, 873, - 874, 886, 887, 899, 1042, 1043, 1055, 1068, - 1106, 1211, 1212, 1224, 1262, 1380, 1405, 1418, - 587, 731, 756, 900, 912, 1056, 1081, 1225, - 1237, 1275, 1393, 1431, 925, 950, 1069, 1250, - 1381, 1406, 1549, 1094, 1119, 1238, 1394, 1562, - 1263, 1288, 1419, 1550, 1575, 1407, 1432, 1588, - 1601, 1732, 574, 718, 730, 731, 743, 874, - 886, 887, 899, 900, 912, 1042, 1043, 1055, - 1056, 1068, 1081, 1211, 1212, 1224, 1225, 1237, - 1380, 575, 587, 719, 732, 744, 756, 875, - 888, 901, 913, 925, 1044, 1057, 1069, 1082, - 1094, 1213, 1226, 1238, 1250, 1381, 1393, 576, - 588, 720, 733, 745, 757, 769, 876, 889, - 902, 914, 926, 938, 1045, 1058, 1070, 1083, - 1095, 1214, 1227, 1239, 1251, 1263, 1382, 1394, - 600, 1107, 1406, 589, 601, 746, 758, 770, - 915, 927, 939, 1071, 1096, 1108, 1240, 1252, - 1264, 1276, 1395, 1407, 1383, 1419, 1084, 1265, - 1277, 1396, 1408, 1420, 1432, 1549, 1550, 1562, - 1551, 1575, 1253, 1409, 1421, 1433, 1445, 1564, - 577, 589, 721, 733, 734, 745, 746, 757, - 758, 770, 877, 889, 890, 901, 902, 903, - 913, 914, 915, 926, 927, 939, 1045, 1046, - 1057, 1058, 1059, 1070, 1071, 1082, 1083, 1084, - 1095, 1096, 1214, 1215, 1226, 1227, 1228, 1238, - 1239, 1240, 1251, 1252, 1264, 1383, 1395, 578, - 590, 722, 735, 747, 759, 771, 878, 891, - 904, 916, 928, 940, 1047, 1060, 1072, 1085, - 1097, 1216, 1229, 1241, 1253, 1265, 1384, 1396, - 602, 1108, 1109, 1277, 1408, 591, 603, 748, - 760, 772, 917, 929, 941, 1073, 1098, 1110, - 1242, 1254, 1266, 1278, 1397, 1409, 1407, 1420, - 1385, 1421, 1433, 1086, 1267, 1279, 1398, 1410, - 1422, 1434, 1552, 1564, 1565, 1446, 1577, 1255, - 1411, 1423, 1435, 1447, 1578, 579, 591, 735, - 747, 748, 759, 760, 772, 891, 903, 904, - 915, 916, 917, 928, 929, 941, 1047, 1059, - 1060, 1072, 1073, 1084, 1085, 1086, 1097, 1098, - 1216, 1228, 1229, 1240, 1241, 1242, 1253, 1254, - 1266, 1385, 1397, 592, 723, 736, 761, 773, - 879, 892, 905, 930, 942, 1048, 1061, 1099, - 1217, 1230, 1255, 1267, 1398, 580, 749, 774, - 918, 943, 1074, 1087, 1243, 1268, 1386, 604, - 1110, 1111, 1279, 1410, 605, 1112, 1280, 1411, - 593, 762, 931, 1100, 1256, 1281, 1399, 1409, - 1422, 1423, 1424, 1435, 1436, 1269, 1412, 1437, - 1567, 1555, 1448, 1449, 1580, 1425, 1450, 426, - 764, 881, 1388, 1115, 713, 1453, 1127, 716, - 729, 872, 1041, 1210, 1223, 1236, 1249, 1405, - 1106, 1262, 1275, 1418, 574, 587, 600, 730, - 731, 743, 744, 756, 769, 887, 899, 900, - 912, 913, 925, 950, 1055, 1056, 1068, 1069, - 1081, 1094, 1119, 1212, 1224, 1225, 1237, 1238, - 1250, 1380, 1393, 1406, 1431, 757, 926, 938, - 1082, 1107, 1251, 1263, 1288, 1419, 770, 782, - 939, 1095, 1264, 1276, 1432, 1381, 1394, 1407, - 951, 1108, 1420, 1445, 1549, 1562, 1575, 1588, - 1120, 1277, 1433, 1601, 600, 744, 756, 757, - 769, 900, 912, 913, 925, 926, 938, 1068, - 1069, 1081, 1082, 1094, 1107, 1225, 1237, 1238, - 1250, 1251, 1263, 1406, 601, 745, 758, 770, - 901, 914, 927, 939, 1070, 1083, 1095, 1108, - 1226, 1239, 1252, 1264, 1276, 1407, 1419, 602, - 746, 759, 771, 782, 902, 915, 928, 940, - 951, 1071, 1084, 1096, 1109, 1227, 1240, 1253, - 1265, 1277, 1408, 1420, 1120, 1432, 614, 772, - 783, 941, 952, 1097, 1121, 1266, 1278, 1289, - 1421, 1433, 1445, 615, 784, 795, 953, 964, - 1110, 1122, 1279, 1290, 1434, 1446, 1394, 1395, - 1396, 1409, 1422, 1291, 1435, 1447, 1575, 1588, - 1577, 1601, 1590, 1602, 1448, 1459, 1603, 603, - 747, 759, 760, 771, 772, 783, 903, 915, - 916, 927, 928, 929, 939, 940, 941, 952, - 1071, 1072, 1083, 1084, 1085, 1096, 1097, 1108, - 1109, 1110, 1228, 1240, 1241, 1252, 1253, 1254, - 1264, 1265, 1266, 1277, 1278, 1409, 1421, 604, - 748, 761, 773, 784, 904, 917, 930, 942, - 953, 1073, 1086, 1098, 1111, 1229, 1242, 1255, - 1267, 1279, 1410, 1422, 615, 1121, 1122, 1290, - 1434, 616, 774, 785, 943, 954, 1099, 1123, - 1268, 1280, 1291, 1423, 1435, 796, 1447, 617, - 786, 797, 955, 1112, 1124, 1281, 1292, 1436, - 1448, 1397, 1433, 1446, 1398, 1411, 1424, 1134, - 1459, 1135, 1293, 1437, 1449, 1460, 1578, 1590, - 1591, 1603, 1604, 1616, 1304, 1450, 1461, 1605, - 1617, 605, 761, 773, 774, 785, 917, 929, - 930, 941, 942, 943, 954, 1073, 1085, 1086, - 1098, 1099, 1110, 1111, 1112, 1242, 1254, 1255, - 1266, 1267, 1268, 1279, 1280, 1411, 1423, 749, - 762, 786, 905, 918, 931, 955, 1074, 1087, - 1230, 1243, 1256, 1281, 1424, 606, 775, 787, - 944, 956, 1100, 1113, 1269, 1412, 617, 1123, - 1124, 1292, 1436, 618, 1125, 1293, 1437, 1282, - 1294, 1425, 798, 1449, 799, 968, 1450, 619, - 788, 800, 957, 969, 1126, 1438, 1435, 1448, - 1399, 1136, 1461, 1137, 1462, 1138, 1295, 1451, - 1463, 1580, 1593, 1581, 1605, 1306, 782, 783, - 939, 951, 952, 1107, 1108, 1120, 1264, 1276, - 1277, 1289, 1445, 784, 795, 940, 953, 964, - 1109, 1121, 1265, 1278, 1290, 1446, 785, 796, - 941, 954, 1110, 1122, 1134, 1266, 1279, 1291, - 1447, 628, 797, 1123, 1135, 1292, 1459, 798, - 1304, 1460, 1136, 799, 968, 1137, 1293, 1306, - 1461, 1433, 1434, 1435, 1448, 1462, 1630, 1616, - 1602, 1138, 1294, 1463, 628, 785, 786, 796, - 797, 942, 953, 954, 955, 1110, 1111, 1122, - 1123, 1134, 1135, 1267, 1279, 1280, 1290, 1291, - 1292, 1448, 629, 787, 798, 943, 956, 1112, - 1124, 1136, 1268, 1281, 1293, 1304, 1449, 1460, - 799, 968, 1125, 1137, 1294, 1461, 800, 969, - 1306, 1462, 1138, 1463, 1476, 1436, 1459, 1437, - 1450, 1630, 1632, 1617, 1139, 645, 1464, 1815, - 1993, 1994, 1605, 1787, 1786, 1762, 1775, 787, - 798, 799, 955, 956, 968, 1112, 1124, 1125, - 1136, 1137, 1281, 1292, 1293, 1294, 1450, 631, - 788, 800, 944, 957, 969, 1113, 1138, 1269, - 1282, 1306, 1126, 1295, 1451, 1462, 1463, 1139, - 1464, 1476, 645, 1127, 1461, 1438, 1632, 196, - 1366, 1029, 1041, 1198, 1210, 872, 1223, 1236, - 873, 1042, 1211, 1249, 1405, 1380, 1418, 1200, - 1549, 1381, 1393, 1431, 1562, 1550, 1575, 1406, - 1551, 1732, 1588, 1757, 1262, 1275, 1032, 1201, - 1043, 1212, 1224, 1371, 1382, 1394, 1395, 1407, - 1552, 1564, 1786, 1762, 1775, 1787, 1202, 1383, - 1384, 1396, 1565, 1577, 1578, 1590, 1591, 1567, - 1603, 1604, 1580, 1616, 1029, 1198, 1366, 872, - 1041, 1210, 1200, 1032, 1042, 1201, 1211, 1223, - 704, 873, 1380, 874, 1043, 1055, 1212, 1224, - 717, 886, 1236, 1249, 1405, 875, 887, 1044, - 1056, 1068, 1202, 1213, 1225, 1237, 1381, 1393, - 1549, 1418, 1371, 1382, 1394, 1550, 1406, 1562, - 1551, 1575, 1033, 1034, 1203, 876, 888, 1045, - 1057, 1069, 1214, 1226, 1238, 1383, 1395, 1046, - 1058, 1215, 1227, 1239, 1384, 1396, 1407, 1552, - 1408, 1564, 1565, 1577, 1032, 1033, 1200, 1201, - 1202, 1371, 865, 1034, 1203, 697, 866, 1035, - 1046, 1215, 1214, 878, 1047, 1059, 1216, 1228, - 1384, 709, 877, 890, 1045, 1058, 1071, 1227, - 1240, 1383, 1385, 1396, 1552, 891, 1060, 1072, - 1229, 1241, 1397, 1226, 1239, 1382, 1395, 1551, - 879, 1048, 1073, 1217, 1242, 1398, 1408, 1564, - 1409, 1565, 1386, 1410, 1411, 1423, 1555, 1567, - 1550, 1577, 1578, 1422, 1580, 1590, 1591, 697, - 866, 1034, 1035, 1203, 1371, 698, 867, 879, - 1048, 1217, 373, 542, 723, 724, 880, 892, - 893, 905, 1037, 1049, 1061, 1074, 1230, 1231, - 1386, 1399, 1047, 1216, 710, 1060, 1229, 1385, - 736, 1243, 1555, 878, 891, 1215, 1228, 1384, - 1073, 1242, 1398, 906, 1075, 1375, 904, 1241, - 1397, 1244, 1412, 1087, 1256, 1410, 1411, 1567, - 1425, 1581, 919, 1257, 1413, 1046, 1383, 1552, - 1059, 1396, 1565, 1438, 1227, 1409, 1551, 1580, - 1388, 1578, 1270, 1366, 1041, 1210, 872, 1223, - 1198, 1236, 873, 1042, 1211, 1249, 1405, 1055, - 1224, 1262, 1380, 1418, 716, 1068, 1106, 1212, - 1237, 1275, 1393, 1431, 1549, 1381, 1406, 1562, - 1550, 1575, 1419, 1588, 1551, 1732, 1432, 1564, - 1601, 1757, 1288, 1786, 1762, 1787, 1445, 1775, - 1602, 1119, 1616, 1617, 1993, 1081, 1094, 1107, - 1238, 1250, 1251, 1263, 1276, 1394, 1407, 950, - 1264, 1420, 1120, 1277, 1289, 1433, 1446, 873, - 886, 1042, 1043, 1055, 1200, 1211, 1212, 1224, - 1236, 1249, 1380, 1405, 1381, 1393, 1044, 1056, - 1213, 1225, 1237, 1382, 1394, 1549, 1068, 1406, - 1057, 1069, 1214, 1226, 1238, 1250, 1395, 1407, - 1550, 1562, 1081, 1419, 1070, 1082, 1227, 1239, - 1251, 1263, 1383, 1408, 1420, 1551, 1575, 1418, - 1396, 1432, 1552, 1564, 1588, 1577, 1565, 1601, - 1732, 1421, 1433, 1578, 1590, 1602, 1757, 1045, - 1057, 1213, 1214, 1225, 1226, 1238, 1371, 1381, - 1382, 1383, 1394, 1395, 1550, 1046, 1058, 1215, - 1227, 1239, 1384, 1396, 1551, 1070, 1251, 1407, - 1408, 1059, 1071, 1216, 1228, 1240, 1252, 1397, - 1409, 1552, 1564, 1083, 1264, 1420, 1421, 1072, - 1084, 1229, 1241, 1253, 1265, 1385, 1410, 1422, - 1565, 1577, 1433, 1398, 1434, 1578, 1590, 1591, - 1602, 1567, 1603, 1575, 1588, 1732, 1601, 1757, - 1423, 1435, 1580, 1604, 1616, 1047, 1059, 1215, - 1216, 1227, 1228, 1240, 1383, 1384, 1385, 1396, - 1397, 1552, 1060, 1229, 1241, 1398, 879, 892, - 1048, 1061, 1073, 1086, 1217, 1230, 1242, 1254, - 1255, 1386, 1410, 1411, 1567, 1072, 1253, 1409, - 1565, 1399, 1085, 1266, 1422, 1423, 1578, 1267, - 1424, 1074, 1243, 1268, 1412, 1555, 1580, 1435, - 1591, 1436, 1437, 1593, 1408, 1421, 1564, 1577, - 1434, 1590, 1581, 1603, 1604, 1605, 1425, 1450, - 1616, 1617, 1762, 1081, 1225, 1237, 1238, 1250, - 1380, 1381, 1393, 1394, 1406, 1419, 1549, 1550, - 1562, 1082, 1094, 1226, 1239, 1251, 1263, 1382, - 1395, 1407, 1420, 1432, 1551, 1575, 1083, 1095, - 1227, 1240, 1252, 1264, 1276, 1383, 1396, 1408, - 1421, 1433, 1552, 1564, 1588, 1107, 1445, 1096, - 1108, 1253, 1265, 1277, 1409, 1434, 1446, 1565, - 1577, 1601, 1422, 1578, 1590, 1602, 1603, 1732, - 1591, 1757, 1447, 1604, 1616, 1084, 1096, 1228, - 1240, 1241, 1252, 1253, 1264, 1265, 1277, 1383, - 1384, 1395, 1396, 1397, 1408, 1409, 1420, 1421, - 1422, 1433, 1434, 1552, 1564, 1565, 1577, 1085, - 1097, 1229, 1242, 1254, 1266, 1278, 1385, 1398, - 1410, 1423, 1435, 1578, 1590, 1109, 1446, 1447, - 1602, 1098, 1110, 1255, 1267, 1279, 1411, 1436, - 1448, 1567, 1591, 1603, 1424, 1580, 1604, 1616, - 1605, 1617, 1593, 1732, 1757, 1449, 1086, 1098, - 1242, 1254, 1255, 1266, 1267, 1279, 1385, 1397, - 1398, 1410, 1411, 1422, 1423, 1424, 1435, 1436, - 1567, 1578, 1591, 1099, 1230, 1243, 1268, 1280, - 1386, 1399, 1437, 1555, 1580, 1087, 1256, 1281, - 1412, 1425, 1593, 1111, 1448, 1449, 1604, 1112, - 1450, 1605, 1100, 1269, 1438, 1581, 1617, 1462, - 1630, 1762, 1451, 1463, 1775, 1616, 1786, 1787, - 1632, 1107, 1251, 1263, 1264, 1276, 1406, 1407, - 1419, 1420, 1432, 1445, 1575, 1588, 1108, 1252, - 1265, 1277, 1408, 1421, 1433, 1446, 1564, 1577, - 1601, 1109, 1253, 1266, 1278, 1289, 1409, 1422, - 1434, 1447, 1565, 1578, 1590, 1602, 1120, 1121, - 1279, 1290, 1435, 1459, 1591, 1603, 1122, 1291, - 1448, 1460, 1604, 1616, 1617, 1757, 1732, 1461, - 1605, 1630, 1786, 1110, 1254, 1266, 1267, 1278, - 1279, 1290, 1409, 1410, 1421, 1422, 1423, 1434, - 1435, 1446, 1447, 1448, 1578, 1590, 1591, 1602, - 1603, 1111, 1255, 1268, 1280, 1291, 1411, 1424, - 1436, 1449, 1567, 1580, 1604, 1616, 1122, 1459, - 1460, 1123, 1281, 1292, 1437, 1461, 1593, 1605, - 1617, 1124, 1293, 1304, 1450, 1462, 1630, 1762, - 1786, 1775, 1787, 1632, 1112, 1268, 1280, 1281, - 1292, 1411, 1423, 1424, 1436, 1437, 1448, 1449, - 1450, 1580, 1593, 1604, 1605, 1617, 1256, 1269, - 1293, 1412, 1425, 1581, 1113, 1282, 1294, 1438, - 1451, 1124, 1461, 1462, 1125, 1463, 1630, 1306, - 1126, 1295, 1464, 1632, 1476, 1762, 1413, 1775, - 1787, 1786, 950, 1106, 1119, 1262, 1275, 1288, - 1418, 1431, 951, 1107, 1120, 1263, 1264, 1276, - 1277, 1289, 1419, 1420, 1432, 1433, 1445, 1575, - 1588, 1601, 1446, 1602, 964, 1121, 1290, 1459, - 795, 1134, 1291, 1447, 1603, 1616, 796, 1460, - 1757, 952, 1135, 1304, 1461, 1278, 1434, 1590, - 1292, 1617, 1630, 1562, 1604, 1136, 1786, 1732, - 1448, 1591, 1605, 1787, 1293, 1462, 1137, 1306, - 968, 1138, 1294, 1463, 1476, 1632, 1449, 1775, - 1762, 1137, 1294, 1306, 1450, 1462, 1463, 1630, - 1138, 1295, 1451, 1476, 1632, 1464, 1139, 1127, - 645, 1815, 1775, 1787, 1203, 1371, 1381, 1382, - 1383, 1549, 1550, 1551, 1552, 1214, 1215, 1384, - 1395, 1396, 1564, 1565, 1035, 1216, 1228, 1385, - 1397, 1409, 1577, 1394, 1562, 1229, 1398, 1410, - 1567, 1578, 1217, 1386, 1411, 1422, 1423, 1555, - 1580, 1590, 1591, 1732, 1399, 1593, 1575, 1602, - 1603, 1757, 1604, 1605, 1616, 1581, 1762, 1424, - 1617, 1786, 1775, 1787, 1408, 1588, 1601, 1434, - 1435, 1436, 1448, 1412, 1425, 1437, 1449, 1815, - 1993, 1994, 1216, 1217, 1228, 1229, 1383, 1384, - 1385, 1386, 1396, 1397, 1398, 1409, 1410, 1552, - 1564, 1565, 1567, 1578, 1048, 1230, 1242, 1399, - 1411, 1555, 1580, 1412, 1037, 1049, 1231, 1375, - 1413, 1581, 1423, 1591, 1244, 1425, 1438, 1593, - 1257, 1388, 1270, 1451, 1422, 1577, 1762, 1775, - 1605, 1787, 1283, 1464, 1632, 1732, 1786, 1604, - 1453, 1815, 1993, 1994, 1393, 1549, 1550, 1562, - 1394, 1406, 1551, 1575, 1395, 1407, 1552, 1564, - 1588, 1732, 1419, 1565, 1577, 1601, 1757, 1786, - 1762, 1787, 1775, 1432, 1551, 1564, 1575, 1577, - 1588, 1601, 1732, 1757, 1565, 1578, 1590, 1591, - 1602, 1603, 1447, 1604, 1616, 1617, 1605, 1786, - 1580, 1593, 1762, 1787, 1775, 1993, 1435, 1567, - 1436, 1448, 1449, 1460, 1994, 1119, 1275, 1288, - 1406, 1418, 1419, 1431, 1445, 1549, 1562, 1459, - 1630, 1304, 1461, 1134, 1135, 1437, 1555, 1581, - 1632, 1815, 1476, 1290, 1289, 1446, 1306, 1462, - 1463, + 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, 0, 0, 71, 142, 206, 206, 241, - 0, 0, 329, 142, 206, 206, 241, 0, - 359, 410, 142, 206, 206, 241, 463, 529, - 608, 667, 206, 206, 241, 739, 825, 897, - 667, 963, 963, 1021, 1151, 897, 1227, 1295, - 963, 963, 1328, 1328, 1328, 1295, 963, 963, - 963, 241, 1393, 0, 71, 142, 206, 206, - 1393, 0, 1453, 1533, 1618, 206, 206, 1687, - 1755, 1838, 1938, 667, 206, 206, 2025, 2089, - 2191, 2291, 667, 963, 206, 2376, 2466, 2557, - 1227, 1295, 963, 963, 2620, 1328, 1328, 1295, - 963, 963, 963, 1328, 963, 963, 963, 963, - 963, 963, 1687, 1393, 1393, 71, 2692, 206, - 206, 1687, 2745, 2824, 2926, 1618, 206, 206, - 1687, 3026, 3133, 3253, 3356, 206, 206, 3427, - 3503, 3613, 3732, 3356, 963, 963, 3830, 3898, - 3966, 1227, 1295, 963, 963, 4031, 1328, 1328, - 1295, 963, 963, 963, 1328, 963, 963, 963, - 963, 963, 963, 1687, 1687, 4102, 4156, 4231, - 206, 206, 1687, 4296, 4388, 4497, 4600, 206, - 206, 4669, 4738, 4848, 4965, 3356, 5063, 206, - 5071, 5148, 5255, 5369, 963, 206, 206, 3830, - 5462, 5524, 5591, 1295, 206, 206, 4031, 5524, - 1328, 963, 963, 963, 963, 963, 963, 963, - 963, 963, 963, 963, 5631, 5692, 5692, 5764, - 5831, 206, 206, 5907, 5975, 6039, 6109, 4600, - 206, 206, 4669, 6179, 6245, 6310, 963, 5063, - 206, 5907, 6369, 6427, 6484, 963, 206, 206, - 6530, 6530, 5524, 6601, 963, 963, 963, 4031, - 4031, 963, 963, 963, 963, 963, 963, 963, - 963, 963, 963, 963, 963, 5631, 5631, 5631, - 6620, 6690, 963, 963, 5907, 6748, 6620, 6620, - 963, 963, 963, 5907, 6771, 6771, 6771, 963, - 963, 963, 5907, 6771, 6771, 5524, 963, 963, - 963, 6771, 6771, 5524, 963, 963, 963, 963, - 6771, 4031, 963, 963, 963, 963, 963, 963, - 963, 963, 963, 963, 963, 963, 5631, 5907, - 6620, 6620, 5524, 963, 963, 5907, 6620, 5524, - 5524, 963, 963, 963, 6620, 5524, 5524, 963, - 963, 963, 963, 6620, 5524, 963, 963, 963, - 963, 963, 6620, 963, 963, 963, 963, 963, - 963, 963, 963, 963, 963, 963, 963, 963, - 963, 963, 963, 963, 963, 963, 963, + 0, 4, 8, 12, 16, 20, 24, 28, + 32, 36, 40, 44, 48, 52, 52, }; static long _vq_fitlength_lsp12_0[] = { - 71, 71, 71, 71, 64, 35, 35, 88, - 71, 71, 30, 64, 35, 35, 88, 71, - 51, 53, 64, 35, 35, 88, 66, 79, - 59, 72, 35, 35, 88, 86, 72, 66, - 72, 58, 58, 130, 76, 66, 68, 33, - 58, 58, 65, 65, 65, 33, 58, 58, - 58, 88, 60, 71, 71, 64, 35, 35, - 60, 71, 80, 85, 69, 35, 35, 68, - 83, 100, 87, 72, 35, 35, 64, 102, - 100, 85, 72, 58, 35, 90, 91, 63, - 68, 33, 58, 58, 72, 65, 65, 33, - 58, 58, 58, 65, 58, 58, 58, 58, - 58, 58, 68, 60, 60, 71, 53, 35, - 35, 68, 79, 102, 100, 69, 35, 35, - 68, 107, 120, 103, 71, 35, 35, 76, - 110, 119, 98, 71, 58, 58, 68, 68, - 65, 68, 33, 58, 58, 71, 65, 65, - 33, 58, 58, 58, 65, 58, 58, 58, - 58, 58, 58, 68, 68, 54, 75, 65, - 35, 35, 68, 92, 109, 103, 69, 35, - 35, 69, 110, 117, 98, 71, 8, 35, - 77, 107, 114, 93, 58, 35, 35, 68, - 62, 67, 40, 33, 35, 35, 71, 67, - 65, 58, 58, 58, 58, 58, 58, 58, - 58, 58, 58, 58, 61, 72, 72, 67, - 76, 35, 35, 68, 64, 70, 70, 69, - 35, 35, 69, 66, 65, 59, 58, 8, - 35, 68, 58, 57, 46, 58, 35, 35, - 71, 71, 67, 19, 58, 58, 58, 71, - 71, 58, 58, 58, 58, 58, 58, 58, - 58, 58, 58, 58, 58, 61, 61, 61, - 70, 58, 58, 58, 68, 23, 70, 70, - 58, 58, 58, 68, 62, 62, 62, 58, - 58, 58, 68, 62, 62, 67, 58, 58, - 58, 62, 62, 67, 58, 58, 58, 58, - 62, 71, 58, 58, 58, 58, 58, 58, - 58, 58, 58, 58, 58, 58, 61, 68, - 70, 70, 67, 58, 58, 68, 70, 67, - 67, 58, 58, 58, 70, 67, 67, 58, - 58, 58, 58, 70, 67, 58, 58, 58, - 58, 58, 70, 58, 58, 58, 58, 58, - 58, 58, 58, 58, 58, 58, 58, 58, - 58, 58, 58, 58, 58, 58, 58, + 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, }; static encode_aux_pigeonhole _vq_auxp_lsp12_0 = { - 0.15, 0.01, 40, 7, + 0.06, 0.002, 405, 15, _vq_pigeonmap_lsp12_0, - 6833, + 56, _vq_fitlist_lsp12_0, _vq_fitmap_lsp12_0, _vq_fitlength_lsp12_0 }; static static_codebook _vq_book_lsp12_0 = { - 3, 2197, + 1, 43, _vq_lengthlist_lsp12_0, - 1, 1605579571, 1597274849, 6, 1, + 1, 1602140242, 1592812110, 9, 1, _vq_quantlist_lsp12_0, NULL, NULL, &_vq_auxp_lsp12_0, + 0 }; diff --git a/lib/books/lsp12_1.vqh b/lib/books/lsp12_1.vqh new file mode 100644 index 00000000..0db9d000 --- /dev/null +++ b/lib/books/lsp12_1.vqh @@ -0,0 +1,2979 @@ +/******************************************************************** + * * + * 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_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,15,17,16,16,16,16,16,16,16,15,16,16,16,16, + 15,15,16,15,16,15,14,15,15,15,16,16,15,16,16,14, + 14,15,16,14,16,14,16,16,16,16,16,15,14,15,14,14, + 14,15,14,15,15,16,15,16,15,15,14,14,14,14,15,15, + 15,16,16,16,15,16,15,16,16,16,15,15,15,14,16,15, + 14,15,16,16,16,15,16,16,16,16,15,15,15,15,16,16, + 15,16,16,16,16,16,15,15,15,14,13,15,16,15,16,16, + 16,16,15,16,16,16,15,14,13,15,16,14,16,16,16,16, + 16,16,15,16,15,15,14,15,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,15,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,15,16,15,16,16,16,16,16,16,16,16,16, + 16,16,16,16,15,15,15,15,16,16,15,15,16,16,16,16, + 16,15,15,15,15,15,15,14,15,14,14,15,16,16,16,16, + 16,16,15,15,14,14,14,15,16,15,15,16,16,16,15,14, + 13,13,14,14,14,15,16,15,16,15,16,16,15,15,15,13, + 14,13,14,16,16,16,15,15,16,16,16,14,16,15,13,13, + 15,14,15,15,16,16,16,16,16,15,15,14,14,12,13,15, + 14,16,16,16,16,16,16,16,15,14,14,12,13,14,15,14, + 15,16,16,16,16,16,16,14,15,13,15,14,15,15,15,15, + 16,16,16,16,15,14,15,16,14,15,15,16,15,16,16,16, + 16,15,15,15,16,15,15,16,16,16,16,16,16,15,15,16, + 15,15,16,14,15,14,15,16,16,16,16,16,16,16,15,15, + 16,16,16,15,16,16,15,16,16,16,14,16,16,16,16,16, + 15,16,15,16,16,16,16,16,16,15,15,14,15,14,15,16, + 16,15,16,16,16,16,16,15,15,15,15,13,14,13,14,16, + 16,16,16,16,16,16,13,13,13,13,14,14,14,15,15,15, + 16,16,15,14,12,12,12,12,13,14,16,15,14,15,16,16, + 16,13,13,13,12,12,13,13,14,15,14,16,16,16,16,16, + 13,13,12,12,12,13,15,15,15,16,16,16,16,16,15,12, + 12,11,12,13,14,15,15,16,16,16,16,15,14,14,12,12, + 12,13,14,14,15,16,16,16,16,16,16,15,12,13,13,14, + 13,14,14,15,16,16,16,16,15,14,14,14,13,13,14,15, + 15,16,15,16,16,16,14,16,15,14,15,14,14,14,16,16, + 16,16,16,16,15,15,16,14,14,15,14,15,16,16,16,16, + 16,15,15,15,15,15,16,15,15,16,16,16,16,16,15,15, + 15,15,16,15,15,16,16,15,16,16,16,16,16,15,15,15, + 14,14,14,16,16,15,16,16,16,16,16,15,14,14,13,14, + 14,15,15,14,14,15,16,16,15,14,13,12,12,12,13,13, + 15,16,14,16,16,16,16,13,11,11,12,12,12,13,14,13, + 16,15,16,15,15,13,10,11,10,11,12,12,13,14,14,15, + 15,16,15,14,11,10,10,11,11,12,12,14,14,15,16,16, + 16,15,12,11,11,10,11,12,13,14,15,14,16,16,16,15, + 13,12,11,11,11,12,13,14,14,16,16,16,16,15,14,13, + 13,12,12,12,13,13,14,15,16,16,15,15,14,13,14,13, + 12,12,13,14,15,15,16,16,16,15,14,13,14,12,13,14, + 14,13,14,16,16,15,16,16,16,14,14,14,13,13,15,14, + 15,16,16,16,15,14,14,14,16,15,14,15,14,15,16,16, + 16,16,16,16,15,15,14,15,16,15,15,15,16,16,16,16, + 16,14,14,13,13,14,14,15,15,15,15,15,16,16,15,14, + 12,12,12,12,13,13,13,13,13,13,16,16,14,12,11,11, + 11,11,11,11,11,12,12,14,16,16,14,12,10, 9,10,10, + 10,11,11,12,13,14,16,14,13,13, 9, 8, 9, 9,10,10, + 10,12,12,13,16,16,15,13,10, 9, 9, 9, 9,10,12,13, + 13,13,15,15,15,13,11, 9, 9, 9, 9,10,11,12,13,14, + 16,15,16,14,12,11,10, 9,10,11,12,12,14,16,16,15, + 14,14,12,12,11,10,11,11,12,12,14,15,15,16,16,14, + 13,13,11,12,12,12,13,13,13,13,15,15,15,14,14,13, + 13,13,12,12,13,13,14,16,16,16,15,14,14,13,13,14, + 13,14,13,13,15,14,16,16,15,14,14,15,14,15,14,14, + 14,15,16,16,16,16,16,16,16,14,16,15,14,16,15,15, + 16,15,16,16,15,15,13,13,12,12,13,14,14,15,14,13, + 16,16,14,12,11,10,10,11,12,12,13,12,12,12,16,15, + 14,12,10, 9, 9,10,10,10,11,11,11,12,16,15,14,11, + 9, 8, 8, 9, 9, 9, 9,10,11,12,16,16,14,11, 9, 7, + 7, 8, 8, 8, 9,10,11,13,16,14,14,11, 9, 7, 7, 7, + 8, 9,10,11,12,12,16,15,14,12,10, 8, 8, 7, 8, 9, + 11,12,13,13,14,15,15,13,11,10, 9, 8, 9,10,11,12, + 13,14,16,16,16,13,11,11,10, 9,10,10,11,13,13,13, + 16,16,15,14,12,11,11,11,11,11,12,13,13,15,16,15, + 15,12,13,12,12,12,11,13,13,15,14,15,16,16,15,14, + 14,13,12,13,12,13,14,14,15,16,16,15,15,14,14,15, + 13,14,14,14,15,14,15,16,16,16,16,16,15,14,14,13, + 13,15,15,15,15,16,15,16,15,14,12,11,11,12,12,13, + 14,15,15,15,16,16,14,11,10,10, 9,10,12,12,13,12, + 12,13,16,14,13,11, 9, 8, 9,10,10, 9,10,11,11,11, + 15,15,12,10, 8, 8, 8, 9, 9, 8, 9,10,11,12,14,13, + 11,10, 8, 7, 6, 7, 7, 8, 8, 9,11,13,15,13,12,10, + 8, 6, 6, 6, 7, 8, 9,11,11,13,15,15,13,11, 9, 7, + 6, 7, 8, 9,10,12,12,13,15,15,14,12,10, 9, 8, 8, + 8, 9,11,11,13,14,15,14,13,13,11,10, 9, 9,10,10, + 11,12,12,13,15,15,14,12,12,11,10,10,11,11,12,13, + 14,14,15,15,13,12,12,11,11,12,12,12,13,14,15,15, + 16,15,14,13,12,13,13,12,13,13,14,14,15,15,16,15, + 14,13,14,13,13,13,14,14,14,15,15,16,16,16,15,15, + 14,14,13,13,14,14,15,15,16,16,16,16,15,13,12,11, + 11,12,13,13,15,14,14,16,15,14,14,11,10,10,11,11, + 12,13,14,15,14,15,16,14,13,10, 9, 9,10,10,10,11, + 11,11,12,13,15,13,11, 9, 8, 8, 8, 9, 9, 9, 9,11, + 12,13,15,13,11, 9, 8, 7, 7, 7, 8, 9,10,11,12,14, + 14,13,11, 9, 8, 7, 6, 7, 8, 9,10,12,12,14,15,14, + 11,10, 9, 7, 7, 7, 8, 9,10,12,12,15,16,14,13,11, + 10, 9, 8, 8, 9,10,10,12,13,13,16,14,13,12,10, 9, + 9, 9,10,10,11,13,13,14,16,15,14,12,11,11,10,10, + 10,11,12,13,13,15,16,15,13,12,12,11,12,11,12,12, + 12,13,14,16,16,14,14,13,12,12,12,12,12,13,14,13, + 15,15,16,15,14,14,13,12,12,13,13,15,14,15,16,15, + 16,16,16,15,14,13,14,14,15,16,16,15,16,15,15,16, + 15,14,13,12,13,13,14,14,15,15,16,16,16,16,15,12, + 11,11,12,12,13,12,13,14,15,14,15,13,12,10,10,10, + 10,11,11,12,13,13,14,14,14,12,11,10, 9, 9, 9,10, + 10,11,11,12,13,14,16,12,11,10, 8, 8, 8, 8, 9,10, + 11,12,13,14,14,12,11,10, 9, 8, 7, 8, 9,10,12,12, + 13,13,16,15,11,10, 9, 8, 8, 8, 8,10,11,12,14,15, + 16,13,13,11,10, 9, 9, 8, 9,10,11,12,13,13,16,15, + 14,12,11,10,10,10,10,10,11,12,13,15,16,16,13,12, + 11,10,10,10,10,11,12,13,13,15,14,14,13,12,12,11, + 11,11,11,12,13,13,14,15,16,15,15,15,12,12,12,12, + 13,13,14,14,16,15,15,15,15,14,14,13,12,12,13,15, + 15,14,15,16,16,16,16,15,14,14,16,14,15,15,16,16, + 16,16,16,15,15,14,12,13,13,14,14,15,15,16,16,16, + 16,15,14,12,12,12,12,13,14,13,14,15,15,16,16,12, + 12,11,11,10,11,11,12,12,13,14,14,15,15,12,12,11, + 10, 9,10,10,10,11,12,13,15,14,14,12,11,10, 9, 9, + 9, 9,10,11,12,14,15,16,14,12,11,10, 9, 9, 9, 9, + 9,10,11,12,14,15,15,13,12,11,10, 9, 9, 9,10,10, + 11,12,14,13,15,15,13,11,11,10, 9, 9, 9,10,11,12, + 13,14,15,15,13,12,11,10,10,10,10,11,12,13,14,15, + 15,14,14,13,12,11,10,10,11,11,13,12,14,15,14,15, + 14,13,12,11,12,11,11,12,13,15,14,15,16,15,14,14, + 13,12,12,12,12,13,14,14,15,15,16,15,14,13,13,12, + 13,13,13,13,14,14,15,15,16,16,16,14,14,15,15,15, + 15,14,16,16,16,16,15,15,16,14,14,14,14,14,14,15, + 15,16,16,16,16,14,14,13,12,13,12,13,14,14,14,15, + 15,16,14,13,12,12,12,11,11,11,13,14,13,16,15,15, + 16,12,12,11,11,10,10,11,11,12,14,14,14,16,14,12, + 12,11,10, 9,10,10,11,12,12,14,14,15,14,13,12,12, + 10, 9,10,10,11,11,13,13,13,15,14,13,13,11,11,10, + 10,10,10,11,12,13,15,15,15,14,14,12,12,11,10,10, + 10,11,12,13,14,14,16,15,13,12,11,11,11,10,11,11, + 12,13,13,15,13,14,14,13,11,11,11,11,11,12,13,14, + 14,15,15,15,14,12,12,11,11,11,12,13,13,15,15,15, + 15,15,15,14,13,12,13,13,13,12,14,15,16,16,14,15, + 14,14,14,14,13,12,13,14,14,15,15,16,16,15,15,15, + 16,15,15,14,15,15,15,16,15,16,16,16,15,15,14,13, + 14,15,14,16,15,16,15,15,15,15,14,14,14,14,13,14, + 14,15,16,15,16,16,15,13,14,12,13,12,13,12,13,14, + 15,15,15,16,15,13,12,12,12,11,12,12,12,12,15,15, + 14,16,15,13,13,12,11,11,11,11,12,13,13,14,16,16, + 14,14,12,12,11,10,11,11,11,12,12,14,14,15,14,15, + 12,12,11,11,11,11,11,12,12,13,14,16,16,14,13,12, + 12,11,11,11,11,12,13,14,15,15,15,15,14,13,12,12, + 11,12,12,12,13,14,14,16,14,15,14,13,12,12,12,12, + 12,14,13,14,16,15,15,14,13,14,12,12,12,13,13,14, + 14,15,16,16,15,14,13,14,13,13,14,14,14,14,15,16, + 16,16,14,14,14,13,15,14,14,14,15,16,15,16,16,16, + 16,15,15,16,16,14,14,15,16,16,15,16,16,16,16,16, + 14,16,15,15,15,14,16,15,16,16,16,16,16,15,13,14, + 14,14,14,15,15,15,15,15,15,16,16,15,13,13,13,13, + 13,13,13,14,15,16,16,16,16,14,14,12,13,13,12,12, + 13,14,14,14,15,16,16,14,13,13,12,12,12,12,12,12, + 14,14,16,16,15,15,13,13,12,11,12,12,12,13,14,14, + 16,16,16,16,13,12,12,12,12,12,11,12,13,14,15,16, + 15,14,13,13,12,12,12,12,12,12,14,14,14,15,14,16, + 13,13,14,12,12,12,12,14,14,15,14,16,15,15,13,13, + 12,12,12,13,13,14,15,16,16,16,15,14,15,13,13,13, + 14,15,15,16,16,16,16,16,16,15,15,15,14,14,16,15, + 15,15,16,16,16,16,15,16,15,15,15,15,15,16,16,16, + 16,16,16,16,15,16,16,15,16,15,14,16,16,15,16,15, + 16,16,16,15,15,16,14,14,16,15,16,16,16,16,16,16, + 16,15,14,14,14,14,14,15,15,15,14,15,15,16,15,14, + 15,13,13,14,14,14,14,15,14,16,16,16,16,14,13,13, + 14,15,13,12,13,13,15,16,15,15,15,14,13,15,12,12, + 12,12,13,14,16,15,16,16,15,15,14,13,13,12,12,13, + 12,13,14,15,15,16,16,15,14,13,13,12,12,12,12,13, + 16,15,15,15,16,14,14,13,13,14,14,13,14,13,14,16, + 15,16,16,14,13,14,14,13,14,14,14,15,16,16,16,16, + 16,15,16,14,13,14,14,15,15,16,16,16,16,16,16,15, + 14,15,14,15,15,15,15,16,16,16,16,16,15,15,16,16, + 14,16,16,16,16,16,16,16,16,16,15,14,14,15,15,16, + 16,16,15,16,16,16,16,16, +}; + +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 index 5041fdc4..9b966401 100644 --- a/lib/books/lsp30_0.vqh +++ b/lib/books/lsp30_0.vqh @@ -5,9 +5,8 @@ * 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-2000 * - * by Monty <monty@xiph.org> and the XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -21,2052 +20,355 @@ static long _vq_quantlist_lsp30_0[] = { 0, - 5, + 2, + 4, 6, - 7, 8, - 9, 10, 12, 14, 16, 18, + 20, 22, + 24, 26, - 30, + 28, + 31, + 35, + 39, + 43, + 47, + 51, + 55, + 63, + 73, + 83, + 93, }; static long _vq_lengthlist_lsp30_0[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0,20,18,16,15,17,18, 0, 0, 0, 0, 0, 0, 0, - 19,17,15,14,16,19,20, 0, 0, 0, 0, 0, 0, 0,20,16, - 15,16,16, 0, 0, 0, 0, 0, 0, 0, 0,20, 0,20,16,19, - 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,20,17,18, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,18,17, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,20,18, 0,20, 0, 0, - 0, 0, 0, 0, 0, 0, 0,19, 0,18, 0,20, 0,20, 0, 0, - 0, 0, 0, 0, 0, 0, 0,19, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 20,20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,19, - 0, 0, 0, 0, 0,19,16,14,13,13,15,18,20,20, 0, 0, - 0, 0, 0, 0, 0, 0,16,16,16,19,19, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0,17,17,20, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0,17,17,19, 0,19,17,20, 0, 0, 0, 0, 0, 0, - 0,17,16,17, 0,14,17, 0, 0, 0, 0, 0, 0, 0, 0,16, - 18,18,17,14,20, 0, 0, 0, 0, 0, 0,20,19,16,18,16, - 14,13,19, 0, 0, 0, 0, 0, 0, 0,20,18,16,15,15,15, - 20,20, 0, 0, 0, 0, 0, 0,18,16,16,18,18,18,17, 0, - 0, 0, 0, 0,20, 0,17,18,18,20,17,18,18, 0, 0, 0, - 0, 0, 0,19,19,17,15,15,16,18,20, 0, 0, 0, 0, 0, - 0, 0,20,17,19, 0, 0,20, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 20,19, 0,20, 0, 0, 0, 0,19,17,15,15,14,14,17,18, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,20,17, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,17, 0, 0, 0,18, 0, - 0, 0, 0, 0, 0, 0, 0,18,15,18,20,18,20, 0, 0, 0, - 0, 0, 0, 0, 0,14,18,18, 0,20,18, 0, 0, 0, 0, 0, - 0, 0, 0,14,17,19,18,15,20, 0, 0, 0, 0, 0, 0,19, - 18,17,16,18,16,15, 0,20, 0, 0, 0, 0, 0, 0,19,16, - 16,15,15,15,19,20, 0, 0, 0, 0, 0, 0,20,18,17,15, - 15,15,17,18, 0, 0,20,17,18, 0,17,18,18,17,14,16, - 18,19, 0, 0, 0, 0, 0,17,17,16,14,15,15,18,20, 0, - 0, 0, 0, 0, 0, 0,19,19,18,17,20, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,20,15,17,18,18,20,20, 0, 0, 0, 0,16,15,16, - 14,15,16,18,19,20,18, 0, 0, 0, 0, 0, 0, 0, 0,18, - 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,19,16,20, - 19,19,20, 0, 0, 0, 0, 0, 0, 0,18,15,16, 0,19,20, - 18, 0, 0, 0, 0, 0,19,18,16,15,17,18,18,17, 0, 0, - 0, 0, 0, 0, 0,20,17,18,18,17, 0,16,20, 0, 0, 0, - 0, 0, 0,20,17,14,15,17,16,15,20,20, 0, 0, 0, 0, - 0, 0,19,17,15,13,13,14,17,17, 0, 0, 0, 0,19, 0, - 0,17,17,14,13,14,17,20, 0, 0,20,19, 0,20, 0,18, - 17,14,13,15,15,20, 0, 0, 0, 0,20,18,16,16,14,14, - 13,19,20, 0, 0, 0, 0, 0, 0, 0, 0,17,16,14,18,18, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,20, - 0, 0, 0, 0, 0,17,15,14,15,16,17,19,20, 0, 0, 0, - 0,20,19,15,14,15,16,16,20,17,20, 0, 0, 0, 0, 0, - 0, 0, 0,19,18, 0, 0,19, 0, 0, 0, 0, 0, 0, 0, 0, - 0,17,16,16,16,17, 0,20, 0, 0, 0, 0,19,16,15,15, - 17,18,16,17,18, 0, 0, 0, 0, 0,16,15,14,17,16,17, - 17,17,18,19, 0, 0, 0,20, 0,17, 0,16,14,15,15,15, - 18,19, 0, 0, 0, 0, 0,20,17,16,14,15,14,14,16,16, - 0, 0, 0, 0, 0, 0,19,16,15,13,13,13,16,17, 0, 0, - 0, 0, 0,20,18,18,16,13,12,13,19,19, 0, 0,20, 0, - 0, 0,20,16,14,13,12,14,18, 0, 0, 0, 0, 0,18,18, - 17,15,13,13,11,17, 0,17, 0, 0, 0, 0, 0,17,17,18, - 15,12,19, 0, 0,20, 0, 0, 0, 0, 0, 0, 0, 0,19, 0, - 0, 0, 0, 0, 0, 0, 0,18,17,16,14,14,15,16,16,17, - 18, 0, 0, 0, 0, 0,19,18,14,16,16,18,17,17,20, 0, - 0, 0, 0, 0, 0, 0,18,18,18,17,17,18, 0, 0, 0, 0, - 0, 0, 0, 0,18,16,15,15,16,16,19, 0, 0, 0, 0, 0, - 20,16,15,16,19,15,15,14,19, 0, 0, 0, 0,19,19,18, - 15,17,16,14,15,15,18, 0, 0, 0, 0, 0, 0, 0,20,14, - 14,15,14,14,16,17, 0, 0, 0, 0,20, 0,18,15,14,14, - 13,13,17,19, 0, 0, 0, 0, 0,20,19,15,14,13,12,12, - 19,13, 0, 0, 0,20, 0,18,17,15,13,12,12,12,20,16, - 0,20, 0,20,18,17,17,15,12,11,11,13,19,16, 0, 0, - 0,19,17,16,19,14,12,12,12,16, 0,16, 0, 0, 0, 0, - 17,17,16,16,15,13,17,20,18,17, 0, 0, 0, 0, 0, 0, - 0,19,16,18, 0, 0,18,18, 0, 0,18,15,14,14,14,14, - 16,17,15,16,19, 0, 0, 0, 0, 0, 0,18,16,16,16,16, - 16,16,19,19, 0, 0, 0, 0, 0,18,16,16,16,16,17,16, - 0, 0, 0, 0, 0, 0, 0,18,16,16,16,16,15,15,17, 0, - 0, 0, 0, 0, 0, 0,17,16,17,14,14,14,20,18, 0, 0, - 0, 0, 0, 0,20,17,15,13,14,13,16, 0, 0, 0, 0,19, - 15,18,18,16,14,13,13,13,15,20, 0, 0, 0, 0,19,20, - 17,15,13,12,11,12,15,20, 0,19, 0, 0,18,19,16,13, - 12,11,10,11,15, 9, 0,18,18,19, 0,16,15,13,11,10, - 9,12,18,17, 0,20,17,16,16,15,14,12,10,10, 9,13, - 19,16,20,14,17,18,17,15,15,13,12,11,10,15,16,13, - 0,19,20,17,16,18,19,17,12,14,17,20,14,14,20, 0, - 20,18,20, 0,19,16,14,13, 0,19,17,18, 0, 0, 0,18, - 15,14,14,15,17,17,15,15,17,20, 0,17, 0, 0,17, 0, - 17,14,14,15,15,15,19,18, 0, 0, 0, 0, 0,19,16,14, - 15,16,15,15,20,18, 0, 0, 0, 0,16,16,14,14,16,15, - 13,14,19, 0, 0, 0,20,15,15, 9,15,15,16,13,12,13, - 17,20, 0, 0,16,14,12,13,13,15,14,13,12,13,16, 0, - 0, 0,18,16,13,13,14,14,13,12,11,11,14,20, 0, 0, - 0,20,20,16,14,12,11,10, 9,10,14,18, 0,20, 0,16, - 16,15,14,11, 9, 7, 8,10,15,18, 0,16,17,16,14,14, - 13,10, 8, 7, 7,11,15,16,18,17,16,16,14,13,11, 9, - 8, 7, 8,12,16,14,20,13,16,15,14,14,12,11,10,10, - 10,13,14,14,15,17,18,17,18,18,19,13,11,12,16,16, - 16,16,19,20,18,20, 0, 0,17,13,12,19,17,16,15,17, - 0, 0, 0,19,18,17,15,15,16,17,15,15,19,20, 0,13, - 0,20, 0,18,16,15,15,15,15,16,17,20, 0,13,17,17, - 17,18,16,16,15,14,16,16,20,20, 0,14,16,16,14,14, - 14,15,15,14,14,14,18,19,16,15,18,13,13,13,14,14, - 14,14,13,13,16,20,14,16,17,17,14,15,15,15,14,13, - 12,12,16,19,19,18, 0,17,17,16,15,13,12,11,10,11, - 15, 0, 0,16,20,16,14,14,14, 9, 8, 8, 8, 9,15, 0, - 20,15,14,12,11,11,11, 8, 6, 6, 6, 9,14, 0,17,14, - 16,14,13,11,10, 7, 5, 5, 6,10,15,15,17,13,14,13, - 13,12,10, 7, 6, 6, 7,11,13,14,14,13,14,14,13,12, - 12,10, 9,10, 9,11,15,15,15,17,18,16,17,17,16,13, - 11,13,14,14,14,18, 0,19, 0,20,20, 0,18,12,12,16, - 16,14,15,18, 0, 0, 0, 0,19,20,20,20,20,18,17,16, - 19,20, 0,18,18, 0, 0,18,18,14,17,16,16,16,18,18, - 0, 0, 0,20,17,15,13,15,16,15,16,14,16, 0, 0,16, - 15,15,15,14,14,14,14,15,15,13,16, 0, 0,16,14,14, - 13,15,13,14,13,13,14,12,16,20, 0,17,16,16,14,14, - 14,14,13,12,12,11,16,20, 0,15,18,16,15,15,14,13, - 11,10,10,10,15, 0,18,13,15,13,12,12,12,10, 8, 7, - 7, 9,14,19,15,12,13,12,11,11,10, 8, 6, 5, 6, 9, - 14, 0,14,12,13,12,12,11, 9, 7, 4, 4, 6, 8,15,19, - 14,12,13,13,12,11, 9, 7, 6, 5, 6, 9,13, 0,12,12, - 14,13,13,12,11,10, 9, 9, 8,10,16,20,17,14,16,15, - 15,14,14,14,13,15,12,13,14,19,20, 0,20,20, 0,17, - 14,11,13,15,15,13,17,18, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,18,18,20,19, 0,19, 0, 0,19,17,19,15,15,16, - 17,15,17, 0, 0,20,20,19,18,19,15,14,14,15,17,14, - 16, 0, 0, 0, 0,17,16,16,14,13,13,15,15,13,16, 0, - 0,18,20,17,14,14,13,12,13,13,13,12,16, 0,20,19, - 18,16,15,14,14,13,12,12,11,12,16, 0, 0,15,16,16, - 15,14,13,12,11,10, 9,10,16, 0,17,12,14,14,13,13, - 12,10, 8, 7, 7,10,15,18,14,11,14,13,12,12,11, 7, - 6, 5, 6,10,15,19,13,11,13,13,12,11, 9, 7, 5, 5, - 6, 9,15,20,13,10,13,12,11,11, 9, 7, 6, 5, 6, 8, - 15,20,14,11,13,12,13,12,11,10, 9, 9, 9,11,17,17, - 18,13,14,14,14,14,14,13,13,13,12,13,14, 0, 0,18, - 17,16,14,14,12,11,13,16,16,14,18,20, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,20,16,17,19, 0, 0, 0, 0, 0, 0, - 18,15,17,19,18,15,14,20, 0, 0, 0, 0, 0,20,17,16, - 15,16,17,15,16, 0, 0, 0, 0, 0,20,19,17,16,15,15, - 15,15,15, 0,20, 0, 0, 0,20,17,16,15,14,14,14,14, - 16, 0,20, 0,20, 0,18,18,16,14,13,13,13,13,17, 0, - 20,16,18,16,18,16,15,13,12,12,12,13,17, 0,18,13, - 16,15,13,13,12,11,11,10,11,12,16, 0,14,12,15,14, - 13,12,12,10, 9,10,10,11,16, 0,14,11,14,15,14,13, - 12, 9, 9,10,10,11,17, 0,14,11,13,14,13,12,11,10, - 10,10, 9,10,17, 0,16,12,13,13,13,13,13,11,11,11, - 10,12, 0, 0,20,14,14,14,15,16,13,12,14,14,12,13, - 17, 0, 0,16,16,13,13,12,11,13,18,16,15,14, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0,20,20,17,16,18, 0, 0, - 0, 0, 0,20, 0,17,18, 0, 0, 0,18, 0, 0, 0, 0, 0, - 0, 0,20,19,20, 0, 0,16,17,20, 0, 0, 0, 0, 0, 0, - 0,18, 0, 0,20,16,15, 0, 0,20, 0, 0, 0, 0, 0,20, - 0,20, 0,16,15, 0, 0,20,20, 0, 0, 0,20,18,18,17, - 17,15,16, 0, 0,20, 0, 0, 0, 0,20,17,17,16,16,16, - 17, 0, 0,18, 0,19, 0,18,16,15,13,14,14,15,20, 0, - 20,16,20,20,18,17,15,13,13,15,14,14,19, 0,20,14, - 15,16,16,16,14,11,13,14,13,14,20, 0,20,14,14,14, - 14,14,12,11,12,13,12,13,20,20, 0,14,16,17,18,20, - 16,14,13,13,13,14,20, 0, 0,17,15,15,14,15,15,16, - 18,16,13,13, 0, 0, 0,16,14,14,14,13,14,16, 0, 0, - 16,17, 0,19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,18, - 18,20, 0, 0, 0, 0, 0, 0,20, 0, 0, 0, 0,20,19, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,19,20, 0,20,19,20, 0, 0, 0, 0, 0,20, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,20, - 0,20,20,20,20, 0, 0, 0, 0, 0, 0,20, 0,19,19, 0, - 20,17,20, 0, 0, 0, 0, 0, 0, 0, 0,19,18,17,19,18, - 0, 0,20, 0,20,19,19,20,19,17,17,19,19,17, 0, 0, - 0, 0, 0,20, 0, 0,18,19,17,16,16,15, 0, 0, 0, 0, - 0,20,20, 0, 0,20,18,16,14,14, 0, 0, 0,17,16,15, - 16, 0,20, 0,18,18,15,16, 0, 0, 0,16,16,15,15,17, - 0,19, 0, 0,18,16,18, 9, + 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, + 17,18,17,18,18,18,18,18,15,15,14,17,18,18,18,18, + 18,18,18,18,18,18,18,18,18,18,18,17,18,18,18,16, + 16,15,13,13,13,13,18,18,18,18,18,18,18,18,18,18, + 18,18,18,17,17,17,16,15,14,13,13,13,14,13,12,13, + 15,18,17,18,18,18,18,18,18,18,18,18,18,18,18,16, + 18,13,12,12,13,15,15,14,12,13,17,16,18,18,18,18, + 18,18,18,18,18,18,16,18,18,17,16,13,12,13,14,14, + 13,13,13,13,18,15,18,18,18,18,18,18,18,18,17,16, + 18,18,16,17,14,11,12,13,14,14,14,13,13,13,14,15, + 15,15,16,18,18,18,18,17,18,17,17,15,18,15,13,12, + 12,12,12,13,12,12,12,11,13,13,14,15,14,18,18,18, + 18,18,17,16,18,15,14,12,11,12,12,12,12,12,12,12, + 11,10,11,11,13,15,13,18,18,18,18,18,17,17,16,15, + 15,13,12,12,16,14,14,14,12,11,10,10,10,10,13,14, + 13,18,18,18,18,18,17,17,16,17,15,16,12,13,13,13, + 15,14,12,10, 9,10,11,11,14,13,12,18,18,18,17,18, + 17,16,16,16,16,15,14,14,12,11,11,11,10, 9, 9,11, + 11,11,12,11,12,18,18,18,18,17,16,18,15,17,15,13, + 11,11,10,11,10,10, 9, 9, 8,10, 9,11,11,12,13,18, + 17,18,18,16,18,18,16,15,13,12,10,11,10,10,10, 9, + 8, 8, 7, 8, 9,10,12,12,14,17,18,18,18,18,17,18, + 16,14,12,11, 9, 9,10,10, 9, 8, 7, 6, 6, 7, 8,10, + 11,12,14,18,18,18,18,18,18,16,15,12,11,10,10,10, + 10, 8, 7, 6, 5, 4, 4, 6, 7, 9,11,11,13,18,18,18, + 18,16,15,14,13,12,11,11,11,11,10, 9, 8, 7, 5, 4, + 3, 4, 6, 8,10,10,13,17,18,17,18,13,12,11,12,12, + 12,12,12,12,11, 9, 9, 8, 7, 5, 4, 5, 6, 8,10,11, + 16,18,18,18,15,13,12,11,11,10,10,10,11,12,10, 9, + 9, 9, 8, 6, 6, 6, 7, 9,10,12,16,17,18,18,15,13, + 13,11,11,10,10,10,12,13,13,12,11,10, 9, 8, 8, 8, + 9,10,12,14,18,18,18,18,16,14,12,12,12,11,11,11, + 14,15,14,12,12,12,11,10,10, 9, 9,12,14,16,15,16, + 16,18,14,14,14,13,13,12,12,12,14,14,14,13,13,12, + 12,11,11,10,11,12,15,18,16,15,14,18,15,14,16,14, + 14,14,14,12,11,10, 9, 8, 8, 8, 8, 8, 8,10,12,15, + 15,16,16,16,16,17,17,16,17,17,16,14,14,13,12,10, + 9,10, 9, 9, 9,10,14,16,15,16,13,17,16,16,18,18, + 18,18,18,18,17,16,18,15,14,13,12,13,13,15,18,18, + 18,17,16,16,18,17,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,17, + 17,18,18,18, }; static long _vq_pigeonmap_lsp30_0[] = { 0, 0, 0, 0, 0, 0, 1, 1, - 2, 2, 3, 3, 3, 3, 4, 4, - 4, 4, 5, 5, 5, 5, 5, 5, - 5, 6, 6, 6, 6, 6, + 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[] = { - 983, 1178, 1179, 19, 32, 984, 408, 59, - 46, 213, 789, 594, 33, 409, 214, 985, - 1180, 790, 410, 605, 20, 34, 47, 48, - 61, 215, 216, 411, 595, 986, 606, 230, - 412, 607, 801, 802, 803, 998, 62, 21, - 35, 426, 608, 804, 999, 662, 844, 845, - 858, 871, 1000, 1040, 1053, 1195, 663, 1387, - 1054, 1430, 1624, 1638, 1652, 1390, 1444, 1583, - 1597, 1611, 1263, 49, 63, 77, 217, 231, - 245, 299, 650, 259, 427, 664, 677, 846, - 859, 495, 678, 873, 1041, 860, 1055, 691, - 19, 20, 32, 33, 34, 21, 48, 35, - 47, 22, 49, 36, 594, 789, 595, 400, - 46, 61, 62, 63, 790, 791, 215, 596, - 216, 217, 230, 50, 77, 231, 984, 986, - 213, 214, 410, 411, 412, 401, 413, 792, - 426, 608, 23, 218, 245, 427, 609, 409, - 987, 606, 607, 597, 988, 232, 414, 623, - 1182, 804, 805, 37, 24, 38, 64, 598, - 219, 78, 79, 233, 793, 794, 415, 246, - 610, 220, 247, 611, 989, 990, 442, 624, - 234, 1185, 806, 807, 22, 23, 36, 37, - 50, 401, 597, 24, 38, 598, 207, 403, - 599, 221, 795, 600, 220, 234, 79, 93, - 613, 796, 991, 612, 107, 458, 640, 263, - 793, 794, 247, 809, 989, 990, 219, 1187, - 233, 415, 808, 277, 459, 641, 823, 992, - 1005, 611, 654, 836, 1004, 655, 837, 1186, - 807, 1019, 1188, 1018, 473, 261, 275, 109, - 121, 289, 290, 291, 457, 471, 485, 487, - 614, 669, 810, 851, 1033, 667, 668, 850, - 486, 446, 683, 865, 207, 403, 599, 795, - 221, 600, 796, 991, 992, 614, 1188, 109, - 263, 264, 446, 810, 613, 277, 459, 278, - 460, 642, 1006, 809, 641, 123, 291, 473, - 823, 655, 837, 474, 656, 1384, 292, 1005, - 1019, 1202, 1385, 1201, 488, 852, 1034, 265, - 487, 669, 306, 684, 866, 839, 1048, 1203, - 1230, 851, 1033, 1398, 880, 1062, 1244, 1412, - 1580, 1215, 1581, 1229, 1426, 1258, 983, 1178, - 1179, 32, 408, 19, 59, 46, 213, 984, - 409, 33, 214, 605, 410, 801, 1180, 1375, - 1376, 1387, 606, 789, 985, 594, 790, 986, - 1181, 1182, 802, 411, 607, 998, 1377, 1571, - 803, 215, 595, 791, 987, 1378, 216, 412, - 608, 999, 1183, 804, 230, 426, 1000, 1195, - 844, 1014, 1196, 1209, 1572, 1573, 1574, 1583, - 1768, 1390, 1597, 1585, 1598, 1769, 1611, 1430, - 1779, 1770, 1599, 1780, 1612, 20, 21, 34, - 47, 48, 61, 62, 35, 49, 22, 63, - 36, 50, 77, 64, 215, 216, 230, 412, - 217, 231, 413, 23, 218, 245, 426, 427, - 37, 78, 232, 259, 414, 411, 608, 609, - 623, 246, 273, 455, 610, 804, 805, 637, - 650, 662, 663, 845, 1000, 1014, 819, 260, - 442, 469, 624, 651, 806, 33, 46, 607, - 803, 844, 664, 677, 846, 858, 859, 871, - 1028, 1040, 1041, 999, 299, 300, 495, 287, - 678, 873, 1054, 860, 496, 691, 1042, 1055, - 314, 692, 887, 22, 23, 36, 50, 64, - 37, 24, 38, 78, 79, 92, 219, 93, - 233, 220, 77, 218, 232, 414, 246, 260, - 415, 247, 442, 234, 261, 245, 259, 610, - 611, 273, 624, 274, 456, 275, 457, 612, - 806, 638, 807, 639, 820, 470, 652, 471, - 808, 107, 106, 288, 289, 287, 484, 458, - 485, 640, 667, 290, 654, 681, 836, 834, - 666, 835, 849, 863, 1004, 1018, 848, 680, - 1002, 1003, 1016, 1017, 1031, 1045, 1200, 1198, - 1030, 1199, 1212, 862, 1044, 1213, 35, 48, - 49, 62, 63, 77, 36, 50, 64, 78, - 92, 230, 245, 259, 217, 231, 413, 426, - 427, 218, 232, 37, 246, 273, 414, 455, - 637, 260, 287, 442, 609, 623, 219, 469, - 610, 624, 650, 663, 651, 233, 274, 456, - 483, 638, 664, 677, 846, 662, 805, 819, - 845, 859, 1014, 1028, 833, 665, 820, 299, - 678, 860, 873, 1042, 847, 288, 470, 652, - 679, 834, 38, 79, 93, 107, 220, 234, - 121, 275, 221, 290, 458, 640, 109, 263, - 613, 277, 459, 641, 289, 486, 247, 261, - 457, 612, 471, 291, 303, 485, 654, 668, - 836, 123, 473, 655, 487, 614, 667, 304, - 264, 305, 446, 669, 808, 850, 809, 823, - 683, 810, 851, 500, 864, 278, 460, 501, - 642, 865, 878, 1005, 837, 879, 1006, 656, - 639, 835, 849, 1004, 1018, 1200, 1032, 1019, - 1201, 1033, 1047, 1046, 1214, 1228, 1215, 1229, - 1060, 1242, 1061, 1243, 1202, 109, 123, 277, - 264, 278, 291, 446, 460, 614, 642, 810, - 292, 474, 656, 265, 488, 306, 473, 684, - 487, 669, 852, 866, 839, 880, 1048, 1062, - 1006, 1034, 1230, 1203, 1244, 1202, 1076, 1258, - 698, 867, 1272, 894, 881, 1245, 320, 516, - 1090, 712, 908, 503, 699, 1077, 334, 530, - 1104, 726, 895, 321, 517, 1286, 1273, 1300, - 922, 1091, 713, 1412, 1426, 1440, 1454, 1399, - 1413, 1468, 1118, 1287, 909, 1441, 1482, 1469, - 1496, 1314, 1105, 49, 63, 77, 50, 64, - 78, 92, 259, 106, 245, 273, 299, 119, - 287, 246, 300, 455, 469, 495, 496, 232, - 79, 93, 260, 274, 637, 651, 664, 677, - 678, 483, 107, 288, 231, 427, 650, 218, - 442, 456, 623, 663, 665, 301, 470, 484, - 314, 497, 261, 275, 289, 302, 315, 457, - 471, 498, 511, 666, 680, 693, 846, 233, - 247, 638, 652, 860, 679, 692, 510, 691, - 861, 875, 862, 876, 888, 328, 889, 819, - 833, 847, 859, 873, 1042, 1056, 848, 706, - 316, 694, 707, 78, 79, 92, 106, 93, - 107, 121, 135, 119, 260, 274, 261, 275, - 289, 458, 288, 290, 302, 303, 486, 233, - 247, 456, 470, 457, 234, 471, 485, 640, - 484, 654, 301, 315, 680, 499, 668, 498, - 316, 304, 317, 652, 666, 639, 667, 681, - 836, 694, 512, 695, 500, 513, 850, 497, - 862, 876, 863, 877, 864, 878, 329, 511, - 890, 330, 891, 849, 708, 318, 696, 709, - 107, 121, 135, 221, 290, 458, 109, 263, - 304, 486, 613, 668, 277, 459, 123, 303, - 500, 641, 264, 278, 292, 305, 319, 460, - 474, 275, 289, 485, 640, 654, 809, 291, - 446, 487, 317, 499, 501, 318, 488, 515, - 656, 473, 614, 642, 683, 655, 696, 331, - 514, 697, 306, 684, 669, 332, 333, 864, - 878, 865, 879, 892, 893, 513, 710, 528, - 711, 529, 866, 880, 823, 837, 851, 852, - 906, 907, 698, 109, 123, 264, 278, 446, - 460, 292, 474, 642, 488, 656, 265, 306, - 684, 305, 125, 320, 319, 698, 516, 334, - 839, 867, 712, 894, 503, 881, 530, 866, - 880, 1245, 699, 1077, 726, 908, 321, 852, - 1090, 333, 347, 348, 517, 544, 713, 531, - 895, 727, 909, 922, 740, 1105, 936, 1104, - 1091, 1118, 1132, 923, 545, 1286, 1300, 1273, - 1287, 1314, 1301, 1328, 1119, 741, 1315, 1482, - 1496, 1469, 1483, 1510, 1497, 1524, 1133, 32, - 46, 59, 213, 408, 409, 33, 47, 61, - 214, 410, 48, 62, 215, 216, 230, 426, - 662, 844, 871, 605, 411, 606, 412, 607, - 663, 858, 1053, 49, 63, 77, 299, 650, - 677, 845, 859, 1040, 1054, 801, 802, 300, - 495, 664, 846, 873, 1041, 803, 998, 1263, - 691, 608, 999, 1430, 1444, 1055, 1289, 1387, - 1638, 1652, 1583, 1597, 1611, 1625, 1680, 1264, - 1624, 1639, 1862, 1082, 496, 534, 887, 1195, - 1390, 1598, 1612, 678, 1431, 1458, 1512, 1694, - 1303, 692, 730, 1278, 1265, 1653, 1445, 35, - 48, 49, 61, 62, 63, 77, 230, 231, - 299, 426, 650, 662, 663, 677, 844, 845, - 858, 859, 871, 1040, 1053, 245, 259, 495, - 664, 300, 846, 873, 1054, 496, 691, 119, - 314, 510, 534, 692, 887, 1041, 340, 535, - 718, 730, 888, 678, 1055, 1263, 1082, 706, - 1278, 1264, 1289, 1303, 536, 731, 926, 1109, - 803, 999, 860, 1028, 1042, 1223, 1056, 1265, - 1445, 1446, 1458, 1459, 1070, 1084, 1279, 1097, - 1292, 1473, 1121, 1266, 1280, 1304, 1474, 915, - 1305, 63, 77, 245, 259, 273, 299, 300, - 495, 663, 664, 677, 64, 78, 92, 119, - 287, 455, 469, 496, 678, 314, 691, 301, - 483, 692, 510, 340, 534, 315, 328, 497, - 706, 887, 535, 718, 524, 536, 888, 902, - 731, 1082, 730, 1097, 342, 915, 1070, 1084, - 1278, 1279, 1109, 1292, 1098, 538, 733, 916, - 1111, 1266, 1280, 1293, 1294, 1123, 1112, 1124, - 1307, 1304, 1305, 1474, 1475, 1319, 930, 1125, - 1308, 1320, 1476, 1488, 1489, 1490, 1502, 1126, - 1321, 1503, 78, 92, 106, 119, 273, 287, - 299, 300, 93, 107, 121, 302, 315, 288, - 289, 301, 316, 328, 329, 497, 498, 511, - 524, 148, 314, 340, 342, 510, 135, 525, - 496, 275, 484, 693, 303, 485, 694, 707, - 512, 706, 483, 692, 274, 470, 680, 538, - 330, 343, 708, 721, 317, 526, 539, 889, - 890, 902, 903, 499, 904, 536, 733, 916, - 917, 344, 722, 735, 107, 121, 135, 148, - 304, 317, 318, 331, 109, 123, 332, 344, - 345, 500, 513, 514, 527, 289, 302, 498, - 303, 316, 696, 330, 709, 710, 315, 329, - 485, 694, 499, 290, 512, 526, 540, 722, - 528, 541, 723, 695, 486, 708, 343, 891, - 892, 525, 904, 905, 906, 539, 918, 919, - 736, 346, 724, 737, 1087, 1088, 1100, 1101, - 1102, 1114, 932, 1115, 542, 920, 933, 1283, - 1284, 1296, 1297, 1298, 1310, 1128, 1311, 738, - 1116, 1129, 1324, 934, 1312, 1325, 1479, 1480, - 1492, 1493, 1494, 1506, 1507, 1130, 135, 304, - 109, 123, 305, 319, 264, 278, 292, 306, - 333, 460, 474, 488, 501, 515, 656, 684, - 317, 318, 331, 500, 697, 711, 529, 291, - 332, 514, 527, 320, 347, 698, 345, 528, - 346, 725, 516, 543, 513, 696, 277, 487, - 710, 542, 473, 683, 724, 334, 712, 669, - 906, 893, 907, 894, 920, 921, 541, 738, - 739, 530, 908, 879, 880, 934, 935, 726, - 46, 47, 59, 61, 213, 214, 215, 408, - 409, 410, 605, 606, 662, 801, 802, 844, - 871, 1053, 48, 62, 216, 230, 411, 426, - 607, 663, 803, 845, 858, 998, 1040, 1054, - 1263, 1430, 299, 677, 859, 495, 650, 664, - 873, 1289, 300, 691, 496, 1444, 1680, 534, - 314, 887, 1512, 1055, 1082, 1264, 730, 535, - 340, 1458, 1694, 1303, 718, 1330, 1485, 1121, - 536, 731, 926, 328, 342, 1387, 1611, 1652, - 733, 1625, 1123, 524, 538, 1124, 1639, 1278, - 1317, 1318, 1319, 355, 746, 915, 1125, 1320, - 1331, 1431, 1653, 1862, 1526, 1109, 551, 916, - 930, 942, 1111, 1137, 1321, 1332, 1304, 1307, - 1514, 1515, 1513, 1305, 1333, 119, 299, 300, - 314, 495, 496, 534, 691, 287, 301, 340, - 510, 535, 692, 718, 887, 730, 328, 536, - 706, 731, 524, 342, 329, 355, 538, 733, - 343, 551, 746, 1124, 356, 926, 1123, 930, - 1125, 915, 916, 1319, 1320, 942, 1137, 1321, - 1331, 1332, 747, 1111, 1126, 552, 943, 1138, - 315, 511, 148, 525, 539, 721, 748, 357, - 944, 1139, 553, 1140, 1121, 1289, 1303, 1330, - 1317, 1318, 1526, 1540, 1333, 1358, 1527, 1513, - 1514, 1722, 1345, 1334, 1346, 1109, 1528, 370, - 1152, 1335, 1347, 957, 1541, 1305, 106, 119, - 301, 302, 314, 315, 328, 329, 340, 342, - 497, 510, 511, 524, 536, 107, 121, 148, - 316, 498, 525, 538, 707, 135, 343, 355, - 330, 344, 331, 356, 357, 526, 527, 539, - 540, 552, 722, 735, 736, 345, 553, 551, - 748, 358, 541, 749, 370, 554, 512, 721, - 317, 513, 930, 931, 932, 944, 566, 945, - 371, 750, 917, 918, 733, 747, 359, 567, - 946, 1126, 1127, 746, 723, 1128, 737, 943, - 1140, 1141, 555, 763, 1142, 135, 148, 304, - 317, 318, 331, 332, 344, 345, 500, 513, - 514, 527, 540, 109, 123, 528, 541, 710, - 723, 330, 526, 346, 357, 736, 358, 542, - 724, 737, 359, 553, 554, 738, 555, 750, - 178, 360, 751, 371, 556, 709, 343, 722, - 372, 539, 932, 933, 934, 567, 946, 568, - 947, 752, 919, 920, 569, 948, 1128, 1129, - 749, 1130, 1142, 1143, 763, 764, 765, 1144, - 1115, 1116, 1324, 1325, 945, 1326, 1338, 1339, - 959, 960, 961, 1340, 1311, 1312, 1141, 1155, - 1156, 570, 1157, 109, 123, 305, 318, 332, - 345, 346, 514, 528, 541, 319, 333, 501, - 515, 542, 697, 711, 529, 306, 347, 320, - 516, 543, 698, 725, 334, 712, 724, 738, - 739, 530, 359, 360, 178, 348, 361, 726, - 555, 556, 934, 557, 935, 544, 751, 740, - 753, 192, 193, 362, 375, 558, 936, 949, - 752, 1132, 570, 1145, 907, 908, 948, 569, - 921, 1130, 1131, 922, 1144, 765, 766, 754, - 1103, 1326, 1104, 1327, 947, 1328, 961, 1340, - 767, 1341, 125, 320, 334, 347, 516, 530, - 712, 348, 321, 503, 517, 544, 699, 713, - 531, 726, 740, 362, 545, 727, 909, 361, - 923, 558, 936, 741, 754, 375, 557, 193, - 951, 1133, 1147, 1329, 1132, 1342, 1160, 922, - 1105, 1119, 1328, 1525, 1538, 1118, 1356, 1343, - 1314, 1301, 1315, 1524, 1539, 1510, 1497, 1511, - 1734, 965, 1720, 1721, 1552, 1161, 1735, 1706, - 1707, 1357, 1916, 1930, 1748, 1931, 1902, 1903, - 1553, 328, 340, 342, 355, 356, 524, 536, - 538, 551, 733, 746, 930, 552, 747, 942, - 357, 748, 943, 370, 944, 553, 566, 1138, - 1139, 1140, 957, 1152, 1334, 1335, 1345, 1346, - 1347, 1137, 1333, 1336, 1153, 1348, 958, 749, - 371, 567, 763, 1154, 945, 1349, 959, 1350, - 731, 915, 916, 1111, 1112, 1124, 1125, 1126, - 1320, 1321, 343, 539, 721, 735, 917, 1322, - 1123, 1307, 1308, 931, 1113, 1319, 1332, 1516, - 1517, 1127, 1309, 1518, 1530, 1531, 1141, 1532, - 1503, 1504, 1323, 1337, 344, 355, 356, 357, - 551, 552, 553, 748, 370, 345, 358, 554, - 749, 371, 566, 750, 359, 567, 372, 555, - 763, 568, 178, 764, 945, 946, 958, 959, - 569, 960, 1155, 765, 1156, 1141, 751, 1142, - 957, 1154, 1351, 961, 1169, 1352, 1337, 947, - 1338, 1153, 1350, 1364, 974, 1157, 1365, 1143, - 1349, 1362, 1547, 1353, 1548, 1533, 1339, 1534, - 1546, 1170, 1545, 1560, 1366, 1561, 1729, 1535, - 1730, 1742, 1743, 1744, 1549, 1741, 1756, 1562, - 1757, 1925, 1731, 1926, 1938, 1939, 1754, 1940, - 1745, 1937, 1952, 1758, 1953, 346, 358, 359, - 371, 554, 555, 750, 372, 178, 360, 556, - 751, 567, 568, 192, 764, 569, 570, 765, - 752, 961, 766, 960, 947, 948, 962, 1144, - 1156, 1157, 974, 1158, 1143, 1170, 1353, 1171, - 1354, 1339, 1340, 1352, 1169, 1367, 1366, 1550, - 1535, 1536, 1548, 1549, 1365, 1562, 1563, 1731, - 1732, 1744, 1745, 1561, 1746, 1758, 1564, 1759, - 1927, 1928, 1940, 1941, 1757, 1942, 1954, 1760, - 1955, 178, 192, 361, 557, 348, 753, 193, - 362, 375, 544, 558, 740, 936, 949, 570, - 754, 569, 766, 767, 1160, 360, 556, 752, - 765, 948, 962, 1159, 1342, 1355, 1356, 1369, - 961, 1144, 1145, 1158, 1538, 1551, 1171, 1354, - 1341, 1367, 1550, 1537, 1563, 1746, 1564, 1552, - 1734, 1733, 1747, 1565, 1759, 1174, 1748, 1929, - 1942, 1760, 1761, 1370, 1930, 1943, 1944, 1956, - 1957, 1566, 193, 362, 375, 558, 754, 545, - 741, 951, 1133, 1147, 1329, 1160, 1342, 1343, - 1356, 965, 1161, 1174, 767, 1159, 1538, 1355, - 1357, 1539, 1552, 1370, 783, 1553, 1175, 1734, - 1748, 1566, 1371, 1735, 1749, 1762, 1567, 1930, - 1931, 1944, 1945, 1958, 1763, 983, 1178, 1179, - 984, 789, 408, 213, 409, 594, 790, 985, - 1180, 214, 605, 410, 215, 606, 801, 1181, - 986, 411, 802, 595, 1182, 216, 607, 791, - 412, 230, 426, 608, 803, 987, 998, 804, - 999, 662, 844, 1000, 1195, 858, 871, 1040, - 1053, 1209, 845, 1624, 1638, 1387, 1390, 1430, - 1652, 1583, 1597, 1611, 1054, 1444, 1598, 1625, - 1431, 1585, 1612, 1639, 1680, 1263, 1458, 1264, - 1779, 1862, 1626, 1289, 1445, 1459, 1807, 1653, - 1640, 1375, 1376, 1571, 1377, 1572, 1599, 1780, - 1613, 1627, 1808, 1821, 594, 789, 790, 595, - 791, 986, 400, 596, 214, 985, 1182, 216, - 792, 987, 1183, 215, 410, 411, 606, 412, - 607, 217, 230, 608, 988, 401, 413, 597, - 1184, 802, 803, 426, 804, 231, 609, 218, - 427, 793, 805, 1000, 232, 245, 414, 610, - 623, 819, 1001, 259, 637, 1181, 998, 999, - 989, 1014, 1196, 806, 1015, 1197, 455, 624, - 833, 1378, 1379, 1380, 1195, 1185, 1209, 1210, - 1002, 1211, 650, 1028, 651, 820, 1029, 1377, - 845, 1223, 1392, 1198, 1393, 846, 1224, 847, - 1016, 1225, 400, 596, 792, 401, 597, 793, - 598, 794, 989, 217, 988, 1184, 218, 1185, - 231, 413, 609, 414, 219, 232, 610, 990, - 415, 1186, 245, 427, 623, 805, 806, 233, - 246, 611, 624, 220, 807, 442, 820, 1002, - 234, 247, 612, 1003, 260, 638, 261, 639, - 819, 1001, 1016, 1198, 808, 1017, 1199, 456, - 834, 457, 835, 1380, 1381, 1382, 637, 1015, - 1197, 1212, 1004, 1213, 652, 1030, 1031, 833, - 1211, 1394, 1200, 1395, 848, 1226, 849, 1018, - 1227, 598, 794, 990, 1186, 207, 403, 599, - 795, 991, 1187, 221, 600, 796, 219, 220, - 233, 415, 611, 807, 247, 234, 612, 613, - 992, 808, 1004, 640, 809, 823, 1005, 1188, - 458, 654, 836, 1018, 1032, 1200, 1214, 263, - 277, 459, 473, 641, 655, 837, 1019, 1033, - 1201, 1215, 850, 291, 614, 669, 851, 1003, - 1382, 1383, 1384, 290, 668, 1046, 1228, 487, - 810, 865, 1047, 1229, 1199, 639, 1017, 1396, - 1397, 486, 864, 1242, 1006, 1243, 1578, 1579, - 835, 1213, 1410, 1411, 1580, 1060, 1424, 683, - 1061, 1202, 1425, 215, 216, 230, 410, 411, - 412, 606, 607, 608, 802, 803, 998, 426, - 804, 999, 662, 844, 1000, 1195, 845, 858, - 1014, 1040, 1053, 1196, 1209, 217, 231, 413, - 427, 609, 650, 663, 805, 846, 859, 871, - 1028, 1041, 1054, 1210, 1223, 245, 623, 664, - 677, 678, 860, 873, 1042, 1055, 1224, 1390, - 1392, 1405, 1263, 1056, 1238, 1264, 1418, 1406, - 1419, 1432, 1070, 1252, 1265, 1420, 1433, 217, - 230, 231, 412, 413, 426, 608, 609, 804, - 1000, 245, 427, 623, 650, 805, 218, 232, - 259, 414, 455, 610, 637, 819, 1001, 246, - 273, 442, 624, 651, 806, 833, 662, 663, - 664, 844, 845, 846, 858, 859, 1014, 1028, - 1041, 1196, 1210, 469, 1015, 260, 287, 456, - 638, 665, 820, 847, 1002, 999, 1040, 1195, - 1209, 1223, 1197, 1029, 860, 1042, 1211, 483, - 652, 834, 861, 1016, 1043, 1198, 231, 245, - 259, 427, 609, 623, 637, 650, 663, 664, - 677, 805, 819, 845, 846, 859, 1028, 273, - 455, 469, 651, 678, 833, 860, 1015, 232, - 246, 260, 287, 442, 483, 610, 624, 638, - 665, 806, 820, 847, 1029, 274, 456, 470, - 652, 679, 834, 861, 1016, 299, 873, 1042, - 300, 1043, 288, 301, 484, 666, 848, 875, - 1030, 1001, 1041, 1055, 1224, 1056, 1211, 1002, - 1225, 1057, 1212, 495, 1238, 496, 1070, 1239, - 497, 680, 862, 1044, 1071, 1226, 233, 247, - 260, 261, 274, 288, 442, 456, 470, 484, - 611, 638, 639, 652, 666, 807, 834, 848, - 1030, 275, 457, 471, 680, 835, 862, 1017, - 234, 289, 485, 612, 640, 667, 808, 849, - 1031, 458, 654, 681, 836, 863, 1018, 1044, - 302, 876, 1045, 290, 303, 486, 668, 850, - 877, 1032, 1003, 1226, 1058, 1213, 1004, 1227, - 1059, 1214, 1240, 498, 1072, 1241, 499, 864, - 1046, 1073, 1228, 415, 624, 806, 820, 1002, - 1016, 1198, 1212, 1199, 1200, 1394, 1395, 1408, - 1254, 1409, 1255, 1396, 290, 458, 486, 640, - 654, 668, 836, 850, 1032, 221, 613, 809, - 864, 878, 1046, 1060, 263, 277, 304, 459, - 500, 641, 655, 823, 837, 1005, 1019, 1074, - 1201, 473, 291, 487, 669, 851, 1033, 614, - 683, 810, 865, 879, 1047, 1061, 264, 305, - 446, 460, 642, 1006, 696, 501, 1075, 278, - 474, 656, 697, 852, 1034, 1228, 1242, 1256, - 1215, 1229, 1243, 1257, 1202, 1270, 892, 1271, - 292, 893, 1048, 1230, 808, 1004, 1018, 1200, - 1214, 1396, 1410, 1424, 1397, 1411, 1425, 1438, - 1439, 1398, 650, 662, 663, 664, 677, 845, - 846, 858, 859, 871, 1041, 1054, 299, 495, - 678, 860, 873, 1042, 1055, 300, 496, 691, - 1056, 692, 887, 1070, 1082, 314, 510, 888, - 1028, 1238, 1264, 1252, 1265, 1266, 1278, 706, - 1084, 1279, 844, 1040, 1053, 1223, 1263, 1224, - 1432, 1445, 1446, 1459, 1289, 1458, 1460, 1431, - 1444, 1473, 1485, 718, 902, 1097, 1280, 1292, - 1433, 1434, 1447, 1448, 1461, 1462, 1474, 1098, - 1293, 1475, 259, 273, 287, 299, 300, 455, - 469, 495, 496, 637, 651, 664, 665, 677, - 678, 691, 833, 847, 860, 873, 1056, 483, - 679, 692, 861, 1043, 260, 274, 288, 301, - 456, 470, 497, 638, 652, 666, 834, 848, - 875, 1057, 484, 680, 693, 862, 1044, 887, - 1070, 314, 888, 1071, 302, 315, 498, 876, - 889, 1058, 510, 706, 511, 694, 707, 1072, - 1084, 328, 902, 1085, 316, 329, 512, 890, - 903, 1029, 1252, 1239, 1030, 1253, 1240, 1266, - 1267, 1254, 1268, 1097, 1280, 524, 1098, 1281, - 525, 708, 1086, 1099, 261, 275, 288, 289, - 302, 457, 470, 471, 484, 498, 639, 666, - 667, 680, 835, 849, 862, 876, 1058, 485, - 681, 694, 863, 1045, 290, 303, 458, 499, - 640, 654, 668, 836, 850, 877, 1059, 486, - 695, 864, 1046, 1072, 316, 890, 1073, 304, - 317, 500, 878, 891, 1060, 512, 708, 513, - 696, 709, 1074, 1086, 330, 904, 1087, 318, - 331, 514, 892, 905, 1031, 1254, 1241, 1032, - 1255, 1242, 1268, 1269, 1256, 1270, 1282, 526, - 1100, 1283, 527, 710, 1088, 1101, 290, 304, - 486, 500, 668, 864, 878, 1060, 263, 277, - 459, 641, 655, 696, 823, 837, 892, 1074, - 291, 318, 473, 487, 669, 851, 865, 1019, - 1033, 1047, 683, 305, 501, 879, 1061, 264, - 278, 446, 460, 642, 656, 697, 893, 1075, - 292, 319, 474, 488, 852, 866, 1034, 1048, - 514, 1088, 710, 515, 1089, 684, 711, 880, - 1062, 906, 332, 907, 306, 333, 1076, 528, - 1102, 724, 529, 1103, 698, 725, 894, 1256, - 1270, 1215, 1229, 1243, 1257, 1271, 1230, 1244, - 1284, 1285, 1258, 1272, 1298, 920, 1299, 320, - 921, 1090, 605, 801, 1387, 1583, 1597, 1624, - 1638, 1652, 408, 409, 410, 606, 662, 802, - 844, 858, 871, 998, 1040, 1053, 1430, 1444, - 1598, 1611, 1612, 1625, 1639, 1680, 1862, 1054, - 1263, 1431, 1458, 299, 495, 663, 677, 845, - 859, 873, 1041, 1055, 1082, 1264, 1289, 1626, - 1445, 1459, 691, 887, 1278, 1512, 1653, 1694, - 534, 730, 1303, 1485, 1585, 1779, 1807, 1876, - 1121, 1304, 1473, 926, 1109, 1640, 535, 718, - 1292, 1305, 1317, 1499, 1821, 1667, 301, 314, - 315, 328, 497, 510, 524, 693, 706, 889, - 902, 511, 707, 1085, 302, 316, 329, 498, - 525, 694, 890, 903, 512, 708, 721, 1086, - 915, 1098, 342, 916, 1099, 330, 343, 526, - 904, 917, 538, 733, 539, 722, 735, 1100, - 1112, 930, 1113, 344, 540, 918, 931, 1097, - 1281, 1282, 1111, 1294, 1295, 1296, 1125, 1308, - 1126, 1309, 736, 1114, 1127, 1293, 1307, 1321, - 1322, 932, 1310, 1323, 1477, 1478, 1490, 1491, - 1492, 1504, 1505, 1128, 318, 332, 514, 528, - 710, 906, 305, 501, 683, 697, 724, 879, - 920, 1102, 319, 346, 515, 893, 1075, 1089, - 711, 333, 529, 907, 306, 684, 698, 725, - 880, 921, 1103, 320, 347, 516, 894, 1076, - 1090, 542, 1116, 738, 543, 1117, 712, 739, - 908, 934, 935, 334, 530, 1104, 1130, 1131, - 726, 922, 1298, 1271, 1285, 1299, 1272, 1286, - 1312, 1313, 1300, 1326, 1327, 348, 1118, 544, - 1314, 1494, 1467, 1481, 1495, 1468, 1482, 1508, - 1509, 1496, 1522, 1523, 740, 871, 1289, 1512, - 1680, 1694, 1263, 1458, 1303, 1485, 534, 730, - 926, 1121, 1304, 1330, 535, 731, 1708, 1317, - 1499, 340, 536, 718, 1109, 1123, 1318, 1124, - 1319, 1305, 1513, 733, 915, 1111, 1125, 1320, - 1331, 1514, 1526, 1332, 1515, 746, 1137, 355, - 551, 942, 1138, 1333, 1527, 1722, 1500, 1540, - 1709, 342, 538, 916, 1307, 930, 1112, 1126, - 1321, 747, 356, 552, 748, 943, 1139, 1334, - 524, 1308, 1322, 1516, 944, 1335, 1528, 1501, - 1918, 1345, 1529, 1140, 1346, 1530, 1502, 1503, - 1517, 1336, 1347, 1531, 329, 342, 343, 525, - 538, 721, 733, 917, 930, 539, 735, 1113, - 330, 344, 526, 722, 918, 931, 540, 736, - 1114, 355, 356, 551, 746, 1125, 1126, 1322, - 357, 552, 748, 932, 1127, 1323, 747, 942, - 943, 944, 553, 749, 1128, 345, 358, 541, - 723, 737, 919, 945, 1324, 1140, 554, 750, - 933, 1141, 370, 1139, 1336, 371, 566, 946, - 1337, 957, 958, 567, 763, 1142, 359, 372, - 555, 751, 959, 1338, 1309, 1310, 1321, 1138, - 1115, 1129, 1335, 1152, 1153, 1154, 568, 947, - 1155, 346, 542, 738, 934, 333, 360, 515, - 529, 711, 725, 907, 921, 1103, 1130, 1326, - 347, 543, 1117, 739, 935, 334, 361, 516, - 530, 712, 726, 908, 922, 1104, 1131, 1327, - 348, 544, 1118, 359, 555, 751, 556, 752, - 557, 753, 740, 936, 947, 948, 949, 1132, - 1144, 1145, 362, 1328, 1340, 570, 375, 1341, - 558, 754, 569, 765, 766, 961, 962, 767, - 1157, 1299, 1313, 1300, 1314, 1143, 1158, 1159, - 1342, 1522, 1523, 1339, 1524, 1536, 1537, 1353, - 1354, 1355, 1495, 1509, 1496, 1510, 1538, 1330, - 1526, 534, 535, 730, 731, 926, 1121, 1123, - 1317, 1318, 1331, 1513, 1514, 1540, 1722, 1319, - 1332, 746, 942, 1137, 1333, 1527, 355, 551, - 747, 1138, 1345, 1528, 943, 1139, 1334, 1358, - 1346, 1529, 1736, 1152, 1347, 1541, 1554, 957, - 1348, 1542, 1709, 1723, 1543, 1737, 1360, 1544, - 1738, 1724, 1555, 1739, 1932, 1933, 1556, 1919, - 1725, 1934, 1946, 1920, 2128, 1740, 1751, 1935, - 355, 551, 746, 747, 942, 943, 1137, 1138, - 1139, 1333, 1334, 356, 552, 748, 944, 1140, - 1335, 1345, 1346, 1529, 370, 566, 957, 1152, - 1336, 1347, 1530, 1153, 1348, 1542, 958, 1154, - 1349, 1531, 1543, 1350, 1360, 1544, 357, 553, - 749, 945, 371, 567, 763, 959, 1155, 1361, - 1362, 1141, 1545, 1351, 1546, 1541, 1555, 1556, - 1557, 1364, 410, 605, 606, 801, 802, 998, - 411, 607, 803, 999, 412, 426, 608, 662, - 804, 844, 1000, 1040, 1053, 1195, 1209, 1390, - 1387, 858, 871, 1196, 1430, 663, 845, 1041, - 1054, 1223, 1585, 1598, 859, 1263, 1418, 1431, - 1597, 1611, 1014, 1405, 1444, 1599, 1583, 1612, - 1625, 1210, 1392, 1432, 1445, 1587, 1600, 1613, - 1626, 1780, 1639, 1419, 1458, 1601, 1614, 1627, - 1640, 1795, 1055, 1264, 1433, 1446, 1459, 1653, - 1460, 1615, 1628, 1641, 1808, 1796, 1809, 1822, - 1447, 1629, 1642, 1655, 1810, 1823, 413, 427, - 609, 623, 650, 663, 804, 805, 845, 846, - 1000, 1001, 1014, 1028, 1041, 1196, 1209, 1210, - 1223, 245, 637, 664, 819, 833, 1015, 1042, - 1197, 1224, 259, 414, 455, 610, 624, 651, - 806, 847, 1002, 1029, 1211, 246, 442, 469, - 638, 665, 820, 834, 1016, 1043, 1198, 1225, - 677, 859, 860, 1055, 678, 1056, 1238, 273, - 861, 260, 456, 483, 652, 679, 848, 1030, - 1057, 1212, 1239, 1392, 1393, 873, 1406, 1252, - 1407, 875, 1044, 1226, 1253, 1394, 446, 614, - 642, 810, 1006, 1202, 264, 460, 656, 852, - 1034, 278, 292, 474, 488, 866, 1048, 1230, - 1244, 265, 684, 839, 880, 1062, 1076, 1203, - 1258, 1412, 1426, 306, 1272, 1398, 1440, 1399, - 1454, 1413, 867, 1245, 1595, 1594, 1608, 1622, - 1636, 1468, 1650, 1609, 1441, 1790, 1804, 1818, - 1832, 1664, 1791, 1623, 698, 894, 1090, 1286, - 881, 1077, 1273, 1482, 1637, 1469, 1846, 1860, - 1678, 1651, 455, 623, 637, 650, 651, 663, - 664, 677, 678, 819, 833, 846, 859, 860, - 873, 1001, 1015, 1028, 1029, 1041, 1042, 1055, - 1056, 1197, 1211, 1224, 1238, 273, 469, 665, - 847, 861, 1043, 1070, 1225, 1252, 287, 442, - 456, 483, 624, 638, 652, 679, 820, 834, - 875, 1002, 1016, 1030, 1057, 1198, 1212, 1239, - 274, 470, 666, 848, 862, 1044, 1071, 1226, - 1253, 495, 691, 1265, 496, 692, 1266, 288, - 484, 497, 680, 693, 876, 1058, 1240, 1267, - 1420, 1407, 1421, 1408, 887, 1434, 888, 1435, - 889, 1072, 1254, 1422, 288, 457, 470, 484, - 639, 652, 666, 680, 834, 835, 848, 862, - 876, 1003, 1017, 1030, 1031, 1044, 1058, 1199, - 1213, 1226, 1240, 275, 471, 667, 849, 863, - 1045, 1072, 1227, 1254, 289, 458, 485, 640, - 654, 681, 836, 877, 1004, 1018, 1032, 1059, - 1200, 1214, 1241, 668, 850, 864, 1046, 1073, - 1228, 1255, 498, 694, 1268, 290, 486, 499, - 695, 878, 1060, 1242, 1269, 1422, 1409, 1423, - 1410, 1436, 890, 1437, 891, 1074, 1256, 1424, - 290, 486, 654, 668, 836, 850, 864, 878, - 1032, 1046, 1060, 1228, 1242, 304, 500, 613, - 641, 809, 823, 1005, 1019, 1074, 1201, 1256, - 1270, 263, 277, 459, 473, 655, 696, 837, - 851, 1033, 1215, 1229, 669, 865, 1047, 291, - 487, 683, 879, 1061, 1243, 305, 446, 501, - 614, 642, 810, 1006, 1075, 1202, 1257, 1271, - 264, 278, 460, 474, 656, 697, 852, 1034, - 1230, 892, 1088, 893, 292, 488, 866, 1048, - 1089, 1244, 1424, 1438, 1452, 1397, 1411, 1425, - 1439, 1453, 1398, 1412, 1466, 1284, 1467, 684, - 1062, 1285, 1426, 300, 469, 483, 495, 496, - 651, 665, 678, 679, 691, 692, 847, 860, - 861, 887, 888, 1029, 1043, 1056, 1057, 1070, - 1225, 1239, 1252, 1265, 1266, 875, 1071, 1084, - 1253, 301, 470, 484, 497, 652, 666, 680, - 693, 848, 862, 889, 1030, 1044, 1058, 1226, - 1240, 1267, 876, 1072, 1085, 1254, 1279, 510, - 706, 1280, 302, 498, 511, 694, 707, 890, - 1268, 1281, 314, 902, 1097, 1098, 315, 903, - 1086, 1099, 1293, 524, 1294, 316, 512, 525, - 708, 721, 904, 1282, 1295, 1448, 1435, 1449, - 1436, 1462, 1463, 1450, 1464, 915, 1476, 916, - 1477, 917, 1100, 302, 471, 485, 498, 667, - 680, 681, 694, 849, 862, 863, 876, 890, - 1031, 1045, 1058, 1059, 1072, 1227, 1241, 1254, - 1268, 877, 1073, 1086, 1255, 303, 486, 499, - 654, 668, 695, 850, 864, 891, 1032, 1046, - 1060, 1228, 1242, 1269, 878, 1074, 1087, 1256, - 512, 708, 1282, 304, 500, 513, 696, 709, - 892, 1270, 1283, 316, 904, 1100, 317, 905, - 1088, 1101, 526, 722, 1296, 318, 514, 527, - 710, 723, 906, 1284, 1297, 1450, 1437, 1451, - 1438, 1464, 1465, 1452, 1466, 1478, 918, 1479, - 919, 1102, 304, 500, 696, 864, 878, 892, - 1060, 1074, 1256, 1270, 318, 459, 473, 514, - 641, 655, 669, 837, 851, 1019, 1033, 1047, - 1088, 1215, 1229, 1284, 277, 291, 487, 683, - 710, 865, 879, 1061, 1243, 1257, 1075, 305, - 501, 697, 893, 1271, 319, 460, 474, 515, - 642, 656, 852, 1034, 1048, 1089, 1230, 1285, - 278, 292, 488, 684, 711, 866, 880, 1062, - 1244, 1258, 906, 1102, 907, 306, 1076, 1103, - 1272, 332, 528, 1298, 724, 333, 529, 1299, - 698, 725, 894, 920, 1116, 921, 320, 516, - 1090, 1117, 1286, 1452, 1466, 1411, 1425, 1439, - 1453, 1467, 1412, 1426, 1440, 1480, 1481, 1454, - 1468, 1494, 1312, 1495, 712, 1313, 495, 691, - 887, 1082, 1264, 1265, 1278, 1289, 1303, 1473, - 496, 534, 692, 718, 888, 1070, 1084, 1109, - 1266, 1279, 1292, 1304, 1474, 730, 926, 1121, - 1485, 510, 535, 706, 731, 1097, 1280, 1293, - 1305, 1487, 1317, 340, 536, 915, 1111, 1123, - 1318, 1460, 1461, 1475, 1499, 1488, 1500, 1124, - 1307, 1319, 1501, 1668, 1669, 1489, 1513, 1320, - 1502, 1514, 1656, 1670, 1681, 1682, 1683, 1684, - 1696, 1503, 1515, 1697, 1671, 1695, 1685, 1709, - 1516, 1698, 1710, 1865, 1866, 1878, 1879, 1880, - 1892, 1699, 1711, 1893, 539, 721, 735, 917, - 930, 1113, 1125, 1126, 1309, 1321, 1322, 931, - 1127, 540, 722, 736, 918, 1114, 1310, 1323, - 932, 1128, 343, 355, 356, 551, 552, 746, - 747, 748, 942, 943, 1138, 1518, 344, 357, - 553, 749, 944, 1140, 1324, 1519, 1139, 1334, - 1335, 1336, 945, 1141, 358, 541, 554, 737, - 750, 933, 1115, 1129, 1311, 1337, 1520, 946, - 1142, 1325, 370, 566, 957, 1152, 1532, 371, - 567, 763, 958, 1154, 1338, 1533, 1153, 1348, - 1349, 1350, 959, 1155, 372, 555, 568, 751, - 764, 947, 1143, 1351, 1534, 1505, 1506, 1517, - 1531, 960, 1339, 541, 723, 736, 737, 919, - 932, 1115, 1128, 1311, 1324, 933, 1129, 542, - 724, 738, 920, 1116, 1312, 1325, 934, 1130, - 345, 358, 553, 554, 749, 750, 945, 1141, - 1520, 346, 359, 555, 751, 946, 1142, 1326, - 1521, 1337, 1338, 947, 1143, 360, 556, 752, - 1339, 1522, 948, 1144, 372, 567, 568, 763, - 764, 959, 1155, 1534, 569, 765, 960, 1156, - 1340, 1535, 1351, 1352, 961, 1157, 570, 766, - 1353, 1536, 1507, 1508, 962, 789, 790, 984, - 985, 986, 1180, 1181, 1375, 1376, 1182, 1377, - 1378, 410, 605, 606, 801, 802, 998, 1572, - 1573, 411, 607, 791, 803, 987, 999, 1183, - 1574, 412, 608, 804, 1000, 1195, 1379, 1390, - 1196, 1209, 844, 1014, 1040, 1210, 1223, 1585, - 1392, 1405, 1418, 1571, 1768, 1769, 1770, 1598, - 1575, 1587, 1599, 1600, 1406, 1419, 1431, 1588, - 1601, 1613, 1430, 1432, 1444, 1612, 1614, 1626, - 1795, 791, 986, 987, 1182, 1377, 1378, 1183, - 792, 988, 1379, 1184, 595, 607, 802, 803, - 998, 1574, 596, 804, 1000, 1380, 1575, 412, - 608, 999, 1195, 1196, 413, 609, 805, 1001, - 1014, 623, 793, 819, 989, 1185, 1197, 1576, - 426, 1209, 1390, 1210, 1392, 427, 1015, 1028, - 414, 610, 637, 806, 833, 1002, 1211, 1381, - 1393, 650, 845, 846, 1041, 1223, 1224, 1405, - 1406, 624, 651, 820, 847, 1016, 1029, 1198, - 1225, 1407, 1042, 1043, 1212, 1573, 1419, 1588, - 1394, 1589, 1238, 1420, 1239, 1421, 1770, 1771, - 1772, 1587, 1577, 1601, 1602, 1603, 1408, 1769, - 1418, 1600, 1433, 1615, 1784, 1590, 1785, 1434, - 1616, 1435, 1617, 793, 988, 989, 1184, 1380, - 1185, 794, 990, 1381, 1186, 597, 805, 1001, - 1576, 598, 806, 1002, 1382, 1577, 414, 610, - 819, 1015, 1197, 624, 820, 1198, 415, 611, - 807, 1003, 1016, 1199, 1578, 833, 1029, 1211, - 1393, 638, 834, 1212, 1394, 1017, 1030, 612, - 639, 808, 835, 1004, 1213, 1395, 652, 848, - 1226, 1408, 849, 1018, 1031, 1200, 1227, 1409, - 1044, 1045, 1214, 1225, 1407, 1590, 1396, 1591, - 1240, 1422, 1241, 1423, 1772, 1773, 1774, 1589, - 1604, 1605, 1410, 1421, 1603, 1786, 1592, 1787, - 1436, 1618, 1437, 1619, 990, 1186, 1382, 599, - 795, 1578, 403, 612, 808, 991, 1187, 1383, - 600, 796, 1579, 613, 809, 992, 1188, 807, - 1003, 220, 234, 611, 639, 835, 1004, 1017, - 1199, 1200, 1213, 1395, 221, 823, 1005, 1201, - 1384, 1031, 1018, 1019, 640, 836, 1214, 1396, - 654, 850, 1032, 1228, 1410, 1046, 641, 837, - 1215, 1397, 655, 851, 1033, 1229, 1411, 1580, - 458, 668, 864, 1060, 1242, 1424, 1592, 459, - 473, 614, 669, 810, 865, 1006, 1047, 1061, - 1202, 1243, 1425, 1593, 878, 1256, 1438, 683, - 879, 1257, 1439, 1774, 1775, 1227, 1409, 1606, - 1607, 1776, 1074, 1620, 1075, 1398, 1621, 1591, - 1788, 1789, 1270, 1452, 1634, 1271, 1453, 1635, - 1970, 1971, 1423, 1605, 1802, 1803, 1972, 1816, - 1412, 1594, 1817, 796, 992, 1188, 1384, 1580, - 614, 810, 1006, 1202, 1385, 1776, 446, 642, - 1398, 1581, 837, 851, 1019, 1033, 1047, 1215, - 1229, 1397, 1411, 656, 852, 1034, 1230, 1412, - 1048, 1203, 460, 474, 866, 1062, 1244, 1426, - 1594, 488, 684, 880, 1076, 1258, 1440, 1608, - 1243, 1425, 1777, 1399, 1622, 1593, 1607, 1790, - 1272, 1454, 1636, 1413, 1972, 1439, 1621, 1973, - 1804, 1595, 1818, 804, 844, 999, 1000, 1014, - 1040, 1053, 1195, 1196, 1209, 1223, 1390, 845, - 858, 1028, 1041, 1054, 1210, 1224, 1392, 1405, - 1418, 662, 871, 1431, 650, 663, 846, 859, - 1042, 1055, 1238, 1406, 1419, 1432, 1587, 1263, - 1445, 1600, 1264, 1420, 1433, 1446, 1588, 1601, - 1599, 1613, 1614, 1627, 1434, 1447, 1602, 1615, - 1628, 1783, 1459, 1641, 1796, 1460, 1616, 1629, - 1642, 1784, 1797, 650, 805, 819, 845, 846, - 859, 1001, 1014, 1015, 1028, 1041, 1042, 1055, - 1196, 1197, 1210, 1223, 1224, 1238, 1392, 1405, - 1406, 1419, 637, 833, 860, 1029, 1056, 1211, - 1225, 1393, 1420, 651, 806, 820, 847, 1002, - 1016, 1043, 1198, 1239, 1407, 638, 834, 861, - 1030, 1057, 1212, 1226, 1394, 1421, 664, 873, - 1252, 1433, 1070, 1434, 665, 1253, 652, 848, - 875, 1044, 1071, 1240, 1408, 1435, 1588, 1589, - 1265, 1447, 1602, 1266, 1448, 1603, 1267, 1422, - 1449, 1590, 1601, 1615, 1616, 1617, 1629, 1630, - 1436, 1604, 1631, 1784, 1785, 1461, 1643, 1798, - 1462, 1644, 1799, 1463, 1618, 1645, 1786, 652, - 807, 834, 848, 1003, 1016, 1017, 1030, 1044, - 1198, 1199, 1212, 1226, 1240, 1394, 1408, 639, - 835, 862, 1031, 1058, 1213, 1227, 1395, 1422, - 808, 849, 1004, 1018, 1045, 1200, 1241, 1409, - 640, 836, 863, 1032, 1059, 1214, 1228, 1396, - 1423, 666, 1254, 876, 1072, 1436, 667, 1255, - 654, 850, 877, 1046, 1073, 1242, 1410, 1437, - 1590, 1591, 1604, 1268, 1450, 1605, 1269, 1424, - 1451, 1592, 1618, 1619, 1632, 1438, 1606, 1633, - 1786, 1787, 1800, 1464, 1646, 1801, 1465, 1620, - 1647, 1788, 654, 836, 850, 1018, 1032, 1046, - 1200, 1214, 1228, 1242, 1396, 1410, 668, 809, - 864, 878, 1005, 1060, 1256, 1424, 1438, 613, - 641, 823, 837, 1019, 1074, 1201, 1215, 1397, - 1033, 1229, 655, 851, 1047, 1243, 1411, 669, - 683, 810, 865, 879, 1006, 1061, 1257, 1425, - 1439, 614, 642, 1075, 1202, 1398, 1270, 1452, - 1271, 1453, 656, 852, 1034, 1230, 1412, 1592, - 1606, 1620, 1593, 1607, 1621, 1634, 1466, 1635, - 1048, 1467, 1594, 1648, 1649, 1244, 1426, 1608, - 1788, 1802, 1816, 1789, 1803, 1817, 1830, 1662, - 1831, 1663, 1790, 663, 845, 846, 858, 859, - 871, 1014, 1028, 1040, 1041, 1042, 1053, 1054, - 1055, 1209, 1210, 1223, 1224, 1263, 1264, 1392, - 1405, 1406, 1418, 1419, 1431, 1432, 1445, 664, - 677, 860, 873, 1056, 1238, 1252, 1265, 1420, - 1433, 1446, 1459, 678, 1070, 1082, 1266, 1434, - 1447, 1460, 1601, 1614, 1602, 1615, 1628, 1278, - 1448, 1461, 1616, 1629, 1588, 1627, 1641, 1642, - 1655, 1462, 1630, 1643, 1656, 1797, 1810, 1798, - 1811, 1473, 1824, 1474, 1644, 1657, 1812, 1825, - 678, 833, 847, 860, 873, 1015, 1029, 1042, - 1043, 1055, 1056, 1070, 1211, 1224, 1225, 1238, - 1252, 1265, 1266, 1393, 1407, 1420, 1433, 1434, - 1447, 665, 861, 1057, 1239, 1253, 1421, 1448, - 679, 834, 848, 875, 1016, 1030, 1044, 1071, - 1212, 1226, 1267, 1394, 1408, 1435, 666, 862, - 1058, 1240, 1254, 1422, 1449, 887, 1461, 888, - 1084, 1462, 680, 876, 889, 1072, 1085, 1268, - 1436, 1463, 1616, 1603, 1617, 1604, 1279, 1630, - 1280, 1631, 1281, 1450, 1618, 1589, 1629, 1643, - 1644, 1590, 1645, 1657, 1658, 1464, 1632, 1659, - 1812, 1799, 1813, 1800, 1475, 1826, 1476, 1827, - 1477, 1646, 1814, 680, 835, 849, 862, 876, - 1017, 1031, 1044, 1045, 1058, 1072, 1213, 1226, - 1227, 1240, 1254, 1268, 1395, 1409, 1422, 1436, - 667, 863, 1059, 1241, 1255, 1423, 1450, 681, - 836, 850, 877, 1018, 1032, 1046, 1073, 1214, - 1228, 1269, 1396, 1410, 1437, 668, 864, 1060, - 1242, 1256, 1424, 1451, 890, 1086, 1464, 878, - 891, 1074, 1087, 1270, 1438, 1465, 1618, 1605, - 1619, 1606, 1632, 1282, 1633, 1283, 1452, 1620, - 1591, 1646, 1592, 1647, 1660, 1466, 1634, 1661, - 1814, 1801, 1815, 1802, 1828, 1478, 1829, 1479, - 1648, 1816, 864, 878, 1046, 1060, 1074, 1228, - 1242, 1256, 1270, 1424, 1438, 696, 823, 837, - 892, 1005, 1019, 1033, 1201, 1215, 1397, 1452, - 1466, 641, 655, 669, 851, 865, 1047, 1088, - 1229, 1243, 1411, 1425, 1061, 1257, 683, 879, - 1075, 1271, 1439, 697, 893, 1006, 1034, 1202, - 1398, 1453, 1467, 642, 656, 852, 866, 1048, - 1089, 1230, 1244, 1412, 1426, 1284, 1285, 684, - 880, 1062, 1258, 1440, 1620, 1634, 1648, 1593, - 1607, 1621, 1635, 1649, 1594, 1608, 1662, 1480, - 1663, 1076, 1481, 1622, 1272, 1454, 1636, 1816, - 1830, 1844, 1789, 1803, 1817, 1831, 1845, 1790, - 1804, 1858, 1676, 1859, 1677, 1818, 1624, 1638, - 1652, 1387, 1583, 1597, 1598, 1611, 1779, 1053, - 1430, 1444, 1585, 1612, 1625, 871, 1431, 844, - 858, 1040, 1054, 1263, 1418, 1445, 1458, 1626, - 1639, 1680, 1807, 1862, 1432, 1459, 1640, 1653, - 1289, 1264, 1446, 1694, 1821, 1460, 1485, 1627, - 1641, 1655, 1667, 1835, 1876, 1473, 1599, 1613, - 1849, 1628, 1642, 1668, 1836, 1850, 1512, 1822, - 2030, 1614, 1809, 1823, 1837, 1669, 1681, 1863, - 1780, 1795, 1808, 1975, 1989, 1990, 2017, 1991, - 2058, 2005, 2018, 2031, 2019, 2032, 2045, 858, - 871, 1040, 1053, 1054, 1263, 1418, 1431, 1432, - 1444, 1445, 1458, 859, 873, 1041, 1055, 1264, - 1419, 1433, 1446, 1459, 1082, 1265, 1278, 1447, - 1460, 1289, 1473, 1485, 1641, 1655, 887, 1461, - 1303, 1474, 1668, 1279, 1292, 1627, 1640, 1628, - 1642, 1656, 1667, 1304, 1475, 1487, 1669, 1614, - 1653, 1615, 1629, 1643, 1657, 1681, 1488, 1670, - 1682, 1823, 1836, 1824, 1837, 1850, 1838, 1851, - 1852, 1499, 1864, 1500, 1671, 1683, 1865, 860, - 873, 1042, 1055, 1056, 1070, 1082, 1238, 1252, - 1264, 1265, 1278, 1420, 1433, 1434, 1446, 1447, - 1459, 1460, 691, 887, 1266, 1279, 1448, 1461, - 1473, 692, 888, 1084, 1280, 1462, 1474, 1292, - 1097, 1293, 1475, 1109, 1487, 706, 902, 1098, - 1294, 1476, 1488, 1629, 1642, 1630, 1643, 1656, - 1644, 1657, 1658, 1305, 1670, 1489, 1671, 1616, - 1655, 1669, 1683, 1490, 1672, 1684, 1825, 1838, - 1826, 1839, 1852, 1840, 1853, 1854, 1501, 1866, - 1502, 1685, 1867, 692, 861, 875, 887, 888, - 1043, 1057, 1070, 1071, 1084, 1239, 1252, 1253, - 1266, 1279, 1280, 1421, 1435, 1448, 1461, 1462, - 1267, 1449, 693, 862, 876, 889, 1044, 1058, - 1072, 1085, 1240, 1254, 1281, 1422, 1436, 1463, - 1268, 1450, 1097, 1475, 902, 1098, 1476, 694, - 890, 903, 1086, 1099, 1282, 1464, 1477, 706, - 1293, 1294, 707, 1295, 915, 1111, 1489, 916, - 1112, 1490, 708, 904, 917, 1100, 1113, 1296, - 1478, 1491, 1644, 1631, 1645, 1632, 1658, 1659, - 1646, 1660, 1307, 1672, 1308, 1673, 1309, 1617, - 1657, 1618, 1671, 1685, 1686, 1492, 1674, 1687, - 1840, 1827, 1841, 1828, 1854, 1855, 1842, 1856, - 1503, 1868, 1504, 1869, 1505, 694, 863, 877, - 890, 1045, 1059, 1072, 1073, 1086, 1241, 1254, - 1255, 1268, 1282, 1423, 1437, 1450, 1464, 1269, - 1451, 695, 864, 878, 891, 1046, 1060, 1074, - 1087, 1242, 1256, 1283, 1424, 1438, 1465, 1270, - 1452, 904, 1100, 1478, 696, 892, 905, 1088, - 1101, 1284, 1466, 1479, 708, 1296, 709, 1297, - 918, 1114, 1492, 710, 906, 919, 1102, 1115, - 1298, 1480, 1493, 1646, 1633, 1647, 1634, 1660, - 1661, 1648, 1662, 1674, 1310, 1675, 1311, 1619, - 1620, 1688, 1494, 1676, 1689, 1842, 1829, 1843, - 1830, 1856, 1857, 1844, 1858, 1870, 1506, 1871, - 1507, 696, 892, 1074, 1088, 1256, 1270, 1284, - 1452, 1466, 710, 851, 865, 906, 1033, 1047, - 1061, 1229, 1243, 1411, 1425, 1480, 669, 683, - 879, 1075, 1102, 1257, 1271, 1439, 1453, 697, - 893, 1089, 1285, 1467, 711, 852, 866, 907, - 1034, 1048, 1062, 1230, 1244, 1412, 1426, 1481, - 684, 880, 1076, 1103, 1258, 1272, 1440, 1454, - 1298, 1299, 698, 894, 1468, 724, 920, 1494, - 1116, 725, 921, 1495, 1090, 1117, 1286, 1312, - 1313, 712, 908, 1482, 1648, 1662, 1607, 1621, - 1635, 1649, 1663, 1608, 1622, 1636, 1676, 1677, - 1650, 1664, 1690, 1508, 1691, 1104, 1509, 1300, - 1678, 1844, 1858, 1803, 1817, 1831, 1845, 1859, - 1804, 1818, 1832, 1872, 1873, 1846, 1860, 1886, - 1704, 1887, 1705, 880, 1062, 1076, 1244, 1258, - 1272, 1440, 1454, 698, 894, 1090, 1286, 1468, - 712, 867, 908, 1245, 1413, 1482, 881, 1077, - 1104, 1273, 1441, 1300, 699, 895, 1469, 1091, - 1287, 726, 922, 1496, 1118, 1314, 713, 909, - 1483, 1105, 1301, 1636, 1650, 1664, 1609, 1623, - 1637, 1678, 1651, 1692, 1510, 1497, 1832, 1846, - 1860, 1833, 1874, 1847, 1888, 1706, 1875, 1412, - 1426, 1594, 1608, 1622, 1790, 1804, 1399, 1818, - 1595, 1791, 1986, 2000, 2014, 2028, 2042, 2056, - 2070, 1524, 1902, 2084, 2071, 2098, 1652, 1680, - 1862, 1625, 1639, 871, 1053, 1263, 1289, 1430, - 1431, 1444, 1445, 1458, 1459, 1512, 1611, 1612, - 1626, 1640, 1653, 1667, 1694, 1821, 1835, 1876, - 1485, 1303, 1473, 1304, 1109, 1121, 1317, 1487, - 1499, 1708, 730, 926, 1305, 1318, 1500, 1849, - 1668, 1681, 1682, 1330, 1501, 1513, 1695, 1890, - 1669, 1863, 1683, 1904, 1514, 1696, 1864, 1877, - 1878, 1526, 1697, 1709, 1891, 718, 902, 1084, - 1097, 1098, 1109, 1279, 1280, 1292, 1293, 1305, - 1475, 1476, 1487, 1488, 915, 1111, 1294, 1307, - 1489, 1123, 1501, 916, 1112, 1124, 1308, 1490, - 1502, 1319, 1320, 733, 1125, 1321, 1503, 1515, - 930, 1126, 1322, 1504, 1516, 1671, 1672, 1684, - 1685, 1686, 1698, 1517, 1699, 1683, 1697, 1711, - 1518, 1700, 1712, 1867, 1868, 1880, 1881, 1882, - 1894, 1713, 1895, 903, 915, 916, 1085, 1098, - 1099, 1111, 1112, 1281, 1294, 1307, 1308, 1477, - 1489, 1490, 1295, 721, 904, 917, 1086, 1100, - 1113, 1282, 1309, 1478, 1491, 1296, 1125, 1503, - 930, 1126, 1504, 722, 918, 931, 1114, 1127, - 1310, 1492, 1505, 1321, 1322, 735, 1323, 1517, - 1518, 736, 932, 1128, 1324, 1506, 1519, 1673, - 1674, 1686, 1687, 1688, 1700, 1701, 1685, 1699, - 1713, 1714, 1520, 1702, 1715, 1869, 1870, 1882, - 1883, 1884, 1896, 1897, 722, 905, 918, 1087, - 1100, 1101, 1114, 1283, 1296, 1310, 1479, 1492, - 1297, 723, 906, 919, 1088, 1102, 1115, 1284, - 1311, 1480, 1493, 1298, 932, 1128, 1506, 724, - 920, 933, 1116, 1129, 1312, 1494, 1507, 736, - 1324, 737, 1325, 1520, 738, 934, 1130, 1326, - 1508, 1521, 1675, 1676, 1688, 1689, 1690, 1702, - 1703, 1716, 1522, 1704, 1717, 1871, 1872, 1884, - 1885, 1886, 1898, 1899, 724, 920, 1102, 1116, - 1298, 1312, 1494, 738, 893, 934, 1089, 1285, - 1467, 1508, 711, 907, 1103, 1130, 1299, 1481, - 725, 921, 1117, 1313, 1495, 739, 894, 935, - 1090, 1286, 1468, 1509, 712, 908, 1104, 1131, - 1300, 1482, 1326, 1327, 726, 922, 1496, 1522, - 1523, 1118, 1314, 740, 936, 1510, 1690, 1663, - 1677, 1691, 1664, 1678, 1704, 1705, 1692, 1718, - 1719, 1132, 1328, 1706, 1886, 1859, 1873, 1887, - 1860, 1874, 1900, 1901, 1888, 1914, 1915, 908, - 1104, 1286, 1300, 1482, 726, 922, 1118, 1314, - 1496, 740, 895, 936, 1091, 1287, 1469, 1510, - 713, 909, 1105, 1132, 1301, 1483, 1328, 727, - 923, 1497, 1119, 1315, 1524, 741, 1511, 1133, - 1329, 1678, 1692, 1706, 1720, 1707, 1525, 1874, - 1888, 1875, 1902, 1916, 1512, 1694, 1708, 1121, - 1289, 1303, 1330, 1485, 1499, 1681, 1304, 1317, - 926, 1500, 1109, 1123, 1305, 1318, 1501, 1513, - 1526, 1319, 1514, 1695, 1709, 1124, 1320, 1331, - 1502, 1515, 1710, 1722, 1332, 1527, 1137, 1540, - 1333, 1528, 1723, 942, 1138, 1334, 1345, 1529, - 1724, 1696, 1516, 1697, 1711, 1918, 1736, 1905, - 1346, 1530, 1541, 1725, 1904, 1682, 1877, 1891, - 1698, 1906, 1919, 1920, 1892, 1712, 1893, 1907, - 2114, 1932, 1542, 1726, 1737, 1921, 1123, 1124, - 1305, 1318, 1319, 1501, 1502, 1513, 1514, 1111, - 1125, 1307, 1320, 1503, 1515, 1321, 1516, 1137, - 1331, 1332, 1527, 1710, 1711, 746, 930, 942, - 1126, 1138, 1322, 1333, 1504, 1517, 1528, 1712, - 1334, 943, 1139, 1529, 1335, 1530, 1345, 1346, - 1541, 1724, 1725, 944, 1140, 1152, 1336, 1347, - 1531, 1542, 1726, 1697, 1698, 1518, 1699, 1713, - 1348, 1532, 1543, 1727, 1709, 1723, 1906, 1907, - 1700, 1908, 1737, 1920, 1921, 1738, 1922, 1893, - 1894, 1714, 1895, 1909, 1544, 1728, 1739, 1923, - 930, 1112, 1124, 1125, 1126, 1307, 1308, 1320, - 1321, 1503, 1504, 1515, 1516, 1322, 1517, 1137, - 942, 1138, 1518, 551, 746, 747, 943, 1139, - 1332, 1333, 1334, 1528, 1529, 1712, 1713, 552, - 748, 931, 944, 1127, 1140, 1323, 1335, 1505, - 1530, 1714, 1336, 1531, 1152, 1532, 957, 1153, - 1346, 1347, 1348, 1542, 1543, 1726, 1727, 566, - 945, 958, 1141, 1154, 1337, 1349, 1544, 1728, - 1699, 1700, 1519, 1350, 1533, 1545, 1711, 1724, - 1725, 1908, 1909, 1701, 1910, 1738, 1739, 1922, - 1923, 1740, 1924, 1895, 1896, 1715, 1546, 1729, - 1741, 931, 1113, 1126, 1127, 1309, 1322, 1505, - 1517, 1518, 1323, 932, 1114, 1128, 1310, 1506, - 1519, 1324, 552, 735, 747, 748, 942, 943, - 944, 1138, 1139, 1140, 1334, 1335, 1714, 553, - 736, 749, 945, 1141, 1336, 1520, 1715, 1530, - 1531, 1532, 1337, 554, 750, 933, 946, 1129, - 1142, 1325, 1507, 1533, 1716, 1338, 1521, 566, - 957, 958, 1152, 1153, 1154, 1348, 1349, 1728, - 567, 763, 959, 1155, 1350, 1534, 1729, 1544, - 1545, 1546, 1351, 568, 764, 947, 960, 1143, - 1156, 1339, 1547, 1730, 1701, 1702, 1713, 1727, - 1352, 1535, 1910, 1911, 1726, 1703, 1912, 1717, - 1924, 1925, 1740, 1741, 1742, 1743, 1926, 1897, - 1898, 1909, 1923, 1548, 1731, 933, 1115, 1128, - 1129, 1311, 1324, 1507, 1520, 1325, 934, 1116, - 1130, 1312, 1508, 1521, 1326, 554, 737, 750, - 945, 946, 1141, 1142, 1337, 1716, 555, 738, - 751, 947, 1143, 1338, 1522, 1717, 1533, 1534, - 1339, 556, 752, 948, 1144, 1535, 1718, 1340, - 568, 764, 959, 960, 1155, 1156, 1351, 1730, - 569, 765, 961, 1157, 1352, 1536, 1731, 1547, - 1548, 1353, 570, 766, 962, 1158, 1549, 1732, - 1703, 1704, 1354, 1912, 1913, 1729, 1914, 1926, - 1927, 1743, 1744, 1745, 1928, 1899, 1900, 1550, - 1130, 1326, 1522, 556, 725, 739, 752, 921, - 935, 948, 1117, 1144, 1299, 1313, 1495, 1509, - 1718, 1131, 1327, 1523, 557, 726, 740, 753, - 922, 936, 949, 1118, 1145, 1300, 1314, 1496, - 1510, 1719, 1132, 1328, 947, 1143, 1339, 1340, - 1341, 1524, 1535, 1536, 1537, 766, 962, 558, - 754, 767, 1720, 570, 1158, 1732, 1354, 1159, - 1733, 362, 1342, 1355, 1538, 961, 1157, 1353, - 1549, 1550, 1551, 1691, 1705, 1692, 1706, 1734, - 1914, 1915, 1731, 1916, 1928, 1929, 1745, 1746, - 1747, 1887, 1901, 1888, 1902, 1930, 1345, 1346, - 1347, 1530, 1541, 1152, 1348, 1531, 1542, 957, - 1153, 1543, 1349, 1544, 1360, 1555, 1738, 1739, - 958, 1154, 1350, 1361, 1545, 1556, 1740, 1362, - 1546, 1557, 1741, 1726, 1737, 1727, 1751, 1934, - 1935, 1936, 1742, 1753, 1937, 1532, 959, 1155, - 1351, 1364, 1547, 1560, 1754, 1728, 1938, 1743, - 1949, 1756, 983, 1178, 1179, 1375, 1571, 1376, - 1624, 1387, 1572, 1638, 1583, 1768, 1597, 1598, - 1611, 1779, 1652, 1585, 1780, 1573, 1807, 1975, - 1769, 2030, 1989, 1375, 1376, 1571, 1377, 1572, - 1573, 1768, 1387, 1583, 1378, 1574, 1769, 1597, - 1779, 998, 1390, 1585, 1598, 1599, 1611, 1770, - 1780, 1612, 1430, 1600, 1613, 1975, 1625, 1807, - 1587, 1626, 1795, 1808, 1989, 1990, 1796, 1809, - 1821, 1978, 1991, 1639, 1822, 1783, 1624, 1638, - 1652, 2030, 1835, 1862, 2017, 1377, 1378, 1572, - 1573, 1768, 1574, 1769, 1770, 1390, 1585, 1195, - 1379, 1575, 1598, 1599, 1780, 1000, 1196, 1209, - 1392, 1405, 1418, 1431, 1587, 1588, 1600, 1601, - 1613, 1771, 1795, 1430, 1612, 1614, 1406, 1419, - 1432, 1602, 1615, 1783, 1796, 1626, 1808, 1627, - 1809, 1628, 1784, 1797, 1810, 1990, 1978, 1991, - 1798, 1811, 1979, 1992, 1822, 1823, 2005, 1824, - 1980, 1993, 2006, 1611, 1625, 1807, 1444, 1639, - 1640, 1821, 1445, 1458, 1641, 1653, 1835, 1836, - 1989, 2017, 1837, 2018, 1849, 2031, 1850, 2019, - 2032, 1379, 1574, 1769, 1770, 1575, 1380, 1771, - 1576, 1390, 1392, 1772, 1196, 1405, 1587, 1406, - 1588, 1197, 1393, 1381, 1407, 1577, 1589, 1210, - 1418, 1419, 1600, 1601, 1783, 1420, 1602, 1784, - 1211, 1198, 1394, 1421, 1603, 1773, 1785, 1433, - 1434, 1615, 1616, 1797, 1798, 1212, 1408, 1435, - 1590, 1617, 1799, 1604, 1614, 1796, 1629, 1811, - 1980, 1786, 1981, 1630, 1812, 1631, 1813, 1979, - 1978, 1993, 1994, 1995, 1800, 1810, 1992, 1825, - 2007, 1982, 1826, 2008, 1827, 2009, 1381, 1576, - 1772, 1577, 1382, 1773, 1578, 1393, 1394, 1774, - 1198, 1407, 1589, 1408, 1590, 1199, 1395, 1409, - 1591, 1970, 1212, 1421, 1603, 1785, 1422, 1604, - 1786, 1213, 1200, 1396, 1423, 1605, 1787, 1436, - 1618, 1800, 1214, 1410, 1437, 1592, 1619, 1801, - 1606, 1617, 1799, 1982, 1788, 1983, 1632, 1814, - 1633, 1815, 1981, 1996, 1997, 1802, 1813, 1995, - 1984, 1828, 2010, 1829, 2011, 1450, 1424, 1451, - 1620, 1646, 1464, 1647, 1438, 1465, 1634, 1660, - 1842, 1661, 1816, 1843, 2024, 1830, 1998, 2025, - 1856, 2038, 1857, 2012, 2039, 1578, 1774, 1383, - 1970, 1187, 1396, 1579, 1775, 1384, 1971, 1188, - 1397, 1580, 1395, 1004, 1018, 1200, 1214, 1409, - 1410, 1423, 1591, 1592, 1605, 1787, 1005, 1019, - 1201, 1215, 1411, 1593, 1776, 1213, 1227, 1424, - 1606, 1788, 1438, 1620, 1802, 1425, 1607, 1789, - 1439, 1621, 1803, 1972, 1242, 1256, 1452, 1634, - 1816, 1984, 1006, 1202, 1243, 1257, 1398, 1453, - 1594, 1635, 1817, 1985, 1466, 1648, 1830, 1412, - 1467, 1649, 1831, 1619, 1801, 1998, 1999, 2012, - 1608, 1790, 2013, 1983, 1662, 1844, 2026, 1663, - 1845, 2027, 2166, 2167, 1815, 1997, 2168, 1804, - 1986, 1384, 1580, 1776, 1385, 1972, 1398, 1581, - 1006, 1202, 1412, 1594, 1777, 1973, 1425, 1439, - 1607, 1621, 1789, 1803, 1426, 1608, 1790, 1440, - 1622, 1804, 1203, 1399, 1413, 1595, 1244, 1258, - 1454, 1636, 1818, 1986, 1468, 1650, 1832, 1609, - 1635, 1817, 2000, 1791, 2014, 1985, 1999, 1664, - 1846, 2028, 2168, 1831, 2013, 2169, 2182, 1860, - 2042, 1623, 2027, 2196, 2056, 2210, 1637, 1833, - 2183, 2181, 2195, 2224, 2365, 2364, 2209, 2238, - 2223, 2378, 2392, 2406, 2391, 2252, 2420, 1392, - 1405, 1406, 1418, 1419, 1431, 1432, 1445, 1587, - 1588, 1600, 1601, 1613, 1614, 1615, 1627, 1628, - 1783, 1795, 1796, 1809, 1420, 1433, 1446, 1602, - 1616, 1629, 1784, 1797, 1810, 1459, 1641, 1642, - 1823, 1434, 1447, 1460, 1630, 1643, 1798, 1811, - 1824, 1978, 1979, 1655, 1837, 1992, 1656, 1812, - 1825, 1838, 1980, 1993, 1991, 2005, 2006, 2019, - 1826, 1839, 1994, 2007, 2020, 1851, 2033, 1852, - 2008, 2021, 2034, 1448, 1461, 1644, 1657, 1473, - 1462, 1474, 1658, 1669, 1670, 1840, 1853, 2047, - 1854, 2022, 2035, 2048, 1865, 1866, 2036, 2049, - 1393, 1407, 1420, 1433, 1434, 1447, 1588, 1589, - 1602, 1615, 1616, 1629, 1630, 1784, 1797, 1798, - 1811, 1421, 1448, 1603, 1617, 1785, 1812, 1394, - 1408, 1435, 1590, 1631, 1799, 1422, 1449, 1604, - 1618, 1786, 1813, 1461, 1643, 1644, 1825, 1462, - 1826, 1645, 1436, 1463, 1632, 1800, 1827, 1980, - 1981, 1657, 1839, 1994, 1658, 1840, 1995, 1659, - 1814, 1841, 1982, 1993, 2007, 2008, 2009, 2021, - 2022, 1828, 1996, 2023, 1853, 2035, 1854, 2036, - 1855, 2010, 2037, 1424, 1438, 1592, 1606, 1620, - 1634, 1788, 1802, 1397, 1452, 1466, 1648, 1816, - 1830, 1411, 1425, 1593, 1607, 1789, 1621, 1439, - 1635, 1803, 1398, 1453, 1467, 1649, 1817, 1831, - 1412, 1426, 1594, 1608, 1790, 1662, 1844, 1663, - 1845, 1440, 1622, 1804, 1984, 1998, 2012, 1985, - 1999, 2013, 2026, 1858, 2027, 1859, 1986, 2040, - 2041, 1636, 1818, 2000, 2054, 2055, 1480, 1481, - 1454, 1676, 1677, 1468, 1650, 1832, 1872, 1873, - 2014, 1664, 1846, 2028, 2068, 2069, 1418, 1431, - 1432, 1444, 1445, 1458, 1599, 1600, 1612, 1613, - 1614, 1626, 1627, 1639, 1640, 1641, 1653, 1795, - 1796, 1808, 1809, 1821, 1822, 1835, 1419, 1433, - 1446, 1459, 1601, 1615, 1628, 1642, 1655, 1783, - 1797, 1810, 1823, 1836, 1849, 1447, 1460, 1629, - 1656, 1811, 1824, 1837, 1850, 1991, 1992, 2005, - 1667, 2018, 1643, 1668, 1825, 1838, 1851, 2006, - 2019, 1978, 2017, 2031, 1979, 1993, 2032, 2045, - 1852, 2007, 2020, 2033, 2046, 1863, 1839, 1864, - 2021, 2034, 2047, 1421, 1435, 1448, 1461, 1462, - 1603, 1616, 1617, 1630, 1643, 1644, 1657, 1658, - 1785, 1799, 1812, 1825, 1826, 1839, 1449, 1631, - 1645, 1813, 1840, 1422, 1436, 1463, 1604, 1618, - 1659, 1786, 1800, 1827, 1450, 1632, 1646, 1814, - 1841, 1475, 1853, 1476, 1854, 1464, 1477, 1660, - 1828, 1855, 2008, 1995, 2009, 1996, 1671, 2022, - 1672, 2023, 1673, 1842, 2010, 1981, 2021, 2035, - 2036, 1982, 2037, 2049, 2050, 1856, 2024, 2051, - 1867, 1868, 1869, 2038, 1423, 1437, 1450, 1464, - 1605, 1618, 1619, 1632, 1646, 1660, 1787, 1801, - 1814, 1828, 1451, 1633, 1647, 1815, 1842, 1424, - 1438, 1465, 1606, 1620, 1661, 1788, 1802, 1829, - 1452, 1634, 1648, 1816, 1843, 1478, 1856, 1466, - 1479, 1662, 1830, 1857, 2010, 1997, 2011, 1998, - 2024, 1674, 2025, 1675, 1844, 2012, 1983, 2038, - 1984, 2039, 2052, 1858, 2026, 2053, 1870, 1871, - 2040, 1492, 1480, 1493, 1676, 1688, 1689, 1506, - 1884, 1494, 1507, 1690, 1872, 1885, 2054, 2066, - 1702, 2067, 1703, 2080, 1886, 2068, 2081, 1898, - 1899, 1638, 1652, 1583, 1597, 1611, 1625, 1680, - 1779, 1862, 2030, 1430, 1598, 1612, 1639, 1780, - 1807, 1821, 1975, 1989, 1444, 1626, 1653, 1808, - 1835, 1458, 1640, 1822, 1445, 1459, 1627, 1641, - 1667, 1809, 1823, 1836, 1849, 1876, 2058, 1655, - 1668, 1837, 1850, 1694, 2017, 1473, 1485, 1681, - 1851, 1863, 1512, 1890, 2031, 2072, 1669, 1682, - 1864, 2018, 2032, 2045, 2046, 1708, 1865, 1877, - 2059, 1990, 2005, 2019, 2033, 2047, 2086, 1878, - 2060, 1904, 2061, 2073, 1446, 1459, 1460, 1627, - 1628, 1640, 1641, 1642, 1655, 1667, 1668, 1810, - 1823, 1824, 1836, 1837, 1849, 1850, 1447, 1461, - 1473, 1629, 1643, 1656, 1669, 1811, 1825, 1838, - 1851, 1485, 1863, 1474, 1657, 1670, 1839, 1852, - 1864, 1681, 1682, 1475, 1487, 1683, 1853, 1865, - 1499, 1877, 1488, 1500, 1671, 1684, 1866, 1878, - 2019, 2032, 2020, 2033, 2046, 2034, 2047, 2048, - 1695, 2060, 1696, 1867, 1879, 2061, 2006, 2045, - 2007, 2021, 2059, 2035, 2049, 2073, 1880, 2062, - 2074, 1891, 1892, 2063, 2075, 1448, 1461, 1462, - 1473, 1474, 1629, 1630, 1642, 1643, 1644, 1656, - 1657, 1669, 1670, 1812, 1825, 1826, 1838, 1839, - 1851, 1852, 1475, 1658, 1671, 1840, 1853, 1487, - 1865, 1476, 1488, 1672, 1854, 1866, 1683, 1684, - 1489, 1685, 1867, 1501, 1879, 1490, 1502, 1686, - 1868, 1880, 2021, 2034, 2022, 2035, 2048, 2036, - 2049, 2050, 1697, 2062, 1698, 1881, 2063, 2008, - 2047, 2061, 2075, 1882, 2064, 2076, 1893, 1894, - 2077, 1449, 1463, 1475, 1476, 1631, 1644, 1645, - 1658, 1671, 1672, 1813, 1827, 1840, 1853, 1854, - 1659, 1841, 1450, 1464, 1477, 1632, 1646, 1673, - 1814, 1828, 1855, 1660, 1842, 1489, 1867, 1490, - 1868, 1478, 1491, 1674, 1856, 1869, 1685, 1686, - 1687, 1503, 1881, 1504, 1882, 1492, 1505, 1688, - 1870, 1883, 2036, 2023, 2037, 2024, 2050, 2051, - 2038, 2052, 1699, 2064, 1700, 2065, 1701, 2009, - 2049, 2010, 2063, 2077, 2078, 1884, 2066, 2079, - 1895, 1896, 1897, 1480, 1648, 1662, 1676, 1844, - 1858, 1439, 1453, 1494, 1621, 1635, 1803, 1817, - 1872, 1467, 1649, 1663, 1831, 1845, 1481, 1677, - 1859, 1440, 1454, 1495, 1622, 1636, 1804, 1818, - 1873, 1468, 1650, 1664, 1832, 1846, 1690, 1691, - 1482, 1860, 1508, 1886, 1509, 1887, 1678, 1704, - 1705, 1496, 1874, 2040, 2054, 1999, 2013, 2027, - 2041, 2055, 2000, 2014, 2028, 2068, 2069, 2042, - 2056, 2082, 1900, 2083, 1901, 1692, 2070, 2096, - 2097, 1680, 1694, 1876, 1512, 1890, 1289, 1485, - 1653, 1667, 1708, 1835, 1836, 1849, 1850, 1863, - 2031, 2045, 2072, 1668, 1681, 1864, 1487, 1499, - 1669, 1682, 1695, 1865, 1877, 1904, 2086, 1500, - 1683, 1696, 1878, 1303, 2059, 1501, 1513, 1709, - 1879, 1891, 1330, 1526, 2100, 1514, 1697, 1710, - 1892, 2060, 2073, 2074, 1722, 1893, 1905, 2087, - 2032, 2046, 2061, 2075, 1906, 2088, 1918, 2089, - 2101, 1487, 1488, 1499, 1500, 1669, 1670, 1682, - 1683, 1695, 1696, 1865, 1866, 1877, 1878, 1489, - 1501, 1671, 1684, 1697, 1867, 1879, 1513, 1891, - 1502, 1514, 1685, 1698, 1880, 1892, 1709, 1710, - 1503, 1515, 1711, 1881, 1893, 1905, 1516, 1699, - 1712, 1894, 1906, 2061, 2062, 2074, 2075, 2076, - 2088, 1895, 1907, 2089, 2073, 2063, 2087, 2077, - 2101, 1908, 2090, 2102, 2091, 2103, 1490, 1672, - 1868, 1686, 1504, 1700, 1882, 1517, 1713, 1518, - 1714, 1896, 2064, 2078, 1909, 1910, 2092, 2104, - 2105, 1491, 1503, 1504, 1673, 1686, 1699, 1700, - 1869, 1881, 1882, 1687, 1492, 1505, 1674, 1701, - 1870, 1883, 1688, 1517, 1895, 1518, 1896, 1506, - 1519, 1702, 1884, 1897, 1713, 1714, 1715, 1909, - 1910, 1520, 1716, 1898, 1911, 2065, 2066, 2078, - 2079, 2080, 2092, 2093, 2077, 2091, 2105, 2106, - 1912, 2094, 2107, 1493, 1506, 1675, 1688, 1702, - 1871, 1884, 1689, 1494, 1507, 1676, 1703, 1872, - 1885, 1690, 1520, 1898, 1508, 1521, 1704, 1886, - 1899, 1716, 1717, 1912, 1522, 1718, 1900, 1913, - 2067, 2068, 2080, 2081, 2082, 2094, 2095, 2108, - 1914, 2096, 2109, 1508, 1690, 1704, 1886, 1481, - 1522, 1677, 1859, 1900, 1495, 1691, 1873, 1509, - 1705, 1887, 1482, 1523, 1678, 1860, 1901, 1496, - 1692, 1874, 1718, 1719, 1510, 1888, 1914, 1915, - 1706, 1524, 1902, 2082, 2055, 2069, 2083, 2056, - 2070, 2096, 2097, 2084, 2110, 2111, 1720, 2098, - 1496, 1678, 1692, 1874, 1510, 1706, 1888, 1483, - 1524, 1902, 1301, 1497, 1720, 1875, 1315, 1511, - 2071, 1916, 1707, 1525, 1903, 1721, 2070, 2084, - 2098, 2085, 2112, 2099, 1708, 1904, 1330, 1526, - 2100, 1317, 1499, 1500, 1513, 1681, 1682, 1695, - 1722, 1877, 1878, 1891, 2073, 1696, 1709, 1514, - 1892, 1515, 1697, 1710, 1893, 1905, 1918, 1711, - 1906, 2087, 1331, 1527, 2101, 1332, 1516, 1528, - 1712, 1723, 1894, 1907, 2102, 1540, 2114, 1724, - 1736, 1529, 1919, 1932, 1725, 1920, 1345, 1541, - 2115, 1346, 1530, 1542, 1726, 1737, 1921, 2116, - 2088, 1908, 2089, 2103, 2128, 1738, 1922, 1933, - 2117, 2074, 2090, 2104, 2310, 1934, 2118, 2129, - 1515, 1516, 1697, 1698, 1710, 1711, 1893, 1894, - 1905, 1906, 1517, 1699, 1712, 1895, 1907, 1527, - 1528, 1713, 1908, 1332, 1333, 1529, 1723, 1724, - 1919, 2102, 2103, 1334, 1518, 1530, 1714, 1725, - 1896, 1909, 1920, 2104, 1726, 1531, 1921, 1541, - 1542, 1727, 1922, 1346, 1347, 1543, 1737, 1738, - 1933, 2116, 2117, 1348, 1532, 1544, 1728, 1739, - 1923, 1934, 2118, 2089, 2090, 1910, 2091, 2105, - 1740, 1924, 1935, 2119, 2101, 2115, 2092, 2129, - 2130, 2106, 1936, 2120, 2131, 1517, 1518, 1699, - 1700, 1712, 1713, 1895, 1896, 1907, 1908, 1714, - 1909, 1529, 1530, 1910, 1334, 1335, 1531, 1724, - 1725, 1726, 1920, 1921, 2104, 2105, 1336, 1519, - 1532, 1715, 1727, 1897, 1922, 2106, 1728, 1923, - 1543, 1544, 1924, 1348, 1349, 1545, 1738, 1739, - 1740, 1934, 1935, 2118, 2119, 1350, 1533, 1546, - 1729, 1741, 1936, 2120, 2091, 2092, 1911, 1742, - 1925, 1937, 2103, 2116, 2117, 2093, 2130, 2131, - 2132, 2107, 1938, 2121, 2133, 1519, 1701, 1714, - 1897, 1909, 1910, 1715, 1520, 1702, 1898, 1911, - 1716, 1336, 1530, 1531, 1532, 1726, 1727, 2106, - 1337, 1533, 1728, 1912, 2107, 1922, 1923, 1924, - 1729, 1338, 1521, 1534, 1717, 1899, 1925, 2108, - 1730, 1913, 1350, 1544, 1545, 1546, 1740, 1741, - 2120, 1351, 1547, 1742, 1926, 2121, 1936, 1937, - 1938, 1743, 1352, 1535, 1548, 1731, 1939, 2122, - 2093, 2094, 2105, 2119, 1744, 1927, 2118, 2095, - 2109, 2132, 2133, 2134, 2135, 1940, 2123, 1521, - 1703, 1716, 1899, 1912, 1717, 1522, 1704, 1900, - 1913, 1718, 1338, 1533, 1534, 1729, 2108, 1339, - 1535, 1730, 1914, 2109, 1925, 1926, 1731, 1340, - 1536, 1927, 2110, 1732, 1352, 1547, 1548, 1743, - 2122, 1353, 1549, 1744, 1928, 2123, 1939, 1940, - 1745, 1354, 1550, 1941, 2124, 2095, 2096, 1746, - 2121, 2135, 2136, 2137, 1942, 1718, 1914, 1340, - 1509, 1523, 1536, 1691, 1705, 1887, 1901, 2110, - 1719, 1915, 1341, 1510, 1524, 1537, 1692, 1706, - 1888, 1902, 2111, 1720, 1535, 1731, 1732, 1733, - 1916, 1927, 1928, 1929, 1550, 1342, 1538, 1551, - 2112, 1354, 2124, 1746, 1355, 2125, 1734, 1747, - 1549, 1745, 1930, 1941, 1942, 1943, 2083, 2097, - 2084, 2098, 2126, 2123, 2137, 2138, 2139, 1524, - 1706, 1720, 1902, 1916, 1342, 1511, 1525, 1538, - 1707, 1903, 2112, 1721, 1734, 1930, 1147, 1343, - 1539, 1735, 2113, 1356, 1552, 2099, 2126, 1748, - 1931, 1944, 1357, 1553, 2127, 2098, 2085, 1749, - 2140, 1945, 2294, 2308, 2336, 2335, 1958, 2154, - 2504, 2505, 2518, 2490, 1540, 1736, 1932, 1358, - 1527, 1528, 1554, 1723, 1724, 1919, 2128, 1345, - 1541, 1920, 2115, 1542, 1725, 1737, 1921, 1738, - 1543, 1933, 1946, 1739, 1934, 1555, 2129, 1360, - 1544, 1556, 1740, 1751, 1935, 2130, 2116, 1936, - 2131, 2117, 1753, 1948, 2132, 2143, 2324, 2325, - 2144, 1922, 1923, 1545, 1741, 1361, 1557, 1362, - 1546, 1742, 1937, 1754, 1938, 1949, 2133, 2118, - 2119, 2134, 2145, 1544, 1545, 1739, 1740, 1741, - 1924, 1935, 1546, 1742, 1936, 1937, 1557, 1938, - 1362, 1753, 1754, 1948, 1949, 2132, 2133, 1364, - 1547, 1560, 1743, 2134, 1756, 1939, 1951, 1952, - 2146, 2120, 2131, 2144, 2145, 2135, 2147, 1546, - 1741, 1742, 1925, 1937, 1351, 1547, 1730, 1743, - 1926, 1938, 2121, 1352, 1548, 1731, 1744, 1927, - 1939, 2122, 1364, 1560, 1754, 2134, 1365, 1561, - 1756, 1940, 2135, 1951, 1952, 1757, 1366, 1549, - 1562, 1745, 1953, 2136, 1758, 1941, 2133, 2148, - 1954, 2149, 2123, 2146, 2147, 2137, 2150, 1548, - 1744, 1927, 1353, 1549, 1732, 1745, 1928, 1940, - 2123, 1354, 1550, 1746, 1941, 2124, 1366, 1561, - 1562, 1757, 2136, 1367, 1563, 1758, 1942, 2137, - 1953, 1954, 1759, 1564, 1955, 2138, 1760, 2150, - 1956, 2151, 2149, 2152, 2319, 2320, 2332, 2333, - 2334, 2346, 2347, 2331, 2345, 2348, 2515, 2516, - 2528, 2529, 2530, 2527, 2541, 1550, 1746, 1733, - 1929, 1942, 1355, 1551, 1564, 2125, 1747, 1734, - 1930, 1943, 1356, 1552, 1565, 2126, 2138, 1760, - 1369, 2139, 1748, 1761, 1563, 1759, 1944, 1955, - 1956, 1957, 1370, 1566, 2140, 2152, 2153, 1762, - 2151, 1958, 2321, 2334, 2335, 2348, 2154, 2336, - 2349, 2333, 2347, 2517, 2518, 2530, 2531, 2544, - 2545, 2529, 1356, 1552, 1748, 1930, 2126, 1735, - 1931, 1944, 1357, 1553, 1566, 2127, 1749, 1370, - 2140, 1762, 1945, 1958, 1371, 1567, 1763, 2154, - 1959, 2155, 2336, 2518, 2545, 2547, 2349, 2741, - 2742, 983, 1178, 1179, 1375, 1571, 1624, 1638, - 1572, 1768, 1583, 1387, 1779, 1769, 1597, 1652, - 2030, 1780, 1975, 1989, 1807, 1990, 2212, 1808, - 1821, 1991, 2017, 2226, 1978, 2240, 1822, 1835, - 1992, 2005, 2018, 2031, 2019, 2032, 2045, 2254, - 1836, 1849, 1979, 2006, 2046, 2202, 2228, 2241, - 2409, 1770, 1585, 1598, 1599, 1612, 1795, 1600, - 1613, 1783, 1796, 1809, 1810, 1823, 1993, 1980, - 1824, 1837, 1994, 2007, 2020, 2033, 2176, 2189, - 2216, 2242, 1611, 1862, 2058, 1850, 2072, 2423, - 2268, 2371, 2203, 2424, 2437, 1768, 1769, 1770, - 1585, 1780, 1575, 1587, 1599, 1600, 1771, 1783, - 1795, 1978, 1390, 1598, 1612, 1613, 1626, 1779, - 1796, 1807, 1808, 1809, 1821, 1975, 1989, 1990, - 1991, 1588, 1601, 1614, 1784, 1797, 1979, 1992, - 1822, 1810, 1980, 1993, 1823, 2005, 2006, 1798, - 1811, 1824, 1994, 2007, 2019, 2020, 2018, 2032, - 2033, 1812, 1825, 2008, 2021, 2034, 2176, 2189, - 2202, 2046, 2190, 2203, 2017, 2228, 2216, 2031, - 2371, 2241, 2409, 2204, 2217, 2230, 1835, 1836, - 1849, 1837, 1850, 2045, 1838, 1851, 2047, 2242, - 2423, 2243, 2424, 1575, 1770, 1771, 1576, 1772, - 1784, 1587, 1783, 1796, 1978, 1588, 1601, 1602, - 1797, 1979, 1980, 1798, 1577, 1589, 1603, 1773, - 1785, 1981, 1810, 1992, 1811, 1993, 1616, 1799, - 1812, 1994, 1590, 1786, 1813, 1995, 1825, 1826, - 2007, 2008, 1604, 1800, 1827, 1982, 2009, 1996, - 1600, 1795, 1809, 1991, 2006, 2021, 2176, 2177, - 2022, 2023, 2005, 2189, 2020, 2190, 2191, 2034, - 2035, 2202, 2203, 2036, 2204, 1814, 2010, 2037, - 2178, 2205, 1990, 2217, 2192, 2019, 2373, 2218, - 2219, 2371, 2361, 2216, 2386, 2387, 2230, 2231, - 2232, 2206, 2233, 2374, 2401, 1577, 1772, 1773, - 1785, 1578, 1774, 1786, 1970, 1799, 1981, 1590, - 1604, 1982, 1603, 1617, 1800, 1813, 1995, 1591, - 1787, 1605, 1801, 1983, 2166, 1814, 1996, 1592, - 1788, 1815, 1997, 1828, 2010, 1606, 1802, 1829, - 1984, 2011, 1998, 2009, 2178, 2179, 2024, 2025, - 2177, 2023, 2191, 2192, 2193, 2037, 2205, 2038, - 2206, 1816, 2012, 2039, 2180, 2207, 1994, 2176, - 2361, 2362, 2194, 2008, 2190, 2204, 2374, 2220, - 2221, 2373, 2219, 2387, 2388, 2233, 2401, 2234, - 2208, 2235, 1970, 1579, 1592, 1774, 1775, 1787, - 1788, 1983, 2166, 1971, 1580, 1593, 1776, 1789, - 2167, 1972, 1801, 1606, 1802, 1815, 1984, 1997, - 1607, 1803, 1985, 1605, 1619, 1816, 1998, 1620, - 1634, 1830, 2012, 1817, 1999, 1594, 1621, 1635, - 1831, 2013, 2168, 1648, 1844, 2026, 2180, 1608, - 1649, 1790, 1845, 1986, 2027, 2181, 1858, 2040, - 1804, 1859, 2041, 2011, 2194, 2195, 2208, 2000, - 2209, 2179, 2025, 2193, 2039, 2207, 2054, 2222, - 2055, 2223, 2362, 2363, 2364, 2236, 2014, 2182, - 2237, 2196, 2391, 2404, 2405, 2221, 2235, 2250, - 2251, 2419, 1784, 1797, 1798, 1810, 1811, 1823, - 1824, 1837, 1978, 1979, 1980, 1992, 1993, 2005, - 2006, 2007, 2019, 2020, 1812, 1825, 1838, 1994, - 2008, 2021, 1851, 2033, 2034, 1826, 1839, 1852, - 2022, 2035, 2047, 2048, 2176, 2189, 2032, 2046, - 2202, 1981, 2190, 2203, 2216, 2228, 1840, 1853, - 1995, 2036, 2049, 2204, 2217, 2230, 2218, 2231, - 2371, 2243, 2244, 2242, 2177, 2386, 2424, 2191, - 2232, 2245, 1836, 1849, 1850, 1991, 2018, 2031, - 2045, 1863, 1864, 2059, 2060, 2241, 1865, 2061, - 2255, 2256, 2409, 2423, 2437, 2257, 1785, 1799, - 1812, 1825, 1826, 1839, 1980, 1981, 1994, 2007, - 2008, 2021, 2022, 1813, 1840, 1995, 2009, 1786, - 1800, 1827, 1982, 2023, 1814, 1841, 1996, 2010, - 1853, 2035, 2036, 1854, 2037, 1828, 1855, 2024, - 2176, 2177, 2049, 2190, 2050, 2191, 2051, 2178, - 2034, 2048, 2189, 2202, 2203, 2204, 2216, 2217, - 2218, 2205, 1983, 2192, 2219, 2230, 2231, 2232, - 1842, 1997, 2038, 2206, 2233, 2220, 2373, 2245, - 2386, 2246, 2387, 2247, 2374, 2244, 2371, 2401, - 2179, 2388, 2415, 2428, 2193, 2234, 2429, 1787, - 1801, 1814, 1828, 1982, 1983, 1996, 2010, 2024, - 1815, 1842, 1997, 2011, 1788, 1802, 1829, 1984, - 2025, 1816, 1843, 1998, 2012, 2038, 1856, 2039, - 1830, 1857, 2026, 2178, 2179, 2192, 2052, 2193, - 2053, 2180, 2037, 2051, 2205, 2206, 2219, 2220, - 2207, 2194, 2221, 2233, 2234, 1844, 2040, 2208, - 2235, 2222, 2374, 2388, 2248, 2249, 2247, 2401, - 2415, 2417, 2429, 2430, 2236, 2404, 2431, 1870, - 1858, 1871, 2054, 2066, 2067, 2065, 2250, 2262, - 2263, 2261, 2443, 2444, 2445, 2432, 1816, 1830, - 1984, 1998, 2012, 2026, 1789, 1844, 1858, 2040, - 1803, 1817, 1985, 1999, 2013, 1831, 2027, 1790, - 1845, 1859, 2041, 1804, 1818, 1986, 2000, 2054, - 2055, 1832, 2014, 2180, 2194, 2208, 2181, 2195, - 2209, 2222, 2223, 2182, 2039, 2053, 2207, 2221, - 2236, 2237, 2235, 2068, 2250, 2028, 2069, 2196, - 2251, 2210, 2404, 2391, 2405, 2419, 2378, 2249, - 2417, 2432, 2433, 2431, 2264, 2446, 2224, 2265, - 2392, 2447, 1872, 1873, 1846, 1860, 2042, 2067, - 2082, 2056, 2083, 2238, 2406, 2263, 2445, 2278, - 2460, 2252, 2279, 2420, 2461, 1804, 1818, 1986, - 2000, 2014, 1832, 2028, 1791, 1846, 1860, 2042, - 1609, 1623, 2056, 1637, 1651, 1833, 1847, 2183, - 1678, 1874, 2210, 2224, 2182, 2196, 2070, 2238, - 2252, 2378, 2392, 2406, 2420, 2434, 2266, 2393, - 2448, 1888, 2084, 1875, 2071, 2280, 2462, 1706, - 1902, 2098, 2085, 2112, 2294, 1916, 2476, 1903, - 2099, 2308, 2617, 2490, 2504, 2030, 1862, 1611, - 1625, 1779, 1780, 1807, 1821, 1975, 1989, 2058, - 2212, 2226, 1808, 1835, 1990, 2017, 1822, 2031, - 1809, 1823, 1836, 1849, 1991, 2005, 2018, 2032, - 2045, 1639, 1680, 1876, 2240, 1837, 1850, 2019, - 2046, 2072, 2033, 1992, 2006, 2254, 1863, 2020, - 2047, 2059, 2228, 2241, 2202, 2242, 2268, 2409, - 2423, 2216, 2243, 2255, 2424, 2437, 1812, 1825, - 1826, 1838, 1839, 1851, 1852, 1993, 1994, 2006, - 2007, 2008, 2020, 2021, 2033, 2034, 2035, 2047, - 2048, 1840, 1853, 2022, 2036, 2049, 1865, 1854, - 1866, 2050, 2189, 2202, 2190, 2203, 2061, 2216, - 2062, 2204, 2217, 2060, 2176, 2228, 2230, 2242, - 2243, 1995, 2009, 2177, 2218, 2231, 2244, 1867, - 2023, 2063, 2191, 2232, 2245, 2246, 2386, 2257, - 2258, 2256, 2371, 2424, 2205, 2373, 2219, 2259, - 2387, 2428, 1813, 1827, 1840, 1853, 1854, 1995, - 2008, 2009, 2022, 2035, 2036, 2049, 2050, 1841, - 2023, 2037, 1814, 1828, 1855, 1996, 2010, 2051, - 1842, 2024, 2038, 1867, 1868, 1856, 1869, 2052, - 2204, 2191, 2205, 2192, 2063, 2218, 2064, 2219, - 2065, 2206, 2062, 2177, 2190, 2203, 2217, 2230, - 2231, 2232, 2244, 2245, 2178, 2246, 2233, 1997, - 2011, 2179, 2220, 2247, 2025, 2193, 2234, 2248, - 2387, 2401, 2388, 2259, 2260, 2415, 2261, 2258, - 2373, 2386, 2428, 2374, 2442, 2429, 2207, 2443, - 2221, 2430, 1862, 2030, 2058, 2212, 2226, 1876, - 1639, 1653, 1680, 1807, 1808, 1821, 1822, 1835, - 1849, 1989, 1990, 2017, 2031, 2072, 2240, 1836, - 2018, 2045, 1850, 2032, 1837, 1851, 1863, 2019, - 2033, 2046, 2059, 1694, 1890, 2254, 1864, 2047, - 2060, 1667, 2086, 1865, 1877, 2073, 1708, 1904, - 2268, 1878, 2061, 2074, 2228, 2241, 2242, 2100, - 2255, 2020, 2034, 2202, 2048, 2216, 2243, 2230, - 2256, 2282, 1891, 2062, 2075, 2087, 2244, 2257, - 2269, 2409, 2423, 2464, 2270, 2424, 2437, 2296, - 2451, 2478, 2258, 2271, 2283, 2453, 2465, 1838, - 1851, 1852, 1863, 1864, 2019, 2020, 2032, 2033, - 2034, 2046, 2047, 2059, 2060, 1839, 1853, 1865, - 2021, 2035, 2048, 2061, 1877, 1866, 1878, 2049, - 2062, 2073, 2074, 1867, 1879, 2075, 1891, 1880, - 1892, 2063, 2076, 2228, 2216, 2242, 2230, 2243, - 2244, 2087, 2256, 2088, 2257, 2189, 2202, 2203, - 2241, 2255, 2022, 2036, 2190, 2204, 2217, 2231, - 2050, 2218, 2245, 2269, 2232, 2258, 2270, 1893, - 2064, 2077, 2089, 2246, 2259, 2271, 2272, 2424, - 2283, 2284, 2453, 2423, 2437, 2451, 2386, 2465, - 2428, 2466, 2260, 2273, 2285, 2442, 2455, 2467, - 1840, 1853, 1854, 1865, 1866, 2021, 2022, 2034, - 2035, 2036, 2048, 2049, 2061, 2062, 1867, 2050, - 2063, 1879, 1868, 1880, 2064, 2075, 2076, 1881, - 2077, 1893, 1882, 1894, 2078, 2217, 2230, 2218, - 2231, 2244, 2232, 2245, 2246, 2089, 2258, 2090, - 2259, 2074, 2190, 2203, 2204, 2216, 2243, 2256, - 2257, 2023, 2037, 2191, 2205, 2051, 2219, 2088, - 2270, 2271, 2233, 2260, 2272, 1895, 2065, 2091, - 2247, 2273, 2274, 2428, 2442, 2285, 2286, 2455, - 2386, 2453, 2387, 2401, 2415, 2284, 2466, 2467, - 2429, 2456, 2468, 2261, 2287, 2443, 2469, 1841, - 1855, 1867, 1868, 2023, 2036, 2037, 2050, 2063, - 2064, 2051, 1842, 1856, 1869, 2024, 2038, 2065, - 2052, 1881, 1882, 1870, 1883, 2066, 2077, 2078, - 2079, 1895, 1896, 1884, 1897, 2080, 2062, 2076, - 2191, 2205, 2218, 2219, 2231, 2232, 2245, 2246, - 2192, 2206, 2220, 2233, 2247, 2260, 2025, 2039, - 2053, 2234, 2248, 2261, 2090, 2259, 2092, 2091, - 2274, 2067, 2093, 2262, 2275, 2258, 2193, 2207, - 2221, 2272, 2273, 2235, 2249, 2286, 2288, 2276, - 2387, 2401, 2415, 2428, 2442, 2388, 2429, 2443, - 2456, 2430, 2444, 2457, 2455, 2287, 2470, 2263, - 2289, 2458, 2471, 2417, 2468, 2469, 2431, 2445, - 1843, 1857, 1870, 2025, 2038, 2039, 2052, 2066, - 2053, 1844, 1858, 1871, 2026, 2040, 2067, 2054, - 1884, 1872, 1885, 2068, 2080, 2081, 1898, 1886, - 1899, 2082, 2065, 2079, 2193, 2207, 2220, 2221, - 2234, 2248, 2194, 2208, 2222, 2235, 2249, 2262, - 2236, 2250, 2263, 2093, 2094, 2276, 2095, 2264, - 2277, 2261, 2275, 2289, 2290, 2278, 2417, 2430, - 2444, 2404, 2431, 2445, 2458, 2432, 2446, 2459, - 2472, 2291, 2460, 2473, 2457, 2471, 1872, 2040, - 2054, 2068, 1831, 1845, 1886, 2013, 2027, 1859, - 2041, 2055, 1873, 2069, 1832, 1846, 1887, 2014, - 2028, 1860, 2042, 2056, 2082, 2083, 1874, 1900, - 1901, 2070, 2096, 2097, 1888, 2067, 2081, 2222, - 2236, 2250, 2195, 2209, 2223, 2237, 2251, 2196, - 2210, 2224, 2264, 2265, 2238, 2095, 2278, 2252, - 2279, 2263, 2181, 2182, 2277, 2110, 2292, 2084, - 2111, 2266, 2293, 2291, 2432, 2446, 2391, 2405, - 2419, 2433, 2447, 2392, 2406, 2420, 2460, 2461, - 2434, 2474, 2448, 2475, 2459, 2378, 2473, 2306, - 2488, 2280, 2307, 2462, 2489, 1890, 2072, 2086, - 1904, 1681, 1708, 1863, 1864, 1877, 2045, 2046, - 2059, 2100, 2241, 2268, 2060, 2073, 1878, 1879, - 1891, 2061, 2074, 2087, 2282, 1892, 2075, 2088, - 1695, 2255, 1893, 1905, 2101, 1722, 1918, 2296, - 1906, 2089, 2102, 2254, 2228, 2242, 2256, 2269, - 2270, 2114, 2283, 2243, 2062, 2244, 2257, 2076, - 2258, 2271, 2284, 2090, 2103, 2272, 2285, 2297, - 2423, 2437, 2464, 2478, 2451, 2492, 2298, 2424, - 2465, 2466, 2310, 2479, 2453, 2467, 2480, 2286, - 2299, 2468, 2481, 2493, 1879, 1880, 1891, 1892, - 2061, 2062, 2074, 2075, 2087, 2088, 1881, 1893, - 2063, 2076, 2089, 1905, 1894, 1906, 2077, 2090, - 2101, 2102, 1895, 1907, 2103, 1908, 2091, 2104, - 2257, 2258, 2270, 2271, 2272, 2284, 2285, 2244, - 2245, 2256, 2269, 2283, 2064, 2246, 2259, 2078, - 2260, 2273, 2297, 2286, 2298, 2092, 2105, 2274, - 2287, 2299, 2300, 2453, 2466, 2467, 2468, 2480, - 2481, 2465, 2479, 2442, 2455, 2456, 2469, 2493, - 2482, 2494, 2288, 2301, 2470, 2483, 2495, 1881, - 1882, 1893, 1894, 2063, 2064, 2076, 2077, 2089, - 2090, 1895, 2078, 2091, 1907, 1896, 1908, 2092, - 2103, 2104, 1909, 2105, 1910, 2106, 2259, 2260, - 2272, 2273, 2274, 2286, 2287, 2102, 2246, 2258, - 2271, 2284, 2285, 2065, 2247, 2079, 2261, 2298, - 2299, 2288, 2300, 2093, 2275, 2301, 2302, 2455, - 2456, 2468, 2469, 2470, 2482, 2483, 2442, 2467, - 2480, 2481, 2443, 2457, 2494, 2495, 2484, 2496, - 2289, 2471, 2497, 1883, 1895, 1896, 2065, 2078, - 2091, 2092, 2079, 1884, 1897, 2066, 2093, 2080, - 1909, 1910, 1898, 1911, 2094, 2105, 2106, 2107, - 1912, 2108, 2090, 2104, 2247, 2260, 2261, 2273, - 2274, 2248, 2262, 2275, 2288, 2067, 2081, 2276, - 2289, 2287, 2302, 2095, 2290, 2303, 2286, 2249, - 2263, 2300, 2301, 2277, 2304, 2443, 2456, 2457, - 2469, 2470, 2444, 2458, 2471, 2484, 2472, 2485, - 2483, 2498, 2291, 2486, 2499, 2482, 2445, 2459, - 2496, 2497, 2473, 1885, 1898, 2067, 2080, 2094, - 2081, 1886, 1899, 2068, 2095, 2082, 1912, 1900, - 1913, 2096, 2108, 2109, 1914, 2110, 2093, 2107, - 2249, 2262, 2263, 2276, 2250, 2264, 2277, 2290, - 2278, 2291, 2304, 2292, 2305, 2289, 2303, 2306, - 2445, 2458, 2459, 2472, 2446, 2460, 2473, 2486, - 2474, 2487, 2500, 2488, 2501, 2485, 2499, 1900, - 2082, 2096, 1873, 1914, 2069, 1887, 2083, 1901, - 2097, 1874, 1915, 2070, 1888, 2084, 2110, 2111, - 1902, 2098, 1916, 2095, 2109, 2264, 2278, 2251, - 2265, 2292, 2279, 2252, 2266, 2293, 2306, 2280, - 2307, 2291, 2237, 2238, 2305, 2124, 2112, 2125, - 2294, 2460, 2474, 2447, 2461, 2488, 2475, 2448, - 2462, 2489, 2502, 2476, 2503, 2487, 2433, 2434, - 2501, 2320, 2308, 2321, 2490, 1888, 2070, 2084, - 1902, 2098, 1875, 1916, 2071, 2085, 2112, 1903, - 2099, 2113, 2266, 2280, 2294, 2308, 2126, 1930, - 2476, 2490, 2504, 2462, 2505, 2518, 2100, 1722, - 1891, 1904, 1918, 2073, 2087, 2114, 2282, 2296, - 1709, 1892, 1905, 2074, 2269, 2088, 2101, 1906, - 1907, 2089, 2102, 2103, 2283, 1723, 1919, 2297, - 1724, 1908, 1920, 2104, 2115, 2298, 1736, 1932, - 2310, 2284, 2116, 2128, 1921, 2117, 1737, 1933, - 2311, 1738, 1922, 1934, 2118, 2129, 2312, 2270, - 2090, 2285, 2299, 2324, 2130, 2313, 2256, 2271, - 2272, 2286, 2300, 1946, 2492, 2493, 2314, 2325, - 2478, 2465, 2479, 2494, 2480, 2507, 2508, 2466, - 2481, 2495, 2326, 2509, 2467, 2468, 2482, 2496, - 1907, 1908, 2089, 2090, 2102, 2103, 1909, 2091, - 2104, 1919, 1920, 2105, 1724, 1725, 1921, 2115, - 2116, 2298, 2299, 1726, 1910, 1922, 2106, 2117, - 2300, 2118, 1923, 1933, 1934, 2119, 1738, 1739, - 1935, 2129, 2130, 2312, 2313, 1740, 1924, 1936, - 2120, 2131, 2314, 2285, 2286, 2297, 2092, 2287, - 2301, 2311, 2132, 2315, 2272, 2273, 2284, 2274, - 2288, 2302, 2325, 2326, 2316, 2327, 2494, 2495, - 2496, 2508, 2509, 2510, 2481, 2482, 2493, 2483, - 2497, 2507, 2328, 2511, 2468, 2469, 2480, 2470, - 2484, 2498, 2521, 2522, 1909, 1910, 2091, 2092, - 2104, 2105, 2106, 1921, 1922, 1726, 1727, 1923, - 2116, 2117, 2118, 2300, 2301, 1728, 1911, 1924, - 2107, 2119, 2302, 2120, 1935, 1936, 1740, 1741, - 1937, 2130, 2131, 2132, 2314, 2315, 1742, 1925, - 1938, 2121, 2133, 2316, 2287, 2288, 2299, 2093, - 2313, 2134, 2274, 2286, 2275, 2289, 2312, 2303, - 2326, 2327, 2328, 2317, 2329, 2496, 2497, 2498, - 2510, 2511, 2512, 2483, 2484, 2495, 2509, 2330, - 2470, 2482, 2471, 2485, 2508, 2499, 2522, 2523, - 2524, 1911, 2093, 2106, 2107, 1912, 2094, 2108, - 1728, 1922, 1923, 1924, 2118, 2119, 2302, 1729, - 1925, 2120, 2303, 2121, 1730, 1913, 1926, 2109, - 2304, 2122, 1742, 1936, 1937, 1938, 2132, 2133, - 2316, 1743, 1939, 2134, 2317, 2135, 1744, 1927, - 1940, 2123, 2318, 2275, 2288, 2289, 2301, 2276, - 2290, 2095, 2315, 2136, 2277, 2291, 2314, 2305, - 2328, 2329, 2330, 2331, 2319, 2498, 2499, 2500, - 2512, 2513, 2514, 2471, 2484, 2485, 2497, 2472, - 2486, 2511, 2332, 2473, 2487, 2510, 2501, 2524, - 2525, 2526, 2527, 1913, 2095, 2108, 2109, 1914, - 2096, 2110, 1730, 1925, 1926, 2121, 2304, 1731, - 1927, 2122, 2305, 2123, 1732, 1928, 2306, 2124, - 1744, 1939, 1940, 2135, 2318, 1745, 1941, 2136, - 2319, 2137, 1746, 1942, 2320, 2277, 2290, 2291, - 2278, 2292, 2138, 2317, 2331, 2332, 2333, 2500, - 2501, 2502, 2514, 2515, 2516, 2473, 2486, 2487, - 2474, 2488, 2334, 2513, 2527, 2528, 2529, 2110, - 1719, 1732, 1901, 1915, 1927, 1928, 2083, 2097, - 2123, 2124, 2279, 2292, 2306, 2111, 1720, 1733, - 1902, 1916, 1929, 2084, 2098, 2125, 2280, 2293, - 2307, 2112, 1746, 1942, 2320, 1734, 1747, 1930, - 1943, 2126, 2294, 2308, 2321, 1941, 2137, 2138, - 2139, 2334, 2335, 2319, 2333, 1944, 1957, 2140, - 2502, 2503, 2504, 2516, 2517, 2475, 2488, 2476, - 2489, 2490, 2518, 2530, 2531, 2515, 2529, 1932, - 2128, 1919, 1920, 1946, 2115, 2116, 2324, 1737, - 1921, 1933, 2117, 2129, 2311, 1934, 2130, 1935, - 2131, 1751, 2325, 1936, 1948, 2132, 2143, 2326, - 2144, 2312, 2327, 2313, 2314, 2145, 2328, 2339, - 2507, 2521, 2340, 2508, 2522, 2523, 2509, 2510, - 2341, 2524, 2535, 1937, 2133, 1753, 1949, 1754, - 1938, 2134, 2146, 2329, 2315, 2316, 2147, 2330, - 2342, 2525, 2511, 2512, 2536, 2343, 2526, 2537, - 1951, 1756, 1939, 1952, 2135, 2148, 2317, 2331, - 2344, 2513, 2538, 2527, 2539, 1938, 2133, 2134, - 1743, 1939, 2122, 2135, 2317, 1744, 1940, 2123, - 2136, 2318, 1756, 1951, 1952, 2146, 2147, 2330, - 1757, 1953, 2148, 2331, 2149, 1758, 1941, 1954, - 2137, 2332, 2150, 2329, 2344, 2345, 2328, 2319, - 2342, 2343, 2333, 2346, 2513, 2514, 2526, 2527, - 2528, 2525, 2540, 2541, 2524, 2515, 2538, 2539, - 2529, 1783, 1795, 1796, 1978, 1979, 1989, 1990, - 1991, 1992, 2005, 2017, 2018, 1784, 1797, 1980, - 1993, 2006, 2019, 2176, 2189, 2202, 2031, 2032, - 1994, 2007, 2020, 2190, 2203, 2228, 2371, 2409, - 2033, 2045, 2216, 2241, 2423, 2386, 2424, 2568, - 1978, 1979, 1980, 1991, 1992, 1993, 1994, 2005, - 2006, 2007, 2019, 2176, 2189, 2190, 2202, 2371, - 2177, 2203, 1981, 2191, 2204, 2361, 2386, 2178, - 2205, 2373, 2216, 2217, 2218, 2387, 2231, 2192, - 2219, 2374, 2232, 2206, 2233, 2388, 2401, 2568, - 2415, 2428, 2429, 2442, 2177, 2191, 2361, 2166, - 2362, 2178, 2373, 2192, 2179, 2374, 2193, 2205, - 2219, 2387, 2206, 2388, 2220, 2180, 2194, 2207, - 2221, 2401, 2234, 2248, 2208, 2235, 2417, 2430, - 2444, 2222, 2249, 2404, 2431, 2363, 2612, 2415, - 2429, 2443, 2445, 2613, 2236, 2432, 2639, 2362, - 2167, 2180, 2363, 2168, 2181, 2364, 2179, 2193, - 2194, 2207, 2195, 2559, 2208, 2209, 2221, 2222, - 2404, 2223, 2391, 2235, 2236, 2417, 2250, 2405, - 2182, 2196, 2237, 2419, 2560, 2249, 2432, 2210, - 2251, 2378, 2433, 2431, 2573, 2392, 2388, 2430, - 2446, 2374, 2447, 2615, 2612, 2613, 2445, 2406, - 2574, 2264, 2224, 2460, 2642, 2420, 2461, 2643, - 2641, 2459, 2265, 2238, 2252, 2434, 2474, 2656, - 2448, 2475, 2616, 2657, 2168, 2364, 2169, 2182, - 2365, 2196, 2560, 2210, 2378, 2391, 2405, 2392, - 2224, 2183, 2406, 2561, 2238, 2420, 2252, 2434, - 2393, 2419, 2574, 2448, 2573, 2616, 2266, 2462, - 2644, 2617, 2212, 2226, 2240, 2254, 1990, 2017, - 2018, 2031, 1991, 2005, 2019, 2032, 2045, 2228, - 2241, 2268, 2409, 2423, 2202, 2464, 2424, 2437, - 2189, 2202, 2228, 2241, 2409, 2423, 2176, 2190, - 2203, 2216, 2242, 2371, 2424, 2217, 2230, 2243, - 2437, 2386, 2451, 2568, 2203, 2216, 2371, 2190, - 2204, 2217, 2218, 2230, 2231, 2244, 2386, 2243, - 2424, 2568, 2373, 2387, 2428, 2623, 2218, 2373, - 2386, 2205, 2387, 2219, 2374, 2401, 2206, 2388, - 2415, 2191, 2231, 2232, 2245, 2246, 2428, 2233, - 2220, 2429, 2568, 2442, 2430, 2443, 2623, 2455, - 2456, 2444, 2457, 2612, 2639, 2259, 2247, 2234, - 2248, 2261, 2417, 2468, 2651, 2469, 2202, 2216, - 2228, 2230, 2241, 2242, 2243, 2255, 2371, 2409, - 2423, 2424, 2437, 2203, 2217, 2231, 2244, 2256, - 2386, 2204, 2218, 2232, 2245, 2257, 2269, 2451, - 2258, 2270, 2453, 2568, 2428, 2465, 2466, 2623, - 2246, 2373, 2387, 2259, 2401, 2442, 2271, 2415, - 2455, 2283, 2272, 2273, 2284, 2285, 2467, 2468, - 2479, 2480, 2456, 2469, 2481, 2651, 2493, 2676, - 2207, 2221, 2234, 2235, 2248, 2388, 2429, 2430, - 2443, 2444, 2249, 2262, 2417, 2431, 2404, 2236, - 2445, 2250, 2263, 2432, 2446, 2613, 2612, 2458, - 2459, 2457, 2639, 2641, 2653, 2654, 2642, 2276, - 2471, 2264, 2277, 2472, 2290, 2278, 2291, 2460, - 2473, 2485, 2486, 2474, 2668, 2487, 2656, 2669, - 2667, 2681, 2682, 2238, 2392, 2406, 2420, 2252, - 2434, 2266, 2393, 2448, 2280, 2462, 2644, 2476, - 2617, 2616, 2574, 2658, 2071, 2085, 2294, 2490, - 2099, 2308, 2504, 2254, 2268, 2228, 2241, 2282, - 2409, 2423, 2464, 2424, 2437, 2255, 2243, 2256, - 2257, 2269, 2451, 2478, 2296, 2270, 2271, 2283, - 2453, 2465, 2466, 2492, 2674, 2467, 2479, 2284, - 2297, 2480, 2310, 2298, 2481, 2493, 2494, 2468, - 2676, 2482, 2495, 2677, 2232, 2245, 2246, 2257, - 2258, 2259, 2270, 2271, 2386, 2428, 2442, 2453, - 2260, 2272, 2455, 2466, 2273, 2285, 2467, 2468, - 2456, 2274, 2469, 2623, 2470, 2481, 2482, 2651, - 2415, 2429, 2443, 2480, 2457, 2483, 2639, 2677, - 2260, 2401, 2415, 2428, 2429, 2442, 2455, 2443, - 2456, 2261, 2430, 2444, 2457, 2247, 2273, 2274, - 2468, 2248, 2262, 2275, 2470, 2469, 2288, 2276, - 2289, 2417, 2431, 2445, 2458, 2471, 2287, 2482, - 2484, 2472, 2623, 2612, 2639, 2653, 2651, 2483, - 2459, 2485, 2654, 2667, 2613, 2641, 2496, 2678, - 2679, 2680, 2302, 2290, 2303, 2301, 2498, 2497, - 2304, 2473, 2486, 2499, 2500, 2668, 2681, 2694, - 2487, 2682, 2695, 2669, 2264, 2432, 2446, 2223, - 2237, 2251, 2278, 2391, 2405, 2419, 2460, 2433, - 2447, 2265, 2224, 2238, 2252, 2279, 2392, 2406, - 2420, 2461, 2434, 2459, 2473, 2474, 2266, 2448, - 2475, 2292, 2293, 2487, 2306, 2488, 2280, 2307, - 2462, 2489, 2642, 2615, 2643, 2616, 2656, 2657, - 2670, 2644, 2671, 2573, 2574, 2669, 2502, 2684, - 2476, 2503, 2658, 2685, 2683, 2501, 2294, 2320, - 2308, 2321, 2490, 2698, 2699, 2697, 2516, 2504, - 2517, 2284, 2453, 2465, 2466, 2467, 2479, 2285, - 2455, 2468, 2480, 2286, 2469, 2481, 2298, 2493, - 2299, 2482, 2494, 2300, 2483, 2495, 2496, 2676, - 2677, 2456, 2651, 2470, 2678, 2484, 2497, 2679, - 2691, 2287, 2288, 2301, 2302, 2498, 2457, 2639, - 2471, 2653, 2680, 2485, 2667, 2290, 2459, 2472, - 2277, 2291, 2304, 2446, 2460, 2473, 2486, 2278, - 2292, 2305, 2474, 2487, 2485, 2499, 2500, 2306, - 2488, 2501, 2502, 2641, 2654, 2668, 2642, 2656, - 2669, 2682, 2670, 2683, 2696, 2684, 2697, 2681, - 2695, 2280, 2294, 2462, 2476, 2308, 2490, 2504, - 2099, 2113, 2505, 2518, 2658, 2699, 2492, 2310, - 2283, 2284, 2297, 2465, 2466, 2479, 2480, 2298, - 2467, 2481, 2493, 2494, 2495, 2324, 2311, 2312, - 2482, 2496, 2507, 2128, 2313, 2508, 2509, 2325, - 2326, 2510, 2521, 2674, 2676, 2677, 2691, 2522, - 2705, 2678, 2706, 2717, 2483, 2497, 2314, 2484, - 2498, 2315, 2511, 2327, 2328, 2512, 2523, 2679, - 2524, 2680, 2694, 2718, 2719, 2316, 2485, 2499, - 2329, 2330, 2513, 2525, 2526, 2667, 2681, 2695, - 2720, 2709, 2485, 2497, 2498, 2303, 2316, 2472, - 2486, 2499, 2304, 2317, 2473, 2487, 2500, 2315, - 2510, 2512, 2511, 2513, 2318, 2501, 2514, 2330, - 2331, 2329, 2524, 2526, 2525, 2527, 2332, 2515, - 2694, 2695, 2696, 2709, 2710, 2667, 2680, 2681, - 2668, 2682, 2528, 2669, 2683, 2706, 2697, 2720, - 2722, 2719, 2711, 2487, 2500, 2305, 2318, 2474, - 2488, 2501, 2306, 2319, 2502, 2513, 2514, 2515, - 2320, 2516, 2332, 2333, 2527, 2528, 2529, 2334, - 2696, 2697, 2698, 2710, 2711, 2712, 2669, 2682, - 2683, 2670, 2684, 2530, 2709, 2724, 2725, 2502, - 2293, 2307, 2320, 2475, 2489, 2503, 2294, 2308, - 2321, 2476, 2490, 2515, 2516, 2698, 2504, 2517, - 2699, 2334, 2335, 2530, 2518, 2531, 2713, 2529, - 2712, 2671, 2684, 2685, 2726, 2727, 2711, 2725, - 2308, 2490, 2504, 2505, 2518, 2335, 2336, 2154, - 1945, 1959, 2155, 2545, 2742, 2713, 2727, 2741, - 2531, 2547, 2349, 2743, 2324, 2311, 2312, 2507, - 2508, 2325, 2326, 2509, 2521, 2327, 2510, 2522, - 2523, 2339, 2340, 2524, 2535, 2717, 2341, 2536, - 2718, 2719, 2705, 2706, 2537, 2720, 2731, 2691, - 2732, 2328, 2511, 2329, 2512, 2525, 2342, 2526, - 2343, 2538, 2539, 2722, 2733, 2734, 2330, 2513, - 2344, 2527, 2540, 2709, 2735, 2330, 2331, 2513, - 2524, 2525, 2526, 2514, 2527, 2332, 2515, 2528, - 2344, 2345, 2343, 2538, 2540, 2539, 2541, 2346, - 2529, 2709, 2710, 2722, 2724, 2725, 2737, 2720, - 2711, 2735, 2734, 2332, 2333, 2515, 2527, 2528, - 2516, 2529, 2334, 2530, 2346, 2347, 2541, 2348, - 2725, 2544, 2726, 2711, 2712, 2724, 2737, 2740, - 2334, 2529, 2530, 2517, 2335, 2348, 2531, 2713, - 2518, 2336, 2349, 2544, 2545, 2726, 2727, 2740, - 2741, 2725, + 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, 0, 0, 88, 88, 172, 252, 318, - 0, 0, 389, 475, 172, 252, 0, 0, - 389, 558, 475, 626, 709, 0, 0, 389, - 787, 875, 944, 1019, 1095, 1183, 1265, 1346, - 1412, 1502, 1019, 1568, 1677, 1677, 1766, 1845, - 1931, 2010, 1677, 2081, 2081, 2164, 2253, 2321, - 2386, 0, 2429, 2429, 2516, 2602, 2681, 252, - 0, 0, 2771, 2839, 475, 626, 709, 0, - 2429, 2771, 2910, 2990, 3076, 709, 2429, 1183, - 3162, 3234, 3324, 3406, 709, 3498, 1183, 1265, - 3574, 1412, 3652, 1019, 3733, 3733, 2081, 3820, - 1845, 3905, 2010, 3991, 4056, 4056, 2164, 2253, - 2321, 2386, 318, 318, 318, 2516, 2602, 2681, - 252, 2429, 4114, 2771, 4198, 2990, 3076, 4278, - 2429, 4114, 2771, 4346, 4436, 4512, 709, 2429, - 3162, 3162, 4603, 4699, 4786, 709, 3498, 4894, - 1265, 3574, 1412, 3652, 1019, 3733, 3733, 2081, - 4980, 5075, 3905, 2010, 3991, 4056, 4056, 2164, - 2253, 2321, 2386, 2429, 318, 5149, 5217, 5323, - 5412, 5531, 2429, 4114, 5595, 5659, 5759, 5842, - 4278, 2429, 4114, 5931, 6008, 6107, 6194, 4278, - 6294, 6375, 6447, 6523, 6629, 6721, 6835, 6918, - 4894, 6981, 7043, 7116, 7180, 7255, 7300, 7374, - 7456, 7545, 7653, 7736, 2010, 3991, 7822, 7822, - 2164, 2253, 2321, 2386, 7874, 7899, 7949, 8033, - 8110, 8197, 8289, 7899, 7949, 8367, 8456, 8110, - 8531, 6835, 6294, 8606, 8367, 8683, 8756, 8531, - 6835, 8841, 8916, 8997, 9065, 8756, 9139, 6835, - 9209, 9273, 9273, 9353, 9403, 9443, 9488, 9516, - 9592, 9669, 9741, 9815, 9869, 9927, 9972, 9972, - 10035, 10071, 10119, 10173, 10226, 10257, 10257, 10341, - 10427, 10517, 10594, 8289, 10257, 10341, 10682, 10766, - 10847, 10926, 11013, 11069, 10682, 11126, 11194, 10847, - 10926, 11013, 11274, 11359, 11448, 11535, 11632, 11702, - 11013, 11789, 11868, 11943, 12011, 12083, 12135, 12197, - 12222, 12304, 12388, 12465, 12547, 12607, 9927, 12671, - 12671, 12671, 12749, 10119, 10173, 10226, 10257, 10257, - 12801, 12840, 12884, 12927, 12996, 13026, 13048, 13068, - 13086, 12884, 12927, 12996, 11274, 13126, 13126, 13086, - 13184, 12927, 13235, 13259, 13126, 13300, 13336, 13184, - 13404, 13235, 13259, 13473, 13473, 13336, 13517, 13404, - 13553, 13566, 13566, 13566, 13634, 13683, 13719, 13752, - 13772, 13772, 13772, 13821, 13851, 13872, 13752, + 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[] = { - 88, 88, 88, 84, 84, 80, 66, 71, - 88, 88, 86, 83, 80, 66, 88, 88, - 86, 68, 83, 83, 78, 88, 88, 86, - 88, 69, 75, 76, 88, 82, 81, 66, - 90, 66, 76, 109, 89, 89, 79, 86, - 79, 71, 89, 83, 83, 89, 68, 65, - 43, 88, 87, 87, 86, 79, 90, 66, - 88, 88, 68, 71, 83, 83, 78, 88, - 87, 68, 80, 86, 86, 78, 87, 82, - 72, 90, 82, 92, 78, 76, 82, 81, - 78, 90, 81, 76, 87, 87, 83, 85, - 86, 86, 71, 65, 58, 58, 89, 68, - 65, 43, 71, 71, 71, 86, 79, 90, - 66, 87, 84, 68, 80, 86, 86, 68, - 87, 84, 68, 90, 76, 91, 78, 87, - 72, 72, 96, 87, 108, 78, 76, 86, - 81, 78, 90, 81, 76, 87, 87, 83, - 95, 74, 86, 71, 65, 58, 58, 89, - 68, 65, 43, 87, 71, 68, 106, 89, - 119, 64, 87, 84, 64, 100, 83, 89, - 68, 87, 84, 77, 99, 87, 100, 68, - 81, 72, 76, 106, 92, 114, 83, 63, - 86, 62, 73, 64, 75, 45, 74, 82, - 89, 108, 83, 86, 71, 65, 52, 52, - 89, 68, 65, 43, 25, 50, 84, 77, - 87, 92, 78, 50, 84, 89, 75, 87, - 75, 83, 81, 77, 89, 73, 85, 75, - 83, 75, 81, 68, 74, 85, 70, 83, - 64, 80, 80, 50, 40, 45, 28, 76, - 77, 72, 74, 54, 58, 45, 63, 63, - 36, 48, 54, 53, 31, 84, 84, 86, - 90, 77, 88, 78, 84, 86, 84, 81, - 79, 87, 56, 57, 84, 68, 80, 79, - 87, 56, 85, 89, 87, 97, 70, 87, - 56, 79, 75, 68, 72, 52, 62, 25, - 82, 84, 77, 82, 60, 64, 45, 78, - 78, 78, 52, 54, 53, 31, 84, 84, - 39, 44, 43, 69, 30, 22, 20, 18, - 40, 43, 69, 30, 85, 58, 58, 40, - 51, 69, 24, 41, 58, 36, 68, 51, - 69, 24, 41, 44, 44, 68, 36, 69, - 13, 68, 68, 68, 49, 36, 33, 20, - 49, 49, 49, 30, 21, 18, 20, + 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.07, 0.002, 30, 7, + 0.067, 0.001, 93, 9, _vq_pigeonmap_lsp30_0, - 13890, + 1693, _vq_fitlist_lsp30_0, _vq_fitmap_lsp30_0, _vq_fitlength_lsp30_0 }; static static_codebook _vq_book_lsp30_0 = { - 3, 2744, + 2, 676, _vq_lengthlist_lsp30_0, - 1, 1603398533, 1592812110, 5, 1, + 1, 1603348202, 1590714958, 7, 1, _vq_quantlist_lsp30_0, NULL, NULL, &_vq_auxp_lsp30_0, + 0 }; diff --git a/lib/books/lsp30_1.vqh b/lib/books/lsp30_1.vqh new file mode 100644 index 00000000..ba17bf65 --- /dev/null +++ b/lib/books/lsp30_1.vqh @@ -0,0 +1,1575 @@ +/******************************************************************** + * * + * 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_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,20,18,18,20,16,17,18,19,19,19,19,19,19, + 18,18,18,18,17,16,18,19,19,19,19,19,19,19,19,19, + 19,19,18,17,17,19,19,19,19,19,19,19,19,19,19,19, + 17,17,15,18,19,19,19,19,19,19,19,19,19,19,19,15, + 14,16,19,19,19,19,19,19,19,19,19,19,18,14,14,18, + 18,19,19,19,19,19,19,19,19,19,16,16,16,18,16,19, + 19,19,19,19,19,19,19,19,19,19,19,19,17,19,18,19, + 19,19,19,19,19,19,19,19,18,17,17,15,15,16,19,19, + 19,19,19,19,19,18,17,17,16,16,15,15,19,19,19,19, + 19,18,18,17,15,16,15,15,14,16,19,19,19,19,19,19, + 19,18,17,16,16,14,15,19,19,19,19,18,18,18,18,18, + 15,15,15,15,19,19,18,17,18,17,18,18,17,15,16,16, + 16,17,19,19,18,19,19,19,19,17,17,16,18,19,19,19, + 19,19,19,19,19,17,17,17,15,15,17,18,19,19,19,19, + 19,19,19,19,19,19,15,16,17,19,18,19,19,19,19,19, + 19,19,19,18,16,17,16,19,19,19,19,19,19,19,19,19, + 19,19,18,18,17,17,19,19,19,19,19,18,19,19,19,18, + 18,17,16,17,18,18,19,18,19,19,19,19,19,18,16,19, + 17,17,19,18,19,18,19,19,19,19,19,19,19,19,17,17, + 18,18,17,16,19,19,19,19,19,19,19,18,18,17,17,14, + 14,15,19,19,19,19,19,19,18,17,15,15,15,15,13,14, + 19,19,19,19,19,18,19,15,15,16,15,14,14,17,19,19, + 19,18,19,18,19,18,18,15,15,13,15,18,19,18,17,18, + 17,18,16,15,13,15,15,15,18,18,16,16,16,17,17,16, + 16,14,15,14,15,16,18,19,19,19,19,19,17,16,17,17, + 19,19,19,19,19,19,18,19,19,19,19,16,16,16,17,19, + 19,17,19,19,19,19,19,19,19,19,17,15,17,18,18,18, + 17,19,19,19,19,19,19,19,19,15,17,17,18,19,17,17, + 19,19,19,19,18,19,19,17,17,18,18,18,17,18,19,19, + 19,18,19,19,19,17,16,16,17,19,18,17,19,19,19,18, + 18,17,17,17,16,16,17,18,16,17,19,19,19,19,18,19, + 17,19,16,16,16,17,15,15,19,19,19,19,19,19,18,17, + 16,14,14,14,15,14,19,19,19,18,19,19,18,15,13,14, + 15,14,14,15,19,19,19,19,19,18,17,16,15,15,14,15, + 15,16,19,19,19,17,18,18,19,16,15,14,14,14,16,17, + 18,16,16,16,17,16,17,16,14,13,15,15,17,19,17,17, + 17,16,16,15,15,15,14,14,14,16,18,19,19,18,19,19, + 19,17,18,19,18,19,14,19,19,19,19,19,18,19,19,17, + 17,18,17,15,18,18,15,16,19,19,19,19,19,17,16,17, + 16,14,13,18,17,17,19,19,19,19,19,19,17,16,17,17, + 14,16,15,17,19,19,19,19,19,18,17,18,17,15,15,18, + 17,16,19,19,19,19,18,17,18,17,16,16,15,17,19,17, + 19,19,19,19,17,16,16,16,15,15,15,17,16,16,19,19, + 19,19,19,18,16,16,15,13,14,15,14,15,19,19,19,19, + 19,18,18,16,13,12,13,14,13,16,19,19,19,19,19,17, + 16,13,13,13,13,14,15,16,19,19,19,19,18,18,16,15, + 15,13,13,14,17,16,18,17,18,19,17,17,17,16,14,13, + 13,16,16,18,16,17,17,17,16,16,16,15,14,13,16,16, + 16,19,19,18,17,16,16,17,16,15,13,14,15,17,19,19, + 18,18,19,19,19,17,17,17,16,18,17,17,15,16,18,19, + 19,19,19,19,17,15,15,16,19,15,14,16,19,19,19,19, + 18,17,15,13,14,18,16,15,16,17,19,18,19,19,18,16, + 16,14,16,16,15,15,16,17,19,19,19,19,18,18,17,18, + 16,14,16,16,17,17,19,19,19,19,18,17,16,15,15,14, + 14,16,17,16,19,19,19,18,18,15,15,15,14,14,14,16, + 15,14,19,19,18,19,19,17,16,14,13,12,13,14,14,14, + 18,19,19,19,18,16,14,13,12,11,12,13,13,15,19,19, + 19,17,17,15,14,12,12,12,12,13,15,18,19,18,18,18, + 18,17,15,14,13,12,12,15,17,19,17,18,18,17,17,16, + 17,14,13,12,14,16,18,19,18,18,17,17,16,16,16,14, + 14,13,16,16,16,19,18,18,17,17,17,16,17,15,12,14, + 15,16,19,19,18,19,19,19,18,19,19,17,15,18,18,15, + 14,15,19,19,19,18,17,18,15,13,16,18,16,14,15,16, + 18,19,18,19,16,15,12,13,16,17,16,15,16,18,19,18, + 19,19,18,15,15,15,16,16,15,17,17,17,19,19,18,19, + 18,18,16,16,16,14,15,17,17,17,19,19,19,18,17,16, + 15,14,14,14,15,16,15,15,19,19,18,17,17,15,14,13, + 13,13,14,15,14,14,19,18,19,17,17,15,12,11,11,11, + 12,13,12,15,19,19,18,16,14,14,12,10,10,11,12,12, + 14,17,19,19,17,16,14,14,12,11,10,11,11,13,17,18, + 17,18,17,17,16,15,15,12,12,11,12,15,17,19,18,17, + 18,17,17,15,15,13,13,12,14,17,18,18,17,17,16,16, + 16,15,16,15,13,13,16,17,17,19,17,16,15,16,16,17, + 17,14,13,13,16,17,19,18,15,17,19,18,19,19,18,17, + 17,17,17,15,14,17,13,16,17,19,17,17,12,15,15,17, + 16,14,14,18,15,15,17,17,15,15,13,15,15,16,16,15, + 15,17,19,17,16,18,15,15,15,15,15,16,16,16,18,15, + 17,18,18,18,16,14,15,16,14,14,15,16,15,14,19,18, + 18,18,15,14,14,13,12,13,14,14,14,14,17,18,19,18, + 15,14,12,10,10,11,13,12,13,14,16,17,18,15,14,12, + 10, 9, 8,10,11,12,13,17,17,17,13,12,11,10, 9, 8, + 7, 9,11,12,15,17,18,18,15,14,12,12,11, 9, 9,10, + 11,15,16,16,17,16,15,16,15,15,13,11,11,11,13,15, + 15,16,18,17,16,15,15,15,14,12,12,12,15,17,17,18, + 16,16,15,15,16,15,15,14,12,14,15,18,18,18,17,15, + 16,16,16,16,14,13,13,14,16,17,18,18,18,17,19,18, + 17,15,14,14,14,14,15,17,17,17,19,16,16,15,16,15, + 14,13,14,15,16,19,17,18,17,16,15,14,14,14,14,13, + 14,14,15,16,16,15,17,17,14,13,13,14,14,13,14,14, + 14,15,14,14,17,15,15,15,15,14,14,13,12,13,13,13, + 13,13,16,16,15,17,16,14,13,11,11,11,12,11,12,14, + 15,14,15,15,14,12,11, 9, 8, 9,11,10,12,16,13,11, + 12,13,11,10, 8, 6, 5, 8, 9,11,13,18,15,15,14,12, + 10, 9, 7, 4, 4, 7, 9,12,14,18,17,19,15,13,12,10, + 9, 6, 6, 8,10,13,13,15,17,16,13,11,11,12,11,10, + 9,10,12,13,15,18,16,13,13,13,13,13,13,11,11,12, + 14,15,17,19,15,14,14,14,14,14,13,13,12,15,15,15, + 18,19,16,15,16,15,15,15,14,13,13,15,17,17,18,18, + 19,19,19,19,17,17,16,15,14,15,16,18,18,17,19,19, + 19,18,18,18,16,13,14,15,18,18,16,16,18,19,19,16, + 15,15,14,14,14,14,14,15,14,14,18,18,16,16,14,14, + 13,13,12,13,13,13,12,13,18,16,14,14,14,13,12,12, + 11,11,11,11,12,14,18,15,14,14,14,12,12,11, 9,10, + 10,10,12,17,16,15,14,14,12,11,10, 9, 7, 8, 8,10, + 13,17,15,14,14,13,11,10, 8, 5, 4, 6, 8,11,15,18, + 15,15,14,13,11, 9, 7, 4, 3, 6, 8,12,16,18,17,16, + 15,13,12,10, 9, 6, 6, 7, 9,11,14,17,17,15,14,13, + 12,11,10, 9, 8, 8, 9,11,15,17,13,13,13,13,12,12, + 11,11,11,11,12,13,17,19,14,14,14,14,14,15,14,12, + 13,14,14,16,17,19,16,15,15,14,14,13,13,12,13,16, + 17,17,19,19,19,19,19,18,17,18,19,19,17,18,18,17, + 18,15,19,19,19,17,17,18,17,16,16,17,17,15,15,14, + 19,19,19,16,17,16,15,14,14,14,15,14,13,13,19,17, + 16,17,15,15,15,13,13,12,13,12,12,14,18,16,16,15, + 14,14,13,13,12,11,11,11,12,16,17,17,15,14,13,13, + 12,11,10,10,10,11,14,18,18,16,15,13,13,12,11,10, + 8, 8, 9,12,16,19,18,17,14,13,12,11, 9, 7, 6, 7, + 10,13,18,19,17,16,15,13,11,10, 9, 6, 5, 7,10,13, + 16,19,18,18,15,13,12,11, 9, 7, 6, 7, 9,12,16,18, + 14,14,15,14,13,12,11, 9, 8, 8,10,12,16,19,15,14, + 14,13,14,13,12,11,11,11,11,14,18,18,15,15,16,15, + 15,15,14,13,14,14,14,19,19,19,16,16,15,15,13,13, + 13,14,15,16,17,18,19,19,19,19,18,19,18,19,19,19, + 18,19,19,19,17,15,19,19,18,18,19,18,17,17,17,19, + 17,17,15,14,19,19,19,18,19,18,18,16,16,16,16,15, + 13,15,19,18,18,18,18,18,17,13,15,14,14,14,14,18, + 18,19,18,17,16,16,15,13,13,13,13,13,15,19,19,19, + 17,18,15,14,14,12,12,12,12,14,16,19,19,19,17,15, + 13,13,12,11,10,11,12,15,18,19,18,17,16,14,13,12, + 11, 9, 8,10,12,16,17,19,16,15,15,14,12,11,10, 8, + 8, 9,12,15,19,19,16,17,15,14,12,12,10, 9, 8, 9, + 11,14,17,19,16,17,16,15,14,13,12,11,10,11,12,14, + 19,19,16,16,15,14,15,14,13,13,13,12,14,19,18,19, + 15,15,14,16,15,16,14,14,15,15,18,19,19,19,17,16, + 16,15,14,14,14,14,15,16,18,19,19,19,19,18,18,19, + 19,19,18,19,19,19,19,19,18,17,19,18,19,19,19,19, + 19,19,17,18,19,18,16,18,19,19,19,19,18,19,18,16, + 17,17,18,18,15,18,19,18,19,19,19,19,19,14,16,19, + 17,16,17,19,19,19,18,18,18,18,16,14,14,15,17,15, + 17,19,19,19,19,17,17,17,15,13,14,15,16,16,18,19, + 19,19,17,15,15,15,14,12,13,14,16,16,19,19,18,18, + 16,15,14,14,13,11,11,13,15,17,18,19,17,15,15,14, + 13,13,12,11,11,13,14,16,18,19,17,19,17,15,14,13, + 13,12,12,12,13,15,19,19,18,16,17,15,15,16,14,14, + 13,12,14,18,19,19,16,17,15,15,17,17,14,15,14,14, + 17,18,19,19,16,16,16,16,16,15,16,16,17,17,18,19, + 19,19,18,17,16,15,13,14,14,15,17,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,19,19,19,19,19,19,19, + 19,19,19,17,19,19,19,19,18,19,19,19,19,19,19,19, + 19,15,18,18,18,19,19,19,19,19,19,19,19,18,17,15, + 15,19,19,19,19,19,19,19,19,17,19,17,16,16,15,16, + 19,19,19,19,18,19,19,19,17,16,15,13,15,16,18,18, + 19,19,19,19,18,17,15,14,14,13,15,16,16,18,19,19, + 17,17,17,16,15,14,14,14,15,14,16,17,18,19,17,18, + 17,17,15,15,14,14,15,13,16,19,19,19,17,18,17,17, + 17,16,15,16,15,15,19,19,19,19,15,17,18,17,17,17, + 15,18,17,16,19,18,19,19,18,18,17,17,17,17,17,16, + 19,18,19,19,19,19,18,16,16,15,15,14,15,15,18,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,19,18,17,18,19,19,19,19,19,19,19,19, + 19,19,19,18,19,18,19,19,19,19,19,18,19,19,19,18, + 17,16,18,19,19,19,19,19,19,18,19,19,18,17,15,15, + 19,17,19,18,19,19,19,19,19,19,17,16,15,15,19,18, + 19,18,19,19,19,19,18,18,17,16,16,16,17,18,18,19, + 19,19,19,18,17,18,17,17,17,16,17,17,19,19,19,19, + 18,17,16,18,18,17,17,19,18,18,19,19,19,19,17,17, + 19,19,18,19,18,19,17,18,17,19,19,19,18,19,18,19, + 19,18,18,18,19,19,17,17,19,19,18,17,18,16,15,15, + 15,17,19,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 new file mode 100644 index 00000000..7d20842e --- /dev/null +++ b/lib/books/lsp9_0.vqh @@ -0,0 +1,123 @@ +/******************************************************************** + * * + * 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 new file mode 100644 index 00000000..4ffbfa9d --- /dev/null +++ b/lib/books/lsp9_1.vqh @@ -0,0 +1,881 @@ +/******************************************************************** + * * + * 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 index 96adea87..ac31d89a 100644 --- a/lib/books/res0_128_1024_1.vqh +++ b/lib/books/res0_128_1024_1.vqh @@ -1,13 +1,12 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * + * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -21,17 +20,17 @@ static long _vq_quantlist_res0_128_1024_1[] = { 1, - 2, 0, + 2, }; static long _vq_lengthlist_res0_128_1024_1[] = { - 1, 4, 4, 4, 7, 7, 5, 7, 7, 5, 8, 8, 8,11,11, 8, - 11,11, 5, 8, 8, 8,11,11, 8,11,11, 4, 8, 8, 8,11, - 11, 8,11,11, 8,11,11,11,15,15,11,15,15, 8,11,11, - 11,15,15,12,15,15, 5, 8, 8, 8,11,11, 8,11,11, 8, - 11,11,11,15,15,11,15,15, 8,11,11,12,15,15,11,15, - 15, + 1, 4, 4, 4, 8, 8, 4, 8, 8, 5, 8, 8, 9,12,12, 9, + 12,12, 5, 8, 8, 8,12,12, 8,12,12, 5, 8, 8, 9,12, + 12, 8,12,12, 9,12,12,12,16,16,13,16,16, 8,12,12, + 12,16,16,12,16,16, 4, 8, 8, 8,12,12, 8,12,12, 8, + 12,12,13,16,16,12,16,16, 8,12,12,12,16,16,12,16, + 16, }; static float _vq_quantthresh_res0_128_1024_1[] = { @@ -39,7 +38,7 @@ static float _vq_quantthresh_res0_128_1024_1[] = { }; static long _vq_quantmap_res0_128_1024_1[] = { - 2, 0, 1, + 1, 0, 2, }; static encode_aux_threshmatch _vq_auxt_res0_128_1024_1 = { diff --git a/lib/books/res0_128_1024_2.vqh b/lib/books/res0_128_1024_2.vqh index 63ec3da5..b26945e9 100644 --- a/lib/books/res0_128_1024_2.vqh +++ b/lib/books/res0_128_1024_2.vqh @@ -1,13 +1,12 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * + * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -21,15 +20,15 @@ static long _vq_quantlist_res0_128_1024_2[] = { 1, - 2, 0, + 2, }; static long _vq_lengthlist_res0_128_1024_2[] = { - 3, 4, 4, 4, 6, 6, 5, 6, 6, 4, 6, 6, 6, 8, 8, 6, - 8, 8, 5, 6, 6, 6, 8, 8, 6, 8, 8, 5, 6, 6, 6, 8, + 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, 7, 6, 8, 8, 7, 8, 8, 6, + 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, }; @@ -39,7 +38,7 @@ static float _vq_quantthresh_res0_128_1024_2[] = { }; static long _vq_quantmap_res0_128_1024_2[] = { - 2, 0, 1, + 1, 0, 2, }; static encode_aux_threshmatch _vq_auxt_res0_128_1024_2 = { diff --git a/lib/books/res0_128_1024_3.vqh b/lib/books/res0_128_1024_3.vqh index aecc96ce..441258ea 100644 --- a/lib/books/res0_128_1024_3.vqh +++ b/lib/books/res0_128_1024_3.vqh @@ -1,13 +1,12 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * + * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -21,52 +20,52 @@ static long _vq_quantlist_res0_128_1024_3[] = { 2, - 3, - 4, 1, + 3, 0, + 4, }; static long _vq_lengthlist_res0_128_1024_3[] = { - 2, 4, 7, 5, 7, 5, 6, 9, 7, 9, 7, 9,13, 9,13, 5, - 7, 9, 7, 9, 7, 9,13, 9,13, 5, 7, 9, 7, 9, 7, 8, - 11, 9,11, 9,11,15,12,15, 7, 9,11, 9,11, 9,11,15, - 11,15, 7, 9,13, 9,12, 9,11,15,11,15,13,15,19,15, - 18, 9,11,15,12,15,13,15,19,16,18, 5, 7, 9, 7, 9, - 7, 9,11, 9,11, 9,11,15,11,15, 7, 9,11, 9,11, 9, - 11,15,11,15, 7, 9,12, 9,13, 9,12,15,12,15,13,15, - 19,15,18, 9,12,15,12,16,13,15,19,15,18, 5, 7, 9, - 7, 9, 7, 9,11, 9,11, 9,11,15,12,16, 7, 9,11, 9, - 11, 9,11,15,12,15, 7, 9,11, 9,11, 9,11,13,11,13, - 11,13,17,14,17, 9,11,13,11,14,12,14,18,14,18, 9, - 12,15,12,15,11,14,17,14,17,15,17,18,18,20,12,14, - 18,14,18,16,17,20,17,21, 7, 9,11, 9,11, 9,11,14, - 11,13,12,14,18,13,17, 9,11,14,11,14,12,14,18,14, - 17, 9,12,15,12,15,11,14,18,13,18,15,17,20,17,19, - 12,14,18,14,18,16,18,20,18,21, 7, 9,13, 9,13, 9, - 12,16,12,16,13,16,19,15,19, 9,12,15,12,16,13,15, - 18,16,21, 9,12,15,12,15,11,13,18,14,18,15,18,21, - 18,19,12,14,18,13,18,15,18,21,17,19,13,16,20,16, - 19,15,18,21,17,20,19,19,21,20,21,15,18,21,17,20, - 19,21,21,21,21, 9,12,16,12,16,11,14,18,14,18,15, - 17,20,17,20,12,14,18,14,18,16,17,21,19,21,13,15, - 19,16,18,15,18,21,18,20,19,21,21,18,21,16,18,20, - 18,20,19,21,21,21,20, 5, 7, 9, 7, 9, 7, 9,11, 9, - 11, 9,12,15,12,15, 7, 9,11, 9,11, 9,12,15,12,15, - 7, 9,12, 9,11, 9,11,13,11,13,12,14,17,14,17, 9, - 11,13,11,13,11,13,18,14,17, 9,12,15,12,15,12,14, - 17,14,18,15,18,19,19,20,12,13,17,14,18,15,17,19, - 19,20, 7, 9,11, 9,12, 9,11,14,11,14,12,14,17,14, - 17, 9,11,14,11,13,12,14,18,13,16, 9,12,15,12,15, - 12,14,18,14,17,16,18,20,18,20,12,14,17,14,18,16, - 18,20,17,20, 7, 9,13, 9,13, 9,12,16,12,16,13,15, - 21,16,20, 9,12,16,12,15,13,16,18,16,21, 9,12,15, - 12,16,12,14,17,14,17,15,18,21,17,20,11,14,17,14, - 18,15,17,20,18,21,13,15,19,16,19,15,17,20,18,21, - 18,20,21,21,21,15,17,20,18,21,20,19,21,21,21, 9, - 12,16,12,15,12,14,18,14,18,15,18,20,18,21,11,14, - 18,14,19,16,18,19,17,21,13,16,18,16,19,15,18,21, - 19,21,19,19,21,21,21,15,17,20,17,20,19,21,20,20, + 2, 5, 4, 7, 7, 5, 7, 7, 9, 9, 5, 7, 7, 9, 9, 7, + 9, 9,13,13, 7, 9, 9,13,13, 5, 7, 7, 9, 9, 7, 9, + 9,12,12, 7, 9, 9,12,12,10,12,12,16,16,10,12,12, + 16,15, 4, 7, 7, 9, 9, 7, 9, 9,12,12, 7, 9, 9,12, + 11, 9,12,12,16,16,10,12,12,16,15, 7, 9, 9,12,12, + 10,12,12,16,16, 9,12,12,16,16,14,16,16,19,20,14, + 16,16,20,19, 7, 9, 9,13,13,10,12,12,16,16,10,12, + 12,16,16,14,16,16,19,21,14,16,16,21,20, 5, 7, 7, + 9, 9, 7, 9, 9,12,12, 7, 9, 9,12,12, 9,12,12,16, + 16, 9,12,12,16,16, 7, 9, 9,12,12, 9,11,11,14,14, + 9,11,11,14,14,12,14,14,17,18,12,14,14,18,18, 7, + 9, 9,12,12, 9,11,11,14,14, 9,11,11,14,14,12,15, + 14,18,18,12,14,14,19,19,10,12,12,16,16,12,14,14, + 18,19,12,14,14,19,18,16,17,20,20,21,16,19,20,20, + 20,10,12,12,16,16,12,14,14,20,20,12,14,14,19,18, + 16,18,17,21,19,16,18,19,20,20, 5, 7, 7, 9, 9, 7, + 9, 9,12,12, 7, 9, 9,12,12, 9,12,12,16,16, 9,12, + 12,17,16, 7, 9, 9,12,12, 9,11,11,14,14, 9,11,11, + 14,14,12,14,14,19,19,12,14,14,17,19, 7, 9, 9,12, + 12, 9,11,11,14,14, 9,11,11,14,14,12,14,14,18,20, + 12,14,14,18,18, 9,12,12,16,16,12,14,14,19,19,12, + 14,14,18,20,16,19,19,21,21,16,18,18,21,21, 9,12, + 12,16,16,12,14,14,19,18,12,14,14,20,19,16,17,18, + 21,21,16,19,17,21,19, 7,10, 9,13,13, 9,12,12,16, + 16, 9,12,12,17,16,13,16,16,20,20,13,17,16,21,21, + 9,12,12,16,16,12,14,14,19,18,12,14,14,19,19,16, + 18,19,20,20,16,19,18,21,21, 9,12,12,16,16,12,14, + 14,21,17,12,14,14,18,19,16,18,18,21,21,16,18,18, + 21,21,14,16,16,19,20,16,18,18,20,21,16,19,18,21, + 21,20,20,21,21,21,20,20,21,21,21,13,16,16,20,20, + 16,20,17,21,20,16,18,18,21,21,19,21,21,21,21,20, + 21,21,21,21, 7, 9, 9,13,13, 9,12,12,16,16, 9,12, + 12,17,16,13,16,16,19,20,13,16,16,20,20, 9,12,12, + 16,16,12,14,14,19,18,12,14,14,19,18,16,18,19,21, + 21,16,19,19,21,21, 9,12,12,16,16,12,14,14,19,21, + 12,14,14,20,17,16,19,19,21,21,16,20,18,21,20,14, + 16,16,21,20,16,19,19,20,21,16,17,18,20,20,20,21, + 21,21,21,18,21,21,21,21,13,16,16,20,21,16,19,19, + 21,21,16,17,17,20,21,20,21,19,21,21,19,21,20,20, 20, }; @@ -75,7 +74,7 @@ static float _vq_quantthresh_res0_128_1024_3[] = { }; static long _vq_quantmap_res0_128_1024_3[] = { - 4, 3, 0, 1, 2, + 3, 1, 0, 2, 4, }; static encode_aux_threshmatch _vq_auxt_res0_128_1024_3 = { diff --git a/lib/books/res0_128_1024_4.vqh b/lib/books/res0_128_1024_4.vqh index c2a8181d..e4882044 100644 --- a/lib/books/res0_128_1024_4.vqh +++ b/lib/books/res0_128_1024_4.vqh @@ -1,13 +1,12 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * + * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -21,53 +20,53 @@ static long _vq_quantlist_res0_128_1024_4[] = { 2, - 3, - 4, 1, + 3, 0, + 4, }; static long _vq_lengthlist_res0_128_1024_4[] = { - 5, 6, 8, 6, 8, 6, 6, 9, 6, 9, 8, 9,11, 9,11, 6, - 6, 9, 6, 9, 8, 9,11, 9,11, 6, 7, 9, 6, 9, 6, 7, - 10, 7,10, 9,10,12,10,12, 7, 7,10, 7,10, 9,10,12, - 10,12, 8, 9,11, 9,11, 9,10,12,10,12,11,12,14,12, - 14, 9,10,12,10,12,11,12,15,12,14, 6, 7, 9, 7, 9, - 7, 7,10, 7,10, 9,10,12,10,12, 7, 7,10, 7,10, 9, - 10,12,10,12, 8, 9,11, 9,11, 9,10,12,10,12,11,12, - 15,12,14, 9,10,12,10,12,11,12,14,12,14, 6, 7, 9, - 7, 9, 7, 7,10, 7,10, 9,10,12,10,12, 7, 7,10, 7, - 10, 9,10,12,10,12, 7, 7,10, 7,10, 7, 8,10, 8,11, - 10,11,13,11,13, 7, 8,11, 8,11,10,11,13,11,13, 9, - 10,12,10,12,10,11,13,11,13,12,13,15,13,16,10,11, - 14,11,13,12,14,15,13,16, 7, 7,10, 8,10, 7, 8,11, - 8,11,10,11,13,11,13, 7, 8,11, 8,11,10,11,13,11, - 13, 9,10,12,10,12,10,11,13,11,13,12,13,15,13,15, - 10,11,13,11,14,12,13,16,13,16, 8, 9,11, 9,11, 9, - 10,12,10,12,11,12,15,12,15, 9,10,12,10,12,11,12, - 15,12,15, 9,10,12,10,12,10,11,13,11,13,12,14,15, - 13,16,10,11,13,11,13,12,14,16,13,16,11,12,15,12, - 14,12,13,16,13,17,15,15,17,16,18,12,13,16,13,16, - 15,16,19,16,17, 9,10,12,10,12,10,11,14,11,13,12, - 14,15,13,16,10,11,13,11,13,12,13,15,14,16,11,12, - 14,12,15,12,13,16,13,16,14,15,18,15,17,12,13,16, - 14,16,14,16,18,16,18, 6, 7, 9, 7, 9, 6, 7,10, 7, - 10, 9,10,12,10,12, 7, 7,10, 7,10, 9,10,12,10,12, - 7, 7,10, 7,10, 7, 8,11, 8,11,10,11,13,11,13, 7, - 8,11, 9,11,10,11,13,11,14, 9,10,12,10,12,10,11, - 13,11,13,12,14,16,13,15,10,11,13,11,13,12,13,15, - 13,16, 7, 7,10, 8,10, 7, 8,11, 8,11,10,11,13,11, - 13, 7, 8,11, 8,11,10,11,13,11,13, 9,10,12,10,12, - 10,11,13,11,13,12,13,16,13,15,10,11,13,11,13,12, - 13,16,13,15, 8, 9,11, 9,11, 9,10,12,10,12,11,12, - 14,12,15, 9,10,12,10,12,11,12,15,13,14, 9,10,12, - 10,12,10,11,14,11,13,12,13,16,13,16,10,11,13,11, - 13,12,13,17,14,17,11,13,15,12,15,12,13,16,13,16, - 15,15,19,16,18,12,13,16,13,16,14,15,16,16,18, 9, - 10,12,10,12,10,11,13,11,14,12,14,15,14,16,10,11, - 13,11,13,12,13,16,13,15,11,12,14,12,15,12,13,16, - 14,16,15,16,17,16,17,12,13,16,13,16,15,16,18,15, - 16, + 5, 6, 6, 8, 8, 6, 6, 6, 9, 9, 6, 6, 6, 9, 9, 8, + 9, 9,12,12, 8, 9, 9,11,11, 6, 7, 6, 9, 9, 6, 7, + 7,10,10, 6, 7, 7,10,10, 9,10,10,13,12, 9,10,10, + 13,13, 6, 6, 6, 9, 9, 6, 7, 7,10,10, 6, 7, 7,10, + 10, 9,10,10,13,13, 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,16,15, 8, 9, 9,12,12, 9,10,10,13,13, 9,10, + 10,13,13,12,13,13,16,15,12,13,13,16,15, 6, 7, 7, + 9, 9, 7, 8, 8,10,10, 6, 7, 7,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,14, 6, + 7, 8,10,10, 7, 9, 8,11,11, 7, 9, 9,11,11,10,11, + 11,15,14,10,11,11,14,14, 9,10,10,14,13,10,11,11, + 14,14,10,12,11,14,14,13,14,14,16,17,13,14,15,18, + 16, 9,10,10,13,14,10,11,11,15,14,10,11,11,14,15, + 13,14,14,16,16,13,14,15,16,16, 6, 7, 7, 9, 9, 6, + 8, 7,10,10, 7, 8, 8,10,10, 9,10,10,13,13, 9,10, + 10,13,13, 6, 8, 7,10,10, 7, 9, 9,11,11, 7, 8, 9, + 11,11,10,11,11,14,14,10,11,11,13,14, 6, 8, 7,10, + 10, 7, 9, 9,11,11, 7, 9, 8,11,11,10,11,11,14,14, + 10,12,11,14,13, 9,10,10,13,13,10,12,11,14,14,10, + 11,11,14,14,13,14,14,17,17,13,14,14,15,16, 9,10, + 10,14,14,10,11,11,14,15,10,11,11,14,14,13,14,15, + 17,16,13,14,14,16,15, 8, 9, 9,12,12, 9,11,10,14, + 14, 9,10,10,13,14,12,14,14,16,16,12,13,14,16,16, + 9,10,10,13,13,10,11,11,15,14,10,12,12,15,14,14, + 15,15,17,17,14,15,15,17,16, 9,10,10,13,13,10,12, + 11,15,14,10,11,12,14,15,13,15,15,16,16,14,14,15, + 17,17,12,14,13,16,16,13,14,15,17,18,13,15,14,17, + 17,16,17,17,17,19,16,17,17,18,20,12,13,13,16,16, + 13,15,14,17,16,13,14,15,16,17,15,17,16,20,17,15, + 16,18,18,18, 8, 9, 9,12,12, 9,10,10,13,13, 9,11, + 10,14,13,12,13,14,16,16,13,13,14,16,16, 9,10,10, + 13,13,10,12,11,14,14,10,11,12,14,15,14,15,14,17, + 17,14,15,15,17,18, 9,10,10,13,13,10,11,12,14,15, + 10,12,11,15,14,13,14,15,17,18,14,15,14,16,16,12, + 13,14,17,16,13,15,14,17,17,13,14,14,17,18,16,17, + 17,19,18,16,16,17,17,19,12,13,13,16,16,13,15,15, + 17,17,13,15,14,17,16,16,16,17,18,19,15,17,16,17, + 19, }; static float _vq_quantthresh_res0_128_1024_4[] = { @@ -75,7 +74,7 @@ static float _vq_quantthresh_res0_128_1024_4[] = { }; static long _vq_quantmap_res0_128_1024_4[] = { - 4, 3, 0, 1, 2, + 3, 1, 0, 2, 4, }; static encode_aux_threshmatch _vq_auxt_res0_128_1024_4 = { diff --git a/lib/books/res0_128_1024_5.vqh b/lib/books/res0_128_1024_5.vqh index bb35cff7..d5bc992e 100644 --- a/lib/books/res0_128_1024_5.vqh +++ b/lib/books/res0_128_1024_5.vqh @@ -1,13 +1,12 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * + * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -20,41 +19,56 @@ #include "codebook.h" static long _vq_quantlist_res0_128_1024_5[] = { - 3, - 4, - 5, 6, + 5, + 7, + 4, + 8, + 3, + 9, 2, + 10, 1, + 11, 0, + 12, }; static long _vq_lengthlist_res0_128_1024_5[] = { - 1, 4, 6, 6, 4, 6, 6, 4, 6, 8, 8, 6, 8, 8, 6, 8, - 11,10, 8,11,11, 6, 9,11,12, 9,11,12, 4, 6, 8, 8, - 6, 8, 8, 6, 8,11,10, 8,11,11, 6, 9,11,12, 9,11, - 12, + 1, 4, 4, 6, 6, 6, 6, 8, 8, 9, 9,10,10, 4, 6, 6, + 8, 8, 9, 9,11,11,12,12,13,13, 4, 6, 6, 8, 8, 9, + 9,11,11,12,12,13,13, 6, 9, 9,12,11,12,12,13,14, + 14,14,15,15, 6, 9, 9,12,11,12,12,13,13,14,14,15, + 16, 7, 9, 9,12,12,14,14,15,15,16,16,17,17, 7, 9, + 9,12,12,14,14,15,15,16,16,16,17, 8,11,11,14,14, + 15,15,16,16,17,17,19,18, 8,11,11,14,14,15,15,16, + 16,17,17,17,18, 9,13,13,15,15,16,16,17,17,18,18, + 18,18, 9,12,13,15,15,16,16,17,17,18,17,19,18,10, + 14,14,16,16,18,17,19,20,19,19,19,19,10,14,14,16, + 16,18,18,18,17,18,19,20,19, }; static float _vq_quantthresh_res0_128_1024_5[] = { - -2.5, -1.5, -0.5, 0.5, 1.5, 2.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[] = { - 6, 5, 4, 0, 1, 2, 3, + 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, - 7, - 7 + 13, + 13 }; static static_codebook _vq_book_res0_128_1024_5 = { - 2, 49, + 2, 169, _vq_lengthlist_res0_128_1024_5, - 1, -533200896, 1611661312, 3, 0, + 1, -531103744, 1611661312, 4, 0, _vq_quantlist_res0_128_1024_5, NULL, &_vq_auxt_res0_128_1024_5, diff --git a/lib/books/res0_128_1024_6.vqh b/lib/books/res0_128_1024_6.vqh index 937d8180..91de5995 100644 --- a/lib/books/res0_128_1024_6.vqh +++ b/lib/books/res0_128_1024_6.vqh @@ -1,13 +1,12 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * + * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -20,41 +19,56 @@ #include "codebook.h" static long _vq_quantlist_res0_128_1024_6[] = { - 3, - 4, - 5, 6, + 5, + 7, + 4, + 8, + 3, + 9, 2, + 10, 1, + 11, 0, + 12, }; static long _vq_lengthlist_res0_128_1024_6[] = { - 2, 4, 5, 6, 4, 5, 6, 4, 5, 6, 7, 5, 6, 7, 5, 6, - 8, 9, 7, 8, 9, 6, 8, 9,11, 8,10,11, 4, 5, 6, 7, - 5, 6, 7, 5, 6, 8, 9, 7, 8, 9, 6, 8,10,11, 8, 9, - 11, + 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,12,12,13,13,14,14, 8, 9, 9,10,10,11,11,12, + 12,13,13,14,14, 9,10,10,11,11,13,12,13,13,14,14, + 14,15, 9,10,10,11,11,12,12,13,13,14,14,14,15,10, + 11,11,12,12,13,13,14,14,15,15,15,15,10,11,11,12, + 12,14,13,14,14,15,15,15,15, }; static float _vq_quantthresh_res0_128_1024_6[] = { - -2.5, -1.5, -0.5, 0.5, 1.5, 2.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_6[] = { - 6, 5, 4, 0, 1, 2, 3, + 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, - 7, - 7 + 13, + 13 }; static static_codebook _vq_book_res0_128_1024_6 = { - 2, 49, + 2, 169, _vq_lengthlist_res0_128_1024_6, - 1, -533200896, 1611661312, 3, 0, + 1, -531103744, 1611661312, 4, 0, _vq_quantlist_res0_128_1024_6, NULL, &_vq_auxt_res0_128_1024_6, diff --git a/lib/books/res0_128_1024_7.vqh b/lib/books/res0_128_1024_7.vqh index 80d7264f..0c500552 100644 --- a/lib/books/res0_128_1024_7.vqh +++ b/lib/books/res0_128_1024_7.vqh @@ -1,13 +1,12 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * + * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -20,46 +19,100 @@ #include "codebook.h" static long _vq_quantlist_res0_128_1024_7[] = { - 5, - 6, - 7, - 8, + 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, 5, 6, 6, 4, 5, 6, 6, 4, 5, 7, 8, 8, 5, 7, - 8, 8, 6, 7, 9,10,10, 7, 9,10,10, 6, 8,10,11,10, - 8,10,11,11, 6, 8,10,11,12, 8,10,11,12, 4, 5, 7, - 8, 8, 5, 7, 8, 8, 6, 7, 9,10,10, 7, 9,10,10, 6, - 8,10,11,10, 8,10,11,11, 6, 8,10,11,12, 8,10,11, - 12, + 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, + 11,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,12,13,13, 6, 7, 7, 9, 8, 9, 9,10,10,11,11,11, + 11,11,11,11,11,12,12,12,12,13,12,13,13, 7, 8, 8, + 10, 9,10,10,11,11,11,11,12,12,12,12,12,12,13,13, + 13,13,13,13,14,14, 7, 8, 8,10, 9,10,10,11,11,11, + 12,12,12,12,12,13,12,13,13,13,13,14,14,14,14, 8, + 9, 9,10,10,11,11,12,12,12,12,13,13,13,13,13,13, + 13,13,14,14,14,14,15,15, 8, 9, 9,10,10,11,11,12, + 12,12,12,13,13,13,13,13,13,13,13,14,14,14,14,14, + 14, 8,10,10,11,11,12,12,12,12,13,13,13,13,13,13, + 14,14,14,14,14,14,14,15,15,15, 8,10,10,11,11,12, + 12,12,13,13,13,13,13,13,13,14,14,14,14,14,15,15, + 15,15,15, 9,10,10,12,12,13,13,13,13,14,14,14,14, + 14,14,14,14,15,15,15,15,15,15,16,16, 9,10,10,12, + 12,12,12,13,13,13,13,14,14,14,14,14,14,15,14,15, + 15,15,15,16,15, 8,10,10,12,11,13,13,13,13,14,13, + 14,14,14,14,15,15,15,15,15,16,16,16,16,16, 8,10, + 10,12,11,12,12,13,13,13,13,14,14,15,14,15,14,15, + 15,15,15,15,15,16,16, 9,11,11,12,12,13,13,14,14, + 14,14,15,14,15,15,15,15,15,15,16,16,16,16,16,17, + 9,11,11,12,12,13,13,14,13,14,14,14,15,15,15,15, + 15,15,15,16,16,16,16,17,16, 9,11,11,12,13,13,13, + 14,14,15,14,15,15,15,15,15,16,16,16,16,16,17,16, + 18,17, 9,11,11,13,13,13,14,14,14,15,15,15,14,15, + 15,16,16,16,16,16,16,16,16,17,17,10,12,12,13,13, + 14,14,14,15,15,15,15,15,15,15,16,16,16,17,16,16, + 17,16,17,17,10,12,12,13,13,14,14,14,14,15,15,15, + 15,16,16,16,16,16,16,17,16,17,17,17,17,10,12,12, + 13,13,14,14,15,15,15,15,15,16,17,16,17,16,16,18, + 17,17,18,17,18,17,10,12,12,13,14,14,14,15,15,15, + 15,16,15,16,16,16,16,16,17,16,16,19,17,18,17,11, + 13,12,14,14,15,15,15,15,15,16,16,16,16,17,16,16, + 18,17,17,17,17,17,17,19,11,13,13,14,14,15,15,15, + 16,16,16,16,16,17,16,16,16,18,18,17,17,17,17,18, + 17, }; static float _vq_quantthresh_res0_128_1024_7[] = { - -4, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 4, + -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[] = { - 8, 7, 6, 5, 0, 1, 2, 3, - 4, + 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, - 9, - 9 + 25, + 25 }; static static_codebook _vq_book_res0_128_1024_7 = { - 2, 81, + 2, 625, _vq_lengthlist_res0_128_1024_7, - 1, -531365888, 1611661312, 4, 0, + 1, -529006592, 1611661312, 5, 0, _vq_quantlist_res0_128_1024_7, NULL, &_vq_auxt_res0_128_1024_7, diff --git a/lib/books/res0_128_1024_8.vqh b/lib/books/res0_128_1024_8.vqh index f70e2f87..5462940a 100644 --- a/lib/books/res0_128_1024_8.vqh +++ b/lib/books/res0_128_1024_8.vqh @@ -1,13 +1,12 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * + * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -20,56 +19,199 @@ #include "codebook.h" static long _vq_quantlist_res0_128_1024_8[] = { - 11, - 12, - 13, - 14, - 16, - 19, + 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, 4, 5, 6, 7, 6, 8, 4, 5, 6, 7, 6, 8, 4, 6, 7, - 8, 8, 8,10, 6, 7, 8, 8, 8,10, 6, 7, 9, 9,10,10, - 11, 7, 9, 9,10,10,11, 6, 8,10,10,10,10,11, 8,10, - 10,10,10,11, 7, 9,11,11,11,11,12, 9,11,11,11,11, - 12, 7, 9,11,11,12,12,13, 9,11,11,12,12,13, 9,11, - 13,13,13,14,14,11,13,13,13,14,15, 4, 6, 7, 8, 8, - 8,10, 6, 7, 8, 8, 8,10, 6, 8, 9, 9,10,10,11, 8, - 9, 9,10,10,11, 7, 8,10,10,10,10,11, 8,10,10,10, - 10,11, 7, 9,11,11,11,11,12, 9,11,11,11,11,12, 7, - 9,11,11,11,12,13, 9,11,11,11,12,13, 9,11,13,13, - 13,13,15,11,13,13,13,14,14, + 3, 5, 5, 5, 6, 6, 6, 7, 7, 7, 7, 7, 7, 8, 8, 8, + 8, 8, 8, 9, 8, 9, 9, 9, 9, 8, 8, 9, 9, 9, 9, 9, + 9,10,10,10,10,10,10,11,10,10,10, 5, 6, 6, 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,10,10,10,11,10,11,11,11,11, + 11,11,12,12,11,11, 5, 6, 6, 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,10,10,10,11,10,11,11,11,11,11,11,12,12,11, + 11, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9,10, 9,10,10, + 10,10,10,10,11,11,11,11,11,11,11,11,11,11,11,11, + 11,11,12,11,12,12,12,12,12,12,12,12, 7, 8, 7, 8, + 8, 9, 9, 9, 9, 9, 9,10, 9,10,10,10,10,10,10,11, + 10,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12, + 12,12,12,12,12,12,12, 8, 8, 8, 9, 9, 9,10,10,10, + 10,10,10,10,11,11,11,11,11,11,11,11,11,11,12,11, + 11,11,12,12,12,12,12,12,12,12,13,13,13,13,13,13, + 12,12, 8, 8, 8, 9, 9, 9,10,10,10,10,10,10,10,11, + 10,11,11,11,11,11,11,12,11,12,12,11,11,12,12,12, + 12,12,12,12,12,13,13,13,13,13,13,12,12, 8, 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,12,12,12,13,13,13,13,13, + 13,13,13,13,13,13,13,13, 8, 9, 9,10,10,10,10,10, + 10,11,11,11,11,11,11,11,11,12,11,12,12,12,12,12, + 12,12,12,12,12,13,13,13,13,13,13,13,13,13,13,14, + 13,13,13, 9,10,10,10,10,11,11,11,11,11,11,12,11, + 12,12,12,12,12,12,12,12,12,12,13,13,13,13,13,12, + 13,13,13,13,14,13,14,14,14,14,14,14,13,13, 9,10, + 10,10,10,11,11,11,11,11,11,11,11,12,12,12,12,12, + 12,12,12,13,12,13,13,13,12,13,13,13,13,13,13,13, + 13,14,14,14,14,14,14,13,13, 9,10,10,11,11,11,11, + 12,12,12,12,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,15,14,14, 9,10,10,11,11,11,11,12,11,12,12,12, + 12,12,12,12,12,13,12,13,13,13,13,13,13,13,13,13, + 13,14,13,13,14,14,14,14,14,14,14,15,14,14,14,10, + 11,11,11,11,12,12,12,12,12,12,13,12,13,13,13,13, + 13,13,13,13,13,13,14,13,13,13,13,13,14,15,14,14, + 14,14,14,14,14,14,15,15,14,14,10,11,11,11,11,12, + 12,12,12,12,12,12,12,13,12,13,13,13,13,13,13,13, + 13,14,14,13,14,14,13,14,14,14,14,14,14,14,15,14, + 14,15,15,14,14,10,11,11,12,12,12,12,13,12,13,12, + 13,13,13,13,13,13,14,14,14,13,14,14,14,14,14,14, + 14,14,14,15,14,15,15,15,15,15,15,15,16,15,14,14, + 10,11,11,12,12,12,12,12,13,13,13,13,13,13,13,13, + 13,14,13,13,13,13,14,14,14,14,14,14,14,14,14,15, + 14,15,15,15,15,15,14,15,15,14,14,10,11,11,12,12, + 12,12,13,13,13,13,13,13,14,13,13,13,14,14,14,14, + 14,14,14,15,14,14,14,15,15,15,15,15,15,15,15,15, + 16,15,15,15,15,15,10,11,12,12,12,12,13,13,13,13, + 13,13,13,14,13,14,14,14,13,14,14,14,14,14,15,14, + 14,14,15,15,15,15,15,15,15,15,16,15,15,16,16,15, + 15,11,12,12,12,12,13,13,13,13,13,13,13,13,13,14, + 14,14,14,14,15,14,15,15,15,14,15,15,15,15,15,15, + 16,15,15,15,16,15,15,16,16,16,15,16,11,12,12,12, + 12,13,13,13,13,13,13,14,14,14,14,14,14,14,14,14, + 14,15,15,15,15,14,15,15,14,15,15,15,15,16,15,16, + 16,16,16,16,16,16,15,11,12,12,13,13,13,13,14,13, + 14,14,14,13,14,14,14,14,14,14,15,14,15,15,15,15, + 15,15,15,15,16,15,15,15,16,16,16,16,16,16,16,15, + 16,15,11,12,12,13,13,13,13,13,13,14,13,14,14,14, + 14,14,14,15,14,14,14,15,15,15,15,15,15,15,15,15, + 15,16,15,15,16,15,16,15,16,16,16,15,15,12,13,13, + 13,13,14,13,14,14,14,14,14,14,15,14,15,14,15,15, + 15,15,15,15,15,15,15,15,15,15,16,16,15,16,17,16, + 17,16,16,17,17,16,16,15,12,12,12,13,13,13,14,14, + 14,14,14,14,14,14,14,15,15,15,15,15,15,15,15,16, + 16,15,15,16,15,15,16,16,16,16,16,16,16,17,16,16, + 16,16,16,10,12,12,13,13,13,13,14,13,14,14,14,14, + 15,14,15,15,15,15,15,15,16,15,15,15,15,16,15,16, + 16,15,16,17,16,16,18,17,17,17,18,17,16,16,10,12, + 12,12,13,13,13,14,14,14,14,14,14,14,14,14,14,15, + 15,15,15,15,15,15,15,16,16,15,16,16,16,16,17,16, + 16,17,16,17,16,17,16,16,16,11,12,12,13,13,13,14, + 14,14,14,14,14,14,14,15,15,15,15,15,16,15,15,16, + 15,16,16,16,16,18,17,16,17,16,16,17,17,17,16,16, + 17,16,17,16,11,12,12,13,13,13,13,15,14,15,14,15, + 14,15,14,15,15,15,15,15,15,15,15,15,15,16,16,16, + 16,16,16,17,16,16,17,16,16,17,17,17,18,17,17,11, + 12,12,13,13,14,14,14,15,14,15,15,15,15,15,15,15, + 15,15,16,15,16,16,16,16,17,16,17,16,17,17,17,17, + 17,19,17,18,17,18,18,17,17,17,11,12,12,13,13,14, + 14,14,14,14,15,15,15,16,16,15,15,16,16,15,15,16, + 15,16,16,16,16,17,17,18,16,17,16,18,16,17,16,18, + 16,17,17,17,17,12,13,13,14,14,14,14,14,14,15,15, + 15,15,16,16,16,16,16,16,17,16,16,16,16,16,16,16, + 18,17,16,17,18,17,17,20,18,19,17,19,18,20,18,17, + 12,13,13,14,14,14,14,15,14,15,15,16,15,15,15,16, + 16,15,15,17,16,17,16,17,16,16,16,16,16,17,16,20, + 17,19,19,18,18,19,19,17,18,19,17,12,13,13,14,14, + 14,15,15,15,16,15,16,15,15,15,16,15,16,16,17,17, + 16,16,16,17,16,17,17,18,17,17,18,18,19,18,18,18, + 17,17,20,19,17,17,12,13,14,14,15,15,15,15,15,15, + 15,15,16,16,16,16,16,17,16,16,17,18,16,16,16,18, + 16,18,18,18,17,18,17,18,18,18,19,17,18,18,19,18, + 17,13,14,14,15,15,15,15,16,15,15,16,15,16,17,17, + 16,16,17,17,17,17,17,17,16,19,18,19,18,17,17,17, + 18,20,20,17,18,18,18,18,19,18,18,20,13,14,14,14, + 15,15,15,15,15,16,16,16,16,16,16,16,16,17,17,17, + 17,17,17,16,18,19,17,19,17,17,17,18,17,18,17,18, + 18,19,19,19,18,20,18,13,14,14,15,16,16,15,16,17, + 16,16,16,17,17,17,17,20,17,17,18,18,17,17,19,18, + 17,18,19,18,18,17,19,18,17,18,18,19,18,20,20,20, + 19,19,13,14,14,15,15,15,16,16,16,16,17,16,17,17, + 17,18,17,17,17,16,17,17,17,17,18,20,18,19,18,19, + 19,18,18,18,19,17,18,18,18,18,20,18,17,14,15,15, + 15,16,15,17,16,17,16,18,17,17,17,17,16,18,19,17, + 18,19,19,17,19,19,18,18,19,18,18,18,18,20,20,20, + 20,20,19,20,20,18,18,18,14,15,15,16,15,16,16,17, + 17,17,17,17,16,20,17,17,19,17,19,17,17,19,17,17, + 20,17,20,18,20,19,19,18,18,19,20,20,20,20,18,18, + 20,19,18,13,15,15,15,15,15,15,17,16,16,16,16,17, + 16,16,16,17,17,19,17,18,18,18,19,18,18,19,18,18, + 17,18,19,19,18,20,18,18,18,20,18,17,17,19,13,15, + 15,15,15,15,16,16,16,16,17,17,17,17,17,17,17,17, + 18,17,18,17,17,17,18,17,18,18,17,18,17,19,18,17, + 18,17,17,19,17,18,18,18,17, }; static float _vq_quantthresh_res0_128_1024_8[] = { - -9.5, -6.5, -4, -2.5, -1.5, -0.5, 0.5, 1.5, - 2.5, 4, 6.5, 9.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, }; static long _vq_quantmap_res0_128_1024_8[] = { - 12, 11, 10, 9, 8, 7, 0, 1, - 2, 3, 4, 5, 6, + 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, - 13, - 13 + 43, + 43 }; static static_codebook _vq_book_res0_128_1024_8 = { - 2, 169, + 2, 1849, _vq_lengthlist_res0_128_1024_8, - 1, -529137664, 1611661312, 5, 0, + 1, -527106048, 1611661312, 6, 0, _vq_quantlist_res0_128_1024_8, NULL, &_vq_auxt_res0_128_1024_8, diff --git a/lib/books/res0_128_1024_9.vqh b/lib/books/res0_128_1024_9.vqh index e0ff4485..6a6cf9f8 100644 --- a/lib/books/res0_128_1024_9.vqh +++ b/lib/books/res0_128_1024_9.vqh @@ -1,13 +1,12 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * + * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -20,78 +19,477 @@ #include "codebook.h" static long _vq_quantlist_res0_128_1024_9[] = { - 56, - 57, - 58, - 59, - 61, - 64, - 67, - 70, - 73, - 76, - 80, - 84, - 87, - 91, - 95, - 99, - 103, - 107, + 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[] = { - 2, 4, 4, 4, 4, 5, 6, 6, 7, 7, 8, 9,10,11,12,13, - 14,14,16, 3, 4, 4, 4, 5, 5, 6, 7, 7, 8, 9,10,11, - 12,13,14,15,16, + 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,10,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,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,13,14,14, + 14,14,14,14,14,14,14,15,15,14,14,15,14,15,15,15, + 15,15,15,15,15,15,15,15,15,15,16,15,15,16,15,16, + 16,16,16,15,16,16,16,16,17,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,19,17,17,18,18,18,18,18,18,18,18,18,18, + 20,18,19,19,19,18,18,17,20,19,19,19,20,17,19,18, + 19,19,19,18,18,20,19,20,19,20,19,19,20,19,19,19, + 20,20,20,18,19,18,19,20,20,20,20,20,19,20,20,20, + 20,19,20,20,20,20,19,20,19,20,20,20,19,20,20,20, + 20,20,20,20,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, + 19,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, }; static float _vq_quantthresh_res0_128_1024_9[] = { - -53.5, -49, -45, -41, -37, -33, -29.5, -26, - -22, -18.5, -15.5, -12.5, -9.5, -6.5, -4, -2.5, - -1.5, -0.5, 0.5, 1.5, 2.5, 4, 6.5, 9.5, - 12.5, 15.5, 18.5, 22, 26, 29.5, 33, 37, - 41, 45, 49, 53.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, }; static long _vq_quantmap_res0_128_1024_9[] = { - 36, 35, 34, 33, 32, 31, 30, 29, - 28, 27, 26, 25, 24, 23, 22, 21, - 20, 19, 0, 1, 2, 3, 4, 5, - 6, 7, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, + 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, - 37, - 37 + 341, + 341 }; static static_codebook _vq_book_res0_128_1024_9 = { - 1, 37, + 1, 341, _vq_lengthlist_res0_128_1024_9, - 1, -524550144, 1611661312, 7, 0, + 1, -520798208, 1611661312, 9, 0, _vq_quantlist_res0_128_1024_9, NULL, &_vq_auxt_res0_128_1024_9, diff --git a/lib/books/res0_128_1024aux.vqh b/lib/books/res0_128_1024aux.vqh index baee07d4..2be776b3 100644 --- a/lib/books/res0_128_1024aux.vqh +++ b/lib/books/res0_128_1024aux.vqh @@ -20,13 +20,13 @@ #include "codebook.h" static long _huff_lengthlist_res0_128_1024aux[] = { - 2, 6,11,10,14,11,14,12,13,16, 5, 3, 5, 6, 9, 8, - 10, 9,11,14,10, 5, 4, 5, 7, 9, 9,11,13,15, 9, 5, - 5, 5, 7, 7, 8, 8,10,14,13, 8, 7, 7, 6, 8, 7, 9, - 11,16, 9, 7, 8, 7, 8, 7, 8, 8,10,13,13, 9, 8, 7, - 7, 8, 7, 7, 9,14,10, 8, 9, 7, 8, 7, 7, 6, 8,12, - 10, 9,10, 9, 9, 8, 8, 7, 8,11,11,10,10, 9, 8, 8, - 7, 6, 7,10, + 2, 6,11, 9,12, 9,15,13,15,20, 5, 3, 5, 5, 7, 7, + 11,11,13,15, 9, 5, 4, 5, 6, 8,11,13,15,18, 9, 5, + 5, 5, 7, 6,11,10,14,16,12, 7, 6, 7, 7, 9,11,13, + 15,20, 8, 6, 7, 6, 9, 6,10, 9,12,19,14,10, 9, 8, + 7, 7, 9, 9,12,17,10, 9,10, 8, 9, 6, 8, 7,10,14, + 11,11,13,10,11, 8, 7, 7, 8,13,13,12,13,12,11,10, + 7, 6, 8,13, }; static static_codebook _huff_book_res0_128_1024aux = { diff --git a/lib/books/res0_128_128_1.vqh b/lib/books/res0_128_128_1.vqh index c6e3572c..6efaf6c6 100644 --- a/lib/books/res0_128_128_1.vqh +++ b/lib/books/res0_128_128_1.vqh @@ -1,13 +1,12 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * + * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -21,17 +20,17 @@ static long _vq_quantlist_res0_128_128_1[] = { 1, - 2, 0, + 2, }; static long _vq_lengthlist_res0_128_128_1[] = { - 1, 4, 4, 4, 7, 7, 5, 7, 7, 5, 8, 8, 7,10,10, 7, - 10,10, 5, 7, 8, 7,10,10, 8,10,10, 5, 8, 8, 8,11, - 11, 8,10,10, 8,10,10,10,12,13,10,13,13, 8,10,10, - 10,13,13,10,13,13, 5, 8, 8, 8,10,10, 8,10,11, 8, - 11,10,10,12,13,10,12,13, 8,10,10,11,13,13,10,13, - 12, + 3, 4, 4, 5, 6, 6, 4, 6, 6, 5, 6, 6, 6, 8, 8, 6, + 7, 8, 5, 6, 6, 6, 8, 7, 6, 8, 8, 5, 6, 6, 6, 8, + 8, 6, 8, 8, 6, 8, 8, 8, 9,10, 8,10, 9, 6, 8, 8, + 8,10, 9, 8, 9,10, 5, 6, 6, 6, 8, 8, 6, 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[] = { @@ -39,7 +38,7 @@ static float _vq_quantthresh_res0_128_128_1[] = { }; static long _vq_quantmap_res0_128_128_1[] = { - 2, 0, 1, + 1, 0, 2, }; static encode_aux_threshmatch _vq_auxt_res0_128_128_1 = { diff --git a/lib/books/res0_128_128_2.vqh b/lib/books/res0_128_128_2.vqh index 3e8eab61..96063307 100644 --- a/lib/books/res0_128_128_2.vqh +++ b/lib/books/res0_128_128_2.vqh @@ -1,13 +1,12 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * + * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -20,75 +19,188 @@ #include "codebook.h" static long _vq_quantlist_res0_128_128_2[] = { - 2, 3, + 2, 4, 1, + 5, 0, + 6, }; static long _vq_lengthlist_res0_128_128_2[] = { - 2, 4, 6, 4, 6, 4, 7, 9, 7, 9, 7,10,14,10,13, 5, - 7, 9, 7, 9, 7, 9,13,10,13, 5, 7,10, 7,10, 7, 9, - 12, 9,12,10,12,14,12,15, 7, 9,12, 9,12,10,12,14, - 12,14, 7,10,13,10,14, 9,12,14,12,14,12,15,15,15, - 15,10,12,15,12,15,13,15,15,15,15, 5, 7,10, 7,10, - 7, 9,12, 9,13, 9,13,15,12,15, 7,10,13,10,11,10, - 12,15,12,15, 7,10,14,10,15,10,11,15,13,14,14,14, - 15,14,15, 9,13,15,12,14,13,14,15,14,15, 5, 7, 9, - 8,10, 7,10,13,10,11,10,12,14,13,15, 7,10,13,10, - 13,10,13,15,12,14, 7,10,13,10,11,10,12,14,12,14, - 12,14,15,14,15, 9,11,15,12,14,12,14,15,14,15, 9, - 12,15,12,15,11,15,15,14,15,14,15,15,15,15,13,13, - 15,14,15,15,15,15,15,15, 7,10,12,10,12, 9,11,14, - 12,14,12,13,15,14,15, 9,11,14,12,15,12,15,15,14, - 15,10,12,15,12,14,12,14,15,13,15,15,15,15,14,15, - 13,14,15,14,15,15,15,15,15,15, 7,10,13, 9,14,10, - 12,13,13,14,13,15,15,14,15,10,12,15,13,15,14,15, - 15,15,15,10,12,15,12,15,12,14,15,13,14,15,15,15, - 15,15,11,14,15,15,15,14,15,15,15,15,13,14,15,15, - 15,14,15,15,15,15,15,15,15,15,15,15,15,15,15,15, - 15,15,15,15,15,10,12,15,13,15,12,13,15,14,15,15, - 15,15,15,15,12,14,15,14,15,14,14,15,14,15,14,14, - 15,15,15,14,15,15,14,15,15,15,15,15,15,14,15,15, - 15,15,15,15,15,15,15, 5, 7,10, 7,10, 7,10,13,10, - 12,10,13,15,13,14, 7,10,12,10,13,10,12,15,13,15, - 7, 9,14,10,12, 9,11,15,12,14,12,14,15,15,15, 9, - 12,15,13,15,12,14,15,15,14,10,12,15,12,14,12,13, - 15,14,15,14,15,15,15,15,12,15,15,14,15,15,14,15, - 15,15, 7,10,13,10,13,10,12,14,12,14,13,14,15,14, - 14,10,12,13,12,15,12,14,15,15,15,10,12,15,13,15, - 12,14,15,14,15,15,15,15,15,15,12,14,15,15,15,15, - 14,15,15,15, 7,10,14, 9,15,10,12,15,12,15,14,15, - 15,14,15,10,12,15,12,15,15,14,15,14,15,10,12,15, - 13,15,12,14,15,14,15,15,15,15,15,15,13,13,15,13, - 15,15,15,15,15,15,13,14,15,15,15,14,15,15,14,15, - 15,15,15,15,15,14,15,15,15,15,15,15,15,15,15,10, - 12,15,12,15,13,15,15,15,15,15,15,15,15,15,12,14, - 15,14,15,14,15,15,15,15,15,14,15,15,15,14,15,15, - 15,15,15,15,15,15,15,14,15,15,15,15,15,15,15,15, + 3, 5, 5, 7, 7,10,10, 5, 7, 7, 9, 9,12,12, 5, 7, + 7, 8, 8,12,12, 7, 9, 9,14,14,16,16, 7, 9, 9,12, + 13,15,15,10,12,13,15,17,17,17,10,13,12,15,17,16, + 17, 5, 7, 7, 9, 9,12,12, 7, 8, 8,10,10,13,13, 7, + 8, 8,10,10,13,14, 9,10,10,15,16,15,15, 9,11,11, + 16,15,15,15,12,13,14,16,16,17,16,12,15,14,15,17, + 16,15, 5, 7, 7, 8, 9,12,11, 7, 8, 8,10,10,13,13, + 6, 8, 8,10,10,13,12, 9,11,10,14,15,15,15, 9,11, + 10,15,14,15,16,12,15,14,16,15,17,16,12,13,13,17, + 15,17,17, 7, 9, 9,14,12,14,15, 9,10,11,15,15,16, + 15, 9,10,11,13,15,15,17,14,15,16,16,17,17,17,13, + 14,15,17,17,17,17,15,17,17,17,17,16,17,16,17,17, + 17,17,17,17, 7, 9, 9,12,13,15,15, 9,10,10,14,16, + 15,17, 9,11,11,15,15,17,17,13,14,14,17,17,17,16, + 13,16,15,16,17,16,17,15,17,15,15,17,17,17,15,17, + 17,16,17,17,17,10,13,12,15,14,16,17,12,14,14,17, + 16,17,17,12,15,14,16,17,17,17,16,17,17,17,17,17, + 17,15,16,17,17,15,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,10,12,13,15,16,17,16,12,14,14, + 17,17,17,17,12,16,14,17,17,17,17,16,16,17,17,17, + 17,17,15,17,17,17,17,17,17,16,17,17,17,17,17,17, + 16,17,16,17,17,17,16, 5, 7, 7, 9, 9,12,12, 7, 8, + 8,11,10,14,14, 7, 8, 8,10,11,13,13, 9,11,11,16, + 17,16,17, 9,10,11,14,17,15,17,12,16,15,15,15,16, + 17,12,16,17,17,17,17,17, 7, 9, 8,10,10,15,13, 8, + 10,10,12,12,14,14, 8,10,10,12,11,15,16,10,12,13, + 14,17,15,16,11,12,12,17,17,17,17,14,16,16,17,17, + 17,17,14,16,17,17,16,17,16, 7, 8, 8,10,10,14,13, + 8,10,10,12,12,14,13, 8,10,10,12,12,14,14,11,12, + 12,16,16,15,16,11,13,13,16,16,17,15,15,16,17,17, + 17,17,17,15,16,15,17,16,17,16, 9,11,11,14,15,17, + 17,10,12,12,15,15,17,16,11,13,12,16,16,17,16,15, + 16,17,16,17,17,17,15,17,17,17,17,16,17,17,17,17, + 17,17,17,17,17,17,15,17,17,17,17, 9,11,11,15,15, + 16,15,10,13,12,17,16,17,15,11,13,13,15,15,15,16, + 14,17,16,17,17,17,16,14,17,17,17,16,17,17,16,17, + 17,17,16,17,17,17,17,15,17,17,17,17,13,14,15,17, + 16,16,17,14,14,15,17,16,17,17,14,16,16,17,17,16, + 17,16,17,17,17,17,17,17,16,17,17,17,17,17,17,17, + 16,17,17,17,17,17,17,17,17,17,17,17,17,12,13,15, + 17,17,17,17,14,14,16,17,17,17,17,14,17,17,17,17, + 17,17,16,17,17,17,17,17,17,17,17,17,16,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17, 5, 7, + 7, 9, 9,12,12, 7, 9, 8,10,10,13,13, 7, 8, 8,10, + 10,13,13, 9,11,10,14,14,16,15, 9,11,10,14,14,16, + 15,13,14,15,16,16,17,17,12,15,14,17,16,16,17, 7, + 8, 8,10,10,13,13, 8,10,10,12,12,14,13, 8,10,10, + 11,12,14,15,11,13,11,17,17,15,15,10,12,13,15,17, + 17,17,14,16,17,17,17,16,17,14,17,15,16,17,16,17, + 7, 8, 8,10,10,14,15, 8,10,10,11,12,13,14, 8,10, + 9,12,12,14,14,10,11,12,16,15,17,15,10,12,12,17, + 15,16,17,14,14,15,16,17,17,16,15,15,17,17,17,17, + 17, 9,11,10,16,15,17,16,10,12,12,16,15,17,17,10, + 12,12,15,15,14,17,17,17,16,17,17,16,17,15,16,17, + 16,17,17,17,17,17,17,16,17,17,17,17,17,17,17,17, + 17,17, 9,11,11,14,14,16,16,11,12,12,14,17,16,16, + 10,12,12,17,17,16,15,14,17,16,17,17,17,17,14,16, + 16,17,16,17,17,17,17,17,17,17,17,17,17,17,16,17, + 16,17,17,13,15,15,15,17,17,17,16,15,17,16,16,17, + 16,14,14,17,16,17,16,17,17,17,17,17,17,17,17,16, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,13,15,16,17,17,17,17,15,16,16,17,16, + 17,17,14,17,16,17,17,17,17,15,17,17,17,17,17,17, + 17,16,17,17,17,17,17,17,17,17,17,17,17,16,17,17, + 17,17,17,17,17, 7,10, 9,13,13,17,16, 9,11,11,14, + 14,15,17, 9,11,11,15,15,17,17,14,14,14,16,17,17, + 17,13,15,15,17,17,17,16,17,17,16,17,17,17,17,17, + 16,16,15,17,17,15, 9,11,11,15,14,17,17,11,12,13, + 16,16,16,16,11,13,12,16,17,17,16,16,16,17,17,17, + 17,17,16,16,16,17,17,17,17,16,17,17,17,17,17,17, + 17,17,17,17,17,17,17, 9,11,11,15,15,17,15,11,12, + 13,16,15,16,15,11,12,12,16,15,17,17,15,17,17,17, + 17,17,17,15,16,17,16,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,13,15,16,17,17,17,17,15, + 16,15,17,17,17,16,16,16,17,17,17,17,17,17,15,17, + 14,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 16,17,17,17,17,17,17,17,17,15,15,17,17,17,17,17, + 16,17,16,17,17,17,16,17,17,16,17,16,17,17,16,17, + 17,17,16,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,16,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,15,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17, 7, 9, 9,14, + 14,17,17, 9,11,11,14,14,15,15, 9,11,11,14,15,15, + 16,15,17,15,17,17,17,15,14,17,16,17,16,16,17,16, + 17,17,17,17,17,17,17,17,16,17,17,17,17, 9,11,11, + 15,14,15,17,11,12,13,15,17,17,17,10,13,13,16,15, + 16,17,17,17,17,17,17,17,17,17,15,15,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17, 9,11, + 11,15,16,17,17,11,13,13,15,16,15,15,11,12,12,15, + 15,16,17,15,16,17,17,17,17,16,17,17,16,17,17,16, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,14, + 16,15,17,17,17,17,17,17,15,17,16,17,17,16,15,17, + 17,17,17,17,17,17,17,17,17,17,17,17,16,17,17,16, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 15,16,15,17,17,17,17,16,17,17,17,17,17,17,16,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,15,17, + 14,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 16,16,17,17,17,17,17,17,17,17,17,17,17,17,17,16, + 16,16,17,17,17,16,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,16,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 16,16,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,16,11,13,15,14,16,17,17,14,16,14,17,17,17, + 17,13,15,15,17,17,17,17,17,17,17,17,17,17,17,15, + 17,17,17,16,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,13,15,15,16,16,17,17,17,15,17,16,17, + 17,17,14,17,16,17,16,17,17,17,17,17,17,17,17,17, + 17,17,17,17,16,17,17,17,17,17,17,17,17,17,17,17, + 17,17,16,17,17,12,15,15,17,17,17,17,15,17,15,17, + 17,16,17,14,17,17,17,17,17,17,17,17,17,17,16,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,16,16,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,16,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,16,17,17,17,17,16, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 16,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,11,13,13,17,17,17, + 15,13,15,15,17,17,17,17,13,16,15,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,13,14,14,16,17, + 17,17,16,17,17,16,17,17,17,16,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,13,14,14,17, + 17,17,17,15,16,16,17,17,17,17,15,15,16,17,17,17, + 17,17,17,17,17,17,17,17,17,16,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,16,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,16,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,16,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,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, 15, }; static float _vq_quantthresh_res0_128_128_2[] = { - -1.5, -0.5, 0.5, 1.5, + -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, }; static long _vq_quantmap_res0_128_128_2[] = { - 4, 3, 0, 1, 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, - 5, - 5 + 7, + 7 }; static static_codebook _vq_book_res0_128_128_2 = { - 4, 625, + 4, 2401, _vq_lengthlist_res0_128_128_2, - 1, -533725184, 1611661312, 3, 0, + 1, -533200896, 1611661312, 3, 0, _vq_quantlist_res0_128_128_2, NULL, &_vq_auxt_res0_128_128_2, diff --git a/lib/books/res0_128_128_3.vqh b/lib/books/res0_128_128_3.vqh index 436a51c5..ba330e04 100644 --- a/lib/books/res0_128_128_3.vqh +++ b/lib/books/res0_128_128_3.vqh @@ -1,13 +1,12 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * + * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -20,46 +19,128 @@ #include "codebook.h" static long _vq_quantlist_res0_128_128_3[] = { - 5, - 6, - 7, - 8, + 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[] = { - 1, 4, 6, 6, 7, 4, 6, 6, 7, 4, 6, 8, 9, 9, 6, 8, - 9, 9, 7, 9,10,12,11, 9,11,12,13, 7,10,13,14,15, - 10,13,13,15, 8,12,13,15,14,12,13,15,15, 4, 6, 8, - 8, 9, 6, 8, 8, 9, 6, 9,11,12,12, 9,11,12,12, 6, - 10,12,14,12,10,12,13,13, 8,12,14,15,15,12,15,13, - 13, + 3, 4, 4, 6, 6, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 9, 9, 9, 9, 9,10,10,10,10,11,11, 4, + 5, 5, 6, 6, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 9, 9, 9, 9, 9, 9, 9,10,10,10,10,11,11, 4, 5, + 5, 6, 6, 7, 7, 7, 8, 8, 8, 8, 8, 8, 9, 8, 8, 8, + 9, 9, 9, 9, 9, 9,10,10,10,10,10,11,11, 7, 7, 7, + 9, 8, 9,10,10,10,10,10,10,10,10,10,10,11,10,11, + 10,11,11,11,11,12,12,12,12,13,13,13, 7, 7, 7, 9, + 8, 9, 9,10,10,10,10,10,10,10,10,10,10,10,11,10, + 11,11,12,11,12,12,12,12,13,13,13, 9, 9, 9,10,10, + 11,11,11,11,12,12,11,12,12,12,12,12,12,12,12,13, + 12,12,13,13,13,13,14,14,14,15, 9, 9, 9,11,10,11, + 11,12,11,12,11,12,12,12,12,12,12,12,12,12,12,13, + 13,13,13,13,13,14,14,14,14,10,10,10,12,12,13,12, + 13,14,13,13,13,13,13,13,13,14,13,14,13,14,15,14, + 15,15,16,15,14,15,15,15,10,10,10,11,11,13,12,13, + 13,13,13,14,13,13,13,13,13,13,13,14,13,14,14,14, + 14,15,15,14,15,15,15,11,11,12,13,13,13,13,14,14, + 14,14,14,15,14,14,14,15,14,14,15,15,15,15,15,15, + 15,17,16,16,16,16,10,11,11,12,12,14,13,13,15,14, + 14,14,14,14,14,15,14,15,15,15,14,15,14,16,16,16, + 16,17,16,16,15,11,12,13,13,14,14,14,13,14,15,14, + 15,14,15,15,15,14,16,15,15,15,16,15,16,17,16,16, + 17,16,16,16,12,12,12,14,13,14,15,15,15,15,15,14, + 15,16,15,15,15,16,15,15,16,16,15,16,16,17,15,17, + 16,16,16,12,13,12,14,14,15,14,15,16,16,15,14,15, + 16,16,16,15,17,16,15,16,17,17,17,17,16,15,16,16, + 17,17,12,13,13,14,13,14,14,16,16,15,17,15,16,16, + 15,16,15,16,16,15,16,15,16,16,16,16,15,16,16,15, + 16,13,14,14,14,14,15,15,16,17,15,15,17,15,16,15, + 17,17,16,17,16,17,17,17,17,15,17,16,17,17,16,17, + 13,14,14,15,15,16,15,17,14,16,17,15,17,17,15,17, + 16,16,16,16,16,16,16,16,16,17,16,17,16,17,17,13, + 14,14,15,15,16,16,17,16,17,17,16,15,17,16,17,15, + 17,17,17,17,16,15,15,17,17,17,16,17,17,17,14,14, + 14,16,15,16,16,16,16,17,16,16,17,16,16,15,16,16, + 16,15,16,16,15,17,17,17,17,17,16,17,17,15,15,15, + 17,16,17,17,16,16,17,17,16,17,16,17,17,17,17,16, + 17,17,17,17,17,17,17,17,16,17,17,17,13,15,14,16, + 16,16,16,15,16,17,16,16,16,16,15,16,16,16,16,16, + 16,17,17,17,17,17,17,17,17,17,17,14,14,14,15,15, + 17,16,17,17,17,17,17,16,16,16,17,16,17,17,16,17, + 17,16,16,17,17,17,17,17,17,17,14,15,15,16,16,17, + 16,17,17,17,17,16,17,17,16,16,16,17,16,17,17,17, + 17,17,17,17,17,17,17,17,17,16,15,14,17,16,17,17, + 16,16,17,17,17,17,17,17,17,17,17,17,17,17,17,16, + 16,17,17,17,17,17,17,17,15,15,15,15,16,16,17,16, + 16,17,17,17,17,17,16,17,17,16,17,17,17,17,17,17, + 16,16,17,17,17,17,17,15,16,17,16,17,16,17,17,16, + 16,17,17,17,17,17,17,16,17,17,17,16,17,17,17,17, + 17,16,17,17,17,17,15,16,14,16,17,17,17,17,17,17, + 17,17,17,16,17,17,17,16,16,16,17,16,17,17,17,17, + 17,17,17,17,17,15,16,16,17,17,15,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,16, + 17,17,17,17,15,17,17,16,16,17,17,17,16,17,17,17, + 17,17,16,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,16,17,17,16,17,17,17,17,17,17,17,17,17, + 16,17,17,17,17,16,17,17,17,17,17,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,17,17,17,17,17,17,17,17,17,17,17,17, + 17, }; static float _vq_quantthresh_res0_128_128_3[] = { - -4, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 4, + -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[] = { - 8, 7, 6, 5, 0, 1, 2, 3, - 4, + 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, - 9, - 9 + 31, + 31 }; static static_codebook _vq_book_res0_128_128_3 = { - 2, 81, + 2, 961, _vq_lengthlist_res0_128_128_3, - 1, -531365888, 1611661312, 4, 0, + 1, -528613376, 1611661312, 5, 0, _vq_quantlist_res0_128_128_3, NULL, &_vq_auxt_res0_128_128_3, diff --git a/lib/books/res0_128_128_4.vqh b/lib/books/res0_128_128_4.vqh index ace308c4..8cbd4eb9 100644 --- a/lib/books/res0_128_128_4.vqh +++ b/lib/books/res0_128_128_4.vqh @@ -1,13 +1,12 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * + * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -20,56 +19,271 @@ #include "codebook.h" static long _vq_quantlist_res0_128_128_4[] = { - 11, - 12, - 13, - 14, - 16, - 19, + 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[] = { - 3, 3, 5, 6, 6, 6, 6, 3, 5, 6, 6, 6, 6, 4, 5, 7, - 8, 8, 7, 8, 5, 7, 8, 8, 7, 7, 7, 8,10,10,11,11, - 10, 8,10,10,11,10,11,10,10,12,12,13,13,13,11,12, - 13,15,13,13,11,13,16,16,15,15,14,13,15,15,17,15, - 17,11,16,16,17,17,17,16,15,16,17,17,17,17,12,16, - 17,17,17,17,17,16,17,17,17,17,17, 4, 5, 7, 7, 7, - 7, 8, 5, 7, 7, 8, 7, 7, 7, 8,10,11,10,10,11, 8, - 10,11,11,10,11, 9,11,12,13,14,12,13,11,12,13,13, - 13,13,11,14,13,16,16,17,15,13,15,15,15,14,15,12, - 15,16,17,17,17,17,14,17,15,15,17,16,13,16,16,16, - 16,16,16,16,15,16,16,16,16, + 4, 4, 4, 6, 6, 7, 7, 8, 7, 7, 8, 8, 8, 8, 8, 9, + 8, 9, 9,10,10,11,10,11,11,13,12,12,15,15,13, 8, + 8, 8, 8, 9, 9, 9, 9,10,10,11,10,11,10,12,11,13, + 11,12,11,12,12, 5, 5, 5, 7, 7, 7, 7, 8, 8, 8, 8, + 8, 9, 8, 9,10, 9,10,10,10,10,11,11,13,12,11,12, + 13,13,12,14, 8, 8, 8, 8, 9, 9,10,10,10,10,10,11, + 11,10,13,12,12,12,12,12,12,12, 5, 5, 5, 7, 7, 7, + 7, 8, 8, 8, 8, 8, 9, 8, 9, 9, 9, 9,10,10,11,11, + 11,11,12,13,11,12,13,13,14, 8, 8, 9, 8, 9, 9, 9, + 10,10,10,11,11,11,10,12,11,13,11,12,13,12,14, 7, + 7, 7, 9, 9, 9, 9,10,10,10,10,11,10,12,11,11,12, + 11,14,14,12,14,12,13,12,14,14,14,14,14,14,10,10, + 11,10,11,11,11,11,12,11,12,12,12,12,13,14,13,13, + 14,14,14,14, 7, 7, 7, 9, 9, 9, 9,10,10,11,11,11, + 10,11,11,11,11,11,11,13,13,12,13,14,14,12,14,14, + 13,14,14,10,11,10,10,10,10,11,14,11,11,12,12,11, + 13,14,11,13,13,14,12,14,14, 9, 9, 9,11,11,11,11, + 11,12,12,12,12,12,12,12,12,12,13,14,12,14,13,14, + 13,14,14,14,13,14,14,14,12,11,13,13,13,13,13,12, + 13,14,12,14,14,14,13,12,14,14,14,14,14,14, 9, 9, + 9,10,10,11,11,12,12,12,12,13,13,12,13,12,12,13, + 13,13,12,14,14,13,13,14,13,14,14,13,13,11,12,11, + 12,11,11,12,13,13,14,13,14,13,14,14,14,14,14,14, + 14,14,14,10,11,10,12,11,12,12,12,12,13,12,12,13, + 14,14,14,13,12,13,14,14,14,14,14,13,14,14,14,14, + 14,14,12,13,12,13,13,12,12,14,14,14,12,14,14,14, + 14,14,14,14,14,14,14,14,10,11,10,13,12,12,12,13, + 14,12,13,13,14,12,14,13,13,13,12,13,13,14,13,14, + 14,14,14,14,14,14,14,12,12,13,14,12,13,12,14,14, + 14,14,14,14,14,14,14,14,13,14,14,14,14,11,12,12, + 12,13,14,12,13,14,14,14,12,14,12,14,14,14,14,13, + 14,14,14,14,14,14,14,14,14,14,14,14,12,14,14,14, + 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, + 14,14,11,14,11,12,11,12,12,13,14,13,13,14,14,14, + 13,14,13,13,13,14,14,14,14,14,14,14,14,14,14,14, + 14,14,12,13,14,14,13,14,12,14,14,14,14,14,14,14, + 14,14,14,14,14,14,14,13,11,13,14,13,14,14,14,14, + 14,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,12,14,14,14,14,14, + 14,14,14,14,14,14,14,14,14,14,14,14,14,12,13,14, + 13,13,13,13,14,14,14,13,13,14,13,14,14,14,13,14, + 14,14,14,14,14,14,14,14,14,14,14,14,13,14,13,14, + 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, + 14,13,12,12,14,13,13,13,14,13,14,14,14,14,14,13, + 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,12,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,13,14,14,13,14,13, + 14,14,14,14,14,14,14,14,14,14,14,13,14,12,14,14, + 14,14,14,14,14,14,14,13,14,14,14,13,14,14,14,14, + 14,14,14,14,14,14,14,14,14,14,14,14,14,13,14,13, + 14,13,14,14,14,14,14,14,14,14,14,14,14,14,14,14, + 13,13,14,14,12,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,12, + 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, + 14,14,14,14,14,13,13,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,13,14,14,14,14,14,14,14,14,14,14,14, + 14,14,14,14,14,14,14,14,14,14,14,13,12,13,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,13,14,14,14,14,14, + 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,13, + 12,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,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,14,14,14,14,14,14,14, + 14,14,14,14,14,14,14,14,14,14,14,14,13,14,13,14, + 14,14,14,12,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,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,14,14,13,14,14,14,14,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,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,14,14,14,14,14,14,14,14,14, + 14,14,14,14,14,14,14,14,14,14,14,14,14,13,13,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,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,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,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,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,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,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,13,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,14,14,14,14,14,14,14,14,14,14, + 14,13,14,13,14,13,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,13,14,14,14,13,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,12,13,14,14,13,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,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, + 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, + 14,14,14,14,12,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,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,14,14,14,14,12,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,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,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,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,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,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,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,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,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,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,14,14,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,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, + 14,14,14,14,14,12,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,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,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,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,14,14,14,14,14,14,14,14,14,14, + 14,14,14,14,14,14,14,14,14, }; static float _vq_quantthresh_res0_128_128_4[] = { - -9.5, -6.5, -4, -2.5, -1.5, -0.5, 0.5, 1.5, - 2.5, 4, 6.5, 9.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, }; static long _vq_quantmap_res0_128_128_4[] = { - 12, 11, 10, 9, 8, 7, 0, 1, - 2, 3, 4, 5, 6, + 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, - 13, - 13 + 53, + 53 }; static static_codebook _vq_book_res0_128_128_4 = { - 2, 169, + 2, 2809, _vq_lengthlist_res0_128_128_4, - 1, -529137664, 1611661312, 5, 0, + 1, -526778368, 1611661312, 6, 0, _vq_quantlist_res0_128_128_4, NULL, &_vq_auxt_res0_128_128_4, diff --git a/lib/books/res0_128_128_5.vqh b/lib/books/res0_128_128_5.vqh index c509f0c6..e9054690 100644 --- a/lib/books/res0_128_128_5.vqh +++ b/lib/books/res0_128_128_5.vqh @@ -1,13 +1,12 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * + * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -20,101 +19,424 @@ #include "codebook.h" static long _vq_quantlist_res0_128_128_5[] = { - 102, - 103, - 104, - 105, - 107, - 110, - 113, - 116, - 119, - 122, - 126, - 130, - 133, - 137, - 141, - 145, + 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, - 204, 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[] = { - 1, 3, 4, 6, 6, 6, 7, 7, 7, 8, 9,11,12,13,15,18, - 18,18,18,17,17,17,17,17,17,17,17,17, 3, 5, 6, 6, - 6, 7, 7, 7, 8, 8,11,12,13,15,17,17,17,17,17,17, - 17,17,17,17,17,17,17, + 2, 3, 3, 5, 4, 6, 6, 6, 6, 7, 6, 8, 8, 9, 8, 9, + 11, 9,10,11,11,11,11,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, 7, 7, 8, 8, 8,11, 8,10, 9, 8,10, + 9,10, 9,10, 9,10, 9, 9, 9,10,10, 9,10,10, 9,10, + 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10, 9,10,10, 9,10, 9,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,10,10,10,10, 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,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,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,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,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,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, }; static float _vq_quantthresh_res0_128_128_5[] = { - -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.5, -1.5, -0.5, 0.5, 1.5, 2.5, 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, + -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[] = { - 54, 53, 52, 51, 50, 49, 48, 47, - 46, 45, 44, 43, 42, 41, 40, 39, - 38, 37, 36, 35, 34, 33, 32, 31, - 30, 29, 28, 0, 1, 2, 3, 4, - 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, + 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, - 55, - 55 + 301, + 301 }; static static_codebook _vq_book_res0_128_128_5 = { - 1, 55, + 1, 301, _vq_lengthlist_res0_128_128_5, - 1, -522616832, 1611661312, 8, 0, + 1, -520962048, 1611661312, 9, 0, _vq_quantlist_res0_128_128_5, NULL, &_vq_auxt_res0_128_128_5, diff --git a/lib/books/res0_128_128aux.vqh b/lib/books/res0_128_128aux.vqh index 1b8afc62..1ef96b5c 100644 --- a/lib/books/res0_128_128aux.vqh +++ b/lib/books/res0_128_128aux.vqh @@ -20,13 +20,24 @@ #include "codebook.h" static long _huff_lengthlist_res0_128_128aux[] = { - 4, 9,11,11,14,15, 3, 2, 6, 9,14,15, 6, 6, 8,10, - 14,15, 7, 7, 9, 9,11,15, 8, 3, 6, 8,11,13, 6, 2, - 4, 7,11,14, + 13,15,16,16,16,16,13,11,13,16,16,16,11,11,13,16, + 15,15,10,14,15,15,15,15,15,15,15,15,15,15,15,15, + 15,15,15,15, 9,10,12,13,15,15, 5, 2, 6,13,15,15, + 7, 5, 8,14,15,15,10,12,15,15,15,15,15,15,15,15, + 15,15,15,15,15,15,15,15, 8, 9,10,10,15,15, 5, 4, + 8,12,15,15, 8, 7,10,13,15,15,12,12,15,15,15,15, + 15,15,15,15,15,15,15,15,15,15,15,15,10,10,12,13, + 15,15, 9, 2, 4, 9,15,15,11, 3, 5, 9,15,15,13, 8, + 9,14,15,15,15,14,15,15,15,15,15,15,15,15,15,15, + 13,14,15,15,15,15,14, 6, 7,12,15,15,15, 6, 8,14, + 15,15,14,11,13,15,15,15,15,15,15,15,15,15,15,15, + 15,15,15,15,15,15,15,15,15,15,14,11,12,15,15,15, + 15,11,13,15,15,15,15,14,15,15,15,15,15,15,15,15, + 15,15,15,15,15,15,15,15, }; static static_codebook _huff_book_res0_128_128aux = { - 2, 36, + 3, 216, _huff_lengthlist_res0_128_128aux, 0, 0, 0, 0, 0, NULL, diff --git a/lib/books/res0_160_1024_1.vqh b/lib/books/res0_160_1024_1.vqh index 76ab0678..fbf2e530 100644 --- a/lib/books/res0_160_1024_1.vqh +++ b/lib/books/res0_160_1024_1.vqh @@ -1,13 +1,12 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * + * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -21,16 +20,16 @@ static long _vq_quantlist_res0_160_1024_1[] = { 1, - 2, 0, + 2, }; static long _vq_lengthlist_res0_160_1024_1[] = { - 1, 4, 4, 4, 8, 8, 4, 8, 8, 4, 8, 8, 8,12,12, 8, - 12,12, 5, 8, 8, 8,12,12, 9,12,12, 5, 8, 8, 8,12, - 12, 9,12,12, 8,12,12,12,16,16,12,16,16, 8,12,12, - 12,16,16,12,16,16, 5, 8, 8, 8,12,12, 9,12,12, 8, - 12,12,12,16,15,12,16,16, 9,12,12,13,16,17,13,17, + 1, 4, 4, 4, 8, 8, 4, 8, 8, 5, 8, 8, 9,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,13,16,16, 8,12,12, + 12,16,16,12,16,16, 5, 8, 8, 9,12,12, 8,12,12, 8, + 12,12,12,16,16,12,16,16, 8,12,12,13,16,16,12,16, 16, }; @@ -39,7 +38,7 @@ static float _vq_quantthresh_res0_160_1024_1[] = { }; static long _vq_quantmap_res0_160_1024_1[] = { - 2, 0, 1, + 1, 0, 2, }; static encode_aux_threshmatch _vq_auxt_res0_160_1024_1 = { diff --git a/lib/books/res0_160_1024_2.vqh b/lib/books/res0_160_1024_2.vqh index 44b7e061..0a62318b 100644 --- a/lib/books/res0_160_1024_2.vqh +++ b/lib/books/res0_160_1024_2.vqh @@ -1,13 +1,12 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * + * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -21,12 +20,12 @@ static long _vq_quantlist_res0_160_1024_2[] = { 1, - 2, 0, + 2, }; static long _vq_lengthlist_res0_160_1024_2[] = { - 3, 4, 4, 4, 6, 6, 5, 6, 6, 5, 6, 6, 6, 8, 8, 6, + 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, @@ -39,7 +38,7 @@ static float _vq_quantthresh_res0_160_1024_2[] = { }; static long _vq_quantmap_res0_160_1024_2[] = { - 2, 0, 1, + 1, 0, 2, }; static encode_aux_threshmatch _vq_auxt_res0_160_1024_2 = { diff --git a/lib/books/res0_160_1024_3.vqh b/lib/books/res0_160_1024_3.vqh index 2f534e18..6879f3b2 100644 --- a/lib/books/res0_160_1024_3.vqh +++ b/lib/books/res0_160_1024_3.vqh @@ -1,13 +1,12 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * + * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -21,53 +20,53 @@ static long _vq_quantlist_res0_160_1024_3[] = { 2, - 3, - 4, 1, + 3, 0, + 4, }; static long _vq_lengthlist_res0_160_1024_3[] = { - 3, 5, 7, 5, 7, 5, 6, 9, 6, 9, 7, 9,12, 9,13, 5, - 6, 9, 6, 9, 7, 9,12, 9,12, 5, 6, 9, 6, 9, 6, 8, - 11, 8,11, 9,11,14,11,15, 7, 8,11, 8,11, 9,11,14, - 11,15, 7, 9,12, 9,13, 9,11,14,11,15,13,15,18,15, - 19, 9,11,15,11,15,13,15,19,15,18, 5, 6, 9, 7, 9, - 7, 8,11, 8,11, 9,11,15,11,15, 7, 8,11, 8,11, 9, - 11,15,11,15, 7, 9,12, 9,13, 9,11,15,11,15,13,15, - 19,15,17, 9,11,15,11,15,13,15,18,15,18, 5, 6, 9, - 7, 9, 7, 8,11, 8,11, 9,11,15,11,15, 7, 8,11, 8, - 11, 9,11,15,11,15, 6, 8,11, 8,11, 8,10,13,10,13, - 11,13,16,13,17, 8,10,13,10,13,11,13,16,13,17, 9, - 11,15,11,15,11,13,17,13,17,15,17,18,17,20,11,13, - 17,13,17,15,17,19,18,19, 7, 8,11, 8,11, 8,10,13, - 10,13,11,13,17,13,16, 8,10,13,10,13,11,13,17,13, - 17, 9,11,15,11,15,11,13,17,13,16,15,17,19,17,19, - 11,13,17,13,17,15,18,19,17,20, 7, 9,13, 9,13, 9, - 11,15,11,15,12,15,19,15,18, 9,11,15,11,15,12,15, - 18,15,18, 9,11,15,11,15,11,13,17,13,17,15,17,19, - 18,20,11,13,17,13,17,15,16,20,18,19,13,15,19,15, - 18,15,17,18,17,19,18,18,19,19,20,15,17,19,17,20, - 20,20,20,20,20, 9,11,15,11,15,11,13,18,13,17,15, - 17,19,17,20,11,13,17,13,17,15,16,20,17,19,13,16, - 18,15,18,14,18,19,17,19,18,20,20,20,20,16,18,19, - 18,20,18,19,20,20,20, 5, 7, 9, 7, 9, 7, 8,11, 8, - 11, 9,11,15,11,14, 7, 8,11, 8,11, 9,11,15,11,15, - 7, 8,11, 8,11, 8,10,13,10,13,11,13,17,13,17, 8, - 10,13,10,13,11,13,17,13,17, 9,11,15,11,15,11,13, - 17,13,18,15,17,20,18,20,11,13,17,13,17,15,16,20, - 17,19, 7, 8,11, 8,11, 8,10,13,10,13,11,13,17,13, - 16, 8,10,13,10,13,11,13,17,13,16, 9,11,15,11,15, - 11,13,17,13,17,16,17,19,17,20,11,13,16,13,17,15, - 17,19,17,19, 7, 9,13, 9,13, 9,11,15,11,15,13,15, - 18,15,19, 9,11,15,11,15,13,15,19,15,18, 9,11,15, - 11,15,11,13,17,13,17,15,18,19,17,20,11,13,17,13, - 17,15,16,20,18,20,13,15,18,15,18,15,17,20,17,20, - 19,20,20,20,20,15,17,20,17,19,19,19,20,19,20, 9, - 11,15,11,15,11,13,17,13,17,15,17,19,17,19,11,13, - 17,13,17,15,17,20,17,20,13,15,17,15,18,15,17,20, - 17,20,19,20,20,20,20,15,17,20,17,20,18,19,19,19, - 20, + 3, 5, 5, 7, 7, 5, 6, 6, 9, 9, 5, 6, 6, 9, 9, 7, + 9, 9,13,13, 7, 9, 9,13,12, 5, 7, 6, 9, 9, 7, 8, + 8,11,11, 7, 8, 8,11,11, 9,11,11,14,15, 9,11,11, + 14,15, 5, 6, 6, 9, 9, 7, 8, 8,11,11, 6, 8, 8,11, + 11, 9,11,11,15,15, 9,11,11,15,14, 7, 9, 9,12,12, + 9,11,11,15,15, 9,11,11,15,15,13,15,15,18,18,13, + 15,15,18,17, 7, 9, 9,12,12, 9,11,11,15,15, 9,11, + 11,15,15,13,15,15,18,20,13,15,15,19,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,17,17,11,13,13,17,16, 7, + 8, 8,11,11, 8,10,10,13,13, 8,10,10,13,13,11,13, + 13,17,17,11,13,13,17,17, 9,11,11,15,15,11,13,14, + 17,17,11,13,13,17,16,15,16,18,18,20,15,17,17,20, + 20, 9,11,11,15,15,11,13,13,17,17,11,13,13,17,17, + 15,17,16,20,20,15,17,18,21,19, 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,17,11,13,13,17,17, 6, 8, 8,11, + 11, 8,10,10,13,13, 8,10,10,13,13,11,13,13,17,17, + 11,13,13,17,17, 9,11,11,15,15,11,13,13,17,17,11, + 13,13,17,17,15,17,17,21,20,15,17,17,19,21, 9,11, + 11,15,15,11,13,13,17,17,11,13,13,17,17,15,17,16, + 19,19,15,17,17,20,19, 7, 9, 9,13,13, 9,11,11,15, + 15, 9,11,11,15,15,12,15,15,19,18,13,15,15,18,18, + 9,11,11,15,15,11,13,13,17,17,11,13,13,17,17,15, + 17,17,19,20,15,18,17,20,20, 9,11,11,15,15,11,13, + 13,18,17,11,13,13,17,17,15,17,17,21,20,15,18,17, + 22,20,13,15,15,19,19,15,17,17,20,21,15,17,17,22, + 21,19,20,20,21,21,18,20,20,22,22,13,15,15,18,18, + 15,17,17,21,19,15,17,17,19,19,18,20,19,22,22,18, + 20,19,22,22, 7, 9, 9,12,13, 9,11,11,15,15, 9,11, + 11,15,15,12,15,15,18,19,13,15,15,18,19, 9,11,11, + 15,15,11,13,13,17,17,11,13,13,17,18,15,17,17,20, + 19,15,17,18,19,20, 9,11,11,15,15,11,13,13,17,17, + 11,13,13,17,17,15,18,17,20,20,15,18,17,22,20,13, + 15,15,19,19,15,17,17,20,21,14,17,17,20,20,18,20, + 19,22,22,18,19,20,22,22,13,15,15,18,18,15,17,17, + 21,20,15,17,17,22,21,19,20,22,22,22,18,21,19,20, + 22, }; static float _vq_quantthresh_res0_160_1024_3[] = { @@ -75,7 +74,7 @@ static float _vq_quantthresh_res0_160_1024_3[] = { }; static long _vq_quantmap_res0_160_1024_3[] = { - 4, 3, 0, 1, 2, + 3, 1, 0, 2, 4, }; static encode_aux_threshmatch _vq_auxt_res0_160_1024_3 = { diff --git a/lib/books/res0_160_1024_4.vqh b/lib/books/res0_160_1024_4.vqh index c850d60b..b633f983 100644 --- a/lib/books/res0_160_1024_4.vqh +++ b/lib/books/res0_160_1024_4.vqh @@ -1,13 +1,12 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * + * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -21,53 +20,53 @@ static long _vq_quantlist_res0_160_1024_4[] = { 2, - 3, - 4, 1, + 3, 0, + 4, }; static long _vq_lengthlist_res0_160_1024_4[] = { - 5, 6, 8, 6, 8, 6, 7, 9, 7, 9, 8, 9,11, 9,11, 6, - 7, 9, 7, 9, 8, 9,11, 9,11, 6, 7, 9, 7, 9, 7, 7, - 9, 7,10, 9, 9,11,10,12, 7, 7, 9, 7,10, 9,10,11, - 10,12, 8, 9,11, 9,11, 9,10,12,10,12,11,12,14,12, - 14, 9,10,12,10,12,11,12,14,12,14, 6, 7, 9, 7, 9, - 7, 7, 9, 7, 9, 9,10,12,10,11, 7, 7, 9, 7,10, 9, - 10,12,10,12, 8, 9,11, 9,11, 9,10,12,10,12,11,12, - 14,12,14, 9,10,12,10,12,11,12,14,12,14, 6, 7, 9, - 7, 9, 7, 7,10, 7,10, 9,10,12,10,12, 7, 7, 9, 7, - 9, 9,10,12,10,12, 7, 7,10, 7,10, 7, 8,10, 8,10, - 10,10,12,10,13, 7, 8,10, 8,10,10,10,13,10,13, 9, - 10,12,10,12,10,10,13,10,13,12,12,14,13,15,10,10, - 13,10,13,12,13,15,13,15, 7, 7,10, 7,10, 7, 8,10, - 8,10,10,10,13,10,12, 7, 8,10, 8,10,10,10,12,10, - 12, 9,10,12,10,12,10,10,13,10,13,12,13,15,12,14, - 10,10,13,11,13,12,13,15,13,15, 8, 9,11, 9,11, 9, - 10,12,10,12,11,12,14,12,14, 9,10,12,10,12,11,12, - 14,12,14, 9,10,12,10,12,10,10,13,10,13,12,12,15, - 13,15,10,10,13,10,13,12,13,15,13,14,11,12,14,12, - 14,12,12,14,13,15,14,14,16,15,16,12,13,15,13,15, - 14,15,17,15,16, 9,10,12,10,12,10,10,13,10,13,12, - 13,15,12,15,10,10,13,10,13,12,13,15,13,15,11,12, - 14,12,14,12,12,15,12,14,14,14,16,14,16,12,12,15, - 13,15,14,15,17,15,16, 6, 7, 9, 7, 9, 7, 7, 9, 7, - 10, 9,10,12,10,12, 7, 7,10, 7,10, 9,10,12,10,12, - 7, 7,10, 7,10, 7, 8,10, 8,10,10,10,12,10,12, 7, - 8,10, 8,10,10,10,12,10,13, 9,10,12,10,12,10,10, - 13,10,13,12,13,14,13,15,10,10,13,10,13,12,12,14, - 13,15, 7, 7,10, 7,10, 7, 8,10, 8,10,10,10,13,10, - 13, 7, 8,10, 8,10,10,11,13,10,12, 9,10,12,10,12, - 10,10,13,10,13,12,13,14,12,14,10,10,13,10,13,12, - 13,15,12,14, 8, 9,11, 9,11, 9,10,12,10,12,11,12, - 14,12,14, 9,10,12,10,12,11,12,14,12,14, 9,10,12, - 10,12,10,10,13,10,13,12,13,15,13,15,10,10,13,10, - 13,12,13,15,13,15,11,12,14,12,14,12,13,15,13,15, - 14,15,16,14,16,12,12,15,13,15,14,14,16,15,16, 9, - 10,12,10,12,10,10,13,10,13,12,13,15,13,15,10,10, - 13,10,13,12,13,15,13,15,11,12,14,12,14,12,13,15, - 13,15,14,15,17,15,16,12,13,15,13,14,14,15,17,14, - 16, + 5, 6, 6, 8, 8, 6, 7, 7, 9, 9, 6, 7, 7, 9, 9, 8, + 9, 9,11,11, 8, 9, 9,11,11, 6, 7, 7, 9, 9, 7, 7, + 7,10,10, 7, 7, 7, 9, 9, 9, 9,10,12,12, 9, 9,10, + 12,12, 6, 7, 7, 9, 9, 7, 7, 7, 9, 9, 7, 7, 7, 9, + 9, 9,10, 9,12,12, 9, 9, 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,14,14, 6, 7, 7, + 9, 9, 7, 7, 7,10,10, 7, 7, 7,10,10, 9,10,10,12, + 12, 9,10, 9,12,12, 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, 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, 9,10,10,12,12,10,10,10, + 13,13,10,11,10,13,13,12,13,13,15,15,12,13,13,15, + 15, 9,10,10,12,12,10,10,10,13,13,10,10,10,13,13, + 12,13,12,15,15,12,13,13,15,15, 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,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,12, 9,10,10,12,12,10,10,10,13,13, 9, + 10,10,13,13,12,13,13,15,15,12,13,13,15,15, 9,10, + 10,12,12,10,10,10,13,13, 9,10,10,13,13,12,13,13, + 15,15,12,13,12,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,14, + 9,10,10,12,12,10,10,10,13,13,10,11,10,13,13,12, + 13,13,15,16,12,13,13,15,15, 9,10,10,12,12,10,10, + 10,13,13,10,10,10,13,13,12,13,13,16,15,12,13,13, + 15,15,11,12,12,15,14,12,13,13,15,15,12,13,13,16, + 15,14,15,15,17,18,15,16,15,17,18,11,12,12,15,15, + 12,13,13,16,15,12,13,13,15,15,14,16,15,17,17,15, + 16,16,17,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,10,10,13,13,10,10,10,13,13,12,13,13,15, + 16,12,13,13,15,15, 9,10,10,12,12,10,10,11,13,13, + 10,10,10,13,13,12,13,13,15,15,12,13,13,16,15,11, + 12,12,15,14,12,13,13,15,15,12,13,13,15,15,15,15, + 15,17,17,14,15,15,17,17,11,12,12,14,14,12,13,13, + 15,15,12,13,12,15,15,14,15,15,17,18,14,15,15,17, + 17, }; static float _vq_quantthresh_res0_160_1024_4[] = { @@ -75,7 +74,7 @@ static float _vq_quantthresh_res0_160_1024_4[] = { }; static long _vq_quantmap_res0_160_1024_4[] = { - 4, 3, 0, 1, 2, + 3, 1, 0, 2, 4, }; static encode_aux_threshmatch _vq_auxt_res0_160_1024_4 = { diff --git a/lib/books/res0_160_1024_5.vqh b/lib/books/res0_160_1024_5.vqh index 7f9a3598..560c542f 100644 --- a/lib/books/res0_160_1024_5.vqh +++ b/lib/books/res0_160_1024_5.vqh @@ -1,13 +1,12 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * + * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -20,41 +19,56 @@ #include "codebook.h" static long _vq_quantlist_res0_160_1024_5[] = { - 3, - 4, - 5, 6, + 5, + 7, + 4, + 8, + 3, + 9, 2, + 10, 1, + 11, 0, + 12, }; static long _vq_lengthlist_res0_160_1024_5[] = { - 1, 4, 6, 6, 4, 6, 6, 4, 5, 8, 8, 6, 8, 8, 6, 8, - 10,11, 8,11,11, 7, 9,11,12, 9,11,12, 4, 6, 8, 8, - 6, 8, 8, 6, 8,11,11, 8,10,11, 7, 9,11,12, 9,11, - 12, + 1, 4, 4, 6, 6, 7, 7, 8, 8,10,10,11,10, 4, 6, 6, + 8, 8, 9, 9,11,11,12,12,14,14, 4, 6, 5, 8, 8, 9, + 9,11,11,12,12,13,14, 6, 8, 8,11,11,11,11,13,13, + 15,15,16,16, 6, 8, 8,11,11,11,11,13,13,15,14,16, + 16, 7, 9, 9,12,11,14,13,15,15,16,16,17,17, 7, 9, + 9,12,12,13,14,15,15,16,16,17,17, 9,11,11,14,14, + 15,15,16,16,17,17,18,18, 9,11,11,13,14,15,15,16, + 16,17,18,18,18,10,13,13,15,15,17,17,17,17,19,18, + 20,19,10,13,13,15,15,16,16,17,18,20,19,18,19,11, + 14,14,16,16,17,17,18,19,20,19,20,19,11,14,14,16, + 16,18,17,19,18,18,19,20,20, }; static float _vq_quantthresh_res0_160_1024_5[] = { - -2.5, -1.5, -0.5, 0.5, 1.5, 2.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[] = { - 6, 5, 4, 0, 1, 2, 3, + 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, - 7, - 7 + 13, + 13 }; static static_codebook _vq_book_res0_160_1024_5 = { - 2, 49, + 2, 169, _vq_lengthlist_res0_160_1024_5, - 1, -533200896, 1611661312, 3, 0, + 1, -531103744, 1611661312, 4, 0, _vq_quantlist_res0_160_1024_5, NULL, &_vq_auxt_res0_160_1024_5, diff --git a/lib/books/res0_160_1024_6.vqh b/lib/books/res0_160_1024_6.vqh index d9293179..21104da6 100644 --- a/lib/books/res0_160_1024_6.vqh +++ b/lib/books/res0_160_1024_6.vqh @@ -1,13 +1,12 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * + * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -20,41 +19,56 @@ #include "codebook.h" static long _vq_quantlist_res0_160_1024_6[] = { - 3, - 4, - 5, 6, + 5, + 7, + 4, + 8, + 3, + 9, 2, + 10, 1, + 11, 0, + 12, }; static long _vq_lengthlist_res0_160_1024_6[] = { - 3, 4, 5, 7, 4, 5, 7, 4, 4, 6, 7, 4, 6, 7, 5, 6, - 8, 9, 6, 8, 9, 7, 7, 9,10, 7, 9,10, 4, 4, 6, 7, - 4, 6, 7, 5, 6, 8, 9, 6, 8, 9, 7, 7, 9,10, 8, 9, - 10, + 3, 4, 4, 5, 5, 7, 7, 8, 8, 9, 9,10,10, 4, 4, 4, + 6, 6, 7, 7, 9, 9,10,10,11,11, 4, 5, 4, 6, 6, 7, + 7, 9, 9,10,10,11,11, 6, 6, 6, 8, 8, 9, 9,10,10, + 12,12,13,13, 5, 6, 6, 8, 8, 9, 9,10,10,12,12,13, + 13, 7, 8, 8, 9, 9,11,11,12,12,13,13,14,14, 7, 8, + 8, 9, 9,11,11,12,12,13,13,14,14, 9, 9, 9,11,11, + 12,12,13,13,14,14,15,15, 8, 9, 9,11,11,12,12,13, + 13,14,14,16,15,10,11,11,12,12,13,13,14,14,15,15, + 16,16,10,11,11,12,12,13,13,14,14,15,15,16,15,11, + 12,12,13,13,14,14,15,15,16,16,17,17,11,12,12,13, + 13,14,14,16,16,16,16,17,17, }; static float _vq_quantthresh_res0_160_1024_6[] = { - -2.5, -1.5, -0.5, 0.5, 1.5, 2.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_6[] = { - 6, 5, 4, 0, 1, 2, 3, + 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, - 7, - 7 + 13, + 13 }; static static_codebook _vq_book_res0_160_1024_6 = { - 2, 49, + 2, 169, _vq_lengthlist_res0_160_1024_6, - 1, -533200896, 1611661312, 3, 0, + 1, -531103744, 1611661312, 4, 0, _vq_quantlist_res0_160_1024_6, NULL, &_vq_auxt_res0_160_1024_6, diff --git a/lib/books/res0_160_1024_7.vqh b/lib/books/res0_160_1024_7.vqh index 5dab5372..cf97e21b 100644 --- a/lib/books/res0_160_1024_7.vqh +++ b/lib/books/res0_160_1024_7.vqh @@ -1,13 +1,12 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * + * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -20,46 +19,118 @@ #include "codebook.h" static long _vq_quantlist_res0_160_1024_7[] = { - 5, - 6, - 7, - 8, + 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, 5, 6, 7, 4, 5, 6, 6, 4, 5, 7, 7, 8, 5, 7, - 7, 8, 6, 7, 8, 9, 9, 7, 8, 9, 9, 7, 8, 9,10,10, - 8, 9,10,10, 7, 8,10,11,11, 8,10,11,11, 4, 5, 7, - 7, 8, 5, 7, 7, 8, 6, 7, 8, 9, 9, 7, 8, 9, 9, 7, - 8, 9,10,10, 8, 9,10,10, 7, 8,10,11,11, 8,10,11, - 11, + 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,11, + 11,11,11,11,12,12,12,12,12,12, 4, 6, 6, 7, 7, 8, + 8, 9, 9, 9, 9,10,10,10,10,10,10,11,11,11,11,11, + 11,12,12,12,12,12,12, 6, 7, 7, 8, 8, 9, 9,10,10, + 11,11,11,11,11,11,11,12,12,12,12,12,13,13,13,13, + 13,13,14,14, 6, 7, 7, 8, 8, 9, 9,10,10,11,11,11, + 11,11,11,12,12,12,12,12,12,13,13,13,13,13,13,14, + 14, 7, 8, 8, 9, 9,10,10,11,11,12,12,12,12,12,12, + 13,12,13,13,13,13,14,14,14,14,14,14,15,15, 7, 8, + 8, 9, 9,10,10,11,11,11,11,12,12,12,12,13,13,13, + 13,13,14,14,14,14,14,15,14,15,15, 8, 9, 9,10,10, + 11,11,12,12,12,12,13,13,13,13,14,13,14,14,14,14, + 15,14,15,15,15,15,16,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, 9,10,10,11,11,12,12,12,13,13,13, + 14,14,14,14,14,14,14,14,15,15,15,15,16,15,16,16, + 16,15, 9,10,10,11,11,12,12,12,12,13,13,14,14,14, + 14,14,14,15,15,15,15,15,15,15,15,16,15,16,16, 9, + 10,10,12,11,12,12,13,13,14,14,14,14,14,14,15,15, + 15,15,15,15,15,16,16,16,17,16,17,17, 9,10,10,12, + 11,12,12,13,13,14,14,14,14,14,14,14,15,15,15,15, + 15,16,16,16,16,16,16,17,16, 9,10,10,11,11,12,12, + 13,13,14,14,14,14,15,15,15,15,15,15,16,16,16,16, + 16,16,16,17,17,17, 9,10,10,11,11,12,12,13,13,14, + 14,14,15,15,15,15,16,16,15,16,15,16,17,16,17,17, + 16,16,17, 9,11,11,12,12,13,13,14,14,14,14,15,15, + 15,15,16,15,16,16,16,17,17,16,17,17,16,16,18,18, + 9,11,11,12,12,13,13,14,14,14,14,15,15,15,16,15, + 15,16,16,16,16,17,16,17,16,17,17,17,19,10,11,11, + 12,13,13,13,14,14,15,15,15,15,16,15,16,16,16,16, + 17,16,17,17,18,17,18,18,17,17,10,11,11,12,13,13, + 13,14,14,15,15,15,15,15,16,16,16,16,16,16,17,16, + 17,17,17,19,17,18,18,10,12,12,13,13,14,14,15,14, + 15,15,15,16,16,16,16,16,17,17,17,17,17,18,18,17, + 18,19,17,17,10,12,11,13,13,14,14,14,15,16,15,15, + 15,15,16,16,16,17,17,17,18,17,18,17,17,18,18,18, + 18,10,12,12,13,13,14,14,15,15,16,16,17,16,16,17, + 17,17,17,17,17,18,17,17,18,18,19,17,19,18,10,12, + 12,13,13,14,14,15,15,15,15,16,16,16,16,16,17,18, + 17,17,17,18,18,18,18,18,17,18,18,11,12,12,14,14, + 15,15,15,15,16,16,16,16,17,17,17,16,17,18,17,18, + 17,17,18,18,17,19,19,18,11,13,12,14,14,15,15,15, + 15,16,16,17,16,17,16,17,17,18,17,17,17,17,18,18, + 17,18,18,19,18,11,13,13,14,14,15,15,15,15,15,16, + 17,16,16,17,17,17,17,17,18,17,18,18,19,19,18,18, + 18,20,11,13,13,14,14,15,15,15,16,17,16,17,17,16, + 17,18,17,17,18,18,18,18,18,18,18,18,18,18,18,11, + 13,13,14,14,16,15,17,16,16,17,17,17,17,18,17,18, + 18,18,19,18,19,19,18,18,19,19,18,18,11,13,13,14, + 14,15,16,16,16,16,16,17,16,17,17,17,17,18,17,19, + 17,19,19,18,18,18,19,20,17, }; static float _vq_quantthresh_res0_160_1024_7[] = { - -4, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 4, + -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[] = { - 8, 7, 6, 5, 0, 1, 2, 3, - 4, + 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, - 9, - 9 + 29, + 29 }; static static_codebook _vq_book_res0_160_1024_7 = { - 2, 81, + 2, 841, _vq_lengthlist_res0_160_1024_7, - 1, -531365888, 1611661312, 4, 0, + 1, -528744448, 1611661312, 5, 0, _vq_quantlist_res0_160_1024_7, NULL, &_vq_auxt_res0_160_1024_7, diff --git a/lib/books/res0_160_1024_8.vqh b/lib/books/res0_160_1024_8.vqh index 2443f624..02ea047b 100644 --- a/lib/books/res0_160_1024_8.vqh +++ b/lib/books/res0_160_1024_8.vqh @@ -1,13 +1,12 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * + * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -20,56 +19,338 @@ #include "codebook.h" static long _vq_quantlist_res0_160_1024_8[] = { - 11, - 12, - 13, - 14, - 16, - 19, + 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, 4, 6, 6, 6, 7, 8, 4, 6, 6, 6, 7, 8, 4, 6, 7, - 7, 8, 8,10, 6, 7, 7, 8, 8,10, 6, 7, 8, 9, 9, 9, - 11, 7, 8, 9, 9, 9,11, 7, 8, 9, 9,10,10,12, 8, 9, - 9,10,10,12, 7, 9,10,10,11,11,12, 9,10,10,11,11, - 13, 8, 9,11,11,12,13,14, 9,11,11,12,13,14, 9,11, - 13,13,13,14,15,11,13,13,14,14,15, 4, 6, 7, 7, 8, - 8,10, 6, 7, 7, 8, 8,10, 6, 7, 8, 9, 9, 9,11, 7, - 8, 9, 9,10,11, 7, 8, 9, 9,10,10,12, 8, 9, 9,10, - 10,12, 7, 9,10,10,11,11,12, 9,10,11,11,11,12, 8, - 9,11,11,12,13,14, 9,11,11,12,12,14, 9,11,13,13, - 14,14,15,11,13,13,13,14,15, + 3, 4, 4, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, + 8, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10,10, 9, 9, 9, + 9, 9, 9,10,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, 5, 6, 6, + 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,11,11,11,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, 5, 6, 6, 7, 7, 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,11,11,11,11,11,11,11,11, + 11,12,11,12,12,12,12,12,12,12,12,12,12,13,12,13, + 13,13,13,13,13,13,13, 6, 7, 7, 8, 8, 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,12,12,12,12,12,12,12,12,13,13, + 13,13,13,13,13,13,13,13,13,13,14,13,14,14,14,14, + 14,14,14,14, 6, 7, 7, 8, 8, 9, 9,10,10,10,10,10, + 10,11,11,11,11,11,11,12,11,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,13,13,13,13,13,14,14,14,14,14,14,14, + 14, 7, 8, 8, 9, 9,10,10,10,11,11,11,11,11,11,11, + 12,12,12,12,12,12,12,12,13,13,13,13,13,13,12,13, + 13,13,13,13,13,13,14,13,14,13,14,14,14,14,14,14, + 14,14,14,14,14,14,15,15,15,15,15,14,15,15, 7, 8, + 8, 9, 9,10,10,10,10,11,11,11,11,11,11,12,12,12, + 12,12,12,12,12,13,12,13,13,13,13,13,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,14,15,15,15,15, 8, 9, 9,10,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,13,13,14,13,14,14,14,14, + 14,14,14,14,15,14,14,14,15,15,15,15,15,14,15,15, + 15,15,15,15,15,15,16,15, 8, 9, 9,10,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,13,13,13,13,14,13,14,14,14,14,14, + 14,14,14,14,14,15,14,15,14,15,15,15,15,15,15,15, + 15,15,15,16,15, 9,10,10,11,11,11,11,12,12,12,12, + 12,12,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,15,15,15,15, + 15,15,15,15,15,15,15,15,15,16,16,15,15,15,15,15, + 16,16, 9,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,13,14,14,14, + 14,14,14,14,14,14,14,15,14,15,14,15,14,15,15,15, + 14,15,15,15,15,15,15,16,15,16,15,16,16,16,15, 9, + 10,10,11,11,12,12,12,12,13,13,13,13,13,13,13,14, + 14,14,14,14,14,14,15,14,14,14,15,14,14,15,15,14, + 15,14,15,14,15,14,15,15,15,15,15,15,15,15,16,15, + 16,15,16,15,16,16,16,16,16,16,16,16, 9,10,10,11, + 11,12,12,12,12,13,12,13,13,13,13,14,13,14,14,14, + 14,14,14,14,14,15,14,15,14,14,14,14,14,15,15,15, + 14,15,15,15,15,15,15,15,15,16,15,15,15,16,16,16, + 16,16,16,16,16,16,16,16,16, 9,10,10,12,12,12,12, + 13,13,13,13,13,14,14,13,14,14,14,14,14,14,15,14, + 15,14,15,15,15,15,14,14,15,15,15,15,15,15,15,15, + 15,15,15,15,16,16,16,15,16,16,16,16,16,16,16,16, + 16,17,16,16,16,17, 9,11,10,11,12,12,12,13,13,13, + 13,13,13,14,14,14,14,14,14,14,14,14,14,15,14,15, + 15,15,15,14,15,15,15,16,15,15,15,15,15,15,15,16, + 15,16,16,16,15,16,16,16,16,16,16,16,16,17,16,16, + 16,17,16,10,11,11,12,12,13,13,13,13,13,14,14,14, + 14,14,14,14,15,15,15,14,14,15,15,15,15,15,15,15, + 15,15,15,15,15,15,15,16,15,16,16,15,16,16,16,16, + 16,16,17,16,16,17,16,16,16,16,17,16,17,19,18,18, + 10,11,11,12,12,13,13,13,13,14,13,14,14,14,14,14, + 14,15,14,15,15,15,15,15,15,15,15,15,15,15,15,15, + 15,15,15,15,15,16,15,16,16,16,16,16,16,17,16,16, + 16,17,16,17,17,17,17,17,16,17,17,17,17,10,11,11, + 12,12,13,13,13,13,14,14,14,14,14,14,14,15,15,15, + 15,15,15,15,15,15,16,15,15,15,16,15,16,15,16,16, + 16,15,16,16,15,16,16,16,16,16,16,17,17,17,16,16, + 17,17,17,16,17,17,17,18,18,19,10,11,11,12,12,13, + 13,13,13,14,14,14,14,14,14,15,15,15,15,15,15,15, + 15,15,15,16,15,15,15,15,15,16,15,16,16,15,16,16, + 15,16,16,16,15,16,16,16,16,17,17,17,16,17,17,16, + 17,17,17,17,18,17,17,10,12,11,13,12,13,13,14,14, + 14,14,14,14,14,14,15,15,15,15,15,15,15,15,16,16, + 16,16,16,15,16,16,16,16,16,15,16,15,16,16,17,16, + 17,16,17,16,17,17,17,17,18,16,17,17,17,17,17,17, + 17,17,18,18,10,12,11,12,12,13,13,14,14,14,14,14, + 14,15,14,15,14,15,15,16,15,16,15,15,15,16,15,16, + 16,15,15,16,16,16,16,15,16,16,15,16,16,16,16,16, + 16,17,16,17,16,16,16,16,17,18,17,18,16,17,18,17, + 17,10,12,12,13,13,13,14,14,14,14,14,15,15,15,15, + 15,15,15,15,15,15,16,16,16,16,16,16,16,16,15,16, + 16,15,17,16,17,17,17,16,17,16,17,16,16,17,16,17, + 17,18,16,17,18,17,18,17,18,17,18,17,18,17,11,12, + 12,13,13,13,14,14,14,14,14,15,15,15,15,15,15,15, + 15,15,15,15,16,15,15,16,15,16,16,16,16,16,16,16, + 16,16,16,17,16,17,16,16,17,17,16,17,17,17,17,17, + 16,17,17,17,17,18,18,17,17,18,18,11,12,12,13,13, + 14,14,14,14,15,15,15,14,15,15,15,15,15,15,16,15, + 17,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,17,16,17,17,17,17,19,17,17,17,17,18, + 19,17,17,17,18,17,18,18,11,12,12,13,13,13,13,14, + 14,15,14,15,15,15,15,15,15,16,15,16,16,16,16,17, + 16,16,15,16,15,16,16,16,16,17,17,17,16,17,17,18, + 16,16,17,17,17,17,16,16,17,17,20,17,17,17,18,17, + 17,17,19,18,17,11,12,12,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,16,16,16,17,16,16,17,16,17,17,16,16,19,17, + 17,17,18,17,17,17,17,18,18,18,17,18,17,18,18,18, + 18,18,11,12,12,13,13,14,14,14,15,15,15,15,15,15, + 15,16,15,16,16,16,15,16,16,17,16,17,16,17,17,16, + 16,16,16,17,17,16,16,17,17,17,17,17,16,17,16,17, + 17,17,18,17,17,18,18,19,17,19,17,18,17,17,19,11, + 13,13,13,13,14,14,15,15,15,15,15,15,16,15,16,16, + 16,15,16,15,16,16,17,16,17,16,17,16,16,16,17,16, + 16,17,16,17,18,16,18,17,17,17,17,17,17,18,19,18, + 17,17,17,17,19,19,17,18,19,18,19,18,11,13,13,13, + 13,14,14,15,15,15,15,16,16,16,15,16,15,16,16,17, + 16,16,16,16,16,17,16,17,16,16,16,17,17,17,16,17, + 17,16,17,17,17,17,17,18,17,17,17,17,17,19,17,18, + 17,17,18,18,18,17,19,18,18,10,12,12,13,13,14,14, + 14,14,15,15,15,15,15,15,16,16,16,15,16,16,16,16, + 16,16,17,16,17,17,17,16,17,16,16,16,17,16,17,17, + 17,17,17,17,17,17,19,18,18,18,17,17,18,18,19,19, + 19,18,19,17,19,19,10,12,12,13,13,14,14,14,14,15, + 14,15,15,16,15,16,16,15,16,16,16,16,16,16,16,17, + 16,16,16,16,16,17,17,17,17,17,17,17,17,17,18,18, + 17,18,18,17,17,17,17,17,18,17,18,19,19,18,17,19, + 18,18,18,11,12,12,13,13,14,14,14,14,15,15,15,15, + 16,16,16,16,16,16,16,16,17,17,16,16,17,17,16,16, + 17,16,17,17,17,17,17,17,17,18,17,17,18,17,17,17, + 18,17,18,18,18,18,19,17,19,19,18,17,19,18,18,18, + 11,12,12,13,13,14,14,14,15,15,15,15,15,15,15,16, + 16,16,16,15,16,16,16,17,16,17,16,16,17,16,16,16, + 16,17,17,17,17,17,17,17,16,18,18,17,17,17,18,18, + 18,18,20,18,19,18,18,18,18,19,17,19,18,11,12,12, + 13,14,14,14,14,14,15,15,15,16,15,16,16,16,16,15, + 16,16,16,16,17,16,17,16,17,16,18,17,17,16,17,17, + 17,17,18,17,17,19,17,18,18,18,18,17,18,17,18,17, + 19,18,18,18,18,18,19,18,18,19,11,12,12,13,13,14, + 14,15,15,15,15,15,16,16,16,16,16,16,16,17,16,17, + 16,16,17,17,17,17,17,17,17,17,17,18,17,19,18,17, + 18,17,18,17,17,18,17,20,17,18,17,19,18,19,17,20, + 19,18,18,17,18,20,18,11,12,13,14,14,15,15,15,15, + 15,15,16,15,16,16,16,16,16,16,16,16,17,16,16,17, + 18,16,16,17,17,17,17,16,18,17,19,17,18,17,18,17, + 19,18,18,17,19,17,17,17,19,18,18,19,19,19,17,18, + 19,18,18,20,11,13,13,13,14,14,14,15,15,16,16,16, + 16,17,16,16,16,16,16,16,16,17,17,16,16,16,17,17, + 16,17,17,17,17,17,17,17,18,17,18,17,17,17,18,19, + 18,17,18,19,18,19,19,18,18,18,18,18,18,19,19,19, + 18,11,13,13,14,14,15,15,15,15,15,16,16,16,16,16, + 16,16,17,16,16,16,17,16,17,16,18,17,17,17,17,17, + 17,17,17,18,17,18,18,17,17,19,18,18,17,18,19,18, + 18,17,18,17,19,18,19,19,18,18,19,19,19,19,11,12, + 13,14,14,14,15,15,15,15,15,16,16,16,16,17,16,16, + 16,16,16,17,18,17,17,17,17,17,17,17,17,18,17,19, + 17,18,17,18,17,18,17,17,18,17,18,18,18,19,18,17, + 19,17,17,19,18,18,19,19,19,19,18,11,13,13,14,14, + 15,15,15,16,15,16,17,17,17,16,17,16,16,16,16,17, + 17,17,17,16,17,17,16,17,19,17,19,17,20,19,18,18, + 20,17,18,19,18,18,18,18,18,19,19,18,19,17,19,18, + 18,19,20,19,19,19,19,19,12,13,13,14,14,15,15,15, + 16,16,16,16,16,16,16,16,16,16,17,17,16,17,17,17, + 17,17,16,18,18,17,17,17,17,18,17,18,18,17,19,19, + 17,18,18,19,18,18,19,18,18,19,19,18,18,19,18,19, + 19,19,19,19,19,12,13,13,15,14,15,15,15,16,16,16, + 17,17,17,16,16,17,17,16,17,17,17,17,17,17,17,17, + 17,17,19,18,17,18,18,18,18,18,18,18,18,18,19,17, + 19,18,19,20,19,18,20,18,18,19,19,18,19,18,18,18, + 18,19,12,13,13,15,15,16,16,15,16,16,16,17,17,16, + 16,16,17,17,16,17,17,17,17,17,17,19,18,17,18,18, + 17,18,18,19,18,17,18,19,19,19,17,19,18,18,18,18, + 18,19,18,18,18,18,19,19,19,19,19,19,18,18,19,12, + 14,14,15,15,15,16,16,15,16,16,17,18,17,17,17,17, + 17,17,19,16,17,17,19,17,19,17,18,17,19,18,17,18, + 18,17,17,18,17,19,18,19,19,18,17,19,19,19,18,19, + 19,19,19,18,18,18,20,18,19,19,20,19,12,13,14,15, + 15,15,15,16,16,16,16,17,16,17,16,17,17,17,16,17, + 17,17,17,18,17,17,17,18,18,17,18,18,18,18,19,17, + 19,20,17,17,17,18,18,18,20,19,18,18,19,19,19,19, + 19,19,19,18,19,20,20,18,19,12,14,14,15,15,15,16, + 16,16,16,16,17,16,17,16,18,17,17,17,16,18,19,17, + 18,18,18,17,18,17,18,18,18,17,17,17,18,18,18,19, + 18,18,19,19,18,19,18,20,20,19,18,19,19,19,19,19, + 19,18,19,19,19,19,12,14,14,15,15,16,16,16,16,16, + 17,16,17,17,17,17,17,18,18,18,17,18,17,18,17,16, + 17,17,17,18,19,19,19,17,17,18,19,19,18,19,18,19, + 18,18,20,18,19,18,18,19,18,19,19,19,20,19,19,20, + 20,19,19,13,14,14,15,15,16,16,16,16,17,16,16,17, + 17,17,17,17,17,18,19,17,18,18,18,17,18,18,19,18, + 19,18,20,18,17,18,18,19,18,19,18,19,19,19,18,18, + 19,18,19,18,19,18,19,19,18,19,19,18,19,19,19,19, + 12,14,14,15,15,16,16,16,17,17,17,17,17,17,17,17, + 17,18,17,18,18,18,17,18,17,18,17,18,18,18,18,17, + 18,19,19,20,19,18,20,18,18,19,19,18,18,19,19,19, + 18,19,19,19,19,20,19,18,20,19,19,19,19,13,14,14, + 15,15,16,16,16,16,17,16,17,17,17,16,17,17,17,17, + 17,17,18,17,19,17,19,18,18,18,19,18,19,18,18,18, + 18,18,19,19,20,19,18,18,19,19,19,19,19,19,19,18, + 18,18,19,19,20,19,18,19,20,18,13,14,15,15,15,16, + 16,16,17,17,17,17,17,18,17,17,17,17,18,17,17,18, + 18,18,17,17,18,18,20,19,19,19,18,18,18,18,19,19, + 19,19,18,19,18,19,19,19,20,20,19,19,19,19,18,18, + 19,18,19,18,19,19,19,13,14,14,16,15,16,16,16,17, + 17,17,18,17,18,17,18,17,18,17,18,17,18,18,17,19, + 17,19,19,19,18,18,19,20,18,18,19,18,19,19,20,19, + 19,18,19,19,19,19,18,19,19,18,20,18,19,19,20,19, + 19,18,19,20,13,14,15,15,16,17,16,17,17,16,17,17, + 17,18,16,18,18,18,19,17,18,17,18,18,18,19,18,18, + 18,18,19,19,18,19,18,20,19,19,20,19,19,19,18,19, + 18,20,19,19,18,19,19,19,20,20,20,20,20,20,19,20, + 20,14,15,15,16,15,16,17,17,17,16,17,17,17,17,17, + 17,18,18,18,18,17,18,18,18,19,18,18,18,19,18,19, + 19,20,20,20,18,18,19,19,18,19,19,18,20,19,19,19, + 18,19,20,19,18,19,19,20,20,18,19,19,19,19,14,15, + 14,16,16,17,17,17,17,18,18,18,18,17,17,17,18,18, + 18,18,18,18,18,19,18,18,18,19,18,18,18,18,19,19, + 19,19,19,18,19,19,19,20,19,18,19,19,19,19,19,20, + 19,18,19,20,19,19,19,19,20,20,19,14,15,15,16,17, + 17,17,18,17,18,17,18,18,19,17,17,18,18,18,18,19, + 19,18,18,20,19,18,19,18,20,19,18,19,18,19,18,18, + 20,19,20,19,20,19,18,18,19,19,19,20,19,19,19,20, + 19,20,19,20,20,19,19,20,14,15,15,16,16,17,17,16, + 17,17,17,17,18,17,18,18,18,19,18,18,18,19,19,19, + 20,18,19,19,19,19,18,19,18,18,18,18,19,19,18,19, + 18,18,20,20,18,18,19,19,19,19,19,20,19,20,19,19, + 19,20,19,20,19,14,15,15,17,16,17,17,18,17,17,17, + 17,19,18,18,17,19,17,19,18,19,19,18,19,17,20,19, + 20,19,18,18,18,19,20,17,19,18,19,18,19,18,19,20, + 19,19,19,20,20,19,19,19,19,19,19,19,19,19,20,19, + 19,20,14,15,15,17,17,17,16,17,17,17,17,18,18,18, + 19,17,19,17,18,19,18,17,17,18,19,19,18,19,19,19, + 18,19,18,18,18,19,19,20,19,20,19,19,19,20,20,19, + 20,19,20,19,20,20,19,19,20,19,20,20,20,19,20,14, + 15,16,16,16,17,17,17,19,20,18,18,17,18,18,18,17, + 19,18,18,18,19,18,19,19,18,19,20,19,18,20,18,19, + 19,19,19,18,20,19,19,20,20,19,19,19,19,19,20,20, + 20,20,19,20,19,18,20,19,19,19,19,19,14,16,15,16, + 16,17,17,17,18,17,17,17,19,18,19,19,17,19,19,20, + 20,20,18,18,19,19,19,19,17,19,19,20,19,19,19,20, + 19,19,19,19,19,20,18,19,19,20,19,19,18,20,20,20, + 19,19,19,20,20,20,19,19,19, }; static float _vq_quantthresh_res0_160_1024_8[] = { - -9.5, -6.5, -4, -2.5, -1.5, -0.5, 0.5, 1.5, - 2.5, 4, 6.5, 9.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, }; static long _vq_quantmap_res0_160_1024_8[] = { - 12, 11, 10, 9, 8, 7, 0, 1, - 2, 3, 4, 5, 6, + 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, - 13, - 13 + 61, + 61 }; static static_codebook _vq_book_res0_160_1024_8 = { - 2, 169, + 2, 3721, _vq_lengthlist_res0_160_1024_8, - 1, -529137664, 1611661312, 5, 0, + 1, -526516224, 1611661312, 6, 0, _vq_quantlist_res0_160_1024_8, NULL, &_vq_auxt_res0_160_1024_8, diff --git a/lib/books/res0_160_1024_9.vqh b/lib/books/res0_160_1024_9.vqh index d945da6f..28c8f3db 100644 --- a/lib/books/res0_160_1024_9.vqh +++ b/lib/books/res0_160_1024_9.vqh @@ -1,13 +1,12 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * + * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -20,78 +19,766 @@ #include "codebook.h" static long _vq_quantlist_res0_160_1024_9[] = { - 56, - 57, - 58, - 59, - 61, - 64, - 67, - 70, - 73, - 76, - 80, - 84, - 87, - 91, - 95, - 99, - 103, - 107, + 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_160_1024_9[] = { - 2, 3, 4, 4, 4, 5, 6, 6, 7, 8, 9,10,11,12,13,13, - 16,16,18, 3, 4, 4, 5, 5, 6, 6, 7, 8, 9,10,11,12, - 13,14,16,17,18, + 3, 4, 4, 4, 4, 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, 7, 7, + 7, 7, 7, 8, 8, 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,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,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,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,13,14,13,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,15,14,15,14,14,15, + 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, + 16,15,15,16,15,15,15,16,16,16,16,15,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,17,16,16,16, + 16,16,16,16,17,16,16,16,16,17,16,17,17,16,17,17, + 17,17,17,17,16,16,16,17,17,17,17,17,17,17,16,17, + 18,17,18,17,17,18,17,17,17,17,17,17,17,18,18,17, + 18,17,17,19,18,17,17,17,18,17,18,18,18,19,18,18, + 19,18,18,18,18,18,18,18,18,18,17,18,18,19,19,18, + 19,18,18,18,19,19,19,18,18,20,18,19,18,20,18,20, + 19,19,18,18,20,18,19,20,20,19,19,18,19,19,19,19, + 20,19,20,18,19,20,19,21,19,19,20,21,20,20,20,19, + 19,19,20,20,19,20,20,21,21,20,20,21,21,21,20,19, + 20,21,21,21,21,21,19,20,19,20,20,21,21,21,21,21, + 21,19,20,21,21,20,21,21,21,21,21,21,19,21,20,21, + 21,21,21,21,20,20,21,21,21,21,21,21,21,21,21,21, + 21,21,21,21,21,21,21,20,21,21,21,21,21,20,21,21, + 21,21,21,20,21,21,21,20,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,20,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, }; static float _vq_quantthresh_res0_160_1024_9[] = { - -53.5, -49, -45, -41, -37, -33, -29.5, -26, - -22, -18.5, -15.5, -12.5, -9.5, -6.5, -4, -2.5, - -1.5, -0.5, 0.5, 1.5, 2.5, 4, 6.5, 9.5, - 12.5, 15.5, 18.5, 22, 26, 29.5, 33, 37, - 41, 45, 49, 53.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, }; static long _vq_quantmap_res0_160_1024_9[] = { - 36, 35, 34, 33, 32, 31, 30, 29, - 28, 27, 26, 25, 24, 23, 22, 21, - 20, 19, 0, 1, 2, 3, 4, 5, - 6, 7, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, + 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_160_1024_9 = { _vq_quantthresh_res0_160_1024_9, _vq_quantmap_res0_160_1024_9, - 37, - 37 + 561, + 561 }; static static_codebook _vq_book_res0_160_1024_9 = { - 1, 37, + 1, 561, _vq_lengthlist_res0_160_1024_9, - 1, -524550144, 1611661312, 7, 0, + 1, -518946816, 1611661312, 10, 0, _vq_quantlist_res0_160_1024_9, NULL, &_vq_auxt_res0_160_1024_9, diff --git a/lib/books/res0_160_1024aux.vqh b/lib/books/res0_160_1024aux.vqh index 76057259..e583d212 100644 --- a/lib/books/res0_160_1024aux.vqh +++ b/lib/books/res0_160_1024aux.vqh @@ -20,13 +20,13 @@ #include "codebook.h" static long _huff_lengthlist_res0_160_1024aux[] = { - 2, 7,12,11,15,11,14,11,12,15, 5, 4, 7, 7, 9, 9, - 10,10,11,13,10, 6, 5, 6, 6, 9, 8,10,12,14, 9, 6, - 6, 6, 6, 7, 8, 8,10,13,13, 8, 6, 6, 5, 7, 5, 7, - 10,14, 9, 8, 8, 7, 7, 7, 7, 8, 9,13,13, 9, 8, 7, - 5, 7, 5, 6, 8,13,10, 9, 9, 7, 7, 7, 6, 5, 7,10, - 10,10,11, 9, 9, 8, 7, 6, 6, 9,11,10,12,10,10, 9, - 8, 7, 5, 7, + 2, 7,12,11,13,10,13,12,15,18, 5, 4, 7, 7, 9, 7, + 9,11,12,15,10, 6, 5, 6, 6, 8, 8,12,14,17, 9, 6, + 5, 5, 5, 5, 7, 9,12,16,13, 8, 6, 5, 5, 6, 7,12, + 14,18, 9, 7, 7, 5, 6, 5, 7, 8,11,16,13, 9, 8, 7, + 6, 7, 6, 9,11,16,10, 9,10, 8, 9, 7, 7, 7, 9,13, + 10,10,12,10,11, 8, 7, 7, 7,11,12,12,13,11,12,10, + 7, 6, 6,10, }; static static_codebook _huff_book_res0_160_1024aux = { diff --git a/lib/books/res0_160_128_1.vqh b/lib/books/res0_160_128_1.vqh index f1a9e766..2b44a65d 100644 --- a/lib/books/res0_160_128_1.vqh +++ b/lib/books/res0_160_128_1.vqh @@ -1,13 +1,12 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * + * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -21,17 +20,17 @@ static long _vq_quantlist_res0_160_128_1[] = { 1, - 2, 0, + 2, }; static long _vq_lengthlist_res0_160_128_1[] = { - 2, 4, 4, 4, 6, 6, 4, 6, 6, 5, 7, 6, 6, 8, 8, 6, - 8, 8, 5, 6, 7, 6, 8, 8, 6, 8, 8, 5, 7, 7, 7, 9, - 9, 7, 8, 8, 7, 9, 9, 8,10,11, 9,10,10, 7, 8, 9, - 8,11,10, 9,10,10, 5, 7, 7, 7, 8, 8, 7, 9, 9, 7, - 9, 8, 9,10,10, 9, 9,10, 7, 9, 9, 9,10,10, 9,10, - 10, + 3, 4, 4, 5, 6, 6, 4, 6, 6, 5, 6, 6, 6, 8, 8, 6, + 8, 8, 5, 6, 6, 6, 8, 7, 6, 8, 8, 5, 6, 6, 6, 8, + 8, 6, 8, 8, 6, 8, 8, 8, 9,10, 8,10, 9, 6, 8, 8, + 8,10, 8, 8, 9,10, 5, 6, 6, 6, 8, 8, 6, 8, 8, 6, + 8, 8, 8,10, 9, 8, 8,10, 6, 8, 8, 8, 9,10, 8,10, + 9, }; static float _vq_quantthresh_res0_160_128_1[] = { @@ -39,7 +38,7 @@ static float _vq_quantthresh_res0_160_128_1[] = { }; static long _vq_quantmap_res0_160_128_1[] = { - 2, 0, 1, + 1, 0, 2, }; static encode_aux_threshmatch _vq_auxt_res0_160_128_1 = { diff --git a/lib/books/res0_160_128_2.vqh b/lib/books/res0_160_128_2.vqh index 463808af..16c721a4 100644 --- a/lib/books/res0_160_128_2.vqh +++ b/lib/books/res0_160_128_2.vqh @@ -1,13 +1,12 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * + * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -20,75 +19,188 @@ #include "codebook.h" static long _vq_quantlist_res0_160_128_2[] = { - 2, 3, + 2, 4, 1, + 5, 0, + 6, }; static long _vq_lengthlist_res0_160_128_2[] = { - 3, 5, 7, 5, 6, 5, 6, 8, 6, 8, 7, 9,12, 9,11, 5, - 6, 8, 6, 8, 7, 9,11, 9,11, 5, 6, 9, 6, 9, 6, 8, - 10, 8,10, 9,10,13,10,13, 7, 8,10, 8,10, 9,10,12, - 11,13, 8, 9,13, 9,13, 9,11,14,11,13,12,13,17,13, - 16, 9,11,13,11,13,12,14,16,13,15, 5, 6, 9, 7, 9, - 6, 8,10, 8,10, 9,10,13,10,13, 7, 8,10, 8,10, 9, - 10,13,10,12, 8, 9,12, 9,13, 9,11,13,10,13,12,13, - 15,13,15, 9,11,15,10,13,13,13,16,13,15, 6, 7, 9, - 7, 9, 7, 8,11, 8,10, 9,11,14,11,14, 7, 8,10, 8, - 10, 9,10,13,10,13, 7, 8,11, 8,10, 8, 9,11, 9,12, - 11,11,13,12,15, 8, 9,12, 9,12,11,12,14,12,15,10, - 11,13,11,13,10,11,14,12,14,13,13,16,15,17,11,12, - 15,12,15,13,14,15,15,16, 7, 8,10, 8,11, 8, 9,12, - 9,11,11,12,15,11,13, 8, 9,12, 9,12,11,11,15,12, - 14,10,11,13,11,14,11,12,16,12,14,14,14,16,14,16, - 11,12,14,12,15,13,15,17,15,17, 8,10,12,10,12,10, - 11,13,11,14,13,14,17,13,17,10,11,13,11,13,12,14, - 14,14,15,10,11,14,11,14,11,12,16,12,15,14,14,17, - 15,17,11,12,14,12,14,14,15,17,14,17,12,13,16,14, - 16,14,14,17,14,17,16,16,17,17,17,13,14,17,15,16, - 17,17,17,16,17,10,11,15,11,15,11,12,14,12,14,14, - 17,17,15,16,11,12,15,12,15,15,15,17,15,16,13,14, - 15,14,15,13,15,17,15,16,17,17,17,17,17,14,15,17, - 14,17,15,17,17,16,17, 6, 7, 9, 7, 9, 7, 8,10, 8, - 10, 9,10,13,11,13, 7, 8,11, 8,11, 9,10,13,11,13, - 7, 8,10, 8,10, 8, 9,12, 9,12,11,12,14,12,14, 8, - 9,11, 9,12,11,11,14,12,15,10,11,13,11,13,11,12, - 15,12,15,13,14,16,14,17,10,11,15,12,15,13,13,15, - 14,16, 7, 8,10, 8,10, 8, 9,12, 9,12,11,12,14,12, - 14, 8, 9,12, 9,12,11,12,14,11,14, 9,11,13,11,14, - 11,12,14,12,14,13,14,16,14,17,10,12,15,12,14,13, - 15,17,14,17, 9,10,13,10,13,10,11,14,11,13,13,13, - 15,13,15,10,11,14,11,14,13,13,16,13,15,10,11,15, - 11,14,11,12,15,13,15,14,15,16,15,17,11,12,14,12, - 15,14,14,17,15,17,12,14,16,13,15,14,14,16,15,17, - 17,17,17,16,17,14,14,17,16,16,15,17,17,15,17,10, - 11,14,11,15,11,12,15,12,15,14,15,17,15,17,11,13, - 15,12,15,13,16,17,14,17,12,15,15,13,16,15,15,16, - 15,15,15,17,17,17,17,13,14,17,14,17,15,17,16,15, - 17, + 3, 5, 5, 7, 7,10,10, 5, 7, 7, 9, 8,12,11, 5, 7, + 7, 8, 9,12,12, 7, 9, 9,13,13,15,16, 7, 9, 9,12, + 12,15,16,10,11,12,15,14,16,16,10,12,12,15,15,17, + 17, 5, 7, 7, 9, 9,12,12, 7, 8, 8,10,10,13,13, 7, + 8, 8,10,10,13,14, 9,10,10,14,14,16,16, 9,10,10, + 14,14,15,17,12,13,14,17,17,17,17,12,13,13,15,17, + 17,16, 5, 7, 7, 8, 9,12,11, 7, 8, 8,10,10,13,13, + 7, 8, 8,10,10,14,12, 9,11,10,14,13,16,17, 9,11, + 10,15,13,15,17,12,14,13,17,17,17,15,12,13,13,17, + 17,17,17, 7, 9, 9,13,13,15,14, 9,10,10,14,14,16, + 15, 9,10,10,14,14,16,17,12,14,16,16,15,17,17,13, + 14,14,15,17,17,17,14,15,16,17,17,17,17,14,16,16, + 16,17,17,17, 7, 9, 9,13,13,14,15, 9,10,10,13,14, + 16,15, 9,10,10,15,14,17,15,13,14,13,17,16,16,17, + 13,14,14,17,15,17,17,15,17,17,17,15,17,17,16,17, + 16,16,17,17,17,10,13,13,15,14,17,16,12,14,13,17, + 15,17,16,12,14,14,16,17,17,17,15,15,16,16,17,17, + 17,14,16,17,17,17,17,17,17,17,17,17,17,17,17,17, + 16,16,17,17,16,17,10,12,13,15,15,17,17,12,15,13, + 17,17,17,17,13,15,14,16,16,17,16,15,16,14,17,16, + 17,17,14,14,16,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,16,17,17, 5, 7, 7, 9, 9,12,12, 7, 8, + 8,11,10,14,15, 7, 8, 8,10,11,13,13, 9,10,11,15, + 16,16,17, 9,10,11,14,17,17,17,12,14,15,15,15,17, + 17,12,14,14,15,17,17,17, 7, 9, 8,10,10,14,13, 8, + 10,10,11,12,17,15, 8,10,10,12,11,14,15,10,12,12, + 14,15,17,17,11,12,12,16,15,17,16,13,15,15,17,17, + 17,17,14,16,17,17,17,17,17, 7, 8, 9,11,10,13,13, + 8,10,10,12,12,15,14, 8,10,10,12,12,14,14,11,12, + 11,17,14,17,17,11,12,13,14,16,17,16,14,16,15,17, + 17,16,17,15,15,15,17,15,17,17, 9,11,11,14,15,17, + 17,10,12,12,16,17,15,15,11,13,12,17,15,17,17,14, + 15,16,16,17,17,16,15,15,15,17,16,17,17,16,16,17, + 17,17,17,17,17,17,17,17,17,17,17, 9,11,11,14,14, + 16,17,10,13,12,17,14,16,15,11,13,12,15,15,15,17, + 14,15,16,17,15,17,17,14,16,14,17,17,17,16,15,17, + 16,17,16,17,17,17,17,16,17,17,16,17,13,14,14,17, + 17,17,16,14,13,15,16,16,17,17,13,16,15,17,17,17, + 17,16,17,17,15,17,17,17,17,17,17,17,17,17,17,17, + 17,16,16,17,17,17,17,17,17,17,17,17,17,12,13,15, + 17,17,17,17,13,14,15,16,16,17,17,15,16,15,17,17, + 17,17,17,17,15,17,17,17,17,15,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17, 5, 7, + 7, 9, 9,12,12, 7, 9, 8,10,10,13,14, 7, 8, 8,10, + 10,13,13, 9,10,10,15,14,16,15, 9,11,10,14,15,16, + 17,12,13,14,15,16,17,17,12,15,14,15,16,17,17, 7, + 8, 8,10,10,15,14, 8,10,10,12,11,14,14, 8,10,10, + 11,12,14,15,11,12,11,16,15,17,17,11,11,13,14,15, + 17,17,14,17,16,16,17,17,17,14,16,14,16,17,17,17, + 7, 8, 8,10,10,14,13, 8,10,10,11,12,14,14, 8,10, + 10,12,12,14,14,10,11,12,14,14,16,17,10,12,12,17, + 14,17,17,15,15,16,17,17,16,17,14,15,15,17,17,17, + 17, 9,11,10,14,14,17,17,10,12,12,17,14,17,17,10, + 12,12,14,17,15,17,15,14,15,17,17,17,17,14,16,15, + 17,17,17,17,16,16,17,17,17,16,17,17,17,17,17,17, + 16,17, 9,11,11,15,13,15,16,11,12,12,14,17,16,17, + 11,12,12,16,17,17,17,15,16,16,16,15,16,17,14,15, + 15,17,15,17,17,17,15,17,16,16,17,16,17,17,17,17, + 17,17,17,13,15,14,15,17,17,17,15,15,15,17,17,17, + 17,14,15,17,17,17,16,17,17,17,17,17,17,17,17,17, + 16,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,13,14,17,16,17,17,17,14,16,15,17,17, + 17,16,15,16,14,17,17,17,17,16,17,17,17,15,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17, 7, 9, 9,13,13,15,17, 9,11,11,14, + 14,15,16, 9,11,11,15,14,16,17,14,15,14,17,17,16, + 17,13,17,15,17,17,17,17,17,16,16,16,17,17,17,16, + 17,15,17,17,17,17, 9,11,11,14,14,17,17,11,12,13, + 15,17,17,16,11,13,12,17,15,16,17,16,16,17,17,17, + 17,17,16,15,15,17,16,17,17,16,17,17,17,17,17,17, + 17,17,17,15,17,17,17, 9,11,11,15,16,17,16,11,12, + 12,16,16,16,17,11,12,13,17,16,16,17,14,17,17,17, + 17,17,17,17,16,16,16,17,17,17,17,17,15,17,17,17, + 17,17,17,16,17,17,17,17,13,16,14,16,14,17,16,15, + 15,15,17,15,17,17,16,15,16,17,17,17,17,16,15,16, + 16,17,17,17,17,17,17,17,17,17,17,17,17,17,16,17, + 17,17,17,17,17,17,17,17,17,13,17,15,17,16,17,17, + 14,15,15,17,17,17,17,17,16,16,17,16,17,17,15,16, + 17,17,15,16,17,16,17,17,17,17,16,17,17,17,17,17, + 16,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,16,17,17,17,17,16,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,15,16,17,17,17,17,17,17, + 17,17,17,17,17,17,16,17,17,17,17,17,17,16,17,17, + 17,17,16,17,16,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17, 7, 9, 9,13, + 14,15,15, 9,11,11,14,15,17,16, 9,11,11,15,15,17, + 17,13,16,15,16,17,17,17,13,15,15,17,16,17,17,17, + 17,17,17,17,17,17,17,17,16,17,17,17,17, 9,11,11, + 14,15,17,16,11,12,12,17,15,17,17,10,13,13,16,15, + 16,17,15,17,15,16,16,16,17,16,15,16,15,17,17,17, + 17,17,17,17,17,17,16,17,17,16,17,17,17,17, 9,11, + 11,14,15,15,17,11,12,12,14,16,17,17,11,12,12,17, + 15,16,17,14,15,17,17,17,17,16,15,17,16,17,16,17, + 17,16,17,17,17,17,17,17,16,17,16,17,17,16,17,14, + 15,15,17,17,17,17,15,16,17,17,16,17,17,14,17,17, + 17,17,17,17,16,17,17,17,17,17,17,17,17,17,15,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 15,14,14,17,15,16,17,15,17,16,17,17,17,17,15,17, + 15,17,17,17,17,15,17,17,16,17,17,17,17,17,17,17, + 16,17,17,16,17,17,17,17,17,17,17,17,17,17,15,17, + 17,15,16,17,17,17,17,17,17,17,16,17,17,17,17,17, + 17,16,17,17,17,17,17,16,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,16,17,16,17,17,17,17,17,17,17,17,17,17,17, + 15,16,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,11,13,13,15,16,17,17,13,15,14,17,17,17, + 17,13,14,14,17,17,17,17,17,17,17,17,17,17,17,15, + 17,17,17,16,17,16,17,17,17,16,17,17,17,17,17,17, + 17,17,17,17,12,14,17,15,17,17,17,17,15,15,16,17, + 17,16,13,17,16,17,17,17,17,16,15,17,17,17,17,17, + 16,16,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,12,15,15,17,17,17,17,14,17,15,17, + 17,17,17,14,16,17,17,17,16,17,16,16,16,17,17,17, + 17,16,17,17,17,17,17,17,17,16,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,16,17,17,17,17, + 16,16,17,17,17,16,17,17,17,17,17,17,15,17,17,17, + 17,17,17,17,16,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,16,16,16,17,17,17,17,17,16, + 16,17,17,17,17,17,17,17,16,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,16,17,17,17,17,17,17, + 16,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 16,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,11,13,13,17,17,17, + 15,13,16,13,16,15,17,17,13,15,16,17,17,17,17,17, + 17,17,17,17,17,17,16,16,17,17,17,17,17,17,17,16, + 17,17,17,17,17,17,17,17,17,17,17,12,14,14,17,16, + 17,16,16,16,17,17,15,17,17,16,17,15,16,17,17,17, + 17,17,17,16,17,17,17,17,17,17,16,17,17,17,17,17, + 17,17,17,17,17,17,16,15,17,17,17,17,12,15,14,17, + 17,17,17,14,16,14,17,17,16,17,15,16,15,15,16,17, + 17,17,17,17,17,17,17,17,16,17,16,17,17,17,17,17, + 16,17,16,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,15,17,17,17, + 17,17,17,17,16,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,16,17, + 16,17,17,17,17,17,14,17,17,17,17,17,16,16,17,17, + 17,17,17,16,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,16,17,17, + 17,17,17,17,16,17,17,17,17,17,17,17,16,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,16,17,17,17,17,17,17,17,17,17,17,16,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 16, }; static float _vq_quantthresh_res0_160_128_2[] = { - -1.5, -0.5, 0.5, 1.5, + -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, }; static long _vq_quantmap_res0_160_128_2[] = { - 4, 3, 0, 1, 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, - 5, - 5 + 7, + 7 }; static static_codebook _vq_book_res0_160_128_2 = { - 4, 625, + 4, 2401, _vq_lengthlist_res0_160_128_2, - 1, -533725184, 1611661312, 3, 0, + 1, -533200896, 1611661312, 3, 0, _vq_quantlist_res0_160_128_2, NULL, &_vq_auxt_res0_160_128_2, diff --git a/lib/books/res0_160_128_3.vqh b/lib/books/res0_160_128_3.vqh index 4df89afc..f3a21d4e 100644 --- a/lib/books/res0_160_128_3.vqh +++ b/lib/books/res0_160_128_3.vqh @@ -1,13 +1,12 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * + * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -20,46 +19,128 @@ #include "codebook.h" static long _vq_quantlist_res0_160_128_3[] = { - 5, - 6, - 7, - 8, + 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[] = { - 2, 3, 6, 6, 8, 3, 5, 6, 8, 4, 5, 7, 8,10, 5, 7, - 8,10, 6, 7, 9,10,13, 7, 9,10,12, 7, 8,11,13,14, - 8,11,13,16, 9,11,13,15,15,11,12,14,15, 4, 5, 7, - 8,10, 5, 7, 8,10, 6, 7,10,10,13, 7,10,11,12, 7, - 8,11,12,14, 8,11,13,14, 9,11,13,14,16,11,13,15, - 15, + 3, 4, 4, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9, + 9, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 5, + 5, 5, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 9, 9, 9, 9, 5, 5, + 5, 6, 6, 7, 7, 7, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 7, 7, 7, + 8, 8, 9, 9, 9,10,10,10,10,10,10,10,11,11,11,11, + 11,11,11,11,11,11,11,12,11,11,11,11, 7, 7, 7, 8, + 8, 9, 9, 9, 9,10,10,10,10,10,11,11,11,11,11,11, + 11,11,11,11,11,10,11,11,11,11,11, 8, 8, 9,10,10, + 11,10,11,11,12,11,12,12,12,12,12,12,13,12,12,13, + 12,13,12,12,13,13,12,13,12,13, 8, 9, 9,10,10,10, + 11,11,11,12,12,12,12,12,12,12,12,13,12,12,12,13, + 13,12,13,12,12,12,13,12,12, 9, 9, 9,11,11,11,11, + 12,13,12,13,13,13,14,13,13,14,13,13,13,14,15,14, + 15,14,13,14,13,13,13,14, 9, 9, 9,11,11,11,11,12, + 12,12,12,13,12,12,13,14,14,14,14,13,14,17,14,14, + 14,13,13,13,17,14,14,10,11,10,12,12,12,13,13,13, + 13,13,14,13,13,15,13,15,14,14,15,15,14,14,16,15, + 15,15,14,14,16,16, 9,10,10,12,12,12,13,12,13,13, + 15,13,13,13,13,13,14,14,15,15,14,16,15,16,15,14, + 15,15,15,14,15,11,11,11,13,13,13,13,15,14,13,14, + 13,15,13,15,15,14,15,14,15,14,15,16,15,15,15,15, + 16,16,16,15,10,12,11,13,12,13,14,14,13,15,15,15, + 13,15,13,15,15,14,15,15,15,15,14,14,16,16,15,15, + 15,16,15,11,12,13,13,13,13,14,13,13,14,14,14,14, + 13,16,16,15,16,15,15,16,15,15,16,15,16,15,15,16, + 15,15,11,12,12,13,13,13,13,15,15,16,14,16,16,15, + 14,15,15,16,14,15,15,15,16,16,16,15,16,15,16,16, + 16,12,12,13,14,13,16,16,15,16,15,15,15,15,15,15, + 14,14,14,14,15,15,16,15,16,15,16,16,16,16,16,16, + 11,13,13,14,14,14,15,15,14,16,15,16,15,16,16,16, + 14,16,14,16,15,15,16,16,16,15,15,15,14,15,16,13, + 13,14,15,15,15,16,15,16,16,15,16,15,16,15,16,16, + 16,16,15,15,15,15,16,15,15,16,16,16,15,16,13,14, + 13,15,15,16,14,15,16,16,15,15,16,16,16,16,15,16, + 16,16,16,16,15,16,16,15,16,16,16,16,16,13,14,13, + 15,16,15,15,15,15,16,15,16,16,16,15,15,16,16,16, + 15,16,16,16,15,16,16,16,15,16,16,16,13,12,15,15, + 15,16,15,16,15,16,16,15,16,16,16,16,16,16,15,16, + 15,16,16,16,16,16,16,16,15,16,16,13,15,14,15,15, + 15,16,16,16,16,16,16,16,16,16,15,16,15,15,16,16, + 16,16,16,16,16,16,16,16,16,16,13,15,14,15,15,15, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,15,16, + 16,16,16,16,16,16,16,15,15,14,15,15,15,15,16,16, + 16,15,16,16,16,16,16,16,15,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,14,15,15,16,15,16,15,16, + 16,16,15,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,15,16,16,16,16,14,14,16,15,16,15,16,16,16, + 16,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16, + 16,16,16,16,16,15,15,15,15,16,16,15,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,14,15,15,16,16,15,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,15,16,16,15,16,15,16,16,16,16,16,16, + 16,15,16,15,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,15,14,16,15,16,16,16,16,16,16,15,16,16,15, + 16,16,16,16,15,16,16,16,16,16,15,16,16,16,16,16, + 16,16,15,15,16,16,16,16,15,16,16,15,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,15,16,16,16, + 16, }; static float _vq_quantthresh_res0_160_128_3[] = { - -4, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 4, + -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[] = { - 8, 7, 6, 5, 0, 1, 2, 3, - 4, + 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, - 9, - 9 + 31, + 31 }; static static_codebook _vq_book_res0_160_128_3 = { - 2, 81, + 2, 961, _vq_lengthlist_res0_160_128_3, - 1, -531365888, 1611661312, 4, 0, + 1, -528613376, 1611661312, 5, 0, _vq_quantlist_res0_160_128_3, NULL, &_vq_auxt_res0_160_128_3, diff --git a/lib/books/res0_160_128_4.vqh b/lib/books/res0_160_128_4.vqh index c4d601f4..1b7ec427 100644 --- a/lib/books/res0_160_128_4.vqh +++ b/lib/books/res0_160_128_4.vqh @@ -1,13 +1,12 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * + * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -20,56 +19,271 @@ #include "codebook.h" static long _vq_quantlist_res0_160_128_4[] = { - 11, - 12, - 13, - 14, - 16, - 19, + 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[] = { - 3, 4, 5, 6, 6, 6, 7, 4, 5, 6, 6, 6, 6, 4, 5, 6, - 7, 7, 7, 7, 5, 6, 7, 7, 7, 7, 7, 7, 8, 9, 9, 9, - 9, 7, 8, 9, 9, 9, 9, 9, 9,10,10,10,10,11, 9,10, - 10,10,10,11,10,11,13,13,13,12,13,11,13,13,13,13, - 13,11,12,14,16,15,16,15,13,17,14,16,15,16,12,17, - 17,17,17,16,17,14,16,16,17,17,17, 4, 5, 6, 7, 7, - 7, 7, 5, 6, 7, 7, 7, 7, 7, 7, 8, 9, 9, 9, 9, 7, - 8, 9, 9, 8, 9, 9, 9,10,11,11,10,11, 9,10,10,11, - 11,10,11,11,13,13,13,13,12,11,12,14,13,12,13,11, - 13,16,15,14,15,17,13,14,14,16,14,16,13,15,16,17, - 17,17,17,14,15,16,16,16,16, + 4, 4, 4, 6, 6, 7, 7, 7, 8, 8, 8, 8, 8, 9, 9, 9, + 9, 9, 9, 9, 9,10,10,10,10,10,10,10,10,10,10, 8, + 9, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 9, + 10,10,10,10,10, 4, 5, 5, 6, 7, 7, 7, 8, 8, 8, 8, + 9, 9, 9,10, 9, 9,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, + 9,10, 9,10,10,10,10,10,10,10, 4, 5, 5, 6, 7, 7, + 7, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10,10, + 10,10,10,10,10,10,10,11,10, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9,10,10,10,10,10,10,10,10,10, 7, + 7, 7, 9, 9,10, 9,10,10,11,11,11,11,11,11,11,11, + 12,12,11,12,12,12,12,12,13,12,12,13,12,13,11,11, + 11,11,11,11,11,11,11,11,11,12,11,11,12,12,11,12, + 12,12,12,12, 7, 7, 7, 9, 9,10,10,10,10,10,10,11, + 11,11,11,12,11,12,12,11,12,11,12,12,12,12,12,12, + 12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11, + 12,11,12,12,11,12,13,12,12, 9, 9, 9,10,11,11,11, + 11,12,13,12,12,13,12,13,14,13,14,13,13,13,13,13, + 13,16,13,13,14,14,13,14,13,13,13,13,12,12,12,13, + 12,12,13,13,12,12,13,13,13,13,13,13,13,14, 9, 9, + 9,10,10,12,11,12,11,12,12,13,12,13,13,13,13,13, + 14,14,13,14,13,14,13,14,13,13,14,15,13,12,12,13, + 12,12,13,13,12,13,12,13,12,13,13,13,13,13,13,14, + 14,13,14,10,10,11,11,12,12,12,13,13,14,13,13,14, + 14,14,14,14,14,14,14,14,14,15,14,15,14,16,15,15, + 14,15,15,14,14,13,14,13,14,13,15,14,13,13,14,14, + 14,14,14,14,14,15,14,16,10,10,10,12,12,12,12,14, + 13,14,13,13,13,14,13,14,14,14,15,14,14,14,15,15, + 14,14,14,15,15,15,15,13,14,14,15,14,13,13,13,14, + 14,14,15,14,14,14,13,14,14,15,14,15,14,11,11,12, + 13,13,14,14,15,14,15,14,14,15,14,15,15,14,15,15, + 15,16,15,15,15,15,15,14,15,15,15,15,14,14,15,14, + 14,15,15,16,14,14,14,14,14,14,15,15,14,15,15,15, + 15,15,11,11,11,13,13,13,13,15,13,14,14,15,15,14, + 14,16,15,15,16,15,16,16,15,14,16,14,15,16,16,15, + 15,14,15,14,14,14,14,14,14,14,14,15,15,16,14,15, + 16,14,16,15,14,15,15,11,12,12,14,13,14,14,13,14, + 15,14,16,15,15,14,16,16,15,16,16,15,15,15,15,16, + 15,16,15,15,16,16,15,15,15,15,15,16,14,15,15,15, + 14,15,15,16,15,15,15,15,16,15,16,16,11,12,12,13, + 13,13,13,14,15,15,15,14,15,14,16,16,14,14,16,15, + 15,16,16,15,15,15,15,15,16,16,16,16,14,15,14,15, + 15,16,14,16,16,15,15,15,16,15,15,15,15,16,15,16, + 16,12,12,13,14,13,14,14,14,15,15,16,16,15,15,14, + 15,15,16,15,15,15,14,15,16,16,16,16,16,16,15,16, + 15,15,15,15,14,16,15,15,15,15,16,15,16,15,16,16, + 16,15,16,16,16,16,12,13,13,14,14,15,15,14,16,15, + 15,15,15,16,15,15,15,15,15,16,16,15,15,15,15,16, + 16,16,16,15,15,16,15,14,15,15,16,16,16,15,16,16, + 16,16,15,16,15,16,15,16,16,16,16,12,13,14,15,14, + 15,15,15,16,16,15,15,15,15,16,16,15,16,15,16,15, + 16,16,16,16,16,16,16,16,16,16,16,15,16,16,16,15, + 16,15,15,16,16,15,16,16,16,15,16,16,16,16,15,16, + 13,13,13,14,14,15,15,15,15,15,15,16,15,15,16,16, + 16,16,16,15,16,16,16,16,15,16,15,16,16,16,16,14, + 14,16,15,16,16,15,15,15,15,16,16,15,16,16,16,16, + 16,16,15,16,16,13,13,14,15,14,15,15,16,16,15,16, + 16,15,15,16,16,15,15,16,16,15,16,16,16,16,15,16, + 16,16,16,15,16,15,16,16,15,16,16,15,16,16,15,16, + 16,16,16,16,16,15,16,16,16,16,13,14,14,15,13,16, + 14,15,16,16,15,16,15,15,15,16,15,16,16,16,16,15, + 16,16,16,15,16,15,16,16,16,14,16,16,16,15,16,15, + 15,15,16,16,15,16,16,16,16,16,16,16,16,16,16,14, + 14,14,15,15,15,15,15,16,16,16,16,15,16,16,15,16, + 16,16,16,16,16,16,16,16,16,16,16,15,16,16,16,16, + 15,16,16,16,16,16,15,16,15,16,16,15,16,16,16,15, + 16,16,16,16,13,14,13,15,14,15,16,16,15,15,16,16, + 15,15,15,16,16,16,15,16,16,15,15,16,16,15,16,16, + 15,15,16,15,16,16,16,15,16,16,16,16,15,16,15,16, + 15,16,16,16,16,15,16,16,15,14,14,14,15,14,16,15, + 15,16,15,16,16,15,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,15, + 16,15,16,16,16,16,16,16,15,16,16,16,16,16,14,15, + 14,16,16,16,16,16,16,15,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,15,16,16,16,16,16,15,16,15,16, + 16,16,16,14,14,14,15,15,16,16,16,15,16,16,16,16, + 15,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,15,16,16,16,15,15,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,14,14,15,16,15,15,16,16, + 15,15,16,16,16,16,16,16,16,16,16,16,16,16,16,15, + 16,16,15,15,16,16,16,16,15,15,16,16,16,16,16,16, + 15,16,16,16,16,16,15,16,16,15,16,16,16,14,14,15, + 15,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,15,16,15,16,16,16,15,16,16,16,15,16,16,16,15, + 16,16,15,15,15,16,15,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,15,16,16,16,15,15,16,16,15,16,16,16,16,16, + 16,16,16,16,16,16,16,15,14,15,16,16,16,16,15,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,15,16,16,16,15,14,16, + 15,15,16,15,16,16,15,16,16,16,16,16,16,16,16,16, + 16,16,16,16,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,16,16, + 16,15,16,15,16,15,16,15,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,15,15,14,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,15,16,16,16,16,16,16,16,16,15, + 16,15,15,16,16,16,16,16,16,16,16,14,16,15,15,15, + 15,15,16,16,15,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,15,16,16,16,16,16,16,16,16,16,16,15, + 14,16,14,15,16,16,16,16,16,15,16,16,16,16,16,15, + 16,16,16,16,16,15,16,16,16,16,16,16,15,16,16,16, + 16,15,16,16,16,16,16,16,16,16,15,16,16,16,16,16, + 16,16,16,16,15,15,15,14,16,15,15,16,14,16,16,16, + 16,16,16,15,16,16,16,15,16,16,16,16,16,16,16,16, + 15,16,16,16,16,16,16,16,16,15,16,16,16,16,16,16, + 16,16,16,15,15,16,16,16,16,16,14,14,15,16,16,16, + 15,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,16,16,16,16,16,16,16,16,15, + 16,15,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,15,16,16,16,16,16,16,16,16,16,16,16,15, + 16,16,16,16,14,16,16,16,16,15,16,16,16,16,16,16, + 16,15,16,16,16,16,15,16,16,15,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,14,15,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,15,15, + 16,16,15,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,15,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,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,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,15,14,15,16,16,16,16,16, + 16,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16, + 16,16,16,15,15,16,16,15,16,16,16,16,16,16,16,15, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 15,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,16,16,15, + 16,16,15,15,16,15,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,16,16,16,16,16,16,16,16,16,16,16,15, + 16,16,16,16,16,16,16,16,16,16,16,16,15,16,16,16, + 15,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,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,15,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,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,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,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,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,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,15,16,16,16, + 16,16,16,16,16,16,16,16,16, }; static float _vq_quantthresh_res0_160_128_4[] = { - -9.5, -6.5, -4, -2.5, -1.5, -0.5, 0.5, 1.5, - 2.5, 4, 6.5, 9.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, }; static long _vq_quantmap_res0_160_128_4[] = { - 12, 11, 10, 9, 8, 7, 0, 1, - 2, 3, 4, 5, 6, + 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, - 13, - 13 + 53, + 53 }; static static_codebook _vq_book_res0_160_128_4 = { - 2, 169, + 2, 2809, _vq_lengthlist_res0_160_128_4, - 1, -529137664, 1611661312, 5, 0, + 1, -526778368, 1611661312, 6, 0, _vq_quantlist_res0_160_128_4, NULL, &_vq_auxt_res0_160_128_4, diff --git a/lib/books/res0_160_128_5.vqh b/lib/books/res0_160_128_5.vqh index 7257e078..f33a163b 100644 --- a/lib/books/res0_160_128_5.vqh +++ b/lib/books/res0_160_128_5.vqh @@ -1,13 +1,12 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * + * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -20,101 +19,424 @@ #include "codebook.h" static long _vq_quantlist_res0_160_128_5[] = { - 102, - 103, - 104, - 105, - 107, - 110, - 113, - 116, - 119, - 122, - 126, - 130, - 133, - 137, - 141, - 145, + 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, - 204, 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, 4, 5, 6, 7, 7, 7, 8, 9,10,12,14,15,18,19, - 19,19,19,19,19,19,19,19,19,19,19,19, 2, 5, 5, 6, - 7, 7, 7, 8, 9, 9,11,14,15,18,18,19,19,19,19,19, - 19,19,19,19,19,19,18, + 2, 2, 2, 5, 5, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, + 8, 9, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 10,10,10,10,10,10,10,10,10,10,10,11,11,11,13,12, + 13,12,14,12,13, 8, 8, 8, 9, 8, 8, 8, 9, 9, 9, 9, + 9, 9,10,10,10,10,10,10,10,11,10,10,11,11,11,11, + 11,12,12,12,11,12,12,13,12,13,12,13,12,13,13,15, + 13,13,12,13,13,14,13,16,13,14,14,13,14,14,14,14, + 15,15,15,15,13,14,13,14,15,16,16,15,15,16,15,16, + 15,16,16,16,15,16,16,15,16,16,16,16,16,16,16,15, + 15,16,16,16,16,16,15,16,16,16,16,16,15,16,16,16, + 16,16,15,16,16,16,16,15,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,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,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,15, }; static float _vq_quantthresh_res0_160_128_5[] = { - -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.5, -1.5, -0.5, 0.5, 1.5, 2.5, 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, + -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[] = { - 54, 53, 52, 51, 50, 49, 48, 47, - 46, 45, 44, 43, 42, 41, 40, 39, - 38, 37, 36, 35, 34, 33, 32, 31, - 30, 29, 28, 0, 1, 2, 3, 4, - 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, + 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, - 55, - 55 + 301, + 301 }; static static_codebook _vq_book_res0_160_128_5 = { - 1, 55, + 1, 301, _vq_lengthlist_res0_160_128_5, - 1, -522616832, 1611661312, 8, 0, + 1, -520962048, 1611661312, 9, 0, _vq_quantlist_res0_160_128_5, NULL, &_vq_auxt_res0_160_128_5, diff --git a/lib/books/res0_160_128aux.vqh b/lib/books/res0_160_128aux.vqh index fbd1c2d8..6036a944 100644 --- a/lib/books/res0_160_128aux.vqh +++ b/lib/books/res0_160_128aux.vqh @@ -20,13 +20,24 @@ #include "codebook.h" static long _huff_lengthlist_res0_160_128aux[] = { - 4,10,13,13,13,15, 3, 3, 5, 8,12,13, 4, 4, 6, 8, - 15,14, 6, 6, 7, 8,10,13, 8, 5, 4, 5, 9,11, 6, 3, - 3, 4, 9,11, + 13,15,16,16,16,16,13,11,13,16,16,15,11,11,12,15, + 15,15,10,14,15,15,15,15,15,15,15,15,15,15,15,15, + 15,15,15,15, 9,10,12,13,15,15, 5, 2, 5,13,15,15, + 7, 5, 8,12,15,15,10,11,13,15,15,15,15,15,15,15, + 15,15,15,15,15,15,15,15, 9, 9,10,10,15,15, 5, 4, + 8,12,15,15, 9, 7,10,12,15,15,12,12,13,13,15,15, + 15,15,15,15,15,15,15,15,15,15,15,15,11,11,12,12, + 15,15, 9, 4, 5,10,15,15,12, 4, 6,10,15,15,13, 8, + 9,10,15,15,15,14,15,15,15,15,15,15,15,15,15,15, + 12,13,15,15,15,15,13, 3, 5,10,15,15,15, 4, 5,10, + 15,15,14, 8, 9,10,15,15,15,15,15,15,15,15,15,15, + 15,15,15,15,13,14,15,15,15,15,15, 5, 6,12,15,15, + 15, 6, 7,11,15,15,15,10,11,13,15,15,15,15,15,15, + 15,15,15,15,15,15,15,15, }; static static_codebook _huff_book_res0_160_128aux = { - 2, 36, + 3, 216, _huff_lengthlist_res0_160_128aux, 0, 0, 0, 0, 0, NULL, diff --git a/lib/books/res0_192_1024_1.vqh b/lib/books/res0_192_1024_1.vqh index 60542f12..7a2fc050 100644 --- a/lib/books/res0_192_1024_1.vqh +++ b/lib/books/res0_192_1024_1.vqh @@ -1,13 +1,12 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * + * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -21,17 +20,17 @@ static long _vq_quantlist_res0_192_1024_1[] = { 1, - 2, 0, + 2, }; static long _vq_lengthlist_res0_192_1024_1[] = { - 1, 5, 5, 5, 7, 7, 5, 7, 7, 5, 7, 7, 7, 9, 9, 7, - 9, 9, 5, 7, 7, 7, 9, 9, 7, 9, 9, 5, 7, 7, 7, 9, - 9, 7, 9, 9, 7, 9, 9, 9,11,11, 9,11,11, 7, 9, 9, - 9,11,11, 9,11,11, 5, 7, 7, 7, 9, 9, 8, 9, 9, 7, - 9, 9, 9,11,11, 9,11,11, 8, 9, 9, 9,11,11, 9,11, - 11, + 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, 9, 8, 9,12, + 12, 8,12,12, 9,12,12,13,16,16,12,16,16, 8,12,12, + 12,17,16,12,16,16, 5, 8, 8, 8,12,12, 8,12,12, 9, + 12,12,12,16,16,12,16,16, 8,12,12,13,17,16,12,16, + 15, }; static float _vq_quantthresh_res0_192_1024_1[] = { @@ -39,7 +38,7 @@ static float _vq_quantthresh_res0_192_1024_1[] = { }; static long _vq_quantmap_res0_192_1024_1[] = { - 2, 0, 1, + 1, 0, 2, }; static encode_aux_threshmatch _vq_auxt_res0_192_1024_1 = { diff --git a/lib/books/res0_192_1024_2.vqh b/lib/books/res0_192_1024_2.vqh index 8468cd40..8090449a 100644 --- a/lib/books/res0_192_1024_2.vqh +++ b/lib/books/res0_192_1024_2.vqh @@ -1,13 +1,12 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * + * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -20,75 +19,39 @@ #include "codebook.h" static long _vq_quantlist_res0_192_1024_2[] = { - 2, - 3, - 4, 1, 0, + 2, }; static long _vq_lengthlist_res0_192_1024_2[] = { - 4, 5, 7, 5, 7, 5, 6, 9, 6, 9, 7, 9,11, 9,11, 5, - 6, 9, 7, 9, 7, 9,11, 9,11, 5, 7, 9, 7, 9, 7, 8, - 10, 8,10, 9,10,12,10,12, 7, 8,10, 8,10, 9,10,12, - 10,12, 8, 9,11, 9,11, 9,10,12,10,12,11,12,14,12, - 14, 9,10,12,10,12,11,12,14,12,14, 5, 7, 9, 7, 9, - 7, 8,10, 8,10, 9,10,12,10,12, 7, 8,10, 8,10, 9, - 10,12,10,12, 8, 9,11, 9,11, 9,10,12,10,12,11,12, - 14,12,14, 9,10,12,10,12,11,12,14,12,14, 5, 7, 9, - 7, 9, 7, 8,10, 8,10, 9,10,12,10,12, 7, 8,10, 8, - 10, 9,10,12,10,12, 7, 8,10, 8,10, 8, 8,11, 9,11, - 10,11,12,11,13, 8, 9,11, 9,11,10,11,12,11,13, 9, - 10,12,10,12,10,11,13,11,13,12,12,14,13,15,10,11, - 13,11,13,12,13,15,13,15, 7, 8,10, 8,10, 8, 9,11, - 9,11,10,11,13,11,12, 8, 9,11, 9,11,10,11,13,11, - 13, 9,10,12,10,12,10,11,13,11,13,12,13,14,13,14, - 10,11,13,11,13,12,13,15,13,15, 8, 9,11, 9,11, 9, - 10,12,10,12,11,12,14,12,14, 9,10,12,10,12,11,12, - 14,12,14, 9,10,12,10,12,10,11,13,11,13,12,13,14, - 13,15,10,11,13,11,13,12,13,14,13,14,11,12,14,12, - 14,12,13,14,13,15,14,14,16,15,16,12,13,15,13,15, - 14,15,16,14,16, 9,10,12,10,12,10,11,13,11,13,12, - 13,15,13,14,10,11,13,11,13,12,13,14,13,14,11,12, - 14,12,14,12,13,15,13,14,14,15,16,14,16,12,13,15, - 13,15,14,15,16,15,16, 5, 7, 9, 7, 9, 7, 8,10, 8, - 10, 9,10,12,10,12, 7, 8,10, 8,10, 9,10,12,10,12, - 7, 8,10, 8,10, 8, 9,11, 9,11,10,11,13,11,13, 8, - 9,11, 9,11,10,11,13,11,13, 9,10,12,10,12,10,11, - 13,11,13,12,13,14,13,15,10,11,13,11,13,12,13,14, - 13,14, 7, 8,10, 8,10, 8, 9,11, 9,11,10,11,13,11, - 13, 8, 9,11, 9,11,10,11,13,11,12, 9,10,12,10,12, - 10,11,13,11,13,12,13,14,13,14,10,11,13,11,13,12, - 13,14,12,14, 8, 9,11, 9,11, 9,10,12,10,12,11,12, - 14,12,14, 9,10,12,10,12,11,12,14,12,14, 9,10,12, - 10,12,10,11,13,11,13,12,13,15,13,14,10,11,13,11, - 13,12,13,14,13,15,11,12,14,12,14,12,13,15,13,14, - 14,15,16,15,16,12,13,14,13,15,14,14,16,15,16, 9, - 10,12,10,12,10,11,13,11,13,12,13,14,13,15,10,11, - 13,11,13,12,13,15,13,14,11,12,14,12,14,12,13,15, - 13,15,14,14,16,15,16,12,13,15,13,14,14,14,16,14, - 16, + 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[] = { - -1.5, -0.5, 0.5, 1.5, + -0.5, 0.5, }; static long _vq_quantmap_res0_192_1024_2[] = { - 4, 3, 0, 1, 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, - 5, - 5 + 3, + 3 }; static static_codebook _vq_book_res0_192_1024_2 = { - 4, 625, + 4, 81, _vq_lengthlist_res0_192_1024_2, - 1, -533725184, 1611661312, 3, 0, + 1, -535822336, 1611661312, 2, 0, _vq_quantlist_res0_192_1024_2, NULL, &_vq_auxt_res0_192_1024_2, diff --git a/lib/books/res0_192_1024_3.vqh b/lib/books/res0_192_1024_3.vqh index 90fd6c5b..eecb71a4 100644 --- a/lib/books/res0_192_1024_3.vqh +++ b/lib/books/res0_192_1024_3.vqh @@ -1,13 +1,12 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * + * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -20,46 +19,75 @@ #include "codebook.h" static long _vq_quantlist_res0_192_1024_3[] = { - 5, - 6, - 7, - 8, - 10, - 4, - 3, 2, + 1, + 3, 0, + 4, }; static long _vq_lengthlist_res0_192_1024_3[] = { - 3, 4, 5, 6, 8, 4, 5, 6, 8, 4, 5, 6, 7, 8, 5, 6, - 7, 9, 5, 6, 7, 8, 9, 6, 7, 8, 9, 6, 7, 8, 9,10, - 7, 8, 9,10, 8, 9,10,10,11, 9,10,10,11, 4, 5, 6, - 7, 9, 5, 6, 7, 9, 5, 6, 7, 8, 9, 6, 7, 8, 9, 6, - 7, 8, 9,10, 7, 8, 9,10, 8, 9,10,10,11, 9,10,10, - 11, + 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,11,11, 7, 8, 8,11,10, 9,11,11,14,14, 9,11,11, + 13,14, 5, 6, 6, 9, 9, 7, 8, 8,11,10, 7, 8, 8,10, + 10, 9,11,11,14,14, 9,11,11,14,14, 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, 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, 5, 7, 7, + 9, 9, 7, 8, 8,11,11, 7, 8, 8,11,11, 9,11,11,14, + 14, 9,11,11,14,14, 7, 8, 8,11,11, 8,10,10,12,12, + 8,10,10,12,12,11,12,13,15,16,11,13,12,16,16, 7, + 8, 8,11,11, 8,10,10,12,12, 8,10,10,12,12,11,13, + 12,16,16,11,12,12,15,16, 9,11,11,14,14,11,12,12, + 16,16,11,13,12,16,16,14,16,16,19,19,14,16,16,19, + 18, 9,11,11,14,14,11,12,12,15,15,11,12,12,15,16, + 14,16,16,19,18,14,16,16,19,19, 5, 7, 6, 9, 9, 7, + 8, 8,11,11, 7, 8, 8,11,11, 9,11,11,14,14, 9,11, + 11,14,14, 7, 8, 8,11,11, 8,10,10,12,12, 8,10,10, + 12,12,11,13,13,16,16,11,12,12,16,16, 7, 8, 8,11, + 11, 8,10,10,12,12, 8,10, 9,12,12,11,12,12,15,16, + 11,12,12,15,15, 9,11,11,14,14,11,12,12,16,16,11, + 12,12,16,16,14,16,16,18,19,14,16,15,18,20, 9,11, + 11,14,14,11,12,12,15,16,11,12,12,16,15,14,16,16, + 18,18,14,16,16,19,19, 7, 9, 9,12,12, 9,11,11,14, + 14, 9,11,11,14,14,12,14,14,17,17,12,14,14,18,17, + 9,11,11,14,14,11,12,12,16,15,11,13,12,16,16,14, + 16,16,18,19,14,16,16,18,18, 9,11,11,14,14,11,13, + 12,16,15,11,13,12,16,16,14,16,16,20,18,14,16,16, + 19,18,12,14,14,17,17,14,15,16,18,19,14,16,16,19, + 18,17,19,18,20,21,18,20,18,21,20,12,14,14,17,17, + 14,16,16,19,18,14,16,17,18,18,17,19,17,21,20,17, + 19,19,20,20, 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,16,11,12,12,16,16,14,16,16,19, + 19,14,16,16,19,18, 9,11,11,14,14,11,12,13,15,16, + 11,12,12,16,16,14,16,16,18,19,14,16,16,18,18,12, + 14,14,17,17,14,15,16,19,19,14,15,16,18,20,18,18, + 19,20,21,17,19,18,20,21,12,14,14,17,17,14,16,16, + 19,18,14,16,16,20,18,17,20,19,21,20,17,18,18,20, + 19, }; static float _vq_quantthresh_res0_192_1024_3[] = { - -4, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 4, + -1.5, -0.5, 0.5, 1.5, }; static long _vq_quantmap_res0_192_1024_3[] = { - 8, 7, 6, 5, 0, 1, 2, 3, - 4, + 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, - 9, - 9 + 5, + 5 }; static static_codebook _vq_book_res0_192_1024_3 = { - 2, 81, + 4, 625, _vq_lengthlist_res0_192_1024_3, - 1, -531365888, 1611661312, 4, 0, + 1, -533725184, 1611661312, 3, 0, _vq_quantlist_res0_192_1024_3, NULL, &_vq_auxt_res0_192_1024_3, diff --git a/lib/books/res0_192_1024_4.vqh b/lib/books/res0_192_1024_4.vqh index f459e6b1..53a1ca94 100644 --- a/lib/books/res0_192_1024_4.vqh +++ b/lib/books/res0_192_1024_4.vqh @@ -1,13 +1,12 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * + * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -20,56 +19,75 @@ #include "codebook.h" static long _vq_quantlist_res0_192_1024_4[] = { - 11, - 12, - 13, - 14, - 16, - 19, - 22, - 10, - 9, - 8, - 6, + 2, + 1, 3, 0, + 4, }; static long _vq_lengthlist_res0_192_1024_4[] = { - 3, 5, 6, 6, 6, 7, 8, 5, 6, 6, 6, 7, 8, 5, 6, 6, - 7, 7, 8, 9, 6, 6, 7, 7, 8, 9, 6, 7, 7, 8, 8, 9, - 11, 7, 7, 8, 8, 9,10, 6, 7, 8, 8, 8, 9,11, 7, 8, - 8, 8, 9,11, 7, 7, 8, 8, 8, 9,11, 7, 8, 8, 8, 9, - 11, 7, 8, 9, 9, 9,10,12, 8, 9, 9,10,10,12, 9,10, - 11,11,11,12,13,10,11,11,11,12,13, 5, 6, 6, 7, 7, - 8,10, 6, 7, 7, 7, 8, 9, 6, 7, 7, 8, 8, 9,10, 7, - 7, 8, 8, 9,10, 6, 7, 8, 8, 8, 9,11, 7, 8, 8, 8, - 9,11, 7, 7, 8, 8, 8, 9,11, 7, 8, 8, 9, 9,11, 7, - 8, 9, 9, 9,10,12, 8, 9, 9, 9,10,12, 9,10,11,11, - 11,12,13,10,11,11,11,12,13, + 6, 7, 7, 8, 8, 7, 7, 7, 9, 9, 7, 7, 7, 9, 9, 8, + 9, 9,11,11, 8, 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, 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,14,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, 7, 8, 8,10,10, + 7, 8, 8,10,10, 9,10,10,12,12, 9,10,10,12,12, 7, + 8, 8, 9, 9, 8, 8, 8,10,10, 8, 8, 8,10,10, 9,10, + 10,12,12, 9,10,10,12,12, 9,10, 9,12,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,13,11,12,12,14,14, 7, 7, 7, 9, 9, 7, + 8, 7, 9, 9, 7, 8, 7, 9, 9, 9, 9, 9,11,11, 9, 9, + 9,11,11, 7, 8, 7, 9, 9, 7, 8, 8,10,10, 7, 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,12, 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,13, 8, 9, 9,11,11, 9,10,10,12, + 11, 9, 9, 9,11,11,11,11,12,13,13,11,11,11,13,13, + 9, 9, 9,12,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,12,11,13,13,11,12,12,14,14,11,12,12,14, + 14,13,14,14,15,16,14,14,14,16,16,11,11,11,13,13, + 11,12,12,14,14,11,12,12,14,14,13,14,14,17,15,13, + 14,14,16,16, 8, 9, 9,11,11, 9, 9, 9,11,11, 9, 9, + 9,11,11,11,11,11,13,13,11,11,11,14,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,17,13,14,14,15,16,11,11,11,13,13,11,12,12, + 14,14,11,12,12,14,14,13,14,14,15,16,13,14,14,16, + 15, }; static float _vq_quantthresh_res0_192_1024_4[] = { - -9.5, -6.5, -4, -2.5, -1.5, -0.5, 0.5, 1.5, - 2.5, 4, 6.5, 9.5, + -1.5, -0.5, 0.5, 1.5, }; static long _vq_quantmap_res0_192_1024_4[] = { - 12, 11, 10, 9, 8, 7, 0, 1, - 2, 3, 4, 5, 6, + 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, - 13, - 13 + 5, + 5 }; static static_codebook _vq_book_res0_192_1024_4 = { - 2, 169, + 4, 625, _vq_lengthlist_res0_192_1024_4, - 1, -529137664, 1611661312, 5, 0, + 1, -533725184, 1611661312, 3, 0, _vq_quantlist_res0_192_1024_4, NULL, &_vq_auxt_res0_192_1024_4, diff --git a/lib/books/res0_192_1024_5.vqh b/lib/books/res0_192_1024_5.vqh index 52803006..2d161270 100644 --- a/lib/books/res0_192_1024_5.vqh +++ b/lib/books/res0_192_1024_5.vqh @@ -1,13 +1,12 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * + * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -20,101 +19,56 @@ #include "codebook.h" static long _vq_quantlist_res0_192_1024_5[] = { - 102, - 103, - 104, - 105, - 107, - 110, - 113, - 116, - 119, - 122, - 126, - 130, - 133, - 137, - 141, - 145, - 149, - 153, - 158, - 163, - 168, - 173, - 174, - 180, - 186, - 192, - 198, - 204, - 101, - 100, - 99, - 97, - 94, - 91, - 88, - 85, - 82, - 78, - 74, - 71, - 67, - 63, - 59, - 55, - 51, - 46, - 41, - 36, - 31, - 30, - 24, - 18, - 12, 6, + 5, + 7, + 4, + 8, + 3, + 9, + 2, + 10, + 1, + 11, 0, + 12, }; static long _vq_lengthlist_res0_192_1024_5[] = { - 2, 3, 4, 4, 4, 5, 7, 6, 9,10,11,13,13,14,14,15, - 17,17,18,19,20,21,21,21,20,21,21,21, 3, 4, 4, 4, - 5, 6, 6, 9,10,11,12,13,13,15,16,17,17,21,21,21, - 21,21,21,21,21,21,21, + 2, 4, 3, 6, 5, 7, 7, 8, 8,10,10,11,11, 4, 5, 5, + 7, 7, 8, 8,10,10,12,12,13,13, 3, 5, 5, 7, 7, 8, + 8,10,10,12,12,13,13, 6, 7, 7, 9, 9,11,10,12,13, + 14,14,15,15, 6, 7, 7, 9, 9,10,10,13,13,14,14,15, + 15, 7, 8, 8,11,10,13,13,14,14,15,15,16,16, 7, 8, + 8,11,11,13,13,14,14,15,15,17,16, 8,10,10,13,13, + 14,14,16,16,16,16,18,17, 9,11,10,13,13,14,14,16, + 16,16,17,17,17,10,12,12,14,14,15,15,17,16,17,18, + 19,18,10,12,12,14,14,16,15,16,16,18,17,18,20,11, + 13,13,15,15,16,17,18,17,18,19,19,19,11,13,13,15, + 15,16,16,17,17,18,18,19,20, }; static float _vq_quantthresh_res0_192_1024_5[] = { - -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.5, -1.5, -0.5, 0.5, 1.5, 2.5, 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, + -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[] = { - 54, 53, 52, 51, 50, 49, 48, 47, - 46, 45, 44, 43, 42, 41, 40, 39, - 38, 37, 36, 35, 34, 33, 32, 31, - 30, 29, 28, 0, 1, 2, 3, 4, - 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, + 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, - 55, - 55 + 13, + 13 }; static static_codebook _vq_book_res0_192_1024_5 = { - 1, 55, + 2, 169, _vq_lengthlist_res0_192_1024_5, - 1, -522616832, 1611661312, 8, 0, + 1, -531103744, 1611661312, 4, 0, _vq_quantlist_res0_192_1024_5, NULL, &_vq_auxt_res0_192_1024_5, diff --git a/lib/books/res0_192_1024_6.vqh b/lib/books/res0_192_1024_6.vqh new file mode 100644 index 00000000..5f14fb36 --- /dev/null +++ b/lib/books/res0_192_1024_6.vqh @@ -0,0 +1,80 @@ +/******************************************************************** + * * + * 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_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, 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,13,12,13,13, 7, 7, + 7, 9, 9,10,10,11,11,12,12,13,13, 8, 9, 9,10,10, + 12,12,13,12,13,14,14,14, 8, 9, 9,10,10,12,12,13, + 13,13,13,14,14, 9,10,10,11,12,13,13,14,14,15,15, + 15,15, 9,10,10,12,12,13,13,14,14,15,14,15,15,10, + 11,11,13,13,14,14,15,15,16,15,16,16,10,11,11,13, + 13,14,14,15,15,16,15,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 new file mode 100644 index 00000000..1e191f26 --- /dev/null +++ b/lib/books/res0_192_1024_7.vqh @@ -0,0 +1,236 @@ +/******************************************************************** + * * + * 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_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[] = { + 2, 4, 4, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 9, + 9, 9, 9, 9, 9,10,10,10,10,10,10,10,11,11,11,11, + 11,11,11,11,11,12,12,12,12,12,12,12,12, 5, 6, 6, + 7, 7, 8, 8, 9, 9, 9, 9,10,10,10, 9,10,10,10,10, + 11,11,11,11,11,12,12,12,12,12,12,12,12,13,13,13, + 13,13,13,13,13,13,14,13,14,14, 5, 6, 6, 7, 7, 8, + 8, 8, 9, 9, 9,10,10,10, 9,10,10,10,10,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, 6, 7, 7, 8, 8, 9, 9, 9, 9, + 10,10,10,10,11,11,11,11,12,12,12,12,12,12,12,13, + 13,13,13,13,13,13,14,14,14,14,14,14,14,14,14,14, + 15,14,15,15, 6, 7, 7, 8, 8, 9, 9, 9, 9,10,10,10, + 10,11,11,11,11,12,11,12,12,12,12,13,13,13,13,13, + 13,13,13,14,14,14,14,14,14,14,14,14,14,15,14,15, + 15, 7, 8, 8, 9, 9,10,10,10,10,11,11,11,11,12,11, + 12,12,12,12,13,13,13,13,13,13,14,14,14,14,14,14, + 14,14,15,15,15,15,15,15,15,15,16,15,15,16, 7, 8, + 8, 9, 9,10,10,10,10,11,11,11,11,12,11,12,12,12, + 12,13,13,13,13,13,13,13,14,14,14,14,14,14,14,15, + 15,15,15,15,15,15,15,16,15,16,16, 8, 9, 9,10,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,16,15, + 16,16,16,16,16,16,16,16, 8, 9, 9,10,10,10,10,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,15,16,15,16,15,16, + 16,16,16,16,16, 8,10,10,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,15,16,16,16,16,16,16,16,17,16,17,17,17, + 17,17, 8,10,10,10,10,11,11,12,12,12,12,13,13,13, + 13,13,13,14,14,14,14,14,14,15,15,14,15,15,15,15, + 15,16,15,16,16,16,16,16,16,17,16,17,17,17,16, 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,16,15,15,15,16,16,16,16, + 16,16,16,17,17,16,17,17,17,17,17,17, 9,10,10,11, + 11,12,12,12,12,13,13,13,13,14,14,14,14,15,14,15, + 15,15,15,15,15,16,15,16,16,16,16,16,16,16,16,17, + 16,17,16,16,17,17,17,17,17, 9,10,10,11,11,12,12, + 13,12,13,13,14,13,14,14,14,14,15,15,15,15,15,15, + 15,16,16,16,16,16,17,16,16,17,17,17,17,17,17,17, + 17,18,17,17,17,17, 9,10,10,11,11,12,12,12,13,13, + 13,14,13,14,14,14,14,15,15,15,15,15,15,15,15,16, + 16,16,16,16,16,16,16,17,17,16,17,17,17,17,17,17, + 17,18,17, 9,11,11,12,12,12,12,13,13,14,14,14,14, + 14,14,15,15,15,15,16,16,16,16,16,16,16,16,16,16, + 16,16,17,17,17,17,18,17,17,17,18,17,18,18,18,18, + 9,11,11,12,12,12,12,13,13,14,14,14,14,15,15,15, + 15,15,15,16,15,15,15,16,16,16,16,16,16,17,17,17, + 16,17,16,17,17,17,17,17,17,18,17,18,18,10,11,11, + 12,12,13,13,13,14,14,14,15,15,15,15,15,15,15,15, + 16,16,16,16,16,16,16,16,17,17,17,17,17,17,17,17, + 18,17,18,17,18,18,19,18,18,18,10,11,11,12,12,13, + 13,14,14,14,14,14,14,15,15,15,15,15,16,16,16,16, + 16,16,16,17,16,17,17,17,17,17,17,18,17,17,17,18, + 17,18,17,18,18,18,18,10,12,12,12,12,13,13,14,14, + 14,15,15,15,15,15,16,16,16,16,16,16,16,17,16,17, + 17,17,17,17,17,17,17,17,17,17,18,18,18,18,18,19, + 18,18,19,18,10,11,11,13,13,13,13,14,14,15,14,15, + 15,15,15,16,16,16,16,16,16,16,17,17,16,17,17,17, + 17,17,17,17,18,17,18,18,18,17,18,18,18,18,18,18, + 19,10,12,12,13,13,14,14,14,14,15,15,15,15,16,16, + 16,16,16,16,16,17,16,16,17,17,17,17,17,18,17,18, + 18,17,18,18,19,17,19,18,18,18,19,19,19,20,10,12, + 12,13,13,14,14,14,14,15,15,15,15,16,15,16,16,17, + 16,17,17,17,17,17,17,17,17,17,17,18,18,18,18,18, + 18,17,18,19,18,18,18,20,18,19,19,11,12,12,13,13, + 14,14,15,15,15,15,16,16,16,16,17,16,16,16,17,17, + 17,17,17,17,18,17,18,18,18,18,19,18,18,18,19,19, + 18,18,19,18,18,19,19,19,11,12,12,13,13,14,14,15, + 15,15,15,16,16,16,16,16,17,16,17,17,17,17,17,17, + 17,17,17,17,18,18,18,18,18,18,19,18,19,19,18,19, + 18,19,19,19,19,11,13,13,14,14,14,14,15,15,15,15, + 16,16,17,16,17,17,17,17,17,17,17,17,17,18,18,17, + 18,18,18,18,18,18,18,18,19,19,19,18,18,19,19,19, + 19,19,11,13,13,14,13,14,14,15,15,16,15,16,16,16, + 16,17,16,17,17,17,17,18,17,18,17,18,17,18,18,18, + 18,18,18,18,19,19,18,20,19,19,18,19,18,18,20,11, + 13,13,14,14,15,15,16,15,16,16,16,16,16,17,17,17, + 17,17,17,17,18,18,18,18,18,18,17,18,18,18,19,19, + 19,18,19,19,19,19,19,19,20,19,19,19,11,13,13,14, + 14,15,15,15,15,16,16,17,16,17,17,17,17,17,17,18, + 17,18,17,18,18,18,18,18,18,19,19,19,18,18,18,19, + 18,19,19,21,18,19,20,19,19,12,13,13,14,14,15,15, + 16,16,16,16,17,17,17,17,17,17,17,18,17,18,17,17, + 19,18,18,18,18,19,19,18,19,19,19,19,18,19,19,19, + 19,20,20,19,19,19,12,13,13,14,14,15,15,16,16,16, + 16,17,17,17,17,17,17,17,18,18,18,18,18,19,18,18, + 18,18,18,18,18,18,20,19,19,19,19,19,19,20,19,18, + 20,20,19,12,14,14,15,14,15,15,16,16,16,17,17,17, + 17,17,17,18,17,18,18,18,18,18,19,18,19,18,19,19, + 18,19,19,20,18,20,19,19,20,18,20,19,19,19,20,19, + 12,14,13,15,14,15,15,16,16,16,17,17,17,17,17,18, + 17,18,18,18,18,18,18,18,18,18,18,19,18,19,19,18, + 19,19,19,20,21,19,19,20,19,19,19,20,19,12,14,14, + 15,15,16,16,16,16,17,17,17,17,17,18,18,18,18,18, + 20,19,18,18,18,18,19,19,19,18,19,19,19,18,22,19, + 19,19,19,18,20,19,22,20,20,19,12,14,14,15,15,16, + 16,16,17,17,17,17,17,18,17,17,17,18,18,18,18,19, + 19,18,19,18,20,19,18,19,19,19,19,18,19,19,20,19, + 19,19,19,20,19,20,19,12,14,14,15,15,16,16,17,16, + 17,17,18,18,18,17,18,17,18,18,18,19,19,18,18,18, + 18,19,18,18,19,19,20,19,21,19,20,19,19,19,19,20, + 20,20,20,20,13,14,14,15,15,16,16,16,17,17,17,17, + 18,17,17,18,18,18,18,18,18,19,19,19,19,20,18,18, + 19,19,19,20,19,19,19,19,20,20,18,20,20,19,20,20, + 20,13,14,14,15,15,16,16,17,17,17,17,17,17,18,19, + 18,18,19,18,18,18,18,19,19,19,19,19,19,19,19,19, + 20,20,19,20,19,20,19,20,19,20,19,20,21,20,13,15, + 14,15,15,17,16,17,17,17,18,18,18,18,18,19,18,19, + 18,19,19,18,19,19,18,20,18,20,19,19,19,19,19,19, + 20,19,19,19,19,20,20,19,21,22,19,13,14,14,15,16, + 16,16,17,17,18,17,18,18,18,18,18,18,19,19,19,18, + 19,18,19,19,19,19,19,20,19,19,20,20,20,20,19,20, + 21,20,20,21,21,20,20,22,13,14,14,15,16,16,17,17, + 17,18,17,18,18,18,19,19,18,18,19,19,19,18,19,18, + 20,19,19,20,19,19,19,20,20,20,19,20,20,21,20,19, + 20,21,19,20,20,13,15,15,16,16,17,17,17,17,17,18, + 18,18,19,19,20,19,19,20,19,19,19,19,19,19,20,19, + 20,20,20,20,19,19,20,20,20,20,21,20,20,21,20,21, + 20,22,13,15,15,16,16,17,17,17,17,18,18,18,18,18, + 18,19,18,18,20,19,19,19,19,22,19,19,20,20,20,19, + 20,19,19,19,20,21,19,20,20,20,20,20,22,21,20,13, + 15,15,16,16,16,17,17,17,18,18,18,18,18,18,19,19, + 18,20,19,20,20,20,20,19,19,20,20,20,20,20,21,20, + 21,20,20,21,19,20,20,20,20,20,21,22,14,15,15,16, + 16,17,17,17,18,17,18,19,19,18,19,19,19,20,19,20, + 19,20,20,20,20,20,19,19,20,20,21,19,21,21,21,21, + 20,20,19,20,20,21,21,21,21, +}; + +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 new file mode 100644 index 00000000..b57a3d41 --- /dev/null +++ b/lib/books/res0_192_1024_8.vqh @@ -0,0 +1,565 @@ +/******************************************************************** + * * + * 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_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[] = { + 3, 5, 5, 6, 6, 7, 7, 7, 7, 7, 7, 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,11,11, 9, 9,10, + 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, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, + 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,12,11,12,12,11,11, + 11,11,11,11,11,11,11,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, + 14,13, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, + 9,10, 9,10,10,10,10,10,10,10,10,10,10,11,10,11, + 11,11,11,11,11,11,11,11,11,12,11,12,12,12,11,11, + 11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12, + 12,12,13,13,12,13,13,13,13,13,13,13,13,13,13,14, + 14,14,13, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9,10,10,10, + 10,10,10,10,11,10,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,13,12,13,13, + 13,13,13,13,13,13,13,13,13,13,14,13,14,14,14,14, + 14,14,14,14, 7, 8, 8, 8, 8, 9, 9, 9, 9,10,10,10, + 10,10,10,10,10,10,10,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,13,12,13, + 13,13,13,13,13,13,13,14,13,13,14,14,14,14,14,14, + 14,14,14,14,14, 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,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,13, + 13,13,12,12,12,12,13,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,14,14,15, 8, 9, 8, 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,13,12,13, + 12,13,13,12,12,12,12,13,12,13,13,13,13,13,13,13, + 13,13,13,14,13,14,13,14,13,14,14,14,14,14,14,14, + 14,14,14,14,14,14,14, 8, 9, 9,10,10,10,10,10,11, + 11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12, + 12,12,12,12,13,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,14,14,14,14,15,14,14,14,14,14,15,14, + 14,14,15,14,15,15,15,15, 8, 9, 9,10,10,10,10,10, + 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,14,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, + 15,15,15,15,15,15,15,15,15, 9,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,12,13,12,13,13,13,13,13,13,13,13,13,13, + 13,14,13,14,14,14,13,13,13,13,14,14,14,14,14,14, + 14,14,14,14,14,14,15,14,15,14,15,14,14,14,15,15, + 15,15,15,15,15,15,15,16,15,15, 9,10,10,10,10,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,13,13, + 13,13,13,14,13,13,14,13,13,13,13,14,13,14,13,14, + 14,14,14,14,14,14,14,14,14,15,14,14,14,14,15,15, + 15,15,15,15,15,15,15,15,15,15,16, 9,10,10,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,13,13,14,13, + 14,13,14,14,14,13,14,14,13,13,14,14,14,14,14,14, + 14,14,14,14,15,14,15,14,15,15,15,15,15,15,15,15, + 15,15,15,15,14,15,15,16,15,16,15,15, 9,10,10,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,14,13,14, + 13,13,13,14,14,14,14,14,14,13,14,14,14,14,14,14, + 14,14,14,14,15,15,14,14,15,15,15,15,14,15,15,15, + 15,15,15,15,15,15,15,15,15,15,15,16,16,10,10,11, + 11,11,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,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,15,15,15,15,15,15,15,15,15,15,15, + 15,15,15,16,16,16,15,16,15,16,16,16,15,16,10,11, + 10,11,11,11,11,12,12,12,12,12,12,12,12,12,13,13, + 12,13,13,13,13,13,13,13,13,13,13,14,13,14,14,14, + 14,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14, + 14,14,14,14,14,14,14,14,15,15,15,15,14,15,15,15, + 15,15,15,15,15,15,16,15,16,16,16,15,16,16,16,10, + 11,11,11,11,12,12,12,12,12,12,12,13,13,13,13,13, + 13,13,13,13,13,13,14,13,13,14,14,13,14,14,14,14, + 14,14,14,14,14,14,14,14,14,14,15,15,14,14,14,14, + 14,14,15,14,15,15,15,15,15,15,15,15,15,15,15,15, + 15,15,16,16,16,16,16,15,16,16,15,16,15,17,16,16, + 10,11,11,11,11,12,12,12,12,12,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,14,13,14,13,14, + 14,14,14,14,14,14,14,14,14,15,14,15,15,14,14,14, + 14,14,14,15,14,15,15,15,15,15,15,15,15,15,16,15, + 15,15,15,16,15,15,15,16,16,15,16,16,16,18,16,16, + 16,10,11,11,12,12,12,12,12,13,13,13,13,13,13,13, + 13,13,13,13,13,13,14,14,14,13,14,14,14,14,14,14, + 14,14,14,14,15,14,14,14,15,14,14,14,15,15,14,15, + 15,14,15,15,15,15,15,15,15,14,15,15,16,16,16,15, + 16,16,16,15,16,16,16,16,16,16,16,17,17,17,16,16, + 16,16,10,11,11,12,12,12,12,12,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,15,14,15,15,15,15,15,15,14, + 14,15,15,14,15,14,15,15,15,15,15,15,15,15,16,15, + 16,15,16,16,16,16,16,16,16,17,16,16,16,17,16,16, + 17,17,16,11,11,11,12,12,12,12,13,13,13,13,13,13, + 13,13,13,14,14,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,16,15, + 15,14,15,14,15,15,15,15,15,15,15,15,16,15,16,16, + 15,15,16,16,15,17,16,15,17,16,17,16,17,16,16,16, + 17,16,16,16,11,12,12,12,12,12,12,13,13,13,13,13, + 13,13,13,14,14,14,13,14,14,14,14,14,14,14,14,14, + 14,14,14,15,14,15,14,14,14,15,15,15,15,15,14,15, + 15,15,15,15,15,15,15,15,15,16,15,15,15,16,15,16, + 16,17,15,16,16,16,16,16,16,16,16,16,17,17,16,16, + 17,17,18,17,17,11,12,12,12,12,13,13,13,13,13,13, + 14,14,14,13,14,13,14,14,14,14,14,14,15,14,15,14, + 14,14,15,15,15,14,15,14,15,15,15,14,15,15,15,15, + 15,16,15,15,16,15,15,15,15,15,15,15,16,16,16,16, + 16,16,16,15,16,16,16,16,16,16,17,16,17,16,18,16, + 17,18,16,17,16,17,11,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,14,14,14,14,15,15,15,14,15,15,15,15,15,15,15, + 15,15,15,15,15,15,15,15,15,15,15,16,16,16,16,15, + 15,16,16,16,16,16,16,17,16,16,16,16,17,17,16,16, + 17,17,18,17,17,17,18,11,12,12,13,12,13,13,13,13, + 14,13,14,14,14,14,14,14,15,14,14,14,14,14,14,14, + 14,15,15,15,15,15,15,15,15,15,15,15,15,15,16,15, + 15,15,16,15,15,15,15,15,15,16,15,16,16,16,16,16, + 16,16,16,16,17,16,17,16,17,16,17,16,17,17,17,16, + 17,17,17,17,17,17,16,17,11,12,12,13,13,13,13,13, + 13,13,13,14,14,14,14,14,14,15,14,15,14,14,14,15, + 14,15,14,15,14,15,14,15,14,16,15,15,15,16,15,15, + 15,16,16,15,16,15,15,15,15,15,15,15,15,17,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,17,17, + 16,17,16,16,17,17,17,16,18,11,12,12,13,13,13,13, + 14,14,13,14,14,14,14,14,14,14,14,14,14,14,15,14, + 15,15,15,14,15,15,15,16,15,15,15,15,16,15,16,15, + 15,16,16,16,16,16,15,16,16,15,16,16,16,16,16,16, + 17,16,16,16,16,16,16,17,16,16,16,17,17,16,17,17, + 16,17,17,17,17,17,20,17,17,17,11,12,12,13,13,13, + 13,13,13,14,14,14,14,14,14,14,14,14,14,14,14,14, + 14,15,15,15,14,15,15,15,15,16,15,15,15,16,16,16, + 16,16,16,16,16,16,16,15,15,15,16,15,16,16,16,16, + 15,17,16,16,16,16,16,17,16,17,17,16,17,16,16,17, + 17,17,17,17,17,17,18,17,17,17,19,12,13,12,13,13, + 13,13,14,14,14,14,14,14,14,14,14,15,14,15,15,15, + 15,15,15,15,15,15,16,15,15,15,15,15,15,15,16,16, + 16,15,16,16,16,16,16,16,16,15,16,15,16,16,16,16, + 17,16,16,16,16,16,17,16,16,17,16,16,17,17,18,16, + 17,17,17,16,17,18,17,16,18,18,18,17,12,13,12,13, + 13,13,13,14,14,14,14,14,14,14,14,15,14,15,15,15, + 15,15,15,15,15,16,15,15,15,16,15,15,15,16,15,16, + 15,16,16,17,15,16,17,16,16,16,15,16,16,17,16,16, + 16,16,16,17,16,16,17,16,16,17,17,16,16,17,17,17, + 16,17,16,18,17,17,17,18,17,17,18,17,17,12,13,13, + 13,13,14,14,14,14,14,14,14,14,15,14,15,15,15,15, + 15,15,15,15,15,15,15,15,15,15,15,16,16,15,15,15, + 16,16,16,15,15,16,16,16,17,17,17,16,16,16,15,17, + 16,16,16,16,16,17,16,16,18,17,17,17,17,17,17,17, + 18,17,17,17,18,19,18,17,18,17,17,18,18,17,12,13, + 13,13,13,14,14,14,14,14,14,14,14,14,15,15,15,15, + 15,15,15,15,15,16,15,15,15,16,16,15,16,16,16,15, + 15,15,15,16,16,16,16,17,16,16,16,16,16,16,15,16, + 16,17,16,16,17,18,17,16,17,16,16,16,16,16,16,16, + 17,17,17,17,17,16,18,18,18,20,17,18,18,17,18,12, + 13,13,13,14,14,14,14,14,15,14,15,15,15,15,14,15, + 15,15,15,15,15,15,15,15,16,15,15,16,16,16,16,17, + 16,16,16,16,16,16,16,16,16,17,16,16,17,16,16,16, + 16,17,18,16,16,16,16,16,18,16,17,17,18,17,18,18, + 18,17,17,17,18,17,17,17,18,18,17,17,18,17,17,18, + 12,13,13,13,13,14,14,14,14,14,14,15,15,15,15,15, + 15,15,15,15,15,15,15,15,15,16,15,16,16,15,16,17, + 16,15,16,16,16,17,15,16,16,16,16,17,16,16,16,16, + 16,16,16,16,17,16,16,17,16,17,17,16,16,18,18,17, + 17,18,18,18,17,19,18,18,17,18,18,17,18,18,18,18, + 18,12,13,13,13,14,14,14,14,14,14,14,15,15,15,16, + 15,15,15,15,16,16,15,15,16,15,17,15,16,17,16,16, + 17,16,16,17,16,16,18,17,16,16,17,16,17,16,16,16, + 17,16,17,16,16,17,17,16,18,17,17,17,18,17,17,17, + 17,16,17,17,17,18,18,17,17,17,17,20,18,17,19,18, + 18,19,12,13,13,14,14,14,14,14,14,14,15,15,15,15, + 15,16,15,15,16,15,16,15,15,15,15,16,15,16,16,16, + 16,16,16,16,16,17,15,17,16,17,17,16,16,17,17,16, + 16,17,16,16,16,16,17,16,17,16,16,16,17,16,18,17, + 17,18,17,18,17,17,17,17,17,18,17,18,18,18,18,18, + 18,18,17,12,13,13,14,14,14,14,15,14,15,15,15,15, + 15,15,15,15,15,15,16,16,16,15,16,15,16,16,16,16, + 16,17,16,16,16,16,17,16,18,15,16,17,17,16,16,16, + 16,17,17,18,17,17,16,16,17,17,17,17,17,17,18,17, + 18,18,18,17,17,18,17,18,18,18,18,18,18,18,18,20, + 18,19,18,18,12,13,13,14,14,14,14,14,15,15,15,15, + 15,15,14,15,15,15,16,16,15,16,16,16,15,15,16,16, + 16,16,16,16,16,16,16,16,17,17,16,16,17,16,17,16, + 16,17,17,16,16,17,17,17,16,17,16,16,16,17,17,17, + 17,18,18,18,17,18,17,18,18,19,17,17,17,18,18,18, + 17,18,18,18,18,13,13,14,14,14,14,14,14,15,15,15, + 16,15,15,15,15,15,15,16,16,16,16,15,16,16,16,16, + 16,16,16,17,17,16,17,16,16,16,17,16,17,17,18,16, + 16,16,17,16,17,17,16,17,17,18,16,18,17,17,17,17, + 18,19,18,18,19,18,17,18,18,18,18,17,18,17,18,17, + 20,18,18,18,18,17,13,14,13,14,13,14,14,15,15,14, + 15,15,15,15,15,15,15,15,16,17,15,15,15,16,15,16, + 16,16,16,16,15,17,17,17,16,16,16,16,16,16,17,17, + 17,17,17,16,16,17,17,16,16,17,17,17,17,17,18,17, + 17,18,18,19,17,18,17,18,19,18,18,18,18,18,18,19, + 18,17,17,17,17,18,18,13,14,14,14,14,15,15,15,15, + 15,15,15,15,16,16,16,16,15,15,16,16,17,16,16,16, + 16,16,16,16,16,16,17,16,16,16,17,16,17,17,17,16, + 17,17,17,17,17,17,17,18,17,17,17,17,17,17,17,17, + 18,17,18,18,17,18,17,17,18,18,18,17,18,17,19,17, + 19,18,18,19,19,18,20,18,13,14,14,14,14,15,15,14, + 15,15,15,16,15,16,15,15,15,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,17,16,17,16,17,17,18,17,17, + 17,17,16,17,17,17,16,17,17,16,18,18,17,18,17,17, + 17,18,17,18,17,19,19,20,17,19,18,17,18,19,18,18, + 18,18,18,18,18,20,19,18,18,13,14,14,14,15,15,15, + 15,15,15,16,16,16,15,16,16,16,16,15,16,16,16,16, + 16,16,16,16,17,16,17,16,18,17,17,17,17,17,18,17, + 18,17,17,17,17,17,17,18,17,17,17,17,18,17,17,17, + 18,17,18,17,17,18,18,18,18,18,17,18,18,17,17,20, + 18,20,18,18,18,18,20,19,19,19,13,14,14,14,14,14, + 15,15,15,15,16,16,15,16,15,16,15,16,16,16,16,16, + 16,16,17,17,16,16,16,17,16,17,17,18,17,17,17,16, + 16,17,17,17,18,17,17,18,17,17,16,18,16,17,17,18, + 17,17,18,17,17,18,17,19,18,17,18,18,17,17,17,19, + 18,18,18,18,18,18,18,20,17,18,20,13,14,14,14,14, + 15,15,15,15,15,16,16,15,16,16,16,16,16,16,16,16, + 17,16,17,16,16,16,16,18,16,17,17,17,16,18,18,16, + 18,20,17,18,17,16,17,17,16,17,17,18,18,16,17,17, + 17,17,17,17,18,17,18,18,18,18,18,18,18,18,20,18, + 18,18,18,18,17,18,18,18,20,18,18,18,13,14,14,15, + 15,15,15,15,15,16,16,15,16,16,16,16,16,17,16,18, + 16,17,16,17,16,16,16,18,16,17,17,17,17,16,16,17, + 18,17,17,17,17,20,17,18,17,17,17,17,17,17,18,18, + 18,18,17,18,18,18,17,19,18,17,18,19,18,18,17,18, + 18,18,20,17,18,18,20,18,17,19,18,18,19,11,13,13, + 14,14,15,14,15,15,15,15,16,15,16,15,15,15,16,16, + 15,15,16,16,17,17,16,16,16,17,17,17,16,17,17,16, + 16,16,17,18,16,17,17,17,17,19,17,17,18,17,18,17, + 18,17,17,17,19,18,17,19,19,17,18,17,18,17,19,19, + 20,18,19,20,18,18,18,18,18,18,18,18,18,18,11,13, + 13,14,13,14,14,14,15,15,15,15,15,15,16,15,15,16, + 16,16,15,16,16,15,17,16,17,17,16,16,16,17,16,17, + 18,17,17,17,17,18,16,17,17,17,16,17,18,17,17,18, + 17,18,18,19,18,17,18,18,18,19,20,19,19,17,18,18, + 18,19,18,20,18,18,17,18,18,20,18,18,17,18,18,12, + 13,13,14,14,14,15,14,15,15,15,15,15,15,16,16,16, + 16,16,16,16,16,17,16,16,17,17,17,17,17,16,16,17, + 17,17,17,17,18,17,17,18,17,18,18,17,18,17,17,17, + 18,18,18,18,17,20,19,19,18,18,18,18,18,18,19,19, + 18,18,18,18,19,19,19,18,19,18,19,19,20,19,18,19, + 12,13,13,14,14,15,14,15,15,15,15,15,15,15,17,15, + 16,16,16,16,16,16,16,16,16,16,17,17,17,17,16,17, + 17,17,17,17,17,16,18,18,18,17,17,17,17,17,18,18, + 17,19,17,18,17,18,18,17,18,18,18,18,19,18,18,18, + 18,18,18,19,18,18,18,19,18,18,20,19,20,19,19,19, + 18,12,13,13,14,14,15,15,15,15,15,15,16,15,16,17, + 17,16,16,16,17,16,17,16,16,16,17,16,17,17,16,17, + 16,18,17,16,18,18,17,17,17,17,19,17,18,18,18,19, + 17,17,18,18,18,18,18,18,18,18,18,18,18,18,18,17, + 20,18,19,18,18,18,18,20,19,18,20,18,19,18,19,18, + 19,20,12,13,13,14,14,14,15,15,15,15,15,16,16,16, + 16,16,16,16,16,16,16,17,16,17,16,17,17,16,17,17, + 16,17,17,17,17,17,17,17,17,17,16,17,18,17,18,18, + 17,18,17,18,17,18,18,18,18,18,18,18,17,18,17,19, + 18,18,18,18,18,20,18,18,20,18,18,18,18,18,20,20, + 20,20,20,12,13,14,14,14,14,15,15,16,15,16,16,16, + 16,16,16,16,16,17,17,16,17,16,17,17,17,17,17,17, + 18,17,17,16,17,17,18,17,18,18,17,17,17,17,18,17, + 18,17,17,18,18,18,19,18,18,18,19,18,17,19,19,18, + 18,20,18,18,19,17,20,18,18,18,20,19,18,19,19,18, + 20,19,18,20,12,13,13,14,14,15,15,15,15,16,15,15, + 16,16,16,16,16,16,17,17,17,17,17,17,17,18,16,17, + 16,18,17,17,17,18,17,17,17,17,17,19,18,17,17,17, + 17,17,18,17,18,18,17,17,18,18,19,18,18,18,20,18, + 18,18,18,20,20,18,20,20,18,18,18,18,18,19,18,18, + 19,20,18,18,20,13,14,14,14,15,15,15,15,16,15,16, + 16,16,16,16,17,16,16,17,17,17,16,16,18,16,17,17, + 17,19,18,17,17,17,18,17,17,17,17,17,18,17,19,17, + 17,18,18,18,18,18,20,18,18,18,18,18,18,18,19,19, + 18,18,20,18,20,19,20,20,20,18,18,19,18,19,18,20, + 19,19,18,19,18,18,13,14,14,15,14,15,15,15,15,16, + 16,16,16,16,16,17,16,17,17,16,17,17,17,17,16,17, + 18,18,16,18,17,17,17,17,18,18,18,17,17,18,18,18, + 17,18,17,19,18,18,18,18,18,18,18,18,18,19,18,18, + 17,18,18,17,18,20,20,18,19,17,18,20,20,19,20,18, + 20,19,20,18,19,19,20,13,14,14,15,15,15,15,16,16, + 16,16,16,17,16,17,16,16,17,16,17,16,17,17,16,18, + 17,17,17,17,17,18,18,17,17,18,17,18,18,18,18,18, + 18,17,18,18,18,18,18,17,18,18,18,18,20,18,18,18, + 19,19,19,19,18,19,20,20,18,18,20,19,19,19,18,19, + 19,20,19,20,20,19,20,18,13,14,14,14,15,15,15,15, + 16,16,16,16,16,17,16,17,17,17,17,17,16,17,18,17, + 17,17,17,17,18,18,16,18,16,17,17,18,18,18,18,20, + 18,18,17,17,18,18,18,18,18,18,19,19,20,18,20,18, + 18,20,19,19,19,19,19,20,19,18,18,18,19,20,19,20, + 19,20,18,18,19,18,20,19,20,13,14,14,15,15,16,15, + 16,16,16,16,17,16,17,17,17,17,17,17,17,18,16,17, + 17,16,18,17,18,17,17,17,18,18,19,18,18,17,17,19, + 18,18,19,17,17,18,18,19,18,19,18,18,19,19,19,19, + 17,19,20,18,18,18,19,18,19,20,20,19,19,20,20,19, + 18,19,20,19,19,20,18,20,20,20,13,14,14,15,15,16, + 16,17,17,16,16,16,16,17,17,17,18,18,18,17,16,18, + 17,17,17,18,17,18,18,17,17,17,17,19,18,18,17,18, + 18,18,18,18,18,18,18,18,18,18,20,17,18,19,18,18, + 18,18,19,19,18,19,18,18,19,18,19,19,18,19,18,20, + 18,19,19,19,20,20,20,18,19,20,18,13,15,15,15,15, + 16,16,16,16,16,16,16,17,17,17,17,17,17,17,17,17, + 17,17,17,17,18,17,17,18,18,17,18,19,20,18,18,19, + 18,18,19,18,20,20,19,19,19,18,18,19,18,19,19,18, + 18,18,20,17,20,18,19,18,20,18,18,20,20,20,19,19, + 20,18,19,19,18,18,19,20,18,20,19,18,13,15,15,15, + 15,16,16,15,17,16,16,16,17,16,17,17,17,17,16,17, + 17,18,17,17,18,18,18,19,17,17,18,19,18,18,18,18, + 18,17,18,18,17,19,18,18,18,18,18,17,19,18,18,18, + 18,19,18,17,19,18,18,20,19,18,20,20,19,19,20,19, + 18,20,19,20,20,20,20,20,19,19,20,19,20,13,15,15, + 16,15,15,16,16,17,16,16,18,17,18,18,16,17,18,18, + 17,17,18,17,17,17,18,17,19,19,17,18,18,18,18,19, + 18,17,18,18,19,19,20,18,18,17,20,18,20,17,20,18, + 20,20,18,18,18,19,19,18,18,20,20,19,19,20,19,19, + 19,19,18,19,20,19,19,19,19,20,20,18,20,20,13,15, + 14,16,15,16,16,16,16,18,16,17,17,17,17,17,17,17, + 18,18,17,18,18,18,18,18,18,19,18,18,17,19,18,18, + 18,18,17,19,18,19,19,18,18,20,19,19,19,18,18,19, + 18,20,20,18,18,19,19,18,20,20,18,18,19,18,18,20, + 18,19,19,20,20,20,19,20,20,20,20,19,19,19,20,14, + 15,15,16,16,16,16,17,18,18,17,17,18,18,18,17,18, + 17,18,18,18,18,17,18,18,18,18,18,18,18,18,18,19, + 20,18,18,17,18,17,18,18,18,18,18,19,19,18,19,18, + 19,20,20,18,18,19,20,18,20,19,20,19,18,20,20,19, + 20,19,20,18,18,20,20,18,20,18,20,19,18,20,20,20, + 14,15,15,16,16,15,17,16,17,17,17,17,18,17,18,17, + 17,17,18,18,18,20,18,19,18,17,18,18,18,18,19,18, + 18,19,18,18,18,18,18,18,20,19,18,18,19,18,18,18, + 18,18,19,20,19,19,20,18,19,19,20,18,20,19,18,20, + 20,20,19,19,20,19,19,20,18,19,20,19,19,18,19,20, + 19,14,15,15,17,16,18,17,17,18,18,17,18,18,20,18, + 18,20,18,17,17,18,18,18,18,18,20,19,19,18,20,18, + 20,18,18,20,19,18,19,19,19,18,20,19,20,18,19,20, + 18,19,19,19,19,19,19,20,20,20,20,18,18,19,18,20, + 20,19,19,20,19,20,19,20,19,20,18,20,20,20,19,20, + 20,20,14,15,16,16,16,17,17,17,17,17,17,18,18,20, + 20,18,18,18,19,17,20,18,18,18,20,18,18,20,18,19, + 17,18,18,20,18,19,18,19,18,18,20,19,19,18,19,18, + 19,20,18,18,20,20,18,20,20,19,19,20,19,19,20,20, + 18,20,19,18,20,20,20,20,20,20,19,20,20,20,20,20, + 20,20,20,14,16,15,16,16,16,17,17,17,17,18,18,18, + 18,18,18,18,18,17,18,19,18,17,19,18,20,18,20,17, + 19,18,18,18,19,18,18,18,18,20,19,19,19,20,20,19, + 19,18,18,18,18,19,20,20,19,19,19,19,19,20,20,20, + 20,19,20,19,19,20,19,19,20,20,19,20,19,20,20,20, + 20,20,20,19,15,16,15,16,17,16,16,17,17,17,18,17, + 18,20,19,18,17,18,17,19,17,18,20,18,17,19,18,19, + 19,18,19,20,18,18,20,20,18,19,19,20,20,19,19,18, + 20,18,19,18,20,20,18,18,19,19,19,19,19,20,19,18, + 20,19,20,20,20,20,19,19,20,19,19,20,20,19,20,18, + 18,20,20,20,20,15,17,16,18,16,17,17,17,18,18,17, + 18,17,19,20,18,19,18,18,18,18,18,19,18,18,19,18, + 18,19,19,20,20,20,18,18,19,18,19,19,18,18,20,20, + 20,19,20,18,19,20,18,20,19,19,19,19,19,20,20,20, + 20,19,20,20,20,20,19,20,18,20,19,18,20,19,19,19, + 20,20,20,20,19,20,15,16,16,17,17,17,18,17,18,18, + 20,18,17,18,18,20,20,18,19,18,18,18,19,18,19,19, + 18,18,18,19,18,18,19,20,18,18,20,19,18,18,19,20, + 20,19,19,19,20,18,20,20,20,18,19,18,19,19,20,20, + 20,18,18,20,20,20,19,18,20,20,20,20,19,20,18,19, + 20,20,20,20,20,20,19,15,17,17,17,17,18,18,18,18, + 18,17,19,18,17,19,19,18,18,18,20,19,19,19,18,19, + 18,18,18,20,20,18,19,19,18,18,18,18,20,19,19,20, + 19,19,20,20,18,20,18,18,20,20,20,19,19,20,20,18, + 19,20,20,19,20,19,20,19,18,20,20,20,18,20,20,19, + 20,20,20,20,20,20,20,20,15,16,16,17,17,18,17,18, + 18,18,17,18,18,18,18,19,18,18,18,19,19,20,20,19, + 20,18,18,19,19,20,18,18,20,19,20,18,19,20,19,19, + 20,20,19,18,20,20,18,20,20,19,20,20,19,18,18,20, + 19,19,20,20,20,20,18,20,20,19,18,20,19,20,20,19, + 20,19,20,20,20,20,18,20,20,16,17,17,18,18,18,18, + 19,17,18,17,19,19,19,17,18,18,20,19,19,18,19,18, + 18,19,18,20,19,20,20,18,20,18,18,18,19,18,20,20, + 20,20,20,19,18,19,20,20,20,19,19,20,19,20,20,20, + 20,20,20,20,20,20,20,20,20,20,20,20,18,20,20,19, + 19,20,20,19,19,20,20,20,19,20,16,17,17,18,17,18, + 20,18,18,17,18,18,19,19,18,18,20,20,19,19,19,20, + 18,20,18,20,19,19,19,20,19,18,19,18,20,19,20,20, + 19,20,19,20,19,19,18,18,20,20,20,19,20,20,19,20, + 20,20,20,20,19,19,19,20,19,20,20,20,20,20,20,20, + 20,20,18,20,20,20,20,19,20,20,20,16,17,17,18,18, + 18,18,18,19,18,18,19,19,20,18,19,18,18,19,19,18, + 19,18,18,20,20,20,19,19,20,20,20,20,19,19,20,18, + 19,20,20,20,19,19,20,19,19,20,20,20,20,20,20,20, + 19,19,19,20,19,19,20,19,20,20,20,20,20,20,20,20, + 19,20,19,19,19,19,19,20,19,20,20,20,16,17,17,18, + 18,19,18,18,18,20,19,20,20,20,19,18,20,19,20,20, + 18,20,19,19,18,20,19,20,19,20,20,20,20,19,19,18, + 19,18,20,20,19,20,19,18,20,20,19,20,19,20,20,20, + 20,20,20,20,20,19,20,20,18,18,20,20,20,20,19,19, + 20,20,20,20,20,20,20,20,20,20,20,20,20,16,17,18, + 19,18,18,18,17,18,19,19,19,19,18,18,19,19,19,19, + 19,20,20,19,19,20,18,19,19,19,19,18,20,20,20,19, + 20,20,20,20,19,20,19,20,20,20,19,19,20,19,19,20, + 18,20,20,20,19,19,20,20,20,20,20,20,20,20,20,20, + 20,19,20,20,20,20,20,20,20,20,20,20,20,20,16,16, + 17,20,18,18,19,17,19,19,19,19,20,19,20,19,18,20, + 19,19,19,19,19,20,20,19,19,20,18,20,19,20,20,20, + 20,19,20,19,18,20,20,18,20,20,19,20,20,20,18,20, + 20,20,19,20,20,20,20,20,20,20,20,20,20,19,20,20, + 20,20,20,19,20,20,20,19,20,20,20,18,20,19,20,17, + 19,18,18,18,18,20,18,20,19,20,19,20,19,20,19,18, + 18,19,20,18,20,18,20,20,20,20,20,20,19,20,18,19, + 19,20,19,20,19,20,20,20,20,20,18,20,20,20,20,20, + 20,20,19,20,20,19,19,20,19,20,20,19,20,20,20,20, + 20,20,20,20,20,20,20,20,20,20,20,20,19,20,20,20, + 18,16,18,19,18,17,18,19,20,17,19,19,18,20,18,19, + 19,20,20,18,19,20,20,20,19,20,20,20,18,20,19,20, + 20,20,20,20,19,20,20,20,20,20,19,20,20,20,20,20, + 20,20,20,20,18,20,19,20,19,19,20,20,20,20,20,20, + 20,19,20,20,20,20,20,20,20,20,20,20,20,19,20,20, + 20, +}; + +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 = { + 2, 6561, + _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 new file mode 100644 index 00000000..5c8d9738 --- /dev/null +++ b/lib/books/res0_192_1024_9.vqh @@ -0,0 +1,790 @@ +/******************************************************************** + * * + * 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_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, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 8, 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,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,12,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,12,13,12,13,13,13,13,13,13, + 13,13,13,13,13,13,13,13,13,13,13,13,13,13,14,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,14,14,14,14,14,14,14,14, + 14,14,15,14,14,14,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,16, + 15,15,16,15,15,16,16,16,16,15,16,16,16,15,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,17,16, + 16,17,16,16,17,16,17,16,16,16,17,16,16,17,17,17, + 16,17,16,17,17,17,17,17,17,17,18,17,17,18,17,17, + 17,17,18,17,18,18,18,18,17,17,17,18,20,18,17,18, + 19,19,17,18,18,17,19,19,19,18,18,18,18,18,18,18, + 18,17,18,19,19,19,19,18,18,19,19,20,18,18,19,21, + 18,19,21,19,18,18,18,19,19,18,20,19,19,19,20,19, + 21,19,19,19,19,20,18,19,19,19,21,20,19,20,20,19, + 20,20,19,21,20,20,21,19,20,19,21,19,20,20,19,20, + 20,21,19,19,21,21,19,20,21,21,19,20,21,20,21,20, + 21,21,19,21,21,21,19,21,21,20,21,21,21,21,21,21, + 20,21,21,20,20,21,21,21,21,21,21,21,20,21,21,21, + 21,21,21,21,21,20,21,21,21,21,21,21,21,20,20,21, + 21,21,21,21,21,21,21,21,21,21,21,21,20,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,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,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 index 6afa55aa..1940b104 100644 --- a/lib/books/res0_192_1024aux.vqh +++ b/lib/books/res0_192_1024aux.vqh @@ -20,13 +20,17 @@ #include "codebook.h" static long _huff_lengthlist_res0_192_1024aux[] = { - 3, 7,10, 9,11,13, 5, 3, 5, 7,10,13, 9, 5, 4, 4, - 9,12, 8, 6, 4, 2, 6,10, 9, 9, 8, 5, 4, 7,11,11, - 10, 7, 5, 7, + 2, 7,12,11,16,10,14,11,17,22, 5, 4, 7, 8,11, 9, + 10,10,14,22, 9, 6, 6, 6, 8, 8, 8,11,15,20, 9, 6, + 6, 5, 6, 6, 7, 9,13,21,15,10, 7, 5, 5, 6, 6,11, + 18,21, 9, 8, 7, 5, 6, 5, 6, 7,13,21,14, 9, 8, 6, + 6, 5, 5, 8,13,20, 9, 9,10, 8, 9, 6, 6, 5, 9,15, + 11,12,13,11,13, 9, 8, 6, 8,14,13,12,13,12,13,10, + 9, 5, 8,13, }; static static_codebook _huff_book_res0_192_1024aux = { - 2, 36, + 2, 100, _huff_lengthlist_res0_192_1024aux, 0, 0, 0, 0, 0, NULL, diff --git a/lib/books/res0_192_128_1.vqh b/lib/books/res0_192_128_1.vqh index 56a6363b..a07e14a8 100644 --- a/lib/books/res0_192_128_1.vqh +++ b/lib/books/res0_192_128_1.vqh @@ -1,13 +1,12 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * + * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -21,17 +20,17 @@ static long _vq_quantlist_res0_192_128_1[] = { 1, - 2, 0, + 2, }; static long _vq_lengthlist_res0_192_128_1[] = { - 1, 4, 4, 5, 6, 6, 5, 6, 6, 5, 7, 7, 7, 8, 8, 7, - 8, 8, 5, 7, 7, 7, 8, 8, 7, 8, 8, 7, 8, 8, 9,10, - 9, 8, 9, 9, 9,10, 9, 9,10,11,10,11,11, 9, 9,10, - 10,11,10,10,11,11, 7, 8, 8, 8, 9, 9, 9,10,10, 9, - 10, 9,10,11,11,10,10,11, 9, 9,10,10,11,11,10,11, - 10, + 2, 4, 4, 5, 6, 6, 5, 6, 6, 5, 6, 6, 6, 8, 8, 6, + 8, 8, 5, 6, 6, 6, 8, 8, 6, 8, 8, 5, 7, 7, 7, 8, + 8, 6, 8, 8, 7, 8, 8, 8, 9,10, 8,10, 9, 7, 8, 8, + 8,10, 9, 8, 9,10, 5, 7, 7, 7, 8, 8, 7, 8, 8, 7, + 8, 8, 8,10, 9, 8, 9,10, 7, 8, 8, 8, 9,10, 8,10, + 9, }; static float _vq_quantthresh_res0_192_128_1[] = { @@ -39,7 +38,7 @@ static float _vq_quantthresh_res0_192_128_1[] = { }; static long _vq_quantmap_res0_192_128_1[] = { - 2, 0, 1, + 1, 0, 2, }; static encode_aux_threshmatch _vq_auxt_res0_192_128_1 = { diff --git a/lib/books/res0_192_128_2.vqh b/lib/books/res0_192_128_2.vqh index 2851c3fa..74036e29 100644 --- a/lib/books/res0_192_128_2.vqh +++ b/lib/books/res0_192_128_2.vqh @@ -1,13 +1,12 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * + * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -20,75 +19,188 @@ #include "codebook.h" static long _vq_quantlist_res0_192_128_2[] = { - 2, 3, + 2, 4, 1, + 5, 0, + 6, }; static long _vq_lengthlist_res0_192_128_2[] = { - 4, 5, 6, 5, 6, 5, 6, 7, 6, 7, 7, 8,10, 8,10, 5, - 6, 7, 6, 8, 8, 8,10, 8,10, 6, 7, 8, 7, 8, 7, 7, - 9, 7, 9, 9, 9,11, 9,11, 7, 7, 9, 7, 9, 9, 9,11, - 9,11, 8, 9,11, 9,11, 9,10,12,10,11,11,11,13,12, - 13, 9,10,12,10,11,11,11,13,12,13, 6, 7, 8, 7, 8, - 7, 7, 9, 7, 9, 9,10,11, 9,11, 7, 7, 9, 7, 9, 9, - 9,11, 9,11, 8, 9,11, 9,11, 9,10,12,10,12,11,12, - 13,11,13, 9,10,12,10,12,11,11,13,12,13, 7, 7, 9, - 7, 9, 7, 8,10, 8,10, 9,10,12,10,11, 7, 8,10, 8, - 10, 9,10,11,10,12, 8, 8,10, 8,10, 8, 8,10, 9,11, - 10,10,12,11,13, 8, 9,10, 8,10,10,10,12,11,12,10, - 10,12,10,12,10,10,12,11,12,12,11,13,12,14,10,11, - 13,11,12,12,12,14,12,14, 8, 8,10, 8,10, 8, 9,10, - 9,10,10,11,12,10,12, 8, 9,10, 9,11,10,11,13,11, - 12,10,10,12,10,12,10,11,13,11,12,11,13,14,11,13, - 10,11,13,11,12,12,13,14,12,14, 9,10,12,10,12,10, - 11,12,11,12,12,13,14,13,13,10,10,12,10,12,11,12, - 14,12,14,10,11,12,11,12,11,11,13,11,13,12,13,14, - 13,14,11,11,13,11,12,13,13,14,13,14,12,12,14,12, - 14,12,13,14,12,15,14,13,14,14,15,12,13,14,13,14, - 14,14,15,15,16,10,11,12,11,12,11,11,13,11,12,13, - 13,14,13,14,11,11,13,11,13,13,13,14,13,14,12,13, - 14,12,14,12,13,15,12,14,14,15,16,13,15,13,13,15, - 13,15,15,14,16,15,15, 7, 7, 9, 7, 9, 7, 8, 9, 8, - 10, 9,10,11,10,11, 8, 8,10, 8,10,10,10,11,10,11, - 8, 8,10, 8,10, 8, 9,11, 9,10,10,10,12,11,12, 8, - 8,10, 9,10,10,11,12,11,13,10,10,12,10,12,10,11, - 13,11,12,12,13,14,12,15,10,10,13,11,12,12,11,13, - 13,14, 8, 8,10, 8,10, 8, 9,10, 9,10,10,11,12,10, - 12, 8, 9,10, 8,11,10,11,13,10,12,10,10,12,10,12, - 11,11,12,11,13,12,12,14,12,14,10,11,13,10,12,12, - 12,15,11,13, 9,10,12,10,12,10,10,12,11,12,12,12, - 13,12,13,10,10,12,11,13,12,12,14,12,14,10,11,12, - 10,12,11,11,13,11,13,12,13,15,13,15,11,11,13,11, - 13,12,13,14,13,15,12,12,14,12,13,12,13,15,13,15, - 14,14,17,16,15,12,12,14,13,14,14,14,15,14,17,10, - 10,12,11,12,11,11,13,11,12,12,12,14,13,15,11,11, - 13,11,13,12,13,14,13,14,13,13,14,12,14,13,13,14, - 13,15,15,14,16,14,16,12,13,15,13,14,14,14,16,14, + 4, 5, 5, 7, 7,10,10, 5, 6, 6, 8, 8,12,12, 5, 6, + 6, 8, 9,12,12, 7, 8, 8,12,13,15,16, 7, 8, 9,12, + 12,15,15,10,12,12,17,16,17,18,10,12,12,15,17,18, + 17, 5, 7, 6, 9, 8,12,12, 7, 8, 8,10,10,13,13, 7, + 8, 8,10,10,13,13, 9,10,10,14,14,16,15, 9,10,10, + 13,14,16,18,12,14,13,17,16,18,18,12,14,13,16,18, + 17,18, 5, 6, 7, 8, 8,12,12, 7, 8, 8,10,10,13,13, + 7, 8, 8,10,10,13,13, 9,10,10,14,14,18,15, 9,10, + 10,14,13,17,16,12,14,13,17,16,18,18,12,13,14,15, + 16,17,17, 7, 9, 9,12,12,15,14, 9,10,10,14,13,18, + 16, 9,10,10,14,14,16,16,13,14,14,18,18,18,18,12, + 14,14,18,18,18,18,14,18,15,18,18,18,18,14,17,17, + 18,18,18,18, 7, 9, 9,12,12,14,14, 9,10,10,14,14, + 15,15, 9,10,10,13,15,16,15,13,14,14,17,16,18,18, + 12,14,15,17,16,18,18,16,17,17,18,18,18,18,16,18, + 16,18,18,18,18,10,12,12,16,15,16,16,12,14,13,17, + 17,18,17,13,14,14,16,16,18,17,15,17,18,18,18,18, + 18,17,18,17,18,16,18,18,18,18,18,18,18,18,18,18, + 18,18,18,18,18,18,10,12,13,15,14,17,18,12,14,13, + 17,16,18,18,12,14,14,17,17,18,17,18,16,18,18,18, + 18,18,16,17,18,18,18,18,18,16,18,18,18,18,18,18, + 17,18,18,18,18,18,18, 6, 7, 7, 9, 9,12,12, 7, 8, + 8,10,10,14,13, 7, 8, 8,10,10,13,14, 9,11,10,14, + 15,16,18, 9,10,10,14,14,16,17,12,13,14,17,16,18, + 18,12,14,14,17,18,18,18, 7, 8, 8,10,10,13,13, 8, + 9, 9,12,11,15,14, 8, 9, 9,11,11,14,14,11,12,12, + 16,15,16,18,10,12,12,17,17,17,18,14,15,16,18,18, + 17,18,13,15,16,17,16,18,18, 7, 8, 8,10,10,13,13, + 8, 9, 9,11,11,14,14, 8, 9, 9,11,12,14,14,10,12, + 11,16,15,18,17,11,12,12,15,16,18,18,14,15,15,18, + 16,18,18,14,17,15,18,18,18,18, 9,11,10,14,14,18, + 16,10,12,12,15,16,17,18,10,12,12,16,15,16,18,14, + 15,16,16,18,17,18,14,16,17,18,17,18,18,16,17,18, + 18,18,18,18,17,18,16,18,18,18,18, 9,10,11,15,14, + 16,16,10,12,11,14,15,18,17,11,12,12,15,16,16,17, + 14,15,15,18,18,18,18,14,18,17,18,18,18,18,18,18, + 17,18,18,18,18,17,18,18,18,18,18,17,13,14,15,17, + 16,18,18,13,14,16,18,17,18,18,14,17,15,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,12,14,13, + 15,18,17,17,14,16,15,18,18,18,18,14,16,15,18,17, + 18,18,17,17,18,18,18,18,18,16,18,18,18,18,18,18, + 17,18,18,18,18,18,18,18,18,18,18,18,18,18, 5, 7, + 7, 9, 9,12,12, 7, 8, 8,10,10,13,13, 7, 8, 8,10, + 10,13,13, 9,10,10,14,13,16,18, 9,10,10,13,15,17, + 17,12,13,14,17,16,18,18,12,14,13,16,16,18,18, 7, + 8, 8,10,10,14,13, 8, 9, 9,12,11,14,15, 8, 9, 9, + 11,11,14,15,10,12,11,16,16,18,17,10,11,12,16,15, + 16,18,14,15,14,17,18,18,18,13,15,15,17,18,18,18, + 7, 8, 8,10,10,13,13, 8, 9, 9,11,11,14,14, 8, 9, + 9,11,11,14,15,10,12,12,15,15,18,18,10,12,11,15, + 15,18,18,15,16,14,17,18,18,18,14,14,17,18,18,18, + 18, 9,11,10,13,14,15,17,10,12,12,15,15,18,18,10, + 11,12,14,15,18,17,16,16,16,18,18,18,18,14,17,17, + 16,18,18,18,17,18,18,18,18,18,18,18,17,18,18,18, + 18,18, 9,10,11,14,15,17,16,10,12,12,14,15,17,18, + 10,12,12,16,14,17,18,14,17,17,18,18,18,18,15,16, + 15,17,17,18,18,18,18,18,18,18,18,18,17,18,17,18, + 18,18,18,12,15,15,17,17,17,18,14,15,17,17,17,18, + 18,14,15,15,18,18,18,18,18,18,18,18,18,18,18,17, + 17,18,18,18,18,18,18,18,18,18,18,18,18,17,18,18, + 18,18,18,18,13,14,14,17,16,18,17,14,16,17,16,18, + 18,18,14,15,14,18,18,18,18,17,18,18,18,18,18,18, + 18,17,17,18,18,18,18,18,18,18,18,18,18,18,18,18, + 18,18,18,18,18, 8, 9, 9,13,13,15,16, 9,11,11,14, + 13,16,17, 9,11,11,14,14,16,16,14,15,14,18,18,18, + 18,13,15,16,17,17,18,17,16,17,16,18,18,18,18,16, + 17,18,18,18,18,17, 9,11,11,14,14,18,17,11,12,12, + 16,15,17,18,11,13,12,15,15,17,18,15,15,17,17,18, + 18,18,14,15,16,18,17,18,18,18,18,18,18,18,18,18, + 17,16,18,18,18,18,18, 9,11,11,14,15,18,15,11,12, + 12,16,15,18,18,10,12,12,15,15,17,18,15,17,18,18, + 17,18,18,14,15,17,18,18,18,18,18,17,18,18,18,18, + 18,18,18,18,18,18,18,18,13,15,14,17,16,18,18,14, + 16,16,18,18,18,18,15,18,16,17,18,18,18,18,17,18, + 15,18,18,18,17,18,18,18,18,18,18,18,18,18,18,18, + 18,18,18,18,18,18,18,18,18,13,15,15,18,18,18,18, + 14,16,16,18,18,18,17,16,16,16,18,18,18,18,18,18, + 18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18, + 17,18,17,18,18,18,18,18,18,18,17,18,18,18,18,18, + 18,17,18,18,18,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, + 17,18,18,18,18,18,18,18,18,18,18,18,17,18,18,18, + 18,18,18,18,17,18,17,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, 8, 9, 9,13, + 13,16,15, 9,11,11,14,14,18,17, 9,11,11,15,14,18, + 18,13,14,15,16,17,17,18,13,15,15,17,18,18,18,16, + 16,18,18,18,18,18,16,18,17,18,18,18,18, 9,11,10, + 14,14,17,17,11,13,12,15,14,18,18,10,12,12,15,16, + 15,17,15,17,16,18,17,18,18,14,17,16,18,18,18,18, + 17,18,18,18,18,18,18,18,18,16,18,18,18,18, 9,11, + 11,14,14,17,16,11,12,12,14,15,17,18,11,12,12,16, + 15,18,17,15,15,17,18,18,18,18,15,17,16,18,18,18, + 18,18,17,18,18,18,18,16,17,18,18,18,18,18,18,13, + 14,14,16,18,18,18,14,18,16,18,17,18,18,14,15,15, + 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, + 13,15,15,16,18,18,18,16,15,16,18,18,18,18,15,17, + 16,18,18,18,18,18,18,18,18,18,18,18,17,18,16,18, + 15,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18, + 17,16,18,18,18,18,18,18,16,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,18,18,18, + 18,18,16,17,17,18,18,18,18,18,18,18,18,18,18,18, + 16,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,11,13,14,16,17,18,18,13,15,15,17,16,18, + 17,13,15,15,16,18,18,18,17,18,18,18,18,18,18,16, + 17,16,18,18,18,18,18,18,18,18,18,18,18,18,18,18, + 17,18,18,18,13,14,14,17,18,18,18,14,16,16,16,18, + 18,16,14,16,14,18,18,18,18,18,17,18,18,18,18,18, + 17,18,17,18,18,18,18,18,18,18,18,18,18,18,18,18, + 17,18,18,18,18,13,14,15,17,18,18,18,14,15,17,17, + 17,18,18,14,15,16,17,18,18,18,18,18,18,18,18,18, + 18,17,18,18,18,18,18,18,17,18,18,18,18,18,18,18, + 18,18,18,18,18,18,16,17,18,18,18,18,18,18,18,18, + 18,18,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,16,18,18,18,18,18,18,18,16, + 18,18,18,18,18,16,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,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,18,18,18,18,18,18,17,18, + 15,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,18,18,18,18,18,18,18,18,18,18,18,18,18,18, + 18,18,18,18,18,18,18,18,18,18,11,13,13,16,15,18, + 18,13,15,15,18,16,16,18,13,15,15,17,18,17,18,17, + 18,17,18,18,18,18,17,18,16,18,18,18,18,18,18,18, + 18,18,18,18,18,18,18,18,18,18,18,12,15,13,16,18, + 18,18,14,16,17,17,17,18,17,15,15,17,17,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,13,14,15,16, + 16,17,18,15,17,16,17,18,18,18,16,16,16,18,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,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, + 18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18, + 16,17,18,18,18,16,17,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,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,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, + 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,17,17,17,17, 15, }; static float _vq_quantthresh_res0_192_128_2[] = { - -1.5, -0.5, 0.5, 1.5, + -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, }; static long _vq_quantmap_res0_192_128_2[] = { - 4, 3, 0, 1, 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, - 5, - 5 + 7, + 7 }; static static_codebook _vq_book_res0_192_128_2 = { - 4, 625, + 4, 2401, _vq_lengthlist_res0_192_128_2, - 1, -533725184, 1611661312, 3, 0, + 1, -533200896, 1611661312, 3, 0, _vq_quantlist_res0_192_128_2, NULL, &_vq_auxt_res0_192_128_2, diff --git a/lib/books/res0_192_128_3.vqh b/lib/books/res0_192_128_3.vqh index 4c3412b3..85111662 100644 --- a/lib/books/res0_192_128_3.vqh +++ b/lib/books/res0_192_128_3.vqh @@ -1,13 +1,12 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * + * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -20,46 +19,241 @@ #include "codebook.h" static long _vq_quantlist_res0_192_128_3[] = { - 5, - 6, - 7, - 8, + 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[] = { - 3, 4, 5, 6, 8, 4, 5, 6, 8, 4, 4, 6, 7,10, 4, 6, - 7,10, 5, 6, 7, 9,11, 6, 7, 8,11, 7, 7, 9,10,12, - 7, 9,10,12, 9,10,11,12,14,10,11,12,14, 4, 5, 6, - 7,10, 5, 6, 7,10, 5, 6, 7, 9,11, 6, 7, 9,11, 7, - 7, 9,10,13, 7, 9,10,12, 9,10,11,12,14,10,11,13, - 14, + 4, 4, 4, 6, 6, 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, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10, + 10, 5, 5, 5, 6, 6, 7, 7, 8, 8, 8, 8, 8, 8, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10,10,10,10, + 10,10, 5, 5, 5, 6, 6, 7, 7, 7, 8, 8, 8, 8, 8, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 9, + 10, 9, 9, 9,10, 9, 9, 9,10,10,10,10,10,10,10,10, + 10,10,10, 7, 7, 7, 8, 8, 9, 9,10, 9,10,10,10,10, + 11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11, + 11,12,11,11,11,11,11,11,11,11,11,12,12,12,12,12, + 12,12,12,12, 7, 7, 7, 8, 8, 9, 9, 9,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,11,12,11,12,11, + 12,12,12,12,12, 9, 9, 9,10,10,11,11,11,11,12,12, + 12,13,12,12,13,13,13,12,12,13,13,13,13,13,13,14, + 13,13,13,13,13,14,13,13,13,14,13,13,13,13,13,13, + 14,14,14,13,13,13, 9, 9, 9,10,10,11,11,11,11,12, + 12,12,12,13,12,12,12,13,12,13,13,13,13,13,13,13, + 12,13,12,13,14,13,13,13,13,13,13,13,13,14,13,14, + 13,14,14,13,13,14,14, 9,10,10,11,11,12,12,13,13, + 13,13,13,14,14,14,13,14,15,13,13,14,14,14,16,15, + 14,15,14,15,13,15,14,14,15,15,14,15,14,14,14,15, + 14,15,15,14,15,15,15,15, 9,10,10,12,11,12,12,13, + 12,13,13,14,13,14,13,14,14,15,14,13,14,14,15,14, + 14,14,15,14,14,15,15,15,14,14,15,14,15,14,15,15, + 14,14,14,14,14,14,14,15,16,10,11,11,13,12,13,13, + 13,13,14,14,14,14,15,14,14,14,15,14,14,14,15,14, + 14,16,15,15,17,14,15,16,15,15,16,16,16,14,15,15, + 15,15,15,16,16,15,17,15,16,16,10,11,11,12,12,14, + 13,13,13,13,14,14,14,14,15,14,14,15,15,15,15,15, + 15,15,14,15,15,15,14,16,15,15,17,16,15,16,16,16, + 15,15,15,16,15,16,15,14,15,16,17,12,12,12,13,14, + 14,14,14,14,14,14,15,16,15,15,16,17,14,16,16,16, + 15,15,17,16,14,17,15,16,15,16,16,16,16,16,16,15, + 15,17,15,15,17,17,16,16,17,16,16,16,11,12,12,13, + 14,14,14,14,15,14,15,15,15,17,15,16,15,16,16,15, + 16,14,16,16,16,16,17,16,16,15,16,15,17,15,15,16, + 16,16,17,17,15,16,17,16,15,16,15,16,16,12,13,13, + 14,14,14,15,15,15,15,16,15,15,15,16,16,15,15,16, + 15,17,17,16,16,16,17,15,16,17,16,17,17,16,17,16, + 17,17,16,16,17,17,17,17,17,16,17,16,17,17,12,13, + 13,14,15,14,14,14,15,15,15,16,15,15,16,15,16,16, + 15,16,15,15,16,17,17,17,16,16,15,17,16,16,16,16, + 15,17,16,17,16,16,17,16,16,16,17,16,16,17,16,12, + 13,13,14,15,15,16,15,16,16,16,17,16,16,17,16,16, + 17,16,17,15,16,17,15,17,17,17,16,16,16,17,16,17, + 17,16,17,16,16,17,16,17,16,17,16,17,16,17,17,15, + 12,13,13,16,14,16,15,16,15,16,14,17,16,15,17,17, + 17,17,17,16,16,16,17,16,16,17,17,17,17,17,17,17, + 17,17,16,17,17,17,16,17,16,17,16,17,16,17,16,17, + 16,13,15,14,16,15,15,16,16,15,16,15,16,17,15,17, + 17,16,16,17,17,16,17,16,17,16,16,16,17,16,16,17, + 17,15,16,17,16,17,17,16,17,16,17,17,17,16,16,17, + 17,17,13,14,13,15,15,16,15,16,16,15,15,16,17,16, + 17,17,17,16,17,16,16,17,17,15,17,16,16,17,16,17, + 17,16,17,17,16,17,17,17,16,16,16,17,17,17,17,16, + 16,16,17,14,14,14,16,14,17,16,15,16,16,16,17,17, + 16,17,17,17,16,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,16,16,16,17,17,17,17,16,17,17,17,17, + 16,17,17,17,14,16,14,15,14,15,16,16,16,16,16,16, + 17,17,16,17,17,17,17,17,17,17,16,16,17,17,17,17, + 16,16,17,16,17,17,17,16,17,16,17,16,17,16,15,17, + 17,17,17,17,16,14,14,14,15,16,15,17,15,16,17,17, + 16,16,17,17,17,17,16,16,17,17,17,16,17,16,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,16,17,17, + 17,17,17,17,17,17,14,15,15,15,15,17,16,17,17,17, + 17,16,16,16,17,17,17,16,17,16,17,17,17,17,16,17, + 16,17,17,17,17,16,17,16,16,17,16,17,16,17,17,16, + 17,17,17,17,17,16,17,14,16,15,15,15,17,16,16,16, + 17,17,16,16,16,17,17,16,17,17,17,17,17,17,17,17, + 17,16,17,17,17,17,17,16,17,16,17,17,17,17,17,17, + 17,17,16,17,17,17,17,17,14,15,16,16,15,16,16,16, + 17,16,17,17,17,17,16,17,17,17,17,17,17,17,17,17, + 17,17,17,16,17,16,16,17,17,17,16,16,17,17,17,16, + 17,17,16,16,17,17,16,17,17,14,16,14,15,16,16,17, + 17,16,17,17,17,17,17,17,17,17,17,17,16,17,17,17, + 16,17,17,17,17,17,17,17,17,17,17,17,17,16,16,17, + 17,17,17,17,17,17,17,17,17,17,16,15,16,16,16,16, + 15,16,17,16,17,17,17,17,17,16,17,17,17,16,17,17, + 17,17,16,17,16,17,17,17,17,17,17,17,17,17,16,16, + 17,17,16,17,17,17,16,17,17,17,17,15,16,16,16,16, + 17,17,17,17,17,17,16,17,17,17,16,17,17,17,16,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,16,16,14,17, + 17,16,15,16,15,17,17,17,17,17,17,17,16,17,17,16, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,16,17,16,17,17,17,17,17,17,17,17,16,16,15, + 17,16,17,17,16,17,16,17,16,16,17,17,17,17,17,17, + 17,17,16,17,17,17,17,17,17,17,16,17,17,17,17,16, + 17,16,17,17,17,17,17,17,17,17,17,17,17,17,15,15, + 15,16,16,16,17,17,15,16,17,16,17,17,16,17,17,17, + 17,17,17,17,17,16,17,17,16,17,17,17,16,17,17,16, + 17,17,16,17,17,17,17,17,17,17,17,17,17,17,17,14, + 16,15,16,16,16,16,17,16,17,17,17,16,16,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,16,17,17,17,16,17,17,17,17,17,17, + 15,16,16,16,17,17,17,16,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,16,17,16,17,17, + 17,16,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,15,15,15,16,17,17,17,17,17,16,17,16,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,16,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,15,16,16,17,17,16,17,17,17,17,17,17,17,17, + 17,17,17,17,16,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,16,16,16,16,17,17,17,17,17, + 17,17,17,17,16,16,17,17,17,16,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,16,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,16,16,16,16,17,17,17,17,16,16,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 16,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,16,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,16,17,17,17,17,16,17,17,17,17,17,17, + 17,17,17,17,17,17,17,16,16,16,16,16,16,17,17,17, + 17,17,17,17,17,16,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,16,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,16,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,16,16, + 17,17,17,17,17,17,17,17,17,17,17,16,16,17,17,16, + 17,17,17,17,17,17,17,17,16,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,16,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,16,17,17,16,17,17,17, + 17,17,17,17,16,17,17,17,17,17,17,17,17,17,17,16, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,16,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,16,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,16,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,16,17,17, + 17,17,17,17,17,17,17,17,16,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,16,17, + 17,17,17,16,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,16,17, + 17,17,17,17,17,16,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,16,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,16,17,17,17,17,17,17,17, + 17,17,16,16,17,16,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,16,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, + 17, }; static float _vq_quantthresh_res0_192_128_3[] = { - -4, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 4, + -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[] = { - 8, 7, 6, 5, 0, 1, 2, 3, - 4, + 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, - 9, - 9 + 49, + 49 }; static static_codebook _vq_book_res0_192_128_3 = { - 2, 81, + 2, 2401, _vq_lengthlist_res0_192_128_3, - 1, -531365888, 1611661312, 4, 0, + 1, -526909440, 1611661312, 6, 0, _vq_quantlist_res0_192_128_3, NULL, &_vq_auxt_res0_192_128_3, diff --git a/lib/books/res0_192_128_4.vqh b/lib/books/res0_192_128_4.vqh index eb55f3ee..6c2ceef3 100644 --- a/lib/books/res0_192_128_4.vqh +++ b/lib/books/res0_192_128_4.vqh @@ -1,13 +1,12 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * + * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -20,56 +19,541 @@ #include "codebook.h" static long _vq_quantlist_res0_192_128_4[] = { - 11, - 12, - 13, - 14, - 16, - 19, + 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[] = { - 5, 5, 6, 6, 6, 6, 7, 5, 6, 6, 6, 6, 7, 5, 6, 6, - 6, 6, 6, 7, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, - 8, 7, 7, 7, 7, 7, 8, 7, 8, 8, 8, 7, 8, 9, 8, 8, - 8, 7, 8, 9, 9, 9,10, 9, 9, 9,10, 9,10, 9, 9, 9, - 10,10,11,12,12,11,12,13,11,12,12,12,12,13,12,14, - 14,14,14,14,14,13,14,14,14,15,15, 5, 6, 6, 6, 6, - 6, 7, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 8, 7, - 7, 7, 7, 7, 8, 7, 8, 8, 8, 7, 8, 9, 8, 8, 8, 7, - 8, 9, 9, 9,10, 9, 9, 9,10, 9, 9, 9, 9, 9,10,10, - 11,12,12,11,12,13,11,12,12,12,12,12,13,14,14,14, - 14,14,15,13,14,14,14,14,15, + 5, 5, 5, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, + 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 10, 9,10, 9,10,10,10,10,10,10,10,11,10,11,11,11, + 12, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10, + 10,10,10,10,10,10,11,11,10,11,10,11,11,12,12,12, + 12, 5, 5, 5, 6, 6, 7, 7, 8, 8, 8, 8, 9, 8, 9, 9, + 9, 9, 9, 9, 9, 9, 9,10, 9,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,11,11,11,11,11,11,11,12,11, + 12,12, 9, 9, 9, 9, 9, 9, 9,10, 9,10,10,10,10,10, + 10,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12, + 12,12, 5, 5, 5, 6, 6, 7, 7, 8, 8, 8, 8, 9, 8, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 9,10,10,10,10,10, + 10,10,10,10,11,10,10,10,10,10,11,11,12,11,11,12, + 12,12,12, 9, 9, 9, 9,10,10,10,10,10,10,10,10,10, + 10,10,10,11,11,11,11,11,11,11,11,11,11,12,12,12, + 12,12,12, 7, 7, 7, 8, 8, 9, 9,10,10,10,10,10,10, + 11,11,11,11,11,11,11,12,11,11,12,11,11,12,12,12, + 12,12,12,12,12,12,13,13,12,13,13,13,13,13,14,13, + 13,14,14,14,11,11,11,11,11,11,11,12,12,12,12,13, + 12,12,13,13,13,13,13,13,14,12,14,14,13,13,14,13, + 14,16,13,14, 7, 7, 7, 8, 8, 9, 9,10,10,10,10,10, + 10,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12, + 12,12,12,11,12,12,12,12,13,12,13,13,13,14,13,13, + 12,13,14,13,13,11,11,11,11,11,11,11,11,11,12,12, + 12,12,13,12,12,12,14,13,13,13,12,12,13,13,14,15, + 14,13,12,14,14, 9, 9, 9,10,10,11,11,12,11,12,12, + 12,12,12,12,13,12,13,13,13,13,12,14,13,13,14,14, + 13,13,13,14,13,13,13,13,13,14,15,14,14,14,13,13, + 15,16,15,15,15,15,12,12,14,13,13,13,13,13,14,14, + 13,13,13,15,14,14,14,14,15,15,15,15,14,15,15,15, + 14,14,16,15,15,15, 9, 9, 9,10,10,11,11,11,12,12, + 12,12,12,13,12,13,13,14,13,13,12,13,13,14,14,14, + 13,13,14,14,13,14,12,13,12,14,14,15,14,15,16,16, + 14,14,14,15,15,15,14,12,13,12,12,13,12,14,13,15, + 13,14,13,14,14,14,15,14,15,13,15,14,16,14,15,14, + 15,16,16,16,14,15,15,10,10,10,11,12,12,13,12,13, + 14,13,13,14,14,13,14,13,14,14,14,14,15,15,14,16, + 14,14,14,14,15,15,15,14,14,15,15,14,13,16,15,15, + 16,15,15,15,15,15,16,16,14,15,14,14,13,15,15,14, + 14,14,16,15,14,16,16,16,14,16,16,15,15,16,15,15, + 15,15,16,16,16,15,16,16,10,11,10,12,11,12,11,13, + 12,13,13,13,14,14,13,15,14,14,13,14,14,14,14,14, + 15,14,15,15,14,15,14,15,13,15,16,15,15,15,15,15, + 16,16,16,16,15,16,15,16,15,14,14,14,14,13,15,14, + 13,13,15,15,14,15,14,15,15,16,16,16,15,15,16,15, + 15,16,16,15,16,15,16,15,15,11,11,12,12,12,14,14, + 14,14,13,14,14,14,14,15,15,14,15,15,14,15,15,15, + 14,16,15,16,14,15,15,15,15,14,15,15,15,15,16,15, + 15,15,16,16,16,15,16,16,16,16,15,15,14,15,15,14, + 15,15,14,15,16,15,15,16,15,16,15,16,16,16,15,16, + 16,15,16,16,16,15,16,16,16,16,11,11,11,13,13,14, + 14,14,13,15,15,14,14,15,15,14,15,14,14,14,16,15, + 16,15,16,16,14,15,16,15,14,15,15,15,15,16,15,14, + 15,15,15,16,16,16,16,15,16,16,16,15,14,16,15,14, + 14,15,15,15,15,16,15,16,16,16,15,16,15,15,16,16, + 16,16,16,15,15,16,15,16,16,16,15,12,12,13,14,14, + 14,14,15,14,14,14,14,15,15,15,14,16,15,14,14,16, + 15,15,16,15,16,16,16,15,15,16,14,16,16,15,16,16, + 16,16,16,16,16,15,16,16,16,15,16,16,14,15,15,16, + 15,16,16,15,16,15,16,16,16,16,15,16,16,16,16,16, + 16,16,16,16,16,16,15,16,16,15,16,16,12,12,13,13, + 13,16,15,16,14,14,14,14,16,16,16,15,15,14,15,16, + 15,15,16,16,16,16,16,15,15,15,16,16,15,16,16,15, + 15,16,15,16,15,15,16,16,15,16,16,16,16,15,15,16, + 15,16,15,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,16,14,14,13, + 13,15,14,15,15,15,15,15,15,15,16,16,15,15,16,15, + 16,16,15,16,15,16,16,16,15,16,15,16,16,16,16,16, + 15,15,16,16,15,16,16,15,16,16,16,15,16,16,16,15, + 16,15,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,13,14, + 13,14,15,15,15,16,16,16,16,16,14,16,14,15,14,15, + 16,16,16,16,16,16,15,15,16,15,16,16,15,16,15,16, + 16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,15, + 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,15, + 15,14,15,15,14,15,15,15,16,16,15,15,16,16,16,16, + 16,15,15,16,16,15,16,16,16,15,15,16,16,16,16,15, + 16,15,16,15,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,15,15,16,15,16,15,15,15,16,16,16,16,16,15, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 14,14,15,15,15,15,16,16,15,15,15,15,16,15,15,16, + 16,16,16,16,16,15,16,16,16,16,15,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,15,15,16,16,16,16,15,16,16,16,16,16,16,16,16, + 16,15,14,14,16,15,16,16,16,16,15,15,15,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,15,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,15,14,14,16,16,16,15,16,15,15,16,16,15,15, + 16,15,16,16,16,16,16,16,16,16,15,16,16,16,16,16, + 16,15,16,15,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,15,14,15,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, + 15,16,16,16,16,16,16,15,16,15,16,16,16,16,16,16, + 16,16,16,16,16,15,16,16,16,16,15,15,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,14,16,16,16,16,16,15,16,16,15, + 16,15,16,16,16,16,16,16,16,15,16,15,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,15,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,15,14,16,16,15,16,16,16,16,16,16, + 15,16,15,16,16,15,16,16,16,16,16,16,16,16,15,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,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,15,15,15,16,15,15,16,15,15,16, + 15,16,16,16,16,16,15,16,16,16,16,16,16,16,16,16, + 15,16,16,15,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,15,15,16,16,16,16,16,16, + 16,15,16,16,16,16,16,16,16,16,16,15,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,15,16,16,16,16,16,16,16,16,16, + 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,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,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,15,16,16,16,16, + 16,16,16,16,15,16,16,15,16,16,16,16,16,15,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,15, + 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,15,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15, + 15,15,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,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,15,16,15,16, + 16,16,15,16,15,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,15,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,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,15,15, + 16,15,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,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,15,15,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,16,16,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,15,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,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,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,16,16,16,16,16,16,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,15,16,16,16,16,15,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,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,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 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,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,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,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,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, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,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,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,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,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,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,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,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,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,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,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,16,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,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,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,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,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,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,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,16,16, + 16,16,16,16,16,16,16,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,16,16,16,16,16,15,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,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,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,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, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,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,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,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,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,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,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,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,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 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,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,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,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,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 float _vq_quantthresh_res0_192_128_4[] = { - -9.5, -6.5, -4, -2.5, -1.5, -0.5, 0.5, 1.5, - 2.5, 4, 6.5, 9.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, }; static long _vq_quantmap_res0_192_128_4[] = { - 12, 11, 10, 9, 8, 7, 0, 1, - 2, 3, 4, 5, 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_192_128_4 = { _vq_quantthresh_res0_192_128_4, _vq_quantmap_res0_192_128_4, - 13, - 13 + 81, + 81 }; static static_codebook _vq_book_res0_192_128_4 = { - 2, 169, + 2, 6561, _vq_lengthlist_res0_192_128_4, - 1, -529137664, 1611661312, 5, 0, + 1, -525074432, 1611661312, 7, 0, _vq_quantlist_res0_192_128_4, NULL, &_vq_auxt_res0_192_128_4, diff --git a/lib/books/res0_192_128_5.vqh b/lib/books/res0_192_128_5.vqh index e40bb108..2fefd88c 100644 --- a/lib/books/res0_192_128_5.vqh +++ b/lib/books/res0_192_128_5.vqh @@ -1,13 +1,12 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * + * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -20,101 +19,424 @@ #include "codebook.h" static long _vq_quantlist_res0_192_128_5[] = { - 102, - 103, - 104, - 105, - 107, - 110, - 113, - 116, - 119, - 122, - 126, - 130, - 133, - 137, - 141, - 145, + 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, - 204, 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, 3, 4, 4, 5, 7, 6, 9,11,13,14,16,18,18,20, - 20,19,20,20,19,19,19,19,19,19,19,19, 3, 3, 4, 4, - 5, 6, 6, 8,10,13,14,15,16,18,19,18,19,18,19,19, - 19,19,19,19,19,19,19, + 2, 3, 3, 4, 4, 5, 5, 6, 6, 6, 6, 7, 6, 7, 7, 7, + 7, 7, 7, 7, 7, 8, 7, 8, 8, 8, 8, 8, 8, 9, 8, 9, + 9, 9, 9, 9, 9,11,10,11,11,12,10,12,12,12,11,12, + 12,12,10,13,11,12,12,13,12,13,13,12,13,13,13,13, + 13,13,13,12,12,13,13,12,13,13,12,12,13,13,13,13, + 13, 7, 8, 8, 8, 8, 8, 9, 8, 8, 8, 9, 9, 9, 9, 9, + 9, 9, 9,11, 9,11,10,11, 9,10,10,10,10,12,10,11, + 10,11,10,11,11,12,10,12,12,12,12,12,11,12,12,11, + 13,12,12,13,13,11,13,13,13,13,13,13,12,13,12,13, + 12,12,12,11,12,13,13,12,13,13,13,13,13,12,13,13, + 13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13, + 13,13,12,13,13,13,13,13,12,13,13,13,13,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,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, }; static float _vq_quantthresh_res0_192_128_5[] = { - -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.5, -1.5, -0.5, 0.5, 1.5, 2.5, 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, + -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[] = { - 54, 53, 52, 51, 50, 49, 48, 47, - 46, 45, 44, 43, 42, 41, 40, 39, - 38, 37, 36, 35, 34, 33, 32, 31, - 30, 29, 28, 0, 1, 2, 3, 4, - 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, + 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, - 55, - 55 + 301, + 301 }; static static_codebook _vq_book_res0_192_128_5 = { - 1, 55, + 1, 301, _vq_lengthlist_res0_192_128_5, - 1, -522616832, 1611661312, 8, 0, + 1, -520962048, 1611661312, 9, 0, _vq_quantlist_res0_192_128_5, NULL, &_vq_auxt_res0_192_128_5, diff --git a/lib/books/res0_192_128aux.vqh b/lib/books/res0_192_128aux.vqh index 3501f1a5..99393a39 100644 --- a/lib/books/res0_192_128aux.vqh +++ b/lib/books/res0_192_128aux.vqh @@ -20,13 +20,91 @@ #include "codebook.h" static long _huff_lengthlist_res0_192_128aux[] = { - 10,12,13,12,15,15, 5, 6, 8, 9,13,15, 4, 3, 4, 6, - 12,15, 4, 4, 4, 5,12,13, 9, 9, 5, 2, 7,10,11,10, - 5, 3, 7,10, + 9,16,16,16,16,16,12,14,16,16,16,16,15,16,16,16, + 16,16,12,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16, 9,14,16,16,16,16,10,11,15,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,11,16,16,16,16,16,12,14, + 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,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, 4,10,13,14,16,16, 8, 9, + 14,16,16,16,14,13,14,16,16,16,12,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16, 4, 8,11,12, + 16,16, 5, 3, 6,10,16,16,10, 6, 8,15,16,16,13,15, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 9,12,16,16,16,16, 8, 5, 8,13,16,16,11, 7,10,16, + 16,16,13,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,11,15,16,16,16,16,13,13,15,16,16,16, + 14,15,15,16,16,16,14,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 6,11,16,16,16,16,10,10,16,16,16,16,14,13,13,16, + 16,16,15,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16, 6, 9,11,14,16,16, 6, 5, 8,11,16,16, + 11, 7, 9,15,16,16,16,14,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16, 9,12,15,16,16,16, 9, 7, + 10,16,16,16,12, 9,11,16,16,16,14,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,13,16,16,16, + 16,16,13,13,15,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, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16, 9,12,16,16,16,16,11,13, + 15,16,16,16,15,14,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,11,14,13,14, + 16,16,11, 4, 6,10,16,16,11, 5, 7,13,16,16,14,11, + 12,14,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 12,14,13,12,16,16,13, 4, 4, 9,15,16,11, 4, 6,10, + 16,16,13,10,11,14,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,14,15,13,13,16,16,16, 8, 8,10,15,16, + 16, 8, 9,12,16,16,16,12,14,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 13,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,15,15,14,16,16,16,13, 6, 7,12,16,16, + 14, 7, 8,13,16,16,16,12,13,15,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,15,16,16,16,13, 5, + 6,10,16,16,13, 6, 7,11,16,16,16,11,12,15,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16, 9, 9,14,16,16,16, 9,11,14,16,16,16,14, + 14,16,16,16,16,16,16,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,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16, 9,10,15,16,16,16,10,11,16,16,16,16,14, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16, 8, 9,13,16,16,15, 9,10,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,13,12,16,16,16, + 16,15,13,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,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,15, }; static static_codebook _huff_book_res0_192_128aux = { - 2, 36, + 4, 1296, _huff_lengthlist_res0_192_128aux, 0, 0, 0, 0, 0, NULL, diff --git a/lib/books/res0_256_1024_1.vqh b/lib/books/res0_256_1024_1.vqh index e28ce22b..c1095998 100644 --- a/lib/books/res0_256_1024_1.vqh +++ b/lib/books/res0_256_1024_1.vqh @@ -1,13 +1,12 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * + * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -21,52 +20,52 @@ static long _vq_quantlist_res0_256_1024_1[] = { 2, - 3, - 4, 1, + 3, 0, + 4, }; static long _vq_lengthlist_res0_256_1024_1[] = { - 2, 4, 8, 4, 8, 5, 7,10, 7,10, 9,10,12,10,12, 5, - 7,10, 7,10, 9,10,12,10,12, 5, 7,10, 7,10, 7, 8, - 11, 8,11,10,11,13,11,13, 7, 8,11, 8,11,10,11,13, - 11,13, 9,10,12,10,13,10,11,13,11,13,13,13,15,13, - 15,10,11,13,11,13,13,13,15,14,15, 5, 7,10, 7,10, - 7, 8,11, 8,11,10,11,13,11,13, 7, 8,11, 8,11,10, - 11,13,11,13, 9,10,13,10,13,10,11,13,11,13,13,13, - 15,13,15,11,11,13,11,13,13,14,15,13,15, 5, 7,10, - 7,10, 7, 8,11, 8,11,10,11,13,11,13, 7, 8,11, 8, - 11,10,11,13,11,13, 7, 9,11, 9,11, 9,10,12,10,12, - 11,12,14,12,14, 9,10,12,10,12,11,12,14,12,14,10, - 11,14,11,13,11,12,14,12,14,13,14,16,14,16,11,12, - 14,12,14,14,14,16,14,16, 7, 8,11, 9,11, 9,10,12, - 10,12,11,12,14,12,14, 9,10,12,10,12,11,12,14,12, - 14,11,11,13,11,13,11,12,14,12,14,14,14,16,14,16, - 12,12,14,12,14,14,14,16,14,16, 9,11,13,11,13,11, - 11,13,11,13,13,13,15,14,15,10,11,13,12,14,13,14, - 15,14,16,10,12,13,11,13,11,12,14,12,14,14,14,16, - 14,16,12,12,14,12,14,14,14,16,14,16,13,13,15,14, - 15,14,14,16,14,16,15,16,17,16,17,14,14,16,14,16, - 16,16,18,16,17,10,11,13,12,14,11,12,14,12,14,14, - 14,16,14,16,12,12,14,12,14,14,14,16,14,16,13,14, - 15,14,16,14,14,16,14,16,15,17,17,16,17,14,14,16, - 14,16,15,16,17,16,17, 5, 7,10, 7,10, 7, 8,11, 8, - 11,10,11,13,11,13, 7, 8,11, 9,11,10,11,13,11,13, - 7, 9,11, 9,11, 9,10,12,10,12,11,12,14,12,14, 9, - 10,12,10,12,11,12,14,12,14,10,11,14,11,13,11,12, - 14,12,14,14,14,15,14,16,11,12,14,12,14,14,14,16, - 14,16, 7, 9,11, 9,11, 9,10,12,10,12,11,12,14,12, - 14, 9,10,12,10,12,11,12,14,12,14,11,11,13,11,14, - 12,12,14,13,14,14,14,16,14,16,11,12,14,12,14,13, - 14,16,14,15, 9,11,13,11,13,11,11,13,11,14,13,14, - 15,14,15,11,12,14,12,14,13,14,15,14,15,10,12,13, - 11,14,11,12,14,12,14,14,14,16,14,16,11,12,14,12, - 14,14,14,16,14,16,13,14,16,14,15,14,14,16,14,16, - 15,16,18,16,18,13,14,16,14,16,15,16,17,16,18,10, - 12,14,12,14,12,12,14,12,14,14,14,16,14,16,12,12, - 14,12,14,14,14,16,14,16,13,14,16,14,15,14,14,16, - 14,16,16,16,18,16,17,14,15,16,14,16,15,16,18,16, + 2, 4, 4, 8, 8, 5, 7, 7,10,10, 5, 7, 7,10,10, 9, + 10,10,12,13, 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,14, 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,13,13, + 10,12,11,14,13,10,12,11,14,14,13,14,14,15,16,13, + 14,14,15,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, 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, 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,15,14,12,12,12,14,14,11,12,12,14,14,12,12,12, + 14,15,12,12,12,14,14,14,14,14,16,16,14,14,14,16, + 16,10,12,12,14,14,11,12,12,15,14,12,12,13,14,14, + 14,14,14,16,15,14,15,15,16,16, 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, 7, 9, 8,11,11, 9,10,10,12,12, 9,10,10, + 12,12,12,12,12,14,14,11,12,12,14,14, 7, 8, 8,11, + 11, 9,10,10,12,12, 8,10,10,12,12,11,12,12,14,14, + 11,12,12,14,14,11,12,12,14,14,12,12,12,14,14,12, + 12,12,15,14,14,14,15,16,17,14,14,15,16,16,10,12, + 12,14,14,12,12,12,14,14,11,12,12,15,14,14,14,14, + 16,16,14,14,14,16,16, 9,11,11,13,13,10,12,12,14, + 14,10,12,12,14,14,13,14,14,15,16,13,14,14,16,15, + 10,12,12,14,14,12,12,13,15,14,12,13,12,15,14,14, + 14,15,16,16,14,15,15,16,16,10,12,12,14,14,12,13, + 12,15,14,12,12,12,14,15,14,15,14,16,16,14,15,15, + 16,16,13,14,14,16,15,14,14,14,16,17,14,15,15,16, + 16,15,16,16,17,18,16,16,16,17,17,13,14,14,16,16, + 14,14,14,17,16,14,15,15,16,16,16,16,16,18,17,16, + 17,17,18,18, 9,11,10,13,13,10,12,11,14,14,10,12, + 12,14,14,13,14,14,16,15,13,14,14,15,15,10,12,12, + 14,14,12,13,12,14,14,12,12,13,14,14,14,15,14,16, + 16,14,14,14,16,16,10,12,11,14,13,12,12,12,15,15, + 12,13,12,14,14,14,14,15,16,16,14,14,15,16,16,13, + 14,14,15,15,14,15,15,16,16,14,14,14,16,16,16,16, + 16,18,18,16,16,16,17,18,13,14,14,15,16,14,15,15, + 17,16,14,15,14,16,16,16,16,16,17,17,15,16,16,18, 17, }; @@ -75,7 +74,7 @@ static float _vq_quantthresh_res0_256_1024_1[] = { }; static long _vq_quantmap_res0_256_1024_1[] = { - 4, 3, 0, 1, 2, + 3, 1, 0, 2, 4, }; static encode_aux_threshmatch _vq_auxt_res0_256_1024_1 = { diff --git a/lib/books/res0_256_1024_2.vqh b/lib/books/res0_256_1024_2.vqh index 7579cd77..fdbecd97 100644 --- a/lib/books/res0_256_1024_2.vqh +++ b/lib/books/res0_256_1024_2.vqh @@ -1,13 +1,12 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * + * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -20,33 +19,438 @@ #include "codebook.h" static long _vq_quantlist_res0_256_1024_2[] = { - 5, - 6, - 7, - 8, - 10, 4, 3, + 5, 2, + 6, + 1, + 7, 0, + 8, }; static long _vq_lengthlist_res0_256_1024_2[] = { - 3, 4, 6, 6, 8, 4, 6, 6, 8, 4, 5, 6, 7, 8, 5, 6, - 7, 8, 6, 6, 7, 7, 9, 6, 7, 7, 9, 6, 7, 7, 8, 9, - 7, 8, 8, 9, 8, 8, 9, 9,10, 8, 9, 9,10, 4, 5, 6, - 7, 8, 5, 6, 7, 8, 6, 6, 7, 7, 9, 6, 7, 7, 9, 6, - 7, 7, 8, 9, 7, 7, 8, 9, 8, 8, 9, 9,10, 8, 9, 9, - 10, + 5, 7, 7, 8, 8, 9, 9,10,10, 7, 8, 8, 9, 9,10,10, + 12,12, 7, 8, 8, 9, 9,10,10,12,12, 8, 9, 9,10,10, + 12,12,13,13, 8, 9, 9,10,10,12,12,13,13, 9,10,10, + 12,12,13,13,14,14, 9,10,10,12,12,13,13,14,14,10, + 12,12,14,13,15,14,16,16,10,12,12,13,13,14,15,16, + 16, 7, 8, 8, 9, 9,10,10,12,12, 8, 9, 9,10,10,11, + 11,13,13, 8, 9, 9,10,10,11,11,13,13, 9,10,10,11, + 11,12,12,13,14, 9,10,10,11,11,12,12,14,14,11,11, + 11,12,12,14,13,15,15,11,11,11,12,12,13,13,15,15, + 12,13,13,14,14,15,15,16,17,12,13,13,14,14,15,15, + 16,16, 7, 8, 8, 9, 9,10,10,12,12, 8, 9, 9,10,10, + 11,11,13,12, 8, 9, 9,10,10,11,11,13,12, 9,10,10, + 11,11,12,12,14,14, 9,10,10,11,11,12,12,14,14,11, + 11,11,12,12,14,13,15,15,11,11,11,12,12,14,14,15, + 15,12,13,13,14,14,15,15,16,16,12,13,13,14,14,15, + 15,16,16, 8, 9, 9,11,11,12,12,13,13, 9,10,10,11, + 11,12,12,14,14, 9,10,10,11,11,12,12,14,14,11,11, + 11,12,12,13,13,14,14,11,11,11,12,12,13,13,14,15, + 12,12,13,13,13,14,15,15,15,12,12,12,13,13,14,14, + 16,16,14,14,14,15,15,16,16,17,18,14,14,14,15,15, + 15,16,16,18, 8, 9, 9,11,11,12,12,13,13, 9,10,10, + 11,11,12,12,14,14, 9,10,10,11,11,12,12,14,14,11, + 11,11,12,12,13,13,15,15,11,11,11,12,12,13,13,14, + 15,12,12,12,13,13,14,15,15,16,12,12,12,13,13,15, + 14,15,16,14,14,14,15,15,16,16,17,17,14,14,14,15, + 15,16,16,17,17, 9,11,11,12,12,13,13,15,14,11,11, + 11,12,12,14,14,15,15,11,11,11,12,12,14,14,15,15, + 12,12,12,14,13,15,14,15,16,12,13,12,14,13,15,15, + 16,16,13,14,14,15,15,16,16,17,17,13,14,14,15,15, + 15,16,17,17,15,15,15,16,16,16,16,17,18,15,15,15, + 16,16,17,17,18,18, 9,11,11,12,12,13,13,15,14,11, + 11,11,12,12,14,14,15,15,11,11,11,12,12,14,14,15, + 15,12,13,13,14,13,15,14,16,16,12,12,12,13,13,15, + 15,16,15,13,14,14,14,15,16,16,17,16,13,14,14,15, + 15,16,15,18,17,15,15,16,15,16,16,17,18,18,15,15, + 15,16,16,17,16,18,18,11,12,12,13,14,15,15,16,16, + 12,13,13,14,14,15,15,17,16,12,13,13,14,14,15,16, + 16,16,14,14,14,15,15,16,16,17,17,14,14,14,15,15, + 16,16,17,17,15,15,15,16,16,16,17,18,17,15,15,15, + 16,16,17,17,18,18,16,16,17,17,18,18,19,18,19,16, + 17,16,17,18,17,18,19,20,11,12,12,14,14,15,15,16, + 16,12,13,13,14,14,16,15,16,16,12,13,13,14,14,15, + 15,16,16,13,14,14,15,15,16,16,17,17,13,14,14,15, + 15,16,16,17,17,15,15,15,16,16,17,17,19,18,15,15, + 15,16,16,17,17,17,18,16,16,16,17,17,17,18,19,21, + 16,17,17,17,17,18,18,18,19, 7, 8, 8, 9, 9,10,10, + 12,12, 8, 9, 9,10,10,11,11,13,13, 8, 9, 9,10,10, + 11,11,13,13, 9,10,10,11,11,12,12,14,14, 9,10,10, + 11,11,12,12,13,14,10,11,11,12,12,14,14,15,15,11, + 11,11,12,12,14,13,15,15,12,13,13,14,14,15,15,17, + 16,12,13,13,14,14,15,15,16,16, 8, 9, 9,10,10,11, + 11,13,13, 9, 9, 9,10,10,12,12,13,13, 9, 9, 9,10, + 10,12,12,13,13,10,10,10,11,12,12,13,14,14,10,10, + 11,12,11,13,13,14,14,11,12,12,13,13,14,14,16,15, + 11,12,12,13,13,14,14,16,15,13,13,13,14,14,16,15, + 16,16,13,13,13,14,14,15,15,16,17, 8, 9, 9,10,10, + 11,11,13,13, 9, 9, 9,10,10,12,12,13,13, 9, 9, 9, + 10,10,12,12,13,13,10,10,10,11,11,13,13,14,14,10, + 10,10,11,11,13,13,14,14,11,12,12,13,13,14,14,15, + 15,11,12,12,13,13,14,14,15,15,13,13,13,14,14,15, + 16,16,16,13,13,13,14,14,15,15,17,16, 9,10,10,11, + 11,12,12,14,14,10,10,10,12,12,13,13,14,14,10,10, + 11,12,12,13,13,14,14,11,11,12,12,13,14,14,15,15, + 11,12,12,13,13,14,14,15,15,12,13,13,14,14,15,15, + 16,16,12,13,13,14,14,15,15,16,16,14,14,14,15,15, + 16,16,17,18,14,14,14,15,15,16,16,18,17, 9,10,10, + 11,11,12,12,14,14,10,11,10,12,12,13,13,14,14,10, + 10,11,12,12,13,13,14,14,11,12,12,12,12,14,13,15, + 15,11,12,12,13,13,14,14,15,15,12,13,13,14,14,15, + 14,16,16,12,13,13,14,14,15,14,16,16,14,15,14,15, + 15,16,16,17,17,14,14,14,15,15,16,16,18,17,11,11, + 11,12,12,14,14,15,15,11,12,12,13,13,14,14,15,16, + 11,12,12,13,13,14,14,16,15,12,13,13,14,14,15,15, + 17,16,13,13,13,14,14,15,15,16,16,14,14,14,15,15, + 16,16,17,17,14,14,14,15,15,16,16,17,17,15,15,16, + 16,16,17,17,18,17,15,16,16,16,16,17,17,18,18,11, + 11,11,13,12,14,14,15,15,11,12,12,13,13,14,14,16, + 15,11,12,12,13,13,14,14,15,16,12,13,13,14,14,15, + 15,16,16,12,13,13,14,14,15,15,16,16,14,14,14,15, + 15,16,16,17,17,14,14,14,15,15,16,16,17,17,15,15, + 16,16,16,17,17,17,18,15,16,15,16,16,17,17,18,19, + 12,13,13,14,14,15,15,16,17,13,14,13,15,15,16,15, + 18,16,13,13,14,14,14,16,15,17,16,14,14,14,15,15, + 16,16,18,17,14,14,15,15,15,16,16,17,18,15,16,16, + 16,16,18,17,18,18,16,15,15,16,17,17,17,18,18,17, + 17,17,18,17,18,18,20,21,16,16,17,18,17,19,19,20, + 18,12,13,13,14,14,15,15,17,17,13,13,14,14,15,16, + 16,17,17,13,14,14,14,15,16,15,17,17,14,15,14,15, + 15,16,17,18,17,14,14,14,15,15,16,17,17,17,15,16, + 15,17,16,18,18,19,19,15,16,15,16,16,17,17,18,17, + 17,17,17,18,17,19,18,19,19,16,17,17,17,17,18,19, + 19,19, 7, 8, 8, 9, 9,10,10,12,12, 8, 9, 9,10,10, + 11,11,13,13, 8, 9, 9,10,10,11,11,13,13, 9,10,10, + 11,11,12,12,14,13, 9,10,10,11,11,12,12,14,14,10, + 11,11,12,12,13,14,15,15,10,11,11,12,12,14,14,15, + 15,12,13,13,14,14,15,15,17,17,12,13,13,14,14,15, + 15,16,16, 8, 9, 9,10,10,11,11,13,13, 9, 9, 9,11, + 10,12,12,13,13, 9, 9, 9,10,10,12,12,13,13,10,10, + 11,11,11,13,13,14,14,10,10,10,11,12,13,13,14,14, + 11,12,12,13,13,14,14,16,15,11,12,12,13,13,14,14, + 16,15,13,13,13,14,14,15,15,17,17,13,13,13,14,14, + 15,16,17,17, 8, 9, 9,10,10,11,11,13,13, 9, 9, 9, + 10,10,12,12,13,13, 9, 9, 9,10,10,12,12,13,13,10, + 11,10,12,11,13,13,14,14,10,10,10,11,11,13,13,14, + 14,11,12,12,13,13,14,14,15,15,11,12,12,13,13,14, + 14,15,15,13,14,14,14,14,15,16,17,17,13,13,13,14, + 14,16,16,17,17, 9,10,10,11,11,12,12,14,14,10,11, + 10,12,11,13,13,14,14,10,11,11,12,11,13,13,14,14, + 11,12,12,13,13,14,13,15,14,11,12,12,12,12,13,13, + 15,15,13,13,13,14,14,15,15,16,16,12,13,13,14,14, + 15,15,16,16,14,14,14,15,15,16,16,18,17,14,14,15, + 15,15,16,16,17,18, 9,10,10,11,11,12,12,14,14,10, + 10,11,12,12,13,13,14,14,10,11,10,12,11,13,13,14, + 14,11,12,12,12,13,14,14,15,15,11,12,12,13,12,13, + 14,15,15,13,13,13,14,14,15,15,16,16,12,13,13,14, + 14,15,14,16,16,14,14,14,15,15,16,16,17,17,14,14, + 14,15,15,16,16,17,17,11,11,11,13,12,14,14,15,15, + 11,12,12,13,13,14,14,15,15,11,12,12,13,13,14,14, + 15,15,12,13,13,14,14,15,15,16,16,12,13,13,14,14, + 15,15,16,16,14,14,14,15,15,16,16,18,17,14,14,14, + 15,15,16,16,17,17,15,16,15,16,16,18,18,18,18,15, + 16,15,16,17,17,17,18,18,11,11,11,12,13,14,14,15, + 15,11,12,12,13,13,14,14,15,15,11,12,12,13,13,14, + 14,16,15,13,13,13,14,14,15,15,16,16,12,13,13,14, + 14,15,15,16,16,14,14,14,15,15,16,16,18,17,14,14, + 14,15,15,16,16,17,17,15,16,15,16,16,17,17,18,18, + 15,16,16,16,16,17,17,20,18,12,13,13,14,14,15,15, + 16,17,13,14,14,14,15,16,15,18,16,13,13,13,15,14, + 16,16,16,17,14,14,14,16,15,16,16,17,18,14,14,14, + 15,15,16,17,17,17,15,16,16,16,16,17,17,18,18,15, + 16,15,16,17,17,17,18,19,17,17,17,17,18,18,20,20, + 20,17,17,17,17,17,19,19,20,19,12,13,13,14,14,15, + 16,16,16,13,14,13,14,15,16,15,17,17,13,13,13,14, + 14,16,15,17,17,14,14,14,15,16,16,16,18,17,14,14, + 14,15,15,16,16,17,17,15,16,16,16,16,17,17,18,18, + 15,15,15,16,16,17,17,19,18,17,17,17,17,17,18,18, + 20,19,16,17,16,17,18,20,19,18,19, 9, 9, 9,11,11, + 12,12,13,13, 9,10,10,11,11,12,12,14,14, 9,10,10, + 11,11,12,12,14,14,11,11,11,12,12,14,13,15,15,11, + 11,11,12,12,13,13,15,15,12,13,13,13,14,15,15,17, + 16,12,12,12,13,13,14,14,16,16,13,14,14,15,15,16, + 16,17,18,13,14,14,15,15,16,16,17,17, 9,10,10,11, + 11,12,12,14,14,10,11,11,12,12,13,13,14,14,10,11, + 10,12,12,13,13,14,14,11,12,12,12,13,14,14,15,15, + 11,12,12,13,13,14,14,15,15,13,13,13,14,14,15,15, + 16,16,13,13,13,14,14,15,15,16,16,14,14,14,15,16, + 16,16,18,17,14,15,15,15,15,16,17,18,17, 9,10,10, + 11,11,13,12,14,14,10,11,10,12,12,13,13,14,14,10, + 11,11,12,12,13,13,14,14,11,12,12,13,13,14,14,15, + 15,11,12,12,13,13,14,14,16,15,12,13,13,14,14,15, + 15,16,16,12,13,13,14,14,15,15,16,16,14,14,14,15, + 15,16,16,17,18,14,14,14,15,15,16,16,18,17,11,11, + 11,12,12,14,13,15,15,11,12,12,13,13,14,14,15,15, + 11,12,12,13,13,14,14,15,15,12,12,13,13,14,14,15, + 16,16,12,13,13,14,13,15,15,16,16,13,14,14,15,15, + 16,16,17,17,13,14,14,14,15,16,16,17,17,15,15,15, + 16,16,17,17,18,18,15,15,15,16,16,17,16,18,17,11, + 11,11,12,12,13,13,15,15,11,12,12,13,12,14,14,15, + 15,11,12,12,13,13,14,14,15,15,12,13,13,14,13,14, + 14,16,15,12,13,13,13,13,15,14,16,16,13,14,14,15, + 15,16,16,17,17,14,14,14,15,15,16,16,16,17,15,15, + 15,16,16,17,17,18,18,15,15,15,16,16,17,17,18,18, + 12,13,13,14,13,14,15,16,16,12,13,13,14,14,15,15, + 16,16,12,13,13,14,14,15,15,16,16,13,14,14,14,15, + 16,16,17,17,13,14,14,15,15,16,15,18,17,15,15,15, + 16,16,16,17,17,18,15,15,15,16,16,17,16,17,18,16, + 16,16,16,17,18,18,18,20,16,16,16,17,18,19,18,19, + 18,12,12,13,14,13,14,15,16,16,12,13,13,14,14,15, + 15,16,16,12,13,13,14,14,15,15,16,17,13,14,14,14, + 15,16,15,17,17,14,14,14,14,15,16,16,17,17,15,15, + 15,16,15,17,16,18,17,15,15,15,15,16,17,17,18,17, + 16,16,16,17,17,18,17,19,18,16,17,16,17,17,18,18, + 18,18,14,14,14,15,15,16,16,17,18,14,14,14,15,15, + 17,17,17,17,14,15,14,15,15,17,17,18,17,15,15,15, + 16,16,17,16,18,18,15,15,15,16,16,17,16,19,19,16, + 17,16,17,17,18,17,18,19,16,16,16,17,17,18,17,18, + 19,17,18,18,19,18,18,18,20,20,17,18,18,18,18,19, + 18,20,21,14,14,14,15,15,16,16,18,17,14,14,15,15, + 15,16,16,17,18,14,14,14,16,16,16,17,17,18,15,15, + 15,16,16,17,17,18,19,15,15,15,16,16,17,16,18,18, + 16,16,16,17,16,17,18,19,18,16,16,16,17,17,17,20, + 19,19,17,17,17,19,19,19,18,19,20,18,17,17,18,18, + 18,18,19,20, 8, 9, 9,11,11,12,12,13,13, 9,10,10, + 11,11,12,12,14,14, 9,10,10,11,11,12,12,14,14,11, + 11,11,12,12,13,14,15,15,11,11,11,12,12,13,13,15, + 15,12,13,12,13,13,15,15,16,16,12,13,12,13,13,15, + 15,16,16,13,14,14,15,15,16,16,18,17,13,14,14,15, + 15,16,16,17,17, 9,10,10,11,11,12,13,14,14,10,11, + 11,12,12,13,13,14,14,10,11,11,12,12,13,13,14,14, + 11,12,12,13,12,14,14,15,15,11,12,12,13,13,14,14, + 15,15,12,13,13,14,14,15,15,16,16,13,13,13,14,14, + 15,15,16,16,14,14,15,15,15,16,16,17,18,14,14,14, + 15,15,16,16,17,18, 9,10,10,11,11,12,13,14,14,10, + 11,11,11,12,13,13,14,14,10,11,11,12,12,13,13,14, + 14,11,12,12,13,13,13,14,15,15,11,12,12,13,12,14, + 14,15,15,12,13,13,14,14,15,15,16,16,12,13,13,14, + 14,15,15,17,16,14,14,15,15,15,16,16,17,17,14,14, + 14,16,15,16,16,17,18,11,11,11,12,12,14,13,15,15, + 11,12,12,13,12,14,14,15,15,11,12,12,13,13,14,14, + 15,15,12,13,13,13,13,15,15,16,16,12,13,13,13,13, + 14,15,15,16,13,14,14,15,14,16,16,17,17,13,14,14, + 15,15,15,16,17,17,15,15,15,16,16,18,17,18,18,15, + 15,15,16,16,17,17,18,18,11,11,11,12,12,13,13,15, + 15,11,12,12,13,13,13,14,15,15,11,12,12,13,13,14, + 14,15,15,12,13,13,13,13,14,15,17,16,12,13,13,13, + 13,15,14,16,16,14,14,14,15,15,16,15,18,18,13,14, + 14,15,14,16,15,17,17,15,15,15,16,16,17,17,17,18, + 15,15,15,16,16,17,17,19,17,12,12,12,14,13,14,15, + 16,16,12,13,13,14,14,15,15,16,17,12,13,13,14,14, + 15,15,16,16,14,14,14,15,15,16,15,18,17,14,14,14, + 14,15,16,16,16,16,15,15,15,15,16,17,16,18,18,15, + 15,15,15,16,16,16,18,18,16,17,16,17,17,18,18,18, + 19,16,17,16,17,17,18,18,19,18,12,13,13,13,14,15, + 15,16,16,12,13,13,14,14,15,15,16,16,12,13,13,14, + 14,15,15,16,17,14,14,14,15,15,16,16,17,17,13,14, + 14,14,14,16,16,17,17,15,15,15,16,16,17,16,18,17, + 15,15,15,16,16,17,16,18,17,16,16,16,18,17,18,17, + 18,19,16,16,16,17,17,18,17,18,18,14,14,14,15,15, + 16,16,17,18,14,15,14,16,15,17,16,18,18,14,14,15, + 15,15,16,16,17,17,15,16,15,16,16,17,17,18,18,15, + 15,15,16,15,17,17,18,18,16,17,17,17,17,17,18,18, + 19,16,16,16,17,17,17,18,18,19,17,17,17,19,18,19, + 18,20,19,18,17,18,18,18,18,19,19,20,13,14,14,15, + 15,16,16,17,17,14,15,14,15,15,16,16,17,17,14,14, + 14,15,16,16,16,18,18,15,15,15,16,16,17,17,18,18, + 15,15,15,16,16,17,17,18,19,17,16,16,17,17,18,18, + 20,19,16,16,16,17,17,17,17,19,19,18,17,17,18,17, + 19,19,19,19,17,17,17,18,18,18,18,21,20, 9,11,11, + 12,12,13,13,15,15,11,11,11,13,13,14,14,15,15,11, + 11,11,13,13,14,14,15,15,12,13,13,14,13,15,15,16, + 16,12,13,13,13,14,15,15,16,15,13,14,14,15,15,16, + 16,17,17,13,14,14,15,15,16,16,17,17,15,15,16,16, + 16,17,17,18,18,15,15,15,16,16,17,17,18,18,11,11, + 11,12,13,14,14,15,15,11,12,12,13,13,14,14,16,15, + 11,12,12,13,13,14,14,16,15,13,13,13,14,14,15,15, + 16,16,13,13,13,14,14,15,15,16,16,14,14,14,15,15, + 16,16,18,17,14,14,14,15,15,16,16,17,17,15,15,16, + 16,17,17,17,18,18,15,16,16,16,16,18,17,20,18,11, + 11,11,13,13,14,14,15,15,11,12,12,13,13,14,14,16, + 15,11,12,12,13,13,14,14,15,16,13,13,13,14,14,15, + 15,16,16,12,13,13,14,14,15,15,17,16,14,14,14,15, + 15,16,15,18,17,14,14,14,15,15,16,16,18,18,15,16, + 16,16,16,17,17,19,17,15,15,15,16,16,17,17,18,18, + 12,13,12,13,13,15,15,16,16,12,13,13,14,14,15,15, + 17,17,12,13,13,14,14,15,15,17,16,13,14,14,14,15, + 16,16,17,17,14,14,14,15,14,16,16,17,17,15,15,15, + 16,16,17,16,18,18,15,15,15,16,16,17,17,18,18,16, + 16,16,17,17,18,18,19,18,16,16,17,17,17,17,18,18, + 19,12,12,13,13,14,15,14,16,17,12,13,13,14,14,15, + 15,16,17,12,13,13,14,14,15,15,16,16,14,14,14,15, + 15,16,16,17,18,14,14,14,15,15,16,16,17,17,14,15, + 15,15,16,17,16,18,17,15,15,15,16,16,16,17,18,18, + 16,17,16,17,17,17,18,18,19,16,17,17,17,17,18,18, + 18,18,13,14,14,15,15,16,16,17,17,14,14,14,15,15, + 16,16,17,17,14,14,14,15,15,16,16,17,17,14,15,15, + 15,16,17,17,17,18,15,15,15,16,15,17,17,18,18,16, + 16,16,16,17,17,19,18,19,16,16,16,16,16,18,17,19, + 18,17,17,17,17,18,17,18,21,19,17,17,17,17,18,19, + 18,21,20,13,14,14,15,15,16,16,17,17,13,14,14,15, + 15,16,16,17,17,14,14,14,15,15,16,16,17,18,15,15, + 15,16,16,17,16,18,18,15,15,15,16,15,16,17,17,18, + 16,16,16,17,16,18,18,17,18,16,16,16,17,17,17,19, + 19,18,17,17,18,18,17,18,18,20,19,17,17,17,18,18, + 18,19,21,20,15,15,15,16,16,17,16,18,18,15,15,15, + 17,16,18,17,18,18,15,15,15,17,17,17,17,18,18,16, + 16,16,17,17,17,18,19,19,16,16,16,17,17,18,17,18, + 20,17,17,17,17,19,18,18,19,19,17,18,18,19,17,18, + 19,19,19,17,18,18,19,18,18,20,20,21,18,19,19,19, + 19,19,20,19,21,15,15,16,16,16,17,18,18,17,15,16, + 16,16,16,17,17,19,19,15,16,16,16,16,18,17,18,18, + 16,16,16,17,17,17,18,19,19,16,16,16,17,17,18,18, + 19,19,17,17,17,18,18,19,19,19,20,17,17,18,18,18, + 18,20,18,21,18,18,19,19,18,20,20,20,19,18,19,19, + 19,18,19,21,19,20, 9,11,11,12,12,13,13,15,15,11, + 11,11,13,13,14,14,15,15,11,11,11,13,13,14,14,15, + 15,12,13,13,13,14,15,14,16,16,12,12,13,14,13,15, + 15,16,16,13,14,14,15,15,16,16,17,17,13,14,14,15, + 15,16,16,17,17,15,15,15,16,16,17,17,17,18,15,15, + 15,16,16,17,17,18,18,10,11,11,12,13,14,14,15,15, + 11,12,12,13,13,14,14,15,16,11,12,12,13,13,14,14, + 15,16,13,13,13,14,14,15,15,17,16,13,13,13,14,14, + 15,15,16,16,14,14,14,15,15,16,16,17,17,14,14,14, + 15,15,16,16,17,17,15,16,16,17,16,18,17,19,19,15, + 15,15,17,16,17,18,19,18,10,11,11,12,12,14,14,15, + 15,11,12,12,13,13,14,14,16,15,11,12,12,13,13,14, + 14,16,15,12,13,13,14,14,15,15,17,16,13,13,13,14, + 14,15,15,16,16,14,14,14,15,15,16,16,17,17,14,14, + 14,15,15,16,16,18,17,15,15,16,16,16,17,17,18,18, + 15,16,16,17,16,17,17,18,18,12,12,13,14,14,15,15, + 16,16,12,13,13,14,14,15,15,17,16,12,13,13,14,14, + 15,15,17,16,14,14,14,15,14,16,16,17,17,13,14,14, + 14,15,15,16,17,17,15,15,15,16,15,17,17,18,17,15, + 15,15,16,16,17,16,17,18,16,16,16,17,17,19,18,18, + 19,16,16,16,17,17,17,18,18,18,12,12,12,13,14,15, + 15,16,16,12,13,13,14,14,15,15,16,16,12,13,13,14, + 14,15,15,16,16,13,14,14,15,15,15,16,17,17,13,14, + 14,15,14,16,16,16,16,15,15,15,16,16,16,17,18,18, + 15,15,15,16,15,17,16,18,18,16,16,17,17,18,18,18, + 21,19,16,16,16,17,17,17,18,19,19,13,14,14,15,15, + 16,16,17,18,14,14,14,15,15,16,16,17,17,14,14,14, + 15,15,16,16,18,17,15,15,15,16,15,17,17,18,18,15, + 15,15,15,15,17,17,17,18,16,16,16,17,17,17,18,19, + 19,16,16,16,16,16,17,18,18,18,17,17,18,18,17,19, + 18,20,19,17,17,17,17,18,18,19,19,19,13,14,14,15, + 15,16,16,17,17,14,14,14,15,15,16,16,17,17,14,14, + 14,15,15,16,16,17,17,14,15,15,16,16,17,17,17,18, + 15,15,15,16,15,17,16,17,17,16,16,16,17,17,17,18, + 19,18,16,16,16,17,16,17,17,18,18,17,17,17,18,17, + 18,18,19,20,17,17,17,17,17,20,18,19,19,15,15,15, + 16,16,17,17,18,18,15,15,15,16,16,18,17,18,18,15, + 16,16,16,16,18,18,17,18,16,17,17,17,17,17,18,19, + 19,16,16,16,17,17,17,18,18,18,17,17,17,18,20,19, + 19,19,20,16,17,18,18,18,18,19,19,19,18,20,19,18, + 19,19,20,19,20,18,18,18,19,19,18,19,20,20,15,15, + 15,16,16,17,17,18,19,15,16,16,16,16,17,17,18,18, + 15,16,15,16,16,17,17,19,19,16,16,16,16,17,18,19, + 19,20,16,16,16,17,17,19,18,18,18,17,18,19,18,17, + 18,19,20,21,17,17,17,17,17,20,18,19,19,18,19,18, + 20,19,19,19,19,21,18,18,19,19,18,19,19,20,20,11, + 12,12,14,14,15,15,16,16,12,13,13,14,14,16,15,16, + 17,12,13,13,14,14,15,16,17,17,13,14,14,15,15,16, + 16,17,17,13,14,14,15,15,16,17,17,17,15,15,16,16, + 16,17,17,18,18,15,15,15,16,16,17,17,18,18,16,17, + 16,17,17,18,18,20,20,16,16,17,17,17,18,18,19,19, + 12,13,13,14,14,15,15,17,16,13,13,14,14,14,15,16, + 17,17,13,13,13,15,15,16,16,16,17,14,14,15,15,15, + 17,16,18,17,14,15,14,15,16,16,17,18,17,15,16,16, + 17,16,17,17,19,18,15,16,15,16,16,17,17,19,19,17, + 17,17,18,18,18,18,20,20,17,17,17,18,17,19,19,19, + 19,12,13,13,14,14,15,15,16,17,13,14,13,14,15,15, + 15,17,17,13,14,13,14,14,16,16,17,17,14,15,15,15, + 16,16,16,17,18,14,14,15,15,15,16,17,17,17,15,16, + 16,16,16,18,17,19,18,15,16,15,16,17,17,17,18,18, + 16,17,18,18,18,19,18,19,20,17,18,17,18,17,18,18, + 19,21,13,14,14,15,15,16,16,17,17,14,14,14,15,15, + 16,16,17,18,14,14,14,15,15,17,16,19,18,15,15,15, + 16,16,17,17,19,18,15,15,15,16,16,17,17,17,18,16, + 16,16,16,17,18,18,21,20,16,16,16,16,16,17,17,19, + 18,17,18,18,18,19,18,20,20,19,18,18,17,18,18,20, + 19,20,18,13,14,14,15,15,16,16,18,17,14,14,14,16, + 15,17,16,17,17,14,14,15,16,15,16,17,17,18,15,15, + 15,16,16,17,17,18,18,15,15,16,16,16,17,16,19,18, + 16,17,16,17,16,18,18,19,20,16,16,16,17,17,17,17, + 19,19,17,17,17,18,18,20,18,20,20,17,17,17,18,18, + 19,18,20,19,15,15,15,16,16,17,17,18,18,15,16,16, + 16,16,17,17,19,18,15,16,16,17,17,18,17,19,19,16, + 16,16,17,16,18,17,20,19,16,16,16,17,17,18,18,20, + 20,17,17,17,17,18,19,19,19,20,17,18,17,18,18,19, + 19,19,21,18,19,18,18,19,20,19,21,19,20,19,19,19, + 20,20,19,20,20,15,15,16,16,16,17,17,19,18,15,15, + 15,16,16,17,17,18,18,15,15,16,16,16,17,17,19,19, + 16,16,17,17,17,18,18,20,18,16,16,16,17,18,18,18, + 18,20,17,17,17,17,17,18,18,20,19,17,18,18,18,18, + 19,18,20,19,18,18,18,19,18,20,20,19,20,18,18,19, + 20,18,20,21,21,19,16,17,17,17,17,18,18,18,19,17, + 17,17,17,18,18,19,18,20,17,16,17,18,18,18,19,20, + 18,18,17,17,18,18,18,18,20,20,17,20,17,17,18,20, + 18,20,20,18,18,18,19,19,19,20,20,21,18,18,18,18, + 19,20,18,21,20,19,18,19,20,19,18,19,20,21,19,18, + 19,21,21,20,20,21,21,16,16,17,17,17,18,18,19,20, + 17,17,17,18,18,19,19,20,20,17,16,18,19,18,18,19, + 20,20,17,17,18,18,18,19,19,19,19,17,17,18,18,18, + 18,18,19,20,18,18,18,19,20,19,20,21,19,19,18,20, + 19,19,20,20,20,21,20,19,19,21,19,20,20,20,21,19, + 19,19,20,21,20,21,21,20,11,12,12,14,13,15,15,16, + 16,12,13,13,14,14,15,15,16,16,12,13,13,14,14,15, + 16,17,16,13,14,14,15,15,16,16,17,18,13,14,14,15, + 15,16,16,17,18,15,15,15,16,16,17,17,18,19,15,15, + 15,16,16,17,17,18,18,16,16,16,17,17,18,18,19,18, + 16,16,17,18,18,18,18,19,18,12,13,13,14,14,15,15, + 16,17,13,14,13,15,15,16,16,17,16,13,14,14,14,15, + 16,16,17,17,14,14,14,15,15,16,16,18,18,14,15,14, + 15,15,16,16,17,18,15,16,15,17,16,17,17,19,19,15, + 16,16,17,16,18,17,19,18,16,17,16,18,17,19,18,19, + 19,16,17,17,18,17,19,18,19,20,12,13,13,14,14,15, + 16,17,16,13,13,13,15,15,15,16,16,17,13,14,13,15, + 15,16,16,17,16,14,14,15,15,15,16,17,17,18,14,14, + 14,15,15,17,16,17,17,15,15,16,16,16,18,18,18,18, + 15,16,16,17,16,17,17,18,19,17,16,17,18,18,18,19, + 20,18,16,17,16,17,18,19,18,19,20,14,14,14,15,15, + 16,16,17,17,14,15,15,15,15,16,17,17,17,14,14,14, + 15,15,16,17,17,18,15,15,15,16,16,17,16,18,18,15, + 15,15,16,16,17,17,18,18,16,17,16,17,17,18,19,19, + 18,16,17,16,17,17,18,17,19,19,18,17,17,18,18,19, + 19,21,20,17,17,17,18,18,18,19,19,19,14,14,14,15, + 15,15,16,17,18,14,15,14,15,15,16,16,17,17,14,14, + 14,15,15,17,16,18,17,15,15,15,16,16,17,17,18,18, + 15,15,15,16,16,17,17,18,18,16,16,16,17,16,18,18, + 20,18,16,16,16,17,17,18,17,19,19,17,18,18,18,18, + 18,18,20,20,17,18,17,19,18,19,20,20,19,15,15,15, + 16,16,17,17,17,18,15,16,15,16,17,18,17,19,18,16, + 16,16,16,17,17,17,18,18,16,17,16,17,17,18,17,18, + 19,16,16,16,17,17,18,18,18,19,17,17,17,18,18,19, + 21,19,18,17,18,18,18,19,18,18,20,20,18,18,17,19, + 19,20,20,21,19,18,18,18,19,19,20,19,21,21,15,15, + 15,16,16,18,17,18,18,15,15,16,17,16,17,17,18,18, + 15,15,16,16,16,17,17,18,18,16,17,16,17,17,18,18, + 18,19,16,16,16,17,16,18,18,18,19,17,18,17,18,18, + 18,18,19,20,17,18,17,18,17,19,18,19,20,19,19,18, + 19,19,19,20,20,19,18,19,19,18,20,19,20,20,20,16, + 17,16,17,18,18,19,20,19,16,17,17,17,17,19,18,19, + 21,16,17,17,17,17,18,18,19,20,17,17,17,18,19,19, + 19,20,21,17,17,18,18,19,19,18,19,19,18,18,18,19, + 18,21,19,20,20,19,19,19,20,20,19,18,21,20,21,19, + 20,20,18,21,20,20,21,18,20,20,20,21,20,20,20,21, + 16,16,16,17,17,17,19,20,20,16,17,17,17,18,18,19, + 18,19,16,17,17,17,18,19,18,19,20,17,18,17,18,18, + 20,18,20,20,17,17,17,17,18,18,20,20,19,19,19,18, + 19,19,20,20,19,20,18,18,18,18,18,19,19,20,21,19, + 19,19,21,19,20,20,21,20,20,19,18,19,20,19,19,20, + 21, }; static float _vq_quantthresh_res0_256_1024_2[] = { - -4, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 4, + -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, }; static long _vq_quantmap_res0_256_1024_2[] = { - 8, 7, 6, 5, 0, 1, 2, 3, - 4, + 7, 5, 3, 1, 0, 2, 4, 6, + 8, }; static encode_aux_threshmatch _vq_auxt_res0_256_1024_2 = { @@ -57,9 +461,9 @@ static encode_aux_threshmatch _vq_auxt_res0_256_1024_2 = { }; static static_codebook _vq_book_res0_256_1024_2 = { - 2, 81, + 4, 6561, _vq_lengthlist_res0_256_1024_2, - 1, -531365888, 1611661312, 4, 0, + 1, -531628032, 1611661312, 4, 0, _vq_quantlist_res0_256_1024_2, NULL, &_vq_auxt_res0_256_1024_2, diff --git a/lib/books/res0_256_1024_3.vqh b/lib/books/res0_256_1024_3.vqh index 8554294f..da960e46 100644 --- a/lib/books/res0_256_1024_3.vqh +++ b/lib/books/res0_256_1024_3.vqh @@ -1,13 +1,12 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * + * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -20,62 +19,83 @@ #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, - 22, - 25, - 28, - 13, - 12, - 11, - 9, - 6, - 3, 0, + 20, }; static long _vq_lengthlist_res0_256_1024_3[] = { - 4, 6, 6, 6, 7, 8, 9,11, 6, 6, 6, 7, 8, 9,11, 6, - 6, 7, 7, 7, 8,10,11, 6, 7, 7, 7, 8,10,11, 6, 7, - 7, 7, 7, 8,10,12, 7, 7, 7, 7, 8,10,12, 7, 7, 7, - 7, 7, 8,10,12, 7, 7, 7, 7, 8,10,12, 7, 7, 7, 7, - 7, 8,10,12, 7, 7, 7, 7, 8,10,12, 8, 8, 8, 8, 8, - 9,11,13, 8, 8, 8, 8,10,11,13, 9,10,10,10,10,11, - 13,14,10,10,10,10,11,13,14,11,12,12,12,12,13,15, - 16,12,12,12,12,13,15,16, 6, 6, 7, 7, 7, 8,10,11, - 6, 7, 7, 7, 8,10,11, 6, 7, 7, 7, 7, 8,10,12, 7, - 7, 7, 7, 8,10,12, 7, 7, 7, 7, 7, 8,10,12, 7, 7, - 7, 7, 8,10,12, 7, 7, 7, 7, 7, 8,10,12, 7, 7, 7, - 7, 8,10,12, 8, 8, 8, 8, 8, 9,11,13, 8, 8, 8, 8, - 9,11,13, 9,10,10,10,10,11,13,14,10,10,10,10,11, - 13,14,11,12,12,12,12,13,14,16,12,12,12,12,13,14, - 16, + 3, 4, 4, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9,10,10,11, + 11,11,11,12,12, 4, 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,10,10,11, + 11,12,12,13,13,14,14,15,15, 7, 7, 7, 8, 8, 9, 9, + 11,10,11,11,12,12,14,13,15,15,16,15,16,16, 7, 7, + 7, 8, 8, 9, 9,10,10,11,11,12,12,13,14,15,15,16, + 15,16,16, 8, 9, 9,10, 9,11,11,12,12,12,12,13,14, + 15,15,16,16,16,16,17,17, 8, 9, 9,10, 9,11,11,12, + 12,12,12,13,13,15,14,16,16,16,17,17,17, 8, 9, 9, + 10,10,11,11,12,12,13,13,15,15,16,16,16,17,17,17, + 17,17, 8, 9, 9,10,10,11,11,12,12,14,13,15,15,16, + 16,17,16,17,17,18,18, 9,10,10,11,11,12,12,13,14, + 15,15,16,15,17,17,17,18,18,17,18,18, 9,10,10,11, + 11,12,12,13,14,15,15,16,16,16,17,17,17,17,18,18, + 18,10,11,11,13,12,14,14,15,15,16,16,17,16,17,17, + 18,18,19,18,18,18,10,11,11,13,13,14,14,15,15,16, + 16,17,17,17,17,18,18,18,18,18,18,11,12,12,14,14, + 15,15,16,16,16,16,17,18,18,18,19,18,19,19,19,19, + 11,12,12,14,14,15,15,16,16,17,17,17,17,18,18,18, + 19,18,18,19,19,11,13,13,15,15,16,16,17,17,17,17, + 18,17,18,18,18,19,19,19,19,19,12,13,13,15,15,16, + 16,16,17,17,17,18,18,18,18,19,19,18,19,18,20,12, + 14,14,15,15,16,17,17,17,18,18,18,18,19,19,20,19, + 19,19,20,20,12,14,14,15,15,17,16,17,18,18,18,18, + 18,18,19,19,19,19,20,20,19, }; static float _vq_quantthresh_res0_256_1024_3[] = { - -12.5, -9.5, -6.5, -4, -2.5, -1.5, -0.5, 0.5, - 1.5, 2.5, 4, 6.5, 9.5, 12.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, }; static long _vq_quantmap_res0_256_1024_3[] = { - 14, 13, 12, 11, 10, 9, 8, 0, - 1, 2, 3, 4, 5, 6, 7, + 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, - 15, - 15 + 21, + 21 }; static static_codebook _vq_book_res0_256_1024_3 = { - 2, 225, + 2, 441, _vq_lengthlist_res0_256_1024_3, - 1, -528744448, 1611661312, 5, 0, + 1, -529268736, 1611661312, 5, 0, _vq_quantlist_res0_256_1024_3, NULL, &_vq_auxt_res0_256_1024_3, diff --git a/lib/books/res0_256_1024_4.vqh b/lib/books/res0_256_1024_4.vqh index 825f487d..acf2f71c 100644 --- a/lib/books/res0_256_1024_4.vqh +++ b/lib/books/res0_256_1024_4.vqh @@ -1,13 +1,12 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * + * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -20,70 +19,70 @@ #include "codebook.h" static long _vq_quantlist_res0_256_1024_4[] = { - 28, - 29, - 31, - 33, - 36, - 39, - 42, - 45, - 48, - 52, - 56, - 27, - 25, - 23, - 20, - 17, - 14, + 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[] = { - 4, 5, 6, 7, 7, 8, 9, 8, 9,10,11, 5, 6, 7, 7, 8, - 9, 8, 9,10,11, 5, 6, 6, 7, 8, 8, 9, 9, 9,10,11, - 5, 6, 7, 8, 8, 9, 9, 9,10,11, 6, 6, 7, 8, 8, 9, - 10, 9,10,11,12, 6, 7, 8, 8, 9,10, 9,10,11,12, 7, - 7, 8, 8, 9, 9,10,10,10,11,12, 7, 8, 8, 9, 9,10, - 10,10,11,12, 8, 8, 8, 9, 9,10,10,10,11,12,13, 8, - 8, 9, 9,10,10,10,11,12,13, 9, 9, 9,10,10,11,11, - 11,11,12,13, 9, 9,10,10,11,11,11,11,12,13, 9,10, - 10,10,11,11,11,12,12,13,14,10,10,10,11,11,12,12, - 12,13,14, 9, 9,10,10,11,11,12,12,12,13,14, 9,10, - 10,11,11,12,12,12,13,14,10,10,11,11,11,12,12,13, - 13,13,15,10,11,11,12,12,12,13,13,13,14,11,11,11, - 12,12,12,13,13,13,14,15,11,12,12,12,13,13,13,14, - 14,15,12,12,13,13,13,14,14,14,14,15,16,12,13,13, - 14,14,14,15,15,15,16, 5, 5, 6, 7, 8, 8, 9, 9, 9, - 10,11, 6, 6, 7, 8, 8, 9, 9, 9,10,11, 6, 6, 7, 8, - 8, 9,10, 9,10,11,12, 6, 7, 8, 8, 9,10, 9,10,11, - 12, 7, 7, 8, 8, 9, 9,10,10,10,11,12, 7, 8, 8, 9, - 9,10,10,10,11,12, 8, 8, 8, 9, 9,10,10,10,11,12, - 13, 8, 8, 9, 9,10,10,10,11,12,13, 9, 9, 9,10,10, - 11,11,11,11,12,13, 9, 9,10,10,11,11,11,11,12,13, - 9,10,10,10,11,11,12,12,12,13,14,10,10,10,11,11, - 12,12,12,12,14, 9, 9,10,10,11,11,12,12,12,13,14, - 9,10,10,11,11,12,12,13,13,14,10,10,11,11,11,12, - 12,13,13,13,15,10,11,11,11,12,12,13,13,13,14,11, - 11,12,12,12,12,13,13,13,14,15,11,12,12,12,13,13, - 13,13,14,15,12,12,13,13,13,14,14,14,15,15,16,12, - 13,13,13,14,14,14,15,15,16, + 6, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 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,11,11, 6, 6, 6, 6, 6, 7, + 7, 7, 7, 8, 8, 9, 9, 9, 9,10,10,11,11,11,11, 6, + 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9,10,10,10,10, + 11,11,12,12, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9, + 9,10,10,10,10,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,11,11,12,12,13,13, 7, 7, 7, 8, 8, 8, 8, 9, + 9, 9, 9,10,10,11,11,11,11,12,12,13,13, 8, 8, 8, + 8, 8, 9, 9, 9, 9,10,10,11,11,11,11,12,12,13,13, + 13,13, 8, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11,11,11, + 11,12,12,12,13,13,13, 9, 9, 9, 9, 9, 9, 9,10,10, + 11,11,11,11,12,12,13,12,13,13,14,14, 9, 9, 9, 9, + 9, 9, 9,10,10,11,11,11,11,12,12,13,13,13,13,14, + 14, 9, 9,10,10,10,10,10,11,11,11,11,12,12,13,13, + 13,13,14,14,14,14, 9,10,10,10,10,10,10,11,11,11, + 11,12,12,13,13,13,13,14,14,14,14,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,11,11,12,12,12,12,13,13, + 13,13,14,14,15,14,15,15,15,16,11,11,11,11,11,12, + 12,12,12,13,13,13,13,14,14,14,14,15,15,15,16,11, + 12,12,12,12,13,13,13,13,14,13,14,14,15,15,15,15, + 16,15,16,16,11,12,12,12,12,12,13,13,13,13,13,14, + 14,15,15,15,15,15,16,16,16, }; static float _vq_quantthresh_res0_256_1024_4[] = { - -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, + -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[] = { - 20, 19, 18, 17, 16, 15, 14, 13, - 12, 11, 0, 1, 2, 3, 4, 5, - 6, 7, 8, 9, 10, + 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 = { @@ -96,7 +95,7 @@ static encode_aux_threshmatch _vq_auxt_res0_256_1024_4 = { static static_codebook _vq_book_res0_256_1024_4 = { 2, 441, _vq_lengthlist_res0_256_1024_4, - 1, -526647296, 1611661312, 6, 0, + 1, -529268736, 1611661312, 5, 0, _vq_quantlist_res0_256_1024_4, NULL, &_vq_auxt_res0_256_1024_4, diff --git a/lib/books/res0_256_1024_5.vqh b/lib/books/res0_256_1024_5.vqh index f55d02e1..8ae8c0bf 100644 --- a/lib/books/res0_256_1024_5.vqh +++ b/lib/books/res0_256_1024_5.vqh @@ -1,13 +1,12 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * + * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -20,101 +19,186 @@ #include "codebook.h" static long _vq_quantlist_res0_256_1024_5[] = { - 102, - 103, - 104, - 105, - 107, - 110, - 113, - 116, - 119, - 122, - 126, - 130, - 133, - 137, - 141, - 145, - 149, - 153, - 158, - 163, - 168, - 173, - 174, - 180, - 186, - 192, - 198, - 204, - 101, - 100, - 99, - 97, - 94, - 91, - 88, - 85, - 82, - 78, - 74, - 71, - 67, - 63, - 59, - 55, - 51, - 46, - 41, - 36, - 31, - 30, - 24, + 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[] = { - 3, 4, 4, 4, 4, 4, 5, 5, 6, 6, 7, 8, 7, 8, 9,11, - 11,12,13,13,14,15,15,15,15,16,17,16, 4, 4, 4, 4, - 4, 5, 5, 6, 6, 6, 8, 7, 8, 9,10,11,12,12,13,14, - 16,16,15,17,17,18,18, + 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,12,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,13,13,13,13, 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, 6, 7, 7, 8, 8, 8, 8, 8, 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,14,13, + 14,14,14,14,14,14,15,15, 8, 8, 8, 9, 9, 9, 9, 9, + 9,10,10,10,10,11,10,11,11,11,11,12,12,12,11,12, + 12,12,12,13,13,13,13,13,13,14,14,14,14,14,15,15, + 15, 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,14,14, + 14,14,14,14,14,14,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,13,14,14,14,14,14,15,14,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,14,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,13,13,14,14,14,14,15,14,15, + 15,15,15,15,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,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,15,15, + 15,15,15,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,14,14, + 14,14,14,14,15,15,15,15,15,15,16,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,14,14,14,14,14,14,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,14,14, + 14,14,14,14,14,15,15,15,15,15,16,16,16,16,16,16, + 16,17,10,10,10,11,11,11,11,11,11,12,12,12,12,12, + 13,13,13,13,13,14,14,13,14,14,14,14,14,15,14,15, + 15,15,15,16,16,16,16,16,16,17,16,10,11,11,11,11, + 11,11,12,12,12,12,13,12,13,13,13,13,13,14,14,14, + 14,14,14,14,15,15,15,15,15,16,16,16,16,16,16,16, + 17,17,16,17,10,11,11,11,11,11,11,12,12,12,12,13, + 12,13,13,13,13,14,14,14,14,14,14,14,14,14,15,15, + 15,15,16,16,16,16,16,17,16,17,16,17,17,10,10,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,16,16,16,16,16, + 17,17,17,17,17,17,10,10,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,16,16,16,16,16,17,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,16,16,16,16,16, + 17,17,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,15,15,16,16,16,16,16,16,17,17,17,17,17,17,17, + 17,10,11,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,17,17, + 16,17,17,17,17,17,18,17,18,18,10,11,11,12,12,12, + 12,13,13,13,13,13,14,14,14,14,14,15,14,15,15,15, + 15,16,15,16,16,16,16,16,16,17,17,17,17,17,18,18, + 17,19,17,11,12,12,12,12,13,13,13,13,14,14,14,14, + 14,14,15,14,15,15,15,15,16,15,16,16,16,16,16,16, + 17,17,17,17,17,17,17,17,18,17,17,18,11,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,16,17,16,16,17,17,17,17,17, + 18,18,18,18,17,11,12,12,13,13,13,13,13,14,14,14, + 14,14,15,15,15,15,15,15,15,16,16,16,16,16,17,17, + 17,17,17,17,17,18,17,18,18,18,18,18,19,19,11,12, + 12,13,13,13,13,13,14,14,14,14,14,15,15,15,15,15, + 15,16,15,16,16,16,16,16,16,16,17,17,17,17,17,17, + 18,17,18,18,18,18,18,12,12,12,13,13,13,13,14,14, + 14,14,15,14,15,15,15,15,15,16,16,16,16,16,16,16, + 17,17,17,17,17,17,17,17,18,18,18,18,18,18,19,18, + 11,12,12,13,13,14,13,14,14,14,14,15,15,15,15,15, + 15,16,16,16,16,17,16,17,17,17,17,17,17,17,17,17, + 18,18,18,17,18,18,18,18,19,12,13,13,13,13,14,14, + 14,14,15,15,15,15,15,15,16,16,16,16,17,16,17,17, + 17,17,17,17,17,18,18,17,17,18,18,18,19,19,18,18, + 19,18,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,18,17,18, + 18,18,18,18,19,18,18,18,18,18,18,12,13,13,14,14, + 14,14,15,14,15,15,16,15,16,16,16,16,16,16,17,17, + 17,17,17,17,17,18,18,17,17,18,18,18,17,19,18,19, + 18,18,19,19,12,13,13,14,14,14,14,15,15,15,15,16, + 15,16,16,16,16,16,17,17,17,17,17,17,17,17,17,17, + 18,19,18,18,18,18,18,18,18,19,19,19,20,12,13,13, + 14,14,15,15,15,15,15,15,16,16,16,16,16,16,17,16, + 17,17,17,17,18,17,18,18,18,18,18,19,18,19,18,19, + 19,19,19,19,18,18,12,13,13,14,14,15,15,15,15,15, + 15,16,16,16,16,17,16,16,16,17,17,17,17,17,17,18, + 18,18,18,18,18,18,18,18,19,18,18,19,19,19,19,13, + 14,14,14,14,15,15,15,16,16,16,16,16,16,17,17,16, + 17,17,17,17,18,17,18,17,18,18,18,18,18,18,18,18, + 20,18,18,20,20,18,19,20,13,14,14,14,15,15,15,15, + 15,16,16,16,16,16,17,16,17,17,17,17,17,17,18,17, + 19,18,18,18,18,18,18,18,19,18,18,19,20,19,19,19, + 19, }; static float _vq_quantthresh_res0_256_1024_5[] = { - -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.5, -1.5, -0.5, 0.5, 1.5, 2.5, 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, + -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[] = { - 54, 53, 52, 51, 50, 49, 48, 47, - 46, 45, 44, 43, 42, 41, 40, 39, - 38, 37, 36, 35, 34, 33, 32, 31, - 30, 29, 28, 0, 1, 2, 3, 4, - 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, + 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, - 55, - 55 + 41, + 41 }; static static_codebook _vq_book_res0_256_1024_5 = { - 1, 55, + 2, 1681, _vq_lengthlist_res0_256_1024_5, - 1, -522616832, 1611661312, 8, 0, + 1, -527171584, 1611661312, 6, 0, _vq_quantlist_res0_256_1024_5, NULL, &_vq_auxt_res0_256_1024_5, diff --git a/lib/books/res0_256_1024_6.vqh b/lib/books/res0_256_1024_6.vqh new file mode 100644 index 00000000..516a46e6 --- /dev/null +++ b/lib/books/res0_256_1024_6.vqh @@ -0,0 +1,565 @@ +/******************************************************************** + * * + * 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_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,10,11,11,11,11,10,10,10,10,10,10,11, + 10,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12, + 12,12,12,13,12,13,12,13,13,13,13,13,13,13,13,14, + 13, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, + 10,10,10,10,10,10,10,10,10,10,11,10,11,11,11,11, + 11,11,11,11,11,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,13,14,14,14,14,14,14,15,14,15,15, + 15,15, 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,10,11,11,11, + 11,11,11,11,11,11,11,12,12,12,12,11,11,11,11,11, + 11,12,12,12,12,12,12,12,12,12,12,12,13,13,13,13, + 13,13,13,13,13,14,14,14,14,14,14,14,14,14,14,14, + 14,15,14, 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,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, + 14,14,14,14,14,14,14,14,14,14,15,14,15,15,15,15, + 15,15,15,15, 7, 7, 7, 8, 8, 9, 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,14, + 13,13,13,14,14,14,14,14,14,14,14,14,14,14,15,15, + 15,15,15,15,15, 7, 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,12,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,14,15,15,15,15,15,15,15,15,15, + 15,15,16,16,15,16, 8, 8, 8, 9, 9, 9, 9, 9, 9,10, + 10,10,10,10,10,11,10,11,11,11,11,11,11,12,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,16,15,15,15,16, 8, 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,13,13,13,13, + 13,13,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,15,16, + 16,16,16,16,16,16,16,16, 8, 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,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,15,15,16,15,15, + 15,16,15,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,12,13,13,13,13,13,13,13,13,14,13, + 13,14,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,16,16,16,16,16, + 16,16,16,16,16,16,17,16,16,17, 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,14, + 14,14,14,13,13,13,13,13,14,13,14,14,14,14,14,14, + 14,14,14,15,14,15,14,15,15,15,15,15,15,16,15,16, + 16,16,16,16,16,16,16,16,16,16,17, 9, 9, 9,10,10, + 10,10,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,13,13,14,13, + 14,14,14,14,13,13,14,14,14,14,14,14,14,14,14,14, + 14,15,15,15,15,15,15,15,16,15,15,15,16,16,16,15, + 16,16,16,16,16,16,16,16,17,17,17,16, 9, 9, 9,10, + 10,10,10,11,11,11,11,11,11,11,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,13,13,14,14,14,14,14,14,14,14,14, + 14,14,14,15,15,15,15,15,15,15,15,16,16,16,16,16, + 15,16,15,16,16,17,16,16,16,17,17,17,16, 9,10,10, + 10,10,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,14,14,14,14,14,14,14,14,14,14,14,14,15,14, + 15,14,15,15,15,15,15,15,16,15,16,15,16,16,16,16, + 16,16,16,16,17,16,17,16,17,17,17,18,17,17, 9,10, + 10,10,10,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,14,14,14,14,14,14,14,14,15, + 14,15,15,15,15,15,15,15,15,16,15,16,15,15,16,16, + 16,16,16,16,16,16,17,16,16,16,16,16,17,17,17,10, + 10,10,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,14,14,13,14,14, + 14,14,14,14,14,15,15,14,14,14,14,14,15,14,15,14, + 15,15,15,15,15,15,15,15,15,16,16,15,16,16,16,17, + 16,16,16,16,17,16,16,16,16,17,17,17,17,17,17,17, + 10,10,10,11,11,11,11,11,11,12,12,12,12,12,12,12, + 12,12,13,13,13,13,13,13,13,13,13,14,14,14,13,14, + 14,14,14,14,14,14,14,14,15,14,14,14,14,14,14,15, + 14,15,15,15,15,15,15,15,15,15,15,16,16,15,16,16, + 16,16,16,16,17,17,17,17,16,16,17,17,17,17,17,17, + 17,10,10,10,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,15,14,15,15,14,14,14,14,15,15, + 15,15,15,15,15,15,15,15,16,15,15,15,16,17,16,16, + 16,16,17,17,16,17,17,17,17,17,17,17,16,17,17,17, + 17,18,10,10,10,11,11,11,11,12,12,12,12,12,12,12, + 13,13,13,13,13,13,13,13,13,14,13,14,13,14,14,14, + 14,14,14,14,14,14,14,15,15,15,15,14,14,14,15,15, + 15,15,15,15,15,15,15,15,15,16,15,15,16,16,16,16, + 16,16,16,16,16,17,16,17,17,17,17,18,17,17,17,18, + 18,17,17,10,11,11,11,11,11,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,14,14,15,15,15,15,15,15,15,14,15,15, + 15,15,15,15,15,15,16,16,16,15,16,16,16,16,16,16, + 16,16,17,16,17,17,17,17,17,17,18,17,18,17,17,17, + 18,18,18,17,10,11,11,11,11,12,12,12,12,12,12,12, + 12,13,13,13,13,13,13,13,13,13,14,14,14,14,14,14, + 14,14,14,14,14,15,14,15,14,15,15,15,15,15,14,15, + 15,15,15,15,15,15,15,16,16,16,16,16,16,16,16,16, + 16,17,17,17,16,17,17,16,17,17,17,17,17,17,17,18, + 17,17,19,17,17,10,11,11,12,11,12,12,12,12,12,12, + 13,13,13,13,13,13,13,14,14,14,14,14,14,14,14,14, + 14,14,14,14,15,14,14,14,15,15,15,15,15,15,15,14, + 15,15,15,15,15,15,16,15,15,16,16,16,16,16,16,16, + 16,16,16,16,16,16,17,17,17,17,18,17,18,17,17,17, + 17,18,18,18,18,18,10,11,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,14,14,14,14,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,17,16,16,17,17,17,17,17,17,17,17,17,17,18, + 18,17,17,18,18,18,18,11,11,11,12,12,12,12,13,12, + 13,13,13,13,13,13,13,13,14,14,14,14,14,14,14,14, + 15,14,15,15,15,15,15,14,15,15,15,15,15,15,15,15, + 15,16,15,15,16,16,16,16,16,16,16,16,16,16,17,16, + 16,16,16,16,16,16,17,17,17,17,17,18,17,17,17,18, + 18,18,18,17,17,17,17,17,11,11,11,12,12,12,12,13, + 12,13,13,13,13,13,13,14,13,14,14,14,14,14,14,14, + 14,15,14,14,14,15,15,15,15,15,15,15,15,15,15,16, + 15,15,15,15,15,15,15,16,16,15,16,16,15,16,16,16, + 16,17,17,17,16,17,17,17,17,16,17,18,17,17,17,17, + 18,17,18,18,18,17,18,17,18,11,12,11,12,12,12,12, + 13,13,13,13,13,13,14,13,14,13,14,14,14,14,14,14, + 14,14,15,15,15,15,15,15,15,15,16,16,15,15,16,16, + 16,16,15,15,15,15,16,15,16,16,16,16,16,16,17,16, + 17,16,17,16,17,17,17,17,17,17,17,18,18,17,18,17, + 18,18,18,18,17,18,18,18,19,18,11,11,11,12,12,12, + 12,13,13,13,13,13,13,14,14,14,14,14,14,14,14,14, + 14,14,14,15,14,15,15,15,15,15,15,15,15,16,15,16, + 16,16,16,15,15,15,15,16,16,16,16,16,16,16,16,17, + 16,16,17,17,16,17,17,17,16,18,17,18,17,17,18,17, + 17,18,18,18,18,18,18,18,18,18,18,11,12,12,12,12, + 12,13,13,13,13,13,14,13,14,14,14,14,14,14,14,14, + 14,14,15,15,15,15,15,15,15,15,15,15,16,15,16,15, + 16,16,16,16,16,16,16,16,16,16,17,16,17,17,16,16, + 17,16,17,16,17,16,17,17,18,18,17,17,17,17,17,18, + 18,18,18,17,18,18,17,18,18,18,19,18,11,12,12,12, + 12,13,12,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,15,15,16, + 16,15,15,16,16,16,15,16,15,16,16,16,16,17,16,16, + 16,17,16,16,17,17,17,18,17,17,17,17,17,17,17,18, + 17,18,17,18,18,18,18,18,19,18,18,18,18,11,12,12, + 12,12,13,13,13,13,13,13,14,14,14,14,14,14,14,14, + 15,15,15,15,15,15,15,15,15,15,16,15,15,15,16,15, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 17,17,17,16,17,17,17,17,18,18,18,18,18,18,17,18, + 18,18,18,18,18,18,18,18,20,19,18,19,18,19,11,12, + 12,12,12,13,13,13,13,13,13,14,14,14,14,14,14,14, + 14,15,14,15,15,15,15,15,15,15,15,15,15,16,15,16, + 15,16,16,16,16,16,16,16,16,16,16,16,16,16,16,17, + 16,17,16,17,17,17,17,17,18,17,17,18,17,18,17,18, + 18,18,18,18,18,18,18,18,19,18,18,18,18,18,18,11, + 12,12,13,13,13,13,13,14,14,14,14,14,14,14,14,14, + 15,14,15,15,15,15,15,15,15,15,16,15,15,16,16,16, + 16,16,16,16,16,16,17,16,16,16,16,16,16,16,17,16, + 17,16,17,17,17,16,18,17,17,17,17,18,18,17,17,18, + 18,17,18,18,18,18,18,18,18,18,18,18,18,18,19,18, + 11,12,12,13,13,13,13,13,13,14,14,14,14,14,14,15, + 15,14,14,15,15,15,15,15,15,16,16,16,16,16,16,16, + 16,16,15,16,16,16,16,16,16,16,16,16,16,16,16,16, + 17,17,17,17,17,17,17,17,18,17,17,17,18,17,18,17, + 18,17,19,18,19,19,18,18,19,20,18,18,19,18,18,19, + 19,12,12,12,13,13,13,13,13,13,14,14,14,14,14,14, + 14,15,15,15,15,15,15,15,15,15,16,15,16,15,16,16, + 16,15,16,16,16,16,16,17,17,16,16,16,16,16,16,17, + 17,17,16,17,17,17,17,17,17,17,18,17,18,18,18,17, + 17,18,18,18,18,18,18,18,21,19,18,19,18,19,18,18, + 18,19,12,12,12,13,13,13,14,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,16,16,16,16,16,17,16,16,16,16,16,16,16,16, + 16,16,17,17,17,17,17,17,17,17,17,17,17,17,18,18, + 17,18,17,18,18,18,17,18,17,18,18,19,19,18,19,19, + 19,19,19,12,13,13,13,13,14,13,14,14,14,14,14,15, + 15,15,15,15,15,15,15,15,16,16,16,15,16,16,16,16, + 16,15,16,16,16,16,16,16,17,17,17,16,17,16,17,16, + 17,16,17,17,17,17,17,16,17,17,18,17,18,17,18,18, + 17,18,18,18,18,18,19,18,19,18,18,18,19,18,18,19, + 19,19,19,18,12,13,13,13,13,14,14,14,14,14,14,14, + 15,15,15,15,15,15,15,15,15,15,15,15,16,16,15,16, + 16,16,16,16,17,16,16,17,17,17,16,17,17,16,16,16, + 16,17,17,17,16,17,17,17,17,17,17,17,18,17,17,18, + 17,18,18,18,18,19,19,19,18,19,18,18,18,18,18,18, + 19,19,19,19,19,12,13,13,13,13,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,17,16,16,16,17,16,16,17,16,17,17,16, + 17,17,17,17,17,17,17,17,18,18,18,17,17,18,18,17, + 18,17,18,17,18,17,19,18,18,19,18,19,18,18,18,20, + 18,18,18,19,19,18,12,13,13,13,13,14,14,14,14,14, + 14,15,15,15,15,15,15,16,15,15,15,16,15,16,16,16, + 16,17,16,16,16,16,16,16,16,17,16,16,16,17,17,16, + 16,17,17,18,17,17,17,18,17,17,17,17,17,18,17,19, + 18,18,18,19,18,19,18,18,18,19,19,18,19,19,18,19, + 21,19,19,19,19,18,19,12,13,13,14,14,14,14,14,14, + 15,15,15,15,15,15,15,15,16,15,16,16,16,16,16,16, + 17,16,16,16,16,16,16,17,17,17,17,17,17,17,17,17, + 17,17,18,16,17,17,17,17,17,18,17,18,18,18,18,18, + 18,17,18,17,17,17,19,18,18,19,19,18,19,19,18,19, + 20,19,19,19,19,19,19,20,12,13,13,13,14,14,14,14, + 15,15,14,15,15,15,15,16,15,16,15,16,16,15,16,16, + 16,16,16,17,16,16,16,16,16,16,17,17,16,17,17,17, + 17,17,16,17,17,18,17,17,17,17,17,17,17,18,18,18, + 18,18,18,18,18,19,17,19,18,18,19,18,18,18,19,19, + 18,18,18,19,18,18,19,18,19,11,12,12,13,13,13,13, + 14,14,14,14,14,14,15,14,15,15,15,15,15,15,16,16, + 16,15,16,15,16,16,16,16,16,17,16,17,16,17,17,16, + 16,16,16,17,17,17,17,17,18,18,18,18,17,17,18,18, + 17,18,18,18,18,18,18,19,21,19,18,18,19,18,18,18, + 20,20,18,19,18,19,19,19,19,18,11,12,12,13,13,13, + 13,14,14,14,14,14,14,15,15,15,15,15,15,15,15,15, + 15,15,16,16,16,16,15,16,16,16,16,16,17,17,16,16, + 17,17,16,17,17,16,17,18,17,18,17,18,17,18,17,18, + 17,18,18,18,17,19,18,19,18,18,18,18,19,19,18,18, + 19,19,19,19,20,19,18,18,20,21,20,11,12,12,13,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,17,16,16,17,16,17, + 17,17,18,18,17,17,18,18,17,17,17,17,18,18,18,18, + 17,18,18,19,18,18,19,18,18,19,18,18,19,19,19,19, + 20,18,19,19,19,19,20,21,19,18,21,20,11,12,12,13, + 13,13,13,14,14,14,14,14,14,15,15,15,15,15,15,16, + 15,16,16,16,16,16,15,16,16,16,16,17,16,17,16,17, + 16,16,17,17,16,17,17,17,18,18,18,18,17,18,18,18, + 18,18,18,19,18,19,18,19,18,18,18,19,18,18,19,18, + 19,18,19,18,19,19,19,18,19,20,19,19,20,12,12,13, + 13,13,14,14,14,14,14,15,15,14,15,15,15,15,16,16, + 16,16,15,15,16,16,16,16,16,16,16,16,17,17,17,17, + 17,17,17,17,17,17,17,17,18,17,17,18,17,17,18,17, + 18,18,19,18,18,18,18,18,18,19,20,18,19,19,19,21, + 19,18,19,19,20,20,19,20,19,18,19,21,18,20,12,13, + 12,13,13,14,14,14,14,14,15,15,15,15,15,15,15,16, + 15,16,16,15,16,17,16,16,16,16,16,16,16,17,17,17, + 17,16,17,17,17,18,17,17,17,18,18,17,18,17,18,18, + 18,19,18,18,18,19,18,19,19,18,18,19,20,19,20,20, + 19,19,19,19,19,20,20,19,19,19,19,19,20,19,20,12, + 13,13,14,13,14,14,14,14,14,15,15,15,15,15,15,16, + 16,16,16,16,16,16,16,16,17,16,17,16,16,17,17,16, + 17,18,17,17,17,17,17,17,18,18,17,17,18,18,18,17, + 18,18,18,18,18,19,18,18,18,19,18,18,18,18,19,18, + 19,19,20,20,20,19,19,19,19,19,20,19,19,20,20,18, + 12,13,13,13,14,14,14,14,15,15,15,15,15,15,15,15, + 15,16,16,16,16,16,16,16,15,17,16,17,17,16,17,17, + 17,18,17,17,17,18,18,17,17,18,17,18,17,18,18,18, + 18,18,18,18,18,18,18,19,18,18,18,19,18,18,19,18, + 19,18,18,18,19,19,19,19,20,20,19,19,19,20,19,20, + 20,12,13,13,14,14,14,14,15,14,15,15,15,15,15,15, + 16,16,16,16,16,17,16,16,16,16,17,17,17,17,17,17, + 17,16,18,17,18,18,17,18,18,18,18,17,18,17,18,18, + 17,19,18,18,18,19,18,19,18,18,19,19,19,19,18,18, + 19,19,19,20,20,20,21,18,21,19,20,20,18,19,19,20, + 20,20,12,13,13,13,14,14,14,15,15,15,15,15,15,16, + 15,16,16,16,16,16,16,17,16,16,16,16,16,17,17,17, + 16,18,17,17,17,17,17,18,17,17,18,18,17,17,17,19, + 19,18,18,18,18,18,18,18,18,19,18,19,18,19,19,19, + 19,19,20,19,19,18,19,19,21,18,20,19,19,20,20,18, + 21,20,19,13,13,13,14,14,15,15,15,15,15,15,16,16, + 16,16,16,16,16,16,16,17,16,17,17,16,17,17,17,17, + 17,17,17,18,17,18,17,17,17,18,19,17,18,18,17,18, + 18,17,18,18,19,18,19,19,19,18,19,19,19,18,19,18, + 20,19,20,21,20,19,21,20,21,19,19,19,19,19,20,19, + 19,19,20,20,12,13,13,14,14,15,15,15,15,15,15,16, + 15,15,16,16,16,16,16,17,16,17,17,17,17,17,17,17, + 17,17,18,17,17,18,17,17,18,18,18,19,18,18,18,19, + 18,18,19,18,18,18,18,19,18,19,19,19,19,20,20,19, + 19,18,18,19,21,20,20,19,21,21,19,19,19,19,19,19, + 20,20,20,20,19,13,13,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,17,17,17,17,17,18,18,18,18,18,18,18,18,18,17, + 18,19,18,18,19,18,19,19,18,18,19,19,20,19,19,19, + 19,19,20,19,20,19,19,20,19,20,19,19,21,21,20,21, + 20,19,21,20,19,21,13,14,13,14,14,15,15,15,15,15, + 15,16,16,16,17,16,16,16,17,17,17,17,16,16,17,17, + 18,17,17,18,17,19,18,18,17,18,18,18,18,18,17,18, + 18,19,18,17,19,19,18,19,18,18,19,19,19,19,19,19, + 19,19,19,21,19,20,19,19,20,19,20,19,21,20,19,21, + 21,20,21,19,21,20,19,13,14,14,15,15,15,15,15,16, + 16,16,16,17,16,16,17,17,17,17,17,17,17,18,17,17, + 18,17,17,18,18,17,18,18,18,18,18,18,19,18,19,19, + 18,18,19,18,19,19,19,19,19,19,18,19,18,19,19,19, + 19,19,18,19,20,19,20,19,21,20,19,21,21,19,21,19, + 19,20,21,20,20,20,20,20,13,14,14,15,14,15,15,16, + 15,15,16,16,16,16,17,17,17,17,17,16,18,17,17,17, + 18,17,17,18,17,18,17,18,19,18,18,18,18,18,18,18, + 18,19,18,18,18,18,18,18,19,18,19,19,18,19,20,19, + 20,19,19,20,20,20,20,19,21,20,20,19,19,19,20,19, + 21,19,21,20,21,20,19,19,20,13,14,14,15,15,15,15, + 16,16,16,16,16,16,17,16,17,17,17,17,17,17,18,17, + 18,18,17,18,18,17,17,18,17,19,18,18,18,18,18,18, + 18,19,19,19,21,19,18,19,18,20,18,18,19,19,20,21, + 19,20,19,19,20,19,20,19,19,19,19,21,19,20,21,21, + 19,20,19,19,21,19,20,20,21,20,13,15,14,15,15,16, + 16,15,16,16,16,17,17,17,17,17,17,17,17,17,17,19, + 17,17,17,18,17,18,18,18,18,17,18,18,18,18,18,18, + 19,18,20,19,19,19,18,18,19,19,19,18,19,21,19,19, + 20,19,21,19,18,18,20,19,19,19,20,19,21,20,20,19, + 20,19,20,21,20,21,20,20,20,19,19,13,14,15,15,15, + 15,16,16,16,16,16,16,17,17,17,16,17,18,17,18,17, + 17,17,17,18,18,17,18,17,18,18,18,18,19,18,19,18, + 18,19,18,19,19,19,19,20,19,19,21,19,20,19,20,19, + 19,19,19,19,19,20,19,21,21,19,20,21,21,21,20,20, + 20,21,19,21,20,21,20,21,19,21,20,21,13,15,14,15, + 15,16,15,16,16,16,16,16,17,17,17,17,17,17,17,19, + 18,18,18,17,18,18,18,18,18,19,18,19,18,19,18,18, + 19,19,18,18,19,19,19,21,19,19,19,19,19,19,18,19, + 19,19,19,19,20,20,20,20,19,20,19,21,20,20,21,20, + 20,20,19,20,21,21,21,20,21,19,20,21,21,14,15,15, + 16,15,16,16,16,17,17,17,17,17,17,17,17,17,18,17, + 17,18,18,18,18,18,18,18,19,17,19,18,19,18,19,18, + 19,19,19,20,19,18,19,19,19,19,21,19,19,19,19,18, + 20,20,19,21,20,19,20,20,20,20,21,19,21,21,21,19, + 20,21,19,20,20,20,20,21,20,21,19,20,19,21,14,15, + 15,16,15,16,16,16,16,17,17,16,17,17,17,17,17,17, + 17,19,18,18,17,19,17,18,18,18,18,18,18,18,18,19, + 18,19,19,19,19,19,19,19,19,19,19,19,18,21,18,19, + 19,19,19,19,19,19,20,19,20,19,19,20,19,20,20,20, + 19,21,20,20,20,21,20,21,19,21,21,19,19,21,20,14, + 15,15,16,16,16,16,16,16,17,17,17,17,18,17,18,18, + 18,19,18,18,18,19,18,18,19,19,18,18,18,18,20,18, + 19,18,19,19,19,18,19,19,20,18,19,19,20,19,19,19, + 19,18,20,20,21,20,21,21,21,20,21,21,20,20,19,20, + 20,19,20,21,21,19,19,20,20,21,20,21,20,21,21,20, + 14,15,15,16,16,16,16,17,17,17,17,17,17,17,18,18, + 18,17,17,18,19,17,19,19,18,18,18,18,18,18,18,20, + 18,19,18,19,19,19,19,21,18,18,21,19,21,19,19,19, + 19,20,20,20,19,20,21,20,21,21,20,20,20,21,21,20, + 20,20,21,21,21,21,20,21,20,18,21,20,21,21,21,21, + 21,14,15,15,16,16,16,17,17,17,18,18,18,18,18,18, + 18,18,18,18,17,18,18,18,19,18,19,18,19,20,19,18, + 19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,21, + 19,19,20,18,20,19,19,20,19,21,20,21,20,19,20,21, + 21,20,21,21,21,19,20,19,21,21,21,21,20,20,21,19, + 21,21,15,15,15,16,16,16,17,17,18,18,17,17,17,18, + 18,18,18,17,17,18,18,18,18,18,18,18,19,18,19,19, + 18,19,19,18,19,19,19,19,19,20,19,19,19,19,19,19, + 19,20,20,19,20,21,20,21,19,19,21,19,20,21,20,20, + 20,21,21,21,20,20,20,21,21,20,21,21,19,21,20,20, + 21,21,21,15,16,16,16,17,16,17,18,18,17,17,18,17, + 18,18,19,18,18,18,18,18,20,18,18,18,19,19,20,19, + 19,19,19,18,19,19,20,20,20,21,19,19,20,19,20,20, + 20,19,20,20,20,20,20,21,20,20,21,20,20,20,19,19, + 20,19,21,21,21,21,21,21,21,20,20,19,20,20,21,20, + 20,20,20,21,15,16,15,16,17,17,17,17,17,17,17,18, + 17,19,18,19,18,19,19,20,18,18,19,19,18,19,19,19, + 20,21,19,18,19,19,18,20,19,20,18,19,20,20,21,20, + 19,20,20,21,19,20,19,20,21,19,20,21,20,21,21,21, + 21,20,21,20,20,19,21,19,20,21,19,21,21,20,21,21, + 20,20,21,21,21,15,16,16,16,17,17,17,17,17,18,17, + 18,19,18,18,18,18,18,18,19,19,19,19,18,18,19,18, + 20,19,19,19,19,21,19,21,21,20,20,19,20,20,20,19, + 20,19,21,19,20,19,19,20,19,19,20,20,19,19,20,21, + 21,21,21,20,20,20,20,19,21,21,20,20,21,20,21,20, + 19,21,21,21,21,20,15,16,16,17,17,17,17,17,17,18, + 18,17,19,19,18,19,18,19,19,18,18,19,19,19,19,19, + 19,19,19,19,19,19,21,20,19,19,19,19,20,21,19,21, + 20,19,20,19,21,19,20,20,20,21,21,21,20,19,20,21, + 21,21,21,20,21,19,21,20,19,21,19,20,20,21,21,21, + 21,20,21,20,21,21,21,15,16,17,17,17,17,18,18,18, + 18,18,19,18,19,18,19,20,19,19,19,19,19,19,19,18, + 18,19,19,21,18,19,20,21,20,20,20,19,19,19,21,21, + 21,19,20,19,21,19,21,20,21,19,21,19,21,21,21,19, + 20,21,21,21,21,20,21,21,21,21,20,20,21,21,21,21, + 21,20,20,21,21,21,21,20,15,16,16,17,17,17,17,18, + 17,18,18,18,19,18,18,19,18,19,19,21,18,19,19,21, + 20,19,19,19,19,19,21,19,19,20,19,19,20,21,19,19, + 19,19,20,21,21,19,19,20,21,21,20,21,19,19,21,21, + 21,20,21,20,21,20,21,21,20,20,21,19,21,21,20,21, + 21,21,20,20,21,21,21,21,20,16,17,16,18,17,18,17, + 18,18,19,18,18,18,19,19,19,19,19,19,19,21,19,19, + 19,19,20,21,20,19,20,19,20,21,19,21,20,20,20,21, + 20,19,21,20,21,21,20,20,20,20,20,20,21,21,21,20, + 20,21,21,20,21,21,21,21,21,21,19,21,21,21,21,20, + 20,19,20,19,20,21,21,21,21,21,16,17,16,18,17,18, + 18,18,19,20,19,19,19,19,18,20,21,20,20,21,20,21, + 20,18,19,19,19,20,20,20,19,20,21,19,21,20,20,19, + 19,21,20,19,20,19,20,18,20,19,21,20,20,21,21,21, + 20,19,19,21,20,20,20,21,21,20,21,21,21,20,21,21, + 21,21,21,21,21,20,21,21,20,20,21,16,17,17,18,17, + 19,17,18,19,18,19,19,18,19,19,18,20,20,19,19,18, + 20,19,19,20,19,21,18,20,20,19,20,21,21,21,19,19, + 19,20,20,20,21,21,21,19,20,20,20,21,21,21,21,21, + 21,21,21,20,21,19,21,19,21,20,21,19,21,21,21,21, + 19,20,21,21,21,20,21,21,20,21,20,21,16,17,17,17, + 17,18,18,19,18,18,19,19,20,20,19,20,20,21,21,20, + 21,20,20,20,19,21,20,19,19,19,21,20,20,20,20,21, + 19,20,21,21,21,20,20,21,19,19,20,21,21,21,20,20, + 20,20,21,21,20,21,21,21,21,21,20,20,21,21,21,19, + 21,21,21,21,21,21,21,21,21,21,21,21,21,16,17,17, + 18,18,18,18,18,19,18,19,19,19,21,18,18,19,19,19, + 18,20,21,20,20,20,21,19,20,21,19,21,19,20,21,20, + 19,20,19,19,20,19,21,20,21,21,20,20,21,20,20,20, + 20,20,20,21,19,21,20,21,20,20,21,21,21,21,21,21, + 21,20,21,21,21,21,21,21,21,20,21,20,21,21,17,17, + 17,19,18,18,18,20,18,18,20,19,19,19,19,20,20,19, + 19,20,20,19,18,20,20,20,19,20,21,21,20,21,20,19, + 19,19,19,20,21,19,20,21,21,21,20,21,21,19,21,21, + 21,20,21,20,20,21,21,21,21,20,20,21,21,21,21,21, + 20,21,20,21,21,21,21,21,21,21,21,21,21,21,21,16, + 17,18,19,18,19,19,20,18,20,20,20,21,20,20,19,21, + 21,21,19,20,19,21,20,20,20,20,21,21,21,20,21,21, + 21,20,21,21,19,19,21,21,19,19,20,21,21,20,20,21, + 21,20,20,21,21,20,21,21,19,21,21,21,21,21,21,21, + 21,20,21,21,21,21,21,21,21,21,21,21,20,21,21,21, + 17,17,18,18,19,19,19,19,18,19,19,19,21,19,20,20, + 21,21,20,19,21,21,20,20,21,19,21,21,20,19,20,21, + 19,21,21,20,21,19,21,21,21,21,20,20,21,20,21,21, + 21,21,21,21,20,21,21,20,21,21,21,21,21,21,21,21, + 21,20,21,21,21,21,21,21,20,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 new file mode 100644 index 00000000..3afa8c0c --- /dev/null +++ b/lib/books/res0_256_1024_7.vqh @@ -0,0 +1,790 @@ +/******************************************************************** + * * + * 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_res0_256_1024_7_VQH_ +#define _V_res0_256_1024_7_VQH_ +#include "codebook.h" + +static long _vq_quantlist_res0_256_1024_7[] = { + 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_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, 8, 8, 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, 9,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,12,11,12,11,12,11,12,12, + 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, + 12,12,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,14,13,14,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,15,14,15,14,14,15, + 14,15,14,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,15,15,16,15, + 16,16,16,15,16,16,15,16,16,15,15,16,15,15,16,16, + 16,16,17,16,16,16,16,16,16,16,16,16,16,16,17,16, + 16,17,16,17,17,17,17,16,17,17,17,17,17,17,17,17, + 17,17,16,16,18,17,17,17,17,17,16,17,17,18,17,17, + 18,17,17,17,17,18,17,17,17,17,17,17,18,18,18,18, + 18,18,19,18,17,17,18,18,18,18,18,18,18,18,18,18, + 17,18,18,18,19,18,19,18,19,20,17,19,18,19,19,18, + 21,19,20,19,19,19,20,20,20,19,19,19,20,20,18,19, + 19,19,19,19,19,19,20,21,21,19,19,20,20,20,20,19, + 19,19,20,20,21,19,20,20,20,21,20,20,21,21,19,20, + 20,21,19,19,20,19,19,20,21,21,20,20,21,21,21,20, + 21,20,20,21,21,21,21,21,20,19,21,21,20,21,21,21, + 21,21,21,21,21,21,19,21,21,21,21,21,21,21,21,20, + 21,21,21,21,21,21,21,21,21,21,21,21,20,21,21,21, + 21,21,21,21,20,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,20,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,20,20,20,20,20, + 20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20, + 20, +}; + +static float _vq_quantthresh_res0_256_1024_7[] = { + -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_256_1024_7[] = { + 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_256_1024_7 = { + _vq_quantthresh_res0_256_1024_7, + _vq_quantmap_res0_256_1024_7, + 561, + 561 +}; + +static static_codebook _vq_book_res0_256_1024_7 = { + 1, 561, + _vq_lengthlist_res0_256_1024_7, + 1, -518946816, 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 index c4876e27..4f4cc2b8 100644 --- a/lib/books/res0_256_1024aux.vqh +++ b/lib/books/res0_256_1024aux.vqh @@ -20,13 +20,14 @@ #include "codebook.h" static long _huff_lengthlist_res0_256_1024aux[] = { - 3, 7,10,10,12,14, 5, 3, 6, 8,10,14, 9, 5, 3, 4, - 8,14, 9, 6, 4, 2, 6,12,10, 8, 7, 4, 6,12,11,11, - 9, 6, 7,14, + 2, 7,11,11,17,13,15,19, 5, 3, 6, 7,10,10,12,19, + 10, 5, 4, 5, 7, 9,12,18, 9, 6, 5, 5, 6, 7,10,15, + 15, 9, 6, 6, 5, 6,10,16,10, 9, 8, 6, 5, 4, 6,13, + 11,10, 9, 7, 7, 5, 6,12,13,10,10, 9, 8, 6, 6,12, }; static static_codebook _huff_book_res0_256_1024aux = { - 2, 36, + 2, 64, _huff_lengthlist_res0_256_1024aux, 0, 0, 0, 0, 0, NULL, diff --git a/lib/books/res0_256_128_1.vqh b/lib/books/res0_256_128_1.vqh index df9905fa..364f65e9 100644 --- a/lib/books/res0_256_128_1.vqh +++ b/lib/books/res0_256_128_1.vqh @@ -1,13 +1,12 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * + * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -20,75 +19,39 @@ #include "codebook.h" static long _vq_quantlist_res0_256_128_1[] = { - 2, - 3, - 4, 1, 0, + 2, }; static long _vq_lengthlist_res0_256_128_1[] = { - 3, 5, 7, 5, 8, 5, 6, 9, 7, 8, 8, 9,11, 9,10, 5, - 6, 9, 7, 9, 7, 9, 9,10,10, 5, 7, 9, 7, 9, 6, 7, - 10, 8, 9,10,10,11,10,12, 7, 8, 9, 8, 9, 9, 9,11, - 10,13, 9, 9,13, 9,10, 9, 9,10,10,12,11,11,12,10, - 12, 9, 9,11,10,12,12,10,12,11,12, 5, 7, 9, 7, 9, - 7, 8,10, 7,10, 9, 9,11, 9,12, 7, 8, 9, 7,10, 8, - 9,11,10,11, 8,10,12, 9,12, 9,12,10,11,10,11,12, - 13,11,13, 9,10,13,12,13,11,12,13,11,11, 6, 7, 9, - 8,12, 8, 8,10, 8, 9, 9,10,13,12,12, 8, 8,10, 8, - 12,10,10,11,12,12, 8, 9,11, 9,10, 8, 9,12, 9,11, - 9,11,13,11,11, 9,10,13, 9,11,10,11,12,10,12,10, - 13,10,10,13,10,11,11,12,12,13,13,12,13,13,11,11, - 11,10,13,13,11,13,13,13, 7, 8,10, 9,10, 8, 9,11, - 9,11,10,13,11,10,12, 8,10,11, 9,11,11,10,13,11, - 12,10,11,12,11,11,10,11,13,10,13,13,13,13,13,12, - 11,10,12,10,11,13,11,13,12,13,10,12,12,10,11,11, - 11,12,11,13,11,12,13,13,13, 9,12,13,10,13,13,11, - 13,11,13,11,12,13,12,13,10,11,13,12,11,10,11,13, - 13,13,12,13,12,11,13,11,13,13,11,13,12,11,13,13, - 13,13,13,13,13,12,13,13,13,13,13,12,12,13,13,13, - 13,13,13,13,13,10,10,13,11,13,13,12,12,11,12,13, - 12,13,13,13,11,11,13,13,12,12,13,13,11,13,11,12, - 13,13,13,11,13,13,11,13,13,13,13,13,13,12,13,12, - 13,13,13,13,13,13,13, 6, 8, 9, 8,10, 7, 9,10, 8, - 9,10,10,11, 9,11, 7, 8,11, 9,10,10,11,13,11,12, - 8, 9, 9, 8,10, 9, 8,10, 9,10,11,10,12,10,11, 9, - 8,10, 9,11,10,10,12,11,11,10,11,11,11,11,10,11, - 12,11,11,12,10,11,12,11,10,12,11,10,11,10,11,12, - 12,12, 8, 9,11, 9,10, 9, 9,11,10,10,10,11,11,12, - 12, 8, 9,11, 9,11,10,11,11,11,12,10,11,11,11,11, - 10,12,12,12,11,11,12,12,11,12, 9,11,12,10,12,11, - 11,11,12,11, 9, 9,11,10,12,11,11,12,10,12,10,12, - 12,12,12,10,11,12,10,12,11,11,12,12,12,10,12,11, - 10,12,10,11,12,11,12,11,12,12,11,12,11,12,12,11, - 12,11,12,12,12,12,11,11,11,11,12,11,12,11,12,11, - 12,11,12,11,12,11,11,12,12,11,11,11,11,12,12,10, - 10,12,11,11,10,11,11,11,12,12,11,12,12,11,10,11, - 12,12,11,12,12,12,12,12,12,12,11,11,12,12,11,12, - 12,12,12,12,12,12,12,11,12,12,12,12,12,11,12,12, - 12, + 2, 4, 4, 4, 6, 6, 4, 6, 6, 5, 7, 6, 7, 8, 8, 7, + 8, 8, 5, 6, 7, 7, 8, 8, 7, 8, 8, 5, 7, 7, 7, 8, + 8, 7, 8, 8, 7, 9, 8, 8, 9,10, 8,10, 9, 7, 8, 8, + 8,10, 9, 9, 9, 9, 5, 7, 7, 7, 8, 8, 7, 8, 8, 7, + 8, 8, 9, 9, 9, 8, 9,10, 7, 8, 9, 9, 9,10, 8,10, + 9, }; static float _vq_quantthresh_res0_256_128_1[] = { - -1.5, -0.5, 0.5, 1.5, + -0.5, 0.5, }; static long _vq_quantmap_res0_256_128_1[] = { - 4, 3, 0, 1, 2, + 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, - 5, - 5 + 3, + 3 }; static static_codebook _vq_book_res0_256_128_1 = { - 4, 625, + 4, 81, _vq_lengthlist_res0_256_128_1, - 1, -533725184, 1611661312, 3, 0, + 1, -535822336, 1611661312, 2, 0, _vq_quantlist_res0_256_128_1, NULL, &_vq_auxt_res0_256_128_1, diff --git a/lib/books/res0_256_128_2.vqh b/lib/books/res0_256_128_2.vqh index 61b6c6df..3bf1d8c7 100644 --- a/lib/books/res0_256_128_2.vqh +++ b/lib/books/res0_256_128_2.vqh @@ -1,13 +1,12 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * + * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -20,46 +19,75 @@ #include "codebook.h" static long _vq_quantlist_res0_256_128_2[] = { - 5, - 6, - 7, - 8, - 10, - 4, - 3, 2, + 1, + 3, 0, + 4, }; static long _vq_lengthlist_res0_256_128_2[] = { - 4, 4, 5, 5, 6, 5, 5, 5, 6, 5, 5, 6, 6, 7, 5, 6, - 6, 7, 6, 6, 7, 7, 8, 6, 7, 7, 8, 7, 7, 7, 7, 8, - 7, 7, 8, 8, 8, 8, 9, 9, 9, 8, 8, 8, 9, 5, 5, 6, - 6, 7, 5, 6, 6, 7, 6, 6, 7, 7, 8, 6, 7, 7, 8, 7, - 7, 7, 8, 8, 7, 7, 7, 8, 8, 8, 8, 9, 9, 8, 8, 9, - 9, + 5, 6, 6, 7, 7, 6, 7, 7, 8, 8, 6, 7, 7, 8, 8, 7, + 8, 8,10,10, 7, 8, 8,10,10, 6, 7, 7, 8, 8, 7, 8, + 8, 9, 9, 7, 8, 8, 9, 9, 8, 9, 9,11,11, 8, 9, 9, + 11,11, 6, 7, 7, 8, 8, 7, 8, 8, 9, 9, 7, 8, 8, 9, + 9, 8, 9, 9,11,10, 8, 9, 9,11,11, 8, 9, 9,10,10, + 9, 9, 9,11,11, 9, 9, 9,11,11,10,11,11,12,13,10, + 11,11,12,13, 8, 9, 9,10,10, 9, 9, 9,11,11, 9, 9, + 9,11,11,10,11,11,13,12,10,11,11,13,12, 6, 7, 7, + 9, 9, 7, 8, 8, 9, 9, 7, 8, 8, 9, 9, 9, 9, 9,11, + 11, 8, 9, 9,11,11, 7, 8, 8, 9, 9, 8, 9, 9,10,10, + 8, 9, 9,10,10, 9,10,10,11,12, 9,10,10,12,12, 7, + 8, 8, 9, 9, 8, 9, 8,10,10, 8, 9, 9,10,10, 9,10, + 10,12,11, 9,10,10,12,12, 9,10, 9,11,11, 9,10,10, + 12,12,10,10,10,12,12,11,11,12,13,13,11,12,12,14, + 14, 9, 9,10,11,11, 9,10,10,12,12,10,10,10,11,12, + 11,12,11,13,12,11,12,12,14,14, 6, 7, 7, 9, 8, 7, + 8, 8, 9, 9, 7, 8, 8, 9, 9, 9, 9, 9,11,11, 9, 9, + 9,11,11, 7, 8, 8, 9, 9, 8, 9, 9,10,10, 8, 8, 9, + 10,10, 9,10,10,12,12, 9,10,10,11,12, 7, 8, 8, 9, + 9, 8, 9, 9,10,10, 8, 9, 8,10,10, 9,10,10,12,12, + 9,10,10,12,11, 9,10, 9,11,11,10,10,10,12,12, 9, + 10,10,12,12,12,12,12,14,14,11,11,12,12,14, 9, 9, + 10,11,11, 9,10,10,12,12, 9,10,10,12,11,11,12,12, + 14,13,11,12,11,13,12, 8, 9, 9,10,11, 9,10,10,11, + 11, 9,10,10,11,11,11,12,12,13,13,11,11,11,13,13, + 9,10,10,12,11,10,10,10,12,12,10,11,10,13,12,11, + 12,12,14,14,11,12,12,14,14, 9, 9,10,11,12,10,10, + 10,12,12,10,10,10,12,12,12,12,12,14,13,11,12,12, + 13,13,11,12,11,13,13,11,12,12,14,14,12,12,12,14, + 13,13,14,14,14,15,13,14,14,15,16,11,11,12,13,13, + 11,12,11,14,14,12,12,13,14,13,13,14,13,16,13,14, + 14,14,15,16, 8, 9, 9,10,11, 9,10,10,11,11, 9,10, + 10,11,11,10,11,11,13,13,11,12,12,13,13, 9,10,10, + 11,11,10,10,10,12,12,10,10,10,12,12,11,12,12,14, + 14,12,12,12,14,14, 9,10,10,11,11,10,10,10,12,12, + 10,10,10,12,12,11,12,12,14,13,12,12,12,14,13,11, + 12,11,13,13,11,13,12,14,14,11,12,12,13,14,14,15, + 14,15,16,13,13,14,14,16,11,11,12,13,13,12,12,12, + 14,15,11,12,12,14,13,14,14,14,15,16,14,14,13,15, + 15, }; static float _vq_quantthresh_res0_256_128_2[] = { - -4, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 4, + -1.5, -0.5, 0.5, 1.5, }; static long _vq_quantmap_res0_256_128_2[] = { - 8, 7, 6, 5, 0, 1, 2, 3, - 4, + 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, - 9, - 9 + 5, + 5 }; static static_codebook _vq_book_res0_256_128_2 = { - 2, 81, + 4, 625, _vq_lengthlist_res0_256_128_2, - 1, -531365888, 1611661312, 4, 0, + 1, -533725184, 1611661312, 3, 0, _vq_quantlist_res0_256_128_2, NULL, &_vq_auxt_res0_256_128_2, diff --git a/lib/books/res0_256_128_3.vqh b/lib/books/res0_256_128_3.vqh index 5dda23b2..4a5d4b92 100644 --- a/lib/books/res0_256_128_3.vqh +++ b/lib/books/res0_256_128_3.vqh @@ -1,13 +1,12 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * + * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -20,62 +19,56 @@ #include "codebook.h" static long _vq_quantlist_res0_256_128_3[] = { - 14, - 15, - 16, - 17, - 19, - 22, - 25, - 28, - 13, - 12, - 11, - 9, 6, + 5, + 7, + 4, + 8, 3, + 9, + 2, + 10, + 1, + 11, 0, + 12, }; static long _vq_lengthlist_res0_256_128_3[] = { - 6, 6, 7, 6, 6, 7, 8,10, 6, 7, 6, 6, 7, 8,10, 7, - 7, 7, 7, 7, 7, 9,10, 7, 7, 7, 7, 7, 9,10, 7, 7, - 7, 7, 7, 8, 9,11, 7, 7, 7, 7, 8, 9,11, 7, 7, 7, - 7, 7, 7, 9,10, 7, 7, 7, 7, 7, 9,10, 7, 7, 7, 7, - 7, 7, 9,10, 7, 7, 7, 7, 7, 9,10, 8, 8, 8, 8, 8, - 8,10,11, 8, 8, 8, 8, 8,10,11,10,10,10, 9, 9,10, - 11,13,10,10, 9, 9,10,11,13,11,11,12,11,11,12,13, - 14,11,12,11,11,12,13,14, 7, 7, 7, 7, 7, 7, 9,10, - 7, 7, 7, 7, 7, 9,10, 7, 7, 7, 7, 7, 8, 9,11, 7, - 7, 7, 7, 8, 9,11, 7, 7, 7, 7, 7, 7, 9,10, 7, 7, - 7, 7, 7, 9,10, 7, 7, 7, 7, 7, 7, 9,10, 7, 7, 7, - 7, 7, 9,10, 8, 8, 8, 8, 8, 8,10,11, 8, 8, 8, 8, - 8,10,11,10,10,10, 9, 9,10,11,13,10,10, 9, 9,10, - 11,13,11,12,12,11,11,12,13,14,11,12,11,11,12,13, - 14, + 3, 4, 4, 5, 5, 6, 6, 8, 8,10,10,11,11, 4, 5, 4, + 6, 6, 7, 7, 9, 9,11,11,13,13, 4, 4, 5, 6, 6, 7, + 7,10, 9,11,11,12,12, 5, 6, 6, 8, 8, 9, 9,11,11, + 13,13,14,14, 5, 6, 6, 8, 8, 9, 9,11,11,12,13,14, + 14, 7, 7, 7, 9, 9,12,11,13,13,14,15,16,16, 6, 7, + 7, 9, 9,12,12,14,13,15,15,17,16, 9,10,10,12,12, + 14,14,15,15,16,16,16,18, 9,10,10,12,12,14,14,16, + 15,16,16,17,17,10,12,12,13,14,16,16,15,19,17,18, + 18,17,10,12,12,14,14,17,15,17,16,17,16,19,17,12, + 13,13,15,15,16,16,17,18,18,17,18,19,11,13,13,15, + 14,17,16,19,16,19,17,19,18, }; static float _vq_quantthresh_res0_256_128_3[] = { - -12.5, -9.5, -6.5, -4, -2.5, -1.5, -0.5, 0.5, - 1.5, 2.5, 4, 6.5, 9.5, 12.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_256_128_3[] = { - 14, 13, 12, 11, 10, 9, 8, 0, - 1, 2, 3, 4, 5, 6, 7, + 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, - 15, - 15 + 13, + 13 }; static static_codebook _vq_book_res0_256_128_3 = { - 2, 225, + 2, 169, _vq_lengthlist_res0_256_128_3, - 1, -528744448, 1611661312, 5, 0, + 1, -531103744, 1611661312, 4, 0, _vq_quantlist_res0_256_128_3, NULL, &_vq_auxt_res0_256_128_3, diff --git a/lib/books/res0_256_128_4.vqh b/lib/books/res0_256_128_4.vqh index 1049d6d3..7ded3f3c 100644 --- a/lib/books/res0_256_128_4.vqh +++ b/lib/books/res0_256_128_4.vqh @@ -1,13 +1,12 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * + * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -20,83 +19,541 @@ #include "codebook.h" static long _vq_quantlist_res0_256_128_4[] = { - 28, - 29, - 31, - 33, - 36, + 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, - 56, 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[] = { - 7, 7, 7, 7, 7, 8, 9, 9,10,10,11, 7, 7, 7, 7, 8, - 9, 9,10,10,11, 7, 7, 6, 7, 7, 8, 8, 9, 9,10,11, - 7, 6, 7, 7, 8, 8, 9, 9,10,11, 7, 7, 7, 7, 7, 8, - 8, 9, 9,10,11, 7, 7, 7, 7, 7, 8, 9, 9,10,11, 7, - 7, 7, 7, 7, 8, 9, 9,10,10,11, 7, 7, 7, 7, 8, 8, - 9, 9,10,11, 8, 8, 7, 7, 7, 8, 9, 9,10,10,11, 8, - 7, 7, 7, 8, 9, 9,10,10,11, 9, 9, 8, 8, 8, 9,10, - 10,11,11,12, 9, 8, 8, 8, 9,10,10,11,11,12,10,10, - 10,10,10,10,11,12,12,12,14,10,10, 9,10,10,11,12, - 12,13,14,11,10,10,10,11,11,12,13,13,15,16,10,10, - 10,11,11,13,13,14,14,15,12,12,11,12,12,13,13,14, - 15,15,19,11,12,12,12,12,14,15,16,16,18,13,13,13, - 13,13,14,14,16,15,17,17,13,13,13,13,14,15,16,17, - 17,18,15,14,15,14,14,15,16,17,19,19,19,14,14,14, - 16,16,16,16,16,17,18, 7, 7, 7, 7, 7, 8, 8, 9, 9, - 10,11, 7, 7, 7, 7, 8, 8, 9, 9,10,11, 7, 7, 6, 7, - 7, 7, 8, 9, 9,10,11, 7, 6, 7, 7, 7, 8, 9, 9,10, - 11, 7, 7, 7, 7, 7, 8, 8, 9,10,10,11, 7, 7, 7, 7, - 8, 8, 9, 9,10,11, 8, 8, 7, 7, 7, 8, 9, 9,10,10, - 11, 8, 7, 7, 7, 8, 9, 9,10,10,11, 9, 9, 9, 8, 9, - 9,10,10,11,12,12, 9, 8, 8, 8, 9,10,10,11,11,12, - 10,10,10,10,10,10,11,12,12,13,14,10,10,10,10,10, - 11,12,12,13,13,11,10,10,10,11,11,12,13,13,14,15, - 10,10,10,11,11,12,13,13,14,15,12,11,11,12,12,13, - 13,14,15,16,17,12,12,12,12,13,13,14,15,15,17,13, - 12,13,13,14,14,15,16,16,16,19,13,13,13,13,13,15, - 16,16,17,18,14,14,14,14,15,15,15,16,18,19,18,14, - 15,15,15,15,16,16,17,17,18, + 6, 6, 6, 7, 7, 7, 7, 7, 7, 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,10, + 9,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11, + 11,11,11,11,12,11,12,12,12,12,12,12,12,12,12,13, + 12, 7, 7, 7, 7, 7, 8, 7, 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,10, 9, 9,10,10,10,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,13,12,12,12,13,13,13, + 13,13, 7, 7, 7, 7, 7, 7, 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,10,10,10,10, + 10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11, + 11,12,11,11,12,12,12,12,12,12,13,12,13,13,13,13, + 13,13,13, 7, 7, 7, 8, 7, 8, 8, 8, 8, 8, 8, 8, 8, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, + 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,12,12,11, + 12,12,12,12,12,12,13,13,13,13,12,13,13,13,14,14, + 13,14,14,14, 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, 9, 9, + 9, 9, 9,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,12,12, + 12,12,12,12,12,12,13,13,13,13,12,13,13,13,13,13, + 14,13,14,14,13, 9, 9, 9, 9, 9, 9, 9,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,13,13,13,13, + 13,14,13,14,15,13,13,14,14,14,15,14,15,15,15,15, + 15,14,14,15,16,15, 9, 9, 9, 9, 9, 9, 9, 9, 9,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, + 12,12,12,12,12,12,12,12,12,13,12,13,12,13,13,13, + 13,13,14,13,13,13,14,14,14,14,14,14,14,15,14,15, + 15,14,14,15,15,17,16,10,10,10,10,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,12,13,12,12,13,12,13,13, + 13,13,13,13,13,13,13,14,13,13,14,13,14,13,14,14, + 14,14,15,15,15,15,15,15,15,15,16,14,15,16,15,16, + 15,17,17,15,16,16,15,17,10,10,10,10,10,11,10,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,13,12,13, + 13,13,13,13,13,13,13,13,13,13,13,13,14,14,14,14, + 14,14,14,14,15,15,15,15,14,14,15,15,15,15,15,15, + 15,16,16,16,16,17,16,16,17,11,11,11,11,11,11,12, + 12,12,12,12,12,12,12,12,12,13,12,13,12,13,13,13, + 13,13,13,13,13,13,13,14,13,13,13,14,13,13,13,13, + 13,13,13,13,13,14,14,14,14,14,15,14,15,14,15,15, + 15,16,15,15,15,15,16,15,16,15,17,16,15,15,16,17, + 17,15,16,16,18,17,16,16,17,18,11,11,11,11,11,12, + 11,12,12,12,12,12,12,12,12,13,12,13,12,12,13,12, + 13,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13, + 13,14,14,13,14,14,14,14,14,15,14,15,14,15,14,15, + 14,15,14,15,15,15,15,15,15,15,16,16,15,15,15,17, + 16,16,16,17,18,17,17,18,16,16,18,12,12,12,12,12, + 13,13,13,12,13,13,13,13,13,13,13,13,14,13,13,13, + 14,14,13,14,14,13,13,14,14,14,14,14,14,14,14,14, + 14,14,14,15,15,15,15,15,14,14,14,15,15,15,15,15, + 15,16,16,15,16,16,15,17,15,17,17,18,17,16,17,17, + 16,17,17,17,17,18,18,17,18,17,16,18,12,12,12,12, + 12,12,12,13,12,13,13,13,13,13,13,13,13,13,13,13, + 13,13,13,14,14,14,14,13,13,14,14,14,13,14,14,14, + 14,14,15,14,14,14,15,15,15,15,15,14,14,15,14,16, + 16,15,15,15,15,16,16,16,16,17,15,17,16,18,16,17, + 18,16,17,16,18,17,18,17,17,17,16,17,17,12,12,12, + 13,13,13,13,14,13,14,13,14,14,14,14,14,14,14,14, + 14,14,14,14,14,15,14,14,14,13,14,15,14,14,14,14, + 15,15,15,16,15,15,16,15,14,15,15,15,16,15,16,16, + 15,16,16,16,16,15,16,17,17,18,17,18,18,18,17,17, + 17,17,18,18,17,17,18,18,18,17,18,18,18,17,11,12, + 12,13,13,13,13,14,13,13,13,13,13,14,14,14,14,14, + 14,14,14,14,14,14,14,14,14,15,14,14,15,15,15,15, + 15,15,15,15,14,15,15,15,15,16,16,15,15,17,16,15, + 15,17,15,15,16,17,16,17,17,17,16,16,17,17,17,17, + 18,18,17,18,17,18,16,18,17,18,17,17,17,18,18,12, + 13,13,14,14,14,14,14,14,14,15,14,14,14,14,14,15, + 15,14,14,14,15,15,15,15,15,15,15,15,16,15,15,15, + 14,16,15,15,16,15,16,15,16,16,16,16,16,15,17,16, + 16,16,17,16,16,17,18,17,17,16,17,17,17,17,18,17, + 18,17,17,17,18,18,17,18,18,18,17,18,17,18,18,17, + 12,13,13,14,13,13,14,14,14,15,14,14,15,14,14,14, + 15,15,15,15,14,15,15,14,15,14,15,15,15,15,14,15, + 15,15,15,15,15,16,15,15,15,17,17,15,15,16,15,17, + 16,15,16,15,16,18,15,17,15,16,18,17,16,18,17,18, + 17,18,17,18,18,18,17,18,18,18,18,18,18,18,18,18, + 18,13,14,13,13,14,14,14,14,15,14,15,15,14,15,15, + 15,16,15,15,15,15,15,15,15,15,15,16,16,16,15,16, + 15,16,15,15,15,16,18,16,15,16,15,16,16,17,17,16, + 16,16,16,17,16,18,16,17,16,16,16,17,17,18,17,16, + 18,17,18,18,17,18,18,18,17,18,17,17,17,17,18,18, + 17,18,12,14,14,14,14,14,14,15,15,15,15,15,15,15, + 15,15,15,15,15,15,16,15,15,15,16,15,15,15,15,15, + 16,16,16,16,15,15,16,16,15,16,17,16,17,15,16,17, + 17,17,16,16,16,17,18,16,16,17,17,18,18,17,18,18, + 17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18, + 18,17,17,14,14,14,14,14,14,15,15,15,15,15,15,16, + 15,16,16,15,15,15,17,15,17,16,15,16,16,16,15,16, + 16,16,15,16,16,15,17,17,16,16,16,17,17,18,18,16, + 18,16,18,17,17,15,17,17,16,16,16,18,17,18,16,17, + 18,18,17,18,18,18,18,18,17,17,18,18,18,18,18,18, + 18,18,18,18,14,14,14,15,14,14,15,15,15,14,15,15, + 16,16,15,15,17,15,15,15,15,16,16,16,16,16,17,16, + 17,15,15,16,16,17,15,16,16,16,16,17,16,17,17,17, + 18,16,16,17,17,17,18,16,17,17,18,18,18,18,18,18, + 16,17,17,17,17,17,17,18,17,18,18,18,18,18,17,18, + 18,18,18,18,18,14,14,15,15,15,15,15,16,16,15,16, + 15,15,16,15,16,16,15,17,16,16,15,15,17,16,16,17, + 16,16,17,16,16,17,18,17,17,17,17,17,17,17,18,16, + 17,17,17,18,18,18,17,16,18,18,17,17,18,17,18,18, + 18,18,17,18,17,17,18,18,18,18,18,18,17,18,18,18, + 18,18,18,18,18,18,13,14,14,15,16,15,15,15,16,16, + 16,16,16,16,16,17,16,17,16,15,16,17,16,15,15,16, + 16,17,17,16,16,16,17,16,16,16,16,17,17,18,17,17, + 17,16,17,17,17,18,16,18,18,17,18,17,18,18,17,18, + 17,18,17,18,18,18,18,18,18,18,18,18,18,18,18,18, + 18,17,18,17,18,18,18,15,16,15,15,15,15,16,15,17, + 15,16,18,16,16,16,16,16,16,18,17,17,17,17,17,16, + 18,16,18,17,17,17,15,17,18,17,16,16,17,16,17,18, + 17,17,17,18,17,17,17,17,18,18,18,17,18,18,18,18, + 18,18,18,18,18,18,18,18,17,18,18,18,18,18,17,18, + 18,18,18,18,18,18,18,18,15,17,16,15,15,15,16,15, + 16,15,15,16,17,17,17,17,15,16,16,17,17,17,17,17, + 17,16,15,16,16,17,17,17,17,17,17,17,16,18,17,17, + 16,17,17,17,16,17,18,17,18,17,16,18,18,17,17,17, + 17,18,18,18,17,17,18,18,18,18,18,18,17,18,17,17, + 18,18,18,18,18,18,18,17,18,14,15,16,15,16,16,17, + 17,18,16,15,16,17,17,16,16,17,17,17,16,17,18,16, + 17,16,17,16,17,17,17,17,18,18,17,17,17,18,18,17, + 17,18,17,18,18,18,17,17,18,18,17,17,16,18,18,18, + 17,18,17,18,18,18,17,17,18,18,18,18,18,18,18,18, + 18,17,18,18,18,18,18,18,18,18,14,15,16,16,15,16, + 16,16,16,16,16,16,16,17,15,16,16,16,17,16,17,17, + 17,17,18,16,17,15,17,18,18,18,16,16,18,17,18,18, + 17,18,16,17,16,17,17,16,17,18,18,18,17,17,18,17, + 17,18,17,18,17,17,18,18,17,18,18,18,17,17,17,18, + 18,18,17,18,18,18,18,17,18,18,18,15,16,16,17,17, + 16,16,16,16,16,16,16,16,17,17,16,17,17,17,18,17, + 16,17,17,17,17,17,17,18,17,16,17,18,17,16,17,18, + 17,18,18,17,18,18,18,16,17,18,17,18,17,18,18,17, + 18,17,18,18,17,17,18,17,18,18,18,18,18,18,18,18, + 18,18,18,18,18,18,18,18,18,18,18,17,15,17,16,16, + 15,16,16,17,16,17,15,16,16,16,17,17,17,18,17,17, + 16,17,18,18,16,18,17,17,16,16,17,18,16,17,17,18, + 18,17,17,17,18,18,18,18,18,18,17,18,17,17,18,17, + 17,18,18,18,18,18,18,18,18,18,18,18,18,18,18,17, + 18,17,18,18,18,18,18,17,17,18,18,18,18,17,16,15, + 15,16,17,18,17,17,16,16,18,17,17,17,16,17,16,17, + 17,17,16,18,18,17,17,17,18,18,17,18,16,16,17,16, + 18,17,17,18,18,17,17,18,18,17,18,18,18,18,17,18, + 17,17,18,17,18,18,17,18,17,18,18,18,17,17,18,18, + 17,18,18,18,18,18,18,18,18,18,18,18,18,18,17,16, + 17,16,17,17,18,18,17,17,16,17,16,18,17,17,17,17, + 17,17,16,17,18,17,17,18,16,17,18,17,17,17,17,18, + 17,18,17,17,16,17,18,17,17,18,18,18,17,17,17,17, + 18,17,17,18,18,18,18,17,17,18,18,18,18,18,18,18, + 18,17,18,18,18,18,18,18,18,18,18,18,18,18,18,16, + 17,17,17,17,17,17,17,17,18,16,17,16,18,17,17,17, + 17,17,18,17,17,18,17,18,16,17,18,18,18,17,17,18, + 18,18,17,18,18,17,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,18,18, + 16,17,16,18,16,18,17,17,17,16,16,17,16,18,16,18, + 18,18,17,17,16,17,18,17,18,18,18,17,18,16,17,17, + 17,18,18,18,18,18,18,18,17,18,17,18,18,18,17,18, + 18,18,18,18,17,18,17,18,18,17,18,18,17,18,18,18, + 18,18,17,18,18,18,17,18,18,18,18,18,18,18,18,18, + 18,16,17,18,16,18,17,17,17,16,16,18,17,17,17,16, + 16,18,17,17,16,17,17,18,16,18,17,18,17,18,17,17, + 17,17,18,18,18,18,17,18,18,18,18,18,18,18,18,18, + 17,18,18,18,18,18,18,17,18,18,18,18,18,18,17,18, + 18,18,18,18,18,18,18,18,18,17,18,18,18,18,18,18, + 18,18,16,17,17,17,17,17,18,17,18,18,17,17,17,18, + 17,18,16,17,17,17,17,18,18,18,17,18,18,18,18,18, + 17,18,18,18,17,18,18,18,18,18,18,18,17,18,18,18, + 18,18,18,18,18,18,17,18,18,18,18,17,18,18,17,18, + 18,18,17,18,18,18,18,17,18,18,18,18,18,18,18,18, + 18,18,18,17,17,17,17,16,16,18,16,17,16,18,18,17, + 17,18,17,18,18,18,18,17,18,17,17,17,18,17,18,18, + 18,18,18,18,18,18,17,18,18,18,18,18,17,17,18,18, + 18,18,18,17,18,18,17,18,18,18,18,18,17,18,18,18, + 18,18,18,18,18,18,18,18,18,18,17,18,18,18,18,18, + 18,18,18,18,17,17,16,17,17,17,17,17,17,17,18,17, + 18,17,17,17,17,18,17,17,16,17,18,17,17,18,18,18, + 17,17,17,18,18,18,18,17,18,18,17,17,17,17,18,18, + 18,18,18,18,18,18,18,18,18,18,18,17,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,17,17,16,17,16,18,17,18,18,17,16, + 18,17,18,17,17,18,18,18,17,18,18,18,17,18,17,18, + 18,17,18,18,18,17,18,18,18,18,18,18,17,18,18,17, + 18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,17, + 18,18,18,18,18,18,17,18,18,18,18,18,18,18,18,18, + 18,18,18,18,17,18,16,17,17,17,18,16,17,18,17,18, + 16,17,18,18,18,17,17,17,18,18,18,18,18,16,17,18, + 18,18,17,18,18,18,18,18,18,18,18,18,17,18,18,18, + 18,18,18,18,18,17,17,18,18,17,18,17,18,18,18,18, + 18,18,18,18,17,17,18,18,18,18,18,18,18,18,18,18, + 18,18,18,18,18,18,18,16,17,17,17,17,17,17,16,17, + 18,17,17,17,18,18,18,18,18,18,17,18,18,18,18,17, + 17,17,17,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,18,18,18,17,18, + 18,18,18,18,18,18,18,18,17,17,18,18,16,18,17,17, + 18,17,17,18,18,18,17,17,17,17,18,18,18,18,17,17, + 17,17,18,18,18,18,17,18,17,18,17,18,18,18,17,18, + 18,17,18,18,18,18,18,18,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,18,18,18,18,18,17,18,16,17,17,17,18, + 18,17,18,17,18,17,18,17,18,18,18,17,18,18,16,18, + 18,17,18,18,17,17,18,18,18,17,18,18,17,18,18,17, + 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,18,18,18,17,16,18,17,17,17, + 18,18,18,17,18,17,18,17,18,18,18,18,17,18,18,18, + 18,18,18,18,17,17,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,18,18,18,18,18,18,17,18,18,18, + 18,18,18,18,18,18,18,18,18,18,18,17,17,17,18,18, + 18,17,17,18,18,18,18,17,18,18,18,18,18,18,18,18, + 18,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,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,17,17,18,18, + 17,17,17,18,17,18,18,17,18,18,17,18,18,18,18,18, + 18,18,18,17,18,18,17,18,18,17,18,18,18,18,18,18, + 17,18,17,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,18,18,18,18,18,17,18,18, + 18,17,18,18,17,18,18,18,17,18,18,18,18,18,18,18, + 18,18,18,17,18,18,18,17,18,17,18,17,18,18,18,18, + 18,18,18,18,17,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, + 17,18,18,18,18,18,18,18,18,18,18,18,18,18,17,18, + 17,17,18,17,17,18,18,18,18,17,18,18,18,17,18,18, + 18,18,18,18,18,18,17,18,17,18,18,18,18,17,18,18, + 18,18,18,18,18,18,18,18,18,18,18,17,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,18,18,18,17, + 18,18,18,18,17,17,18,18,18,18,18,18,17,18,18,18, + 18,18,18,18,18,18,18,18,17,18,18,18,18,18,17,18, + 17,18,18,17,18,18,17,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,18,18,18,18,18,18,18, + 17,18,18,18,18,18,17,17,17,17,18,18,18,17,18,18, + 17,18,18,18,18,18,17,18,18,18,18,18,18,18,17,17, + 17,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,18,18,18, + 18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18, + 18,18,18,18,17,18,18,18,17,18,18,18,17,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,18,18,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,17,18,17,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,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, + 18,18,18,18,17,18,17,18,17,18,17,18,18,18,17,17, + 18,17,18,18,18,17,18,18,18,18,17,18,18,18,18,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,18,18,18,18,18,18,18,18,18, + 18,18,18,18,18,16,18,17,18,17,18,18,18,18,18,17, + 18,17,18,17,18,18,18,18,18,18,18,18,18,18,18,18, + 18,18,18,18,18,18,18,18,18,17,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, + 18,18,18,18,18,18,17,18,17,17,18,18,18,18,18,18, + 18,18,18,18,18,17,18,18,18,17,18,18,18,17,18,18, + 18,17,17,18,18,17,18,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,18, + 18,18,18,18,18,18,18,17,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,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, + 18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18, + 18,18,18,17,18,17,18,18,17,18,17,18,18,18,18,18, + 18,17,18,18,18,18,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,18,18, + 18,18,18,18,18,18,18,18,17,18,18,18,17,18,18,18, + 18,17,18,18,17,18,18,18,18,18,18,18,18,18,17,18, + 18,17,18,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,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,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,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,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,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,18,18,18, + 18,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,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,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,18,18,18,18,18,18,17,17,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,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,17,18,18,18,18, + 18,18,18,18,18,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,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,18,18,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,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,18,18,18,18, + 18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18, + 17,18,18,17,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,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,18,18,18,18,18,18, + 17,18,18,17,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,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,18,18,18,18, + 18,18,18,18,16,18,18,18,17,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,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,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,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,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,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,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,18,18,18,18, + 18,18,18,18,18,18,18,18,17,17,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, + 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,18,18,18,18,18,18,18,18,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,18,18,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,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,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, + 18,18,18,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,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,18,18,18,18,18,18,18,18,18,18,18,18,17,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,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,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,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,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,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,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,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,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,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, + 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,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,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,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,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,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,18,18,18,18,18,18,18,18,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,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,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,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,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, }; static float _vq_quantthresh_res0_256_128_4[] = { - -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, + -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[] = { - 20, 19, 18, 17, 16, 15, 14, 13, - 12, 11, 0, 1, 2, 3, 4, 5, - 6, 7, 8, 9, 10, + 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, - 21, - 21 + 81, + 81 }; static static_codebook _vq_book_res0_256_128_4 = { - 2, 441, + 2, 6561, _vq_lengthlist_res0_256_128_4, - 1, -526647296, 1611661312, 6, 0, + 1, -525074432, 1611661312, 7, 0, _vq_quantlist_res0_256_128_4, NULL, &_vq_auxt_res0_256_128_4, diff --git a/lib/books/res0_256_128_5.vqh b/lib/books/res0_256_128_5.vqh index 8c261ed8..27f566cc 100644 --- a/lib/books/res0_256_128_5.vqh +++ b/lib/books/res0_256_128_5.vqh @@ -1,13 +1,12 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * + * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -20,101 +19,424 @@ #include "codebook.h" static long _vq_quantlist_res0_256_128_5[] = { - 102, - 103, - 104, - 105, - 107, - 110, - 113, - 116, - 119, - 122, - 126, - 130, - 133, - 137, - 141, - 145, + 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, - 204, 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_256_128_5[] = { - 4, 4, 4, 4, 3, 4, 5, 6, 7, 7, 8, 9, 8, 8, 9, 9, - 10,10,11,11,13,13,14,13,13,14,14,12, 4, 4, 4, 3, - 4, 5, 5, 7, 7, 8, 9, 7, 8, 9, 9,10,10,11,11,12, - 13,13,13,14,14,14,12, + 3, 3, 3, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 7, 8, 7, + 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, + 9, 9, 9, 9, 9,10, 9,10, 9,10,10,10,10,10,10,10, + 11,11,11,11,11,11,11,12,11,12,12,12,12,12,12,12, + 13, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9,10, + 9, 9,10,10,10,10,10,10,10,10,11,11,11,11,11,10, + 11,12,11,12,11,13,11,13,12,13,12,13,12,13,12,14, + 12,13,12,13,13,12,13,14,14,15,12,15,14,13,12,15, + 14,13,13,14,14,15,14,14,14,14,14,14,14,14,13,15, + 14,14,14,15,15,15,14,15,15,14,14,14,15,15,15,14, + 15,15,14,15,15,14,15,15,15,14,15,15,14,15,15,15, + 15,15,15,15,15,15,15,15,14,15,15,15,15,15,14,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,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,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,15,15,15,15, }; static float _vq_quantthresh_res0_256_128_5[] = { - -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.5, -1.5, -0.5, 0.5, 1.5, 2.5, 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, + -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_256_128_5[] = { - 54, 53, 52, 51, 50, 49, 48, 47, - 46, 45, 44, 43, 42, 41, 40, 39, - 38, 37, 36, 35, 34, 33, 32, 31, - 30, 29, 28, 0, 1, 2, 3, 4, - 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, + 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_256_128_5 = { _vq_quantthresh_res0_256_128_5, _vq_quantmap_res0_256_128_5, - 55, - 55 + 301, + 301 }; static static_codebook _vq_book_res0_256_128_5 = { - 1, 55, + 1, 301, _vq_lengthlist_res0_256_128_5, - 1, -522616832, 1611661312, 8, 0, + 1, -520962048, 1611661312, 9, 0, _vq_quantlist_res0_256_128_5, NULL, &_vq_auxt_res0_256_128_5, diff --git a/lib/books/res0_256_128aux.vqh b/lib/books/res0_256_128aux.vqh index 2740ce44..a12530ac 100644 --- a/lib/books/res0_256_128aux.vqh +++ b/lib/books/res0_256_128aux.vqh @@ -20,13 +20,91 @@ #include "codebook.h" static long _huff_lengthlist_res0_256_128aux[] = { - 10,13,16,16,16,16,13,10,11,16,13,12,16, 9, 6, 7, - 11,12,15, 9, 4, 2, 6,11,11, 9, 5, 2, 4, 8,10, 9, - 8, 2, 5, 9, + 10,17,17,17,17,16,12,15,16,16,16,16,14,16,16,16, + 16,16,13,16,16,16,16,16,14,16,16,16,16,16,16,16, + 16,16,16,16,10,15,16,16,16,16,11,13,16,16,16,16, + 15,15,15,16,16,16,15,16,16,16,16,16,15,16,16,16, + 16,16,16,16,16,16,16,16,12,16,16,16,16,16,13,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,12,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, + 12,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, 6,12,15,16,15,16, 9,12, + 15,16,16,16,16,14,16,16,16,16,13,16,16,16,16,16, + 13,16,16,16,16,16,16,16,16,16,16,16, 5,10,13,14, + 16,16, 6, 6, 9,12,15,16,11, 9,10,13,16,16,13,13, + 12,14,16,16,14,16,16,16,16,16,16,16,16,16,16,16, + 9,13,15,16,16,16, 8, 8, 9,13,15,16,11, 8, 8,11, + 16,16,12,11,11,12,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,11,14,16,16,16,16,11,11,13,15,16,16, + 13,10,11,13,16,16,12,13,12,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,12,16,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,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 6,12,15,16,16,16, 9,11,15,16,16,16,15,15,14,16, + 16,16,15,16,15,16,16,16,14,16,16,16,16,16,16,16, + 16,16,16,16, 4, 9,12,13,16,16, 5, 5, 8,10,13,16, + 11, 7, 8,10,14,16,13,11,10,12,16,16,15,16,16,16, + 16,16,16,16,16,16,16,16, 8,11,16,15,16,16, 6, 6, + 7,10,16,16,10, 6, 6, 8,16,16,13, 9, 8,10,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,10,14,15,16, + 16,16, 9, 9,10,12,16,16,11, 8, 8,11,16,16,12,11, + 10,12,15,16,15,16,16,16,16,16,16,16,16,16,16,16, + 13,16,16,16,16,16,16,15,16,16,16,16,16,15,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, 7,13,16,16,16,16,10,11, + 16,15,16,16,15,14,16,16,16,16,16,15,15,14,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16, 6,10,13,14, + 16,16, 7, 7,10,11,14,16,11, 9,10,13,16,16,13,12, + 12,13,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 8,12,16,15,16,16, 8, 7, 9,12,15,16,11, 8, 8,11, + 16,16,14,11,10,12,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,11,15,15,16,16,16,10, 9,11,13,16,16, + 12,10,10,13,16,16,14,12,12,13,16,16,15,16,16,16, + 16,16,16,16,16,16,16,16,14,15,16,16,16,16,16,14, + 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, + 10,13,16,16,16,16,12,13,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,12,14,16,16,16,16,12,11,15,13,16,16, + 16,13,10,11,16,16,14,13,11,11,16,16,15,16,16,15, + 16,16,16,16,16,16,16,16,13,16,16,15,15,16,13,10, + 8, 8,13,16,14, 7, 4, 5,11,16,12, 7, 5, 6,12,16, + 15,12,12,13,14,16,16,16,16,16,16,16,14,15,16,13, + 15,16,14,10, 7, 7,11,15,14, 6, 3, 4,10,16,12, 7, + 5, 5,11,16,15,11,11,11,16,16,16,16,16,16,16,16, + 16,16,15,14,15,16,16,14,11,11,13,16,16,11, 8, 9, + 12,16,15,11, 9,10,14,16,16,15,15,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,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,16,16,15,16,16,16,16,13,14,16,16,15,15, + 13,14,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 15,16,16,16,16,16,16,13,11,12,15,16,15,11, 8, 9, + 15,16,15,11, 9,10,14,16,16,15,14,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16,16,16,13,11,10,15,16, + 15,11, 7, 8,13,16,15,11, 8, 9,14,16,15,15,14,13, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 15,14,15,16,16,15,12,12,14,16,16,15,13,13,16,16, + 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,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_256_128aux = { - 2, 36, + 4, 1296, _huff_lengthlist_res0_256_128aux, 0, 0, 0, 0, 0, NULL, diff --git a/lib/books/res0_350_1024_1.vqh b/lib/books/res0_350_1024_1.vqh deleted file mode 100644 index 32f3f55b..00000000 --- a/lib/books/res0_350_1024_1.vqh +++ /dev/null @@ -1,100 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * - * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * - * * - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_350_1024_1_VQH_ -#define _V_res0_350_1024_1_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_350_1024_1[] = { - 2, - 3, - 4, - 1, - 0, -}; - -static long _vq_lengthlist_res0_350_1024_1[] = { - 2, 5, 8, 5, 8, 5, 7, 9, 7, 9, 9,10,11,10,11, 5, - 7, 9, 7, 9, 9,10,12,10,11, 5, 7, 9, 7, 9, 7, 8, - 10, 8,10,10,11,12,11,12, 7, 8,10, 8,10,10,11,12, - 11,12, 9,10,12,10,12,10,11,13,11,13,12,13,14,13, - 14,10,11,13,11,13,12,13,15,13,14, 6, 7,10, 7,10, - 7, 8,10, 8,10,10,11,12,11,12, 7, 8,10, 8,10,10, - 11,12,11,12, 9,10,12,10,12,10,11,13,11,13,12,13, - 14,13,14,10,11,13,11,12,12,13,14,13,14, 5, 7,10, - 7,10, 7, 8,10, 8,10,10,11,12,11,13, 7, 8,11, 8, - 10,10,11,12,11,12, 7, 8,11, 8,11, 8, 9,11, 9,11, - 11,12,13,12,14, 8, 9,11, 9,12,11,12,13,12,13,10, - 11,13,11,13,11,12,13,12,13,13,14,14,14,15,11,12, - 13,12,13,13,13,15,14,15, 7, 8,11, 8,11, 8, 9,11, - 9,11,11,12,13,11,13, 8, 9,11,10,11,11,12,13,12, - 13,10,11,13,11,13,11,12,13,12,14,13,13,15,14,15, - 11,12,13,12,14,13,13,14,13,15, 9,10,12,10,12,10, - 11,13,11,13,12,13,15,13,15,10,11,13,11,13,13,13, - 14,13,15,10,11,13,11,13,11,12,14,12,13,13,14,15, - 14,15,11,12,14,12,13,13,13,15,14,15,12,13,15,13, - 14,13,13,15,14,15,15,15,15,15,16,13,14,15,14,15, - 15,16,17,15,16,10,11,13,11,13,11,12,13,12,13,13, - 14,15,13,15,11,12,14,12,13,13,14,15,13,15,12,13, - 14,13,15,13,13,15,14,15,14,15,16,15,16,13,14,15, - 14,15,15,15,17,15,16, 5, 7,10, 7,10, 7, 8,10, 8, - 10,10,11,12,11,12, 7, 8,10, 8,11,10,11,13,11,13, - 7, 8,11, 8,11, 8, 9,11, 9,11,11,12,13,11,13, 9, - 9,11,10,11,11,12,13,12,13,10,11,13,11,13,11,12, - 13,12,13,13,13,15,13,15,11,12,14,12,13,13,13,14, - 13,15, 7, 9,11, 8,11, 8, 9,12, 9,11,11,12,14,12, - 13, 8,10,11, 9,11,11,12,13,12,13,10,11,13,11,13, - 11,12,14,12,14,13,13,15,13,15,11,12,13,12,13,13, - 13,15,13,15, 9,10,12,10,12,10,11,13,11,13,12,13, - 14,13,14,10,11,13,11,13,12,13,14,13,15,10,11,13, - 11,13,11,12,13,12,13,13,14,15,14,15,11,12,14,12, - 13,13,13,15,14,15,12,13,14,13,14,13,13,15,14,15, - 15,16,16,15,15,13,14,15,14,16,15,16,16,15,17,10, - 11,13,11,13,11,12,13,12,13,13,14,15,13,15,11,12, - 14,12,13,13,13,15,14,15,12,13,14,13,15,13,13,15, - 14,14,15,15,16,15,16,13,13,15,13,15,15,15,17,14, - 16, -}; - -static float _vq_quantthresh_res0_350_1024_1[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap_res0_350_1024_1[] = { - 4, 3, 0, 1, 2, -}; - -static encode_aux_threshmatch _vq_auxt_res0_350_1024_1 = { - _vq_quantthresh_res0_350_1024_1, - _vq_quantmap_res0_350_1024_1, - 5, - 5 -}; - -static static_codebook _vq_book_res0_350_1024_1 = { - 4, 625, - _vq_lengthlist_res0_350_1024_1, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist_res0_350_1024_1, - NULL, - &_vq_auxt_res0_350_1024_1, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_350_1024_2.vqh b/lib/books/res0_350_1024_2.vqh deleted file mode 100644 index 487606f4..00000000 --- a/lib/books/res0_350_1024_2.vqh +++ /dev/null @@ -1,71 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * - * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * - * * - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_350_1024_2_VQH_ -#define _V_res0_350_1024_2_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_350_1024_2[] = { - 5, - 6, - 7, - 8, - 10, - 4, - 3, - 2, - 0, -}; - -static long _vq_lengthlist_res0_350_1024_2[] = { - 4, 5, 6, 6, 7, 5, 6, 6, 7, 5, 5, 6, 6, 7, 5, 6, - 6, 7, 6, 6, 6, 7, 8, 6, 6, 7, 8, 6, 6, 7, 7, 8, - 6, 7, 7, 8, 7, 7, 8, 8, 9, 7, 8, 8, 9, 5, 5, 6, - 6, 7, 5, 6, 6, 7, 6, 6, 7, 7, 8, 6, 6, 7, 8, 6, - 6, 7, 7, 8, 6, 7, 7, 8, 7, 7, 8, 8, 9, 7, 8, 8, - 9, -}; - -static float _vq_quantthresh_res0_350_1024_2[] = { - -4, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 4, -}; - -static long _vq_quantmap_res0_350_1024_2[] = { - 8, 7, 6, 5, 0, 1, 2, 3, - 4, -}; - -static encode_aux_threshmatch _vq_auxt_res0_350_1024_2 = { - _vq_quantthresh_res0_350_1024_2, - _vq_quantmap_res0_350_1024_2, - 9, - 9 -}; - -static static_codebook _vq_book_res0_350_1024_2 = { - 2, 81, - _vq_lengthlist_res0_350_1024_2, - 1, -531365888, 1611661312, 4, 0, - _vq_quantlist_res0_350_1024_2, - NULL, - &_vq_auxt_res0_350_1024_2, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_350_1024_3.vqh b/lib/books/res0_350_1024_3.vqh deleted file mode 100644 index 5b8b445b..00000000 --- a/lib/books/res0_350_1024_3.vqh +++ /dev/null @@ -1,87 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * - * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * - * * - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_350_1024_3_VQH_ -#define _V_res0_350_1024_3_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_350_1024_3[] = { - 14, - 15, - 16, - 17, - 19, - 22, - 25, - 28, - 13, - 12, - 11, - 9, - 6, - 3, - 0, -}; - -static long _vq_lengthlist_res0_350_1024_3[] = { - 5, 6, 6, 6, 7, 8, 9,11, 6, 6, 6, 7, 8, 9,11, 6, - 6, 7, 6, 7, 8,10,11, 6, 7, 7, 7, 8,10,11, 6, 7, - 7, 7, 7, 8,10,12, 7, 7, 7, 7, 8,10,12, 6, 7, 7, - 7, 7, 8,10,12, 7, 7, 7, 7, 8,10,12, 7, 7, 7, 7, - 7, 8,10,12, 7, 7, 7, 7, 8,10,12, 8, 8, 8, 8, 8, - 9,11,12, 8, 8, 8, 8, 9,11,12,10,10,10,10,10,11, - 12,14,10,10,10,10,11,12,14,11,12,12,12,12,13,14, - 15,12,12,12,12,13,14,15, 6, 6, 7, 6, 7, 8,10,11, - 6, 7, 7, 7, 8,10,11, 6, 7, 7, 7, 7, 8,10,12, 7, - 7, 7, 7, 8,10,12, 6, 7, 7, 7, 7, 8,10,12, 7, 7, - 7, 7, 8,10,12, 7, 7, 7, 7, 7, 8,10,12, 7, 7, 7, - 7, 8,10,12, 8, 8, 8, 8, 8, 9,11,12, 8, 8, 8, 8, - 9,11,13,10,10,10,10,10,11,12,14,10,10,10,10,11, - 12,14,11,12,12,12,12,13,14,15,12,12,12,12,13,14, - 15, -}; - -static float _vq_quantthresh_res0_350_1024_3[] = { - -12.5, -9.5, -6.5, -4, -2.5, -1.5, -0.5, 0.5, - 1.5, 2.5, 4, 6.5, 9.5, 12.5, -}; - -static long _vq_quantmap_res0_350_1024_3[] = { - 14, 13, 12, 11, 10, 9, 8, 0, - 1, 2, 3, 4, 5, 6, 7, -}; - -static encode_aux_threshmatch _vq_auxt_res0_350_1024_3 = { - _vq_quantthresh_res0_350_1024_3, - _vq_quantmap_res0_350_1024_3, - 15, - 15 -}; - -static static_codebook _vq_book_res0_350_1024_3 = { - 2, 225, - _vq_lengthlist_res0_350_1024_3, - 1, -528744448, 1611661312, 5, 0, - _vq_quantlist_res0_350_1024_3, - NULL, - &_vq_auxt_res0_350_1024_3, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_350_1024_4.vqh b/lib/books/res0_350_1024_4.vqh deleted file mode 100644 index 58877ab4..00000000 --- a/lib/books/res0_350_1024_4.vqh +++ /dev/null @@ -1,108 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * - * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * - * * - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_350_1024_4_VQH_ -#define _V_res0_350_1024_4_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_350_1024_4[] = { - 28, - 29, - 31, - 33, - 36, - 39, - 42, - 45, - 48, - 52, - 56, - 27, - 25, - 23, - 20, - 17, - 14, - 11, - 8, - 4, - 0, -}; - -static long _vq_lengthlist_res0_350_1024_4[] = { - 5, 5, 6, 7, 8, 9, 9, 9,10,10,11, 6, 6, 7, 8, 8, - 9, 9,10,10,11, 6, 6, 6, 7, 7, 8, 9, 9,10,10,12, - 6, 6, 7, 7, 8, 9, 9,10,10,11, 6, 6, 7, 7, 8, 8, - 9, 9,10,11,12, 6, 7, 7, 8, 8, 9, 9,10,11,12, 7, - 7, 7, 7, 8, 9,10,10,10,11,13, 7, 7, 7, 8, 9, 9, - 10,10,11,13, 8, 8, 8, 8, 8, 9,10,10,11,12,13, 8, - 8, 8, 8, 9,10,10,11,12,13, 9, 8, 9, 9, 9,10,11, - 11,12,12,14, 8, 9, 9, 9,10,10,11,12,12,14,10, 9, - 9,10,10,11,11,12,12,13,14, 9, 9,10,10,11,11,12, - 12,13,14, 9, 9,10,10,10,11,12,12,13,14,15, 9,10, - 10,10,11,12,13,13,14,15,10,10,10,11,11,12,12,13, - 14,14,15,10,10,11,11,12,12,13,13,14,15,11,11,11, - 12,12,13,13,14,14,15,16,11,11,12,12,13,13,14,14, - 14,15,12,12,13,13,13,14,15,15,15,16,17,12,13,13, - 13,14,14,15,15,16,16, 6, 6, 6, 7, 7, 8, 9, 9,10, - 10,12, 6, 6, 7, 7, 8, 9, 9,10,10,11, 6, 6, 7, 7, - 8, 8, 9, 9,10,11,12, 6, 7, 7, 8, 8, 9, 9,10,11, - 12, 7, 7, 7, 7, 8, 9, 9,10,10,11,13, 7, 7, 7, 8, - 9, 9,10,10,11,12, 8, 8, 8, 8, 8, 9,10,10,11,12, - 13, 8, 8, 8, 8, 9,10,10,11,12,13, 9, 8, 9, 9, 9, - 10,11,11,12,12,13, 9, 9, 9, 9,10,11,11,12,12,14, - 10, 9, 9,10,10,11,11,12,12,13,14, 9, 9,10,10,11, - 11,12,12,13,14, 9, 9,10,10,10,11,12,13,13,14,15, - 9,10,10,10,11,12,13,13,14,15,10,10,10,11,11,12, - 12,13,14,14,15,10,11,11,11,12,12,13,13,14,15,11, - 11,11,12,12,13,13,14,14,15,16,11,11,12,12,13,13, - 14,14,14,16,12,12,13,13,13,14,15,15,15,16,16,12, - 13,13,13,14,14,15,15,16,17, -}; - -static float _vq_quantthresh_res0_350_1024_4[] = { - -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, -}; - -static long _vq_quantmap_res0_350_1024_4[] = { - 20, 19, 18, 17, 16, 15, 14, 13, - 12, 11, 0, 1, 2, 3, 4, 5, - 6, 7, 8, 9, 10, -}; - -static encode_aux_threshmatch _vq_auxt_res0_350_1024_4 = { - _vq_quantthresh_res0_350_1024_4, - _vq_quantmap_res0_350_1024_4, - 21, - 21 -}; - -static static_codebook _vq_book_res0_350_1024_4 = { - 2, 441, - _vq_lengthlist_res0_350_1024_4, - 1, -526647296, 1611661312, 6, 0, - _vq_quantlist_res0_350_1024_4, - NULL, - &_vq_auxt_res0_350_1024_4, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_350_1024_5.vqh b/lib/books/res0_350_1024_5.vqh deleted file mode 100644 index 3ff254f8..00000000 --- a/lib/books/res0_350_1024_5.vqh +++ /dev/null @@ -1,126 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * - * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * - * * - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_350_1024_5_VQH_ -#define _V_res0_350_1024_5_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_350_1024_5[] = { - 102, - 103, - 104, - 105, - 107, - 110, - 113, - 116, - 119, - 122, - 126, - 130, - 133, - 137, - 141, - 145, - 149, - 153, - 158, - 163, - 168, - 173, - 174, - 180, - 186, - 192, - 198, - 204, - 101, - 100, - 99, - 97, - 94, - 91, - 88, - 85, - 82, - 78, - 74, - 71, - 67, - 63, - 59, - 55, - 51, - 46, - 41, - 36, - 31, - 30, - 24, - 18, - 12, - 6, - 0, -}; - -static long _vq_lengthlist_res0_350_1024_5[] = { - 3, 4, 5, 4, 4, 4, 5, 5, 6, 6, 6, 7, 7, 7, 8, 9, - 9, 9,10,10,11,12,12,12,12,13,13, 9, 4, 5, 4, 4, - 4, 5, 5, 5, 6, 6, 7, 7, 7, 8, 9, 9, 9,10,10,11, - 12,12,11,12,12,12, 9, -}; - -static float _vq_quantthresh_res0_350_1024_5[] = { - -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.5, -1.5, -0.5, 0.5, 1.5, 2.5, 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, -}; - -static long _vq_quantmap_res0_350_1024_5[] = { - 54, 53, 52, 51, 50, 49, 48, 47, - 46, 45, 44, 43, 42, 41, 40, 39, - 38, 37, 36, 35, 34, 33, 32, 31, - 30, 29, 28, 0, 1, 2, 3, 4, - 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, -}; - -static encode_aux_threshmatch _vq_auxt_res0_350_1024_5 = { - _vq_quantthresh_res0_350_1024_5, - _vq_quantmap_res0_350_1024_5, - 55, - 55 -}; - -static static_codebook _vq_book_res0_350_1024_5 = { - 1, 55, - _vq_lengthlist_res0_350_1024_5, - 1, -522616832, 1611661312, 8, 0, - _vq_quantlist_res0_350_1024_5, - NULL, - &_vq_auxt_res0_350_1024_5, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_350_1024aux.vqh b/lib/books/res0_350_1024aux.vqh deleted file mode 100644 index f3cc8e52..00000000 --- a/lib/books/res0_350_1024aux.vqh +++ /dev/null @@ -1,39 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * - * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * - * * - ******************************************************************** - - function: static codebook autogenerated by huff/huffbuld - - ********************************************************************/ - -#ifndef _V_res0_350_1024aux_VQH_ -#define _V_res0_350_1024aux_VQH_ -#include "codebook.h" - -static long _huff_lengthlist_res0_350_1024aux[] = { - 8,12,15,14,15,14,10, 7, 9, 9,11,12,12, 7, 3, 4, - 8,11,12, 8, 3, 1, 6, 9,12,10, 8, 5, 5, 8,14,11, - 10, 6, 5, 6, -}; - -static static_codebook _huff_book_res0_350_1024aux = { - 2, 36, - _huff_lengthlist_res0_350_1024aux, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_350_128_1.vqh b/lib/books/res0_350_128_1.vqh deleted file mode 100644 index 767f7da8..00000000 --- a/lib/books/res0_350_128_1.vqh +++ /dev/null @@ -1,100 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * - * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * - * * - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_350_128_1_VQH_ -#define _V_res0_350_128_1_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_350_128_1[] = { - 2, - 3, - 4, - 1, - 0, -}; - -static long _vq_lengthlist_res0_350_128_1[] = { - 3, 6,10, 7, 9, 6, 8,10, 9,11,11, 9,11,10,11, 6, - 8, 9, 9,10, 9,10,11,10,11, 6,11,11, 9,11, 8, 9, - 11, 9,11, 9,11,11,10,11, 7, 9,11, 9,10, 9, 9,11, - 10,11, 8, 8,11,10,11,11,10,11,11,11,11,10,10,10, - 10,10, 9,10,10,10,10,10,10,10,10, 7, 8, 8, 8, 9, - 8, 8,10, 9, 9, 9,10,10,10,10, 9, 8,10, 9, 9, 9, - 9,10, 9,10, 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, 6, 8, 9, - 8,10, 8, 8,10,10,10,10,10,10, 9,10, 9,10,10, 9, - 9, 9,10,10,10,10, 8, 9,10, 9,10, 9, 9,10, 9,10, - 9,10,10, 9,10, 9,10,10, 9,10,10,10,10, 9,10, 9, - 10,10, 9,10, 9,10,10,10,10,10, 9,10, 9,10,10,10, - 10,10,10,10,10,10,10,10, 7, 9,10, 9,10, 8,10,10, - 10,10, 9,10,10,10,10, 9, 9,10, 9,10, 9, 9,10,10, - 10, 9,10, 9,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10, 8,10,10,10,10, 9, - 10,10,10,10,10,10,10,10,10, 9,10, 9,10,10,10,10, - 10,10,10, 9,10,10,10,10,10,10,10,10,10, 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,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10, 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, 9,10,10,10,10, 9,10,10, - 10,10,10,10,10,10,10, 7,10,10, 9, 9, 9, 8, 9, 9, - 10,10,10,10, 9,10, 8, 9,10, 8,10,10, 9,10,10,10, - 9, 8,10, 9,10, 9,10,10, 9,10, 9,10, 9, 9,10, 9, - 10,10,10,10,10,10,10, 9,10, 9,10,10,10,10,10, 9, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10, 8,10,10,10,10, 9, 9,10,10,10, 9,10,10,10, - 10, 9, 8, 9,10,10, 9,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10, 8,10,10,10,10, 9, - 10,10,10,10, 8, 9,10,10,10,10,10,10,10,10,10,10, - 10,10,10, 9,10,10,10,10,10,10,10,10,10, 9,10,10, - 10,10, 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,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10, 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,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10, -}; - -static float _vq_quantthresh_res0_350_128_1[] = { - -1.5, -0.5, 0.5, 1.5, -}; - -static long _vq_quantmap_res0_350_128_1[] = { - 4, 3, 0, 1, 2, -}; - -static encode_aux_threshmatch _vq_auxt_res0_350_128_1 = { - _vq_quantthresh_res0_350_128_1, - _vq_quantmap_res0_350_128_1, - 5, - 5 -}; - -static static_codebook _vq_book_res0_350_128_1 = { - 4, 625, - _vq_lengthlist_res0_350_128_1, - 1, -533725184, 1611661312, 3, 0, - _vq_quantlist_res0_350_128_1, - NULL, - &_vq_auxt_res0_350_128_1, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_350_128_2.vqh b/lib/books/res0_350_128_2.vqh deleted file mode 100644 index f1be6469..00000000 --- a/lib/books/res0_350_128_2.vqh +++ /dev/null @@ -1,71 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * - * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * - * * - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_350_128_2_VQH_ -#define _V_res0_350_128_2_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_350_128_2[] = { - 5, - 6, - 7, - 8, - 10, - 4, - 3, - 2, - 0, -}; - -static long _vq_lengthlist_res0_350_128_2[] = { - 4, 5, 5, 5, 6, 5, 5, 5, 6, 5, 6, 6, 6, 6, 6, 6, - 6, 6, 7, 6, 7, 7, 7, 6, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 7, 8, 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, 7, 7, 8, 8, 8, 8, 8, 7, - 8, -}; - -static float _vq_quantthresh_res0_350_128_2[] = { - -4, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 4, -}; - -static long _vq_quantmap_res0_350_128_2[] = { - 8, 7, 6, 5, 0, 1, 2, 3, - 4, -}; - -static encode_aux_threshmatch _vq_auxt_res0_350_128_2 = { - _vq_quantthresh_res0_350_128_2, - _vq_quantmap_res0_350_128_2, - 9, - 9 -}; - -static static_codebook _vq_book_res0_350_128_2 = { - 2, 81, - _vq_lengthlist_res0_350_128_2, - 1, -531365888, 1611661312, 4, 0, - _vq_quantlist_res0_350_128_2, - NULL, - &_vq_auxt_res0_350_128_2, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_350_128_3.vqh b/lib/books/res0_350_128_3.vqh deleted file mode 100644 index 500c6e81..00000000 --- a/lib/books/res0_350_128_3.vqh +++ /dev/null @@ -1,87 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * - * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * - * * - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_350_128_3_VQH_ -#define _V_res0_350_128_3_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_350_128_3[] = { - 14, - 15, - 16, - 17, - 19, - 22, - 25, - 28, - 13, - 12, - 11, - 9, - 6, - 3, - 0, -}; - -static long _vq_lengthlist_res0_350_128_3[] = { - 6, 6, 7, 6, 6, 7, 8,10, 6, 7, 6, 6, 7, 8,10, 7, - 7, 7, 7, 7, 7, 9,10, 7, 7, 7, 7, 7, 9,10, 7, 7, - 7, 7, 7, 8, 9,11, 7, 7, 7, 7, 8, 9,11, 7, 7, 7, - 7, 7, 7, 9,10, 7, 7, 7, 7, 7, 9,10, 7, 7, 7, 7, - 7, 7, 9,10, 7, 7, 7, 7, 7, 9,10, 8, 8, 8, 8, 8, - 8,10,11, 8, 8, 8, 8, 8,10,11,10,10,10, 9, 9,10, - 11,12,10,10, 9, 9,10,11,13,11,12,12,11,11,12,13, - 14,11,12,11,11,12,13,14, 7, 7, 7, 7, 7, 7, 9,10, - 7, 7, 7, 7, 7, 9,10, 7, 7, 7, 7, 7, 8, 9,11, 7, - 7, 7, 7, 8, 9,11, 7, 7, 7, 7, 7, 7, 9,10, 7, 7, - 7, 7, 7, 9,10, 7, 7, 7, 7, 7, 7, 9,10, 7, 7, 7, - 7, 7, 9,10, 8, 8, 8, 8, 8, 8,10,11, 8, 8, 8, 8, - 8,10,11,10,10,10, 9, 9,10,11,12,10,10, 9, 9,10, - 11,13,11,12,12,11,11,12,13,14,11,12,11,11,12,13, - 14, -}; - -static float _vq_quantthresh_res0_350_128_3[] = { - -12.5, -9.5, -6.5, -4, -2.5, -1.5, -0.5, 0.5, - 1.5, 2.5, 4, 6.5, 9.5, 12.5, -}; - -static long _vq_quantmap_res0_350_128_3[] = { - 14, 13, 12, 11, 10, 9, 8, 0, - 1, 2, 3, 4, 5, 6, 7, -}; - -static encode_aux_threshmatch _vq_auxt_res0_350_128_3 = { - _vq_quantthresh_res0_350_128_3, - _vq_quantmap_res0_350_128_3, - 15, - 15 -}; - -static static_codebook _vq_book_res0_350_128_3 = { - 2, 225, - _vq_lengthlist_res0_350_128_3, - 1, -528744448, 1611661312, 5, 0, - _vq_quantlist_res0_350_128_3, - NULL, - &_vq_auxt_res0_350_128_3, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_350_128_4.vqh b/lib/books/res0_350_128_4.vqh deleted file mode 100644 index 7495f389..00000000 --- a/lib/books/res0_350_128_4.vqh +++ /dev/null @@ -1,108 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * - * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * - * * - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_350_128_4_VQH_ -#define _V_res0_350_128_4_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_350_128_4[] = { - 28, - 29, - 31, - 33, - 36, - 39, - 42, - 45, - 48, - 52, - 56, - 27, - 25, - 23, - 20, - 17, - 14, - 11, - 8, - 4, - 0, -}; - -static long _vq_lengthlist_res0_350_128_4[] = { - 7, 7, 7, 7, 7, 8, 9, 9, 9,10,11, 7, 7, 7, 7, 8, - 9, 9, 9,10,11, 7, 7, 7, 7, 7, 8, 8, 9, 9,10,11, - 7, 7, 7, 7, 8, 8, 9, 9,10,10, 7, 7, 7, 7, 7, 8, - 8, 8, 9,10,10, 7, 7, 7, 7, 8, 8, 8, 9,10,10, 7, - 7, 7, 7, 7, 8, 8, 9, 9,10,10, 7, 7, 7, 7, 8, 8, - 9, 9,10,10, 8, 8, 7, 8, 8, 8, 9, 9, 9,10,11, 8, - 7, 7, 8, 8, 9, 9, 9,10,11, 9, 9, 8, 8, 8, 9, 9, - 10,10,11,11, 9, 8, 8, 9, 9, 9,10,10,10,11,10,10, - 9, 9, 9,10,10,10,11,11,12,10, 9, 9, 9,10,10,11, - 11,11,12,11,10,10,10,10,10,11,11,12,12,13,10,10, - 10,10,11,11,11,12,12,13,11,11,11,11,11,11,12,12, - 12,12,14,11,11,11,11,11,12,12,12,12,13,12,12,12, - 12,12,12,13,13,13,14,14,12,12,12,12,12,13,13,13, - 13,14,14,13,13,13,13,13,14,14,15,15,16,14,13,14, - 13,14,14,14,14,16,15, 7, 7, 7, 7, 7, 8, 8, 8, 9, - 10,11, 7, 7, 7, 7, 8, 8, 8, 9,10,10, 7, 7, 7, 7, - 7, 8, 8, 8, 9,10,10, 7, 7, 7, 7, 8, 8, 8, 9,10, - 11, 8, 7, 7, 7, 7, 8, 8, 9, 9,10,11, 7, 7, 7, 7, - 8, 8, 9, 9,10,10, 8, 8, 7, 7, 8, 8, 9, 9,10,10, - 11, 8, 7, 8, 8, 8, 9, 9, 9,10,11, 9, 9, 8, 8, 9, - 9,10,10,10,11,11, 9, 8, 8, 9, 9, 9,10,10,10,11, - 10,10, 9, 9, 9,10,10,11,11,11,12,10, 9, 9, 9,10, - 10,11,11,11,12,10,10,10,10,10,10,11,11,11,12,13, - 10,10,10,10,10,11,11,11,12,13,11,11,11,11,11,11, - 12,12,12,13,13,11,11,11,11,11,11,12,12,12,13,12, - 12,12,12,12,12,13,13,13,13,14,12,12,12,12,12,12, - 13,13,14,14,13,13,13,13,14,13,14,14,15,14,16,13, - 13,13,14,14,14,15,14,15,16, -}; - -static float _vq_quantthresh_res0_350_128_4[] = { - -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, -}; - -static long _vq_quantmap_res0_350_128_4[] = { - 20, 19, 18, 17, 16, 15, 14, 13, - 12, 11, 0, 1, 2, 3, 4, 5, - 6, 7, 8, 9, 10, -}; - -static encode_aux_threshmatch _vq_auxt_res0_350_128_4 = { - _vq_quantthresh_res0_350_128_4, - _vq_quantmap_res0_350_128_4, - 21, - 21 -}; - -static static_codebook _vq_book_res0_350_128_4 = { - 2, 441, - _vq_lengthlist_res0_350_128_4, - 1, -526647296, 1611661312, 6, 0, - _vq_quantlist_res0_350_128_4, - NULL, - &_vq_auxt_res0_350_128_4, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_350_128_5.vqh b/lib/books/res0_350_128_5.vqh deleted file mode 100644 index 99e84bf2..00000000 --- a/lib/books/res0_350_128_5.vqh +++ /dev/null @@ -1,126 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * - * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * - * * - ******************************************************************** - - function: static codebook autogenerated by vq/somethingorother - - ********************************************************************/ - -#ifndef _V_res0_350_128_5_VQH_ -#define _V_res0_350_128_5_VQH_ -#include "codebook.h" - -static long _vq_quantlist_res0_350_128_5[] = { - 102, - 103, - 104, - 105, - 107, - 110, - 113, - 116, - 119, - 122, - 126, - 130, - 133, - 137, - 141, - 145, - 149, - 153, - 158, - 163, - 168, - 173, - 174, - 180, - 186, - 192, - 198, - 204, - 101, - 100, - 99, - 97, - 94, - 91, - 88, - 85, - 82, - 78, - 74, - 71, - 67, - 63, - 59, - 55, - 51, - 46, - 41, - 36, - 31, - 30, - 24, - 18, - 12, - 6, - 0, -}; - -static long _vq_lengthlist_res0_350_128_5[] = { - 4, 4, 5, 4, 4, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, - 10,10,11,12,12,13,13,13,13,14,14,12, 4, 5, 4, 4, - 4, 4, 5, 5, 6, 6, 7, 7, 7, 8, 9,10,10,11,11,12, - 13,13,13,13,14,14,12, -}; - -static float _vq_quantthresh_res0_350_128_5[] = { - -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.5, -1.5, -0.5, 0.5, 1.5, 2.5, 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, -}; - -static long _vq_quantmap_res0_350_128_5[] = { - 54, 53, 52, 51, 50, 49, 48, 47, - 46, 45, 44, 43, 42, 41, 40, 39, - 38, 37, 36, 35, 34, 33, 32, 31, - 30, 29, 28, 0, 1, 2, 3, 4, - 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, -}; - -static encode_aux_threshmatch _vq_auxt_res0_350_128_5 = { - _vq_quantthresh_res0_350_128_5, - _vq_quantmap_res0_350_128_5, - 55, - 55 -}; - -static static_codebook _vq_book_res0_350_128_5 = { - 1, 55, - _vq_lengthlist_res0_350_128_5, - 1, -522616832, 1611661312, 8, 0, - _vq_quantlist_res0_350_128_5, - NULL, - &_vq_auxt_res0_350_128_5, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_350_128aux.vqh b/lib/books/res0_350_128aux.vqh deleted file mode 100644 index 526779a7..00000000 --- a/lib/books/res0_350_128aux.vqh +++ /dev/null @@ -1,39 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * - * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * - * * - ******************************************************************** - - function: static codebook autogenerated by huff/huffbuld - - ********************************************************************/ - -#ifndef _V_res0_350_128aux_VQH_ -#define _V_res0_350_128aux_VQH_ -#include "codebook.h" - -static long _huff_lengthlist_res0_350_128aux[] = { - 8,16,14,14,16,15,15,15,15,15,15,11,14,15,12, 8, - 11,10,11,14, 5, 2, 6,10,11,12, 6, 3, 3, 7,10, 9, - 7, 2, 3, 5, -}; - -static static_codebook _huff_book_res0_350_128aux = { - 2, 36, - _huff_lengthlist_res0_350_128aux, - 0, 0, 0, 0, 0, - NULL, - NULL, - NULL, - 0 -}; - - -#endif diff --git a/lib/books/res0_96_1024_1.vqh b/lib/books/res0_96_1024_1.vqh index 12626c5a..c799d02f 100644 --- a/lib/books/res0_96_1024_1.vqh +++ b/lib/books/res0_96_1024_1.vqh @@ -1,13 +1,12 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * + * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -21,17 +20,17 @@ static long _vq_quantlist_res0_96_1024_1[] = { 1, - 2, 0, + 2, }; static long _vq_lengthlist_res0_96_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,11,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,11,15,15,11,15,15, 8,11,11,12,15,15,12,15, - 15, + 1, 4, 4, 5, 8, 7, 4, 7, 7, 5, 8, 8, 8,11,11, 8, + 10,11, 5, 8, 8, 8,11,10, 8,10,10, 5, 8, 8, 8,11, + 11, 8,11,10, 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,11,11,14,14,10,14, + 14, }; static float _vq_quantthresh_res0_96_1024_1[] = { @@ -39,7 +38,7 @@ static float _vq_quantthresh_res0_96_1024_1[] = { }; static long _vq_quantmap_res0_96_1024_1[] = { - 2, 0, 1, + 1, 0, 2, }; static encode_aux_threshmatch _vq_auxt_res0_96_1024_1 = { diff --git a/lib/books/res0_96_1024_2.vqh b/lib/books/res0_96_1024_2.vqh index 223e42a6..66324902 100644 --- a/lib/books/res0_96_1024_2.vqh +++ b/lib/books/res0_96_1024_2.vqh @@ -1,13 +1,12 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * + * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -21,16 +20,16 @@ static long _vq_quantlist_res0_96_1024_2[] = { 1, - 2, 0, + 2, }; static long _vq_lengthlist_res0_96_1024_2[] = { - 3, 4, 5, 4, 6, 6, 5, 6, 6, 5, 6, 6, 6, 7, 7, 6, - 7, 8, 5, 6, 6, 6, 7, 7, 6, 8, 7, 5, 6, 6, 6, 8, - 8, 6, 8, 8, 6, 8, 8, 7, 9, 9, 8, 9, 9, 6, 8, 8, - 7, 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, + 3, 5, 5, 5, 6, 6, 5, 6, 6, 5, 6, 6, 6, 7, 7, 6, + 7, 7, 5, 6, 6, 6, 7, 7, 6, 7, 7, 5, 6, 6, 6, 8, + 8, 6, 8, 7, 6, 8, 7, 7, 9, 9, 8, 9, 9, 6, 7, 8, + 7, 9, 9, 7, 9, 9, 5, 6, 6, 6, 7, 7, 6, 8, 7, 6, + 8, 7, 7, 9, 9, 7, 9, 9, 6, 7, 7, 7, 9, 9, 7, 9, 9, }; @@ -39,7 +38,7 @@ static float _vq_quantthresh_res0_96_1024_2[] = { }; static long _vq_quantmap_res0_96_1024_2[] = { - 2, 0, 1, + 1, 0, 2, }; static encode_aux_threshmatch _vq_auxt_res0_96_1024_2 = { diff --git a/lib/books/res0_96_1024_3.vqh b/lib/books/res0_96_1024_3.vqh index fe38e863..75baceeb 100644 --- a/lib/books/res0_96_1024_3.vqh +++ b/lib/books/res0_96_1024_3.vqh @@ -1,13 +1,12 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * + * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -21,53 +20,53 @@ static long _vq_quantlist_res0_96_1024_3[] = { 3, - 4, - 6, 2, + 4, 0, + 6, }; static long _vq_lengthlist_res0_96_1024_3[] = { - 2, 5, 7, 5, 7, 5, 7, 9, 7, 9, 7, 9,13, 9,13, 5, - 7, 9, 7, 9, 7, 9,13, 9,13, 5, 7, 9, 7, 9, 7, 8, - 11, 8,11, 9,11,15,11,15, 7, 8,11, 8,11,10,11,15, - 11,15, 7, 9,11, 9,11, 9,11,15,11,15,13,15,17,15, - 18, 9,11,15,11,15,13,15,17,16,18, 5, 7, 9, 7, 9, - 7, 8,11, 8,11,10,11,15,11,15, 7, 8,11, 8,11,10, - 12,15,11,15, 7, 9,12, 9,11,10,11,15,11,15,13,15, - 18,15,18,10,11,15,11,15,13,15,18,15,18, 5, 7, 9, - 7, 9, 7, 8,11, 8,11, 9,11,15,11,16, 7, 8,11, 8, - 11, 9,11,15,11,15, 7, 8,11, 9,11, 8,10,13,10,13, - 11,13,16,13,17, 9,10,13,10,13,11,13,17,13,18,10, - 12,15,12,15,11,13,17,13,18,16,16,18,17,19,12,13, - 18,13,17,16,17,19,18,20, 7, 8,11, 9,11, 9,10,13, - 10,13,12,13,17,13,17, 8,10,13,10,13,12,13,17,13, - 17,10,12,15,12,15,11,13,17,13,17,15,17,20,17,18, - 12,13,16,13,17,16,18,21,17,21, 7, 9,12, 9,12, 9, - 12,16,12,16,12,15,19,16,18, 9,12,16,12,15,12,16, - 20,15,20,10,12,15,12,16,12,13,17,14,18,15,17,19, - 18,21,12,13,18,13,17,15,18,19,17,19,14,16,18,16, - 18,15,16,18,17,20,18,20,19,21,21,16,18,20,18,20, - 20,21,21,21,20,10,12,16,12,15,11,14,17,13,18,16, - 18,20,18,19,12,13,18,13,18,15,18,19,17,19,14,16, - 19,16,20,15,18,19,17,21,18,20,21,19,21,15,18,21, - 19,21,19,20,19,20,21, 5, 7, 9, 7, 9, 7, 8,11, 8, - 11, 9,11,15,11,15, 7, 8,11, 9,11, 9,11,16,12,15, - 7, 9,11, 9,11, 8,10,13,10,13,12,13,17,13,16, 9, - 10,13,10,13,11,13,16,14,17,10,12,15,12,15,12,14, - 17,13,17,16,18,21,17,19,11,13,16,13,17,15,17,18, - 17,19, 7, 9,11, 9,12, 8,10,13,10,13,12,14,17,13, - 17, 9,10,13,10,13,12,13,17,13,17,10,12,16,12,15, - 12,13,17,13,18,15,18,19,18,20,11,13,17,13,17,15, - 17,20,16,17, 7,10,12,10,12, 9,12,15,12,16,12,15, - 18,15,18, 9,12,16,12,15,12,16,18,16,20,10,12,16, - 12,16,12,13,17,13,17,15,19,21,17,21,12,13,17,14, - 17,16,17,18,18,20,14,16,19,16,20,16,18,20,18,19, - 18,18,20,19,20,16,17,20,18,19,18,18,19,19,21,10, - 12,15,12,16,12,14,17,14,18,16,18,20,18,21,12,14, - 18,13,17,15,18,20,17,20,14,16,19,16,19,16,18,19, - 18,20,20,21,20,19,21,15,17,19,18,19,18,19,21,17, - 20, + 2, 4, 4, 6, 6, 5, 7, 7,10,10, 5, 7, 7,10,10, 7, + 10,10,15,15, 7,10,10,15,15, 4, 7, 7, 9, 9, 7,10, + 10,12,12, 7,10,10,12,12,10,13,12,19,18,10,13,13, + 17,19, 4, 7, 7, 9, 9, 7,10,10,12,12, 7,10, 9,12, + 12,10,13,12,19,17,10,13,12,18,16, 7,10,10,13,13, + 10,13,13,18,17,10,13,13,17,16,16,18,17, 0,21,15, + 20,19, 0, 0, 7,10, 9,13,13,10,13,13,16,18,10,13, + 13,17,18,16,19,18, 0, 0,15,18,17,20, 0, 5, 7, 7, + 9, 9, 7,10,10,13,13, 7,10,10,13,13,10,13,13,17, + 18,10,13,13,18,18, 7,10,10,13,13,10,12,12,15,15, + 10,12,12,15,15,13,15,15,20, 0,13,15,15,19,20, 7, + 10,10,13,13,10,12,12,15,15,10,12,12,15,15,13,16, + 15, 0,21,13,15,15, 0,21,10,13,13,17,17,13,15,16, + 19,21,13,15,16,21,21,17,19,21, 0, 0,18,20,20, 0, + 0,10,13,13,17,18,13,16,15,21,19,13,16,15,21,20, + 18, 0,19, 0,21,20,21,20, 0,21, 5, 7, 7, 9, 9, 7, + 10,10,13,12, 7,10,10,13,13,10,13,13,18,17,10,13, + 13,18,18, 7,10,10,13,12,10,12,12,16,16,10,12,12, + 15,15,13,16,15,21,20,13,15,15,19,21, 7,10,10,12, + 12,10,12,12,15,15,10,12,12,15,15,13,15,15,20,20, + 13,16,15,20,18,10,13,13,17,17,13,16,15, 0,20,13, + 15,16,19, 0,18,19,21, 0, 0,18,18, 0, 0, 0,10,13, + 13,18,18,13,15,15,21,20,13,15,15,21,21,19,21,21, + 0, 0,18, 0,19, 0, 0, 7,10,10,13,13,10,13,13,18, + 17,10,13,13,19,18,13,18,18, 0, 0,13,18,18, 0,21, + 10,13,13,18,17,13,15,15,21,20,13,16,15,21,20,17, + 21, 0, 0, 0,17, 0,20, 0, 0,10,13,13,17,17,13,16, + 15,21,21,13,16,15,20,20,18,21, 0, 0, 0,18,21,21, + 0, 0,15,18,20, 0, 0,18,19,19,21, 0,19, 0,21, 0, + 0, 0, 0, 0, 0, 0,21, 0, 0, 0, 0,15,20,18, 0, 0, + 18,20,21,21, 0,18,20,21, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7,10,10,13,13,10,13,13,17,17,10,13, + 13,18,18,13,17,18, 0, 0,13,18,17, 0, 0,10,13,13, + 17,17,13,15,16, 0, 0,13,15,16,20, 0,18,21,20, 0, + 0,19,19,21, 0, 0,10,13,13,18,18,13,15,15,21, 0, + 13,16,16,20, 0,18,20,18, 0, 0,18, 0,21, 0, 0,15, + 19,19,21,21,20, 0,21, 0, 0,20,19,21, 0, 0, 0, 0, + 0, 0, 0,21, 0, 0, 0, 0,15,21,18, 0, 0,20,21,19, + 0, 0,17,20,19, 0, 0, 0, 0, 0, 0, 0,20, 0, 0, 0, + 0, }; static float _vq_quantthresh_res0_96_1024_3[] = { @@ -75,7 +74,7 @@ static float _vq_quantthresh_res0_96_1024_3[] = { }; static long _vq_quantmap_res0_96_1024_3[] = { - 4, 3, 0, 1, 2, + 3, 1, 0, 2, 4, }; static encode_aux_threshmatch _vq_auxt_res0_96_1024_3 = { @@ -85,6 +84,96 @@ static encode_aux_threshmatch _vq_auxt_res0_96_1024_3 = { 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, 208, 215, 216, 376, 380, 381, + 383, 391, 400, 401, 403, 405, 406, 408, + 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, 409, 4, 19, 79, + 94, 379, 3, 11, 35, 36, 38, 78, + 86, 135, 136, 138, 160, 161, 163, 210, + 211, 213, 378, 386, 410, 411, 413, 10, + 37, 85, 137, 162, 212, 385, 412, 460, + 12, 87, 387, 462, 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, 20, 47, + 95, 147, 172, 222, 395, 422, 470, 22, + 97, 397, 49, 149, 174, 24, 399, 23, + 18, 51, 55, 56, 58, 66, 175, 176, + 178, 180, 181, 183, 190, 191, 426, 430, + 431, 433, 441, 50, 57, 65, 177, 182, + 192, 425, 432, 440, 52, 67, 427, 59, + 179, 184, 194, 434, 54, 69, 429, 53, + 61, 185, 186, 188, 428, 436, 60, 187, + 435, 62, 437, 189, 64, 439, 63, 438, + 71, 195, 196, 446, 70, 197, 445, 72, + 447, 199, 74, 73, 68, 101, 105, 106, + 108, 116, 225, 226, 228, 230, 231, 233, + 240, 476, 480, 481, 483, 100, 107, 115, + 227, 232, 242, 475, 482, 102, 117, 477, + 109, 229, 234, 244, 104, 103, 111, 235, + 236, 238, 486, 110, 237, 485, 112, 487, + 239, 114, 113, 121, 245, 246, 120, 247, + 122, 249, 123, 251, 255, 256, 258, 266, + 275, 276, 278, 280, 281, 283, 290, 291, + 293, 326, 330, 331, 341, 250, 257, 265, + 277, 282, 292, 325, 332, 340, 252, 267, + 327, 342, 259, 279, 284, 294, 334, 254, + 269, 329, 253, 261, 285, 286, 288, 328, + 336, 260, 287, 335, 262, 337, 289, 264, + 263, 338, 271, 295, 296, 298, 346, 270, + 297, 345, 272, 299, 274, 273, 268, 301, + 305, 306, 308, 316, 300, 307, 315, 302, + 317, 309, 304, 319, 303, 311, 310, 312, + 314, 313, 321, 320, 322, 324, 323, 318, + 351, 355, 356, 358, 366, 350, 357, 365, + 352, 367, 359, 354, 353, 361, 360, 362, + 364, 363, 370, 372, 572, 612, 501, 505, + 506, 508, 516, 525, 526, 528, 530, 531, + 540, 541, 576, 580, 500, 507, 515, 527, + 532, 542, 575, 582, 502, 517, 577, 509, + 529, 504, 579, 503, 511, 535, 536, 538, + 578, 586, 510, 537, 585, 512, 587, 514, + 513, 521, 545, 546, 520, 547, 595, 522, + 551, 555, 556, 558, 566, 550, 557, 565, + 552, 567, 554, 553, 561, 560, 562, 563, + 570, 601, 605, 606, 600, 607, 602, 611, + 610, 620, +}; + +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[] = { + 506, 506, 506, 506, 506, 506, 506, 506, + 506, 506, 506, 506, 506, 506, 506, 506, +}; + +static encode_aux_pigeonhole _vq_auxp_res0_96_1024_3 = { + -3, 1, 6, 2, + _vq_pigeonmap_res0_96_1024_3, + 506, + _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, @@ -92,7 +181,7 @@ static static_codebook _vq_book_res0_96_1024_3 = { _vq_quantlist_res0_96_1024_3, NULL, &_vq_auxt_res0_96_1024_3, - NULL, + &_vq_auxp_res0_96_1024_3, 0 }; diff --git a/lib/books/res0_96_1024_4.vqh b/lib/books/res0_96_1024_4.vqh index a04bddc4..81f49392 100644 --- a/lib/books/res0_96_1024_4.vqh +++ b/lib/books/res0_96_1024_4.vqh @@ -1,13 +1,12 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * + * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -21,53 +20,53 @@ static long _vq_quantlist_res0_96_1024_4[] = { 3, - 4, - 6, 2, + 4, 0, + 6, }; static long _vq_lengthlist_res0_96_1024_4[] = { - 5, 6, 8, 6, 8, 6, 6, 9, 6, 9, 8, 9,11, 9,11, 6, - 6, 9, 6, 9, 8, 9,11, 9,11, 6, 7, 9, 6, 9, 6, 7, - 10, 7, 9, 9,10,12,10,12, 7, 7,10, 7,10, 9,10,12, - 10,12, 8, 9,11, 9,11, 9,10,12,10,12,11,12,14,13, - 15, 9,10,12,10,12,11,12,15,12,15, 6, 7, 9, 7, 9, - 7, 7,10, 7,10, 9,10,12,10,12, 7, 7,10, 7,10, 9, - 10,12,10,12, 8, 9,11, 9,11, 9,10,12,10,12,11,12, - 15,12,14, 9,10,12,10,12,11,12,14,12,15, 6, 7, 9, - 7, 9, 7, 7,10, 7,10, 9,10,12,10,12, 7, 7,10, 7, - 10, 9,10,12,10,12, 7, 7,10, 7,10, 7, 8,10, 8,11, - 10,10,13,11,13, 7, 8,10, 8,11,10,11,13,11,13, 9, - 10,13,10,13,10,10,13,11,13,12,13,15,13,15,10,11, - 13,11,13,13,14,16,13,15, 7, 7,10, 7,10, 7, 8,10, - 8,10,10,11,13,11,13, 7, 8,10, 8,11,10,11,13,11, - 13, 9,10,12,10,12,10,11,13,11,13,12,13,17,13,15, - 10,11,14,11,14,12,13,16,13,15, 8, 9,11, 9,11, 9, - 10,12,10,13,12,13,15,13,15, 9,10,12,10,12,11,13, - 15,13,15, 9,10,12,10,12,10,11,13,11,13,13,14,15, - 14,16,10,11,14,11,13,13,14,16,13,16,12,13,15,13, - 15,13,13,16,14,16,15,15,16,16,18,13,14,16,14,16, - 15,16,18,16,18, 9,10,13,10,12,10,11,13,11,14,13, - 14,16,13,16,10,11,14,11,14,13,14,16,14,16,12,13, - 15,13,15,13,14,16,13,16,15,15,16,15,16,13,14,15, - 14,16,15,16,16,17,17, 6, 7, 9, 7, 9, 7, 7,10, 7, - 10, 9,10,12,10,12, 7, 7,10, 7,10, 9,10,12,10,12, - 7, 7,10, 7,10, 7, 8,10, 8,11,10,11,13,11,13, 7, - 8,10, 8,11,10,11,13,11,13, 9,10,12,10,13,10,11, - 14,11,13,12,13,15,14,15,10,11,14,11,13,12,13,15, - 13,16, 7, 7,10, 7,10, 7, 8,10, 8,10,10,11,13,11, - 13, 7, 8,10, 8,10,10,11,13,11,13, 9,10,13,10,13, - 10,11,13,11,14,13,14,15,14,15,10,11,13,11,13,13, - 14,15,13,15, 8, 9,11, 9,11, 9,10,12,10,12,12,13, - 15,13,15, 9,10,13,10,12,12,13,15,13,15, 9,10,12, - 10,12,10,11,14,11,13,13,14,16,13,16,10,11,13,11, - 14,13,14,16,14,16,12,13,15,13,15,13,14,17,14,16, - 15,17,17,16,17,13,13,15,13,16,15,15,17,16,17, 9, - 10,13,10,13,10,11,14,11,14,13,13,15,13,15,10,11, - 14,11,13,13,14,16,13,16,12,13,15,13,15,13,14,15, - 14,16,15,16,17,16,18,13,14,16,14,17,15,16,17,15, - 16, + 5, 6, 5, 8, 8, 6, 6, 6, 9, 9, 5, 6, 6, 9, 9, 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,12, 9,10,10,13,13,12,13,13,15,14,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, 7, 7, 7,10,10, 9,10,10,13, + 13, 9,10,10,12,12, 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, 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,11,10,14,13,10,11,11, + 13,14,10,11,11,14,14,13,13,14,15,16,13,13,14,15, + 15, 9,10,11,13,13,10,11,11,14,13,10,11,11,13,14, + 13,13,13,16,15,13,13,14,15,15, 6, 7, 7, 9, 9, 7, + 7, 7,10,10, 7, 7, 7,10,10, 9,10,10,12,13, 9,10, + 10,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, 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,11,10,13,13,10,11,11,14,13,10, + 11,11,13,13,13,13,13,15,15,13,13,13,15,15, 9,10, + 10,13,13,10,11,11,13,14,10,11,11,13,13,13,14,13, + 16,15,13,14,13,15,14, 8,10,10,12,12,10,11,11,13, + 13, 9,10,10,13,13,13,14,14,16,16,13,13,14,15,15, + 9,11,11,13,13,11,11,11,14,14,10,12,11,14,14,14, + 14,14,15,16,13,14,14,16,16, 9,11,11,13,13,11,11, + 11,14,14,10,11,11,14,14,14,14,14,15,16,13,14,14, + 15,16,13,14,13,15,15,13,14,14,16,16,14,14,14,16, + 16,16,15,16,16,18,15,16,16,18,17,13,13,14,16,16, + 13,14,14,15,15,13,14,14,15,16,16,16,16,16,16,16, + 16,15,17,17, 8, 9, 9,12,12, 9,11,11,13,13,10,11, + 11,13,13,13,13,13,15,15,13,13,13,15,15, 9,11,11, + 13,13,10,11,11,14,14,10,11,11,14,14,14,14,14,15, + 16,14,14,14,15,16, 9,11,10,13,13,10,11,12,13,13, + 10,11,11,14,14,13,14,14,16,16,13,14,14,16,16,13, + 14,13,16,15,13,14,14,16,16,13,14,14,16,15,16,16, + 16,17,17,15,16,16,17,17,13,14,14,16,15,13,14,14, + 16,16,14,13,13,15,16,16,16,15,17,17,16,16,15,17, + 17, }; static float _vq_quantthresh_res0_96_1024_4[] = { @@ -75,7 +74,7 @@ static float _vq_quantthresh_res0_96_1024_4[] = { }; static long _vq_quantmap_res0_96_1024_4[] = { - 4, 3, 0, 1, 2, + 3, 1, 0, 2, 4, }; static encode_aux_threshmatch _vq_auxt_res0_96_1024_4 = { diff --git a/lib/books/res0_96_1024_5.vqh b/lib/books/res0_96_1024_5.vqh index 920bae4b..bb62c23b 100644 --- a/lib/books/res0_96_1024_5.vqh +++ b/lib/books/res0_96_1024_5.vqh @@ -1,13 +1,12 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * + * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -21,23 +20,23 @@ static long _vq_quantlist_res0_96_1024_5[] = { 8, - 9, - 11, - 13, - 16, 7, + 9, 5, + 11, 3, + 13, 0, + 16, }; static long _vq_lengthlist_res0_96_1024_5[] = { - 2, 3, 5, 6, 8, 4, 5, 6, 8, 4, 5, 7, 7, 9, 5, 7, - 7, 9, 6, 7, 8, 9,10, 7, 8, 9,11, 7, 8, 9,10,12, - 8, 9,10,12, 9,10,11,12,13,10,11,12,13, 4, 5, 7, - 8, 9, 5, 7, 7, 9, 6, 7, 8, 9,10, 7, 8, 9,10, 7, - 8, 9,10,12, 8, 9,10,12, 9,10,11,12,13,10,11,12, - 13, + 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,12, + 12,12,13,13, 6, 9, 9,12,12,11,11,13,13, 6, 9, 9, + 12,12,13,13,15,15, 6, 9, 9,12,12,13,13,15,15, 8, + 12,12,14,14,16,16,17,16, 8,12,12,14,14,15,16,16, + 17, }; static float _vq_quantthresh_res0_96_1024_5[] = { @@ -45,8 +44,8 @@ static float _vq_quantthresh_res0_96_1024_5[] = { }; static long _vq_quantmap_res0_96_1024_5[] = { - 8, 7, 6, 5, 0, 1, 2, 3, - 4, + 7, 5, 3, 1, 0, 2, 4, 6, + 8, }; static encode_aux_threshmatch _vq_auxt_res0_96_1024_5 = { diff --git a/lib/books/res0_96_1024_6.vqh b/lib/books/res0_96_1024_6.vqh index a09ec022..4eb585f2 100644 --- a/lib/books/res0_96_1024_6.vqh +++ b/lib/books/res0_96_1024_6.vqh @@ -1,13 +1,12 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * + * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -20,56 +19,46 @@ #include "codebook.h" static long _vq_quantlist_res0_96_1024_6[] = { - 14, - 15, - 17, - 19, - 22, - 25, - 28, - 13, - 11, + 8, + 7, 9, - 6, + 5, + 11, 3, + 13, 0, + 16, }; static long _vq_lengthlist_res0_96_1024_6[] = { - 3, 4, 5, 6, 8, 7,10, 4, 5, 6, 8, 7, 9, 4, 5, 6, - 7, 8, 9,11, 5, 6, 7, 8, 8,11, 6, 6, 7, 8, 9,10, - 12, 6, 7, 8, 9,10,12, 7, 8, 8, 9,10,11,13, 8, 8, - 9,10,11,13, 8, 9,10,10,12,12,15, 9,10,10,12,12, - 15, 8, 9,10,11,12,14,16, 9,10,10,11,13,16,10,11, - 12,13,15,16,19,11,12,13,14,17,19, 4, 5, 6, 7, 8, - 9,11, 5, 6, 7, 8, 8,11, 6, 7, 7, 8, 9,10,12, 7, - 7, 8, 9,10,12, 7, 8, 8, 9,10,11,14, 8, 8, 9,10, - 11,13, 8, 9, 9,10,12,12,15, 9, 9,10,11,12,14, 8, - 9,10,10,12,14,17, 9,10,10,11,14,16,10,11,12,13, - 14,16,18,11,12,13,14,16,17, + 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,10,11,12,11,12,12, 8, 9, 9,10,10,12,11,12, + 12, }; static float _vq_quantthresh_res0_96_1024_6[] = { - -12.5, -9.5, -6.5, -4, -2, -0.5, 0.5, 2, - 4, 6.5, 9.5, 12.5, + -6.5, -4, -2, -0.5, 0.5, 2, 4, 6.5, }; static long _vq_quantmap_res0_96_1024_6[] = { - 12, 11, 10, 9, 8, 7, 0, 1, - 2, 3, 4, 5, 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, - 13, - 13 + 9, + 9 }; static static_codebook _vq_book_res0_96_1024_6 = { - 2, 169, + 2, 81, _vq_lengthlist_res0_96_1024_6, - 1, -528744448, 1611661312, 5, 0, + 1, -529530880, 1611661312, 5, 0, _vq_quantlist_res0_96_1024_6, NULL, &_vq_auxt_res0_96_1024_6, diff --git a/lib/books/res0_96_1024_7.vqh b/lib/books/res0_96_1024_7.vqh index 9ae625c3..fcf5e430 100644 --- a/lib/books/res0_96_1024_7.vqh +++ b/lib/books/res0_96_1024_7.vqh @@ -1,13 +1,12 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * + * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -20,99 +19,62 @@ #include "codebook.h" static long _vq_quantlist_res0_96_1024_7[] = { - 102, - 103, - 105, - 107, - 110, - 113, - 116, - 119, - 122, - 126, - 130, - 133, - 137, - 141, - 145, - 149, - 153, - 158, - 163, - 168, - 173, - 174, - 180, - 186, - 192, - 198, - 204, - 101, - 99, - 97, - 94, - 91, - 88, - 85, - 82, - 78, - 74, - 71, - 67, - 63, - 59, - 55, - 51, - 46, - 41, - 36, - 31, - 30, - 24, + 17, + 16, 18, + 14, + 20, 12, + 22, + 9, + 25, 6, + 28, + 3, + 31, 0, + 34, }; static long _vq_lengthlist_res0_96_1024_7[] = { - 1, 3, 4, 5, 7, 9,11, 6, 8,10,12,15,15,15,16,16, - 16,16,16,16,16,16,16,16,16,16,16, 3, 4, 5, 7, 9, - 11, 6, 8,10,13,14,15,16,15,16,16,16,16,16,16,16, - 16,16,16,16,16, + 3, 4, 4, 5, 5, 6, 6, 7, 7, 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, 8, 9, 9,10,10,11,11, 6, 7, 7, 8, + 8, 8, 8, 9, 8, 9, 9,10,10,11,11, 7, 8, 8, 9, 9, + 9, 9, 9, 9,10,10,11,11,11,12, 7, 8, 8, 9, 9, 9, + 9,10, 9,10,10,11,11,11,11, 8, 9, 9,10,10,10,10, + 11,10,11,11,12,12,12,12, 8, 9, 9,10,10,10,10,10, + 10,11,11,12,11,12,12, 8, 9, 9,10,10,11,11,11,11, + 12,12,13,13,14,13, 8, 9, 9,10,10,11,11,11,11,12, + 12,13,13,13,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,13,14, + 14,14,15,12,13,13,13,13,14,14,14,14,15,15,16,15, + 16,16,12,13,13,14,13,14,14,14,14,15,15,16,15,16, + 16, }; static float _vq_quantthresh_res0_96_1024_7[] = { - -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, + -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[] = { - 52, 51, 50, 49, 48, 47, 46, 45, - 44, 43, 42, 41, 40, 39, 38, 37, - 36, 35, 34, 33, 32, 31, 30, 29, - 28, 27, 0, 1, 2, 3, 4, 5, - 6, 7, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, + 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, - 53, - 53 + 15, + 15 }; static static_codebook _vq_book_res0_96_1024_7 = { - 1, 53, + 2, 225, _vq_lengthlist_res0_96_1024_7, - 1, -522616832, 1611661312, 8, 0, + 1, -527368192, 1611661312, 6, 0, _vq_quantlist_res0_96_1024_7, NULL, &_vq_auxt_res0_96_1024_7, diff --git a/lib/books/res0_96_1024_8.vqh b/lib/books/res0_96_1024_8.vqh new file mode 100644 index 00000000..00dce2e2 --- /dev/null +++ b/lib/books/res0_96_1024_8.vqh @@ -0,0 +1,124 @@ +/******************************************************************** + * * + * 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_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,11,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,10,11,11,11, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 8, 8, 9, 9, 9, 9, 9, 9, 9,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,11,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,12,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,10,10,10,11,11,10,10, + 11,11,12,12,12,13,12,13, 9, 9, 9, 8, 9, 9, 9, 9, + 9,10,10,10,10,11,11,10,11,11,11,12,12,12,13,13, + 13,10,10,10,10,10,10,10,10,10,11,11,11,11,12,12, + 11,12,12,12,12,13,13,13,13,14,10,10,10,10,10,10, + 10,10,10,11,11,11,11,12,12,12,11,12,12,13,13,13, + 13,13,14,11,11,11,11,11,11,11,11,11,12,12,12,12, + 13,13,13,13,13,13,13,14,14,14,15,14,11,11,11,11, + 11,11,11,11,11,12,12,12,12,13,13,13,13,13,13,13, + 14,14,14,14,15,13,13,13,12,12,13,12,13,12,13,13, + 14,14,14,14,14,14,14,14,16,15,15,16,15,15,13,12, + 13,12,12,12,13,13,13,13,13,14,14,14,14,14,14,14, + 15,15,15,16,15,16,17,13,13,13,13,13,13,14,14,14, + 14,14,15,15,14,15,16,15,16,15,17,16,16,16,17,17, + 12,13,13,13,13,14,13,13,14,14,14,14,15,15,15,15, + 15,16,15,18,16,17,19,16,17,15,16,15,15,15,15,16, + 16,16,16,16,17,16,18,16,18,17,16,17,18,18,18,18, + 19,18,16,15,15,15,15,16,16,16,16,16,16,16,16,16, + 17,18,17,17,17,17,17,17,18,18,18,17,18,17,19,18, + 19,19,18,18,18,18,19,19,18,19,19,18,18,19,19,19, + 19,19,18,18,17,18,19,17,19,19,18,18,17,18,17,17, + 17,19,19,18,19,17,18,19,19,19,18,19,19,19,19,19, + 19,19,19,19,19,19,18,18,19,19,19,18,19,19,19,19, + 19,18,18,19,19,19,18,18,19,19,19,18,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,19,19,19,19, + 19,19,19,19,19,19,19,18,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 new file mode 100644 index 00000000..1b7fcd40 --- /dev/null +++ b/lib/books/res0_96_1024_9.vqh @@ -0,0 +1,131 @@ +/******************************************************************** + * * + * 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_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, 5, 5, 5, 5, 6, 6, 7, 7, 7, + 7, 8, 8, 8, 9, 9, 9,10,10, 7, 7, 8, 8, 8, 8, 9, + 9, 9, 9,10,11,11,11,12,12,13,13,12,13,14,14,14, + 15,16,15,16,15,16,16,17,17,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 index 554ef043..e846868b 100644 --- a/lib/books/res0_96_1024aux.vqh +++ b/lib/books/res0_96_1024aux.vqh @@ -20,14 +20,73 @@ #include "codebook.h" static long _huff_lengthlist_res0_96_1024aux[] = { - 2, 6,10,10,14,11,14,18, 4, 3, 4, 6, 9, 8,12,18, - 9, 4, 4, 6, 7, 9,14,18, 8, 5, 5, 5, 7, 6,11,16, - 13, 9, 6, 6, 6, 7,12,19, 8, 7, 7, 5, 6, 5, 9,14, - 11,10, 9, 8, 8, 6,10,15,14,13,14,11,12,11,14,19, + 4, 8,13,11,15,12,15,16,20,20, 7, 7,10,11,12,13, + 17,15,19,19,14,11,11,13,14,17,19,18,19,19,10,11, + 13,12,14,13,18,18,19,19,15,12,14,14,15,18,19,19, + 19,19,11,12,16,13,18,13,19,17,19,19,16,18,18,18, + 18,19,19,19,19,19,15,16,19,17,19,17,19,19,19,19, + 19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19, + 19,19,19,19, 6, 7,11,11,13,13,17,17,19,19, 6, 3, + 5, 6, 8, 9,13,14,19,19,11, 5, 5, 8, 8,12,15,18, + 19,19,10, 6, 8, 7, 9,10,15,14,18,19,12, 8, 8,10, + 10,13,16,19,19,19,10, 9,11, 9,13,10,17,15,19,19, + 16,13,15,15,17,17,18,19,19,19,14,14,17,15,17,15, + 18,17,19,19,19,19,19,19,19,18,19,19,19,19,19,19, + 19,19,19,19,19,19,19,19,11,11,12,14,14,15,19,17, + 19,19, 9, 5, 5, 8, 8,11,16,17,19,19,11, 5, 4, 8, + 7,12,15,17,19,19,13, 7, 7, 9,10,12,16,18,19,19, + 14, 8, 7,10, 9,13,16,17,19,19,12,10,11,11,13,13, + 17,17,19,19,18,14,14,15,16,17,17,19,19,19,13,15, + 16,15,18,16,19,18,19,19,19,19,19,19,19,18,19,19, + 19,19,19,19,19,19,19,19,19,19,19,19, 9,10,13,12, + 14,13,19,17,19,19, 9, 6, 7, 7, 9, 9,15,14,18,19, + 13, 7, 7, 9,10,12,17,18,19,19,11, 7, 8, 7,10, 9, + 16,14,19,19,14, 9, 9,10,12,13,17,18,19,19,11, 9, + 11, 9,13,10,16,14,19,19,17,14,15,14,16,15,19,18, + 19,19,13,13,15,13,17,13,19,16,19,19,19,19,19,18, + 18,17,19,18,19,19,19,19,19,19,19,19,19,19,19,19, + 14,12,13,14,15,16,19,19,19,19,11, 7, 7, 9,10,11, + 15,16,19,19,13, 7, 6, 9, 9,12,17,18,19,19,14, 8, + 9, 9,11,11,16,16,19,19,15, 9, 9,10,11,13,17,18, + 19,19,13,10,11,10,13,12,18,17,19,19,18,14,16,16, + 16,17,18,18,19,19,15,14,16,14,17,15,19,17,19,19, + 19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19, + 19,19,19,19, 9,11,15,12,16,13,18,16,19,19,11, 8, + 9, 8,11, 9,15,14,18,19,16, 9,10,10,12,13,18,17, + 19,19,12, 8,10, 8,11, 9,16,14,19,19,16,10,11,11, + 14,13,19,17,19,19,12, 9,11, 8,13, 9,17,13,19,19, + 18,14,16,15,17,14,19,17,19,19,14,12,15,12,16,11, + 17,14,19,19,19,18,19,18,19,16,19,19,19,19,19,19, + 19,19,19,19,19,19,19,19,12,13,15,15,17,19,19,18, + 19,19,15,10,10,10,12,11,16,15,19,19,17,11,11,12, + 13,13,17,15,19,19,16,10,11,10,13,11,16,14,19,19, + 18,11,12,12,10,12,13,12,19,19,15,11,13,10,14,11, + 15,13,19,19,18,14,15,15,13,13,13,13,17,19,16,13, + 17,13,15,12,14,12,17,19,18,19,19,19,18,19,17,16, + 18,19,19,19,19,19,19,19,19,19,19,19,10,13,16,14, + 17,15,18,17,19,19,13,10,12,11,13,11,15,15,19,19, + 19,13,12,13,13,14,15,15,19,19,12, 9,13,10,13,11, + 14,14,19,19,16,11,11,12, 8,11, 9,11,18,19,10,10, + 13, 9,13, 9,11,10,15,19,16,12,12,11, 8, 9, 7, 9, + 15,19,11,11,14,10,10, 9, 8, 8,13,19,15,17,19,16, + 17,14,13,13,18,19,19,19,19,19,19,19,19,19,19,19, + 12,15,18,17,17,18,19,18,19,19,14,12,13,14,13,15, + 14,18,19,19,18,14,14,16,13,17,14,18,19,19,13,12, + 14,14,13,14,13,16,19,19,18,15,12,14, 8,12, 9,12, + 18,19,11,12,15,12,13,11,12,12,17,19,16,14,11,13, + 7,10, 6, 8,14,19,13,14,13,12, 9,10, 6, 7,13,19, + 15,17,19,18,14,14,12,12,17,19,19,19,19,19,19,19, + 19,19,19,19,15,16,18,19,19,19,18,19,19,19,17,16, + 15,16,14,16,15,18,19,19,19,18,16,19,15,18,15,17, + 19,19,19,17,15,16,15,15,14,16,19,19,19,17,15,18, + 11,15,11,14,19,19,18,18,17,17,15,14,13,15,19,19, + 19,18,14,16, 9,13, 8,10,15,19,19,19,14,16,11,13, + 9, 9,14,19,19,19,19,18,16,16,14,14,19,19,19,19, + 19,19,19,19,19,19,19,19, }; static static_codebook _huff_book_res0_96_1024aux = { - 2, 64, + 3, 1000, _huff_lengthlist_res0_96_1024aux, 0, 0, 0, 0, 0, NULL, diff --git a/lib/books/res0_96_128_1.vqh b/lib/books/res0_96_128_1.vqh index 2e31577e..29b609e5 100644 --- a/lib/books/res0_96_128_1.vqh +++ b/lib/books/res0_96_128_1.vqh @@ -1,13 +1,12 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * + * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -21,17 +20,17 @@ static long _vq_quantlist_res0_96_128_1[] = { 1, - 2, 0, + 2, }; static long _vq_lengthlist_res0_96_128_1[] = { - 1, 4, 4, 4, 7, 7, 5, 7, 7, 5, 8, 8, 7,10,10, 7, - 10,10, 5, 7, 8, 7,10,10, 8,10,10, 5, 8, 8, 8,11, - 10, 8,10,11, 8,10,10,10,12,14,10,13,13, 8,10,10, - 10,13,13,10,13,13, 5, 8, 8, 8,10,10, 8,10,11, 8, - 10,10,10,13,13,10,13,14, 8,10,10,11,13,13,10,13, - 13, + 3, 4, 4, 4, 6, 6, 4, 6, 6, 4, 6, 6, 6, 9, 9, 6, + 9, 9, 4, 6, 6, 6, 9, 8, 6, 9, 9, 5, 7, 6, 7, 9, + 9, 6, 9, 9, 7, 9, 9, 9,12,12, 9,12,11, 6, 9, 9, + 9,11,11, 9,11,11, 4, 6, 6, 7, 9, 9, 7, 9, 9, 6, + 9, 9, 9,12,12, 9,11,12, 6, 9, 9, 9,12,11, 9,11, + 12, }; static float _vq_quantthresh_res0_96_128_1[] = { @@ -39,7 +38,7 @@ static float _vq_quantthresh_res0_96_128_1[] = { }; static long _vq_quantmap_res0_96_128_1[] = { - 2, 0, 1, + 1, 0, 2, }; static encode_aux_threshmatch _vq_auxt_res0_96_128_1 = { diff --git a/lib/books/res0_96_128_2.vqh b/lib/books/res0_96_128_2.vqh index be83b55a..13d8dab6 100644 --- a/lib/books/res0_96_128_2.vqh +++ b/lib/books/res0_96_128_2.vqh @@ -1,13 +1,12 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * + * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -20,75 +19,39 @@ #include "codebook.h" static long _vq_quantlist_res0_96_128_2[] = { - 2, - 3, - 4, 1, 0, + 2, }; static long _vq_lengthlist_res0_96_128_2[] = { - 2, 4, 6, 4, 6, 5, 7, 9, 7, 9, 7,10,13, 9,14, 5, - 7, 9, 7, 9, 7,10,12,10,13, 5, 7,10, 7,10, 7,10, - 12,10,11,10,13,15,12,15, 7, 9,12,10,12,10,12,15, - 12,15, 7,10,13,10,14,10,12,15,12,14,14,15,14,15, - 15,10,12,14,14,15,14,15,15,15,15, 5, 7,10, 7,10, - 7,10,12,10,12,10,13,15,12,14, 7,10,12,10,11,10, - 12,14,11,14, 7,10,14,10,15,10,12,15,14,15,14,15, - 15,14,15,10,13,15,12,15,14,15,15,15,15, 4, 7,10, - 7, 9, 7,10,13,10,11,10,13,14,13,15, 7,10,12,10, - 12,10,14,15,12,14, 7, 9,13,10,11,10,12,14,11,15, - 12,15,15,14,15, 9,11,14,13,14,12,13,14,15,15, 9, - 12,15,12,15,11,14,15,14,15,15,15,15,15,15,13,14, - 15,13,15,15,15,15,15,15, 7,10,12,10,12, 9,12,14, - 13,14,13,14,15,14,15, 9,11,13,13,15,13,15,14,15, - 15,10,12,15,12,15,14,14,14,15,14,15,15,15,15,15, - 13,13,15,14,15,14,15,15,15,15, 7, 9,14,10,14,10, - 12,15,13,15,14,15,15,15,15,10,12,15,12,15,15,14, - 15,15,15, 9,12,15,12,15,12,15,15,15,15,15,15,15, - 15,14,11,15,15,14,15,15,15,15,15,15,12,14,15,14, - 15,13,15,15,15,15,15,15,15,15,15,15,14,15,15,15, - 15,15,15,15,15,10,12,14,12,14,13,15,13,13,15,15, - 15,15,15,15,13,15,15,15,15,15,15,15,15,15,13,15, - 15,15,15,14,15,15,15,15,15,15,15,15,15,14,15,15, - 15,15,15,15,15,15,15, 5, 7,11, 7,10, 7,10,13,10, - 12,11,13,15,13,13, 7,10,12,10,12,10,13,15,13,15, - 7, 9,13, 9,12, 9,12,13,12,13,13,14,15,15,15, 9, - 11,14,12,15,12,13,15,14,15,10,12,15,12,15,13,13, - 15,14,15,14,15,15,15,15,12,15,15,14,15,14,13,15, - 15,15, 7,10,13,10,13,10,12,13,12,13,13,15,15,14, - 14,10,12,14,12,14,13,13,15,14,15,10,12,15,13,15, - 12,15,14,14,15,15,15,15,15,15,12,15,15,13,14,15, - 15,15,15,15, 7,10,15, 9,14,10,12,15,12,13,14,15, - 15,14,15,10,12,13,13,14,15,14,15,15,15, 9,12,15, - 12,15,11,14,15,15,15,15,15,15,15,15,12,13,15,13, - 15,15,15,15,15,15,14,13,15,13,15,14,15,15,14,15, - 15,15,15,15,15,13,14,15,15,15,15,15,15,15,15, 9, - 12,15,12,15,14,14,15,14,15,15,15,15,15,15,12,15, - 15,13,15,15,14,15,15,15,14,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,14,15,15,15,15,15,15,15,15, - 15, + 5, 5, 5, 5, 6, 6, 5, 6, 6, 5, 6, 6, 6, 6, 7, 6, + 6, 7, 5, 6, 6, 6, 7, 6, 6, 7, 6, 6, 6, 6, 6, 7, + 7, 6, 6, 7, 6, 7, 7, 7, 7, 8, 7, 8, 8, 6, 7, 7, + 7, 8, 7, 7, 8, 8, 6, 6, 6, 6, 7, 7, 6, 7, 7, 6, + 7, 7, 7, 8, 8, 6, 7, 8, 6, 7, 7, 7, 8, 8, 7, 8, + 7, }; static float _vq_quantthresh_res0_96_128_2[] = { - -1.5, -0.5, 0.5, 1.5, + -0.5, 0.5, }; static long _vq_quantmap_res0_96_128_2[] = { - 4, 3, 0, 1, 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, - 5, - 5 + 3, + 3 }; static static_codebook _vq_book_res0_96_128_2 = { - 4, 625, + 4, 81, _vq_lengthlist_res0_96_128_2, - 1, -533725184, 1611661312, 3, 0, + 1, -535822336, 1611661312, 2, 0, _vq_quantlist_res0_96_128_2, NULL, &_vq_auxt_res0_96_128_2, diff --git a/lib/books/res0_96_128_3.vqh b/lib/books/res0_96_128_3.vqh index 8d8cc0ee..31f8cb28 100644 --- a/lib/books/res0_96_128_3.vqh +++ b/lib/books/res0_96_128_3.vqh @@ -1,13 +1,12 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * + * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -20,33 +19,33 @@ #include "codebook.h" static long _vq_quantlist_res0_96_128_3[] = { - 5, - 6, - 7, 8, - 10, - 4, + 7, + 9, + 5, + 11, 3, - 2, + 13, 0, + 16, }; static long _vq_lengthlist_res0_96_128_3[] = { - 2, 3, 5, 6, 6, 3, 6, 6, 6, 4, 5, 7, 7, 7, 5, 7, - 7, 7, 7, 8,10,11,10, 9,10,11,10, 9,10,13,13,13, - 11,12,12,13,10,13,14,15,14,13,15,15,16, 4, 5, 7, - 8, 7, 5, 7, 7, 7, 7, 8,10,10,10, 8,10,11,10, 9, - 10,12,13,12,11,13,13,13,11,13,15,15,14,13,14,14, - 16, + 3, 4, 3, 5, 5, 7, 7, 7, 7, 4, 4, 4, 6, 6, 7, 7, + 7, 7, 4, 4, 4, 6, 6, 7, 7, 7, 7, 6, 7, 7, 9, 9, + 9,10, 9,10, 6, 7, 7, 9, 9,10, 9, 9,10,10,10,10, + 11,11,12,12,12,12,10,10,10,12,12,12,12,12,12,11, + 12,12,14,13,14,14,15,14,12,12,12,14,14,15,14,14, + 14, }; static float _vq_quantthresh_res0_96_128_3[] = { - -4, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 4, + -6.5, -4, -2, -0.5, 0.5, 2, 4, 6.5, }; static long _vq_quantmap_res0_96_128_3[] = { - 8, 7, 6, 5, 0, 1, 2, 3, - 4, + 7, 5, 3, 1, 0, 2, 4, 6, + 8, }; static encode_aux_threshmatch _vq_auxt_res0_96_128_3 = { @@ -59,7 +58,7 @@ static encode_aux_threshmatch _vq_auxt_res0_96_128_3 = { static static_codebook _vq_book_res0_96_128_3 = { 2, 81, _vq_lengthlist_res0_96_128_3, - 1, -531365888, 1611661312, 4, 0, + 1, -529530880, 1611661312, 5, 0, _vq_quantlist_res0_96_128_3, NULL, &_vq_auxt_res0_96_128_3, diff --git a/lib/books/res0_96_128_4.vqh b/lib/books/res0_96_128_4.vqh index ee63fc40..5448f971 100644 --- a/lib/books/res0_96_128_4.vqh +++ b/lib/books/res0_96_128_4.vqh @@ -1,13 +1,12 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * + * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -20,56 +19,76 @@ #include "codebook.h" static long _vq_quantlist_res0_96_128_4[] = { - 11, - 12, - 13, - 14, - 16, + 24, + 23, + 25, + 21, + 27, 19, - 22, + 29, + 16, + 32, + 13, + 35, 10, - 9, - 8, - 6, - 3, + 38, + 7, + 41, + 4, + 44, 0, + 48, }; static long _vq_lengthlist_res0_96_128_4[] = { - 2, 4, 5, 6, 6, 6, 8, 3, 5, 6, 6, 6, 7, 4, 5, 7, - 8, 8, 8, 9, 5, 7, 7, 8, 7, 9, 8, 8,10,11,11,11, - 12, 8,10,11,11,11,13,10,11,13,14,14,14,15,11,12, - 14,14,14,15,13,14,15,16,18,16,17,14,15,18,16,16, - 18,13,17,17,16,18,18,18,16,17,18,18,18,18,14,18, - 18,18,18,18,18,18,18,18,18,18,18, 4, 5, 7, 7, 8, - 8, 9, 5, 7, 7, 8, 7, 9, 8, 9,10,11,11,11,12, 8, - 10,11,11,11,13,10,11,12,13,13,14,16,11,13,13,13, - 14,15,13,14,16,16,17,16,18,14,15,17,17,15,18,13, - 17,17,17,18,18,18,16,17,17,18,18,18,15,18,18,18, - 18,18,18,18,17,18,18,18,17, + 4, 4, 4, 6, 6, 6, 6, 7, 7, 6, 7, 7, 8, 9, 9,10, + 10,11,11, 4, 4, 4, 6, 6, 7, 7, 7, 7, 6, 7, 7, 7, + 9, 9,10,10,11,11, 4, 4, 4, 6, 6, 7, 7, 7, 7, 6, + 7, 7, 8, 8, 9,10,10,11,11, 7, 7, 7, 9, 9, 9, 9, + 10,10, 9, 9,10,10,11,12,13,12,15,14, 7, 7, 7, 9, + 9,10,10,10,10, 9, 9,10,10,12,12,12,12,13,13,10, + 10,10,11,11,12,13,11,12,12,12,13,12,13,14,15,14, + 14,14,10,10,10,11,11,11,11,12,12,12,11,13,12,13, + 13,15,14,17,17,12,11,12,12,13,13,12,15,13,15,13, + 14,14,15,15,15,16,16,16,11,12,11,13,13,13,13,14, + 15,13,13,14,15,15,15,16,15,16,16,12,12,12,14,14, + 15,14,14,13,14,14,15,16,16,15,16,16,16,16,12,12, + 12,14,14,14,15,15,13,14,14,15,15,15,16,16,16,15, + 16,13,13,14,14,15,15,16,16,15,15,16,16,16,16,16, + 16,16,16,16,13,13,14,14,14,15,15,15,15,16,16,16, + 16,16,16,16,16,16,16,14,14,15,16,16,16,16,16,15, + 16,16,16,16,16,16,16,16,16,16,15,15,15,15,16,16, + 15,15,15,16,16,16,16,16,16,16,16,16,16,15,16,16, + 16,16,16,15,16,15,16,16,16,16,16,16,16,16,16,16, + 14,16,16,15,16,16,15,16,15,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,15,15,15,16,16,16,16,16,16,16, + 16,16,16,16,16,16,16,16,16, }; static float _vq_quantthresh_res0_96_128_4[] = { - -9.5, -6.5, -4, -2.5, -1.5, -0.5, 0.5, 1.5, - 2.5, 4, 6.5, 9.5, + -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[] = { - 12, 11, 10, 9, 8, 7, 0, 1, - 2, 3, 4, 5, 6, + 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, - 13, - 13 + 19, + 19 }; static static_codebook _vq_book_res0_96_128_4 = { - 2, 169, + 2, 361, _vq_lengthlist_res0_96_128_4, - 1, -529137664, 1611661312, 5, 0, + 1, -526909440, 1611661312, 6, 0, _vq_quantlist_res0_96_128_4, NULL, &_vq_auxt_res0_96_128_4, diff --git a/lib/books/res0_96_128_5.vqh b/lib/books/res0_96_128_5.vqh index b993059f..b782ba3c 100644 --- a/lib/books/res0_96_128_5.vqh +++ b/lib/books/res0_96_128_5.vqh @@ -1,13 +1,12 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH * + * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * + * by the XIPHOPHORUS Company, http://www.xiph.org/ * * * ******************************************************************** @@ -20,101 +19,78 @@ #include "codebook.h" static long _vq_quantlist_res0_96_128_5[] = { - 102, - 103, - 104, - 105, - 107, - 110, - 113, - 116, - 119, - 122, - 126, - 130, - 133, - 137, - 141, - 145, - 149, - 153, - 158, - 163, - 168, - 173, - 174, - 180, - 186, - 192, - 198, - 204, - 101, - 100, - 99, - 97, - 94, - 91, - 88, - 85, - 82, + 61, + 60, + 62, + 58, + 64, + 56, + 66, + 53, + 69, + 50, + 72, + 47, + 75, + 44, 78, - 74, - 71, - 67, - 63, - 59, - 55, - 51, - 46, 41, - 36, - 31, + 81, + 37, + 85, + 33, + 89, 30, - 24, + 92, + 26, + 96, + 22, + 100, 18, - 12, - 6, + 104, + 14, + 108, + 10, + 112, + 5, + 117, 0, + 122, }; static long _vq_lengthlist_res0_96_128_5[] = { - 1, 3, 4, 6, 6, 8,10, 6, 9,12,14,15,15,15,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15, 3, 4, 5, 6, - 8,10, 6, 9,12,13,15,15,15,15,15,15,15,15,15,14, - 14,14,14,14,14,14,14, + 2, 2, 2, 4, 4, 5, 6, 8, 7,10, 9,10,11,11,11,12, + 12,12,12, 6, 6, 8, 7, 8, 8, 9, 9,11,10,12,12,12, + 11,11,10,12,10, }; static float _vq_quantthresh_res0_96_128_5[] = { - -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.5, -1.5, -0.5, 0.5, 1.5, 2.5, 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, + -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[] = { - 54, 53, 52, 51, 50, 49, 48, 47, - 46, 45, 44, 43, 42, 41, 40, 39, - 38, 37, 36, 35, 34, 33, 32, 31, - 30, 29, 28, 0, 1, 2, 3, 4, - 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, + 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, - 55, - 55 + 37, + 37 }; static static_codebook _vq_book_res0_96_128_5 = { - 1, 55, + 1, 37, _vq_lengthlist_res0_96_128_5, - 1, -522616832, 1611661312, 8, 0, + 1, -524386304, 1611661312, 7, 0, _vq_quantlist_res0_96_128_5, NULL, &_vq_auxt_res0_96_128_5, diff --git a/lib/books/res0_96_128aux.vqh b/lib/books/res0_96_128aux.vqh index f2c013dd..df458b55 100644 --- a/lib/books/res0_96_128aux.vqh +++ b/lib/books/res0_96_128aux.vqh @@ -20,13 +20,91 @@ #include "codebook.h" static long _huff_lengthlist_res0_96_128aux[] = { - 4, 9,12,12,16,16, 2, 3, 8,10,16,15, 6, 7,10,11, - 14,16, 7, 3, 6, 7,12,13, 5, 2, 4, 7,13,15, 9, 6, - 8,12,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,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,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,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,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,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,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,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,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,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,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,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,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,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,15,15, + 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,13,15,15,15,15, + 15,13,13,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,13, + 13,15,15,15,15,13,12,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,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,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,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,15,15,15,15,15,15,15,13,12,15,15,15,15,13,12, + 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,14,12,15,12, + 15,15,11, 4, 5, 6,13,15,12, 5, 5, 8,14,15,10, 6, + 8, 9,14,15,15,14,15,14,15,15,15,15,15,15,15,15, + 15,13,12,12,15,15,11, 4, 5, 7,15,15,11, 4, 5, 8, + 15,15,13, 7, 8,10,15,15,15,14,15,15,15,15,15,15, + 15,15,15,15,15,13,13,10,15,15,13, 6, 6, 7,12,15, + 12, 6, 8, 9,15,15,12, 8, 9, 9,15,15,15,15,15,15, + 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,13, + 15,13,15,15,15,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, + 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, + 12,14,15,15,15,15,15,13,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,14,12,11,15,15,11, 4, 5, 6,15,15, + 12, 5, 6, 8,15,15, 9, 6, 8, 8,15,15,14,14,15,15, + 15,15,15,15,15,15,15,15,15,15,11,12,15,15,12, 4, + 5, 7,15,15,11, 5, 5, 8,15,15,12, 7, 8, 9,15,15, + 15,15,15,15,15,15,15,15,15,15,15,15,15,12,12,10, + 15,15,12, 5, 6, 7,14,15,14, 6, 7, 9,15,15,13, 7, + 9,10,15,15,15,15,15,15,15,15,15,15,15,15,15,15, + 15,15,15,15,15,15,15,13,15,13,15,15,15,15,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, + 15,15,15,15,15,15,15,15,15,15,15,15,15,15,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,14,14, + 14,14,14,10,10,12,14,14,14,11,11,13,14,14,14,12, + 12,12,14,14,14,14,14,14,14,14,14,14,14,14,14,14, + 14,14,14,14,14,14,14,10,11,13,14,14,14,11,11,13, + 14,14,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,11,12,12,14,14, + 14,13,13,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,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, }; static static_codebook _huff_book_res0_96_128aux = { - 2, 36, + 4, 1296, _huff_lengthlist_res0_96_128aux, 0, 0, 0, 0, 0, NULL, diff --git a/lib/codec_internal.h b/lib/codec_internal.h index 1c609fc3..826f5337 100644 --- a/lib/codec_internal.h +++ b/lib/codec_internal.h @@ -12,7 +12,7 @@ ******************************************************************** function: libvorbis codec headers - last mod: $Id: codec_internal.h,v 1.3 2000/11/17 11:47:18 xiphmont Exp $ + last mod: $Id: codec_internal.h,v 1.4 2001/01/22 01:38:24 xiphmont Exp $ ********************************************************************/ @@ -24,6 +24,11 @@ #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; @@ -49,6 +54,8 @@ typedef struct backend_lookup_state { unsigned char *header1; unsigned char *header2; + float ampmax; + } backend_lookup_state; /* mode ************************************************************/ @@ -103,11 +110,17 @@ typedef struct codec_setup_info { vorbis_info_psy *psy_param[64]; /* encode only */ /* for block long/sort tuning; encode only */ - int envelopesa; + int envelopesa; float preecho_thresh; - float preecho_clamp; + float postecho_thresh; 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 index 30ba2a8b..259da312 100644 --- a/lib/envelope.c +++ b/lib/envelope.c @@ -12,7 +12,7 @@ ******************************************************************** function: PCM data envelope analysis and manipulation - last mod: $Id: envelope.c,v 1.28 2000/12/21 21:04:39 xiphmont Exp $ + last mod: $Id: envelope.c,v 1.29 2001/01/22 01:38:24 xiphmont Exp $ Preecho calculation. @@ -111,52 +111,53 @@ void _ve_envelope_clear(envelope_lookup *e){ memset(e,0,sizeof(envelope_lookup)); } -static float _ve_deltai(envelope_lookup *ve, - float *pre,float *post){ - long n2=ve->winlength*2; +/* 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; - float *workA=alloca(sizeof(float)*n2),A=0.f; - float *workB=alloca(sizeof(float)*n2),B=0.f; 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; + /*_analysis_output("A",granulepos,pre,n,0,0); _analysis_output("B",granulepos,post,n,0,0);*/ for(i=0;i<n;i++){ - workA[i]=pre[i]*ve->window[i]; - workB[i]=post[i]*ve->window[i]; + A+=pre[i]*pre[i]; + B+=post[i]*post[i]; } - /*_analysis_output("Awin",granulepos,workA,n,0,0); - _analysis_output("Bwin",granulepos,workB,n,0,0);*/ + A=todB(A); + B=todB(B); + + return(B-A); +} - drft_forward(&ve->drft,workA); - drft_forward(&ve->drft,workB); +static float _ve_ampi(envelope_lookup *ve,float *pre){ + 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; - for(i=0;i<n;i++){ - if(fabs(workA[i])<min)workA[i]=min; - if(fabs(workB[i])<min)workB[i]=min; - } - } - /*_analysis_output("Afft",granulepos,workA,n,0,0); - _analysis_output("Bfft",granulepos,workB,n,0,0);*/ + float min=ve->minenergy; + float A=min*min*n; for(i=0;i<n;i++){ - A+=workA[i]*workA[i]; - B+=workB[i]*workB[i]; + A+=pre[i]*pre[i]; } A=todB(A); - B=todB(B); - - return(B-A); + return(A); } long _ve_envelope_search(vorbis_dsp_state *v,long searchpoint){ @@ -164,7 +165,7 @@ long _ve_envelope_search(vorbis_dsp_state *v,long searchpoint){ codec_setup_info *ci=vi->codec_setup; envelope_lookup *ve=((backend_lookup_state *)(v->backend_state))->ve; long i,j; - + /* make sure we have enough storage to match the PCM */ if(v->pcm_storage>ve->storage){ ve->storage=v->pcm_storage; @@ -194,7 +195,7 @@ long _ve_envelope_search(vorbis_dsp_state *v,long searchpoint){ j=v->centerW+ci->blocksizes[1]/4-ci->blocksizes[0]/4; else j=v->centerW; - + while(j+ve->winlength<=v->pcm_current){ for(i=0;i<ve->ch;i++){ float *filtered=ve->filtered[i]+j; @@ -204,13 +205,20 @@ long _ve_envelope_search(vorbis_dsp_state *v,long searchpoint){ /*granulepos++;*/ return(0); } + if(m<ci->postecho_thresh){ + /*granulepos++;*/ + return(0); + } /*granulepos++;*/ } - j+=ci->blocksizes[0]/2; - if(j>=searchpoint)return(1); + j+=min(ci->blocksizes[0],ve->winlength)/2; + + if(j>=searchpoint){ + return(1); + } } - + return(-1); } diff --git a/lib/floor0.c b/lib/floor0.c index a449fd49..f5224d74 100644 --- a/lib/floor0.c +++ b/lib/floor0.c @@ -12,7 +12,7 @@ ******************************************************************** function: floor backend 0 implementation - last mod: $Id: floor0.c,v 1.34 2000/12/21 21:04:39 xiphmont Exp $ + last mod: $Id: floor0.c,v 1.35 2001/01/22 01:38:24 xiphmont Exp $ ********************************************************************/ @@ -238,12 +238,13 @@ float _curve_to_lpc(float *curve,float *lpc, } /* generate the whole freq response curve of an LSP IIR filter */ +/* didn't need in->out seperation, modifies the flr[] vector; takes in + a dB scale floor, puts out linear */ static int floor0_forward(vorbis_block *vb,vorbis_look_floor *i, - float *in,float *out,vorbis_bitbuffer *vbb){ + float *flr){ long j; vorbis_look_floor0 *look=(vorbis_look_floor0 *)i; vorbis_info_floor0 *info=look->vi; - float *work=alloca((look->ln+look->n)*sizeof(float)); float amp; long bits=0; long val=0; @@ -258,20 +259,17 @@ static int floor0_forward(vorbis_block *vb,vorbis_look_floor *i, sprintf(buffer,"lsp0coeff_%d.vqd",vb->mode); of=fopen(buffer,"a"); #endif - - sprintf(buffer,"lsp0ent_%d.vqd",vb->mode); - ef=fopen(buffer,"a"); #endif - /* our floor comes in on a linear scale; go to a [-Inf...0] dB - scale. The curve has to be positive, so we offset it. */ + /* 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++) - work[j]=todB(in[j])+info->ampdB; + flr[j]+=info->ampdB; /* use 'out' as temp storage */ /* Convert our floor to a set of lpc coefficients */ - amp=sqrt(_curve_to_lpc(work,out,look)); + amp=sqrt(_curve_to_lpc(flr,flr,look)); /* amp is in the range (0. to ampdB]. Encode that range using ampbits bits */ @@ -284,7 +282,7 @@ static int floor0_forward(vorbis_block *vb,vorbis_look_floor *i, if(val<0)val=0; /* likely */ if(val>maxval)val=maxval; /* not bloody likely */ - /*oggpack_write(&vb->opb,val,info->ampbits);*/ + oggpack_write(&vb->opb,val,info->ampbits); if(val>0) amp=(float)val/maxval*info->ampdB; else @@ -292,41 +290,68 @@ static int floor0_forward(vorbis_block *vb,vorbis_look_floor *i, } 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=be->fullbooks+info->books[0]; - bitbuf_write(vbb,0,_ilog(info->numbooks)); + codebook *b; + int booknum; /* LSP <-> LPC is orthogonal and LSP quantizes more stably */ - vorbis_lpc_to_lsp(out,out,look->m); + _analysis_output("lpc",seq,flr,look->m,0,0); + + vorbis_lpc_to_lsp(flr,flr,look->m); + + _analysis_output("lsp",seq,flr,look->m,0,0); #ifdef ANALYSIS { - float *lspwork=alloca(look->m*sizeof(float)); - memcpy(lspwork,out,look->m*sizeof(float)); - vorbis_lsp_to_curve(work,look->linearmap,look->n,look->ln, - lspwork,look->m,amp,info->ampdB); - _analysis_output("prefit",seq,work,look->n,0,1); - + float *lspwork2=alloca(look->m*sizeof(float)); + memcpy(lspwork2,flr,sizeof(float)*look->m); + memcpy(lspwork,flr,sizeof(float)*look->m); + vorbis_lsp_to_curve(flr,look->linearmap,look->n,look->ln, + lspwork2,look->m,amp,info->ampdB); + + _analysis_output("prefit",seq++,flr,look->n,0,1); + memcpy(flr,lspwork,sizeof(float)*look->m); } #endif + /* 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=flr[j]-last; + if(val<info->lessthan || val>info->greaterthan)break; + last=flr[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)); + -#if 1 #ifdef TRAIN_LSP { float last=0.f; for(j=0;j<look->m;j++){ - fprintf(of,"%.12g, ",out[j]-last); - last=out[j]; + fprintf(of,"%.12g, ",flr[j]-last); + last=flr[j]; } } fprintf(of,"\n"); fclose(of); -#endif + + 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 @@ -334,8 +359,8 @@ static int floor0_forward(vorbis_block *vb,vorbis_look_floor *i, nailed to the last quantized value of the previous block. */ for(j=0;j<look->m;j+=b->dim){ - int entry=_f0_fit(b,out,work,j); - bits+=vorbis_book_bufencode(b,entry,vbb); + int entry=_f0_fit(b,flr,lspwork,j); + bits+=vorbis_book_encode(b,entry,&vb->opb); #ifdef TRAIN_LSP fprintf(ef,"%d,\n",entry); @@ -343,56 +368,25 @@ static int floor0_forward(vorbis_block *vb,vorbis_look_floor *i, } -#ifdef ANALYSIS - { - float last=0; - for(j=0;j<look->m;j++){ - out[j]=work[j]-last; - last=work[j]; - } - } - -#endif - #ifdef TRAIN_LSP fclose(ef); #endif /* take the coefficients back to a spectral envelope curve */ - vorbis_lsp_to_curve(out,look->linearmap,look->n,look->ln, - work,look->m,amp,info->ampdB); + vorbis_lsp_to_curve(flr,look->linearmap,look->n,look->ln, + lspwork,look->m,amp,info->ampdB); return(val); } - memset(out,0,sizeof(float)*look->n); +#ifdef TRAIN_LSP + fclose(of); +#endif + + memset(flr,0,sizeof(float)*look->n); seq++; return(val); } -static float floor0_forward2(vorbis_block *vb,vorbis_look_floor *i, - long amp,float error, - vorbis_bitbuffer *vbb){ - - vorbis_look_floor0 *look=(vorbis_look_floor0 *)i; - vorbis_info_floor0 *info=look->vi; - if(amp){ - long maxval=(1L<<info->ampbits)-1; - long adj=rint(todB(error)/info->ampdB*maxval/2); - - amp+=adj; - if(amp<1)amp=1; - - oggpack_write(&vb->opb,amp,info->ampbits); - bitbuf_pack(&vb->opb,vbb); - return(fromdB((float)adj/maxval*info->ampdB)); - }else{ - oggpack_write(&vb->opb,0,info->ampbits); - bitbuf_pack(&vb->opb,vbb); - } - return(0.f); -} - - static int floor0_inverse(vorbis_block *vb,vorbis_look_floor *i,float *out){ vorbis_look_floor0 *look=(vorbis_look_floor0 *)i; vorbis_info_floor0 *info=look->vi; @@ -434,7 +428,7 @@ static int floor0_inverse(vorbis_block *vb,vorbis_look_floor *i,float *out){ /* 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_forward2,&floor0_inverse + &floor0_free_look,&floor0_forward,&floor0_inverse }; @@ -12,7 +12,7 @@ ******************************************************************** function: maintain the info structure, info <-> header packets - last mod: $Id: info.c,v 1.34 2001/01/18 10:54:32 msmith Exp $ + last mod: $Id: info.c,v 1.35 2001/01/22 01:38:24 xiphmont Exp $ ********************************************************************/ @@ -409,7 +409,7 @@ static int _vorbis_pack_info(oggpack_buffer *opb,vorbis_info *vi){ } static int _vorbis_pack_comment(oggpack_buffer *opb,vorbis_comment *vc){ - char temp[]="Xiphophorus libVorbis I 20001031"; + char temp[]="Xiphophorus libVorbis I 20010119"; /* preamble */ oggpack_write(opb,0x03,8); diff --git a/lib/lookup.c b/lib/lookup.c index 477c23c3..625afc47 100644 --- a/lib/lookup.c +++ b/lib/lookup.c @@ -12,7 +12,7 @@ ******************************************************************** function: lookup based functions - last mod: $Id: lookup.c,v 1.4 2000/12/21 21:04:39 xiphmont Exp $ + last mod: $Id: lookup.c,v 1.5 2001/01/22 01:38:25 xiphmont Exp $ ********************************************************************/ @@ -46,7 +46,7 @@ float vorbis_invsq2explook(int a){ #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)))-5.f); + 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]); diff --git a/lib/lookup_data.h b/lib/lookup_data.h index b87937b3..4956c71d 100644 --- a/lib/lookup_data.h +++ b/lib/lookup_data.h @@ -12,7 +12,7 @@ ******************************************************************** function: lookup data; generated by lookups.pl; edit there - last mod: $Id: lookup_data.h,v 1.4 2000/12/21 21:04:39 xiphmont Exp $ + last mod: $Id: lookup_data.h,v 1.5 2001/01/22 01:38:25 xiphmont Exp $ ********************************************************************/ @@ -73,15 +73,15 @@ static float INVSQ_LOOKUP[INVSQ_LOOKUP_SZ+1]={ #define INVSQ2EXP_LOOKUP_MAX 32 static float INVSQ2EXP_LOOKUP[INVSQ2EXP_LOOKUP_MAX-\ INVSQ2EXP_LOOKUP_MIN+1]={ - 65536f, 46340.95001f, 32768f, 23170.47501f, - 16384f, 11585.2375f, 8192f, 5792.618751f, - 4096f, 2896.309376f, 2048f, 1448.154688f, - 1024f, 724.0773439f, 512f, 362.038672f, - 256f, 181.019336f, 128f, 90.50966799f, - 64f, 45.254834f, 32f, 22.627417f, - 16f, 11.3137085f, 8f, 5.656854249f, - 4f, 2.828427125f, 2f, 1.414213562f, - 1f, 0.7071067812f, 0.5f, 0.3535533906f, + 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, @@ -12,11 +12,11 @@ ******************************************************************** function: LSP (also called LSF) conversion routines - last mod: $Id: lsp.c,v 1.13 2000/12/21 21:04:39 xiphmont Exp $ + last mod: $Id: lsp.c,v 1.14 2001/01/22 01:38:25 xiphmont Exp $ - The LSP generation code is taken (with minimal modification) from - "On the Computation of the LSP Frequencies" by Joseph Rothweiler - <rothwlr@altavista.net>, available at: + 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 @@ -53,7 +53,7 @@ /* undefine both for the 'old' but more precise implementation */ #undef FLOAT_LOOKUP -#undef INT_LOOKUP +#undef INT_LOOKUP #ifdef FLOAT_LOOKUP #include "lookup.c" /* catch this in the build system; we #include for @@ -81,12 +81,24 @@ void vorbis_lsp_to_curve(float *curve,int *map,int n,int ln,float *lsp,int m, int c=m>>1; do{ - p*=ftmp[0]-w; - q*=ftmp[1]-w; + q*=ftmp[0]-w; + p*=ftmp[1]-w; ftmp+=2; }while(--c); - q=frexp(p*p*(1.f+w)+q*q*(1.f-w),&qexp); + 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)- @@ -144,37 +156,68 @@ void vorbis_lsp_to_curve(float *curve,int *map,int n,int ln,float *lsp,int m, int qexp=0,shift; long wi=vorbis_coslook_i(k*65536/ln); - pi*=labs(ilsp[0]-wi); - qi*=labs(ilsp[1]-wi); + qi*=labs(ilsp[0]-wi); + pi*=labs(ilsp[1]-wi); - for(j=2;j<m;j+=2){ + 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); - qi=(qi>>shift)*labs(ilsp[j+1]-wi); 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-7*m; /* pi,qi normalized collectively, both tracked using qexp */ - /* p*=p(1-w), q*=q(1+w), let normalization drift because it isn't - worth tracking step by step */ - - pi=((pi*pi)>>16); - qi=((qi*qi)>>16); - qexp=qexp*2+m; + 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; - qi*=(1<<14)-wi; - pi*=(1<<14)+wi; + 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; + + //q*=ftmp[0]-w; + //q*=q; + //p*=p*(1.f-w*w); + }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; + + } - 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 @@ -200,7 +243,7 @@ void vorbis_lsp_to_curve(float *curve,int *map,int n,int ln,float *lsp,int m, #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 tiny + 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 */ @@ -216,12 +259,22 @@ void vorbis_lsp_to_curve(float *curve,int *map,int n,int ln,float *lsp,int m, float p=.5f; float q=.5f; float w=2.f*cos(wdel*k); - for(j=0;j<m;j+=2){ + for(j=1;j<m;j+=2){ + q *= w-lsp[j-1]; p *= w-lsp[j]; - q *= w-lsp[j+1]; } - p*=p*(2.f+w); - q*=q*(2.f-w); + 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; @@ -339,37 +392,48 @@ static void Newton_Raphson_Maehly(float *a,int ord,float *r){ /* Convert lpc coefficients to lsp coefficients */ void vorbis_lpc_to_lsp(float *lpc,float *lsp,int m){ - int order2=m/2; + 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[order2] = 1.f; - for(i=0;i<order2;i++) g1[order2-i-1] = lpc[i]+lpc[m-i-1]; - g2[order2] = 1.f; - for(i=0;i<order2;i++) g2[order2-i-1] = lpc[i]-lpc[m-i-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]; - for(i=0; i<order2;i++) g1[order2-i-1] -= g1[order2-i]; - for(i=0; i<order2;i++) g2[order2-i-1] += g2[order2-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,order2); - cheby(g2,order2); + cheby(g1,g1_order); + cheby(g2,g2_order); /* Find the roots of the 2 even polynomials.*/ - Newton_Raphson_Maehly(g1,order2,g1r); - Newton_Raphson_Maehly(g2,order2,g2r); + Newton_Raphson_Maehly(g1,g1_order,g1r); + Newton_Raphson_Maehly(g2,g2_order,g2r); + + 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]); - for(i=0;i<m;i+=2){ - lsp[i] = acos(g1r[i/2]); - lsp[i+1] = acos(g2r[i/2]); - } } diff --git a/lib/mapping0.c b/lib/mapping0.c index b14bd507..d4c873cc 100644 --- a/lib/mapping0.c +++ b/lib/mapping0.c @@ -12,7 +12,7 @@ ******************************************************************** function: channel mapping 0 implementation - last mod: $Id: mapping0.c,v 1.22 2000/12/21 21:04:39 xiphmont Exp $ + last mod: $Id: mapping0.c,v 1.23 2001/01/22 01:38:25 xiphmont Exp $ ********************************************************************/ @@ -39,6 +39,7 @@ parameters from other areas of the mode/mapping */ typedef struct { + drft_lookup fft_look; vorbis_info_mode *mode; vorbis_info_mapping0 *map; @@ -53,7 +54,6 @@ typedef struct { vorbis_func_residue **residue_func; int ch; - float **decay; long lastframe; /* if a different mode is called, we need to invalidate decay */ } vorbis_look_mapping0; @@ -76,6 +76,8 @@ 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]); @@ -83,13 +85,6 @@ static void mapping0_free_look(vorbis_look_mapping *look){ if(l->psy_look)_vp_psy_clear(l->psy_look+i); } - if(l->decay){ - for(i=0;i<l->ch;i++){ - if(l->decay[i])_ogg_free(l->decay[i]); - } - _ogg_free(l->decay); - } - _ogg_free(l->time_func); _ogg_free(l->floor_func); _ogg_free(l->residue_func); @@ -144,12 +139,8 @@ static vorbis_look_mapping *mapping0_look(vorbis_dsp_state *vd,vorbis_info_mode } look->ch=vi->channels; - if(ci->psys){ - look->decay=_ogg_calloc(vi->channels,sizeof(float *)); - for(i=0;i<vi->channels;i++) - look->decay[i]=_ogg_calloc(ci->blocksizes[vm->blockflag]/2,sizeof(float)); - } + if(vd->analysisp)drft_init(&look->fft_look,ci->blocksizes[vm->blockflag]); return(look); } @@ -212,171 +203,116 @@ static vorbis_info_mapping *mapping0_unpack(vorbis_info *vi,oggpack_buffer *opb) /* 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; - int n=vb->pcmend; + 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 *nonzero=alloca(sizeof(int)*vi->channels); - float **floor=_vorbis_block_alloc(vb,vi->channels*sizeof(float *)); - float **nonquant=_vorbis_block_alloc(vb,vi->channels*sizeof(float *)); - - vorbis_bitbuffer vbb_res; - vorbis_bitbuffer *vbb_flr=_vorbis_block_alloc(vb, - sizeof(vorbis_bitbuffer)* - vi->channels); - - for(i=0;i<vi->channels;i++) - bitbuf_init(vbb_flr+i,vb); - bitbuf_init(&vbb_res,vb); - - /* time domain pre-window: NONE IMPLEMENTED */ - /* window the PCM data: takes PCM vector, vb; modifies PCM vector */ + float **floor=_vorbis_block_alloc(vb,vi->channels*sizeof(float *)); + float *additional=_vorbis_block_alloc(vb,n*sizeof(float)); + float newmax=vbi->ampmax; for(i=0;i<vi->channels;i++){ float *pcm=vb->pcm[i]; + float scale=4.f/n; + int submap=info->chmuxlist[i]; + float ret; + + _analysis_output("pcm",seq,pcm,n,0,0); + + /* window the PCM data */ for(j=0;j<n;j++) - pcm[j]*=window[j]; - } + additional[j]=pcm[j]*=window[j]; - /* time-domain post-window: NONE IMPLEMENTED */ + _analysis_output("windowed",seq,pcm,n,0,0); - /* 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]; - float *outq=nonquant[i]=_vorbis_block_alloc(vb,n*sizeof(float)); + /* transform the PCM data */ + /* only MDCT right now.... */ mdct_forward(b->transform[vb->W][0],pcm,pcm); + + /* FFT yields more accurate tonal estimation (not phase sensitive) */ + drft_forward(&look->fft_look,additional); + + additional[0]*=scale; + for(j=1;j<n-1;j+=2) + additional[(j+1)>>1]=scale*FAST_HYPOT(additional[j],additional[j+1]); - memcpy(pcm+n/2,pcm,n*sizeof(float)/2); - mdct_backward(b->transform[vb->W][0],pcm,outq); - for(j=0;j<n;j++) - outq[j]*=window[j]; + /* set up our masking data working vector, and stash unquantized + data for later */ + /*memcpy(pcm+n/2,pcm,n*sizeof(float)/2);*/ + memcpy(additional+n/2,pcm,n*sizeof(float)/2); + + /* begin masking work */ + floor[i]=_vorbis_block_alloc(vb,n*sizeof(float)/2); + + //_analysis_output("fft",seq,additional,n/2,0,1); + //_analysis_output("mdct",seq,additional+n/2,n/2,0,1); + //_analysis_output("lfft",seq,additional,n/2,0,0); + //_analysis_output("lmdct",seq,additional+n/2,n/2,0,0); + + /* perform psychoacoustics; do masking */ + ret=_vp_compute_mask(look->psy_look+submap,additional,additional+n/2, + floor[i],NULL,vbi->ampmax); + if(ret>newmax)newmax=ret; + + _analysis_output("prefloor",seq,floor[i],n/2,0,0); - } + /* perform floor encoding */ + nonzero[i]=look->floor_func[submap]-> + forward(vb,look->floor_look[submap],floor[i]); - { - for(i=0;i<vi->channels;i++){ - float *pcm=vb->pcm[i]; - float *decay=look->decay[i]; - int submap=info->chmuxlist[i]; - floor[i]=_vorbis_block_alloc(vb,n*sizeof(float)/2); - - /* if some other mode/mapping was called last frame, our decay - accumulator is out of date. Clear it. */ - if(look->lastframe+1 != vb->sequence) - memset(decay,0,n*sizeof(float)/2); - - /* perform psychoacoustics; do masking */ - _vp_compute_mask(look->psy_look+submap,pcm,floor[i],decay); - - _analysis_output("decay",seq,decay,n/2,0,1); - _analysis_output("mdct",seq,pcm,n/2,0,1); - _analysis_output("lmdct",seq,pcm,n/2,0,0); - _analysis_output("prefloor",seq,floor[i],n/2,0,1); - - /* perform floor encoding */ - nonzero[i]=look->floor_func[submap]-> - forward(vb,look->floor_look[submap],floor[i],floor[i],vbb_flr+i); - - _analysis_output("floor",seq,floor[i],n/2,0,1); - - /* apply the floor, do optional noise levelling */ - _vp_apply_floor(look->psy_look+submap,pcm,floor[i]); - - _analysis_output("res",seq++,pcm,n/2,0,0); + _analysis_output("floor",seq,floor[i],n/2,0,1); + + /* apply the floor, do optional noise levelling */ + _vp_apply_floor(look->psy_look+submap,pcm,floor[i]); + + _analysis_output("res",seq++,pcm,n/2,0,0); #ifdef TRAIN_RES - if(nonzero[i]){ - FILE *of; - char buffer[80]; - int i; - - sprintf(buffer,"residue_%d.vqd",vb->mode); - of=fopen(buffer,"a"); - for(i=0;i<n/2;i++) - fprintf(of,"%.2f, ",pcm[i]); - fprintf(of,"\n"); - fclose(of); - } -#endif - - } - - /* 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 && nonzero[j]>0){ - pcmbundle[ch_in_bundle++]=vb->pcm[j]; - } - } + if(nonzero[i]){ + FILE *of; + char buffer[80]; + int i; - look->residue_func[i]->forward(vb,look->residue_look[i], - pcmbundle,ch_in_bundle,&vbb_res); + sprintf(buffer,"residue_%d.vqd",vb->mode); + of=fopen(buffer,"a"); + for(i=0;i<n/2;i++) + fprintf(of,"%.2f, ",pcm[i]); + fprintf(of,"\n"); + fclose(of); } +#endif + + } - /* go back and compute the original MDCT inverse and our quantized - inverse; we'll want to give the floor mapping a shot at - massaging things before we write out the final version. */ - - { - for(i=0;i<vi->channels;i++){ - float *pcm=vb->pcm[i]; - float *pcmori=vb->pcm[i]+n/2; - float *orig=nonquant[i]; - float *quant=floor[i]; - float num=0.f,den=0.f; - int submap=info->chmuxlist[i]; - - if(nonzero[i]){ - - for(j=0;j<n/2;j++) - pcm[j]=pcmori[j]-pcm[j]*quant[j]; - - mdct_backward(b->transform[vb->W][0],pcm,pcm); - for(j=0;j<n;j++) - pcm[j]*=window[j]; - - /* weighted compare twixt original and quantized mdct output */ - for(j=0;j<n;j++){ - den+=(pcm[j]*pcm[j]); - num+=(orig[j]*orig[j]); - } - - num=sqrt(num); - den=sqrt(den); - - } - - num=look->floor_func[submap]-> - forward2(vb,look->floor_look[submap], - nonzero[i],den==0.f?0.:num/den,vbb_flr+i); - - /*for(j=0;j<n;j++) - pcm[j]*=num; - _analysis_output("i_orig",seq,orig,n,0,0); - _analysis_output("i_quant",seq++,pcm,n,0,0); - */ + vbi->ampmax=newmax; + /* 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 && nonzero[j]>0){ + pcmbundle[ch_in_bundle++]=vb->pcm[j]; } } - - bitbuf_pack(&vb->opb,&vbb_res); - + + look->residue_func[i]->forward(vb,look->residue_look[i], + pcmbundle,ch_in_bundle); } - + look->lastframe=vb->sequence; return(0); } diff --git a/lib/masking.h b/lib/masking.h index e2e822b1..29358004 100644 --- a/lib/masking.h +++ b/lib/masking.h @@ -12,7 +12,7 @@ ******************************************************************** function: masking curve data for psychoacoustics - last mod: $Id: masking.h,v 1.8 2000/12/21 21:04:39 xiphmont Exp $ + last mod: $Id: masking.h,v 1.9 2001/01/22 01:38:25 xiphmont Exp $ ********************************************************************/ @@ -185,8 +185,8 @@ float tone_8000_80dB_SL[EHMER_MAX]={ 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, -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, + 80, 60, 35, 25, 15, 5, 5, 5, 25, 30, 35,- 40, 45, 50, 55, 60, + 65, 70, 80, 90, 100,-900,-900,-900, -900,-900,-900,-900,-900,-900,-900,-900, -900,-900,-900,-900,-900,-900,-900,-900}; #if 0 /* not used for the time being */ diff --git a/lib/modes/mode_A.h b/lib/modes/mode_A.h index 5a35e5d5..9006309a 100644 --- a/lib/modes/mode_A.h +++ b/lib/modes/mode_A.h @@ -12,7 +12,7 @@ ******************************************************************** function: predefined encoding modes - last mod: $Id: mode_A.h,v 1.7 2000/12/21 21:04:47 xiphmont Exp $ + last mod: $Id: mode_A.h,v 1.8 2001/01/22 01:38:50 xiphmont Exp $ ********************************************************************/ @@ -25,6 +25,8 @@ #include "books/lsp12_0.vqh" #include "books/lsp30_0.vqh" +#include "books/lsp12_1.vqh" +#include "books/lsp30_1.vqh" #include "books/res0_128_128aux.vqh" #include "books/res0_128_1024aux.vqh" @@ -45,114 +47,222 @@ #include "books/res0_128_1024_8.vqh" #include "books/res0_128_1024_9.vqh" + +static vorbis_info_psy _psy_set_A0={ + 1,/*athp*/ + 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.,-35.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*1000*/ + {-30.,-35.,-35.,-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.,-35.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*4000*/ + {-30.,-35.,-35.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*5600*/ + {-30.,-35.,-35.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*8000*/ + {-30.,-35.,-35.,-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,-22.f,-22.f,-22.f,-22.f,-22.f},/*63*/ + {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-22.f,-22.f,-22.f},/*88*/ + {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-22.f,-22.f,-22.f},/*125*/ + {-10.f,-10.f,-10.f,-10.f,-16.f,-16.f,-18.f,-20.f,-22.f,-22.f,-22.f},/*175*/ + {-10.f,-10.f,-10.f,-10.f,-16.f,-16.f,-18.f,-20.f,-22.f,-22.f,-22.f},/*250*/ + {-10.f,-10.f,-10.f,-10.f,-16.f,-16.f,-18.f,-20.f,-22.f,-22.f,-22.f},/*350*/ + {-10.f,-10.f,-10.f,-10.f,-16.f,-16.f,-18.f,-20.f,-22.f,-22.f,-22.f},/*500*/ + {-10.f,-10.f,-10.f,-10.f,-14.f,-14.f,-14.f,-20.f,-22.f,-22.f,-22.f},/*700*/ + {-10.f,-10.f,-10.f,-10.f,-14.f,-14.f,-14.f,-20.f,-22.f,-22.f,-22.f},/*1000*/ + {-10.f,-10.f,-10.f,-10.f,-14.f,-14.f,-16.f,-20.f,-22.f,-22.f,-22.f},/*1400*/ + {-10.f,-10.f,-10.f,-10.f,-14.f,-14.f,-16.f,-20.f,-22.f,-22.f,-22.f},/*2000*/ + {-10.f,-10.f,-10.f,-10.f,-14.f,-14.f,-16.f,-20.f,-22.f,-22.f,-22.f},/*2400*/ + {-10.f,-10.f,-10.f,-10.f,-14.f,-14.f,-16.f,-20.f,-22.f,-22.f,-22.f},/*4000*/ + {-10.f,-10.f,-10.f,-10.f,-10.f,-11.f,-12.f,-13.f,-22.f,-22.f,-22.f},/*5600*/ + {-10.f,-10.f,-10.f,-10.f,-10.f,-11.f,-12.f,-13.f,-22.f,-22.f,-22.f},/*8000*/ + {-10.f,-10.f,-10.f,-10.f,-10.f,-10.f,-10.f,-11.f,-22.f,-22.f,-22.f},/*11500*/ + {-10.f,-10.f,-10.f,-10.f,-10.f,-10.f,-10.f,-10.f,-20.f,-21.f,-22.f},/*16000*/ + }, + + 1,/*noisemaskp */ + -10.f, /* suppress any noise curve over maxspec+n */ + .5f, /* low window */ + .5f, /* high window */ + 5, + 5, + {.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*/ + .850f, 0.f,/*8000*/ + .900f, 0.f,/*11500*/ + .900f, 0.f,/*16000*/ + }, + + 95.f, /* even decade + 5 is important; saves an rint() later in a + tight loop) */ + -22., + + -0., -.004 /* attack/decay control */ +}; + static vorbis_info_psy _psy_set_A={ 1,/*athp*/ 1,/*decayp*/ - 1,/*smoothp*/ - 0,.1f, -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 */ + 1,/* tonemaskp */ /* 0 10 20 30 40 50 60 70 80 90 100 */ - {{-30.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*63*/ - {-30.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*88*/ - {-30.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*125*/ + { + {-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*/ + // {-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-100.}, /*175*/ + // {-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-100.}, /*250*/ + // {-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-100.}, /*350*/ + // {-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-100.}, /*500*/ + // {-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-100.}, /*700*/ + + // {-30.,-35.,-35.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*63*/ + // {-30.,-35.,-35.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*88*/ + // {-30.,-35.,-35.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*125*/ {-30.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*175*/ {-30.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*250*/ {-30.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*350*/ {-30.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*500*/ {-30.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*700*/ + {-30.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*1000*/ {-30.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*/ {-30.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*4000*/ - {-30.f,-30.f,-35.f,-37.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*5600*/ - {-20.f,-25.f,-30.f,-35.f,-35.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*8000*/ - {-20.f,-25.f,-30.f,-33.f,-35.f,-45.f,-55.f,-65.f,-75.f,-90.f,-100.f}, /*11500*/ - {-20.f,-24.f,-26.f,-32.f,-35.f,-45.f,-55.f,-65.f,-75.f,-90.f,-100.f}, /*16000*/ + {-30.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*5600*/ + + {-20.f,-25.f,-30.f,-35.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*8000*/ + {-20.f,-25.f,-30.f,-35.f,-35.f,-45.f,-50.f,-60.f,-70.f,-80.f,-90.f}, /*11500*/ + {-20.f,-24.f,-26.f,-32.f,-35.f,-45.f,-50.f,-60.f,-70.f,-80.f,-90.f}, /*16000*/ + }, 1,/* peakattp */ - {{-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-28.f,-28.f,-28.f}, /*63*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-28.f,-28.f,-28.f}, /*88*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-28.f,-28.f,-28.f}, /*125*/ - { -7.f, -8.f, -9.f,-10.f,-10.f,-11.f,-12.f,-18.f,-28.f,-28.f,-28.f}, /*175*/ - { -7.f, -8.f, -9.f,-10.f,-10.f,-11.f,-12.f,-18.f,-28.f,-28.f,-28.f}, /*250*/ - { -7.f, -8.f, -9.f,-10.f,-10.f,-11.f,-12.f,-18.f,-28.f,-28.f,-28.f}, /*350*/ - { -7.f, -8.f, -9.f,-10.f,-10.f,-11.f,-12.f,-28.f,-28.f,-28.f,-28.f}, /*500*/ - { -7.f, -8.f, -9.f,-10.f,-10.f,-11.f,-12.f,-13.f,-15.f,-18.f,-20.f}, /*700*/ - { -7.f, -8.f, -9.f,-10.f,-10.f,-11.f,-12.f,-13.f,-15.f,-18.f,-20.f}, /*1000*/ - { -7.f, -8.f, -9.f,-10.f,-10.f,-11.f,-12.f,-13.f,-15.f,-18.f,-20.f}, /*1400*/ - { -7.f, -8.f, -9.f,-10.f,-10.f,-11.f,-12.f,-13.f,-15.f,-18.f,-20.f}, /*2000*/ - { -7.f, -8.f, -9.f,-10.f,-10.f,-11.f,-12.f,-13.f,-15.f,-18.f,-20.f}, /*2400*/ - { -7.f, -8.f, -9.f,-10.f,-10.f,-11.f,-12.f,-13.f,-15.f,-18.f,-20.f}, /*4000*/ - { -7.f, -8.f, -9.f,-10.f,-10.f,-11.f,-12.f,-13.f,-15.f,-18.f,-20.f}, /*5600*/ - { -7.f, -8.f, -9.f,-10.f,-10.f,-11.f,-12.f,-13.f,-15.f,-16.f,-17.f}, /*8000*/ - { -6.f, -7.f, -9.f, -9.f, -9.f, -9.f,-10.f,-11.f,-12.f,-13.f,-14.f}, /*11500*/ - { -6.f, -6.f, -9.f, -9.f, -9.f, -9.f, -9.f, -9.f,-10.f,-11.f,-12.f}, /*16000*/ + {{-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 */ - /* 0 10 20 30 40 50 60 70 80 90 100 */ - {{-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-199.f,-199.f,-199.f,-199.f}, /*63*/ - {-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-199.f,-199.f,-199.f,-199.f}, /*88*/ - {-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-199.f,-199.f,-199.f,-199.f}, /*125*/ - {-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-199.f,-199.f,-199.f,-199.f}, /*175*/ - {-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-199.f,-199.f,-199.f,-199.f}, /*250*/ - {-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-199.f,-199.f,-199.f,-199.f}, /*350*/ - {-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-199.f,-199.f,-199.f,-199.f}, /*500*/ - { 6.f, 6.f, 6.f, 2.f, 2.f, 2.f, 2.f, 2.f, 2.f, 1.f, 0.f}, /*700*/ - - { 6.f, 6.f, 6.f, 5.f, 5.f, 5.f, 5.f, 5.f, 5.f, 4.f, 3.f}, /*1000*/ - { 6.f, 6.f, 6.f, 5.f, 5.f, 5.f, 5.f, 5.f, 5.f, 4.f, 3.f}, /*1400*/ - { 6.f, 6.f, 6.f, 5.f, 5.f, 5.f, 5.f, 5.f, 5.f, 4.f, 3.f}, /*2000*/ - { 6.f, 6.f, 6.f, 5.f, 5.f, 5.f, 5.f, 5.f, 5.f, 4.f, 3.f}, /*2800*/ - { 6.f, 6.f, 6.f, 5.f, 5.f, 5.f, 5.f, 5.f, 5.f, 4.f, 3.f}, /*4000*/ - { 10.f, 10.f, 10.f, 10.f, 10.f, 10.f, 8.f, 8.f, 6.f, 6.f, 6.f}, /*5600*/ - { 10.f, 10.f, 10.f, 10.f, 10.f, 10.f, 8.f, 8.f, 8.f, 8.f, 8.f}, /*8000*/ - { 10.f, 10.f, 10.f, 10.f, 10.f, 10.f, 10.f, 10.f, 10.f, 10.f, 10.f}, /*11500*/ - { 10.f, 10.f, 10.f, 10.f, 10.f, 10.f, 10.f, 10.f, 10.f, 10.f, 10.f}, /*16000*/ + -0.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, 0.f, /*16000*/ }, - 100.f, + 95.f, /* even decade + 5 is important; saves an rint() later in a + tight loop) */ + -28., - -0.f, -.004f /* attack/decay control */ -}; + -0.f, -.004f, /* attack/decay control */ +}; /* 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, 12,150, 1, {0} }; -static vorbis_info_floor0 _floor_set1A={30, 44100, 256, 12,150, 1, {1} }; -static vorbis_info_residue0 _residue_set0A={0,128, 32,6,2, +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, {0,1,1,1,1,1}, - {4,5,6,7,8}, + {6,7,8,9,10}, {0,99999,9999,9999,9999}, - {99.f,1.5f,2.5f,6.5f,12.5f}, - {5,5,5,5,5}, + {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,1024, 32,10,3, +static vorbis_info_residue0 _residue_set1A={0, 960, 32,10,5, {0,1,1,1,1,1,1,1,1,1}, - {9,10,11,12,13,14,15,16,17}, + {11,12,13,14,15,16,17,18,19}, - {0,8,9999,17,9999, - 28,9999,9999,9999}, - {99.f,1.5f,1.5f,2.5f,2.5f, - 4.f,4.f,6.5f,12.5f}, + {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_set0A={1, {0,0}, {0}, {0}, {0}, {0}}; -static vorbis_info_mapping0 _mapping_set1A={1, {0,0}, {0}, {1}, {1}, {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}; @@ -162,7 +272,7 @@ codec_setup_info info_A={ /* smallblock, largeblock */ {256, 2048}, /* modes,maps,times,floors,residues,books,psys */ - 2, 2, 1, 2, 2, 18, 1, + 2, 2, 1, 2, 2, 20, 2, /* modes */ {&_mode_set0A,&_mode_set1A}, /* maps */ @@ -174,8 +284,10 @@ codec_setup_info info_A={ /* residue */ {0,0},{&_residue_set0A,&_residue_set1A}, /* books */ - {&_vq_book_lsp12_0, /* 0 */ - &_vq_book_lsp30_0, /* 1 */ + {&_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_res0_128_1024aux, @@ -198,9 +310,13 @@ codec_setup_info info_A={ }, /* psy */ - {&_psy_set_A}, + {&_psy_set_A0,&_psy_set_A}, /* thresh sample period, preecho clamp trigger threshhold, range, minenergy */ - 256, 32.f, 6.f, -96.f + 256, 30.f, -30.f, -96.f, + + -10., + + 0, }; #define PREDEF_INFO_MAX 0 diff --git a/lib/modes/mode_AA.h b/lib/modes/mode_AA.h index 4705ce2f..038655e6 100644 --- a/lib/modes/mode_AA.h +++ b/lib/modes/mode_AA.h @@ -12,7 +12,7 @@ ******************************************************************** function: predefined encoding modes - last mod: $Id: mode_AA.h,v 1.3 2000/12/21 21:04:47 xiphmont Exp $ + last mod: $Id: mode_AA.h,v 1.4 2001/01/22 01:38:50 xiphmont Exp $ ********************************************************************/ @@ -23,10 +23,13 @@ #include "vorbis/codec.h" #include "backends.h" -#include "books/lsp12_0.vqh" +#include "books/lsp9_0.vqh" #include "books/lsp30_0.vqh" +#include "books/lsp9_1.vqh" +#include "books/lsp30_1.vqh" #include "books/res0_96_128aux.vqh" +#include "books/res0_96_1024aux.vqh" #include "books/res0_96_128_1.vqh" #include "books/res0_96_128_2.vqh" @@ -34,8 +37,6 @@ #include "books/res0_96_128_4.vqh" #include "books/res0_96_128_5.vqh" -#include "books/res0_96_1024aux.vqh" - #include "books/res0_96_1024_1.vqh" #include "books/res0_96_1024_2.vqh" #include "books/res0_96_1024_3.vqh" @@ -43,115 +44,225 @@ #include "books/res0_96_1024_5.vqh" #include "books/res0_96_1024_6.vqh" #include "books/res0_96_1024_7.vqh" +#include "books/res0_96_1024_8.vqh" +#include "books/res0_96_1024_9.vqh" + + +static vorbis_info_psy _psy_set_AA0={ + 1,/*athp*/ + 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.,-35.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*1000*/ + {-30.,-35.,-35.,-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.,-35.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*4000*/ + {-30.,-35.,-35.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*5600*/ + {-30.,-35.,-35.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*8000*/ + {-30.,-35.,-35.,-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,-22.f,-22.f,-22.f,-22.f,-22.f},/*63*/ + {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-22.f,-22.f,-22.f},/*88*/ + {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-22.f,-22.f,-22.f},/*125*/ + {-10.f,-10.f,-10.f,-10.f,-16.f,-16.f,-18.f,-20.f,-22.f,-22.f,-22.f},/*175*/ + {-10.f,-10.f,-10.f,-10.f,-16.f,-16.f,-18.f,-20.f,-22.f,-22.f,-22.f},/*250*/ + {-10.f,-10.f,-10.f,-10.f,-16.f,-16.f,-18.f,-20.f,-22.f,-22.f,-22.f},/*350*/ + {-10.f,-10.f,-10.f,-10.f,-16.f,-16.f,-18.f,-20.f,-22.f,-22.f,-22.f},/*500*/ + {-10.f,-10.f,-10.f,-10.f,-14.f,-14.f,-14.f,-20.f,-22.f,-22.f,-22.f},/*700*/ + {-10.f,-10.f,-10.f,-10.f,-14.f,-14.f,-14.f,-20.f,-22.f,-22.f,-22.f},/*1000*/ + {-10.f,-10.f,-10.f,-10.f,-14.f,-14.f,-16.f,-20.f,-22.f,-22.f,-22.f},/*1400*/ + {-10.f,-10.f,-10.f,-10.f,-14.f,-14.f,-16.f,-20.f,-22.f,-22.f,-22.f},/*2000*/ + {-10.f,-10.f,-10.f,-10.f,-14.f,-14.f,-16.f,-20.f,-22.f,-22.f,-22.f},/*2400*/ + {-10.f,-10.f,-10.f,-10.f,-14.f,-14.f,-16.f,-20.f,-22.f,-22.f,-22.f},/*4000*/ + {-10.f,-10.f,-10.f,-10.f,-10.f,-11.f,-12.f,-13.f,-22.f,-22.f,-22.f},/*5600*/ + {-10.f,-10.f,-10.f,-10.f,-10.f,-11.f,-12.f,-13.f,-22.f,-22.f,-22.f},/*8000*/ + {-10.f,-10.f,-10.f,-10.f,-10.f,-10.f,-10.f,-11.f,-22.f,-22.f,-22.f},/*11500*/ + {-10.f,-10.f,-10.f,-10.f,-10.f,-10.f,-10.f,-10.f,-20.f,-21.f,-22.f},/*16000*/ + }, + + 1,/*noisemaskp */ + -0.f, /* suppress any noise curve over maxspec+n */ + .5f, /* low window */ + .5f, /* high window */ + 5, + 5, + {.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*/ + .850f, 0.f,/*8000*/ + .900f, 2.f,/*11500*/ + .900f, 3.f,/*16000*/ + }, + + 95.f, /* even decade + 5 is important; saves an rint() later in a + tight loop) */ + -22., + + -0., -.004 /* attack/decay control */ +}; static vorbis_info_psy _psy_set_AA={ 1,/*athp*/ 1,/*decayp*/ - 1,/*smoothp*/ - 0,.1f, -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 */ + 1,/* tonemaskp */ /* 0 10 20 30 40 50 60 70 80 90 100 */ - {{-30.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*63*/ - {-30.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*88*/ - {-30.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*125*/ + { + {-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*/ + // {-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-100.}, /*175*/ + // {-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-100.}, /*250*/ + // {-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-100.}, /*350*/ + // {-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-100.}, /*500*/ + // {-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-100.}, /*700*/ + + // {-30.,-35.,-35.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*63*/ + // {-30.,-35.,-35.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*88*/ + // {-30.,-35.,-35.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*125*/ {-30.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*175*/ {-30.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*250*/ {-30.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*350*/ {-30.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*500*/ {-30.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*700*/ + {-30.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*1000*/ {-30.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*/ {-30.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*4000*/ - {-30.f,-30.f,-35.f,-37.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*5600*/ - {-20.f,-25.f,-30.f,-35.f,-35.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*8000*/ - {-20.f,-25.f,-30.f,-33.f,-35.f,-45.f,-55.f,-65.f,-75.f,-90.f,-100.f}, /*11500*/ - {-20.f,-24.f,-26.f,-32.f,-35.f,-45.f,-55.f,-65.f,-75.f,-90.f,-100.f}, /*16000*/ + {-30.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*5600*/ + + {-20.f,-25.f,-30.f,-35.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*8000*/ + {-20.f,-25.f,-30.f,-35.f,-35.f,-45.f,-50.f,-60.f,-70.f,-80.f,-90.f}, /*11500*/ + {-20.f,-24.f,-26.f,-32.f,-35.f,-45.f,-50.f,-60.f,-70.f,-80.f,-90.f}, /*16000*/ + }, 1,/* peakattp */ - {{-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-22.f,-22.f,-22.f}, /*63*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-22.f,-22.f,-22.f}, /*88*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-22.f,-22.f,-22.f}, /*125*/ - { -7.f, -8.f, -9.f,-10.f,-10.f,-11.f,-12.f,-13.f,-15.f,-18.f,-20.f}, /*175*/ - { -7.f, -8.f, -9.f,-10.f,-10.f,-11.f,-12.f,-13.f,-15.f,-18.f,-20.f}, /*250*/ - { -7.f, -8.f, -9.f,-10.f,-10.f,-11.f,-12.f,-13.f,-15.f,-18.f,-20.f}, /*350*/ - { -7.f, -8.f, -9.f,-10.f,-10.f,-11.f,-12.f,-13.f,-15.f,-18.f,-20.f}, /*500*/ - { -7.f, -8.f, -9.f,-10.f,-10.f,-11.f,-12.f,-13.f,-15.f,-18.f,-20.f}, /*700*/ - { -7.f, -8.f, -9.f,-10.f,-10.f,-11.f,-12.f,-13.f,-15.f,-18.f,-20.f}, /*1000*/ - { -7.f, -8.f, -9.f,-10.f,-10.f,-11.f,-12.f,-13.f,-15.f,-18.f,-20.f}, /*1400*/ - { -7.f, -8.f, -9.f,-10.f,-10.f,-11.f,-12.f,-13.f,-15.f,-18.f,-20.f}, /*2000*/ - { -7.f, -8.f, -9.f,-10.f,-10.f,-11.f,-12.f,-13.f,-15.f,-18.f,-20.f}, /*2800*/ - { -7.f, -8.f, -9.f,-10.f,-10.f,-11.f,-12.f,-13.f,-15.f,-18.f,-20.f}, /*4000*/ - { -7.f, -8.f, -9.f,-10.f,-10.f,-11.f,-12.f,-13.f,-15.f,-18.f,-20.f}, /*5600*/ - { -7.f, -8.f, -9.f,-10.f,-10.f,-11.f,-12.f,-13.f,-15.f,-16.f,-17.f}, /*8000*/ - { -6.f, -7.f, -9.f, -9.f, -9.f, -9.f,-10.f,-11.f,-12.f,-13.f,-14.f}, /*11500*/ - { -6.f, -6.f, -9.f, -9.f, -9.f, -9.f, -9.f, -9.f,-10.f,-11.f,-12.f}, /*16000*/ + {{-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-22.f,-22.f,-22.f},/*63*/ + {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-22.f,-22.f,-22.f},/*88*/ + {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-22.f,-22.f,-22.f},/*125*/ + {-10.f,-10.f,-10.f,-10.f,-16.f,-16.f,-18.f,-20.f,-22.f,-22.f,-22.f},/*175*/ + {-10.f,-10.f,-10.f,-10.f,-16.f,-16.f,-18.f,-20.f,-22.f,-22.f,-22.f},/*250*/ + {-10.f,-10.f,-10.f,-10.f,-16.f,-16.f,-18.f,-20.f,-22.f,-22.f,-22.f},/*350*/ + {-10.f,-10.f,-10.f,-10.f,-16.f,-16.f,-18.f,-20.f,-22.f,-22.f,-22.f},/*500*/ + {-10.f,-10.f,-10.f,-10.f,-14.f,-14.f,-16.f,-20.f,-22.f,-22.f,-22.f},/*700*/ + {-10.f,-10.f,-10.f,-10.f,-14.f,-14.f,-16.f,-20.f,-22.f,-22.f,-22.f},/*1000*/ + {-10.f,-10.f,-10.f,-10.f,-14.f,-14.f,-16.f,-20.f,-22.f,-22.f,-22.f},/*1400*/ + {-10.f,-10.f,-10.f,-10.f,-14.f,-14.f,-16.f,-20.f,-22.f,-22.f,-22.f},/*2000*/ + {-10.f,-10.f,-10.f,-12.f,-16.f,-16.f,-16.f,-20.f,-22.f,-22.f,-22.f},/*2400*/ + {-10.f,-10.f,-10.f,-12.f,-16.f,-16.f,-16.f,-20.f,-22.f,-22.f,-22.f},/*4000*/ + {-10.f,-10.f,-10.f,-12.f,-12.f,-14.f,-16.f,-18.f,-22.f,-22.f,-22.f},/*5600*/ + {-10.f,-10.f,-10.f,-10.f,-10.f,-14.f,-16.f,-18.f,-22.f,-22.f,-22.f},/*8000*/ + {-10.f,-10.f,-10.f,-10.f,-10.f,-14.f,-16.f,-18.f,-22.f,-22.f,-22.f},/*11500*/ + {-10.f,-10.f,-10.f,-10.f,-10.f,-12.f,-16.f,-18.f,-22.f,-22.f,-22.f},/*16000*/ }, 1,/*noisemaskp */ - /* 0 10 20 30 40 50 60 70 80 90 100 */ - {{-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-199.f,-199.f,-199.f,-199.f}, /*63*/ - {-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-199.f,-199.f,-199.f,-199.f}, /*88*/ - {-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-199.f,-199.f,-199.f,-199.f}, /*125*/ - {-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-199.f,-199.f,-199.f,-199.f}, /*175*/ - {-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-199.f,-199.f,-199.f,-199.f}, /*250*/ - {-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-199.f,-199.f,-199.f,-199.f}, /*350*/ - {-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-199.f,-199.f,-199.f,-199.f}, /*500*/ - { 6.f, 6.f, 6.f, 2.f, 2.f, 2.f, 2.f, 2.f, 2.f, 1.f, 0.f}, /*700*/ - - { 6.f, 6.f, 6.f, 5.f, 5.f, 5.f, 5.f, 5.f, 5.f, 4.f, 3.f}, /*1000*/ - { 6.f, 6.f, 6.f, 5.f, 5.f, 5.f, 5.f, 5.f, 5.f, 4.f, 3.f}, /*1400*/ - { 6.f, 6.f, 6.f, 5.f, 5.f, 5.f, 5.f, 5.f, 5.f, 4.f, 3.f}, /*2000*/ - { 6.f, 6.f, 6.f, 5.f, 5.f, 5.f, 5.f, 5.f, 5.f, 4.f, 3.f}, /*2800*/ - { 6.f, 6.f, 6.f, 5.f, 5.f, 5.f, 5.f, 5.f, 5.f, 4.f, 3.f}, /*4000*/ - { 10.f, 10.f, 10.f, 10.f, 10.f, 10.f, 8.f, 8.f, 6.f, 6.f, 6.f}, /*5600*/ - { 10.f, 10.f, 10.f, 10.f, 10.f, 10.f, 8.f, 8.f, 8.f, 8.f, 8.f}, /*8000*/ - { 10.f, 10.f, 10.f, 10.f, 10.f, 10.f, 10.f, 10.f, 10.f, 10.f, 10.f}, /*11500*/ - { 10.f, 10.f, 10.f, 10.f, 10.f, 10.f, 10.f, 10.f, 10.f, 10.f, 10.f}, /*16000*/ + -0.f, /* suppress any noise curve over maxspec+n */ + .7f, /* low window */ + .7f, /* 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, + 95.f, /* even decade + 5 is important; saves an rint() later in a + tight loop) */ + -22., - -0.f, -.004f /* attack/decay control */ -}; + -0.f, -.004f, /* attack/decay control */ +}; /* with GNUisms, this could be short and readable. Oh well */ static vorbis_info_time0 _time_set0AA={0}; -static vorbis_info_floor0 _floor_set0AA={12, 44100, 64, 12,150, 1, {0} }; -static vorbis_info_floor0 _floor_set1AA={30, 44100, 256, 12,150, 1, {1} }; -static vorbis_info_residue0 _residue_set0AA={0,128, 32,6,2, - {0,1,1,1,1,1}, - {4,5,6,7,8}, - - {0,99999,9999,9999,9999}, - {99.f,1.5f,2.5f,6.5f,12.5f}, - {5,5,5,5,5}, - {99,99,99,99,99}}; - - -static vorbis_info_residue0 _residue_set1AA={0,1024, 32,8,3, - {0,1,1,1,1,1,1,1}, - {9,10,11,12,13,14,15}, +static vorbis_info_floor0 _floor_set0AA={9, 44100, 64, 10,130, 2, {0,1}, + 0.246f, .387f}; +static vorbis_info_floor0 _floor_set1AA={30, 44100, 256, 12,150, 2, {2,3}, + .082f, .126f}; +static vorbis_info_residue0 _residue_set0AA={0,64,16,6,4, + {0,1,1,1,1,1}, + {6,7,8,9,10}, + + {0,7,9999,9999,9999}, + {999.f,2.f,2.f,9.5f,26.f}, + {4,4,4,4,4}, + {99,99,99,99,99}}; + +static vorbis_info_residue0 _residue_set1AA={0, 768, 32,10,5, + {0,1,1,1,1,1,1,1,1,1}, + {11,12,13,14,15,16,17,18,19}, - {0,9,9999,21,9999, - 9999,9999,9999}, - {99.f,2.f,2.f,4.f,4.f,9.5f,15.5f}, - {5,5,5,5,5,5,5}, - {99,99,99,99,99,99,99}}; + {0,10,9999,16,9999, + 26,9999,9999,9999}, + {999.f,2.f,2.f,4.f,4.f, + 9.5f,9.5f,18.f,37.f}, + {5,5,5,5,5,5,5,5,5}, + {99,99,99,99,99,99,99,99,99}}; static vorbis_info_mapping0 _mapping_set0AA={1, {0,0}, {0}, {0}, {0}, {0}}; -static vorbis_info_mapping0 _mapping_set1AA={1, {0,0}, {0}, {1}, {1}, {0}}; +static vorbis_info_mapping0 _mapping_set1AA={1, {0,0}, {0}, {1}, {1}, {1}}; static vorbis_info_mode _mode_set0AA={0,0,0,0}; static vorbis_info_mode _mode_set1AA={1,0,0,1}; @@ -161,7 +272,7 @@ codec_setup_info info_AA={ /* smallblock, largeblock */ {256, 2048}, /* modes,maps,times,floors,residues,books,psys */ - 2, 2, 1, 2, 2, 16, 1, + 2, 2, 1, 2, 2, 20, 2, /* modes */ {&_mode_set0AA,&_mode_set1AA}, /* maps */ @@ -173,8 +284,10 @@ codec_setup_info info_AA={ /* residue */ {0,0},{&_residue_set0AA,&_residue_set1AA}, /* books */ - {&_vq_book_lsp12_0, /* 0 */ - &_vq_book_lsp30_0, /* 1 */ + {&_vq_book_lsp9_0, /* 0 */ + &_vq_book_lsp9_1, /* 1 */ + &_vq_book_lsp30_0, /* 2 */ + &_vq_book_lsp30_1, /* 3 */ &_huff_book_res0_96_128aux, &_huff_book_res0_96_1024aux, @@ -192,12 +305,18 @@ codec_setup_info info_AA={ &_vq_book_res0_96_1024_5, &_vq_book_res0_96_1024_6, &_vq_book_res0_96_1024_7, + &_vq_book_res0_96_1024_8, + &_vq_book_res0_96_1024_9, }, /* psy */ - {&_psy_set_AA}, + {&_psy_set_AA0,&_psy_set_AA}, /* thresh sample period, preecho clamp trigger threshhold, range, minenergy */ - 256, 32.f, 6.f, -96.f + 256, 30.f, -30.f, -96.f, + + -10., + + 0, }; #define PREDEF_INFO_MAX 0 diff --git a/lib/modes/mode_B.h b/lib/modes/mode_B.h index fab7592c..a1a67853 100644 --- a/lib/modes/mode_B.h +++ b/lib/modes/mode_B.h @@ -12,7 +12,7 @@ ******************************************************************** function: predefined encoding modes - last mod: $Id: mode_B.h,v 1.6 2000/12/21 21:04:47 xiphmont Exp $ + last mod: $Id: mode_B.h,v 1.7 2001/01/22 01:38:50 xiphmont Exp $ ********************************************************************/ @@ -25,6 +25,8 @@ #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" @@ -45,113 +47,222 @@ #include "books/res0_160_1024_8.vqh" #include "books/res0_160_1024_9.vqh" + +static vorbis_info_psy _psy_set_B0={ + 1,/*athp*/ + 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.,-35.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*1000*/ + {-30.,-35.,-35.,-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.,-35.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*4000*/ + {-30.,-35.,-35.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*5600*/ + {-30.,-35.,-35.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*8000*/ + {-30.,-35.,-35.,-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,-28.f,-28.f,-28.f,-28.f,-28.f},/*63*/ + {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-28.f,-28.f,-28.f,-28.f,-28.f},/*88*/ + {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-28.f,-28.f,-28.f,-28.f,-28.f},/*125*/ + {-14.f,-14.f,-14.f,-14.f,-16.f,-16.f,-20.f,-24.f,-28.f,-28.f,-28.f},/*175*/ + {-14.f,-14.f,-14.f,-14.f,-16.f,-16.f,-20.f,-24.f,-28.f,-28.f,-28.f},/*250*/ + {-14.f,-14.f,-14.f,-14.f,-16.f,-16.f,-20.f,-24.f,-28.f,-28.f,-28.f},/*350*/ + {-14.f,-14.f,-14.f,-14.f,-16.f,-16.f,-20.f,-24.f,-28.f,-28.f,-28.f},/*500*/ + {-14.f,-14.f,-14.f,-14.f,-14.f,-14.f,-18.f,-24.f,-28.f,-28.f,-28.f},/*700*/ + {-14.f,-14.f,-14.f,-14.f,-14.f,-14.f,-14.f,-24.f,-28.f,-28.f,-28.f},/*1000*/ + {-14.f,-14.f,-14.f,-14.f,-14.f,-16.f,-18.f,-24.f,-28.f,-28.f,-28.f},/*1400*/ + {-14.f,-14.f,-14.f,-14.f,-14.f,-16.f,-18.f,-24.f,-28.f,-28.f,-28.f},/*2000*/ + {-14.f,-14.f,-14.f,-14.f,-14.f,-16.f,-18.f,-24.f,-28.f,-28.f,-28.f},/*2400*/ + {-14.f,-14.f,-14.f,-14.f,-14.f,-16.f,-18.f,-24.f,-28.f,-28.f,-28.f},/*4000*/ + {-14.f,-14.f,-14.f,-14.f,-14.f,-14.f,-12.f,-20.f,-28.f,-28.f,-28.f},/*5600*/ + {-14.f,-14.f,-14.f,-14.f,-14.f,-14.f,-14.f,-20.f,-28.f,-28.f,-28.f},/*8000*/ + {-14.f,-14.f,-14.f,-14.f,-14.f,-14.f,-14.f,-20.f,-28.f,-28.f,-28.f},/*11500*/ + {-14.f,-14.f,-14.f,-14.f,-14.f,-14.f,-14.f,-14.f,-20.f,-24.f,-28.f},/*16000*/ + }, + + 1,/*noisemaskp */ + -10.f, /* suppress any noise curve over maxspec+n */ + .5f, /* low window */ + .5f, /* high window */ + 5, + 5, + {.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*/ + .850f, 0.f,/*8000*/ + .900f, 0.f,/*11500*/ + .900f, 0.f,/*16000*/ + }, + + 105.f, /* even decade + 5 is important; saves an rint() later in a + tight loop) */ + -28., + + -0., -.004 /* attack/decay control */ +}; + static vorbis_info_psy _psy_set_B={ 1,/*athp*/ 1,/*decayp*/ - 1,/*smoothp*/ - 0,.1f, -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 */ + 1,/* tonemaskp */ /* 0 10 20 30 40 50 60 70 80 90 100 */ - {{-30.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*63*/ - {-30.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*88*/ - {-30.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*125*/ - {-30.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*175*/ - {-30.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*250*/ - {-30.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*350*/ - {-30.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*500*/ - {-30.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*700*/ - {-30.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*1000*/ - {-30.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*1400*/ + { + {-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*/ + // {-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-100.}, /*175*/ + // {-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-100.}, /*250*/ + // {-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-100.}, /*350*/ + // {-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-100.}, /*500*/ + // {-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-100.}, /*700*/ + + // {-30.,-35.,-35.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*63*/ + // {-30.,-35.,-35.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*88*/ + // {-30.,-35.,-35.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*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*/ - {-30.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*4000*/ - {-30.f,-30.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*5600*/ - {-30.f,-30.f,-35.f,-35.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*8000*/ - {-30.f,-30.f,-35.f,-33.f,-35.f,-45.f,-55.f,-65.f,-75.f,-90.f,-100.f}, /*11500*/ - {-30.f,-28.f,-30.f,-32.f,-35.f,-45.f,-55.f,-65.f,-75.f,-90.f,-100.f}, /*16000*/ + {-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*/ + + {-30.f,-35.f,-40.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*8000*/ + {-30.f,-35.f,-40.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*11500*/ + {-30.f,-34.f,-36.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,-22.f,-22.f,-28.f,-28.f,-28.f}, /*63*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-28.f,-28.f,-28.f}, /*88*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-28.f,-28.f,-28.f}, /*125*/ - { -7.f, -8.f, -9.f,-10.f,-10.f,-11.f,-12.f,-13.f,-28.f,-28.f,-28.f}, /*175*/ - { -7.f, -8.f, -9.f,-10.f,-10.f,-11.f,-12.f,-13.f,-28.f,-28.f,-28.f}, /*250*/ - { -7.f, -8.f, -9.f,-10.f,-10.f,-11.f,-12.f,-13.f,-28.f,-28.f,-28.f}, /*350*/ - { -7.f, -8.f, -9.f,-10.f,-10.f,-11.f,-12.f,-13.f,-28.f,-28.f,-28.f}, /*500*/ - { -7.f, -8.f, -9.f,-10.f,-10.f,-11.f,-12.f,-13.f,-15.f,-18.f,-20.f}, /*700*/ - { -7.f, -8.f, -9.f,-10.f,-10.f,-11.f,-12.f,-13.f,-15.f,-18.f,-20.f}, /*1000*/ - { -7.f, -8.f, -9.f,-10.f,-10.f,-11.f,-12.f,-13.f,-15.f,-18.f,-20.f}, /*1400*/ - { -7.f, -8.f, -9.f,-10.f,-10.f,-11.f,-12.f,-13.f,-15.f,-18.f,-20.f}, /*2000*/ - { -7.f, -8.f, -9.f,-10.f,-10.f,-11.f,-12.f,-13.f,-15.f,-18.f,-20.f}, /*2800*/ - { -7.f, -8.f, -9.f,-10.f,-10.f,-11.f,-12.f,-13.f,-15.f,-18.f,-20.f}, /*4000*/ - { -7.f, -8.f, -9.f,-10.f,-10.f,-11.f,-12.f,-13.f,-15.f,-18.f,-20.f}, /*5600*/ - { -7.f, -8.f, -9.f,-10.f,-10.f,-11.f,-12.f,-13.f,-15.f,-16.f,-17.f}, /*8000*/ - { -6.f, -7.f, -9.f, -9.f, -9.f, -9.f,-10.f,-11.f,-12.f,-13.f,-14.f}, /*11500*/ - { -6.f, -6.f, -9.f, -9.f, -9.f, -9.f, -9.f, -9.f,-10.f,-11.f,-12.f}, /*16000*/ + {{-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-28.f,-28.f,-28.f,-28.f,-28.f},/*63*/ + {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-28.f,-28.f,-28.f,-28.f,-28.f},/*88*/ + {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-28.f,-28.f,-28.f,-28.f,-28.f},/*125*/ + {-14.f,-14.f,-14.f,-14.f,-16.f,-16.f,-20.f,-24.f,-28.f,-28.f,-28.f},/*175*/ + {-14.f,-14.f,-14.f,-14.f,-16.f,-16.f,-20.f,-24.f,-28.f,-28.f,-28.f},/*250*/ + {-14.f,-14.f,-14.f,-14.f,-16.f,-16.f,-20.f,-24.f,-28.f,-28.f,-28.f},/*350*/ + {-14.f,-14.f,-14.f,-14.f,-16.f,-16.f,-20.f,-24.f,-28.f,-28.f,-28.f},/*500*/ + {-14.f,-14.f,-14.f,-14.f,-14.f,-14.f,-18.f,-24.f,-28.f,-28.f,-28.f},/*700*/ + {-14.f,-14.f,-14.f,-14.f,-14.f,-14.f,-14.f,-24.f,-28.f,-28.f,-28.f},/*1000*/ + {-14.f,-14.f,-14.f,-14.f,-14.f,-16.f,-18.f,-24.f,-28.f,-28.f,-28.f},/*1400*/ + {-14.f,-14.f,-14.f,-14.f,-14.f,-16.f,-18.f,-24.f,-28.f,-28.f,-28.f},/*2000*/ + {-14.f,-14.f,-14.f,-14.f,-14.f,-16.f,-18.f,-24.f,-28.f,-28.f,-28.f},/*2400*/ + {-14.f,-14.f,-14.f,-14.f,-14.f,-16.f,-18.f,-24.f,-28.f,-28.f,-28.f},/*4000*/ + {-14.f,-14.f,-14.f,-14.f,-14.f,-14.f,-12.f,-20.f,-28.f,-28.f,-28.f},/*5600*/ + {-14.f,-14.f,-14.f,-14.f,-14.f,-14.f,-14.f,-20.f,-28.f,-28.f,-28.f},/*8000*/ + {-14.f,-14.f,-14.f,-14.f,-14.f,-14.f,-14.f,-20.f,-28.f,-28.f,-28.f},/*11500*/ + {-14.f,-14.f,-14.f,-14.f,-14.f,-14.f,-14.f,-14.f,-20.f,-24.f,-28.f},/*16000*/ }, 1,/*noisemaskp */ - /* 0 10 20 30 40 50 60 70 80 90 100 */ - {{-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-199.f,-199.f,-199.f,-199.f}, /*63*/ - {-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-199.f,-199.f,-199.f,-199.f}, /*88*/ - {-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-199.f,-199.f,-199.f,-199.f}, /*125*/ - {-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-199.f,-199.f,-199.f,-199.f}, /*175*/ - {-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-199.f,-199.f,-199.f,-199.f}, /*250*/ - {-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-199.f,-199.f,-199.f,-199.f}, /*350*/ - {-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-199.f,-199.f,-199.f,-199.f}, /*500*/ - {-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-199.f,-199.f,-199.f,-199.f}, /*700*/ - - { 4.f, 4.f, 4.f, 4.f, 4.f, 2.f, 1.f, 0.f, -1.f, -2.f, -3.f}, /*1000*/ - { 4.f, 4.f, 4.f, 4.f, 4.f, 2.f, 1.f, 0.f, 0.f, -2.f, -3.f}, /*1400*/ - { 4.f, 4.f, 4.f, 4.f, 2.f, 2.f, 1.f, 0.f, 0.f, -2.f, -3.f}, /*2000*/ - { 4.f, 4.f, 4.f, 4.f, 2.f, 2.f, 1.f, 0.f, 0.f, -2.f, -3.f}, /*2800*/ - { 4.f, 4.f, 4.f, 4.f, 4.f, 4.f, 2.f, 0.f, 0.f, 0.f, 0.f}, /*4000*/ - { 4.f, 4.f, 4.f, 4.f, 4.f, 4.f, 2.f, 2.f, 2.f, 2.f, 2.f}, /*5600*/ - { 6.f, 6.f, 6.f, 6.f, 4.f, 4.f, 4.f, 4.f, 4.f, 2.f, 2.f}, /*8000*/ - { 8.f, 8.f, 8.f, 8.f, 6.f, 6.f, 6.f, 6.f, 6.f, 4.f, 4.f}, /*11500*/ - { 8.f, 8.f, 8.f, 8.f, 8.f, 8.f, 8.f, 6.f, 6.f, 6.f, 4.f}, /*16000*/ + -10.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, -2.f, /*700*/ + .300f, -2.f, /*1000*/ + .400f, -2.f, /*1400*/ + .400f, -2.f, /*2000*/ + .400f, -2.f, /*2800*/ + .700f, -2.f, /*4000*/ + .850f, -3.f, /*5600*/ + .900f, -3.f, /*8000*/ + .900f, -3.f, /*11500*/ + .900f, -3.f, /*16000*/ }, - 110.f, + 105.f, /* even decade + 5 is important; saves an rint() later in a + tight loop) */ + -32., + + -0.f, -.004f, /* attack/decay control */ - -3.f, -.004f /* attack/decay control */ }; /* 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, 12,150, 1, {0} }; -static vorbis_info_floor0 _floor_set1B={30, 44100, 256, 12,150, 1, {1} }; -static vorbis_info_residue0 _residue_set0B={0,128, 32,6,2, +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}, - {4,5,6,7,8}, + {6,7,8,9,10}, {0,99999,9999,9999,9999}, - {99.f,1.5f,2.5f,6.5f,12.5f}, - {5,5,5,5,5}, + {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,1024, 32,10,3, +static vorbis_info_residue0 _residue_set1B={0,1024, 32,10,5, {0,1,1,1,1,1,1,1,1,1}, - {9,10,11,12,13,14,15,16,17}, + {11,12,13,14,15,16,17,18,19}, - {0,8,9999,17,9999, - 22,9999,9999,9999}, - {99.f,1.5f,1.5f,2.5f,2.5f, - 4.f,4.f,6.5f,12.5f}, + {0,8,9999,18,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_set0B={1, {0,0}, {0}, {0}, {0}, {0}}; -static vorbis_info_mapping0 _mapping_set1B={1, {0,0}, {0}, {1}, {1}, {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}; @@ -161,7 +272,7 @@ codec_setup_info info_B={ /* smallblock, largeblock */ {256, 2048}, /* modes,maps,times,floors,residues,books,psys */ - 2, 2, 1, 2, 2, 18, 1, + 2, 2, 1, 2, 2, 20, 2, /* modes */ {&_mode_set0B,&_mode_set1B}, /* maps */ @@ -173,8 +284,10 @@ codec_setup_info info_B={ /* residue */ {0,0},{&_residue_set0B,&_residue_set1B}, /* books */ - {&_vq_book_lsp12_0, /* 0 */ - &_vq_book_lsp30_0, /* 1 */ + {&_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, @@ -197,9 +310,13 @@ codec_setup_info info_B={ }, /* psy */ - {&_psy_set_B}, + {&_psy_set_B0,&_psy_set_B}, /* thresh sample period, preecho clamp trigger threshhold, range, minenergy */ - 256, 32.f, 6.f, -96.f + 256, 30.f, -30.f, -96.f, + + -10., + + 0, }; #define PREDEF_INFO_MAX 0 diff --git a/lib/modes/mode_C.h b/lib/modes/mode_C.h index 9d863df9..3cc1540a 100644 --- a/lib/modes/mode_C.h +++ b/lib/modes/mode_C.h @@ -12,7 +12,7 @@ ******************************************************************** function: predefined encoding modes - last mod: $Id: mode_C.h,v 1.6 2000/12/21 21:04:47 xiphmont Exp $ + last mod: $Id: mode_C.h,v 1.7 2001/01/22 01:38:50 xiphmont Exp $ ********************************************************************/ @@ -25,6 +25,8 @@ #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" @@ -40,192 +42,226 @@ #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={ 1,/*athp*/ 0,/*decayp*/ - 1,/*smoothp*/ - 0,.1f, - -100.f, - -140.f, + -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 */ - 0,/* tonemaskp */ + 1,/* tonemaskp */ /* 0 10 20 30 40 50 60 70 80 90 100 */ - {{-30.f,-35.f,-35.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f,-110.f}, /*63*/ - {-30.f,-35.f,-35.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f,-110.f}, /*88*/ - {-30.f,-35.f,-35.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f,-110.f}, /*125*/ - {-30.f,-35.f,-35.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f,-110.f}, /*175*/ - {-30.f,-35.f,-35.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f,-110.f}, /*250*/ - {-30.f,-35.f,-35.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f,-110.f}, /*350*/ - {-30.f,-35.f,-35.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f,-110.f}, /*500*/ - {-30.f,-35.f,-35.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f,-110.f}, /*700*/ - {-30.f,-35.f,-35.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f,-110.f}, /*1000*/ - {-30.f,-35.f,-35.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f,-110.f}, /*1400*/ - {-40.f,-40.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f,-110.f}, /*2000*/ - {-40.f,-40.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f,-110.f}, /*2800*/ - {-30.f,-35.f,-35.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f,-110.f}, /*4000*/ - {-30.f,-30.f,-35.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f,-110.f}, /*5600*/ - {-30.f,-30.f,-35.f,-35.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f,-110.f}, /*8000*/ - {-30.f,-30.f,-35.f,-33.f,-45.f,-55.f,-65.f,-75.f,-85.f,-100.f,-110.f}, /*11500*/ - {-30.f,-28.f,-30.f,-32.f,-45.f,-55.f,-65.f,-75.f,-85.f,-100.f,-110.f}, /*16000*/ + { + {-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.,-35.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*1000*/ + {-30.,-35.,-35.,-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.,-35.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*4000*/ + {-30.,-35.,-35.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*5600*/ + {-30.,-35.,-35.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*8000*/ + {-30.,-35.,-35.,-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,-22.f,-22.f,-28.f,-28.f,-28.f}, /*63*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-28.f,-28.f,-28.f}, /*88*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-28.f,-28.f,-28.f}, /*125*/ - { -7.f, -8.f, -9.f,-10.f,-10.f,-11.f,-12.f,-13.f,-28.f,-28.f,-28.f}, /*175*/ - { -7.f, -8.f, -9.f,-10.f,-10.f,-11.f,-12.f,-13.f,-28.f,-28.f,-28.f}, /*250*/ - { -7.f, -8.f, -9.f,-10.f,-10.f,-11.f,-12.f,-13.f,-28.f,-28.f,-28.f}, /*350*/ - { -7.f, -8.f, -9.f,-10.f,-10.f,-11.f,-12.f,-13.f,-28.f,-28.f,-28.f}, /*500*/ - { -7.f, -8.f, -9.f,-10.f,-10.f,-11.f,-12.f,-13.f,-15.f,-18.f,-20.f}, /*700*/ - { -7.f, -8.f, -9.f,-10.f,-10.f,-11.f,-12.f,-13.f,-15.f,-18.f,-20.f}, /*1000*/ - { -7.f, -8.f, -9.f,-10.f,-10.f,-11.f,-12.f,-13.f,-15.f,-18.f,-20.f}, /*1400*/ - { -7.f, -8.f, -9.f,-10.f,-10.f,-11.f,-12.f,-13.f,-15.f,-18.f,-20.f}, /*2000*/ - { -7.f, -8.f, -9.f,-10.f,-10.f,-11.f,-12.f,-13.f,-15.f,-18.f,-20.f}, /*2800*/ - { -7.f, -8.f, -9.f,-10.f,-10.f,-11.f,-12.f,-13.f,-15.f,-18.f,-20.f}, /*4000*/ - { -7.f, -8.f, -9.f,-10.f,-10.f,-11.f,-12.f,-13.f,-15.f,-18.f,-20.f}, /*5600*/ - { -7.f, -8.f, -9.f,-10.f,-10.f,-11.f,-12.f,-13.f,-15.f,-16.f,-17.f}, /*8000*/ - { -6.f, -7.f, -9.f, -9.f, -9.f, -9.f,-10.f,-11.f,-12.f,-13.f,-14.f}, /*11500*/ - { -6.f, -6.f, -9.f, -9.f, -9.f, -9.f, -9.f, -9.f,-10.f,-11.f,-12.f}, /*16000*/ + {{-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-28.f,-28.f,-28.f,-28.f,-28.f},/*63*/ + {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-28.f,-28.f,-28.f,-28.f,-28.f},/*88*/ + {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-28.f,-28.f,-28.f,-28.f,-28.f},/*125*/ + {-14.f,-14.f,-14.f,-14.f,-16.f,-16.f,-20.f,-24.f,-28.f,-28.f,-28.f},/*175*/ + {-14.f,-14.f,-14.f,-14.f,-16.f,-16.f,-20.f,-24.f,-28.f,-28.f,-28.f},/*250*/ + {-14.f,-14.f,-14.f,-14.f,-16.f,-16.f,-20.f,-24.f,-28.f,-28.f,-28.f},/*350*/ + {-14.f,-14.f,-14.f,-14.f,-16.f,-16.f,-20.f,-24.f,-28.f,-28.f,-28.f},/*500*/ + {-14.f,-14.f,-14.f,-14.f,-14.f,-14.f,-18.f,-24.f,-28.f,-28.f,-28.f},/*700*/ + {-14.f,-14.f,-14.f,-14.f,-14.f,-14.f,-14.f,-24.f,-28.f,-28.f,-28.f},/*1000*/ + {-14.f,-14.f,-14.f,-14.f,-14.f,-16.f,-18.f,-24.f,-28.f,-28.f,-28.f},/*1400*/ + {-14.f,-14.f,-14.f,-14.f,-14.f,-16.f,-18.f,-24.f,-28.f,-28.f,-28.f},/*2000*/ + {-14.f,-14.f,-14.f,-14.f,-14.f,-16.f,-18.f,-24.f,-28.f,-28.f,-28.f},/*2400*/ + {-14.f,-14.f,-14.f,-14.f,-14.f,-16.f,-18.f,-24.f,-28.f,-28.f,-28.f},/*4000*/ + {-14.f,-14.f,-14.f,-14.f,-14.f,-14.f,-12.f,-20.f,-28.f,-28.f,-28.f},/*5600*/ + {-14.f,-14.f,-14.f,-14.f,-14.f,-14.f,-14.f,-20.f,-28.f,-28.f,-28.f},/*8000*/ + {-14.f,-14.f,-14.f,-14.f,-14.f,-14.f,-14.f,-20.f,-28.f,-28.f,-28.f},/*11500*/ + {-14.f,-14.f,-14.f,-14.f,-14.f,-14.f,-14.f,-14.f,-20.f,-24.f,-28.f},/*16000*/ }, 1,/*noisemaskp */ - /* 0 10 20 30 40 50 60 70 80 90 100 */ - {{-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-199.f,-199.f,-199.f,-199.f}, /*63*/ - {-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-199.f,-199.f,-199.f,-199.f}, /*88*/ - {-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-199.f,-199.f,-199.f,-199.f}, /*125*/ - {-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-199.f,-199.f,-199.f,-199.f}, /*175*/ - {-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-199.f,-199.f,-199.f,-199.f}, /*250*/ - {-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-199.f,-199.f,-199.f,-199.f}, /*350*/ - {-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-199.f,-199.f,-199.f,-199.f}, /*500*/ - {-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-199.f,-199.f,-199.f,-199.f}, /*700*/ - {-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-199.f,-199.f,-199.f,-199.f}, /*1000*/ - {-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-199.f,-199.f,-199.f,-199.f}, /*1400*/ - - { 0.f, -4.f, -4.f, -4.f, -6.f, -6.f, -6.f, -6.f, -6.f, -6.f, -6.f}, /*2000*/ - { 0.f, -3.f, -4.f, -4.f, -4.f, -5.f, -6.f, -6.f, -6.f, -6.f, -6.f}, /*2800*/ - { 0.f, -2.f, -2.f, -2.f, -2.f, -2.f, -2.f, -2.f, -4.f, -4.f, -4.f}, /*4000*/ - { 0.f, -0.f, -0.f, -0.f, -0.f, -2.f, -2.f, -2.f, -2.f, -2.f, -2.f}, /*5600*/ - { 0.f, 0.f, 0.f, 0.f, 0.f, 0.f, 0.f, 0.f, 0.f, -2.f, -4.f}, /*8000*/ - { 2.f, 2.f, 2.f, 2.f, 2.f, 2.f, 0.f, 0.f, 0.f, 0.f, 0.f}, /*11500*/ - { 2.f, 2.f, 2.f, 2.f, 2.f, 4.f, 4.f, 4.f, 4.f, 4.f, 4.f}, /*16000*/ + -10.f, /* suppress any noise curve over maxspec+n */ + .5f, /* low window */ + .5f, /* high window */ + 5, + 5, + {.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*/ + .400f, 0.f,/*2000*/ + .600f, -2.f,/*2800*/ + .600f, -2.f,/*4000*/ + .700f, -2.f,/*5600*/ + .850f, -2.f,/*8000*/ + .850f, -1.f,/*11500*/ + .850f, 0.f,/*16000*/ }, - - 100.f, - -6.f, -.006f /* attack/decay control */ + 105.f, /* even decade + 5 is important; saves an rint() later in a + tight loop) */ + -28., + + -0., -.004 /* attack/decay control */ }; -static vorbis_info_psy _psy_set_C1={ +static vorbis_info_psy _psy_set_C={ 1,/*athp*/ 0,/*decayp*/ - 1,/*smoothp*/ - 0,.1f, -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 */ + 1,/* tonemaskp */ /* 0 10 20 30 40 50 60 70 80 90 100 */ - {{-30.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*63*/ - {-30.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*88*/ - {-30.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*125*/ - {-30.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*175*/ - {-30.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*250*/ - {-30.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*350*/ - {-30.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*500*/ - {-30.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*700*/ - {-30.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*1000*/ - {-30.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*1400*/ + { + {-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*/ + // {-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-100.}, /*175*/ + // {-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-100.}, /*250*/ + // {-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-100.}, /*350*/ + // {-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-100.}, /*500*/ + // {-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-100.}, /*700*/ + + // {-30.,-35.,-35.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*63*/ + // {-30.,-35.,-35.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*88*/ + // {-30.,-35.,-35.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*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*/ - {-30.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*4000*/ - {-30.f,-30.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*5600*/ - {-30.f,-30.f,-35.f,-35.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*8000*/ - {-30.f,-30.f,-35.f,-33.f,-35.f,-45.f,-55.f,-65.f,-75.f,-90.f,-100.f}, /*11500*/ - {-30.f,-28.f,-30.f,-32.f,-35.f,-45.f,-55.f,-65.f,-75.f,-90.f,-100.f}, /*16000*/ + {-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*/ + + {-30.f,-40.f,-40.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*8000*/ + {-30.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,-40.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,-22.f,-22.f,-22.f,-28.f,-28.f}, /*63*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-22.f,-28.f,-28.f}, /*88*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-22.f,-28.f,-28.f}, /*125*/ - { -7.f, -8.f, -9.f,-10.f,-10.f,-11.f,-12.f,-13.f,-18.f,-18.f,-20.f}, /*175*/ - { -7.f, -8.f, -9.f,-10.f,-10.f,-11.f,-12.f,-13.f,-18.f,-18.f,-20.f}, /*250*/ - { -7.f, -8.f, -9.f,-10.f,-10.f,-11.f,-12.f,-13.f,-18.f,-18.f,-20.f}, /*350*/ - { -7.f, -8.f, -9.f,-10.f,-10.f,-11.f,-12.f,-13.f,-18.f,-18.f,-20.f}, /*500*/ - { -7.f, -8.f, -9.f,-10.f,-10.f,-11.f,-12.f,-13.f,-15.f,-18.f,-20.f}, /*700*/ - { -7.f, -8.f, -9.f,-10.f,-10.f,-11.f,-12.f,-13.f,-15.f,-18.f,-20.f}, /*1000*/ - { -7.f, -8.f, -9.f,-10.f,-10.f,-11.f,-12.f,-13.f,-15.f,-18.f,-20.f}, /*1400*/ - { -7.f, -8.f, -9.f,-10.f,-10.f,-11.f,-12.f,-13.f,-15.f,-18.f,-20.f}, /*2000*/ - { -7.f, -8.f, -9.f,-10.f,-10.f,-11.f,-12.f,-13.f,-15.f,-18.f,-20.f}, /*2800*/ - { -7.f, -8.f, -9.f,-10.f,-10.f,-11.f,-12.f,-13.f,-15.f,-18.f,-20.f}, /*4000*/ - { -7.f, -8.f, -9.f,-10.f,-10.f,-11.f,-12.f,-13.f,-15.f,-18.f,-20.f}, /*5600*/ - { -7.f, -8.f, -9.f,-10.f,-10.f,-11.f,-12.f,-13.f,-15.f,-16.f,-17.f}, /*8000*/ - { -6.f, -7.f, -9.f, -9.f, -9.f, -9.f,-10.f,-11.f,-12.f,-13.f,-14.f}, /*11500*/ - { -6.f, -6.f, -9.f, -9.f, -9.f, -9.f, -9.f, -9.f,-10.f,-11.f,-12.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 */ - /* 0 10 20 30 40 50 60 70 80 90 100 */ - {{-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-199.f,-199.f,-199.f,-199.f}, /*63*/ - {-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-199.f,-199.f,-199.f,-199.f}, /*88*/ - {-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-199.f,-199.f,-199.f,-199.f}, /*125*/ - {-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-199.f,-199.f,-199.f,-199.f}, /*175*/ - {-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-199.f,-199.f,-199.f,-199.f}, /*250*/ - {-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-199.f,-199.f,-199.f,-199.f}, /*350*/ - {-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-199.f,-199.f,-199.f,-199.f}, /*500*/ - {-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-199.f,-199.f,-199.f,-199.f}, /*700*/ - {-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-199.f,-199.f,-199.f,-199.f}, /*1000*/ - {-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-99.f,-199.f,-199.f,-199.f,-199.f}, /*1400*/ - - { 0.f, -4.f, -4.f, -4.f, -6.f, -6.f, -6.f, -6.f, -6.f, -6.f, -6.f}, /*2000*/ - { 0.f, -3.f, -4.f, -4.f, -4.f, -5.f, -6.f, -6.f, -6.f, -6.f, -6.f}, /*2800*/ - { 0.f, -2.f, -2.f, -2.f, -2.f, -2.f, -2.f, -2.f, -4.f, -4.f, -4.f}, /*4000*/ - { 0.f, -0.f, -0.f, -0.f, -0.f, -2.f, -2.f, -2.f, -2.f, -2.f, -2.f}, /*5600*/ - { 0.f, 0.f, 0.f, 0.f, 0.f, 0.f, 0.f, 0.f, 0.f, -2.f, -4.f}, /*8000*/ - { 2.f, 2.f, 2.f, 2.f, 2.f, 2.f, 0.f, 0.f, 0.f, 0.f, 0.f}, /*11500*/ - { 2.f, 2.f, 2.f, 2.f, 2.f, 4.f, 4.f, 4.f, 4.f, 4.f, 4.f}, /*16000*/ + -15.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, -6.f, /*700*/ + .300f, -6.f, /*1000*/ + .400f, -6.f, /*1400*/ + .400f, -6.f, /*2000*/ + .400f, -6.f, /*2800*/ + .700f, -6.f, /*4000*/ + .850f, -6.f, /*5600*/ + .850f, -5.f, /*8000*/ + .850f, -4.f, /*11500*/ + .850f, -3.f, /*16000*/ }, - 110.f, + 105.f, /* even decade + 5 is important; saves an rint() later in a + tight loop) */ + -32., + + -0.f, -.004f, /* attack/decay control */ - -6.f, -.006f /* attack/decay control */ }; /* 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, 12,150, 1, {0} }; -static vorbis_info_floor0 _floor_set1C={30, 44100, 256, 12,150, 1, {1} }; -static vorbis_info_residue0 _residue_set0C={0,128, 32,6,2, +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}, - {4,5,6,7,8}, + {6,7,8,9,10}, {0,99999,9999,9999,9999}, - {99.f,1.5f,2.5f,6.5f,12.5f}, - {5,5,5,5,5}, + {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,1024, 32,6,3, - {0,1,1,1,1,1}, - {9,10,11,12,13}, +static vorbis_info_residue0 _residue_set1C={0,1024, 32,10,5, + {0,1,1,1,1,1,1,1,1,1}, + {11,12,13,14,15,16,17,18,19}, - {0,99999,9999,9999,9999}, - {99.f,1.5f,2.5f,6.5f,12.5f}, - {5,5,5,5,5}, - {99,99,99,99,99}}; - -static vorbis_info_mapping0 _mapping_set0C={1, {0,0}, {0}, {0}, {0}, {1}}; + {0,8,9999,18,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}; @@ -236,7 +272,7 @@ codec_setup_info info_C={ /* smallblock, largeblock */ {256, 2048}, /* modes,maps,times,floors,residues,books,psys */ - 2, 2, 1, 2, 2, 14, 2, + 2, 2, 1, 2, 2, 20, 2, /* modes */ {&_mode_set0C,&_mode_set1C}, /* maps */ @@ -248,8 +284,10 @@ codec_setup_info info_C={ /* residue */ {0,0},{&_residue_set0C,&_residue_set1C}, /* books */ - {&_vq_book_lsp12_0, /* 0 */ - &_vq_book_lsp30_0, /* 1 */ + {&_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, @@ -265,12 +303,20 @@ codec_setup_info info_C={ &_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_C1}, + {&_psy_set_C0,&_psy_set_C}, /* thresh sample period, preecho clamp trigger threshhold, range, minenergy */ - 256, 24.f, 6.f, -96.f + 256, 26.f, -26.f, -96.f, + + -15., + + 0, }; #define PREDEF_INFO_MAX 0 diff --git a/lib/modes/mode_D.h b/lib/modes/mode_D.h index d7af30f6..361ffc03 100644 --- a/lib/modes/mode_D.h +++ b/lib/modes/mode_D.h @@ -12,12 +12,10 @@ ******************************************************************** function: predefined encoding modes - last mod: $Id: mode_D.h,v 1.7 2000/12/21 21:04:47 xiphmont Exp $ + last mod: $Id: mode_D.h,v 1.8 2001/01/22 01:38:50 xiphmont Exp $ ********************************************************************/ -/* this is really a freeform VBR mode. It roughly centers on 256 kbps stereo */ - #ifndef _V_MODES_D_H_ #define _V_MODES_D_H_ @@ -27,6 +25,8 @@ #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" @@ -42,141 +42,228 @@ #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 ={ +static vorbis_info_psy _psy_set_D0={ 1,/*athp*/ 0,/*decayp*/ - 1,/*smoothp*/ - 0,.1f, - -100.f, - -140.f, + -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 */ - 0,/* tonemaskp */ + 1,/* tonemaskp */ /* 0 10 20 30 40 50 60 70 80 90 100 */ - {{0}}, + { + {-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.,-35.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*1000*/ + {-30.,-35.,-35.,-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.,-35.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*4000*/ + {-30.,-35.,-35.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*5600*/ + {-30.,-35.,-35.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*8000*/ + {-30.,-35.,-35.,-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,-22.f,-22.f,-28.f,-28.f,-28.f}, /*63*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-28.f,-28.f,-28.f}, /*88*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-28.f,-28.f,-28.f}, /*125*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-28.f,-28.f,-28.f}, /*175*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-28.f,-28.f,-28.f}, /*250*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-28.f,-28.f,-28.f}, /*350*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-28.f,-28.f,-28.f}, /*500*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-22.f,-22.f,-22.f}, /*700*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-22.f,-22.f,-22.f}, /*1000*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-22.f,-22.f,-22.f}, /*1400*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-22.f,-22.f,-22.f}, /*2000*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-22.f,-22.f,-22.f}, /*2800*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-22.f,-22.f,-22.f}, /*4000*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-22.f,-22.f,-22.f}, /*5600*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-22.f,-22.f,-22.f}, /*8000*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-22.f,-22.f,-22.f}, /*11500*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-22.f,-22.f,-22.f}, /*16000*/ + {{-20.f,-20.f,-20.f,-20.f,-20.f,-21.f,-28.f,-28.f,-28.f,-28.f,-28.f},/*63*/ + {-20.f,-20.f,-20.f,-20.f,-20.f,-21.f,-28.f,-28.f,-28.f,-28.f,-28.f},/*88*/ + {-20.f,-20.f,-20.f,-20.f,-20.f,-21.f,-28.f,-28.f,-28.f,-28.f,-28.f},/*125*/ + {-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-24.f,-28.f,-28.f,-28.f},/*175*/ + {-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-24.f,-28.f,-28.f,-28.f},/*250*/ + {-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-24.f,-28.f,-28.f,-28.f},/*350*/ + {-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-24.f,-28.f,-28.f,-28.f},/*500*/ + {-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-24.f,-28.f,-28.f,-28.f},/*700*/ + {-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-24.f,-28.f,-28.f,-28.f},/*1000*/ + {-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-24.f,-28.f,-28.f,-28.f},/*1400*/ + {-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-24.f,-28.f,-28.f,-28.f},/*2000*/ + {-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-24.f,-28.f,-28.f,-28.f},/*2800*/ + {-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-24.f,-28.f,-28.f,-28.f},/*4000*/ + + {-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-28.f,-28.f,-28.f},/*5600*/ + {-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-28.f,-28.f,-28.f},/*8000*/ + {-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-28.f,-28.f,-28.f},/*11500*/ + {-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-20.f,-24.f,-28.f},/*16000*/ }, - 0,/*noisemaskp */ - /* 0 10 20 30 40 50 60 70 80 90 100 */ - {{0}}, - - 110.f, + 1,/*noisemaskp */ + -15.f, /* suppress any noise curve over maxspec+n */ + .5f, /* low window */ + .5f, /* high window */ + 5, + 5, + {.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*/ + .600f, -6.f,/*2800*/ + .600f, -6.f,/*4000*/ + .700f, -6.f,/*5600*/ + .850f, -6.f,/*8000*/ + .850f, -5.f,/*11500*/ + .850f, -4.f,/*16000*/ + }, - -0.f, -.004f /* attack/decay control */ + 105.f, /* even decade + 5 is important; saves an rint() later in a + tight loop) */ + -30., + + -0., -.004 /* attack/decay control */ }; -static vorbis_info_psy _psy_set_D1 ={ + +static vorbis_info_psy _psy_set_D={ 1,/*athp*/ 0,/*decayp*/ - 1,/*smoothp*/ - 0,.1f, -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 */ + 1,/* tonemaskp */ /* 0 10 20 30 40 50 60 70 80 90 100 */ - {{-40.f,-40.f,-40.f,-45.f,-45.f,-55.f,-65.f,-75.f,-85.f,-95.f,-105.f}, /*63*/ - {-40.f,-40.f,-40.f,-45.f,-45.f,-55.f,-65.f,-75.f,-85.f,-95.f,-105.f}, /*88*/ - {-40.f,-40.f,-40.f,-45.f,-45.f,-55.f,-65.f,-75.f,-85.f,-95.f,-105.f}, /*125*/ - {-40.f,-40.f,-40.f,-45.f,-45.f,-55.f,-65.f,-75.f,-85.f,-95.f,-105.f}, /*175*/ - {-40.f,-40.f,-40.f,-45.f,-45.f,-55.f,-65.f,-75.f,-85.f,-95.f,-105.f}, /*250*/ - {-40.f,-40.f,-40.f,-45.f,-45.f,-55.f,-65.f,-75.f,-85.f,-95.f,-105.f}, /*350*/ - {-40.f,-40.f,-40.f,-45.f,-45.f,-55.f,-65.f,-75.f,-85.f,-95.f,-105.f}, /*500*/ - {-40.f,-40.f,-40.f,-45.f,-45.f,-55.f,-65.f,-75.f,-85.f,-95.f,-105.f}, /*700*/ - {-40.f,-40.f,-40.f,-45.f,-45.f,-55.f,-65.f,-75.f,-85.f,-95.f,-105.f}, /*1000*/ - {-40.f,-40.f,-40.f,-45.f,-45.f,-55.f,-65.f,-75.f,-85.f,-95.f,-105.f}, /*1400*/ - {-40.f,-40.f,-40.f,-45.f,-45.f,-55.f,-65.f,-75.f,-85.f,-95.f,-105.f}, /*2000*/ - {-40.f,-40.f,-40.f,-45.f,-45.f,-55.f,-65.f,-75.f,-85.f,-95.f,-105.f}, /*2800*/ - {-40.f,-40.f,-40.f,-45.f,-45.f,-55.f,-65.f,-75.f,-85.f,-95.f,-105.f}, /*4000*/ - {-40.f,-40.f,-40.f,-45.f,-45.f,-55.f,-65.f,-75.f,-85.f,-95.f,-105.f}, /*5600*/ - {-40.f,-40.f,-40.f,-45.f,-45.f,-55.f,-65.f,-75.f,-85.f,-95.f,-105.f}, /*8000*/ - {-40.f,-40.f,-40.f,-45.f,-45.f,-55.f,-65.f,-75.f,-85.f,-95.f,-105.f}, /*11500*/ - {-40.f,-40.f,-40.f,-45.f,-45.f,-55.f,-65.f,-75.f,-85.f,-95.f,-105.f}, /*16000*/ + { + {-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*/ + // {-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-100.}, /*175*/ + // {-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-100.}, /*250*/ + // {-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-100.}, /*350*/ + // {-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-100.}, /*500*/ + // {-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-100.}, /*700*/ + + // {-30.,-35.,-35.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*63*/ + // {-30.,-35.,-35.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*88*/ + // {-30.,-35.,-35.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*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*/ + + {-30.f,-40.f,-40.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*8000*/ + {-30.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,-40.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,-22.f,-22.f,-28.f,-28.f,-28.f}, /*63*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-28.f,-28.f,-28.f}, /*88*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-28.f,-28.f,-28.f}, /*125*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-28.f,-28.f,-28.f}, /*175*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-28.f,-28.f,-28.f}, /*250*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-28.f,-28.f,-28.f}, /*350*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-28.f,-28.f,-28.f}, /*500*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-22.f,-22.f,-22.f}, /*700*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-22.f,-22.f,-22.f}, /*1000*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-22.f,-22.f,-22.f}, /*1400*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-22.f,-22.f,-22.f}, /*2000*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-22.f,-22.f,-22.f}, /*2800*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-22.f,-22.f,-22.f}, /*4000*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-22.f,-22.f,-22.f}, /*5600*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-22.f,-22.f,-22.f}, /*8000*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-22.f,-22.f,-22.f}, /*11500*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-22.f,-22.f,-22.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*/ }, - 0,/*noisemaskp */ - /* 0 10 20 30 40 50 60 70 80 90 100 */ - {{0}}, + 1,/*noisemaskp */ + -15.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*/ + .000f, 0.f, /*700*/ + .000f, 0.f, /*1000*/ + .000f, 0.f, /*1400*/ + .000f, 0.f, /*2000*/ + .000f, 0.f, /*2800*/ + .000f, 0.f, /*4000*/ + .500f, -12.f, /*5600*/ + .500f, -12.f, /*8000*/ + .500f, -10.f, /*11500*/ + .500f, -10.f, /*16000*/ + }, - 110.f, + 105.f, /* even decade + 5 is important; saves an rint() later in a + tight loop) */ + -32., + + -0.f, -.004f, /* attack/decay control */ - -0.f, -.004f /* attack/decay control */ }; /* with GNUisms, this could be short and readable. Oh well */ -static vorbis_info_time0 _time_set0_256={0}; -static vorbis_info_floor0 _floor_set0_256={12, 44100, 64, 12,150, 1, {0} }; -static vorbis_info_floor0 _floor_set1_256={30, 44100, 256, 12,150, 1, {1} }; -static vorbis_info_residue0 _residue_set0_256={0,128, 32,6,2, - {0,1,1,1,1,1}, - {4,5,6,7,8}, - - {0,9999,9999,9999,9999}, - {99.f,2.5f,6.5f,15.5f,29.5f}, - {5,5,5,5,5}, - {99,99,99,99,99}}; - -static vorbis_info_residue0 _residue_set1_256={0,1024, 32,6,3, - {0,1,1,1,1,1}, - {9,10,11,12,13}, +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,9999,9999}, - {99.f,2.5f,6.5f,15.5f,29.5f}, - {5,5,5,5,5}, - {99,99,99,99,99}}; - -static vorbis_info_mapping0 _mapping_set0_256={1, {0,0}, {0}, {0}, {0}, {0}}; -static vorbis_info_mapping0 _mapping_set1_256={1, {0,0}, {0}, {1}, {1}, {1}}; -static vorbis_info_mode _mode_set0_256={0,0,0,0}; -static vorbis_info_mode _mode_set1_256={1,0,0,1}; + {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={ @@ -184,20 +271,22 @@ codec_setup_info info_D={ /* smallblock, largeblock */ {256, 2048}, /* modes,maps,times,floors,residues,books,psys */ - 2, 2, 1, 2, 2, 14, 2, + 2, 2, 1, 2, 2, 18, 2, /* modes */ - {&_mode_set0_256,&_mode_set1_256}, + {&_mode_set0D,&_mode_set1D}, /* maps */ - {0,0},{&_mapping_set0_256,&_mapping_set1_256}, + {0,0},{&_mapping_set0D,&_mapping_set1D}, /* times */ - {0,0},{&_time_set0_256}, + {0,0},{&_time_set0D}, /* floors */ - {0,0},{&_floor_set0_256,&_floor_set1_256}, + {0,0},{&_floor_set0D,&_floor_set1D}, /* residue */ - {0,0},{&_residue_set0_256,&_residue_set1_256}, + {0,0},{&_residue_set0D,&_residue_set1D}, /* books */ - {&_vq_book_lsp12_0, /* 0 */ - &_vq_book_lsp30_0, /* 1 */ + {&_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, @@ -213,12 +302,18 @@ codec_setup_info info_D={ &_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_D1}, + {&_psy_set_D0,&_psy_set_D}, /* thresh sample period, preecho clamp trigger threshhold, range, minenergy */ - 256, 24.f, 6.f, -96.f + 256, 20.f, -20.f, -96.f, + + -15., + + 0, }; #define PREDEF_INFO_MAX 0 diff --git a/lib/modes/mode_E.h b/lib/modes/mode_E.h index 7da3f84b..84ec43fb 100644 --- a/lib/modes/mode_E.h +++ b/lib/modes/mode_E.h @@ -12,12 +12,10 @@ ******************************************************************** function: predefined encoding modes - last mod: $Id: mode_E.h,v 1.4 2000/12/21 21:04:47 xiphmont Exp $ + last mod: $Id: mode_E.h,v 1.5 2001/01/22 01:38:50 xiphmont Exp $ ********************************************************************/ -/* this is really a freeform VBR mode. It roughly centers on 350 kbps stereo */ - #ifndef _V_MODES_E_H_ #define _V_MODES_E_H_ @@ -27,94 +25,243 @@ #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_350_128aux.vqh" -#include "books/res0_350_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_350_128_1.vqh" -#include "books/res0_350_128_2.vqh" -#include "books/res0_350_128_3.vqh" -#include "books/res0_350_128_4.vqh" -#include "books/res0_350_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" -#include "books/res0_350_1024_1.vqh" -#include "books/res0_350_1024_2.vqh" -#include "books/res0_350_1024_3.vqh" -#include "books/res0_350_1024_4.vqh" -#include "books/res0_350_1024_5.vqh" -static vorbis_info_psy _psy_set_E ={ +static vorbis_info_psy _psy_set_E0={ 1,/*athp*/ 0,/*decayp*/ - 1,/*smoothp*/ - 0,.1f, - -140.f, - -180.f, + -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 */ - 0,/* tonemaskp */ + 1,/* tonemaskp */ /* 0 10 20 30 40 50 60 70 80 90 100 */ - {{0}}, + { + {-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.,-35.,-35.,-45.,-45.,-55.,-65.,-75.,-85.,-95.,-105.}, /*1000*/ + {-35.,-35.,-35.,-45.,-45.,-55.,-65.,-75.,-85.,-95.,-105.}, /*1400*/ + {-45.,-45.,-45.,-45.,-45.,-55.,-65.,-75.,-85.,-95.,-105.}, /*2000*/ + {-45.,-45.,-45.,-45.,-45.,-55.,-65.,-75.,-85.,-95.,-105.}, /*2800*/ + {-35.,-35.,-35.,-45.,-45.,-55.,-65.,-75.,-85.,-95.,-105.}, /*4000*/ + {-35.,-35.,-35.,-45.,-45.,-55.,-65.,-75.,-85.,-95.,-105.}, /*5600*/ + {-35.,-35.,-35.,-45.,-45.,-55.,-65.,-75.,-85.,-95.,-105.}, /*8000*/ + {-35.,-35.,-35.,-45.,-45.,-55.,-65.,-75.,-85.,-95.,-105.}, /*11500*/ + {-35.,-35.,-35.,-45.,-45.,-55.,-65.,-75.,-85.,-95.,-105.}, /*16000*/ + }, 1,/* peakattp */ - {{-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-28.f,-28.f,-30.f}, /*63*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-28.f,-28.f,-30.f}, /*88*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-28.f,-28.f,-30.f}, /*125*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-28.f,-28.f,-30.f}, /*175*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-28.f,-28.f,-30.f}, /*250*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-28.f,-28.f,-30.f}, /*350*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-28.f,-28.f,-30.f}, /*500*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-22.f,-24.f,-28.f}, /*700*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-22.f,-24.f,-28.f}, /*1000*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-22.f,-24.f,-28.f}, /*1400*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-22.f,-24.f,-28.f}, /*2000*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-22.f,-24.f,-28.f}, /*2800*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-22.f,-24.f,-28.f}, /*4000*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-22.f,-24.f,-28.f}, /*5600*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-22.f,-24.f,-28.f}, /*8000*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-22.f,-24.f,-28.f}, /*11500*/ - {-14.f,-16.f,-18.f,-19.f,-20.f,-21.f,-22.f,-22.f,-22.f,-24.f,-28.f}, /*16000*/ + {{-24.f,-24.f,-24.f,-24.f,-24.f,-24.f,-28.f,-28.f,-28.f,-28.f,-28.f},/*63*/ + {-24.f,-24.f,-24.f,-24.f,-24.f,-24.f,-28.f,-28.f,-28.f,-28.f,-28.f},/*88*/ + {-24.f,-24.f,-24.f,-24.f,-24.f,-24.f,-28.f,-28.f,-28.f,-28.f,-28.f},/*125*/ + {-24.f,-24.f,-24.f,-24.f,-24.f,-24.f,-24.f,-24.f,-28.f,-28.f,-28.f},/*175*/ + {-24.f,-24.f,-24.f,-24.f,-24.f,-24.f,-24.f,-24.f,-28.f,-28.f,-28.f},/*250*/ + {-24.f,-24.f,-24.f,-24.f,-24.f,-24.f,-24.f,-24.f,-28.f,-28.f,-28.f},/*350*/ + {-24.f,-24.f,-24.f,-24.f,-24.f,-24.f,-24.f,-24.f,-28.f,-28.f,-28.f},/*500*/ + {-24.f,-24.f,-24.f,-24.f,-24.f,-24.f,-24.f,-24.f,-28.f,-28.f,-28.f},/*700*/ + {-24.f,-24.f,-24.f,-24.f,-24.f,-24.f,-24.f,-24.f,-28.f,-28.f,-28.f},/*1000*/ + {-24.f,-24.f,-24.f,-24.f,-24.f,-24.f,-24.f,-24.f,-28.f,-28.f,-28.f},/*1400*/ + {-24.f,-24.f,-24.f,-24.f,-24.f,-24.f,-24.f,-24.f,-28.f,-28.f,-28.f},/*2000*/ + {-24.f,-24.f,-24.f,-24.f,-24.f,-24.f,-24.f,-24.f,-28.f,-28.f,-28.f},/*2800*/ + {-24.f,-24.f,-24.f,-24.f,-24.f,-24.f,-24.f,-24.f,-28.f,-28.f,-28.f},/*4000*/ + + {-24.f,-24.f,-24.f,-24.f,-24.f,-24.f,-24.f,-24.f,-28.f,-28.f,-28.f},/*5600*/ + {-24.f,-24.f,-24.f,-24.f,-24.f,-24.f,-24.f,-24.f,-28.f,-28.f,-28.f},/*8000*/ + {-24.f,-24.f,-24.f,-24.f,-24.f,-24.f,-24.f,-24.f,-28.f,-28.f,-28.f},/*11500*/ + {-24.f,-24.f,-24.f,-24.f,-24.f,-24.f,-24.f,-24.f,-24.f,-24.f,-28.f},/*16000*/ + }, + + 1,/*noisemaskp */ + -30.f, /* suppress any noise curve over maxspec+n */ + .5f, /* low window */ + .5f, /* high window */ + 5, + 5, + {.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*/ + .000f, 0.f,/*4000*/ + .500f, -6.f,/*5600*/ + .500f, -6.f,/*8000*/ + .500f, -5.f,/*11500*/ + .500f, -4.f,/*16000*/ + }, + + 105.f, /* even decade + 5 is important; saves an rint() later in a + tight loop) */ + -32., + + -0., -.004 /* attack/decay control */ +}; + +static vorbis_info_psy _psy_set_E={ + 1,/*athp*/ + 0,/*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*/ + // {-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-100.}, /*175*/ + // {-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-100.}, /*250*/ + // {-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-100.}, /*350*/ + // {-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-100.}, /*500*/ + // {-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-100.}, /*700*/ + + // {-30.,-35.,-35.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*63*/ + // {-30.,-35.,-35.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*88*/ + // {-30.,-35.,-35.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*125*/ + {-45.f,-45.f,-45.f,-45.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f,-110.f}, /*175*/ + {-45.f,-45.f,-45.f,-45.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f,-110.f}, /*250*/ + {-45.f,-45.f,-45.f,-45.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f,-110.f}, /*350*/ + {-45.f,-45.f,-45.f,-45.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f,-110.f}, /*500*/ + {-45.f,-45.f,-45.f,-45.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f,-110.f}, /*700*/ + {-45.f,-45.f,-45.f,-45.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f,-110.f}, /*1000*/ + {-45.f,-45.f,-45.f,-45.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f,-110.f}, /*1400*/ + {-45.f,-45.f,-45.f,-45.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f,-110.f}, /*2000*/ + {-45.f,-45.f,-45.f,-45.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f,-110.f}, /*2800*/ + {-45.f,-45.f,-45.f,-45.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f,-110.f}, /*4000*/ + {-45.f,-45.f,-45.f,-45.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f,-110.f}, /*5600*/ + {-35.f,-45.f,-45.f,-45.f,-45.f,-55.f,-65.f,-75.f,-85.f,-95.f,-105.f}, /*8000*/ + {-35.f,-45.f,-45.f,-45.f,-45.f,-55.f,-65.f,-75.f,-85.f,-95.f,-105.f}, /*11500*/ + {-35.f,-35.f,-45.f,-45.f,-45.f,-55.f,-65.f,-75.f,-85.f,-95.f,-105.f}, /*16000*/ + + }, + + 1, + {{-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f},/*63*/ + {-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f},/*88*/ + {-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f},/*125*/ + {-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f},/*175*/ + {-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f},/*250*/ + {-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f},/*350*/ + {-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f},/*500*/ + {-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f},/*700*/ + {-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f},/*1000*/ + {-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f},/*1400*/ + {-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f},/*2800*/ + {-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f},/*2800*/ + {-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f},/*4000*/ + {-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f},/*5600*/ + {-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f},/*8000*/ + {-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f},/*11500*/ + {-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f,-28.f},/*16000*/ }, 0,/*noisemaskp */ - /* 0 10 20 30 40 50 60 70 80 90 100 */ - {{0}}, + -15.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*/ + .000f, 0.f, /*700*/ + .000f, 0.f, /*1000*/ + .000f, 0.f, /*1400*/ + .000f, 0.f, /*2000*/ + .000f, 0.f, /*2800*/ + .000f, 0.f, /*4000*/ + .500f, -12.f, /*5600*/ + .500f, -12.f, /*8000*/ + .500f, -10.f, /*11500*/ + .500f, -10.f, /*16000*/ + }, - 110.f, + 105.f, /* even decade + 5 is important; saves an rint() later in a + tight loop) */ + -32., + + -0.f, -.004f, /* attack/decay control */ - -0.f, -.004f /* attack/decay control */ }; /* with GNUisms, this could be short and readable. Oh well */ -static vorbis_info_time0 _time_set0_E={0}; -static vorbis_info_floor0 _floor_set0_E={12, 44100, 64, 12,150, 1, {0} }; -static vorbis_info_floor0 _floor_set1_E={30, 44100, 256, 12,150, 1, {1} }; -static vorbis_info_residue0 _residue_set0_E={0,128, 32,6,2, - {0,1,1,1,1,1}, - {4,5,6,7,8}, - - {0,9999,9999,9999,9999}, - {99.f,2.5f,6.5f,15.5f,29.5f}, - {5,5,5,5,5}, - {99,99,99,99,99}}; - -static vorbis_info_residue0 _residue_set1_E={0,1024, 32,6,3, - {0,1,1,1,1,1}, - {9,10,11,12,13}, +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,9999,9999}, - {99.f,2.5f,6.5f,15.5f,29.5f}, - {5,5,5,5,5}, - {99,99,99,99,99}}; + {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_set0_E={1, {0,0}, {0}, {0}, {0}, {0}}; -static vorbis_info_mapping0 _mapping_set1_E={1, {0,0}, {0}, {1}, {1}, {0}}; -static vorbis_info_mode _mode_set0_E={0,0,0,0}; -static vorbis_info_mode _mode_set1_E={1,0,0,1}; +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={ @@ -122,41 +269,49 @@ codec_setup_info info_E={ /* smallblock, largeblock */ {256, 2048}, /* modes,maps,times,floors,residues,books,psys */ - 2, 2, 1, 2, 2, 14, 1, + 2, 2, 1, 2, 2, 18, 2, /* modes */ - {&_mode_set0_E,&_mode_set1_E}, + {&_mode_set0E,&_mode_set1E}, /* maps */ - {0,0},{&_mapping_set0_E,&_mapping_set1_E}, + {0,0},{&_mapping_set0E,&_mapping_set1E}, /* times */ - {0,0},{&_time_set0_E}, + {0,0},{&_time_set0E}, /* floors */ - {0,0},{&_floor_set0_E,&_floor_set1_E}, + {0,0},{&_floor_set0E,&_floor_set1E}, /* residue */ - {0,0},{&_residue_set0_E,&_residue_set1_E}, + {0,0},{&_residue_set0E,&_residue_set1E}, /* books */ - {&_vq_book_lsp12_0, /* 0 */ - &_vq_book_lsp30_0, /* 1 */ + {&_vq_book_lsp12_0, /* 0 */ + &_vq_book_lsp12_1, /* 1 */ + &_vq_book_lsp30_0, /* 2 */ + &_vq_book_lsp30_1, /* 3 */ - &_huff_book_res0_350_128aux, - &_huff_book_res0_350_1024aux, + &_huff_book_res0_256_128aux, + &_huff_book_res0_256_1024aux, - &_vq_book_res0_350_128_1, - &_vq_book_res0_350_128_2, - &_vq_book_res0_350_128_3, - &_vq_book_res0_350_128_4, - &_vq_book_res0_350_128_5, + &_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_350_1024_1, - &_vq_book_res0_350_1024_2, - &_vq_book_res0_350_1024_3, - &_vq_book_res0_350_1024_4, - &_vq_book_res0_350_1024_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_E}, + {&_psy_set_E0,&_psy_set_E}, /* thresh sample period, preecho clamp trigger threshhold, range, minenergy */ - 256, 24.f, 6.f, -96.f + 256, 20.f, -20.f, -96.f, + + -15., + + 0, }; #define PREDEF_INFO_MAX 0 @@ -12,7 +12,7 @@ ******************************************************************** function: psychoacoustics not including preecho - last mod: $Id: psy.c,v 1.34 2000/12/21 21:04:40 xiphmont Exp $ + last mod: $Id: psy.c,v 1.35 2001/01/22 01:38:25 xiphmont Exp $ ********************************************************************/ @@ -20,6 +20,7 @@ #include <math.h> #include <string.h> #include "vorbis/codec.h" +#include "codec_internal.h" #include "masking.h" #include "psy.h" @@ -29,6 +30,8 @@ #include "scales.h" #include "misc.h" +#define NEGINF -9999.f + /* Why Bark scale for encoding but not masking computation? Because masking has a strong harmonic dependancy */ @@ -47,7 +50,7 @@ vorbis_info_psy *_vi_psy_copy(vorbis_info_psy *i){ return(ret); } -/* Set up decibel threshhold slopes on a Bark frequency scale */ +/* Set up decibel threshold slopes on a Bark frequency scale */ /* ATH is the only bit left on a Bark scale. No reason to change it right now */ static void set_curve(float *ref,float *c,int n, float crate){ @@ -83,15 +86,6 @@ static void attenuate_curve(float *c,float att){ c[i]+=att; } -static void linear_curve(float *c){ - int i; - for(i=0;i<EHMER_MAX;i++) - if(c[i]<=-200.f) - c[i]=0.f; - else - c[i]=fromdB(c[i]); -} - static void interp_curve(float *c,float *c1,float *c2,float del){ int i; for(i=0;i<EHMER_MAX;i++) @@ -105,8 +99,8 @@ static void setup_curve(float **c, float ath[EHMER_MAX]; float tempc[P_LEVELS][EHMER_MAX]; - memcpy(c[0],c[4],sizeof(float)*EHMER_MAX); - memcpy(c[2],c[4],sizeof(float)*EHMER_MAX); + memcpy(c[0]+2,c[4]+2,sizeof(float)*EHMER_MAX); + memcpy(c[2]+2,c[4]+2,sizeof(float)*EHMER_MAX); /* we add back in the ATH to avoid low level curves falling off to -infinity and unneccessarily cutting off high level curves in the @@ -115,8 +109,8 @@ static void setup_curve(float **c, mask too little than too much, so be pessimal. */ for(i=0;i<EHMER_MAX;i++){ - float oc_min=band*.5-1+(i-EHMER_OFFSET)*.125; - float oc_max=band*.5-1+(i-EHMER_OFFSET+1)*.125; + float oc_min=band*.5+(i-EHMER_OFFSET)*.125; + float oc_max=band*.5+(i-EHMER_OFFSET+1)*.125; float bark=toBARK(fromOC(oc_min)); int ibark=floor(bark); float del=bark-ibark; @@ -125,7 +119,7 @@ static void setup_curve(float **c, if(ibark<26) ath_min=ATH_Bark_dB[ibark]*(1.f-del)+ATH_Bark_dB[ibark+1]*del; else - ath_min=200.f; + ath_min=ATH_Bark_dB[25]; bark=toBARK(fromOC(oc_max)); ibark=floor(bark); @@ -134,7 +128,7 @@ static void setup_curve(float **c, if(ibark<26) ath_max=ATH_Bark_dB[ibark]*(1.f-del)+ATH_Bark_dB[ibark+1]*del; else - ath_max=200.f; + ath_max=ATH_Bark_dB[25]; ath[i]=min(ath_min,ath_max); } @@ -142,16 +136,16 @@ static void setup_curve(float **c, /* The c array is comes in as dB curves at 20 40 60 80 100 dB. interpolate intermediate dB curves */ for(i=1;i<P_LEVELS;i+=2){ - interp_curve(c[i],c[i-1],c[i+1],.5); + interp_curve(c[i]+2,c[i-1]+2,c[i+1]+2,.5); } /* normalize curves so the driving amplitude is 0dB */ /* make temp curves with the ATH overlayed */ for(i=0;i<P_LEVELS;i++){ - attenuate_curve(c[i],curveatt_dB[i]); + attenuate_curve(c[i]+2,curveatt_dB[i]); memcpy(tempc[i],ath,EHMER_MAX*sizeof(float)); attenuate_curve(tempc[i],-i*10.f); - max_curve(tempc[i],c[i]); + max_curve(tempc[i],c[i]+2); } /* Now limit the louder curves. @@ -166,18 +160,37 @@ static void setup_curve(float **c, for(j=1;j<P_LEVELS;j++){ min_curve(tempc[j],tempc[j-1]); - min_curve(c[j],tempc[j]); + min_curve(c[j]+2,tempc[j]); } - /* take things out of dB domain into linear amplitude */ - for(i=0;i<P_LEVELS;i++) - linear_curve(c[i]); + /* add fenceposts */ + for(j=0;j<P_LEVELS;j++){ + + for(i=0;i<EHMER_MAX;i++) + if(c[j][i+2]>-200.f)break; + c[j][0]=i; + for(i=EHMER_MAX-1;i>=0;i--) + if(c[j][i+2]>-200.f) + break; + c[j][1]=i; + + } } void _vp_psy_init(vorbis_look_psy *p,vorbis_info_psy *vi,int n,long rate){ long i,j; + long maxoc; memset(p,0,sizeof(vorbis_look_psy)); + + + p->eighth_octave_lines=vi->eighth_octave_lines; + p->shiftoc=rint(log(vi->eighth_octave_lines*8)/log(2))-1; + + p->firstoc=toOC(.25f*rate/n)*(1<<(p->shiftoc+1))-vi->eighth_octave_lines; + maxoc=toOC((n*.5f-.25f)*rate/n)*(1<<(p->shiftoc+1))+.5f; + p->total_octave_lines=maxoc-p->firstoc+1; + p->ath=_ogg_malloc(n*sizeof(float)); p->octave=_ogg_malloc(n*sizeof(int)); p->bark=_ogg_malloc(n*sizeof(float)); @@ -185,95 +198,84 @@ void _vp_psy_init(vorbis_look_psy *p,vorbis_info_psy *vi,int n,long rate){ p->n=n; /* set up the lookups for a given blocksize and sample rate */ - /* Vorbis max sample rate is limited by 26 Bark (54kHz) */ + /* Vorbis max sample rate is currently limited by 26 Bark (54kHz) */ set_curve(ATH_Bark_dB, p->ath,n,rate); for(i=0;i<n;i++) - p->ath[i]=fromdB(p->ath[i]); - for(i=0;i<n;i++) p->bark[i]=toBARK(rate/(2*n)*i); - for(i=0;i<n;i++){ - int oc=toOC((i+.5)*rate/(2.f*n))*2.f+2.f; /* half octaves, actually */ - if(oc<0)oc=0; - if(oc>=P_BANDS)oc=P_BANDS-1; - p->octave[i]=oc; - } + for(i=0;i<n;i++) + p->octave[i]=toOC((i*.5f+.25f)*rate/n)*(1<<(p->shiftoc+1))+.5f; p->tonecurves=_ogg_malloc(P_BANDS*sizeof(float **)); - p->noiseatt=_ogg_malloc(P_BANDS*sizeof(float **)); + p->noisemedian=_ogg_malloc(n*sizeof(float *)); + p->noiseoffset=_ogg_malloc(n*sizeof(float *)); p->peakatt=_ogg_malloc(P_BANDS*sizeof(float *)); for(i=0;i<P_BANDS;i++){ p->tonecurves[i]=_ogg_malloc(P_LEVELS*sizeof(float *)); - p->noiseatt[i]=_ogg_malloc(P_LEVELS*sizeof(float)); p->peakatt[i]=_ogg_malloc(P_LEVELS*sizeof(float)); } for(i=0;i<P_BANDS;i++) for(j=0;j<P_LEVELS;j++){ - p->tonecurves[i][j]=_ogg_malloc(EHMER_MAX*sizeof(float)); + p->tonecurves[i][j]=_ogg_malloc((EHMER_MAX+2)*sizeof(float)); } /* OK, yeah, this was a silly way to do it */ - memcpy(p->tonecurves[0][4],tone_125_40dB_SL,sizeof(float)*EHMER_MAX); - memcpy(p->tonecurves[0][6],tone_125_60dB_SL,sizeof(float)*EHMER_MAX); - memcpy(p->tonecurves[0][8],tone_125_80dB_SL,sizeof(float)*EHMER_MAX); - memcpy(p->tonecurves[0][10],tone_125_100dB_SL,sizeof(float)*EHMER_MAX); - - memcpy(p->tonecurves[2][4],tone_125_40dB_SL,sizeof(float)*EHMER_MAX); - memcpy(p->tonecurves[2][6],tone_125_60dB_SL,sizeof(float)*EHMER_MAX); - memcpy(p->tonecurves[2][8],tone_125_80dB_SL,sizeof(float)*EHMER_MAX); - memcpy(p->tonecurves[2][10],tone_125_100dB_SL,sizeof(float)*EHMER_MAX); - - memcpy(p->tonecurves[4][4],tone_250_40dB_SL,sizeof(float)*EHMER_MAX); - memcpy(p->tonecurves[4][6],tone_250_60dB_SL,sizeof(float)*EHMER_MAX); - memcpy(p->tonecurves[4][8],tone_250_80dB_SL,sizeof(float)*EHMER_MAX); - memcpy(p->tonecurves[4][10],tone_250_100dB_SL,sizeof(float)*EHMER_MAX); - - memcpy(p->tonecurves[6][4],tone_500_40dB_SL,sizeof(float)*EHMER_MAX); - memcpy(p->tonecurves[6][6],tone_500_60dB_SL,sizeof(float)*EHMER_MAX); - memcpy(p->tonecurves[6][8],tone_500_80dB_SL,sizeof(float)*EHMER_MAX); - memcpy(p->tonecurves[6][10],tone_500_100dB_SL,sizeof(float)*EHMER_MAX); - - memcpy(p->tonecurves[8][4],tone_1000_40dB_SL,sizeof(float)*EHMER_MAX); - memcpy(p->tonecurves[8][6],tone_1000_60dB_SL,sizeof(float)*EHMER_MAX); - memcpy(p->tonecurves[8][8],tone_1000_80dB_SL,sizeof(float)*EHMER_MAX); - memcpy(p->tonecurves[8][10],tone_1000_100dB_SL,sizeof(float)*EHMER_MAX); - - memcpy(p->tonecurves[10][4],tone_2000_40dB_SL,sizeof(float)*EHMER_MAX); - memcpy(p->tonecurves[10][6],tone_2000_60dB_SL,sizeof(float)*EHMER_MAX); - memcpy(p->tonecurves[10][8],tone_2000_80dB_SL,sizeof(float)*EHMER_MAX); - memcpy(p->tonecurves[10][10],tone_2000_100dB_SL,sizeof(float)*EHMER_MAX); - - memcpy(p->tonecurves[12][4],tone_4000_40dB_SL,sizeof(float)*EHMER_MAX); - memcpy(p->tonecurves[12][6],tone_4000_60dB_SL,sizeof(float)*EHMER_MAX); - memcpy(p->tonecurves[12][8],tone_4000_80dB_SL,sizeof(float)*EHMER_MAX); - memcpy(p->tonecurves[12][10],tone_4000_100dB_SL,sizeof(float)*EHMER_MAX); - - memcpy(p->tonecurves[14][4],tone_8000_40dB_SL,sizeof(float)*EHMER_MAX); - memcpy(p->tonecurves[14][6],tone_8000_60dB_SL,sizeof(float)*EHMER_MAX); - memcpy(p->tonecurves[14][8],tone_8000_80dB_SL,sizeof(float)*EHMER_MAX); - memcpy(p->tonecurves[14][10],tone_8000_100dB_SL,sizeof(float)*EHMER_MAX); - - memcpy(p->tonecurves[16][4],tone_8000_40dB_SL,sizeof(float)*EHMER_MAX); - memcpy(p->tonecurves[16][6],tone_8000_60dB_SL,sizeof(float)*EHMER_MAX); - memcpy(p->tonecurves[16][8],tone_8000_80dB_SL,sizeof(float)*EHMER_MAX); - memcpy(p->tonecurves[16][10],tone_8000_100dB_SL,sizeof(float)*EHMER_MAX); + memcpy(p->tonecurves[0][4]+2,tone_125_40dB_SL,sizeof(float)*EHMER_MAX); + memcpy(p->tonecurves[0][6]+2,tone_125_60dB_SL,sizeof(float)*EHMER_MAX); + memcpy(p->tonecurves[0][8]+2,tone_125_80dB_SL,sizeof(float)*EHMER_MAX); + memcpy(p->tonecurves[0][10]+2,tone_125_100dB_SL,sizeof(float)*EHMER_MAX); + + memcpy(p->tonecurves[2][4]+2,tone_125_40dB_SL,sizeof(float)*EHMER_MAX); + memcpy(p->tonecurves[2][6]+2,tone_125_60dB_SL,sizeof(float)*EHMER_MAX); + memcpy(p->tonecurves[2][8]+2,tone_125_80dB_SL,sizeof(float)*EHMER_MAX); + memcpy(p->tonecurves[2][10]+2,tone_125_100dB_SL,sizeof(float)*EHMER_MAX); + + memcpy(p->tonecurves[4][4]+2,tone_250_40dB_SL,sizeof(float)*EHMER_MAX); + memcpy(p->tonecurves[4][6]+2,tone_250_60dB_SL,sizeof(float)*EHMER_MAX); + memcpy(p->tonecurves[4][8]+2,tone_250_80dB_SL,sizeof(float)*EHMER_MAX); + memcpy(p->tonecurves[4][10]+2,tone_250_100dB_SL,sizeof(float)*EHMER_MAX); + + memcpy(p->tonecurves[6][4]+2,tone_500_40dB_SL,sizeof(float)*EHMER_MAX); + memcpy(p->tonecurves[6][6]+2,tone_500_60dB_SL,sizeof(float)*EHMER_MAX); + memcpy(p->tonecurves[6][8]+2,tone_500_80dB_SL,sizeof(float)*EHMER_MAX); + memcpy(p->tonecurves[6][10]+2,tone_500_100dB_SL,sizeof(float)*EHMER_MAX); + + memcpy(p->tonecurves[8][4]+2,tone_1000_40dB_SL,sizeof(float)*EHMER_MAX); + memcpy(p->tonecurves[8][6]+2,tone_1000_60dB_SL,sizeof(float)*EHMER_MAX); + memcpy(p->tonecurves[8][8]+2,tone_1000_80dB_SL,sizeof(float)*EHMER_MAX); + memcpy(p->tonecurves[8][10]+2,tone_1000_100dB_SL,sizeof(float)*EHMER_MAX); + + memcpy(p->tonecurves[10][4]+2,tone_2000_40dB_SL,sizeof(float)*EHMER_MAX); + memcpy(p->tonecurves[10][6]+2,tone_2000_60dB_SL,sizeof(float)*EHMER_MAX); + memcpy(p->tonecurves[10][8]+2,tone_2000_80dB_SL,sizeof(float)*EHMER_MAX); + memcpy(p->tonecurves[10][10]+2,tone_2000_100dB_SL,sizeof(float)*EHMER_MAX); + + memcpy(p->tonecurves[12][4]+2,tone_4000_40dB_SL,sizeof(float)*EHMER_MAX); + memcpy(p->tonecurves[12][6]+2,tone_4000_60dB_SL,sizeof(float)*EHMER_MAX); + memcpy(p->tonecurves[12][8]+2,tone_4000_80dB_SL,sizeof(float)*EHMER_MAX); + memcpy(p->tonecurves[12][10]+2,tone_4000_100dB_SL,sizeof(float)*EHMER_MAX); + + memcpy(p->tonecurves[14][4]+2,tone_8000_40dB_SL,sizeof(float)*EHMER_MAX); + memcpy(p->tonecurves[14][6]+2,tone_8000_60dB_SL,sizeof(float)*EHMER_MAX); + memcpy(p->tonecurves[14][8]+2,tone_8000_80dB_SL,sizeof(float)*EHMER_MAX); + memcpy(p->tonecurves[14][10]+2,tone_8000_100dB_SL,sizeof(float)*EHMER_MAX); + + memcpy(p->tonecurves[16][4]+2,tone_8000_40dB_SL,sizeof(float)*EHMER_MAX); + memcpy(p->tonecurves[16][6]+2,tone_8000_60dB_SL,sizeof(float)*EHMER_MAX); + memcpy(p->tonecurves[16][8]+2,tone_8000_80dB_SL,sizeof(float)*EHMER_MAX); + memcpy(p->tonecurves[16][10]+2,tone_8000_100dB_SL,sizeof(float)*EHMER_MAX); /* interpolate curves between */ for(i=1;i<P_BANDS;i+=2) for(j=4;j<P_LEVELS;j+=2){ - memcpy(p->tonecurves[i][j],p->tonecurves[i-1][j],EHMER_MAX*sizeof(float)); + memcpy(p->tonecurves[i][j]+2,p->tonecurves[i-1][j]+2,EHMER_MAX*sizeof(float)); /*interp_curve(p->tonecurves[i][j], p->tonecurves[i-1][j], p->tonecurves[i+1][j],.5);*/ - min_curve(p->tonecurves[i][j],p->tonecurves[i+1][j]); - /*min_curve(p->tonecurves[i][j],p->tonecurves[i-1][j]);*/ + min_curve(p->tonecurves[i][j]+2,p->tonecurves[i+1][j]+2); } - /*for(i=0;i<P_BANDS-1;i++) - for(j=4;j<P_LEVELS;j+=2) - min_curve(p->tonecurves[i][j],p->tonecurves[i+1][j]);*/ - /* set up the final curves */ for(i=0;i<P_BANDS;i++) setup_curve(p->tonecurves[i],i,vi->toneatt[i]); @@ -281,10 +283,28 @@ void _vp_psy_init(vorbis_look_psy *p,vorbis_info_psy *vi,int n,long rate){ /* set up attenuation levels */ for(i=0;i<P_BANDS;i++) for(j=0;j<P_LEVELS;j++){ - p->peakatt[i][j]=fromdB(p->vi->peakatt[i][j]); - p->noiseatt[i][j]=fromdB(p->vi->noiseatt[i][j]); + p->peakatt[i][j]=p->vi->peakatt[i][j]; } + /* set up rolling noise median */ + for(i=0;i<n;i++){ + float halfoc=toOC((i+.5)*rate/(2.*n))*2.+2.; + int inthalfoc; + float del; + + if(halfoc<0)halfoc=0; + if(halfoc>=P_BANDS-1)halfoc=P_BANDS-1; + inthalfoc=(int)halfoc; + del=halfoc-inthalfoc; + + p->noisemedian[i]= + p->vi->noisemedian[inthalfoc*2]*(1.-del) + + p->vi->noisemedian[inthalfoc*2+2]*del; + p->noiseoffset[i]= + p->vi->noisemedian[inthalfoc*2+1]*(1.-del) + + p->vi->noisemedian[inthalfoc*2+3]*del; + } + /*_analysis_output("mediancurve",0,p->noisemedian,n,0,0);*/ } void _vp_psy_clear(vorbis_look_psy *p){ @@ -298,167 +318,129 @@ void _vp_psy_clear(vorbis_look_psy *p){ for(j=0;j<P_LEVELS;j++){ _ogg_free(p->tonecurves[i][j]); } - _ogg_free(p->noiseatt[i]); _ogg_free(p->tonecurves[i]); _ogg_free(p->peakatt[i]); } _ogg_free(p->tonecurves); - _ogg_free(p->noiseatt); + _ogg_free(p->noisemedian); _ogg_free(p->peakatt); } memset(p,0,sizeof(vorbis_look_psy)); } } -static void compute_decay_fixed(vorbis_look_psy *p,float *f, float *decay, int n){ - /* handle decay */ +/* octave/(8*eighth_octave_lines) x scale and dB y scale */ +static void seed_curve(float *seed, + float **curves, + float amp, + int oc,int n,int linesper,float dBoffset){ int i; - float decscale=fromdB(p->vi->decay_coeff*n); - float attscale=1.f/fromdB(p->vi->attack_coeff); + long seedptr; + float *posts,*curve; - for(i=10;i<n;i++){ - float pre=decay[i]; - if(decay[i]){ - float val=decay[i]*decscale; - float att=fabs(f[i]/val); - - if(att>attscale) - decay[i]=fabs(f[i]/attscale); - else - decay[i]=val; - }else{ - decay[i]=fabs(f[i]/attscale); + int choice=(int)((amp+dBoffset)*.1f); + choice=max(choice,0); + choice=min(choice,P_LEVELS-1); + posts=curves[choice]; + curve=posts+2; + seedptr=oc+(posts[0]-16)*linesper-(linesper>>1); + + for(i=posts[0];i<posts[1];i++){ + if(seedptr>0){ + float lin=amp+curve[i]; + if(seed[seedptr]<lin)seed[seedptr]=lin; } - if(pre>f[i])f[i]=pre; + seedptr+=linesper; + if(seedptr>=n)break; } } -static long _eights[EHMER_MAX+1]={ - 981,1069,1166,1272, - 1387,1512,1649,1798, - 1961,2139,2332,2543, - 2774,3025,3298,3597, - 3922,4277,4664,5087, - 5547,6049,6597,7194, - 7845,8555,9329,10173, - 11094,12098,13193,14387, - 15689,17109,18658,20347, - 22188,24196,26386,28774, - 31379,34219,37316,40693, - 44376,48393,52772,57549, - 62757,68437,74631,81386, - 88752,96785,105545,115097, - 125515}; - -static int seed_curve(float *flr, - float **curves, - float amp,float specmax, - int x,int n,float specatt, - int maxEH){ - int i; - float *curve; +static void seed_peak(float *seed, + float *att, + float amp, + int oc, + int linesper, + float dBoffset){ + long seedptr; - /* make this attenuation adjustable */ - int choice=(int)((todB(amp)-specmax+specatt)/10.f+.5f); + int choice=(int)((amp+dBoffset)*.1f); choice=max(choice,0); choice=min(choice,P_LEVELS-1); + seedptr=oc-(linesper>>1); - for(i=maxEH;i>=0;i--) - if(((x*_eights[i])>>12)<n)break; - maxEH=i; - curve=curves[choice]; - - for(;i>=0;i--) - if(curve[i]>0.f)break; - - for(;i>=0;i--){ - float lin=curve[i]; - if(lin>0.){ - float *fp=flr+((x*_eights[i])>>12); - lin*=amp; - if(*fp<lin)*fp=lin; - }else break; - } - return(maxEH); -} + amp+=att[choice]; + if(seed[seedptr]<amp)seed[seedptr]=amp; -static void seed_peak(float *flr, - float *att, - float amp,float specmax, - int x,int n,float specatt){ - int prevx=(x*_eights[16])>>12; - - /* make this attenuation adjustable */ - int choice=rint((todB(amp)-specmax+specatt)/10.f+.5f); - if(choice<0)choice=0; - if(choice>=P_LEVELS)choice=P_LEVELS-1; - - if(prevx<n){ - float lin=att[choice]; - if(lin){ - lin*=amp; - if(flr[prevx]<lin)flr[prevx]=lin; - } - } } -static void seed_generic(vorbis_look_psy *p, - float ***curves, - float *f, - float *flr, - float *seeds, - float specmax){ +static void seed_loop(vorbis_look_psy *p, + float ***curves, + float **att, + float *f, + float *flr, + float *minseed, + float *maxseed, + float specmax){ vorbis_info_psy *vi=p->vi; long n=p->n,i; - int maxEH=EHMER_MAX-1; + float dBoffset=vi->max_curve_dB-specmax; /* prime the working vector with peak values */ - /* Use the 125 Hz curve up to 125 Hz and 8kHz curve after 8kHz. */ - for(i=0;i<n;i++) - if(f[i]>flr[i]) - maxEH=seed_curve(seeds,curves[p->octave[i]], - f[i],specmax,i,n,vi->max_curve_dB,maxEH); -} -static void seed_att(vorbis_look_psy *p, - float **att, - float *f, - float *flr, - float specmax){ - vorbis_info_psy *vi=p->vi; - long n=p->n,i; - - for(i=0;i<n;i++) - if(f[i]>flr[i]) - seed_peak(flr,att[p->octave[i]],f[i], - specmax,i,n,vi->max_curve_dB); + for(i=0;i<n;i++){ + float max=f[i]; + long oc=p->octave[i]; + while(i+1<n && p->octave[i+1]==oc){ + i++; + if(f[i]>max)max=f[i]; + } + + if(max>flr[i]){ + oc=oc>>p->shiftoc; + if(oc>=P_BANDS)oc=P_BANDS-1; + if(oc<0)oc=0; + if(vi->tonemaskp) + seed_curve(minseed, + curves[oc], + max, + p->octave[i]-p->firstoc, + p->total_octave_lines, + p->eighth_octave_lines, + dBoffset); + if(vi->peakattp) + seed_peak(maxseed, + att[oc], + max, + p->octave[i]-p->firstoc, + p->eighth_octave_lines, + dBoffset); + } + } } -static void seed_point(vorbis_look_psy *p, - float **att, - float *f, - float *flr, - float specmax){ - vorbis_info_psy *vi=p->vi; +static void bound_loop(vorbis_look_psy *p, + float *f, + float *seeds, + float *flr, + float att){ long n=p->n,i; - + + long off=(p->eighth_octave_lines>>1)+p->firstoc; + long *ocp=p->octave; + for(i=0;i<n;i++){ - /* make this attenuation adjustable */ - int choice=rint((todB(f[i])-specmax+vi->max_curve_dB)/10.+.5); - float lin; - if(choice<0)choice=0; - if(choice>=P_LEVELS)choice=P_LEVELS-1; - lin=att[p->octave[i]][choice]*f[i]; - if(flr[i]<lin)flr[i]=lin; + long oc=ocp[i]-off; + float v=f[i]+att; + if(seeds[oc]<v)seeds[oc]=v; } } -/* bleaugh, this is more complicated than it needs to be */ -static void max_seeds(vorbis_look_psy *p,float *seeds,float *flr){ - long n=p->n,i,j; - long *posstack=alloca(n*sizeof(long)); +static void seed_chase(float *seeds, int linesper, long n){ + long *posstack=alloca(n*sizeof(long)); float *ampstack=alloca(n*sizeof(float)); - long stack=0; + long stack=0; + long pos=0; + long i; for(i=0;i<n;i++){ if(stack<2){ @@ -471,9 +453,9 @@ static void max_seeds(vorbis_look_psy *p,float *seeds,float *flr){ ampstack[stack++]=seeds[i]; break; }else{ - if(i<posstack[stack-1]*1.0905077080f){ - if(stack>1 && ampstack[stack-1]<ampstack[stack-2] && - i<posstack[stack-2]*1.0905077080f){ + if(i<posstack[stack-1]+linesper){ + if(stack>1 && ampstack[stack-1]<=ampstack[stack-2] && + i<posstack[stack-2]+linesper){ /* we completely overlap, making stack-1 irrelevant. pop it */ stack--; continue; @@ -490,211 +472,203 @@ static void max_seeds(vorbis_look_psy *p,float *seeds,float *flr){ /* the stack now contains only the positions that are relevant. Scan 'em straight through */ - { - long pos=0; - for(i=0;i<stack;i++){ - long endpos; - if(i<stack-1 && ampstack[i+1]>ampstack[i]){ - endpos=posstack[i+1]; - }else{ - endpos=posstack[i]*1.0905077080f+1.f; /* +1 is important, else bin 0 is - discarded in short frames */ - } - if(endpos>n)endpos=n; - for(j=pos;j<endpos;j++) - if(flr[j]<ampstack[i]) - flr[j]=ampstack[i]; - pos=endpos; - } - } + for(i=0;i<stack;i++){ + long endpos; + if(i<stack-1 && ampstack[i+1]>ampstack[i]){ + endpos=posstack[i+1]; + }else{ + endpos=posstack[i]+linesper+1; /* +1 is important, else bin 0 is + discarded in short frames */ + } + if(endpos>n)endpos=n; + for(;pos<endpos;pos++) + seeds[pos]=ampstack[i]; + } + /* there. Linear time. I now remember this was on a problem set I had in Grad Skool... I didn't solve it at the time ;-) */ -} -static void bark_noise(long n,float *b,float *f,float *noise){ - long i=1,lo=0,hi=2; - float acc=0.f,val,del=0.f; - - float *norm=alloca(n*sizeof(float)); - - memset(noise,0,n*sizeof(float)); - memset(norm,0,n*sizeof(float)); +} - while(hi<n){ - val=todB_nn(f[i]*f[i])+400.f; - del=1.f/(i-lo); - noise[lo]+=val*del; - noise[i]-=val*del; - norm[lo]+=del; - norm[i]-=del; +/* bleaugh, this is more complicated than it needs to be */ +static void max_seeds(vorbis_look_psy *p,float *minseed,float *maxseed, + float *flr){ + long n=p->total_octave_lines; + int linesper=p->eighth_octave_lines; + long linpos=0; + long pos; + + seed_chase(minseed,linesper,n); /* for masking */ + seed_chase(maxseed,linesper,n); /* for peak att */ - del=1.f/(hi-i); - noise[i]-=val*del; - noise[hi]+=val*del; - norm[hi]+=del; - norm[i]-=del; + pos=p->octave[0]-p->firstoc-(linesper>>1); + while(linpos+1<p->n){ + float min=minseed[pos]; + float max=maxseed[pos]; + long end=((p->octave[linpos]+p->octave[linpos+1])>>1)-p->firstoc; + while(pos+1<=end){ + pos++; + if((minseed[pos]>NEGINF && minseed[pos]<min) || min==NEGINF) + min=minseed[pos]; + if(maxseed[pos]>max)max=maxseed[pos]; + } + if(max<min)max=min; - - i++; - for(;hi<n && b[hi]-.3<b[i];hi++); - for(;lo<i-1 && b[lo]+.3<b[i];lo++); - if(i==hi)hi++; + /* seed scale is log. Floor is linear. Map back to it */ + end=pos+p->firstoc; + for(;linpos<p->n && p->octave[linpos]<=end;linpos++) + if(flr[linpos]<max)flr[linpos]=max; } - + { - long ilo=i-lo; - long hii=hi-i; - - for(;i<n;i++){ - val=todB_nn(f[i]*f[i])+400.f; - del=1.f/(hii); - noise[i]-=val*del; - norm[i]-=del; - - del=1.f/(ilo); - noise[i-ilo]+=val*del; - noise[i]-=val*del; - norm[i-ilo]+=del; - norm[i]-=del; - } - for(i=1,lo=n-ilo;lo<n;lo++,i++){ - val=todB_nn(f[n-i]*f[n-i])+400.f; - del=1.f/ilo; - noise[lo]+=val*del; - norm[lo]+=del; - } + float min=minseed[p->total_octave_lines-1]; + float max=maxseed[p->total_octave_lines-1]; + if(max<min)max=min; + for(;linpos<p->n;linpos++) + if(flr[linpos]<max)flr[linpos]=max; } + +} +#define BIN(x) ((int)((x)*-4.)) +#define BINdB(x) ((x)*-.25) +static void bark_noise_median(long n,float *b,float *f,float *noise, + float lowidth,float hiwidth, + int lomin,int himin, + float *thresh,float *off){ + long i=0,lo=0,hi=0; + long *radix=alloca(200*4*sizeof(long)); /* quarter-dB bins */ - acc=0; - val=0; + long countabove=0; + long median=200*4-1; + long countbelow=0; - for(i=0;i<n;i++){ - val+=norm[i]; - norm[i]=val; - acc+=noise[i]; - noise[i]=acc; - } + memset(radix,0,200*4*sizeof(long)); - val=0; - acc=0; for(i=0;i<n;i++){ - val+=norm[i]; - acc+=noise[i]; - if(val==0){ - noise[i]=0.f; - norm[i]=0; - }else{ - float v=acc/val-400; - noise[i]=sqrt(fromdB(v)); + /* find new lo/hi */ + for(;hi<n && (b[hi]<=b[i]+hiwidth || hi<i+himin);hi++){ + int bin=BIN(f[hi]); + if(bin>=200*4)bin=200*4-1; + radix[bin]++; + if(bin<median) + countabove++; + else + countbelow++; + } + for(;lo<i && b[lo]+lowidth<=b[i] && lo+lomin<i;lo++){ + int bin=BIN(f[lo]); + if(bin>=200*4)bin=200*4-1; + radix[bin]--; + if(bin<median) + countabove--; + else + countbelow--; + } + + /* move the median if needed */ + if(countabove+countbelow){ + + while(thresh[i]>countbelow/(float)(countabove+countbelow) && median>0){ + median--; + countabove-=radix[median]; + countbelow+=radix[median]; + } + + while(thresh[i]<(countbelow-radix[median])/ + (float)(countabove+countbelow) && median+1<200*4){ + countabove+=radix[median]; + countbelow-=radix[median]; + median++; + } } + noise[i]=BINdB(median)+off[i]; } + } -void _vp_compute_mask(vorbis_look_psy *p,float *f, +float _vp_compute_mask(vorbis_look_psy *p, + float *fft, + float *mdct, float *flr, - float *decay){ - float *smooth=alloca(sizeof(float)*p->n); + float *decay, + float prev_maxamp){ int i,n=p->n; - float specmax=0.f; + float specmax=NEGINF; static int seq=0; - float *seed=alloca(sizeof(float)*p->n); - float *seed2=alloca(sizeof(float)*p->n); - - _analysis_output("mdct",seq,f,n,1,1); - memset(flr,0,n*sizeof(float)); - - /* noise masking */ - if(p->vi->noisemaskp){ - memset(seed,0,n*sizeof(float)); - bark_noise(n,p->bark,f,seed); - seed_point(p,p->noiseatt,seed,flr,specmax); + float *minseed=alloca(sizeof(float)*p->total_octave_lines); + float *maxseed=alloca(sizeof(float)*p->total_octave_lines); + for(i=0;i<p->total_octave_lines;i++)minseed[i]=maxseed[i]=NEGINF; + /* go to dB scale. Also find the highest peak so we know the limits */ + for(i=0;i<n;i++){ + fft[i]=todB(fft[i]); + if(fft[i]>specmax)specmax=fft[i]; } + if(specmax<prev_maxamp)specmax=prev_maxamp; - /* smooth the data is that's called for ********************************/ - for(i=0;i<n;i++)smooth[i]=fabs(f[i]); - if(p->vi->smoothp){ - /* compute power^.5 of three neighboring bins to smooth for peaks - that get split twixt bins/peaks that nail the bin. This evens - out treatment as we're not doing additive masking any longer. */ - float acc=smooth[0]*smooth[0]+smooth[1]*smooth[1]; - float prev=smooth[0]; - - smooth[0]=sqrt(acc); - for(i=1;i<n-1;i++){ - float this=smooth[i]; - acc+=smooth[i+1]*smooth[i+1]; - if(acc<0)acc=0; /* it can happen due to finite precision */ - smooth[i]=sqrt(acc); - acc-=prev*prev; - prev=this; - } - if(acc<0)acc=0; /* in case it happens on the final iteration */ - smooth[n-1]=sqrt(acc); + + for(i=0;i<n;i++){ + mdct[i]=todB(mdct[i]); } - _analysis_output("smooth",seq,smooth,n,1,1); + _analysis_output("mdct",seq,mdct,n,0,0); + _analysis_output("fft",seq,fft,n,0,0); - /* find the highest peak so we know the limits *************************/ - for(i=0;i<n;i++){ - if(smooth[i]>specmax)specmax=smooth[i]; + /* noise masking */ + if(p->vi->noisemaskp){ + bark_noise_median(n,p->bark,mdct,flr, + p->vi->noisewindowlo, + p->vi->noisewindowhi, + p->vi->noisewindowlomin, + p->vi->noisewindowhimin, + p->noisemedian, + p->noiseoffset); + /* suppress any noise curve > specmax+p->vi->noisemaxsupp */ + for(i=0;i<n;i++) + if(flr[i]>specmax+p->vi->noisemaxsupp) + flr[i]=specmax+p->vi->noisemaxsupp; + _analysis_output("noise",seq,flr,n,0,0); + }else{ + for(i=0;i<n;i++)flr[i]=NEGINF; } - specmax=todB(specmax); /* set the ATH (floating below specmax by a specified att) */ if(p->vi->athp){ float att=specmax+p->vi->ath_adjatt; if(att<p->vi->ath_maxatt)att=p->vi->ath_maxatt; - att=fromdB(att); for(i=0;i<n;i++){ - float av=p->ath[i]*att; + float av=p->ath[i]+att; if(av>flr[i])flr[i]=av; } } - _analysis_output("ath",seq,flr,n,1,1); + _analysis_output("ath",seq,flr,n,0,0); - /* peak attenuation ******/ - if(p->vi->peakattp){ - memset(seed,0,n*sizeof(float)); - seed_att(p,p->peakatt,smooth,seed,specmax); - max_seeds(p,seed,flr); - } + /* tone/peak masking */ - /* tone masking */ - if(p->vi->tonemaskp){ - memset(seed,0,n*sizeof(float)); - memset(seed2,0,n*sizeof(float)); + /* XXX apply decay to the fft here */ - seed_generic(p,p->tonecurves,smooth,flr,seed2,specmax); - max_seeds(p,seed2,seed2); - - for(i=0;i<n;i++)if(seed2[i]<flr[i])seed2[i]=flr[i]; - for(i=0;i<n;i++)if(seed2[i]<decay[i])seed2[i]=decay[i]; - - seed_generic(p,p->tonecurves,smooth,seed2,seed,specmax); - max_seeds(p,seed,seed); - - if(p->vi->decayp) - compute_decay_fixed(p,seed,decay,n); - - for(i=0;i<n;i++)if(flr[i]<seed[i])flr[i]=seed[i]; - - } - - _analysis_output("final",seq,flr,n,1,1); + seed_loop(p,p->tonecurves,p->peakatt,fft,flr,minseed,maxseed,specmax); + bound_loop(p,mdct,maxseed,flr,p->vi->bound_att_dB); + _analysis_output("minseed",seq,minseed,p->total_octave_lines,0,0); + _analysis_output("maxseed",seq,maxseed,p->total_octave_lines,0,0); + max_seeds(p,minseed,maxseed,flr); + _analysis_output("final",seq,flr,n,0,0); /* doing this here is clean, but we need to find a faster way to do it than to just tack it on */ - for(i=0;i<n;i++)if(2.f*f[i]>flr[i] || -2.f*f[i]>flr[i])break; - if(i==n)memset(flr,0,sizeof(float)*n); + for(i=0;i<n;i++)if(mdct[i]>=flr[i])break; + if(i==n)for(i=0;i<n;i++)flr[i]=NEGINF; + seq++; + + return(specmax); } @@ -716,4 +690,16 @@ void _vp_apply_floor(vorbis_look_psy *p,float *f, float *flr){ memcpy(f,work,p->n*sizeof(float)); } +float _vp_ampmax_decay(float amp,vorbis_dsp_state *vd){ + vorbis_info *vi=vd->vi; + codec_setup_info *ci=vi->codec_setup; + int n=ci->blocksizes[vd->W]/2; + float secs=(float)n/vi->rate; + + amp+=secs*ci->ampmax_att_per_sec; + if(amp<-9999)amp=-9999; + return(amp); +} + + @@ -12,7 +12,7 @@ ******************************************************************** function: random psychoacoustics (not including preecho) - last mod: $Id: psy.h,v 1.16 2000/11/06 00:07:02 xiphmont Exp $ + last mod: $Id: psy.h,v 1.17 2001/01/22 01:38:25 xiphmont Exp $ ********************************************************************/ @@ -31,13 +31,11 @@ typedef struct vorbis_info_psy{ int athp; int decayp; - int smoothp; - int noisecullp; - float noisecull_barkwidth; + float ath_adjatt; + float ath_maxatt; - 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 */ @@ -50,9 +48,15 @@ typedef struct vorbis_info_psy{ float peakatt[P_BANDS][P_LEVELS]; int noisemaskp; - float noiseatt[P_BANDS][P_LEVELS]; + float noisemaxsupp; + float noisewindowlo; + float noisewindowhi; + int noisewindowlomin; + int noisewindowhimin; + float noisemedian[P_BANDS*2]; float max_curve_dB; + float bound_att_dB; /* decay setup */ float attack_coeff; @@ -65,12 +69,18 @@ typedef struct { float ***tonecurves; float **peakatt; - float **noiseatt; + float *noisemedian; + float *noiseoffset; float *ath; - int *octave; + long *octave; /* in n.ocshift format */ float *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); @@ -80,10 +90,14 @@ 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 void _vp_compute_mask(vorbis_look_psy *p,float *f, +extern float _vp_compute_mask(vorbis_look_psy *p, + float *fft, + float *mdct, float *floor, - float *decay); + float *decay, + float prev_maxamp); extern void _vp_apply_floor(vorbis_look_psy *p,float *f,float *flr); +extern float _vp_ampmax_decay(float amp,vorbis_dsp_state *vd); #endif diff --git a/lib/psytune.c b/lib/psytune.c index e6543790..c01d6e21 100644 --- a/lib/psytune.c +++ b/lib/psytune.c @@ -13,7 +13,7 @@ function: simple utility that runs audio through the psychoacoustics without encoding - last mod: $Id: psytune.c,v 1.11 2000/12/21 21:04:40 xiphmont Exp $ + last mod: $Id: psytune.c,v 1.12 2001/01/22 01:38:25 xiphmont Exp $ ********************************************************************/ @@ -26,6 +26,7 @@ #include "os.h" #include "psy.h" #include "mdct.h" +#include "smallft.h" #include "window.h" #include "scales.h" #include "lpc.h" @@ -34,83 +35,99 @@ static vorbis_info_psy _psy_set0={ 1,/*athp*/ 0,/*decayp*/ - 1,/*smoothp*/ - 0,.2, - -100., - -140., + -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 */ - 0,/* tonemaskp */ + 1,/* tonemaskp */ /* 0 10 20 30 40 50 60 70 80 90 100 */ - {{-30.,-35.,-35.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*63*/ - {-30.,-35.,-35.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*88*/ - {-30.,-35.,-35.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*125*/ - {-30.,-35.,-35.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*175*/ - {-30.,-35.,-35.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*250*/ - {-30.,-35.,-35.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*350*/ - {-30.,-35.,-35.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*500*/ - {-30.,-35.,-35.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*700*/ - {-30.,-35.,-35.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*1000*/ - {-30.,-35.,-35.,-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.,-35.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*4000*/ - {-30.,-35.,-35.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*5600*/ - {-30.,-35.,-35.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*8000*/ - {-30.,-35.,-35.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*11500*/ - {-30.,-35.,-35.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*16000*/ + { + {-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*/ + // {-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-100.}, /*175*/ + // {-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-100.}, /*250*/ + // {-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-100.}, /*350*/ + // {-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-100.}, /*500*/ + // {-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-99.,-100.}, /*700*/ + + // {-30.,-35.,-35.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*63*/ + // {-30.,-35.,-35.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*88*/ + // {-30.,-35.,-35.,-40.,-40.,-50.,-60.,-70.,-80.,-90.,-100.}, /*125*/ + {-30.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*175*/ + {-30.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*250*/ + {-30.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*350*/ + {-30.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*500*/ + {-30.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*700*/ + + {-30.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*1000*/ + {-30.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*/ + {-30.f,-35.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*4000*/ + {-30.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,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*8000*/ + {-30.f,-30.f,-30.f,-40.f,-40.f,-45.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*11500*/ + {-30.f,-30.f,-30.f,-35.f,-35.f,-45.f,-50.f,-60.f,-70.f,-80.f,-90.f}, /*16000*/ }, 1,/* peakattp */ - {{-14.,-16.,-18.,-19.,-20.,-21.,-22.,-22.,-22.,-22.,-22.}, /*63*/ - {-14.,-16.,-18.,-19.,-20.,-21.,-22.,-22.,-22.,-22.,-22.}, /*88*/ - {-14.,-16.,-18.,-19.,-20.,-21.,-22.,-22.,-22.,-22.,-22.}, /*125*/ - { -7., -8., -9.,-10.,-10.,-11.,-12.,-13.,-15.,-18.,-20.}, /*8000*/ - { -7., -8., -9.,-10.,-10.,-11.,-12.,-13.,-15.,-18.,-20.}, /*8000*/ - { -7., -8., -9.,-10.,-10.,-11.,-12.,-13.,-15.,-18.,-20.}, /*8000*/ - { -7., -8., -9.,-10.,-10.,-11.,-12.,-13.,-15.,-18.,-20.}, /*8000*/ - { -7., -8., -9.,-10.,-10.,-11.,-12.,-13.,-15.,-18.,-20.}, /*8000*/ - { -7., -8., -9.,-10.,-10.,-11.,-12.,-13.,-15.,-18.,-20.}, /*8000*/ - { -7., -8., -9.,-10.,-10.,-11.,-12.,-13.,-15.,-18.,-20.}, /*8000*/ - { -7., -8., -9.,-10.,-10.,-11.,-12.,-13.,-15.,-18.,-20.}, /*8000*/ - { -7., -8., -9.,-10.,-10.,-11.,-12.,-13.,-15.,-18.,-20.}, /*8000*/ - { -7., -8., -9.,-10.,-10.,-11.,-12.,-13.,-15.,-18.,-20.}, /*8000*/ - { -7., -8., -9.,-10.,-10.,-11.,-12.,-13.,-15.,-18.,-20.}, /*8000*/ - { -7., -8., -9.,-10.,-10.,-11.,-12.,-13.,-15.,-16.,-17.}, /*8000*/ - { -6., -7., -9., -9., -9., -9.,-10.,-11.,-12.,-13.,-14.}, /*11500*/ - { -6., -6., -9., -9., -9., -9., -9., -9.,-10.,-11.,-12.}, /*16000*/ + {{-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*/ }, - - 0,/*noisemaskp */ - /* 0 10 20 30 40 50 60 70 80 90 100 */ - {{-99.,-99.,-99.,-99.,-99.,-99.,-99.,-199.,-199.,-199.,-199.}, /*63*/ - {-99.,-99.,-99.,-99.,-99.,-99.,-99.,-199.,-199.,-199.,-199.}, /*88*/ - {-99.,-99.,-99.,-99.,-99.,-99.,-99.,-199.,-199.,-199.,-199.}, /*125*/ - {-99.,-99.,-99.,-99.,-99.,-99.,-99.,-199.,-199.,-199.,-199.}, /*175*/ - {-99.,-99.,-99.,-99.,-99.,-99.,-99.,-199.,-199.,-199.,-199.}, /*250*/ - {-99.,-99.,-99.,-99.,-99.,-99.,-99.,-199.,-199.,-199.,-199.}, /*350*/ - {-99.,-99.,-99.,-99.,-99.,-99.,-99.,-199.,-199.,-199.,-199.}, /*500*/ - { 6., 6., 6., 2., 2., 2., 2., 2., 2., 1., 0.}, /*700*/ - - { 6., 6., 6., 5., 5., 5., 5., 5., 5., 4., 3.}, /*1000*/ - { 6., 6., 6., 5., 5., 5., 5., 5., 5., 4., 3.}, /*1400*/ - { 6., 6., 6., 5., 5., 5., 5., 5., 5., 4., 3.}, /*2000*/ - { 6., 6., 6., 5., 5., 5., 5., 5., 5., 4., 3.}, /*2800*/ - { 6., 6., 6., 5., 5., 5., 5., 5., 5., 4., 3.}, /*4000*/ - { 10., 10., 10., 10., 10., 10., 8., 8., 6., 6., 6.}, /*5600*/ - { 10., 10., 10., 10., 10., 10., 8., 8., 8., 8., 8.}, /*8000*/ - { 10., 10., 10., 10., 10., 10., 10., 10., 10., 10., 10.}, /*11500*/ - { 10., 10., 10., 10., 10., 10., 10., 10., 10., 10., 10.}, /*16000*/ + 1,/*noisemaskp */ + -0.f, /* suppress any noise curve over maxspec+n */ + .5f, /* low window */ + .5f, /* high window */ + 25, + 25, + {.000f, /*63*/ + .000f, /*88*/ + .000f, /*125*/ + .000f, /*175*/ + .000f, /*250*/ + .000f, /*350*/ + .000f, /*500*/ + .200f, /*700*/ + .300f, /*1000*/ + .400f, /*1400*/ + .400f, /*2000*/ + .400f, /*2800*/ + .700f, /*4000*/ + .900f, /*5600*/ + .900f, /*8000*/ + .900f, /*11500*/ + .900f, /*16000*/ }, - 100., + 105.f, /* even decade + 5 is important; saves an rint() later in a + tight loop) */ + -28., - -0., -.004 /* attack/decay control */ + -0.f, -.004f /* attack/decay control */ }; static int noisy=0; @@ -148,9 +165,15 @@ typedef struct { int m; int *linearmap; + void *vi; lpc_lookup lpclook; + float *lsp_look; + } vorbis_look_floor0; +extern float _curve_to_lpc(float *curve,float *lpc, + vorbis_look_floor0 *l); + long frameno=0; /* hacked from floor0.c */ @@ -177,14 +200,17 @@ int main(int argc,char *argv[]){ float nonz=0.f; float acc=0.f; float tot=0.f; + float ampmax=-9999,newmax; int framesize=2048; - int order=32; + int order=30; int map=256; + float ampmax_att_per_sec=-10.; - float *pcm[2],*out[2],*window,*decay[2],*lpc,*floor,*mask; + float *pcm[2],*out[2],*window,*lpc,*flr,*mask; signed char *buffer,*buffer2; mdct_lookup m_look; + drft_lookup f_look; vorbis_look_psy p_look; long i,j,k; @@ -200,15 +226,11 @@ int main(int argc,char *argv[]){ if(argv[0][1]=='v'){ noisy=0; } - if(argv[0][1]=='A'){ - ath=0; - } - if(argv[0][1]=='D'){ - decayp=0; + if(argv[0][1]=='o'){ + order=atoi(argv[0]+2); } - if(argv[0][1]=='X'){ - ath=0; - decayp=0; + if(argv[0][1]=='m'){ + map=atoi(argv[0]+2); } }else if(*argv[0]=='+'){ @@ -216,15 +238,11 @@ int main(int argc,char *argv[]){ if(argv[0][1]=='v'){ noisy=1; } - if(argv[0][1]=='A'){ - ath=1; + if(argv[0][1]=='o'){ + order=atoi(argv[0]+2); } - if(argv[0][1]=='D'){ - decayp=1; - } - if(argv[0][1]=='X'){ - ath=1; - decayp=1; + if(argv[0][1]=='m'){ + map=atoi(argv[0]+2); } }else framesize=atoi(argv[0]); @@ -236,20 +254,19 @@ int main(int argc,char *argv[]){ pcm[1]=_ogg_malloc(framesize*sizeof(float)); out[0]=_ogg_calloc(framesize/2,sizeof(float)); out[1]=_ogg_calloc(framesize/2,sizeof(float)); - decay[0]=_ogg_calloc(framesize/2,sizeof(float)); - decay[1]=_ogg_calloc(framesize/2,sizeof(float)); - floor=_ogg_malloc(framesize*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); _vp_psy_init(&p_look,&_psy_set0,framesize/2,44100); floorinit(&floorlook,framesize/2,order,map); 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,1); + 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. */ @@ -277,30 +294,57 @@ int main(int argc,char *argv[]){ (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++) - pcm[i][j]*=window[j]; + mask[j]=pcm[i][j]*=window[j]; + + drft_forward(&f_look,mask); - memcpy(mask,pcm[i],sizeof(float)*framesize); + 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("mdct",frameno,pcm[i],framesize/2,1,1); + analysis("mask",frameno,flr,framesize/2,0,0); - _vp_compute_mask(&p_look,pcm[i],floor,decay[i]); - - analysis("floor",frameno,floor,framesize/2,1,1); - analysis("decay",frameno,decay[i],framesize/2,1,1); + for(j=0;j<framesize/2;j++) + mask[j]=flr[j]+140.; + + amp=sqrt(_curve_to_lpc(mask,mask,&floorlook)); + vorbis_lpc_to_lsp(mask,mask,floorlook.m); + vorbis_lsp_to_curve(flr,floorlook.linearmap,floorlook.n,floorlook.ln, + mask,floorlook.m,amp,140.); + + analysis("floor",frameno,flr,framesize/2,0,1); - _vp_apply_floor(&p_look,pcm[i],floor); + _vp_apply_floor(&p_look,pcm[i],flr); - analysis("quant",frameno,pcm[i],framesize/2,1,1); + analysis("quant",frameno,pcm[i],framesize/2,0,0); /* re-add floor */ for(j=0;j<framesize/2;j++){ @@ -309,13 +353,13 @@ int main(int argc,char *argv[]){ if(val){ nonz++; acc+=log(fabs(val)*2.f+1.f)/log(2); - pcm[i][j]=val*floor[j]; + pcm[i][j]=val*flr[j]; }else{ pcm[i][j]=0.f; } } - analysis("final",frameno,pcm[i],framesize/2,1,1); + analysis("final",frameno,pcm[i],framesize/2,0,1); /* take it back to time */ mdct_backward(&m_look,pcm[i],pcm[i]); @@ -324,6 +368,7 @@ int main(int argc,char *argv[]){ frameno++; } + ampmax=newmax; /* write data. Use the part of buffer we're about to shift out */ for(i=0;i<2;i++){ @@ -12,7 +12,7 @@ ******************************************************************** function: residue backend 0 implementation - last mod: $Id: res0.c,v 1.23 2000/12/21 21:04:41 xiphmont Exp $ + last mod: $Id: res0.c,v 1.24 2001/01/22 01:38:25 xiphmont Exp $ ********************************************************************/ @@ -32,7 +32,6 @@ #include "codebook.h" #include "misc.h" #include "os.h" -#include "bitbuffer.h" typedef struct { vorbis_info_residue0 *info; @@ -112,8 +111,10 @@ vorbis_info_residue *res0_unpack(vorbis_info *vi,oggpack_buffer *opb){ want old code to DTWT */ acc+=cascade; } - for(j=0;j<acc;j++) + for(j=0;j<acc;j++){ info->booklist[j]=oggpack_read(opb,8); + if(info->booklist[j]==255)info->booklist[j]=-1; + } if(info->groupbook>=ci->books)goto errout; for(j=0;j<acc;j++) @@ -146,8 +147,7 @@ vorbis_look_residue *res0_look (vorbis_dsp_state *vd,vorbis_info_mode *vm, int stages=info->secondstages[j]; if(stages){ look->partbooks[j]=_ogg_malloc(stages*sizeof(codebook *)); - for(k=0;k<stages;k++) - look->partbooks[j][k]=be->fullbooks+info->booklist[acc++]; + look->partbooks[j][0]=be->fullbooks+info->booklist[acc++]; } } @@ -212,7 +212,7 @@ static int _testhack(float *vec,int n,vorbis_look_residue0 *look, return(i); } -static int _encodepart(vorbis_bitbuffer *vbb,float *vec, int n, +static int _encodepart(oggpack_buffer *opb,float *vec, int n, int stages, codebook **books,int mode,int part){ int i,j=0,bits=0; if(stages){ @@ -230,7 +230,7 @@ static int _encodepart(vorbis_bitbuffer *vbb,float *vec, int n, fclose(f); } #endif - bits+=vorbis_book_bufencode(books[j],entry,vbb); + bits+=vorbis_book_encode(books[j],entry,opb); } } return(bits); @@ -241,10 +241,10 @@ static int _decodepart(oggpack_buffer *opb,float *work,float *vec, int n, int i; memset(work,0,sizeof(float)*n); - for(i=0;i<stages;i++){ - int dim=books[i]->dim; + if(stages){ + int dim=books[0]->dim; int step=n/dim; - if(s_vorbis_book_decodevs(books[i],work,opb,step,0)==-1) + if(s_vorbis_book_decodevs(books[0],work,opb,step,0)==-1) return(-1); } @@ -255,7 +255,7 @@ static int _decodepart(oggpack_buffer *opb,float *work,float *vec, int n, } int res0_forward(vorbis_block *vb,vorbis_look_residue *vl, - float **in,int ch,vorbis_bitbuffer *vbb){ + float **in,int ch){ long i,j,k,l; vorbis_look_residue0 *look=(vorbis_look_residue0 *)vl; vorbis_info_residue0 *info=look->info; @@ -307,13 +307,13 @@ int res0_forward(vorbis_block *vb,vorbis_look_residue *vl, long val=partword[j][l]; for(k=1;k<partitions_per_word;k++) val= val*possible_partitions+partword[j][l+k]; - phrasebits+=vorbis_book_bufencode(look->phrasebook,val,vbb); + phrasebits+=vorbis_book_encode(look->phrasebook,val,&vb->opb); } /* 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++){ /*resbits[partword[j][l]]+=*/ - resbitsT+=_encodepart(vbb,in[j]+i,samples_per_partition, + resbitsT+=_encodepart(&vb->opb,in[j]+i,samples_per_partition, info->secondstages[partword[j][l]], look->partbooks[partword[j][l]],look->map,partword[j][l]); resvals[partword[j][l]]+=samples_per_partition; diff --git a/lib/scales.h b/lib/scales.h index 42708bd0..623ea4a5 100644 --- a/lib/scales.h +++ b/lib/scales.h @@ -12,7 +12,7 @@ ******************************************************************** function: linear scale -> dB, Bark and Mel scales - last mod: $Id: scales.h,v 1.10 2000/12/24 06:04:14 msmith Exp $ + last mod: $Id: scales.h,v 1.11 2001/01/22 01:38:26 xiphmont Exp $ ********************************************************************/ @@ -23,11 +23,10 @@ /* 20log10(x) */ #define DYNAMIC_RANGE_dB 200.f -#define todB(x) ((x)==0?-9e20f:log(fabs(x))*8.6858896f) +#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) #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 @@ -37,16 +36,16 @@ all f in Hz, z in Bark */ -#define toBARK(f) (13.1F*atan(.00074F*(f))+2.24F*atan((f)*(f)*1.85e-8F)+1e-4F*(f)) +#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(f) (log(1.F+(f)*.001F)*1442.695F) +#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 125.0 Hz to be octave +/* Frequency to octave. We arbitrarily declare 63.5 Hz to be octave 0.0 */ -#define toOC(f) (log(f)*1.442695F-6.965784F) -#define fromOC(o) (exp(((o)+6.965784f)*.693147f)) +#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 index de51c904..7d31db22 100644 --- a/lib/sharedbook.c +++ b/lib/sharedbook.c @@ -12,7 +12,7 @@ ******************************************************************** function: basic shared codebook operations - last mod: $Id: sharedbook.c,v 1.13 2000/12/21 21:04:41 xiphmont Exp $ + last mod: $Id: sharedbook.c,v 1.14 2001/01/22 01:38:26 xiphmont Exp $ ********************************************************************/ @@ -60,9 +60,9 @@ long _float32_pack(float val){ } float _float32_unpack(long val){ - float mant=val&0x1fffff; - float sign=val&0x80000000; - float exp =(val&0x7fe00000)>>VQ_FMAN; + 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)); } diff --git a/lib/vorbisfile.c b/lib/vorbisfile.c index 0ff3f400..48cecff7 100644 --- a/lib/vorbisfile.c +++ b/lib/vorbisfile.c @@ -12,7 +12,7 @@ ******************************************************************** function: stdio-based convenience library for opening/seeking/decoding - last mod: $Id: vorbisfile.c,v 1.35 2001/01/01 21:31:15 xiphmont Exp $ + last mod: $Id: vorbisfile.c,v 1.36 2001/01/22 01:38:26 xiphmont Exp $ ********************************************************************/ diff --git a/lib/window.h b/lib/window.h index 6132247e..f1557fcc 100644 --- a/lib/window.h +++ b/lib/window.h @@ -12,14 +12,13 @@ ******************************************************************** function: window functions - last mod: $Id: window.h,v 1.5 2000/11/06 00:07:03 xiphmont Exp $ + last mod: $Id: window.h,v 1.6 2001/01/22 01:38:26 xiphmont Exp $ ********************************************************************/ #ifndef _V_WINDOW_ #define _V_WINDOW_ -#define VI_WINDOWB 1 extern float *_vorbis_window(int type,int window,int left,int right); #endif diff --git a/libvorbis.spec b/libvorbis.spec index 2491c21d..c6c0b09b 100644 --- a/libvorbis.spec +++ b/libvorbis.spec @@ -1,5 +1,5 @@ %define name libvorbis -%define version 1.0beta3 +%define version 1.0prebeta4 %define release 1 Summary: The Vorbis General Audio Compression Codec diff --git a/vq/Makefile.am b/vq/Makefile.am index d5ab2feb..21927b40 100644 --- a/vq/Makefile.am +++ b/vq/Makefile.am @@ -6,7 +6,7 @@ INCLUDES = -I../lib -I$(top_srcdir)/include @OGG_CFLAGS@ EXTRA_PROGRAMS = lspvqtrain genericvqtrain residuevqtrain vqbuild\ vqcascade vqmetrics latticebuild latticepare latticehint\ - latticetune huffbuild residuesplit + latticetune huffbuild residuesplit distribution CLEANFILES = $(EXTRA_PROGRAMS) LDFLAGS = -static @@ -36,6 +36,8 @@ huffbuild_SOURCES = huffbuild.c vqgen.c bookutil.c\ vqgen.h bookutil.h residuesplit_SOURCES = residuesplit.c vqgen.c bookutil.c\ vqgen.h bookutil.h +distribution_SOURCES = distribution.c bookutil.c\ + bookutil.h EXTRA_DIST = residue_entropy auxpartition.pl diff --git a/vq/bookutil.c b/vq/bookutil.c index 126552db..c0edcc11 100644 --- a/vq/bookutil.c +++ b/vq/bookutil.c @@ -12,7 +12,7 @@ ******************************************************************** function: utility functions for loading .vqh and .vqd files - last mod: $Id: bookutil.c,v 1.20 2000/12/21 21:04:49 xiphmont Exp $ + last mod: $Id: bookutil.c,v 1.21 2001/01/22 01:38:51 xiphmont Exp $ ********************************************************************/ @@ -536,21 +536,20 @@ void write_codebook(FILE *out,char *name,const static_codebook *c){ /* save the book in C header form */ fprintf(out, - "/********************************************************************\n" - " * *\n" - " * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. *\n" - " * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY *\n" - " * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. *\n" - " * PLEASE READ THESE TERMS DISTRIBUTING. *\n" - " * *\n" - " * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 *\n" - " * by 1999 Monty <monty@xiph.org> and The XIPHOPHORUS Company *\n" - " * http://www.xiph.org/ *\n" - " * *\n" - " ********************************************************************\n" - "\n" - " function: static codebook autogenerated by vq/somethingorother\n" - "\n" + "/********************************************************************\n" + " * *\n" + " * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *\n" + " * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY *\n" + " * THE GNU LESSER/LIBRARY PUBLIC LICENSE, WHICH IS INCLUDED WITH *\n" + " * THIS SOURCE. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *\n" + " * *\n" + " * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *\n" + " * by the XIPHOPHORUS Company, http://www.xiph.org/ *\n" + " * *\n" + " ********************************************************************\n" + "\n" + " function: static codebook autogenerated by vq/somethingorother\n" + "\n" " ********************************************************************/\n\n"); fprintf(out,"#ifndef _V_%s_VQH_\n#define _V_%s_VQH_\n",name,name); diff --git a/vq/distribution.c b/vq/distribution.c new file mode 100644 index 00000000..eb175dfe --- /dev/null +++ b/vq/distribution.c @@ -0,0 +1,225 @@ +/******************************************************************** + * * + * 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-2000 * + * by Monty <monty@xiph.org> and the XIPHOPHORUS Company * + * http://www.xiph.org/ * + * * + ******************************************************************** + + function: utility for finding the distribution in a data set + last mod: $Id: distribution.c,v 1.2 2001/01/22 01:38:51 xiphmont Exp $ + + ********************************************************************/ + +#include <stdlib.h> +#include <stdio.h> +#include <math.h> +#include <string.h> +#include <errno.h> +#include "bookutil.h" + +/* command line: + distribution file.vqd +*/ + +int ascend(const void *a,const void *b){ + return(**((long **)a)-**((long **)b)); +} + +int main(int argc,char *argv[]){ + FILE *in; + long lines=0; + float min; + float max; + long bins=-1; + int flag=0; + long *countarray; + long total=0; + char *line; + + if(argv[1]==NULL){ + fprintf(stderr,"Usage: distribution {data.vqd [bins]| book.vqh} \n\n"); + exit(1); + } + if(argv[2]!=NULL) + bins=atoi(argv[2])-1; + + in=fopen(argv[1],"r"); + if(!in){ + fprintf(stderr,"Could not open input file %s\n",argv[1]); + exit(1); + } + + if(strrchr(argv[1],'.') && strcmp(strrchr(argv[1],'.'),".vqh")==0){ + /* load/decode a book */ + + codebook *b=codebook_load(argv[1]); + static_codebook *c=(static_codebook *)(b->c); + float delta; + int i; + fclose(in); + + switch(c->maptype){ + case 0: + printf("entropy codebook only; no mappings\n"); + exit(0); + break; + case 1: + bins=_book_maptype1_quantvals(c); + break; + case 2: + bins=c->entries*c->dim; + break; + } + + max=min=_float32_unpack(c->q_min); + delta=_float32_unpack(c->q_delta); + + for(i=0;i<bins;i++){ + float val=c->quantlist[i]*delta+min; + if(val>max)max=val; + } + + printf("Minimum scalar value: %f\n",min); + printf("Maximum scalar value: %f\n",max); + + switch(c->maptype){ + case 1: + { + /* lattice codebook. dump it. */ + int j,k; + long maxcount=0; + long **sort=calloc(bins,sizeof(long *)); + long base=c->lengthlist[0]; + countarray=calloc(bins,sizeof(long)); + + for(i=0;i<bins;i++)sort[i]=c->quantlist+i; + qsort(sort,bins,sizeof(long *),ascend); + + for(i=0;i<b->entries;i++) + if(c->lengthlist[i]>base)base=c->lengthlist[i]; + + /* do a rough count */ + for(j=0;j<b->entries;j++){ + int indexdiv=1; + for(k=0;k<b->dim;k++){ + if(c->lengthlist[j]){ + int index= (j/indexdiv)%bins; + countarray[index]+=(1<<(base-c->lengthlist[j])); + indexdiv*=bins; + } + } + } + + /* dump the count */ + + { + long maxcount=0,i,j; + for(i=0;i<bins;i++) + if(countarray[i]>maxcount)maxcount=countarray[i]; + + for(i=0;i<bins;i++){ + int ptr=sort[i]-c->quantlist; + int stars=rint(50./maxcount*countarray[ptr]); + printf("%+08f (%8ld) |",c->quantlist[ptr]*delta+min,countarray[ptr]); + for(j=0;j<stars;j++)printf("*"); + printf("\n"); + } + } + } + break; + case 2: + { + /* trained, full mapping codebook. */ + printf("Can't do probability dump of a trained [type 2] codebook (yet)\n"); + } + break; + } + }else{ + /* load/count a data file */ + + /* do it the simple way; two pass. */ + line=setup_line(in); + while(line){ + float code; + lines++; + if(!(lines&0xff))spinnit("getting min/max. lines so far...",lines); + + while(!flag && sscanf(line,"%f",&code)==1){ + line=strchr(line,','); + min=max=code; + flag=1; + } + + while(sscanf(line,"%f",&code)==1){ + line=strchr(line,','); + if(line)line++; + if(code<min)min=code; + if(code>max)max=code; + } + + line=setup_line(in); + } + + if(bins<1){ + if((int)(max-min)==min-max){ + bins=max-min; + }else{ + bins=25; + } + } + + printf("\r \r"); + printf("Minimum scalar value: %f\n",min); + printf("Maximum scalar value: %f\n",max); + + printf("\n counting hits into %d bins...\n",bins+1); + countarray=calloc(bins+1,sizeof(long)); + + rewind(in); + line=setup_line(in); + while(line){ + float code; + lines--; + if(!(lines&0xff))spinnit("counting distribution. lines so far...",lines); + + while(sscanf(line,"%f",&code)==1){ + line=strchr(line,','); + if(line)line++; + + code-=min; + code/=(max-min); + code*=bins; + countarray[(int)rint(code)]++; + total++; + } + + line=setup_line(in); + } + + fclose(in); + + /* make a pretty graph */ + { + long maxcount=0,i,j; + for(i=0;i<bins+1;i++) + if(countarray[i]>maxcount)maxcount=countarray[i]; + + printf("\r \r"); + printf("Total scalars: %ld\n",total); + for(i=0;i<bins+1;i++){ + int stars=rint(50./maxcount*countarray[i]); + printf("%08f (%8ld) |",(max-min)/bins*i+min,countarray[i]); + for(j=0;j<stars;j++)printf("*"); + printf("\n"); + } + } + } + printf("\nDone.\n"); + exit(0); +} diff --git a/vq/latticebuild.c b/vq/latticebuild.c index dc9befc4..cd5735a5 100644 --- a/vq/latticebuild.c +++ b/vq/latticebuild.c @@ -12,7 +12,7 @@ ******************************************************************** function: utility main for building codebooks from lattice descriptions - last mod: $Id: latticebuild.c,v 1.8 2000/11/08 03:23:23 xiphmont Exp $ + last mod: $Id: latticebuild.c,v 1.9 2001/01/22 01:38:51 xiphmont Exp $ ********************************************************************/ @@ -57,7 +57,7 @@ static int ilog(unsigned int v){ int main(int argc,char *argv[]){ codebook b; static_codebook c; - float *quantlist; + double *quantlist; long *hits; int entries=-1,dim=-1,quantvals=-1,addmul=-1,sequencep=0; @@ -98,7 +98,7 @@ int main(int argc,char *argv[]){ line=get_line(in); if(sscanf(line,"%d %d %d %d",&quantvals,&dim,&addmul,&sequencep)!=4){ if(sscanf(line,"%d %d %d",&quantvals,&dim,&addmul)!=3){ - fprintf(stderr,"Syntax error reading book file (line 1)\n"); + fprintf(stderr,"Syntax error reading description file (line 1)\n"); exit(1); } } @@ -110,24 +110,29 @@ int main(int argc,char *argv[]){ c.q_sequencep=sequencep; c.quantlist=_ogg_calloc(quantvals,sizeof(long)); - quantlist=_ogg_malloc(sizeof(long)*c.dim*c.entries); + quantlist=_ogg_malloc(sizeof(double)*c.dim*c.entries); hits=_ogg_malloc(c.entries*sizeof(long)); for(j=0;j<entries;j++)hits[j]=1; for(j=0;j<entries;j++)c.lengthlist[j]=1; reset_next_value(); - setup_line(in); - for(j=0;j<quantvals;j++){ - if(get_line_value(in,quantlist+j)==-1){ + line=setup_line(in); + for(j=0;j<quantvals;j++){ + char *temp; + if(!line || sscanf(line,"%lf",quantlist+j)!=1){ fprintf(stderr,"Ran out of data on line 2 of description file\n"); exit(1); } + temp=strchr(line,','); + if(!temp)temp=strchr(line,' '); + if(temp)temp++; + line=temp; } /* gen a real quant list from the more easily human-grokked input */ { - float min=quantlist[0]; - float mindel=-1; + double min=quantlist[0]; + double mindel=-1; int fac=1; for(j=1;j<quantvals;j++)if(quantlist[j]<min)min=quantlist[j]; for(j=0;j<quantvals;j++) @@ -138,9 +143,10 @@ int main(int argc,char *argv[]){ j=0; while(j<quantvals){ for(j=0;j<quantvals;j++){ - float test=(quantlist[j]-min)/(mindel/fac); - if( fabs(rint(test)-test)>.000001) break; + double test=fac*(quantlist[j]-min)/mindel; + if( fabs(rint(test)-test)>.00001f) break; } + if(fac>100)break; if(j<quantvals)fac++; } diff --git a/vq/make_residue_books.pl b/vq/make_residue_books.pl new file mode 100755 index 00000000..318d3e63 --- /dev/null +++ b/vq/make_residue_books.pl @@ -0,0 +1,119 @@ +#!/usr/bin/perl + +# quick, very dirty little script so that we can put all the +# information for building a residue book set (except the original +# partitioning) in one spec file. + +#eg: + +# >res0_128_128 +# haux res0_96_128aux.vqd 0,4,2 +# :1 res0_128_128_1.vqd, 4, nonseq cull, 0 +- 1 +# +a 4, nonseq, 0 +- .25 .5 +# :2 res0_128_128_2.vqd, 4, nonseq, 0 +- 1 2 +# :3 res0_128_128_3.vqd, 4, nonseq, 0 +- 1 3 5 +# :4 res0_128_128_4.vqd, 2, nonseq, 0 +- 1 3 5 8 11 +# :5 res0_128_128_5.vqd, 1, nonseq, 0 +- 1 3 5 8 11 14 17 20 24 28 31 35 39 +# +a 4, nonseq, 0 +- .5 1 + + +die "Could not open $ARGV[0]: $!" unless open (F,$ARGV[0]); + +while($line=<F>){ + + print "\n#### $line\n\n"; + + # >res0_128_128 + if($line=~m/^>(.*)/){ + # set the output name + $globalname=$1; + next; + } + + # haux res0_96_128aux.vqd 0,4,2 + if($line=~m/^h(.*)/){ + # build a huffman book (no mapping) + my($name,$datafile,$arg)=split(' ',$1); + my $command="huffbuild $datafile $arg > $globalname$name.vqh"; + print ">>> $command\n"; + die "Couldn't build huffbook.\n\tcommand:$command\n" + if syst($command); + next; + } + + # :1 res0_128_128_1.vqd, 4, nonseq, 0 +- 1 + if($line=~m/^:(.*)/){ + my($namedata,$dim,$seqp,$vals)=split(',',$1); + my($name,$datafile)=split(' ',$namedata); + # build value list + my$plusminus="+"; + my$list; + my$count=0; + foreach my$val (split(' ',$vals)){ + if($val=~/\-?\+?\d+/){ + if($plusminus=~/-/){ + $list.="-$val "; + $count++; + } + if($plusminus=~/\+/){ + $list.="$val "; + $count++; + } + }else{ + $plusminus=$val; + } + } + die "Couldn't open temp file temp$$.vql: $!" unless + open(G,">temp$$.vql"); + print G "$count $dim 0 "; + if($seqp=~/non/){ + print G "0\n$list\n"; + }else{ + print G "1\n$list\n"; + } + close(G); + + my $command="latticebuild temp$$.vql > $globalname$name.vqh"; + print ">>> $command\n"; + die "Couldn't build latticebook.\n\tcommand:$command\n" + if syst($command); + + my $command="latticehint $globalname$name.vqh > temp$$.vqh"; + print ">>> $command\n"; + die "Couldn't pre-hint latticebook.\n\tcommand:$command\n" + if syst($command); + + if($seqp=~/cull/){ + my $command="restune temp$$.vqh $datafile 1 > $globalname$name.vqh"; + print ">>> $command\n"; + die "Couldn't tune latticebook.\n\tcommand:$command\n" + if syst($command); + }else{ + my $command="restune temp$$.vqh $datafile > $globalname$name.vqh"; + print ">>> $command\n"; + die "Couldn't tune latticebook.\n\tcommand:$command\n" + if syst($command); + } + + my $command="latticehint $globalname$name.vqh > temp$$.vqh"; + print ">>> $command\n"; + die "Couldn't post-hint latticebook.\n\tcommand:$command\n" + if syst($command); + + my $command="mv temp$$.vqh $globalname$name.vqh"; + print ">>> $command\n"; + die "Couldn't rename latticebook.\n\tcommand:$command\n" + if syst($command); + + my $command="rm temp$$.vql"; + print ">>> $command\n"; + die "Couldn't remove temp files.\n\tcommand:$command\n" + if syst($command); + + next; + } +} + +sub syst{ + system(@_)/256; +} |