/contrib/sdk/sources/libvorbis-1.3.7/AUTHORS |
---|
0,0 → 1,3 |
Monty <monty@xiph.org> |
and the rest of the Xiph.org Foundation. |
/contrib/sdk/sources/libvorbis-1.3.7/COPYING |
---|
0,0 → 1,28 |
Copyright (c) 2002-2020 Xiph.org Foundation |
Redistribution and use in source and binary forms, with or without |
modification, are permitted provided that the following conditions |
are met: |
- Redistributions of source code must retain the above copyright |
notice, this list of conditions and the following disclaimer. |
- Redistributions in binary form must reproduce the above copyright |
notice, this list of conditions and the following disclaimer in the |
documentation and/or other materials provided with the distribution. |
- Neither the name of the Xiph.org Foundation nor the names of its |
contributors may be used to endorse or promote products derived from |
this software without specific prior written permission. |
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION |
OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
/contrib/sdk/sources/libvorbis-1.3.7/Makefile |
---|
0,0 → 1,49 |
CC = kos32-gcc |
AR = kos32-ar |
LD = kos32-ld |
STRIP = kos32-strip |
LIBNAME=libvorbis |
SDK_DIR:= $(abspath ../../) |
OBJS = lib/block.o \ |
lib/sharedbook.o \ |
lib/vorbisenc.o \ |
lib/info.o \ |
lib/registry.o \ |
lib/psy.o \ |
lib/window.o \ |
lib/lpc.o \ |
lib/tone.o \ |
lib/smallft.o \ |
lib/barkmel.o \ |
lib/mdct.o \ |
lib/bitrate.o \ |
lib/analysis.o \ |
lib/vorbisfile.o \ |
lib/res0.o \ |
lib/lookup.o \ |
lib/lsp.o \ |
lib/floor1.o \ |
lib/floor0.o \ |
lib/codebook.o \ |
lib/envelope.o \ |
lib/mapping0.o \ |
lib/synthesis.o |
CFLAGS = -c -O2 -fno-pie -mpreferred-stack-boundary=2 -fno-ident -fomit-frame-pointer -fno-stack-check -fno-stack-protector -mno-stack-arg-probe -fno-exceptions -fno-asynchronous-unwind-tables -ffast-math -mno-ms-bitfields -march=pentium-mmx -UWIN32 -U_Win32 -U_WIN32 -U__MINGW32__ -DHAVE_CONFIG |
CFLAGS += -I../newlib/libc/include -Iinclude -I../libogg-1.3.5/include -Ilib |
all: $(LIBNAME).a |
$(LIBNAME).a: $(OBJS) |
$(AR) -crs $(SDK_DIR)/lib/$(LIBNAME).a $(OBJS) |
%.o : %.c Makefile |
$(CC) $(CFLAGS) -o $@ $< |
clean: |
rm -f */*.o \ rm *.o \ rm */*/*.o |
/contrib/sdk/sources/libvorbis-1.3.7/config.h |
---|
0,0 → 1,93 |
/* config.h. Generated from config.h.in by configure. */ |
/* config.h.in. Generated from configure.ac by autoheader. */ |
/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP |
systems. This function is required for `alloca.c' support on those systems. |
*/ |
/* #undef CRAY_STACKSEG_END */ |
/* Define to 1 if using `alloca.c'. */ |
/* #undef C_ALLOCA */ |
/* Define to 1 if you have `alloca', as a function or macro. */ |
#define HAVE_ALLOCA 0 |
/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix). |
*/ |
#define HAVE_ALLOCA_H 0 |
/* Define to 1 if you have the <dlfcn.h> header file. */ |
#define HAVE_DLFCN_H 0 |
/* Define to 1 if you have the <inttypes.h> header file. */ |
#define HAVE_INTTYPES_H 1 |
/* Define to 1 if you have the <memory.h> header file. */ |
#define HAVE_MEMORY_H 1 |
/* Define to 1 if you have the <stdint.h> header file. */ |
#define HAVE_STDINT_H 1 |
/* Define to 1 if you have the <stdlib.h> header file. */ |
#define HAVE_STDLIB_H 1 |
/* Define to 1 if you have the <strings.h> header file. */ |
#define HAVE_STRINGS_H 1 |
/* Define to 1 if you have the <string.h> header file. */ |
#define HAVE_STRING_H 1 |
/* Define to 1 if you have the <sys/stat.h> header file. */ |
#define HAVE_SYS_STAT_H 1 |
/* Define to 1 if you have the <sys/types.h> header file. */ |
#define HAVE_SYS_TYPES_H 1 |
/* Define to 1 if you have the <unistd.h> header file. */ |
#define HAVE_UNISTD_H 1 |
/* Define to the sub-directory where libtool stores uninstalled libraries. */ |
//#define LT_OBJDIR ".libs/" |
/* Name of package */ |
#define PACKAGE "libvorbis" |
/* Define to the address where bug reports for this package should be sent. */ |
#define PACKAGE_BUGREPORT "vorbis-dev@xiph.org" |
/* Define to the full name of this package. */ |
#define PACKAGE_NAME "libvorbis" |
/* Define to the full name and version of this package. */ |
#define PACKAGE_STRING "libvorbis 1.3.7" |
/* Define to the one symbol short name of this package. */ |
#define PACKAGE_TARNAME "libvorbis" |
/* Define to the home page for this package. */ |
#define PACKAGE_URL "" |
/* Define to the version of this package. */ |
#define PACKAGE_VERSION "1.3.7" |
/* If using the C implementation of alloca, define if you know the |
direction of stack growth for your system; otherwise it will be |
automatically deduced at runtime. |
STACK_DIRECTION > 0 => grows toward higher addresses |
STACK_DIRECTION < 0 => grows toward lower addresses |
STACK_DIRECTION = 0 => direction of growth unknown */ |
/* #undef STACK_DIRECTION */ |
/* Define to 1 if you have the ANSI C header files. */ |
#define STDC_HEADERS 1 |
/* Version number of package */ |
#define VERSION "1.3.7" |
/* Define to `__inline__' or `__inline' if that's what the C compiler |
calls it, or to nothing if 'inline' is not supported under any name. */ |
#ifndef __cplusplus |
/* #undef inline */ |
#endif |
/* Define to `unsigned int' if <sys/types.h> does not define. */ |
/* #undef size_t */ |
/contrib/sdk/sources/libvorbis-1.3.7/config.h.in |
---|
0,0 → 1,93 |
/* config.h.in. Generated from configure.ac by autoheader. */ |
/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP |
systems. This function is required for `alloca.c' support on those systems. |
*/ |
#undef CRAY_STACKSEG_END |
/* Define to 1 if using `alloca.c'. */ |
#undef C_ALLOCA |
/* Define to 1 if you have `alloca', as a function or macro. */ |
#undef HAVE_ALLOCA |
/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix). |
*/ |
#undef HAVE_ALLOCA_H |
/* Define to 1 if you have the <dlfcn.h> header file. */ |
#undef HAVE_DLFCN_H |
/* Define to 1 if you have the <inttypes.h> header file. */ |
#undef HAVE_INTTYPES_H |
/* Define to 1 if you have the <memory.h> header file. */ |
#undef HAVE_MEMORY_H |
/* Define to 1 if you have the <stdint.h> header file. */ |
#undef HAVE_STDINT_H |
/* Define to 1 if you have the <stdlib.h> header file. */ |
#undef HAVE_STDLIB_H |
/* Define to 1 if you have the <strings.h> header file. */ |
#undef HAVE_STRINGS_H |
/* Define to 1 if you have the <string.h> header file. */ |
#undef HAVE_STRING_H |
/* Define to 1 if you have the <sys/stat.h> header file. */ |
#undef HAVE_SYS_STAT_H |
/* Define to 1 if you have the <sys/types.h> header file. */ |
#undef HAVE_SYS_TYPES_H |
/* Define to 1 if you have the <unistd.h> header file. */ |
#undef HAVE_UNISTD_H |
/* Define to the sub-directory where libtool stores uninstalled libraries. */ |
#undef LT_OBJDIR |
/* Name of package */ |
#undef PACKAGE |
/* Define to the address where bug reports for this package should be sent. */ |
#undef PACKAGE_BUGREPORT |
/* Define to the full name of this package. */ |
#undef PACKAGE_NAME |
/* Define to the full name and version of this package. */ |
#undef PACKAGE_STRING |
/* Define to the one symbol short name of this package. */ |
#undef PACKAGE_TARNAME |
/* Define to the home page for this package. */ |
#undef PACKAGE_URL |
/* Define to the version of this package. */ |
#undef PACKAGE_VERSION |
/* If using the C implementation of alloca, define if you know the |
direction of stack growth for your system; otherwise it will be |
automatically deduced at runtime. |
STACK_DIRECTION > 0 => grows toward higher addresses |
STACK_DIRECTION < 0 => grows toward lower addresses |
STACK_DIRECTION = 0 => direction of growth unknown */ |
#undef STACK_DIRECTION |
/* Define to 1 if you have the ANSI C header files. */ |
#undef STDC_HEADERS |
/* Version number of package */ |
#undef VERSION |
/* Define to `__inline__' or `__inline' if that's what the C compiler |
calls it, or to nothing if 'inline' is not supported under any name. */ |
#ifndef __cplusplus |
#undef inline |
#endif |
/* Define to `unsigned int' if <sys/types.h> does not define. */ |
#undef size_t |
/contrib/sdk/sources/libvorbis-1.3.7/examples/.deps/chaining_example.Po |
---|
0,0 → 1,0 |
# dummy |
/contrib/sdk/sources/libvorbis-1.3.7/examples/.deps/decoder_example.Po |
---|
0,0 → 1,0 |
# dummy |
/contrib/sdk/sources/libvorbis-1.3.7/examples/.deps/encoder_example.Po |
---|
0,0 → 1,0 |
# dummy |
/contrib/sdk/sources/libvorbis-1.3.7/examples/.deps/seeking_example.Po |
---|
0,0 → 1,0 |
# dummy |
/contrib/sdk/sources/libvorbis-1.3.7/examples/.deps/vorbisfile_example.Po |
---|
0,0 → 1,0 |
# dummy |
/contrib/sdk/sources/libvorbis-1.3.7/examples/chaining_example.c |
---|
0,0 → 1,71 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: illustrate simple use of chained bitstream and vorbisfile.a |
********************************************************************/ |
#include <stdlib.h> |
#include <vorbis/codec.h> |
#include <vorbis/vorbisfile.h> |
#ifdef _WIN32 /* We need the following two to set stdin/stdout to binary */ |
#include <io.h> |
#include <fcntl.h> |
#endif |
int main(){ |
OggVorbis_File ov; |
int i; |
#ifdef _WIN32 /* We need to set stdin to binary mode. Damn windows. */ |
/* Beware the evil ifdef. We avoid these where we can, but this one we |
cannot. Don't add any more, you'll probably go to hell if you do. */ |
_setmode( _fileno( stdin ), _O_BINARY ); |
#endif |
/* open the file/pipe on stdin */ |
if(ov_open_callbacks(stdin,&ov,NULL,-1,OV_CALLBACKS_NOCLOSE)<0){ |
printf("Could not open input as an OggVorbis file.\n\n"); |
exit(1); |
} |
/* print details about each logical bitstream in the input */ |
if(ov_seekable(&ov)){ |
printf("Input bitstream contained %ld logical bitstream section(s).\n", |
ov_streams(&ov)); |
printf("Total bitstream samples: %ld\n\n", |
(long)ov_pcm_total(&ov,-1)); |
printf("Total bitstream playing time: %ld seconds\n\n", |
(long)ov_time_total(&ov,-1)); |
}else{ |
printf("Standard input was not seekable.\n" |
"First logical bitstream information:\n\n"); |
} |
for(i=0;i<ov_streams(&ov);i++){ |
vorbis_info *vi=ov_info(&ov,i); |
printf("\tlogical bitstream section %d information:\n",i+1); |
printf("\t\t%ldHz %d channels bitrate %ldkbps serial number=%ld\n", |
vi->rate,vi->channels,ov_bitrate(&ov,i)/1000, |
ov_serialnumber(&ov,i)); |
printf("\t\theader length: %ld bytes\n",(long) |
(ov.dataoffsets[i]-ov.offsets[i])); |
printf("\t\tcompressed length: %ld bytes\n",(long)(ov_raw_total(&ov,i))); |
printf("\t\tplay time: %lds\n",(long)ov_time_total(&ov,i)); |
} |
ov_clear(&ov); |
return 0; |
} |
/contrib/sdk/sources/libvorbis-1.3.7/examples/decoder_example.c |
---|
0,0 → 1,313 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: simple example decoder |
********************************************************************/ |
/* Takes a vorbis bitstream from stdin and writes raw stereo PCM to |
stdout. Decodes simple and chained OggVorbis files from beginning |
to end. Vorbisfile.a is somewhat more complex than the code below. */ |
/* Note that this is POSIX, not ANSI code */ |
#include <stdio.h> |
#include <stdlib.h> |
#include <math.h> |
#include <vorbis/codec.h> |
#ifdef _WIN32 /* We need the following two to set stdin/stdout to binary */ |
#include <io.h> |
#include <fcntl.h> |
#endif |
#if defined(__MACOS__) && defined(__MWERKS__) |
#include <console.h> /* CodeWarrior's Mac "command-line" support */ |
#endif |
ogg_int16_t convbuffer[4096]; /* take 8k out of the data segment, not the stack */ |
int convsize=4096; |
extern void _VDBG_dump(void); |
int main(){ |
ogg_sync_state oy; /* sync and verify incoming physical bitstream */ |
ogg_stream_state os; /* take physical pages, weld into a logical |
stream of packets */ |
ogg_page og; /* one Ogg bitstream page. Vorbis packets are inside */ |
ogg_packet op; /* one raw packet of data for decode */ |
vorbis_info vi; /* struct that stores all the static vorbis bitstream |
settings */ |
vorbis_comment vc; /* struct that stores all the bitstream user comments */ |
vorbis_dsp_state vd; /* central working state for the packet->PCM decoder */ |
vorbis_block vb; /* local working space for packet->PCM decode */ |
char *buffer; |
int bytes; |
#ifdef _WIN32 /* We need to set stdin/stdout to binary mode. Damn windows. */ |
/* Beware the evil ifdef. We avoid these where we can, but this one we |
cannot. Don't add any more, you'll probably go to hell if you do. */ |
_setmode( _fileno( stdin ), _O_BINARY ); |
_setmode( _fileno( stdout ), _O_BINARY ); |
#endif |
#if defined(macintosh) && defined(__MWERKS__) |
{ |
int argc; |
char **argv; |
argc=ccommand(&argv); /* get a "command line" from the Mac user */ |
/* this also lets the user set stdin and stdout */ |
} |
#endif |
/********** Decode setup ************/ |
ogg_sync_init(&oy); /* Now we can read pages */ |
while(1){ /* we repeat if the bitstream is chained */ |
int eos=0; |
int i; |
/* grab some data at the head of the stream. We want the first page |
(which is guaranteed to be small and only contain the Vorbis |
stream initial header) We need the first page to get the stream |
serialno. */ |
/* submit a 4k block to libvorbis' Ogg layer */ |
buffer=ogg_sync_buffer(&oy,4096); |
bytes=fread(buffer,1,4096,stdin); |
ogg_sync_wrote(&oy,bytes); |
/* Get the first page. */ |
if(ogg_sync_pageout(&oy,&og)!=1){ |
/* have we simply run out of data? If so, we're done. */ |
if(bytes<4096)break; |
/* error case. Must not be Vorbis data */ |
fprintf(stderr,"Input does not appear to be an Ogg bitstream.\n"); |
exit(1); |
} |
/* Get the serial number and set up the rest of decode. */ |
/* serialno first; use it to set up a logical stream */ |
ogg_stream_init(&os,ogg_page_serialno(&og)); |
/* extract the initial header from the first page and verify that the |
Ogg bitstream is in fact Vorbis data */ |
/* I handle the initial header first instead of just having the code |
read all three Vorbis headers at once because reading the initial |
header is an easy way to identify a Vorbis bitstream and it's |
useful to see that functionality seperated out. */ |
vorbis_info_init(&vi); |
vorbis_comment_init(&vc); |
if(ogg_stream_pagein(&os,&og)<0){ |
/* error; stream version mismatch perhaps */ |
fprintf(stderr,"Error reading first page of Ogg bitstream data.\n"); |
exit(1); |
} |
if(ogg_stream_packetout(&os,&op)!=1){ |
/* no page? must not be vorbis */ |
fprintf(stderr,"Error reading initial header packet.\n"); |
exit(1); |
} |
if(vorbis_synthesis_headerin(&vi,&vc,&op)<0){ |
/* error case; not a vorbis header */ |
fprintf(stderr,"This Ogg bitstream does not contain Vorbis " |
"audio data.\n"); |
exit(1); |
} |
/* At this point, we're sure we're Vorbis. We've set up the logical |
(Ogg) bitstream decoder. Get the comment and codebook headers and |
set up the Vorbis decoder */ |
/* The next two packets in order are the comment and codebook headers. |
They're likely large and may span multiple pages. Thus we read |
and submit data until we get our two packets, watching that no |
pages are missing. If a page is missing, error out; losing a |
header page is the only place where missing data is fatal. */ |
i=0; |
while(i<2){ |
while(i<2){ |
int result=ogg_sync_pageout(&oy,&og); |
if(result==0)break; /* Need more data */ |
/* Don't complain about missing or corrupt data yet. We'll |
catch it at the packet output phase */ |
if(result==1){ |
ogg_stream_pagein(&os,&og); /* we can ignore any errors here |
as they'll also become apparent |
at packetout */ |
while(i<2){ |
result=ogg_stream_packetout(&os,&op); |
if(result==0)break; |
if(result<0){ |
/* Uh oh; data at some point was corrupted or missing! |
We can't tolerate that in a header. Die. */ |
fprintf(stderr,"Corrupt secondary header. Exiting.\n"); |
exit(1); |
} |
result=vorbis_synthesis_headerin(&vi,&vc,&op); |
if(result<0){ |
fprintf(stderr,"Corrupt secondary header. Exiting.\n"); |
exit(1); |
} |
i++; |
} |
} |
} |
/* no harm in not checking before adding more */ |
buffer=ogg_sync_buffer(&oy,4096); |
bytes=fread(buffer,1,4096,stdin); |
if(bytes==0 && i<2){ |
fprintf(stderr,"End of file before finding all Vorbis headers!\n"); |
exit(1); |
} |
ogg_sync_wrote(&oy,bytes); |
} |
/* Throw the comments plus a few lines about the bitstream we're |
decoding */ |
{ |
char **ptr=vc.user_comments; |
while(*ptr){ |
fprintf(stderr,"%s\n",*ptr); |
++ptr; |
} |
fprintf(stderr,"\nBitstream is %d channel, %ldHz\n",vi.channels,vi.rate); |
fprintf(stderr,"Encoded by: %s\n\n",vc.vendor); |
} |
convsize=4096/vi.channels; |
/* OK, got and parsed all three headers. Initialize the Vorbis |
packet->PCM decoder. */ |
if(vorbis_synthesis_init(&vd,&vi)==0){ /* central decode state */ |
vorbis_block_init(&vd,&vb); /* local state for most of the decode |
so multiple block decodes can |
proceed in parallel. We could init |
multiple vorbis_block structures |
for vd here */ |
/* The rest is just a straight decode loop until end of stream */ |
while(!eos){ |
while(!eos){ |
int result=ogg_sync_pageout(&oy,&og); |
if(result==0)break; /* need more data */ |
if(result<0){ /* missing or corrupt data at this page position */ |
fprintf(stderr,"Corrupt or missing data in bitstream; " |
"continuing...\n"); |
}else{ |
ogg_stream_pagein(&os,&og); /* can safely ignore errors at |
this point */ |
while(1){ |
result=ogg_stream_packetout(&os,&op); |
if(result==0)break; /* need more data */ |
if(result<0){ /* missing or corrupt data at this page position */ |
/* no reason to complain; already complained above */ |
}else{ |
/* we have a packet. Decode it */ |
float **pcm; |
int samples; |
if(vorbis_synthesis(&vb,&op)==0) /* test for success! */ |
vorbis_synthesis_blockin(&vd,&vb); |
/* |
**pcm is a multichannel float vector. In stereo, for |
example, pcm[0] is left, and pcm[1] is right. samples is |
the size of each channel. Convert the float values |
(-1.<=range<=1.) to whatever PCM format and write it out */ |
while((samples=vorbis_synthesis_pcmout(&vd,&pcm))>0){ |
int j; |
int clipflag=0; |
int bout=(samples<convsize?samples:convsize); |
/* convert floats to 16 bit signed ints (host order) and |
interleave */ |
for(i=0;i<vi.channels;i++){ |
ogg_int16_t *ptr=convbuffer+i; |
float *mono=pcm[i]; |
for(j=0;j<bout;j++){ |
#if 1 |
int val=floor(mono[j]*32767.f+.5f); |
#else /* optional dither */ |
int val=mono[j]*32767.f+drand48()-0.5f; |
#endif |
/* might as well guard against clipping */ |
if(val>32767){ |
val=32767; |
clipflag=1; |
} |
if(val<-32768){ |
val=-32768; |
clipflag=1; |
} |
*ptr=val; |
ptr+=vi.channels; |
} |
} |
if(clipflag) |
fprintf(stderr,"Clipping in frame %ld\n",(long)(vd.sequence)); |
fwrite(convbuffer,2*vi.channels,bout,stdout); |
vorbis_synthesis_read(&vd,bout); /* tell libvorbis how |
many samples we |
actually consumed */ |
} |
} |
} |
if(ogg_page_eos(&og))eos=1; |
} |
} |
if(!eos){ |
buffer=ogg_sync_buffer(&oy,4096); |
bytes=fread(buffer,1,4096,stdin); |
ogg_sync_wrote(&oy,bytes); |
if(bytes==0)eos=1; |
} |
} |
/* ogg_page and ogg_packet structs always point to storage in |
libvorbis. They're never freed or manipulated directly */ |
vorbis_block_clear(&vb); |
vorbis_dsp_clear(&vd); |
}else{ |
fprintf(stderr,"Error: Corrupt header during playback initialization.\n"); |
} |
/* clean up this logical bitstream; before exit we see if we're |
followed by another [chained] */ |
ogg_stream_clear(&os); |
vorbis_comment_clear(&vc); |
vorbis_info_clear(&vi); /* must be called last */ |
} |
/* OK, clean up the framer */ |
ogg_sync_clear(&oy); |
fprintf(stderr,"Done.\n"); |
return(0); |
} |
/contrib/sdk/sources/libvorbis-1.3.7/examples/encoder_example.c |
---|
0,0 → 1,251 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: simple example encoder |
********************************************************************/ |
/* takes a stereo 16bit 44.1kHz WAV file from stdin and encodes it into |
a Vorbis bitstream */ |
/* Note that this is POSIX, not ANSI, code */ |
#include <stdio.h> |
#include <stdlib.h> |
#include <string.h> |
#include <time.h> |
#include <math.h> |
#include <vorbis/vorbisenc.h> |
#ifdef _WIN32 /* We need the following two to set stdin/stdout to binary */ |
#include <io.h> |
#include <fcntl.h> |
#endif |
#if defined(__MACOS__) && defined(__MWERKS__) |
#include <console.h> /* CodeWarrior's Mac "command-line" support */ |
#endif |
#define READ 1024 |
signed char readbuffer[READ*4+44]; /* out of the data segment, not the stack */ |
int main(){ |
ogg_stream_state os; /* take physical pages, weld into a logical |
stream of packets */ |
ogg_page og; /* one Ogg bitstream page. Vorbis packets are inside */ |
ogg_packet op; /* one raw packet of data for decode */ |
vorbis_info vi; /* struct that stores all the static vorbis bitstream |
settings */ |
vorbis_comment vc; /* struct that stores all the user comments */ |
vorbis_dsp_state vd; /* central working state for the packet->PCM decoder */ |
vorbis_block vb; /* local working space for packet->PCM decode */ |
int eos=0,ret; |
int i, founddata; |
#if defined(macintosh) && defined(__MWERKS__) |
int argc = 0; |
char **argv = NULL; |
argc = ccommand(&argv); /* get a "command line" from the Mac user */ |
/* this also lets the user set stdin and stdout */ |
#endif |
/* we cheat on the WAV header; we just bypass 44 bytes (simplest WAV |
header is 44 bytes) and assume that the data is 44.1khz, stereo, 16 bit |
little endian pcm samples. This is just an example, after all. */ |
#ifdef _WIN32 /* We need to set stdin/stdout to binary mode. Damn windows. */ |
/* if we were reading/writing a file, it would also need to in |
binary mode, eg, fopen("file.wav","wb"); */ |
/* Beware the evil ifdef. We avoid these where we can, but this one we |
cannot. Don't add any more, you'll probably go to hell if you do. */ |
_setmode( _fileno( stdin ), _O_BINARY ); |
_setmode( _fileno( stdout ), _O_BINARY ); |
#endif |
/* we cheat on the WAV header; we just bypass the header and never |
verify that it matches 16bit/stereo/44.1kHz. This is just an |
example, after all. */ |
readbuffer[0] = '\0'; |
for (i=0, founddata=0; i<30 && ! feof(stdin) && ! ferror(stdin); i++) |
{ |
fread(readbuffer,1,2,stdin); |
if ( ! strncmp((char*)readbuffer, "da", 2) ){ |
founddata = 1; |
fread(readbuffer,1,6,stdin); |
break; |
} |
} |
/********** Encode setup ************/ |
vorbis_info_init(&vi); |
/* choose an encoding mode. A few possibilities commented out, one |
actually used: */ |
/********************************************************************* |
Encoding using a VBR quality mode. The usable range is -.1 |
(lowest quality, smallest file) to 1. (highest quality, largest file). |
Example quality mode .4: 44kHz stereo coupled, roughly 128kbps VBR |
ret = vorbis_encode_init_vbr(&vi,2,44100,.4); |
--------------------------------------------------------------------- |
Encoding using an average bitrate mode (ABR). |
example: 44kHz stereo coupled, average 128kbps VBR |
ret = vorbis_encode_init(&vi,2,44100,-1,128000,-1); |
--------------------------------------------------------------------- |
Encode using a quality mode, but select that quality mode by asking for |
an approximate bitrate. This is not ABR, it is true VBR, but selected |
using the bitrate interface, and then turning bitrate management off: |
ret = ( vorbis_encode_setup_managed(&vi,2,44100,-1,128000,-1) || |
vorbis_encode_ctl(&vi,OV_ECTL_RATEMANAGE2_SET,NULL) || |
vorbis_encode_setup_init(&vi)); |
*********************************************************************/ |
ret=vorbis_encode_init_vbr(&vi,2,44100,0.1); |
/* do not continue if setup failed; this can happen if we ask for a |
mode that libVorbis does not support (eg, too low a bitrate, etc, |
will return 'OV_EIMPL') */ |
if(ret)exit(1); |
/* add a comment */ |
vorbis_comment_init(&vc); |
vorbis_comment_add_tag(&vc,"ENCODER","encoder_example.c"); |
/* set up the analysis state and auxiliary encoding storage */ |
vorbis_analysis_init(&vd,&vi); |
vorbis_block_init(&vd,&vb); |
/* set up our packet->stream encoder */ |
/* pick a random serial number; that way we can more likely build |
chained streams just by concatenation */ |
srand(time(NULL)); |
ogg_stream_init(&os,rand()); |
/* Vorbis streams begin with three headers; the initial header (with |
most of the codec setup parameters) which is mandated by the Ogg |
bitstream spec. The second header holds any comment fields. The |
third header holds the bitstream codebook. We merely need to |
make the headers, then pass them to libvorbis one at a time; |
libvorbis handles the additional Ogg bitstream constraints */ |
{ |
ogg_packet header; |
ogg_packet header_comm; |
ogg_packet header_code; |
vorbis_analysis_headerout(&vd,&vc,&header,&header_comm,&header_code); |
ogg_stream_packetin(&os,&header); /* automatically placed in its own |
page */ |
ogg_stream_packetin(&os,&header_comm); |
ogg_stream_packetin(&os,&header_code); |
/* This ensures the actual |
* audio data will start on a new page, as per spec |
*/ |
while(!eos){ |
int result=ogg_stream_flush(&os,&og); |
if(result==0)break; |
fwrite(og.header,1,og.header_len,stdout); |
fwrite(og.body,1,og.body_len,stdout); |
} |
} |
while(!eos){ |
long i; |
long bytes=fread(readbuffer,1,READ*4,stdin); /* stereo hardwired here */ |
if(bytes==0){ |
/* end of file. this can be done implicitly in the mainline, |
but it's easier to see here in non-clever fashion. |
Tell the library we're at end of stream so that it can handle |
the last frame and mark end of stream in the output properly */ |
vorbis_analysis_wrote(&vd,0); |
}else{ |
/* data to encode */ |
/* expose the buffer to submit data */ |
float **buffer=vorbis_analysis_buffer(&vd,READ); |
/* uninterleave samples */ |
for(i=0;i<bytes/4;i++){ |
buffer[0][i]=((readbuffer[i*4+1]<<8)| |
(0x00ff&(int)readbuffer[i*4]))/32768.f; |
buffer[1][i]=((readbuffer[i*4+3]<<8)| |
(0x00ff&(int)readbuffer[i*4+2]))/32768.f; |
} |
/* tell the library how much we actually submitted */ |
vorbis_analysis_wrote(&vd,i); |
} |
/* vorbis does some data preanalysis, then divvies up blocks for |
more involved (potentially parallel) processing. Get a single |
block for encoding now */ |
while(vorbis_analysis_blockout(&vd,&vb)==1){ |
/* analysis, assume we want to use bitrate management */ |
vorbis_analysis(&vb,NULL); |
vorbis_bitrate_addblock(&vb); |
while(vorbis_bitrate_flushpacket(&vd,&op)){ |
/* weld the packet into the bitstream */ |
ogg_stream_packetin(&os,&op); |
/* write out pages (if any) */ |
while(!eos){ |
int result=ogg_stream_pageout(&os,&og); |
if(result==0)break; |
fwrite(og.header,1,og.header_len,stdout); |
fwrite(og.body,1,og.body_len,stdout); |
/* this could be set above, but for illustrative purposes, I do |
it here (to show that vorbis does know where the stream ends) */ |
if(ogg_page_eos(&og))eos=1; |
} |
} |
} |
} |
/* clean up and exit. vorbis_info_clear() must be called last */ |
ogg_stream_clear(&os); |
vorbis_block_clear(&vb); |
vorbis_dsp_clear(&vd); |
vorbis_comment_clear(&vc); |
vorbis_info_clear(&vi); |
/* ogg_page and ogg_packet structs always point to storage in |
libvorbis. They're never freed or manipulated directly */ |
fprintf(stderr,"Done.\n"); |
return(0); |
} |
/contrib/sdk/sources/libvorbis-1.3.7/examples/seeking_example.c |
---|
0,0 → 1,277 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: illustrate seeking, and test it too |
********************************************************************/ |
#include <stdlib.h> |
#include <stdio.h> |
#include "vorbis/codec.h" |
#include "vorbis/vorbisfile.h" |
#ifdef _WIN32 /* We need the following two to set stdin/stdout to binary */ |
# include <io.h> |
# include <fcntl.h> |
#endif |
void _verify(OggVorbis_File *ov, |
ogg_int64_t val,ogg_int64_t pcmval,double timeval, |
ogg_int64_t pcmlength, |
char *bigassbuffer){ |
off_t i; |
int j; |
long bread; |
char buffer[4096]; |
int dummy; |
ogg_int64_t pos; |
int hs = ov_halfrate_p(ov); |
/* verify the raw position, the pcm position and position decode */ |
if(val!=-1 && ov_raw_tell(ov)<val){ |
fprintf(stderr,"raw position out of tolerance: requested %ld, got %ld\n", |
(long)val,(long)ov_raw_tell(ov)); |
exit(1); |
} |
if(pcmval!=-1 && ov_pcm_tell(ov)>pcmval){ |
fprintf(stderr,"pcm position out of tolerance: requested %ld, got %ld\n", |
(long)pcmval,(long)ov_pcm_tell(ov)); |
exit(1); |
} |
if(timeval!=-1 && ov_time_tell(ov)>timeval){ |
fprintf(stderr,"time position out of tolerance: requested %f, got %f\n", |
timeval,ov_time_tell(ov)); |
exit(1); |
} |
pos=ov_pcm_tell(ov); |
if(pos<0 || pos>pcmlength){ |
fprintf(stderr,"pcm position out of bounds: got %ld\n",(long)pos); |
exit(1); |
} |
bread=ov_read(ov,buffer,4096,1,1,1,&dummy); |
for(j=0;j<bread;j++){ |
if(buffer[j]!=bigassbuffer[j+((pos>>hs)*2)]){ |
fprintf(stderr,"data after seek doesn't match declared pcm position %ld\n",(long)pos); |
for(i=0;i<(pcmlength>>hs)*2-bread;i++){ |
for(j=0;j<bread;j++) |
if(buffer[j] != bigassbuffer[i+j])break; |
if(j==bread){ |
fprintf(stderr,"data after seek appears to match position %ld\n",(long)((i/2)<<hs)); |
} |
} |
{ |
FILE *f=fopen("a.m","w"); |
for(j=0;j<bread;j++)fprintf(f,"%d %d\n",j,(int)buffer[j]); |
fclose(f); |
f=fopen("b.m","w"); |
for(j=-4096;j<bread+4096;j++) |
if(j+((pos*2)>>hs)>=0 && (j+((pos*2)>>hs))<(pcmlength>>hs)*2) |
fprintf(f,"%d %d\n",j,(int)bigassbuffer[j+((pos*2)>>hs)]); |
fclose(f); |
} |
exit(1); |
} |
} |
} |
int main(){ |
OggVorbis_File ov; |
int i,ret; |
ogg_int64_t pcmlength; |
double timelength; |
char *bigassbuffer; |
int dummy; |
int hs=0; |
#ifdef _WIN32 /* We need to set stdin/stdout to binary mode. Damn windows. */ |
_setmode( _fileno( stdin ), _O_BINARY ); |
#endif |
/* open the file/pipe on stdin */ |
if(ov_open_callbacks(stdin,&ov,NULL,-1,OV_CALLBACKS_NOCLOSE)<0){ |
fprintf(stderr,"Could not open input as an OggVorbis file.\n\n"); |
exit(1); |
} |
#if 0 /*enable this code to test seeking with halfrate decode */ |
if(ov_halfrate(&ov,1)){ |
fprintf(stderr,"Sorry; unable to set half-rate decode.\n\n"); |
exit(1); |
}else |
hs=1; |
#endif |
if(ov_seekable(&ov)){ |
/* to simplify our own lives, we want to assume the whole file is |
stereo. Verify this to avoid potentially mystifying users |
(pissing them off is OK, just don't confuse them) */ |
for(i=0;i<ov.links;i++){ |
vorbis_info *vi=ov_info(&ov,i); |
if(vi->channels!=2){ |
fprintf(stderr,"Sorry; right now seeking_test can only use Vorbis files\n" |
"that are entirely stereo.\n\n"); |
exit(1); |
} |
} |
/* because we want to do sample-level verification that the seek |
does what it claimed, decode the entire file into memory */ |
pcmlength=ov_pcm_total(&ov,-1); |
timelength=ov_time_total(&ov,-1); |
bigassbuffer=malloc((pcmlength>>hs)*2); /* w00t */ |
i=0; |
while(i<(pcmlength>>hs)*2){ |
int ret=ov_read(&ov,bigassbuffer+i,((pcmlength>>hs)*2)-i,1,1,1,&dummy); |
if(ret<0){ |
fprintf(stderr,"Error reading file.\n"); |
exit(1); |
} |
if(ret){ |
i+=ret; |
}else{ |
pcmlength=(i/2)<<hs; |
} |
fprintf(stderr,"\rloading.... [%ld left] ", |
(long)((pcmlength>>hs)*2-i)); |
} |
{ |
ogg_int64_t length=ov.end; |
fprintf(stderr,"\rtesting raw seeking to random places in %ld bytes....\n", |
(long)length); |
for(i=0;i<1000;i++){ |
ogg_int64_t val=(double)rand()/RAND_MAX*length; |
fprintf(stderr,"\r\t%d [raw position %ld]... ",i,(long)val); |
ret=ov_raw_seek(&ov,val); |
if(ret<0){ |
fprintf(stderr,"seek failed: %d\n",ret); |
exit(1); |
} |
_verify(&ov,val,-1,-1.,pcmlength,bigassbuffer); |
} |
} |
fprintf(stderr,"\r"); |
{ |
fprintf(stderr,"testing pcm page seeking to random places in %ld samples....\n", |
(long)pcmlength); |
for(i=0;i<1000;i++){ |
ogg_int64_t val= i==0?(ogg_int64_t)0:(double)rand()/RAND_MAX*pcmlength; |
fprintf(stderr,"\r\t%d [pcm position %ld]... ",i,(long)val); |
ret=ov_pcm_seek_page(&ov,val); |
if(ret<0){ |
fprintf(stderr,"seek failed: %d\n",ret); |
exit(1); |
} |
_verify(&ov,-1,val,-1.,pcmlength,bigassbuffer); |
} |
} |
fprintf(stderr,"\r"); |
{ |
fprintf(stderr,"testing pcm exact seeking to random places in %f seconds....\n", |
timelength); |
for(i=0;i<1000;i++){ |
ogg_int64_t val= i==0?(ogg_int64_t)0:(double)rand()/RAND_MAX*pcmlength; |
fprintf(stderr,"\r\t%d [pcm position %ld]... ",i,(long)val); |
ret=ov_pcm_seek(&ov,val); |
if(ret<0){ |
fprintf(stderr,"seek failed: %d\n",ret); |
exit(1); |
} |
if(ov_pcm_tell(&ov)!=((val>>hs)<<hs)){ |
fprintf(stderr,"Declared position didn't perfectly match request: %ld != %ld\n", |
(long)val,(long)ov_pcm_tell(&ov)); |
exit(1); |
} |
_verify(&ov,-1,val,-1.,pcmlength,bigassbuffer); |
} |
} |
fprintf(stderr,"\r"); |
{ |
fprintf(stderr,"testing time page seeking to random places in %f seconds....\n", |
timelength); |
for(i=0;i<1000;i++){ |
double val=(double)rand()/RAND_MAX*timelength; |
fprintf(stderr,"\r\t%d [time position %f]... ",i,val); |
ret=ov_time_seek_page(&ov,val); |
if(ret<0){ |
fprintf(stderr,"seek failed: %d\n",ret); |
exit(1); |
} |
_verify(&ov,-1,-1,val,pcmlength,bigassbuffer); |
} |
} |
fprintf(stderr,"\r"); |
{ |
fprintf(stderr,"testing time exact seeking to random places in %f seconds....\n", |
timelength); |
for(i=0;i<1000;i++){ |
double val=(double)rand()/RAND_MAX*timelength; |
fprintf(stderr,"\r\t%d [time position %f]... ",i,val); |
ret=ov_time_seek(&ov,val); |
if(ret<0){ |
fprintf(stderr,"seek failed: %d\n",ret); |
exit(1); |
} |
if(ov_time_tell(&ov)<val-1 || ov_time_tell(&ov)>val+1){ |
fprintf(stderr,"Declared position didn't perfectly match request: %f != %f\n", |
val,ov_time_tell(&ov)); |
exit(1); |
} |
_verify(&ov,-1,-1,val,pcmlength,bigassbuffer); |
} |
} |
fprintf(stderr,"\r \nOK.\n\n"); |
}else{ |
fprintf(stderr,"Standard input was not seekable.\n"); |
} |
ov_clear(&ov); |
return 0; |
} |
/contrib/sdk/sources/libvorbis-1.3.7/examples/vorbisfile_example.c |
---|
0,0 → 1,91 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: simple example decoder using vorbisfile |
********************************************************************/ |
/* Takes a vorbis bitstream from stdin and writes raw stereo PCM to |
stdout using vorbisfile. Using vorbisfile is much simpler than |
dealing with libvorbis. */ |
#include <stdio.h> |
#include <stdlib.h> |
#include <math.h> |
#include <vorbis/codec.h> |
#include <vorbis/vorbisfile.h> |
#ifdef _WIN32 /* We need the following two to set stdin/stdout to binary */ |
#include <io.h> |
#include <fcntl.h> |
#endif |
char pcmout[4096]; /* take 4k out of the data segment, not the stack */ |
int main(){ |
OggVorbis_File vf; |
int eof=0; |
int current_section; |
#ifdef _WIN32 /* We need to set stdin/stdout to binary mode. Damn windows. */ |
/* Beware the evil ifdef. We avoid these where we can, but this one we |
cannot. Don't add any more, you'll probably go to hell if you do. */ |
_setmode( _fileno( stdin ), _O_BINARY ); |
_setmode( _fileno( stdout ), _O_BINARY ); |
#endif |
if(ov_open_callbacks(stdin, &vf, NULL, 0, OV_CALLBACKS_NOCLOSE) < 0) { |
fprintf(stderr,"Input does not appear to be an Ogg bitstream.\n"); |
exit(1); |
} |
/* Throw the comments plus a few lines about the bitstream we're |
decoding */ |
{ |
char **ptr=ov_comment(&vf,-1)->user_comments; |
vorbis_info *vi=ov_info(&vf,-1); |
while(*ptr){ |
fprintf(stderr,"%s\n",*ptr); |
++ptr; |
} |
fprintf(stderr,"\nBitstream is %d channel, %ldHz\n",vi->channels,vi->rate); |
fprintf(stderr,"\nDecoded length: %ld samples\n", |
(long)ov_pcm_total(&vf,-1)); |
fprintf(stderr,"Encoded by: %s\n\n",ov_comment(&vf,-1)->vendor); |
} |
while(!eof){ |
long ret=ov_read(&vf,pcmout,sizeof(pcmout),0,2,1,¤t_section); |
if (ret == 0) { |
/* EOF */ |
eof=1; |
} else if (ret < 0) { |
if(ret==OV_EBADLINK){ |
fprintf(stderr,"Corrupt bitstream section! Exiting.\n"); |
exit(1); |
} |
/* some other error in the stream. Not a problem, just reporting it in |
case we (the app) cares. In this case, we don't. */ |
} else { |
/* we don't bother dealing with sample rate changes, etc, but |
you'll have to*/ |
fwrite(pcmout,1,ret,stdout); |
} |
} |
/* cleanup */ |
ov_clear(&vf); |
fprintf(stderr,"Done.\n"); |
return(0); |
} |
/contrib/sdk/sources/libvorbis-1.3.7/include/vorbis/codec.h |
---|
0,0 → 1,242 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
******************************************************************** |
function: libvorbis codec headers |
********************************************************************/ |
#ifndef _vorbis_codec_h_ |
#define _vorbis_codec_h_ |
#ifdef __cplusplus |
extern "C" |
{ |
#endif /* __cplusplus */ |
#include <ogg/ogg.h> |
typedef struct vorbis_info{ |
int version; |
int channels; |
long rate; |
/* The below bitrate declarations are *hints*. |
Combinations of the three values carry the following implications: |
all three set to the same value: |
implies a fixed rate bitstream |
only nominal set: |
implies a VBR stream that averages the nominal bitrate. No hard |
upper/lower limit |
upper and or lower set: |
implies a VBR bitstream that obeys the bitrate limits. nominal |
may also be set to give a nominal rate. |
none set: |
the coder does not care to speculate. |
*/ |
long bitrate_upper; |
long bitrate_nominal; |
long bitrate_lower; |
long bitrate_window; |
void *codec_setup; |
} vorbis_info; |
/* vorbis_dsp_state buffers the current vorbis audio |
analysis/synthesis state. The DSP state belongs to a specific |
logical bitstream ****************************************************/ |
typedef struct vorbis_dsp_state{ |
int analysisp; |
vorbis_info *vi; |
float **pcm; |
float **pcmret; |
int pcm_storage; |
int pcm_current; |
int pcm_returned; |
int preextrapolate; |
int eofflag; |
long lW; |
long W; |
long nW; |
long centerW; |
ogg_int64_t granulepos; |
ogg_int64_t sequence; |
ogg_int64_t glue_bits; |
ogg_int64_t time_bits; |
ogg_int64_t floor_bits; |
ogg_int64_t res_bits; |
void *backend_state; |
} vorbis_dsp_state; |
typedef struct vorbis_block{ |
/* necessary stream state for linking to the framing abstraction */ |
float **pcm; /* this is a pointer into local storage */ |
oggpack_buffer opb; |
long lW; |
long W; |
long nW; |
int pcmend; |
int mode; |
int eofflag; |
ogg_int64_t granulepos; |
ogg_int64_t sequence; |
vorbis_dsp_state *vd; /* For read-only access of configuration */ |
/* local storage to avoid remallocing; it's up to the mapping to |
structure it */ |
void *localstore; |
long localtop; |
long localalloc; |
long totaluse; |
struct alloc_chain *reap; |
/* bitmetrics for the frame */ |
long glue_bits; |
long time_bits; |
long floor_bits; |
long res_bits; |
void *internal; |
} vorbis_block; |
/* vorbis_block is a single block of data to be processed as part of |
the analysis/synthesis stream; it belongs to a specific logical |
bitstream, but is independent from other vorbis_blocks belonging to |
that logical bitstream. *************************************************/ |
struct alloc_chain{ |
void *ptr; |
struct alloc_chain *next; |
}; |
/* vorbis_info contains all the setup information specific to the |
specific compression/decompression mode in progress (eg, |
psychoacoustic settings, channel setup, options, codebook |
etc). vorbis_info and substructures are in backends.h. |
*********************************************************************/ |
/* the comments are not part of vorbis_info so that vorbis_info can be |
static storage */ |
typedef struct vorbis_comment{ |
/* unlimited user comment fields. libvorbis writes 'libvorbis' |
whatever vendor is set to in encode */ |
char **user_comments; |
int *comment_lengths; |
int comments; |
char *vendor; |
} vorbis_comment; |
/* libvorbis encodes in two abstraction layers; first we perform DSP |
and produce a packet (see docs/analysis.txt). The packet is then |
coded into a framed OggSquish bitstream by the second layer (see |
docs/framing.txt). Decode is the reverse process; we sync/frame |
the bitstream and extract individual packets, then decode the |
packet back into PCM audio. |
The extra framing/packetizing is used in streaming formats, such as |
files. Over the net (such as with UDP), the framing and |
packetization aren't necessary as they're provided by the transport |
and the streaming layer is not used */ |
/* Vorbis PRIMITIVES: general ***************************************/ |
extern void vorbis_info_init(vorbis_info *vi); |
extern void vorbis_info_clear(vorbis_info *vi); |
extern int vorbis_info_blocksize(vorbis_info *vi,int zo); |
extern void vorbis_comment_init(vorbis_comment *vc); |
extern void vorbis_comment_add(vorbis_comment *vc, const char *comment); |
extern void vorbis_comment_add_tag(vorbis_comment *vc, |
const char *tag, const char *contents); |
extern char *vorbis_comment_query(vorbis_comment *vc, const char *tag, int count); |
extern int vorbis_comment_query_count(vorbis_comment *vc, const char *tag); |
extern void vorbis_comment_clear(vorbis_comment *vc); |
extern int vorbis_block_init(vorbis_dsp_state *v, vorbis_block *vb); |
extern int vorbis_block_clear(vorbis_block *vb); |
extern void vorbis_dsp_clear(vorbis_dsp_state *v); |
extern double vorbis_granule_time(vorbis_dsp_state *v, |
ogg_int64_t granulepos); |
extern const char *vorbis_version_string(void); |
/* Vorbis PRIMITIVES: analysis/DSP layer ****************************/ |
extern int vorbis_analysis_init(vorbis_dsp_state *v,vorbis_info *vi); |
extern int vorbis_commentheader_out(vorbis_comment *vc, ogg_packet *op); |
extern int vorbis_analysis_headerout(vorbis_dsp_state *v, |
vorbis_comment *vc, |
ogg_packet *op, |
ogg_packet *op_comm, |
ogg_packet *op_code); |
extern float **vorbis_analysis_buffer(vorbis_dsp_state *v,int vals); |
extern int vorbis_analysis_wrote(vorbis_dsp_state *v,int vals); |
extern int vorbis_analysis_blockout(vorbis_dsp_state *v,vorbis_block *vb); |
extern int vorbis_analysis(vorbis_block *vb,ogg_packet *op); |
extern int vorbis_bitrate_addblock(vorbis_block *vb); |
extern int vorbis_bitrate_flushpacket(vorbis_dsp_state *vd, |
ogg_packet *op); |
/* Vorbis PRIMITIVES: synthesis layer *******************************/ |
extern int vorbis_synthesis_idheader(ogg_packet *op); |
extern int vorbis_synthesis_headerin(vorbis_info *vi,vorbis_comment *vc, |
ogg_packet *op); |
extern int vorbis_synthesis_init(vorbis_dsp_state *v,vorbis_info *vi); |
extern int vorbis_synthesis_restart(vorbis_dsp_state *v); |
extern int vorbis_synthesis(vorbis_block *vb,ogg_packet *op); |
extern int vorbis_synthesis_trackonly(vorbis_block *vb,ogg_packet *op); |
extern int vorbis_synthesis_blockin(vorbis_dsp_state *v,vorbis_block *vb); |
extern int vorbis_synthesis_pcmout(vorbis_dsp_state *v,float ***pcm); |
extern int vorbis_synthesis_lapout(vorbis_dsp_state *v,float ***pcm); |
extern int vorbis_synthesis_read(vorbis_dsp_state *v,int samples); |
extern long vorbis_packet_blocksize(vorbis_info *vi,ogg_packet *op); |
extern int vorbis_synthesis_halfrate(vorbis_info *v,int flag); |
extern int vorbis_synthesis_halfrate_p(vorbis_info *v); |
/* Vorbis ERRORS and return codes ***********************************/ |
#define OV_FALSE -1 |
#define OV_EOF -2 |
#define OV_HOLE -3 |
#define OV_EREAD -128 |
#define OV_EFAULT -129 |
#define OV_EIMPL -130 |
#define OV_EINVAL -131 |
#define OV_ENOTVORBIS -132 |
#define OV_EBADHEADER -133 |
#define OV_EVERSION -134 |
#define OV_ENOTAUDIO -135 |
#define OV_EBADPACKET -136 |
#define OV_EBADLINK -137 |
#define OV_ENOSEEK -138 |
#ifdef __cplusplus |
} |
#endif /* __cplusplus */ |
#endif |
/contrib/sdk/sources/libvorbis-1.3.7/include/vorbis/vorbisenc.h |
---|
0,0 → 1,435 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: vorbis encode-engine setup |
********************************************************************/ |
/** \file |
* Libvorbisenc is a convenient API for setting up an encoding |
* environment using libvorbis. Libvorbisenc encapsulates the |
* actions needed to set up the encoder properly. |
*/ |
#ifndef _OV_ENC_H_ |
#define _OV_ENC_H_ |
#ifdef __cplusplus |
extern "C" |
{ |
#endif /* __cplusplus */ |
#include "codec.h" |
/** |
* This is the primary function within libvorbisenc for setting up managed |
* bitrate modes. |
* |
* Before this function is called, the \ref vorbis_info |
* struct should be initialized by using vorbis_info_init() from the libvorbis |
* API. After encoding, vorbis_info_clear() should be called. |
* |
* The max_bitrate, nominal_bitrate, and min_bitrate settings are used to set |
* constraints for the encoded file. This function uses these settings to |
* select the appropriate encoding mode and set it up. |
* |
* \param vi Pointer to an initialized \ref vorbis_info struct. |
* \param channels The number of channels to be encoded. |
* \param rate The sampling rate of the source audio. |
* \param max_bitrate Desired maximum bitrate (limit). -1 indicates unset. |
* \param nominal_bitrate Desired average, or central, bitrate. -1 indicates unset. |
* \param min_bitrate Desired minimum bitrate. -1 indicates unset. |
* |
* \return Zero for success, and negative values for failure. |
* |
* \retval 0 Success. |
* \retval OV_EFAULT Internal logic fault; indicates a bug or heap/stack corruption. |
* \retval OV_EINVAL Invalid setup request, eg, out of range argument. |
* \retval OV_EIMPL Unimplemented mode; unable to comply with bitrate request. |
*/ |
extern int vorbis_encode_init(vorbis_info *vi, |
long channels, |
long rate, |
long max_bitrate, |
long nominal_bitrate, |
long min_bitrate); |
/** |
* This function performs step-one of a three-step bitrate-managed encode |
* setup. It functions similarly to the one-step setup performed by \ref |
* vorbis_encode_init but allows an application to make further encode setup |
* tweaks using \ref vorbis_encode_ctl before finally calling \ref |
* vorbis_encode_setup_init to complete the setup process. |
* |
* Before this function is called, the \ref vorbis_info struct should be |
* initialized by using vorbis_info_init() from the libvorbis API. After |
* encoding, vorbis_info_clear() should be called. |
* |
* The max_bitrate, nominal_bitrate, and min_bitrate settings are used to set |
* constraints for the encoded file. This function uses these settings to |
* select the appropriate encoding mode and set it up. |
* |
* \param vi Pointer to an initialized vorbis_info struct. |
* \param channels The number of channels to be encoded. |
* \param rate The sampling rate of the source audio. |
* \param max_bitrate Desired maximum bitrate (limit). -1 indicates unset. |
* \param nominal_bitrate Desired average, or central, bitrate. -1 indicates unset. |
* \param min_bitrate Desired minimum bitrate. -1 indicates unset. |
* |
* \return Zero for success, and negative for failure. |
* |
* \retval 0 Success |
* \retval OV_EFAULT Internal logic fault; indicates a bug or heap/stack corruption. |
* \retval OV_EINVAL Invalid setup request, eg, out of range argument. |
* \retval OV_EIMPL Unimplemented mode; unable to comply with bitrate request. |
*/ |
extern int vorbis_encode_setup_managed(vorbis_info *vi, |
long channels, |
long rate, |
long max_bitrate, |
long nominal_bitrate, |
long min_bitrate); |
/** |
* This function performs step-one of a three-step variable bitrate |
* (quality-based) encode setup. It functions similarly to the one-step setup |
* performed by \ref vorbis_encode_init_vbr() but allows an application to |
* make further encode setup tweaks using \ref vorbis_encode_ctl() before |
* finally calling \ref vorbis_encode_setup_init to complete the setup |
* process. |
* |
* Before this function is called, the \ref vorbis_info struct should be |
* initialized by using \ref vorbis_info_init() from the libvorbis API. After |
* encoding, vorbis_info_clear() should be called. |
* |
* \param vi Pointer to an initialized vorbis_info struct. |
* \param channels The number of channels to be encoded. |
* \param rate The sampling rate of the source audio. |
* \param quality Desired quality level, currently from -0.1 to 1.0 (lo to hi). |
* |
* \return Zero for success, and negative values for failure. |
* |
* \retval 0 Success |
* \retval OV_EFAULT Internal logic fault; indicates a bug or heap/stack corruption. |
* \retval OV_EINVAL Invalid setup request, eg, out of range argument. |
* \retval OV_EIMPL Unimplemented mode; unable to comply with quality level request. |
*/ |
extern int vorbis_encode_setup_vbr(vorbis_info *vi, |
long channels, |
long rate, |
float quality |
); |
/** |
* This is the primary function within libvorbisenc for setting up variable |
* bitrate ("quality" based) modes. |
* |
* |
* Before this function is called, the vorbis_info struct should be |
* initialized by using vorbis_info_init() from the libvorbis API. After |
* encoding, vorbis_info_clear() should be called. |
* |
* \param vi Pointer to an initialized vorbis_info struct. |
* \param channels The number of channels to be encoded. |
* \param rate The sampling rate of the source audio. |
* \param base_quality Desired quality level, currently from -0.1 to 1.0 (lo to hi). |
* |
* |
* \return Zero for success, or a negative number for failure. |
* |
* \retval 0 Success |
* \retval OV_EFAULT Internal logic fault; indicates a bug or heap/stack corruption. |
* \retval OV_EINVAL Invalid setup request, eg, out of range argument. |
* \retval OV_EIMPL Unimplemented mode; unable to comply with quality level request. |
*/ |
extern int vorbis_encode_init_vbr(vorbis_info *vi, |
long channels, |
long rate, |
float base_quality |
); |
/** |
* This function performs the last stage of three-step encoding setup, as |
* described in the API overview under managed bitrate modes. |
* |
* Before this function is called, the \ref vorbis_info struct should be |
* initialized by using vorbis_info_init() from the libvorbis API, one of |
* \ref vorbis_encode_setup_managed() or \ref vorbis_encode_setup_vbr() called to |
* initialize the high-level encoding setup, and \ref vorbis_encode_ctl() |
* called if necessary to make encoding setup changes. |
* vorbis_encode_setup_init() finalizes the highlevel encoding structure into |
* a complete encoding setup after which the application may make no further |
* setup changes. |
* |
* After encoding, vorbis_info_clear() should be called. |
* |
* \param vi Pointer to an initialized \ref vorbis_info struct. |
* |
* \return Zero for success, and negative values for failure. |
* |
* \retval 0 Success. |
* \retval OV_EFAULT Internal logic fault; indicates a bug or heap/stack corruption. |
* |
* \retval OV_EINVAL Attempt to use vorbis_encode_setup_init() without first |
* calling one of vorbis_encode_setup_managed() or vorbis_encode_setup_vbr() to |
* initialize the high-level encoding setup |
* |
*/ |
extern int vorbis_encode_setup_init(vorbis_info *vi); |
/** |
* This function implements a generic interface to miscellaneous encoder |
* settings similar to the classic UNIX 'ioctl()' system call. Applications |
* may use vorbis_encode_ctl() to query or set bitrate management or quality |
* mode details by using one of several \e request arguments detailed below. |
* vorbis_encode_ctl() must be called after one of |
* vorbis_encode_setup_managed() or vorbis_encode_setup_vbr(). When used |
* to modify settings, \ref vorbis_encode_ctl() must be called before \ref |
* vorbis_encode_setup_init(). |
* |
* \param vi Pointer to an initialized vorbis_info struct. |
* |
* \param number Specifies the desired action; See \ref encctlcodes "the list |
* of available requests". |
* |
* \param arg void * pointing to a data structure matching the request |
* argument. |
* |
* \retval 0 Success. Any further return information (such as the result of a |
* query) is placed into the storage pointed to by *arg. |
* |
* \retval OV_EINVAL Invalid argument, or an attempt to modify a setting after |
* calling vorbis_encode_setup_init(). |
* |
* \retval OV_EIMPL Unimplemented or unknown request |
*/ |
extern int vorbis_encode_ctl(vorbis_info *vi,int number,void *arg); |
/** |
* \deprecated This is a deprecated interface. Please use vorbis_encode_ctl() |
* with the \ref ovectl_ratemanage2_arg struct and \ref |
* OV_ECTL_RATEMANAGE2_GET and \ref OV_ECTL_RATEMANAGE2_SET calls in new code. |
* |
* The \ref ovectl_ratemanage_arg structure is used with vorbis_encode_ctl() |
* and the \ref OV_ECTL_RATEMANAGE_GET, \ref OV_ECTL_RATEMANAGE_SET, \ref |
* OV_ECTL_RATEMANAGE_AVG, \ref OV_ECTL_RATEMANAGE_HARD calls in order to |
* query and modify specifics of the encoder's bitrate management |
* configuration. |
*/ |
struct ovectl_ratemanage_arg { |
int management_active; /**< nonzero if bitrate management is active*/ |
/** hard lower limit (in kilobits per second) below which the stream bitrate |
will never be allowed for any given bitrate_hard_window seconds of time.*/ |
long bitrate_hard_min; |
/** hard upper limit (in kilobits per second) above which the stream bitrate |
will never be allowed for any given bitrate_hard_window seconds of time.*/ |
long bitrate_hard_max; |
/** the window period (in seconds) used to regulate the hard bitrate minimum |
and maximum*/ |
double bitrate_hard_window; |
/** soft lower limit (in kilobits per second) below which the average bitrate |
tracker will start nudging the bitrate higher.*/ |
long bitrate_av_lo; |
/** soft upper limit (in kilobits per second) above which the average bitrate |
tracker will start nudging the bitrate lower.*/ |
long bitrate_av_hi; |
/** the window period (in seconds) used to regulate the average bitrate |
minimum and maximum.*/ |
double bitrate_av_window; |
/** Regulates the relative centering of the average and hard windows; in |
libvorbis 1.0 and 1.0.1, the hard window regulation overlapped but |
followed the average window regulation. In libvorbis 1.1 a bit-reservoir |
interface replaces the old windowing interface; the older windowing |
interface is simulated and this field has no effect.*/ |
double bitrate_av_window_center; |
}; |
/** |
* \name struct ovectl_ratemanage2_arg |
* |
* The ovectl_ratemanage2_arg structure is used with vorbis_encode_ctl() and |
* the OV_ECTL_RATEMANAGE2_GET and OV_ECTL_RATEMANAGE2_SET calls in order to |
* query and modify specifics of the encoder's bitrate management |
* configuration. |
* |
*/ |
struct ovectl_ratemanage2_arg { |
int management_active; /**< nonzero if bitrate management is active */ |
/** Lower allowed bitrate limit in kilobits per second */ |
long bitrate_limit_min_kbps; |
/** Upper allowed bitrate limit in kilobits per second */ |
long bitrate_limit_max_kbps; |
long bitrate_limit_reservoir_bits; /**<Size of the bitrate reservoir in bits */ |
/** Regulates the bitrate reservoir's preferred fill level in a range from 0.0 |
* to 1.0; 0.0 tries to bank bits to buffer against future bitrate spikes, 1.0 |
* buffers against future sudden drops in instantaneous bitrate. Default is |
* 0.1 |
*/ |
double bitrate_limit_reservoir_bias; |
/** Average bitrate setting in kilobits per second */ |
long bitrate_average_kbps; |
/** Slew rate limit setting for average bitrate adjustment; sets the minimum |
* time in seconds the bitrate tracker may swing from one extreme to the |
* other when boosting or damping average bitrate. |
*/ |
double bitrate_average_damping; |
}; |
/** |
* \name vorbis_encode_ctl() codes |
* |
* \anchor encctlcodes |
* |
* These values are passed as the \c number parameter of vorbis_encode_ctl(). |
* The type of the referent of that function's \c arg pointer depends on these |
* codes. |
*/ |
/*@{*/ |
/** |
* Query the current encoder bitrate management setting. |
* |
*Argument: <tt>struct ovectl_ratemanage2_arg *</tt> |
* |
* Used to query the current encoder bitrate management setting. Also used to |
* initialize fields of an ovectl_ratemanage2_arg structure for use with |
* \ref OV_ECTL_RATEMANAGE2_SET. |
*/ |
#define OV_ECTL_RATEMANAGE2_GET 0x14 |
/** |
* Set the current encoder bitrate management settings. |
* |
* Argument: <tt>struct ovectl_ratemanage2_arg *</tt> |
* |
* Used to set the current encoder bitrate management settings to the values |
* listed in the ovectl_ratemanage2_arg. Passing a NULL pointer will disable |
* bitrate management. |
*/ |
#define OV_ECTL_RATEMANAGE2_SET 0x15 |
/** |
* Returns the current encoder hard-lowpass setting (kHz) in the double |
* pointed to by arg. |
* |
* Argument: <tt>double *</tt> |
*/ |
#define OV_ECTL_LOWPASS_GET 0x20 |
/** |
* Sets the encoder hard-lowpass to the value (kHz) pointed to by arg. Valid |
* lowpass settings range from 2 to 99. |
* |
* Argument: <tt>double *</tt> |
*/ |
#define OV_ECTL_LOWPASS_SET 0x21 |
/** |
* Returns the current encoder impulse block setting in the double pointed |
* to by arg. |
* |
* Argument: <tt>double *</tt> |
*/ |
#define OV_ECTL_IBLOCK_GET 0x30 |
/** |
* Sets the impulse block bias to the the value pointed to by arg. |
* |
* Argument: <tt>double *</tt> |
* |
* Valid range is -15.0 to 0.0 [default]. A negative impulse block bias will |
* direct to encoder to use more bits when incoding short blocks that contain |
* strong impulses, thus improving the accuracy of impulse encoding. |
*/ |
#define OV_ECTL_IBLOCK_SET 0x31 |
/** |
* Returns the current encoder coupling setting in the int pointed |
* to by arg. |
* |
* Argument: <tt>int *</tt> |
*/ |
#define OV_ECTL_COUPLING_GET 0x40 |
/** |
* Enables/disables channel coupling in multichannel encoding according to arg. |
* |
* Argument: <tt>int *</tt> |
* |
* Zero disables channel coupling for multichannel inputs, nonzer enables |
* channel coupling. Setting has no effect on monophonic encoding or |
* multichannel counts that do not offer coupling. At present, coupling is |
* available for stereo and 5.1 encoding. |
*/ |
#define OV_ECTL_COUPLING_SET 0x41 |
/* deprecated rate management supported only for compatibility */ |
/** |
* Old interface to querying bitrate management settings. |
* |
* Deprecated after move to bit-reservoir style management in 1.1 rendered |
* this interface partially obsolete. |
* \deprecated Please use \ref OV_ECTL_RATEMANAGE2_GET instead. |
* |
* Argument: <tt>struct ovectl_ratemanage_arg *</tt> |
*/ |
#define OV_ECTL_RATEMANAGE_GET 0x10 |
/** |
* Old interface to modifying bitrate management settings. |
* |
* deprecated after move to bit-reservoir style management in 1.1 rendered |
* this interface partially obsolete. |
* |
* \deprecated Please use \ref OV_ECTL_RATEMANAGE2_SET instead. |
* |
* Argument: <tt>struct ovectl_ratemanage_arg *</tt> |
*/ |
#define OV_ECTL_RATEMANAGE_SET 0x11 |
/** |
* Old interface to setting average-bitrate encoding mode. |
* |
* Deprecated after move to bit-reservoir style management in 1.1 rendered |
* this interface partially obsolete. |
* |
* \deprecated Please use \ref OV_ECTL_RATEMANAGE2_SET instead. |
* |
* Argument: <tt>struct ovectl_ratemanage_arg *</tt> |
*/ |
#define OV_ECTL_RATEMANAGE_AVG 0x12 |
/** |
* Old interface to setting bounded-bitrate encoding modes. |
* |
* deprecated after move to bit-reservoir style management in 1.1 rendered |
* this interface partially obsolete. |
* |
* \deprecated Please use \ref OV_ECTL_RATEMANAGE2_SET instead. |
* |
* Argument: <tt>struct ovectl_ratemanage_arg *</tt> |
*/ |
#define OV_ECTL_RATEMANAGE_HARD 0x13 |
/*@}*/ |
#ifdef __cplusplus |
} |
#endif /* __cplusplus */ |
#endif |
/contrib/sdk/sources/libvorbis-1.3.7/include/vorbis/vorbisfile.h |
---|
0,0 → 1,205 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: stdio-based convenience library for opening/seeking/decoding |
********************************************************************/ |
#ifndef _OV_FILE_H_ |
#define _OV_FILE_H_ |
#ifdef __cplusplus |
extern "C" |
{ |
#endif /* __cplusplus */ |
#include <stdio.h> |
#include "codec.h" |
/* The function prototypes for the callbacks are basically the same as for |
* the stdio functions fread, fseek, fclose, ftell. |
* The one difference is that the FILE * arguments have been replaced with |
* a void * - this is to be used as a pointer to whatever internal data these |
* functions might need. In the stdio case, it's just a FILE * cast to a void * |
* |
* If you use other functions, check the docs for these functions and return |
* the right values. For seek_func(), you *MUST* return -1 if the stream is |
* unseekable |
*/ |
typedef struct { |
size_t (*read_func) (void *ptr, size_t size, size_t nmemb, void *datasource); |
int (*seek_func) (void *datasource, ogg_int64_t offset, int whence); |
int (*close_func) (void *datasource); |
long (*tell_func) (void *datasource); |
} ov_callbacks; |
#ifndef OV_EXCLUDE_STATIC_CALLBACKS |
/* a few sets of convenient callbacks, especially for use under |
* Windows where ov_open_callbacks() should always be used instead of |
* ov_open() to avoid problems with incompatible crt.o version linking |
* issues. */ |
static int _ov_header_fseek_wrap(FILE *f,ogg_int64_t off,int whence){ |
if(f==NULL)return(-1); |
#ifdef __MINGW32__ |
return fseeko64(f,off,whence); |
#elif defined (_WIN32) |
return _fseeki64(f,off,whence); |
#else |
return fseek(f,off,whence); |
#endif |
} |
/* These structs below (OV_CALLBACKS_DEFAULT etc) are defined here as |
* static data. That means that every file which includes this header |
* will get its own copy of these structs whether it uses them or |
* not unless it #defines OV_EXCLUDE_STATIC_CALLBACKS. |
* These static symbols are essential on platforms such as Windows on |
* which several different versions of stdio support may be linked to |
* by different DLLs, and we need to be certain we know which one |
* we're using (the same one as the main application). |
*/ |
static ov_callbacks OV_CALLBACKS_DEFAULT = { |
(size_t (*)(void *, size_t, size_t, void *)) fread, |
(int (*)(void *, ogg_int64_t, int)) _ov_header_fseek_wrap, |
(int (*)(void *)) fclose, |
(long (*)(void *)) ftell |
}; |
static ov_callbacks OV_CALLBACKS_NOCLOSE = { |
(size_t (*)(void *, size_t, size_t, void *)) fread, |
(int (*)(void *, ogg_int64_t, int)) _ov_header_fseek_wrap, |
(int (*)(void *)) NULL, |
(long (*)(void *)) ftell |
}; |
static ov_callbacks OV_CALLBACKS_STREAMONLY = { |
(size_t (*)(void *, size_t, size_t, void *)) fread, |
(int (*)(void *, ogg_int64_t, int)) NULL, |
(int (*)(void *)) fclose, |
(long (*)(void *)) NULL |
}; |
static ov_callbacks OV_CALLBACKS_STREAMONLY_NOCLOSE = { |
(size_t (*)(void *, size_t, size_t, void *)) fread, |
(int (*)(void *, ogg_int64_t, int)) NULL, |
(int (*)(void *)) NULL, |
(long (*)(void *)) NULL |
}; |
#endif |
#define NOTOPEN 0 |
#define PARTOPEN 1 |
#define OPENED 2 |
#define STREAMSET 3 |
#define INITSET 4 |
typedef struct OggVorbis_File { |
void *datasource; /* Pointer to a FILE *, etc. */ |
int seekable; |
ogg_int64_t offset; |
ogg_int64_t end; |
ogg_sync_state oy; |
/* If the FILE handle isn't seekable (eg, a pipe), only the current |
stream appears */ |
int links; |
ogg_int64_t *offsets; |
ogg_int64_t *dataoffsets; |
long *serialnos; |
ogg_int64_t *pcmlengths; /* overloaded to maintain binary |
compatibility; x2 size, stores both |
beginning and end values */ |
vorbis_info *vi; |
vorbis_comment *vc; |
/* Decoding working state local storage */ |
ogg_int64_t pcm_offset; |
int ready_state; |
long current_serialno; |
int current_link; |
double bittrack; |
double samptrack; |
ogg_stream_state os; /* take physical pages, weld into a logical |
stream of packets */ |
vorbis_dsp_state vd; /* central working state for the packet->PCM decoder */ |
vorbis_block vb; /* local working space for packet->PCM decode */ |
ov_callbacks callbacks; |
} OggVorbis_File; |
extern int ov_clear(OggVorbis_File *vf); |
extern int ov_fopen(const char *path,OggVorbis_File *vf); |
extern int ov_open(FILE *f,OggVorbis_File *vf,const char *initial,long ibytes); |
extern int ov_open_callbacks(void *datasource, OggVorbis_File *vf, |
const char *initial, long ibytes, ov_callbacks callbacks); |
extern int ov_test(FILE *f,OggVorbis_File *vf,const char *initial,long ibytes); |
extern int ov_test_callbacks(void *datasource, OggVorbis_File *vf, |
const char *initial, long ibytes, ov_callbacks callbacks); |
extern int ov_test_open(OggVorbis_File *vf); |
extern long ov_bitrate(OggVorbis_File *vf,int i); |
extern long ov_bitrate_instant(OggVorbis_File *vf); |
extern long ov_streams(OggVorbis_File *vf); |
extern long ov_seekable(OggVorbis_File *vf); |
extern long ov_serialnumber(OggVorbis_File *vf,int i); |
extern ogg_int64_t ov_raw_total(OggVorbis_File *vf,int i); |
extern ogg_int64_t ov_pcm_total(OggVorbis_File *vf,int i); |
extern double ov_time_total(OggVorbis_File *vf,int i); |
extern int ov_raw_seek(OggVorbis_File *vf,ogg_int64_t pos); |
extern int ov_pcm_seek(OggVorbis_File *vf,ogg_int64_t pos); |
extern int ov_pcm_seek_page(OggVorbis_File *vf,ogg_int64_t pos); |
extern int ov_time_seek(OggVorbis_File *vf,double pos); |
extern int ov_time_seek_page(OggVorbis_File *vf,double pos); |
extern int ov_raw_seek_lap(OggVorbis_File *vf,ogg_int64_t pos); |
extern int ov_pcm_seek_lap(OggVorbis_File *vf,ogg_int64_t pos); |
extern int ov_pcm_seek_page_lap(OggVorbis_File *vf,ogg_int64_t pos); |
extern int ov_time_seek_lap(OggVorbis_File *vf,double pos); |
extern int ov_time_seek_page_lap(OggVorbis_File *vf,double pos); |
extern ogg_int64_t ov_raw_tell(OggVorbis_File *vf); |
extern ogg_int64_t ov_pcm_tell(OggVorbis_File *vf); |
extern double ov_time_tell(OggVorbis_File *vf); |
extern vorbis_info *ov_info(OggVorbis_File *vf,int link); |
extern vorbis_comment *ov_comment(OggVorbis_File *vf,int link); |
extern long ov_read_float(OggVorbis_File *vf,float ***pcm_channels,int samples, |
int *bitstream); |
extern long ov_read_filter(OggVorbis_File *vf,char *buffer,int length, |
int bigendianp,int word,int sgned,int *bitstream, |
void (*filter)(float **pcm,long channels,long samples,void *filter_param),void *filter_param); |
extern long ov_read(OggVorbis_File *vf,char *buffer,int length, |
int bigendianp,int word,int sgned,int *bitstream); |
extern int ov_crosslap(OggVorbis_File *vf1,OggVorbis_File *vf2); |
extern int ov_halfrate(OggVorbis_File *vf,int flag); |
extern int ov_halfrate_p(OggVorbis_File *vf); |
#ifdef __cplusplus |
} |
#endif /* __cplusplus */ |
#endif |
/contrib/sdk/sources/libvorbis-1.3.7/lib/.deps/analysis.Plo |
---|
0,0 → 1,0 |
# dummy |
/contrib/sdk/sources/libvorbis-1.3.7/lib/.deps/barkmel.Po |
---|
0,0 → 1,0 |
# dummy |
/contrib/sdk/sources/libvorbis-1.3.7/lib/.deps/bitrate.Plo |
---|
0,0 → 1,0 |
# dummy |
/contrib/sdk/sources/libvorbis-1.3.7/lib/.deps/block.Plo |
---|
0,0 → 1,0 |
# dummy |
/contrib/sdk/sources/libvorbis-1.3.7/lib/.deps/codebook.Plo |
---|
0,0 → 1,0 |
# dummy |
/contrib/sdk/sources/libvorbis-1.3.7/lib/.deps/envelope.Plo |
---|
0,0 → 1,0 |
# dummy |
/contrib/sdk/sources/libvorbis-1.3.7/lib/.deps/floor0.Plo |
---|
0,0 → 1,0 |
# dummy |
/contrib/sdk/sources/libvorbis-1.3.7/lib/.deps/floor1.Plo |
---|
0,0 → 1,0 |
# dummy |
/contrib/sdk/sources/libvorbis-1.3.7/lib/.deps/info.Plo |
---|
0,0 → 1,0 |
# dummy |
/contrib/sdk/sources/libvorbis-1.3.7/lib/.deps/lookup.Plo |
---|
0,0 → 1,0 |
# dummy |
/contrib/sdk/sources/libvorbis-1.3.7/lib/.deps/lpc.Plo |
---|
0,0 → 1,0 |
# dummy |
/contrib/sdk/sources/libvorbis-1.3.7/lib/.deps/lsp.Plo |
---|
0,0 → 1,0 |
# dummy |
/contrib/sdk/sources/libvorbis-1.3.7/lib/.deps/mapping0.Plo |
---|
0,0 → 1,0 |
# dummy |
/contrib/sdk/sources/libvorbis-1.3.7/lib/.deps/mdct.Plo |
---|
0,0 → 1,0 |
# dummy |
/contrib/sdk/sources/libvorbis-1.3.7/lib/.deps/psy.Plo |
---|
0,0 → 1,0 |
# dummy |
/contrib/sdk/sources/libvorbis-1.3.7/lib/.deps/psytune.Po |
---|
0,0 → 1,0 |
# dummy |
/contrib/sdk/sources/libvorbis-1.3.7/lib/.deps/registry.Plo |
---|
0,0 → 1,0 |
# dummy |
/contrib/sdk/sources/libvorbis-1.3.7/lib/.deps/res0.Plo |
---|
0,0 → 1,0 |
# dummy |
/contrib/sdk/sources/libvorbis-1.3.7/lib/.deps/sharedbook.Plo |
---|
0,0 → 1,0 |
# dummy |
/contrib/sdk/sources/libvorbis-1.3.7/lib/.deps/smallft.Plo |
---|
0,0 → 1,0 |
# dummy |
/contrib/sdk/sources/libvorbis-1.3.7/lib/.deps/synthesis.Plo |
---|
0,0 → 1,0 |
# dummy |
/contrib/sdk/sources/libvorbis-1.3.7/lib/.deps/test_sharedbook-sharedbook.Po |
---|
0,0 → 1,0 |
# dummy |
/contrib/sdk/sources/libvorbis-1.3.7/lib/.deps/tone.Po |
---|
0,0 → 1,0 |
# dummy |
/contrib/sdk/sources/libvorbis-1.3.7/lib/.deps/vorbisenc.Plo |
---|
0,0 → 1,0 |
# dummy |
/contrib/sdk/sources/libvorbis-1.3.7/lib/.deps/vorbisfile.Plo |
---|
0,0 → 1,0 |
# dummy |
/contrib/sdk/sources/libvorbis-1.3.7/lib/.deps/window.Plo |
---|
0,0 → 1,0 |
# dummy |
/contrib/sdk/sources/libvorbis-1.3.7/lib/analysis.c |
---|
0,0 → 1,119 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: single-block PCM analysis mode dispatch |
********************************************************************/ |
#include <stdio.h> |
#include <string.h> |
#include <math.h> |
#include <ogg/ogg.h> |
#include "vorbis/codec.h" |
#include "codec_internal.h" |
#include "registry.h" |
#include "scales.h" |
#include "os.h" |
#include "misc.h" |
/* decides between modes, dispatches to the appropriate mapping. */ |
int vorbis_analysis(vorbis_block *vb, ogg_packet *op){ |
int ret,i; |
vorbis_block_internal *vbi=vb->internal; |
vb->glue_bits=0; |
vb->time_bits=0; |
vb->floor_bits=0; |
vb->res_bits=0; |
/* first things first. Make sure encode is ready */ |
for(i=0;i<PACKETBLOBS;i++) |
oggpack_reset(vbi->packetblob[i]); |
/* we only have one mapping type (0), and we let the mapping code |
itself figure out what soft mode to use. This allows easier |
bitrate management */ |
if((ret=_mapping_P[0]->forward(vb))) |
return(ret); |
if(op){ |
if(vorbis_bitrate_managed(vb)) |
/* The app is using a bitmanaged mode... but not using the |
bitrate management interface. */ |
return(OV_EINVAL); |
op->packet=oggpack_get_buffer(&vb->opb); |
op->bytes=oggpack_bytes(&vb->opb); |
op->b_o_s=0; |
op->e_o_s=vb->eofflag; |
op->granulepos=vb->granulepos; |
op->packetno=vb->sequence; /* for sake of completeness */ |
} |
return(0); |
} |
#ifdef ANALYSIS |
int analysis_noisy=1; |
/* there was no great place to put this.... */ |
void _analysis_output_always(char *base,int i,float *v,int n,int bark,int dB,ogg_int64_t off){ |
int j; |
FILE *of; |
char buffer[80]; |
sprintf(buffer,"%s_%d.m",base,i); |
of=fopen(buffer,"w"); |
if(!of)perror("failed to open data dump file"); |
for(j=0;j<n;j++){ |
if(bark){ |
float b=toBARK((4000.f*j/n)+.25); |
fprintf(of,"%f ",b); |
}else |
if(off!=0) |
fprintf(of,"%f ",(double)(j+off)/8000.); |
else |
fprintf(of,"%f ",(double)j); |
if(dB){ |
float val; |
if(v[j]==0.) |
val=-140.; |
else |
val=todB(v+j); |
fprintf(of,"%f\n",val); |
}else{ |
fprintf(of,"%f\n",v[j]); |
} |
} |
fclose(of); |
} |
void _analysis_output(char *base,int i,float *v,int n,int bark,int dB, |
ogg_int64_t off){ |
if(analysis_noisy)_analysis_output_always(base,i,v,n,bark,dB,off); |
} |
#endif |
/contrib/sdk/sources/libvorbis-1.3.7/lib/backends.h |
---|
0,0 → 1,143 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: libvorbis backend and mapping structures; needed for |
static mode headers |
********************************************************************/ |
/* this is exposed up here because we need it for static modes. |
Lookups for each backend aren't exposed because there's no reason |
to do so */ |
#ifndef _vorbis_backend_h_ |
#define _vorbis_backend_h_ |
#include "codec_internal.h" |
/* this would all be simpler/shorter with templates, but.... */ |
/* Floor backend generic *****************************************/ |
typedef struct{ |
void (*pack) (vorbis_info_floor *,oggpack_buffer *); |
vorbis_info_floor *(*unpack)(vorbis_info *,oggpack_buffer *); |
vorbis_look_floor *(*look) (vorbis_dsp_state *,vorbis_info_floor *); |
void (*free_info) (vorbis_info_floor *); |
void (*free_look) (vorbis_look_floor *); |
void *(*inverse1) (struct vorbis_block *,vorbis_look_floor *); |
int (*inverse2) (struct vorbis_block *,vorbis_look_floor *, |
void *buffer,float *); |
} vorbis_func_floor; |
typedef struct{ |
int order; |
long rate; |
long barkmap; |
int ampbits; |
int ampdB; |
int numbooks; /* <= 16 */ |
int books[16]; |
float lessthan; /* encode-only config setting hacks for libvorbis */ |
float greaterthan; /* encode-only config setting hacks for libvorbis */ |
} vorbis_info_floor0; |
#define VIF_POSIT 63 |
#define VIF_CLASS 16 |
#define VIF_PARTS 31 |
typedef struct{ |
int partitions; /* 0 to 31 */ |
int partitionclass[VIF_PARTS]; /* 0 to 15 */ |
int class_dim[VIF_CLASS]; /* 1 to 8 */ |
int class_subs[VIF_CLASS]; /* 0,1,2,3 (bits: 1<<n poss) */ |
int class_book[VIF_CLASS]; /* subs ^ dim entries */ |
int class_subbook[VIF_CLASS][8]; /* [VIF_CLASS][subs] */ |
int mult; /* 1 2 3 or 4 */ |
int postlist[VIF_POSIT+2]; /* first two implicit */ |
/* encode side analysis parameters */ |
float maxover; |
float maxunder; |
float maxerr; |
float twofitweight; |
float twofitatten; |
int n; |
} vorbis_info_floor1; |
/* Residue backend generic *****************************************/ |
typedef struct{ |
void (*pack) (vorbis_info_residue *,oggpack_buffer *); |
vorbis_info_residue *(*unpack)(vorbis_info *,oggpack_buffer *); |
vorbis_look_residue *(*look) (vorbis_dsp_state *, |
vorbis_info_residue *); |
void (*free_info) (vorbis_info_residue *); |
void (*free_look) (vorbis_look_residue *); |
long **(*class) (struct vorbis_block *,vorbis_look_residue *, |
int **,int *,int); |
int (*forward) (oggpack_buffer *,struct vorbis_block *, |
vorbis_look_residue *, |
int **,int *,int,long **,int); |
int (*inverse) (struct vorbis_block *,vorbis_look_residue *, |
float **,int *,int); |
} vorbis_func_residue; |
typedef struct vorbis_info_residue0{ |
/* block-partitioned VQ coded straight residue */ |
long begin; |
long end; |
/* first stage (lossless partitioning) */ |
int grouping; /* group n vectors per partition */ |
int partitions; /* possible codebooks for a partition */ |
int partvals; /* partitions ^ groupbook dim */ |
int groupbook; /* huffbook for partitioning */ |
int secondstages[64]; /* expanded out to pointers in lookup */ |
int booklist[512]; /* list of second stage books */ |
const int classmetric1[64]; |
const int classmetric2[64]; |
} vorbis_info_residue0; |
/* Mapping backend generic *****************************************/ |
typedef struct{ |
void (*pack) (vorbis_info *,vorbis_info_mapping *, |
oggpack_buffer *); |
vorbis_info_mapping *(*unpack)(vorbis_info *,oggpack_buffer *); |
void (*free_info) (vorbis_info_mapping *); |
int (*forward) (struct vorbis_block *vb); |
int (*inverse) (struct vorbis_block *vb,vorbis_info_mapping *); |
} vorbis_func_mapping; |
typedef struct vorbis_info_mapping0{ |
int submaps; /* <= 16 */ |
int chmuxlist[256]; /* up to 256 channels in a Vorbis stream */ |
int floorsubmap[16]; /* [mux] submap to floors */ |
int residuesubmap[16]; /* [mux] submap to residue */ |
int coupling_steps; |
int coupling_mag[256]; |
int coupling_ang[256]; |
} vorbis_info_mapping0; |
#endif |
/contrib/sdk/sources/libvorbis-1.3.7/lib/barkmel.c |
---|
0,0 → 1,63 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: bark scale utility |
********************************************************************/ |
#include <stdio.h> |
#include "scales.h" |
int main(){ |
int i; |
double rate; |
for(i=64;i<32000;i*=2){ |
rate=48000.f; |
fprintf(stderr,"rate=%gHz, block=%d, f(1)=%.2gHz bark(1)=%.2g (of %.2g)\n", |
rate,i,rate/2 / (i/2),toBARK(rate/2 /(i/2)),toBARK(rate/2)); |
rate=44100.f; |
fprintf(stderr,"rate=%gHz, block=%d, f(1)=%.2gHz bark(1)=%.2g (of %.2g)\n", |
rate,i,rate/2 / (i/2),toBARK(rate/2 /(i/2)),toBARK(rate/2)); |
rate=32000.f; |
fprintf(stderr,"rate=%gHz, block=%d, f(1)=%.2gHz bark(1)=%.2g (of %.2g)\n", |
rate,i,rate/2 / (i/2),toBARK(rate/2 /(i/2)),toBARK(rate/2)); |
rate=22050.f; |
fprintf(stderr,"rate=%gHz, block=%d, f(1)=%.2gHz bark(1)=%.2g (of %.2g)\n", |
rate,i,rate/2 / (i/2),toBARK(rate/2 /(i/2)),toBARK(rate/2)); |
rate=16000.f; |
fprintf(stderr,"rate=%gHz, block=%d, f(1)=%.2gHz bark(1)=%.2g (of %.2g)\n", |
rate,i,rate/2 / (i/2),toBARK(rate/2 /(i/2)),toBARK(rate/2)); |
rate=11025.f; |
fprintf(stderr,"rate=%gHz, block=%d, f(1)=%.2gHz bark(1)=%.2g (of %.2g)\n", |
rate,i,rate/2 / (i/2),toBARK(rate/2 /(i/2)),toBARK(rate/2)); |
rate=8000.f; |
fprintf(stderr,"rate=%gHz, block=%d, f(1)=%.2gHz bark(1)=%.2g (of %.2g)\n\n", |
rate,i,rate/2 / (i/2),toBARK(rate/2 /(i/2)),toBARK(rate/2)); |
} |
{ |
float i; |
int j; |
for(i=0.,j=0;i<28;i+=1,j++){ |
fprintf(stderr,"(%d) bark=%f %gHz (%d of 128)\n", |
j,i,fromBARK(i),(int)(fromBARK(i)/22050.*128.)); |
} |
} |
return(0); |
} |
/contrib/sdk/sources/libvorbis-1.3.7/lib/bitrate.c |
---|
0,0 → 1,252 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: bitrate tracking and management |
********************************************************************/ |
#include <stdlib.h> |
#include <string.h> |
#include <math.h> |
#include <ogg/ogg.h> |
#include "vorbis/codec.h" |
#include "codec_internal.h" |
#include "os.h" |
#include "misc.h" |
#include "bitrate.h" |
/* compute bitrate tracking setup */ |
void vorbis_bitrate_init(vorbis_info *vi,bitrate_manager_state *bm){ |
codec_setup_info *ci=vi->codec_setup; |
bitrate_manager_info *bi=&ci->bi; |
memset(bm,0,sizeof(*bm)); |
if(bi && (bi->reservoir_bits>0)){ |
long ratesamples=vi->rate; |
int halfsamples=ci->blocksizes[0]>>1; |
bm->short_per_long=ci->blocksizes[1]/ci->blocksizes[0]; |
bm->managed=1; |
bm->avg_bitsper= rint(1.*bi->avg_rate*halfsamples/ratesamples); |
bm->min_bitsper= rint(1.*bi->min_rate*halfsamples/ratesamples); |
bm->max_bitsper= rint(1.*bi->max_rate*halfsamples/ratesamples); |
bm->avgfloat=PACKETBLOBS/2; |
/* not a necessary fix, but one that leads to a more balanced |
typical initialization */ |
{ |
long desired_fill=bi->reservoir_bits*bi->reservoir_bias; |
bm->minmax_reservoir=desired_fill; |
bm->avg_reservoir=desired_fill; |
} |
} |
} |
void vorbis_bitrate_clear(bitrate_manager_state *bm){ |
memset(bm,0,sizeof(*bm)); |
return; |
} |
int vorbis_bitrate_managed(vorbis_block *vb){ |
vorbis_dsp_state *vd=vb->vd; |
private_state *b=vd->backend_state; |
bitrate_manager_state *bm=&b->bms; |
if(bm && bm->managed)return(1); |
return(0); |
} |
/* finish taking in the block we just processed */ |
int vorbis_bitrate_addblock(vorbis_block *vb){ |
vorbis_block_internal *vbi=vb->internal; |
vorbis_dsp_state *vd=vb->vd; |
private_state *b=vd->backend_state; |
bitrate_manager_state *bm=&b->bms; |
vorbis_info *vi=vd->vi; |
codec_setup_info *ci=vi->codec_setup; |
bitrate_manager_info *bi=&ci->bi; |
int choice=rint(bm->avgfloat); |
long this_bits=oggpack_bytes(vbi->packetblob[choice])*8; |
long min_target_bits=(vb->W?bm->min_bitsper*bm->short_per_long:bm->min_bitsper); |
long max_target_bits=(vb->W?bm->max_bitsper*bm->short_per_long:bm->max_bitsper); |
int samples=ci->blocksizes[vb->W]>>1; |
long desired_fill=bi->reservoir_bits*bi->reservoir_bias; |
if(!bm->managed){ |
/* not a bitrate managed stream, but for API simplicity, we'll |
buffer the packet to keep the code path clean */ |
if(bm->vb)return(-1); /* one has been submitted without |
being claimed */ |
bm->vb=vb; |
return(0); |
} |
bm->vb=vb; |
/* look ahead for avg floater */ |
if(bm->avg_bitsper>0){ |
double slew=0.; |
long avg_target_bits=(vb->W?bm->avg_bitsper*bm->short_per_long:bm->avg_bitsper); |
double slewlimit= 15./bi->slew_damp; |
/* choosing a new floater: |
if we're over target, we slew down |
if we're under target, we slew up |
choose slew as follows: look through packetblobs of this frame |
and set slew as the first in the appropriate direction that |
gives us the slew we want. This may mean no slew if delta is |
already favorable. |
Then limit slew to slew max */ |
if(bm->avg_reservoir+(this_bits-avg_target_bits)>desired_fill){ |
while(choice>0 && this_bits>avg_target_bits && |
bm->avg_reservoir+(this_bits-avg_target_bits)>desired_fill){ |
choice--; |
this_bits=oggpack_bytes(vbi->packetblob[choice])*8; |
} |
}else if(bm->avg_reservoir+(this_bits-avg_target_bits)<desired_fill){ |
while(choice+1<PACKETBLOBS && this_bits<avg_target_bits && |
bm->avg_reservoir+(this_bits-avg_target_bits)<desired_fill){ |
choice++; |
this_bits=oggpack_bytes(vbi->packetblob[choice])*8; |
} |
} |
slew=rint(choice-bm->avgfloat)/samples*vi->rate; |
if(slew<-slewlimit)slew=-slewlimit; |
if(slew>slewlimit)slew=slewlimit; |
choice=rint(bm->avgfloat+= slew/vi->rate*samples); |
this_bits=oggpack_bytes(vbi->packetblob[choice])*8; |
} |
/* enforce min(if used) on the current floater (if used) */ |
if(bm->min_bitsper>0){ |
/* do we need to force the bitrate up? */ |
if(this_bits<min_target_bits){ |
while(bm->minmax_reservoir-(min_target_bits-this_bits)<0){ |
choice++; |
if(choice>=PACKETBLOBS)break; |
this_bits=oggpack_bytes(vbi->packetblob[choice])*8; |
} |
} |
} |
/* enforce max (if used) on the current floater (if used) */ |
if(bm->max_bitsper>0){ |
/* do we need to force the bitrate down? */ |
if(this_bits>max_target_bits){ |
while(bm->minmax_reservoir+(this_bits-max_target_bits)>bi->reservoir_bits){ |
choice--; |
if(choice<0)break; |
this_bits=oggpack_bytes(vbi->packetblob[choice])*8; |
} |
} |
} |
/* Choice of packetblobs now made based on floater, and min/max |
requirements. Now boundary check extreme choices */ |
if(choice<0){ |
/* choosing a smaller packetblob is insufficient to trim bitrate. |
frame will need to be truncated */ |
long maxsize=(max_target_bits+(bi->reservoir_bits-bm->minmax_reservoir))/8; |
bm->choice=choice=0; |
if(oggpack_bytes(vbi->packetblob[choice])>maxsize){ |
oggpack_writetrunc(vbi->packetblob[choice],maxsize*8); |
this_bits=oggpack_bytes(vbi->packetblob[choice])*8; |
} |
}else{ |
long minsize=(min_target_bits-bm->minmax_reservoir+7)/8; |
if(choice>=PACKETBLOBS) |
choice=PACKETBLOBS-1; |
bm->choice=choice; |
/* prop up bitrate according to demand. pad this frame out with zeroes */ |
minsize-=oggpack_bytes(vbi->packetblob[choice]); |
while(minsize-->0)oggpack_write(vbi->packetblob[choice],0,8); |
this_bits=oggpack_bytes(vbi->packetblob[choice])*8; |
} |
/* now we have the final packet and the final packet size. Update statistics */ |
/* min and max reservoir */ |
if(bm->min_bitsper>0 || bm->max_bitsper>0){ |
if(max_target_bits>0 && this_bits>max_target_bits){ |
bm->minmax_reservoir+=(this_bits-max_target_bits); |
}else if(min_target_bits>0 && this_bits<min_target_bits){ |
bm->minmax_reservoir+=(this_bits-min_target_bits); |
}else{ |
/* inbetween; we want to take reservoir toward but not past desired_fill */ |
if(bm->minmax_reservoir>desired_fill){ |
if(max_target_bits>0){ /* logical bulletproofing against initialization state */ |
bm->minmax_reservoir+=(this_bits-max_target_bits); |
if(bm->minmax_reservoir<desired_fill)bm->minmax_reservoir=desired_fill; |
}else{ |
bm->minmax_reservoir=desired_fill; |
} |
}else{ |
if(min_target_bits>0){ /* logical bulletproofing against initialization state */ |
bm->minmax_reservoir+=(this_bits-min_target_bits); |
if(bm->minmax_reservoir>desired_fill)bm->minmax_reservoir=desired_fill; |
}else{ |
bm->minmax_reservoir=desired_fill; |
} |
} |
} |
} |
/* avg reservoir */ |
if(bm->avg_bitsper>0){ |
long avg_target_bits=(vb->W?bm->avg_bitsper*bm->short_per_long:bm->avg_bitsper); |
bm->avg_reservoir+=this_bits-avg_target_bits; |
} |
return(0); |
} |
int vorbis_bitrate_flushpacket(vorbis_dsp_state *vd,ogg_packet *op){ |
private_state *b=vd->backend_state; |
bitrate_manager_state *bm=&b->bms; |
vorbis_block *vb=bm->vb; |
int choice=PACKETBLOBS/2; |
if(!vb)return 0; |
if(op){ |
vorbis_block_internal *vbi=vb->internal; |
if(vorbis_bitrate_managed(vb)) |
choice=bm->choice; |
op->packet=oggpack_get_buffer(vbi->packetblob[choice]); |
op->bytes=oggpack_bytes(vbi->packetblob[choice]); |
op->b_o_s=0; |
op->e_o_s=vb->eofflag; |
op->granulepos=vb->granulepos; |
op->packetno=vb->sequence; /* for sake of completeness */ |
} |
bm->vb=0; |
return(1); |
} |
/contrib/sdk/sources/libvorbis-1.3.7/lib/bitrate.h |
---|
0,0 → 1,58 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: bitrate tracking and management |
********************************************************************/ |
#ifndef _V_BITRATE_H_ |
#define _V_BITRATE_H_ |
#include "vorbis/codec.h" |
#include "codec_internal.h" |
#include "os.h" |
/* encode side bitrate tracking */ |
typedef struct bitrate_manager_state { |
int managed; |
long avg_reservoir; |
long minmax_reservoir; |
long avg_bitsper; |
long min_bitsper; |
long max_bitsper; |
long short_per_long; |
double avgfloat; |
vorbis_block *vb; |
int choice; |
} bitrate_manager_state; |
typedef struct bitrate_manager_info{ |
long avg_rate; |
long min_rate; |
long max_rate; |
long reservoir_bits; |
double reservoir_bias; |
double slew_damp; |
} bitrate_manager_info; |
extern void vorbis_bitrate_init(vorbis_info *vi,bitrate_manager_state *bs); |
extern void vorbis_bitrate_clear(bitrate_manager_state *bs); |
extern int vorbis_bitrate_managed(vorbis_block *vb); |
extern int vorbis_bitrate_addblock(vorbis_block *vb); |
extern int vorbis_bitrate_flushpacket(vorbis_dsp_state *vd, ogg_packet *op); |
#endif |
/contrib/sdk/sources/libvorbis-1.3.7/lib/block.c |
---|
0,0 → 1,1046 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2015 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: PCM data vector blocking, windowing and dis/reassembly |
Handle windowing, overlap-add, etc of the PCM vectors. This is made |
more amusing by Vorbis' current two allowed block sizes. |
********************************************************************/ |
#include <stdio.h> |
#include <stdlib.h> |
#include <string.h> |
#include <ogg/ogg.h> |
#include "vorbis/codec.h" |
#include "codec_internal.h" |
#include "window.h" |
#include "mdct.h" |
#include "lpc.h" |
#include "registry.h" |
#include "misc.h" |
/* pcm accumulator examples (not exhaustive): |
<-------------- lW ----------------> |
<--------------- W ----------------> |
: .....|..... _______________ | |
: .''' | '''_--- | |\ | |
:.....''' |_____--- '''......| | \_______| |
:.................|__________________|_______|__|______| |
|<------ Sl ------>| > Sr < |endW |
|beginSl |endSl | |endSr |
|beginW |endlW |beginSr |
|< lW >| |
<--------------- W ----------------> |
| | .. ______________ | |
| | ' `/ | ---_ | |
|___.'___/`. | ---_____| |
|_______|__|_______|_________________| |
| >|Sl|< |<------ Sr ----->|endW |
| | |endSl |beginSr |endSr |
|beginW | |endlW |
mult[0] |beginSl mult[n] |
<-------------- lW -----------------> |
|<--W-->| |
: .............. ___ | | |
: .''' |`/ \ | | |
:.....''' |/`....\|...| |
:.........................|___|___|___| |
|Sl |Sr |endW |
| | |endSr |
| |beginSr |
| |endSl |
|beginSl |
|beginW |
*/ |
/* block abstraction setup *********************************************/ |
#ifndef WORD_ALIGN |
#define WORD_ALIGN 8 |
#endif |
int vorbis_block_init(vorbis_dsp_state *v, vorbis_block *vb){ |
int i; |
memset(vb,0,sizeof(*vb)); |
vb->vd=v; |
vb->localalloc=0; |
vb->localstore=NULL; |
if(v->analysisp){ |
vorbis_block_internal *vbi= |
vb->internal=_ogg_calloc(1,sizeof(vorbis_block_internal)); |
vbi->ampmax=-9999; |
for(i=0;i<PACKETBLOBS;i++){ |
if(i==PACKETBLOBS/2){ |
vbi->packetblob[i]=&vb->opb; |
}else{ |
vbi->packetblob[i]= |
_ogg_calloc(1,sizeof(oggpack_buffer)); |
} |
oggpack_writeinit(vbi->packetblob[i]); |
} |
} |
return(0); |
} |
void *_vorbis_block_alloc(vorbis_block *vb,long bytes){ |
bytes=(bytes+(WORD_ALIGN-1)) & ~(WORD_ALIGN-1); |
if(bytes+vb->localtop>vb->localalloc){ |
/* can't just _ogg_realloc... there are outstanding pointers */ |
if(vb->localstore){ |
struct alloc_chain *link=_ogg_malloc(sizeof(*link)); |
vb->totaluse+=vb->localtop; |
link->next=vb->reap; |
link->ptr=vb->localstore; |
vb->reap=link; |
} |
/* highly conservative */ |
vb->localalloc=bytes; |
vb->localstore=_ogg_malloc(vb->localalloc); |
vb->localtop=0; |
} |
{ |
void *ret=(void *)(((char *)vb->localstore)+vb->localtop); |
vb->localtop+=bytes; |
return ret; |
} |
} |
/* reap the chain, pull the ripcord */ |
void _vorbis_block_ripcord(vorbis_block *vb){ |
/* reap the chain */ |
struct alloc_chain *reap=vb->reap; |
while(reap){ |
struct alloc_chain *next=reap->next; |
_ogg_free(reap->ptr); |
memset(reap,0,sizeof(*reap)); |
_ogg_free(reap); |
reap=next; |
} |
/* consolidate storage */ |
if(vb->totaluse){ |
vb->localstore=_ogg_realloc(vb->localstore,vb->totaluse+vb->localalloc); |
vb->localalloc+=vb->totaluse; |
vb->totaluse=0; |
} |
/* pull the ripcord */ |
vb->localtop=0; |
vb->reap=NULL; |
} |
int vorbis_block_clear(vorbis_block *vb){ |
int i; |
vorbis_block_internal *vbi=vb->internal; |
_vorbis_block_ripcord(vb); |
if(vb->localstore)_ogg_free(vb->localstore); |
if(vbi){ |
for(i=0;i<PACKETBLOBS;i++){ |
oggpack_writeclear(vbi->packetblob[i]); |
if(i!=PACKETBLOBS/2)_ogg_free(vbi->packetblob[i]); |
} |
_ogg_free(vbi); |
} |
memset(vb,0,sizeof(*vb)); |
return(0); |
} |
/* Analysis side code, but directly related to blocking. Thus it's |
here and not in analysis.c (which is for analysis transforms only). |
The init is here because some of it is shared */ |
static int _vds_shared_init(vorbis_dsp_state *v,vorbis_info *vi,int encp){ |
int i; |
codec_setup_info *ci=vi->codec_setup; |
private_state *b=NULL; |
int hs; |
if(ci==NULL|| |
ci->modes<=0|| |
ci->blocksizes[0]<64|| |
ci->blocksizes[1]<ci->blocksizes[0]){ |
return 1; |
} |
hs=ci->halfrate_flag; |
memset(v,0,sizeof(*v)); |
b=v->backend_state=_ogg_calloc(1,sizeof(*b)); |
v->vi=vi; |
b->modebits=ov_ilog(ci->modes-1); |
b->transform[0]=_ogg_calloc(VI_TRANSFORMB,sizeof(*b->transform[0])); |
b->transform[1]=_ogg_calloc(VI_TRANSFORMB,sizeof(*b->transform[1])); |
/* MDCT is tranform 0 */ |
b->transform[0][0]=_ogg_calloc(1,sizeof(mdct_lookup)); |
b->transform[1][0]=_ogg_calloc(1,sizeof(mdct_lookup)); |
mdct_init(b->transform[0][0],ci->blocksizes[0]>>hs); |
mdct_init(b->transform[1][0],ci->blocksizes[1]>>hs); |
/* Vorbis I uses only window type 0 */ |
/* note that the correct computation below is technically: |
b->window[0]=ov_ilog(ci->blocksizes[0]-1)-6; |
b->window[1]=ov_ilog(ci->blocksizes[1]-1)-6; |
but since blocksizes are always powers of two, |
the below is equivalent. |
*/ |
b->window[0]=ov_ilog(ci->blocksizes[0])-7; |
b->window[1]=ov_ilog(ci->blocksizes[1])-7; |
if(encp){ /* encode/decode differ here */ |
/* analysis always needs an fft */ |
drft_init(&b->fft_look[0],ci->blocksizes[0]); |
drft_init(&b->fft_look[1],ci->blocksizes[1]); |
/* finish the codebooks */ |
if(!ci->fullbooks){ |
ci->fullbooks=_ogg_calloc(ci->books,sizeof(*ci->fullbooks)); |
for(i=0;i<ci->books;i++) |
vorbis_book_init_encode(ci->fullbooks+i,ci->book_param[i]); |
} |
b->psy=_ogg_calloc(ci->psys,sizeof(*b->psy)); |
for(i=0;i<ci->psys;i++){ |
_vp_psy_init(b->psy+i, |
ci->psy_param[i], |
&ci->psy_g_param, |
ci->blocksizes[ci->psy_param[i]->blockflag]/2, |
vi->rate); |
} |
v->analysisp=1; |
}else{ |
/* finish the codebooks */ |
if(!ci->fullbooks){ |
ci->fullbooks=_ogg_calloc(ci->books,sizeof(*ci->fullbooks)); |
for(i=0;i<ci->books;i++){ |
if(ci->book_param[i]==NULL) |
goto abort_books; |
if(vorbis_book_init_decode(ci->fullbooks+i,ci->book_param[i])) |
goto abort_books; |
/* decode codebooks are now standalone after init */ |
vorbis_staticbook_destroy(ci->book_param[i]); |
ci->book_param[i]=NULL; |
} |
} |
} |
/* initialize the storage vectors. blocksize[1] is small for encode, |
but the correct size for decode */ |
v->pcm_storage=ci->blocksizes[1]; |
v->pcm=_ogg_malloc(vi->channels*sizeof(*v->pcm)); |
v->pcmret=_ogg_malloc(vi->channels*sizeof(*v->pcmret)); |
{ |
int i; |
for(i=0;i<vi->channels;i++) |
v->pcm[i]=_ogg_calloc(v->pcm_storage,sizeof(*v->pcm[i])); |
} |
/* all 1 (large block) or 0 (small block) */ |
/* explicitly set for the sake of clarity */ |
v->lW=0; /* previous window size */ |
v->W=0; /* current window size */ |
/* all vector indexes */ |
v->centerW=ci->blocksizes[1]/2; |
v->pcm_current=v->centerW; |
/* initialize all the backend lookups */ |
b->flr=_ogg_calloc(ci->floors,sizeof(*b->flr)); |
b->residue=_ogg_calloc(ci->residues,sizeof(*b->residue)); |
for(i=0;i<ci->floors;i++) |
b->flr[i]=_floor_P[ci->floor_type[i]]-> |
look(v,ci->floor_param[i]); |
for(i=0;i<ci->residues;i++) |
b->residue[i]=_residue_P[ci->residue_type[i]]-> |
look(v,ci->residue_param[i]); |
return 0; |
abort_books: |
for(i=0;i<ci->books;i++){ |
if(ci->book_param[i]!=NULL){ |
vorbis_staticbook_destroy(ci->book_param[i]); |
ci->book_param[i]=NULL; |
} |
} |
vorbis_dsp_clear(v); |
return -1; |
} |
/* arbitrary settings and spec-mandated numbers get filled in here */ |
int vorbis_analysis_init(vorbis_dsp_state *v,vorbis_info *vi){ |
private_state *b=NULL; |
if(_vds_shared_init(v,vi,1))return 1; |
b=v->backend_state; |
b->psy_g_look=_vp_global_look(vi); |
/* Initialize the envelope state storage */ |
b->ve=_ogg_calloc(1,sizeof(*b->ve)); |
_ve_envelope_init(b->ve,vi); |
vorbis_bitrate_init(vi,&b->bms); |
/* compressed audio packets start after the headers |
with sequence number 3 */ |
v->sequence=3; |
return(0); |
} |
void vorbis_dsp_clear(vorbis_dsp_state *v){ |
int i; |
if(v){ |
vorbis_info *vi=v->vi; |
codec_setup_info *ci=(vi?vi->codec_setup:NULL); |
private_state *b=v->backend_state; |
if(b){ |
if(b->ve){ |
_ve_envelope_clear(b->ve); |
_ogg_free(b->ve); |
} |
if(b->transform[0]){ |
mdct_clear(b->transform[0][0]); |
_ogg_free(b->transform[0][0]); |
_ogg_free(b->transform[0]); |
} |
if(b->transform[1]){ |
mdct_clear(b->transform[1][0]); |
_ogg_free(b->transform[1][0]); |
_ogg_free(b->transform[1]); |
} |
if(b->flr){ |
if(ci) |
for(i=0;i<ci->floors;i++) |
_floor_P[ci->floor_type[i]]-> |
free_look(b->flr[i]); |
_ogg_free(b->flr); |
} |
if(b->residue){ |
if(ci) |
for(i=0;i<ci->residues;i++) |
_residue_P[ci->residue_type[i]]-> |
free_look(b->residue[i]); |
_ogg_free(b->residue); |
} |
if(b->psy){ |
if(ci) |
for(i=0;i<ci->psys;i++) |
_vp_psy_clear(b->psy+i); |
_ogg_free(b->psy); |
} |
if(b->psy_g_look)_vp_global_free(b->psy_g_look); |
vorbis_bitrate_clear(&b->bms); |
drft_clear(&b->fft_look[0]); |
drft_clear(&b->fft_look[1]); |
} |
if(v->pcm){ |
if(vi) |
for(i=0;i<vi->channels;i++) |
if(v->pcm[i])_ogg_free(v->pcm[i]); |
_ogg_free(v->pcm); |
if(v->pcmret)_ogg_free(v->pcmret); |
} |
if(b){ |
/* free header, header1, header2 */ |
if(b->header)_ogg_free(b->header); |
if(b->header1)_ogg_free(b->header1); |
if(b->header2)_ogg_free(b->header2); |
_ogg_free(b); |
} |
memset(v,0,sizeof(*v)); |
} |
} |
float **vorbis_analysis_buffer(vorbis_dsp_state *v, int vals){ |
int i; |
vorbis_info *vi=v->vi; |
private_state *b=v->backend_state; |
/* free header, header1, header2 */ |
if(b->header)_ogg_free(b->header);b->header=NULL; |
if(b->header1)_ogg_free(b->header1);b->header1=NULL; |
if(b->header2)_ogg_free(b->header2);b->header2=NULL; |
/* Do we have enough storage space for the requested buffer? If not, |
expand the PCM (and envelope) storage */ |
if(v->pcm_current+vals>=v->pcm_storage){ |
v->pcm_storage=v->pcm_current+vals*2; |
for(i=0;i<vi->channels;i++){ |
v->pcm[i]=_ogg_realloc(v->pcm[i],v->pcm_storage*sizeof(*v->pcm[i])); |
} |
} |
for(i=0;i<vi->channels;i++) |
v->pcmret[i]=v->pcm[i]+v->pcm_current; |
return(v->pcmret); |
} |
static void _preextrapolate_helper(vorbis_dsp_state *v){ |
int i; |
int order=16; |
float *lpc=alloca(order*sizeof(*lpc)); |
float *work=alloca(v->pcm_current*sizeof(*work)); |
long j; |
v->preextrapolate=1; |
if(v->pcm_current-v->centerW>order*2){ /* safety */ |
for(i=0;i<v->vi->channels;i++){ |
/* need to run the extrapolation in reverse! */ |
for(j=0;j<v->pcm_current;j++) |
work[j]=v->pcm[i][v->pcm_current-j-1]; |
/* prime as above */ |
vorbis_lpc_from_data(work,lpc,v->pcm_current-v->centerW,order); |
#if 0 |
if(v->vi->channels==2){ |
if(i==0) |
_analysis_output("predataL",0,work,v->pcm_current-v->centerW,0,0,0); |
else |
_analysis_output("predataR",0,work,v->pcm_current-v->centerW,0,0,0); |
}else{ |
_analysis_output("predata",0,work,v->pcm_current-v->centerW,0,0,0); |
} |
#endif |
/* run the predictor filter */ |
vorbis_lpc_predict(lpc,work+v->pcm_current-v->centerW-order, |
order, |
work+v->pcm_current-v->centerW, |
v->centerW); |
for(j=0;j<v->pcm_current;j++) |
v->pcm[i][v->pcm_current-j-1]=work[j]; |
} |
} |
} |
/* call with val<=0 to set eof */ |
int vorbis_analysis_wrote(vorbis_dsp_state *v, int vals){ |
vorbis_info *vi=v->vi; |
codec_setup_info *ci=vi->codec_setup; |
if(vals<=0){ |
int order=32; |
int i; |
float *lpc=alloca(order*sizeof(*lpc)); |
/* if it wasn't done earlier (very short sample) */ |
if(!v->preextrapolate) |
_preextrapolate_helper(v); |
/* We're encoding the end of the stream. Just make sure we have |
[at least] a few full blocks of zeroes at the end. */ |
/* actually, we don't want zeroes; that could drop a large |
amplitude off a cliff, creating spread spectrum noise that will |
suck to encode. Extrapolate for the sake of cleanliness. */ |
vorbis_analysis_buffer(v,ci->blocksizes[1]*3); |
v->eofflag=v->pcm_current; |
v->pcm_current+=ci->blocksizes[1]*3; |
for(i=0;i<vi->channels;i++){ |
if(v->eofflag>order*2){ |
/* extrapolate with LPC to fill in */ |
long n; |
/* make a predictor filter */ |
n=v->eofflag; |
if(n>ci->blocksizes[1])n=ci->blocksizes[1]; |
vorbis_lpc_from_data(v->pcm[i]+v->eofflag-n,lpc,n,order); |
/* run the predictor filter */ |
vorbis_lpc_predict(lpc,v->pcm[i]+v->eofflag-order,order, |
v->pcm[i]+v->eofflag,v->pcm_current-v->eofflag); |
}else{ |
/* not enough data to extrapolate (unlikely to happen due to |
guarding the overlap, but bulletproof in case that |
assumtion goes away). zeroes will do. */ |
memset(v->pcm[i]+v->eofflag,0, |
(v->pcm_current-v->eofflag)*sizeof(*v->pcm[i])); |
} |
} |
}else{ |
if(v->pcm_current+vals>v->pcm_storage) |
return(OV_EINVAL); |
v->pcm_current+=vals; |
/* we may want to reverse extrapolate the beginning of a stream |
too... in case we're beginning on a cliff! */ |
/* clumsy, but simple. It only runs once, so simple is good. */ |
if(!v->preextrapolate && v->pcm_current-v->centerW>ci->blocksizes[1]) |
_preextrapolate_helper(v); |
} |
return(0); |
} |
/* do the deltas, envelope shaping, pre-echo and determine the size of |
the next block on which to continue analysis */ |
int vorbis_analysis_blockout(vorbis_dsp_state *v,vorbis_block *vb){ |
int i; |
vorbis_info *vi=v->vi; |
codec_setup_info *ci=vi->codec_setup; |
private_state *b=v->backend_state; |
vorbis_look_psy_global *g=b->psy_g_look; |
long beginW=v->centerW-ci->blocksizes[v->W]/2,centerNext; |
vorbis_block_internal *vbi=(vorbis_block_internal *)vb->internal; |
/* check to see if we're started... */ |
if(!v->preextrapolate)return(0); |
/* check to see if we're done... */ |
if(v->eofflag==-1)return(0); |
/* By our invariant, we have lW, W and centerW set. Search for |
the next boundary so we can determine nW (the next window size) |
which lets us compute the shape of the current block's window */ |
/* we do an envelope search even on a single blocksize; we may still |
be throwing more bits at impulses, and envelope search handles |
marking impulses too. */ |
{ |
long bp=_ve_envelope_search(v); |
if(bp==-1){ |
if(v->eofflag==0)return(0); /* not enough data currently to search for a |
full long block */ |
v->nW=0; |
}else{ |
if(ci->blocksizes[0]==ci->blocksizes[1]) |
v->nW=0; |
else |
v->nW=bp; |
} |
} |
centerNext=v->centerW+ci->blocksizes[v->W]/4+ci->blocksizes[v->nW]/4; |
{ |
/* center of next block + next block maximum right side. */ |
long blockbound=centerNext+ci->blocksizes[v->nW]/2; |
if(v->pcm_current<blockbound)return(0); /* not enough data yet; |
although this check is |
less strict that the |
_ve_envelope_search, |
the search is not run |
if we only use one |
block size */ |
} |
/* fill in the block. Note that for a short window, lW and nW are *short* |
regardless of actual settings in the stream */ |
_vorbis_block_ripcord(vb); |
vb->lW=v->lW; |
vb->W=v->W; |
vb->nW=v->nW; |
if(v->W){ |
if(!v->lW || !v->nW){ |
vbi->blocktype=BLOCKTYPE_TRANSITION; |
/*fprintf(stderr,"-");*/ |
}else{ |
vbi->blocktype=BLOCKTYPE_LONG; |
/*fprintf(stderr,"_");*/ |
} |
}else{ |
if(_ve_envelope_mark(v)){ |
vbi->blocktype=BLOCKTYPE_IMPULSE; |
/*fprintf(stderr,"|");*/ |
}else{ |
vbi->blocktype=BLOCKTYPE_PADDING; |
/*fprintf(stderr,".");*/ |
} |
} |
vb->vd=v; |
vb->sequence=v->sequence++; |
vb->granulepos=v->granulepos; |
vb->pcmend=ci->blocksizes[v->W]; |
/* copy the vectors; this uses the local storage in vb */ |
/* this tracks 'strongest peak' for later psychoacoustics */ |
/* moved to the global psy state; clean this mess up */ |
if(vbi->ampmax>g->ampmax)g->ampmax=vbi->ampmax; |
g->ampmax=_vp_ampmax_decay(g->ampmax,v); |
vbi->ampmax=g->ampmax; |
vb->pcm=_vorbis_block_alloc(vb,sizeof(*vb->pcm)*vi->channels); |
vbi->pcmdelay=_vorbis_block_alloc(vb,sizeof(*vbi->pcmdelay)*vi->channels); |
for(i=0;i<vi->channels;i++){ |
vbi->pcmdelay[i]= |
_vorbis_block_alloc(vb,(vb->pcmend+beginW)*sizeof(*vbi->pcmdelay[i])); |
memcpy(vbi->pcmdelay[i],v->pcm[i],(vb->pcmend+beginW)*sizeof(*vbi->pcmdelay[i])); |
vb->pcm[i]=vbi->pcmdelay[i]+beginW; |
/* before we added the delay |
vb->pcm[i]=_vorbis_block_alloc(vb,vb->pcmend*sizeof(*vb->pcm[i])); |
memcpy(vb->pcm[i],v->pcm[i]+beginW,ci->blocksizes[v->W]*sizeof(*vb->pcm[i])); |
*/ |
} |
/* handle eof detection: eof==0 means that we've not yet received EOF |
eof>0 marks the last 'real' sample in pcm[] |
eof<0 'no more to do'; doesn't get here */ |
if(v->eofflag){ |
if(v->centerW>=v->eofflag){ |
v->eofflag=-1; |
vb->eofflag=1; |
return(1); |
} |
} |
/* advance storage vectors and clean up */ |
{ |
int new_centerNext=ci->blocksizes[1]/2; |
int movementW=centerNext-new_centerNext; |
if(movementW>0){ |
_ve_envelope_shift(b->ve,movementW); |
v->pcm_current-=movementW; |
for(i=0;i<vi->channels;i++) |
memmove(v->pcm[i],v->pcm[i]+movementW, |
v->pcm_current*sizeof(*v->pcm[i])); |
v->lW=v->W; |
v->W=v->nW; |
v->centerW=new_centerNext; |
if(v->eofflag){ |
v->eofflag-=movementW; |
if(v->eofflag<=0)v->eofflag=-1; |
/* do not add padding to end of stream! */ |
if(v->centerW>=v->eofflag){ |
v->granulepos+=movementW-(v->centerW-v->eofflag); |
}else{ |
v->granulepos+=movementW; |
} |
}else{ |
v->granulepos+=movementW; |
} |
} |
} |
/* done */ |
return(1); |
} |
int vorbis_synthesis_restart(vorbis_dsp_state *v){ |
vorbis_info *vi=v->vi; |
codec_setup_info *ci; |
int hs; |
if(!v->backend_state)return -1; |
if(!vi)return -1; |
ci=vi->codec_setup; |
if(!ci)return -1; |
hs=ci->halfrate_flag; |
v->centerW=ci->blocksizes[1]>>(hs+1); |
v->pcm_current=v->centerW>>hs; |
v->pcm_returned=-1; |
v->granulepos=-1; |
v->sequence=-1; |
v->eofflag=0; |
((private_state *)(v->backend_state))->sample_count=-1; |
return(0); |
} |
int vorbis_synthesis_init(vorbis_dsp_state *v,vorbis_info *vi){ |
if(_vds_shared_init(v,vi,0)){ |
vorbis_dsp_clear(v); |
return 1; |
} |
vorbis_synthesis_restart(v); |
return 0; |
} |
/* Unlike in analysis, the window is only partially applied for each |
block. The time domain envelope is not yet handled at the point of |
calling (as it relies on the previous block). */ |
int vorbis_synthesis_blockin(vorbis_dsp_state *v,vorbis_block *vb){ |
vorbis_info *vi=v->vi; |
codec_setup_info *ci=vi->codec_setup; |
private_state *b=v->backend_state; |
int hs=ci->halfrate_flag; |
int i,j; |
if(!vb)return(OV_EINVAL); |
if(v->pcm_current>v->pcm_returned && v->pcm_returned!=-1)return(OV_EINVAL); |
v->lW=v->W; |
v->W=vb->W; |
v->nW=-1; |
if((v->sequence==-1)|| |
(v->sequence+1 != vb->sequence)){ |
v->granulepos=-1; /* out of sequence; lose count */ |
b->sample_count=-1; |
} |
v->sequence=vb->sequence; |
if(vb->pcm){ /* no pcm to process if vorbis_synthesis_trackonly |
was called on block */ |
int n=ci->blocksizes[v->W]>>(hs+1); |
int n0=ci->blocksizes[0]>>(hs+1); |
int n1=ci->blocksizes[1]>>(hs+1); |
int thisCenter; |
int prevCenter; |
v->glue_bits+=vb->glue_bits; |
v->time_bits+=vb->time_bits; |
v->floor_bits+=vb->floor_bits; |
v->res_bits+=vb->res_bits; |
if(v->centerW){ |
thisCenter=n1; |
prevCenter=0; |
}else{ |
thisCenter=0; |
prevCenter=n1; |
} |
/* v->pcm is now used like a two-stage double buffer. We don't want |
to have to constantly shift *or* adjust memory usage. Don't |
accept a new block until the old is shifted out */ |
for(j=0;j<vi->channels;j++){ |
/* the overlap/add section */ |
if(v->lW){ |
if(v->W){ |
/* large/large */ |
const float *w=_vorbis_window_get(b->window[1]-hs); |
float *pcm=v->pcm[j]+prevCenter; |
float *p=vb->pcm[j]; |
for(i=0;i<n1;i++) |
pcm[i]=pcm[i]*w[n1-i-1] + p[i]*w[i]; |
}else{ |
/* large/small */ |
const float *w=_vorbis_window_get(b->window[0]-hs); |
float *pcm=v->pcm[j]+prevCenter+n1/2-n0/2; |
float *p=vb->pcm[j]; |
for(i=0;i<n0;i++) |
pcm[i]=pcm[i]*w[n0-i-1] +p[i]*w[i]; |
} |
}else{ |
if(v->W){ |
/* small/large */ |
const float *w=_vorbis_window_get(b->window[0]-hs); |
float *pcm=v->pcm[j]+prevCenter; |
float *p=vb->pcm[j]+n1/2-n0/2; |
for(i=0;i<n0;i++) |
pcm[i]=pcm[i]*w[n0-i-1] +p[i]*w[i]; |
for(;i<n1/2+n0/2;i++) |
pcm[i]=p[i]; |
}else{ |
/* small/small */ |
const float *w=_vorbis_window_get(b->window[0]-hs); |
float *pcm=v->pcm[j]+prevCenter; |
float *p=vb->pcm[j]; |
for(i=0;i<n0;i++) |
pcm[i]=pcm[i]*w[n0-i-1] +p[i]*w[i]; |
} |
} |
/* the copy section */ |
{ |
float *pcm=v->pcm[j]+thisCenter; |
float *p=vb->pcm[j]+n; |
for(i=0;i<n;i++) |
pcm[i]=p[i]; |
} |
} |
if(v->centerW) |
v->centerW=0; |
else |
v->centerW=n1; |
/* deal with initial packet state; we do this using the explicit |
pcm_returned==-1 flag otherwise we're sensitive to first block |
being short or long */ |
if(v->pcm_returned==-1){ |
v->pcm_returned=thisCenter; |
v->pcm_current=thisCenter; |
}else{ |
v->pcm_returned=prevCenter; |
v->pcm_current=prevCenter+ |
((ci->blocksizes[v->lW]/4+ |
ci->blocksizes[v->W]/4)>>hs); |
} |
} |
/* track the frame number... This is for convenience, but also |
making sure our last packet doesn't end with added padding. If |
the last packet is partial, the number of samples we'll have to |
return will be past the vb->granulepos. |
This is not foolproof! It will be confused if we begin |
decoding at the last page after a seek or hole. In that case, |
we don't have a starting point to judge where the last frame |
is. For this reason, vorbisfile will always try to make sure |
it reads the last two marked pages in proper sequence */ |
if(b->sample_count==-1){ |
b->sample_count=0; |
}else{ |
b->sample_count+=ci->blocksizes[v->lW]/4+ci->blocksizes[v->W]/4; |
} |
if(v->granulepos==-1){ |
if(vb->granulepos!=-1){ /* only set if we have a position to set to */ |
v->granulepos=vb->granulepos; |
/* is this a short page? */ |
if(b->sample_count>v->granulepos){ |
/* corner case; if this is both the first and last audio page, |
then spec says the end is cut, not beginning */ |
long extra=b->sample_count-vb->granulepos; |
/* we use ogg_int64_t for granule positions because a |
uint64 isn't universally available. Unfortunately, |
that means granposes can be 'negative' and result in |
extra being negative */ |
if(extra<0) |
extra=0; |
if(vb->eofflag){ |
/* trim the end */ |
/* no preceding granulepos; assume we started at zero (we'd |
have to in a short single-page stream) */ |
/* granulepos could be -1 due to a seek, but that would result |
in a long count, not short count */ |
/* Guard against corrupt/malicious frames that set EOP and |
a backdated granpos; don't rewind more samples than we |
actually have */ |
if(extra > (v->pcm_current - v->pcm_returned)<<hs) |
extra = (v->pcm_current - v->pcm_returned)<<hs; |
v->pcm_current-=extra>>hs; |
}else{ |
/* trim the beginning */ |
v->pcm_returned+=extra>>hs; |
if(v->pcm_returned>v->pcm_current) |
v->pcm_returned=v->pcm_current; |
} |
} |
} |
}else{ |
v->granulepos+=ci->blocksizes[v->lW]/4+ci->blocksizes[v->W]/4; |
if(vb->granulepos!=-1 && v->granulepos!=vb->granulepos){ |
if(v->granulepos>vb->granulepos){ |
long extra=v->granulepos-vb->granulepos; |
if(extra) |
if(vb->eofflag){ |
/* partial last frame. Strip the extra samples off */ |
/* Guard against corrupt/malicious frames that set EOP and |
a backdated granpos; don't rewind more samples than we |
actually have */ |
if(extra > (v->pcm_current - v->pcm_returned)<<hs) |
extra = (v->pcm_current - v->pcm_returned)<<hs; |
/* we use ogg_int64_t for granule positions because a |
uint64 isn't universally available. Unfortunately, |
that means granposes can be 'negative' and result in |
extra being negative */ |
if(extra<0) |
extra=0; |
v->pcm_current-=extra>>hs; |
} /* else {Shouldn't happen *unless* the bitstream is out of |
spec. Either way, believe the bitstream } */ |
} /* else {Shouldn't happen *unless* the bitstream is out of |
spec. Either way, believe the bitstream } */ |
v->granulepos=vb->granulepos; |
} |
} |
/* Update, cleanup */ |
if(vb->eofflag)v->eofflag=1; |
return(0); |
} |
/* pcm==NULL indicates we just want the pending samples, no more */ |
int vorbis_synthesis_pcmout(vorbis_dsp_state *v,float ***pcm){ |
vorbis_info *vi=v->vi; |
if(v->pcm_returned>-1 && v->pcm_returned<v->pcm_current){ |
if(pcm){ |
int i; |
for(i=0;i<vi->channels;i++) |
v->pcmret[i]=v->pcm[i]+v->pcm_returned; |
*pcm=v->pcmret; |
} |
return(v->pcm_current-v->pcm_returned); |
} |
return(0); |
} |
int vorbis_synthesis_read(vorbis_dsp_state *v,int n){ |
if(n && v->pcm_returned+n>v->pcm_current)return(OV_EINVAL); |
v->pcm_returned+=n; |
return(0); |
} |
/* intended for use with a specific vorbisfile feature; we want access |
to the [usually synthetic/postextrapolated] buffer and lapping at |
the end of a decode cycle, specifically, a half-short-block worth. |
This funtion works like pcmout above, except it will also expose |
this implicit buffer data not normally decoded. */ |
int vorbis_synthesis_lapout(vorbis_dsp_state *v,float ***pcm){ |
vorbis_info *vi=v->vi; |
codec_setup_info *ci=vi->codec_setup; |
int hs=ci->halfrate_flag; |
int n=ci->blocksizes[v->W]>>(hs+1); |
int n0=ci->blocksizes[0]>>(hs+1); |
int n1=ci->blocksizes[1]>>(hs+1); |
int i,j; |
if(v->pcm_returned<0)return 0; |
/* our returned data ends at pcm_returned; because the synthesis pcm |
buffer is a two-fragment ring, that means our data block may be |
fragmented by buffering, wrapping or a short block not filling |
out a buffer. To simplify things, we unfragment if it's at all |
possibly needed. Otherwise, we'd need to call lapout more than |
once as well as hold additional dsp state. Opt for |
simplicity. */ |
/* centerW was advanced by blockin; it would be the center of the |
*next* block */ |
if(v->centerW==n1){ |
/* the data buffer wraps; swap the halves */ |
/* slow, sure, small */ |
for(j=0;j<vi->channels;j++){ |
float *p=v->pcm[j]; |
for(i=0;i<n1;i++){ |
float temp=p[i]; |
p[i]=p[i+n1]; |
p[i+n1]=temp; |
} |
} |
v->pcm_current-=n1; |
v->pcm_returned-=n1; |
v->centerW=0; |
} |
/* solidify buffer into contiguous space */ |
if((v->lW^v->W)==1){ |
/* long/short or short/long */ |
for(j=0;j<vi->channels;j++){ |
float *s=v->pcm[j]; |
float *d=v->pcm[j]+(n1-n0)/2; |
for(i=(n1+n0)/2-1;i>=0;--i) |
d[i]=s[i]; |
} |
v->pcm_returned+=(n1-n0)/2; |
v->pcm_current+=(n1-n0)/2; |
}else{ |
if(v->lW==0){ |
/* short/short */ |
for(j=0;j<vi->channels;j++){ |
float *s=v->pcm[j]; |
float *d=v->pcm[j]+n1-n0; |
for(i=n0-1;i>=0;--i) |
d[i]=s[i]; |
} |
v->pcm_returned+=n1-n0; |
v->pcm_current+=n1-n0; |
} |
} |
if(pcm){ |
int i; |
for(i=0;i<vi->channels;i++) |
v->pcmret[i]=v->pcm[i]+v->pcm_returned; |
*pcm=v->pcmret; |
} |
return(n1+n-v->pcm_returned); |
} |
const float *vorbis_window(vorbis_dsp_state *v,int W){ |
vorbis_info *vi=v->vi; |
codec_setup_info *ci=vi->codec_setup; |
int hs=ci->halfrate_flag; |
private_state *b=v->backend_state; |
if(b->window[W]-1<0)return NULL; |
return _vorbis_window_get(b->window[W]-hs); |
} |
/contrib/sdk/sources/libvorbis-1.3.7/lib/books/coupled/res_books_51.h |
---|
0,0 → 1,12273 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2010 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
* |
* function: static codebooks for 5.1 surround |
* |
********************************************************************/ |
static const long _vq_quantlist__44p0_l0_0[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44p0_l0_0[] = { |
1, 3, 4, 7, 7, 8, 8, 9, 9, 9,10,10,10, 5, 6, 5, |
8, 7, 9, 8, 9, 9,10, 9,11,10, 5, 5, 7, 7, 8, 8, |
9, 9, 9, 9,10,10,11, 8, 9, 8,10, 9,10, 9,10, 9, |
11,10,11,10, 8, 8, 9, 9,10, 9,10, 9,11,10,11,10, |
11,10,11,11,11,11,11,11,11,11,11,11,11,11,10,11, |
11,11,12,11,11,11,11,11,11,10,12,12,12,12,12,12, |
12,11,12,12,12,11,11,11,12,12,12,12,12,12,12,11, |
12,11,12,11,11,13,12,12,12,13,12,12,12,12,11,12, |
11,11,13,13,13,12,12,12,12,12,12,11,11,11,10,13, |
13,13,12,13,12,13,11,13,10,12,11,11,13,13,12,13, |
12,12,12,12,11,12,11,11,11, |
}; |
static const static_codebook _44p0_l0_0 = { |
2, 169, |
(char *)_vq_lengthlist__44p0_l0_0, |
1, -526516224, 1616117760, 4, 0, |
(long *)_vq_quantlist__44p0_l0_0, |
0 |
}; |
static const long _vq_quantlist__44p0_l0_1[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44p0_l0_1[] = { |
1, 4, 4, 6, 6, 5, 5, 5, 7, 5, 5, 5, 5, 6, 7, 7, |
6, 7, 7, 7, 6, 7, 7, 7, 7, |
}; |
static const static_codebook _44p0_l0_1 = { |
2, 25, |
(char *)_vq_lengthlist__44p0_l0_1, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44p0_l0_1, |
0 |
}; |
static const long _vq_quantlist__44p0_l1_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p0_l1_0[] = { |
1, 4, 4, 4, 4, 4, 4, 4, 4, |
}; |
static const static_codebook _44p0_l1_0 = { |
2, 9, |
(char *)_vq_lengthlist__44p0_l1_0, |
1, -516716544, 1630767104, 2, 0, |
(long *)_vq_quantlist__44p0_l1_0, |
0 |
}; |
static const char _huff_lengthlist__44p0_lfe[] = { |
1, 3, 2, 3, |
}; |
static const static_codebook _huff_book__44p0_lfe = { |
2, 4, |
(char *)_huff_lengthlist__44p0_lfe, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist__44p0_long[] = { |
2, 3, 6, 7,10,14,16, 3, 2, 5, 7,11,14,17, 6, 5, |
5, 7,10,12,14, 7, 7, 6, 6, 7, 9,13,10,11, 9, 6, |
6, 9,11,15,15,13,10, 9,10,12,18,18,16,14,12,13, |
16, |
}; |
static const static_codebook _huff_book__44p0_long = { |
2, 49, |
(char *)_huff_lengthlist__44p0_long, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const long _vq_quantlist__44p0_p1_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p0_p1_0[] = { |
1, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, |
}; |
static const static_codebook _44p0_p1_0 = { |
5, 243, |
(char *)_vq_lengthlist__44p0_p1_0, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__44p0_p1_0, |
0 |
}; |
static const long _vq_quantlist__44p0_p2_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p0_p2_0[] = { |
1, 5, 5, 0, 7, 7, 0, 8, 8, 0, 9, 9, 0,12,12, 0, |
8, 8, 0, 9, 9, 0,12,12, 0, 8, 8, 0, 6, 6, 0,11, |
11, 0,12,12, 0,12,12, 0,15,15, 0,11,11, 0,12,12, |
0,15,15, 0,12,12, 0, 5, 5, 0, 5, 5, 0, 6, 6, 0, |
7, 7, 0,11,11, 0, 6, 6, 0, 7, 7, 0,10,11, 0, 6, |
6, 0, 7, 7, 0,11,11, 0,12,12, 0,11,11, 0,15,15, |
0,10,10, 0,12,12, 0,15,15, 0,12,12, 0, 6, 6, 0, |
12,12, 0,12,12, 0,12,12, 0,15,15, 0,11,11, 0,12, |
12, 0,15,15, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 8, 8, 0,12,12, 0,12,12, 0,12,12, 0,15, |
15, 0,12,12, 0,11,12, 0,15,16, 0,11,11, 0, 6, 6, |
0,11,12, 0,12,12, 0,12,12, 0,16,15, 0,12,12, 0, |
13,12, 0,15,14, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, |
}; |
static const static_codebook _44p0_p2_0 = { |
5, 243, |
(char *)_vq_lengthlist__44p0_p2_0, |
1, -533200896, 1614282752, 2, 0, |
(long *)_vq_quantlist__44p0_p2_0, |
0 |
}; |
static const long _vq_quantlist__44p0_p2_1[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p0_p2_1[] = { |
1, 3, 3, 0, 9, 9, 0, 9, 9, 0,10,10, 0, 9, 9, 0, |
10,10, 0,10,10, 0, 9, 9, 0,10,10, 0, 7, 7, 0, 7, |
7, 0, 6, 6, 0, 8, 8, 0, 7, 7, 0, 8, 8, 0, 8, 9, |
0, 8, 8, 0, 8, 8, 0, 7, 7, 0, 9, 9, 0, 8, 8, 0, |
10,10, 0, 9, 9, 0,10,10, 0,10,10, 0, 9, 9, 0,10, |
10, 0, 9, 9, 0,11,11, 0,11,11, 0,12,12, 0,11,11, |
0,12,12, 0,13,13, 0,12,12, 0,13,12, 0, 8, 8, 0, |
12,12, 0,12,12, 0,13,13, 0,12,12, 0,13,13, 0,13, |
13, 0,13,13, 0,13,13, 0, 7, 7, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 9, 9, 0,11,11, 0,12,12, 0,13,13, 0,12, |
12, 0,13,13, 0,13,13, 0,12,12, 0,12,12, 0, 8, 8, |
0,12,12, 0,12,12, 0,13,13, 0,13,13, 0,13,14, 0, |
14,13, 0,13,13, 0,13,13, 0, 7, 7, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, |
}; |
static const static_codebook _44p0_p2_1 = { |
5, 243, |
(char *)_vq_lengthlist__44p0_p2_1, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__44p0_p2_1, |
0 |
}; |
static const long _vq_quantlist__44p0_p3_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p0_p3_0[] = { |
1, 6, 6, 7, 8, 8, 7, 8, 8, 7, 9, 9,10,12,11, 9, |
8, 8, 7, 9, 9,11,12,12, 9, 9, 9, 6, 7, 7,10,11, |
11,10,11,11,10,11,11,13,13,14,12,12,12,11,11,11, |
14,14,14,12,12,12, 6, 5, 5, 9, 6, 5, 9, 6, 6, 9, |
7, 7,12,10,10,11, 6, 6,10, 7, 7,13,10,10,12, 7, |
7, 7, 8, 8,12,10,10,12,10,10,11,10,10,15,13,13, |
13, 9, 9,12,11,11,16,13,13,15,11,11, 8, 7, 7,12, |
12,12,12,11,11,12,11,11,14,14,14,14,12,12,12,12, |
12,16,15,15,14,12,12, 0,10,10, 0,12,12, 0,12,12, |
0,11,11, 0,14,14, 0,11,11, 0,12,12, 0,15,15, 0, |
11,11, 8, 8, 8,13,11,11,13,10,10,13,11,11,15,13, |
13,14,11,11,12,10,10,16,14,14,14,10,10, 9, 7, 7, |
13,11,11,13,11,11,12,11,11,16,14,14,14,12,12,13, |
12,12,15,14,14,15,13,12, 0,11,11, 0,12,12, 0,12, |
12, 0,12,12, 0,15,15, 0,12,12, 0,13,12, 0,14,15, |
0,12,12, |
}; |
static const static_codebook _44p0_p3_0 = { |
5, 243, |
(char *)_vq_lengthlist__44p0_p3_0, |
1, -531365888, 1616117760, 2, 0, |
(long *)_vq_quantlist__44p0_p3_0, |
0 |
}; |
static const long _vq_quantlist__44p0_p3_1[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44p0_p3_1[] = { |
2, 4, 4, 8, 8,10,12,12,11,11, 9,11,11,12,13,11, |
12,12,11,11,11,12,12,12,12,10,13,12,13,13,11,12, |
12,13,13,11,12,12,13,13,11,12,13,13,13,11,13,13, |
13,13,10,13,13,12,13,11,12,12,14,14,11,13,12,12, |
12,11,12,12,13,13,11,13,13,12,12,11,13,13,13,13, |
11,12,12,13,13,11,13,13,12,12,11,12,12,13,13,11, |
13,13,12,12,11,13,13,13,13,11,12,12,14,14,11,13, |
13,12,12,11,12,12,13,13,11,13,13,12,12,11,10,10, |
10,10,12,10,10,11,11,11, 8, 8,11,11,13,10,10,10, |
10,12,10,10,10,10,13,11,11,11,11,13,10,10,11,11, |
13,11,11,12,12,13,11,11,11,11,13,11,11,12,12,13, |
11,11,12,12,13,10,10,11,11,13,11,11,11,11,13,11, |
10,11,11,13,11,11,11,11,13,11,11,11,11,13,10,10, |
11,11,13,11,11,11,11,12,10,11,11,11,13,11,11,11, |
11,13,11,11,11,11,13,10,10,11,11,13,11,11,11,11, |
13,11,11,11,11,13,11,11,11,11,11,10,10,10,10,12, |
10,10, 9, 9,12,12,12,11,11,13,12,12, 9, 9,13,12, |
12,10,10,12,12,12,12,12,13,13,13,14,14,13,12,12, |
11,11,13,13,13,12,12,13,12,12,11,11,13,12,13,11, |
11,13,13,13,14,14,13,12,12,10,10,13,13,13,11,11, |
13,12,12,10,10,13,13,13,11,11,13,13,13,14,14,13, |
12,12,10,10,13,13,13,11,11,13,12,13,10,10,13,13, |
13,11,11,13,13,13,14,14,13,12,12,10,10,13,13,13, |
11,11,13,13,12,10,10,14,12,12, 8, 8,14,12,12, 9, |
9,14,11,11, 9, 9,14,12,12, 8, 8,14,11,11, 7, 7, |
14,13,13,10,10,15,12,12,10,10,15,13,13,10,10,15, |
12,12, 9, 9,15,13,13,10,10,15,13,13,10,10,15,12, |
12,10,10,15,13,13,10,10,14,12,12, 9, 9,14,13,13, |
9, 9,14,13,13, 9, 9,15,12,12, 9, 9,15,13,13, 9, |
9,14,12,12, 9, 9,14,13,13, 9, 9,14,13,13, 9, 9, |
15,12,12, 9, 9,14,13,13, 9, 9,14,12,12, 9, 9,14, |
13,13, 9, 9,13,12,12, 8, 8,13,13,13, 8, 8,14,13, |
13, 9, 9,13,13,13, 7, 7,14,13,13, 8, 8,14,14,14, |
10,10,14,14,14,11,11,14,14,14, 9, 9,14,14,14,10, |
10,14,14,14, 9, 9,14,14,14,10, 9,15,14,14,11,11, |
14,14,14, 9, 9,14,14,14,10,10,14,14,14, 9, 9,14, |
14,14, 9, 9,15,14,14,11,11,14,14,14, 8, 8,14,14, |
14, 9, 9,14,14,14, 8, 8,14,14,14, 9, 9,15,14,14, |
11,11,14,14,14, 8, 8,14,14,14, 9, 9,14,14,14, 8, |
8,12,12,12,13,13,16,15,15,11,11,16,15,16,12,12, |
17,16,16,11,11,17,15,15,12,11,16,16,16,12,13,16, |
15,15,13,13,16,16,16,12,12,16,16,15,13,13,16,16, |
16,12,12,16,16,16,13,13,17,16,16,14,14,17,17,16, |
12,12,17,16,16,13,13,17,17,16,12,13,16,16,17,13, |
12,17,16,16,14,13,17,16,16,12,12,17,16,16,12,12, |
17,16,17,12,12,17,17,17,13,13,16,16,16,13,14,17, |
17,16,12,12,16,16,16,13,13,17,17,17,12,12,13,14, |
14,10,10,16,14,14,12,12,16,15,15,14,14,16,14,14, |
12,12,15,14,14,13,13,17,15,15,14,13,16,16,15,15, |
15,16,15,15,14,14,16,15,15,14,14,17,15,15,14,14, |
16,15,15,14,14,16,16,15,15,15,17,15,15,13,13,16, |
15,15,14,14,17,15,15,13,13,17,15,15,14,14,16,15, |
15,15,15,16,14,14,13,13,16,15,15,14,14,16,14,14, |
13,13,17,15,15,14,14,16,16,15,15,15,17,14,14,13, |
13,16,15,15,14,14,17,14,14,13,13,13,11,11,10,10, |
16,14,14,13,13,15,14,14,13,13,16,14,14,12,12,16, |
14,14,12,12,15,15,15,14,14,16,14,14,14,14,16,15, |
14,14,14,16,14,14,14,14,16,15,15,14,13,16,15,15, |
14,14,16,14,14,14,14,17,15,15,14,14,16,14,14,14, |
14,16,15,15,13,14,16,15,15,14,14,16,14,14,14,14, |
16,15,15,13,13,16,14,14,13,13,16,15,15,13,13,16, |
15,15,14,14,16,14,14,14,14,17,15,15,13,13,16,15, |
14,13,13,17,15,15,13,13,14,14,14, 9, 9,14,14,14, |
17,17,14,15,15,18,18,14,14,14,18,19,14,14,14,18, |
18,15,15,15,19,18,15,16,15,18,20,15,15,15,18,19, |
15,15,15,19,19,15,15,15,18,20,15,15,15,18,19,15, |
15,16,20,18,15,15,15,18,18,15,15,15,19,19,15,15, |
15,18,19,15,15,15,18,19,15,15,15,19,19,14,15,14, |
19,19,15,15,15,20,19,15,14,14,19,18,14,15,15,18, |
19,15,15,16,20,20,14,14,14,18,19,15,15,15,19,18, |
14,14,14,18,18,14,12,12, 9, 9,13,14,14,18,18,14, |
13,13,18,19,14,14,14,18,18,14,14,14,18,18,15,15, |
15,19,19,15,14,14,19,18,14,15,15,19,18,15,14,14, |
18,18,15,15,15,19,18,14,15,15,19,19,15,14,14,19, |
18,14,15,15,19,18,15,14,14,19,18,14,15,15,19,18, |
15,15,15,21,18,15,14,14,19,18,14,15,15,18,19,14, |
15,14,20,19,14,15,15,18,19,14,15,15,19,19,15,14, |
14,19,20,14,15,15,18,18,14,14,14,19,19,14,15,15, |
19,18,12,12,12,13,13,16,15,15,11,11,16,15,15,12, |
12,16,16,16,11,11,16,15,15,11,11,16,16,16,13,13, |
17,16,16,13,13,17,17,17,12,12,16,16,16,13,13,17, |
16,17,13,12,15,16,16,12,12,16,15,15,13,13,17,16, |
16,12,12,16,16,15,12,12,16,16,16,12,12,17,17,16, |
13,12,16,16,16,13,13,17,16,16,12,12,17,16,16,12, |
12,17,17,16,12,12,16,17,16,12,12,17,15,15,13,13, |
17,16,16,12,12,16,16,16,12,12,16,16,16,12,12,13, |
13,13, 9, 9,15,14,14,13,13,16,15,14,14,14,16,14, |
14,13,13,15,14,14,13,13,17,15,15,14,14,16,15,15, |
15,15,16,15,15,14,14,16,15,15,15,15,17,15,15,14, |
14,16,15,15,14,14,16,15,15,15,15,17,14,15,14,14, |
16,15,15,14,14,17,15,15,13,14,17,15,15,14,14,16, |
15,15,15,15,17,14,14,13,13,16,15,15,14,14,17,14, |
14,13,13,17,15,15,14,14,16,15,16,15,15,17,14,14, |
13,13,16,15,15,14,14,18,14,14,13,13,13,11,11,11, |
11,15,14,14,12,12,15,14,14,13,13,16,14,14,12,12, |
16,13,14,12,12,16,15,15,13,13,16,14,14,14,14,16, |
15,15,13,13,16,14,14,13,13,16,14,15,13,13,15,15, |
15,13,13,16,14,14,14,13,16,14,14,13,13,16,14,14, |
13,13,16,15,15,13,13,16,15,15,13,13,16,14,14,14, |
14,16,15,15,12,12,16,14,14,13,13,16,15,15,12,12, |
16,15,15,13,13,16,14,14,14,14,17,15,14,12,12,16, |
14,14,13,13,16,15,15,12,12,14,14,14, 8, 8,14,14, |
14,17,18,14,15,15,17,18,14,14,14,17,18,14,14,14, |
18,18,14,15,15,18,18,14,16,15,19,19,15,15,15,18, |
19,15,16,15,20,19,15,15,15,18,18,14,15,15,18,19, |
15,16,16,20,19,15,15,15,19,17,14,15,15,20,18,14, |
15,15,18,18,14,15,15,18,19,14,15,15,19,20,14,14, |
14,18,18,14,15,15,18,19,14,14,14,18,19,14,15,15, |
19,18,15,16,16,20,21,14,14,15,19,19,14,15,15,19, |
19,14,14,14,19,18,13,12,12, 9, 9,13,14,14,18,19, |
14,14,14,18,19,14,14,14,18,18,14,14,14,18,18,14, |
15,15,19,19,15,14,14,19,18,15,15,15,19,19,15,14, |
14,19,20,14,15,15,18,19,14,15,15,20,18,15,14,14, |
18,18,14,15,15,18,18,14,14,14,19,19,14,15,15,18, |
18,14,15,15,19,18,15,14,14,19,19,14,15,15,19,18, |
15,14,14,19,18,14,14,15,18,19,14,15,15,19,18,15, |
14,14,18,19,14,15,14,19,20,14,14,14,19,19,14,15, |
15,19,19,12,12,12,13,13,16,16,16,11,11,16,16,16, |
12,12,17,16,16,11,11,17,15,15,11,11,16,16,16,13, |
13,17,15,16,13,13,16,16,16,12,12,17,16,16,13,13, |
17,17,16,12,12,17,17,16,13,13,17,16,16,13,13,17, |
17,17,12,12,17,16,16,13,13,17,17,17,12,12,16,16, |
16,12,12,17,15,15,13,13,17,16,16,11,11,17,16,16, |
12,12,16,16,16,11,11,16,17,16,12,12,17,16,16,13, |
13,17,17,16,12,12,17,17,16,12,12,17,16,16,11,11, |
13,14,14, 9, 9,16,14,14,13,13,16,14,15,14,14,16, |
14,14,12,12,16,14,14,13,13,17,15,15,14,14,16,15, |
15,15,15,17,15,15,14,14,16,15,15,14,14,17,15,15, |
14,14,16,15,15,14,14,16,15,15,15,16,17,14,15,14, |
14,16,15,15,14,14,17,15,15,14,14,16,15,15,14,14, |
16,15,15,15,15,17,14,14,13,13,16,15,15,14,14,16, |
14,14,13,13,17,15,15,14,14,16,16,15,15,15,17,14, |
14,13,13,16,15,15,14,14,17,14,14,13,13,13,11,11, |
10,10,16,14,14,12,12,15,13,13,13,12,16,14,14,11, |
11,16,14,14,11,11,16,14,15,13,14,16,14,14,13,13, |
16,15,15,13,13,16,14,14,13,13,16,15,15,13,13,16, |
15,15,13,13,17,14,14,14,14,17,15,15,13,13,16,14, |
15,13,13,16,15,15,13,13,16,15,15,13,13,16,14,14, |
13,13,17,15,15,12,12,16,14,14,12,12,16,15,15,12, |
12,16,15,15,13,13,16,14,14,13,13,17,15,15,12,12, |
17,14,14,12,12,16,15,15,12,12,13,14,14, 8, 8,13, |
14,14,18,18,13,15,15,17,18,14,14,14,18,19,14,14, |
14,19,18,14,15,15,19,18,15,15,16,21,18,15,15,15, |
19,19,14,16,16,19,19,14,15,15,18,19,14,15,15,19, |
20,14,16,16,19,18,15,15,15,18,19,14,15,15,19,18, |
15,15,15,18,18,15,15,15,20,18,15,16,16,20,19,14, |
15,14,18,19,14,15,16,19,20,14,15,15,19,18,15,15, |
15,19,18,15,16,16,20,19,15,14,14,18,18,14,15,15, |
19,19,14,15,15,18,18,13,12,12, 8, 8,13,14,14,19, |
18,14,13,13,20,18,14,14,14,19,18,14,13,13,18,19, |
14,15,15,20,19,15,14,14,19,19,14,15,15,19,18,15, |
14,14,20,20,15,15,15,19,18,14,15,15,19,18,15,14, |
14,19,18,14,15,15,20,19,14,14,14,20,19,14,15,15, |
19,18,15,15,15,18,18,15,14,14,18,18,14,15,15,19, |
19,14,14,14,19,19,14,15,15,19,19,15,15,15,19,18, |
15,14,14,20,19,15,15,15,19,19,14,14,14,20,19,14, |
15,15,20,20,12,12,12,13,13,17,16,16,11,11,16,16, |
15,12,12,17,16,16,11,11,17,15,15,11,11,17,17,17, |
13,13,17,16,16,13,13,17,17,17,12,12,17,16,16,13, |
13,17,17,16,12,13,16,17,16,13,13,17,16,15,13,13, |
17,16,16,12,12,17,16,16,12,13,17,16,17,12,12,17, |
17,17,12,12,17,16,15,13,13,17,16,16,12,12,17,16, |
16,12,12,17,16,16,11,11,16,16,16,12,12,17,15,15, |
13,13,17,16,15,11,11,16,16,16,12,12,17,16,16,11, |
11,13,14,14, 9, 9,16,14,14,13,13,16,14,15,14,14, |
16,14,14,12,12,16,14,14,13,13,17,15,15,14,15,16, |
15,15,15,15,17,15,15,14,14,16,15,15,15,14,16,15, |
15,14,14,16,15,15,14,14,16,15,16,15,15,17,15,14, |
14,14,16,15,15,14,14,17,15,15,13,13,16,15,15,14, |
14,16,16,16,15,15,17,14,14,13,13,16,15,15,14,14, |
18,14,15,13,13,16,15,15,14,14,16,16,15,15,15,16, |
14,14,13,13,16,15,15,14,14,17,14,15,13,13,13,11, |
11,10,10,15,14,14,12,12,15,14,14,13,13,16,14,14, |
12,12,16,13,14,12,12,16,14,15,14,13,16,14,14,14, |
14,16,15,15,13,13,16,14,14,13,13,16,15,15,13,13, |
15,15,15,13,13,16,14,14,14,14,17,15,15,13,13,16, |
14,14,13,13,16,15,15,13,13,16,15,15,13,13,16,14, |
14,13,13,17,15,15,12,12,16,14,14,12,12,16,14,15, |
12,12,16,15,15,13,13,16,14,14,13,13,17,15,15,12, |
12,16,14,14,12,12,16,15,15,12,12,14,14,14, 8, 8, |
14,14,14,17,17,14,15,15,18,18,14,14,14,18,17,14, |
14,14,18,18,14,15,15,18,20,15,16,15,19,18,15,15, |
15,19,18,15,15,16,19,18,15,15,15,18,18,14,15,15, |
18,18,15,16,16,18,19,15,15,15,18,18,15,15,15,19, |
20,15,15,15,18,18,15,15,15,18,18,15,16,16,19,19, |
15,14,15,19,19,15,15,15,19,20,14,14,15,18,18,15, |
15,15,19,19,15,16,16,19,19,15,15,14,18,19,15,15, |
15,20,20,15,15,14,18,18,13,12,12, 8, 8,13,14,14, |
18,18,14,14,14,18,18,14,14,14,18,20,14,14,14,18, |
18,14,15,15,19,18,15,14,14,18,19,15,15,15,18,19, |
15,14,14,18,19,15,15,15,18,18,14,15,14,18,19,15, |
14,14,21,19,15,15,15,19,18,14,14,14,19,18,14,15, |
15,19,18,15,15,15,20,19,15,14,14,20,18,14,15,15, |
18,19,14,14,14,19,18,14,15,15,18,19,15,15,15,18, |
19,15,14,14,19,19,15,15,15,19,19,14,14,14,19,20, |
14,15,15,18,19, |
}; |
static const static_codebook _44p0_p3_1 = { |
5, 3125, |
(char *)_vq_lengthlist__44p0_p3_1, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44p0_p3_1, |
0 |
}; |
static const long _vq_quantlist__44p0_p4_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44p0_p4_0[] = { |
2, 6, 6,14,14, 6, 8, 8,14,14, 7, 7, 7,14,14, 0, |
13,13,15,16, 0,13,13,15,15, 7, 8, 8,15,15, 9,10, |
10,16,16, 9, 8, 8,14,15, 0,13,13,17,17, 0,13,13, |
16,16, 8, 8, 8,15,15,12,11,11,16,16, 9, 8, 8,14, |
14, 0,13,13,17,17, 0,13,13,15,15, 0,14,14,16,16, |
0, 0, 0,18,19, 0,12,12,16,15, 0,16,16, 0,20, 0, |
14,14,16,16, 0,14,14,17,17, 0, 0, 0,19,19, 0,12, |
12,15,15, 0,18,17,21,21, 0,14,14,16,16, 5, 7, 7, |
12,13, 9,10, 9,14,14,11,10,10,14,14, 0, 0, 0,18, |
17, 0,20,21,18,18, 9,10,10,14,14,12,12,12,17,16, |
12,10,10,14,14, 0,20,20,18,17, 0,21,21,17,17,11, |
10,10,14,14,15,13,13,18,18,13,11,11,14,14, 0,20, |
0,18,18, 0,20,21,18,17, 0,21, 0,18,19, 0, 0, 0, |
0,21, 0,21,20,16,17, 0, 0, 0,21,21, 0, 0, 0,20, |
18, 0,20, 0,17,18, 0, 0, 0, 0, 0, 0, 0,20,16,17, |
0, 0, 0,20, 0, 0, 0, 0,18,18, 6, 6, 6,13,13, 8, |
5, 5,11,11, 9, 6, 6,13,13, 0, 9, 9,12,12, 0,10, |
10,14,14, 9, 7, 7,13,13,12, 9, 9,13,13,10, 6, 6, |
13,13, 0,10,10,14,14, 0,10,10,13,13, 9, 7, 7,13, |
13,13,10,10,13,13,11, 6, 6,13,13, 0,10,10,15,15, |
0,10,10,13,13, 0,12,11,15,15, 0,20,19,17,16, 0, |
9, 9,13,13, 0,13,13,20,19, 0,11,11,13,13, 0,11, |
11,15,15, 0,20,19,17,17, 0,10,10,13,13, 0,14,15, |
0,21, 0,12,12,13,13, 0,10,10,12,12, 0,11,11,15, |
15, 0,11,11,15,15, 0,15,15,20,20, 0,16,16, 0, 0, |
0,11,11,15,15, 0,14,14,17,17, 0,11,11,15,15, 0, |
15,15,20,21, 0,16,16,21,21, 0,12,12,15,15, 0,15, |
15,18,20, 0,11,11,16,15, 0,15,15,21,21, 0,16,16, |
0,21, 0,16,16, 0, 0, 0, 0, 0, 0, 0, 0,14,14,21, |
21, 0,17,18, 0, 0, 0,16,17,20, 0, 0,16,16, 0, 0, |
0, 0, 0, 0, 0, 0,15,15,20,20, 0,19,18, 0,21, 0, |
18,17, 0, 0, 0,10,10,11,11, 0,10,10,10,10, 0,11, |
11,12,12, 0,11,11, 9, 9, 0,13,13,12,12, 0,11,11, |
12,12, 0,13,13,12,12, 0,10,10,12,12, 0,12,12,13, |
13, 0,12,12,12,12, 0,11,11,12,12, 0,13,13,12,12, |
0,10,10,12,12, 0,13,13,13,13, 0,12,12,12,12, 0, |
14,13,13,13, 0,19,21,15,15, 0,12,11,12,12, 0,16, |
15,19,19, 0,13,13,11,11, 0,13,13,13,13, 0, 0,21, |
15,16, 0,12,12,12,12, 0,16,16,19,21, 0,13,13,12, |
12, 7, 7, 7,16,16,11, 9, 9,16,16,12, 9, 9,16,16, |
0,13,13,16,16, 0,14,14,17,16,11, 9, 9,16,16,14, |
12,11,17,17,13, 8, 9,15,15, 0,13,13,19,19, 0,13, |
13,16,15,12,10,10,17,17,15,12,12,19,18,14, 9, 9, |
17,16, 0,14,14,18, 0, 0,14,13,16,16, 0,14,15,18, |
17, 0,21, 0,19,21, 0,12,12,16,16, 0,16,16, 0, 0, |
0,14,14,16,16, 0,14,14,18,18, 0, 0,21,20, 0, 0, |
13,13,16,17, 0,18,18, 0, 0, 0,15,14,17,16, 8, 7, |
7,14,14,11,10,10,15,15,13,10,10,15,15, 0,21,20, |
19,19, 0,21, 0,17,18,11,10,10,15,16,14,12,12,18, |
18,14,11,11,15,14, 0,21,20,18,19, 0, 0,21,18,18, |
12,11,11,16,16,16,14,14,18,20,14,11,11,16,15, 0, |
20,20,19,19, 0, 0,20,18,18, 0,21, 0,18,19, 0, 0, |
0, 0, 0, 0,20,20,17,18, 0, 0, 0,20,20, 0, 0, 0, |
19,19, 0, 0, 0,20,18, 0, 0, 0, 0, 0, 0, 0,21,18, |
18, 0,21,21, 0,21, 0, 0, 0,19,20,11, 9, 9,14,14, |
13,10,10,14,14,13,11,11,15,15, 0,13,13,13,13, 0, |
14,14,16,16,13,11,11,15,15,16,12,12,15,15,14,10, |
10,14,14, 0,14,14,16,16, 0,14,14,15,15,13,10,10, |
15,15,17,13,14,15,16,15,10,10,15,15, 0,14,14,17, |
16, 0,14,14,15,15, 0,15,15,17,17, 0, 0,21,18,18, |
0,13,13,15,15, 0,16,16,21,20, 0,14,14,15,14, 0, |
15,14,16,17, 0, 0,20,20,19, 0,13,13,15,15, 0,19, |
18, 0, 0, 0,15,15,15,15, 0,11,11,14,14, 0,12,12, |
16,16, 0,12,12,16,16, 0,15,16,21,21, 0,16,17,21, |
0, 0,12,12,17,16, 0,14,14,18,19, 0,11,11,16,16, |
0,15,15,20,21, 0,16,16,21, 0, 0,12,12,17,16, 0, |
15,15,19,19, 0,12,12,16,17, 0,16,15, 0, 0, 0,16, |
16, 0, 0, 0,17,17, 0,21, 0, 0, 0, 0, 0, 0,14,15, |
20, 0, 0,17,17, 0, 0, 0,17,17, 0, 0, 0,17,16, 0, |
0, 0, 0, 0, 0, 0, 0,15,15, 0, 0, 0,18,18, 0, 0, |
0,18,17, 0, 0, 0,11,11,14,14, 0,12,12,15,15, 0, |
12,12,15,15, 0,13,13,14,14, 0,14,14,17,17, 0,12, |
12,16,16, 0,14,14,16,16, 0,11,11,15,15, 0,13,13, |
16,17, 0,13,13,16,16, 0,12,12,15,15, 0,14,14,17, |
16, 0,11,11,15,15, 0,14,14,17,17, 0,13,13,16,16, |
0,15,15,17,18, 0,21,20,20,21, 0,12,12,15,15, 0, |
16,16,20,21, 0,14,14,15,15, 0,14,14,17,17, 0, 0, |
0,18,19, 0,12,13,15,15, 0,18,17,21, 0, 0,14,15, |
15,15, 8, 8, 8,16,16,12,10,10,16,16,13, 9, 9,16, |
16, 0,14,14,18,17, 0,14,14,16,17,12,10,10,18,17, |
14,12,11,18,18,14, 9, 9,16,16, 0,13,13,18,18, 0, |
13,13,17,16,12, 9, 9,16,17,17,13,13,17,17,14, 9, |
9,15,15, 0,14,14,20,19, 0,13,13,16,16, 0,15,15, |
19,18, 0, 0, 0,20,19, 0,12,13,17,17, 0,16,16,20, |
0, 0,14,14,16,17, 0,14,14,19,18, 0, 0, 0,20,20, |
0,13,13,16,16, 0,18,17, 0, 0, 0,15,15,16,16, 9, |
7, 7,14,14,12,10,10,15,15,13,10,10,15,15, 0,21, |
0,18,19, 0,20,21,19,18,12,10,10,16,15,15,13,13, |
18,18,14,11,11,15,15, 0, 0, 0,19,18, 0, 0,21,18, |
18,13,11,11,15,15,16,14,14,17,19,15,11,11,15,15, |
0,21,21,20,18, 0, 0,21,18,18, 0, 0,21,21,19, 0, |
0, 0, 0, 0, 0,19,20,18,17, 0, 0, 0,21,21, 0,21, |
0,20,18, 0, 0,21,19,19, 0, 0, 0, 0, 0, 0,20,21, |
17,17, 0, 0, 0, 0, 0, 0,21, 0,18,20, 0,10,10,14, |
14, 0,11,11,15,15, 0,11,11,15,15, 0,14,14,15,15, |
0,15,15,16,16, 0,11,12,16,16, 0,13,13,16,16, 0, |
11,11,15,15, 0,14,14,17,17, 0,14,14,15,15, 0,11, |
11,16,15, 0,14,14,15,15, 0,11,11,15,15, 0,15,15, |
17,17, 0,14,14,15,15, 0,16,16,18,18, 0, 0, 0,20, |
19, 0,14,13,16,15, 0,17,17,21, 0, 0,15,15,15,15, |
0,16,15,17,16, 0,20, 0,20,18, 0,13,14,15,15, 0, |
19,18, 0,21, 0,15,15,15,15, 0,11,11,14,14, 0,12, |
12,16,16, 0,12,12,16,16, 0,16,15,20,21, 0,17,16, |
0, 0, 0,12,12,16,16, 0,14,14,18,18, 0,11,11,16, |
16, 0,15,15,21,20, 0,16,16, 0, 0, 0,12,12,16,17, |
0,15,14,19,19, 0,11,12,16,16, 0,15,15,21, 0, 0, |
16,16, 0, 0, 0,16,17, 0, 0, 0, 0, 0, 0, 0, 0,15, |
15,21, 0, 0,17,17, 0, 0, 0,17,17, 0, 0, 0,17,16, |
0, 0, 0, 0, 0, 0, 0, 0,15,15, 0,20, 0,19,20, 0, |
0, 0,17,17, 0, 0, 0,12,12,15,15, 0,12,12,15,15, |
0,12,12,16,16, 0,13,13,15,15, 0,15,15,17,17, 0, |
13,13,17,16, 0,14,14,17,17, 0,11,11,16,16, 0,14, |
14,17,17, 0,13,13,16,16, 0,12,12,16,16, 0,15,15, |
16,17, 0,11,11,15,16, 0,14,14,17,17, 0,13,14,16, |
16, 0,15,15,18,18, 0,21,20,20,19, 0,13,13,16,17, |
0,16,16, 0, 0, 0,14,14,16,16, 0,15,15,18,18, 0, |
0, 0,20,19, 0,13,13,16,16, 0,17,17, 0, 0, 0,14, |
14,16,16, 0,11,11,16,16, 0,13,13,18,17, 0,13,13, |
17,17, 0,16,16,17,17, 0,16,16,17,18, 0,12,12,17, |
17, 0,15,15,18,18, 0,12,12,16,16, 0,16,16,19,19, |
0,15,15,16,17, 0,12,12,17,17, 0,17,17,18,18, 0, |
12,12,17,17, 0,16,16,19,19, 0,15,16,17,17, 0,16, |
16,18,17, 0, 0, 0,21,21, 0,13,13,16,16, 0,17,17, |
0,20, 0,15,15,16,17, 0,16,16,19,18, 0, 0,21,20, |
21, 0,14,14,17,16, 0,20, 0, 0, 0, 0,15,16,16,17, |
0, 9, 9,14,14, 0,13,13,16,16, 0,14,14,15,15, 0, |
0,20,19,19, 0, 0, 0,19,19, 0,12,12,15,15, 0,15, |
16,19,18, 0,14,14,15,15, 0,21, 0,18,18, 0,20, 0, |
17,18, 0,13,13,16,16, 0,17,17,17,19, 0,14,14,16, |
15, 0,21,20,20,19, 0, 0, 0,19,19, 0, 0, 0,19,18, |
0, 0, 0, 0, 0, 0,20,20,17,18, 0, 0, 0,21,21, 0, |
0, 0,18,18, 0,21, 0,18,19, 0, 0, 0, 0, 0, 0,20, |
21,18,18, 0, 0, 0,20,21, 0, 0, 0,19,19, 0,18,18, |
15,15, 0,20,21,17,17, 0,19,21,17,17, 0, 0, 0,17, |
18, 0, 0, 0,20,19, 0,19,19,17,17, 0, 0, 0,18,18, |
0,19,20,16,17, 0, 0,21,20,20, 0,19,20,19,18, 0, |
19,20,16,16, 0, 0, 0,18,19, 0,19,20,17,17, 0, 0, |
21, 0,20, 0,21,21,17,19, 0,20, 0,19,20, 0, 0, 0, |
20, 0, 0,19,18,17,16, 0, 0, 0, 0, 0, 0, 0,20,17, |
17, 0,20,21,18,20, 0, 0, 0, 0,21, 0,19,20,17,17, |
0, 0, 0, 0, 0, 0,20,21,17,17, 0,11,11,14,14, 0, |
13,13,16,17, 0,13,13,16,16, 0,17,17, 0,21, 0,18, |
17,21, 0, 0,13,13,16,16, 0,15,15,18,18, 0,12,12, |
16,16, 0,17,16,21, 0, 0,17,17, 0, 0, 0,12,12,17, |
17, 0,17,17,19,21, 0,13,12,16,16, 0,17,17, 0, 0, |
0,17,17, 0, 0, 0,18,17, 0,21, 0, 0, 0, 0, 0, 0, |
15,15,20, 0, 0,20,18, 0, 0, 0,17,18, 0, 0, 0,16, |
17, 0, 0, 0, 0, 0, 0, 0, 0,15,15, 0, 0, 0,19,19, |
0, 0, 0,18,18, 0, 0, 0,14,14,18,18, 0,16,16, 0, |
21, 0,16,16,21,21, 0,17,17, 0,20, 0,17,17,20, 0, |
0,16,15, 0, 0, 0,20,20, 0, 0, 0,15,15,20,20, 0, |
17,17,21, 0, 0,17,18,20,20, 0,15,15,20,20, 0,18, |
18, 0, 0, 0,15,15,19,20, 0,17,18, 0, 0, 0,17,17, |
20,20, 0,18,17,21, 0, 0, 0, 0, 0,21, 0,15,15,20, |
20, 0,19,19, 0, 0, 0,17,17,21, 0, 0,17,17, 0, 0, |
0, 0, 0,21, 0, 0,15,15,19,19, 0,20,21, 0, 0, 0, |
18,17,21,21, 0,12,12,16,16, 0,14,14,17,17, 0,13, |
13,17,18, 0,16,16,18,17, 0,16,16,18,18, 0,13,13, |
18,18, 0,15,16,19,18, 0,13,13,16,16, 0,16,16,20, |
18, 0,16,16,17,17, 0,12,13,17,17, 0,17,16,18,18, |
0,12,12,16,16, 0,17,16,20,19, 0,16,16,16,16, 0, |
16,17,18,20, 0, 0, 0,21,20, 0,14,14,17,16, 0,19, |
18, 0,20, 0,16,16,17,16, 0,16,16,17,18, 0, 0,21, |
21,21, 0,14,14,16,16, 0,20,20,21, 0, 0,16,16,16, |
16, 0,10,10,14,14, 0,14,14,15,16, 0,14,14,15,15, |
0, 0,21,18,18, 0, 0,21,18,19, 0,13,13,16,16, 0, |
16,16,18,18, 0,14,14,15,15, 0,21, 0,18,18, 0,21, |
0,18,18, 0,13,13,16,16, 0,17,17,19,20, 0,14,14, |
15,15, 0, 0, 0,18,20, 0, 0,21,18,18, 0, 0,21,19, |
18, 0, 0, 0, 0, 0, 0,20,21,18,17, 0, 0, 0,21,21, |
0, 0, 0,19,19, 0,21, 0,18,19, 0, 0, 0, 0, 0, 0, |
21,20,17,17, 0, 0,21,20, 0, 0, 0, 0,19,19, 0,19, |
20,15,16, 0, 0,20,18,17, 0,20,21,17,18, 0,21, 0, |
18,18, 0, 0, 0,19,19, 0,20,20,17,18, 0, 0, 0,18, |
19, 0,20,20,18,17, 0, 0, 0, 0,20, 0, 0,21,17,18, |
0,20,21,17,17, 0, 0, 0,18,18, 0,19,19,17,17, 0, |
0, 0,21,21, 0,20,20,17,17, 0, 0, 0,21,19, 0, 0, |
0,20,19, 0,21,20,17,18, 0, 0, 0, 0, 0, 0, 0,20, |
18,17, 0,21,20,18,18, 0, 0, 0,20,21, 0,20,20,17, |
17, 0, 0, 0, 0, 0, 0,20, 0,17,17, 0,11,11,13,14, |
0,13,13,16,16, 0,13,13,16,16, 0,17,17, 0, 0, 0, |
17,18, 0, 0, 0,13,13,16,16, 0,15,16,18,18, 0,13, |
13,16,17, 0,16,17,20, 0, 0,17,18,20, 0, 0,13,13, |
17,17, 0,16,16,20,21, 0,13,13,16,16, 0,17,17,21, |
0, 0,17,18, 0, 0, 0,17,18, 0,21, 0, 0, 0, 0, 0, |
0,15,15,20, 0, 0,19,19, 0, 0, 0,17,17, 0, 0, 0, |
18,17,21,20, 0, 0, 0, 0, 0, 0,16,16,20,21, 0,21, |
20, 0,21, 0,19,21, 0, 0, 0,15,15, 0, 0, 0,16,17, |
0,19, 0,16,16, 0, 0, 0,17,17, 0, 0, 0,19,18, 0, |
0, 0,16,16,20,20, 0,20,18,21, 0, 0,15,15,21,21, |
0,18,18, 0, 0, 0,18,19, 0, 0, 0,16,15, 0,21, 0, |
20,19, 0, 0, 0,16,16, 0, 0, 0,20,18, 0,21, 0,17, |
18,21, 0, 0,18,19, 0, 0, 0, 0, 0, 0, 0, 0,16,16, |
20,20, 0,19,20, 0, 0, 0,17,17, 0, 0, 0,18,17,20, |
21, 0, 0, 0, 0, 0, 0,16,16, 0,20, 0,20,22, 0, 0, |
0,18,18, 0,22, |
}; |
static const static_codebook _44p0_p4_0 = { |
5, 3125, |
(char *)_vq_lengthlist__44p0_p4_0, |
1, -528744448, 1616642048, 3, 0, |
(long *)_vq_quantlist__44p0_p4_0, |
0 |
}; |
static const long _vq_quantlist__44p0_p4_1[] = { |
3, |
2, |
4, |
1, |
5, |
0, |
6, |
}; |
static const char _vq_lengthlist__44p0_p4_1[] = { |
2, 3, 3, 3, 3, 3, 3, |
}; |
static const static_codebook _44p0_p4_1 = { |
1, 7, |
(char *)_vq_lengthlist__44p0_p4_1, |
1, -533200896, 1611661312, 3, 0, |
(long *)_vq_quantlist__44p0_p4_1, |
0 |
}; |
static const long _vq_quantlist__44p0_p5_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p0_p5_0[] = { |
1, 6, 6, 6, 8, 8, 7, 8, 8, 7, 9, 8,10,11,11, 9, |
8, 8, 7, 8, 8,11,11,11, 9, 8, 8, 6, 7, 7,10,10, |
10,10,10,10,10,10,10,14,13,13,12,11,11,10,10,10, |
14,14,13,13,11,11, 6, 6, 6, 8, 5, 5, 8, 7, 7, 8, |
7, 7,11, 9, 9, 9, 7, 7, 8, 7, 7,12,10,10,10, 7, |
7, 7, 8, 8,12,11,11,12,10,10,11,10,10,14,13,13, |
13,10,10,11,10,11,16,14,14,13,10,10, 7, 8, 7,12, |
12,12,12,11,11,12,11,11,16,14,15,13,12,12,11,11, |
11,17,15,14,14,13,13,10, 9, 9,13,11,11,13,11,11, |
12,11,11,16,14,13,14,11,11,12,11,11,16,15,14,14, |
11,11, 7, 8, 8,12,11,11,12,10,10,12,10,10,16,14, |
13,13,11,11,12,10,10,16,14,14,13,10,10, 8, 8, 8, |
12,12,12,12,11,11,12,11,11,16,14,15,14,12,12,12, |
11,11,16,15,15,14,12,12,10,10,10,13,11,11,13,11, |
11,12,12,12,16,14,14,14,11,11,12,11,11,17,14,15, |
14,11,11, |
}; |
static const static_codebook _44p0_p5_0 = { |
5, 243, |
(char *)_vq_lengthlist__44p0_p5_0, |
1, -527106048, 1620377600, 2, 0, |
(long *)_vq_quantlist__44p0_p5_0, |
0 |
}; |
static const long _vq_quantlist__44p0_p5_1[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p0_p5_1[] = { |
2, 7, 7, 7, 8, 8, 7, 7, 7, 7, 8, 8, 8, 8, 9, 8, |
7, 7, 8, 8, 8, 9, 9, 9, 9, 7, 7, 6, 6, 6, 9, 7, |
7, 9, 7, 7, 9, 8, 8,10, 8, 8,10, 8, 8,10, 8, 8, |
10, 8, 8,10, 8, 8, 7, 6, 6, 9, 6, 6, 9, 6, 6, 9, |
7, 7,10, 8, 8, 9, 6, 6, 9, 7, 7,10, 8, 8, 9, 7, |
7, 7, 8, 8,11, 9, 9,11, 9, 9,11, 9, 9,12, 9, 9, |
12, 8, 8,12, 9, 9,12,10, 9,12, 8, 8, 8, 7, 7,10, |
9, 9,11, 9, 9,11, 9, 9,11,11,10,11, 9, 9,11,10, |
9,11,10,11,11, 9, 9,10, 8, 8,11, 9, 9,11, 9, 9, |
11, 9, 9,11,10,10,11, 9, 9,11, 9, 9,11,10,10,11, |
9, 9, 9, 8, 8,12, 9, 9,12, 9, 9,11, 9, 9,12, 9, |
9,12, 8, 8,12, 9, 9,12, 9, 9,12, 8, 8, 9, 7, 7, |
11, 9,10,11,10, 9,11, 9, 9,11,11,11,11, 9, 9,11, |
10,10,11,11,11,11, 9, 9,10, 9, 9,11, 9, 9,11,10, |
10,11,10, 9,11,10,10,11, 9, 9,11,10,10,11,10,11, |
11, 9, 9, |
}; |
static const static_codebook _44p0_p5_1 = { |
5, 243, |
(char *)_vq_lengthlist__44p0_p5_1, |
1, -530841600, 1616642048, 2, 0, |
(long *)_vq_quantlist__44p0_p5_1, |
0 |
}; |
static const long _vq_quantlist__44p0_p6_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p0_p6_0[] = { |
1, 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, 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, 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, 7, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, |
}; |
static const static_codebook _44p0_p6_0 = { |
5, 243, |
(char *)_vq_lengthlist__44p0_p6_0, |
1, -516716544, 1630767104, 2, 0, |
(long *)_vq_quantlist__44p0_p6_0, |
0 |
}; |
static const long _vq_quantlist__44p0_p6_1[] = { |
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 const char _vq_lengthlist__44p0_p6_1[] = { |
1, 3, 2, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9,10,10,11, |
11,12,12,12,14,14,14,15,15, |
}; |
static const static_codebook _44p0_p6_1 = { |
1, 25, |
(char *)_vq_lengthlist__44p0_p6_1, |
1, -518864896, 1620639744, 5, 0, |
(long *)_vq_quantlist__44p0_p6_1, |
0 |
}; |
static const long _vq_quantlist__44p0_p6_2[] = { |
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 const char _vq_lengthlist__44p0_p6_2[] = { |
3, 4, 4, 5, 4, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, |
5, 5, 5, 5, 5, 5, 5, 5, 5, |
}; |
static const static_codebook _44p0_p6_2 = { |
1, 25, |
(char *)_vq_lengthlist__44p0_p6_2, |
1, -529006592, 1611661312, 5, 0, |
(long *)_vq_quantlist__44p0_p6_2, |
0 |
}; |
static const char _huff_lengthlist__44p0_short[] = { |
3, 3, 7, 8,10,13,16, 3, 2, 5, 7, 9,13,16, 6, 4, |
4, 6,10,14,15, 7, 5, 5, 7,10,13,14, 9, 8, 9, 9, |
9,11,13,12,11,12, 9, 7, 8,11,14,12,10, 6, 5, 7, |
10, |
}; |
static const static_codebook _huff_book__44p0_short = { |
2, 49, |
(char *)_huff_lengthlist__44p0_short, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const long _vq_quantlist__44p1_l0_0[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44p1_l0_0[] = { |
1, 4, 4, 7, 7, 8, 8, 9, 9,10,10,11,11, 4, 6, 5, |
8, 6, 9, 8,10, 9,10,10,11,10, 5, 5, 6, 6, 8, 8, |
9, 9,10,10,10,10,11, 7, 8, 8, 9, 8,10, 9,10, 9, |
11,10,11,10, 7, 8, 8, 8,10, 9,10,10,10,10,11,10, |
11, 9,10,10,11,11,11,11,12,11,12,11,12,11, 9,10, |
10,11,11,11,11,11,11,11,12,11,12,11,11,11,12,12, |
12,12,12,12,12,12,12,11,11,12,11,12,12,12,12,12, |
12,12,12,11,12,12,12,12,12,13,12,13,12,12,12,12, |
12,12,12,12,12,13,13,13,13,12,13,12,12,12,12,12, |
13,13,12,13,12,13,12,13,12,12,12,12,13,13,13,13, |
13,13,12,12,12,12,12,11,12, |
}; |
static const static_codebook _44p1_l0_0 = { |
2, 169, |
(char *)_vq_lengthlist__44p1_l0_0, |
1, -526516224, 1616117760, 4, 0, |
(long *)_vq_quantlist__44p1_l0_0, |
0 |
}; |
static const long _vq_quantlist__44p1_l0_1[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44p1_l0_1[] = { |
1, 4, 4, 6, 6, 5, 5, 5, 6, 6, 5, 6, 5, 6, 6, 6, |
6, 7, 7, 7, 6, 7, 6, 7, 7, |
}; |
static const static_codebook _44p1_l0_1 = { |
2, 25, |
(char *)_vq_lengthlist__44p1_l0_1, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44p1_l0_1, |
0 |
}; |
static const long _vq_quantlist__44p1_l1_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p1_l1_0[] = { |
1, 4, 4, 4, 4, 4, 4, 4, 4, |
}; |
static const static_codebook _44p1_l1_0 = { |
2, 9, |
(char *)_vq_lengthlist__44p1_l1_0, |
1, -516716544, 1630767104, 2, 0, |
(long *)_vq_quantlist__44p1_l1_0, |
0 |
}; |
static const char _huff_lengthlist__44p1_lfe[] = { |
1, 3, 2, 3, |
}; |
static const static_codebook _huff_book__44p1_lfe = { |
2, 4, |
(char *)_huff_lengthlist__44p1_lfe, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist__44p1_long[] = { |
3, 3, 7, 7, 9,13,16, 3, 2, 4, 6,10,13,17, 7, 4, |
4, 6, 9,12,14, 7, 6, 6, 5, 7, 9,12,10,10, 9, 6, |
6, 9,12,14,14,13, 9, 8,10,11,18,18,15,13,11,10, |
11, |
}; |
static const static_codebook _huff_book__44p1_long = { |
2, 49, |
(char *)_huff_lengthlist__44p1_long, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const long _vq_quantlist__44p1_p1_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p1_p1_0[] = { |
1, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, |
}; |
static const static_codebook _44p1_p1_0 = { |
5, 243, |
(char *)_vq_lengthlist__44p1_p1_0, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__44p1_p1_0, |
0 |
}; |
static const long _vq_quantlist__44p1_p2_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p1_p2_0[] = { |
1, 4, 4, 0, 7, 7, 0, 8, 8, 0, 9, 9, 0,12,12, 0, |
8, 8, 0, 9, 9, 0,12,12, 0, 8, 8, 0, 6, 6, 0,11, |
11, 0,11,11, 0,12,12, 0,14,14, 0,11,11, 0,12,12, |
0,14,14, 0,11,11, 0, 6, 6, 0, 6, 5, 0, 7, 6, 0, |
7, 7, 0,10,10, 0, 6, 6, 0, 7, 7, 0,10,10, 0, 7, |
7, 0, 7, 7, 0,10,10, 0,11,11, 0,11,11, 0,14,14, |
0,10,10, 0,12,12, 0,14,14, 0,12,12, 0, 6, 6, 0, |
11,11, 0,11,11, 0,12,12, 0,14,14, 0,11,11, 0,12, |
12, 0,15,15, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 8, 8, 0,11,11, 0,11,11, 0,12,12, 0,15, |
15, 0,12,12, 0,11,11, 0,15,15, 0,11,11, 0, 6, 6, |
0,11,11, 0,12,12, 0,12,12, 0,15,15, 0,11,11, 0, |
12,12, 0,14,14, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, |
}; |
static const static_codebook _44p1_p2_0 = { |
5, 243, |
(char *)_vq_lengthlist__44p1_p2_0, |
1, -533200896, 1614282752, 2, 0, |
(long *)_vq_quantlist__44p1_p2_0, |
0 |
}; |
static const long _vq_quantlist__44p1_p2_1[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p1_p2_1[] = { |
1, 3, 3, 0, 8, 8, 0, 8, 8, 0,10,10, 0, 9, 9, 0, |
10,10, 0,10,10, 0, 9, 9, 0,10,10, 0, 7, 7, 0, 7, |
7, 0, 7, 7, 0, 8, 8, 0, 8, 8, 0, 8, 8, 0, 9, 9, |
0, 8, 8, 0, 8, 8, 0, 7, 7, 0, 8, 8, 0, 8, 8, 0, |
10,10, 0, 9, 9, 0, 9, 9, 0,10,10, 0, 9, 9, 0,10, |
10, 0, 8, 8, 0,11,11, 0,11,11, 0,12,12, 0,11,11, |
0,12,12, 0,12,12, 0,12,12, 0,12,12, 0, 8, 8, 0, |
11,11, 0,11,11, 0,13,12, 0,12,12, 0,13,12, 0,13, |
13, 0,12,12, 0,13,13, 0, 7, 7, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 8, 8, 0,11,11, 0,11,11, 0,13,12, 0,12, |
12, 0,12,12, 0,12,12, 0,11,11, 0,12,12, 0, 8, 8, |
0,12,12, 0,12,12, 0,13,13, 0,12,12, 0,13,13, 0, |
13,13, 0,12,13, 0,13,13, 0, 7, 7, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, |
}; |
static const static_codebook _44p1_p2_1 = { |
5, 243, |
(char *)_vq_lengthlist__44p1_p2_1, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__44p1_p2_1, |
0 |
}; |
static const long _vq_quantlist__44p1_p3_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p1_p3_0[] = { |
1, 6, 6, 6, 7, 7, 7, 8, 8, 7, 8, 8,10,11,11, 9, |
8, 8, 7, 9, 9,11,12,12, 9, 8, 8, 6, 7, 7, 9,11, |
11,10,11,11,10,11,11,13,13,13,11,12,12,10,11,11, |
13,14,14,12,12,12, 6, 6, 6, 8, 6, 6, 8, 6, 6, 9, |
7, 7,12,10,10,10, 6, 6, 9, 7, 7,12,10,10,11, 7, |
6, 7, 8, 8,12,10,10,12,10,10,11,10,10,15,13,13, |
13,10,10,12,11,11,15,13,13,14,11,11, 8, 7, 7,12, |
11,11,12,11,11,11,11,11,14,14,14,13,12,12,12,11, |
11,16,15,15,14,12,12, 0,10,10, 0,11,11, 0,12,12, |
0,11,11, 0,14,14, 0,11,11, 0,11,11, 0,15,15, 0, |
11,11, 7, 8, 8,13,10,10,12,10,10,12,11,11,15,13, |
13,14,11,11,12,10,10,16,14,14,14,10,10, 8, 7, 7, |
12,11,11,13,11,11,12,11,11,15,14,14,14,12,12,13, |
12,12,15,14,14,15,12,12, 0,11,11, 0,12,12, 0,12, |
12, 0,12,12, 0,15,15, 0,12,12, 0,12,12, 0,15,14, |
0,12,12, |
}; |
static const static_codebook _44p1_p3_0 = { |
5, 243, |
(char *)_vq_lengthlist__44p1_p3_0, |
1, -531365888, 1616117760, 2, 0, |
(long *)_vq_quantlist__44p1_p3_0, |
0 |
}; |
static const long _vq_quantlist__44p1_p3_1[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44p1_p3_1[] = { |
2, 3, 4, 7, 7,10,12,12,12,12,10,11,11,13,13,11, |
12,12,11,11,12,12,12,12,12,11,13,13,13,13,12,12, |
12,13,14,12,13,13,13,13,12,13,13,13,13,12,13,13, |
13,13,11,13,13,13,13,12,12,12,14,14,12,13,13,12, |
12,12,12,13,13,13,12,13,13,13,13,12,13,13,13,13, |
12,12,12,14,14,12,13,13,12,12,12,13,13,13,13,12, |
13,13,12,12,12,13,13,13,13,12,12,12,14,14,12,13, |
13,12,12,12,13,13,13,13,12,13,13,12,12,10,10,11, |
10,10,11,11,11,11,11,11, 9, 9,10,10,12,11,11,10, |
10,12,10,10,10,10,13,12,12,12,12,13,11,11,11,11, |
13,12,12,12,12,13,11,11,11,11,13,12,12,12,12,13, |
12,12,12,12,13,11,11,11,11,13,12,12,12,12,13,11, |
11,11,11,13,12,12,11,11,13,12,12,11,11,13,11,11, |
11,11,13,12,12,11,11,13,11,11,11,11,13,12,12,11, |
11,13,12,12,11,11,13,11,11,11,11,13,12,12,11,11, |
13,11,11,11,11,13,12,12,11,11,11,11,11,10,10,11, |
11,11, 9, 9,11,12,12,11,11,12,12,12, 9, 9,13,13, |
13,10,10,13,13,13,11,11,13,13,13,14,14,13,13,13, |
11,10,13,13,14,12,12,13,13,13,11,11,13,13,13,11, |
11,13,13,13,14,14,13,13,13,10,10,13,13,13,11,11, |
13,13,13,10,10,13,14,13,11,11,13,14,14,14,14,13, |
13,13,10,10,13,14,14,11,11,13,13,13,10,10,13,14, |
14,11,11,13,13,13,14,14,14,13,13,10,10,13,14,14, |
11,11,13,13,13,10,10,14,12,12, 9, 9,14,12,12, 9, |
9,14,11,11, 9, 9,14,12,12, 8, 8,14,11,11, 7, 7, |
15,13,13,10,10,15,12,12,10,10,15,13,13,10,10,15, |
12,12,10,10,15,13,13,10,10,15,13,13,10,10,15,12, |
12,10,10,15,13,13,10,10,15,12,12,10,10,15,13,13, |
10,10,15,13,13,10,10,15,12,12,10,10,15,13,13, 9, |
9,15,12,12, 9, 9,14,13,13, 9, 9,15,13,13,10,10, |
15,12,12,10,10,15,13,13, 9, 9,15,12,12, 9, 9,15, |
13,13, 9, 9,13,12,12, 9, 9,13,13,13, 8, 8,13,13, |
13, 9, 9,13,13,13, 7, 7,14,13,13, 8, 8,14,14,14, |
10,10,15,14,14,11,11,14,14,14, 9, 9,15,14,14,10, |
10,15,14,14, 9, 9,14,14,14,10,10,15,14,14,11,11, |
15,14,14, 9, 9,14,14,14,10,10,14,14,14, 9, 9,15, |
14,15,10,10,15,14,14,11,11,14,14,14, 9, 9,14,14, |
14, 9, 9,14,14,14, 8, 8,15,14,14,10,10,15,14,14, |
11,11,14,14,14, 9, 9,15,14,14, 9, 9,14,14,14, 8, |
8,12,12,12,13,13,16,16,16,11,11,17,16,16,12,12, |
17,16,16,11,11,17,16,16,11,11,17,17,16,13,13,17, |
16,16,13,13,18,17,16,12,12,17,16,16,13,13,17,16, |
17,12,12,18,17,17,13,13,17,16,16,14,14,18,17,17, |
12,12,18,16,16,13,13,17,17,17,13,12,17,17,17,13, |
13,17,16,16,13,13,18,17,17,12,12,17,16,16,13,12, |
17,17,17,12,12,18,17,17,13,13,18,16,16,14,14,18, |
17,17,12,12,17,17,17,13,13,18,17,18,12,12,13,14, |
14,10,10,16,14,14,13,13,17,15,15,14,14,17,14,14, |
12,13,16,14,14,13,13,17,15,15,14,14,16,16,16,15, |
15,17,15,15,14,14,17,16,16,14,15,17,15,15,14,14, |
17,15,16,14,14,17,16,16,15,15,17,15,15,13,13,17, |
15,15,14,14,18,15,15,13,14,17,15,15,14,14,16,16, |
16,15,15,17,15,15,13,13,17,15,15,14,14,17,15,15, |
13,13,17,15,15,14,14,16,16,16,15,15,17,15,15,13, |
13,17,15,15,14,14,18,15,15,13,13,13,11,11,10,10, |
16,14,14,13,12,16,14,14,13,13,16,15,14,12,12,16, |
14,14,12,12,16,15,15,14,14,16,14,14,14,14,17,15, |
15,13,13,16,15,15,14,14,17,15,15,13,14,17,15,15, |
14,14,17,15,14,14,14,17,15,15,13,13,17,15,15,14, |
14,17,15,15,13,13,17,15,15,14,14,17,14,14,14,14, |
17,15,15,13,13,17,15,15,13,13,17,15,15,13,13,17, |
15,15,14,14,17,15,15,14,14,17,15,15,13,13,17,15, |
15,13,13,17,15,15,13,13,14,14,15, 8, 8,14,14,14, |
19,19,14,15,15,18,19,14,14,14,19,18,14,14,14,19, |
19,15,15,15,19,18,15,16,16,19,19,15,15,15,19,19, |
15,16,16,20,19,15,15,15,19,19,15,15,15,19,19,16, |
16,16,20,19,15,15,15,19,18,15,16,16,20,19,15,15, |
15,18,18,15,15,15,19,20,15,16,16,19,19,15,15,15, |
20,19,15,15,15,20,19,15,15,15,19,18,15,15,15,19, |
19,15,16,16,19,20,15,15,15,19,19,15,15,15,19,20, |
15,15,15,19,19,14,12,12, 9, 9,14,14,14,19,19,14, |
14,14,19,19,14,14,15,20,19,15,14,14,18,19,15,15, |
15,19,19,15,15,14,20,19,15,15,15,20,19,15,15,14, |
20,19,15,15,15,20,19,15,15,15,19,20,15,14,14,19, |
20,15,15,15,20,20,15,14,14,20,19,15,15,15,19,19, |
15,15,15,19,19,15,14,14,19,19,15,15,15,19,20,15, |
15,15,20,20,15,15,15,19,19,15,15,15,20,19,16,14, |
14,19,19,15,15,15,20,19,15,14,15,20,19,14,15,15, |
20,19,12,12,12,13,13,16,16,16,11,11,16,16,16,12, |
12,17,16,16,11,11,17,15,16,11,11,17,17,17,13,13, |
18,16,17,13,13,18,17,17,13,12,17,16,17,13,13,17, |
17,17,13,13,16,16,16,12,12,17,16,16,13,13,17,16, |
16,12,12,17,16,16,12,13,17,17,17,12,12,17,17,17, |
13,13,18,16,16,13,13,18,17,17,12,12,18,17,17,12, |
12,17,17,17,12,12,17,17,17,12,12,17,16,16,13,13, |
17,17,17,12,12,17,16,16,12,12,17,17,17,12,12,13, |
14,14, 9, 9,16,14,14,13,13,16,15,15,14,14,17,14, |
14,13,13,16,14,14,13,13,17,15,15,15,15,16,16,16, |
15,15,17,15,15,14,14,17,15,15,15,15,17,15,15,14, |
14,17,15,15,14,14,16,16,16,15,15,17,15,15,14,14, |
17,15,15,14,14,17,15,15,14,14,17,15,15,14,14,16, |
16,16,15,15,18,15,15,14,13,17,15,15,14,14,17,15, |
15,13,13,17,15,15,14,14,16,16,16,15,15,17,15,15, |
14,13,17,15,15,14,14,17,15,15,13,13,13,11,11,11, |
11,16,14,14,12,12,16,14,14,13,13,16,15,14,12,12, |
17,14,14,12,12,17,15,15,13,13,17,14,14,14,14,17, |
15,15,13,13,17,14,15,14,13,17,15,15,13,13,16,15, |
15,13,13,16,14,14,14,14,17,15,15,13,13,16,14,14, |
13,13,16,15,15,13,13,17,15,15,13,13,17,14,14,14, |
14,17,15,15,12,12,17,15,15,13,13,17,15,15,12,12, |
16,15,15,13,13,17,14,14,13,14,17,15,15,12,12,17, |
14,14,13,13,17,15,15,12,12,14,14,14, 8, 8,14,14, |
14,18,18,14,15,15,19,19,14,14,14,19,19,14,15,14, |
18,19,15,15,15,18,19,15,16,16,20,20,15,15,15,19, |
20,15,16,16,19,20,15,15,15,19,20,15,15,16,19,19, |
15,16,16,20,20,15,15,15,20,19,15,16,16,20,19,15, |
15,15,19,20,15,15,15,19,19,15,16,16,20,19,15,15, |
15,19,19,15,16,15,20,19,15,15,15,19,19,15,15,15, |
19,20,15,16,16,20,20,15,15,15,19,19,15,15,15,20, |
20,15,15,15,19,19,14,12,12, 9, 9,14,14,14,18,18, |
14,14,14,19,20,14,14,14,18,18,14,14,14,18,19,15, |
15,15,19,20,15,14,14,19,19,15,15,15,19,19,15,14, |
15,19,19,15,15,15,18,20,15,15,15,19,19,15,14,14, |
19,19,15,15,15,20,19,15,15,14,20,20,15,15,15,19, |
19,15,15,15,19,19,15,14,14,19,19,15,15,15,19,19, |
15,14,14,19,20,14,15,15,19,19,15,15,15,19,19,15, |
14,14,20,19,15,15,15,19,19,15,14,14,20,19,15,15, |
15,19,19,13,12,12,13,13,17,17,16,11,11,16,16,16, |
12,12,17,17,16,11,11,17,16,16,11,11,17,17,17,13, |
13,17,16,16,13,13,18,17,17,12,12,17,16,16,13,13, |
18,17,17,12,12,18,17,17,13,13,18,16,17,13,13,17, |
17,17,12,12,18,17,17,13,13,18,17,17,12,12,17,16, |
17,12,12,17,16,16,13,13,17,16,16,11,11,17,16,16, |
12,12,17,17,17,11,11,17,17,17,12,12,18,16,16,13, |
13,18,17,17,12,11,17,16,16,12,12,18,17,17,11,11, |
13,14,14, 9, 9,16,14,14,13,13,16,15,15,14,14,17, |
14,14,12,12,16,14,14,13,13,17,15,15,14,14,17,16, |
16,15,16,18,15,15,14,14,17,15,15,14,14,17,15,15, |
14,14,18,15,15,14,14,16,16,16,15,16,18,15,15,14, |
14,17,16,15,14,14,18,15,15,14,14,17,15,15,14,14, |
17,16,16,15,15,18,14,15,13,13,17,15,15,14,14,18, |
15,15,13,13,17,15,15,14,14,17,16,15,15,15,17,15, |
15,13,13,17,15,15,14,14,18,15,15,13,13,13,11,11, |
10,10,16,14,14,12,12,16,14,14,12,12,17,14,15,11, |
11,17,14,14,11,11,17,15,15,13,13,17,14,14,14,13, |
17,15,15,13,13,16,15,15,13,13,17,15,15,13,13,17, |
15,15,13,13,17,14,14,14,14,17,15,15,13,13,17,14, |
15,13,13,16,15,15,13,13,17,15,15,13,13,17,14,14, |
13,13,17,15,15,12,12,16,14,14,12,12,17,15,15,12, |
12,17,15,15,13,13,17,14,14,13,13,17,15,15,12,12, |
17,14,14,12,12,17,15,15,12,12,13,15,14, 8, 8,14, |
14,14,19,19,14,15,15,18,19,14,14,14,18,19,14,15, |
14,19,19,15,16,15,19,19,15,16,16,19,20,15,15,15, |
19,19,15,16,16,19,19,15,16,16,19,19,15,15,15,19, |
19,15,16,16,20,20,15,15,15,19,19,15,15,15,19,19, |
15,15,15,19,19,15,15,15,19,19,15,16,16,20,19,15, |
15,15,19,19,15,15,15,19,19,15,15,15,19,19,15,16, |
15,19,19,15,16,16,21,19,15,15,15,20,20,15,15,15, |
20,21,15,15,15,19,20,14,12,12, 8, 8,14,14,14,19, |
19,14,13,13,19,19,14,14,14,19,19,14,13,14,19,19, |
15,15,15,20,20,15,14,14,20,19,15,15,15,19,20,15, |
14,14,19,20,15,15,15,20,19,15,15,15,19,20,15,14, |
14,20,20,15,15,15,20,19,15,14,14,19,19,15,15,15, |
19,19,15,15,15,20,19,15,14,14,21,19,15,15,15,20, |
21,15,14,14,21,19,15,15,15,19,19,15,15,15,20,20, |
15,14,14,19,21,15,15,15,19,19,15,14,14,19,20,15, |
15,15,19,19,13,12,12,13,13,17,16,16,11,11,17,16, |
15,12,12,18,16,16,11,11,17,16,16,11,11,18,17,17, |
13,13,18,16,16,13,13,17,17,17,12,13,18,17,16,13, |
13,18,17,17,13,13,17,17,17,13,13,17,16,16,13,13, |
18,16,17,12,12,17,16,16,13,12,17,17,17,12,12,18, |
17,17,13,12,18,16,16,13,13,18,17,17,12,12,17,16, |
16,12,12,17,17,17,11,11,17,16,16,12,12,17,16,16, |
13,13,17,16,16,11,11,17,16,16,12,12,17,17,17,11, |
11,13,14,14, 9, 9,16,14,14,13,13,16,15,15,14,14, |
17,14,14,12,12,16,14,14,13,13,17,15,15,14,14,17, |
15,16,15,15,17,15,15,14,14,17,15,16,14,15,18,15, |
15,14,14,17,15,15,14,14,16,16,16,15,15,18,15,15, |
13,14,17,15,15,14,14,18,15,15,14,14,17,15,15,14, |
14,17,16,16,15,15,17,15,15,13,13,17,15,15,14,14, |
18,15,15,13,13,17,15,15,14,14,17,16,16,15,15,17, |
15,15,13,13,17,15,15,14,14,18,15,15,13,13,13,11, |
11,10,10,16,14,14,12,12,16,14,14,13,13,17,14,14, |
11,11,17,14,14,12,12,17,15,15,14,14,17,14,14,14, |
14,17,15,15,13,13,17,15,14,13,13,16,15,15,13,13, |
16,15,15,13,13,17,14,14,14,14,17,15,15,13,13,17, |
14,14,13,13,16,15,15,13,13,16,15,15,13,13,17,14, |
14,13,13,17,15,15,12,12,17,14,14,12,12,16,15,15, |
12,12,17,15,15,13,13,17,14,14,13,13,17,15,15,12, |
12,17,14,14,12,12,16,15,15,12,12,14,14,14, 8, 8, |
14,14,14,18,18,14,15,15,19,18,14,14,14,18,18,14, |
14,14,18,19,15,16,15,19,19,15,17,16,20,20,15,15, |
15,19,19,15,16,16,19,19,15,15,15,19,19,15,16,15, |
18,19,15,16,16,20,20,15,15,15,19,19,15,16,16,19, |
20,15,15,15,19,19,15,15,16,19,19,15,16,16,20,20, |
15,15,15,19,19,15,15,15,19,20,15,15,15,19,19,15, |
15,15,19,19,15,16,16,20,20,15,15,15,19,20,15,16, |
16,20,20,15,15,15,19,19,13,12,12, 8, 8,14,14,14, |
19,20,14,14,14,19,19,14,14,14,18,19,14,14,14,19, |
20,15,15,15,19,20,15,14,14,21,20,15,15,15,20,20, |
15,15,14,19,19,15,15,15,19,19,15,15,15,19,19,15, |
14,14,19,20,15,15,15,19,20,15,14,14,19,19,15,15, |
15,19,19,15,15,15,19,19,16,14,14,19,19,15,15,15, |
20,20,15,14,14,21,19,15,15,15,19,19,15,15,15,19, |
20,16,14,14,19,20,15,15,15,19,19,15,14,14,19,19, |
15,15,15,20,19, |
}; |
static const static_codebook _44p1_p3_1 = { |
5, 3125, |
(char *)_vq_lengthlist__44p1_p3_1, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44p1_p3_1, |
0 |
}; |
static const long _vq_quantlist__44p1_p4_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44p1_p4_0[] = { |
2, 6, 6,14,14, 6, 7, 7,14,14, 7, 7, 7,14,14, 0, |
13,13,16,16, 0,13,13,15,14, 7, 8, 8,15,15, 9,10, |
10,16,16, 9, 8, 8,15,15, 0,13,13,17,16, 0,13,13, |
15,16, 8, 8, 8,15,15,12,11,11,16,16, 9, 8, 8,14, |
14, 0,13,13,17,18, 0,13,13,15,15, 0,14,14,16,16, |
0, 0, 0,19,18, 0,12,12,16,15, 0,15,16, 0,20, 0, |
14,14,16,16, 0,14,14,17,17, 0, 0, 0,19,18, 0,12, |
12,15,15, 0,17,17, 0,20, 0,14,14,16,16, 5, 6, 7, |
12,12, 9, 9, 9,14,14,10,10,10,14,14, 0,21,21,18, |
17, 0,20,20,18,17, 9,10,10,14,14,12,12,12,16,16, |
12,10,10,14,14, 0,20,19,18,17, 0, 0,20,17,18,11, |
10,10,14,14,14,13,13,18,18,13,11,11,14,14, 0,20, |
20,17,18, 0,21,21,17,17, 0,21, 0,18,18, 0, 0, 0, |
0, 0, 0,20,19,16,17, 0, 0, 0,19,19, 0, 0, 0,18, |
18, 0,21,21,18,18, 0, 0, 0, 0, 0, 0,20,20,16,17, |
0, 0, 0,21,21, 0, 0, 0,18,19, 6, 6, 6,13,12, 8, |
6, 6,11,11, 8, 6, 6,13,13, 0, 9, 9,11,11, 0,11, |
10,14,14, 9, 7, 7,13,13,11, 9, 9,13,13,10, 6, 6, |
13,13, 0,10,10,14,15, 0,10,10,13,13, 9, 7, 7,13, |
13,13,10, 9,13,13,10, 6, 6,13,13, 0,10,10,15,14, |
0,10,10,13,13, 0,11,11,15,15, 0,19,20,17,17, 0, |
9, 9,13,13, 0,13,13,20,20, 0,11,11,13,13, 0,11, |
11,15,15, 0,19,19,17,17, 0,10,10,13,13, 0,15,15, |
20,20, 0,12,12,13,13, 0,10,10,12,12, 0,11,11,15, |
15, 0,11,11,15,15, 0,15,15,20, 0, 0,16,16, 0,21, |
0,11,11,15,15, 0,14,14,18,17, 0,11,11,15,15, 0, |
15,16,19,20, 0,16,16,21,21, 0,12,12,15,15, 0,15, |
14,18,18, 0,11,11,16,16, 0,15,15,21,21, 0,16,15, |
0, 0, 0,16,16,21, 0, 0, 0, 0, 0, 0, 0,14,14,20, |
20, 0,18,18, 0, 0, 0,16,17,21, 0, 0,16,16,21,21, |
0, 0, 0, 0, 0, 0,15,15,21,21, 0,20,19, 0,21, 0, |
17,17, 0, 0, 0,10,10,12,11, 0,10,10,10,11, 0,11, |
11,12,12, 0,11,11, 9, 9, 0,13,13,11,12, 0,11,11, |
12,12, 0,13,13,12,12, 0,10,10,12,12, 0,12,12,13, |
13, 0,12,12,12,12, 0,11,11,12,12, 0,13,13,12,12, |
0,10,10,12,12, 0,13,13,14,14, 0,12,12,12,12, 0, |
14,14,14,13, 0,19,20,15,15, 0,12,11,12,12, 0,15, |
15,21,20, 0,13,13,11,11, 0,13,13,13,13, 0,19, 0, |
15,15, 0,12,12,12,12, 0,17,16,19, 0, 0,13,13,12, |
12, 7, 7, 7,16,16,11, 9, 9,15,15,12, 9, 9,16,16, |
0,13,13,15,14, 0,14,14,17,16,10, 9, 9,16,16,14, |
11,11,17,16,12, 9, 8,15,15, 0,13,13,18,18, 0,13, |
13,15,15,12,10,10,18,17,15,12,12,17,17,14, 9, 9, |
16,16, 0,13,13,18,19, 0,14,13,17,16, 0,14,14,18, |
18, 0, 0, 0,20,21, 0,12,12,16,16, 0,16,16,20,21, |
0,14,14,17,16, 0,14,14,18,19, 0, 0, 0,19,21, 0, |
13,13,17,17, 0,17,17, 0,21, 0,15,15,16,16, 8, 7, |
7,14,14,11,10,10,15,15,12,10,10,15,15, 0,20,20, |
18,18, 0, 0, 0,17,17,11,10,10,16,16,14,12,12,18, |
17,14,11,11,15,15, 0,20,21,18,18, 0, 0,19,18,17, |
12,10,10,16,16,17,14,14,19,19,14,11,11,15,15, 0, |
21,21,19,19, 0,21,20,19,18, 0,21, 0,18,19, 0, 0, |
0, 0, 0, 0,20,20,18,17, 0,21, 0, 0, 0, 0, 0, 0, |
19,18, 0, 0, 0,18,19, 0, 0, 0, 0, 0, 0, 0,21,17, |
18, 0, 0, 0, 0,21, 0, 0,21,18,19,11, 9, 9,14,14, |
13,10,10,13,13,13,11,11,15,15, 0,13,13,12,12, 0, |
15,15,16,16,13,10,10,15,15,16,12,12,15,15,15,10, |
10,15,15, 0,14,13,16,15, 0,14,13,15,15,13,10,10, |
15,15,18,14,14,15,15,15,10,10,14,15, 0,14,14,16, |
16, 0,14,14,16,15, 0,15,15,17,16, 0,21, 0,18,18, |
0,12,13,15,15, 0,16,16, 0, 0, 0,14,14,15,15, 0, |
15,15,16,16, 0,21,20,18,18, 0,13,13,15,15, 0,19, |
18, 0, 0, 0,15,15,15,15, 0,11,11,13,13, 0,12,12, |
16,16, 0,12,12,16,16, 0,15,16,20, 0, 0,16,17, 0, |
0, 0,12,12,16,16, 0,14,14,18,18, 0,11,11,16,17, |
0,15,15,20, 0, 0,16,16, 0, 0, 0,12,12,16,16, 0, |
15,15,19,19, 0,11,11,17,17, 0,16,16,21, 0, 0,16, |
16, 0, 0, 0,17,17,20,20, 0, 0, 0, 0, 0, 0,15,15, |
20, 0, 0,17,18, 0, 0, 0,17,17, 0, 0, 0,16,16, 0, |
21, 0, 0, 0, 0, 0, 0,15,15,21, 0, 0,19,18, 0, 0, |
0,18,17, 0, 0, 0,11,11,14,14, 0,11,11,15,15, 0, |
12,12,16,16, 0,13,13,14,14, 0,14,14,17,17, 0,12, |
12,16,16, 0,14,14,16,16, 0,11,11,16,15, 0,13,13, |
16,17, 0,13,13,16,16, 0,12,12,15,16, 0,15,14,16, |
16, 0,11,11,15,15, 0,14,14,17,17, 0,13,13,16,16, |
0,15,14,18,18, 0,21, 0,19,19, 0,13,13,15,15, 0, |
16,16,20,20, 0,14,14,16,15, 0,14,14,17,17, 0,21, |
0,20,18, 0,13,13,15,15, 0,17,17, 0, 0, 0,14,14, |
16,15, 8, 8, 8,16,16,12, 9, 9,16,16,13, 9, 9,16, |
16, 0,14,14,18,17, 0,14,14,16,17,12,10,10,18,17, |
14,11,11,18,18,14, 9, 9,16,16, 0,13,13,18,18, 0, |
13,13,17,16,12, 9, 9,16,17,17,13,13,16,16,14, 9, |
9,15,15, 0,14,14,20,20, 0,13,13,15,15, 0,15,14, |
18,18, 0, 0, 0,20,21, 0,12,13,16,17, 0,16,16,20, |
21, 0,14,14,16,17, 0,14,14,18,17, 0, 0, 0,20,21, |
0,13,13,16,16, 0,19,17, 0,21, 0,14,15,16,16, 8, |
7, 7,14,13,12,10,10,15,15,13,10,10,15,15, 0,21, |
21,18,19, 0,20,21,18,18,12,10,10,16,15,15,12,12, |
17,17,14,11,11,15,15, 0,21,21,19,18, 0, 0,21,17, |
18,13,11,11,15,15,16,13,13,18,19,15,11,11,15,14, |
0,21, 0,19,19, 0, 0,21,18,18, 0, 0,21,19,19, 0, |
0, 0, 0, 0, 0,20,19,17,17, 0, 0, 0,21, 0, 0,21, |
0,18,19, 0, 0,20,20,19, 0, 0, 0, 0, 0, 0,21,20, |
18,17, 0, 0, 0, 0,20, 0, 0, 0,18,19, 0,10,10,15, |
14, 0,11,11,14,14, 0,11,11,15,16, 0,14,14,15,15, |
0,15,15,16,16, 0,11,11,16,16, 0,14,13,16,16, 0, |
11,11,15,15, 0,14,14,16,16, 0,14,14,15,15, 0,11, |
11,15,15, 0,13,13,15,15, 0,11,11,15,15, 0,15,15, |
18,17, 0,14,14,15,15, 0,15,16,18,18, 0, 0, 0,20, |
20, 0,14,13,16,15, 0,17,17,21, 0, 0,15,15,15,15, |
0,16,15,17,17, 0, 0, 0,19,19, 0,13,13,15,15, 0, |
20,19, 0, 0, 0,15,15,15,15, 0,11,11,13,13, 0,12, |
12,16,16, 0,12,12,16,16, 0,15,15,21,21, 0,17,16, |
0, 0, 0,12,12,16,16, 0,14,14,17,17, 0,11,11,16, |
16, 0,15,15, 0, 0, 0,16,16,21, 0, 0,12,12,17,16, |
0,14,15,20,20, 0,11,11,16,16, 0,15,15, 0,20, 0, |
16,16, 0,21, 0,16,17,21, 0, 0, 0, 0, 0, 0, 0,15, |
15, 0,21, 0,18,18, 0, 0, 0,17,16, 0, 0, 0,17,17, |
21, 0, 0, 0, 0, 0, 0, 0,15,15, 0,20, 0,19,20,21, |
0, 0,17,18, 0, 0, 0,12,12,15,15, 0,12,12,15,15, |
0,12,12,16,16, 0,13,13,15,15, 0,15,15,17,17, 0, |
13,12,17,16, 0,14,14,17,16, 0,11,11,16,16, 0,14, |
14,17,17, 0,14,14,17,17, 0,12,12,16,16, 0,15,15, |
17,17, 0,11,11,16,16, 0,14,14,17,17, 0,14,14,16, |
16, 0,15,15,18,17, 0, 0, 0,19, 0, 0,13,13,16,16, |
0,16,16, 0,21, 0,14,14,16,16, 0,15,15,18,17, 0, |
0, 0,19,19, 0,13,13,16,16, 0,18,17, 0,21, 0,14, |
15,16,16, 0,11,11,16,16, 0,13,13,17,17, 0,13,13, |
17,17, 0,16,16,16,17, 0,16,16,18,18, 0,12,12,17, |
17, 0,16,15,18,17, 0,12,12,16,16, 0,16,15,19,19, |
0,16,15,17,17, 0,12,12,17,18, 0,16,16,18,18, 0, |
12,12,16,16, 0,16,16,19,19, 0,15,16,17,17, 0,15, |
16,18,18, 0, 0, 0,20,20, 0,13,13,16,16, 0,18,18, |
21,20, 0,15,15,16,16, 0,16,16,19,18, 0, 0, 0,19, |
20, 0,14,14,17,17, 0,19,19, 0,21, 0,15,16,16,16, |
0, 9, 9,14,14, 0,13,13,15,15, 0,14,14,15,15, 0, |
0,21,19,19, 0, 0,21,18,18, 0,12,12,15,15, 0,15, |
15,18,18, 0,14,13,15,15, 0,21,21,18,19, 0,21,20, |
18,18, 0,13,13,16,16, 0,17,17,18,19, 0,14,14,15, |
15, 0, 0,21,19,19, 0,21,20,18,19, 0,20,20,19,19, |
0, 0, 0, 0, 0, 0,19,20,17,17, 0, 0, 0,21,21, 0, |
21, 0,18,20, 0,21, 0,18,21, 0, 0, 0, 0, 0, 0,21, |
21,19,18, 0, 0, 0, 0, 0, 0, 0, 0,19,19, 0,18,18, |
15,15, 0,18,20,17,16, 0,20, 0,17,17, 0,21, 0,17, |
17, 0,21,20,19,20, 0,19,19,16,16, 0,21,21,17,18, |
0,19,19,17,17, 0,20,21,21,21, 0,20,20,18,18, 0, |
19,19,16,16, 0, 0,21,18,19, 0,18,19,16,17, 0,21, |
21,19,20, 0,21,19,18,18, 0,21,20,19,21, 0, 0, 0, |
20,21, 0,19,19,17,16, 0, 0, 0, 0, 0, 0,21,20,17, |
17, 0,20,21,19,18, 0, 0, 0, 0,21, 0,19,18,16,17, |
0, 0, 0, 0, 0, 0,20,20,17,17, 0,11,11,14,14, 0, |
13,13,16,16, 0,13,13,16,16, 0,17,17,21, 0, 0,17, |
18, 0, 0, 0,12,12,16,16, 0,15,15,17,18, 0,12,12, |
16,16, 0,16,16, 0,20, 0,17,17, 0,21, 0,12,12,17, |
17, 0,16,16,19,20, 0,12,12,17,17, 0,17,17, 0,20, |
0,17,17, 0, 0, 0,17,17,21, 0, 0, 0, 0, 0, 0, 0, |
15,15, 0,20, 0,19,19, 0, 0, 0,18,18, 0, 0, 0,17, |
17, 0, 0, 0, 0, 0, 0, 0, 0,15,15, 0, 0, 0,20,19, |
0, 0, 0,19,18, 0, 0, 0,14,14,21,19, 0,16,16,20, |
21, 0,16,16,20,20, 0,17,17,20, 0, 0,17,17,20,20, |
0,15,15,20,20, 0,19,18,20, 0, 0,15,15,20,20, 0, |
17,18,21,20, 0,17,17,20,21, 0,15,15,19,19, 0,19, |
18,21,21, 0,15,15,19,20, 0,17,18, 0, 0, 0,17,17, |
20,20, 0,17,18,20,21, 0, 0, 0, 0, 0, 0,15,15,20, |
20, 0,19,19, 0, 0, 0,17,17,19,21, 0,17,17, 0,21, |
0, 0, 0, 0,21, 0,15,15,20,19, 0, 0,20, 0, 0, 0, |
17,17,21,20, 0,12,12,16,16, 0,14,14,17,17, 0,13, |
13,17,17, 0,16,16,17,18, 0,17,16,18,18, 0,13,13, |
18,17, 0,15,16,19,18, 0,13,13,16,16, 0,16,16,19, |
19, 0,16,16,17,17, 0,13,12,17,17, 0,16,16,18,17, |
0,12,12,16,16, 0,17,17,19,18, 0,16,15,16,16, 0, |
16,17,18,19, 0, 0, 0,20,20, 0,14,14,17,16, 0,18, |
18,21, 0, 0,16,16,16,16, 0,16,16,18,17, 0, 0,21, |
21,21, 0,14,14,16,16, 0,21,20,21, 0, 0,16,16,16, |
16, 0,10,10,14,14, 0,14,14,15,16, 0,14,14,15,15, |
0, 0,21,18,18, 0, 0,21,18,19, 0,13,13,16,16, 0, |
16,16,18,17, 0,14,14,15,15, 0,20, 0,18,18, 0,21, |
0,18,17, 0,13,13,16,15, 0,17,17,19,19, 0,14,14, |
15,15, 0,20,20,18,19, 0, 0, 0,18,17, 0, 0,21,18, |
18, 0, 0, 0, 0, 0, 0,20,21,18,17, 0, 0, 0, 0, 0, |
0, 0, 0,19,19, 0, 0,21,18,18, 0, 0, 0, 0, 0, 0, |
21, 0,18,17, 0, 0, 0, 0,21, 0, 0, 0,19,20, 0,19, |
19,16,16, 0, 0,21,18,17, 0,21, 0,18,18, 0,20, 0, |
19,18, 0,21,20,19,19, 0,21,19,17,18, 0, 0,21,19, |
19, 0,21,19,18,18, 0,21, 0,20,18, 0, 0,21,18,18, |
0,20,21,17,17, 0,21, 0,18,18, 0,21,19,17,17, 0, |
21, 0, 0,20, 0, 0,20,17,18, 0, 0, 0,19,20, 0, 0, |
0,20,19, 0,19,21,17,18, 0,21, 0, 0, 0, 0,21,21, |
18,17, 0, 0,21,18,18, 0, 0, 0, 0,21, 0,20,19,16, |
17, 0, 0, 0, 0, 0, 0,21,20,17,17, 0,11,11,13,13, |
0,13,13,16,16, 0,13,13,16,16, 0,17,17, 0,21, 0, |
18,19,21, 0, 0,12,12,16,16, 0,15,15,19,18, 0,13, |
13,16,16, 0,16,17,21,19, 0,17,17,21,21, 0,13,13, |
16,16, 0,16,16,20,18, 0,13,13,16,16, 0,17,17, 0, |
0, 0,18,18, 0, 0, 0,18,17, 0,20, 0, 0, 0, 0, 0, |
0,15,15,21,21, 0,19,18, 0, 0, 0,17,17,21,21, 0, |
17,17, 0, 0, 0, 0, 0, 0, 0, 0,15,15,20,21, 0,20, |
20, 0, 0, 0,19,19, 0, 0, 0,14,15,21,19, 0,16,16, |
0,21, 0,17,16,21,21, 0,17,18,21,20, 0,18,18, 0, |
21, 0,16,16, 0,20, 0,19,19, 0, 0, 0,16,15, 0,20, |
0,18,18, 0, 0, 0,17,17, 0,21, 0,16,16,20,20, 0, |
20,19, 0, 0, 0,15,16,21,22, 0,18,18, 0, 0, 0,18, |
17, 0, 0, 0,18,18, 0, 0, 0, 0, 0, 0, 0, 0,16,16, |
21,20, 0,19,20, 0, 0, 0,18,17,21, 0, 0,17,18, 0, |
0, 0, 0, 0, 0, 0, 0,16,16, 0,20, 0, 0,20, 0, 0, |
0,18,18,22, 0, |
}; |
static const static_codebook _44p1_p4_0 = { |
5, 3125, |
(char *)_vq_lengthlist__44p1_p4_0, |
1, -528744448, 1616642048, 3, 0, |
(long *)_vq_quantlist__44p1_p4_0, |
0 |
}; |
static const long _vq_quantlist__44p1_p4_1[] = { |
3, |
2, |
4, |
1, |
5, |
0, |
6, |
}; |
static const char _vq_lengthlist__44p1_p4_1[] = { |
2, 3, 3, 3, 3, 3, 3, |
}; |
static const static_codebook _44p1_p4_1 = { |
1, 7, |
(char *)_vq_lengthlist__44p1_p4_1, |
1, -533200896, 1611661312, 3, 0, |
(long *)_vq_quantlist__44p1_p4_1, |
0 |
}; |
static const long _vq_quantlist__44p1_p5_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p1_p5_0[] = { |
1, 6, 6, 7, 8, 8, 7, 8, 8, 7, 9, 8,10,11,11, 9, |
8, 8, 7, 8, 8,11,11,11, 9, 8, 8, 6, 7, 7,10,10, |
10,10,10,10,10,10,10,14,13,13,12,11,11,10,10,10, |
14,14,13,12,11,11, 6, 6, 6, 8, 5, 5, 8, 7, 7, 9, |
7, 7,11,10,10, 9, 7, 7, 9, 7, 7,12,10,10,10, 7, |
7, 7, 8, 8,12,11,10,12,10,10,11,10,10,15,13,13, |
13,10,10,11,10,10,17,14,13,13,10,10, 7, 7, 7,12, |
11,12,12,11,11,12,11,11,16,14,14,13,12,12,12,11, |
11,17,15,14,14,12,12,10, 9, 9,13,11,11,13,11,11, |
13,11,11,17,14,13,14,11,11,12,11,11,16,15,14,14, |
11,11, 7, 8, 8,12,11,11,12,10,10,12,10,10,15,13, |
13,14,11,10,12,10,10,16,14,14,14,10,10, 8, 7, 7, |
12,11,11,12,11,11,12,11,11,17,14,14,14,12,12,12, |
11,11,16,15,15,14,12,12,10,10,10,13,11,11,13,11, |
11,13,11,12,16,14,14,14,11,11,13,12,11,16,15,15, |
14,11,11, |
}; |
static const static_codebook _44p1_p5_0 = { |
5, 243, |
(char *)_vq_lengthlist__44p1_p5_0, |
1, -527106048, 1620377600, 2, 0, |
(long *)_vq_quantlist__44p1_p5_0, |
0 |
}; |
static const long _vq_quantlist__44p1_p5_1[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p1_p5_1[] = { |
2, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 9, 8, 8, 8, |
7, 7, 8, 8, 8, 9, 8, 8, 9, 7, 7, 6, 6, 6, 9, 8, |
7, 9, 7, 7, 9, 8, 8,10, 8, 8,10, 8, 8,10, 8, 8, |
10, 8, 8,10, 8, 8, 7, 6, 6, 9, 6, 6, 9, 7, 7, 9, |
7, 7,10, 8, 8, 9, 6, 6, 9, 7, 7,10, 8, 8, 9, 7, |
7, 7, 8, 8,11, 9, 9,11, 9, 9,11, 8, 9,12, 9, 9, |
12, 8, 8,11, 9, 9,12, 9, 9,12, 8, 8, 8, 7, 7,10, |
9, 9,10,10, 9,10, 9, 9,11,10,10,11, 9, 9,11, 9, |
9,11,10,11,11, 9, 9,10, 8, 8,11, 9, 9,10, 9, 9, |
11, 9, 9,11,10,10,11, 9, 9,11, 9, 9,11,10,10,11, |
9, 9, 9, 8, 8,11, 9, 9,12, 9, 9,11, 9, 9,12, 9, |
9,12, 8, 8,12, 9, 9,12, 9, 9,12, 8, 8, 9, 7, 7, |
11, 9, 9,11,10,10,11, 9, 9,11,11,11,11, 9, 9,11, |
10,10,11,11,11,11, 9, 9,10, 9, 9,11, 9, 9,11,10, |
10,11, 9, 9,11,10,10,11, 9, 9,11, 9,10,11,10,10, |
11, 9, 9, |
}; |
static const static_codebook _44p1_p5_1 = { |
5, 243, |
(char *)_vq_lengthlist__44p1_p5_1, |
1, -530841600, 1616642048, 2, 0, |
(long *)_vq_quantlist__44p1_p5_1, |
0 |
}; |
static const long _vq_quantlist__44p1_p6_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p1_p6_0[] = { |
1, 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, 8, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 7, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 7, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, |
}; |
static const static_codebook _44p1_p6_0 = { |
5, 243, |
(char *)_vq_lengthlist__44p1_p6_0, |
1, -516716544, 1630767104, 2, 0, |
(long *)_vq_quantlist__44p1_p6_0, |
0 |
}; |
static const long _vq_quantlist__44p1_p6_1[] = { |
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 const char _vq_lengthlist__44p1_p6_1[] = { |
1, 3, 2, 5, 4, 7, 7, 8, 8, 9, 9,10,10,11,11,12, |
12,13,13,13,14,16,16,16,16, |
}; |
static const static_codebook _44p1_p6_1 = { |
1, 25, |
(char *)_vq_lengthlist__44p1_p6_1, |
1, -518864896, 1620639744, 5, 0, |
(long *)_vq_quantlist__44p1_p6_1, |
0 |
}; |
static const long _vq_quantlist__44p1_p6_2[] = { |
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 const char _vq_lengthlist__44p1_p6_2[] = { |
3, 4, 4, 5, 4, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, |
5, 5, 5, 5, 5, 5, 5, 5, 5, |
}; |
static const static_codebook _44p1_p6_2 = { |
1, 25, |
(char *)_vq_lengthlist__44p1_p6_2, |
1, -529006592, 1611661312, 5, 0, |
(long *)_vq_quantlist__44p1_p6_2, |
0 |
}; |
static const char _huff_lengthlist__44p1_short[] = { |
4, 5, 7, 8,10,13,14, 4, 2, 4, 6, 8,11,12, 7, 4, |
3, 5, 8,12,14, 8, 5, 4, 4, 8,12,12, 9, 7, 7, 7, |
9,10,11,13,11,11, 9, 7, 8,10,13,11,10, 6, 5, 7, |
9, |
}; |
static const static_codebook _huff_book__44p1_short = { |
2, 49, |
(char *)_huff_lengthlist__44p1_short, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const long _vq_quantlist__44p2_l0_0[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44p2_l0_0[] = { |
1, 4, 4, 7, 7, 8, 8, 9, 9,10,10,11,11, 4, 6, 5, |
8, 7, 9, 8,10, 9,11,10,11,11, 4, 5, 6, 7, 8, 8, |
9, 9,10,10,10,10,11, 8, 9, 8,10, 8,10, 9,11,10, |
11,11,11,11, 8, 8, 9, 8,10, 9,10,10,11,11,11,11, |
11, 9,10,10,11,11,11,11,11,11,12,11,12,11, 9,10, |
10,10,11,11,11,11,11,11,12,11,12,10,11,11,12,11, |
12,12,12,12,12,12,12,12,10,11,11,11,11,12,12,12, |
13,12,12,12,12,11,12,12,12,12,13,13,12,12,12,12, |
12,12,11,12,12,12,12,13,13,12,13,12,12,12,12,12, |
13,13,13,13,13,13,12,13,12,13,12,12,12,13,13,13, |
13,13,13,13,12,13,12,12,12, |
}; |
static const static_codebook _44p2_l0_0 = { |
2, 169, |
(char *)_vq_lengthlist__44p2_l0_0, |
1, -526516224, 1616117760, 4, 0, |
(long *)_vq_quantlist__44p2_l0_0, |
0 |
}; |
static const long _vq_quantlist__44p2_l0_1[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44p2_l0_1[] = { |
2, 4, 4, 5, 5, 4, 5, 5, 6, 5, 4, 5, 5, 5, 6, 5, |
5, 6, 6, 6, 5, 6, 5, 6, 6, |
}; |
static const static_codebook _44p2_l0_1 = { |
2, 25, |
(char *)_vq_lengthlist__44p2_l0_1, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44p2_l0_1, |
0 |
}; |
static const long _vq_quantlist__44p2_l1_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p2_l1_0[] = { |
1, 4, 4, 4, 4, 4, 4, 4, 4, |
}; |
static const static_codebook _44p2_l1_0 = { |
2, 9, |
(char *)_vq_lengthlist__44p2_l1_0, |
1, -516716544, 1630767104, 2, 0, |
(long *)_vq_quantlist__44p2_l1_0, |
0 |
}; |
static const char _huff_lengthlist__44p2_lfe[] = { |
1, 3, 2, 3, |
}; |
static const static_codebook _huff_book__44p2_lfe = { |
2, 4, |
(char *)_huff_lengthlist__44p2_lfe, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist__44p2_long[] = { |
3, 4, 9, 8, 8,10,13,16, 4, 2, 9, 5, 7,10,14,18, |
9, 7, 6, 5, 7, 9,12,16, 7, 5, 5, 3, 5, 8,11,13, |
8, 7, 7, 5, 5, 7, 9,11,10,10, 9, 8, 6, 6, 8,10, |
13,14,13,11, 9, 8, 9,10,17,18,16,14,11,10,10,10, |
}; |
static const static_codebook _huff_book__44p2_long = { |
2, 64, |
(char *)_huff_lengthlist__44p2_long, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const long _vq_quantlist__44p2_p1_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p2_p1_0[] = { |
1, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, |
}; |
static const static_codebook _44p2_p1_0 = { |
5, 243, |
(char *)_vq_lengthlist__44p2_p1_0, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__44p2_p1_0, |
0 |
}; |
static const long _vq_quantlist__44p2_p2_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44p2_p2_0[] = { |
1, 4, 4, 0, 0, 0, 8, 8, 0, 0, 0, 9, 9, 0, 0, 0, |
10,10, 0, 0, 0, 0, 0, 0, 0, 0,10,10, 0, 0, 0, 0, |
0, 0, 0, 0, 9, 9, 0, 0, 0,11,11, 0, 0, 0, 0, 0, |
0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, |
0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0,11,11, 0, 0, |
0, 0, 0, 0, 0, 0,10,10, 0, 0, 0,11,11, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, |
6, 6, 0, 0, 0, 7, 7, 0, 0, 0, 8, 8, 0, 0, 0, 0, |
0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, |
0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, |
0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 9, 9, 0, 0, |
0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, |
8, 8, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 8, 8, 0, |
0, 0,10,10, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, |
0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, |
11,11, 0, 0, 0, 0, 0, 0, 0, 0,10,10, 0, 0, 0, 0, |
0, 0, 0, 0, 9, 9, 0, 0, 0,11,10, 0, 0, 0, 0, 0, |
0, 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0,10,10, 0, |
0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 8, 8, 0, 0, 0,10,10, 0, 0, 0,11,11, 0, 0, |
0,12,12, 0, 0, 0, 0, 0, 0, 0, 0,11,11, 0, 0, 0, |
0, 0, 0, 0, 0,10,10, 0, 0, 0,13,13, 0, 0, 0, 0, |
0, 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0,12,12, |
0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0,13,13, 0, |
0, 0, 0, 0, 0, 0, 0,12,12, 0, 0, 0,13,13, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, |
6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0,11,11, |
0, 0, 0,12,12, 0, 0, 0,12,12, 0, 0, 0, 0, 0, 0, |
0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0,12,11, 0, 0, |
0,12,12, 0, 0, 0, 0, 0, 0, 0, 0,13,13, 0, 0, 0, |
0, 0, 0, 0, 0,12,12, 0, 0, 0,13,13, 0, 0, 0, 0, |
0, 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0,12,12, |
0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 8, 8, 0, 0, 0,10,10, 0, 0, 0,11,11, 0, |
0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0,13,13, 0, 0, |
0, 0, 0, 0, 0, 0,12,12, 0, 0, 0,13,13, 0, 0, 0, |
0, 0, 0, 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0,10, |
10, 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0,14,13, |
0, 0, 0, 0, 0, 0, 0, 0,13,12, 0, 0, 0,13,13, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0,11, |
11, 0, 0, 0,12,12, 0, 0, 0,12,12, 0, 0, 0, 0, 0, |
0, 0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0,12,12, 0, |
0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0,13,13, 0, 0, |
0, 0, 0, 0, 0, 0,12,12, 0, 0, 0,12,12, 0, 0, 0, |
0, 0, 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0,12, |
12, 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 9, 9, 0, 0, 0,11,11, 0, 0, 0,12,12, |
0, 0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0,12,12, 0, |
0, 0, 0, 0, 0, 0, 0,11,11, 0, 0, 0,14,14, 0, 0, |
0, 0, 0, 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0, |
12,12, 0, 0, 0,12,13, 0, 0, 0, 0, 0, 0, 0, 0,12, |
12, 0, 0, 0, 0, 0, 0, 0, 0,11,11, 0, 0, 0,14,13, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, |
11,11, 0, 0, 0,12,12, 0, 0, 0,13,13, 0, 0, 0, 0, |
0, 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0,12,12, |
0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0,12,12, 0, |
0, 0, 0, 0, 0, 0, 0,12,12, 0, 0, 0,14,14, 0, 0, |
0, 0, 0, 0, 0, 0,14,14, 0, 0, 0, 0, 0, 0, 0, 0, |
12,12, 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, |
}; |
static const static_codebook _44p2_p2_0 = { |
5, 3125, |
(char *)_vq_lengthlist__44p2_p2_0, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44p2_p2_0, |
0 |
}; |
static const long _vq_quantlist__44p2_p3_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p2_p3_0[] = { |
1, 5, 5, 6, 7, 7, 0, 8, 8, 6, 9, 9, 8,11,11, 0, |
8, 8, 0, 9, 9, 0,12,12, 0, 8, 8, 5, 7, 7, 7,10, |
10, 0,12,12, 8,11,11, 9,12,12, 0,11,12, 0,12,12, |
0,15,15, 0,12,12, 0, 6, 6, 0, 6, 6, 0, 7, 7, 0, |
7, 7, 0,10,10, 0, 7, 7, 0, 8, 8, 0,11,11, 0, 7, |
7, 6, 7, 7,10, 9, 9, 0,11,10,10, 9, 9,12,12,12, |
0,10,10, 0,11,11, 0,13,13, 0,11,11, 7, 6, 6,10, |
10,10, 0,11,11,11,11,11,12,12,12, 0,11,11, 0,12, |
12, 0,15,15, 0,11,11, 0,11,11, 0,11,11, 0,12,12, |
0,12,12, 0,14,14, 0,12,12, 0,12,12, 0,15,15, 0, |
11,11, 0, 8, 8, 0,10,10, 0,11,11, 0,11,11, 0,12, |
12, 0,12,12, 0,11,11, 0,15,15, 0,11,11, 0, 6, 6, |
0,10,10, 0,12,12, 0,10,10, 0,13,13, 0,12,12, 0, |
13,13, 0,14,14, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, |
}; |
static const static_codebook _44p2_p3_0 = { |
5, 243, |
(char *)_vq_lengthlist__44p2_p3_0, |
1, -533200896, 1614282752, 2, 0, |
(long *)_vq_quantlist__44p2_p3_0, |
0 |
}; |
static const long _vq_quantlist__44p2_p3_1[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p2_p3_1[] = { |
2, 3, 3, 0, 8, 8, 0, 8, 8, 0, 9, 9, 0, 9, 9, 0, |
9, 9, 0, 9, 9, 0, 9, 9, 0, 8, 8, 0, 6, 6, 0, 7, |
7, 0, 7, 7, 0, 8, 8, 0, 8, 8, 0, 8, 8, 0, 8, 8, |
0, 8, 8, 0, 8, 8, 0, 6, 6, 0, 6, 6, 0, 6, 6, 0, |
8, 8, 0, 9, 9, 0, 7, 7, 0, 8, 8, 0, 9, 9, 0, 6, |
6, 0, 8, 8, 0, 9, 9, 0, 9, 9, 0,10,10, 0,10,10, |
0,10,10, 0,10,10, 0,11,11, 0, 9, 9, 0, 7, 7, 0, |
10,10, 0,10,10, 0,12,11, 0,12,12, 0,11,11, 0,11, |
11, 0,12,12, 0,10,10, 0, 7, 7, 0,10,10, 0,10,10, |
0,12,12, 0,11,12, 0,11,11, 0,11,11, 0,11,11, 0, |
10,10, 0, 8, 8, 0, 9, 9, 0, 9, 9, 0,10,10, 0,10, |
10, 0,10, 9, 0,10,10, 0,10,10, 0, 9, 9, 0, 6, 6, |
0,10,10, 0,10,10, 0,11,11, 0,12,12, 0,11,11, 0, |
11,11, 0,12,12, 0,11,11, 0, 7, 7, 0, 9, 9, 0, 9, |
9, 0,11,11, 0,11,11, 0,10,10, 0,10,10, 0,11,11, |
0, 9, 9, |
}; |
static const static_codebook _44p2_p3_1 = { |
5, 243, |
(char *)_vq_lengthlist__44p2_p3_1, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__44p2_p3_1, |
0 |
}; |
static const long _vq_quantlist__44p2_p4_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p2_p4_0[] = { |
1, 6, 6, 6, 7, 7, 7, 8, 8, 7, 8, 8,10,11,11, 9, |
8, 8, 7, 8, 8,11,11,11, 9, 8, 8, 6, 7, 7, 9,11, |
11, 9,11,11,10,11,11,12,13,13,11,12,12,10,11,11, |
13,14,14,12,12,12, 6, 6, 6, 8, 6, 6, 8, 7, 7, 9, |
7, 7,11,10,10,10, 6, 6, 9, 7, 7,12,10,10,11, 6, |
7, 7, 7, 7,11,10,10,12,10,10,11,10,10,14,13,13, |
13,10,10,12,11,11,15,13,13,14,10,10, 8, 7, 7,12, |
11,11,12,11,11,11,11,11,14,14,14,13,12,12,12,11, |
11,15,15,15,13,12,12, 0,10,10, 0,11,11, 0,11,11, |
0,11,11, 0,14,14, 0,11,11, 0,11,11, 0,15,15, 0, |
11,11, 7, 8, 8,12,10,10,12,10,10,12,11,11,15,13, |
13,14,11,11,12,10,10,16,14,14,14,10,10, 8, 7, 7, |
12,11,11,12,11,11,12,11,11,16,14,14,14,12,12,13, |
12,12,15,14,14,15,12,12, 0,11,11, 0,12,12, 0,12, |
12, 0,12,12, 0,15,15, 0,12,12, 0,12,12, 0,14,14, |
0,12,12, |
}; |
static const static_codebook _44p2_p4_0 = { |
5, 243, |
(char *)_vq_lengthlist__44p2_p4_0, |
1, -531365888, 1616117760, 2, 0, |
(long *)_vq_quantlist__44p2_p4_0, |
0 |
}; |
static const long _vq_quantlist__44p2_p4_1[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44p2_p4_1[] = { |
3, 4, 4, 8, 8,11, 9, 9,12,12,11,10,10,12,12,12, |
10,10,11,11,12,12,12,12,12,12,11,11,13,13,12,12, |
12,13,13,12,10,10,12,12,12,11,11,13,13,12,13,13, |
13,13,12,11,11,13,13,12,12,12,13,13,12,10,10,12, |
12,12,11,11,13,13,12,13,13,12,12,12,11,11,13,13, |
12,13,13,13,13,12,11,11,12,12,12,11,11,12,12,12, |
13,13,12,12,12,13,13,13,13,12,13,13,13,13,13,13, |
13,12,12,12,13,13,13,13,12,13,13,12,12,11, 8, 8, |
10,10,12,11,11,11,11,12,10,10,10,10,13,11,11,10, |
10,13,11,11,10,10,13,12,12,12,12,13,11,11,11,11, |
13,12,12,11,11,13,12,12,11,11,13,12,12,12,11,13, |
12,12,12,12,13,11,11,11,11,13,12,12,11,11,13,11, |
12,11,11,13,12,12,11,11,14,12,12,11,11,13,11,11, |
11,11,14,12,12,11,11,13,11,12,10,10,14,12,12,11, |
11,14,12,12,11,11,14,11,11,11,11,14,12,12,11,11, |
13,12,12,11,11,14,12,12,11,11,11, 8, 8,10,10,12, |
7, 7,10,10,12, 9, 9,11,11,13, 9, 9, 9, 9,13,13, |
13,10,10,13, 9, 9,12,12,13,13,13,12,12,13, 9, 8, |
11,11,13,10,10,12,12,14,13,13,11,11,13, 9, 9,11, |
11,13,13,13,12,12,13, 9, 9,10,10,13,10,10,11,11, |
13,13,13,10,10,14,10,10,11,11,14,14,14,12,12,13, |
9, 9,10,10,13,10,10,11,11,14,13,14,10,10,14,14, |
14,11,12,14,14,14,14,14,14,13,13,10,10,13,14,14, |
11,11,14,14,14,10,10,14, 9, 9, 9, 9,14, 9, 9, 9, |
9,14,10,10, 9, 9,14,10,10, 8, 8,14,11,11, 8, 8, |
15,11,11,10,10,15,12,12,10,10,15,10,10,10,10,15, |
11,11,10,10,15,13,13,10,10,15,11,11,10,10,15,12, |
12,10,10,15,10,10,10,10,15,11,11,10,10,15,13,13, |
10,10,15,11,11,10,10,15,12,12,10,10,15,11,11, 9, |
9,15,11,11, 9, 9,15,13,13, 9, 9,15,13,13,10,10, |
15,12,12,10,10,15,13,13,10,10,15,13,12, 9, 9,15, |
13,13, 9, 9,14,12,12, 9, 9,14,13,13, 9, 9,14,13, |
13, 9, 9,14,13,13, 7, 7,14,13,13, 8, 8,15,14,14, |
10,10,15,14,14,10,10,15,14,14,10,10,15,14,14,10, |
10,15,14,14, 9, 9,15,14,14,10,10,15,14,14,10,10, |
14,14,14, 9, 9,15,14,14,10,10,14,14,14, 9, 9,15, |
14,14,10,10,15,14,14,10,10,14,14,14, 9, 9,14,14, |
14, 9, 9,14,14,14, 8, 8,15,14,14,10,10,15,14,14, |
11,11,15,14,14, 9, 9,15,14,14, 9, 9,14,14,14, 8, |
8,13, 9, 9,12,12,17,11,11,12,12,17,12,12,12,12, |
17,12,12,11,11,18,15,15,12,12,17,12,12,12,12,17, |
14,15,13,13,17,12,12,12,12,17,13,13,12,13,17,15, |
15,12,12,18,13,13,13,13,18,15,15,13,13,18,12,12, |
12,12,18,13,13,13,13,18,15,15,12,12,18,13,13,12, |
12,18,15,15,13,13,18,13,13,12,12,17,13,13,12,12, |
17,15,15,12,12,18,15,15,13,13,18,15,15,13,14,18, |
15,16,12,12,18,15,15,12,12,18,16,16,12,12,13, 8, |
8,10,10,14,15,14,11,11,14,15,15,12,12,15,14,14, |
12,11,15,15,15,12,12,15,15,15,12,12,15,15,15,13, |
13,15,15,15,12,12,15,15,15,13,13,15,15,15,13,13, |
15,15,15,13,13,15,15,16,13,13,15,15,15,12,12,15, |
15,15,13,13,15,15,15,13,13,15,15,15,13,13,15,15, |
15,13,13,15,15,14,12,12,15,15,15,12,12,16,15,14, |
12,12,16,15,15,13,13,16,16,16,13,13,16,15,15,12, |
12,15,15,15,13,13,15,15,15,12,12,13,12,12,10,10, |
14,14,14,11,11,15,14,14,12,12,15,14,14,11,11,15, |
14,14,11,11,15,15,15,13,13,15,14,14,13,13,15,15, |
15,12,12,15,14,15,13,13,16,15,15,12,12,15,15,15, |
13,13,16,14,14,13,13,15,15,15,12,12,15,15,15,13, |
13,16,15,15,12,12,16,15,15,12,12,16,14,14,13,13, |
15,15,15,11,11,15,15,15,12,12,16,15,15,11,11,16, |
15,15,13,13,16,14,15,14,14,16,15,15,12,12,16,15, |
14,12,12,16,15,15,12,12,14,10,10, 9, 9,14,11,11, |
12,12,14,12,12,13,13,14,12,12,12,12,15,14,14,13, |
13,15,13,13,14,14,15,14,14,15,15,15,12,12,13,13, |
15,13,13,14,14,15,14,14,13,13,15,13,13,13,14,15, |
14,14,15,15,15,12,12,13,13,15,13,13,14,14,15,14, |
14,13,13,15,13,13,14,14,15,14,14,15,15,15,13,13, |
12,12,15,13,13,13,13,15,14,14,13,12,15,15,15,14, |
15,15,15,14,20,20,15,14,14,13,13,15,14,14,13,13, |
15,14,14,13,13,14,12,12, 9, 9,14,14,14,12,12,14, |
13,13,12,13,14,14,14,12,12,15,14,14,12,12,15,14, |
14,14,13,15,14,14,14,14,15,14,14,13,13,15,14,14, |
13,13,15,15,15,14,14,15,14,14,13,13,15,14,14,14, |
14,15,14,14,13,13,15,14,14,13,13,15,15,15,15,14, |
15,15,15,13,13,15,14,14,14,14,15,14,14,13,13,15, |
14,14,13,13,14,15,15,14,14,15,15,15,14,14,15,14, |
14,14,14,15,15,15,14,14,15,14,14,13,14,15,15,15, |
14,14,13,10,10,12,12,17,11,11,12,12,17,12,12,12, |
12,17,12,12,11,11,17,15,15,12,11,18,13,13,13,13, |
18,15,15,13,13,17,12,12,12,12,18,13,13,13,13,17, |
15,15,12,12,17,12,12,12,12,17,15,15,13,13,17,12, |
12,12,12,17,13,13,12,12,17,15,15,12,12,18,14,13, |
12,12,18,15,15,13,13,18,13,13,12,12,18,13,13,12, |
12,18,16,16,12,12,18,16,16,12,12,18,15,15,13,13, |
18,16,16,12,12,17,15,15,12,12,17,16,16,12,12,13, |
8, 8,10,10,14,14,15,12,12,14,15,15,12,12,15,14, |
14,12,12,15,15,14,12,12,15,15,15,13,13,15,15,15, |
13,13,15,15,15,12,12,16,15,15,13,13,16,15,15,13, |
13,15,15,15,12,12,15,15,15,14,14,15,15,15,12,12, |
15,15,15,13,13,16,15,15,13,13,15,15,15,13,13,16, |
15,15,13,13,15,15,14,12,12,15,15,15,12,12,16,14, |
15,13,13,16,15,15,13,13,15,16,15,13,13,16,15,14, |
13,13,16,15,15,13,13,16,15,15,13,13,13,12,12,11, |
11,14,14,14,11,11,14,14,14,12,12,15,14,14,11,11, |
16,14,14,11,11,15,15,15,12,13,16,14,14,13,13,15, |
15,15,12,12,15,14,14,13,13,16,15,15,12,12,15,15, |
15,12,12,15,14,14,13,13,15,15,15,12,12,15,14,14, |
12,12,16,15,15,12,12,16,15,15,12,12,16,14,14,13, |
13,15,15,15,11,11,15,15,14,12,12,16,15,15,11,11, |
16,15,15,12,12,16,14,14,13,13,16,15,15,11,11,16, |
14,14,12,12,16,15,15,11,11,14,10,10, 9, 9,14,11, |
11,12,12,14,12,12,13,14,14,12,12,12,12,14,14,14, |
13,13,15,13,13,14,14,15,14,14,15,15,15,12,12,13, |
13,15,13,13,14,14,15,15,15,14,14,15,13,13,14,14, |
15,15,15,15,15,15,12,12,13,13,15,13,13,14,14,15, |
14,14,13,13,15,13,13,14,14,15,14,14,15,15,15,12, |
12,13,13,15,13,13,13,13,14,14,14,13,13,15,15,15, |
14,15,15,15,15,21,19,15,14,14,13,13,15,14,14,14, |
14,14,14,14,13,13,14,12,12, 9, 9,14,14,14,12,12, |
14,14,13,13,13,14,14,14,12,12,14,14,14,12,12,15, |
14,14,13,13,15,14,14,14,14,15,14,14,13,13,15,14, |
14,13,13,15,15,15,15,15,15,14,14,13,13,15,14,14, |
14,14,15,14,14,13,13,15,14,14,13,13,14,15,15,15, |
15,15,14,15,13,13,15,14,14,14,14,15,14,14,13,13, |
15,14,14,13,13,14,15,15,14,14,15,15,15,14,14,15, |
14,14,14,14,15,15,15,15,15,15,14,14,14,13,14,15, |
15,14,14,13,10,10,12,12,18,12,12,12,12,17,12,12, |
12,12,18,13,13,11,11,18,15,14,11,11,17,13,13,13, |
13,18,15,15,12,12,18,12,12,12,12,17,13,13,12,12, |
18,15,15,12,12,18,13,13,13,12,18,15,15,13,13,18, |
13,13,12,12,18,13,13,12,12,18,15,15,12,12,17,13, |
13,12,12,17,15,15,12,12,17,12,12,11,11,17,13,13, |
11,11,17,15,15,11,11,18,16,16,12,12,18,15,15,13, |
13,18,15,15,11,11,17,15,15,12,12,18,15,15,11,11, |
13, 8, 8,10,10,14,14,14,11,11,15,15,15,12,12,15, |
14,14,11,11,16,14,14,12,12,15,15,15,12,12,15,15, |
15,13,13,15,15,15,12,12,15,15,15,12,12,16,15,15, |
13,13,15,15,15,12,12,15,15,15,13,13,16,15,15,12, |
12,15,15,15,12,12,16,15,15,13,13,16,15,15,12,12, |
15,15,15,13,13,15,14,14,12,12,15,15,15,12,12,16, |
15,14,12,12,16,15,15,13,13,16,16,16,13,13,16,14, |
15,13,13,15,15,15,13,13,16,15,15,12,12,13,12,12, |
10,10,14,14,14,11,11,15,14,14,12,12,15,14,14,11, |
11,16,14,14,11,11,15,14,15,12,12,15,14,14,13,13, |
15,15,15,12,12,15,14,14,12,12,15,14,15,12,12,15, |
15,15,12,12,16,14,14,13,13,15,15,15,11,12,16,14, |
14,12,12,16,15,15,12,12,15,15,15,12,12,16,14,14, |
12,12,15,15,15,11,11,15,14,14,11,12,15,15,14,11, |
11,16,15,15,12,12,16,14,14,13,13,16,15,15,11,11, |
16,14,14,12,12,16,15,15,11,11,13,10,10, 8, 8,14, |
12,12,12,12,14,12,12,13,13,14,12,12,12,12,14,14, |
14,13,13,15,13,13,14,14,15,15,14,15,15,15,13,13, |
13,13,15,13,13,14,14,15,14,15,14,14,15,13,13,13, |
13,15,15,15,15,15,15,12,12,13,12,15,13,13,14,14, |
15,14,14,13,13,15,13,13,14,13,15,15,15,16,16,15, |
13,13,12,12,15,13,13,13,13,14,14,14,12,12,15,15, |
15,14,14,15,15,15,20,20,15,14,14,13,13,15,15,14, |
14,14,15,14,14,13,13,13,12,12, 9, 9,14,13,13,12, |
12,14,13,13,12,12,14,14,14,12,12,14,14,14,13,13, |
15,14,14,13,13,15,14,14,14,14,15,15,14,12,12,15, |
14,14,13,13,15,14,15,14,15,15,14,14,13,13,15,14, |
14,14,14,15,14,14,12,12,15,14,14,13,13,14,15,14, |
15,14,15,14,14,13,13,15,14,14,14,14,15,14,14,12, |
12,15,14,14,13,13,15,15,15,14,14,15,15,15,14,14, |
16,14,14,14,14,15,15,15,14,14,15,14,14,14,14,14, |
15,15,14,14,13,13,13,12,13,17,15,15,12,12,17,15, |
15,12,12,18,15,15,11,11,17,16,16,11,11,18,16,16, |
13,13,18,17,16,13,13,18,16,16,12,12,18,16,16,12, |
12,18,17,17,12,12,17,16,16,12,13,17,16,16,12,13, |
17,16,16,12,12,17,16,16,12,12,18,17,16,12,12,18, |
16,16,12,12,17,16,17,12,12,18,15,15,11,11,18,15, |
15,12,12,17,17,17,11,11,17,17,17,12,12,17,16,16, |
13,13,18,16,16,11,11,18,16,16,12,12,18,17,16,11, |
11,14,14,14,10,10,16,15,14,11,11,16,15,15,12,12, |
16,14,14,12,12,17,14,14,13,13,17,15,15,13,13,17, |
15,15,14,14,16,15,15,12,12,16,15,15,13,13,18,15, |
15,14,14,16,15,15,12,12,16,15,15,14,14,16,15,15, |
12,12,16,15,15,13,13,17,15,15,13,13,17,15,15,13, |
13,17,15,15,14,14,16,14,14,12,12,17,15,15,12,12, |
18,15,15,13,13,17,15,15,14,14,17,16,16,15,15,17, |
15,14,13,13,17,15,15,14,14,17,15,15,13,13,14,12, |
12,11,11,15,14,14,12,12,16,14,14,12,12,16,14,14, |
11,11,17,14,14,12,12,16,15,14,13,13,16,14,14,13, |
13,16,15,15,12,12,16,14,14,13,13,17,15,15,13,13, |
16,15,15,13,13,17,14,14,13,13,16,15,15,12,12,16, |
14,14,12,12,16,15,15,12,12,17,15,15,12,12,17,14, |
14,13,13,16,15,15,12,12,16,14,14,12,12,16,15,15, |
12,12,17,15,15,13,13,17,14,14,13,13,17,15,15,12, |
12,17,14,14,12,12,17,15,15,12,12,14,14,14, 8, 8, |
14,14,14,13,13,14,15,15,14,14,14,14,14,14,14,15, |
15,15,19,19,15,15,15,14,14,15,15,16,20,19,15,15, |
15,14,14,15,16,16,15,15,15,15,15,19,19,15,15,15, |
14,14,15,16,16,19,20,15,15,15,14,14,15,15,15,15, |
15,15,15,15,19,19,15,15,15,15,15,15,15,16,19,20, |
15,14,15,14,14,15,15,15,15,15,15,15,15,20,19,15, |
15,15,21,19,15,16,16,20,20,15,15,14,19,19,15,15, |
16,20,21,15,15,15,20,19,13,12,12, 9, 9,14,14,14, |
12,12,14,13,13,13,13,14,14,14,13,13,15,14,14,20, |
19,15,14,14,14,13,15,14,14,19,19,15,15,14,13,13, |
15,14,14,14,14,15,15,15,19,20,15,14,14,13,13,15, |
14,14,20,19,14,15,14,13,13,15,14,14,14,13,15,15, |
15,19,20,15,15,14,14,14,15,14,14,21,19,15,15,15, |
13,13,15,14,14,14,14,14,15,15,20,20,15,15,15,21, |
20,15,14,14,19,20,15,15,15,20,20,15,14,14,19,20, |
15,15,15,21,19, |
}; |
static const static_codebook _44p2_p4_1 = { |
5, 3125, |
(char *)_vq_lengthlist__44p2_p4_1, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44p2_p4_1, |
0 |
}; |
static const long _vq_quantlist__44p2_p5_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44p2_p5_0[] = { |
2, 6, 6,14,14, 6, 7, 7,14,14, 7, 7, 7,15,15, 0, |
13,13,16,16, 0,13,13,15,15, 7, 8, 8,15,15, 9,10, |
10,17,16, 9, 8, 8,15,15, 0,13,13,18,17, 0,13,13, |
16,16, 8, 8, 8,15,15,12,11,11,16,17, 9, 8, 8,14, |
14, 0,13,13,18,17, 0,13,13,16,15, 0,14,14,18,17, |
0,20,22,18,20, 0,12,12,16,16, 0,16,16,22,20, 0, |
14,14,16,16, 0,14,14,17,17, 0,22,22,22,19, 0,12, |
13,16,16, 0,17,17, 0, 0, 0,15,15,16,16, 5, 7, 7, |
13,13, 9, 9, 9,15,14,10,10,10,14,14, 0,21,21,18, |
17, 0,21,22,18,17, 9,10,10,14,14,12,12,12,17,17, |
12,10,10,14,14, 0,19,21,18,17, 0,20,22,18,18,11, |
10,10,14,14,14,13,13,18,17,12,11,11,14,14, 0,22, |
19,17,18, 0,20, 0,18,17, 0,22,21,17,17, 0, 0, 0, |
0, 0, 0,20,22,17,17, 0,22, 0,21,19, 0,22, 0,18, |
18, 0, 0,22,18,19, 0, 0, 0, 0, 0, 0,19,21,17,17, |
0, 0, 0,20,20, 0, 0, 0,18,18, 6, 6, 6,13,12, 8, |
6, 6,11,11, 8, 6, 6,13,13, 0, 9, 9,11,11, 0,11, |
11,14,14, 9, 7, 7,13,13,11, 9, 9,13,13,10, 6, 6, |
13,13, 0,10,10,14,14, 0,10,10,13,13, 9, 7, 7,13, |
14,13, 9, 9,13,13,10, 6, 6,13,12, 0,11,11,15,15, |
0,10,10,13,13, 0,12,12,15,15, 0,19, 0,17,17, 0, |
9, 9,13,13, 0,13,14,19,20, 0,11,11,13,13, 0,11, |
11,14,14, 0,19,20,17,18, 0,10,10,13,13, 0,15,15, |
21,19, 0,12,12,13,13, 0,10,10,12,13, 0,11,11,15, |
15, 0,11,11,15,15, 0,15,15,22, 0, 0,16,17,22, 0, |
0,11,11,15,15, 0,14,14,18,17, 0,11,11,15,16, 0, |
15,15,22,21, 0,16,16, 0,20, 0,12,12,16,15, 0,15, |
14,19,19, 0,11,11,16,16, 0,15,15,21, 0, 0,16,15, |
0, 0, 0,16,16,22,21, 0, 0, 0, 0, 0, 0,15,15,20, |
20, 0,18,18, 0, 0, 0,16,17, 0, 0, 0,17,17, 0,22, |
0, 0, 0, 0, 0, 0,15,15,21,22, 0,20,18, 0, 0, 0, |
18,17,22, 0, 0,10,10,12,11, 0,10,10,10,10, 0,11, |
11,12,12, 0,11,11, 9, 9, 0,13,13,12,12, 0,11,11, |
12,12, 0,13,13,12,12, 0,10,10,12,12, 0,13,12,13, |
13, 0,12,12,12,12, 0,11,11,12,12, 0,13,13,12,12, |
0,10,10,12,12, 0,13,13,13,14, 0,12,12,12,12, 0, |
13,14,14,14, 0,20,21,15,15, 0,12,11,12,12, 0,15, |
16,20,22, 0,13,12,11,11, 0,13,13,14,13, 0,20, 0, |
16,15, 0,12,12,12,12, 0,16,16,22,21, 0,13,13,12, |
12, 6, 7, 7,16,16,11, 9, 9,15,15,12, 9, 9,16,16, |
0,13,13,14,14, 0,14,14,16,17,10, 9, 9,16,16,14, |
12,12,16,16,12, 9, 9,15,15, 0,13,13,18,18, 0,13, |
13,15,16,12,10,10,17,18,15,12,12,17,17,13, 9, 9, |
16,16, 0,13,13,17,18, 0,14,14,16,16, 0,15,15,18, |
18, 0,22, 0,20,20, 0,12,12,16,16, 0,16,16,20,22, |
0,14,14,16,16, 0,15,14,18,18, 0, 0,22,19,21, 0, |
13,13,16,17, 0,17,17,22,22, 0,15,15,16,16, 7, 7, |
7,14,14,11,10,10,15,15,12,10,10,15,14, 0,22, 0, |
18,18, 0, 0,21,17,18,11,10,10,15,15,14,12,12,17, |
17,14,11,11,15,15, 0,22,20,18,18, 0, 0,20,18,17, |
12,10,10,16,16,17,14,14,19,18,14,11,11,15,15, 0, |
21,22,19,19, 0,21,22,18,18, 0,22, 0,19,21, 0, 0, |
0, 0, 0, 0,22,22,18,17, 0, 0, 0,21,20, 0,22,22, |
20,19, 0, 0,22,20,20, 0, 0, 0, 0, 0, 0,20,21,17, |
17, 0, 0,22,21,21, 0, 0, 0,18,18,10, 9, 9,14,14, |
13,10,10,13,13,13,10,11,14,14, 0,13,13,12,12, 0, |
15,15,16,16,13,10,10,15,15,15,12,12,14,14,15,10, |
10,14,15, 0,14,14,16,15, 0,14,14,15,15,13,10,10, |
15,15,18,13,13,15,15,15,10,10,14,15, 0,14,14,16, |
16, 0,14,14,15,15, 0,15,15,16,16, 0,22, 0,18,18, |
0,12,13,14,14, 0,17,17,22, 0, 0,14,14,14,14, 0, |
15,15,16,16, 0,22, 0,18,17, 0,13,13,14,14, 0,19, |
18,21,22, 0,15,15,14,14, 0,11,11,13,13, 0,12,12, |
16,16, 0,12,12,16,16, 0,15,16,21, 0, 0,16,17, 0, |
22, 0,12,12,16,16, 0,14,14,17,18, 0,11,11,16,16, |
0,15,15,21,22, 0,16,16, 0, 0, 0,12,12,16,16, 0, |
15,15, 0,19, 0,12,12,16,17, 0,16,16,22, 0, 0,16, |
16, 0,22, 0,17,17, 0,22, 0, 0, 0, 0, 0, 0,15,15, |
20,19, 0,18,18, 0, 0, 0,17,18, 0, 0, 0,17,17, 0, |
0, 0, 0, 0, 0, 0, 0,15,15, 0,22, 0,20,18, 0, 0, |
0,18,18,22,22, 0,11,11,14,14, 0,12,12,14,14, 0, |
12,12,15,15, 0,13,13,14,14, 0,14,14,17,16, 0,12, |
12,16,16, 0,14,14,16,16, 0,11,11,15,15, 0,13,13, |
16,16, 0,13,13,15,15, 0,12,12,15,15, 0,15,14,16, |
16, 0,11,11,15,15, 0,14,14,17,17, 0,13,13,15,15, |
0,15,15,17,17, 0, 0, 0,19,18, 0,13,12,15,15, 0, |
16,16, 0, 0, 0,14,14,15,15, 0,14,14,16,17, 0,22, |
0,18,18, 0,13,13,15,15, 0,17,17, 0, 0, 0,14,14, |
15,15, 8, 8, 8,16,16,12,10,10,16,16,13, 9, 9,16, |
16, 0,14,14,17,17, 0,14,14,17,16,12,10,10,18,17, |
14,11,11,18,18,14, 9,10,16,16, 0,13,13,18,19, 0, |
14,13,16,16,12, 9, 9,16,16,17,13,13,17,17,14, 9, |
9,15,15, 0,14,14,19,20, 0,13,13,15,15, 0,15,15, |
18,19, 0, 0,22,22,22, 0,13,13,17,17, 0,16,16,19, |
21, 0,14,14,16,16, 0,14,14,18,18, 0, 0, 0, 0, 0, |
0,13,13,16,16, 0,18,18, 0, 0, 0,15,15,16,16, 8, |
7, 7,14,14,12,10,10,15,15,13,10,10,15,14, 0,22, |
0,18,18, 0,22, 0,18,18,12,10,10,16,15,15,12,12, |
17,17,14,11,11,15,15, 0,20,21,19,18, 0, 0, 0,17, |
18,13,11,11,15,15,16,13,13,18,18,15,11,11,14,14, |
0,22,21,19,19, 0,21,22,18,18, 0,22,22,20,18, 0, |
0, 0, 0, 0, 0,22,19,17,17, 0, 0, 0,22,21, 0, 0, |
22,19,17, 0, 0,22,19,19, 0, 0, 0, 0, 0, 0,22,21, |
18,17, 0, 0, 0,22, 0, 0, 0, 0,19,19, 0,10,10,14, |
14, 0,11,11,15,14, 0,11,11,15,15, 0,14,14,15,14, |
0,15,15,16,16, 0,11,11,16,16, 0,13,13,16,16, 0, |
11,11,15,15, 0,14,14,17,16, 0,14,14,15,15, 0,11, |
11,16,16, 0,14,13,15,15, 0,11,11,15,15, 0,15,15, |
17,17, 0,14,14,15,14, 0,16,16,17,17, 0, 0,22,18, |
18, 0,13,13,15,15, 0,17,17,22, 0, 0,15,15,15,14, |
0,15,16,16,17, 0, 0,22,18,19, 0,13,13,15,15, 0, |
20,18,21, 0, 0,15,15,14,14, 0,11,11,13,13, 0,12, |
12,16,16, 0,12,12,16,15, 0,15,16,22,22, 0,17,17, |
0, 0, 0,12,12,16,16, 0,14,14,18,18, 0,11,11,16, |
16, 0,15,16,22,20, 0,16,16, 0,22, 0,12,12,16,16, |
0,15,15,18,20, 0,11,11,16,16, 0,15,15, 0, 0, 0, |
16,16, 0, 0, 0,17,17,22, 0, 0, 0, 0, 0, 0, 0,15, |
15, 0,21, 0,18,18, 0, 0, 0,17,16, 0, 0, 0,17,17, |
22,22, 0, 0, 0, 0, 0, 0,15,15,21, 0, 0,20,22, 0, |
0, 0,18,18, 0, 0, 0,12,12,15,15, 0,12,12,15,15, |
0,12,12,16,16, 0,13,13,15,15, 0,15,15,17,17, 0, |
13,12,16,16, 0,14,14,16,16, 0,12,11,16,16, 0,14, |
14,17,17, 0,14,14,16,16, 0,12,12,16,16, 0,15,15, |
17,16, 0,11,11,15,16, 0,14,14,17,17, 0,14,14,16, |
16, 0,15,15,18,18, 0, 0, 0,22,19, 0,13,13,15,16, |
0,16,17, 0, 0, 0,14,14,16,16, 0,15,15,18,17, 0, |
0, 0,20,20, 0,13,13,16,15, 0,17,17,22,22, 0,14, |
14,15,15, 0,11,11,16,16, 0,13,13,16,17, 0,13,13, |
17,18, 0,16,16,17,17, 0,17,17,18,18, 0,12,12,17, |
17, 0,16,15,18,18, 0,12,12,16,16, 0,16,16,18,18, |
0,15,15,17,17, 0,12,12,17,17, 0,16,16,19,18, 0, |
12,12,16,17, 0,16,16,19,19, 0,15,16,16,17, 0,16, |
16,19,17, 0, 0, 0,20,22, 0,13,13,16,16, 0,19,18, |
21, 0, 0,15,15,16,16, 0,16,16,18,18, 0, 0, 0,22, |
21, 0,14,14,16,16, 0,21,19,21,22, 0,16,16,16,16, |
0, 9, 9,14,14, 0,13,13,15,15, 0,14,14,15,15, 0, |
0,20,18,19, 0, 0,22,18,18, 0,12,12,15,15, 0,15, |
15,17,18, 0,14,13,14,14, 0,20, 0,18,18, 0,21, 0, |
18,17, 0,13,13,15,16, 0,17,17,18,18, 0,14,14,15, |
15, 0,22,22,20,19, 0,20,21,18,18, 0,20,22,19,19, |
0, 0, 0, 0, 0, 0,20,20,17,17, 0, 0,22,22,21, 0, |
22, 0,18,18, 0,20,22,19,19, 0, 0, 0, 0, 0, 0,21, |
21,17,18, 0, 0, 0,21,20, 0, 0,22,19,18, 0,18,18, |
15,15, 0,22,21,17,16, 0, 0,22,17,17, 0,20,22,18, |
18, 0, 0,22,20,20, 0,21,19,16,16, 0,21,21,18,18, |
0,19,19,17,17, 0, 0,22,19,19, 0,22,20,17,17, 0, |
21,19,16,16, 0,22,22,19,18, 0,19,20,16,16, 0,22, |
21,19,21, 0,21,22,17,18, 0,21,20,18,18, 0, 0, 0, |
19,20, 0,20,19,16,16, 0,22,22, 0, 0, 0,21,21,17, |
16, 0,22,20,19,18, 0, 0, 0,20,20, 0,20,19,16,16, |
0, 0, 0, 0, 0, 0,21,22,17,17, 0,11,11,13,13, 0, |
13,13,15,16, 0,13,13,16,16, 0,17,18,21, 0, 0,17, |
18, 0, 0, 0,12,12,15,16, 0,15,15,19,18, 0,12,12, |
16,16, 0,17,17,22, 0, 0,17,17, 0,22, 0,12,12,17, |
16, 0,16,16,19,20, 0,12,12,16,16, 0,17,17, 0, 0, |
0,17,17, 0,21, 0,17,16,22, 0, 0, 0, 0, 0, 0, 0, |
15,15,20,22, 0,20,18, 0, 0, 0,18,18, 0, 0, 0,17, |
17,21, 0, 0, 0, 0, 0, 0, 0,15,15,21,22, 0,19,20, |
22, 0, 0,19,18, 0, 0, 0,14,14,18,18, 0,16,16,22, |
20, 0,16,16,22,19, 0,17,17,20,22, 0,19,19, 0, 0, |
0,15,15,20, 0, 0,18,21, 0,20, 0,15,15,21,20, 0, |
18,17, 0, 0, 0,17,17, 0,22, 0,15,15,19,19, 0,19, |
18, 0, 0, 0,15,15,20, 0, 0,18,18,22,22, 0,17,17, |
0,20, 0,18,18, 0, 0, 0, 0,22, 0, 0, 0,15,15,19, |
20, 0,20,19, 0, 0, 0,17,17,20,21, 0,17,18,20,22, |
0, 0, 0, 0,22, 0,15,15,20,20, 0,22,20, 0, 0, 0, |
17,18,20, 0, 0,12,12,17,16, 0,14,14,17,17, 0,13, |
13,17,17, 0,16,16,18,18, 0,17,16,17,17, 0,13,13, |
17,17, 0,15,16,18,18, 0,13,13,16,16, 0,16,16,18, |
18, 0,16,16,17,16, 0,13,13,16,16, 0,17,17,18,17, |
0,12,12,15,16, 0,17,17,19,19, 0,16,16,16,16, 0, |
16,17,19,18, 0, 0, 0,21,22, 0,14,14,16,16, 0,18, |
18, 0,22, 0,16,16,16,16, 0,16,16,18,17, 0, 0, 0, |
21,20, 0,14,14,16,16, 0,21,22,22, 0, 0,16,16,16, |
16, 0, 9, 9,14,13, 0,13,14,15,16, 0,14,13,15,14, |
0,22, 0,18,18, 0,21, 0,17,18, 0,13,13,15,15, 0, |
15,16,18,17, 0,14,14,15,14, 0,20,22,18,18, 0,22, |
21,17,17, 0,13,13,15,15, 0,17,17,19,19, 0,14,14, |
14,14, 0, 0,22,18,18, 0, 0,22,17,17, 0, 0,22,19, |
20, 0, 0, 0, 0, 0, 0,21,20,17,16, 0, 0, 0,21,22, |
0, 0, 0,18,19, 0, 0, 0,18,18, 0, 0, 0, 0, 0, 0, |
22, 0,17,17, 0, 0, 0,20,22, 0, 0, 0,18,19, 0,18, |
19,16,16, 0,22,20,17,17, 0,22,22,17,18, 0,22,22, |
18,17, 0, 0,22,18,19, 0,20,20,17,18, 0, 0,22,19, |
18, 0,22,22,17,17, 0,22, 0,19,19, 0, 0,22,18,18, |
0,20,22,17,17, 0, 0,22,18,18, 0,19,20,17,17, 0, |
22, 0,20,19, 0,22,21,17,17, 0, 0, 0,18,18, 0, 0, |
0,22,19, 0,20, 0,17,17, 0,22, 0, 0,22, 0, 0,20, |
17,18, 0,22, 0,19,19, 0, 0, 0, 0,19, 0,19,21,17, |
17, 0, 0, 0, 0, 0, 0,20,21,17,16, 0,11,11,13,13, |
0,13,13,16,16, 0,13,13,15,16, 0,17,17,21,22, 0, |
17,18, 0, 0, 0,12,12,16,16, 0,15,15,18,18, 0,13, |
13,16,16, 0,17,16,21,21, 0,17,17, 0, 0, 0,13,13, |
16,16, 0,16,16,19,18, 0,13,13,16,16, 0,17,17, 0, |
22, 0,17,18,20,22, 0,17,18, 0, 0, 0, 0, 0, 0, 0, |
0,15,15,20, 0, 0,18,19, 0, 0, 0,17,17, 0, 0, 0, |
18,17,22, 0, 0, 0, 0, 0, 0, 0,15,16,21,20, 0,20, |
20, 0, 0, 0,18,19, 0, 0, 0,15,15,22,22, 0,17,16, |
20,22, 0,17,17,20,22, 0,18,18, 0,21, 0,19,18, 0, |
0, 0,16,16,20,20, 0,19,19,22, 0, 0,15,16,21,22, |
0,18,19,22, 0, 0,17,18, 0, 0, 0,16,16,22, 0, 0, |
19,19, 0,21, 0,15,16,20, 0, 0,18,18, 0,22, 0,18, |
17, 0, 0, 0,18,18, 0, 0, 0, 0, 0, 0, 0, 0,16,16, |
22,21, 0,20,21, 0, 0, 0,17,18,22, 0, 0,18,18, 0, |
0, 0, 0, 0, 0, 0, 0,16,16,20,19, 0,22,21, 0, 0, |
0,18,18,22,22, |
}; |
static const static_codebook _44p2_p5_0 = { |
5, 3125, |
(char *)_vq_lengthlist__44p2_p5_0, |
1, -528744448, 1616642048, 3, 0, |
(long *)_vq_quantlist__44p2_p5_0, |
0 |
}; |
static const long _vq_quantlist__44p2_p5_1[] = { |
3, |
2, |
4, |
1, |
5, |
0, |
6, |
}; |
static const char _vq_lengthlist__44p2_p5_1[] = { |
2, 3, 3, 3, 3, 3, 3, |
}; |
static const static_codebook _44p2_p5_1 = { |
1, 7, |
(char *)_vq_lengthlist__44p2_p5_1, |
1, -533200896, 1611661312, 3, 0, |
(long *)_vq_quantlist__44p2_p5_1, |
0 |
}; |
static const long _vq_quantlist__44p2_p6_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p2_p6_0[] = { |
1, 7, 7, 7, 8, 8, 7, 8, 8, 7, 9, 9,10,11,11, 9, |
8, 8, 7, 8, 9,11,11,11, 9, 8, 8, 6, 7, 7,10,10, |
10,10,10,10,10,10,10,14,14,14,12,11,11,10,11,11, |
15,14,14,13,11,11, 6, 6, 6, 8, 5, 5, 8, 7, 7, 8, |
7, 7,11,10,10, 9, 7, 7, 9, 7, 7,12,10,10,10, 7, |
7, 6, 8, 7,12,10,10,12,10,10,11,10,10,15,14,13, |
13,10,10,11,10,10,16,14,14,14,10,10, 7, 7, 7,12, |
11,11,12,11,11,11,11,11,16,14,14,13,12,12,11,11, |
11,17,15,15,14,12,12,10, 9, 9,13,11,11,13,11,11, |
12,11,11,16,14,13,14,11,11,12,11,11,17,15,14,14, |
11,11, 7, 8, 8,12,11,11,12,10,10,12,10,10,16,13, |
14,13,10,10,11,10,10,17,14,14,14,10,10, 7, 7, 7, |
12,11,11,12,11,11,12,11,11,15,14,15,14,12,12,12, |
11,11,17,15,15,14,12,12,10,10, 9,13,11,11,13,11, |
11,13,11,11,16,14,14,14,11,11,13,11,11,16,15,15, |
15,11,11, |
}; |
static const static_codebook _44p2_p6_0 = { |
5, 243, |
(char *)_vq_lengthlist__44p2_p6_0, |
1, -527106048, 1620377600, 2, 0, |
(long *)_vq_quantlist__44p2_p6_0, |
0 |
}; |
static const long _vq_quantlist__44p2_p6_1[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p2_p6_1[] = { |
2, 6, 6, 7, 7, 7, 7, 7, 7, 7, 8, 8, 9, 9, 9, 8, |
7, 7, 8, 8, 8, 9, 9, 9, 9, 8, 8, 6, 7, 7, 9, 8, |
8, 9, 7, 7, 9, 8, 8,10, 8, 8,10, 8, 8,10, 8, 8, |
10, 8, 9,10, 8, 8, 7, 6, 6, 8, 6, 6, 9, 6, 6, 9, |
7, 7,10, 8, 8, 9, 6, 6, 9, 7, 7,10, 9, 8, 9, 7, |
7, 7, 7, 7,11, 8, 8,11, 9, 9,10, 9, 9,12, 9, 9, |
12, 8, 8,11, 9, 9,12, 9, 9,12, 8, 8, 8, 7, 7,10, |
9, 9,10, 9, 9,10, 9, 9,11,10,11,11, 9, 9,11, 9, |
9,11,11,11,11, 9, 9,10, 8, 8,11, 9, 9,10, 9, 9, |
11, 9, 9,11,10,10,11, 9, 9,11, 9, 9,12,10,10,11, |
9, 9, 8, 8, 8,11, 9, 9,12, 9, 9,11, 9, 9,12, 9, |
9,12, 8, 8,12, 9, 9,12, 9,10,12, 8, 8, 9, 7, 7, |
11, 9, 9,11,10,10,11, 9, 9,11,11,11,11, 9, 9,11, |
10,10,12,11,11,11, 9,10,10, 9, 9,11, 9, 9,11,10, |
10,11,10,10,11,11,11,11, 9, 9,11, 9,10,11,11,11, |
11, 9, 9, |
}; |
static const static_codebook _44p2_p6_1 = { |
5, 243, |
(char *)_vq_lengthlist__44p2_p6_1, |
1, -530841600, 1616642048, 2, 0, |
(long *)_vq_quantlist__44p2_p6_1, |
0 |
}; |
static const long _vq_quantlist__44p2_p7_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p2_p7_0[] = { |
1, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, |
}; |
static const static_codebook _44p2_p7_0 = { |
5, 243, |
(char *)_vq_lengthlist__44p2_p7_0, |
1, -513979392, 1633504256, 2, 0, |
(long *)_vq_quantlist__44p2_p7_0, |
0 |
}; |
static const long _vq_quantlist__44p2_p7_1[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p2_p7_1[] = { |
1, 9, 9, 6, 9, 9, 5, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9,10,10,10,10,10,10,10,10,10,10,10,10,10, |
10,10,10, |
}; |
static const static_codebook _44p2_p7_1 = { |
5, 243, |
(char *)_vq_lengthlist__44p2_p7_1, |
1, -516716544, 1630767104, 2, 0, |
(long *)_vq_quantlist__44p2_p7_1, |
0 |
}; |
static const long _vq_quantlist__44p2_p7_2[] = { |
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 const char _vq_lengthlist__44p2_p7_2[] = { |
1, 3, 2, 5, 4, 7, 7, 8, 8, 9, 9,10,10,11,11,12, |
12,13,13,14,14,15,15,15,15, |
}; |
static const static_codebook _44p2_p7_2 = { |
1, 25, |
(char *)_vq_lengthlist__44p2_p7_2, |
1, -518864896, 1620639744, 5, 0, |
(long *)_vq_quantlist__44p2_p7_2, |
0 |
}; |
static const long _vq_quantlist__44p2_p7_3[] = { |
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 const char _vq_lengthlist__44p2_p7_3[] = { |
3, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, |
5, 5, 5, 5, 5, 5, 5, 5, 5, |
}; |
static const static_codebook _44p2_p7_3 = { |
1, 25, |
(char *)_vq_lengthlist__44p2_p7_3, |
1, -529006592, 1611661312, 5, 0, |
(long *)_vq_quantlist__44p2_p7_3, |
0 |
}; |
static const char _huff_lengthlist__44p2_short[] = { |
4, 4,12, 9, 8,12,15,17, 4, 2,11, 6, 5, 9,13,15, |
11, 7, 8, 7, 7,10,14,13, 8, 5, 7, 5, 5, 8,12,12, |
8, 4, 7, 4, 3, 6,11,12,11, 8, 9, 7, 6, 8,11,12, |
15,13,14,12, 9, 7,10,13,16,12,17,12, 7, 5, 8,11, |
}; |
static const static_codebook _huff_book__44p2_short = { |
2, 64, |
(char *)_huff_lengthlist__44p2_short, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const long _vq_quantlist__44p3_l0_0[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44p3_l0_0[] = { |
1, 4, 4, 8, 8, 8, 8, 9, 9,10,10,10,10, 4, 6, 5, |
8, 7, 9, 9, 9, 9,10, 9,11, 9, 4, 5, 6, 7, 8, 9, |
9, 9, 9, 9,10, 9,10, 8, 9, 8, 9, 8,10, 9,11, 9, |
12,10,12,10, 8, 8, 9, 8, 9, 9,10, 9,11,10,12,10, |
12, 9,10,10,11,10,12,11,12,11,12,12,12,12, 9,10, |
10,11,11,11,11,11,12,12,12,12,12,10,11,11,12,12, |
12,12,12,12,12,12,12,12,10,11,11,12,12,12,12,12, |
12,12,12,12,12,11,12,12,12,12,12,13,12,13,12,13, |
12,12,11,12,12,12,12,12,12,13,12,12,12,12,12,12, |
12,12,13,13,12,13,12,13,12,13,12,12,12,13,12,13, |
12,13,12,13,12,13,12,12,12, |
}; |
static const static_codebook _44p3_l0_0 = { |
2, 169, |
(char *)_vq_lengthlist__44p3_l0_0, |
1, -526516224, 1616117760, 4, 0, |
(long *)_vq_quantlist__44p3_l0_0, |
0 |
}; |
static const long _vq_quantlist__44p3_l0_1[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44p3_l0_1[] = { |
3, 4, 4, 5, 5, 4, 4, 5, 5, 5, 4, 5, 4, 5, 5, 5, |
5, 6, 5, 6, 5, 6, 5, 6, 5, |
}; |
static const static_codebook _44p3_l0_1 = { |
2, 25, |
(char *)_vq_lengthlist__44p3_l0_1, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44p3_l0_1, |
0 |
}; |
static const long _vq_quantlist__44p3_l1_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p3_l1_0[] = { |
1, 4, 4, 4, 4, 4, 4, 4, 4, |
}; |
static const static_codebook _44p3_l1_0 = { |
2, 9, |
(char *)_vq_lengthlist__44p3_l1_0, |
1, -516716544, 1630767104, 2, 0, |
(long *)_vq_quantlist__44p3_l1_0, |
0 |
}; |
static const char _huff_lengthlist__44p3_lfe[] = { |
1, 3, 2, 3, |
}; |
static const static_codebook _huff_book__44p3_lfe = { |
2, 4, |
(char *)_huff_lengthlist__44p3_lfe, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist__44p3_long[] = { |
3, 4,13, 9, 9,12,15,17, 4, 2,18, 5, 7,10,14,18, |
11, 8, 6, 5, 6, 8,11,14, 8, 5, 5, 3, 5, 8,11,13, |
9, 6, 7, 5, 5, 7, 9,10,11,10, 9, 8, 6, 6, 8,10, |
14,14,11,11, 9, 8, 9,10,17,17,14,13,10, 9,10,10, |
}; |
static const static_codebook _huff_book__44p3_long = { |
2, 64, |
(char *)_huff_lengthlist__44p3_long, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const long _vq_quantlist__44p3_p1_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p3_p1_0[] = { |
1, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, |
}; |
static const static_codebook _44p3_p1_0 = { |
5, 243, |
(char *)_vq_lengthlist__44p3_p1_0, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__44p3_p1_0, |
0 |
}; |
static const long _vq_quantlist__44p3_p2_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44p3_p2_0[] = { |
3, 7, 7, 0, 0, 0, 8, 8, 0, 0, 0, 8, 8, 0, 0, 0, |
11,11, 0, 0, 0, 0, 0, 0, 0, 0,10, 9, 0, 0, 0, 0, |
0, 0, 0, 0, 9, 9, 0, 0, 0,10,11, 0, 0, 0, 0, 0, |
0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, |
0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0,12,12, 0, 0, |
0, 0, 0, 0, 0, 0,11,11, 0, 0, 0,12,12, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, |
5, 5, 0, 0, 0, 7, 7, 0, 0, 0, 9, 9, 0, 0, 0, 0, |
0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, |
0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, |
0, 0, 0, 0, 0, 0, 0, 5, 6, 0, 0, 0, 7, 7, 0, 0, |
0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, |
8, 8, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0,11,11, 0, 0, 0, 9, 9, 0, |
0, 0,10,10, 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, |
0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, |
10,10, 0, 0, 0, 0, 0, 0, 0, 0,10,10, 0, 0, 0, 0, |
0, 0, 0, 0, 9, 9, 0, 0, 0,10,10, 0, 0, 0, 0, 0, |
0, 0, 0,11,12, 0, 0, 0, 0, 0, 0, 0, 0,11,11, 0, |
0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 9, 9, 0, 0, 0, 7, 7, 0, 0, 0, 8, 8, 0, 0, |
0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, |
0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 9, 9, 0, 0, 0, 0, |
0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, |
0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0,10,10, 0, |
0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0,11,11, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, |
5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 7, 7, |
0, 0, 0, 9, 9, 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, |
0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, |
0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, |
0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 9, 9, 0, 0, 0, 0, |
0, 0, 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, |
0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 9, 9, 0, 0, 0, 7, 7, 0, 0, 0, 8, 8, 0, |
0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, |
0, 0, 0, 0, 0, 0, 8, 7, 0, 0, 0, 9, 9, 0, 0, 0, |
0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 7, |
7, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0,11,11, |
0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0,10,10, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 7, |
7, 0, 0, 0, 9, 9, 0, 0, 0,10,10, 0, 0, 0, 0, 0, |
0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, |
0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, |
0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 9, 9, 0, 0, 0, |
0, 0, 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 9, |
9, 0, 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0,10,10, 0, 0, 0, 9, 9, 0, 0, 0,10,10, |
0, 0, 0,11,12, 0, 0, 0, 0, 0, 0, 0, 0,10,10, 0, |
0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0,11,11, 0, 0, |
0, 0, 0, 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, |
9, 9, 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0,11, |
11, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0,12,12, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10,10, 0, 0, 0, |
9, 9, 0, 0, 0,10,10, 0, 0, 0,12,12, 0, 0, 0, 0, |
0, 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, |
0, 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0,10,10, 0, |
0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0,11,11, 0, 0, |
0, 0, 0, 0, 0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, |
10,10, 0, 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, |
}; |
static const static_codebook _44p3_p2_0 = { |
5, 3125, |
(char *)_vq_lengthlist__44p3_p2_0, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44p3_p2_0, |
0 |
}; |
static const long _vq_quantlist__44p3_p3_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p3_p3_0[] = { |
1, 5, 5, 5, 8, 8, 0, 8, 8, 6, 9, 9, 8,10,10, 0, |
8, 8, 0, 9, 9, 0,12,12, 0, 8, 8, 4, 7, 7, 6,10, |
10, 0,12,12, 7,11,11, 9,12,12, 0,12,12, 0,13,13, |
0,15,15, 0,12,12, 0, 7, 7, 0, 7, 7, 0, 8, 8, 0, |
8, 8, 0,10,10, 0, 7, 7, 0, 8, 8, 0,11,11, 0, 7, |
7, 5, 7, 7, 9, 9, 9, 0,11,10, 9, 9, 9,11,12,12, |
0,10,10, 0,11,11, 0,13,13, 0,11,11, 6, 7, 7, 9, |
10,10, 0,12,12,10,11,11,11,12,12, 0,12,12, 0,13, |
13, 0,15,15, 0,12,12, 0,10,10, 0,11,11, 0,11,11, |
0,12,12, 0,13,13, 0,11,11, 0,12,12, 0,15,15, 0, |
11,11, 0, 8, 8, 0,10,10, 0,12,12, 0,11,11, 0,12, |
12, 0,12,12, 0,12,12, 0,15,15, 0,11,11, 0, 7, 7, |
0,10,10, 0,12,12, 0,10,10, 0,12,13, 0,12,12, 0, |
13,13, 0,14,14, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, |
}; |
static const static_codebook _44p3_p3_0 = { |
5, 243, |
(char *)_vq_lengthlist__44p3_p3_0, |
1, -533200896, 1614282752, 2, 0, |
(long *)_vq_quantlist__44p3_p3_0, |
0 |
}; |
static const long _vq_quantlist__44p3_p3_1[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p3_p3_1[] = { |
3, 4, 4, 0, 8, 8, 0, 8, 8, 0, 9, 9, 0,10,10, 0, |
8, 8, 0, 9, 9, 0,10,10, 0, 8, 8, 0, 7, 7, 0, 8, |
8, 0, 8, 8, 0, 8, 8, 0, 8, 8, 0, 8, 8, 0, 8, 8, |
0, 8, 8, 0, 8, 8, 0, 7, 7, 0, 6, 6, 0, 7, 7, 0, |
7, 7, 0,10,10, 0, 6, 6, 0, 7, 7, 0,10,10, 0, 6, |
5, 0, 8, 8, 0, 7, 7, 0, 8, 8, 0, 8, 8, 0, 9, 9, |
0, 7, 7, 0, 8, 8, 0, 9, 9, 0, 7, 7, 0, 6, 6, 0, |
9,10, 0,10,10, 0,10,10, 0,11,11, 0, 9, 9, 0,10, |
10, 0,11,11, 0, 9, 9, 0, 8, 8, 0, 8, 8, 0, 8, 8, |
0, 9, 9, 0, 9, 9, 0, 8, 8, 0, 8, 8, 0, 9, 9, 0, |
7, 7, 0, 8, 8, 0, 7, 7, 0, 7, 7, 0, 8, 8, 0, 9, |
9, 0, 7, 7, 0, 7, 7, 0, 9, 9, 0, 6, 6, 0, 6, 6, |
0,10,10, 0,10,10, 0,10,10, 0,12,12, 0, 9, 9, 0, |
10,10, 0,12,12, 0, 9, 9, 0, 8, 8, 0, 7, 7, 0, 8, |
8, 0, 8, 8, 0, 9, 9, 0, 7, 7, 0, 8, 8, 0, 9, 9, |
0, 7, 7, |
}; |
static const static_codebook _44p3_p3_1 = { |
5, 243, |
(char *)_vq_lengthlist__44p3_p3_1, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__44p3_p3_1, |
0 |
}; |
static const long _vq_quantlist__44p3_p4_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p3_p4_0[] = { |
1, 6, 6, 7, 7, 7, 7, 7, 7, 7, 8, 8,10,11,11, 9, |
8, 8, 8, 8, 8,11,11,11,10, 8, 8, 5, 7, 7, 9,11, |
11,10,11,11,10,11,11,12,13,14,11,12,12,10,11,11, |
13,14,14,12,12,12, 5, 6, 6, 8, 6, 6, 8, 7, 7, 8, |
7, 7,11,10,10,10, 7, 7, 9, 7, 7,12,11,11,11, 7, |
7, 7, 7, 7,11,10,10,12,10,10,11,10,10,15,13,13, |
13,10,10,12,11,11,15,13,13,14,11,11, 7, 7, 7,11, |
11,11,12,11,11,12,11,11,14,14,14,14,12,12,12,12, |
12,16,15,15,14,12,12, 0,10,10, 0,11,11, 0,11,12, |
0,11,11, 0,14,14, 0,11,11, 0,12,12, 0,15,15, 0, |
11,11, 8, 8, 8,12,10,10,12,10,10,13,11,11,15,13, |
13,14,11,11,12,10,10,16,14,14,14,10,10, 8, 7, 7, |
12,11,11,13,11,11,12,11,11,15,14,14,14,12,12,13, |
12,12,15,14,14,15,12,12, 0,11,11, 0,12,12, 0,12, |
12, 0,12,12, 0,15,15, 0,12,12, 0,13,13, 0,14,15, |
0,12,12, |
}; |
static const static_codebook _44p3_p4_0 = { |
5, 243, |
(char *)_vq_lengthlist__44p3_p4_0, |
1, -531365888, 1616117760, 2, 0, |
(long *)_vq_quantlist__44p3_p4_0, |
0 |
}; |
static const long _vq_quantlist__44p3_p4_1[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44p3_p4_1[] = { |
3, 4, 5, 8, 8,12,10,10,12,12,12,10,10,12,12,13, |
11,11,12,12,13,12,12,12,12,13,10,10,13,13,13,13, |
13,13,13,13,10,10,13,13,13,11,11,13,13,14,13,13, |
12,12,13,10,10,13,13,13,13,13,13,13,13,10,10,12, |
12,13,11,11,13,13,13,13,13,12,12,13,12,12,13,13, |
13,13,13,13,13,14,11,11,12,12,14,12,12,13,12,14, |
14,14,12,12,13,14,14,13,13,14,13,13,13,13,14,14, |
14,12,12,14,13,13,13,13,14,14,14,12,12,12, 8, 8, |
11,11,12,12,12,11,11,12,11,11,10,10,13,12,12,10, |
10,13,12,12,10,10,13,12,12,12,12,14,12,12,12,12, |
13,13,13,11,11,14,12,12,11,11,14,12,12,12,12,14, |
12,12,12,12,13,12,12,12,12,13,13,13,11,11,14,12, |
12,11,11,14,12,12,12,12,14,13,13,12,12,14,12,12, |
12,11,14,13,13,11,11,14,13,12,11,11,14,13,13,11, |
11,14,13,13,12,12,14,12,12,12,12,15,13,13,12,12, |
14,12,12,11,11,14,13,13,11,11,12, 9, 9,10,10,12, |
7, 7,11,11,12, 9, 9,12,12,13,10,10,10,10,14,14, |
14,11,11,13, 9, 9,12,12,14,14,14,12,12,13, 8, 8, |
11,11,14, 9, 9,12,12,14,14,14,11,11,13, 9, 9,12, |
12,14,14,14,12,12,14, 8, 8,11,11,14, 9, 9,12,12, |
14,14,14,11,11,14,10,10,12,12,14,14,14,13,13,14, |
9, 9,11,11,14,10,10,12,12,14,14,14,11,11,14,14, |
15,12,12,15,14,14,14,14,15,14,14,11,11,14,14,14, |
12,12,14,14,14,11,11,14,11,11,10,10,14,10,10,10, |
10,14,10,10,10,10,15,11,11, 9, 9,14,12,12, 9, 9, |
15,11,11,11,11,15,13,13,11,11,15,10,10,10,10,15, |
11,11,10,10,15,13,13,11,11,15,11,11,11,11,15,13, |
13,11,11,15,10,10,10,10,15,11,11,10,10,15,13,13, |
11,11,15,12,12,11,11,15,13,13,11,11,15,11,11,10, |
10,15,12,12,10,10,15,13,13,10,10,15,14,14,11,11, |
15,13,13,11,11,15,14,14,10,11,15,13,13,10,10,15, |
13,14,10,10,14,13,13,10,10,14,13,13,10,10,14,13, |
13,10,10,14,13,13, 9, 9,14,14,14, 9, 9,15,14,14, |
11,11,15,14,14,10,10,15,14,14,10,10,15,14,14,11, |
11,15,14,14,10,10,15,14,14,11,11,15,14,14,10,10, |
14,14,14,10,10,15,14,14,10,10,14,14,14,10,10,15, |
14,14,11,11,15,14,14,11,11,14,14,14,10,10,15,14, |
14,10,10,14,14,14, 9, 9,15,15,15,11,11,15,14,14, |
12,12,15,15,14,10,10,15,14,14,10,10,14,15,15, 9, |
9,14,10,10,12,12,17, 9, 9,12,12,17,10,10,13,13, |
17,11,11,12,12,18,14,14,12,12,17,10,10,13,13,17, |
14,14,12,12,17, 9, 9,12,12,17,11,11,12,12,17,14, |
14,12,12,18,10,10,13,13,18,14,14,13,13,18, 9, 9, |
12,12,18,10,10,13,13,18,14,14,12,12,18,11,11,13, |
13,18,14,14,13,13,18,10,10,12,12,17,11,11,12,12, |
17,14,14,12,12,18,15,15,13,13,18,14,14,14,14,18, |
15,15,12,12,18,14,14,12,12,18,15,15,12,12,13, 7, |
7,11,11,14,15,15,11,11,14,15,15,12,12,14,15,15, |
11,11,15,15,15,11,11,14,15,15,12,12,14,15,15,12, |
12,14,15,15,11,11,14,15,15,11,11,15,15,15,12,12, |
14,15,15,12,12,14,15,15,12,12,14,15,15,11,11,14, |
15,15,11,11,15,15,15,12,12,15,15,15,12,12,14,15, |
15,12,12,14,15,14,12,12,14,15,15,11,11,15,14,14, |
12,12,15,15,15,12,12,15,16,16,12,12,15,15,15,12, |
12,15,15,15,12,12,15,15,15,12,12,13,13,13,11,10, |
14,14,15,11,11,14,14,14,12,12,15,14,14,10,10,15, |
15,15,11,11,14,15,15,12,12,14,14,14,11,11,14,15, |
15,11,11,14,15,15,12,12,15,15,15,11,11,14,15,15, |
12,12,14,14,14,12,12,14,15,15,11,11,14,15,15,12, |
12,15,15,15,11,11,15,15,15,12,12,15,14,14,12,12, |
14,15,15,11,11,14,15,15,11,11,15,15,15,10,10,15, |
15,16,12,12,15,15,15,14,14,15,15,15,11,11,15,15, |
15,12,12,15,15,15,11,11,14,11,11,10,10,15, 9, 9, |
12,12,15,10,10,12,12,15,11,11,11,11,15,14,14,12, |
12,15,10,10,13,13,15,14,14,12,12,15, 9, 9,12,12, |
15,10,10,13,13,15,13,13,12,11,15,10,10,12,12,15, |
14,14,12,12,15, 9, 9,11,11,15,11,11,12,12,15,13, |
13,11,11,15,11,11,13,13,15,13,14,13,14,15,11,11, |
11,11,15,11,11,12,12,15,14,14,11,11,15,14,14,13, |
13,15,14,14,20,20,15,14,14,12,12,15,14,14,12,12, |
15,14,14,11,11,14,13,13,10,10,14,13,13,12,12,14, |
14,13,12,12,15,14,14,12,12,15,14,14,11,11,15,14, |
14,12,12,15,14,14,13,13,15,14,14,12,11,15,14,14, |
11,11,15,14,14,13,13,15,14,14,12,12,15,14,14,13, |
13,15,14,14,12,11,15,14,14,12,12,15,14,14,13,13, |
15,14,14,13,13,15,14,14,12,12,15,14,14,12,12,15, |
14,14,12,12,15,15,15,13,13,15,15,15,13,13,15,14, |
14,13,13,15,15,15,13,13,15,14,15,12,12,15,15,15, |
13,13,14,10,10,12,13,17, 9, 9,12,12,17,10,10,13, |
13,17,11,11,12,12,18,14,14,12,12,18,10,10,13,13, |
18,14,14,12,12,17, 9, 9,12,12,18,10,11,13,13,18, |
14,14,12,12,17,10,10,12,12,17,14,14,12,12,17, 9, |
9,12,12,17,11,11,12,12,17,14,14,12,12,18,11,11, |
12,12,18,14,14,13,13,18,11,11,12,12,18,11,11,12, |
12,18,14,14,12,12,18,15,15,12,12,18,14,14,13,13, |
18,15,15,12,12,17,14,14,12,12,17,15,15,12,12,13, |
7, 7,11,11,14,15,15,11,11,14,15,15,11,11,14,15, |
14,12,12,15,15,15,12,11,14,15,15,12,12,14,15,15, |
12,12,14,15,15,11,11,14,15,15,11,11,15,15,15,13, |
13,14,15,15,11,11,14,15,15,13,12,14,15,15,11,11, |
14,15,15,11,11,15,15,15,13,13,14,15,15,12,12,15, |
15,15,12,12,15,15,15,11,11,15,15,15,11,11,15,15, |
15,12,12,15,15,15,13,13,15,16,16,12,12,15,15,15, |
12,13,15,15,15,12,12,15,15,15,12,12,13,13,13,11, |
11,14,14,14,11,11,14,14,14,12,12,14,14,14,10,10, |
15,14,14,11,11,14,15,15,12,12,14,14,14,12,12,14, |
15,15,11,11,14,15,14,12,12,15,14,14,11,11,14,15, |
15,12,12,14,14,14,11,11,14,15,15,11,11,14,14,14, |
12,12,15,15,14,11,11,15,15,15,12,12,15,14,14,12, |
12,14,15,15,11,11,14,15,14,11,11,15,15,15,10,10, |
15,15,15,12,12,15,14,14,14,13,15,15,15,11,11,15, |
15,15,11,11,15,15,15,10,10,14,11,11,10,10,15, 9, |
9,12,12,15,10,10,12,12,15,11,11,11,11,15,14,14, |
12,12,15,10,10,13,13,15,13,13,12,12,15, 9, 9,12, |
12,15,11,11,13,13,15,14,14,12,12,15,10,10,13,13, |
15,13,14,12,12,15, 9, 9,12,12,15,10,10,13,13,15, |
13,13,11,11,15,11,11,13,13,15,14,14,13,13,15,10, |
10,11,11,15,11,11,12,12,15,14,14,11,11,15,14,14, |
13,13,15,14,14,21,20,15,14,14,11,11,15,14,14,12, |
12,15,14,14,11,11,14,13,13,10,10,14,13,13,11,11, |
15,14,14,12,12,15,14,14,12,12,14,14,14,12,12,15, |
14,14,12,12,15,14,14,13,13,14,14,14,11,11,15,14, |
14,11,11,15,14,14,13,13,15,14,14,12,12,15,14,14, |
13,13,14,14,14,11,11,15,14,14,11,11,14,14,14,13, |
13,15,14,14,12,12,15,14,14,12,12,15,14,14,12,12, |
15,14,14,12,12,14,14,14,13,13,15,15,15,13,13,16, |
14,14,12,13,15,15,15,13,13,15,14,14,12,12,15,15, |
15,13,13,15,11,11,13,12,18,10,10,12,12,17,11,11, |
12,12,18,12,12,11,11,18,14,14,12,12,18,11,11,13, |
13,17,14,14,12,12,18,10,10,12,12,18,12,12,12,12, |
18,14,15,12,12,18,11,11,13,13,18,14,14,12,12,17, |
10,10,12,12,18,11,11,12,12,18,15,14,12,12,17,12, |
12,12,12,17,14,14,12,12,17,11,11,11,11,17,12,12, |
12,11,17,15,15,11,11,18,15,15,12,12,18,14,15,13, |
13,18,15,15,11,11,17,15,15,12,12,18,15,15,11,11, |
14, 9, 9,11,11,14,15,15,11,11,15,15,15,11,11,15, |
15,15,12,11,15,15,15,12,12,15,15,15,11,11,15,15, |
15,13,13,14,15,15,11,11,15,15,15,11,11,15,15,15, |
13,13,15,15,15,11,11,15,15,15,13,13,15,15,15,11, |
11,15,15,15,11,11,15,15,15,13,13,15,15,15,12,12, |
15,15,15,13,13,15,15,14,11,11,15,15,15,12,12,15, |
15,15,12,12,16,15,15,13,13,15,16,16,13,13,16,15, |
15,12,12,15,15,15,13,12,15,15,15,12,12,13,12,12, |
11,11,14,14,14,11,11,14,14,14,12,12,15,14,14,11, |
11,15,14,14,12,12,15,14,14,12,12,15,14,14,12,12, |
14,15,15,11,11,15,14,14,12,12,15,14,14,11,11,15, |
14,14,12,12,15,14,14,12,12,14,15,15,11,11,15,14, |
14,12,12,15,14,14,11,11,15,15,15,12,12,15,14,14, |
12,12,15,15,15,11,11,15,14,14,11,11,15,14,15,11, |
11,15,15,15,12,12,15,14,14,13,13,16,15,15,11,11, |
15,14,14,12,12,15,15,15,11,11,14,11,11, 9, 9,15, |
10,10,12,12,14,11,11,12,12,15,12,12,12,12,15,14, |
14,13,13,15,11,11,13,13,15,14,14,13,13,15,10,10, |
12,12,15,12,12,13,13,15,14,14,13,13,15,11,11,12, |
12,15,14,14,13,13,14,10,10,12,12,15,12,12,13,13, |
15,14,14,12,12,15,12,12,13,13,15,14,14,15,15,15, |
11,11,12,12,15,12,12,12,13,15,14,14,12,12,15,15, |
15,14,14,15,14,14,20,20,15,14,14,12,12,15,14,14, |
13,13,15,14,14,12,12,14,13,13,10,10,14,13,13,11, |
11,14,13,13,12,12,14,14,14,12,12,15,14,14,13,13, |
15,14,14,12,12,14,14,14,14,14,14,14,14,11,11,15, |
14,14,12,12,15,14,14,14,14,15,14,14,12,12,14,14, |
14,14,14,14,14,14,11,11,15,14,14,12,12,14,14,14, |
14,14,15,14,14,12,12,15,14,14,13,13,15,14,14,12, |
12,15,14,14,12,12,14,14,14,14,13,15,15,15,14,14, |
15,14,14,13,13,15,15,15,14,14,15,14,14,13,13,15, |
15,15,13,13,14,13,13,13,13,18,15,15,12,12,18,15, |
15,13,12,18,15,16,11,11,18,16,17,12,12,18,15,15, |
13,13,18,17,17,12,12,18,15,15,12,12,17,15,15,12, |
12,18,17,17,12,12,18,15,15,13,13,18,16,17,12,12, |
17,15,15,12,12,18,15,15,12,12,18,16,17,11,12,18, |
16,16,12,12,17,16,17,12,12,18,15,15,11,11,18,15, |
15,12,12,18,17,17,11,11,17,17,17,12,12,18,16,16, |
13,13,18,17,17,11,11,18,16,16,12,12,18,17,17,11, |
11,15,14,14,11,11,16,15,15,11,11,16,15,15,12,12, |
16,15,15,12,12,17,15,15,14,13,16,15,15,12,12,17, |
15,15,14,14,16,15,15,11,11,16,15,15,12,12,18,15, |
15,13,13,16,15,15,11,11,17,15,15,14,14,16,15,15, |
11,11,16,15,15,12,12,17,15,15,13,13,16,15,15,12, |
12,17,16,15,14,14,16,14,15,12,12,16,15,15,12,12, |
18,15,15,13,13,17,15,15,14,14,17,16,16,15,15,17, |
15,15,13,13,17,15,15,14,14,18,15,15,13,13,15,12, |
13,11,11,15,14,14,12,12,16,14,14,12,12,16,14,14, |
12,12,16,14,14,12,12,16,14,14,13,12,17,14,14,13, |
13,16,15,15,12,12,16,14,14,12,12,17,14,14,12,12, |
16,14,14,12,12,17,14,14,13,13,15,15,15,12,12,16, |
14,14,12,12,17,14,14,12,12,17,15,15,12,12,17,14, |
14,13,13,16,15,15,12,12,16,14,14,12,12,17,15,15, |
12,12,18,15,15,13,13,17,14,14,13,13,17,15,15,12, |
12,17,14,14,12,12,17,15,15,12,12,14,15,15, 9, 9, |
15,15,15,12,12,15,15,15,13,13,15,15,15,14,14,15, |
15,15,19,19,15,15,16,13,13,15,15,16,19,20,15,15, |
15,13,12,15,16,16,14,14,15,15,15,19,19,15,15,15, |
13,13,15,16,15,20,19,14,15,15,13,13,15,15,15,14, |
14,15,15,15,19,19,15,15,15,14,14,15,16,16,19,20, |
15,15,15,14,14,15,15,15,14,14,15,15,15,19,19,15, |
15,15,20,19,15,16,16,20,19,15,15,15,19,19,15,16, |
16,20,20,15,15,15,19,20,14,13,13,10,10,14,14,14, |
11,11,14,14,14,12,12,15,14,14,13,13,15,14,14,19, |
20,15,14,14,12,12,14,14,14,20,19,14,14,14,11,11, |
15,14,14,12,12,15,14,14,20,20,15,14,14,12,12,14, |
14,14,20,19,14,14,14,11,11,15,14,14,12,12,15,14, |
14,19,20,15,14,14,13,13,15,14,14,22,19,15,15,14, |
12,12,15,14,14,13,13,14,15,15,22,20,15,15,15,20, |
20,15,14,14,21,20,15,15,15,20,21,15,14,14,20,20, |
14,15,15,20,20, |
}; |
static const static_codebook _44p3_p4_1 = { |
5, 3125, |
(char *)_vq_lengthlist__44p3_p4_1, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44p3_p4_1, |
0 |
}; |
static const long _vq_quantlist__44p3_p5_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44p3_p5_0[] = { |
2, 6, 6,14,14, 6, 7, 7,14,14, 7, 7, 7,15,15, 0, |
12,12,15,15, 0,13,13,15,15, 7, 8, 8,15,15,10,10, |
10,16,16, 9, 8, 8,15,15, 0,13,13,18,17, 0,13,13, |
16,16, 8, 8, 8,15,15,12,11,11,16,16, 9, 8, 8,15, |
15, 0,13,13,18,18, 0,13,13,16,16, 0,14,14,17,17, |
0,20, 0,19,20, 0,12,12,16,16, 0,16,16,20,22, 0, |
14,14,16,16, 0,14,14,17,17, 0,20,22,20,19, 0,13, |
13,15,16, 0,17,18, 0,21, 0,15,15,16,16, 5, 7, 7, |
13,13, 8, 9, 9,14,14,10,10,10,14,14, 0,20,22,18, |
18, 0,22,21,18,17, 9,10,10,14,14,12,12,12,17,17, |
12,10,10,14,14, 0, 0,20,17,17, 0,22,21,17,18,11, |
10,10,14,14,14,13,13,18,18,12,11,11,14,14, 0,22, |
21,18,19, 0,20, 0,17,17, 0,22, 0,18,18, 0, 0, 0, |
0, 0, 0,20,20,17,17, 0,22, 0,22,21, 0,21, 0,19, |
18, 0,22,22,18,18, 0, 0, 0, 0, 0, 0,21, 0,17,17, |
0,22, 0,20,20, 0, 0, 0,19,18, 6, 6, 6,12,12, 8, |
6, 6,10,10, 8, 6, 6,13,12, 0,10,10,11,11, 0,11, |
11,13,13, 8, 7, 7,13,13,11, 9, 9,13,13,10, 6, 6, |
12,12, 0,10,10,14,14, 0,10,10,13,13, 9, 7, 7,13, |
13,12,10,10,13,13,10, 6, 6,12,12, 0,11,11,15,15, |
0,10,10,13,13, 0,12,12,15,14, 0,19,20,16,17, 0, |
9, 9,13,13, 0,14,14,20,21, 0,12,11,13,12, 0,12, |
12,15,14, 0,20,19,17,17, 0,10,10,12,13, 0,15,15, |
22,21, 0,12,12,12,13, 0,10,10,12,12, 0,11,11,15, |
15, 0,11,11,15,15, 0,15,15,22,22, 0,16,17, 0, 0, |
0,11,11,15,15, 0,14,14,18,18, 0,11,11,16,16, 0, |
16,15, 0,21, 0,16,16, 0, 0, 0,12,12,15,15, 0,14, |
14,19,19, 0,11,11,15,15, 0,15,15,22, 0, 0,16,16, |
22, 0, 0,16,16, 0,21, 0, 0, 0, 0, 0, 0,15,15,19, |
20, 0,18,18, 0, 0, 0,17,17, 0, 0, 0,17,17, 0, 0, |
0, 0, 0, 0, 0, 0,16,15,22,21, 0,20,20, 0, 0, 0, |
18,18, 0, 0, 0,10,10,12,12, 0,10,10,11,11, 0,11, |
11,12,12, 0,11,11, 9, 9, 0,13,12,12,12, 0,11,11, |
13,13, 0,13,13,12,12, 0,10,10,12,12, 0,13,12,13, |
13, 0,12,12,12,12, 0,11,11,13,13, 0,13,13,12,12, |
0,10,10,12,12, 0,13,13,14,13, 0,12,12,12,12, 0, |
14,13,13,14, 0,20,21,15,15, 0,11,11,12,12, 0,15, |
16,20,20, 0,12,13,10,10, 0,13,13,14,13, 0,20,20, |
15,15, 0,11,11,12,12, 0,16,17,21,21, 0,13,13,11, |
11, 6, 7, 7,16,15,11, 9, 9,14,15,12, 9, 9,16,16, |
0,13,13,15,15, 0,14,14,17,17,10, 9, 9,16,16,14, |
12,12,16,16,12, 9, 9,15,15, 0,13,13,17,18, 0,13, |
13,15,15,12,10,10,17,17,15,12,12,17,17,13, 9, 9, |
16,16, 0,13,13,18,19, 0,14,14,16,16, 0,15,15,18, |
18, 0, 0, 0,20,19, 0,12,12,17,16, 0,16,17, 0,21, |
0,14,15,16,16, 0,15,15,18,18, 0, 0,22,19,21, 0, |
13,13,16,16, 0,18,17,22,22, 0,15,15,16,16, 7, 7, |
7,13,13,11,10,10,15,15,12,10,10,14,14, 0,21, 0, |
18,17, 0,21,22,18,18,11,10,10,15,15,14,12,12,17, |
17,14,11,11,14,14, 0,21,20,18,18, 0,22,21,18,17, |
12,11,10,16,16,16,14,14,17,19,14,11,11,15,15, 0, |
0,22,19,19, 0,21,22,18,18, 0,21, 0,18,19, 0, 0, |
0,22, 0, 0,22,21,17,17, 0, 0, 0,20,22, 0, 0,21, |
18,18, 0, 0, 0,19,20, 0, 0, 0, 0, 0, 0, 0,21,17, |
17, 0, 0, 0,22,21, 0, 0, 0,19,19,10, 9, 9,14,13, |
13,10,10,12,12,13,10,10,14,14, 0,13,13,12,12, 0, |
15,14,16,15,13,10,10,14,14,15,12,12,14,14,15,10, |
10,14,14, 0,14,14,15,15, 0,14,13,14,14,13,10,10, |
15,15,17,13,13,15,15,14,10,10,14,14, 0,14,14,15, |
16, 0,14,14,15,15, 0,15,15,16,16, 0,21,22,17,18, |
0,12,12,14,14, 0,17,17,20,21, 0,14,14,14,14, 0, |
15,15,16,16, 0,21,22,18,18, 0,13,13,14,14, 0,18, |
18,22, 0, 0,15,15,14,14, 0,11,11,13,13, 0,12,12, |
16,15, 0,12,12,16,16, 0,16,16, 0, 0, 0,16,17, 0, |
22, 0,12,12,16,16, 0,14,14,17,18, 0,11,11,16,16, |
0,15,15, 0,21, 0,16,16,21,22, 0,12,12,16,16, 0, |
15,15,19,19, 0,12,12,17,16, 0,16,16,21,22, 0,16, |
16, 0, 0, 0,17,17, 0,22, 0, 0, 0, 0, 0, 0,15,15, |
19,20, 0,17,19, 0, 0, 0,17,17,22, 0, 0,17,17, 0, |
22, 0, 0, 0, 0, 0, 0,15,15,21, 0, 0,19,20, 0, 0, |
0,19,18,22, 0, 0,11,12,14,14, 0,11,11,14,14, 0, |
12,12,15,15, 0,13,13,13,13, 0,14,14,16,16, 0,12, |
12,15,15, 0,14,14,16,15, 0,11,11,15,15, 0,13,13, |
16,16, 0,13,13,15,15, 0,12,12,15,15, 0,15,14,16, |
16, 0,11,11,15,15, 0,14,14,17,17, 0,13,13,15,15, |
0,15,15,16,16, 0, 0, 0,18,18, 0,12,12,14,14, 0, |
16,16,22, 0, 0,14,14,15,15, 0,15,15,16,17, 0,21, |
22,18,18, 0,13,13,15,14, 0,18,17,22, 0, 0,14,14, |
15,15, 8, 8, 8,16,15,12,10,10,16,15,12,10,10,16, |
16, 0,14,14,16,17, 0,14,14,17,16,12,10,10,17,18, |
14,12,12,18,18,14,10,10,16,16, 0,14,14,18,18, 0, |
14,14,16,16,12, 9, 9,16,16,17,13,13,16,17,14, 9, |
9,15,15, 0,14,14,18,19, 0,13,13,15,15, 0,15,15, |
18,19, 0, 0, 0,22,21, 0,13,13,16,16, 0,16,16,22, |
0, 0,15,15,16,16, 0,14,14,18,17, 0, 0, 0,20, 0, |
0,13,13,16,16, 0,18,18, 0, 0, 0,15,15,16,16, 8, |
7, 7,13,13,12,10,10,15,15,12,10,10,14,14, 0,22, |
22,19,18, 0, 0, 0,18,18,12,10,10,15,15,14,13,13, |
17,17,14,11,11,15,15, 0,19,20,18,18, 0,22,21,17, |
18,13,11,11,15,15,16,13,13,18,18,14,11,11,14,15, |
0,22,21,20,19, 0,22,21,17,17, 0, 0,22,19,18, 0, |
0, 0, 0, 0, 0,22,20,17,17, 0, 0, 0,21,20, 0, 0, |
0,19,17, 0, 0,22,19,19, 0, 0, 0, 0, 0, 0,22,20, |
18,17, 0, 0, 0, 0, 0, 0, 0, 0,18,18, 0,10,10,14, |
14, 0,11,11,14,14, 0,11,11,15,15, 0,14,14,14,14, |
0,15,15,16,16, 0,11,11,16,16, 0,13,13,16,16, 0, |
11,11,15,15, 0,14,14,16,16, 0,14,14,15,15, 0,11, |
11,15,15, 0,13,13,15,15, 0,10,10,15,15, 0,15,15, |
17,17, 0,14,14,14,14, 0,16,16,16,16, 0, 0,22,19, |
19, 0,13,13,14,14, 0,17,17, 0, 0, 0,15,15,14,14, |
0,16,16,17,17, 0, 0,22,18,18, 0,13,13,14,14, 0, |
21,18, 0, 0, 0,15,15,14,14, 0,11,11,13,13, 0,12, |
12,15,15, 0,12,12,16,15, 0,16,16, 0, 0, 0,17,17, |
22,22, 0,12,12,16,16, 0,14,14,18,18, 0,11,12,16, |
16, 0,15,16, 0,21, 0,16,16,22,21, 0,12,12,16,16, |
0,15,15,19,20, 0,11,12,16,16, 0,15,15,20,22, 0, |
16,16, 0,22, 0,17,17,22, 0, 0, 0, 0, 0, 0, 0,15, |
15,21,22, 0,19,18, 0, 0, 0,17,17, 0, 0, 0,17,17, |
0,22, 0, 0, 0, 0, 0, 0,16,15,22, 0, 0,19,19, 0, |
0, 0,17,18, 0, 0, 0,12,12,15,15, 0,12,12,15,15, |
0,12,12,15,15, 0,13,13,14,14, 0,15,15,16,17, 0, |
12,12,16,16, 0,14,14,16,16, 0,12,11,15,16, 0,14, |
14,16,17, 0,14,14,16,16, 0,13,12,16,16, 0,15,15, |
16,16, 0,11,11,15,15, 0,14,14,16,16, 0,14,14,15, |
15, 0,15,15,18,17, 0, 0,22, 0,20, 0,13,13,15,15, |
0,16,17,22,22, 0,14,14,15,15, 0,15,15,17,18, 0, |
20, 0,19,19, 0,13,13,15,15, 0,18,18,22, 0, 0,14, |
14,15,15, 0,11,11,16,16, 0,14,14,17,16, 0,13,13, |
17,17, 0,16,16,17,17, 0,17,17,18,19, 0,12,12,16, |
17, 0,15,15,18,18, 0,12,12,16,16, 0,16,16,19,18, |
0,16,16,17,16, 0,12,13,17,17, 0,17,16,18,17, 0, |
13,12,16,16, 0,16,16,18,19, 0,16,16,16,17, 0,16, |
16,18,18, 0,22, 0,22,22, 0,13,13,16,16, 0,19,18, |
22,20, 0,16,15,16,16, 0,16,17,18,18, 0, 0, 0,22, |
20, 0,14,14,16,16, 0,19,19, 0, 0, 0,16,16,16,16, |
0, 9, 9,13,13, 0,13,13,15,15, 0,14,14,15,15, 0, |
0,22,17,18, 0,22, 0,18,19, 0,12,12,15,15, 0,15, |
16,17,17, 0,14,14,14,14, 0,22, 0,18,18, 0,21,22, |
17,17, 0,13,13,15,15, 0,17,17,17,18, 0,14,14,15, |
15, 0,22,21,21,19, 0,20,21,17,17, 0,21,21,19,18, |
0, 0, 0, 0, 0, 0,21,21,17,17, 0, 0, 0,22,22, 0, |
0,22,19,18, 0, 0,21,19,18, 0, 0, 0, 0,22, 0,19, |
20,17,17, 0, 0, 0, 0,22, 0, 0, 0,19,18, 0,19,19, |
15,16, 0,21,19,16,17, 0, 0,21,17,17, 0, 0,22,17, |
17, 0,22,22,18,19, 0,20,20,16,16, 0, 0,22,18,18, |
0,20,19,16,17, 0,22,21,20,19, 0, 0,21,17,17, 0, |
21,20,17,17, 0, 0, 0,18,18, 0,19,19,17,16, 0,22, |
0,19,19, 0,21,22,17,18, 0, 0,22,19,18, 0, 0, 0, |
19,20, 0,19,19,16,16, 0,22,22,22, 0, 0,20,22,16, |
16, 0,22,20,18,19, 0, 0, 0,20,19, 0,20,20,16,16, |
0, 0, 0, 0, 0, 0,22,20,17,16, 0,11,11,13,13, 0, |
14,13,15,15, 0,13,13,16,15, 0,18,17,21, 0, 0,18, |
18,21, 0, 0,12,12,15,15, 0,15,16,17,18, 0,12,12, |
15,15, 0,17,17,22,20, 0,17,18,22, 0, 0,12,12,17, |
16, 0,16,17,19,19, 0,13,13,16,16, 0,17,17, 0,22, |
0,17,17, 0,21, 0,18,18,20,22, 0, 0, 0, 0, 0, 0, |
15,15,21,20, 0,20,19, 0, 0, 0,18,18,22, 0, 0,17, |
17,22, 0, 0, 0, 0, 0, 0, 0,15,16,20,22, 0,20,21, |
0, 0, 0,19,18, 0, 0, 0,15,15,19,19, 0,17,16,20, |
20, 0,16,17,20,21, 0,18,17, 0, 0, 0,19,19, 0, 0, |
0,15,15,21,19, 0,19,19, 0, 0, 0,15,15,22,22, 0, |
18,18, 0,22, 0,17,18,22,21, 0,15,15,20,19, 0,19, |
19, 0, 0, 0,15,15,20,22, 0,18,19,20, 0, 0,18,17, |
21,21, 0,18,18,19,22, 0, 0, 0, 0, 0, 0,15,15,20, |
19, 0,19,19, 0, 0, 0,18,18,21,22, 0,18,18,22, 0, |
0, 0, 0, 0, 0, 0,15,15,19,20, 0,21,21, 0, 0, 0, |
17,17,20,20, 0,12,12,17,17, 0,14,14,16,17, 0,13, |
14,17,17, 0,16,16,17,17, 0,17,17,17,19, 0,13,13, |
17,17, 0,16,16,18,18, 0,13,13,16,16, 0,16,16,18, |
18, 0,16,16,17,17, 0,13,13,17,17, 0,17,17,18,17, |
0,12,12,15,16, 0,17,18,19,20, 0,16,16,16,16, 0, |
17,16,18,19, 0, 0,22,21,22, 0,14,14,16,16, 0,19, |
19, 0, 0, 0,16,16,16,16, 0,16,16,18,17, 0, 0,22, |
21,21, 0,14,14,16,16, 0,22,20,22, 0, 0,16,16,15, |
15, 0, 9, 9,13,13, 0,14,14,15,15, 0,14,14,14,14, |
0,22,22,18,18, 0, 0,22,18,18, 0,12,12,15,15, 0, |
16,16,18,17, 0,14,14,14,14, 0,20,21,18,18, 0,22, |
21,17,17, 0,13,13,15,15, 0,17,17,18,18, 0,14,14, |
14,14, 0, 0,21,18,19, 0, 0,22,17,17, 0,22,22,19, |
18, 0, 0, 0, 0, 0, 0,19,21,17,17, 0, 0, 0,22,20, |
0, 0,21,18,19, 0, 0,22,18,18, 0, 0, 0, 0,22, 0, |
20,22,17,17, 0, 0, 0,20,22, 0, 0, 0,18,18, 0,19, |
21,16,16, 0,20,22,16,17, 0,20, 0,17,17, 0,22, 0, |
18,17, 0,21, 0,18,19, 0,20,20,17,17, 0,22, 0,18, |
18, 0,21,20,17,17, 0, 0,20,20,19, 0, 0,21,18,17, |
0,21,21,17,17, 0,22, 0,18,17, 0,19,19,17,17, 0, |
0,22,20,21, 0, 0,21,17,17, 0,22, 0,18,18, 0, 0, |
0,20,22, 0,20,19,16,16, 0, 0, 0, 0, 0, 0,22,22, |
17,17, 0,22, 0,18,19, 0, 0, 0,21,20, 0,19,21,16, |
17, 0, 0, 0, 0, 0, 0,22,22,17,16, 0,11,11,13,13, |
0,13,13,15,15, 0,13,13,15,15, 0,17,17,22,21, 0, |
18,18,22, 0, 0,12,13,16,15, 0,15,16,18,18, 0,13, |
13,16,16, 0,17,17, 0,22, 0,17,17,22,22, 0,13,13, |
16,16, 0,16,16,19,18, 0,13,13,16,16, 0,18,17, 0, |
20, 0,18,17,20, 0, 0,17,17,21, 0, 0, 0, 0, 0, 0, |
0,15,15,21,22, 0,19,20, 0, 0, 0,18,18, 0, 0, 0, |
18,17, 0, 0, 0, 0, 0, 0, 0, 0,16,16,22,22, 0,20, |
20, 0, 0, 0,21,19, 0, 0, 0,15,15,20,19, 0,16,16, |
22,20, 0,17,17, 0,22, 0,18,18, 0,22, 0,19,17, 0, |
0, 0,15,16,22,20, 0,18,19, 0, 0, 0,16,16,22,20, |
0,18,18, 0,22, 0,18,18,22, 0, 0,16,16,21,20, 0, |
19,20, 0,22, 0,16,16, 0,22, 0,18,18, 0,22, 0,18, |
18, 0,21, 0,19,18, 0,22, 0, 0, 0, 0, 0, 0,16,16, |
21,20, 0,20, 0, 0, 0, 0,18,18,21, 0, 0,18,18, 0, |
0, 0, 0, 0, 0, 0, 0,16,16,21,19, 0, 0, 0, 0, 0, |
0,18,18, 0,21, |
}; |
static const static_codebook _44p3_p5_0 = { |
5, 3125, |
(char *)_vq_lengthlist__44p3_p5_0, |
1, -528744448, 1616642048, 3, 0, |
(long *)_vq_quantlist__44p3_p5_0, |
0 |
}; |
static const long _vq_quantlist__44p3_p5_1[] = { |
3, |
2, |
4, |
1, |
5, |
0, |
6, |
}; |
static const char _vq_lengthlist__44p3_p5_1[] = { |
2, 3, 3, 3, 3, 3, 3, |
}; |
static const static_codebook _44p3_p5_1 = { |
1, 7, |
(char *)_vq_lengthlist__44p3_p5_1, |
1, -533200896, 1611661312, 3, 0, |
(long *)_vq_quantlist__44p3_p5_1, |
0 |
}; |
static const long _vq_quantlist__44p3_p6_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p3_p6_0[] = { |
1, 6, 6, 7, 7, 7, 7, 8, 8, 7, 9, 9,11,11,11, 9, |
8, 8, 8, 9, 9,12,11,11, 9, 8, 8, 6, 7, 7,10,11, |
10,10,10,10,11,11,10,14,13,14,12,11,11,11,11,11, |
15,14,14,13,12,12, 5, 6, 6, 8, 5, 5, 8, 7, 7, 8, |
8, 8,12,10,10, 9, 7, 7, 9, 7, 8,12,10,10,10, 7, |
7, 7, 8, 8,12,10,10,12,10,10,11,10,10,15,13,13, |
13,10,10,11,10,10,16,13,14,14,10,10, 7, 7, 7,12, |
11,11,12,11,11,11,11,11,16,15,15,14,12,12,12,11, |
11,16,15,16,14,12,12,10, 9, 9,14,11,11,13,11,11, |
12,11,11,16,14,14,14,11,11,12,11,11,17,15,15,14, |
11,11, 7, 8, 8,12,11,11,12,10,10,12,10,10,16,14, |
13,14,10,10,12,10,10,17,14,14,14,10,10, 8, 7, 7, |
13,11,11,12,11,11,12,11,11,16,15,14,14,12,12,12, |
11,11,16,15,14,15,12,12,11,10,10,13,11,11,13,12, |
11,13,11,11,17,14,14,14,11,11,13,11,11,17,14,15, |
14,11,11, |
}; |
static const static_codebook _44p3_p6_0 = { |
5, 243, |
(char *)_vq_lengthlist__44p3_p6_0, |
1, -527106048, 1620377600, 2, 0, |
(long *)_vq_quantlist__44p3_p6_0, |
0 |
}; |
static const long _vq_quantlist__44p3_p6_1[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p3_p6_1[] = { |
2, 6, 6, 7, 7, 7, 7, 7, 7, 7, 8, 8, 9, 9, 9, 9, |
7, 7, 8, 8, 8, 9, 9, 9, 9, 7, 8, 6, 7, 7, 8, 8, |
8, 8, 8, 8, 9, 8, 8,10, 9, 9,10, 8, 8,10, 8, 8, |
10, 9, 9,10, 8, 8, 6, 6, 6, 8, 6, 6, 8, 7, 7, 8, |
7, 7,10, 8, 8, 9, 7, 7, 9, 7, 7,10, 8, 9, 9, 7, |
7, 7, 7, 7,10, 8, 8,11, 8, 8,10, 8, 8,12, 9, 9, |
12, 8, 8,11, 9, 9,12, 9, 9,11, 8, 8, 7, 7, 7,10, |
9, 9,10, 9, 9,10, 9, 9,11,10,10,10, 9, 9,11, 9, |
9,11,10,10,11, 9, 9, 9, 8, 8,10, 9, 9,10, 9, 9, |
11, 9, 9,11,10,10,11, 9, 9,11, 9, 9,11,10,10,11, |
9, 9, 8, 8, 8,11, 9, 9,11, 9, 9,11, 9, 9,12, 9, |
9,12, 8, 8,12, 9, 9,12, 9, 9,12, 8, 8, 8, 7, 7, |
10, 9, 9,10, 9, 9,11, 9, 9,11,11,11,11, 9, 9,11, |
10,10,11,11,11,11, 9, 9,10, 9, 9,11, 9, 9,11, 9, |
10,11,10, 9,11,10,10,11, 9, 9,11, 9,10,11,10,10, |
11, 9, 9, |
}; |
static const static_codebook _44p3_p6_1 = { |
5, 243, |
(char *)_vq_lengthlist__44p3_p6_1, |
1, -530841600, 1616642048, 2, 0, |
(long *)_vq_quantlist__44p3_p6_1, |
0 |
}; |
static const long _vq_quantlist__44p3_p7_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p3_p7_0[] = { |
1, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, |
}; |
static const static_codebook _44p3_p7_0 = { |
5, 243, |
(char *)_vq_lengthlist__44p3_p7_0, |
1, -513979392, 1633504256, 2, 0, |
(long *)_vq_quantlist__44p3_p7_0, |
0 |
}; |
static const long _vq_quantlist__44p3_p7_1[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p3_p7_1[] = { |
1, 9, 9, 6, 9, 9, 5, 9, 9, 8, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 8, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 8, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 7, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 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,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 const static_codebook _44p3_p7_1 = { |
5, 243, |
(char *)_vq_lengthlist__44p3_p7_1, |
1, -516716544, 1630767104, 2, 0, |
(long *)_vq_quantlist__44p3_p7_1, |
0 |
}; |
static const long _vq_quantlist__44p3_p7_2[] = { |
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 const char _vq_lengthlist__44p3_p7_2[] = { |
1, 3, 2, 5, 4, 7, 7, 8, 8, 9, 9,10,10,11,11,12, |
12,13,13,14,14,15,15,15,15, |
}; |
static const static_codebook _44p3_p7_2 = { |
1, 25, |
(char *)_vq_lengthlist__44p3_p7_2, |
1, -518864896, 1620639744, 5, 0, |
(long *)_vq_quantlist__44p3_p7_2, |
0 |
}; |
static const long _vq_quantlist__44p3_p7_3[] = { |
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 const char _vq_lengthlist__44p3_p7_3[] = { |
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, |
}; |
static const static_codebook _44p3_p7_3 = { |
1, 25, |
(char *)_vq_lengthlist__44p3_p7_3, |
1, -529006592, 1611661312, 5, 0, |
(long *)_vq_quantlist__44p3_p7_3, |
0 |
}; |
static const char _huff_lengthlist__44p3_short[] = { |
4, 5,16, 9, 9,12,17,18, 4, 2,18, 6, 5, 9,13,15, |
10, 7, 7, 6, 7, 9,13,13, 8, 5, 6, 5, 5, 7,11,12, |
8, 4, 7, 4, 3, 6,10,12,11, 8, 9, 7, 6, 8,11,12, |
15,13,13,11, 9, 7,10,12,16,12,16,12, 6, 5, 8,11, |
}; |
static const static_codebook _huff_book__44p3_short = { |
2, 64, |
(char *)_huff_lengthlist__44p3_short, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const long _vq_quantlist__44p4_l0_0[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44p4_l0_0[] = { |
1, 4, 4, 8, 8, 9, 8, 9, 9,10,10,10,10, 4, 6, 5, |
8, 7, 9, 9, 9, 9,10, 9,10,10, 4, 5, 6, 7, 8, 9, |
9, 9, 9, 9,10, 9,10, 8, 9, 8, 9, 8,10, 9,11, 9, |
12,10,11,10, 8, 8, 9, 8, 9, 9,10, 9,11,10,11,10, |
12, 9,10,10,11,10,11,11,12,11,12,12,12,12, 9,10, |
10,11,11,11,11,11,12,12,12,12,12,10,11,11,12,12, |
12,12,12,12,12,12,12,12,10,11,11,12,12,12,12,12, |
12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,13, |
12,12,11,12,11,12,12,12,12,12,12,12,12,12,12,12, |
12,12,12,12,12,13,12,12,12,12,12,12,11,13,12,12, |
12,13,12,12,12,12,12,12,12, |
}; |
static const static_codebook _44p4_l0_0 = { |
2, 169, |
(char *)_vq_lengthlist__44p4_l0_0, |
1, -526516224, 1616117760, 4, 0, |
(long *)_vq_quantlist__44p4_l0_0, |
0 |
}; |
static const long _vq_quantlist__44p4_l0_1[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44p4_l0_1[] = { |
3, 4, 4, 5, 5, 4, 4, 5, 5, 5, 4, 5, 4, 5, 5, 5, |
5, 6, 5, 6, 5, 6, 5, 6, 5, |
}; |
static const static_codebook _44p4_l0_1 = { |
2, 25, |
(char *)_vq_lengthlist__44p4_l0_1, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44p4_l0_1, |
0 |
}; |
static const long _vq_quantlist__44p4_l1_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p4_l1_0[] = { |
1, 4, 4, 4, 4, 4, 4, 4, 4, |
}; |
static const static_codebook _44p4_l1_0 = { |
2, 9, |
(char *)_vq_lengthlist__44p4_l1_0, |
1, -516716544, 1630767104, 2, 0, |
(long *)_vq_quantlist__44p4_l1_0, |
0 |
}; |
static const char _huff_lengthlist__44p4_lfe[] = { |
1, 3, 2, 3, |
}; |
static const static_codebook _huff_book__44p4_lfe = { |
2, 4, |
(char *)_huff_lengthlist__44p4_lfe, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist__44p4_long[] = { |
3, 5,13, 9, 9,12,16,18, 4, 2,20, 6, 7,10,15,20, |
10, 7, 5, 5, 6, 8,10,13, 8, 5, 5, 3, 5, 7,10,11, |
9, 7, 6, 5, 5, 7, 9, 9,11,10, 8, 7, 6, 6, 8, 8, |
15,15,10,10, 9, 7, 8, 9,17,19,13,12,10, 8, 9, 9, |
}; |
static const static_codebook _huff_book__44p4_long = { |
2, 64, |
(char *)_huff_lengthlist__44p4_long, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const long _vq_quantlist__44p4_p1_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p4_p1_0[] = { |
1, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, |
}; |
static const static_codebook _44p4_p1_0 = { |
5, 243, |
(char *)_vq_lengthlist__44p4_p1_0, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__44p4_p1_0, |
0 |
}; |
static const long _vq_quantlist__44p4_p2_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44p4_p2_0[] = { |
3, 9, 9, 0, 0, 0, 8, 8, 0, 0, 0, 9, 9, 0, 0, 0, |
12,12, 0, 0, 0, 0, 0, 0, 0, 0,10,10, 0, 0, 0, 0, |
0, 0, 0, 0, 9, 9, 0, 0, 0,11,11, 0, 0, 0, 0, 0, |
0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, |
0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0,12,12, 0, 0, |
0, 0, 0, 0, 0, 0,11,11, 0, 0, 0,12,12, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, |
5, 5, 0, 0, 0, 7, 7, 0, 0, 0, 9, 9, 0, 0, 0, 0, |
0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, |
0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, |
0, 0, 0, 0, 0, 0, 0, 5, 5, 0, 0, 0, 7, 7, 0, 0, |
0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, |
7, 7, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0,11,11, 0, 0, 0, 9, 9, 0, |
0, 0,10,10, 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, |
0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, |
10,10, 0, 0, 0, 0, 0, 0, 0, 0,10,10, 0, 0, 0, 0, |
0, 0, 0, 0, 9, 9, 0, 0, 0,10,10, 0, 0, 0, 0, 0, |
0, 0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0,11,11, 0, |
0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 9, 9, 0, 0, 0, 7, 7, 0, 0, 0, 8, 8, 0, 0, |
0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, |
0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 9, 9, 0, 0, 0, 0, |
0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, |
0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0,10,10, 0, |
0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0,11,11, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, |
5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0,10,10, 0, 0, 0, 7, 7, |
0, 0, 0, 9, 9, 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, |
0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, |
0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, |
0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 9, 9, 0, 0, 0, 0, |
0, 0, 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, |
0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 9, 9, 0, 0, 0, 7, 7, 0, 0, 0, 8, 8, 0, |
0, 0,10,11, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, |
0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 9, 9, 0, 0, 0, |
0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 7, |
7, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0,11,11, |
0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0,10,10, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10,10, 0, 0, 0, 7, |
7, 0, 0, 0, 9, 9, 0, 0, 0,10,10, 0, 0, 0, 0, 0, |
0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 0, |
0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, |
0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 9, 9, 0, 0, 0, |
0, 0, 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 9, |
9, 0, 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0,10,10, 0, 0, 0, 9, 9, 0, 0, 0,10,10, |
0, 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, |
0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0,10,10, 0, 0, |
0, 0, 0, 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, |
9, 9, 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0,11, |
11, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0,12,12, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10,10, 0, 0, 0, |
9, 9, 0, 0, 0,10,10, 0, 0, 0,12,12, 0, 0, 0, 0, |
0, 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, |
0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0,10,10, 0, |
0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0,10,10, 0, 0, |
0, 0, 0, 0, 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, |
10,10, 0, 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, |
}; |
static const static_codebook _44p4_p2_0 = { |
5, 3125, |
(char *)_vq_lengthlist__44p4_p2_0, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44p4_p2_0, |
0 |
}; |
static const long _vq_quantlist__44p4_p3_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p4_p3_0[] = { |
1, 6, 6, 5, 7, 8, 0, 8, 8, 6, 9, 9, 7,10,10, 0, |
8, 8, 0, 9, 9, 0,12,12, 0, 8, 8, 4, 7, 7, 6,10, |
10, 0,12,12, 7,11,11, 8,12,12, 0,12,12, 0,13,12, |
0,15,15, 0,12,12, 0, 7, 7, 0, 7, 7, 0, 7, 7, 0, |
8, 8, 0,10,10, 0, 7, 7, 0, 8, 8, 0,11,11, 0, 7, |
7, 5, 7, 7, 8, 9, 9, 0,10,10, 8, 9, 9,11,11,11, |
0,10, 9, 0,11,11, 0,13,13, 0,10,10, 6, 7, 7, 8, |
10,10, 0,12,12, 9,10,10,10,12,12, 0,12,12, 0,12, |
12, 0,15,15, 0,12,12, 0,10,10, 0,11,11, 0,11,11, |
0,11,11, 0,13,13, 0,11,11, 0,11,11, 0,15,15, 0, |
10,10, 0, 8, 8, 0,10,10, 0,12,12, 0,11,11, 0,12, |
12, 0,12,12, 0,12,12, 0,15,15, 0,11,11, 0, 7, 7, |
0,10,10, 0,12,12, 0,10,10, 0,12,12, 0,12,12, 0, |
13,13, 0,14,14, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, |
}; |
static const static_codebook _44p4_p3_0 = { |
5, 243, |
(char *)_vq_lengthlist__44p4_p3_0, |
1, -533200896, 1614282752, 2, 0, |
(long *)_vq_quantlist__44p4_p3_0, |
0 |
}; |
static const long _vq_quantlist__44p4_p3_1[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p4_p3_1[] = { |
3, 5, 5, 0, 8, 8, 0, 8, 8, 0, 9, 9, 0,10,10, 0, |
8, 8, 0, 8, 8, 0,10,10, 0, 8, 8, 0, 7, 7, 0, 8, |
8, 0, 7, 7, 0, 8, 8, 0, 8, 8, 0, 8, 8, 0, 8, 8, |
0, 8, 8, 0, 8, 8, 0, 7, 7, 0, 6, 6, 0, 7, 7, 0, |
7, 7, 0,10,10, 0, 6, 6, 0, 7, 7, 0,10,10, 0, 5, |
5, 0, 8, 8, 0, 7, 7, 0, 8, 8, 0, 8, 8, 0, 9, 9, |
0, 7, 7, 0, 8, 8, 0, 9, 9, 0, 7, 7, 0, 6, 6, 0, |
9,10, 0,10,10, 0,10,10, 0,11,11, 0, 9, 9, 0,10, |
10, 0,11,11, 0, 9, 9, 0, 8, 8, 0, 8, 8, 0, 8, 8, |
0, 9, 9, 0, 9, 9, 0, 7, 7, 0, 8, 8, 0, 9, 9, 0, |
7, 7, 0, 8, 8, 0, 7, 7, 0, 7, 7, 0, 8, 8, 0, 9, |
9, 0, 7, 7, 0, 7, 7, 0, 8, 8, 0, 6, 6, 0, 6, 6, |
0,10,10, 0,10,10, 0,10,10, 0,12,12, 0, 9, 9, 0, |
10,10, 0,12,12, 0, 9, 9, 0, 8, 8, 0, 7, 7, 0, 7, |
7, 0, 8, 8, 0, 9, 9, 0, 7, 7, 0, 8, 8, 0, 9, 9, |
0, 6, 6, |
}; |
static const static_codebook _44p4_p3_1 = { |
5, 243, |
(char *)_vq_lengthlist__44p4_p3_1, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__44p4_p3_1, |
0 |
}; |
static const long _vq_quantlist__44p4_p4_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p4_p4_0[] = { |
1, 6, 6, 6, 7, 7, 7, 8, 8, 7, 8, 8,10,11,11, 9, |
8, 8, 8, 8, 8,11,11,12, 9, 8, 8, 5, 7, 7, 9,11, |
11,10,11,11,10,11,11,12,14,14,11,12,12,10,12,12, |
13,14,14,12,12,12, 5, 6, 6, 7, 6, 6, 8, 7, 7, 8, |
7, 7,11,10,10,10, 7, 7, 9, 8, 8,12,11,11,10, 7, |
7, 7, 7, 7,11,10,10,12,10,10,11,10,10,15,13,13, |
13,10,10,12,11,11,15,13,13,14,11,11, 7, 7, 7,11, |
11,11,12,11,11,12,11,11,14,14,14,13,12,12,12,12, |
12,16,15,15,14,12,12, 0,10,10, 0,11,11, 0,12,12, |
0,11,11, 0,14,14, 0,11,11, 0,12,12, 0,15,15, 0, |
11,11, 7, 8, 8,12,11,10,12,10,10,12,11,11,15,13, |
13,14,11,11,12,10,10,16,14,14,14,10,10, 8, 7, 7, |
12,11,11,12,11,11,12,11,11,15,14,14,14,12,12,13, |
12,12,15,14,14,15,13,13, 0,11,11, 0,12,12, 0,12, |
12, 0,12,12, 0,15,15, 0,12,12, 0,13,13, 0,15,14, |
0,12,12, |
}; |
static const static_codebook _44p4_p4_0 = { |
5, 243, |
(char *)_vq_lengthlist__44p4_p4_0, |
1, -531365888, 1616117760, 2, 0, |
(long *)_vq_quantlist__44p4_p4_0, |
0 |
}; |
static const long _vq_quantlist__44p4_p4_1[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44p4_p4_1[] = { |
4, 5, 5, 9, 9,12, 9, 9,12,12,12,10,10,13,13,13, |
11,11,12,12,13,13,13,12,12,13,10,10,13,13,13,13, |
13,13,13,13,10,10,13,12,13,11,11,13,13,13,14,14, |
13,12,13,10,10,13,13,12,13,13,13,13,13,10,10,12, |
12,13,11,11,13,13,13,14,14,12,12,13,12,12,13,13, |
13,13,13,13,13,13,11,11,12,12,13,11,11,13,13,13, |
14,14,12,12,13,14,14,13,13,14,13,13,14,14,14,14, |
14,12,12,13,14,14,13,13,14,14,14,12,12,12, 8, 8, |
12,12,13,12,12,11,11,13,11,11,11,11,14,12,12,11, |
11,14,12,12,10,11,14,12,12,12,12,14,12,12,12,12, |
13,13,13,11,11,14,12,12,11,11,14,12,12,12,12,14, |
12,12,12,12,14,12,12,12,12,14,13,13,11,11,14,12, |
12,11,11,14,12,12,12,12,14,13,13,12,12,14,12,12, |
12,12,14,13,13,11,11,14,12,12,11,11,14,13,13,11, |
11,15,13,13,12,12,14,12,12,12,12,15,13,13,12,12, |
14,12,12,11,11,15,13,13,11,11,12, 9, 9,11,11,13, |
7, 7,11,11,13, 8, 8,12,12,14,10,10,10,10,14,14, |
14,11,11,14, 8, 8,12,12,14,14,14,12,12,14, 7, 7, |
11,11,14, 9, 9,12,12,14,14,14,11,11,14, 8, 8,12, |
12,14,14,14,12,12,14, 7, 7,11,11,14, 9, 9,12,12, |
14,14,14,11,11,14,10,10,12,12,14,14,14,13,13,14, |
9, 9,11,11,14,10,10,12,11,15,14,14,11,11,14,15, |
15,12,12,15,14,14,14,14,15,14,14,11,11,15,14,14, |
12,12,15,14,14,11,11,14,11,11,10,10,15,10,10,10, |
10,15,10,10,10,10,15,11,11, 9, 9,15,12,13, 9, 9, |
15,11,11,11,11,15,13,13,11,11,15,10,10,10,10,15, |
11,11,10,10,15,13,13,11,11,15,11,11,11,11,15,13, |
13,11,11,15,10,10,10,10,15,11,11,10,10,15,13,13, |
10,11,15,12,12,11,11,15,13,13,11,10,15,11,11,10, |
10,15,11,12,10, 9,15,13,13,10,10,15,14,14,11,11, |
15,13,13,11,11,15,14,14,10,10,15,13,13,10,10,15, |
14,14,10,10,14,13,13,10,10,15,13,13,10,10,15,13, |
13,10,10,14,14,14, 8, 9,15,14,14, 9, 9,15,14,14, |
11,11,15,14,14,10,10,15,14,14,10,10,15,14,14,11, |
11,15,14,14,10,10,15,14,14,11,11,15,14,14,10,10, |
15,14,14,10,10,15,14,14,10,10,15,14,14, 9, 9,15, |
14,14,11,11,15,14,14,11,11,15,14,14,10,10,15,14, |
14,10,10,14,14,14, 9, 9,15,15,15,11,11,15,14,14, |
12,12,15,15,15,10,10,15,14,15,10,10,15,15,15, 9, |
9,15,10,10,13,13,17, 8, 8,12,12,17,10, 9,13,13, |
18,11,11,12,12,18,14,14,12,12,17, 9, 9,13,13,17, |
13,13,12,12,18, 8, 8,12,12,18,10,10,12,12,18,14, |
14,12,12,18,10,10,13,13,18,13,13,13,13,18, 9, 9, |
12,12,18,10,10,13,13,18,14,14,12,12,18,11,11,13, |
13,18,14,14,13,13,18,10,10,12,12,17,11,11,12,12, |
18,14,14,12,12,18,14,14,13,13,18,14,14,13,13,19, |
14,15,12,12,18,14,14,12,12,18,15,15,12,12,13, 7, |
7,11,11,14,15,15,11,11,14,16,15,11,11,14,15,15, |
11,11,14,15,15,11,11,14,15,15,11,12,14,15,15,12, |
12,13,15,15,11,11,14,15,15,11,11,15,15,15,12,12, |
14,15,15,12,12,14,16,16,12,12,14,15,15,11,11,14, |
15,15,11,11,15,15,15,12,12,15,15,15,12,12,14,15, |
15,12,12,14,15,15,11,11,14,15,15,11,11,15,14,15, |
12,12,15,15,15,12,12,15,16,16,12,12,15,15,15,12, |
12,14,15,15,12,12,15,15,15,12,12,13,13,13,11,11, |
14,14,15,11,11,14,14,14,12,12,14,15,15,10,10,15, |
15,15,11,11,14,15,15,12,12,14,14,14,11,11,14,15, |
15,11,11,14,15,15,12,12,15,15,15,11,11,14,15,15, |
12,12,14,14,15,11,11,14,15,15,11,11,14,15,15,12, |
12,15,15,15,11,11,15,15,15,12,12,14,15,15,12,12, |
14,15,15,10,10,14,15,15,11,11,15,15,15,10,10,15, |
15,15,12,12,15,15,15,14,14,15,15,15,11,11,15,15, |
15,11,11,15,15,15,11,11,14,10,10,10,10,15, 9, 9, |
12,11,15,10,10,12,12,15,11,11,11,11,15,13,13,12, |
12,16,10,10,12,12,15,13,13,12,12,15, 9, 9,11,11, |
15,10,10,13,12,15,13,13,11,11,15,10,10,12,12,15, |
13,13,12,12,15, 9, 9,11,11,15,10,10,12,12,15,13, |
13,11,11,15,11,11,12,12,15,13,13,13,13,15,10,10, |
11,11,15,11,11,12,12,15,13,14,11,11,15,14,14,13, |
13,16,14,14,20,19,15,14,14,11,11,15,13,14,12,12, |
15,14,14,11,11,14,13,13,10,10,14,14,13,11,11,15, |
13,14,12,12,15,14,14,12,12,15,14,14,11,11,15,14, |
14,12,12,15,15,14,13,13,15,14,14,11,11,15,14,14, |
11,11,15,14,14,13,13,15,14,14,12,12,15,14,14,13, |
13,15,14,14,11,11,15,14,14,11,11,15,14,14,13,13, |
15,14,14,12,12,15,14,14,12,12,15,14,14,12,12,15, |
14,14,11,11,15,15,15,12,12,15,15,15,13,13,16,14, |
14,12,12,15,15,15,13,13,15,15,15,12,12,15,15,15, |
12,12,14,10,10,13,13,17, 9, 9,12,12,17, 9, 9,13, |
13,17,11,11,12,12,18,14,14,12,12,18,10,10,13,13, |
18,14,13,12,12,18, 9, 9,12,12,18,10,10,12,13,18, |
14,14,12,12,17, 9, 9,12,12,17,13,14,12,12,17, 9, |
9,12,12,17,10,10,12,12,17,14,14,11,11,18,11,11, |
12,12,18,14,14,12,13,18,10,10,12,12,18,11,11,12, |
12,18,14,14,11,11,18,15,15,12,12,18,14,14,13,13, |
18,14,15,12,12,17,14,14,12,12,17,15,15,12,12,13, |
7, 7,11,11,14,15,15,11,11,14,15,15,11,11,14,15, |
15,11,11,14,15,15,11,11,14,15,15,11,11,14,15,15, |
12,12,14,15,15,11,11,14,15,15,11,11,15,15,15,12, |
12,14,15,15,11,11,14,15,15,12,12,14,15,15,11,11, |
15,15,15,11,11,15,15,15,12,12,14,15,15,12,12,14, |
15,16,12,12,14,15,15,11,11,14,15,15,11,11,15,15, |
15,12,12,15,15,15,12,12,15,16,16,12,12,15,15,15, |
12,12,15,15,15,12,12,15,15,15,12,12,13,13,13,12, |
12,14,14,14,11,11,14,14,14,12,12,14,14,14,10,10, |
15,15,15,11,11,14,15,15,12,12,14,14,14,11,11,14, |
15,15,11,11,14,14,14,12,12,15,15,14,11,11,14,15, |
15,12,12,14,14,14,11,11,14,15,15,11,11,14,14,14, |
11,11,15,14,14,10,10,14,15,15,12,12,14,14,14,12, |
12,14,15,15,10,10,14,15,15,11,11,15,15,15,10,10, |
15,15,15,12,12,15,14,14,13,13,15,15,15,10,10,15, |
14,14,11,11,15,15,15,10,10,14,10,10,10,10,14, 9, |
9,12,12,15,10,10,12,12,14,11,11,11,11,15,13,14, |
12,12,15,10,10,13,13,15,13,13,12,12,15, 9, 9,12, |
12,15,10,10,13,13,15,13,14,11,11,15,10,10,12,12, |
15,13,13,12,12,15, 9, 9,11,11,15,10,10,12,12,15, |
13,13,11,11,15,11,11,12,12,15,13,13,13,13,15,10, |
10,11,11,15,11,11,12,12,15,14,14,11,11,15,14,14, |
13,13,15,14,14,20,19,15,14,14,11,11,15,14,14,12, |
12,15,14,14,11,11,14,13,13,11,11,15,13,13,11,11, |
15,14,13,12,12,15,14,14,11,12,15,14,14,11,11,15, |
14,14,12,12,14,14,14,13,13,15,14,14,11,11,15,14, |
14,11,11,15,14,14,13,13,15,14,14,12,12,15,14,14, |
13,13,14,14,14,11,11,15,14,14,11,11,15,14,14,13, |
13,15,14,14,12,12,15,14,14,12,12,15,14,14,12,12, |
15,14,14,11,11,14,14,14,12,12,15,15,15,13,13,16, |
14,14,12,12,15,15,15,13,13,15,14,14,12,12,15,15, |
15,12,12,15,11,11,13,13,18,10,10,12,12,17,11,11, |
12,12,18,12,12,11,11,18,14,14,12,12,18,10,10,13, |
13,18,14,14,12,12,18,10,10,12,12,18,11,11,12,12, |
18,14,14,12,12,18,11,11,12,13,18,14,14,12,12,18, |
10,10,12,12,18,11,11,12,12,18,14,14,11,11,18,11, |
11,12,12,18,14,14,12,12,17,10,10,11,11,17,12,12, |
11,11,17,14,14,11,11,18,15,15,12,12,18,14,14,13, |
13,18,15,15,11,11,18,15,14,12,12,18,15,15,11,11, |
14, 8, 8,11,11,14,15,15,10,10,14,15,15,11,11,14, |
15,15,11,11,15,15,15,12,12,15,15,15,11,11,15,15, |
15,12,12,14,15,15,10,10,15,15,15,11,11,15,15,15, |
12,12,15,15,15,11,11,15,15,15,13,13,14,15,15,10, |
10,15,15,15,11,11,15,15,15,12,12,15,15,15,12,12, |
15,16,16,12,12,15,14,14,11,11,15,15,15,11,11,15, |
15,15,12,12,16,15,15,13,13,15,16,16,13,13,16,15, |
15,12,12,15,15,15,12,12,15,15,15,12,12,14,13,13, |
11,11,14,14,14,11,11,14,14,14,12,12,15,14,14,11, |
11,15,15,14,11,11,15,14,14,12,12,15,14,14,12,12, |
14,15,15,11,11,15,14,14,12,12,15,14,14,11,11,15, |
14,15,12,12,15,14,14,12,12,14,15,15,11,11,15,14, |
14,11,11,15,14,14,11,11,15,15,14,12,12,15,14,14, |
12,12,15,15,15,10,11,15,14,14,11,11,15,15,15,10, |
10,15,15,15,12,12,16,14,14,13,13,15,15,15,11,11, |
15,14,14,11,11,15,15,15,11,11,14,11,11, 9, 9,14, |
10,10,12,12,15,11,11,12,12,15,12,12,12,12,15,14, |
14,13,13,15,11,11,12,12,15,14,14,13,13,14,10,10, |
12,12,15,11,11,13,13,15,14,14,12,12,15,10,10,12, |
12,14,14,14,13,13,14,10,10,11,11,15,11,11,12,12, |
15,14,14,12,12,15,12,12,13,13,15,14,14,14,14,15, |
11,11,11,11,15,12,11,12,12,15,14,14,11,11,15,15, |
15,13,14,15,14,14,20,19,15,14,14,12,12,15,14,14, |
13,13,15,14,14,12,12,14,13,13,10,10,14,13,13,11, |
11,14,13,13,11,11,15,14,14,12,12,15,14,14,12,12, |
15,14,14,12,11,14,14,14,13,13,15,14,14,11,11,15, |
14,14,11,11,15,14,14,14,14,15,14,14,11,12,15,14, |
14,13,13,14,14,14,11,11,15,14,14,11,11,15,14,14, |
14,14,15,14,14,12,12,15,14,14,13,13,15,14,14,11, |
11,14,14,14,12,12,15,14,14,13,13,15,15,15,13,13, |
15,14,14,13,13,15,15,15,13,13,15,14,14,13,13,15, |
15,15,13,13,15,14,14,13,13,18,15,15,12,12,18,15, |
15,12,12,18,16,16,11,11,18,17,17,12,12,18,15,15, |
13,13,18,17,17,12,12,18,15,15,12,12,18,15,16,12, |
12,18,17,17,12,12,18,15,15,13,12,17,16,17,12,12, |
17,15,15,11,12,18,15,15,12,12,18,17,17,11,11,18, |
16,16,12,12,18,17,16,12,12,18,15,15,11,11,18,15, |
15,12,12,18,17,17,11,11,18,17,17,12,12,18,16,16, |
13,13,18,17,17,11,11,17,16,16,11,11,18,17,17,11, |
11,15,15,15,11,11,16,15,15,11,11,16,15,15,11,11, |
16,15,15,12,12,17,15,15,14,14,16,15,15,11,11,17, |
15,15,14,14,16,15,15,11,11,16,15,15,12,12,18,15, |
15,13,13,16,15,15,11,11,17,15,15,14,14,16,15,15, |
11,11,16,15,15,12,12,17,15,15,13,13,16,15,15,12, |
12,17,16,15,14,14,16,15,15,11,11,16,15,15,12,12, |
18,15,15,13,13,17,15,15,14,14,17,16,16,15,15,18, |
14,15,13,13,18,15,15,14,14,18,15,15,13,13,15,13, |
13,12,12,15,14,14,12,12,16,14,14,12,12,16,14,14, |
12,12,17,14,15,12,12,16,14,14,12,12,17,14,14,13, |
13,16,15,15,12,12,16,14,14,12,12,17,14,14,12,12, |
16,14,14,12,12,17,14,14,13,13,15,15,15,11,11,16, |
14,14,12,12,17,14,14,12,12,16,15,15,12,12,17,14, |
14,13,12,16,15,15,11,11,16,14,14,12,12,17,15,15, |
11,11,17,15,15,13,13,17,14,14,13,13,18,15,15,12, |
12,17,14,14,12,12,17,15,15,12,12,14,15,15, 9, 9, |
14,15,15,12,12,15,16,15,13,13,15,15,15,14,14,15, |
15,15,21,19,15,15,15,13,13,15,15,15,19,19,15,15, |
15,12,12,15,16,16,14,14,15,15,15,19,19,15,16,15, |
13,13,15,16,16,19,20,15,15,15,12,13,15,16,16,14, |
14,15,15,15,20,19,15,15,15,14,14,15,16,16,19,19, |
15,15,15,14,13,15,15,15,14,14,15,15,15,19,19,15, |
16,16,20,19,15,17,16,21,20,15,15,15,20,19,15,16, |
16,20,20,15,15,15,19,20,14,13,13,10,10,14,14,14, |
11,11,14,14,14,12,12,15,14,14,13,13,15,15,14,20, |
20,15,14,14,12,12,14,14,14,19,19,15,14,14,11,11, |
15,14,14,12,12,15,14,14,20,19,15,14,14,12,12,14, |
14,14,20,20,14,14,14,11,11,15,14,14,12,12,15,14, |
14,20,21,15,14,14,13,13,15,14,14,20,20,15,14,14, |
12,12,15,14,14,13,13,14,15,15,20,20,15,15,15,20, |
19,15,14,14,20,19,15,15,15,20,20,15,14,14,21,20, |
15,15,15,20,20, |
}; |
static const static_codebook _44p4_p4_1 = { |
5, 3125, |
(char *)_vq_lengthlist__44p4_p4_1, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44p4_p4_1, |
0 |
}; |
static const long _vq_quantlist__44p4_p5_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44p4_p5_0[] = { |
1, 7, 6,15,15, 7, 8, 8,15,15, 8, 8, 8,15,15, 0, |
13,13,16,16, 0,14,14,16,16, 7, 9, 9,16,16,10,11, |
11,17,17,10, 8, 8,15,16, 0,14,14,18,18, 0,14,14, |
16,16, 9, 9, 9,16,16,12,11,11,17,17,10, 9, 9,15, |
15, 0,14,14,19,19, 0,14,14,16,16, 0,15,15,18,17, |
0, 0, 0,20,20, 0,13,13,16,16, 0,17,17,22,20, 0, |
15,15,17,17, 0,15,15,18,18, 0,22,21,20,21, 0,13, |
13,16,16, 0,18,18, 0,22, 0,15,15,17,17, 6, 7, 7, |
13,13, 9,10,10,15,15,11,10,10,15,15, 0,21,22,18, |
18, 0, 0, 0,18,18,10,10,10,15,15,12,13,13,17,17, |
12,11,11,15,15, 0,22,22,18,18, 0, 0,21,18,18,12, |
11,11,15,15,15,14,14,18,18,13,11,11,15,15, 0, 0, |
21,18,19, 0,21,22,18,19, 0,22, 0,18,19, 0, 0, 0, |
0, 0, 0,21,21,18,18, 0,22, 0, 0,21, 0, 0, 0,19, |
18, 0, 0, 0,18,19, 0, 0, 0, 0, 0, 0,20,20,18,17, |
0, 0,22, 0,21, 0, 0, 0,19,19, 6, 6, 6,13,13, 8, |
6, 6,11,11, 9, 7, 7,13,13, 0,10,10,11,11, 0,12, |
12,14,14, 9, 8, 8,14,14,12,10,10,13,13,10, 7, 7, |
13,13, 0,11,11,15,15, 0,11,11,13,13, 9, 8, 8,14, |
14,13,10,10,13,14,11, 7, 7,13,13, 0,11,11,15,15, |
0,11,11,13,13, 0,12,12,15,15, 0,21,21,17,17, 0, |
10,10,13,13, 0,14,14,20,20, 0,12,12,13,13, 0,12, |
12,15,15, 0,21,22,17,18, 0,10,10,13,13, 0,16,16, |
20,21, 0,12,12,13,13, 0,11,11,13,13, 0,12,12,16, |
16, 0,12,12,16,16, 0,16,16, 0,21, 0,17,18, 0, 0, |
0,12,12,15,15, 0,15,15,18,18, 0,12,12,16,16, 0, |
16,16,21,22, 0,17,17,22,21, 0,12,12,16,16, 0,15, |
15,19,19, 0,12,12,16,16, 0,16,16,22,22, 0,17,16, |
22, 0, 0,17,18, 0, 0, 0, 0, 0, 0, 0, 0,15,15,21, |
20, 0,19,20, 0,22, 0,18,18, 0, 0, 0,18,17, 0, 0, |
0, 0, 0, 0, 0, 0,16,16,22,21, 0,20,20, 0,22, 0, |
20,19, 0, 0, 0,11,11,12,12, 0,10,10,11,11, 0,11, |
11,12,12, 0,12,12,10,10, 0,13,13,12,12, 0,11,11, |
13,13, 0,13,13,12,12, 0,10,10,12,12, 0,13,13,14, |
13, 0,12,12,12,12, 0,12,12,13,13, 0,14,14,13,13, |
0,10,10,12,12, 0,13,13,14,14, 0,13,12,12,12, 0, |
14,14,14,14, 0,21,21,16,16, 0,12,12,12,12, 0,16, |
16,20,21, 0,13,13,11,11, 0,14,14,14,14, 0,20,20, |
16,15, 0,12,12,12,12, 0,17,17,20,20, 0,13,13,11, |
11, 7, 8, 8,16,16,11,10,10,15,15,12,10,10,17,17, |
0,14,14,16,15, 0,15,15,17,17,11, 9, 9,16,16,14, |
12,12,17,17,13, 9, 9,16,15, 0,14,14,19,18, 0,14, |
14,16,16,12,10,10,17,18,16,13,13,17,18,14,10,10, |
16,16, 0,14,14,19,19, 0,14,15,17,17, 0,15,15,18, |
19, 0, 0, 0,20,20, 0,13,13,17,17, 0,17,18, 0,22, |
0,15,15,16,17, 0,15,15,18,18, 0, 0, 0,20,21, 0, |
14,14,17,17, 0,19,18, 0, 0, 0,16,16,17,17, 8, 7, |
7,14,14,12,11,11,15,15,13,11,11,15,15, 0, 0, 0, |
18,19, 0,21,20,18,18,12,10,11,15,16,14,13,13,18, |
18,14,11,11,15,15, 0,20,20,19,18, 0,20, 0,18,18, |
13,11,11,16,16,17,15,15,19,19,14,12,12,15,15, 0, |
21, 0,18,20, 0,22,22,18,19, 0,22,22,19,19, 0, 0, |
0, 0, 0, 0,21,22,19,18, 0, 0, 0, 0,21, 0, 0, 0, |
19,19, 0, 0,22,20,20, 0, 0, 0, 0, 0, 0,22, 0,18, |
18, 0, 0, 0, 0,22, 0, 0, 0,19,20,11,10,10,14,14, |
14,11,11,13,13,14,11,11,15,15, 0,14,13,12,12, 0, |
15,15,16,16,13,11,11,15,15,16,13,13,15,15,15,10, |
10,14,15, 0,14,14,16,16, 0,14,14,15,15,13,11,11, |
15,15,18,14,14,15,15,15,10,10,15,14, 0,14,14,16, |
16, 0,14,14,15,15, 0,15,15,17,16, 0,21,22,18,18, |
0,13,13,14,14, 0,18,17,20,21, 0,15,15,14,14, 0, |
15,16,16,17, 0, 0, 0,19,18, 0,13,13,15,14, 0,19, |
19, 0, 0, 0,15,15,14,14, 0,12,12,14,13, 0,13,13, |
16,16, 0,12,12,16,16, 0,16,16,22, 0, 0,17,18, 0, |
22, 0,13,13,16,16, 0,15,15,18,18, 0,12,12,16,16, |
0,16,16,22,22, 0,17,17, 0, 0, 0,13,13,17,17, 0, |
16,16,19,20, 0,12,12,17,17, 0,17,17,22, 0, 0,17, |
17,22,21, 0,18,18, 0, 0, 0, 0, 0, 0, 0, 0,16,16, |
21,21, 0,19,19, 0, 0, 0,18,18, 0,22, 0,18,18, 0, |
22, 0, 0, 0, 0, 0, 0,16,16,22, 0, 0,20,20, 0, 0, |
0,19,18, 0, 0, 0,12,12,15,15, 0,12,12,15,14, 0, |
13,13,15,15, 0,14,14,14,14, 0,15,15,16,16, 0,13, |
13,15,16, 0,15,15,16,16, 0,12,12,15,15, 0,14,14, |
16,16, 0,14,14,15,15, 0,13,13,15,16, 0,15,15,16, |
16, 0,12,12,15,15, 0,15,15,17,17, 0,14,14,15,15, |
0,15,15,17,17, 0,21,21,19,19, 0,13,13,14,14, 0, |
17,17,22, 0, 0,14,14,15,15, 0,15,15,17,17, 0,22, |
0,18,20, 0,13,13,15,15, 0,18,18, 0,22, 0,15,15, |
14,15, 8, 8, 8,17,16,12,10,10,16,16,13,10,10,17, |
16, 0,15,15,17,17, 0,15,15,17,17,12,11,11,18,18, |
15,12,12,18,18,15,10,10,16,17, 0,14,14,18,18, 0, |
14,14,17,17,13,10,10,16,16,17,14,14,17,17,15,10, |
10,16,15, 0,15,15,19,20, 0,14,14,15,16, 0,16,16, |
19,19, 0, 0, 0,21,22, 0,13,13,17,17, 0,18,17, 0, |
21, 0,15,15,17,17, 0,15,15,18,19, 0, 0,22, 0,21, |
0,13,13,16,17, 0,19,19, 0,22, 0,16,15,16,16, 9, |
8, 8,14,14,12,11,11,15,15,13,11,11,15,15, 0,21, |
20,19,18, 0, 0, 0,19,18,12,11,11,16,15,15,13,13, |
17,18,14,11,11,15,15, 0,22,22,19,18, 0,22,21,18, |
18,14,11,11,15,15,17,14,14,18,18,15,12,12,15,15, |
0,22,22,20,19, 0, 0,21,18,18, 0, 0,22,20,20, 0, |
0, 0, 0, 0, 0,20,21,18,18, 0, 0, 0,21,21, 0, 0, |
0,20,19, 0,22,21,19,19, 0, 0, 0, 0, 0, 0, 0,22, |
17,18, 0, 0,22, 0,22, 0,22, 0,19,19, 0,11,11,15, |
15, 0,11,11,14,14, 0,12,12,15,15, 0,15,15,14,14, |
0,16,16,16,16, 0,12,12,16,16, 0,14,14,16,16, 0, |
11,11,15,15, 0,15,15,17,17, 0,15,15,15,15, 0,12, |
12,16,16, 0,14,14,15,15, 0,11,11,15,15, 0,15,15, |
17,17, 0,15,15,14,15, 0,16,16,17,17, 0, 0, 0,19, |
19, 0,14,14,15,15, 0,18,18,21, 0, 0,15,15,14,15, |
0,16,16,17,17, 0,21, 0,19,19, 0,14,14,15,15, 0, |
20,20,22, 0, 0,16,15,14,14, 0,12,12,13,13, 0,12, |
12,16,16, 0,12,12,16,16, 0,16,16,22,21, 0,18,17, |
21, 0, 0,13,13,16,16, 0,15,15,18,19, 0,12,12,16, |
16, 0,16,17,22, 0, 0,17,17, 0,22, 0,13,13,17,16, |
0,15,15,19,19, 0,12,12,16,16, 0,16,16,21,20, 0, |
17,16,22, 0, 0,18,18,22,21, 0, 0, 0, 0, 0, 0,15, |
16,21,21, 0,19,19, 0, 0, 0,18,17, 0, 0, 0,18,18, |
21, 0, 0, 0, 0, 0, 0, 0,16,16,22,22, 0,20,21, 0, |
0, 0,18,19, 0,22, 0,13,13,16,16, 0,12,12,15,15, |
0,13,13,16,16, 0,14,14,15,15, 0,15,15,17,17, 0, |
13,13,17,16, 0,15,15,17,17, 0,12,12,16,16, 0,15, |
15,17,17, 0,14,14,16,16, 0,13,13,16,17, 0,15,15, |
17,17, 0,12,12,16,16, 0,14,14,17,17, 0,14,14,16, |
16, 0,16,16,17,17, 0,21, 0,21,19, 0,13,13,16,16, |
0,17,17, 0, 0, 0,15,15,16,16, 0,16,15,18,18, 0, |
22, 0,20,20, 0,13,13,15,15, 0,18,18, 0, 0, 0,15, |
15,15,15, 0,12,12,17,17, 0,14,14,17,17, 0,14,14, |
17,17, 0,17,17,18,17, 0,17,17,19,18, 0,13,13,17, |
17, 0,16,16,18,18, 0,13,13,16,16, 0,17,17,19,19, |
0,16,16,17,17, 0,13,13,18,18, 0,17,17,18,18, 0, |
13,13,17,17, 0,17,17,19,19, 0,16,17,17,17, 0,17, |
17,19,19, 0,21, 0,21,19, 0,14,14,16,16, 0,20,19, |
0,21, 0,16,16,16,16, 0,17,18,19,19, 0, 0, 0, 0, |
21, 0,15,15,16,17, 0,21,20, 0, 0, 0,17,18,16,17, |
0, 9, 9,14,14, 0,14,14,15,16, 0,14,14,15,15, 0, |
0, 0,18,18, 0,21, 0,18,19, 0,12,12,15,15, 0,16, |
16,17,17, 0,14,14,14,14, 0,22, 0,19,18, 0,22, 0, |
17,18, 0,14,14,16,15, 0,18,18,19,18, 0,14,15,15, |
15, 0, 0,21,20,20, 0, 0, 0,18,18, 0,21,21,19,19, |
0, 0, 0, 0, 0, 0,21,21,18,18, 0,22, 0,20,20, 0, |
22, 0,19,19, 0,22, 0,19,20, 0, 0, 0, 0, 0, 0, 0, |
21,17,18, 0, 0, 0,22,22, 0, 0, 0,19,18, 0,18,20, |
16,16, 0,21,20,17,17, 0, 0,21,18,18, 0,22,21,18, |
18, 0, 0,22,19,19, 0,20,20,17,17, 0, 0, 0,18,18, |
0,19,20,17,17, 0,22, 0,19,21, 0,22,21,18,18, 0, |
20,19,17,18, 0, 0, 0,19,19, 0,20,20,17,17, 0,22, |
22,21,21, 0,20, 0,18,18, 0,22,22,18,18, 0, 0, 0, |
20,22, 0,20,20,16,16, 0, 0, 0,21, 0, 0,21,20,16, |
17, 0,22, 0,19,20, 0, 0, 0,21,20, 0,19,21,17,17, |
0, 0, 0, 0, 0, 0,21,21,17,17, 0,12,12,13,13, 0, |
14,14,16,16, 0,14,14,16,16, 0,18,18, 0, 0, 0,19, |
18,22, 0, 0,13,13,16,16, 0,16,16,18,18, 0,13,13, |
16,16, 0,17,18,21, 0, 0,18,18,21, 0, 0,13,13,16, |
16, 0,17,17,19,20, 0,13,13,16,17, 0,18,18,21, 0, |
0,18,18,21, 0, 0,18,19, 0,21, 0, 0, 0, 0, 0, 0, |
16,16,21,20, 0,20,20, 0, 0, 0,18,19, 0, 0, 0,18, |
18, 0, 0, 0, 0, 0, 0, 0, 0,16,16, 0,21, 0,22,22, |
0, 0, 0,19,19, 0, 0, 0,16,16,19,20, 0,17,16,22, |
21, 0,17,17,21,20, 0,19,18, 0,22, 0,19,19,22,22, |
0,16,15,22,22, 0,19,19, 0,21, 0,15,15,20,20, 0, |
18,19, 0,21, 0,18,18,22,22, 0,16,16,21,20, 0,20, |
19,21,22, 0,16,15,20,20, 0,19,19, 0,22, 0,18,18, |
21, 0, 0,19,18,21,22, 0, 0, 0, 0, 0, 0,16,16,19, |
21, 0,20,22, 0,22, 0,18,18,20,21, 0,19,18, 0,22, |
0, 0, 0,22, 0, 0,16,16,20,20, 0,21,21, 0, 0, 0, |
18,18,21, 0, 0,12,12,17,17, 0,15,14,17,17, 0,14, |
14,18,18, 0,17,17,17,18, 0,18,18,18,18, 0,13,13, |
18,18, 0,16,17,19,18, 0,13,13,16,17, 0,17,17,18, |
19, 0,17,17,17,17, 0,13,13,17,17, 0,17,18,18,18, |
0,13,13,16,16, 0,18,18,19,20, 0,16,17,17,16, 0, |
17,18,19,18, 0, 0, 0,22,21, 0,15,15,16,16, 0,20, |
20,21,22, 0,17,17,16,16, 0,16,17,18,18, 0, 0, 0, |
21,21, 0,15,15,16,16, 0,21,20, 0, 0, 0,17,17,16, |
16, 0,10,10,14,14, 0,14,14,15,15, 0,14,14,15,15, |
0,22, 0,18,18, 0, 0, 0,19,19, 0,13,13,15,16, 0, |
17,16,18,18, 0,14,14,15,15, 0,21,21,19,18, 0,22, |
21,18,17, 0,14,14,15,15, 0,18,18,19,18, 0,15,15, |
14,14, 0,22,21,19,19, 0,22,21,17,18, 0, 0, 0,19, |
19, 0, 0, 0, 0, 0, 0,20,22,17,17, 0, 0,22,22,20, |
0, 0, 0,19,18, 0,21,22,19,18, 0, 0, 0, 0, 0, 0, |
22,22,17,18, 0, 0, 0,21,22, 0, 0, 0,19,18, 0,20, |
20,17,17, 0,21,21,17,18, 0,21,22,18,18, 0,21, 0, |
18,18, 0,22, 0,19,19, 0,19,21,18,18, 0, 0,22,18, |
18, 0,22,21,17,17, 0,22, 0,20,20, 0, 0, 0,18,18, |
0,22,21,18,18, 0,21, 0,19,19, 0,20,21,17,17, 0, |
0,22,22,20, 0,21,22,17,17, 0, 0,21,19,18, 0, 0, |
0,21,21, 0,21,20,16,17, 0, 0, 0, 0, 0, 0,21, 0, |
17,17, 0,21, 0,19,20, 0, 0, 0,20,22, 0,20,20,17, |
17, 0, 0, 0, 0, 0, 0,21,21,17,17, 0,12,12,13,13, |
0,14,14,16,16, 0,14,14,16,16, 0,18,18,21, 0, 0, |
19,19,22, 0, 0,13,13,16,16, 0,16,16,18,18, 0,13, |
13,16,16, 0,18,18,21,22, 0,18,18, 0,22, 0,13,13, |
16,16, 0,17,17,20,18, 0,13,13,16,16, 0,19,18, 0, |
22, 0,18,18,22,21, 0,18,19, 0, 0, 0, 0, 0, 0, 0, |
0,16,16,21,21, 0,21,21, 0, 0, 0,18,19, 0, 0, 0, |
19,19,21, 0, 0, 0, 0, 0, 0, 0,16,16, 0,21, 0,20, |
20, 0, 0, 0,20,20, 0, 0, 0,16,16,21,20, 0,18,17, |
21,22, 0,17,18, 0,21, 0,18,19,22,22, 0,19,19, 0, |
22, 0,16,17,21,22, 0,20,19, 0, 0, 0,16,16,20,21, |
0,19,19, 0, 0, 0,19,19, 0,22, 0,17,17,21,21, 0, |
19,20, 0, 0, 0,16,16, 0,20, 0,19,20, 0,21, 0,18, |
18, 0,22, 0,19,20,22,22, 0, 0, 0, 0,22, 0,17,17, |
0,21, 0,21,21, 0, 0, 0,18,19,23,21, 0,20,19, 0, |
0, 0, 0, 0, 0, 0, 0,17,17, 0,20, 0, 0, 0, 0, 0, |
0,19,19,23,22, |
}; |
static const static_codebook _44p4_p5_0 = { |
5, 3125, |
(char *)_vq_lengthlist__44p4_p5_0, |
1, -528744448, 1616642048, 3, 0, |
(long *)_vq_quantlist__44p4_p5_0, |
0 |
}; |
static const long _vq_quantlist__44p4_p5_1[] = { |
3, |
2, |
4, |
1, |
5, |
0, |
6, |
}; |
static const char _vq_lengthlist__44p4_p5_1[] = { |
2, 3, 3, 3, 3, 3, 3, |
}; |
static const static_codebook _44p4_p5_1 = { |
1, 7, |
(char *)_vq_lengthlist__44p4_p5_1, |
1, -533200896, 1611661312, 3, 0, |
(long *)_vq_quantlist__44p4_p5_1, |
0 |
}; |
static const long _vq_quantlist__44p4_p6_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p4_p6_0[] = { |
1, 7, 7, 7, 8, 8, 7, 8, 8, 7, 9, 9,11,11,11, 9, |
8, 8, 8, 9, 9,12,11,12, 9, 8, 8, 6, 7, 7,10,11, |
11,10,10,10,11,11,11,14,14,14,12,11,12,11,11,11, |
15,15,14,13,12,12, 5, 6, 6, 8, 5, 5, 8, 7, 7, 8, |
7, 7,12,10,10,10, 7, 6, 9, 8, 8,12,10,10,10, 6, |
6, 7, 8, 8,12,10,10,12,10,10,11,10,10,16,14,14, |
13,10,10,12,10,10,15,14,14,14,10,10, 7, 7, 7,13, |
11,11,13,11,11,12,11,11,16,14,14,14,12,12,12,11, |
11,18,15,15,14,12,12,10, 9,10,14,11,11,13,11,11, |
12,11,11,17,14,14,14,11,11,13,11,11,16,15,15,14, |
11,11, 7, 8, 8,13,11,11,12,10,10,12,10,10,16,14, |
13,13,10,10,12,10,10,17,14,14,14,10,10, 8, 7, 7, |
12,11,11,13,11,11,12,11,11,16,15,14,14,12,12,12, |
11,11,16,15,15,14,12,12,11,10,10,14,11,11,13,11, |
11,13,11,11,17,14,14,14,11,11,13,11,11,18,14,15, |
15,11,10, |
}; |
static const static_codebook _44p4_p6_0 = { |
5, 243, |
(char *)_vq_lengthlist__44p4_p6_0, |
1, -527106048, 1620377600, 2, 0, |
(long *)_vq_quantlist__44p4_p6_0, |
0 |
}; |
static const long _vq_quantlist__44p4_p6_1[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p4_p6_1[] = { |
2, 6, 6, 6, 7, 7, 7, 7, 7, 7, 8, 8, 9, 9, 9, 9, |
7, 7, 8, 8, 8, 9, 9, 9, 9, 8, 8, 6, 7, 7, 8, 8, |
8, 8, 8, 8, 9, 8, 8, 9, 8, 9, 9, 8, 8,10, 8, 8, |
10, 9, 9,10, 8, 8, 6, 6, 6, 8, 6, 6, 8, 7, 7, 8, |
7, 7,10, 8, 8, 9, 7, 7, 9, 7, 7,10, 8, 8, 9, 7, |
7, 7, 7, 7,10, 8, 8,11, 9, 9,10, 9, 9,11, 9, 9, |
11, 8, 8,11, 9, 9,12, 9, 9,12, 8, 8, 7, 7, 7,10, |
9, 9,10, 9, 9,10, 9, 9,11,10,10,10, 9, 9,11, 9, |
10,11,10,11,10, 9, 9, 9, 8, 8,10, 9, 9,10, 9, 9, |
11, 9, 9,11,10,10,11, 9, 9,11, 9, 9,11,10,10,11, |
9, 9, 8, 8, 8,11, 9, 9,11, 9, 9,11, 9, 9,12, 9, |
9,12, 8, 8,11, 9, 9,12, 9, 9,12, 8, 8, 8, 7, 7, |
10, 9, 9,10, 9, 9,10, 9, 9,11,11,11,11, 9, 9,11, |
10,10,11,11,11,11, 9, 9,10, 9, 9,11, 9, 9,11, 9, |
10,11,10,10,11,10,10,11, 9, 9,11,10,10,11,10,10, |
11, 9, 9, |
}; |
static const static_codebook _44p4_p6_1 = { |
5, 243, |
(char *)_vq_lengthlist__44p4_p6_1, |
1, -530841600, 1616642048, 2, 0, |
(long *)_vq_quantlist__44p4_p6_1, |
0 |
}; |
static const long _vq_quantlist__44p4_p7_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p4_p7_0[] = { |
1, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, |
}; |
static const static_codebook _44p4_p7_0 = { |
5, 243, |
(char *)_vq_lengthlist__44p4_p7_0, |
1, -513979392, 1633504256, 2, 0, |
(long *)_vq_quantlist__44p4_p7_0, |
0 |
}; |
static const long _vq_quantlist__44p4_p7_1[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p4_p7_1[] = { |
1, 9, 9, 7, 9, 9, 8, 8, 9, 9, 9, 9, 9, 9, 9, 8, |
9, 9, 7, 9, 9, 9, 9, 9, 9, 9, 9, 7, 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, 6, 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, 5, 9, 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, 8, 9, 8, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 5,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, 8,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 const static_codebook _44p4_p7_1 = { |
5, 243, |
(char *)_vq_lengthlist__44p4_p7_1, |
1, -516716544, 1630767104, 2, 0, |
(long *)_vq_quantlist__44p4_p7_1, |
0 |
}; |
static const long _vq_quantlist__44p4_p7_2[] = { |
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 const char _vq_lengthlist__44p4_p7_2[] = { |
1, 3, 2, 5, 4, 7, 7, 8, 8, 9, 9,10,10,11,11,12, |
12,13,13,14,14,15,15,15,15, |
}; |
static const static_codebook _44p4_p7_2 = { |
1, 25, |
(char *)_vq_lengthlist__44p4_p7_2, |
1, -518864896, 1620639744, 5, 0, |
(long *)_vq_quantlist__44p4_p7_2, |
0 |
}; |
static const long _vq_quantlist__44p4_p7_3[] = { |
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 const char _vq_lengthlist__44p4_p7_3[] = { |
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, |
}; |
static const static_codebook _44p4_p7_3 = { |
1, 25, |
(char *)_vq_lengthlist__44p4_p7_3, |
1, -529006592, 1611661312, 5, 0, |
(long *)_vq_quantlist__44p4_p7_3, |
0 |
}; |
static const char _huff_lengthlist__44p4_short[] = { |
3, 5,16, 9, 9,13,18,21, 4, 2,21, 6, 6,10,15,21, |
16,19, 6, 5, 7,10,13,16, 8, 6, 5, 4, 4, 8,13,16, |
8, 5, 6, 4, 4, 7,12,15,13,10, 9, 7, 7, 9,13,16, |
18,15,13,12, 9, 7,10,14,21,18,13,13, 7, 5, 8,12, |
}; |
static const static_codebook _huff_book__44p4_short = { |
2, 64, |
(char *)_huff_lengthlist__44p4_short, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const long _vq_quantlist__44p5_l0_0[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44p5_l0_0[] = { |
1, 4, 4, 8, 8,10,10,10,10, 9, 8,11,11, 4, 6, 5, |
8, 6,10,10,10,10,10, 9,10, 9, 4, 5, 6, 6, 9,10, |
10,10,10, 9,10, 9,10, 8, 9, 8, 9, 8, 9, 9,10, 9, |
11,10,12,10, 8, 8, 9, 8, 9, 9, 9, 9,10,10,11,10, |
12, 9,10,10,11,10,11,10,12,11,12,11,13,11, 9,10, |
10,10,11,10,11,11,12,11,12,11,12,11,12,12,12,12, |
13,12,13,12,13,12,13,13,11,12,12,12,12,12,12,12, |
13,13,13,13,13,12,12,12,13,13,13,13,13,13,13,13, |
13,13,12,13,12,13,13,13,13,13,13,13,13,13,13,12, |
13,13,13,14,14,13,13,13,13,13,13,13,12,13,12,13, |
13,13,13,13,13,13,13,13,13, |
}; |
static const static_codebook _44p5_l0_0 = { |
2, 169, |
(char *)_vq_lengthlist__44p5_l0_0, |
1, -526516224, 1616117760, 4, 0, |
(long *)_vq_quantlist__44p5_l0_0, |
0 |
}; |
static const long _vq_quantlist__44p5_l0_1[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44p5_l0_1[] = { |
4, 4, 4, 5, 5, 4, 5, 5, 5, 5, 4, 5, 4, 4, 5, 5, |
5, 5, 5, 5, 5, 5, 5, 5, 5, |
}; |
static const static_codebook _44p5_l0_1 = { |
2, 25, |
(char *)_vq_lengthlist__44p5_l0_1, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44p5_l0_1, |
0 |
}; |
static const long _vq_quantlist__44p5_l1_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p5_l1_0[] = { |
1, 4, 4, 4, 4, 4, 4, 4, 4, |
}; |
static const static_codebook _44p5_l1_0 = { |
2, 9, |
(char *)_vq_lengthlist__44p5_l1_0, |
1, -516716544, 1630767104, 2, 0, |
(long *)_vq_quantlist__44p5_l1_0, |
0 |
}; |
static const char _huff_lengthlist__44p5_lfe[] = { |
1, 3, 2, 3, |
}; |
static const static_codebook _huff_book__44p5_lfe = { |
2, 4, |
(char *)_huff_lengthlist__44p5_lfe, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist__44p5_long[] = { |
3, 7,12,14,14,16,18,19, 6, 2, 4, 6, 8, 9,12,14, |
12, 3, 3, 5, 7, 8,11,13,13, 6, 4, 5, 7, 8,10,11, |
14, 8, 7, 7, 7, 7, 9,10,15, 9, 8, 7, 7, 6, 8, 9, |
17,11,11,10, 9, 8, 9, 9,19,14,13,11,10, 9, 9, 9, |
}; |
static const static_codebook _huff_book__44p5_long = { |
2, 64, |
(char *)_huff_lengthlist__44p5_long, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const long _vq_quantlist__44p5_p1_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p5_p1_0[] = { |
2, 5, 5, 5, 7, 7, 5, 7, 7, 5, 7, 7, 7, 8, 9, 7, |
9, 9, 5, 7, 7, 7, 9, 9, 7, 9, 8, 5, 7, 8, 8, 9, |
10, 8, 9,10, 8, 9,10, 9,10,12,10,11,11, 8,10,10, |
10,11,11, 9,11,11, 5, 8, 7, 8, 9, 9, 8,10, 9, 8, |
10,10, 9,11,11,10,11,11, 8,10, 9,10,11,11, 9,12, |
10, 5, 8, 8, 7, 9,10, 8,10, 9, 7, 9, 9, 9,10,11, |
9,11,11, 8,10, 9,10,11,11,10,11,11, 7, 9, 9, 9, |
10,11, 9,11,11, 9, 9,11,10,10,13,11,11,12, 9,11, |
11,11,12,13,11,13,12, 7, 9, 9, 9,11,11, 9,11,10, |
9,11,10,10,11,12,11,13,12, 9,11,11,11,12,13,11, |
13,11, 5, 8, 8, 8, 9,10, 7,10, 9, 8, 9,10,10,11, |
11,10,11,11, 7, 9, 9, 9,11,11, 9,11,10, 7, 9, 9, |
9,10,11, 9,11,11, 9,11,11,11,11,13,11,13,12, 9, |
10,11,11,12,13,10,12,11, 7, 9, 9, 9,11,11, 9,11, |
10, 9,11,11,11,12,13,11,13,12, 9,11, 9,11,12,11, |
10,13,10, |
}; |
static const static_codebook _44p5_p1_0 = { |
5, 243, |
(char *)_vq_lengthlist__44p5_p1_0, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__44p5_p1_0, |
0 |
}; |
static const long _vq_quantlist__44p5_p2_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44p5_p2_0[] = { |
4, 6, 6, 9, 9, 6, 7, 8,10,10, 6, 8, 7,10,10, 8, |
10,10,12,13, 8,10,10,13,12, 6, 7, 8,10,10, 7, 8, |
9,10,11, 8, 9, 9,11,11,10,10,11,12,14,10,11,11, |
14,13, 6, 8, 7,10,10, 8, 9, 9,11,11, 7, 9, 8,11, |
10,10,11,11,13,14,10,11,10,14,12, 9,10,10,12,12, |
10,10,11,12,13,10,11,11,13,13,12,12,13,12,15,13, |
14,13,15,14, 9,10,10,12,12,10,11,11,13,13,10,11, |
10,13,12,13,13,14,14,15,12,13,12,15,12, 6, 7, 8, |
10,11, 8, 9,10,11,12, 8, 9, 9,11,12,10,11,12,13, |
14,10,11,11,14,13, 8, 9,10,11,12, 9,10,11,12,13, |
9,10,11,12,13,11,12,13,13,15,12,12,13,15,14, 8, |
9, 9,12,12, 9,10,11,12,13, 9,10,10,13,12,12,12, |
13,14,15,11,12,12,14,14,11,11,12,13,14,11,12,13, |
13,15,12,13,13,14,15,14,13,15,14,16,14,15,15,16, |
16,11,12,11,14,13,12,13,13,15,14,11,13,12,14,13, |
14,15,15,15,16,13,14,14,16,14, 6, 8, 7,11,10, 8, |
9, 9,11,12, 8,10, 9,12,11,10,11,11,13,14,10,12, |
11,14,13, 8, 9, 9,12,12, 9,10,10,12,13, 9,11,10, |
13,12,11,12,12,13,14,12,13,12,15,14, 8,10, 9,12, |
11, 9,11,10,13,12, 9,11,10,13,12,12,13,12,14,15, |
11,13,12,15,13,11,11,12,13,14,11,12,13,13,15,12, |
13,13,14,15,13,14,14,14,16,14,15,15,16,16,11,12, |
11,14,13,12,13,13,15,14,11,13,12,15,13,14,15,15, |
16,16,13,15,13,16,14, 9,10,11,12,14,11,11,12,13, |
15,11,12,12,13,14,13,14,15,15,17,13,14,14,15,16, |
11,11,12,13,15,12,12,13,14,16,12,13,13,14,15,14, |
14,16,15,17,15,15,15,16,17,11,12,12,14,14,12,13, |
13,15,16,12,13,13,15,15,15,15,15,16,17,14,15,15, |
16,16,14,14,15,15,17,14,15,15,15,17,15,15,16,16, |
17,16,16,17,16,18,17,17,17,18,18,14,15,14,16,16, |
15,15,16,17,17,14,15,15,17,16,17,17,17,18,18,16, |
16,16,17,17, 9,11,10,14,12,11,12,12,14,13,11,12, |
11,15,13,13,14,14,16,15,13,15,14,17,15,11,12,12, |
15,14,12,13,13,15,15,12,13,13,15,15,14,15,15,16, |
16,15,15,15,17,16,11,12,11,15,13,12,13,13,15,14, |
12,13,12,16,14,15,15,15,17,16,14,15,14,17,15,14, |
14,15,16,16,14,15,15,16,16,15,16,15,17,17,16,16, |
16,17,17,17,17,17,18,17,14,15,14,16,15,15,15,15, |
17,16,15,15,15,17,15,17,17,17,18,18,16,17,16,18, |
16, 6, 8, 8,11,11, 8, 9, 9,11,12, 8, 9, 9,12,11, |
10,11,11,13,14,10,12,11,14,13, 7, 9, 9,11,12, 9, |
10,10,12,13, 9,10,10,13,13,11,11,12,13,15,11,12, |
12,15,14, 8, 9, 9,12,11, 9,11,10,13,13, 9,11,10, |
13,12,12,13,12,14,15,11,13,12,15,13,10,11,12,13, |
14,11,12,12,13,15,12,12,13,14,15,13,13,14,14,16, |
14,15,15,16,16,11,12,11,14,13,12,13,13,15,14,11, |
13,12,15,13,14,15,15,15,16,13,14,14,16,14, 7, 9, |
9,11,12, 9,10,11,12,13, 9,10,10,13,12,11,12,12, |
14,15,11,12,12,15,14, 9, 9,11,11,13,10,10,12,12, |
14,10,11,12,13,14,12,12,13,14,16,12,13,13,15,15, |
9,11,10,13,13,10,12,12,13,14,10,12,11,14,13,12, |
13,13,15,16,12,13,13,15,14,11,11,13,13,15,12,12, |
14,13,16,13,13,13,14,15,14,14,15,14,17,15,15,15, |
16,16,12,13,12,15,14,13,14,14,15,15,12,14,13,16, |
14,15,15,16,16,17,14,15,14,17,15, 7, 9, 9,12,11, |
9,10,10,12,13, 9,11,10,13,12,11,12,12,14,14,11, |
13,12,15,14, 9,10,10,13,12,10,10,11,12,13,10,12, |
11,14,13,12,12,13,13,15,12,14,13,16,15, 9,10,10, |
13,12,11,11,12,13,13,10,12,10,14,12,13,13,13,15, |
15,12,13,12,15,13,11,12,12,14,14,12,12,13,14,15, |
13,14,13,15,15,14,13,15,13,16,15,16,15,17,16,12, |
13,12,14,14,13,14,14,15,15,12,13,12,15,14,15,15, |
16,16,17,14,15,13,16,13,10,11,12,13,14,11,12,13, |
14,15,12,13,13,15,15,14,14,15,15,17,14,15,15,16, |
16,12,12,13,12,15,12,12,14,13,16,13,13,14,14,16, |
14,14,16,15,17,15,15,16,16,17,12,13,13,15,15,13, |
14,14,16,16,13,14,13,16,15,15,16,16,17,17,14,15, |
15,17,16,14,14,15,14,17,15,15,16,15,17,15,15,16, |
15,17,16,16,17,16,18,17,17,17,17,18,14,15,15,17, |
16,15,16,16,17,17,15,16,15,17,16,17,17,17,18,18, |
16,17,16,18,17,10,12,11,14,14,12,13,13,15,15,12, |
13,12,15,14,14,15,15,16,16,14,15,15,17,16,11,13, |
12,15,14,12,13,13,15,15,13,14,13,16,14,15,15,15, |
16,16,15,16,15,17,16,12,13,13,15,15,13,14,14,16, |
16,12,14,13,16,15,15,16,16,17,17,15,16,15,17,16, |
14,15,15,16,16,14,15,15,16,16,15,16,16,17,16,16, |
16,16,16,17,17,18,17,18,17,14,15,15,17,16,15,16, |
16,17,17,15,16,15,17,16,17,17,18,18,18,16,17,16, |
18,16, 6, 8, 8,11,11, 8, 9, 9,11,12, 8, 9, 9,12, |
11,10,11,12,13,14,10,11,11,14,13, 8, 9, 9,11,12, |
9,10,11,12,13, 9,10,11,13,13,11,12,13,13,15,12, |
12,12,15,14, 7, 9, 9,12,11, 9,10,10,13,13, 9,10, |
10,13,12,11,12,12,14,15,11,12,11,15,13,11,11,12, |
13,14,11,12,13,13,15,12,13,13,14,15,13,14,14,14, |
16,14,15,15,16,16,10,12,11,14,13,12,13,12,14,14, |
11,12,12,15,13,14,15,15,16,16,13,14,13,16,14, 7, |
9, 9,11,12, 9,10,11,12,13, 9,10,10,13,12,11,12, |
13,14,15,11,12,12,14,14, 9,10,10,12,13,10,10,12, |
12,14,11,12,11,13,13,12,12,14,13,15,13,13,13,15, |
15, 9,10,10,12,13,10,11,12,13,14,10,11,10,13,12, |
13,13,14,15,16,12,13,12,15,13,12,13,13,14,14,12, |
12,13,14,15,13,14,14,15,15,14,13,15,13,16,15,16, |
15,17,16,11,12,12,14,14,13,13,14,15,15,12,13,12, |
15,14,15,15,16,16,17,14,14,13,16,13, 7, 9, 9,12, |
11, 9,10,10,12,13, 9,11,10,13,12,11,12,12,14,15, |
11,12,12,15,14, 9,10,11,13,13,10,11,12,13,14,10, |
12,12,14,13,12,13,13,14,16,12,13,13,16,15, 9,11, |
9,13,11,10,12,11,13,13,10,12,10,14,12,12,13,13, |
15,15,12,13,12,16,14,12,12,13,14,15,12,13,14,14, |
15,13,14,14,15,15,14,14,15,15,17,15,16,15,17,16, |
11,13,11,15,13,13,14,13,15,14,12,14,12,16,13,15, |
15,15,16,16,14,15,14,17,14,10,11,12,14,14,12,12, |
13,14,15,12,13,13,15,15,14,15,15,16,17,14,15,15, |
16,16,12,12,13,15,15,13,13,14,15,16,13,14,14,16, |
16,15,15,16,16,17,15,16,16,17,17,11,12,13,14,15, |
13,13,14,15,16,12,13,13,15,15,15,15,16,16,17,15, |
15,15,16,16,14,15,15,16,17,15,15,16,16,17,15,16, |
16,17,17,16,16,17,16,18,17,17,17,18,18,14,15,15, |
16,16,15,16,16,16,17,15,15,15,16,16,17,17,17,18, |
18,16,16,16,17,16,10,12,11,14,13,12,13,13,15,15, |
11,13,12,15,14,14,15,15,16,16,14,15,14,17,15,12, |
13,13,15,15,13,13,14,16,16,13,14,14,16,16,15,15, |
15,16,17,15,16,16,17,17,12,13,12,15,12,13,14,13, |
16,14,12,14,12,16,13,15,16,15,17,16,14,16,14,17, |
15,14,15,15,16,17,15,15,16,17,17,15,16,16,17,17, |
16,16,17,17,18,17,18,17,18,18,14,15,14,17,14,15, |
16,15,17,15,15,16,15,17,15,17,17,17,18,17,16,17, |
16,18,16, 9,11,11,14,14,11,12,12,14,14,11,12,12, |
15,14,13,14,14,16,16,13,15,14,16,16,10,11,12,14, |
14,11,12,13,15,15,12,13,13,15,15,13,14,15,16,17, |
14,15,15,17,16,11,12,12,15,14,12,13,13,15,15,12, |
13,13,15,15,14,15,15,16,16,14,15,15,17,16,12,13, |
14,15,16,13,14,14,15,16,13,14,15,16,16,15,15,16, |
16,18,16,16,16,18,17,14,14,14,16,15,15,15,15,17, |
16,14,15,15,17,16,16,17,17,18,17,16,16,16,18,16, |
10,12,12,14,14,11,12,13,15,15,12,13,13,15,15,13, |
14,15,16,17,14,15,15,17,16,11,12,13,14,15,12,12, |
14,15,16,13,13,14,15,16,14,14,15,16,17,15,15,16, |
17,17,12,13,13,15,15,13,14,14,16,16,13,14,13,16, |
15,15,16,15,17,17,15,16,15,17,16,13,13,15,14,17, |
14,13,16,15,17,15,14,16,15,17,15,15,17,16,18,16, |
16,17,17,18,14,15,15,17,16,15,16,16,17,17,15,16, |
15,17,16,17,17,17,18,18,16,17,16,18,17,10,12,11, |
14,14,11,12,13,15,15,12,13,12,15,15,14,15,15,16, |
16,14,15,15,17,16,11,12,12,15,15,12,13,13,15,15, |
13,14,13,16,15,14,15,15,16,16,15,16,15,17,16,11, |
13,13,15,15,13,14,14,15,15,12,14,13,16,15,15,16, |
15,17,17,15,16,15,17,16,13,15,14,16,16,14,15,14, |
16,16,15,16,15,17,16,15,16,16,16,17,16,17,16,18, |
17,14,15,15,16,16,15,16,16,17,17,15,15,15,17,16, |
17,17,17,18,18,16,16,16,18,16,12,13,13,15,16,13, |
14,14,15,16,13,14,14,16,16,15,15,16,16,18,15,16, |
16,17,17,13,13,14,15,16,14,14,15,15,17,14,15,15, |
16,17,15,15,17,16,18,16,16,17,17,17,13,14,14,16, |
16,14,15,15,17,17,14,15,14,17,16,16,17,16,17,18, |
16,17,16,18,17,15,15,16,14,17,16,15,17,14,18,16, |
16,16,15,18,16,16,18,15,19,18,18,18,17,19,15,16, |
16,18,17,16,17,17,18,17,16,17,16,18,17,18,18,18, |
19,19,17,18,16,18,17,11,12,12,15,15,13,13,14,15, |
16,13,14,13,16,15,15,16,16,16,17,15,16,16,17,16, |
12,14,13,16,15,13,13,14,15,16,14,15,14,17,15,15, |
15,16,16,17,16,17,16,18,17,12,13,14,15,16,14,15, |
15,16,16,13,14,13,16,15,16,16,16,17,17,15,16,15, |
17,15,15,16,15,17,16,15,15,15,16,16,16,17,16,18, |
16,16,15,16,15,17,17,18,17,18,17,15,15,16,17,17, |
16,16,17,17,17,15,16,15,17,16,18,18,18,18,18,16, |
17,16,18,15, 9,11,11,14,14,11,12,12,14,15,10,12, |
12,15,14,13,14,15,16,16,13,14,14,16,16,11,12,12, |
14,15,12,12,13,15,15,12,13,13,15,15,14,15,15,16, |
17,14,15,15,16,16,10,12,12,14,14,12,13,13,15,15, |
11,13,12,15,15,14,15,15,16,17,13,15,14,16,16,14, |
14,14,15,16,14,15,15,16,17,14,15,15,16,17,16,16, |
17,16,18,16,17,17,17,17,12,14,13,16,15,13,15,14, |
16,16,13,14,14,16,15,16,16,16,17,17,15,16,15,17, |
16,10,11,11,14,14,12,12,13,14,15,11,13,12,15,14, |
14,15,15,16,17,14,15,15,16,16,12,13,13,15,15,12, |
13,14,15,16,13,14,14,15,15,15,15,16,16,17,15,15, |
16,17,17,11,12,12,15,15,13,13,14,15,16,12,13,13, |
15,15,15,15,16,16,17,14,15,15,16,16,14,15,15,16, |
16,15,15,15,16,17,15,16,16,17,17,16,16,17,16,18, |
17,17,17,17,18,13,14,15,16,16,15,15,16,16,17,14, |
14,14,16,16,16,16,17,17,18,16,16,16,17,16,10,12, |
12,14,14,12,13,13,15,15,11,13,12,15,15,14,15,15, |
16,17,13,15,14,17,16,12,13,13,15,15,13,13,14,15, |
16,13,14,14,16,16,15,15,16,16,17,15,15,16,17,17, |
11,13,12,15,14,13,14,13,16,15,12,14,12,16,15,15, |
16,15,17,17,14,15,14,17,16,14,15,15,16,17,15,15, |
16,16,17,15,16,16,17,17,16,16,17,17,18,17,17,17, |
18,18,13,15,13,17,14,14,16,14,17,16,14,15,13,17, |
15,16,17,16,18,17,15,17,15,18,16,11,12,12,15,15, |
13,13,14,15,16,13,14,13,16,15,15,16,16,16,17,15, |
16,16,17,16,12,14,13,16,15,13,13,14,15,16,14,15, |
15,16,16,16,15,16,16,17,16,16,16,17,17,12,13,14, |
15,16,14,14,15,15,17,13,14,13,16,15,16,16,17,17, |
18,15,16,15,17,15,15,16,15,17,17,15,15,16,16,17, |
16,17,16,17,17,16,15,17,15,18,17,18,17,18,18,15, |
15,16,16,17,16,16,17,16,18,15,15,15,16,16,17,17, |
18,17,18,16,16,15,17,15,12,13,13,15,15,13,14,14, |
16,16,13,14,14,16,16,15,16,16,17,18,15,16,15,18, |
16,13,14,14,16,16,14,14,15,16,17,14,15,15,17,17, |
16,16,17,17,18,16,16,17,18,17,13,14,13,16,14,14, |
15,15,17,16,14,15,14,17,15,16,17,17,18,17,15,17, |
15,18,16,15,16,16,17,17,16,16,17,17,18,16,17,17, |
18,18,17,16,18,17,19,18,18,18,18,18,15,16,15,17, |
14,16,16,16,18,15,16,17,15,18,14,18,18,18,18,17, |
17,18,16,19,15, |
}; |
static const static_codebook _44p5_p2_0 = { |
5, 3125, |
(char *)_vq_lengthlist__44p5_p2_0, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44p5_p2_0, |
0 |
}; |
static const long _vq_quantlist__44p5_p3_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p5_p3_0[] = { |
1, 5, 6, 5, 7, 8, 5, 8, 7, 5, 7, 8, 7, 8,10, 8, |
10,10, 5, 8, 7, 8,10,10, 7,10, 8, 6, 8, 9, 8,10, |
11, 9,10,10, 9,10,11,10,11,12,11,12,12, 9,11,10, |
11,12,12,10,12,11, 6, 9, 8, 9,10,10, 8,11,10, 9, |
10,11,10,11,12,11,12,12, 9,11,10,11,12,12,10,12, |
11, 6, 9, 9, 8,10,11, 9,11,10, 8,10,10,10,10,12, |
11,12,12, 9,11,10,11,12,12,10,12,11, 8,10,10,10, |
11,12,10,12,11,10,10,12,11,11,13,12,13,13,10,12, |
11,12,13,13,11,13,11, 7,10,10,10,11,12,10,12,11, |
10,12,11,11,11,12,12,14,13,10,12,12,12,14,14,11, |
13,11, 6, 9, 9, 9,10,11, 8,11,10, 9,10,11,10,11, |
12,11,12,12, 8,11,10,11,12,12,10,12,10, 7,10,10, |
10,11,12,10,12,11,10,12,12,11,11,13,12,13,13,10, |
11,12,12,13,14,11,12,11, 8,10,10,10,11,12,10,12, |
11,10,11,12,11,11,13,12,13,13,10,12,10,12,13,13, |
11,13,11, |
}; |
static const static_codebook _44p5_p3_0 = { |
5, 243, |
(char *)_vq_lengthlist__44p5_p3_0, |
1, -533200896, 1614282752, 2, 0, |
(long *)_vq_quantlist__44p5_p3_0, |
0 |
}; |
static const long _vq_quantlist__44p5_p3_1[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p5_p3_1[] = { |
5, 6, 6, 6, 7, 7, 6, 7, 7, 6, 7, 7, 7, 7, 8, 7, |
8, 8, 6, 7, 7, 7, 8, 8, 7, 8, 7, 7, 8, 8, 8, 8, |
8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 8, 9, 9, 8, 8, 8, |
8, 9, 9, 8, 9, 9, 7, 8, 7, 8, 8, 8, 8, 8, 8, 8, |
8, 8, 8, 9, 9, 8, 9, 9, 8, 8, 8, 8, 9, 9, 8, 9, |
8, 6, 8, 8, 7, 8, 8, 7, 8, 8, 7, 8, 8, 8, 8, 9, |
8, 9, 9, 8, 8, 8, 8, 9, 9, 8, 9, 8, 7, 8, 8, 8, |
9, 9, 8, 9, 9, 8, 8, 9, 9, 9, 9, 9, 9, 9, 8, 9, |
9, 9, 9, 9, 9, 9, 9, 7, 8, 8, 8, 8, 9, 8, 9, 8, |
8, 8, 8, 8, 9, 9, 9, 9, 9, 8, 9, 8, 9, 9, 9, 8, |
9, 9, 6, 8, 8, 7, 8, 8, 7, 8, 8, 8, 8, 8, 8, 8, |
9, 8, 9, 9, 7, 8, 8, 8, 9, 9, 8, 9, 8, 7, 8, 8, |
8, 8, 9, 8, 9, 8, 8, 8, 9, 8, 9, 9, 9, 9, 9, 8, |
8, 8, 9, 9, 9, 8, 9, 9, 7, 8, 8, 8, 9, 9, 8, 9, |
9, 8, 9, 9, 9, 9, 9, 9, 9, 9, 8, 9, 8, 9, 9, 9, |
9, 9, 9, |
}; |
static const static_codebook _44p5_p3_1 = { |
5, 243, |
(char *)_vq_lengthlist__44p5_p3_1, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__44p5_p3_1, |
0 |
}; |
static const long _vq_quantlist__44p5_p4_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p5_p4_0[] = { |
1, 5, 5, 5, 7, 9, 5, 9, 7, 5, 7, 8, 7, 7,10, 9, |
10,10, 5, 8, 7, 9,10,10, 7,10, 7, 6, 8, 9, 9,10, |
12, 9,11,11, 9,10,11,11,11,13,12,13,13, 9,11,11, |
11,12,13,11,13,11, 6, 9, 8, 9,11,11, 9,12,10, 9, |
11,11,11,11,13,11,13,12, 9,11,10,12,13,13,11,13, |
11, 6, 9, 9, 8,10,11, 9,12,11, 9,10,11,10,10,12, |
11,13,13, 9,11,11,11,13,12,11,13,11, 8,10,10, 9, |
10,12,10,12,11,10,10,12,10,10,13,12,13,13,10,12, |
11,12,13,13,10,13,10, 7,10,10,11,11,13,11,14,11, |
10,12,11,11,11,13,13,14,13,10,12,12,14,14,14,11, |
14,11, 6, 9, 9, 9,11,12, 8,11,10, 9,11,11,11,11, |
13,11,12,13, 8,11,10,11,13,13,10,12,10, 7,10,10, |
11,11,14,11,13,11,10,12,12,11,11,14,14,14,14,10, |
11,12,13,13,14,11,13,11, 8,10,10,10,11,12, 9,12, |
10,10,11,12,11,10,13,12,13,13,10,12,10,12,13,13, |
11,13,10, |
}; |
static const static_codebook _44p5_p4_0 = { |
5, 243, |
(char *)_vq_lengthlist__44p5_p4_0, |
1, -531365888, 1616117760, 2, 0, |
(long *)_vq_quantlist__44p5_p4_0, |
0 |
}; |
static const long _vq_quantlist__44p5_p4_1[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44p5_p4_1[] = { |
5, 7, 7,10,10, 7, 8, 9,10,11, 7, 9, 8,11,10, 9, |
10,10,11,11, 9,10,10,11,11, 7, 9, 9,10,10, 8, 9, |
10,10,11, 9,10,10,11,11,10,10,11,11,11,10,11,11, |
12,12, 7, 9, 9,10,10, 9,10,10,11,11, 8,10, 9,11, |
10,10,11,11,11,11,10,11,10,11,11,10,10,10,11,11, |
10,10,11,11,11,11,11,11,11,11,11,11,12,11,12,11, |
12,11,12,12,10,10,10,11,11,10,11,11,11,11,10,11, |
10,11,11,11,12,11,12,12,11,12,11,12,11, 8, 9, 9, |
11,11, 9,10,10,11,12, 9,10,10,11,11,10,11,11,12, |
12,10,11,11,12,12, 9,10,10,11,11,10,10,11,11,12, |
10,11,11,12,12,11,11,12,12,12,11,12,12,12,12, 9, |
10,10,11,11,10,11,11,12,12,10,11,10,12,12,11,12, |
12,12,12,11,12,12,12,12,11,11,11,12,12,11,11,12, |
12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, |
12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12, |
12,12,12,12,12,12,12,12,12,12, 8, 9, 9,11,11, 9, |
10,10,11,11, 9,10,10,11,11,10,11,11,12,12,10,11, |
11,12,12, 9,10,10,11,11,10,10,11,12,12,10,11,11, |
12,12,11,12,12,12,12,11,12,12,12,12, 9,10,10,11, |
11,10,11,11,12,12,10,11,10,12,11,11,12,12,12,12, |
11,12,11,12,12,11,11,11,12,12,11,12,12,12,12,11, |
12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11, |
11,12,12,11,12,12,12,12,11,12,11,12,12,12,12,12, |
12,12,12,12,12,12,12,10,11,11,12,12,11,12,12,12, |
12,11,12,12,12,12,12,12,13,13,13,12,12,12,13,13, |
11,12,12,12,12,12,12,12,12,13,12,12,12,13,13,12, |
12,13,13,13,12,13,13,13,13,11,12,12,12,12,12,12, |
12,13,13,12,12,12,13,13,12,13,13,13,13,12,13,13, |
13,13,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,12,12,12,13,12, |
13,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,10,11,11,12,12,11,12,12,12,12,11,12, |
11,12,12,12,12,12,13,12,12,12,12,13,13,11,12,12, |
12,12,12,12,12,13,13,12,12,12,13,13,12,13,13,13, |
13,12,13,13,13,13,11,12,12,12,12,12,12,12,13,13, |
12,12,12,13,12,12,13,13,13,13,12,13,12,13,13,12, |
12,12,12,13,12,13,13,13,13,12,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,12,12,12,13,12,13,13,13, |
13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13, 8, 9, 9,11,11, 9,10,10,11,11, 9,10,10,12,11, |
10,11,11,12,12,10,11,11,12,12, 9,10,10,11,11,10, |
10,11,11,12,10,11,11,12,12,11,11,12,12,12,11,12, |
12,12,12, 9,10,10,11,11,10,11,11,12,12,10,11,10, |
12,12,11,12,12,12,12,11,12,12,12,12,11,11,11,12, |
12,11,11,12,12,12,11,12,12,12,12,12,12,12,12,12, |
12,12,12,12,12,11,11,11,12,12,11,12,12,12,12,11, |
12,12,12,12,12,12,12,12,12,12,12,12,12,12, 9,10, |
10,11,11,10,10,11,12,12,10,11,11,12,12,11,11,12, |
12,12,11,12,12,12,12,10,10,11,11,12,11,11,12,12, |
12,11,11,12,12,12,11,11,12,12,13,12,12,12,12,12, |
10,11,11,12,12,11,12,11,12,12,11,12,11,12,12,12, |
12,12,12,12,12,12,12,12,12,11,11,12,12,12,12,12, |
12,12,12,12,12,12,12,13,12,12,13,12,13,12,12,13, |
13,13,11,12,12,12,12,12,12,12,12,12,12,12,12,12, |
12,12,12,12,13,12,12,12,12,13,12, 8,10,10,11,11, |
10,11,11,12,12,10,11,10,12,12,11,12,12,12,12,11, |
12,12,12,12,10,11,10,12,12,10,10,11,12,12,11,12, |
12,12,12,12,12,12,12,13,12,12,12,13,13,10,11,11, |
12,12,11,12,12,12,12,10,12,11,12,12,12,12,12,13, |
13,12,13,12,13,12,11,12,12,12,12,11,12,12,12,13, |
12,12,12,13,13,12,12,13,12,13,12,13,13,13,13,11, |
12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,13, |
13,13,13,12,13,12,13,12,11,11,11,12,12,11,12,12, |
12,13,11,12,12,12,12,12,12,12,13,13,12,12,13,13, |
13,11,12,12,12,12,12,12,12,12,13,12,12,13,13,13, |
12,12,13,13,13,13,13,13,13,13,11,12,12,12,12,12, |
13,12,13,13,12,12,12,13,13,12,13,13,13,13,12,13, |
13,13,13,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,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,10,11,11,12,12,11,12,12,12,13,11, |
12,12,13,12,12,13,13,13,13,12,13,13,13,13,11,12, |
12,12,12,12,12,12,13,13,12,13,12,13,13,13,13,13, |
13,13,13,13,13,13,13,11,12,12,13,12,12,13,12,13, |
13,12,13,12,13,13,13,13,13,13,13,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,13,13,13,13,12,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13, 8, 9, 9,11,11, 9,10,10,11,12, 9,10,10,11, |
11,10,11,11,12,12,10,11,11,12,12, 9,10,10,11,11, |
10,10,11,12,12,10,11,11,12,12,11,11,12,12,12,11, |
12,12,12,12, 9,10,10,11,11,10,11,11,12,12,10,11, |
10,12,12,11,12,12,12,12,11,12,11,12,12,11,11,11, |
12,12,11,11,12,12,12,12,12,12,12,12,12,12,12,12, |
12,12,12,12,12,12,11,11,11,12,12,11,12,12,12,12, |
11,12,11,12,12,12,12,12,12,12,12,12,12,12,12, 8, |
10,10,11,11,10,10,11,12,12,10,11,11,12,12,11,12, |
12,12,12,11,12,12,12,12,10,11,11,12,12,10,11,12, |
12,12,11,12,12,12,12,12,12,12,12,13,12,12,12,13, |
13,10,10,11,12,12,11,12,12,12,12,10,11,10,12,12, |
12,12,12,13,13,12,12,12,13,12,11,12,12,12,12,11, |
12,12,12,13,12,12,12,13,13,12,12,13,12,13,12,13, |
13,13,13,11,12,12,12,12,12,12,12,13,13,11,12,12, |
13,12,12,13,13,13,13,12,13,12,13,12, 9,10,10,11, |
11,10,11,11,12,12,10,11,11,12,12,11,12,12,12,12, |
11,12,11,12,12,10,11,11,12,12,11,11,12,12,12,11, |
11,12,12,12,12,12,12,12,13,12,12,12,13,12,10,11, |
10,12,11,11,12,11,12,12,11,12,11,12,12,12,12,12, |
12,12,12,12,11,12,12,11,12,12,12,12,12,12,12,12, |
12,12,12,12,12,12,12,12,13,12,13,12,13,13,13,13, |
11,12,11,12,12,12,12,12,13,12,12,12,12,12,12,12, |
13,12,13,13,12,12,12,13,12,10,11,11,12,12,11,12, |
12,12,13,11,12,12,13,12,12,12,13,13,13,12,13,13, |
13,13,11,12,12,12,13,12,12,13,13,13,12,12,13,13, |
13,13,13,13,13,13,13,13,13,13,13,11,12,12,12,12, |
12,12,13,13,13,12,13,12,13,13,13,13,13,13,13,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,13,13,13,13,12,12,13, |
13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,11,11,11,12,12,11,12,12,12,12, |
11,12,12,12,12,12,12,13,13,13,12,13,12,13,13,11, |
12,12,12,12,12,12,13,13,13,12,12,13,13,13,12,13, |
13,13,13,12,13,13,13,13,11,12,12,12,12,12,13,12, |
13,13,12,12,12,13,12,13,13,13,13,13,12,13,12,13, |
13,12,12,12,13,13,12,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,12,12,12,13,12,13, |
13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,10,11,11,12,12,11,12,12,12,12,11,12,12, |
12,12,12,12,12,13,13,12,12,12,13,13,11,12,12,12, |
12,11,12,12,13,13,12,12,12,13,13,12,12,13,13,13, |
12,13,13,13,13,11,12,12,12,12,12,12,12,13,13,12, |
12,12,13,12,12,13,13,13,13,12,13,12,13,13,12,12, |
12,12,12,12,12,13,13,13,12,13,13,13,13,12,13,13, |
13,13,13,13,13,13,13,12,12,12,13,12,12,13,13,13, |
13,12,13,12,13,13,13,13,13,13,13,13,13,13,13,13, |
10,11,11,12,12,11,12,12,12,13,11,12,12,13,12,12, |
12,12,13,13,12,12,12,13,13,11,12,12,12,12,12,12, |
13,13,13,12,12,12,13,13,12,12,13,13,13,12,13,13, |
13,13,11,12,12,12,12,12,12,12,13,13,12,12,12,13, |
13,12,13,13,13,13,12,13,13,13,13,12,12,12,12,13, |
12,12,13,13,13,12,13,13,13,13,12,13,13,13,13,13, |
13,13,13,13,12,12,12,13,13,13,13,13,13,13,12,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,10,11,11, |
12,12,11,12,12,12,13,11,12,12,13,12,12,13,13,13, |
13,12,13,12,13,13,11,12,12,13,13,12,12,12,13,13, |
12,12,13,13,13,12,13,13,13,13,13,13,13,13,13,11, |
12,12,13,12,12,13,12,13,13,12,13,12,13,13,13,13, |
13,13,13,12,13,13,13,13,12,12,12,13,13,12,13,13, |
13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,12,12,12,13,13,12,13,13,13,13,12,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,11,11,11,12,12,11, |
12,12,12,12,11,12,12,12,12,12,12,12,13,13,12,12, |
12,13,13,11,12,12,12,12,12,12,12,12,13,12,12,12, |
13,13,12,12,13,13,13,12,13,13,13,13,11,12,12,12, |
12,12,12,12,13,13,12,12,12,13,12,12,13,13,13,13, |
12,13,12,13,13,12,12,12,12,12,12,12,13,12,13,12, |
13,13,13,13,12,13,13,12,13,13,13,13,13,13,12,12, |
12,12,12,12,13,13,13,13,12,13,12,13,13,13,13,13, |
13,13,12,13,13,13,12,10,11,11,12,12,11,12,12,12, |
12,11,12,12,12,12,12,12,12,13,13,12,13,12,13,13, |
11,12,12,12,12,12,12,12,13,13,12,12,12,13,13,12, |
12,13,13,13,13,13,13,13,13,11,12,12,12,12,12,13, |
12,13,13,12,13,12,13,13,12,13,13,13,13,12,13,12, |
13,13,12,12,12,12,12,12,13,13,13,13,12,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,12,12,12,13,12, |
12,13,13,13,13,12,13,12,13,13,13,13,13,13,13,13, |
13,13,13,13,10,11,11,12,12,11,12,12,12,12,11,12, |
12,12,12,12,12,12,13,13,12,12,12,13,13,11,12,12, |
12,12,12,12,12,13,13,12,12,12,13,13,12,12,13,13, |
13,12,12,13,13,13,11,12,11,12,12,12,12,12,13,13, |
11,12,12,13,13,12,13,13,13,13,12,13,12,13,13,12, |
12,12,12,12,12,13,13,13,13,12,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,12,12,12,13,12,12,13,13, |
13,13,12,13,12,13,13,13,13,13,13,13,12,13,13,13, |
13,10,11,11,12,12,11,12,12,12,13,11,12,12,13,12, |
12,12,13,13,13,12,13,13,13,13,11,12,12,13,13,12, |
12,13,13,13,12,12,13,13,13,12,13,13,13,13,13,13, |
13,13,13,11,12,12,13,12,12,13,12,13,13,12,12,12, |
13,13,12,13,13,13,13,13,13,13,13,13,12,12,13,13, |
13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,12,12,12,13,13,13,13,13,13,13,12, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,10,12, |
11,12,12,11,12,12,12,13,11,12,12,12,12,12,12,12, |
13,13,12,12,12,13,13,11,12,12,12,13,12,12,12,13, |
13,12,12,12,13,13,12,13,13,13,13,12,13,13,13,13, |
11,12,12,13,12,12,12,12,13,13,12,12,12,13,13,12, |
13,13,13,13,12,13,12,13,13,12,13,12,13,13,12,13, |
13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,12,12,12,13,12,13,13,13,13,13,12,13,12,13, |
13,13,13,13,13,13,12,13,13,13,13,10,11,11,12,12, |
11,12,12,12,13,11,12,12,12,12,12,12,12,13,13,12, |
12,12,13,13,11,12,12,12,12,12,12,13,13,13,12,13, |
13,13,13,12,12,13,13,13,13,13,13,13,13,11,12,12, |
12,12,12,13,12,13,13,12,12,12,13,13,12,13,13,13, |
13,12,13,12,13,13,12,12,12,12,13,12,13,13,13,13, |
12,13,13,13,13,12,13,13,13,13,13,13,13,13,13,12, |
12,12,12,12,12,13,13,13,13,12,13,13,13,13,13,13, |
13,13,13,12,13,13,13,13,11,12,11,12,12,11,12,12, |
12,12,11,12,12,12,12,12,12,12,12,13,12,12,12,13, |
12,11,12,12,12,12,12,12,12,12,13,12,12,12,13,13, |
12,12,13,13,13,12,13,13,13,13,11,12,12,12,12,12, |
12,12,13,13,12,12,12,13,12,12,13,13,13,13,12,13, |
12,13,13,12,12,12,12,12,12,12,13,13,13,12,13,13, |
13,13,13,13,13,12,13,13,13,13,13,13,12,12,12,12, |
12,12,13,13,13,13,12,13,12,13,12,13,13,13,13,13, |
13,13,13,13,12, |
}; |
static const static_codebook _44p5_p4_1 = { |
5, 3125, |
(char *)_vq_lengthlist__44p5_p4_1, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44p5_p4_1, |
0 |
}; |
static const long _vq_quantlist__44p5_p5_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44p5_p5_0[] = { |
1, 6, 6,10,10, 6, 7, 9,11,13, 5, 9, 7,13,11, 8, |
11,12,13,15, 8,12,11,15,13, 6, 7, 8,11,11, 7, 8, |
10,11,13, 9,10,10,13,13,11,11,13,12,16,12,13,13, |
16,15, 6, 8, 7,11,11, 9,10,10,13,13, 7,10, 7,13, |
11,12,13,13,15,16,11,13,11,16,12,10,11,11,11,13, |
11,11,13,12,15,13,13,13,14,15,13,12,15,12,17,15, |
16,16,16,16,10,11,11,14,11,13,13,13,15,14,11,13, |
11,15,12,15,15,16,16,16,13,15,12,17,12, 6, 8, 9, |
12,12, 9,10,12,13,15, 9,11,11,15,14,12,13,15,16, |
18,13,14,14,17,16, 9,10,11,13,14,11,10,13,14,16, |
11,12,12,15,15,14,13,16,15,18,14,15,15,17,17, 9, |
11,11,14,14,11,12,13,15,16,11,13,11,15,14,15,15, |
15,17,18,14,15,14,17,15,13,14,14,15,16,14,14,15, |
15,17,15,16,15,17,17,16,16,17,15,19,17,18,18,19, |
18,13,14,14,16,15,15,15,16,17,17,14,15,14,18,15, |
17,17,17,19,19,16,17,15,19,16, 6, 9, 8,13,12, 9, |
11,11,14,15, 9,12,10,15,13,13,14,14,16,17,12,15, |
13,18,16, 9,11,11,14,14,11,11,13,14,15,11,13,12, |
16,15,14,14,15,15,18,14,15,15,18,17, 9,11,10,14, |
13,11,12,12,15,15,11,13,10,16,14,14,15,15,16,18, |
14,16,13,18,15,13,14,14,16,16,14,14,15,15,17,15, |
16,15,17,17,16,16,17,16,19,17,18,17,18,19,13,14, |
14,16,15,15,15,15,17,17,14,15,14,17,15,17,17,17, |
18,19,16,17,15,19,15,11,13,13,15,16,13,14,15,16, |
18,14,15,15,17,17,16,16,18,18,20,17,18,17,19,20, |
13,14,14,16,17,15,15,16,17,18,15,16,16,17,17,18, |
17,19,18,19,18,18,18,19,21,14,14,15,16,17,15,15, |
16,18,18,15,16,16,17,18,18,18,19,19,21,18,19,19, |
22,20,16,16,17,17,19,17,17,17,18,20,17,18,18,20, |
19,19,19,20,19, 0,19,19,20,20,21,17,17,17,19,18, |
18,18,20,19,19,18,18,18,20,20,19,19,20,20,20,20, |
21,20,21,19,11,13,13,16,15,14,15,15,17,17,14,15, |
14,18,16,16,18,18,20,19,16,19,17,21,18,13,14,15, |
16,17,15,15,16,18,18,15,16,15,19,18,18,18,18,19, |
19,18,18,18,22,20,13,14,14,16,16,15,16,16,18,17, |
15,16,15,18,17,18,18,18,19,19,17,18,17,21,18,16, |
17,17,18,18,17,18,19,19,19,18,20,18,19,19,19,20, |
21,19,21,20,20,20, 0,21,16,17,17,19,19,18,18,18, |
19,21,17,18,18,19,18,20,19,21,20,21,19,20,20,22, |
19, 7, 9, 9,13,13, 8,10,11,14,15, 9,12,11,15,14, |
11,13,14,16,17,13,15,14,17,16, 8,10,11,14,14,10, |
10,12,14,16,11,12,12,16,15,13,12,15,15,18,14,15, |
15,19,17, 9,11,11,14,14,11,12,12,15,15,11,13,11, |
16,14,14,15,14,17,17,14,16,14,18,15,12,13,14,15, |
16,13,13,15,14,17,15,15,15,17,17,15,14,17,14,19, |
17,18,18,19,18,13,14,14,16,16,15,15,15,17,17,14, |
15,14,18,15,17,18,17,18,17,16,18,16,19,15, 7,10, |
10,13,13, 9,10,12,14,15,10,12,11,15,14,12,13,14, |
16,17,13,15,14,18,16,10,10,12,13,14,10,10,13,13, |
16,12,12,13,15,15,13,12,15,15,18,15,15,16,18,17, |
10,11,11,14,14,12,13,13,15,16,10,13,10,16,14,14, |
15,15,17,17,14,15,13,17,15,13,13,14,15,16,14,13, |
15,14,18,15,15,16,16,17,16,15,18,15,18,17,18,18, |
18,18,13,15,14,17,16,15,16,16,17,17,14,15,13,17, |
15,17,17,18,18,18,16,17,14,20,14, 8,10,10,14,14, |
11,11,13,14,16,11,13,11,16,14,14,15,16,16,18,14, |
16,15,18,16,10,12,11,15,14,11,11,13,14,16,13,14, |
13,16,15,15,14,16,15,19,16,17,16,20,18,10,11,12, |
14,15,13,13,14,16,16,11,14,11,16,14,16,16,17,18, |
19,15,17,14,20,15,14,15,14,17,16,13,14,15,15,18, |
16,17,16,19,18,16,15,18,15,19,18,19,18,21,21,14, |
14,15,16,17,16,16,17,18,18,13,15,14,17,15,18,18, |
19,18,22,16,18,15,21,15,12,13,14,16,16,14,14,16, |
16,18,14,15,15,17,18,16,16,18,18,20,18,18,17,20, |
20,13,14,15,15,17,15,14,16,16,18,16,16,16,17,19, |
17,15,18,17,21,18,18,18,19,19,14,15,15,18,17,15, |
16,16,18,19,15,16,15,18,18,17,18,18,20,21,17,19, |
17,20,19,16,16,17,16,19,17,17,18,17,20,18,18,18, |
18,19,19,18,20,17,22,20,20,19,20,20,17,17,18,18, |
19,18,18,20,21,20,17,18,17,20,20,21,21,21,21,21, |
19,21,18,22,20,11,13,13,17,16,14,14,16,16,18,14, |
16,14,18,16,17,18,19,19,20,18,19,18,21,19,14,15, |
14,17,16,14,14,16,18,18,16,17,16,18,17,18,17,19, |
18,20,19,19,18,20,20,13,14,15,16,17,16,16,17,18, |
19,14,16,14,19,17,18,19,18,20,20,18,20,17,21,18, |
17,17,17,19,18,16,17,18,18,19,18,19,18,21,21,18, |
18,20,17,21,19,20,20,22,21,16,17,18,18,19,18,18, |
19,21,20,16,17,17,20,18,21,21,22,21,22,18,21,18, |
0,18, 7, 9, 9,13,13, 9,11,12,14,15, 8,11,10,15, |
14,13,14,15,16,18,11,14,13,17,15, 9,11,11,14,14, |
11,11,13,14,16,11,12,12,15,15,14,14,16,15,18,14, |
14,15,17,17, 8,11,10,14,14,11,12,12,15,15,10,12, |
10,16,14,14,15,15,17,18,13,15,12,18,15,13,14,14, |
16,16,14,14,15,15,17,15,15,15,16,17,16,15,17,15, |
19,17,17,17,18,18,12,14,13,16,15,15,15,15,17,17, |
13,15,13,17,14,17,18,18,18,19,15,17,14,19,14, 8, |
10,10,14,14,11,11,13,14,16,11,13,11,16,14,14,15, |
16,17,19,14,16,15,18,17,10,12,11,15,14,11,11,14, |
14,17,13,14,13,17,15,15,14,17,15,19,16,17,16,19, |
17,10,11,12,14,15,13,13,14,15,17,11,13,11,17,14, |
16,16,17,18,19,15,16,14,18,15,14,15,14,16,16,13, |
14,15,15,18,16,16,16,18,18,16,15,18,15,20,18,19, |
18,21,18,14,14,15,16,17,16,16,17,17,18,13,15,14, |
17,16,19,19,19,19,19,15,18,15,20,15, 7,10,10,13, |
13,10,11,12,14,15, 9,12,10,15,14,13,14,15,16,17, |
12,15,13,17,16,10,11,11,14,14,10,10,13,14,16,12, |
13,13,16,15,14,13,16,15,18,15,15,16,17,17,10,12, |
10,14,13,12,13,12,15,15,10,13,10,16,13,15,16,15, |
17,18,13,16,12,18,15,13,14,14,16,17,14,13,15,15, |
18,15,16,15,17,17,16,14,17,15,19,17,18,18,19,19, |
13,15,13,17,14,15,15,15,18,17,14,15,13,17,14,18, |
17,18,18,19,15,17,15,19,15,11,13,13,16,17,14,14, |
16,16,18,14,16,15,18,17,17,18,19,18,21,18,18,17, |
20,18,13,15,14,17,16,14,14,16,17,18,16,17,16,19, |
17,18,17,19,18,22,18,19,19,21,21,13,14,15,16,18, |
16,16,17,17,20,14,16,14,18,17,18,18,19,19,21,17, |
18,17,21,18,17,18,17,19,18,16,17,17,18,19,18,18, |
18,22,22,18,17,19,17, 0,20,21,19,21,20,17,17,18, |
18,21,18,18,18,19,21,17,17,17,19,19,20,20,22,21, |
21,19,20,18,20,17,12,14,13,17,16,14,15,15,17,18, |
14,16,14,18,16,17,18,18,21,20,16,18,16,21,18,14, |
15,15,17,17,15,15,16,18,18,15,17,16,18,18,17,17, |
19,19,20,18,19,18,20,19,14,15,14,17,15,15,16,16, |
18,17,15,16,14,19,15,18,18,18,19,20,17,20,15,21, |
17,16,17,18,18,19,17,17,18,18,20,18,19,18,19,21, |
19,18,19,19,21,20, 0,19,21,20,16,17,16,19,16,18, |
18,18,19,19,17,18,17,20,17,19,20,20,22, 0,19,20, |
17,21,17,11,13,14,16,17,14,15,15,17,18,14,15,15, |
18,18,16,17,17,19,20,16,18,17,19,21,13,14,15,17, |
17,14,15,16,17,19,15,16,16,18,19,16,17,18,19,21, |
17,18,20,21,21,13,15,15,17,17,15,16,16,18,19,15, |
16,16,18,19,17,17,18,19,22,17,19,18,22,19,15,16, |
17,19,19,16,17,18,18,20,17,18,18,19,20,19,18,20, |
18,22,20,19,19,22,21,16,17,17,18,19,18,18,18,19, |
20,17,18,18,20,19,20,19,20,22,20,19,20,21,21,20, |
12,14,14,16,16,13,14,16,17,18,14,16,15,18,18,15, |
17,17,19,19,17,18,18,19,19,13,14,15,16,17,14,14, |
16,16,20,15,16,16,17,19,16,15,18,17,20,18,17,19, |
19,19,14,15,15,17,17,16,16,16,18,18,15,16,15,19, |
18,17,18,18,20,21,17,18,17,21,18,16,15,17,17,19, |
17,15,18,17,20,19,17,18,19,20,18,16,19,17,22,20, |
19,20,19,20,17,17,18,19,19,18,18,19,20,20,17,18, |
17,18,18,21,21,20,20,21,18,20,17,21,19,11,14,14, |
16,17,15,14,16,17,19,14,16,14,18,17,18,18,19,19, |
21,17,19,18,20,20,13,15,14,17,17,14,14,16,17,18, |
16,17,16,19,18,18,17,19,18,20,18,21,18,20,20,13, |
15,15,16,17,16,16,17,18,19,14,16,15,19,18,19,19, |
19,21,20,18,19,17,20,18,16,17,16,19,18,16,17,17, |
19,20,17,19,18,20,19,18,17,21,18, 0,21,20,20, 0, |
20,17,17,18,18,19,18,19,19,20,22,16,17,17,20,18, |
21,22,20,20,22,18,22,18,22,18,12,14,14,17,17,14, |
15,16,17,19,14,16,15,17,17,17,17,18,18,21,17,19, |
17,20,19,14,15,15,16,18,15,14,16,16,19,16,17,16, |
19,18,17,16,20,17,20,18,20,19,19,20,14,15,15,18, |
17,16,16,17,18,19,14,16,15,19,17,18,21,18,19,21, |
17,18,17,19,18,17,17,18,17,20,17,16,18,17,21,18, |
19,19,19,19,18,17,19,17,20,20,21,20,21,20,17,17, |
17,19,19,19,18,18,20,21,16,18,16,19,18,20,20,21, |
21,20,18,19,16, 0,17,12,14,14,17,17,15,15,18,17, |
19,15,18,15,20,16,20,19,21,18,22,20,20,20,22,19, |
14,16,14,20,17,14,15,17,17,20,18,18,17,20,18,18, |
17,19,17,21,20,21,20, 0,21,14,15,16,17,19,18,17, |
19,18,21,14,18,15,21,17,21,20,21,20, 0,18,21,17, |
21,17,18,19,17,20,18,16,17,17,19,19,19,21,20, 0, |
20,18,17,21,17, 0,22, 0,21, 0,22,17,17,19,18,20, |
20,20,21,19,22,16,17,18,20,18,22,22, 0,22, 0,17, |
21,17,22,17,11,14,13,16,16,14,15,15,17,18,14,15, |
14,18,17,17,18,18,19,20,16,17,17,21,19,13,14,15, |
17,17,15,16,16,18,18,15,16,16,19,18,18,18,18,19, |
20,17,18,18,20,19,13,15,14,17,17,15,16,16,17,18, |
14,16,15,19,17,17,18,19,21,21,17,18,17,20,18,16, |
17,17,19,19,17,18,19,19,20,18,19,18,21,21,21,20, |
19,21,22,20,20,19,21,20,15,17,16,19,19,17,18,18, |
20,21,16,18,17,20,18,19,19,21,21,21,19,19,19,20, |
18,11,14,13,17,16,14,14,16,16,19,14,16,15,19,16, |
18,18,18,19,22,17,18,17,20,19,13,15,14,17,17,15, |
15,16,17,19,16,17,16,20,18,18,17,19,18,21,19,19, |
18,22, 0,13,14,15,17,18,16,16,17,17,19,14,16,15, |
19,18,18,19,19,20,21,18,18,17,20,18,17,18,17,20, |
18,16,17,17,18,20,18,19,18,20,20,18,18,21,17,21, |
20,21,21, 0,19,16,16,18,18,19,19,18,20,19,20,16, |
17,17,20,18,21,20,21,22,22,18,20,17,21,17,12,14, |
14,17,16,14,15,16,18,18,13,15,14,18,17,17,18,18, |
19,19,15,17,16,19,19,14,15,15,17,17,15,15,16,18, |
19,15,16,16,19,18,17,17,18,18,20,18,18,18,21,20, |
13,15,14,17,16,15,16,15,18,18,14,16,14,18,17,18, |
18,18,19,21,16,18,16,20,17,17,18,17,18,19,17,17, |
18,18,19,18,19,19,21,19,19,18,20,18,21,21,20,20, |
21,20,16,17,15,20,17,17,19,17,19,19,17,18,15,20, |
17,19,20,19,21,22,17,20,16, 0,17,12,14,14,17,18, |
16,15,18,16,20,16,18,15,21,17,20,18,21,19,22,19, |
21,19, 0,19,14,16,15,19,17,14,15,17,16,21,18,19, |
18,21,17,19,17,21,17,22,20,21,21, 0,21,14,15,16, |
17,19,18,17,19,18,21,14,17,15,20,17,21,22,21,20, |
22,18,21,17,21,17,17,19,17,21,18,16,17,17,19,20, |
19,21,20,21,20,17,18,20,17,21, 0,22,20,21,22,17, |
17,20,18,21,21,20,22,20,21,16,17,17,21,19, 0,22, |
0,21,21,18,22,17,21,17,12,14,14,17,16,14,15,16, |
17,18,14,16,15,18,17,17,17,20,19,20,16,18,17,21, |
18,14,15,15,17,17,14,15,16,17,19,16,17,16,18,18, |
17,16,19,18,19,18,19,18,21,20,14,15,15,18,17,16, |
16,16,19,18,15,16,14,20,16,18,18,19,19,20,16,19, |
16,21,17,17,17,18,19,19,16,16,18,18,19,19,19,18, |
20,20,18,16,19,18,20,22,21,20,19,20,16,18,17,20, |
16,18,19,18,19,18,16,18,16,20,17,21,20,21,20,20, |
18,19,17,21,16, |
}; |
static const static_codebook _44p5_p5_0 = { |
5, 3125, |
(char *)_vq_lengthlist__44p5_p5_0, |
1, -528744448, 1616642048, 3, 0, |
(long *)_vq_quantlist__44p5_p5_0, |
0 |
}; |
static const long _vq_quantlist__44p5_p5_1[] = { |
3, |
2, |
4, |
1, |
5, |
0, |
6, |
}; |
static const char _vq_lengthlist__44p5_p5_1[] = { |
2, 3, 3, 3, 3, 3, 3, |
}; |
static const static_codebook _44p5_p5_1 = { |
1, 7, |
(char *)_vq_lengthlist__44p5_p5_1, |
1, -533200896, 1611661312, 3, 0, |
(long *)_vq_quantlist__44p5_p5_1, |
0 |
}; |
static const long _vq_quantlist__44p5_p6_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p5_p6_0[] = { |
1, 5, 5, 5, 7, 9, 5, 9, 7, 5, 7, 8, 7, 7,10, 9, |
9,10, 5, 8, 7, 9,10, 9, 7,10, 7, 6, 9, 9, 9,10, |
12,10,12,11, 9,10,11,11,10,13,12,12,13,10,11,11, |
12,13,13,11,13,11, 6, 9, 9,10,11,12, 9,12,11,10, |
11,11,11,11,13,12,13,13, 9,11,10,12,13,13,11,13, |
10, 6, 9,10, 9,11,12,10,12,11, 9,10,11,10,10,13, |
11,13,13,10,11,11,12,13,12,11,13,11, 7, 9,10, 9, |
10,12,10,11,11,10,10,11,10,10,12,12,11,12,10,11, |
10,12,12,12,10,12,10, 7,10,10,11,11,13,11,13,11, |
10,12,11,11,10,13,13,14,13,10,11,12,13,13,14,11, |
13,10, 6,10, 9,10,11,12, 9,12,11, 9,11,11,11,11, |
13,12,12,13, 9,11,10,12,13,13,10,13,10, 7,10,10, |
11,11,14,11,13,11,10,12,11,11,10,14,13,14,13,10, |
11,12,13,13,14,11,13,10, 7,10, 9,10,10,12, 9,12, |
10,10,11,11,10,10,12,12,12,12, 9,11,10,11,12,12, |
10,12, 9, |
}; |
static const static_codebook _44p5_p6_0 = { |
5, 243, |
(char *)_vq_lengthlist__44p5_p6_0, |
1, -527106048, 1620377600, 2, 0, |
(long *)_vq_quantlist__44p5_p6_0, |
0 |
}; |
static const long _vq_quantlist__44p5_p6_1[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p5_p6_1[] = { |
2, 6, 6, 5, 7, 8, 5, 8, 7, 6, 7, 7, 7, 7, 8, 8, |
8, 8, 6, 7, 7, 7, 8, 8, 7, 8, 7, 6, 8, 8, 8, 9, |
10, 8, 9, 9, 8, 9, 9, 9, 9,10,10,10,10, 8, 9, 9, |
10,10,10, 9,10,10, 6, 8, 8, 8, 9, 9, 8,10, 9, 9, |
9, 9, 9, 9,10,10,10,10, 8, 9, 9,10,10,10, 9,10, |
9, 6, 8, 9, 8, 9, 9, 8, 9, 9, 8, 9, 9, 9, 9,10, |
9,10,10, 8, 9, 9, 9,10,10, 9,10, 9, 7, 8, 9, 8, |
9, 9, 9, 9, 9, 8, 9, 9, 9, 9, 9, 9, 9, 9, 8, 9, |
9, 9, 9, 9, 9, 9, 9, 7, 9, 9, 9,10,10, 9,10,10, |
9,10, 9, 9, 9,10,10,10,10, 9,10, 9,10,10,10, 9, |
10, 9, 6, 8, 8, 8, 9, 9, 8, 9, 9, 8, 9, 9, 9, 9, |
10, 9,10,10, 8, 9, 9, 9,10,10, 9,10, 9, 7, 9, 9, |
9,10,10, 9,10, 9, 9, 9,10,10, 9,10,10,10,10, 9, |
9, 9,10,10,10, 9,10, 9, 7, 9, 8, 8, 9, 9, 8, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, 9, 8, 9, 9, 9, |
9, 9, 9, |
}; |
static const static_codebook _44p5_p6_1 = { |
5, 243, |
(char *)_vq_lengthlist__44p5_p6_1, |
1, -530841600, 1616642048, 2, 0, |
(long *)_vq_quantlist__44p5_p6_1, |
0 |
}; |
static const long _vq_quantlist__44p5_p7_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p5_p7_0[] = { |
1, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, |
}; |
static const static_codebook _44p5_p7_0 = { |
5, 243, |
(char *)_vq_lengthlist__44p5_p7_0, |
1, -513979392, 1633504256, 2, 0, |
(long *)_vq_quantlist__44p5_p7_0, |
0 |
}; |
static const long _vq_quantlist__44p5_p7_1[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p5_p7_1[] = { |
1, 7, 7, 6, 9, 9, 7, 9, 9, 6, 9, 9, 9, 9, 9, 9, |
9, 9, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 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, 7, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 7, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, |
10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, |
10,10,10, |
}; |
static const static_codebook _44p5_p7_1 = { |
5, 243, |
(char *)_vq_lengthlist__44p5_p7_1, |
1, -516716544, 1630767104, 2, 0, |
(long *)_vq_quantlist__44p5_p7_1, |
0 |
}; |
static const long _vq_quantlist__44p5_p7_2[] = { |
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 const char _vq_lengthlist__44p5_p7_2[] = { |
1, 2, 3, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9,10,10,11, |
11,12,12,13,13,14,14,14,14, |
}; |
static const static_codebook _44p5_p7_2 = { |
1, 25, |
(char *)_vq_lengthlist__44p5_p7_2, |
1, -518864896, 1620639744, 5, 0, |
(long *)_vq_quantlist__44p5_p7_2, |
0 |
}; |
static const long _vq_quantlist__44p5_p7_3[] = { |
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 const char _vq_lengthlist__44p5_p7_3[] = { |
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, |
}; |
static const static_codebook _44p5_p7_3 = { |
1, 25, |
(char *)_vq_lengthlist__44p5_p7_3, |
1, -529006592, 1611661312, 5, 0, |
(long *)_vq_quantlist__44p5_p7_3, |
0 |
}; |
static const char _huff_lengthlist__44p5_short[] = { |
4, 7,12,14,15,18,20,20, 5, 3, 4, 6, 9,11,15,19, |
9, 4, 3, 4, 7, 9,13,18,11, 6, 3, 3, 5, 8,13,19, |
14, 9, 6, 5, 7,10,16,20,16,11, 9, 8,10,10,14,16, |
21,14,13,11, 8, 7,11,14,21,14,13, 9, 6, 5,10,12, |
}; |
static const static_codebook _huff_book__44p5_short = { |
2, 64, |
(char *)_huff_lengthlist__44p5_short, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const long _vq_quantlist__44p6_l0_0[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44p6_l0_0[] = { |
1, 4, 4, 7, 7,10,10,12,12,12,12,13,12, 5, 5, 5, |
8, 6,11, 9,12,12,13,12,12,12, 4, 5, 5, 6, 8, 9, |
11,12,12,13,12,12,12, 7, 7, 8, 9, 9,11, 8,12, 9, |
12,12,12,12, 7, 8, 8, 9, 9, 8,11, 9,12,12,12,11, |
12,10,10,10,11,11,11,11,11,10,11,11,12,11,10,10, |
10,11,11,11,11,10,11,11,11,11,12,11,11,11,12,11, |
12,11,12,11,13,11,13,11,11,11,11,11,12,11,12,10, |
13,11,12,11,13,12,12,12,13,12,13,13,13,12,14,12, |
14,13,12,12,12,12,13,13,13,12,14,12,14,13,14,13, |
14,14,14,14,14,14,14,14,15,14,15,14,13,14,13,14, |
14,14,14,14,15,14,14,14,15, |
}; |
static const static_codebook _44p6_l0_0 = { |
2, 169, |
(char *)_vq_lengthlist__44p6_l0_0, |
1, -526516224, 1616117760, 4, 0, |
(long *)_vq_quantlist__44p6_l0_0, |
0 |
}; |
static const long _vq_quantlist__44p6_l0_1[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44p6_l0_1[] = { |
4, 4, 4, 5, 5, 4, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, |
5, 5, 4, 5, 5, 5, 5, 5, 4, |
}; |
static const static_codebook _44p6_l0_1 = { |
2, 25, |
(char *)_vq_lengthlist__44p6_l0_1, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44p6_l0_1, |
0 |
}; |
static const long _vq_quantlist__44p6_l1_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p6_l1_0[] = { |
1, 3, 2, 5, 5, 6, 6, 6, 6, |
}; |
static const static_codebook _44p6_l1_0 = { |
2, 9, |
(char *)_vq_lengthlist__44p6_l1_0, |
1, -516716544, 1630767104, 2, 0, |
(long *)_vq_quantlist__44p6_l1_0, |
0 |
}; |
static const char _huff_lengthlist__44p6_lfe[] = { |
2, 3, 1, 3, |
}; |
static const static_codebook _huff_book__44p6_lfe = { |
2, 4, |
(char *)_huff_lengthlist__44p6_lfe, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist__44p6_long[] = { |
2, 7,13,15,16,17,19,20, 6, 3, 4, 7, 9,10,12,15, |
13, 4, 3, 4, 7, 8,11,13,14, 7, 4, 4, 6, 7,10,11, |
16, 9, 7, 6, 7, 8, 9,10,16, 9, 8, 7, 7, 6, 8, 8, |
18,12,10,10, 9, 8, 8, 9,20,14,13,12,11, 8, 9, 9, |
}; |
static const static_codebook _huff_book__44p6_long = { |
2, 64, |
(char *)_huff_lengthlist__44p6_long, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const long _vq_quantlist__44p6_p1_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p6_p1_0[] = { |
2, 5, 5, 5, 7, 7, 5, 7, 7, 5, 7, 7, 7, 8, 9, 7, |
9, 9, 5, 7, 7, 7, 9, 9, 7, 9, 8, 5, 7, 8, 8, 9, |
10, 8, 9, 9, 8, 9,10, 9,10,12,10,11,11, 8, 9,10, |
10,11,11, 9,11,11, 5, 8, 7, 8, 9, 9, 8,10, 9, 8, |
10, 9, 9,11,11,10,11,11, 8,10, 9,10,11,11, 9,12, |
10, 5, 8, 8, 7, 9,10, 8,10, 9, 7, 9, 9, 9,10,11, |
9,11,11, 8,10,10,10,11,11,10,12,11, 7, 9, 9, 9, |
10,11, 9,11,11, 9, 9,11,10,10,13,11,11,12, 9,11, |
11,11,12,13,11,13,12, 7, 9, 9, 9,11,11, 9,12,10, |
9,11,10,10,11,12,11,13,12, 9,11,11,11,13,13,11, |
13,11, 5, 8, 8, 8, 9,10, 7,10, 9, 8,10,10,10,11, |
11,10,11,11, 7, 9, 9, 9,11,11, 9,11,10, 7, 9, 9, |
9,10,12, 9,11,11, 9,11,11,11,11,13,11,13,13, 9, |
10,11,11,12,13,10,12,11, 7, 9, 9, 9,11,11, 9,11, |
10, 9,11,11,11,12,13,11,13,12, 9,11, 9,11,12,11, |
10,13,10, |
}; |
static const static_codebook _44p6_p1_0 = { |
5, 243, |
(char *)_vq_lengthlist__44p6_p1_0, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__44p6_p1_0, |
0 |
}; |
static const long _vq_quantlist__44p6_p2_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44p6_p2_0[] = { |
4, 6, 6, 9, 9, 6, 7, 8,10,10, 6, 8, 7,10,10, 8, |
10,10,12,13, 8,10,10,13,12, 6, 8, 8,10,10, 7, 8, |
9,10,11, 8, 9, 9,11,11,10,10,11,12,13,10,11,11, |
14,13, 6, 8, 8,10,10, 8, 9, 9,11,11, 7, 9, 8,11, |
10,10,11,11,13,14,10,11,10,13,12, 9,10,10,12,12, |
10,10,11,12,13,10,11,11,13,13,12,12,13,12,15,13, |
14,13,15,14, 9,10,10,13,12,10,11,11,13,13,10,11, |
10,13,12,13,13,14,14,15,12,13,12,15,12, 6, 8, 8, |
10,11, 8, 9,10,11,12, 8, 9, 9,11,11,10,11,12,13, |
14,10,11,11,14,13, 8, 9, 9,11,12, 9,10,11,12,13, |
9,10,11,12,13,11,11,13,13,15,11,12,12,14,14, 8, |
9, 9,12,12, 9,10,11,12,13, 9,10,10,13,12,11,12, |
13,14,15,11,12,12,14,14,11,11,12,13,14,11,12,13, |
13,15,12,13,13,14,15,13,13,14,14,16,14,15,15,16, |
16,11,12,11,14,13,12,13,13,14,14,11,13,12,14,13, |
14,15,15,16,16,13,14,14,16,14, 6, 8, 8,11,10, 8, |
9, 9,12,11, 8,10, 9,12,11,10,11,11,13,13,10,12, |
11,14,13, 8, 9, 9,12,12, 9,10,10,12,13, 9,11,10, |
13,12,11,12,12,14,14,11,13,12,15,14, 8, 9, 9,12, |
11, 9,10,10,13,12, 9,11,10,13,12,12,12,12,14,14, |
11,13,12,15,13,11,11,12,13,14,11,12,13,13,14,12, |
13,13,14,15,13,13,14,14,16,14,15,15,16,16,11,12, |
11,14,13,12,13,13,15,14,11,13,12,15,13,14,15,15, |
16,16,13,15,13,16,14, 9,10,11,12,13,11,11,12,13, |
14,11,12,12,13,14,13,13,14,14,16,13,14,14,15,16, |
11,11,12,13,14,12,12,13,14,15,12,13,13,14,15,14, |
14,15,15,17,14,15,15,16,17,11,12,12,14,14,12,13, |
13,14,15,12,13,12,15,15,14,15,15,16,17,14,15,15, |
16,16,13,14,14,15,16,14,14,15,15,17,15,15,15,16, |
17,16,16,17,16,18,16,17,17,18,18,13,14,14,16,15, |
14,15,15,17,16,14,15,15,16,16,16,17,17,18,18,16, |
16,16,17,16, 9,11,10,13,12,11,12,12,14,13,11,12, |
11,15,13,13,14,14,16,15,13,14,13,17,14,11,12,12, |
14,14,12,12,13,15,15,12,13,13,15,14,14,14,15,16, |
16,14,15,15,17,16,11,12,11,14,13,12,13,13,15,14, |
12,13,12,15,13,14,15,15,16,16,14,15,14,17,15,13, |
14,14,15,16,14,15,15,16,17,14,15,15,16,17,16,16, |
16,17,17,16,17,17,18,18,13,15,14,16,15,15,15,15, |
17,16,14,15,14,17,15,16,17,17,18,18,16,17,16,18, |
16, 6, 8, 8,11,11, 8, 9, 9,11,12, 8, 9, 9,12,11, |
10,11,11,13,14,10,12,11,14,13, 7, 9, 9,11,12, 9, |
10,10,12,13, 9,10,10,13,12,11,11,12,13,15,11,12, |
12,15,14, 8, 9, 9,12,11, 9,10,10,13,13, 9,11,10, |
13,12,12,12,12,14,15,11,13,12,15,13,10,11,11,13, |
14,11,12,12,13,15,11,12,12,14,14,13,13,14,14,16, |
14,15,14,16,16,11,12,11,14,13,12,13,13,15,14,11, |
13,12,15,13,14,15,15,16,16,13,14,14,16,14, 8, 9, |
9,11,12, 9,10,11,12,13, 9,10,10,13,12,11,12,13, |
14,15,11,12,12,15,14, 9, 9,11,11,13,10,10,12,12, |
14,10,10,11,13,14,12,12,13,14,16,12,13,13,15,15, |
9,11,10,13,12,10,11,11,13,14,10,12,11,14,13,12, |
13,13,15,16,12,13,13,15,15,11,11,13,13,15,12,12, |
14,13,15,13,13,14,14,15,14,14,15,14,17,15,15,15, |
16,16,12,13,12,15,14,13,14,14,15,15,12,14,13,15, |
14,15,15,15,17,17,14,15,14,17,15, 7, 9, 9,12,11, |
9,10,10,12,12, 9,11,10,13,12,11,12,12,14,14,11, |
13,12,15,14, 9,10,10,12,12,10,10,11,12,13,10,11, |
11,14,13,12,12,13,14,15,12,13,13,16,15, 9,10,10, |
13,12,10,11,11,13,13,10,11,10,14,12,13,13,13,15, |
15,12,13,12,15,14,11,12,12,14,14,12,12,13,14,15, |
13,14,13,15,15,14,13,15,14,16,15,16,15,17,16,12, |
12,12,14,14,13,13,14,15,15,12,13,12,15,14,15,15, |
16,16,17,14,15,14,17,14,10,11,12,13,14,11,12,13, |
14,15,11,12,13,14,15,13,14,15,15,17,14,15,15,16, |
16,11,12,13,12,15,12,12,14,13,16,13,13,14,13,16, |
14,14,16,14,18,15,15,16,16,17,12,13,12,15,15,13, |
14,14,15,16,13,14,13,16,15,15,15,16,17,18,15,15, |
15,17,16,14,14,15,14,17,15,14,16,14,17,15,15,16, |
15,18,16,16,17,16,19,17,17,17,17,18,14,15,15,17, |
16,15,16,16,17,17,15,16,15,18,16,17,17,18,18,18, |
16,17,16,18,17,10,11,11,14,13,11,12,12,15,14,11, |
13,12,15,14,14,15,15,16,16,14,15,15,17,16,11,12, |
12,15,14,12,13,13,15,14,13,14,13,16,14,14,15,15, |
16,16,15,16,15,18,16,11,13,12,15,15,13,14,14,15, |
15,12,14,13,16,15,15,16,16,17,17,15,16,15,17,16, |
14,15,14,16,16,14,15,15,16,16,15,16,15,17,16,16, |
16,17,16,17,17,18,17,19,18,14,15,15,17,16,15,16, |
16,17,17,15,15,15,18,16,17,18,18,18,18,16,17,16, |
19,16, 6, 8, 8,11,11, 8, 9, 9,11,12, 8, 9, 9,12, |
11,10,11,12,13,14,10,11,11,14,13, 8, 9, 9,11,12, |
9,10,11,12,13, 9,10,10,13,13,11,12,13,13,15,11, |
12,12,15,14, 7, 9, 9,12,11, 9,10,10,12,13, 9,10, |
10,13,12,11,12,12,14,15,11,12,11,14,13,11,11,12, |
13,14,11,12,13,13,15,12,13,13,14,15,13,14,14,14, |
16,14,15,15,16,16,10,11,11,14,13,11,12,12,14,14, |
11,12,12,15,13,14,14,14,16,16,13,14,13,16,14, 7, |
9, 9,11,12, 9,10,10,12,13, 9,10,10,12,12,11,12, |
13,14,15,11,12,12,14,14, 9,10,10,12,13,10,10,11, |
12,14,10,11,11,13,13,12,12,13,14,15,13,13,13,15, |
15, 9,10,10,12,12,10,11,11,13,14,10,11,10,13,12, |
12,13,13,15,16,12,13,12,15,14,11,12,13,14,14,12, |
12,13,14,15,13,14,13,15,15,14,14,15,14,17,15,16, |
15,17,16,11,12,12,14,14,13,13,13,15,15,12,13,12, |
15,14,15,15,15,16,17,14,15,14,16,14, 8, 9, 9,12, |
11, 9,10,10,12,13, 9,11,10,13,12,11,12,12,14,15, |
11,12,12,15,14, 9,10,11,13,13,10,11,12,13,14,10, |
11,11,14,13,12,13,13,15,15,12,13,13,16,15, 9,11, |
9,13,11,10,11,10,14,13,10,12,10,14,12,12,13,13, |
15,15,12,13,12,16,14,12,12,13,14,15,12,13,14,14, |
16,13,14,14,15,15,14,14,15,15,17,15,16,15,17,16, |
11,13,11,15,13,13,14,13,15,14,12,14,12,16,13,15, |
15,15,16,16,14,15,14,17,14,10,11,11,13,14,11,12, |
13,14,15,11,12,12,14,15,14,14,15,16,17,14,15,15, |
16,16,11,12,13,14,15,12,13,14,15,16,13,14,14,15, |
16,15,15,16,16,18,15,16,16,17,17,11,12,12,14,15, |
13,13,14,14,16,12,13,13,15,15,15,15,16,16,18,14, |
15,15,16,16,14,15,15,16,17,15,15,16,16,17,15,16, |
16,17,17,16,16,17,16,19,17,18,17,18,18,14,14,15, |
16,16,15,15,16,16,17,14,15,15,16,16,17,17,18,18, |
19,16,17,16,17,16,10,12,11,14,13,11,13,12,15,14, |
11,13,12,15,14,14,15,15,16,16,13,15,14,17,15,12, |
13,13,15,15,13,13,14,15,16,13,14,14,16,16,14,15, |
15,17,17,15,16,16,17,17,11,13,12,15,12,13,14,13, |
16,13,12,14,12,16,13,15,16,15,17,16,14,16,14,18, |
14,14,15,15,16,17,15,15,16,16,17,15,16,16,17,17, |
16,16,17,17,18,17,18,17,18,18,14,15,14,17,14,15, |
16,15,18,15,15,16,15,18,14,17,17,17,18,17,16,17, |
16,19,16, 9,11,11,13,13,10,12,12,14,14,11,12,12, |
15,14,13,14,14,16,16,13,14,14,16,16,10,11,12,14, |
14,11,12,13,14,15,12,13,13,15,15,13,14,15,16,16, |
14,15,15,17,16,11,12,12,15,14,12,13,13,15,15,12, |
13,12,15,15,14,15,15,16,17,14,15,14,17,16,12,13, |
14,15,16,13,13,14,15,16,13,14,15,16,16,14,15,16, |
16,18,15,16,16,18,18,13,14,14,16,15,14,15,15,17, |
16,14,15,15,17,16,16,17,17,18,18,16,17,16,18,17, |
10,12,12,14,14,11,12,13,15,15,12,13,13,15,15,13, |
14,15,16,17,14,15,15,17,16,11,11,13,14,15,12,12, |
14,15,16,13,13,14,15,16,14,14,15,16,17,15,15,16, |
17,17,12,13,12,15,15,13,14,14,16,16,13,14,13,16, |
15,15,16,15,17,17,15,16,15,18,16,13,12,15,14,17, |
14,13,16,14,17,14,14,16,15,18,15,14,17,16,18,16, |
16,17,17,18,14,15,15,17,16,15,16,16,17,17,15,16, |
15,18,16,17,17,17,18,18,16,17,16,19,17,10,11,11, |
14,14,11,12,12,15,15,11,13,12,15,15,14,15,14,16, |
16,14,15,15,17,16,11,12,12,15,14,12,12,13,15,15, |
13,14,13,16,15,14,15,15,16,16,15,16,15,18,17,11, |
13,12,15,15,13,14,13,15,15,12,14,13,16,15,15,16, |
15,17,17,15,16,15,18,16,13,14,13,16,16,14,15,14, |
16,16,14,15,15,17,16,16,16,16,16,18,16,18,17,19, |
18,14,15,15,17,16,15,16,16,17,17,15,15,15,17,16, |
17,17,18,18,19,16,17,16,18,16,12,13,13,15,16,13, |
14,14,16,17,13,14,14,16,16,15,15,16,17,18,15,16, |
16,18,17,13,13,14,14,17,14,14,15,15,17,14,14,15, |
16,17,15,15,17,16,18,16,17,17,18,18,13,14,14,17, |
16,14,15,15,17,17,14,15,14,17,16,16,17,17,18,18, |
16,17,16,18,17,15,14,16,13,18,16,15,17,14,19,16, |
16,17,15,18,17,16,18,15,19,18,18,18,17,19,15,16, |
16,18,17,16,17,17,18,18,16,17,16,19,17,18,19,18, |
19,19,17,18,17,20,18,11,12,12,15,15,13,13,14,15, |
16,13,14,13,16,15,15,16,16,17,17,15,16,16,18,17, |
12,14,13,16,15,13,13,14,15,16,14,15,14,17,16,16, |
16,16,16,17,16,17,17,19,17,12,13,14,16,16,14,15, |
15,16,17,13,15,13,17,15,16,17,17,18,18,16,17,16, |
18,16,15,16,15,17,16,15,15,15,17,17,16,17,16,18, |
17,17,16,17,16,18,18,19,18,20,18,15,16,16,17,17, |
16,17,17,18,18,15,16,15,18,17,18,18,19,19,19,17, |
18,16,19,16, 9,11,11,13,13,11,12,12,14,15,10,12, |
12,14,14,13,14,14,16,16,13,14,14,16,16,11,12,12, |
14,14,12,12,13,15,15,12,13,13,15,15,14,15,15,16, |
17,14,15,15,16,16,10,12,11,14,14,12,13,13,15,15, |
11,13,12,15,14,14,15,15,16,17,13,15,14,17,16,13, |
14,14,15,16,14,15,15,16,17,14,15,15,16,17,16,16, |
17,17,18,16,17,17,18,18,12,14,13,16,15,13,15,14, |
17,16,13,14,13,17,15,15,16,16,18,18,15,16,15,18, |
16,10,11,11,14,14,11,12,13,14,15,11,12,12,15,15, |
14,15,15,16,17,14,15,15,16,16,11,12,13,15,15,12, |
13,14,15,16,13,14,14,15,16,15,15,16,16,18,15,15, |
16,17,17,11,12,12,14,15,13,13,14,15,16,12,13,13, |
15,15,15,15,16,17,18,14,15,15,17,16,14,15,15,16, |
17,15,15,16,16,17,15,16,16,17,17,16,16,17,16,19, |
17,17,18,19,18,13,13,14,16,16,14,15,16,17,17,14, |
14,15,16,16,16,16,17,18,18,16,16,16,18,16,10,12, |
12,14,14,12,13,13,15,15,11,13,12,15,15,14,15,15, |
16,17,13,15,14,17,16,12,13,13,15,15,13,13,14,15, |
16,13,14,14,16,16,15,15,16,17,18,15,15,16,17,17, |
11,13,12,15,14,13,14,13,16,15,12,14,12,16,14,15, |
16,15,17,17,14,16,14,17,16,14,15,15,16,17,15,15, |
16,16,18,15,16,16,17,17,16,17,17,17,19,17,17,17, |
18,18,13,15,12,17,14,14,16,14,17,15,14,15,13,17, |
14,16,17,16,18,17,15,17,14,19,15,11,12,12,15,15, |
13,13,14,15,16,13,14,13,16,15,15,16,16,17,18,15, |
16,16,17,17,12,14,13,16,16,13,13,15,15,17,14,15, |
15,17,16,16,16,17,16,19,16,17,17,18,18,12,13,14, |
15,16,14,14,15,16,17,13,14,13,16,15,16,17,17,18, |
19,15,16,16,17,16,15,16,16,18,17,15,15,16,17,18, |
16,17,17,18,18,16,16,18,16,19,18,19,19,20,19,15, |
15,16,16,17,16,16,17,17,18,15,15,15,17,16,18,18, |
19,18,20,17,17,16,18,16,12,13,13,16,15,13,14,14, |
16,16,13,14,14,16,16,15,16,16,17,18,15,16,15,18, |
17,13,14,14,16,16,14,15,15,16,17,14,15,15,17,17, |
16,17,17,18,18,16,17,17,18,18,13,14,13,17,14,14, |
15,14,17,16,14,15,14,17,15,16,17,17,18,18,15,17, |
15,19,15,16,16,16,17,18,16,16,17,17,19,16,17,17, |
18,19,17,17,18,18,20,18,18,18,19,19,15,16,14,18, |
13,16,17,16,19,15,16,17,15,19,14,18,18,18,19,17, |
17,18,16,20,15, |
}; |
static const static_codebook _44p6_p2_0 = { |
5, 3125, |
(char *)_vq_lengthlist__44p6_p2_0, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44p6_p2_0, |
0 |
}; |
static const long _vq_quantlist__44p6_p3_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p6_p3_0[] = { |
1, 5, 5, 5, 7, 8, 5, 8, 7, 5, 7, 8, 8, 8,10, 8, |
10,10, 5, 8, 7, 8,10,10, 8,10, 8, 6, 8, 9, 8,10, |
12, 9,11,11, 9,10,11,11,11,13,12,13,13, 9,11,11, |
11,13,13,11,13,12, 6, 9, 8, 9,11,11, 8,12,10, 9, |
11,11,11,12,13,11,13,13, 9,11,10,11,13,13,11,13, |
11, 5, 9, 9, 8,11,11, 9,12,11, 8,10,11,10,11,13, |
11,13,13, 9,11,11,11,13,13,11,13,12, 8,10,11,10, |
12,13,10,13,12,10,10,13,11,11,14,12,13,14,11,13, |
12,13,14,14,12,14,12, 8,11,10,11,12,13,11,14,12, |
10,13,12,12,12,13,13,15,14,11,12,13,13,14,15,12, |
14,12, 5, 9, 9, 9,11,12, 8,11,11, 9,11,11,11,12, |
13,11,13,13, 8,11,10,11,13,13,10,13,11, 8,10,11, |
11,12,14,11,13,12,11,13,12,12,12,14,13,15,14,10, |
12,13,13,14,15,12,13,12, 8,11,10,10,12,13,10,13, |
12,11,12,13,12,12,14,13,14,14,10,13,10,12,14,13, |
11,14,11, |
}; |
static const static_codebook _44p6_p3_0 = { |
5, 243, |
(char *)_vq_lengthlist__44p6_p3_0, |
1, -533200896, 1614282752, 2, 0, |
(long *)_vq_quantlist__44p6_p3_0, |
0 |
}; |
static const long _vq_quantlist__44p6_p3_1[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p6_p3_1[] = { |
5, 7, 7, 6, 7, 7, 6, 7, 7, 6, 7, 7, 7, 8, 8, 7, |
8, 8, 6, 7, 7, 7, 8, 8, 7, 8, 8, 7, 7, 8, 7, 8, |
8, 7, 8, 8, 8, 8, 8, 8, 8, 9, 8, 9, 9, 8, 8, 8, |
8, 9, 9, 8, 9, 8, 7, 8, 7, 7, 8, 8, 7, 8, 8, 8, |
8, 8, 8, 8, 9, 8, 9, 9, 8, 8, 8, 8, 9, 9, 8, 9, |
8, 6, 8, 8, 7, 8, 8, 7, 8, 8, 7, 8, 8, 8, 8, 9, |
8, 9, 9, 8, 8, 8, 8, 9, 9, 8, 9, 8, 7, 8, 8, 8, |
8, 9, 8, 9, 9, 8, 8, 9, 8, 9, 9, 9, 9, 9, 8, 9, |
9, 9, 9, 9, 9, 9, 9, 7, 8, 8, 8, 9, 9, 8, 9, 8, |
8, 8, 8, 8, 9, 9, 9, 9, 9, 8, 9, 8, 9, 9, 9, 9, |
9, 9, 6, 8, 8, 7, 8, 8, 7, 8, 8, 8, 8, 8, 8, 8, |
9, 8, 9, 9, 7, 8, 8, 8, 9, 9, 8, 9, 8, 7, 8, 8, |
8, 8, 9, 8, 9, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 8, |
8, 8, 9, 9, 9, 8, 9, 9, 7, 8, 8, 8, 9, 9, 8, 9, |
8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 8, 9, 8, 9, 9, 9, |
9, 9, 9, |
}; |
static const static_codebook _44p6_p3_1 = { |
5, 243, |
(char *)_vq_lengthlist__44p6_p3_1, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__44p6_p3_1, |
0 |
}; |
static const long _vq_quantlist__44p6_p4_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p6_p4_0[] = { |
2, 5, 5, 5, 7, 8, 5, 8, 7, 5, 7, 7, 7, 7, 9, 7, |
9, 9, 5, 7, 7, 8, 9, 9, 7, 9, 7, 6, 8, 8, 8, 9, |
10, 8, 9, 9, 8, 9,10, 9, 9,11,10,11,11, 8, 9, 9, |
10,11,11, 9,11,10, 6, 8, 8, 8, 9, 9, 8,10, 9, 8, |
9, 9, 9,10,11,10,11,10, 8,10, 9,10,11,11, 9,11, |
9, 6, 8, 8, 7, 9, 9, 8,10, 9, 7, 9, 9, 9, 9,10, |
9,10,10, 8, 9, 9, 9,10,10, 9,11,10, 7, 9, 9, 8, |
10,10, 9,10,10, 9, 9,10,10,10,11,10,11,11, 9,10, |
10,10,11,11,10,11,10, 7, 9, 9, 9, 9,10, 9,10, 9, |
8,10, 9, 9, 9,11,10,11,11, 9,10,10,10,11,11, 9, |
11, 9, 6, 8, 8, 8, 9,10, 7, 9, 9, 8, 9, 9, 9,10, |
10, 9,10,10, 7, 9, 9, 9,10,10, 9,10, 9, 7, 9, 9, |
9, 9,10, 9,10, 9, 9,10,10, 9, 9,11,10,11,11, 8, |
9,10,10,11,11, 9,11, 9, 7, 9, 9, 9,10,10, 8,10, |
10, 9,10,10,10,10,11,10,11,11, 9,10, 9,10,11,11, |
10,11,10, |
}; |
static const static_codebook _44p6_p4_0 = { |
5, 243, |
(char *)_vq_lengthlist__44p6_p4_0, |
1, -531365888, 1616117760, 2, 0, |
(long *)_vq_quantlist__44p6_p4_0, |
0 |
}; |
static const long _vq_quantlist__44p6_p4_1[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44p6_p4_1[] = { |
6, 8, 8,10,10, 8, 9, 9,10,11, 8,10, 9,11,10, 9, |
10,10,11,11, 9,10,10,11,11, 8, 9, 9,10,10, 9, 9, |
10,11,11,10,10,10,11,11,10,11,11,11,11,10,11,11, |
11,11, 8, 9, 9,11,10,10,10,10,11,11, 9,10, 9,11, |
11,10,11,11,11,11,10,11,10,11,11,10,10,11,11,11, |
10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, |
11,11,11,11,10,11,10,11,11,11,11,11,11,11,10,11, |
11,11,11,11,11,11,11,11,11,11,11,11,11, 8, 9,10, |
11,11,10,10,11,11,11,10,10,10,11,11,10,11,11,12, |
12,10,11,11,12,12,10,10,11,11,11,10,10,11,11,12, |
11,11,11,12,12,11,11,12,12,12,11,11,12,12,12,10, |
10,10,11,11,11,11,11,12,12,10,11,11,12,12,11,12, |
12,12,12,11,12,11,12,12,11,11,11,11,12,11,11,12, |
12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12, |
12,11,11,11,12,11,11,12,12,12,12,11,12,12,12,12, |
12,12,12,12,12,12,12,12,12,12, 8,10, 9,11,11,10, |
10,10,11,11,10,11,10,11,11,10,11,11,12,12,10,11, |
11,12,12,10,10,10,11,11,10,11,11,12,12,11,11,11, |
12,12,11,11,12,12,12,11,12,12,12,12,10,11,10,11, |
11,11,11,11,12,12,10,11,10,12,11,11,12,11,12,12, |
11,12,11,12,12,11,11,11,12,12,11,11,12,12,12,11, |
12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11, |
11,12,11,11,12,12,12,12,11,12,11,12,12,12,12,12, |
12,12,12,12,12,12,12,10,11,11,11,12,11,11,12,12, |
12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12, |
11,11,12,12,12,11,12,12,12,12,12,12,12,12,12,12, |
12,12,12,12,12,12,12,12,13,11,12,11,12,12,12,12, |
12,12,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,12,12,12,12, |
12,12,12,13,12,13,12,12,12,12,13,12,12,12,12,12, |
12,12,12,12,12,12,12,12,12,12,12,13,13,13,13,12, |
12,12,13,12,10,11,11,12,11,11,11,12,12,12,11,12, |
11,12,12,11,12,12,12,12,11,12,12,12,12,11,11,12, |
12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12, |
12,12,12,12,12,12,11,12,11,12,12,12,12,12,12,12, |
11,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12, |
12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, |
12,12,13,12,12,12,12,13,12,12,12,12,12,12,12,12, |
12,12,12,12,12,12,12,12,12,12,13,13,12,13,12,13, |
12, 8,10,10,11,11,10,10,11,11,11,10,11,10,11,11, |
10,11,11,12,12,10,11,11,12,12, 9,10,11,11,11,10, |
10,11,12,12,10,11,11,12,12,11,11,12,12,12,11,12, |
12,12,12,10,11,10,11,11,11,11,11,12,12,10,11,11, |
12,12,11,12,12,12,12,11,12,11,12,12,11,11,11,12, |
12,11,11,12,12,12,11,12,12,12,12,12,12,12,12,12, |
12,12,12,12,12,11,11,11,12,12,11,12,12,12,12,11, |
12,12,12,12,12,12,12,12,12,12,12,12,12,12, 9,10, |
10,11,11,10,11,11,12,12,10,11,11,12,12,11,11,12, |
12,12,11,12,12,12,12,10,11,11,12,12,11,11,12,12, |
12,11,11,12,12,12,11,11,12,12,12,12,12,12,12,12, |
10,11,11,12,12,11,12,12,12,12,11,12,11,12,12,12, |
12,12,12,12,12,12,12,12,12,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,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, 9,10,10,11,11, |
10,11,11,12,12,10,11,11,12,11,11,12,12,12,12,11, |
12,12,12,12,10,11,11,12,12,11,11,11,12,12,11,12, |
12,12,12,12,12,12,12,12,12,12,12,12,12,10,11,11, |
12,12,11,12,12,12,12,11,12,11,12,12,12,12,12,12, |
12,12,12,12,12,12,11,12,12,12,12,11,12,12,12,12, |
12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11, |
12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12, |
12,12,12,12,12,12,12,12,11,11,11,12,12,11,12,12, |
12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12, |
13,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12, |
12,12,13,12,13,12,12,13,13,13,11,12,12,12,12,12, |
12,12,13,13,12,12,12,13,12,12,12,12,13,13,12,13, |
12,13,13,12,12,12,12,12,12,12,12,12,13,12,13,13, |
13,13,12,13,13,13,13,13,13,13,13,13,12,12,12,12, |
12,12,12,13,13,13,12,13,12,13,13,12,13,13,13,13, |
12,13,13,13,13,11,11,11,12,12,11,12,12,12,12,11, |
12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12, |
12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13, |
12,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12, |
13,12,12,12,13,12,12,13,12,13,13,12,13,12,13,13, |
12,12,12,12,12,12,12,13,13,13,12,12,13,13,13,12, |
13,13,12,13,13,13,13,13,13,12,12,12,12,12,12,13, |
12,13,13,12,13,12,13,12,12,13,13,13,13,12,13,13, |
13,13, 8,10,10,11,11,10,10,11,11,11, 9,11,10,11, |
11,10,11,11,12,12,10,11,11,12,12,10,10,11,11,11, |
10,11,11,12,12,11,11,11,12,12,11,11,12,12,12,11, |
12,12,12,12, 9,11,10,11,11,10,11,11,12,12,10,11, |
10,12,12,11,12,12,12,12,11,12,11,12,12,11,11,11, |
12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12, |
12,12,12,12,12,12,11,11,11,12,12,11,12,12,12,12, |
11,12,11,12,12,12,12,12,12,12,12,12,12,12,12, 9, |
10,10,11,11,10,11,11,12,12,10,11,11,12,12,11,12, |
12,12,12,11,12,12,12,12,10,11,11,12,12,11,11,12, |
12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12, |
12,10,11,11,12,12,11,11,12,12,12,11,11,11,12,12, |
12,12,12,12,12,11,12,12,12,12,11,12,12,12,12,11, |
12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, |
12,12,12,11,12,12,12,12,12,12,12,12,12,11,12,12, |
12,12,12,12,12,12,12,12,12,12,12,12, 9,10,10,11, |
11,10,11,11,12,12,10,11,11,12,12,11,12,12,12,12, |
11,12,11,12,12,10,11,11,12,12,11,11,12,12,12,11, |
11,12,12,12,12,12,12,12,12,12,12,12,12,12,10,11, |
11,12,12,11,12,11,12,12,11,12,11,12,12,12,12,12, |
12,12,11,12,11,12,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, |
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,11,11,11,12,12,11,12, |
12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12, |
12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,13, |
13,12,12,12,13,13,12,12,13,13,13,11,12,12,12,12, |
12,12,12,12,12,12,12,12,12,12,12,13,12,13,13,12, |
12,12,13,12,12,12,12,12,12,12,12,13,13,13,12,12, |
13,13,13,12,13,13,12,13,12,13,13,13,13,12,12,12, |
12,12,12,12,13,13,13,12,12,12,13,12,12,13,13,13, |
13,12,13,13,13,13,11,11,11,12,12,11,12,12,12,12, |
11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11, |
12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12, |
13,13,13,12,12,12,13,13,11,12,12,12,12,12,12,12, |
13,12,12,12,12,13,12,12,13,12,13,13,12,13,12,13, |
12,12,12,12,12,12,12,12,13,13,13,12,13,13,13,13, |
12,13,13,13,13,13,13,13,13,13,12,12,12,12,12,12, |
13,12,13,12,12,13,12,13,12,13,13,13,13,13,12,13, |
13,13,13,10,11,11,12,12,11,12,12,12,12,11,12,12, |
12,12,12,12,12,12,12,12,12,12,12,12,11,11,12,12, |
12,11,12,12,12,12,12,12,12,12,12,12,12,12,13,13, |
12,12,12,13,13,11,12,12,12,12,12,12,12,12,12,12, |
12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,12, |
12,12,12,12,12,12,12,13,12,12,12,12,13,12,12,13, |
12,13,12,13,13,13,13,12,12,12,12,12,12,12,12,13, |
12,12,12,12,13,12,12,13,13,13,13,12,13,12,13,13, |
11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12, |
12,12,12,13,12,12,12,13,12,11,12,12,12,12,12,12, |
12,12,13,12,12,12,12,13,12,12,13,13,13,12,12,13, |
13,13,11,12,12,12,12,12,12,12,12,13,12,12,12,13, |
12,12,13,12,13,13,12,13,12,13,13,12,12,12,12,12, |
12,12,13,12,13,12,12,13,13,13,12,12,13,13,13,13, |
13,13,13,13,12,12,12,12,12,12,13,13,13,13,12,13, |
12,13,12,12,13,13,13,13,12,13,13,13,13,11,11,11, |
12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12, |
12,12,12,12,12,13,11,12,12,12,12,12,12,12,12,13, |
12,12,12,13,13,12,12,13,13,13,12,12,13,13,13,11, |
12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,13, |
12,13,13,12,13,12,13,13,12,12,12,12,12,12,12,12, |
12,13,12,13,12,13,13,12,13,13,13,13,12,13,13,13, |
13,12,12,12,12,12,12,13,12,13,13,12,12,12,13,13, |
12,13,13,13,13,12,13,12,13,13,11,12,12,12,12,11, |
12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12, |
12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12, |
12,12,12,12,13,12,13,12,12,12,13,13,11,12,12,12, |
12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13, |
12,13,12,13,13,12,12,12,12,12,12,12,13,12,13,12, |
12,13,12,13,12,12,13,12,13,12,13,13,13,13,12,12, |
12,12,12,12,12,12,12,12,12,12,12,13,12,12,13,13, |
13,13,12,13,12,13,12,11,11,11,12,12,11,12,12,12, |
12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,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,13,11,12,12,12,12,12,12, |
12,12,12,12,12,12,12,12,12,12,12,13,13,12,12,12, |
13,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, |
12,12,12,13,12,12,12,13,12,12,12,12,12,12,12,12, |
12,12,12,13,12,12,12,12,13,12,12,13,12,13,12,12, |
13,12,13,12,10,11,11,12,12,11,12,12,12,12,11,12, |
11,12,12,11,12,12,12,12,11,12,12,12,12,11,12,12, |
12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, |
13,12,12,12,13,13,11,12,11,12,12,12,12,12,12,12, |
11,12,12,12,12,12,12,12,13,13,12,12,12,13,12,12, |
12,12,12,12,12,12,12,12,13,12,12,12,12,13,12,13, |
13,12,13,12,13,13,13,13,12,12,12,12,12,12,12,12, |
13,13,12,12,12,13,12,12,13,13,13,13,12,13,12,13, |
12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12, |
12,12,12,13,13,12,12,12,13,12,11,12,12,12,12,12, |
12,12,12,13,12,12,12,13,13,12,12,13,13,13,12,12, |
13,13,13,11,12,12,12,12,12,12,12,13,13,12,12,12, |
13,12,12,13,12,13,13,12,12,12,13,13,12,12,12,12, |
12,12,12,13,13,13,12,12,13,13,13,12,12,13,13,13, |
12,13,13,13,13,12,12,12,12,12,12,12,13,13,13,12, |
12,12,13,12,12,13,13,13,13,12,13,13,13,13,11,11, |
11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12, |
12,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12, |
13,12,12,12,13,13,12,12,13,13,13,12,12,13,13,13, |
11,12,12,12,12,12,12,12,13,12,12,12,12,13,12,12, |
13,12,13,13,12,13,12,13,13,12,12,12,12,12,12,12, |
12,13,13,12,13,12,13,13,12,13,13,13,13,13,13,13, |
13,13,12,12,12,12,12,12,13,12,13,13,12,13,12,13, |
12,12,13,13,13,13,12,13,12,13,13,11,11,11,12,12, |
11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12, |
12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12, |
12,12,12,12,12,12,12,13,12,12,12,13,13,11,12,12, |
12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13, |
13,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13, |
12,12,12,12,13,12,12,12,12,13,12,12,13,12,13,12, |
12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, |
13,12,12,12,13,12,12,12,11,12,11,12,12,11,12,12, |
12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12, |
12,11,12,12,12,12,12,12,12,12,13,12,12,12,12,12, |
12,12,12,13,13,12,12,12,13,13,11,12,12,12,12,12, |
12,12,12,12,12,12,12,12,12,12,13,12,13,13,12,12, |
12,13,12,12,12,12,12,12,12,12,12,12,13,12,12,12, |
13,13,12,12,13,12,13,12,13,13,13,13,12,12,12,12, |
12,12,12,12,13,12,12,12,12,13,12,12,13,12,13,13, |
12,13,12,13,12, |
}; |
static const static_codebook _44p6_p4_1 = { |
5, 3125, |
(char *)_vq_lengthlist__44p6_p4_1, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44p6_p4_1, |
0 |
}; |
static const long _vq_quantlist__44p6_p5_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44p6_p5_0[] = { |
2, 6, 6,10,10, 5, 7, 8,11,12, 5, 8, 7,12,11, 9, |
11,11,13,15, 9,11,11,15,13, 6, 7, 8,11,11, 7, 7, |
9,11,13, 8, 9, 9,13,12,11,11,12,12,15,11,12,12, |
15,14, 6, 8, 7,11,11, 8, 9, 9,12,13, 7, 9, 7,13, |
11,11,12,12,14,15,11,12,11,15,12,10,11,11,12,14, |
10,11,12,12,15,12,13,13,14,15,13,12,14,12,16,15, |
15,15,16,16,10,11,11,14,12,12,13,13,15,14,10,12, |
11,15,12,15,15,15,16,17,13,14,12,17,12, 6, 8, 8, |
12,12, 8, 9,10,13,13, 8, 9, 9,13,13,12,12,13,15, |
16,12,13,13,16,15, 8, 9,10,12,13, 9, 9,11,13,14, |
10,11,11,14,14,13,13,14,15,16,13,14,14,16,16, 8, |
10, 9,13,13,10,11,11,14,14, 9,10,10,14,13,13,14, |
14,16,17,13,13,13,16,15,12,13,13,14,16,13,13,14, |
14,16,14,14,14,16,16,15,15,16,15,18,16,17,17,18, |
18,12,13,13,15,15,14,14,14,16,16,13,14,13,16,15, |
16,16,17,18,18,15,16,15,18,15, 6, 8, 8,12,12, 8, |
9, 9,13,13, 8,10, 9,13,13,12,13,13,15,16,12,13, |
12,16,15, 8, 9,10,13,13, 9,10,10,13,14,10,11,11, |
14,14,13,13,13,15,16,13,14,14,17,16, 8,10, 9,13, |
13,10,11,11,14,14, 9,11, 9,14,13,13,14,14,16,16, |
13,14,13,16,14,12,13,13,15,16,13,13,14,15,16,14, |
14,14,16,16,15,15,16,15,18,17,17,17,18,18,12,13, |
13,16,14,14,14,14,16,16,13,14,13,16,14,16,17,17, |
18,18,15,16,15,18,15,11,12,13,14,16,13,13,14,15, |
17,13,14,14,16,17,16,16,17,17,19,16,17,17,18,19, |
13,13,14,16,16,14,14,15,16,17,14,15,15,17,17,17, |
16,17,17,19,17,17,18,19,19,13,14,14,16,16,14,14, |
15,17,18,14,15,14,17,17,17,17,18,18,19,17,17,17, |
18,19,16,16,16,17,18,17,17,17,18,19,17,17,17,18, |
19,18,18,19,18,20,19,20,19,21,20,16,17,17,18,18, |
17,17,18,19,19,17,17,17,19,18,19,19,19,19,20,19, |
19,19,20,19,11,13,12,16,14,13,14,14,17,16,13,14, |
13,17,15,16,17,17,18,18,16,17,16,19,17,13,14,14, |
16,16,14,14,14,17,17,14,15,15,17,16,17,17,17,19, |
19,17,18,17,19,18,13,14,13,17,16,14,15,15,17,17, |
14,15,14,18,16,17,17,17,19,19,17,17,16,19,17,16, |
17,17,18,19,17,17,17,18,18,17,18,17,19,18,18,19, |
18,19,19,19,20,19,20,20,16,17,16,18,17,17,17,17, |
18,18,17,18,17,19,17,19,19,19,19,20,18,19,19,20, |
18, 6, 8, 8,12,12, 8, 9, 9,13,13, 8,10, 9,13,13, |
11,13,13,15,16,12,13,13,16,15, 8, 9, 9,13,13, 9, |
9,10,13,14,10,11,11,14,14,12,12,13,14,16,13,14, |
14,17,16, 8,10, 9,13,13,10,11,11,14,14, 9,11,10, |
14,13,13,14,14,16,16,13,14,13,16,15,12,13,13,14, |
16,12,13,14,14,16,13,14,14,16,16,15,14,16,15,18, |
16,17,17,18,17,12,13,13,16,15,14,14,14,16,16,13, |
14,13,16,15,16,16,17,17,17,15,16,15,18,15, 7, 9, |
9,13,13, 9, 9,11,13,14, 9,10,10,14,13,12,13,14, |
15,16,12,14,13,17,15, 9, 9,10,13,14,10, 9,11,13, |
15,11,11,11,14,14,13,12,14,14,17,14,14,14,17,16, |
9,10,10,14,13,11,11,11,14,14,10,11,10,15,13,14, |
14,14,16,17,13,14,13,17,14,13,13,14,14,16,13,13, |
14,14,17,14,14,14,16,16,15,14,16,15,18,17,17,17, |
18,18,13,14,13,16,15,14,14,15,17,16,13,14,13,17, |
15,17,16,17,17,17,15,16,14,18,14, 7, 9, 9,13,13, |
9,10,10,13,14, 9,11,10,14,13,13,14,14,16,16,13, |
14,14,17,15, 9,10,10,14,13, 9,10,11,13,14,11,12, |
11,15,14,13,13,14,14,16,14,15,15,17,17, 9,10,10, |
14,14,11,12,12,14,15,10,11,10,15,13,14,15,15,17, |
17,14,15,13,17,14,13,14,13,16,16,13,13,14,15,16, |
14,15,15,17,17,15,14,16,15,18,17,18,17,20,18,13, |
14,14,16,16,15,15,15,17,17,13,14,13,17,15,17,17, |
18,18,18,15,16,14,19,14,12,13,13,15,16,13,13,15, |
16,17,13,14,14,16,16,15,15,17,17,19,16,17,17,19, |
18,13,13,14,15,17,14,13,15,15,17,14,15,15,16,17, |
16,15,18,16,19,17,17,17,18,19,13,14,14,17,16,14, |
15,15,17,17,14,15,14,17,16,17,17,17,18,19,16,17, |
16,19,17,16,16,17,16,18,16,16,17,16,19,17,17,18, |
18,19,18,17,18,17,21,19,19,19,20,19,16,17,17,18, |
18,17,17,18,18,19,16,17,16,18,18,19,19,19,19,20, |
18,18,17,20,18,11,13,13,16,15,13,14,14,16,17,13, |
15,14,17,16,16,17,17,18,18,17,17,17,19,18,13,14, |
13,17,16,14,13,14,16,17,15,16,15,18,16,17,16,17, |
17,19,18,18,18,20,18,13,14,14,16,17,15,15,15,17, |
18,14,15,14,18,16,18,18,18,19,20,17,18,16,20,17, |
16,17,16,18,18,16,16,17,18,18,17,18,18,19,18,18, |
17,19,17,20,19,20,19,22,20,16,16,17,18,18,18,17, |
17,19,19,16,17,16,18,17,19,20,19,22,21,18,19,18, |
21,17, 6, 8, 8,12,12, 8, 9,10,13,13, 8, 9, 9,13, |
13,12,13,13,15,16,11,13,13,16,15, 8, 9,10,13,13, |
9,10,11,13,14,10,11,11,14,14,13,13,14,15,16,13, |
14,14,16,16, 8, 9, 9,13,13,10,11,11,14,14, 9,10, |
9,14,13,13,14,14,16,17,12,14,12,16,14,12,13,13, |
15,16,13,13,14,15,16,13,14,14,15,17,15,15,16,15, |
18,16,16,17,17,17,12,13,13,16,14,13,14,14,16,16, |
12,14,13,16,14,16,17,17,18,18,15,15,14,18,14, 7, |
9, 9,13,13, 9,10,11,13,14, 9,10,10,14,13,13,14, |
14,15,17,13,14,14,16,15, 9,10,10,14,14,10,10,11, |
13,15,11,12,12,15,14,14,13,15,14,17,14,15,15,17, |
17, 9,10,10,13,14,11,11,12,14,15, 9,11,10,14,13, |
14,15,15,16,18,13,14,13,16,14,13,14,14,16,16,13, |
13,14,15,17,15,15,15,16,17,15,14,16,15,18,17,17, |
18,19,18,13,14,14,16,16,14,15,15,17,17,13,14,13, |
16,15,17,17,18,18,18,15,16,14,18,15, 7, 9, 9,13, |
13, 9,10,10,13,14, 9,11,10,14,13,12,13,14,15,16, |
12,14,13,16,15, 9,10,10,13,14,10,10,11,13,14,11, |
11,11,15,14,13,13,14,14,16,14,14,14,17,16, 9,10, |
9,14,13,11,11,11,14,14,10,11, 9,15,13,14,14,14, |
16,16,13,14,12,17,14,13,13,14,15,16,13,13,14,15, |
16,14,15,14,16,17,15,14,16,14,18,16,17,17,18,18, |
13,14,13,16,14,14,14,14,16,16,13,14,13,17,14,17, |
17,17,18,18,15,16,14,18,15,11,13,13,16,16,13,14, |
15,16,17,13,14,14,17,16,16,17,17,18,19,17,17,17, |
19,18,13,14,14,17,17,13,13,15,16,18,15,15,15,17, |
17,17,16,18,17,20,18,17,18,19,19,13,14,14,16,17, |
15,15,16,16,18,14,15,14,16,16,17,17,18,18,20,17, |
18,16,18,17,16,17,16,19,18,16,16,17,18,19,18,18, |
18,19,19,18,17,18,17,21,20,19,19,21,21,16,16,17, |
18,18,17,17,18,19,19,16,17,16,19,18,20,20,20,19, |
21,18,18,17,20,18,12,13,13,16,15,13,14,14,16,16, |
13,14,13,17,16,16,17,17,18,18,15,17,15,19,17,13, |
14,14,16,17,14,14,15,16,17,14,15,15,17,17,16,16, |
17,17,18,17,17,17,19,19,13,14,13,17,15,14,15,15, |
17,16,14,15,13,17,15,17,18,17,19,18,16,17,15,20, |
16,16,17,17,18,18,16,16,17,18,18,17,18,17,19,18, |
17,17,18,18,20,19,20,19,20,19,16,16,16,19,16,17, |
17,17,19,18,16,17,16,19,16,19,19,19,19,19,18,19, |
17,19,17,11,13,13,16,16,13,14,14,17,17,13,14,14, |
17,17,15,17,17,19,19,16,18,17,20,19,12,14,14,17, |
17,13,14,15,17,18,14,15,15,17,18,16,16,17,18,20, |
17,18,18,20,18,13,14,14,17,17,14,15,15,17,18,14, |
15,15,17,17,17,18,17,19,19,17,18,17,19,19,15,16, |
16,18,18,15,16,17,18,19,16,17,17,19,19,17,17,18, |
18,21,18,19,19,21,19,16,17,17,18,18,17,17,18,19, |
19,17,18,17,19,19,19,19,19,20,20,18,19,18,21,19, |
12,13,13,16,16,13,14,14,16,17,13,15,14,17,16,15, |
16,17,17,19,16,17,17,19,18,13,13,14,16,17,14,13, |
15,16,17,14,15,15,17,17,15,15,17,17,20,17,17,18, |
19,18,13,14,14,17,16,15,15,15,17,18,14,15,14,17, |
16,17,17,17,18,18,16,17,16,19,17,16,15,17,17,19, |
16,15,17,16,19,17,16,17,18,19,17,16,19,16,20,19, |
18,19,19,19,16,17,17,18,18,17,17,17,18,19,16,17, |
16,19,18,20,19,19,20,19,18,18,17,20,17,11,13,13, |
16,16,13,14,15,16,17,14,15,14,18,16,17,17,17,18, |
21,17,18,17,20,19,13,14,14,17,16,13,14,15,16,18, |
15,16,15,18,17,17,16,17,17,19,17,18,18,20,19,13, |
14,14,16,17,15,15,16,17,18,14,15,14,18,17,17,18, |
18,19,20,17,18,16,19,17,16,17,15,19,18,16,16,16, |
18,18,17,18,17,20,19,18,17,18,17,20,20,20,19,22, |
20,16,17,17,18,19,18,18,18,19,20,16,17,16,19,18, |
20,19,19,20,20,18,19,17,20,17,13,14,14,16,17,14, |
14,16,16,18,14,16,15,17,16,16,16,17,17,18,17,17, |
16,19,18,14,14,15,16,17,14,14,16,16,18,16,16,16, |
17,17,16,15,17,16,19,18,18,18,19,19,14,15,15,17, |
17,15,16,16,17,18,14,16,14,18,16,17,17,18,18,19, |
16,17,16,19,17,16,16,17,16,18,16,16,17,16,19,18, |
18,18,17,18,17,16,18,16,20,19,19,19,19,19,16,17, |
17,18,18,17,17,18,19,19,16,17,16,19,17,18,19,19, |
19,20,17,18,16,20,16,11,14,13,17,17,14,14,16,16, |
18,14,16,14,19,16,18,18,19,18,19,18,19,18,21,18, |
13,15,14,18,16,14,14,16,16,18,16,17,16,19,17,18, |
16,19,17,20,19,19,19,21,19,13,14,15,17,18,17,16, |
17,17,19,14,16,14,18,16,20,19,19,20,21,18,19,16, |
21,17,17,18,16,19,17,16,16,17,18,18,19,19,18,21, |
18,17,17,18,17,20,20,20,20,22,20,17,17,18,18,20, |
19,19,19,18,20,16,17,17,19,19,21,21,21,20,21,17, |
19,17,23,17,11,13,13,16,16,13,14,14,17,17,13,14, |
14,17,17,16,17,17,19,20,15,16,16,19,19,13,14,14, |
16,17,14,15,15,17,18,14,15,15,17,17,17,17,18,19, |
19,17,17,18,19,19,13,14,14,17,16,14,15,15,17,17, |
13,15,14,18,17,17,18,18,19,20,16,17,16,19,18,16, |
16,17,18,18,17,17,17,18,19,17,18,17,19,19,19,19, |
19,19,20,19,20,19,20,20,15,16,16,18,17,16,17,17, |
20,18,15,16,16,19,17,19,19,19,20,20,17,18,17,21, |
17,11,13,13,16,16,13,14,15,16,17,13,15,14,17,16, |
17,17,18,18,20,17,17,17,19,19,13,14,14,17,17,14, |
14,15,17,18,15,15,15,18,17,17,17,18,17,20,18,18, |
17,20,18,13,14,14,16,17,15,15,16,17,18,14,15,13, |
17,17,17,18,18,19,20,17,17,16,19,17,16,17,17,18, |
18,16,16,17,18,18,18,18,18,19,19,18,17,19,18,21, |
19,20,20,20,20,16,15,17,18,18,17,17,18,18,20,16, |
16,16,18,17,20,19,20,21,22,17,18,17,20,17,12,13, |
13,16,16,13,14,15,16,17,13,14,14,17,16,16,17,18, |
18,19,15,16,16,19,18,13,14,14,16,17,14,14,15,16, |
17,14,15,15,17,17,16,16,17,17,19,17,17,17,19,18, |
13,14,13,17,16,14,15,15,17,17,13,15,13,17,16,17, |
17,17,19,19,15,17,15,19,17,16,17,17,18,18,16,16, |
17,17,19,17,18,17,19,19,18,17,19,17,19,19,19,19, |
20,19,15,17,15,19,16,17,17,16,19,18,16,17,15,18, |
16,19,19,19,20,19,17,19,16,19,16,11,14,14,17,17, |
15,14,16,16,18,15,16,14,18,16,18,18,19,18,21,18, |
19,18,20,18,13,15,14,18,17,14,14,16,16,18,16,17, |
16,19,17,17,17,19,17,22,19,19,19,21,19,13,14,15, |
17,18,17,16,17,17,19,14,16,14,18,16,19,19,19,20, |
21,18,18,16,20,17,17,18,16,19,18,15,17,17,19,19, |
19,19,18,21,19,18,17,20,17,21,22,21,20,21,21,17, |
16,19,18,20,19,18,19,18,20,16,17,16,19,18,21,20, |
21,19,23,18,19,16,20,17,13,14,14,17,16,14,14,15, |
16,18,14,16,14,17,16,16,16,17,17,19,16,17,16,19, |
17,14,15,15,17,17,14,14,16,16,17,15,16,16,18,17, |
16,16,17,17,19,17,18,17,19,18,14,15,14,17,16,16, |
16,16,17,17,14,16,14,17,16,18,18,18,18,19,16,17, |
15,19,16,17,17,17,18,18,16,15,17,17,18,18,18,18, |
19,19,17,16,18,16,19,19,19,19,19,19,16,17,16,19, |
16,18,18,17,19,18,16,17,16,19,16,19,19,20,19,19, |
17,18,16,20,16, |
}; |
static const static_codebook _44p6_p5_0 = { |
5, 3125, |
(char *)_vq_lengthlist__44p6_p5_0, |
1, -528744448, 1616642048, 3, 0, |
(long *)_vq_quantlist__44p6_p5_0, |
0 |
}; |
static const long _vq_quantlist__44p6_p5_1[] = { |
3, |
2, |
4, |
1, |
5, |
0, |
6, |
}; |
static const char _vq_lengthlist__44p6_p5_1[] = { |
2, 3, 3, 3, 3, 3, 3, |
}; |
static const static_codebook _44p6_p5_1 = { |
1, 7, |
(char *)_vq_lengthlist__44p6_p5_1, |
1, -533200896, 1611661312, 3, 0, |
(long *)_vq_quantlist__44p6_p5_1, |
0 |
}; |
static const long _vq_quantlist__44p6_p6_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p6_p6_0[] = { |
1, 5, 5, 5, 7, 9, 5, 9, 7, 5, 7, 8, 7, 7,10, 9, |
10,10, 5, 8, 7, 9,10,10, 7,10, 7, 6, 9, 9, 9,10, |
12, 9,11,11, 9,10,11,11,11,13,12,13,13, 9,11,11, |
12,13,13,11,13,11, 6, 9, 9, 9,11,11, 9,12,10, 9, |
11,11,11,11,13,12,13,13, 9,11,10,12,13,13,11,13, |
11, 6, 9, 9, 9,11,12, 9,12,11, 9,10,11,10,10,13, |
12,13,13, 9,11,11,12,13,12,11,13,11, 7, 9,10, 9, |
10,12,10,12,11,10,10,12,10,10,12,12,12,13,10,11, |
11,12,12,13,10,12,10, 7,10,10,11,11,14,11,14,11, |
10,12,11,11,11,14,14,14,14,10,11,12,14,14,14,11, |
14,11, 6, 9, 9, 9,11,12, 9,12,11, 9,11,11,11,11, |
13,12,12,13, 9,11,10,12,13,13,10,13,10, 7,10,10, |
11,11,14,11,14,11,10,12,11,11,11,14,14,15,14,10, |
11,12,13,14,15,11,14,11, 7,10, 9,10,11,12, 9,12, |
10,10,11,11,10,10,12,12,13,12, 9,12,10,12,13,12, |
10,12,10, |
}; |
static const static_codebook _44p6_p6_0 = { |
5, 243, |
(char *)_vq_lengthlist__44p6_p6_0, |
1, -527106048, 1620377600, 2, 0, |
(long *)_vq_quantlist__44p6_p6_0, |
0 |
}; |
static const long _vq_quantlist__44p6_p6_1[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p6_p6_1[] = { |
2, 6, 6, 6, 7, 8, 6, 8, 7, 6, 7, 7, 7, 7, 8, 7, |
8, 8, 6, 7, 7, 7, 8, 8, 7, 8, 7, 6, 8, 8, 8, 9, |
9, 8, 9, 9, 8, 9, 9, 9, 9,10, 9,10,10, 8, 9, 9, |
9,10,10, 9,10, 9, 6, 8, 8, 8, 9, 9, 8, 9, 9, 8, |
9, 9, 9, 9,10, 9,10,10, 8, 9, 9, 9,10, 9, 9,10, |
9, 6, 8, 8, 8, 9, 9, 8, 9, 9, 8, 9, 9, 9, 9,10, |
9, 9,10, 8, 9, 9, 9,10, 9, 9,10, 9, 7, 8, 8, 8, |
9, 9, 8, 9, 9, 8, 8, 9, 9, 9, 9, 9, 9, 9, 8, 9, |
9, 9,10, 9, 9, 9, 9, 7, 9, 9, 9, 9,10, 9,10, 9, |
9, 9, 9, 9, 9,10,10,10,10, 9, 9, 9,10,10,10, 9, |
10, 9, 6, 8, 8, 8, 9, 9, 8, 9, 9, 8, 9, 9, 9, 9, |
10, 9,10,10, 8, 9, 9, 9,10, 9, 9,10, 9, 7, 9, 9, |
9, 9,10, 9,10, 9, 9, 9, 9, 9, 9,10,10,10,10, 9, |
9, 9,10,10,10, 9,10, 9, 7, 8, 8, 8, 9, 9, 8, 9, |
9, 8, 9, 9, 9, 9,10, 9, 9,10, 8, 9, 8, 9, 9, 9, |
9,10, 9, |
}; |
static const static_codebook _44p6_p6_1 = { |
5, 243, |
(char *)_vq_lengthlist__44p6_p6_1, |
1, -530841600, 1616642048, 2, 0, |
(long *)_vq_quantlist__44p6_p6_1, |
0 |
}; |
static const long _vq_quantlist__44p6_p7_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p6_p7_0[] = { |
1, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, |
}; |
static const static_codebook _44p6_p7_0 = { |
5, 243, |
(char *)_vq_lengthlist__44p6_p7_0, |
1, -513979392, 1633504256, 2, 0, |
(long *)_vq_quantlist__44p6_p7_0, |
0 |
}; |
static const long _vq_quantlist__44p6_p7_1[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p6_p7_1[] = { |
1, 4, 5, 5,10,10, 5,10,10, 5,10,10,10,10,10,10, |
10,10, 5,10,10,10,10,10,10,10,10, 7,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, 6,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, 6,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, 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, 6,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, 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, |
}; |
static const static_codebook _44p6_p7_1 = { |
5, 243, |
(char *)_vq_lengthlist__44p6_p7_1, |
1, -516716544, 1630767104, 2, 0, |
(long *)_vq_quantlist__44p6_p7_1, |
0 |
}; |
static const long _vq_quantlist__44p6_p7_2[] = { |
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 const char _vq_lengthlist__44p6_p7_2[] = { |
1, 2, 3, 4, 5, 7, 7, 8, 8, 9, 9,10,10,11,11,12, |
12,13,13,14,14,15,15,15,15, |
}; |
static const static_codebook _44p6_p7_2 = { |
1, 25, |
(char *)_vq_lengthlist__44p6_p7_2, |
1, -518864896, 1620639744, 5, 0, |
(long *)_vq_quantlist__44p6_p7_2, |
0 |
}; |
static const long _vq_quantlist__44p6_p7_3[] = { |
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 const char _vq_lengthlist__44p6_p7_3[] = { |
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, |
}; |
static const static_codebook _44p6_p7_3 = { |
1, 25, |
(char *)_vq_lengthlist__44p6_p7_3, |
1, -529006592, 1611661312, 5, 0, |
(long *)_vq_quantlist__44p6_p7_3, |
0 |
}; |
static const char _huff_lengthlist__44p6_short[] = { |
2, 8,13,15,16,18,21,22, 5, 4, 6, 8,10,12,17,21, |
9, 5, 5, 6, 8,11,15,19,11, 6, 5, 5, 6, 7,12,14, |
14, 8, 7, 5, 4, 4, 9,11,16,11, 9, 7, 4, 3, 7,10, |
22,15,14,12, 8, 7, 9,11,21,16,15,12, 9, 5, 6, 8, |
}; |
static const static_codebook _huff_book__44p6_short = { |
2, 64, |
(char *)_huff_lengthlist__44p6_short, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const long _vq_quantlist__44p7_l0_0[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44p7_l0_0[] = { |
2, 4, 4, 7, 7, 8, 8,10,10,11,11,12,12, 4, 5, 5, |
7, 7, 9, 9,11, 9,12,11,12,12, 4, 5, 5, 7, 7, 9, |
9, 9,10,10,11,12,12, 7, 7, 7, 7, 8, 9, 8,11, 5, |
12, 6,12,10, 7, 7, 7, 8, 7, 8, 9, 5,11, 6,12,10, |
12, 8, 9, 9, 9, 9,10,10,11, 7,11, 7,12, 9, 8, 9, |
8, 9, 9,10,10, 7,11, 7,11, 9,11,10,10,10,10,10, |
10,10,11,10,11, 8,11, 9,10,10,10,10,10,10,10,10, |
11, 8,10, 9,11,10,11,11,11,11,11,10,11,10,12,10, |
12,11,10,11,11,11,11,10,11,10,11,10,12,11,12,11, |
12,12,12,12,12,12,12,12,12,12,13,12,11,12,11,12, |
12,12,12,12,11,12,11,12,13, |
}; |
static const static_codebook _44p7_l0_0 = { |
2, 169, |
(char *)_vq_lengthlist__44p7_l0_0, |
1, -526516224, 1616117760, 4, 0, |
(long *)_vq_quantlist__44p7_l0_0, |
0 |
}; |
static const long _vq_quantlist__44p7_l0_1[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44p7_l0_1[] = { |
4, 4, 4, 5, 5, 4, 4, 5, 5, 5, 4, 5, 4, 5, 5, 5, |
5, 5, 5, 5, 5, 5, 5, 5, 5, |
}; |
static const static_codebook _44p7_l0_1 = { |
2, 25, |
(char *)_vq_lengthlist__44p7_l0_1, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44p7_l0_1, |
0 |
}; |
static const long _vq_quantlist__44p7_l1_0[] = { |
54, |
29, |
79, |
0, |
108, |
}; |
static const char _vq_lengthlist__44p7_l1_0[] = { |
1, 2, 3, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, |
8, 8, 8, 8, 8, 8, 8, 8, 8, |
}; |
static const static_codebook _44p7_l1_0 = { |
2, 25, |
(char *)_vq_lengthlist__44p7_l1_0, |
1, -514516992, 1620639744, 7, 0, |
(long *)_vq_quantlist__44p7_l1_0, |
0 |
}; |
static const char _huff_lengthlist__44p7_lfe[] = { |
2, 3, 1, 3, |
}; |
static const static_codebook _huff_book__44p7_lfe = { |
2, 4, |
(char *)_huff_lengthlist__44p7_lfe, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist__44p7_long[] = { |
2, 7,14,16,17,17,18,20, 6, 3, 5, 8,10,11,13,15, |
13, 5, 3, 5, 8, 9,11,12,15, 7, 4, 3, 5, 7, 9,11, |
16,10, 7, 5, 6, 7, 9,10,17,11, 8, 7, 7, 6, 8, 8, |
19,13,11, 9, 9, 8, 8, 9,20,14,13,11,10, 8, 9, 9, |
}; |
static const static_codebook _huff_book__44p7_long = { |
2, 64, |
(char *)_huff_lengthlist__44p7_long, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const long _vq_quantlist__44p7_p1_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p7_p1_0[] = { |
2, 5, 5, 4, 7, 7, 4, 7, 7, 5, 7, 7, 7, 8, 9, 7, |
9, 9, 5, 7, 7, 7, 9, 9, 7, 9, 8, 6, 7, 8, 8, 9, |
10, 8, 9,10, 8, 9,10,10,10,12,10,11,11, 8,10,10, |
10,11,12,10,11,11, 6, 8, 7, 8,10, 9, 8,10, 9, 8, |
10,10,10,11,11,10,12,11, 8,10, 9,10,11,11,10,12, |
10, 5, 8, 8, 8,10,10, 8,10,10, 7, 9,10, 9,10,11, |
9,11,11, 8,10,10,10,11,12,10,12,11, 7, 9, 9, 9, |
10,11, 9,11,11, 9, 9,11,10,11,12,11,11,12, 9,11, |
11,11,12,12,11,12,12, 7, 9, 9,10,11,11,10,12,11, |
9,11,10,11,11,12,11,13,12,10,11,11,12,13,13,11, |
13,11, 5, 8, 8, 8,10,10, 8,10,10, 8,10,10,10,11, |
12,10,12,11, 7,10, 9, 9,11,11, 9,11,10, 7, 9, 9, |
10,11,12,10,11,11,10,11,11,11,11,13,12,13,13, 9, |
10,11,11,12,13,11,12,11, 7, 9, 9, 9,11,11, 9,11, |
10, 9,11,11,11,12,12,11,12,12, 9,11, 9,11,12,11, |
10,12,11, |
}; |
static const static_codebook _44p7_p1_0 = { |
5, 243, |
(char *)_vq_lengthlist__44p7_p1_0, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__44p7_p1_0, |
0 |
}; |
static const long _vq_quantlist__44p7_p2_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44p7_p2_0[] = { |
4, 6, 6, 9, 9, 6, 8, 8,10,10, 6, 8, 8,10,10, 8, |
10,10,12,13, 8,10,10,13,12, 6, 8, 8,10,10, 8, 8, |
9,10,11, 8, 9, 9,11,11,10,10,11,12,13,10,11,11, |
13,13, 6, 8, 8,10,10, 8, 9, 9,11,11, 8, 9, 8,11, |
10,10,11,11,13,13,10,11,10,13,12, 9,10,10,12,12, |
10,10,11,12,13,10,11,11,13,13,12,12,13,12,15,13, |
13,13,15,14, 9,10,10,12,12,10,11,11,13,13,10,11, |
10,13,12,12,13,13,14,15,12,13,12,15,12, 6, 8, 8, |
10,11, 8, 9,10,11,12, 8, 9, 9,11,11,10,11,12,13, |
14,10,11,11,13,13, 8, 9, 9,11,12, 9,10,11,12,13, |
9,10,10,12,13,11,12,13,13,15,11,12,12,14,14, 8, |
9, 9,11,12, 9,10,11,12,13, 9,10,10,13,12,11,12, |
13,14,15,11,12,12,14,13,10,11,12,13,14,11,12,13, |
13,15,12,13,13,14,14,13,13,14,14,16,14,15,14,16, |
15,10,12,11,14,13,12,12,13,14,14,11,12,12,14,14, |
14,14,15,15,16,13,14,14,16,14, 6, 8, 8,11,10, 8, |
9, 9,11,11, 8,10, 9,12,11,10,11,11,13,13,10,12, |
11,14,13, 8, 9, 9,12,11, 9,10,10,12,13, 9,11,10, |
13,12,11,12,12,14,14,11,13,12,15,14, 8, 9, 9,12, |
11, 9,10,10,13,12, 9,11,10,13,12,11,12,12,14,14, |
11,13,12,15,13,10,11,12,13,14,11,12,13,13,14,12, |
13,12,14,14,13,13,14,14,16,14,15,14,16,16,10,12, |
11,14,13,12,13,13,14,14,11,13,12,15,13,14,14,15, |
16,16,13,14,13,16,14, 9,10,11,12,13,11,11,12,13, |
14,11,11,12,13,14,13,13,14,14,16,13,14,14,15,15, |
11,11,12,13,14,12,12,13,13,15,12,13,13,14,15,14, |
14,15,15,17,14,14,15,16,16,11,12,12,13,14,12,12, |
13,14,15,12,13,12,14,15,14,14,15,15,17,14,15,14, |
16,16,13,14,14,15,16,14,14,15,15,17,14,15,15,16, |
16,15,16,17,16,18,16,17,16,17,17,13,14,14,16,15, |
14,15,15,16,16,14,15,14,16,15,16,16,17,17,18,16, |
16,16,17,16, 9,11,10,13,12,11,12,11,14,13,11,12, |
11,14,13,13,14,14,16,15,13,14,13,16,14,11,12,12, |
14,13,12,12,13,14,14,12,13,13,15,14,14,14,15,16, |
16,14,15,14,17,15,11,12,11,14,13,12,13,13,15,14, |
12,13,12,15,13,14,15,14,16,16,14,15,14,17,15,13, |
14,14,15,16,14,14,15,16,16,14,15,15,16,16,15,16, |
16,16,17,16,16,16,17,17,13,14,14,16,15,14,15,15, |
17,16,14,15,14,17,15,16,17,17,17,17,16,16,16,18, |
16, 6, 8, 8,11,11, 8, 9, 9,11,12, 8, 9, 9,12,11, |
10,11,11,13,14,10,11,11,14,13, 8, 9, 9,11,12, 9, |
10,10,12,13, 9,10,10,13,12,11,11,12,13,15,11,12, |
12,15,14, 8, 9, 9,12,11, 9,10,11,12,13, 9,11,10, |
13,12,11,12,12,14,15,11,13,12,15,14,10,11,11,13, |
14,11,12,12,13,14,11,12,12,14,14,13,13,14,14,16, |
13,14,14,16,15,11,12,11,14,13,12,13,13,14,14,11, |
13,12,14,13,14,14,15,16,16,13,14,14,16,14, 8, 9, |
9,11,12, 9,10,10,12,13, 9,10,10,13,12,11,12,12, |
14,15,11,12,12,14,14, 9, 9,10,11,13,10,10,12,12, |
14,10,10,11,13,13,12,12,13,14,16,12,12,13,15,15, |
9,10,10,13,12,10,11,11,13,14,10,12,11,14,13,12, |
13,13,15,15,12,13,13,15,15,11,11,12,13,15,12,12, |
13,13,15,12,13,13,14,15,14,14,15,15,17,14,15,15, |
16,16,11,13,12,15,14,13,13,13,15,15,12,14,13,15, |
14,15,15,15,16,16,14,15,15,17,15, 7, 9, 9,12,11, |
9,10,10,12,12, 9,11,10,13,12,11,12,12,14,14,11, |
13,12,15,14, 9,10,10,12,12,10,10,11,12,13,10,11, |
11,14,13,12,12,13,14,15,12,13,13,15,14, 9,10,10, |
12,12,10,11,11,13,13,10,11,10,14,12,12,13,13,15, |
15,12,13,12,15,13,11,12,12,14,14,12,12,13,14,15, |
12,13,13,15,15,14,13,14,13,16,14,15,15,16,16,11, |
12,12,14,14,13,13,14,15,15,12,13,12,15,14,15,15, |
15,16,16,14,15,14,17,14,10,11,12,13,14,11,12,13, |
14,15,11,12,12,14,15,13,14,15,15,17,14,14,14,16, |
16,11,12,13,12,15,12,12,14,13,16,13,13,14,13,16, |
14,14,15,14,17,15,15,15,15,17,11,13,12,15,15,13, |
13,14,15,16,12,14,13,16,15,15,15,15,17,17,15,15, |
15,17,16,14,14,15,14,16,14,14,16,14,17,15,15,15, |
14,17,16,16,17,15,18,17,17,17,16,18,14,15,15,17, |
16,15,16,16,17,17,15,16,15,17,16,17,17,17,18,18, |
16,17,16,18,17,10,11,11,14,13,11,12,12,14,14,11, |
13,12,15,14,14,14,14,16,16,14,15,14,16,15,11,12, |
12,15,13,12,13,13,15,14,13,14,13,16,14,14,15,15, |
16,16,15,16,15,17,16,11,13,12,15,14,13,13,14,15, |
15,12,14,13,16,14,15,15,15,17,17,14,16,15,17,16, |
14,14,14,16,15,14,15,15,16,16,15,16,15,17,16,16, |
16,16,16,17,16,17,17,18,17,14,15,15,16,16,15,15, |
16,17,16,14,15,15,17,16,17,17,17,18,18,16,17,16, |
18,16, 6, 8, 8,11,11, 8, 9, 9,11,12, 8, 9, 9,12, |
11,10,11,12,13,14,10,11,11,14,13, 8, 9, 9,11,12, |
9,10,11,12,13, 9,11,10,13,12,11,12,13,14,15,11, |
12,12,15,14, 8, 9, 9,12,11, 9,10,10,12,13, 9,10, |
10,13,12,11,12,12,14,15,11,12,12,14,13,11,11,12, |
13,14,11,12,13,13,15,12,13,13,14,14,13,14,14,14, |
16,14,15,14,16,16,10,11,11,14,13,11,12,12,14,14, |
11,12,12,14,13,13,14,14,15,16,13,14,13,16,14, 7, |
9, 9,11,11, 9,10,11,12,13, 9,10,10,12,12,11,12, |
13,14,15,11,12,12,14,14, 9,10,10,12,12,10,10,11, |
12,13,10,11,11,13,13,12,12,13,13,15,12,13,13,15, |
15, 9,10,10,12,12,10,11,11,13,13,10,11,10,13,12, |
12,13,13,14,15,12,13,12,15,13,11,12,12,14,14,12, |
12,13,14,15,13,14,13,15,15,14,13,15,13,16,15,15, |
15,16,16,11,12,12,14,14,12,13,13,14,15,12,13,12, |
15,14,14,15,15,16,17,13,14,13,16,13, 8, 9, 9,12, |
11, 9,10,10,12,13, 9,10,10,13,12,11,12,12,14,15, |
11,12,12,15,14, 9,10,10,12,13,10,11,12,13,14,10, |
11,11,14,13,12,13,13,15,15,12,13,13,15,15, 9,10, |
9,13,11,10,11,10,13,13,10,12,10,14,12,12,13,12, |
15,15,12,13,12,15,14,11,12,13,14,15,12,13,14,14, |
15,13,13,13,15,15,14,15,15,15,17,15,15,15,16,16, |
11,12,11,15,13,12,13,13,15,14,12,13,12,16,13,14, |
15,15,16,16,14,15,14,17,14,10,11,11,13,14,11,12, |
13,14,15,11,12,12,14,14,14,14,15,15,17,14,14,14, |
15,16,11,12,13,14,15,12,13,14,14,16,13,14,13,15, |
15,14,15,16,15,17,15,15,15,17,17,11,12,12,13,15, |
13,13,14,14,16,12,13,13,14,15,15,15,15,16,17,14, |
15,15,16,16,14,15,15,16,16,14,15,15,16,17,15,15, |
16,16,17,16,16,17,16,18,17,17,17,18,18,14,14,15, |
15,16,15,15,15,16,17,14,15,15,16,16,16,17,17,17, |
18,16,16,16,17,16,10,11,11,14,13,11,13,12,15,14, |
11,13,12,15,14,14,15,14,16,16,13,15,14,17,15,11, |
12,13,15,15,12,13,14,15,16,13,14,13,16,15,15,15, |
15,16,17,15,15,15,17,16,11,13,11,15,12,13,14,13, |
16,13,12,14,12,16,13,15,15,15,17,15,14,16,14,17, |
14,14,15,15,16,17,15,15,16,16,17,15,16,15,17,17, |
16,16,17,17,18,16,17,17,18,18,14,15,14,17,13,15, |
16,15,17,15,15,16,15,17,14,16,17,16,18,16,16,17, |
16,18,15, 9,11,11,13,13,10,12,12,14,14,11,12,12, |
14,14,13,14,14,15,16,13,14,14,16,16,10,11,12,14, |
14,11,12,13,14,15,11,13,13,15,15,13,14,14,15,16, |
14,15,15,16,16,11,12,12,14,14,12,13,13,15,15,12, |
13,12,15,14,14,15,15,16,16,14,15,14,17,16,12,13, |
13,15,16,13,13,14,15,16,13,14,14,16,16,14,15,16, |
16,17,15,16,16,17,17,13,14,14,16,15,14,15,15,17, |
16,14,15,14,17,15,16,16,17,17,17,16,16,16,18,16, |
10,11,12,14,14,11,12,13,14,15,11,13,12,15,15,13, |
14,15,16,16,14,15,15,17,16,11,11,13,14,15,12,12, |
14,14,16,12,13,14,15,15,14,14,15,16,17,15,15,15, |
17,17,12,13,12,15,15,13,14,14,16,15,13,14,13,16, |
15,15,16,15,17,17,15,16,15,17,16,13,12,15,14,16, |
14,13,15,14,17,14,13,15,15,17,15,14,17,15,18,16, |
15,17,17,18,14,15,15,17,16,15,16,16,17,17,15,16, |
15,17,16,16,17,17,18,18,16,17,16,18,17,10,11,11, |
14,14,11,12,12,14,15,11,13,12,15,14,13,14,14,16, |
16,14,15,14,16,16,11,12,12,14,14,12,12,13,15,15, |
12,13,13,15,15,14,14,15,16,16,14,15,15,17,16,11, |
12,12,15,15,13,13,13,15,15,12,13,13,15,15,15,15, |
15,17,17,14,15,15,17,16,13,14,13,16,15,14,14,14, |
16,16,14,15,14,17,16,15,15,16,16,17,16,17,16,18, |
17,14,15,15,16,16,15,15,15,17,17,14,15,15,17,16, |
16,17,17,18,18,16,17,16,18,16,12,13,13,15,15,13, |
14,14,16,16,13,14,14,16,16,14,15,16,16,18,15,16, |
16,17,17,13,13,14,14,16,14,14,15,15,17,14,14,15, |
15,17,15,15,17,15,18,16,16,17,17,18,13,14,14,16, |
16,14,15,15,16,17,14,15,15,17,16,16,17,16,17,18, |
16,17,16,18,17,15,14,16,13,18,16,15,17,14,18,16, |
15,17,14,18,17,16,18,15,19,17,17,18,16,19,15,16, |
16,17,17,16,17,17,18,18,16,17,16,18,17,18,18,18, |
19,18,17,18,17,19,17,11,12,12,15,15,13,13,14,15, |
16,13,14,13,16,15,15,15,15,16,17,15,16,15,17,16, |
12,13,13,15,15,13,13,14,15,16,14,15,14,16,15,15, |
15,16,16,17,16,16,16,18,17,12,13,13,15,15,14,14, |
15,16,16,13,14,13,16,15,16,16,16,17,17,15,16,15, |
18,16,15,15,15,17,15,14,15,15,16,16,16,17,16,17, |
16,16,16,17,16,17,17,18,17,19,18,15,15,16,17,17, |
16,16,16,17,17,15,16,15,17,16,17,18,18,18,18,16, |
17,16,18,16, 9,11,11,13,13,11,12,12,14,14,10,12, |
12,14,14,13,14,14,15,16,13,14,14,16,15,11,12,12, |
14,14,12,12,13,14,15,12,13,13,15,15,14,14,15,16, |
17,14,15,15,16,16,10,12,11,14,14,11,13,13,15,15, |
11,13,12,15,14,14,14,15,16,16,13,14,14,16,15,13, |
14,14,15,16,14,14,15,15,17,14,15,15,16,17,16,16, |
16,16,18,16,16,17,17,17,12,13,13,16,15,13,14,14, |
16,16,12,14,13,16,15,15,16,16,17,17,14,16,15,17, |
16,10,11,11,14,14,11,12,13,14,15,11,12,12,15,14, |
14,14,15,16,16,13,14,14,16,16,11,12,12,14,15,12, |
13,14,15,15,13,13,13,15,15,14,15,15,16,17,15,15, |
15,16,17,11,12,12,14,14,12,13,13,15,15,12,13,12, |
15,15,14,15,15,16,17,14,15,14,16,16,14,14,15,16, |
16,14,15,15,16,17,15,16,15,17,17,16,16,17,16,18, |
16,17,17,18,18,13,13,14,15,16,14,14,15,16,17,14, |
14,14,16,15,16,16,17,17,18,15,16,15,17,16,10,12, |
11,14,14,11,13,13,15,15,11,13,12,15,15,14,15,15, |
16,16,13,15,14,16,16,12,12,13,15,15,13,13,14,15, |
16,13,14,14,16,15,15,15,16,16,17,15,15,15,17,17, |
11,13,11,15,14,12,14,13,16,15,12,14,12,16,14,15, |
15,15,17,17,14,15,14,17,15,14,15,15,16,17,15,15, |
16,16,17,15,16,16,17,17,16,16,17,17,18,16,17,17, |
18,18,13,14,12,16,14,14,15,13,17,15,14,15,13,17, |
14,16,17,15,18,17,15,17,14,18,15,11,12,12,14,15, |
13,13,14,15,16,13,14,13,16,15,15,15,16,16,17,15, |
15,15,16,16,12,13,13,15,15,13,13,14,15,16,14,15, |
14,16,16,15,15,16,16,18,16,16,16,18,17,12,13,13, |
15,15,14,14,15,15,16,13,14,13,15,15,16,16,16,17, |
18,15,16,15,17,16,15,16,15,17,16,15,15,16,16,17, |
16,17,16,17,17,16,16,17,16,18,17,18,18,18,18,14, |
15,15,15,17,16,15,17,16,17,14,15,15,16,16,17,17, |
18,18,19,16,16,16,17,16,12,13,13,15,15,13,14,14, |
16,16,13,14,14,16,16,15,16,16,17,17,15,16,15,18, |
16,13,14,14,16,16,14,15,15,16,17,14,15,15,17,16, |
16,16,17,17,18,16,17,16,18,18,13,14,13,16,14,14, |
15,14,17,15,14,15,14,17,14,16,17,16,18,17,15,17, |
15,18,15,15,16,16,17,18,16,16,17,17,18,16,17,17, |
17,18,17,17,18,18,19,17,18,18,19,18,15,16,14,17, |
13,16,17,15,18,14,16,17,15,18,14,18,18,17,19,16, |
17,18,16,19,15, |
}; |
static const static_codebook _44p7_p2_0 = { |
5, 3125, |
(char *)_vq_lengthlist__44p7_p2_0, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44p7_p2_0, |
0 |
}; |
static const long _vq_quantlist__44p7_p3_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p7_p3_0[] = { |
2, 5, 5, 4, 7, 7, 4, 7, 7, 5, 7, 8, 7, 8,10, 8, |
9, 9, 5, 7, 7, 8, 9, 9, 7,10, 8, 5, 7, 8, 8, 9, |
10, 8,10,10, 8, 9,10,10,10,12,10,12,12, 8,10,10, |
10,12,12,10,12,11, 5, 8, 7, 8,10,10, 8,10, 9, 8, |
10,10,10,11,12,10,12,12, 8,10, 9,10,12,12,10,12, |
10, 5, 8, 8, 7,10,10, 8,10,10, 7, 9,10, 9,10,12, |
10,12,12, 8,10,10,10,12,12,10,12,11, 7, 9,10, 9, |
11,12,10,12,11, 9, 9,12,11,10,14,12,12,13,10,12, |
11,12,13,13,11,14,12, 7,10, 9,10,11,11,10,12,11, |
9,11,11,11,11,13,12,14,13,10,12,12,12,14,14,11, |
14,12, 5, 8, 8, 8,10,10, 7,10,10, 8,10,10,10,11, |
12,10,12,12, 7,10, 9,10,12,12, 9,12,10, 7, 9,10, |
10,11,12,10,11,11,10,12,12,11,12,14,12,14,14, 9, |
11,11,12,13,14,11,13,11, 7,10, 9,10,11,12, 9,12, |
11,10,11,12,11,12,14,12,13,13, 9,12, 9,12,13,12, |
11,14,10, |
}; |
static const static_codebook _44p7_p3_0 = { |
5, 243, |
(char *)_vq_lengthlist__44p7_p3_0, |
1, -533200896, 1614282752, 2, 0, |
(long *)_vq_quantlist__44p7_p3_0, |
0 |
}; |
static const long _vq_quantlist__44p7_p3_1[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p7_p3_1[] = { |
6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 7, 8, 8, 7, |
8, 8, 7, 8, 7, 7, 8, 8, 7, 8, 8, 7, 8, 8, 8, 8, |
8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 8, 8, 9, 8, 8, 8, |
8, 8, 8, 8, 9, 8, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, |
8, 8, 8, 8, 9, 8, 8, 8, 8, 8, 8, 8, 9, 8, 8, 9, |
8, 7, 8, 8, 7, 8, 8, 7, 8, 8, 7, 8, 8, 8, 8, 8, |
8, 8, 8, 8, 8, 8, 8, 9, 8, 8, 9, 8, 7, 8, 8, 8, |
8, 9, 8, 8, 8, 8, 8, 8, 8, 8, 9, 8, 9, 9, 8, 8, |
8, 9, 9, 9, 8, 9, 9, 7, 8, 8, 8, 8, 8, 8, 8, 8, |
8, 8, 8, 8, 8, 9, 8, 9, 9, 8, 8, 8, 8, 9, 9, 8, |
9, 8, 7, 8, 8, 7, 8, 8, 7, 8, 8, 8, 8, 8, 8, 8, |
9, 8, 8, 9, 7, 8, 8, 8, 8, 8, 8, 8, 8, 7, 8, 8, |
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 8, 9, 9, 8, |
8, 8, 8, 9, 9, 8, 9, 8, 7, 8, 8, 8, 8, 8, 8, 9, |
8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 8, 8, 8, 8, 9, 9, |
8, 9, 8, |
}; |
static const static_codebook _44p7_p3_1 = { |
5, 243, |
(char *)_vq_lengthlist__44p7_p3_1, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__44p7_p3_1, |
0 |
}; |
static const long _vq_quantlist__44p7_p4_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p7_p4_0[] = { |
1, 5, 5, 5, 7, 8, 5, 8, 7, 5, 7, 8, 7, 8,10, 8, |
10,10, 5, 8, 7, 8,10,10, 7,10, 8, 6, 8, 9, 9,10, |
12, 9,11,11, 9,10,11,11,11,13,11,13,13, 9,11,11, |
11,12,13,11,13,11, 6, 9, 8, 9,11,11, 9,12,10, 9, |
11,11,11,11,13,11,13,13, 9,11,10,11,13,13,11,13, |
11, 6, 9, 9, 8,10,11, 9,12,11, 8,10,11,10,11,13, |
11,13,13, 9,11,11,11,13,12,11,13,11, 8,10,10, 9, |
11,12,10,12,12,10,10,12,11,11,14,12,13,14,10,12, |
12,12,13,13,11,14,11, 8,11,10,11,12,13,11,14,12, |
10,12,11,11,12,14,13,15,14,10,12,12,13,14,15,12, |
14,12, 5, 9, 9, 9,11,12, 8,11,10, 9,11,11,11,11, |
13,11,12,13, 8,11,10,11,13,13,10,13,11, 8,10,11, |
11,12,14,11,13,12,10,12,12,12,12,14,14,15,14,10, |
11,12,13,14,15,11,14,12, 8,10,10,10,12,12, 9,12, |
11,10,12,12,11,11,14,12,13,13,10,12,10,12,14,13, |
11,13,11, |
}; |
static const static_codebook _44p7_p4_0 = { |
5, 243, |
(char *)_vq_lengthlist__44p7_p4_0, |
1, -531365888, 1616117760, 2, 0, |
(long *)_vq_quantlist__44p7_p4_0, |
0 |
}; |
static const long _vq_quantlist__44p7_p4_1[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44p7_p4_1[] = { |
7, 8, 8,10,10, 8, 9, 9,10,11, 8, 9, 9,10,10, 9, |
10,10,11,11, 9,10,10,11,11, 8, 9, 9,10,10, 9, 9, |
10,11,11, 9,10,10,11,11,10,10,11,11,11,10,11,11, |
11,11, 8, 9, 9,10,10, 9,10,10,11,11, 9,10, 9,11, |
11,10,11,11,11,11,10,11,10,11,11,10,10,10,11,11, |
10,11,11,11,11,10,11,11,11,11,11,11,11,11,12,11, |
11,11,11,12,10,10,10,11,11,10,11,11,11,11,10,11, |
11,11,11,11,11,11,12,11,11,11,11,12,11, 8, 9,10, |
11,11, 9,10,11,11,11, 9,10,10,11,11,10,11,11,12, |
12,10,11,11,12,12,10,10,10,11,11,10,10,11,11,12, |
10,11,11,12,12,11,11,12,12,12,11,11,12,12,12,10, |
10,10,11,11,10,11,11,12,12,10,11,11,12,11,11,12, |
12,12,12,11,12,11,12,12,11,11,11,11,12,11,11,12, |
12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12, |
12,11,11,11,12,12,11,12,12,12,12,11,12,11,12,12, |
12,12,12,12,12,12,12,12,12,12, 8,10, 9,11,11, 9, |
10,10,11,11, 9,10,10,11,11,10,11,11,12,12,10,11, |
11,12,12,10,10,10,11,11,10,11,11,12,12,10,11,11, |
12,12,11,11,12,12,12,11,12,12,12,12,10,10,10,11, |
11,10,11,11,12,12,10,11,10,12,11,11,12,11,12,12, |
11,12,11,12,12,11,11,11,12,12,11,12,12,12,12,11, |
12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11, |
11,12,11,11,12,12,12,12,11,12,11,12,12,12,12,12, |
12,12,12,12,12,12,12,10,11,11,11,12,11,11,12,12, |
12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12, |
11,11,12,12,12,11,12,12,12,12,12,12,12,12,12,12, |
12,13,12,13,12,12,12,13,13,11,12,11,12,12,11,12, |
12,12,12,11,12,12,12,12,12,12,12,13,13,12,12,12, |
13,13,12,12,12,12,12,12,12,12,12,13,12,12,13,13, |
13,12,13,13,13,13,12,13,13,13,13,12,12,12,12,12, |
12,12,13,13,13,12,12,12,13,12,12,13,13,13,13,12, |
13,13,13,13,10,11,11,12,11,11,11,11,12,12,11,12, |
11,12,12,11,12,12,12,12,11,12,12,12,12,11,11,11, |
12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,13, |
13,12,12,12,13,13,11,12,11,12,12,12,12,12,12,12, |
11,12,11,12,12,12,12,12,13,13,12,12,12,13,12,12, |
12,12,12,12,12,12,12,13,13,12,12,12,13,13,12,13, |
13,13,13,12,13,13,13,13,12,12,12,12,12,12,12,12, |
13,13,12,13,12,13,12,12,13,13,13,13,13,13,13,13, |
13, 8,10,10,11,11, 9,10,10,11,11, 9,10,10,11,11, |
10,11,11,12,12,10,11,11,12,12, 9,10,10,11,11,10, |
10,11,11,12,10,11,11,12,12,11,11,12,12,12,11,11, |
12,12,12,10,10,10,11,11,10,11,11,12,12,10,11,10, |
12,11,11,12,11,12,12,11,12,11,12,12,11,11,11,12, |
12,11,11,12,12,12,11,12,12,12,12,11,12,12,12,12, |
12,12,12,12,12,11,11,11,12,11,11,12,12,12,12,11, |
12,12,12,12,12,12,12,12,12,12,12,12,12,12, 9,10, |
10,11,11,10,11,11,11,12,10,11,11,12,12,11,11,11, |
12,12,11,11,11,12,12,10,10,11,11,12,11,11,12,12, |
12,11,11,11,12,12,11,11,12,12,12,11,12,12,12,12, |
10,11,11,12,12,11,11,11,12,12,11,12,11,12,12,11, |
12,12,12,12,11,12,12,12,12,11,11,12,12,12,11,12, |
12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12, |
12,13,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, 9,10,10,11,11, |
10,11,11,12,12,10,11,11,12,11,11,12,11,12,12,11, |
12,11,12,12,10,11,11,12,12,11,11,11,12,12,11,12, |
11,12,12,11,12,12,12,12,12,12,12,12,12,10,11,11, |
12,12,11,12,11,12,12,11,12,11,12,12,12,12,12,13, |
12,12,12,12,12,12,11,12,11,12,12,11,12,12,12,12, |
12,12,12,12,12,12,12,12,12,13,12,12,12,12,13,11, |
12,12,12,12,12,12,12,13,12,11,12,12,12,12,12,12, |
12,13,12,12,12,12,13,12,10,11,11,12,12,11,12,12, |
12,12,11,12,12,12,12,12,12,12,12,13,12,12,12,13, |
13,11,11,12,12,12,12,12,12,12,13,12,12,12,12,12, |
12,12,13,12,13,12,12,13,13,13,11,12,12,12,12,12, |
12,12,13,13,12,12,12,13,12,12,13,12,13,13,12,13, |
12,13,13,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,12,12,12,13, |
13,12,13,13,13,13,12,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,10,11,11,12,12,11,12,12,12,12,11, |
12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,12, |
12,12,12,12,12,12,12,13,12,12,12,13,12,12,12,13, |
13,13,12,13,13,13,13,11,12,12,12,12,12,12,12,13, |
13,12,12,12,13,12,12,13,13,13,13,12,13,12,13,13, |
12,12,12,12,12,12,13,13,13,13,12,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,12,12,12,13,12,12,13, |
13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13, 8,10,10,11,11, 9,10,10,11,11, 9,10,10,11, |
11,10,11,11,12,12,10,11,11,12,12,10,10,10,11,11, |
10,11,11,11,12,10,11,11,12,12,11,11,12,12,12,11, |
11,12,12,12, 9,10,10,11,11,10,11,11,12,12,10,11, |
10,12,11,11,12,11,12,12,11,12,11,12,12,11,11,11, |
12,12,11,11,12,12,12,11,12,12,12,12,12,12,12,12, |
12,12,12,12,12,12,11,11,11,12,11,11,12,12,12,12, |
11,12,11,12,12,12,12,12,12,12,12,12,12,12,12, 9, |
10,10,11,11,10,11,11,12,12,10,11,11,12,12,11,11, |
12,12,12,11,12,12,12,12,10,11,11,12,12,11,11,12, |
12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12, |
12,10,11,11,12,12,11,11,12,12,12,11,11,11,12,12, |
12,12,12,12,12,11,12,12,12,12,11,12,12,12,12,12, |
12,12,12,12,12,12,12,12,12,12,12,13,12,13,12,12, |
12,13,12,11,12,12,12,12,12,12,12,12,12,11,12,12, |
12,12,12,12,12,13,12,12,12,12,13,12, 9,10,10,11, |
11,10,11,11,12,12,10,11,11,12,12,11,11,11,12,12, |
11,12,11,12,12,10,11,11,12,12,11,11,12,12,12,11, |
11,11,12,12,11,12,12,12,12,11,12,12,12,12,10,11, |
10,12,11,11,11,11,12,12,11,12,11,12,12,11,12,12, |
12,12,11,12,11,12,12,11,12,12,12,12,12,12,12,12, |
12,12,12,12,12,12,12,12,12,12,13,12,12,12,12,13, |
11,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12, |
12,12,13,12,12,12,12,13,12,10,11,11,12,12,11,12, |
12,12,12,11,12,12,12,12,12,12,12,13,13,12,12,12, |
13,13,11,12,12,12,12,12,12,12,12,13,12,12,12,13, |
13,12,12,13,13,13,12,13,13,13,13,11,12,12,12,12, |
12,12,12,12,13,12,12,12,12,12,12,13,13,13,13,12, |
13,12,13,13,12,12,12,12,13,12,13,13,13,13,12,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12, |
12,12,12,13,13,13,13,12,13,12,13,13,13,13,13,13, |
13,13,13,13,13,13,11,11,11,12,12,11,12,12,12,12, |
11,12,12,12,12,12,12,12,13,13,12,12,12,13,12,11, |
12,12,12,12,12,12,12,13,13,12,12,12,13,13,12,12, |
13,13,13,12,13,13,13,13,11,12,11,12,12,12,12,12, |
13,12,12,12,12,13,12,12,13,12,13,13,12,13,12,13, |
12,12,12,12,12,13,12,12,13,13,13,12,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,12,12,12,12,12,12, |
13,13,13,13,12,13,12,13,12,13,13,13,13,13,13,13, |
13,13,13,10,11,11,12,12,10,11,11,12,12,10,11,11, |
12,12,11,12,12,12,12,11,12,12,12,12,11,11,11,12, |
12,11,11,12,12,12,11,12,12,12,12,12,12,12,13,13, |
12,12,12,13,13,11,11,11,12,12,11,12,12,12,12,11, |
12,11,13,12,12,12,12,13,13,12,12,12,13,13,11,12, |
12,12,12,12,12,12,12,13,12,12,12,13,13,12,12,13, |
13,13,12,13,12,13,13,11,12,12,12,12,12,12,12,13, |
12,12,12,12,13,12,12,13,13,13,13,12,13,13,13,13, |
10,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12, |
12,12,13,13,12,12,12,13,13,11,11,12,12,12,11,12, |
12,12,13,12,12,12,13,13,12,12,13,13,13,12,12,13, |
13,13,11,12,12,12,12,12,12,12,13,13,12,12,12,13, |
13,12,13,13,13,13,12,13,12,13,13,12,12,12,12,13, |
12,12,13,12,13,12,12,13,13,13,12,12,13,13,13,12, |
13,13,13,13,12,12,12,12,13,12,12,13,13,13,12,12, |
12,13,13,13,13,13,13,13,12,13,13,13,13,10,11,11, |
12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,13, |
13,12,12,12,13,13,11,12,12,12,12,11,12,12,12,13, |
12,12,12,13,13,12,12,13,13,13,12,13,13,13,13,11, |
12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,13, |
12,13,13,12,13,12,13,13,12,12,12,12,12,12,12,12, |
13,13,12,13,12,13,13,12,13,13,13,13,13,13,13,13, |
13,12,12,12,13,12,12,13,13,13,13,12,13,12,13,13, |
13,13,13,13,13,13,13,13,13,13,11,11,11,12,12,11, |
12,12,12,12,11,12,12,12,12,12,12,12,13,13,12,12, |
12,13,13,11,12,12,12,12,12,12,12,12,13,12,12,12, |
13,13,12,12,13,13,13,12,12,13,13,13,11,12,12,12, |
12,12,12,12,13,13,12,12,12,13,13,12,13,13,13,13, |
12,13,12,13,13,12,12,12,12,12,12,12,13,12,13,12, |
13,13,13,13,12,13,13,12,13,13,13,13,13,13,12,12, |
12,12,12,12,13,13,13,13,12,13,12,13,13,13,13,13, |
13,13,13,13,13,13,13,10,11,11,12,12,11,12,12,12, |
13,11,12,12,13,12,12,12,12,13,13,12,12,12,13,13, |
11,12,12,12,12,12,12,12,13,13,12,13,12,13,13,12, |
12,13,13,13,12,13,13,13,13,11,12,12,12,13,12,12, |
12,13,13,12,12,12,13,12,12,13,13,13,13,12,13,12, |
13,13,12,12,12,12,12,12,12,13,13,13,12,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,12,12,12,13,12, |
12,13,13,13,13,12,13,12,13,13,13,13,13,13,13,13, |
13,13,13,13,10,11,11,12,12,10,11,11,12,12,10,11, |
11,12,12,11,12,12,12,12,11,12,12,12,12,11,11,11, |
12,12,11,11,12,12,13,11,12,12,12,12,12,12,12,13, |
13,12,12,12,13,13,10,11,11,12,12,11,12,12,12,12, |
11,12,11,12,12,12,12,12,13,13,12,12,12,13,12,11, |
12,12,12,12,12,12,12,12,13,12,12,12,13,13,12,12, |
13,13,13,12,13,13,13,13,11,12,12,12,12,12,12,12, |
13,13,12,12,12,13,12,12,13,13,13,13,12,13,12,13, |
13,10,11,11,12,12,11,12,12,12,12,11,12,12,12,12, |
12,12,12,13,13,12,12,12,13,13,11,12,12,12,12,12, |
12,12,12,13,12,12,12,13,13,12,12,13,13,13,12,12, |
13,13,13,11,12,12,12,12,12,12,12,13,13,11,12,12, |
13,12,12,13,13,13,13,12,13,12,13,13,12,12,12,12, |
13,12,12,13,13,13,12,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,12,12,12,13,12,12,12,13,13,13,12, |
12,12,13,13,13,13,13,13,13,12,13,13,13,13,10,11, |
11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12, |
13,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12, |
13,12,12,12,13,13,12,12,13,13,13,12,12,13,13,13, |
11,12,11,12,12,12,12,12,13,13,11,12,12,13,12,12, |
13,12,13,13,12,13,12,13,13,12,12,12,12,12,12,12, |
13,13,13,12,13,12,13,13,12,13,13,13,13,13,13,13, |
13,13,12,12,12,13,12,12,13,12,13,13,12,13,12,13, |
13,13,13,13,13,13,12,13,12,13,13,10,11,11,12,12, |
11,12,12,12,12,11,12,12,13,12,12,12,12,13,13,12, |
12,12,13,13,11,12,12,12,12,12,12,12,12,13,12,12, |
12,13,13,12,12,13,13,13,12,13,13,13,13,11,12,12, |
12,12,12,12,12,13,13,12,12,12,13,12,12,13,13,13, |
13,12,13,12,13,13,12,12,12,12,13,12,12,13,13,13, |
12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12, |
12,12,12,12,12,13,13,13,13,12,13,12,13,13,13,13, |
13,13,13,13,13,13,13,13,11,11,11,12,12,11,12,12, |
12,12,11,12,12,12,12,12,12,12,13,13,12,12,12,13, |
13,11,12,12,12,12,12,12,12,13,13,12,12,12,13,13, |
12,12,13,13,13,12,13,13,13,13,11,12,12,12,12,12, |
12,12,13,13,12,12,12,13,12,12,13,12,13,13,12,13, |
12,13,13,12,12,12,12,12,12,13,13,13,13,12,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,12, |
12,12,13,13,13,13,12,13,12,13,12,13,13,13,13,13, |
13,13,13,13,12, |
}; |
static const static_codebook _44p7_p4_1 = { |
5, 3125, |
(char *)_vq_lengthlist__44p7_p4_1, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44p7_p4_1, |
0 |
}; |
static const long _vq_quantlist__44p7_p5_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44p7_p5_0[] = { |
2, 6, 6, 9, 9, 5, 7, 8,10,11, 5, 8, 7,11,10, 8, |
10,11,12,13, 8,11,10,13,12, 6, 7, 8,10,11, 7, 8, |
10,10,12, 8, 9, 9,12,11,10,10,12,11,14,10,11,12, |
14,13, 6, 8, 7,11,10, 8, 9, 9,11,12, 7,10, 8,12, |
10,10,12,12,13,14,10,12,10,14,11, 9,10,11,11,12, |
10,10,11,11,13,11,12,12,13,13,12,11,13,11,15,13, |
14,13,14,14, 9,11,10,12,11,11,12,12,13,13,10,11, |
10,13,11,13,13,14,14,14,12,13,11,14,11, 7, 8, 9, |
11,12, 9, 9,11,12,13, 9,10,10,13,12,11,12,13,13, |
15,11,12,12,14,14, 9,10,10,12,13,10,10,12,12,14, |
11,11,11,13,13,12,12,13,13,15,12,13,13,15,14, 9, |
10,10,12,13,10,11,11,13,14,10,12,11,14,13,12,13, |
13,14,15,12,13,13,15,14,12,12,13,13,14,12,13,13, |
13,15,13,14,14,14,15,14,14,15,14,16,14,15,15,16, |
16,12,13,13,14,14,13,13,14,15,14,12,13,13,15,14, |
14,15,15,15,16,14,15,14,16,14, 7, 9, 8,12,11, 9, |
10,10,12,13, 9,11, 9,13,12,11,12,12,14,14,11,13, |
12,15,13, 9,10,10,13,12,10,11,12,13,14,10,12,11, |
14,13,12,13,13,14,15,13,13,13,15,14, 9,10,10,13, |
12,11,11,11,13,13,10,12,10,14,12,13,13,13,14,15, |
12,13,12,15,13,12,13,13,14,14,12,13,13,14,15,13, |
14,13,15,15,14,14,15,14,16,14,15,15,16,15,12,13, |
12,14,13,13,13,13,15,14,12,13,13,15,13,14,15,15, |
16,15,14,15,14,16,14,11,12,12,13,14,12,13,14,14, |
15,12,13,13,14,15,14,14,15,15,16,14,15,15,16,16, |
12,13,13,14,15,13,13,14,14,16,13,14,14,15,15,15, |
15,16,15,17,15,15,15,16,16,12,13,13,14,15,13,14, |
14,15,16,13,14,14,15,15,15,15,16,16,17,15,15,15, |
17,16,14,15,15,16,16,15,15,16,15,16,15,16,16,16, |
17,16,16,17,16,18,16,16,17,18,17,14,15,15,16,16, |
15,16,16,16,17,15,16,15,17,16,16,17,17,17,18,16, |
16,16,17,16,11,12,12,14,13,12,13,13,15,14,12,14, |
13,15,14,14,15,15,16,16,14,15,14,16,15,12,13,13, |
15,14,13,14,14,15,15,13,14,14,16,15,15,15,15,16, |
16,15,16,15,17,16,12,13,13,15,14,13,14,14,15,15, |
13,14,13,16,14,15,15,15,16,16,15,15,15,17,15,14, |
15,15,16,16,15,15,15,16,16,15,16,16,17,17,16,16, |
17,17,17,16,17,17,18,17,14,15,15,16,15,15,15,16, |
16,16,15,15,15,17,15,17,17,17,18,17,16,17,16,18, |
16, 6, 9, 9,12,12, 8,10,10,12,13, 9,11,10,13,12, |
10,12,12,14,14,11,13,12,14,14, 8,10,10,12,12, 9, |
10,11,12,14,10,11,11,13,13,12,12,13,13,15,12,13, |
13,15,14, 9,10,10,13,13,10,11,11,13,13,10,12,10, |
14,13,12,13,13,14,15,12,13,13,15,14,11,12,12,13, |
14,12,12,13,13,15,12,13,13,14,14,13,13,14,13,16, |
14,15,15,16,15,11,12,12,14,14,13,13,13,15,14,12, |
13,13,15,14,14,15,15,16,15,14,14,14,16,14, 7, 9, |
10,12,12, 9,10,11,13,13, 9,11,10,13,13,11,12,13, |
14,15,12,13,13,15,14, 9,10,11,12,13,10,10,12,13, |
14,11,11,12,14,14,12,12,14,14,15,13,13,13,15,15, |
9,11,11,13,13,11,12,12,14,14,10,12,10,14,13,13, |
14,13,15,15,12,14,13,15,14,12,12,13,13,15,12,12, |
14,13,15,13,14,14,15,15,14,14,15,14,17,14,15,15, |
16,16,12,13,13,15,14,13,14,14,15,15,12,14,13,15, |
14,14,15,15,16,16,14,15,14,16,14, 7,10,10,12,12, |
10,11,11,12,13,10,12,10,14,12,12,13,13,14,15,12, |
13,13,15,14, 9,11,10,13,12,10,10,12,12,14,11,13, |
12,14,13,13,13,14,13,15,13,14,14,15,14,10,11,11, |
13,13,12,12,12,13,14,10,12,10,14,12,13,14,14,15, |
15,13,14,13,15,13,12,13,13,14,14,12,12,13,14,15, |
13,14,14,15,15,13,13,14,13,15,14,15,15,16,16,12, |
13,13,14,14,13,14,14,15,15,12,13,13,15,13,15,15, |
15,16,16,13,14,13,16,13,11,12,13,14,14,12,13,14, |
14,15,12,13,13,15,15,14,14,15,15,17,14,15,15,16, |
16,12,13,14,14,15,13,13,14,14,16,13,14,14,15,16, |
14,14,16,15,17,15,15,16,16,16,12,13,13,15,15,13, |
14,14,15,16,13,14,14,15,16,15,15,16,17,17,15,16, |
15,17,16,14,15,15,15,16,15,15,16,15,17,15,15,16, |
16,17,16,16,16,16,18,16,16,17,17,17,14,15,15,16, |
16,15,16,16,16,17,15,16,15,17,16,16,17,17,17,17, |
16,17,16,18,17,11,12,12,14,14,13,13,14,14,15,13, |
14,13,15,14,14,15,15,15,16,14,15,15,17,15,12,13, |
13,15,14,13,13,14,15,15,14,15,14,16,15,15,15,15, |
15,16,15,16,15,17,16,12,13,13,15,15,14,14,14,15, |
16,13,14,13,16,15,15,15,16,16,17,15,16,15,17,15, |
14,15,15,16,16,14,15,15,16,16,15,16,16,17,16,15, |
15,16,15,17,16,17,17,18,17,14,15,15,16,16,15,16, |
16,16,17,14,15,15,17,16,17,17,17,17,18,15,16,16, |
18,15, 6, 9, 9,12,12, 9,10,11,12,13, 8,10,10,13, |
12,11,12,13,14,14,10,12,12,14,13, 9,10,10,12,13, |
10,10,12,13,14,10,11,11,13,13,12,13,13,14,15,12, |
13,13,15,14, 8,10,10,12,12,10,11,11,13,13, 9,11, |
10,13,13,12,13,13,14,15,12,13,12,15,13,11,12,12, |
14,14,12,13,13,13,15,13,13,13,14,15,14,14,15,14, |
16,14,15,15,15,15,11,12,12,14,13,12,13,13,15,14, |
12,13,12,15,13,14,14,15,16,16,13,14,13,16,13, 7, |
10,10,12,12,10,10,12,12,14,10,11,11,13,12,12,13, |
13,13,15,12,13,13,15,14,10,11,11,13,13,10,10,12, |
12,14,12,12,12,14,13,13,13,14,13,15,13,14,14,15, |
14, 9,10,11,13,13,11,12,12,13,14,10,12,10,14,12, |
13,13,14,14,15,13,13,12,15,13,12,13,13,14,14,12, |
13,13,14,15,13,14,14,15,15,13,13,15,13,16,15,15, |
15,16,16,12,13,13,14,14,13,14,14,15,15,12,13,12, |
15,14,15,15,15,16,16,13,14,13,15,13, 7,10, 9,12, |
12, 9,10,11,13,13, 9,11,10,13,13,11,13,13,14,15, |
11,13,12,15,14, 9,11,11,13,13,10,10,12,13,14,11, |
12,12,14,14,12,13,14,14,15,13,13,13,15,15, 9,11, |
10,13,12,11,12,11,14,14,10,12,10,14,13,13,14,13, |
15,15,12,14,12,15,14,12,13,13,14,15,13,13,14,14, |
15,13,14,14,15,15,14,14,15,14,17,14,15,15,16,16, |
12,13,12,15,13,13,14,14,15,15,12,14,13,15,13,14, |
15,15,16,16,14,15,14,16,14,11,12,12,14,14,13,13, |
14,14,15,13,14,13,15,15,14,15,15,16,17,14,15,15, |
16,15,12,13,13,15,15,13,13,14,15,16,14,14,14,16, |
15,15,15,16,15,17,15,16,15,17,16,12,13,13,14,15, |
14,14,15,15,16,13,14,13,15,15,15,15,16,16,17,15, |
15,15,16,15,14,15,15,16,16,14,15,15,16,17,15,16, |
16,17,17,16,15,16,15,17,16,17,17,17,17,14,15,15, |
15,16,15,15,16,16,17,14,15,15,16,16,16,16,17,17, |
18,15,16,15,17,15,11,13,12,14,14,12,13,13,15,15, |
12,14,13,15,14,14,15,15,16,16,14,15,14,16,15,12, |
13,13,15,15,13,14,14,15,16,13,14,14,16,16,15,15, |
16,16,17,15,16,15,17,16,12,13,13,15,14,13,14,14, |
16,15,13,14,13,16,14,15,16,15,17,16,15,15,14,18, |
15,14,15,15,16,16,15,15,16,16,17,15,16,15,17,16, |
16,16,17,17,18,16,17,17,18,17,14,15,15,16,15,15, |
16,15,17,16,15,15,15,17,15,16,17,17,18,17,16,17, |
16,18,15,10,12,12,14,14,12,13,13,14,14,12,13,13, |
14,14,13,14,14,15,15,13,14,14,16,15,11,12,13,14, |
14,12,13,13,15,15,12,13,13,15,15,13,14,15,15,16, |
14,15,15,16,16,12,13,13,14,14,13,13,14,15,15,13, |
14,13,15,15,14,15,15,16,16,14,15,14,16,15,13,14, |
14,15,15,13,14,14,15,16,14,14,15,16,16,14,15,15, |
15,17,15,16,16,17,17,13,14,14,15,15,14,15,15,16, |
16,14,15,15,16,16,15,16,16,16,17,15,16,15,17,16, |
11,12,12,14,14,12,13,13,14,15,12,13,13,15,14,13, |
14,14,15,16,13,14,14,16,15,12,13,13,14,15,13,13, |
14,15,15,13,14,14,15,15,14,14,15,15,17,14,15,15, |
16,16,12,13,13,15,15,13,14,14,15,15,13,14,13,15, |
15,14,15,15,16,17,14,15,15,16,16,13,13,14,15,16, |
14,14,15,15,16,14,15,15,16,16,15,15,16,15,18,15, |
16,16,17,17,14,15,15,16,16,15,15,15,16,16,14,15, |
15,17,16,16,16,16,17,17,15,16,16,17,16,10,12,12, |
14,14,12,13,13,14,15,12,13,13,15,14,14,14,15,15, |
16,14,15,14,16,15,12,13,13,15,14,13,13,14,15,15, |
13,14,14,15,15,14,14,15,15,16,14,15,15,16,16,12, |
13,13,15,15,13,14,14,15,16,13,14,13,15,14,15,15, |
15,16,16,14,15,15,16,15,13,14,14,16,15,14,14,14, |
15,16,14,15,15,16,16,15,15,16,15,17,16,17,16,17, |
17,14,14,15,15,16,15,15,16,16,16,14,15,14,16,15, |
16,16,16,17,17,15,16,15,17,15,11,13,13,14,15,13, |
13,14,15,15,13,14,13,15,15,14,15,15,15,16,14,15, |
15,17,15,13,13,14,15,15,13,14,15,15,16,14,14,14, |
16,16,15,14,16,15,17,15,16,16,17,16,13,14,14,15, |
15,14,14,14,16,16,13,15,14,16,15,15,15,16,17,17, |
15,16,15,17,16,14,15,15,15,16,15,15,16,15,17,15, |
16,16,16,17,16,16,17,15,18,16,17,17,17,17,14,15, |
15,16,16,15,16,16,17,17,15,16,15,17,16,16,17,17, |
18,18,16,17,15,18,16,10,12,12,14,14,13,13,14,14, |
15,13,14,13,15,14,14,15,15,15,16,15,15,15,16,15, |
12,13,13,15,14,12,12,14,14,15,14,15,14,16,15,15, |
14,15,14,17,15,16,16,17,16,12,13,13,14,15,14,14, |
15,15,16,13,14,12,16,14,15,16,16,16,17,15,16,14, |
17,15,14,15,14,16,15,14,14,15,15,15,15,16,15,17, |
16,15,14,16,14,16,16,17,17,18,17,14,14,15,15,16, |
15,16,16,16,17,14,15,14,16,15,16,16,17,17,17,15, |
16,14,17,14,10,12,12,14,13,12,13,13,14,14,11,13, |
12,14,14,13,14,14,15,16,13,14,14,16,15,12,13,13, |
14,14,13,13,14,15,15,13,14,13,15,15,14,14,15,15, |
16,14,15,15,16,16,11,13,12,14,14,12,13,13,15,15, |
12,13,13,15,15,14,15,15,16,16,13,14,14,16,15,13, |
14,14,15,15,14,15,15,15,16,14,15,15,16,16,15,16, |
16,16,17,16,16,16,17,17,13,14,14,15,15,14,15,15, |
16,16,13,14,14,16,15,15,16,16,17,17,15,15,15,17, |
15,11,12,12,14,14,12,13,13,14,15,12,13,13,15,14, |
14,14,15,15,16,14,14,14,16,15,12,13,13,15,14,13, |
13,14,15,15,13,14,14,16,15,14,15,15,15,16,15,15, |
15,16,16,12,13,13,14,15,13,13,14,15,15,13,14,13, |
15,15,15,15,15,16,16,14,15,14,16,15,14,14,15,16, |
16,14,15,15,15,16,15,16,15,16,16,15,15,16,15,17, |
16,16,16,17,17,13,14,14,15,16,14,15,15,16,16,14, |
14,14,16,16,16,16,16,17,17,15,15,15,17,15,11,12, |
12,14,14,12,13,13,14,15,12,13,13,15,14,14,14,14, |
15,16,13,14,14,16,15,12,13,13,15,15,13,13,14,15, |
16,13,14,14,15,15,14,15,15,16,17,14,15,15,17,16, |
12,13,13,15,14,13,14,14,15,15,13,14,13,15,15,14, |
15,15,16,16,14,15,14,17,15,14,15,15,16,16,14,15, |
15,16,17,15,15,15,17,17,15,16,16,16,17,16,17,16, |
17,17,13,15,14,16,15,14,15,15,16,16,14,15,14,16, |
15,16,16,16,17,17,15,16,15,17,15,10,12,12,14,14, |
13,13,14,14,15,13,14,13,15,14,14,15,15,15,17,14, |
15,15,16,15,12,13,13,15,14,12,12,14,14,15,14,15, |
14,16,15,15,14,16,15,17,15,16,16,17,16,12,13,13, |
14,15,14,14,15,15,16,12,14,12,15,14,15,16,16,16, |
17,15,16,14,17,14,14,15,14,16,16,14,14,15,15,16, |
15,16,16,17,16,15,14,16,14,17,16,17,17,18,17,14, |
14,15,15,16,15,15,16,16,17,14,15,14,16,15,16,17, |
17,17,18,15,16,14,17,14,11,13,13,15,14,13,13,14, |
15,15,12,14,13,15,15,14,15,15,15,17,14,15,14,16, |
15,13,14,14,15,15,13,14,15,15,16,14,15,14,16,16, |
15,15,16,16,17,15,16,16,17,17,13,14,13,15,15,14, |
14,14,16,16,13,15,14,16,15,15,16,16,17,17,15,16, |
14,17,15,15,15,15,16,17,15,15,16,16,17,15,16,16, |
17,17,16,15,17,16,17,17,17,17,18,18,14,15,15,17, |
15,15,16,16,17,16,15,16,15,17,15,16,17,17,17,17, |
16,17,15,18,15, |
}; |
static const static_codebook _44p7_p5_0 = { |
5, 3125, |
(char *)_vq_lengthlist__44p7_p5_0, |
1, -528744448, 1616642048, 3, 0, |
(long *)_vq_quantlist__44p7_p5_0, |
0 |
}; |
static const long _vq_quantlist__44p7_p5_1[] = { |
3, |
2, |
4, |
1, |
5, |
0, |
6, |
}; |
static const char _vq_lengthlist__44p7_p5_1[] = { |
2, 3, 3, 3, 3, 3, 3, |
}; |
static const static_codebook _44p7_p5_1 = { |
1, 7, |
(char *)_vq_lengthlist__44p7_p5_1, |
1, -533200896, 1611661312, 3, 0, |
(long *)_vq_quantlist__44p7_p5_1, |
0 |
}; |
static const long _vq_quantlist__44p7_p6_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p7_p6_0[] = { |
2, 5, 6, 5, 7, 8, 5, 8, 7, 5, 7, 7, 7, 7, 9, 8, |
9, 9, 5, 7, 7, 8, 9, 9, 7, 9, 7, 6, 8, 8, 8, 9, |
10, 8, 9, 9, 8, 9,10, 9, 9,11,10,10,11, 8,10, 9, |
10,10,11, 9,10,10, 6, 8, 8, 8, 9, 9, 8,10, 9, 8, |
9,10, 9,10,10,10,11,10, 8,10, 9,10,11,10, 9,11, |
9, 6, 8, 8, 7, 9, 9, 8, 9, 9, 7, 9, 9, 9, 9,10, |
9,10,10, 8, 9, 9, 9,10,10, 9,10, 9, 7, 9, 9, 9, |
10,10, 9,10,10, 9, 9,10,10, 9,11,10,11,11, 9,10, |
10,10,11,11,10,11,10, 6, 9, 8, 9,10,10, 9,10, 9, |
8,10,10, 9, 9,10,10,11,11, 9,10,10,10,11,11, 9, |
11, 9, 6, 8, 8, 8, 9, 9, 7, 9, 9, 8, 9, 9, 9, 9, |
10, 9,10,10, 7, 9, 9, 9,10,10, 9,10, 9, 6, 8, 9, |
9, 9,10, 9,10,10, 9,10,10, 9, 9,11,10,11,11, 8, |
10,10,10,11,11, 9,10, 9, 7, 9, 9, 9,10,10, 9,10, |
10, 9,10,10,10,10,11,10,11,11, 9,10, 9,10,11,11, |
10,11, 9, |
}; |
static const static_codebook _44p7_p6_0 = { |
5, 243, |
(char *)_vq_lengthlist__44p7_p6_0, |
1, -527106048, 1620377600, 2, 0, |
(long *)_vq_quantlist__44p7_p6_0, |
0 |
}; |
static const long _vq_quantlist__44p7_p6_1[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p7_p6_1[] = { |
4, 7, 7, 6, 7, 8, 6, 8, 7, 7, 7, 8, 7, 7, 8, 8, |
8, 8, 7, 7, 7, 8, 8, 8, 7, 8, 8, 7, 8, 8, 8, 8, |
8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 8, 9, 9, 8, 8, 8, |
8, 9, 9, 8, 9, 8, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, |
8, 8, 8, 8, 9, 8, 9, 9, 8, 8, 8, 8, 9, 9, 8, 9, |
8, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, |
8, 9, 9, 8, 8, 8, 8, 9, 9, 8, 9, 8, 7, 8, 8, 8, |
8, 9, 8, 9, 8, 8, 8, 8, 8, 8, 9, 8, 9, 9, 8, 8, |
8, 9, 9, 9, 8, 9, 9, 7, 8, 8, 8, 8, 8, 8, 8, 8, |
8, 8, 8, 8, 8, 9, 8, 9, 9, 8, 8, 8, 8, 9, 9, 8, |
9, 8, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, |
9, 8, 9, 9, 8, 8, 8, 8, 9, 9, 8, 9, 8, 7, 8, 8, |
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 8, 9, 9, 8, |
8, 8, 8, 9, 9, 8, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, |
8, 8, 8, 8, 8, 9, 9, 8, 9, 9, 8, 8, 8, 9, 9, 9, |
8, 9, 8, |
}; |
static const static_codebook _44p7_p6_1 = { |
5, 243, |
(char *)_vq_lengthlist__44p7_p6_1, |
1, -530841600, 1616642048, 2, 0, |
(long *)_vq_quantlist__44p7_p6_1, |
0 |
}; |
static const long _vq_quantlist__44p7_p7_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p7_p7_0[] = { |
1, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, |
}; |
static const static_codebook _44p7_p7_0 = { |
5, 243, |
(char *)_vq_lengthlist__44p7_p7_0, |
1, -513979392, 1633504256, 2, 0, |
(long *)_vq_quantlist__44p7_p7_0, |
0 |
}; |
static const long _vq_quantlist__44p7_p7_1[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p7_p7_1[] = { |
1, 5, 5, 4,10,10, 5,10,10, 5,10,10,10,10,10,10, |
10,10, 5,10,10,10,10,10, 9,10,10, 6,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, 7,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, 6,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, 6,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,11,11, |
}; |
static const static_codebook _44p7_p7_1 = { |
5, 243, |
(char *)_vq_lengthlist__44p7_p7_1, |
1, -516716544, 1630767104, 2, 0, |
(long *)_vq_quantlist__44p7_p7_1, |
0 |
}; |
static const long _vq_quantlist__44p7_p7_2[] = { |
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 const char _vq_lengthlist__44p7_p7_2[] = { |
1, 3, 2, 4, 5, 7, 7, 8, 8, 9, 9,10,10,11,11,12, |
12,13,13,14,14,15,15,15,15, |
}; |
static const static_codebook _44p7_p7_2 = { |
1, 25, |
(char *)_vq_lengthlist__44p7_p7_2, |
1, -518864896, 1620639744, 5, 0, |
(long *)_vq_quantlist__44p7_p7_2, |
0 |
}; |
static const long _vq_quantlist__44p7_p7_3[] = { |
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 const char _vq_lengthlist__44p7_p7_3[] = { |
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, |
}; |
static const static_codebook _44p7_p7_3 = { |
1, 25, |
(char *)_vq_lengthlist__44p7_p7_3, |
1, -529006592, 1611661312, 5, 0, |
(long *)_vq_quantlist__44p7_p7_3, |
0 |
}; |
static const char _huff_lengthlist__44p7_short[] = { |
3, 9,14,16,17,19,22,22, 5, 4, 6, 9,11,13,17,20, |
9, 5, 5, 6, 9,11,15,19,11, 7, 5, 5, 7, 9,13,17, |
14, 9, 7, 6, 6, 7,11,14,16,11, 9, 7, 6, 4, 4, 8, |
19,15,13,11, 9, 4, 3, 4,21,16,16,15,12, 6, 4, 4, |
}; |
static const static_codebook _huff_book__44p7_short = { |
2, 64, |
(char *)_huff_lengthlist__44p7_short, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const long _vq_quantlist__44p8_l0_0[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44p8_l0_0[] = { |
2, 4, 4, 7, 7, 8, 8,10,10,11,11,12,12, 4, 5, 5, |
7, 7, 9, 9,10, 9,12,10,12,12, 4, 5, 5, 7, 7, 9, |
9, 9,10,10,12,12,12, 7, 7, 7, 7, 8, 9, 8,11, 5, |
12, 6,12,10, 7, 7, 7, 8, 7, 8, 9, 5,11, 6,12,10, |
12, 8, 9, 9, 9, 9, 9, 9,11, 7,11, 7,11, 9, 8, 9, |
9, 9, 9, 9, 9, 7,10, 7,11, 9,11,10,10,10,10,10, |
10,10,11,10,11, 8,12, 9,10,10,10,10,10,10,10,10, |
11, 8,11, 9,12,10,11,11,11,11,11,11,11,11,12,10, |
12,11,10,11,11,11,11,11,11,11,11,10,12,11,12,12, |
12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12, |
12,12,12,12,12,12,11,12,12, |
}; |
static const static_codebook _44p8_l0_0 = { |
2, 169, |
(char *)_vq_lengthlist__44p8_l0_0, |
1, -526516224, 1616117760, 4, 0, |
(long *)_vq_quantlist__44p8_l0_0, |
0 |
}; |
static const long _vq_quantlist__44p8_l0_1[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44p8_l0_1[] = { |
4, 4, 4, 5, 5, 4, 4, 5, 5, 5, 4, 5, 4, 5, 5, 5, |
5, 5, 5, 5, 5, 5, 5, 5, 5, |
}; |
static const static_codebook _44p8_l0_1 = { |
2, 25, |
(char *)_vq_lengthlist__44p8_l0_1, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44p8_l0_1, |
0 |
}; |
static const long _vq_quantlist__44p8_l1_0[] = { |
54, |
29, |
79, |
0, |
108, |
}; |
static const char _vq_lengthlist__44p8_l1_0[] = { |
1, 2, 3, 6, 7, 7, 6, 7, 7, 8, 8, 8, 8, 8, 8, 8, |
8, 8, 8, 8, 8, 8, 8, 8, 8, |
}; |
static const static_codebook _44p8_l1_0 = { |
2, 25, |
(char *)_vq_lengthlist__44p8_l1_0, |
1, -514516992, 1620639744, 7, 0, |
(long *)_vq_quantlist__44p8_l1_0, |
0 |
}; |
static const char _huff_lengthlist__44p8_lfe[] = { |
2, 3, 1, 3, |
}; |
static const static_codebook _huff_book__44p8_lfe = { |
2, 4, |
(char *)_huff_lengthlist__44p8_lfe, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist__44p8_long[] = { |
2, 7,14,16,17,18,20,21, 7, 4, 6, 8,11,12,14,16, |
13, 5, 4, 4, 8, 9,11,13,15, 8, 4, 3, 5, 7, 9,10, |
17,11, 8, 4, 4, 6, 9, 9,17,11, 9, 7, 6, 5, 7, 8, |
19,13,11, 9, 9, 7, 8, 8,21,15,13,11,10, 8, 8, 7, |
}; |
static const static_codebook _huff_book__44p8_long = { |
2, 64, |
(char *)_huff_lengthlist__44p8_long, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const long _vq_quantlist__44p8_p1_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p8_p1_0[] = { |
2, 5, 5, 4, 7, 7, 4, 7, 7, 5, 7, 7, 7, 8, 9, 7, |
9, 9, 5, 7, 7, 7, 9, 9, 7, 9, 8, 6, 7, 8, 8, 9, |
10, 8, 9,10, 8, 9,10,10,10,12,10,11,12, 8,10,10, |
10,11,12,10,11,11, 6, 8, 7, 8,10, 9, 8,10, 9, 8, |
10,10,10,11,11,10,12,11, 8,10, 9,10,12,11,10,12, |
10, 5, 8, 8, 8,10,10, 8,10,10, 7, 9,10, 9,10,11, |
9,11,11, 8,10,10,10,12,12,10,12,11, 7, 9, 9, 9, |
10,11, 9,11,11, 9, 9,11,10,11,12,10,11,12, 9,11, |
11,11,12,12,11,12,12, 7, 9, 9,10,11,11,10,12,11, |
9,11,10,11,11,12,11,13,12,10,11,11,12,13,13,11, |
13,11, 5, 8, 8, 8,10,10, 8,10,10, 8,10,10,10,11, |
12,10,12,11, 7,10, 9, 9,11,11, 9,11,10, 7, 9, 9, |
10,11,12,10,11,11,10,11,11,11,11,13,12,13,13, 9, |
10,11,12,12,13,11,12,11, 7, 9, 9, 9,11,11, 9,11, |
10, 9,11,11,11,12,12,11,12,12, 9,11, 9,10,12,11, |
10,12,11, |
}; |
static const static_codebook _44p8_p1_0 = { |
5, 243, |
(char *)_vq_lengthlist__44p8_p1_0, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__44p8_p1_0, |
0 |
}; |
static const long _vq_quantlist__44p8_p2_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44p8_p2_0[] = { |
4, 6, 6, 9, 9, 6, 8, 8,10,10, 6, 8, 8,10,10, 8, |
9,10,12,12, 8,10, 9,12,12, 6, 8, 8,10,10, 8, 8, |
9,10,11, 8, 9, 9,11,11, 9,10,11,12,13,10,11,11, |
13,13, 6, 8, 8,10,10, 8, 9, 9,11,11, 8, 9, 8,11, |
10,10,11,11,13,13, 9,11,10,13,12, 9,10,10,12,12, |
10,10,11,12,13,10,11,11,13,13,12,12,13,12,15,12, |
13,13,15,14, 9,10,10,12,12,10,11,11,13,13,10,11, |
10,13,12,12,13,13,14,15,12,13,12,15,12, 7, 8, 8, |
10,11, 8, 9,10,11,12, 8, 9, 9,11,11,10,11,11,13, |
14,10,11,11,13,13, 8, 9, 9,11,12, 9,10,11,11,13, |
9,10,10,12,12,11,11,12,13,15,11,12,12,14,14, 8, |
9, 9,11,11, 9,10,11,12,13, 9,10,10,12,12,11,12, |
12,14,15,11,12,12,14,14,10,11,12,13,13,11,12,12, |
13,14,12,12,12,14,14,13,13,14,14,16,14,14,14,16, |
15,10,11,11,13,13,12,12,12,14,14,11,12,12,14,13, |
14,14,14,15,16,13,14,13,16,14, 7, 8, 8,11,10, 8, |
9, 9,11,11, 8,10, 9,12,11,10,11,11,13,13,10,11, |
11,14,13, 8, 9, 9,12,11, 9,10,10,12,12, 9,11,10, |
13,12,11,12,12,13,14,11,12,12,15,14, 8, 9, 9,12, |
11, 9,10,10,12,12, 9,11,10,13,11,11,12,12,14,14, |
11,12,12,14,13,10,11,11,13,13,11,12,12,13,14,12, |
13,12,14,14,13,13,14,14,16,13,14,14,16,15,10,11, |
11,13,13,12,12,12,14,14,11,12,12,14,13,13,14,14, |
15,15,13,14,13,16,14, 9,10,11,12,13,11,11,12,12, |
14,11,11,12,13,14,13,13,14,14,16,13,13,14,15,15, |
11,11,12,12,14,12,12,13,13,15,12,12,13,13,15,14, |
14,15,15,16,14,14,14,15,16,11,12,12,13,14,12,12, |
13,14,15,12,13,12,14,14,14,14,15,15,16,14,14,14, |
16,16,13,13,14,15,16,14,14,15,15,16,14,15,15,16, |
16,15,15,16,16,18,16,16,16,17,17,13,14,14,15,15, |
14,14,15,16,16,14,15,14,16,16,16,16,16,17,18,15, |
16,16,17,16, 9,11,10,13,12,11,12,11,14,13,11,12, |
11,14,12,13,14,13,15,14,13,14,13,16,14,11,12,12, |
14,13,12,12,13,14,14,12,13,12,15,14,14,14,14,16, |
16,14,15,14,17,15,11,12,11,14,12,12,13,12,15,13, |
12,13,12,15,13,14,14,14,16,15,14,15,14,16,15,13, |
14,14,15,15,14,14,15,16,16,14,15,14,16,16,15,15, |
16,16,17,16,16,16,17,17,13,14,14,16,15,14,15,15, |
16,16,14,15,14,17,15,16,16,16,17,17,15,16,15,18, |
16, 7, 8, 8,10,11, 8, 9, 9,11,12, 8, 9, 9,12,11, |
10,11,11,13,14,10,11,11,14,13, 8, 9, 9,11,11, 9, |
10,10,12,12, 9,10,10,12,12,11,12,12,13,14,11,12, |
12,14,14, 8, 9, 9,12,11, 9,10,11,12,13, 9,11,10, |
13,12,11,12,12,14,14,11,12,12,14,13,10,11,11,13, |
13,11,12,12,13,14,11,12,12,14,14,13,13,14,14,16, |
13,14,14,16,15,10,12,11,13,13,12,12,12,14,14,11, |
12,12,14,13,14,14,14,15,16,13,14,14,16,14, 8, 9, |
9,11,11, 9,10,10,12,12, 9,10,10,12,12,11,11,12, |
13,14,11,12,12,14,14, 9, 9,10,11,12,10,10,11,12, |
13,10,10,11,12,13,12,12,13,14,15,12,12,13,14,15, |
9,10,10,12,12,10,11,11,13,13,10,11,11,13,13,12, |
13,13,15,15,12,13,13,15,14,11,11,12,13,14,12,12, |
13,13,15,12,12,13,14,15,14,14,15,14,16,14,14,15, |
15,16,11,12,12,14,14,12,13,13,15,15,12,13,13,15, |
14,14,15,15,16,16,14,15,14,17,15, 8, 9, 9,11,11, |
9,10,10,12,12, 9,11,10,13,12,11,12,12,14,14,11, |
13,12,15,13, 9,10,10,12,12,10,10,11,12,13,10,12, |
11,13,13,12,12,13,13,15,12,13,13,15,14, 9,10,10, |
12,12,11,11,12,13,13,10,12,10,13,12,12,13,13,15, |
15,12,13,13,15,13,11,12,12,14,14,12,12,13,14,14, |
12,13,13,15,14,13,13,14,13,16,14,15,14,16,16,11, |
12,12,14,14,13,13,13,15,15,12,13,12,15,14,14,15, |
15,16,17,14,15,13,16,13,10,11,11,13,14,11,12,12, |
13,15,11,12,12,14,14,13,14,14,15,16,13,14,14,16, |
16,11,11,12,12,14,12,12,13,13,15,12,13,13,13,15, |
14,14,15,14,17,14,14,15,15,16,11,12,12,14,14,12, |
13,13,15,15,12,13,13,15,15,14,15,15,16,17,14,15, |
15,16,16,13,14,14,14,16,14,14,15,14,17,14,15,15, |
14,17,16,16,17,15,18,16,16,17,16,18,13,14,14,16, |
16,14,15,15,17,16,14,15,15,17,16,16,17,17,18,18, |
16,17,16,18,17,10,11,11,14,13,11,12,12,14,14,11, |
13,12,15,14,14,14,14,16,15,14,15,14,16,15,11,12, |
12,14,13,12,13,13,15,14,13,14,13,15,14,14,15,15, |
16,16,14,15,15,17,15,11,12,12,14,14,13,13,13,15, |
15,12,13,13,15,14,15,15,15,17,17,14,15,15,17,15, |
13,14,14,16,15,14,15,15,16,16,15,15,15,17,16,16, |
16,16,16,17,16,17,16,18,17,14,14,14,16,16,15,15, |
15,16,16,14,15,14,17,16,16,17,17,17,18,16,17,16, |
18,16, 7, 8, 8,11,11, 8, 9, 9,11,12, 8, 9, 9,12, |
11,10,11,11,13,14,10,11,11,14,13, 8, 9, 9,11,12, |
9,10,11,12,13, 9,11,10,13,12,11,12,12,13,14,11, |
12,12,14,14, 8, 9, 9,11,11, 9,10,10,12,12, 9,10, |
10,13,12,11,12,12,14,14,11,12,11,14,13,10,11,12, |
13,13,11,12,12,13,14,12,13,12,14,14,13,13,14,14, |
16,13,14,14,16,15,10,11,11,13,13,11,12,12,14,14, |
11,12,12,14,13,13,14,14,15,16,13,14,13,16,14, 8, |
9, 9,11,11, 9,10,11,12,13, 9,10,10,12,12,11,12, |
13,13,14,11,12,12,14,14, 9,10,10,12,12,10,10,11, |
12,13,11,12,11,13,13,12,12,13,13,15,12,13,13,15, |
15, 9,10,10,12,12,10,11,12,13,14,10,11,10,13,12, |
12,13,13,14,15,12,13,12,15,13,12,12,12,14,14,12, |
12,13,14,15,13,13,13,15,15,14,14,15,13,16,14,15, |
15,16,16,11,12,12,14,14,12,13,13,14,15,12,13,12, |
14,14,14,14,15,16,16,13,14,13,16,14, 8, 9, 9,11, |
11, 9,10,10,12,12, 9,10,10,12,12,11,12,12,14,14, |
11,12,11,14,14, 9,10,10,12,12,10,11,11,13,13,10, |
11,11,13,13,12,13,13,14,15,12,13,13,15,14, 9,10, |
9,12,11,10,11,10,13,12,10,11,10,13,12,12,13,12, |
15,14,12,13,12,15,14,11,12,12,14,14,12,13,13,14, |
15,12,13,13,15,15,14,14,15,15,17,14,15,15,16,16, |
11,12,11,14,13,12,13,12,15,14,12,13,12,15,13,14, |
15,14,16,15,13,15,14,17,14,10,11,11,13,14,11,12, |
13,13,15,11,12,12,14,14,14,14,15,15,17,13,14,14, |
15,16,11,12,12,14,14,12,12,13,14,15,13,13,13,15, |
15,14,15,15,15,17,15,15,15,16,16,11,12,12,13,14, |
13,13,14,14,15,12,13,13,14,15,14,15,15,16,17,14, |
15,15,16,16,14,14,14,16,16,14,14,15,15,17,15,15, |
15,17,16,16,16,17,16,18,16,17,17,18,17,13,14,14, |
15,16,14,15,15,16,17,14,15,15,16,16,16,17,17,17, |
18,16,16,16,17,16,10,11,11,14,13,11,12,12,14,14, |
11,12,12,15,13,13,14,14,16,15,13,14,14,16,15,11, |
12,12,14,14,12,13,13,15,15,12,13,13,15,15,14,15, |
15,16,17,14,15,15,17,16,11,12,11,14,12,12,13,13, |
15,13,12,13,12,15,13,14,15,15,16,15,14,15,14,17, |
14,13,14,14,16,16,14,15,15,16,17,14,15,15,16,17, |
16,16,17,17,18,16,17,17,18,18,13,14,14,16,13,14, |
15,15,17,14,14,15,14,17,14,16,17,16,17,16,16,17, |
16,18,15, 8,11,11,13,13,10,12,12,14,14,11,12,12, |
14,14,13,13,14,15,16,13,14,14,16,15,10,11,11,14, |
14,11,12,12,14,15,11,12,12,15,14,13,14,14,15,16, |
13,14,14,16,16,11,12,12,14,14,12,13,13,15,15,12, |
13,12,15,14,14,14,15,16,16,14,15,14,16,16,12,13, |
13,15,15,12,13,14,15,16,13,14,14,16,16,14,15,15, |
16,17,15,15,16,17,17,13,14,14,16,15,14,15,15,16, |
16,14,15,14,16,16,16,16,16,17,17,15,16,16,18,16, |
10,11,11,13,14,11,12,12,14,15,11,12,12,15,14,13, |
14,14,16,16,13,14,14,16,16,11,11,12,14,14,12,12, |
13,14,15,12,13,13,15,15,14,14,15,15,17,14,14,15, |
16,16,11,12,12,15,14,12,13,13,15,15,12,13,13,15, |
15,14,15,15,17,17,14,15,15,17,16,13,12,14,14,16, |
13,13,15,14,17,14,13,15,15,17,15,14,16,15,18,16, |
15,16,16,18,13,14,14,16,16,14,15,15,17,17,14,15, |
15,17,16,16,17,17,18,18,16,17,16,18,17,10,11,11, |
14,13,11,12,12,14,14,11,13,12,15,14,13,14,14,15, |
16,13,14,14,16,16,11,12,12,14,14,12,13,13,14,15, |
12,13,13,15,15,14,14,15,15,16,14,15,15,17,16,11, |
12,12,14,14,13,13,13,15,15,12,13,13,15,14,14,15, |
15,16,17,14,15,14,17,15,13,14,13,16,15,14,14,14, |
15,16,14,15,14,16,16,15,15,16,16,17,16,16,16,18, |
17,14,14,14,16,16,15,15,15,17,16,14,15,14,17,16, |
16,16,17,17,18,16,17,16,18,16,11,13,13,15,15,12, |
13,14,15,16,12,14,14,15,15,14,15,15,16,17,14,15, |
15,17,17,12,13,14,14,16,13,14,14,14,16,14,14,14, |
15,16,15,15,16,15,18,15,16,16,17,17,13,14,14,16, |
16,14,14,15,16,16,14,15,14,16,16,15,16,16,17,18, |
15,16,16,18,17,14,14,16,13,17,15,15,16,14,18,15, |
15,16,14,18,16,16,18,15,19,17,17,18,16,18,15,16, |
15,17,17,15,16,17,18,18,16,16,16,18,17,17,18,18, |
19,19,17,18,17,19,18,11,12,12,15,14,13,13,14,15, |
16,13,14,13,16,14,15,15,15,16,17,15,16,15,17,16, |
12,13,13,15,14,13,13,14,15,15,14,15,14,16,15,15, |
15,16,16,17,16,16,16,18,17,12,13,13,15,15,14,14, |
15,16,16,13,14,13,16,15,16,16,16,17,18,15,16,15, |
17,16,14,15,14,17,15,14,15,15,16,16,15,16,15,17, |
16,16,15,16,15,17,17,18,17,18,17,15,15,15,16,17, |
16,16,16,17,17,15,16,15,17,16,17,18,18,18,18,16, |
17,16,18,15, 8,11,11,13,13,11,12,12,14,14,10,12, |
12,14,14,13,14,14,15,16,13,14,13,16,15,11,12,12, |
14,14,12,12,13,14,15,12,13,13,15,15,14,14,15,15, |
16,14,14,14,16,16,10,11,11,14,14,11,12,12,14,15, |
11,12,12,15,14,13,14,14,16,16,13,14,14,16,15,13, |
14,14,15,16,14,14,15,16,16,14,15,15,16,16,15,16, |
16,16,18,16,16,16,17,17,12,13,13,15,15,13,14,14, |
16,16,12,14,13,16,15,15,16,15,17,17,14,16,15,17, |
16,10,11,11,13,14,11,12,13,14,15,11,13,12,14,14, |
14,14,15,16,16,13,14,14,16,16,11,12,12,14,14,12, |
13,13,14,15,13,14,13,15,15,14,15,15,16,17,14,15, |
15,17,16,11,12,12,14,14,12,13,13,15,15,12,13,12, |
15,14,14,15,15,16,17,14,15,15,16,16,14,14,14,16, |
16,14,14,15,16,16,15,15,15,16,16,16,16,17,16,18, |
16,17,17,18,18,13,13,14,15,16,14,14,15,16,17,13, |
14,14,16,16,16,16,17,17,18,15,16,15,17,16,10,11, |
11,14,13,11,12,12,14,14,11,12,12,15,14,13,14,14, |
16,16,13,14,14,16,16,11,12,12,14,14,12,13,13,15, |
15,12,13,13,15,15,14,15,15,16,17,14,15,15,17,16, |
11,12,11,14,14,12,13,13,15,15,12,13,12,15,14,14, |
15,14,16,16,14,15,14,17,16,14,14,14,16,16,14,15, |
15,16,17,14,15,15,17,17,16,16,17,17,18,16,17,17, |
18,18,13,14,12,16,14,14,15,13,17,15,13,15,13,17, |
14,16,16,15,18,16,15,17,14,18,15,11,12,12,14,15, |
13,13,14,14,16,13,14,13,15,14,15,15,16,16,17,15, |
16,15,17,16,12,13,13,15,15,13,13,14,15,16,14,15, |
14,16,16,15,15,16,15,18,16,16,16,18,17,12,13,13, |
15,15,14,14,15,15,16,13,14,13,15,15,16,16,16,16, |
18,15,16,15,17,16,15,15,15,17,16,15,15,16,16,17, |
16,16,16,18,17,16,16,17,15,18,17,18,17,19,18,14, |
14,15,15,17,15,15,16,16,17,14,15,15,16,16,17,17, |
18,17,19,16,17,15,17,15,11,13,12,15,15,12,14,14, |
15,15,12,14,13,16,15,15,15,15,17,17,14,15,15,17, |
16,12,14,14,16,16,14,14,15,16,16,14,14,14,16,16, |
15,16,17,17,18,15,16,16,18,17,12,14,13,16,14,13, |
14,14,16,15,13,15,14,16,14,15,16,16,17,17,15,16, |
15,18,15,15,15,16,17,17,15,16,16,17,18,16,16,16, |
18,18,17,17,18,18,19,17,17,18,19,19,14,15,14,17, |
13,15,16,15,18,14,15,16,15,18,14,17,18,17,18,16, |
16,18,16,19,15, |
}; |
static const static_codebook _44p8_p2_0 = { |
5, 3125, |
(char *)_vq_lengthlist__44p8_p2_0, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44p8_p2_0, |
0 |
}; |
static const long _vq_quantlist__44p8_p3_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p8_p3_0[] = { |
2, 5, 5, 5, 7, 7, 5, 7, 7, 5, 7, 7, 7, 8, 9, 7, |
9, 9, 5, 7, 7, 7, 9, 9, 7, 9, 8, 5, 7, 8, 7, 9, |
10, 8, 9, 9, 8, 9,10, 9,10,12,10,11,11, 8,10, 9, |
10,11,12, 9,11,10, 5, 8, 7, 8,10, 9, 7,10, 9, 8, |
9,10, 9,10,11,10,12,11, 8,10, 9,10,11,11, 9,12, |
10, 5, 8, 8, 7, 9,10, 8,10, 9, 7, 9,10, 9,10,11, |
9,11,11, 8,10, 9,10,11,11,10,12,10, 7, 9,10, 9, |
10,12, 9,11,11, 9, 9,12,11,10,13,11,11,13,10,12, |
11,11,13,13,11,13,12, 7, 9, 9, 9,11,11, 9,12,11, |
9,11,10,10,11,12,11,13,12, 9,11,11,12,13,13,11, |
13,11, 5, 8, 8, 8, 9,10, 7,10, 9, 8, 9,10,10,10, |
12,10,11,11, 7,10, 9, 9,11,11, 9,11,10, 7, 9, 9, |
9,11,12, 9,11,11, 9,11,11,11,11,13,12,13,13, 9, |
10,11,11,12,13,10,12,11, 7,10, 9, 9,11,11, 9,12, |
10,10,11,12,11,12,13,12,13,13, 9,12, 9,11,13,11, |
10,13,10, |
}; |
static const static_codebook _44p8_p3_0 = { |
5, 243, |
(char *)_vq_lengthlist__44p8_p3_0, |
1, -533200896, 1614282752, 2, 0, |
(long *)_vq_quantlist__44p8_p3_0, |
0 |
}; |
static const long _vq_quantlist__44p8_p3_1[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p8_p3_1[] = { |
6, 7, 7, 7, 7, 8, 7, 8, 7, 7, 7, 8, 7, 8, 8, 8, |
8, 8, 7, 8, 7, 7, 8, 8, 7, 8, 8, 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, 8, 8, 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, 8, |
8, 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, 8, 8, 7, 8, 8, 8, |
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 8, 8, 9, 8, 8, |
8, 8, 9, 9, 8, 9, 9, 7, 8, 8, 8, 8, 8, 8, 8, 8, |
8, 8, 8, 8, 8, 8, 8, 9, 8, 8, 8, 8, 8, 9, 9, 8, |
9, 8, 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, 8, 8, 7, 8, 8, |
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 8, 9, 9, 8, |
8, 8, 8, 8, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, |
8, 8, 8, 8, 8, 9, 9, 8, 9, 9, 8, 8, 8, 8, 9, 8, |
8, 9, 8, |
}; |
static const static_codebook _44p8_p3_1 = { |
5, 243, |
(char *)_vq_lengthlist__44p8_p3_1, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__44p8_p3_1, |
0 |
}; |
static const long _vq_quantlist__44p8_p4_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p8_p4_0[] = { |
2, 5, 5, 4, 7, 8, 4, 8, 7, 5, 7, 8, 7, 7,10, 8, |
9, 9, 5, 7, 7, 8, 9, 9, 7,10, 7, 5, 7, 8, 8, 9, |
11, 8,10,10, 8, 9,10,10,10,12,11,12,12, 8,10,10, |
10,12,12,10,12,11, 5, 8, 7, 8,10,10, 8,11, 9, 8, |
10,10,10,11,12,10,12,12, 8,10, 9,11,12,12,10,12, |
10, 5, 8, 8, 7,10,10, 8,11,10, 7, 9,10, 9,10,12, |
10,12,12, 8,10,10,10,12,12,10,12,11, 7, 9,10, 9, |
11,12,10,12,11, 9, 9,12,10,10,13,12,12,13,10,12, |
11,12,13,13,11,13,11, 7,10, 9,10,11,12,10,13,11, |
9,11,11,11,11,13,12,14,13,10,11,11,12,14,14,11, |
14,11, 5, 8, 8, 8,10,11, 7,10,10, 8,10,10,10,11, |
12,10,12,12, 7,10, 9,10,12,12, 9,12,10, 7, 9,10, |
10,11,13,10,12,11,10,11,11,11,11,14,12,14,14, 9, |
11,11,12,13,14,11,13,11, 7,10, 9,10,11,12, 9,12, |
10,10,11,12,11,11,13,12,13,13, 9,12, 9,12,13,12, |
10,13,10, |
}; |
static const static_codebook _44p8_p4_0 = { |
5, 243, |
(char *)_vq_lengthlist__44p8_p4_0, |
1, -531365888, 1616117760, 2, 0, |
(long *)_vq_quantlist__44p8_p4_0, |
0 |
}; |
static const long _vq_quantlist__44p8_p4_1[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44p8_p4_1[] = { |
7, 9, 9,10,10, 9,10,10,10,11, 9,10,10,11,10, 9, |
10,10,11,11, 9,10,10,11,11, 9,10,10,11,11,10,10, |
10,11,11,10,10,10,11,11,10,11,11,11,11,10,11,11, |
11,11, 9,10,10,11,11,10,10,10,11,11, 9,10,10,11, |
11,10,11,11,11,11,10,11,11,11,11,10,11,11,11,11, |
10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, |
11,11,11,12,10,11,11,11,11,11,11,11,11,11,10,11, |
11,11,11,11,11,11,11,11,11,11,11,11,11, 9,10,10, |
11,11,10,10,11,11,11,10,10,11,11,11,10,11,11,11, |
12,10,11,11,12,12,10,10,11,11,11,10,11,11,11,12, |
11,11,11,12,12,11,11,12,12,12,11,11,12,12,12,10, |
11,11,11,11,11,11,11,12,12,10,11,11,12,12,11,12, |
11,12,12,11,12,11,12,12,11,11,11,11,12,11,11,12, |
12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12, |
12,11,11,11,12,12,11,12,12,12,12,11,12,11,12,12, |
12,12,12,12,12,12,12,12,12,12, 9,10,10,11,11,10, |
11,10,11,11,10,11,10,11,11,10,11,11,12,12,10,11, |
11,12,11,10,11,11,11,11,10,11,11,11,12,11,11,11, |
12,12,11,11,12,12,12,11,11,11,12,12,10,11,10,11, |
11,11,11,11,12,12,10,11,11,12,11,11,12,11,12,12, |
11,12,11,12,12,11,11,11,12,12,11,11,12,12,12,11, |
12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11, |
11,12,11,11,12,12,12,12,11,12,11,12,12,12,12,12, |
12,12,12,12,12,12,12,10,11,11,11,11,11,11,11,12, |
12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12, |
11,11,11,12,12,11,11,12,12,12,11,12,12,12,12,12, |
12,12,12,12,12,12,12,12,12,11,11,11,12,12,11,12, |
12,12,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,12,12,12,12, |
12,12,12,13,12,13,12,12,12,12,13,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,10,11,11,11,11,11,11,11,12,12,11,11, |
11,12,12,11,12,12,12,12,11,12,12,12,12,11,11,11, |
12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12, |
12,12,12,12,12,12,11,11,11,12,12,11,12,12,12,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,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,12,12,13,12,13, |
12, 9,10,10,11,11,10,10,11,11,11,10,11,10,11,11, |
10,11,11,12,12,10,11,11,12,12,10,10,11,11,11,10, |
11,11,11,12,10,11,11,12,12,11,11,12,12,12,11,11, |
11,12,12,10,11,10,11,11,11,11,11,12,12,10,11,11, |
12,11,11,12,11,12,12,11,12,11,12,12,11,11,11,11, |
12,11,11,12,12,12,11,12,12,12,12,11,12,12,12,12, |
11,12,12,12,12,11,11,11,12,11,11,12,12,12,12,11, |
12,11,12,12,12,12,12,12,12,12,12,12,12,12,10,10, |
11,11,11,10,11,11,12,12,10,11,11,12,12,11,11,11, |
12,12,11,11,12,12,12,10,11,11,11,12,11,11,12,12, |
12,11,11,12,12,12,11,11,12,12,12,11,12,12,12,12, |
11,11,11,12,12,11,12,12,12,12,11,12,11,12,12,11, |
12,12,12,12,11,12,12,12,12,11,11,12,12,12,11,12, |
12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, |
12,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, 9,10,10,11,11, |
10,11,11,11,12,10,11,11,12,11,11,12,11,12,12,11, |
12,11,12,12,10,11,11,12,11,11,11,11,12,12,11,12, |
11,12,12,11,12,12,12,12,11,12,12,12,12,10,11,11, |
12,12,11,12,11,12,12,11,12,11,12,12,12,12,12,12, |
12,11,12,12,12,12,11,12,11,12,12,11,12,12,12,12, |
12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11, |
12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12, |
12,12,12,12,12,12,12,12,11,11,11,12,12,11,12,12, |
12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12, |
12,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12, |
12,12,12,12,13,12,12,12,12,12,11,12,12,12,12,12, |
12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,12, |
12,13,13,12,12,12,12,12,12,12,12,12,13,12,12,12, |
12,13,12,12,13,12,13,12,13,13,13,13,12,12,12,12, |
12,12,12,12,13,12,12,12,12,13,12,12,13,13,13,13, |
12,13,13,13,13,10,11,11,12,12,11,12,12,12,12,11, |
12,12,12,12,12,12,12,12,12,12,12,12,12,12,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,11,12,12,12,12,12,12,12,12, |
12,12,12,12,13,12,12,12,12,13,13,12,12,12,13,12, |
12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12, |
13,13,12,13,12,13,13,13,13,12,12,12,12,12,12,12, |
12,13,12,12,12,12,13,12,12,13,13,13,13,12,13,13, |
13,13, 9,10,10,11,11,10,10,11,11,11,10,11,10,11, |
11,10,11,11,12,12,10,11,11,12,12,10,11,11,11,11, |
10,11,11,12,12,11,11,11,12,12,11,11,12,12,12,11, |
11,12,12,12,10,11,10,11,11,10,11,11,12,12,10,11, |
11,12,11,11,12,11,12,12,11,11,11,12,12,11,11,11, |
11,12,11,11,12,12,12,11,12,12,12,12,12,12,12,12, |
12,12,12,12,12,12,11,11,11,12,11,11,12,12,12,12, |
11,12,11,12,12,12,12,12,12,12,11,12,12,12,12, 9, |
10,10,11,11,10,11,11,11,12,10,11,11,12,11,11,11, |
12,12,12,11,11,12,12,12,10,11,11,12,12,11,11,12, |
12,12,11,11,12,12,12,12,12,12,12,12,12,12,12,12, |
12,10,11,11,12,12,11,11,11,12,12,11,11,11,12,12, |
11,12,12,12,12,11,12,12,12,12,11,12,12,12,12,11, |
12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, |
12,12,12,11,11,12,12,12,12,12,12,12,12,11,12,12, |
12,12,12,12,12,12,12,12,12,12,12,12,10,11,10,11, |
11,10,11,11,12,12,10,11,11,12,12,11,11,11,12,12, |
11,12,11,12,12,11,11,11,12,12,11,11,12,12,12,11, |
11,12,12,12,11,12,12,12,12,11,12,12,12,12,10,11, |
11,12,11,11,12,11,12,12,11,12,11,12,12,11,12,12, |
12,12,11,12,11,12,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, |
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,11,11,11,12,12,11,11, |
12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12, |
12,12,11,12,12,12,12,12,12,12,12,13,12,12,12,12, |
12,12,12,12,13,13,12,12,12,13,13,11,12,12,12,12, |
12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12, |
12,12,12,12,12,12,12,12,12,12,12,13,12,13,12,12, |
12,13,13,12,13,13,12,13,12,13,13,13,13,12,12,12, |
12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,13, |
13,12,13,12,13,12,11,11,11,12,12,11,12,12,12,12, |
11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11, |
12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, |
12,13,13,12,12,12,13,13,11,12,11,12,12,12,12,12, |
12,12,12,12,12,12,12,12,12,12,13,12,12,12,12,13, |
12,12,12,12,12,12,12,12,12,13,13,12,12,12,12,13, |
12,13,13,13,13,12,13,13,13,13,12,12,12,12,12,12, |
12,12,13,12,12,12,12,13,12,12,13,13,13,13,12,13, |
13,13,12,10,11,11,12,12,11,11,11,12,12,11,11,11, |
12,12,11,12,12,12,12,11,12,12,12,12,11,11,11,12, |
12,11,11,12,12,12,11,12,12,12,12,11,12,12,12,12, |
12,12,12,12,12,11,11,11,12,12,11,12,12,12,12,11, |
12,11,12,12,12,12,12,12,12,12,12,12,12,12,11,12, |
12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12, |
12,13,12,12,12,12,12,11,12,12,12,12,12,12,12,12, |
12,12,12,12,12,12,12,12,12,13,12,12,12,12,12,12, |
11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12, |
12,12,12,12,11,12,12,12,12,11,11,12,12,12,11,12, |
12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12, |
13,13,11,12,12,12,12,12,12,12,12,12,12,12,12,12, |
12,12,12,12,13,13,12,12,12,13,13,12,12,12,12,12, |
12,12,12,12,13,12,12,12,12,13,12,12,13,12,13,12, |
12,13,13,13,12,12,12,12,12,12,12,12,12,13,12,12, |
12,13,12,12,13,13,13,13,12,13,13,13,13,10,11,11, |
12,12,11,12,12,12,12,11,12,12,12,12,11,12,12,12, |
12,12,12,12,12,12,11,11,12,12,12,11,12,12,12,12, |
12,12,12,12,12,12,12,12,12,13,12,12,12,13,13,11, |
12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12, |
12,13,13,12,12,12,13,12,12,12,12,12,12,12,12,12, |
12,12,12,12,12,13,12,12,12,12,12,13,12,13,12,13, |
13,12,12,12,12,12,12,12,12,13,12,12,12,12,13,12, |
12,13,12,13,13,12,13,12,13,12,11,11,11,12,12,11, |
12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12, |
12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12, |
12,12,12,12,13,12,13,12,12,13,13,13,11,12,12,12, |
12,12,12,12,12,12,12,12,12,13,12,12,12,12,13,13, |
12,12,12,13,12,12,12,12,12,12,12,12,13,12,13,12, |
12,12,12,13,12,12,13,12,13,12,13,13,12,13,12,12, |
12,12,12,12,13,13,13,12,12,12,12,13,12,12,13,13, |
13,13,12,13,13,13,12,11,11,11,12,12,11,12,12,12, |
12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12, |
11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, |
12,12,12,13,12,12,13,13,13,11,12,12,12,12,12,12, |
12,12,13,12,12,12,13,12,12,13,12,13,13,12,13,12, |
13,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,12,12,12,12,12,12, |
12,13,12,13,12,12,12,12,13,12,12,13,13,13,12,12, |
13,12,13,12,10,11,11,12,12,11,11,11,12,12,11,11, |
11,12,12,11,12,12,12,12,11,12,12,12,12,11,11,11, |
12,12,11,11,12,12,12,11,12,12,12,12,12,12,12,12, |
12,12,12,12,12,12,11,11,11,12,12,11,12,12,12,12, |
11,12,11,12,12,12,12,12,12,12,11,12,12,12,12,11, |
12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, |
12,12,13,12,12,12,12,12,11,12,12,12,12,12,12,12, |
12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12, |
12,10,11,11,12,12,11,11,12,12,12,11,12,12,12,12, |
11,12,12,12,12,12,12,12,12,12,11,11,12,12,12,12, |
12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12, |
12,13,13,11,11,11,12,12,12,12,12,12,12,11,12,12, |
12,12,12,12,12,13,13,12,12,12,13,13,12,12,12,12, |
12,12,12,12,12,13,12,12,12,12,13,12,12,13,12,13, |
12,12,13,13,13,12,12,12,12,12,12,12,12,12,13,12, |
12,12,12,12,12,12,13,13,13,12,12,12,13,12,11,11, |
11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12, |
12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12, |
12,12,12,12,12,12,12,12,12,13,13,12,12,12,13,13, |
11,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12, |
12,12,13,13,12,12,12,13,12,12,12,12,12,12,12,12, |
12,12,13,12,12,12,13,13,12,13,13,13,13,12,13,13, |
13,13,12,12,12,12,12,12,12,12,13,12,12,12,12,13, |
12,12,13,12,13,13,12,13,12,13,12,11,11,11,12,12, |
11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12, |
12,12,12,12,11,12,12,12,12,12,12,12,12,13,12,12, |
12,13,13,12,12,13,12,13,12,12,13,13,13,11,12,12, |
12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13, |
13,12,12,12,13,12,12,12,12,12,12,12,12,12,12,13, |
12,12,12,13,13,12,12,13,12,13,12,13,13,13,13,12, |
12,12,12,12,12,12,13,12,13,12,12,12,12,12,12,13, |
13,12,12,12,13,12,12,12,11,11,11,12,12,11,12,12, |
12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12, |
12,11,12,12,12,12,12,12,12,12,13,12,12,12,12,13, |
12,12,13,13,13,12,12,12,13,13,11,12,12,12,12,12, |
12,12,12,12,12,12,12,12,12,12,13,12,13,13,12,13, |
12,13,12,12,12,12,12,12,12,12,12,12,13,12,13,12, |
13,13,12,13,13,12,13,12,13,13,13,13,12,12,12,12, |
12,12,12,12,13,12,12,13,12,13,12,12,13,12,13,12, |
12,13,12,13,12, |
}; |
static const static_codebook _44p8_p4_1 = { |
5, 3125, |
(char *)_vq_lengthlist__44p8_p4_1, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44p8_p4_1, |
0 |
}; |
static const long _vq_quantlist__44p8_p5_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44p8_p5_0[] = { |
2, 6, 6, 9, 9, 5, 7, 8,10,11, 5, 8, 7,11,10, 8, |
10,11,12,13, 8,11,10,13,12, 6, 7, 8,10,11, 7, 8, |
10,10,12, 8, 9, 9,12,12,10,10,12,12,14,10,12,12, |
14,13, 6, 8, 7,11,10, 8, 9, 9,12,12, 7,10, 8,12, |
11,10,12,12,13,14,10,12,10,14,12, 9,10,11,11,13, |
10,10,11,11,13,11,12,12,13,14,12,12,13,11,15,13, |
14,14,15,14, 9,11,10,13,11,11,12,12,13,13,10,11, |
10,13,11,13,14,14,15,15,12,13,12,15,11, 6, 8, 9, |
11,12, 8, 9,11,12,13, 8,10,10,13,13,11,12,13,14, |
15,11,12,13,14,14, 9, 9,10,12,13,10,10,12,12,14, |
10,11,11,13,14,12,12,14,14,15,13,13,14,15,15, 9, |
10,10,13,13,10,11,11,13,14,10,11,10,14,13,13,13, |
14,15,15,12,14,13,15,14,12,12,13,13,14,12,13,14, |
13,15,13,14,14,15,15,14,14,15,14,16,15,15,15,16, |
16,12,13,13,14,14,13,14,14,15,15,12,14,13,15,14, |
14,15,15,16,16,14,15,14,16,14, 6, 9, 8,12,11, 8, |
10,10,13,13, 8,11, 9,13,12,11,12,12,14,14,11,13, |
12,15,14, 9,10,10,13,13,10,10,11,13,14,10,12,11, |
14,13,12,13,14,14,15,13,13,13,15,14, 9,10, 9,13, |
12,10,11,11,14,13,10,12,10,14,12,13,14,13,15,15, |
12,14,12,15,14,12,13,13,14,14,13,13,13,14,15,13, |
14,14,15,15,14,14,15,14,16,14,15,15,16,16,12,13, |
12,14,13,13,14,14,15,15,12,14,13,15,13,15,15,15, |
16,16,14,15,14,16,14,11,12,12,13,14,12,13,14,14, |
16,12,13,13,15,15,14,14,16,15,17,14,15,15,16,16, |
12,13,14,14,15,13,13,15,15,16,14,14,14,15,16,15, |
15,16,16,17,15,15,16,16,17,13,13,13,15,15,14,14, |
15,15,16,13,14,14,15,16,15,15,16,16,17,15,16,15, |
17,16,14,15,15,16,16,15,15,16,16,17,15,16,16,17, |
17,16,16,17,16,18,16,17,17,17,17,15,15,15,16,16, |
15,16,16,17,17,15,16,16,17,16,16,17,17,18,18,16, |
17,16,17,16,11,12,12,15,13,13,13,13,15,15,12,14, |
13,16,14,14,15,15,16,16,14,15,14,17,15,13,13,13, |
15,14,13,14,14,16,15,14,14,14,16,15,15,15,16,16, |
17,15,16,15,17,16,12,14,13,15,14,14,14,14,16,15, |
13,14,13,16,15,15,16,16,17,16,15,16,15,17,16,15, |
15,15,16,16,15,15,16,16,17,15,16,16,17,17,16,16, |
17,17,17,17,17,17,18,17,14,15,15,16,16,15,16,16, |
17,16,15,16,15,17,16,17,17,17,18,17,16,17,16,18, |
16, 6, 9, 9,12,12, 8,10,10,12,13, 8,10,10,13,12, |
10,12,12,14,15,11,13,12,15,14, 8, 9,10,12,13, 9, |
10,11,13,14,10,11,11,14,13,12,12,13,14,15,12,13, |
13,15,15, 8,10,10,13,13,10,11,11,13,14,10,12,10, |
14,13,12,13,13,15,15,12,14,13,15,14,11,12,12,13, |
14,12,12,13,13,15,12,13,13,15,15,14,13,15,14,16, |
14,15,15,16,16,12,13,13,14,14,13,13,14,15,14,12, |
14,13,15,14,14,15,15,16,15,14,15,14,16,14, 7, 9, |
10,12,12, 9,10,11,13,14, 9,11,10,13,13,11,12,13, |
14,15,12,13,13,15,14, 9,10,11,12,13,10,10,12,13, |
14,11,11,12,14,14,12,12,14,14,15,13,13,14,15,15, |
9,11,11,13,13,11,12,12,14,14,10,12,10,14,13,13, |
14,14,15,15,13,14,13,16,14,12,12,13,14,15,13,13, |
14,14,16,13,14,14,15,15,14,14,15,14,17,14,15,15, |
16,16,12,13,13,15,14,13,14,14,15,15,13,14,13,16, |
14,15,15,15,16,16,14,15,14,16,14, 7,10, 9,13,12, |
10,11,12,12,14,10,12,11,14,12,12,13,13,14,15,12, |
14,13,15,14, 9,11,10,13,13,10,11,12,13,14,12,13, |
12,15,13,13,13,14,13,15,13,14,14,16,15,10,11,11, |
13,13,12,12,13,14,14,11,12,11,14,13,14,14,14,15, |
16,13,14,13,16,13,12,13,13,14,14,12,13,13,14,15, |
14,14,14,15,15,14,13,15,13,16,15,15,15,17,16,13, |
13,13,14,14,14,14,14,15,15,12,13,13,15,14,15,16, |
16,16,16,14,15,14,16,13,11,12,13,14,15,12,13,14, |
15,16,13,14,14,15,15,14,14,15,15,17,14,15,15,16, |
16,13,13,14,14,15,13,13,15,14,16,14,14,15,15,16, |
15,14,16,15,17,15,16,16,16,17,13,14,14,15,15,14, |
14,15,16,16,13,15,14,16,16,15,16,16,17,17,15,16, |
15,17,16,14,15,15,15,17,15,15,16,15,17,15,16,16, |
16,17,16,16,17,16,18,17,17,17,17,18,15,15,15,17, |
16,15,16,16,17,17,15,16,16,17,16,16,17,17,18,18, |
16,17,16,18,17,11,13,12,15,14,13,13,14,15,15,13, |
14,13,16,14,15,15,15,16,16,15,16,15,17,16,13,14, |
13,15,14,13,13,14,15,15,14,15,14,16,15,15,15,16, |
16,16,15,16,15,18,16,13,14,14,15,15,14,15,15,15, |
16,13,15,13,16,15,15,16,16,17,17,15,16,15,17,16, |
15,15,15,16,16,15,15,15,16,17,16,16,16,17,16,16, |
16,17,16,17,17,17,17,18,17,15,15,15,16,16,16,16, |
16,17,17,15,16,15,17,16,17,17,17,18,18,16,17,16, |
17,15, 6, 9, 9,12,12, 8,10,10,12,13, 8,10,10,13, |
12,11,12,13,14,15,10,12,12,14,14, 9,10,10,13,13, |
10,10,12,13,14,10,11,11,14,13,12,13,14,14,15,12, |
13,13,15,15, 8,10, 9,13,12,10,11,11,13,14, 9,11, |
10,14,13,12,13,13,15,15,12,13,12,15,14,12,13,13, |
14,14,12,13,13,14,15,13,14,14,14,15,14,14,15,14, |
16,14,15,15,16,16,11,12,12,14,13,13,13,13,15,15, |
12,13,12,15,13,14,15,15,16,16,14,15,14,16,14, 7, |
9,10,12,13,10,10,12,12,14,10,12,11,14,13,12,13, |
14,14,15,12,13,13,15,14,10,11,11,13,13,11,11,12, |
13,14,12,13,12,14,14,13,13,14,13,16,14,14,14,15, |
15, 9,10,11,13,14,12,12,13,13,15,10,12,10,14,13, |
13,14,14,15,16,13,14,13,15,13,13,14,13,14,15,12, |
13,13,14,15,14,14,14,15,15,14,13,15,13,16,15,16, |
16,16,16,12,13,13,14,14,14,14,14,15,15,12,13,13, |
15,14,15,15,16,16,16,14,15,13,16,13, 7,10, 9,12, |
12, 9,10,11,13,13, 9,11,10,14,13,12,13,13,14,15, |
11,13,12,15,14, 9,11,11,13,13,10,10,12,13,14,11, |
12,12,14,14,13,13,14,14,16,13,14,14,16,15, 9,11, |
10,13,12,11,12,11,14,14,10,12,10,14,13,13,14,13, |
15,15,12,14,12,16,14,12,13,13,14,15,13,13,14,14, |
16,13,14,14,15,15,14,14,15,14,16,15,15,15,16,16, |
12,13,12,15,14,13,14,14,15,15,12,14,13,16,14,14, |
15,15,16,16,14,15,14,17,14,11,12,13,14,15,13,13, |
14,14,16,13,14,13,15,15,15,15,16,16,17,15,15,15, |
16,16,13,14,13,15,15,13,13,15,15,16,14,15,15,16, |
16,15,15,16,15,17,16,16,16,17,17,13,13,14,14,15, |
14,14,15,15,16,13,14,13,15,15,15,16,16,16,17,15, |
16,15,16,16,15,15,15,16,16,15,15,16,16,17,16,16, |
16,17,17,16,16,17,16,18,17,17,17,18,18,15,15,15, |
16,16,16,16,16,17,17,15,15,15,16,16,17,17,17,17, |
18,16,16,16,17,15,11,13,12,15,14,13,13,14,15,15, |
12,14,13,16,14,14,15,15,16,16,14,15,14,16,15,13, |
14,14,15,15,13,14,14,16,16,14,15,14,16,16,15,15, |
16,17,17,15,16,16,17,17,13,14,13,15,14,14,14,14, |
16,15,13,15,13,16,14,15,16,15,17,16,15,16,14,17, |
15,14,16,15,16,17,15,16,16,16,17,15,16,16,17,17, |
16,16,17,17,18,16,17,17,18,17,14,15,15,17,15,15, |
16,16,17,16,15,16,15,17,15,16,17,17,18,17,16,17, |
16,18,15,10,12,12,14,14,12,13,13,15,15,12,13,13, |
15,15,13,14,14,15,16,14,15,14,16,16,12,13,13,15, |
15,12,13,14,15,15,13,14,14,15,15,14,14,15,16,17, |
14,15,15,17,16,12,13,13,15,15,13,14,14,15,16,13, |
14,14,16,15,14,15,15,16,17,14,15,15,17,16,13,14, |
14,15,16,14,14,15,15,16,14,15,15,16,16,15,15,16, |
16,17,15,16,16,17,17,14,15,15,16,16,15,15,15,16, |
16,15,15,15,16,16,16,17,16,17,17,16,16,16,18,16, |
11,12,12,14,14,12,13,14,15,15,12,13,13,15,15,13, |
14,15,16,16,14,15,15,16,16,12,13,13,15,15,13,13, |
14,15,16,13,14,14,15,16,14,14,15,16,17,15,15,15, |
16,17,12,13,13,15,15,13,14,14,15,16,13,14,14,16, |
15,15,15,15,16,17,15,16,15,17,16,14,14,15,15,16, |
14,14,15,15,17,15,15,16,16,17,15,15,16,15,18,16, |
16,16,17,17,14,15,15,16,16,15,16,16,17,17,15,15, |
15,17,16,16,17,16,17,17,16,16,16,18,16,11,12,12, |
14,14,13,13,14,15,15,13,14,13,15,15,14,15,15,16, |
16,14,15,15,16,16,12,13,13,15,15,13,13,14,15,15, |
14,14,14,16,15,15,15,15,15,16,15,16,15,17,16,12, |
13,13,15,15,14,14,15,15,16,13,14,13,16,15,15,15, |
16,16,17,15,16,15,17,15,14,15,14,16,16,14,15,15, |
16,16,15,16,15,17,16,15,15,16,15,17,16,17,16,17, |
17,14,15,15,16,16,15,16,16,16,17,14,15,15,16,16, |
16,17,17,17,18,16,16,16,17,16,12,13,13,15,15,13, |
13,14,15,16,13,14,14,16,15,14,15,15,16,17,14,15, |
15,17,16,13,14,14,15,16,14,14,15,15,17,14,15,15, |
16,16,15,14,16,15,17,15,16,16,17,17,13,14,14,16, |
16,14,15,15,16,16,14,15,14,16,16,15,16,16,17,17, |
15,16,15,17,16,15,15,16,15,17,15,15,16,15,17,15, |
16,16,16,17,16,15,17,15,18,17,17,17,17,17,15,15, |
15,17,17,16,16,16,17,17,15,16,15,17,17,16,17,17, |
18,18,16,17,15,18,15,11,12,12,15,15,13,13,15,14, |
16,13,14,13,16,14,15,15,16,16,17,15,16,15,17,15, |
12,14,13,16,14,13,13,14,14,16,14,15,14,16,15,15, |
15,16,15,17,16,16,16,17,16,12,13,14,15,16,15,15, |
15,15,16,13,15,13,16,14,16,16,16,17,17,15,16,15, |
17,15,15,16,15,16,15,14,14,15,16,16,16,16,16,17, |
16,15,15,16,15,17,17,17,17,18,17,15,15,15,16,16, |
16,16,16,16,17,14,15,15,17,16,17,17,17,17,18,15, |
16,15,18,14,10,12,12,14,14,12,13,13,15,15,12,13, |
13,15,15,14,14,15,15,16,13,15,14,16,16,12,13,13, |
15,15,13,14,14,15,16,13,14,14,15,15,14,15,15,16, |
17,14,15,15,17,16,12,13,13,15,15,13,14,14,15,15, |
12,14,13,15,15,14,15,15,16,17,14,15,14,17,15,14, |
15,15,16,16,14,15,15,16,17,15,15,15,17,16,16,16, |
16,16,17,16,16,16,17,17,13,14,14,16,15,14,15,15, |
16,16,14,15,14,16,16,15,16,16,17,17,15,16,15,17, |
16,11,12,12,14,15,13,13,14,14,15,13,14,13,15,15, |
14,15,15,16,16,14,15,15,16,16,12,14,13,15,15,13, |
13,14,15,16,14,15,14,16,15,15,15,16,15,17,15,16, |
16,17,16,12,13,13,15,15,14,14,15,15,16,13,14,13, |
16,15,15,15,16,16,17,15,15,15,16,16,14,15,15,16, |
16,14,15,15,16,16,15,16,16,17,17,16,16,16,16,17, |
16,17,17,18,17,14,14,15,15,16,15,15,16,16,17,14, |
15,15,16,16,16,16,16,17,17,15,16,15,17,15,11,12, |
12,14,14,12,13,14,15,15,12,13,13,15,15,14,15,15, |
16,16,13,15,14,16,16,12,13,13,15,15,13,14,14,15, |
16,13,14,14,16,16,15,15,15,16,17,15,15,15,17,16, |
12,13,13,15,15,13,14,14,16,15,13,14,13,16,15,15, |
16,15,17,17,14,15,14,17,16,14,15,15,16,16,15,15, |
16,16,17,15,16,16,17,17,16,16,16,16,18,16,17,16, |
18,17,14,15,14,16,15,15,15,15,17,16,14,15,14,17, |
15,16,17,16,17,17,15,16,15,17,15,11,12,12,15,15, |
13,13,15,14,16,13,15,13,16,14,15,15,16,15,17,15, |
16,15,17,16,12,14,13,15,15,13,13,15,15,16,15,15, |
15,16,15,15,15,16,15,17,16,16,16,17,16,12,13,14, |
15,16,14,14,15,15,16,13,14,13,16,14,16,16,16,16, |
17,15,16,15,17,15,15,16,15,16,16,14,15,15,16,16, |
16,16,16,17,16,15,15,16,15,17,17,17,17,18,17,15, |
15,15,15,16,16,16,16,16,17,14,15,14,16,15,17,17, |
17,17,18,15,16,15,17,15,12,13,13,15,15,13,14,14, |
15,16,13,14,14,16,15,14,15,15,16,17,14,15,15,17, |
16,13,14,14,16,15,13,14,15,16,16,14,15,15,16,16, |
15,15,16,16,17,15,16,16,17,17,13,14,13,16,15,14, |
15,15,16,16,13,15,14,16,15,15,16,16,17,17,15,16, |
14,17,15,15,15,16,17,17,15,15,16,16,17,16,16,16, |
17,17,16,15,17,16,18,17,17,17,18,18,15,15,15,17, |
14,16,16,16,17,16,15,16,15,17,15,16,17,17,18,17, |
16,17,15,18,15, |
}; |
static const static_codebook _44p8_p5_0 = { |
5, 3125, |
(char *)_vq_lengthlist__44p8_p5_0, |
1, -528744448, 1616642048, 3, 0, |
(long *)_vq_quantlist__44p8_p5_0, |
0 |
}; |
static const long _vq_quantlist__44p8_p5_1[] = { |
3, |
2, |
4, |
1, |
5, |
0, |
6, |
}; |
static const char _vq_lengthlist__44p8_p5_1[] = { |
2, 3, 3, 3, 3, 3, 3, |
}; |
static const static_codebook _44p8_p5_1 = { |
1, 7, |
(char *)_vq_lengthlist__44p8_p5_1, |
1, -533200896, 1611661312, 3, 0, |
(long *)_vq_quantlist__44p8_p5_1, |
0 |
}; |
static const long _vq_quantlist__44p8_p6_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p8_p6_0[] = { |
2, 6, 6, 5, 7, 7, 5, 7, 7, 5, 7, 7, 7, 7, 9, 7, |
9, 9, 6, 7, 7, 8, 9, 9, 7, 9, 7, 6, 8, 8, 8, 9, |
10, 8, 9, 9, 8, 9,10, 9, 9,10,10,10,10, 8, 9, 9, |
10,10,11, 9,10,10, 6, 8, 8, 8, 9, 9, 8,10, 9, 8, |
9, 9, 9,10,10,10,11,10, 8,10, 9,10,11,10, 9,11, |
9, 6, 8, 8, 7, 9, 9, 7, 9, 9, 7, 9, 9, 8, 9,10, |
9,10,10, 8, 9, 9, 9,10,10, 9,10, 9, 7, 9, 9, 9, |
9,10, 9,10,10, 9, 9,10,10, 9,11,10,11,11, 9,10, |
10,10,11,11,10,11,10, 6, 9, 8, 9, 9,10, 9,10, 9, |
8,10,10, 9, 9,10,10,11,11, 9,10,10,10,11,11, 9, |
11, 9, 6, 8, 8, 7, 9, 9, 7, 9, 9, 8, 9, 9, 9, 9, |
10, 9,10,10, 7, 9, 9, 9,10,10, 8,10, 9, 6, 8, 9, |
9, 9,10, 9,10, 9, 9,10,10, 9, 9,11,10,11,11, 8, |
9,10,10,11,11, 9,10, 9, 7, 9, 9, 9,10,10, 9,10, |
9, 9,10,10,10,10,11,10,11,11, 9,10, 9,10,11,11, |
10,11, 9, |
}; |
static const static_codebook _44p8_p6_0 = { |
5, 243, |
(char *)_vq_lengthlist__44p8_p6_0, |
1, -527106048, 1620377600, 2, 0, |
(long *)_vq_quantlist__44p8_p6_0, |
0 |
}; |
static const long _vq_quantlist__44p8_p6_1[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p8_p6_1[] = { |
4, 7, 7, 7, 7, 8, 7, 8, 7, 7, 7, 8, 7, 8, 8, 8, |
8, 8, 7, 8, 7, 8, 8, 8, 7, 8, 8, 7, 8, 8, 8, 8, |
8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 8, 8, 9, 8, 8, 8, |
8, 9, 8, 8, 8, 8, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, |
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 8, 8, 9, |
8, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, |
8, 8, 9, 8, 8, 8, 8, 9, 9, 8, 9, 8, 8, 8, 8, 8, |
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 8, 9, 9, 8, 8, |
8, 8, 9, 9, 8, 9, 9, 7, 8, 8, 8, 8, 8, 8, 8, 8, |
8, 8, 8, 8, 8, 9, 8, 9, 8, 8, 8, 8, 8, 9, 9, 8, |
9, 8, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, |
9, 8, 9, 9, 8, 8, 8, 8, 9, 8, 8, 9, 8, 7, 8, 8, |
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 8, 9, 9, 8, |
8, 8, 8, 9, 9, 8, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, |
8, 8, 8, 8, 8, 9, 9, 8, 9, 9, 8, 8, 8, 8, 9, 9, |
8, 9, 8, |
}; |
static const static_codebook _44p8_p6_1 = { |
5, 243, |
(char *)_vq_lengthlist__44p8_p6_1, |
1, -530841600, 1616642048, 2, 0, |
(long *)_vq_quantlist__44p8_p6_1, |
0 |
}; |
static const long _vq_quantlist__44p8_p7_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p8_p7_0[] = { |
1, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, |
}; |
static const static_codebook _44p8_p7_0 = { |
5, 243, |
(char *)_vq_lengthlist__44p8_p7_0, |
1, -512202240, 1635281408, 2, 0, |
(long *)_vq_quantlist__44p8_p7_0, |
0 |
}; |
static const long _vq_quantlist__44p8_p7_1[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44p8_p7_1[] = { |
1, 7, 7,12,12, 5,11,12,12,12, 5,12,11,12,12,12, |
12,12,12,12,12,13,13,13,13, 7,11,11,13,13,13,12, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13, 7,13,10,13,13,13,13,13,13,13,12,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13, 7,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,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, 8,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,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,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13, 8,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,10,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13, 8,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,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,11, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,11,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,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 const static_codebook _44p8_p7_1 = { |
5, 3125, |
(char *)_vq_lengthlist__44p8_p7_1, |
1, -514619392, 1630767104, 3, 0, |
(long *)_vq_quantlist__44p8_p7_1, |
0 |
}; |
static const long _vq_quantlist__44p8_p7_2[] = { |
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 const char _vq_lengthlist__44p8_p7_2[] = { |
1, 3, 2, 4, 5, 7, 7, 8, 8, 9, 9,10,10,11,11,12, |
12,13,13,14,14,15,15,15,15, |
}; |
static const static_codebook _44p8_p7_2 = { |
1, 25, |
(char *)_vq_lengthlist__44p8_p7_2, |
1, -518864896, 1620639744, 5, 0, |
(long *)_vq_quantlist__44p8_p7_2, |
0 |
}; |
static const long _vq_quantlist__44p8_p7_3[] = { |
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 const char _vq_lengthlist__44p8_p7_3[] = { |
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, |
}; |
static const static_codebook _44p8_p7_3 = { |
1, 25, |
(char *)_vq_lengthlist__44p8_p7_3, |
1, -529006592, 1611661312, 5, 0, |
(long *)_vq_quantlist__44p8_p7_3, |
0 |
}; |
static const char _huff_lengthlist__44p8_short[] = { |
3, 9,15,17,20,21,22,23, 5, 5, 7, 9,11,13,17,20, |
9, 5, 5, 6, 8,10,15,18,11, 7, 5, 4, 6, 9,13,17, |
14, 9, 7, 5, 6, 7,10,14,17,10, 8, 6, 6, 4, 5, 8, |
20,14,13,10, 8, 4, 3, 4,23,17,16,14,12, 6, 4, 4, |
}; |
static const static_codebook _huff_book__44p8_short = { |
2, 64, |
(char *)_huff_lengthlist__44p8_short, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const long _vq_quantlist__44p9_l0_0[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44p9_l0_0[] = { |
2, 5, 5, 7, 6, 8, 8, 9, 9,10,10,11,11, 4, 5, 5, |
6, 7, 8, 8, 9, 9,10,10,11,10, 4, 5, 5, 7, 6, 8, |
8, 9, 9,10,10,10,10, 6, 6, 7, 6, 7, 8, 8, 9, 9, |
10, 9,11, 9, 6, 6, 6, 7, 6, 8, 8, 9, 9, 9,10, 9, |
11, 7, 7, 8, 8, 8, 8, 9, 9, 9,10, 9,11, 9, 7, 8, |
8, 8, 8, 9, 8, 9, 9, 9,10, 9,11, 8, 9, 9, 9, 9, |
9, 9,10,10,11,10,12,10, 8, 9, 9, 9, 9, 9, 9,10, |
9,10,11,11,12, 9,10,10,10,10,10,10,10,11,11,11, |
11,12, 9,10,10,10,10,11,10,11,10,11,11,12,11,11, |
11,11,11,11,11,11,11,12,11,12,11,12,11,11,11,11, |
11,11,11,12,11,12,11,12,11, |
}; |
static const static_codebook _44p9_l0_0 = { |
2, 169, |
(char *)_vq_lengthlist__44p9_l0_0, |
1, -526516224, 1616117760, 4, 0, |
(long *)_vq_quantlist__44p9_l0_0, |
0 |
}; |
static const long _vq_quantlist__44p9_l0_1[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44p9_l0_1[] = { |
4, 4, 4, 5, 5, 4, 4, 5, 5, 5, 4, 5, 4, 5, 5, 5, |
5, 5, 5, 5, 5, 5, 5, 5, 5, |
}; |
static const static_codebook _44p9_l0_1 = { |
2, 25, |
(char *)_vq_lengthlist__44p9_l0_1, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44p9_l0_1, |
0 |
}; |
static const long _vq_quantlist__44p9_l1_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44p9_l1_0[] = { |
1, 2, 3, 5, 9, 9, 4, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9,10,10,10,10,10,10,10,10, |
}; |
static const static_codebook _44p9_l1_0 = { |
2, 25, |
(char *)_vq_lengthlist__44p9_l1_0, |
1, -514619392, 1630767104, 3, 0, |
(long *)_vq_quantlist__44p9_l1_0, |
0 |
}; |
static const char _huff_lengthlist__44p9_lfe[] = { |
1, 1, |
}; |
static const static_codebook _huff_book__44p9_lfe = { |
1, 2, |
(char *)_huff_lengthlist__44p9_lfe, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist__44p9_long[] = { |
3, 3, 3, 3, 3, 3, 3, 3, |
}; |
static const static_codebook _huff_book__44p9_long = { |
1, 8, |
(char *)_huff_lengthlist__44p9_long, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const long _vq_quantlist__44p9_p1_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p9_p1_0[] = { |
1, 5, 5, 4, 8, 8, 4, 8, 8, 5, 7, 8, 8, 9,10, 8, |
10,10, 5, 8, 7, 8,10,10, 8,10, 9, 7, 9, 9, 9,11, |
11, 9,11,11, 9,11,11,11,12,13,11,13,13, 9,11,11, |
11,13,13,11,13,13, 7, 9, 9, 9,11,11, 9,11,11, 9, |
11,11,11,13,13,11,13,13, 9,11,11,11,13,13,11,13, |
12, 5, 9, 9, 9,11,11, 9,11,11, 9,11,11,11,12,13, |
11,13,13, 9,11,11,11,13,13,11,13,13, 9,11,12,11, |
13,13,12,13,13,11,12,13,13,14,15,13,14,14,12,13, |
13,13,15,15,13,15,14, 8,10,10,11,13,13,12,14,13, |
11,12,12,13,14,15,13,15,15,11,12,12,13,15,15,13, |
15,14, 5, 9, 9, 9,11,11, 9,11,11, 9,11,11,11,13, |
13,11,13,13, 9,11,10,11,13,13,11,13,12, 8,10,10, |
11,13,13,12,13,13,11,12,12,13,14,15,14,15,15,10, |
12,12,13,14,15,13,15,14, 9,12,11,12,13,13,11,13, |
13,12,13,13,13,15,15,13,14,15,11,13,12,13,15,14, |
13,15,14, |
}; |
static const static_codebook _44p9_p1_0 = { |
5, 243, |
(char *)_vq_lengthlist__44p9_p1_0, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__44p9_p1_0, |
0 |
}; |
static const long _vq_quantlist__44p9_p2_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44p9_p2_0[] = { |
4, 6, 6, 8, 8, 5, 7, 7, 9, 9, 5, 7, 7, 9, 9, 6, |
8, 8,11,11, 6, 8, 8,11,11, 6, 7, 7, 9, 9, 7, 8, |
9,10,11, 7, 9, 9,11,10, 8, 9,10,12,12, 8,10,10, |
12,12, 6, 7, 7, 9, 9, 7, 9, 9,10,10, 7, 9, 8,11, |
10, 8,10,10,12,12, 8,10, 9,12,12, 8, 9, 9,11,11, |
9,10,10,12,12, 9,11,11,12,13,11,12,12,13,14,11, |
12,12,14,14, 8, 9, 9,11,11, 9,11,10,13,12, 9,10, |
10,13,12,11,12,12,14,14,11,12,12,14,13, 7, 8, 9, |
10,10, 8,10,10,11,11, 8,10,10,11,11,10,11,11,13, |
13,10,11,11,13,13, 8, 9,10,10,11,10,11,11,12,13, |
10,11,11,12,12,11,11,12,13,14,11,12,12,14,14, 8, |
10,10,11,11,10,11,11,12,13,10,11,11,12,12,11,12, |
12,14,14,11,12,12,14,14,10,11,11,12,13,11,12,12, |
13,14,12,13,13,14,14,13,13,14,14,16,13,14,14,15, |
16,10,11,11,13,13,12,12,12,14,14,11,12,12,14,14, |
13,14,14,15,16,13,14,14,16,15, 7, 8, 8,10,10, 8, |
10,10,11,11, 8,10,10,12,11,10,11,11,13,13,10,11, |
11,13,13, 8,10,10,11,11,10,11,11,12,12,10,11,11, |
12,12,11,12,12,14,14,11,12,12,14,14, 8,10, 9,11, |
10,10,11,11,13,12,10,11,10,13,12,11,12,12,14,14, |
11,12,11,14,13,10,11,11,13,13,11,12,12,14,14,12, |
12,12,14,14,13,14,14,15,16,13,14,14,15,15,10,11, |
11,13,12,12,12,12,14,14,11,12,12,14,13,13,14,14, |
16,15,13,14,13,16,14,10,11,11,13,13,12,12,13,14, |
15,12,13,13,14,15,13,14,15,15,16,13,14,14,16,16, |
11,12,13,14,14,13,13,14,15,16,13,14,14,15,16,14, |
15,15,16,17,14,15,16,17,17,11,12,12,14,14,13,14, |
14,15,16,13,14,14,15,15,14,15,15,16,18,14,15,15, |
17,16,13,14,15,15,16,15,15,16,16,18,15,15,15,17, |
17,16,16,17,17,18,16,16,16,18,18,14,14,14,16,16, |
15,15,15,16,17,15,15,15,16,17,16,17,17,18,18,16, |
16,17,18,17,10,11,11,14,13,12,13,13,15,14,11,13, |
13,15,14,13,15,15,16,16,13,14,14,16,16,11,12,12, |
14,14,13,13,13,15,15,13,14,13,15,15,15,15,15,17, |
16,14,15,15,17,16,11,13,12,14,14,13,14,13,15,15, |
13,14,13,15,15,14,15,15,17,17,14,15,15,17,16,14, |
14,14,16,16,14,15,15,17,17,15,15,16,17,16,17,16, |
17,18,18,16,17,17,18,18,13,14,14,16,15,15,15,15, |
17,17,14,16,15,16,16,17,17,17,18,18,16,17,16,20, |
19, 6, 8, 8,10,10, 8,10,10,11,11, 8,10,10,12,11, |
10,11,11,13,13,10,11,11,13,13, 8, 9,10,11,11,10, |
11,11,12,12,10,11,11,13,12,11,12,12,14,14,11,12, |
12,14,14, 9,10,10,11,11,10,11,11,12,12,10,11,11, |
13,12,11,12,12,14,14,11,12,12,14,14,10,10,11,12, |
13,11,12,12,14,14,11,12,12,14,14,13,14,14,15,16, |
13,14,14,15,16,10,11,11,13,13,12,12,12,14,14,12, |
13,12,14,14,13,14,14,16,16,13,14,14,15,15, 9,10, |
10,11,12,10,11,11,12,13,10,11,11,13,12,11,12,12, |
14,14,11,12,12,14,14,10,10,11,12,13,11,12,12,13, |
14,11,12,12,13,14,12,13,14,14,15,12,13,13,15,15, |
10,11,11,13,13,11,12,12,13,14,11,12,12,14,13,12, |
13,13,15,15,12,13,13,15,15,12,11,13,12,14,13,13, |
14,14,15,13,13,14,14,15,14,15,15,16,17,14,15,15, |
16,17,12,13,12,14,14,13,14,14,15,15,13,14,14,15, |
15,14,15,15,16,17,14,15,15,16,17, 8, 9, 9,11,11, |
10,11,11,12,13,10,11,11,13,12,12,13,13,14,15,11, |
13,12,15,14, 9,11,10,12,12,11,12,12,13,14,11,12, |
12,14,13,13,13,14,15,15,13,14,13,15,15, 9,11,11, |
12,12,11,12,12,14,14,11,12,12,14,13,13,14,14,15, |
16,13,14,13,15,14,11,12,12,14,13,12,13,13,14,15, |
13,14,14,16,15,15,15,15,15,16,15,16,15,17,17,11, |
12,12,14,14,13,14,14,15,15,12,13,13,15,14,15,15, |
15,17,17,14,15,15,17,15,11,12,12,14,14,12,13,13, |
15,15,12,13,13,15,15,14,15,15,17,17,14,15,15,16, |
16,12,13,13,14,15,13,14,14,16,16,14,14,14,15,16, |
15,16,16,17,17,15,16,16,17,17,12,13,13,15,15,14, |
14,14,16,16,14,14,15,16,16,15,16,16,17,17,15,16, |
16,17,17,14,15,15,15,16,15,15,16,16,18,15,16,16, |
17,17,17,17,17,18,18,16,17,17,19,18,14,15,15,16, |
17,15,16,16,17,17,15,16,16,18,17,16,17,17,19,18, |
17,17,17,19,18,10,12,12,14,14,13,13,14,15,15,12, |
14,13,16,15,15,15,15,17,17,14,15,15,17,16,12,13, |
13,15,14,13,14,14,16,16,14,14,15,17,16,15,16,16, |
17,17,15,16,16,18,17,12,13,13,15,14,14,15,15,16, |
16,13,15,14,16,15,16,17,16,19,17,15,16,16,17,17, |
14,15,15,17,15,15,16,15,17,17,16,17,16,18,17,17, |
17,18,18,18,17,17,18,19,18,14,15,15,16,16,15,16, |
16,17,18,15,16,16,18,16,17,18,18,19,19,17,18,17, |
18,19, 6, 8, 8,10,10, 8,10,10,11,11, 8,10,10,12, |
11,10,11,11,13,13, 9,11,11,13,13, 9,10,10,11,11, |
10,11,11,12,12,10,11,11,12,12,11,12,12,14,14,11, |
12,12,14,14, 8,10, 9,11,11,10,11,11,12,12,10,11, |
11,12,12,11,12,12,14,14,11,12,12,14,14,10,11,11, |
13,13,11,12,13,14,14,12,12,12,14,14,13,14,14,15, |
16,13,14,14,16,16,10,11,10,13,12,11,12,12,14,14, |
11,12,12,14,14,13,14,14,15,16,13,14,14,16,15, 8, |
9, 9,11,11,10,11,11,12,13,10,11,11,13,12,12,13, |
13,14,15,12,13,13,15,14,10,11,11,12,12,11,11,12, |
13,14,11,12,12,14,14,13,13,14,15,16,13,14,14,15, |
15, 9,10,11,12,12,11,12,12,13,14,11,12,12,14,13, |
13,14,14,15,16,12,14,13,15,15,11,12,12,14,14,12, |
13,13,14,15,13,14,14,16,15,14,15,15,15,17,15,15, |
16,16,17,11,12,12,13,14,13,14,14,15,15,12,13,13, |
15,14,15,16,15,16,17,14,16,15,17,15, 9,10,10,12, |
11,10,11,11,13,13,10,11,11,13,12,11,12,12,14,14, |
11,12,12,14,14,10,11,11,12,13,11,12,12,13,14,11, |
12,12,14,14,12,13,13,15,15,12,13,13,15,15,10,11, |
10,13,12,11,12,12,13,13,11,12,12,14,13,12,13,13, |
15,15,12,13,13,15,14,12,13,12,14,14,13,14,14,15, |
15,13,14,14,15,15,14,15,15,16,16,14,15,15,16,16, |
11,13,11,14,12,13,13,13,15,14,12,14,13,15,14,15, |
15,15,17,16,14,15,14,17,15,10,12,12,14,14,13,13, |
14,15,16,12,14,13,15,15,14,15,16,17,17,14,15,16, |
17,17,12,13,13,14,15,13,14,14,16,16,14,14,15,16, |
16,16,16,16,17,17,16,16,16,18,18,12,13,13,14,15, |
14,14,15,16,16,13,14,14,16,15,16,16,16,17,18,15, |
16,16,17,17,14,15,15,16,16,15,15,16,17,17,15,16, |
16,17,18,17,18,18,18,19,17,18,18,19,19,14,15,15, |
16,16,15,16,16,17,17,15,16,16,17,17,17,17,18,20, |
18,17,18,17,18,18,11,12,12,14,14,12,13,14,15,15, |
12,13,13,15,15,14,15,15,16,17,14,15,15,16,17,12, |
13,13,15,15,14,14,14,16,16,14,14,14,16,16,15,16, |
16,17,17,15,16,16,17,17,12,13,13,15,14,13,14,14, |
16,15,14,15,14,16,15,15,16,16,17,17,15,16,16,17, |
16,14,15,15,16,16,15,16,16,17,17,16,16,16,17,17, |
17,17,17,19,18,17,17,17,18,19,14,15,14,17,15,15, |
16,16,17,17,15,16,15,17,17,16,17,17,18,18,16,17, |
17,18,17, 6,11,11,13,13,11,12,12,14,14,11,12,12, |
14,14,13,14,14,16,16,13,14,14,16,16,11,12,12,14, |
14,12,13,13,15,15,12,13,13,15,15,14,15,15,16,17, |
14,15,15,17,18,11,12,12,14,14,12,13,13,15,15,12, |
13,13,15,15,14,15,15,17,17,14,15,15,16,16,13,14, |
14,15,16,14,15,15,16,17,14,15,15,17,16,15,16,17, |
18,17,16,16,16,18,17,14,14,15,16,16,14,15,15,18, |
16,14,15,15,17,16,16,17,17,18,18,16,17,16,18,17, |
11,12,12,14,14,12,13,13,15,15,12,13,13,15,15,14, |
15,15,17,17,14,15,15,16,16,12,13,13,15,15,13,14, |
14,15,16,13,14,14,16,16,15,16,16,17,17,15,15,16, |
17,17,12,13,13,15,15,14,14,14,16,16,13,14,14,16, |
16,15,16,16,17,17,15,16,16,17,17,14,14,15,15,16, |
15,15,16,16,17,15,15,16,16,17,16,17,17,17,18,16, |
17,17,18,18,14,15,15,16,16,15,16,16,17,17,15,16, |
16,17,17,17,17,17,18,19,17,17,17,18,18,10,12,12, |
14,14,12,13,14,15,16,13,14,13,15,15,14,15,15,17, |
17,14,15,16,17,17,12,13,13,15,15,13,14,14,15,15, |
14,15,14,16,16,15,16,16,17,18,15,17,16,18,17,12, |
13,13,15,15,14,14,14,16,16,13,14,14,16,15,15,16, |
16,17,18,15,16,16,17,17,14,14,14,16,16,15,15,16, |
17,17,15,16,16,17,17,17,17,17,18,20,17,17,17,19, |
19,14,15,15,16,16,15,17,16,18,18,15,16,15,17,16, |
17,18,19,19,19,17,17,17,18,17,13,14,14,16,16,14, |
15,15,17,17,14,15,15,16,17,15,17,17,18,18,16,16, |
17,18,17,14,15,15,16,17,15,16,16,17,17,15,16,16, |
17,17,16,17,17,18,18,17,17,17,18,19,14,15,15,16, |
17,15,16,16,17,17,15,16,16,17,17,16,17,17,18,18, |
17,17,17,19,19,16,16,16,16,18,16,17,17,17,18,17, |
17,17,17,19,18,18,18,19,19,18,18,18,19,20,16,16, |
17,18,18,16,18,17,18,18,17,17,17,20,19,18,18,19, |
21,20,18,20,18,18,19,10,12,12,14,14,14,14,15,15, |
17,14,15,14,17,15,16,16,17,18,18,16,18,17,19,18, |
12,14,13,16,15,14,14,15,15,17,15,16,16,18,17,16, |
17,18,17,19,17,19,18,20,19,12,13,13,15,15,15,16, |
17,17,18,14,16,14,17,16,17,18,18,19,19,17,17,17, |
18,18,15,15,15,17,16,15,16,16,17,17,17,19,17,18, |
18,18,18,18,18,21,19,20,19,20,19,15,15,16,16,17, |
17,17,18,20,20,15,16,16,18,17,18,19,19,19,20,18, |
19,18,19,17, 6,11,11,13,13,11,12,12,14,14,11,12, |
12,14,14,13,14,14,16,16,13,14,14,16,16,11,12,12, |
14,14,12,13,13,15,15,12,13,13,15,15,14,15,15,17, |
17,14,15,15,17,16,11,12,12,14,14,12,13,13,15,15, |
12,13,13,15,15,14,15,15,16,16,14,15,15,16,16,13, |
14,14,16,16,15,15,15,16,16,14,15,15,17,16,16,17, |
17,19,18,16,17,17,18,18,13,14,14,15,15,14,15,15, |
17,16,14,15,15,17,16,16,17,16,17,18,15,16,16,18, |
18,10,12,12,14,14,12,13,14,15,15,12,13,13,15,15, |
14,15,15,17,17,14,15,15,17,16,12,13,13,15,15,14, |
14,14,15,16,14,15,15,16,16,15,16,16,17,18,16,16, |
16,18,18,12,13,13,14,14,14,14,15,16,16,13,14,14, |
16,16,15,16,16,18,18,15,16,16,19,17,14,15,15,16, |
17,15,15,16,17,17,16,17,16,17,18,17,17,18,17,19, |
17,17,18,18,19,14,14,14,16,16,15,16,16,17,17,15, |
16,15,17,17,17,17,17,19,20,16,17,17,18,18,11,12, |
12,14,14,12,13,13,15,15,12,13,13,15,15,14,15,15, |
16,16,14,15,14,16,16,12,13,13,15,15,14,14,14,16, |
16,13,14,14,16,16,15,16,16,18,17,15,16,16,17,17, |
12,13,13,15,15,13,14,14,16,16,13,14,14,16,16,15, |
16,15,18,18,15,16,15,17,16,14,15,15,16,16,15,16, |
16,17,17,15,16,16,18,17,16,17,17,18,18,16,17,17, |
18,18,14,15,14,16,15,15,16,15,17,17,15,16,15,17, |
16,16,17,17,18,18,17,17,16,19,17,10,12,12,14,15, |
14,14,15,15,17,14,15,14,17,15,16,17,17,17,18,16, |
17,17,18,18,12,14,13,16,15,14,14,16,15,17,15,17, |
16,18,17,17,17,18,17,19,18,18,18,19,18,12,13,14, |
15,15,15,16,16,16,17,14,15,14,18,16,18,17,18,19, |
19,17,18,17,20,18,15,15,15,17,17,15,16,16,17,18, |
18,18,18,19,18,18,18,19,18,20,18,19,19,21,21,15, |
15,16,16,17,17,18,18,18,18,15,16,16,17,17,17,19, |
20,19,20,17,18,18,19,17,13,14,14,16,16,14,15,15, |
16,17,14,15,15,17,17,16,16,17,17,18,15,17,16,17, |
17,14,15,15,16,16,15,16,16,17,17,16,16,16,17,17, |
17,17,18,17,18,17,17,17,18,20,14,15,15,17,16,15, |
16,16,17,17,15,16,16,17,17,17,17,17,18,18,16,17, |
17,19,18,16,16,17,17,17,17,18,17,19,18,17,17,17, |
18,19,17,20,18,19,21,17,19,18,19,20,15,17,15,17, |
16,16,17,17,18,18,17,17,17,18,17,18,19,18,19,21, |
18,18,17,19,19, |
}; |
static const static_codebook _44p9_p2_0 = { |
5, 3125, |
(char *)_vq_lengthlist__44p9_p2_0, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44p9_p2_0, |
0 |
}; |
static const long _vq_quantlist__44p9_p3_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p9_p3_0[] = { |
2, 5, 4, 4, 7, 7, 4, 7, 6, 5, 6, 7, 7, 8, 9, 7, |
9, 9, 5, 7, 6, 7, 9, 9, 7, 9, 8, 6, 8, 8, 8,10, |
10, 8,10,10, 8, 9,10,10,11,12,10,12,12, 8,10,10, |
10,12,12,10,12,11, 6, 8, 8, 8,10,10, 8,10,10, 8, |
10,10,10,11,12,10,12,12, 8,10, 9,10,12,11,10,12, |
11, 5, 8, 8, 8,10,10, 8,10,10, 8, 9,10,10,11,11, |
10,11,11, 8,10,10,10,11,12,10,12,11, 8,10,10,10, |
11,11,10,11,11,10,11,11,11,12,13,11,12,13,10,11, |
11,11,13,13,11,13,13, 7, 9, 9,10,11,12,10,12,11, |
9,11,11,11,12,13,12,14,13, 9,11,11,12,13,14,11, |
13,12, 5, 8, 8, 8,10,10, 8,10,10, 8,10,10,10,11, |
12,10,12,12, 8,10, 9,10,12,11, 9,11,11, 7, 9, 9, |
10,11,12,10,12,11, 9,11,11,11,12,13,12,14,13, 9, |
11,11,12,13,14,11,13,12, 8,10,10,10,11,11,10,11, |
11,10,11,11,11,13,13,11,13,13,10,11,10,11,13,12, |
11,13,12, |
}; |
static const static_codebook _44p9_p3_0 = { |
5, 243, |
(char *)_vq_lengthlist__44p9_p3_0, |
1, -533200896, 1614282752, 2, 0, |
(long *)_vq_quantlist__44p9_p3_0, |
0 |
}; |
static const long _vq_quantlist__44p9_p3_1[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p9_p3_1[] = { |
4, 6, 6, 6, 7, 7, 6, 7, 7, 6, 7, 7, 7, 7, 8, 7, |
7, 8, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, |
8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 8, 9, 9, 8, 8, 8, |
8, 9, 9, 8, 9, 9, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, |
8, 8, 8, 9, 9, 8, 9, 9, 8, 8, 8, 8, 9, 9, 8, 9, |
9, 5, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, |
8, 9, 9, 8, 8, 8, 8, 9, 9, 8, 9, 9, 8, 8, 8, 8, |
9, 9, 8, 9, 9, 8, 8, 9, 9, 9, 9, 9, 9, 9, 8, 9, |
9, 9, 9, 9, 9, 9, 9, 7, 8, 8, 8, 9, 9, 8, 9, 9, |
8, 9, 8, 9, 9, 9, 9, 9, 9, 8, 8, 8, 9, 9, 9, 9, |
9, 9, 6, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, |
9, 8, 9, 9, 8, 8, 8, 8, 9, 9, 8, 9, 9, 7, 8, 8, |
8, 9, 9, 8, 9, 9, 8, 8, 9, 9, 9, 9, 9, 9, 9, 8, |
8, 8, 9, 9, 9, 9, 9, 9, 8, 8, 8, 8, 9, 9, 8, 9, |
9, 8, 9, 9, 9, 9, 9, 9, 9, 9, 8, 9, 8, 9, 9, 9, |
9, 9, 9, |
}; |
static const static_codebook _44p9_p3_1 = { |
5, 243, |
(char *)_vq_lengthlist__44p9_p3_1, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__44p9_p3_1, |
0 |
}; |
static const long _vq_quantlist__44p9_p4_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p9_p4_0[] = { |
2, 5, 5, 4, 7, 7, 4, 7, 6, 5, 7, 7, 7, 8, 9, 7, |
9, 9, 5, 7, 7, 7, 9, 9, 7, 9, 8, 6, 7, 8, 8, 9, |
10, 8,10,10, 8, 9,10,10,11,12,10,11,12, 8,10,10, |
10,11,12,10,12,11, 6, 8, 7, 8,10,10, 8,10, 9, 8, |
10,10,10,11,12,10,12,12, 8,10, 9,10,12,11,10,12, |
11, 5, 8, 8, 8,10,10, 8,10,10, 7, 9,10, 9,10,11, |
10,11,11, 8,10,10,10,12,12,10,12,11, 7, 9, 9, 9, |
11,11, 9,11,11, 9,10,11,11,11,12,11,12,12, 9,11, |
11,11,12,12,11,12,12, 7, 9, 9,10,11,12,10,12,11, |
9,11,10,11,11,12,12,13,13, 9,11,11,12,13,13,11, |
13,11, 5, 8, 8, 8,10,10, 8,10,10, 8,10,10,10,11, |
12,10,12,12, 7, 9, 9, 9,11,11, 9,11,10, 7, 9, 9, |
10,11,12,10,12,11, 9,11,11,11,11,13,12,13,13, 9, |
10,11,12,13,13,11,12,11, 7, 9, 9, 9,11,11, 9,11, |
11, 9,11,11,11,12,12,11,12,12, 9,11,10,11,12,12, |
10,12,11, |
}; |
static const static_codebook _44p9_p4_0 = { |
5, 243, |
(char *)_vq_lengthlist__44p9_p4_0, |
1, -531365888, 1616117760, 2, 0, |
(long *)_vq_quantlist__44p9_p4_0, |
0 |
}; |
static const long _vq_quantlist__44p9_p4_1[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44p9_p4_1[] = { |
6, 8, 8,10, 9, 8, 9, 9,10,10, 8, 9, 9,10,10, 8, |
10,10,10,10, 8,10,10,10,10, 9, 9, 9,10,10, 9,10, |
10,10,11, 9,10,10,11,11,10,10,10,11,11,10,10,10, |
11,11, 9, 9, 9,10,10, 9,10,10,11,11, 9,10,10,11, |
10,10,10,10,11,11,10,10,10,11,11,10,10,10,10,11, |
10,10,11,11,11,10,11,11,11,11,11,11,11,11,11,11, |
11,11,11,11,10,10,10,11,10,10,11,11,11,11,10,11, |
10,11,11,11,11,11,11,11,10,11,11,11,11, 9,10,10, |
10,11,10,10,11,11,11,10,11,11,11,11,10,11,11,11, |
11,10,11,11,11,11,10,10,11,11,11,11,11,11,11,11, |
11,11,11,11,12,11,11,12,12,12,11,11,11,12,12,10, |
11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11, |
11,12,12,11,11,11,12,12,11,11,11,11,11,11,12,12, |
12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12, |
12,11,11,11,11,11,11,12,12,12,12,11,12,11,12,12, |
11,12,12,12,12,12,12,12,12,12, 9,10,10,11,10,10, |
11,11,11,11,10,11,11,11,11,10,11,11,11,11,10,11, |
11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11, |
12,12,11,11,12,12,12,11,11,11,12,12,10,11,10,11, |
11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12, |
11,11,11,12,12,11,11,11,11,11,11,12,12,12,12,11, |
12,12,12,12,11,12,12,12,12,12,12,12,12,12,11,11, |
11,11,11,11,12,12,12,12,11,12,11,12,12,12,12,12, |
12,12,11,12,12,12,12,11,11,11,11,11,11,12,12,12, |
12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12, |
11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, |
12,12,13,13,12,12,12,13,13,11,12,12,12,12,12,12, |
12,12,12,12,12,12,12,12,12,12,12,13,13,12,12,12, |
13,13,12,12,12,12,12,12,12,12,12,13,12,12,12,13, |
13,12,13,13,13,13,12,13,13,13,13,12,12,12,12,12, |
12,12,12,13,13,12,12,12,13,13,12,13,13,13,13,12, |
13,13,13,13,11,11,11,11,11,11,12,12,12,12,11,12, |
12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12, |
12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13, |
13,12,12,12,13,13,11,12,12,12,12,12,12,12,12,12, |
12,12,12,12,12,12,12,12,13,13,12,12,12,13,13,12, |
12,12,12,12,12,12,12,13,13,12,12,12,13,13,12,13, |
13,13,13,12,13,13,13,13,12,12,12,12,12,12,12,12, |
13,13,12,12,12,13,12,12,13,13,13,13,12,13,13,13, |
13, 7,10,10,11,11,10,10,11,11,11,10,11,11,11,11, |
10,11,11,11,11,10,11,11,11,11,10,10,10,11,11,10, |
11,11,11,11,11,11,11,11,12,11,11,11,12,12,11,11, |
11,12,12,10,11,11,11,11,11,11,11,12,11,11,11,11, |
12,11,11,11,11,12,12,11,11,11,12,12,11,11,11,11, |
11,11,11,11,12,12,11,11,12,12,12,11,12,12,12,12, |
11,12,12,12,12,11,11,11,11,11,11,12,12,12,12,11, |
11,12,12,12,11,12,12,12,12,11,12,12,12,12,10,11, |
11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11, |
12,12,11,11,11,12,12,11,11,11,11,11,11,11,12,12, |
12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12, |
11,11,11,11,11,11,12,11,12,12,11,11,11,12,12,11, |
12,12,12,12,11,12,12,12,12,11,11,11,11,12,11,12, |
12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12, |
12,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12, |
12,12,12,12,12,12,12,12,12,12,12,10,11,10,11,11, |
11,11,11,12,12,11,11,11,12,12,11,12,12,12,12,11, |
12,12,12,12,10,11,11,12,11,11,11,12,12,12,11,12, |
12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11, |
12,11,11,12,12,12,12,11,12,11,12,12,12,12,12,12, |
12,12,12,12,12,12,11,12,11,12,12,12,12,12,12,12, |
12,12,12,12,12,12,12,12,12,13,12,12,12,12,12,11, |
12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, |
12,12,13,12,12,12,13,12,11,11,11,12,12,12,12,12, |
12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12, |
13,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12, |
12,12,13,13,13,12,12,12,13,13,11,12,12,12,12,12, |
12,12,12,13,12,12,12,12,12,12,12,13,13,13,12,13, |
12,13,13,12,12,12,12,12,12,12,12,13,13,12,12,12, |
13,13,12,13,13,13,13,12,13,13,13,13,12,12,12,12, |
12,12,12,12,13,13,12,13,12,13,13,12,13,13,13,13, |
12,13,13,13,13,11,11,11,12,12,12,12,12,12,12,11, |
12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,12, |
12,12,12,12,12,12,12,12,12,12,12,13,13,12,13,12, |
13,13,12,13,13,13,13,11,12,12,12,12,12,12,12,13, |
13,12,12,12,13,12,12,13,13,13,13,12,13,13,13,13, |
12,12,12,12,12,12,12,13,13,13,12,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,12,12,12,12,12,12,13, |
13,13,13,12,12,12,13,13,13,13,13,13,13,13,13,13, |
13,13, 7,10,10,11,11,10,11,11,11,11,10,11,11,11, |
11,10,11,11,11,11,10,11,11,11,11,10,11,11,11,11, |
11,11,11,11,11,11,11,11,12,11,11,11,12,12,12,11, |
11,11,12,12,10,10,10,11,11,11,11,11,12,11,10,11, |
11,11,11,11,11,11,12,12,11,11,11,12,12,11,11,11, |
11,11,11,11,12,12,12,11,12,11,12,12,11,12,12,12, |
12,11,12,12,12,12,11,11,11,11,11,11,11,11,12,12, |
11,12,11,12,12,11,12,12,12,12,11,12,12,12,12,10, |
10,10,11,11,11,11,11,12,12,11,11,11,12,12,11,12, |
12,12,12,11,12,12,12,12,11,11,11,11,11,11,11,12, |
12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12, |
12,11,11,11,11,11,11,12,12,12,12,11,12,11,12,12, |
12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12, |
12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12, |
12,13,12,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,10,11,11,11, |
11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12, |
11,11,11,12,12,11,11,11,11,11,11,11,12,12,12,11, |
12,11,12,12,11,12,12,12,12,11,12,12,12,12,11,11, |
11,11,11,11,11,11,12,12,11,11,11,12,12,11,12,12, |
12,12,11,12,12,12,12,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, |
11,11,11,12,11,11,12,12,12,12,11,12,12,12,12,12, |
12,12,12,12,12,12,12,12,12,11,11,11,12,12,11,12, |
12,12,12,12,12,12,12,12,12,12,12,13,13,12,12,12, |
13,12,11,12,12,12,12,12,12,12,12,13,12,12,12,13, |
13,12,13,13,13,13,12,13,13,13,13,11,12,12,12,12, |
12,12,12,12,13,12,12,12,12,12,12,13,13,13,13,12, |
13,13,13,13,12,12,12,12,12,12,12,13,13,13,12,13, |
12,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12, |
12,12,12,13,13,13,13,12,13,12,13,13,13,13,13,13, |
13,13,13,13,13,13,11,11,11,12,12,11,12,12,12,12, |
11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11, |
12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13, |
12,13,13,12,12,12,13,13,11,12,12,12,12,12,12,12, |
12,12,12,12,12,12,12,12,12,12,13,13,12,13,12,13, |
13,12,12,12,12,12,12,12,12,13,13,12,12,12,13,13, |
13,13,13,13,13,12,13,13,13,13,12,12,12,12,12,12, |
13,12,13,13,12,13,12,13,12,12,13,13,13,13,12,13, |
13,13,13, 8,11,11,12,12,11,12,12,12,12,11,12,12, |
12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,12, |
12,11,12,12,12,12,12,12,12,12,12,12,12,12,13,13, |
12,12,12,13,13,11,11,11,12,12,12,12,12,12,12,12, |
12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,12, |
12,12,12,12,12,12,12,13,12,12,12,12,12,12,12,13, |
13,13,12,12,13,13,13,11,12,12,12,12,12,12,12,13, |
12,12,12,12,13,13,12,13,13,13,13,12,13,13,13,13, |
11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12, |
12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12, |
12,12,12,12,12,12,12,12,12,12,12,13,13,12,12,12, |
13,13,11,12,12,12,12,12,12,12,12,12,12,12,12,12, |
12,12,13,12,13,13,12,13,12,13,13,12,12,12,12,12, |
12,12,12,12,13,12,12,12,13,13,12,13,13,13,13,12, |
13,13,13,13,12,12,12,12,12,12,12,12,13,13,12,12, |
12,13,13,12,13,13,13,13,12,13,13,13,13,11,11,11, |
12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,13, |
12,12,12,12,12,13,11,12,12,12,12,12,12,12,12,13, |
12,12,12,12,13,12,13,13,13,13,12,13,13,13,13,11, |
12,12,12,12,12,12,12,12,13,12,12,12,13,12,12,13, |
13,13,13,12,13,13,13,13,12,12,12,12,12,12,12,12, |
13,13,12,12,13,13,13,12,13,13,13,13,12,13,13,13, |
13,12,12,12,12,12,12,13,13,13,13,12,13,12,13,13, |
12,13,13,13,13,13,13,13,13,13,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,11,12,12,12,12,12,12,12,12,12,12,12,12, |
12,12,12,12,13,13,13,12,13,13,13,13,11,12,12,12, |
12,12,12,12,12,12,12,12,12,12,12,12,13,13,13,13, |
12,13,12,13,13,12,12,12,12,12,12,12,12,13,13,12, |
12,12,13,13,12,13,13,13,13,12,13,13,13,13,12,12, |
12,12,12,12,13,12,13,13,12,12,12,13,13,13,13,13, |
13,13,12,13,13,13,13,11,11,11,12,12,12,12,12,12, |
12,12,12,12,12,12,12,12,12,12,13,12,12,12,13,12, |
11,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12, |
12,13,13,13,12,13,13,13,13,11,12,12,12,12,12,12, |
12,12,13,12,12,12,13,12,12,13,13,13,13,12,13,13, |
13,13,12,12,12,12,12,12,12,12,13,13,12,12,12,13, |
13,13,13,13,13,13,13,13,13,13,13,12,12,12,12,12, |
12,13,13,13,13,12,13,12,13,13,13,13,13,13,13,13, |
13,13,13,13, 8,11,11,11,11,11,12,12,12,12,11,12, |
12,12,12,12,12,12,12,12,11,12,12,12,12,11,11,11, |
12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, |
13,12,12,12,13,13,11,11,11,12,12,12,12,12,12,12, |
12,12,12,12,12,12,12,12,13,13,12,12,12,13,12,12, |
12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,13, |
13,13,13,12,13,13,13,13,11,12,12,12,12,12,12,12, |
12,13,12,12,12,13,12,12,13,13,13,13,12,13,12,13, |
13,11,11,11,12,12,12,12,12,12,12,11,12,12,12,12, |
12,12,12,13,13,12,12,12,13,12,11,12,12,12,12,12, |
12,12,12,12,12,12,12,13,13,12,12,13,13,13,12,13, |
13,13,13,11,12,12,12,12,12,12,12,13,13,12,12,12, |
12,12,12,13,13,13,13,12,13,13,13,13,12,12,12,12, |
12,12,12,13,13,13,12,12,13,13,13,13,13,13,13,13, |
12,13,13,13,13,12,12,12,12,12,12,13,12,13,13,12, |
12,12,13,13,13,13,13,13,13,12,13,13,13,13,11,11, |
11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12, |
12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12, |
12,12,12,12,12,12,12,13,12,13,13,12,12,12,13,13, |
11,12,12,12,12,12,12,12,12,13,12,12,12,12,12,12, |
12,12,13,13,12,13,12,13,13,12,12,12,12,12,12,12, |
12,13,12,12,12,12,13,13,12,13,13,13,13,12,13,13, |
13,13,12,12,12,12,12,12,12,12,13,13,12,12,12,13, |
12,12,13,13,13,13,12,13,13,13,13,11,11,11,12,12, |
12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, |
12,12,13,13,11,12,12,12,12,12,12,12,12,13,12,12, |
12,12,12,12,13,13,13,13,12,13,13,13,13,11,12,12, |
12,12,12,12,12,12,13,12,12,12,12,12,12,13,13,13, |
13,12,13,13,13,13,12,12,12,12,12,12,12,12,13,13, |
12,12,13,13,13,13,13,13,13,13,13,13,13,13,13,12, |
12,12,12,12,12,13,13,13,13,12,12,12,13,12,13,13, |
13,13,13,12,13,13,13,13,11,11,11,12,12,12,12,12, |
12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, |
13,11,12,12,12,12,12,12,12,12,12,12,12,12,13,12, |
12,12,12,13,13,12,13,13,13,13,11,12,12,12,12,12, |
12,12,12,12,12,12,12,12,12,12,13,13,13,13,12,13, |
12,13,13,12,12,12,12,12,12,12,13,13,13,12,13,12, |
13,13,12,13,13,13,13,13,13,13,13,13,12,12,12,12, |
12,12,12,12,12,13,12,12,12,13,13,13,13,13,13,13, |
12,13,13,13,13, |
}; |
static const static_codebook _44p9_p4_1 = { |
5, 3125, |
(char *)_vq_lengthlist__44p9_p4_1, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44p9_p4_1, |
0 |
}; |
static const long _vq_quantlist__44p9_p5_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44p9_p5_0[] = { |
4, 6, 6, 9, 9, 6, 7, 8,10,11, 6, 8, 7,10,10, 8, |
10,10,12,12, 8,10,10,12,12, 6, 7, 8,10,10, 7, 8, |
9,10,11, 8, 9, 9,11,11,10,10,11,12,13,10,11,11, |
13,13, 6, 8, 7,10,10, 8, 9, 9,11,11, 7, 9, 8,11, |
10,10,11,11,13,13,10,11,10,13,12, 9,10,10,11,12, |
10,10,11,12,13,10,11,11,12,13,12,12,13,12,14,12, |
13,13,14,14, 9,10,10,12,11,10,11,11,13,12,10,11, |
10,13,12,12,13,13,14,14,12,13,12,14,12, 7, 8, 8, |
10,11, 8, 9,10,11,12, 8, 9, 9,11,12,10,11,12,13, |
14,10,11,11,13,13, 8, 9,10,11,12, 9,10,11,12,13, |
10,10,11,12,12,11,12,12,13,14,11,12,12,14,14, 8, |
9, 9,11,12,10,10,11,12,13, 9,10,10,12,12,11,12, |
12,14,14,11,12,12,14,13,11,11,12,12,13,11,12,12, |
13,14,12,12,13,14,14,13,13,14,14,16,13,14,14,15, |
15,11,12,11,13,13,12,12,12,14,14,11,12,12,14,13, |
13,14,14,15,15,13,14,13,15,14, 7, 8, 8,11,10, 8, |
10, 9,12,11, 8,10, 9,12,11,10,11,11,13,13,10,12, |
11,14,13, 8, 9, 9,12,11, 9,10,10,12,12,10,11,10, |
13,12,11,12,12,13,14,11,12,12,14,14, 8,10, 9,12, |
11,10,11,10,12,12, 9,11,10,13,11,11,12,12,14,14, |
11,12,12,14,13,11,11,12,13,13,11,12,12,13,14,12, |
12,12,14,14,13,13,14,14,15,13,14,14,15,15,11,12, |
11,13,12,12,12,12,14,14,11,12,12,14,13,13,14,14, |
15,15,13,14,13,15,14,10,11,11,12,13,11,12,12,13, |
14,11,12,12,13,14,13,13,14,14,16,13,14,14,15,15, |
11,12,12,12,14,12,12,13,13,15,12,13,13,13,15,14, |
14,15,15,16,14,14,15,15,16,11,12,12,13,14,12,13, |
13,14,15,12,13,13,14,14,14,14,15,15,16,14,14,14, |
15,15,13,14,14,14,15,14,14,15,15,16,14,15,15,15, |
16,15,15,16,16,18,16,16,16,17,17,13,14,14,15,15, |
14,14,15,16,16,14,14,14,16,15,16,16,16,17,17,15, |
16,16,17,16,10,11,11,13,12,11,12,12,14,13,11,12, |
12,14,13,13,14,14,15,15,13,14,13,16,14,11,12,12, |
14,13,12,13,13,14,14,12,13,13,15,14,14,14,14,15, |
15,14,15,14,16,15,11,12,12,14,12,12,13,13,15,14, |
12,13,12,15,13,14,15,14,16,15,14,15,14,16,15,13, |
14,14,15,15,14,14,14,15,16,14,15,14,16,16,15,16, |
16,16,17,16,16,16,17,17,13,14,14,15,14,14,15,15, |
16,15,14,15,14,16,15,16,16,16,17,17,15,16,15,18, |
16, 6, 8, 8,11,11, 8, 9,10,11,12, 8,10, 9,12,12, |
10,11,11,13,13,10,12,11,14,13, 8, 9, 9,11,12, 9, |
10,10,12,12, 9,10,10,12,12,11,11,12,13,14,11,12, |
12,14,14, 8,10, 9,12,11,10,11,11,12,12, 9,11,10, |
13,12,11,12,12,14,14,11,12,12,14,13,10,11,11,13, |
13,11,12,12,13,14,11,12,12,14,14,13,13,14,13,15, |
13,14,14,15,15,11,12,11,13,13,12,12,12,14,14,11, |
12,12,14,13,13,14,14,15,15,13,14,13,15,14, 8, 9, |
9,11,11, 9,10,10,12,12, 9,10,10,12,12,11,12,12, |
13,14,11,12,12,14,14, 9, 9,10,11,12,10,10,11,12, |
13,10,10,11,12,13,12,12,13,13,15,12,12,13,14,14, |
9,10,10,12,12,10,11,11,13,13,10,11,11,13,13,12, |
13,13,14,15,12,13,12,14,14,11,11,12,12,14,12,12, |
13,13,14,12,12,13,13,14,13,13,14,14,16,14,14,14, |
15,15,11,12,12,14,13,12,13,13,14,14,12,13,13,15, |
14,14,14,14,16,16,13,14,14,16,14, 7, 9, 9,12,11, |
9,10,10,12,12, 9,11,10,13,12,11,12,12,13,14,11, |
13,12,14,13, 9,10,10,12,12,10,10,11,12,13,10,12, |
11,13,13,12,12,13,13,14,12,13,13,15,14, 9,10,10, |
12,12,11,11,11,13,13,10,12,10,13,12,12,13,13,14, |
15,12,13,12,15,13,11,12,12,14,13,12,12,13,13,14, |
12,13,13,15,14,13,13,14,13,16,14,15,14,16,15,12, |
12,12,14,14,13,13,13,14,14,12,13,12,14,13,14,15, |
15,16,16,13,14,13,16,13,10,11,12,13,14,11,12,13, |
13,15,12,12,13,14,14,13,14,14,15,16,13,14,14,16, |
15,12,12,13,12,14,12,12,13,13,15,13,13,13,13,15, |
14,14,15,14,16,14,15,15,15,16,12,13,12,14,14,13, |
13,13,15,15,12,13,13,15,15,14,15,15,16,16,14,15, |
15,16,16,13,14,14,13,16,14,14,15,14,16,14,14,15, |
14,16,15,15,16,15,18,16,16,16,16,17,14,14,14,16, |
15,14,15,15,16,16,14,15,15,16,16,16,16,16,17,17, |
15,16,16,17,16,10,12,11,14,13,12,13,13,14,14,12, |
13,12,15,14,14,14,14,15,15,14,15,14,16,15,12,13, |
12,14,13,12,13,13,15,14,13,14,13,15,14,14,15,15, |
16,16,14,15,15,17,15,12,13,12,14,14,13,14,14,15, |
15,13,14,13,15,14,15,15,15,16,16,14,15,15,17,15, |
14,14,14,16,15,14,15,15,16,16,14,15,15,16,15,16, |
16,16,16,17,16,17,16,18,17,14,14,14,16,15,15,15, |
15,16,16,14,15,14,16,15,16,16,17,17,17,15,16,15, |
17,16, 6, 8, 8,11,11, 8, 9,10,12,12, 8,10, 9,12, |
11,10,11,12,13,13,10,11,11,13,13, 8, 9,10,11,12, |
9,10,11,12,13,10,11,11,12,12,11,12,12,13,14,11, |
12,12,14,14, 8, 9, 9,12,11, 9,10,10,12,12, 9,10, |
10,12,12,11,12,12,14,14,11,12,11,14,13,11,11,12, |
13,13,11,12,12,13,14,12,12,12,14,14,13,13,14,14, |
15,13,14,14,15,15,10,11,11,13,13,11,12,12,14,14, |
11,12,12,14,13,13,14,14,15,15,13,14,13,15,13, 7, |
9, 9,11,12, 9,10,11,12,13, 9,10,10,12,12,11,12, |
13,13,14,11,12,12,14,14, 9,10,10,12,12,10,10,11, |
12,13,11,12,11,13,13,12,12,13,13,15,12,13,13,15, |
14, 9,10,10,12,12,10,11,12,13,13,10,11,10,13,12, |
12,13,13,14,15,12,13,12,14,13,12,12,12,14,14,12, |
12,13,13,14,13,13,13,15,14,14,13,14,13,16,14,15, |
15,16,16,11,12,12,13,14,12,13,13,14,15,12,13,12, |
14,13,14,14,15,15,16,13,14,13,15,13, 8, 9, 9,11, |
11, 9,10,10,12,12, 9,10,10,12,12,11,12,12,14,14, |
11,12,11,14,13, 9,10,10,12,12,10,11,11,13,13,10, |
11,11,13,13,12,12,13,14,15,12,13,13,15,14, 9,10, |
9,12,11,10,11,10,13,12,10,11,10,13,12,12,13,12, |
14,14,12,13,12,15,13,11,12,12,13,14,12,13,13,14, |
14,12,13,13,14,14,14,14,14,14,16,14,14,14,16,15, |
11,12,11,14,12,12,13,12,15,13,12,13,12,15,13,14, |
14,14,16,15,13,14,13,16,14,10,11,12,13,14,12,12, |
13,13,15,12,13,13,14,14,14,14,15,15,16,14,14,14, |
15,16,12,12,13,14,14,12,13,14,14,15,13,14,14,15, |
15,14,15,15,15,17,15,15,15,16,16,12,12,13,13,14, |
13,13,14,14,15,12,13,13,14,15,15,15,15,15,17,14, |
15,15,15,15,14,14,14,16,16,14,15,15,15,16,15,15, |
15,16,16,16,15,16,16,18,16,16,17,17,17,14,14,14, |
15,16,15,15,15,16,17,14,15,14,16,16,16,16,17,17, |
18,16,16,15,17,16,10,12,11,14,13,12,12,12,14,14, |
11,13,12,14,13,13,14,14,15,15,13,14,13,16,15,12, |
12,13,14,14,12,13,13,15,15,13,13,13,15,15,14,15, |
15,16,16,14,15,15,17,16,12,13,12,14,12,13,13,13, |
15,13,12,13,12,15,13,14,15,15,16,15,14,15,14,16, |
14,14,14,14,16,16,14,15,15,16,16,14,15,15,16,16, |
15,16,16,16,17,16,17,16,18,17,13,14,14,16,13,14, |
15,15,16,14,14,15,14,16,14,16,16,16,17,16,15,16, |
15,18,15, 9,11,11,13,13,11,12,12,14,14,11,12,12, |
14,14,13,14,14,15,15,13,14,14,15,15,11,12,12,14, |
14,11,12,13,14,15,12,13,13,15,14,13,14,14,15,16, |
13,14,14,16,16,11,12,12,14,14,12,13,13,15,15,12, |
13,13,15,14,14,14,14,16,16,14,15,14,16,15,12,13, |
13,14,15,12,13,14,15,16,13,14,14,16,16,14,14,15, |
16,17,15,15,15,17,17,13,14,14,15,15,14,15,14,16, |
16,14,15,14,16,15,15,16,16,17,17,15,16,15,17,16, |
10,12,12,13,14,11,12,13,14,14,12,13,12,14,14,13, |
14,14,15,16,13,14,14,16,15,11,12,12,14,14,12,12, |
13,14,15,12,13,13,15,15,13,13,15,15,17,14,14,15, |
16,16,12,13,12,14,14,12,13,13,15,15,12,13,13,15, |
14,14,15,15,16,16,14,15,14,16,16,13,12,14,13,16, |
13,13,15,14,16,14,13,15,15,16,14,14,16,15,17,15, |
15,16,16,17,13,14,14,16,15,14,15,15,16,16,14,15, |
14,16,15,16,16,16,17,17,15,16,16,18,16,10,12,12, |
14,14,12,12,13,14,14,12,13,12,15,14,13,14,14,15, |
16,14,15,14,16,15,11,12,12,14,14,12,13,13,14,15, |
13,14,13,15,15,14,14,15,15,16,14,15,15,17,16,12, |
13,13,14,14,13,13,14,15,15,12,14,13,15,15,14,15, |
15,16,16,14,15,15,17,15,13,14,13,15,15,13,14,14, |
15,16,14,15,14,17,16,15,15,15,15,17,16,16,16,18, |
17,14,14,14,16,16,15,15,15,16,16,14,15,14,16,16, |
16,16,17,17,17,16,16,16,17,16,11,12,13,14,14,12, |
13,13,15,15,12,13,13,15,15,14,15,15,16,16,14,15, |
15,17,16,12,13,13,14,15,13,13,14,14,16,13,14,14, |
15,16,15,14,16,15,17,15,15,16,16,17,12,13,13,15, |
15,13,14,14,16,16,13,14,14,16,15,15,15,16,17,17, |
15,16,15,17,16,14,14,15,13,16,15,14,16,14,17,15, |
15,16,14,17,16,15,17,15,18,16,16,17,16,18,14,15, |
15,17,16,15,16,16,17,17,15,16,15,17,16,16,17,17, |
18,18,16,17,15,18,16,11,12,12,14,14,13,13,14,14, |
15,13,14,13,16,14,15,15,15,16,16,15,16,15,17,16, |
12,13,13,15,14,13,13,14,15,15,14,15,14,16,15,15, |
15,16,15,16,16,16,16,18,16,12,13,13,15,15,14,14, |
15,15,16,13,14,13,16,15,16,16,16,17,17,15,16,15, |
17,15,14,15,14,16,15,14,15,15,16,16,15,16,15,17, |
16,16,15,16,15,17,17,18,17,18,17,15,15,15,16,16, |
16,16,16,17,17,14,15,15,17,16,17,17,18,18,18,16, |
17,15,18,15, 9,11,11,13,13,11,12,12,14,14,11,12, |
12,14,14,13,14,14,15,16,13,14,14,15,15,11,12,12, |
14,14,12,13,13,14,15,12,13,13,14,14,14,14,15,15, |
16,14,14,14,16,16,11,12,12,14,14,12,13,13,14,15, |
11,13,12,14,14,13,14,14,16,16,13,14,14,16,15,13, |
14,14,15,15,14,14,15,15,16,14,15,14,16,16,15,15, |
16,16,17,15,16,16,17,17,12,13,13,15,15,13,14,14, |
16,15,12,14,13,16,15,15,16,15,17,17,14,15,15,17, |
15,10,12,12,14,14,12,12,13,14,15,12,13,12,14,14, |
14,14,15,15,16,13,14,14,16,16,12,13,13,14,14,13, |
13,14,14,15,13,14,13,15,15,14,15,15,15,17,14,15, |
15,16,16,11,12,12,14,14,13,13,14,15,15,12,13,13, |
15,14,14,15,15,16,17,14,15,14,16,15,14,14,14,16, |
16,14,15,15,16,16,15,15,15,16,16,15,16,16,16,18, |
16,17,16,18,17,13,13,14,15,15,14,14,15,16,16,13, |
14,14,16,15,16,16,17,17,17,15,15,15,17,15,10,12, |
12,14,13,12,12,13,14,14,11,13,12,14,14,13,14,14, |
16,16,13,14,14,16,15,12,12,13,14,14,12,13,13,14, |
15,13,13,13,15,15,14,14,15,16,16,14,15,15,16,16, |
11,12,12,14,14,12,13,13,15,15,12,13,12,15,14,14, |
15,14,16,16,13,15,13,16,15,13,14,14,15,16,14,15, |
15,15,17,14,15,15,16,16,16,15,16,16,17,16,16,16, |
17,17,13,14,12,16,13,14,15,13,16,15,13,15,13,16, |
14,15,16,15,17,16,15,16,14,17,15,11,12,12,14,15, |
13,13,14,14,16,13,14,13,15,14,15,15,16,16,17,15, |
15,15,16,16,12,13,13,15,15,13,13,14,15,16,14,15, |
14,16,15,15,15,16,15,17,16,16,16,17,17,12,13,13, |
14,15,14,14,15,15,16,13,14,13,15,15,16,16,16,17, |
17,15,16,15,16,15,15,15,15,16,16,14,15,15,16,17, |
16,16,16,17,17,16,15,17,15,18,17,18,17,18,18,14, |
14,15,15,17,15,15,16,16,17,14,15,15,16,16,17,17, |
17,17,18,16,16,15,17,15,11,12,12,14,14,12,13,13, |
15,15,12,13,13,15,15,14,15,15,16,16,14,15,14,17, |
16,13,13,13,15,15,13,14,14,15,16,13,14,14,16,16, |
15,15,16,16,17,15,16,16,17,17,12,13,13,15,14,13, |
14,14,16,15,13,14,13,16,14,15,16,16,17,16,15,16, |
14,17,15,14,15,15,16,17,15,15,16,16,17,15,16,16, |
17,17,16,15,17,16,18,16,17,17,18,18,14,15,14,16, |
13,15,16,15,17,14,15,16,14,17,14,16,17,16,18,16, |
16,17,15,18,15, |
}; |
static const static_codebook _44p9_p5_0 = { |
5, 3125, |
(char *)_vq_lengthlist__44p9_p5_0, |
1, -528744448, 1616642048, 3, 0, |
(long *)_vq_quantlist__44p9_p5_0, |
0 |
}; |
static const long _vq_quantlist__44p9_p5_1[] = { |
3, |
2, |
4, |
1, |
5, |
0, |
6, |
}; |
static const char _vq_lengthlist__44p9_p5_1[] = { |
2, 3, 3, 3, 3, 3, 3, |
}; |
static const static_codebook _44p9_p5_1 = { |
1, 7, |
(char *)_vq_lengthlist__44p9_p5_1, |
1, -533200896, 1611661312, 3, 0, |
(long *)_vq_quantlist__44p9_p5_1, |
0 |
}; |
static const long _vq_quantlist__44p9_p6_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p9_p6_0[] = { |
2, 5, 5, 5, 7, 7, 5, 7, 7, 5, 7, 7, 7, 8, 9, 7, |
9, 9, 5, 7, 7, 7, 9, 9, 7, 9, 8, 5, 7, 8, 8, 9, |
10, 8, 9,10, 8, 9,10,10,10,12,10,11,11, 8,10,10, |
10,11,12,10,11,10, 5, 8, 7, 8,10,10, 8,10, 9, 8, |
10,10,10,10,11,10,12,11, 8,10, 9,10,11,11,10,12, |
10, 5, 8, 8, 7, 9,10, 8,10, 9, 7, 9,10, 9,10,11, |
9,11,11, 8,10, 9,10,11,11, 9,11,10, 7, 9, 9, 9, |
10,11, 9,11,11, 9, 9,11,10,10,13,11,12,12, 9,11, |
11,11,12,13,11,13,11, 7, 9, 9, 9,10,11, 9,11,10, |
9,11,10,10,10,12,11,13,12, 9,11,11,11,12,12,10, |
12,10, 5, 8, 8, 8, 9,10, 7,10, 9, 8, 9,10, 9,10, |
11,10,11,11, 7,10, 9, 9,11,11, 9,11,10, 7, 9, 9, |
9,10,11, 9,11,10, 9,11,11,10,10,12,11,12,12, 9, |
10,11,11,12,13,10,12,10, 7, 9, 9, 9,11,11, 9,11, |
10, 9,11,11,11,11,13,11,13,12, 9,11, 9,11,12,12, |
10,13,10, |
}; |
static const static_codebook _44p9_p6_0 = { |
5, 243, |
(char *)_vq_lengthlist__44p9_p6_0, |
1, -527106048, 1620377600, 2, 0, |
(long *)_vq_quantlist__44p9_p6_0, |
0 |
}; |
static const long _vq_quantlist__44p9_p6_1[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44p9_p6_1[] = { |
6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 7, 8, 8, 7, |
8, 8, 7, 8, 7, 7, 8, 8, 7, 8, 8, 7, 8, 8, 8, 8, |
8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 8, 8, 9, 8, 8, 8, |
8, 8, 8, 8, 8, 8, 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, 9, |
8, 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, 8, 8, 8, 8, 8, 8, |
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 8, 8, 9, 8, 8, |
8, 8, 9, 9, 8, 9, 9, 7, 8, 8, 8, 8, 8, 8, 8, 8, |
8, 8, 8, 8, 8, 8, 8, 9, 8, 8, 8, 8, 8, 9, 9, 8, |
9, 8, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, |
9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 8, 8, |
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 8, 9, 9, 8, |
8, 8, 8, 8, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, |
8, 8, 8, 8, 8, 9, 9, 8, 9, 9, 8, 8, 8, 8, 9, 8, |
8, 9, 8, |
}; |
static const static_codebook _44p9_p6_1 = { |
5, 243, |
(char *)_vq_lengthlist__44p9_p6_1, |
1, -530841600, 1616642048, 2, 0, |
(long *)_vq_quantlist__44p9_p6_1, |
0 |
}; |
static const long _vq_quantlist__44p9_p7_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44p9_p7_0[] = { |
1,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,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,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,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,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,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,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,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,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,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,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,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,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,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 const static_codebook _44p9_p7_0 = { |
5, 3125, |
(char *)_vq_lengthlist__44p9_p7_0, |
1, -510105088, 1635281408, 3, 0, |
(long *)_vq_quantlist__44p9_p7_0, |
0 |
}; |
static const long _vq_quantlist__44p9_p7_1[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44p9_p7_1[] = { |
1, 4, 4,16,16, 4, 9,11,15,16, 4,12, 8,16,16,12, |
16,16,16,16,13,16,16,16,16, 5, 8,10,16,16, 9, 9, |
14,15,16,12,14,14,16,16,16,16,16,16,16,16,16,16, |
16,16, 5,11, 8,16,15,12,14,16,16,16, 9,15, 9,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, 6,11,11, |
16,16,12,13,16,16,16,12,16,14,16,16,16,16,16,16, |
16,16,16,16,16,16,11,15,15,16,16,14,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,12, |
15,16,16,16,16,16,16,16,16,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,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16, 5,11,11,16,16,12, |
15,16,16,16,12,16,14,16,16,16,16,16,16,16,16,16, |
16,16,16,12,15,15,16,16,14,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,11,15,15,16, |
16,16,16,16,16,16,15,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,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,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,12,16,16,11,15,16,16,16,13,16,14,16,16, |
16,16,16,16,16,16,16,16,16,16,11,16,14,16,16,14, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,12,14,14,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,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16, 8,13, |
15,16,16,15,15,16,16,16,14,16,16,16,16,16,16,16, |
16,16,16,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,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, 7,12,12,16,16, |
13,12,16,16,16,14,16,14,16,16,16,16,16,16,16,16, |
16,16,16,16,13,16,16,16,16,14,14,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,12,14,16, |
16,16,16,16,16,16,16,14,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,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,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,11,16,16,13,15,16,16,16,11,15,14,16, |
16,16,16,16,16,16,14,16,16,16,16,11,16,16,16,16, |
16,16,16,16,16,15,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,11,16,14,16,16,14,16,16,16,16,13,15, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, 7, |
11,11,16,16,13,13,16,16,16,13,16,13,16,16,16,16, |
16,16,16,16,16,16,16,16,12,16,15,16,16,14,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,12,14,16,16,16,16,16,16,16,16,14,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, 8,13,14,16, |
16,15,16,16,16,16,14,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,15,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,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,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,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,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, |
}; |
static const static_codebook _44p9_p7_1 = { |
5, 3125, |
(char *)_vq_lengthlist__44p9_p7_1, |
1, -514619392, 1630767104, 3, 0, |
(long *)_vq_quantlist__44p9_p7_1, |
0 |
}; |
static const long _vq_quantlist__44p9_p7_2[] = { |
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 const char _vq_lengthlist__44p9_p7_2[] = { |
1, 3, 2, 5, 4, 7, 7, 8, 8, 9,10,10,10,11,11,11, |
12,12,12,13,13,13,13,13,13, |
}; |
static const static_codebook _44p9_p7_2 = { |
1, 25, |
(char *)_vq_lengthlist__44p9_p7_2, |
1, -518864896, 1620639744, 5, 0, |
(long *)_vq_quantlist__44p9_p7_2, |
0 |
}; |
static const long _vq_quantlist__44p9_p7_3[] = { |
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 const char _vq_lengthlist__44p9_p7_3[] = { |
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, |
}; |
static const static_codebook _44p9_p7_3 = { |
1, 25, |
(char *)_vq_lengthlist__44p9_p7_3, |
1, -529006592, 1611661312, 5, 0, |
(long *)_vq_quantlist__44p9_p7_3, |
0 |
}; |
static const char _huff_lengthlist__44p9_short[] = { |
3, 3, 3, 3, 3, 3, 3, 3, |
}; |
static const static_codebook _huff_book__44p9_short = { |
1, 8, |
(char *)_huff_lengthlist__44p9_short, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const long _vq_quantlist__44pn1_l0_0[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44pn1_l0_0[] = { |
1, 3, 3, 8, 8,10,10,10,10,10,10,10,10, 5, 7, 5, |
9, 8,10,10,10,10,11,10,11,10, 5, 5, 7, 8, 9,10, |
10,11,10,10,11,10,11,10,10,10,11,11,11,11,11,11, |
11,10,11,11,10,10,10,10,11,11,11,11,11,10,11,11, |
11,11,11,11,11,11,12,11,10,11,11,11,11,11,11,11, |
11,11,11,11,11,10,10,11,11,12,11,11,11,11,11,11, |
12,11,11,11,10,11,11,11,11,11,11,11,11,10,11,11, |
10,11,10,11,11,11,11,11,11,11,11,11,11,12,11,11, |
12,12,11,11,11,11,11,11,11,11,11,11,11,11,12,11, |
10,11,11,11,11,11,11,11,12,11,13,11,11,11,11,11, |
11,11,11,11,11,11,12,11,13, |
}; |
static const static_codebook _44pn1_l0_0 = { |
2, 169, |
(char *)_vq_lengthlist__44pn1_l0_0, |
1, -526516224, 1616117760, 4, 0, |
(long *)_vq_quantlist__44pn1_l0_0, |
0 |
}; |
static const long _vq_quantlist__44pn1_l0_1[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44pn1_l0_1[] = { |
1, 4, 4, 7, 7, 4, 5, 6, 7, 7, 4, 6, 5, 7, 7, 7, |
6, 7, 6, 7, 7, 7, 6, 7, 6, |
}; |
static const static_codebook _44pn1_l0_1 = { |
2, 25, |
(char *)_vq_lengthlist__44pn1_l0_1, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44pn1_l0_1, |
0 |
}; |
static const long _vq_quantlist__44pn1_l1_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44pn1_l1_0[] = { |
1, 4, 4, 4, 4, 4, 4, 4, 4, |
}; |
static const static_codebook _44pn1_l1_0 = { |
2, 9, |
(char *)_vq_lengthlist__44pn1_l1_0, |
1, -516716544, 1630767104, 2, 0, |
(long *)_vq_quantlist__44pn1_l1_0, |
0 |
}; |
static const char _huff_lengthlist__44pn1_lfe[] = { |
1, 3, 2, 3, |
}; |
static const static_codebook _huff_book__44pn1_lfe = { |
2, 4, |
(char *)_huff_lengthlist__44pn1_lfe, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist__44pn1_long[] = { |
2, 3, 6, 7, 9,13,17, 3, 2, 5, 7, 9,13,17, 6, 5, |
5, 6, 9,12,16, 7, 7, 6, 6, 7,10,13,10,10, 9, 7, |
6,10,13,13,13,12,10,10,11,15,17,17,17,14,14,15, |
17, |
}; |
static const static_codebook _huff_book__44pn1_long = { |
2, 49, |
(char *)_huff_lengthlist__44pn1_long, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const long _vq_quantlist__44pn1_p1_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44pn1_p1_0[] = { |
1, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, |
}; |
static const static_codebook _44pn1_p1_0 = { |
5, 243, |
(char *)_vq_lengthlist__44pn1_p1_0, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__44pn1_p1_0, |
0 |
}; |
static const long _vq_quantlist__44pn1_p2_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44pn1_p2_0[] = { |
1, 5, 5, 0, 7, 7, 0, 8, 8, 0, 9, 9, 0,12,12, 0, |
8, 8, 0, 9, 9, 0,13,13, 0, 8, 8, 0, 6, 6, 0,11, |
11, 0,12,12, 0,12,12, 0,14,14, 0,11,12, 0,12,12, |
0,15,15, 0,12,12, 0, 5, 5, 0, 5, 5, 0, 6, 6, 0, |
7, 7, 0,10,10, 0, 6, 6, 0, 7, 7, 0,11,11, 0, 6, |
6, 0, 7, 7, 0,11,11, 0,12,11, 0,11,11, 0,14,14, |
0,10,10, 0,12,12, 0,15,15, 0,12,12, 0, 6, 6, 0, |
12,12, 0,12,12, 0,12,12, 0,14,14, 0,11,11, 0,12, |
12, 0,16,16, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 8, 8, 0,12,12, 0,12,12, 0,12,12, 0,15, |
15, 0,12,12, 0,11,11, 0,16,16, 0,11,11, 0, 6, 6, |
0,12,12, 0,12,12, 0,13,13, 0,15,15, 0,12,12, 0, |
13,13, 0,15,15, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, |
}; |
static const static_codebook _44pn1_p2_0 = { |
5, 243, |
(char *)_vq_lengthlist__44pn1_p2_0, |
1, -533200896, 1614282752, 2, 0, |
(long *)_vq_quantlist__44pn1_p2_0, |
0 |
}; |
static const long _vq_quantlist__44pn1_p2_1[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44pn1_p2_1[] = { |
1, 3, 3, 0, 9, 9, 0, 9, 9, 0,10,10, 0, 9, 9, 0, |
10,10, 0,10,10, 0,10,10, 0,10,10, 0, 7, 7, 0, 7, |
7, 0, 6, 6, 0, 8, 8, 0, 7, 7, 0, 8, 8, 0, 8, 8, |
0, 7, 7, 0, 8, 8, 0, 7, 7, 0, 9, 9, 0, 8, 9, 0, |
10,10, 0, 9, 9, 0,10,10, 0,10,11, 0, 9, 9, 0,10, |
10, 0, 9, 9, 0,11,11, 0,12,12, 0,12,12, 0,11,11, |
0,12,12, 0,13,13, 0,12,12, 0,13,13, 0, 8, 8, 0, |
12,12, 0,12,12, 0,13,13, 0,13,13, 0,13,13, 0,13, |
13, 0,13,13, 0,13,13, 0, 7, 7, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 9, 9, 0,11,11, 0,12,12, 0,13,13, 0,12, |
12, 0,13,13, 0,13,13, 0,12,12, 0,12,12, 0, 9, 9, |
0,12,12, 0,13,13, 0,14,14, 0,13,13, 0,14,14, 0, |
14,14, 0,13,13, 0,14,14, 0, 7, 7, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, |
}; |
static const static_codebook _44pn1_p2_1 = { |
5, 243, |
(char *)_vq_lengthlist__44pn1_p2_1, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__44pn1_p2_1, |
0 |
}; |
static const long _vq_quantlist__44pn1_p3_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44pn1_p3_0[] = { |
1, 6, 6, 6, 8, 8, 6, 8, 8, 7, 9, 9,10,11,11, 8, |
8, 8, 7, 9, 9,11,12,12, 9, 9, 9, 6, 7, 7,10,11, |
11,10,11,11,10,11,11,13,13,13,12,12,12,10,12,11, |
14,14,14,12,12,12, 6, 5, 5, 9, 6, 6, 9, 6, 6, 9, |
7, 7,12,10,10,11, 7, 6, 9, 7, 7,13,11,11,12, 7, |
7, 7, 8, 8,12,10,10,12,10,10,11,10,10,15,13,13, |
13, 9, 9,12,11,11,15,14,14,15,11,11, 8, 7, 7,12, |
11,11,12,11,11,11,11,11,14,13,14,14,12,12,12,11, |
11,16,15,15,14,12,12, 0,10,10, 0,12,12, 0,12,12, |
0,11,11, 0,14,14, 0,11,11, 0,11,11, 0,15,15, 0, |
11,11, 7, 8, 8,13,11,11,12,10,10,12,11,11,15,13, |
13,14,11,11,12,10,10,16,14,14,15,10,10, 9, 7, 7, |
13,11,12,13,12,11,12,11,11,15,14,14,14,12,12,13, |
12,12,16,15,15,15,12,12, 0,11,11, 0,12,12, 0,12, |
13, 0,12,12, 0,15,15, 0,12,12, 0,12,12, 0,16,15, |
0,12,12, |
}; |
static const static_codebook _44pn1_p3_0 = { |
5, 243, |
(char *)_vq_lengthlist__44pn1_p3_0, |
1, -531365888, 1616117760, 2, 0, |
(long *)_vq_quantlist__44pn1_p3_0, |
0 |
}; |
static const long _vq_quantlist__44pn1_p3_1[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44pn1_p3_1[] = { |
2, 3, 4, 9, 9,10,12,12,12,11,10,12,12,13,12,11, |
13,12,11,11,11,12,12,12,11,11,13,13,13,13,11,12, |
12,14,14,12,13,13,13,13,11,13,13,13,13,11,13,13, |
13,13,11,13,13,13,13,11,12,12,14,14,12,13,13,12, |
12,11,13,13,13,13,11,13,13,12,12,11,13,13,13,13, |
12,12,13,14,14,12,13,13,12,12,11,13,13,13,13,11, |
13,13,12,12,11,13,13,13,13,12,13,13,14,14,12,13, |
13,12,12,11,13,13,13,13,11,13,13,12,12,11,10,10, |
10,10,12,10,10,11,11,12, 9, 9,11,11,13,11,11,10, |
10,13,10,10,10,10,13,11,11,12,12,13,10,10,12,12, |
14,12,11,12,12,13,11,11,11,12,13,12,12,12,12,13, |
11,11,12,12,13,10,10,12,12,14,11,11,12,12,13,11, |
11,12,12,13,11,11,12,12,14,12,12,12,12,14,10,10, |
11,11,14,12,11,11,11,13,11,11,11,11,13,12,12,11, |
11,14,12,12,12,11,14,10,10,11,11,14,12,11,11,11, |
13,11,11,11,11,13,12,12,11,11,11,11,11,10,10,12, |
10,11, 9, 9,12,12,12,11,11,13,12,12, 9, 9,13,13, |
13,10,10,13,13,13,12,12,13,13,13,14,14,13,12,12, |
11,11,14,13,13,12,12,14,13,13,11,11,13,13,13,12, |
11,13,13,13,14,14,13,12,12,10,10,14,13,13,11,11, |
13,13,13,10,10,13,13,13,11,11,14,13,13,14,14,14, |
12,12,10,10,13,13,13,11,11,13,13,13,10,10,13,13, |
13,11,11,14,13,13,14,14,14,13,13,10,10,13,13,13, |
11,11,13,13,13,10,10,14,12,12, 8, 8,14,12,12, 9, |
9,14,11,11, 9, 9,14,12,12, 8, 8,14,12,12, 7, 7, |
15,13,13,10,10,15,12,12,10,10,15,13,13,10,10,15, |
12,13, 9, 9,15,13,13,10,10,15,13,13,10,10,15,12, |
12,10,10,15,13,13,10,10,15,13,13, 9, 9,15,13,13, |
10,10,15,13,13,10,10,15,12,12,10,10,15,13,13, 9, |
9,14,13,12, 9, 9,14,13,13, 9, 9,15,13,13,10,10, |
15,12,12,10,10,15,13,13, 9, 9,15,13,13, 9, 9,14, |
13,13, 9, 9,14,12,12, 8, 8,13,13,13, 8, 8,14,14, |
13, 9, 9,14,14,13, 7, 7,14,14,14, 8, 8,14,14,14, |
10,10,15,14,14,12,12,14,14,14, 9, 9,15,14,14,10, |
10,14,14,14, 9, 9,14,14,14,10, 9,15,14,14,12,12, |
14,14,14, 9, 9,15,14,14,10,10,14,14,14, 9, 9,15, |
14,15, 9, 9,15,14,14,11,11,14,14,14, 8, 8,14,14, |
14, 9, 9,14,14,14, 8, 8,14,15,14,10,10,15,14,14, |
11,11,14,14,14, 8, 8,15,14,14, 9, 9,14,14,14, 8, |
8,12,12,12,13,13,16,16,15,12,12,17,16,16,13,13, |
17,16,16,11,11,17,16,16,12,12,17,16,17,13,13,17, |
16,16,14,14,17,17,16,12,12,18,16,16,13,13,17,16, |
17,12,12,17,17,17,13,13,18,16,16,14,14,18,17,17, |
12,12,17,17,17,13,13,18,17,17,13,13,17,17,17,13, |
13,17,16,16,14,14,17,17,17,12,12,16,16,17,13,13, |
17,17,16,12,12,18,17,17,13,13,18,16,16,14,14,18, |
17,17,12,12,19,16,17,13,13,17,16,17,12,12,13,14, |
14,10,10,16,14,14,13,13,17,15,15,14,14,17,14,14, |
13,13,16,14,14,13,13,17,16,15,14,14,16,16,16,15, |
15,17,15,15,14,14,17,15,15,14,14,17,15,15,14,14, |
17,16,15,14,14,16,16,16,15,15,18,15,15,13,13,16, |
16,15,14,14,17,15,15,14,13,17,15,15,14,14,16,16, |
16,15,15,18,15,14,13,13,17,15,15,14,14,18,14,15, |
13,13,18,15,15,14,14,16,16,16,15,15,17,15,15,13, |
13,17,15,15,14,14,17,15,15,13,13,13,11,11,10,10, |
16,14,14,13,13,17,14,15,14,14,17,15,15,12,12,17, |
14,14,12,12,16,15,15,14,14,16,14,14,14,14,16,15, |
15,14,14,16,15,15,14,14,16,15,15,14,14,16,15,15, |
14,14,16,15,14,15,15,17,15,15,14,14,17,15,15,14, |
14,17,15,15,14,14,17,15,16,14,14,16,14,14,14,14, |
17,15,15,13,13,17,15,15,13,13,16,15,15,13,13,17, |
16,16,14,14,17,15,14,15,14,17,15,15,13,13,17,15, |
15,13,13,17,15,15,13,13,14,14,14, 9, 9,14,14,14, |
18,19,14,15,15,19,18,14,14,14,19,19,15,14,14,19, |
19,15,16,16,19,19,15,16,16,19,19,15,15,15,19,19, |
15,16,16,19,20,15,15,15,19,19,15,15,15,19,19,15, |
16,16,20,20,15,15,15,18,19,15,15,16,19,20,15,15, |
15,19,18,15,15,15,18,18,15,16,16,21,20,15,15,15, |
19,19,15,15,15,19,19,15,15,14,19,20,15,15,15,20, |
19,15,16,16,19,20,15,15,15,19,19,15,15,15,20,21, |
15,14,15,19,19,14,12,12, 9, 9,14,14,15,21,19,14, |
14,14,18,19,14,15,15,19,20,14,14,14,19,19,15,15, |
15,19,20,15,15,14,21,19,15,15,15,20,19,15,14,15, |
20,21,15,15,15,18,18,15,15,15,20,21,16,14,14,18, |
19,15,15,15,20,19,15,15,15,18,21,15,15,15,19,19, |
15,15,15,19,20,16,15,14,20,19,15,16,15,19,19,15, |
15,15,19, 0,14,15,15,19,19,15,15,15,19,19,15,15, |
14,20,19,15,15,15,20,19,15,15,15,19,19,15,15,15, |
20,19,12,12,12,13,13,16,15,16,11,11,16,16,16,12, |
12,17,16,16,11,11,17,16,16,12,11,17,17,17,13,13, |
18,16,16,14,14,18,18,17,13,13,17,16,16,13,13,17, |
17,17,13,13,17,16,17,12,12,17,15,16,13,13,17,16, |
17,12,12,17,16,16,13,12,17,16,16,12,12,18,17,17, |
13,13,18,16,16,13,14,18,17,17,12,12,17,16,16,12, |
12,17,17,17,12,12,18,17,17,13,13,17,16,16,14,14, |
17,17,17,12,12,17,16,16,12,12,18,17,17,12,12,13, |
14,14, 9, 9,16,14,14,13,13,16,15,15,14,14,16,14, |
14,13,13,16,14,14,13,13,17,16,15,15,15,16,15,16, |
16,15,17,15,15,14,14,17,15,15,15,15,17,15,15,14, |
14,17,15,15,14,14,16,15,16,16,16,17,15,15,14,14, |
16,15,15,14,15,16,15,15,14,14,17,15,15,15,15,16, |
16,16,15,16,18,15,14,13,14,17,15,15,14,14,17,14, |
14,13,13,17,15,15,14,14,16,15,15,15,15,17,15,14, |
14,14,17,15,15,14,14,17,14,14,13,13,13,11,11,11, |
11,16,14,14,12,12,16,14,14,13,13,16,14,14,12,12, |
16,14,14,12,12,16,15,15,13,13,17,14,14,14,14,17, |
15,15,13,13,16,15,15,14,13,16,15,15,13,13,16,15, |
15,13,13,16,14,14,14,14,16,15,15,13,13,16,14,15, |
13,13,17,15,15,13,13,17,15,15,13,13,16,14,14,14, |
14,17,15,15,12,12,17,14,15,13,13,17,15,15,12,12, |
16,15,15,13,13,17,14,14,14,14,17,15,15,12,12,17, |
15,15,13,13,16,15,15,12,12,14,15,15, 8, 8,14,14, |
14,19,18,14,15,15,19,20,14,14,14,19,19,14,14,15, |
19,20,15,16,15,19,21,15,16,16,21,19,15,15,15,20, |
19,15,16,16,19,20,15,15,15,19,18,15,16,15,20,19, |
15,16,16,19,20,15,15,15,19,19,15,16,15,20,20,14, |
15,15,19,19,15,15,15,21,19,15,17,16,19,20,15,14, |
15, 0,21,15,15,15,19,20,14,14,14,19,19,15,15,15, |
20,19,15,16,16,19,19,15,15,15,19,18,15,15,15,20, |
19,14,14,15,18,18,14,12,12, 9, 9,14,14,14,18,18, |
14,14,14,18,18,14,15,14,19,18,14,14,14,19,18,15, |
15,15,19,20,15,14,14,18,18,15,15,15,20,19,15,15, |
15,18,20,15,15,15,19,18,15,15,15,19,19,15,14,14, |
19,21,15,15,15,20,20,15,15,15,18,19,14,15,15,19, |
20,15,15,15,20,19,15,14,14,19,21,15,15,15,18,19, |
15,14,15,20,19,14,15,15,21,21,14,15,15,19,20,15, |
14,14,19,20,15,15,15,19,20,15,15,14,20,20,14,15, |
15,20,19,13,12,12,13,13,17,16,16,11,11,17,16,16, |
12,12,18,17,16,11,11,18,16,16,11,11,17,17,17,13, |
13,18,16,16,13,13,18,17,17,12,12,18,16,16,13,13, |
18,17,17,12,12,18,17,17,13,13,18,16,16,14,14,18, |
16,17,12,12,18,17,17,13,13,17,17,17,12,12,17,17, |
17,12,12,17,16,15,13,13,18,16,16,11,11,17,16,16, |
12,12,17,16,17,11,11,18,17,17,13,12,17,16,16,13, |
13,17,17,17,12,12,17,16,17,12,12,18,17,17,11,11, |
14,14,14, 9, 9,16,14,14,13,13,17,15,15,14,14,17, |
14,14,13,13,16,14,14,13,13,17,15,15,14,14,16,16, |
16,16,15,18,15,15,14,14,17,16,15,15,15,17,15,15, |
14,14,17,15,15,14,15,16,16,16,15,16,18,15,15,14, |
14,17,15,15,14,15,17,15,15,14,14,17,15,15,14,14, |
16,16,16,15,16,17,14,14,13,13,17,15,15,14,14,18, |
15,15,13,13,17,15,15,14,14,16,16,16,15,15,17,14, |
14,13,13,17,15,15,14,14,17,14,14,13,13,13,11,11, |
11,11,16,14,14,12,12,16,14,14,12,13,17,15,14,11, |
11,17,14,14,11,11,17,15,15,13,14,17,14,14,14,14, |
17,15,15,13,13,17,14,14,13,13,17,15,15,13,13,17, |
15,15,13,13,17,14,14,14,14,17,15,15,13,13,18,14, |
15,13,13,17,15,15,13,13,16,15,15,13,13,17,14,14, |
13,13,17,15,15,12,12,16,14,14,12,12,16,15,15,12, |
12,17,16,15,13,13,17,14,14,13,13,17,15,15,12,12, |
16,15,15,12,12,16,15,15,12,12,13,15,15, 8, 8,14, |
14,14,18,19,14,15,15,19,20,14,14,14,18,18,14,15, |
15,18,18,15,16,16,19,19,15,16,17,20,20,15,15,15, |
19,19,15,16,16,18,20,15,15,15,19,19,15,15,16,18, |
18,15,17,16,19,19,15,15,15,18,21,15,16,16,21,20, |
15,15,15,19,21,15,16,15,20,19,15,16,17,20,20,15, |
15,15,19,19,15,16,16,21,20,15,15,15,19,20,15,15, |
15,19,19,15,16,16,20,19,15,15,15,19,19,15,16,15, |
20,21,15,15,15,21,19,14,12,12, 8, 8,14,14,14,20, |
18,14,13,13,19,19,14,14,14,19,18,15,14,14,19,20, |
14,15,15,20,20,15,14,14,21,20,15,15,15,20,20,15, |
15,14,21,19,15,15,15,19,19,15,15,15,19,20,15,14, |
14,20,20,15,15,15,19,20,15,14,14,19,20,15,15,15, |
20,20,15,15,15,20,19,15,14,14,20,21,15,15,15,20, |
21,15,14,14,20, 0,15,16,15,20,21,15,15,15,19,20, |
15,14,14,19,19,15,15,15,19,20,15,15,15,19,19,15, |
15,15,18,20,13,12,12,13,13,18,16,17,12,12,17,16, |
16,12,12,17,17,16,11,11,18,16,16,11,11,17,17,18, |
13,13,18,16,16,14,14,18,17,17,13,13,18,16,16,13, |
13,18,17,17,12,12,17,17,16,13,13,17,16,16,13,14, |
18,17,17,12,12,18,16,16,12,13,17,16,17,12,12,17, |
18,17,13,13,18,16,16,13,13,18,17,17,12,12,17,16, |
16,12,12,17,17,17,11,11,17,16,17,12,12,17,16,16, |
13,13,17,16,16,11,11,17,16,16,12,12,18,16,17,11, |
11,14,14,14, 9, 9,16,14,15,13,13,17,15,15,14,14, |
17,14,14,12,12,16,14,14,13,13,18,15,15,15,15,17, |
15,16,15,16,18,15,15,14,14,17,15,16,15,15,17,15, |
15,14,14,18,15,15,14,14,16,16,16,16,15,17,15,15, |
14,14,16,15,15,14,14,17,15,15,14,14,17,15,15,14, |
14,17,16,16,15,15,17,15,14,13,13,17,15,15,14,14, |
17,15,15,13,13,17,15,15,14,14,16,16,16,15,15,18, |
15,14,14,14,17,15,15,14,14,18,15,15,13,13,13,12, |
12,11,11,16,14,14,12,12,16,14,14,13,13,17,15,15, |
12,12,17,14,14,12,12,17,15,15,14,14,17,14,14,14, |
14,17,15,15,13,13,17,15,14,13,13,17,15,15,13,13, |
17,15,15,13,13,16,14,14,14,14,17,15,15,13,13,16, |
14,14,13,13,16,15,15,13,13,17,15,16,13,13,17,14, |
14,14,13,17,15,15,12,12,16,15,14,12,12,17,15,15, |
12,12,16,15,16,13,13,16,14,14,14,13,17,15,15,12, |
12,16,14,14,12,12,17,15,15,12,12,14,15,15, 8, 8, |
14,14,14,18,18,14,15,15,19,18,14,14,14,18,18,14, |
15,15,19,20,15,16,15,21,18,15,16,16,18, 0,15,15, |
15,19,20,15,16,16,20, 0,15,16,15,19,18,15,15,15, |
19,19,15,16,16,21,19,15,15,15,19,19,15,16,16,20, |
20,15,15,15,19,19,15,15,15,19,18,15,16,16,20,20, |
15,14,15,20,19,15,15,15,19,20,15,15,15,19,19,15, |
16,15,19,20,15,16,16,19,20,15,15,15,19,19,15,16, |
15,20,20,15,15,15,20,18,13,12,12, 8, 8,14,14,14, |
19,20,14,14,14,19,19,14,15,15,20,20,14,14,14,18, |
19,15,15,15,20, 0,15,14,14,18,20,15,15,15,19,19, |
15,15,15,21,19,15,15,15,19,20,15,15,15,20,21,15, |
14,14,20,19,15,15,15,20,19,15,15,14,21,19,15,15, |
15,19,18,15,15,15,20,19,15,14,14,19,19,15,15,16, |
20,19,15,15,15,20, 0,15,15,15,19,21,15,15,15,22, |
20,15,14,14,22,19,15,15,15,19,20,15,14,14,20,19, |
14,15,15,19,21, |
}; |
static const static_codebook _44pn1_p3_1 = { |
5, 3125, |
(char *)_vq_lengthlist__44pn1_p3_1, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44pn1_p3_1, |
0 |
}; |
static const long _vq_quantlist__44pn1_p4_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44pn1_p4_0[] = { |
1, 7, 7,14,14, 6, 8, 8,15,16, 7, 8, 8,16,15, 0, |
14,14,17,17, 0,14,14,16,16, 7, 9, 9,16,16,10,11, |
11,17,18, 9, 8, 8,16,16, 0,14,14,19,19, 0,14,14, |
17,16, 8, 9, 9,16,16,12,12,12,17,17,10, 9, 9,16, |
16, 0,15,14,18,20, 0,14,14,17,17, 0,15,15,18,17, |
0,21, 0, 0,21, 0,13,13,17,17, 0,17,17, 0, 0, 0, |
15,15,17,17, 0,15,15,17,18, 0, 0, 0, 0,21, 0,13, |
13,17,17, 0,18,18, 0,21, 0,16,15,17,18, 6, 7, 7, |
14,14, 9,10,10,16,16,11,10,10,15,15, 0,21, 0,20, |
21, 0, 0, 0,18,20,10,10,10,15,16,12,13,13,18,18, |
12,11,11,15,15, 0, 0, 0,20,20, 0, 0,21,19,19,12, |
11,11,15,15,15,14,14,18,18,13,11,11,15,16, 0, 0, |
0,20,19, 0, 0, 0,20,21, 0, 0,20,19,19, 0, 0, 0, |
0, 0, 0,20, 0,17,18, 0, 0,21, 0, 0, 0, 0, 0,21, |
0, 0,21, 0,20,19, 0, 0, 0, 0, 0, 0,21, 0,18,18, |
0, 0, 0,21, 0, 0, 0, 0, 0,20, 7, 6, 6,13,13, 9, |
6, 6,12,12, 9, 7, 7,14,14, 0,10,10,12,12, 0,11, |
11,15,15, 9, 7, 7,14,14,12, 9, 9,14,14,10, 7, 7, |
14,13, 0,11,11,16,15, 0,11,11,14,14, 9, 7, 7,14, |
14,13,10,10,14,14,11, 7, 7,14,13, 0,11,11,16,16, |
0,11,11,14,14, 0,12,12,16,16, 0,19, 0,17,18, 0, |
10,10,14,14, 0,15,14, 0, 0, 0,12,12,14,14, 0,12, |
12,15,15, 0,20, 0,18,19, 0,10,10,14,14, 0,16,15, |
0,20, 0,13,13,14,14, 0,11,11,13,13, 0,12,13,16, |
16, 0,12,12,16,16, 0,16,16, 0,21, 0,17,18, 0, 0, |
0,12,12,16,16, 0,15,15,18, 0, 0,12,12,16,16, 0, |
17,16,21,21, 0,16,17, 0, 0, 0,13,13,17,16, 0,16, |
16,20,21, 0,12,12,17,16, 0,17,17, 0,21, 0,17,17, |
21,21, 0,17,18, 0, 0, 0, 0, 0, 0, 0, 0,15,15, 0, |
0, 0,18,21, 0, 0, 0,18,19, 0, 0, 0,18,17,21,21, |
0, 0, 0, 0, 0, 0,16,16, 0, 0, 0, 0, 0, 0, 0, 0, |
19,19, 0, 0, 0,11,11,12,12, 0,11,11,10,10, 0,12, |
12,13,13, 0,12,12, 9, 9, 0,14,14,13,13, 0,12,12, |
13,13, 0,14,14,12,13, 0,11,11,12,12, 0,13,13,13, |
13, 0,13,13,13,13, 0,12,12,13,13, 0,14,14,12,12, |
0,11,11,12,12, 0,14,13,14,14, 0,13,13,13,13, 0, |
15,15,14,15, 0, 0, 0,16,16, 0,12,12,13,13, 0,16, |
17,20,21, 0,14,13,12,12, 0,14,14,14,14, 0,21, 0, |
16,16, 0,12,12,13,13, 0,18,17,21, 0, 0,14,14,13, |
13, 7, 8, 8,17,17,11,10,10,18,18,12,10,10,17,17, |
0,15,15,20,18, 0,15,15,17,17,11, 9, 9,17,17,14, |
12,12,19,19,13, 9, 9,16,16, 0,15,14, 0,19, 0,14, |
14,16,16,12,10,10,20,18,16,13,13,21,20,14,10,10, |
17,17, 0,15,15,21,20, 0,15,14,17,17, 0,15,15,21, |
21, 0, 0,21, 0, 0, 0,13,13,18,18, 0,19,16, 0, 0, |
0,15,15,17,16, 0,16,16, 0,21, 0, 0, 0, 0,21, 0, |
13,14,18,17, 0,20,19, 0, 0, 0,15,15,18,18, 8, 7, |
7,15,15,12,11,11,17,16,13,11,11,16,16, 0, 0, 0, |
21,20, 0, 0, 0, 0,20,11,10,10,17,17,14,13,13,19, |
18,14,11,11,16,16, 0,20, 0,21,19, 0, 0,21, 0,20, |
12,11,11,17,17,16,15,15, 0,19,14,11,11,17,16, 0, |
21, 0, 0,19, 0, 0, 0,21,20, 0, 0,21,20, 0, 0, 0, |
0, 0, 0, 0, 0, 0,19,21, 0, 0, 0, 0, 0, 0, 0, 0, |
19,20, 0, 0, 0,20,21, 0, 0, 0, 0, 0, 0,20, 0,19, |
21, 0, 0, 0, 0, 0, 0, 0, 0,21,20,11,10, 9,15,15, |
14,11,11,15,15,14,11,11,16,16, 0,14,14,14,14, 0, |
16,15,17,16,13,11,11,16,16,16,13,13,16,16,15,10, |
10,15,15, 0,14,15,17,17, 0,14,14,16,15,13,11,11, |
16,16,17,15,14,16,16,15,10,10,15,15, 0,15,15,17, |
18, 0,15,15,16,16, 0,16,16,17,17, 0,21, 0,21,20, |
0,13,13,15,15, 0,18,18, 0,21, 0,15,15,15,15, 0, |
16,16,17,17, 0, 0, 0, 0,18, 0,13,13,15,15, 0,19, |
18, 0, 0, 0,15,15,16,16, 0,12,12,15,15, 0,13,13, |
17,17, 0,13,13,17,18, 0,16,17,21, 0, 0,20,18, 0, |
0, 0,13,13,17,17, 0,15,15, 0,18, 0,12,12,17,18, |
0,16,16, 0, 0, 0,17,17,21, 0, 0,13,13,18,18, 0, |
16,16,21,21, 0,12,12,17,18, 0,16,17,21, 0, 0,17, |
17, 0,21, 0,17,18, 0, 0, 0, 0, 0, 0, 0, 0,16,15, |
0,21, 0,21,19, 0, 0, 0,18,18, 0, 0, 0,18,19, 0, |
0, 0, 0, 0, 0, 0, 0,16,16,21,21, 0,20,19, 0, 0, |
0,19,21, 0,21, 0,12,12,15,15, 0,12,12,15,16, 0, |
13,13,16,16, 0,14,14,15,15, 0,16,15,17,17, 0,13, |
13,17,17, 0,15,15,16,18, 0,12,12,16,16, 0,14,14, |
17,17, 0,15,14,16,16, 0,13,13,16,16, 0,16,15,17, |
17, 0,12,12,16,16, 0,15,15,18,18, 0,14,14,17,16, |
0,16,16,17,18, 0, 0, 0,20,21, 0,13,13,16,17, 0, |
17,17, 0, 0, 0,15,15,16,16, 0,15,16,17,17, 0, 0, |
0,19, 0, 0,13,13,15,16, 0,19,18, 0, 0, 0,16,15, |
16,17, 8, 8, 8,17,17,13,11,10,17,18,13,10,10,17, |
17, 0,15,15,20,19, 0,15,15,17,17,12,10,10,19,18, |
15,12,12,20,18,14,10,10,17,16, 0,15,15,20,20, 0, |
14,15,16,16,13,10,10,17,17,17,14,14, 0,18,15,10, |
10,17,17, 0,16,15,20,20, 0,14,14,17,17, 0,15,16, |
20,20, 0, 0,21, 0, 0, 0,13,13,17,17, 0,18,17, 0, |
0, 0,15,16,17,18, 0,15,15,18,21, 0, 0, 0,21, 0, |
0,13,13,18,18, 0,19,19, 0, 0, 0,16,16,18,17, 9, |
8, 8,15,15,12,11,11,16,16,13,11,11,16,15, 0, 0, |
0, 0,21, 0,21, 0,19,19,12,11,11,17,18,15,13,13, |
18,19,14,11,11,16,16, 0, 0,21,21,19, 0, 0, 0,21, |
20,13,11,11,18,17,17,14,15,20,21,15,11,12,16,16, |
0, 0, 0,20, 0, 0, 0,21, 0,19, 0, 0, 0, 0,19, 0, |
0, 0, 0, 0, 0,21,21,19,19, 0, 0, 0,21, 0, 0, 0, |
0,19,21, 0, 0, 0,19,20, 0, 0, 0,21, 0, 0, 0,21, |
19,19, 0, 0, 0, 0, 0, 0, 0, 0,21,20, 0,11,11,15, |
15, 0,12,12,15,16, 0,12,12,16,16, 0,15,15,16,15, |
0,16,16,17,17, 0,12,12,17,17, 0,14,14,17,17, 0, |
11,11,16,16, 0,15,15,19,18, 0,15,15,16,16, 0,12, |
12,17,16, 0,14,15,16,16, 0,11,11,15,15, 0,16,16, |
18,19, 0,15,15,15,16, 0,17,17,18,20, 0,21, 0,21, |
19, 0,14,14,16,16, 0,18,18, 0, 0, 0,16,16,15,15, |
0,16,16,18,17, 0, 0, 0,19,20, 0,14,14,16,16, 0, |
19,19, 0, 0, 0,16,17,15,15, 0,12,12,14,15, 0,13, |
13,16,17, 0,12,12,17,17, 0,17,16, 0, 0, 0,18,17, |
21, 0, 0,13,13,19,17, 0,15,15,20,21, 0,12,12,17, |
17, 0,17,17, 0, 0, 0,17,17, 0, 0, 0,13,13,17,18, |
0,16,16,21, 0, 0,12,12,17,17, 0,17,17, 0, 0, 0, |
17,17, 0, 0, 0,18,21, 0, 0, 0, 0, 0, 0, 0, 0,15, |
15,21, 0, 0,20,21, 0, 0, 0,18,19, 0, 0, 0,18,17, |
0, 0, 0, 0, 0, 0, 0, 0,16,16,21, 0, 0,21,21, 0, |
0, 0,18,19, 0, 0, 0,12,12,16,16, 0,13,13,16,17, |
0,13,13,17,16, 0,14,14,16,16, 0,16,15,19,18, 0, |
13,13,17,17, 0,15,15,18,18, 0,12,12,16,16, 0,15, |
15,18,19, 0,15,15,17,16, 0,13,13,17,17, 0,16,16, |
18,17, 0,12,12,17,16, 0,15,15,18,18, 0,15,15,17, |
17, 0,16,16, 0,19, 0, 0, 0, 0, 0, 0,14,14,16,17, |
0,18,18, 0, 0, 0,15,15,17,17, 0,16,16,21,19, 0, |
21, 0,21,21, 0,13,14,16,16, 0,19,19, 0, 0, 0,15, |
16,16,16, 0,11,11,17,16, 0,15,14,19,18, 0,14,14, |
19,19, 0,18,17,18,20, 0,17,17,18,19, 0,13,13,17, |
17, 0,16,17,21,18, 0,13,13,17,16, 0,18,17,19, 0, |
0,16,17,18,18, 0,12,12,19,18, 0,18,18,20,20, 0, |
13,13,17,17, 0,17,17,21, 0, 0,16,17,17,18, 0,18, |
17,19,18, 0, 0, 0, 0, 0, 0,14,14,17,17, 0,19,19, |
21, 0, 0,16,16,16,17, 0,17,17,19,20, 0, 0, 0, 0, |
21, 0,15,15,17,18, 0,21,21, 0, 0, 0,17,17,17,18, |
0,10,10,15,15, 0,15,14,17,18, 0,14,14,16,16, 0, |
0, 0,18, 0, 0,21, 0,19, 0, 0,13,13,17,16, 0,17, |
17,18, 0, 0,14,14,16,15, 0, 0, 0,21, 0, 0,21, 0, |
19,18, 0,13,13,17,17, 0,18,18,20,20, 0,15,15,16, |
16, 0, 0, 0,21,21, 0, 0, 0,20,20, 0, 0, 0,19, 0, |
0, 0, 0, 0, 0, 0,21,20,18,18, 0, 0, 0, 0, 0, 0, |
0, 0, 0,20, 0, 0, 0, 0,20, 0, 0, 0, 0, 0, 0, 0, |
0,19,18, 0, 0, 0, 0,21, 0, 0, 0,18,20, 0,18,19, |
16,17, 0,21,19,17,17, 0, 0,21,18,18, 0, 0,21,20, |
19, 0, 0, 0,20,20, 0, 0,21,17,17, 0, 0, 0,19,19, |
0,20,20,17,17, 0, 0, 0, 0,20, 0, 0,20,18,18, 0, |
21,20,17,17, 0, 0, 0,20,21, 0,19, 0,17,17, 0, 0, |
21, 0, 0, 0,20, 0,18,19, 0, 0, 0,21,21, 0, 0, 0, |
0,21, 0,20,20,17,17, 0, 0, 0, 0, 0, 0,21, 0,18, |
17, 0, 0, 0,20,19, 0, 0, 0, 0,21, 0,20,20,17,17, |
0, 0, 0, 0, 0, 0,21,21,18,18, 0,12,12,15,14, 0, |
14,14,17,17, 0,14,14,17,16, 0,18,18,21, 0, 0,19, |
20, 0, 0, 0,13,13,18,17, 0,16,16,19,18, 0,13,13, |
17,17, 0,17,17, 0, 0, 0,17,17,21, 0, 0,13,13,17, |
17, 0,17,17,21,20, 0,13,13,18,17, 0,18,19,21,21, |
0,19,18, 0, 0, 0,18,17, 0, 0, 0, 0, 0, 0, 0, 0, |
15,16, 0, 0, 0,21,21, 0, 0, 0,20,18,21, 0, 0,17, |
18, 0, 0, 0, 0, 0, 0, 0, 0,15,16, 0, 0, 0, 0,20, |
0, 0, 0, 0,19, 0, 0, 0,15,15,18,19, 0,18,17,21, |
0, 0,16,18, 0,20, 0,17,18,21, 0, 0,18,20, 0, 0, |
0,16,16,21,21, 0,19,20,21, 0, 0,16,15, 0,21, 0, |
18,20, 0, 0, 0,18,19, 0, 0, 0,16,15,21,21, 0,21, |
0, 0, 0, 0,16,15,21, 0, 0,20,19, 0, 0, 0,18,21, |
21, 0, 0,20,18, 0, 0, 0, 0, 0, 0, 0, 0,16,16, 0, |
20, 0,21, 0, 0, 0, 0,17,18,20,21, 0,18,18,21,21, |
0, 0, 0, 0, 0, 0,16,16,20, 0, 0, 0,21, 0, 0, 0, |
21,18, 0, 0, 0,12,12,20,17, 0,15,15,19,18, 0,14, |
14,19,18, 0,18,17,21,19, 0,17,17,21,17, 0,13,13, |
21,19, 0,16,17,20,19, 0,13,13,16,16, 0,17,17,20, |
21, 0,16,16,19,17, 0,13,13,18,18, 0,17,19,19,19, |
0,13,13,17,17, 0,18,18, 0,19, 0,16,17,18,18, 0, |
16,17,19,21, 0, 0, 0, 0, 0, 0,15,15,16,17, 0,20, |
19,21, 0, 0,17,17,17,17, 0,17,17,21,19, 0, 0, 0, |
0, 0, 0,15,15,17,17, 0,21, 0, 0, 0, 0,18,18,17, |
17, 0,10,10,15,15, 0,15,15,17,17, 0,15,14,16,16, |
0, 0, 0,21,19, 0,21,21,19,21, 0,13,13,17,16, 0, |
17,17,18,19, 0,14,15,16,15, 0, 0, 0,21,19, 0,21, |
21,18,19, 0,14,14,16,17, 0,18,18,18,19, 0,15,15, |
15,16, 0, 0,21, 0,21, 0, 0, 0,19,20, 0, 0, 0,21, |
19, 0, 0, 0, 0, 0, 0,21,21,19,17, 0, 0, 0, 0, 0, |
0, 0, 0,21,21, 0,21, 0, 0,21, 0, 0, 0, 0, 0, 0, |
21,21,19,18, 0, 0, 0, 0, 0, 0, 0, 0, 0,19, 0,21, |
18,18,17, 0,21, 0,20,20, 0, 0, 0,18,20, 0, 0,21, |
18,21, 0, 0, 0,21,18, 0, 0, 0, 0,19, 0, 0, 0,21, |
21, 0,20,21,17,19, 0,21, 0,21, 0, 0,21, 0,18,18, |
0,20,21,17,18, 0, 0, 0,21,19, 0,20,21,17,18, 0, |
0, 0,21,21, 0, 0, 0,20,19, 0, 0, 0,21,21, 0, 0, |
0, 0, 0, 0,21,21,19,18, 0, 0, 0, 0, 0, 0, 0,21, |
19,18, 0,21,21,19, 0, 0, 0, 0,21, 0, 0,21,21,18, |
17, 0, 0, 0, 0, 0, 0,21, 0,21,18, 0,12,12,14,14, |
0,15,14,17,17, 0,14,14,17,16, 0,19,17, 0, 0, 0, |
19,19, 0, 0, 0,13,13,17,17, 0,17,17,20,20, 0,13, |
13,18,18, 0,18,17, 0, 0, 0,18,21, 0, 0, 0,13,13, |
17,17, 0,18,18,21,20, 0,14,14,18,19, 0,19,18,21, |
0, 0,19,19, 0, 0, 0,20,18,20, 0, 0, 0, 0, 0, 0, |
0,15,16, 0, 0, 0,21,21, 0, 0, 0,19,19, 0, 0, 0, |
18,18, 0, 0, 0, 0, 0, 0, 0, 0,16,16, 0,21, 0, 0, |
0, 0, 0, 0,19,20, 0, 0, 0,15,15,20,21, 0,17,17, |
21,21, 0,17,17, 0, 0, 0,19,18, 0, 0, 0,18,19, 0, |
0, 0,17,16, 0,21, 0, 0,20, 0, 0, 0,16,16, 0,20, |
0,19,19, 0,21, 0,19,18, 0,21, 0,16,16, 0, 0, 0, |
21,21, 0, 0, 0,16,16, 0, 0, 0,21,21, 0, 0, 0,19, |
19, 0, 0, 0,20, 0, 0, 0, 0, 0, 0, 0, 0, 0,17,17, |
0,21, 0, 0,20, 0, 0, 0,20,18,21,21, 0,19,18, 0, |
20, 0, 0, 0, 0, 0, 0,16,17,21, 0, 0, 0,21, 0, 0, |
0,19,20,21,20, |
}; |
static const static_codebook _44pn1_p4_0 = { |
5, 3125, |
(char *)_vq_lengthlist__44pn1_p4_0, |
1, -528744448, 1616642048, 3, 0, |
(long *)_vq_quantlist__44pn1_p4_0, |
0 |
}; |
static const long _vq_quantlist__44pn1_p4_1[] = { |
3, |
2, |
4, |
1, |
5, |
0, |
6, |
}; |
static const char _vq_lengthlist__44pn1_p4_1[] = { |
2, 3, 3, 3, 3, 3, 3, |
}; |
static const static_codebook _44pn1_p4_1 = { |
1, 7, |
(char *)_vq_lengthlist__44pn1_p4_1, |
1, -533200896, 1611661312, 3, 0, |
(long *)_vq_quantlist__44pn1_p4_1, |
0 |
}; |
static const long _vq_quantlist__44pn1_p5_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44pn1_p5_0[] = { |
1, 7, 7, 6, 8, 8, 7, 8, 8, 7, 9, 9,11,11,11, 9, |
8, 8, 7, 9, 9,11,12,11, 9, 9, 9, 6, 7, 7,10,11, |
11,10,10,10,10,11,11,15,14,14,12,12,12,11,11,11, |
14,14,14,12,12,12, 5, 6, 6, 8, 5, 5, 8, 7, 7, 8, |
8, 8,12,10,10,10, 7, 7, 8, 7, 7,12,10,10,10, 7, |
7, 6, 7, 7,12,11,11,12,10,10,11,10,10,14,14,13, |
13,10,10,11,10,10,16,14,14,14,11,10, 7, 7, 7,13, |
12,12,12,12,11,11,11,11,15,14,17,13,12,12,12,11, |
11,15,15,15,14,13,13,10, 9, 9,14,12,11,13,11,11, |
12,11,11,16,15,14,14,11,11,12,11,11,17,14,14,15, |
11,11, 7, 8, 8,12,11,11,13,10,10,11,10,10,17,14, |
13,14,10,10,12,10,10,18,15,15,14,10,10, 8, 7, 7, |
13,12,12,13,11,11,12,11,11,16,14,15,14,12,12,12, |
11,11,18,16,16,14,12,12,11,10,10,13,12,11,13,11, |
11,13,12,12, 0,15,14,14,11,11,13,11,11,16,15,15, |
15,11,11, |
}; |
static const static_codebook _44pn1_p5_0 = { |
5, 243, |
(char *)_vq_lengthlist__44pn1_p5_0, |
1, -527106048, 1620377600, 2, 0, |
(long *)_vq_quantlist__44pn1_p5_0, |
0 |
}; |
static const long _vq_quantlist__44pn1_p5_1[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44pn1_p5_1[] = { |
2, 6, 7, 6, 8, 8, 7, 7, 8, 7, 8, 8, 9, 9, 9, 8, |
7, 7, 8, 8, 8, 9, 9, 9, 9, 8, 8, 6, 6, 6, 9, 7, |
7, 9, 7, 7, 9, 8, 8,10, 8, 8,10, 8, 8,10, 8, 8, |
10, 9, 8,10, 8, 8, 7, 6, 6, 9, 6, 6, 9, 6, 6, 9, |
7, 7,10, 8, 8,10, 6, 6, 9, 7, 7,10, 8, 8,10, 6, |
6, 7, 7, 7,11, 9, 9,11, 9, 9,10, 9, 9,12,10,10, |
12, 8, 8,11, 9, 9,13, 9,10,12, 8, 8, 8, 7, 7,11, |
9,10,11,10,10,10, 9, 9,11,11,11,11, 9, 9,11,10, |
9,12,11,11,11, 9,10,10, 8, 8,11, 9,10,11, 9, 9, |
11, 9, 9,12,10,10,11, 9, 9,11, 9, 9,12,10,11,11, |
9, 9, 8, 8, 8,12, 9, 9,12, 9, 9,11, 9, 9,13, 9, |
9,13, 8, 8,12, 9, 9,13,10,10,12, 8, 8, 9, 7, 7, |
11,10,10,11,10,10,11,10,10,12,11,11,11,10, 9,11, |
10,10,11,11,11,11, 9, 9,11, 9, 9,12,10,10,11,10, |
10,12,10,10,11,11,11,11, 9, 9,11,10,10,12,11,11, |
11, 9, 9, |
}; |
static const static_codebook _44pn1_p5_1 = { |
5, 243, |
(char *)_vq_lengthlist__44pn1_p5_1, |
1, -530841600, 1616642048, 2, 0, |
(long *)_vq_quantlist__44pn1_p5_1, |
0 |
}; |
static const long _vq_quantlist__44pn1_p6_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44pn1_p6_0[] = { |
1, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, |
}; |
static const static_codebook _44pn1_p6_0 = { |
5, 243, |
(char *)_vq_lengthlist__44pn1_p6_0, |
1, -516716544, 1630767104, 2, 0, |
(long *)_vq_quantlist__44pn1_p6_0, |
0 |
}; |
static const long _vq_quantlist__44pn1_p6_1[] = { |
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 const char _vq_lengthlist__44pn1_p6_1[] = { |
1, 3, 2, 5, 4, 7, 7, 8, 8, 9, 9,10,10,11,11,12, |
12,13,13,14,14,15,15,15,15, |
}; |
static const static_codebook _44pn1_p6_1 = { |
1, 25, |
(char *)_vq_lengthlist__44pn1_p6_1, |
1, -518864896, 1620639744, 5, 0, |
(long *)_vq_quantlist__44pn1_p6_1, |
0 |
}; |
static const long _vq_quantlist__44pn1_p6_2[] = { |
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 const char _vq_lengthlist__44pn1_p6_2[] = { |
3, 5, 4, 5, 4, 5, 4, 5, 5, 5, 4, 5, 5, 5, 5, 5, |
5, 5, 5, 5, 5, 5, 5, 5, 5, |
}; |
static const static_codebook _44pn1_p6_2 = { |
1, 25, |
(char *)_vq_lengthlist__44pn1_p6_2, |
1, -529006592, 1611661312, 5, 0, |
(long *)_vq_quantlist__44pn1_p6_2, |
0 |
}; |
static const char _huff_lengthlist__44pn1_short[] = { |
4, 3, 7, 9,12,16,16, 3, 2, 5, 7,11,14,15, 7, 4, |
5, 6, 9,12,15, 8, 5, 5, 5, 8,10,14, 9, 7, 6, 6, |
8,10,12,12,10,10, 7, 6, 8,10,15,12,10, 6, 4, 7, |
9, |
}; |
static const static_codebook _huff_book__44pn1_short = { |
2, 49, |
(char *)_huff_lengthlist__44pn1_short, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
/contrib/sdk/sources/libvorbis-1.3.7/lib/books/coupled/res_books_stereo.h |
---|
0,0 → 1,15782 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: static codebooks autogenerated by huff/huffbuld |
********************************************************************/ |
#include "codebook.h" |
static const long _vq_quantlist__16c0_s_p1_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__16c0_s_p1_0[] = { |
1, 4, 4, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 0, |
0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 5, 8, 8, 0, 0, 0, 0, 0, 0, 8, 9,10, 0, 0, 0, |
0, 0, 0, 7, 9,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 5, 8, 8, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, |
0, 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 8, 8, 0, 0, 0, 0, |
0, 0, 8,10,10, 0, 0, 0, 0, 0, 0, 8,10,10, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,10,10, 0, 0, 0, |
0, 0, 0, 9, 9,12, 0, 0, 0, 0, 0, 0,10,12,11, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,10,10, 0, 0, |
0, 0, 0, 0, 9,12,10, 0, 0, 0, 0, 0, 0,10,11,12, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 5, 8, 8, 0, 0, 0, 0, 0, 0, 8,10,10, 0, 0, |
0, 0, 0, 0, 8,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 7,10,10, 0, 0, 0, 0, 0, 0,10,12,11, 0, |
0, 0, 0, 0, 0, 9,10,12, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 7,10,10, 0, 0, 0, 0, 0, 0,10,11,12, |
0, 0, 0, 0, 0, 0, 9,12, 9, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, |
}; |
static const static_codebook _16c0_s_p1_0 = { |
8, 6561, |
(char *)_vq_lengthlist__16c0_s_p1_0, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__16c0_s_p1_0, |
0 |
}; |
static const long _vq_quantlist__16c0_s_p3_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__16c0_s_p3_0[] = { |
1, 4, 4, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 6, 6, 7, 6, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 4, 6, 6, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 9, 9, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 6, 6, 6, 9, 9, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, |
}; |
static const static_codebook _16c0_s_p3_0 = { |
4, 625, |
(char *)_vq_lengthlist__16c0_s_p3_0, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__16c0_s_p3_0, |
0 |
}; |
static const long _vq_quantlist__16c0_s_p4_0[] = { |
4, |
3, |
5, |
2, |
6, |
1, |
7, |
0, |
8, |
}; |
static const char _vq_lengthlist__16c0_s_p4_0[] = { |
1, 3, 2, 7, 8, 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, |
0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0, 7, 7, |
0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, |
8, 8, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, |
0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, |
}; |
static const static_codebook _16c0_s_p4_0 = { |
2, 81, |
(char *)_vq_lengthlist__16c0_s_p4_0, |
1, -531628032, 1611661312, 4, 0, |
(long *)_vq_quantlist__16c0_s_p4_0, |
0 |
}; |
static const long _vq_quantlist__16c0_s_p5_0[] = { |
4, |
3, |
5, |
2, |
6, |
1, |
7, |
0, |
8, |
}; |
static const char _vq_lengthlist__16c0_s_p5_0[] = { |
1, 3, 3, 6, 6, 6, 6, 8, 8, 0, 0, 0, 7, 7, 7, 7, |
8, 8, 0, 0, 0, 7, 7, 7, 7, 8, 8, 0, 0, 0, 7, 7, |
8, 8, 9, 9, 0, 0, 0, 7, 7, 8, 8, 9, 9, 0, 0, 0, |
8, 9, 8, 8,10,10, 0, 0, 0, 8, 8, 8, 8,10,10, 0, |
0, 0,10,10, 9, 9,10,10, 0, 0, 0, 0, 0, 9, 9,10, |
10, |
}; |
static const static_codebook _16c0_s_p5_0 = { |
2, 81, |
(char *)_vq_lengthlist__16c0_s_p5_0, |
1, -531628032, 1611661312, 4, 0, |
(long *)_vq_quantlist__16c0_s_p5_0, |
0 |
}; |
static const long _vq_quantlist__16c0_s_p6_0[] = { |
8, |
7, |
9, |
6, |
10, |
5, |
11, |
4, |
12, |
3, |
13, |
2, |
14, |
1, |
15, |
0, |
16, |
}; |
static const char _vq_lengthlist__16c0_s_p6_0[] = { |
1, 3, 4, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9,10,10,11, |
11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,10,10,11, |
11,11, 0, 0, 0, 6, 6, 8, 8, 9, 9, 9, 9,10,10,11, |
11,11,11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,10, |
11,11,12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10, |
10,11,11,12,12, 0, 0, 0, 8, 8, 9, 9,10,10,10,10, |
11,11,12,12,12,12, 0, 0, 0, 8, 8, 9, 9,10,10,10, |
10,11,11,12,12,12,13, 0, 0, 0, 9, 9, 9, 9,10,10, |
10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0,10,10,10, |
10,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, 9, |
10,10,11,11,12,12,13,13,13,13, 0, 0, 0, 0, 0, 9, |
9,10,10,11,11,12,12,13,13,13,14, 0, 0, 0, 0, 0, |
10,10,10,11,11,11,12,12,13,13,13,14, 0, 0, 0, 0, |
0, 0, 0,10,10,11,11,12,12,13,13,14,14, 0, 0, 0, |
0, 0, 0, 0,11,11,12,12,13,13,13,13,14,14, 0, 0, |
0, 0, 0, 0, 0,11,11,12,12,12,13,13,14,15,14, 0, |
0, 0, 0, 0, 0, 0,12,12,12,12,13,13,13,14,14,15, |
0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,13,13,14,13,14, |
14, |
}; |
static const static_codebook _16c0_s_p6_0 = { |
2, 289, |
(char *)_vq_lengthlist__16c0_s_p6_0, |
1, -529530880, 1611661312, 5, 0, |
(long *)_vq_quantlist__16c0_s_p6_0, |
0 |
}; |
static const long _vq_quantlist__16c0_s_p7_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__16c0_s_p7_0[] = { |
1, 4, 4, 6, 6, 6, 7, 6, 6, 4, 7, 7,11,10,10,11, |
11,10, 4, 7, 7,10,10,10,11,10,10, 6,10,10,11,11, |
11,11,11,10, 6, 9, 9,11,12,12,11, 9, 9, 6, 9,10, |
11,12,12,11, 9,10, 7,11,11,11,11,11,12,13,12, 6, |
9,10,11,10,10,12,13,13, 6,10, 9,11,10,10,11,12, |
13, |
}; |
static const static_codebook _16c0_s_p7_0 = { |
4, 81, |
(char *)_vq_lengthlist__16c0_s_p7_0, |
1, -529137664, 1618345984, 2, 0, |
(long *)_vq_quantlist__16c0_s_p7_0, |
0 |
}; |
static const long _vq_quantlist__16c0_s_p7_1[] = { |
5, |
4, |
6, |
3, |
7, |
2, |
8, |
1, |
9, |
0, |
10, |
}; |
static const char _vq_lengthlist__16c0_s_p7_1[] = { |
1, 3, 4, 6, 6, 7, 7, 8, 8, 8, 8,10,10,10, 7, 7, |
8, 8, 8, 9, 9, 9,10,10,10, 6, 7, 8, 8, 8, 8, 9, |
8,10,10,10, 7, 7, 8, 8, 9, 9, 9, 9,10,10,10, 7, |
7, 8, 8, 9, 9, 8, 9,10,10,10, 8, 8, 9, 9, 9, 9, |
9, 9,11,11,11, 8, 8, 9, 9, 9, 9, 9,10,10,11,11, |
9, 9, 9, 9, 9, 9, 9,10,11,11,11,10,11, 9, 9, 9, |
9,10, 9,11,11,11,10,11,10,10, 9, 9,10,10,11,11, |
11,11,11, 9, 9, 9, 9,10,10, |
}; |
static const static_codebook _16c0_s_p7_1 = { |
2, 121, |
(char *)_vq_lengthlist__16c0_s_p7_1, |
1, -531365888, 1611661312, 4, 0, |
(long *)_vq_quantlist__16c0_s_p7_1, |
0 |
}; |
static const long _vq_quantlist__16c0_s_p8_0[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__16c0_s_p8_0[] = { |
1, 4, 4, 7, 7, 7, 7, 7, 6, 8, 8,10,10, 6, 5, 6, |
8, 8, 8, 8, 8, 8, 8, 9,10,10, 7, 6, 6, 8, 8, 8, |
8, 8, 8, 8, 8,10,10, 0, 8, 8, 8, 8, 9, 8, 9, 9, |
9,10,10,10, 0, 9, 8, 8, 8, 9, 9, 8, 8, 9, 9,10, |
10, 0,12,11, 8, 8, 9, 9, 9, 9,10,10,11,10, 0,12, |
13, 8, 8, 9,10, 9, 9,11,11,11,12, 0, 0, 0, 8, 8, |
8, 8,10, 9,12,13,12,14, 0, 0, 0, 8, 8, 8, 9,10, |
10,12,12,13,14, 0, 0, 0,13,13, 9, 9,11,11, 0, 0, |
14, 0, 0, 0, 0,14,14,10,10,12,11,12,14,14,14, 0, |
0, 0, 0, 0,11,11,13,13,14,13,14,14, 0, 0, 0, 0, |
0,12,13,13,12,13,14,14,14, |
}; |
static const static_codebook _16c0_s_p8_0 = { |
2, 169, |
(char *)_vq_lengthlist__16c0_s_p8_0, |
1, -526516224, 1616117760, 4, 0, |
(long *)_vq_quantlist__16c0_s_p8_0, |
0 |
}; |
static const long _vq_quantlist__16c0_s_p8_1[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__16c0_s_p8_1[] = { |
1, 4, 3, 5, 5, 7, 7, 7, 6, 6, 7, 7, 7, 5, 5, 7, |
7, 7, 6, 6, 7, 7, 7, 6, 6, |
}; |
static const static_codebook _16c0_s_p8_1 = { |
2, 25, |
(char *)_vq_lengthlist__16c0_s_p8_1, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__16c0_s_p8_1, |
0 |
}; |
static const long _vq_quantlist__16c0_s_p9_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__16c0_s_p9_0[] = { |
1, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, |
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, |
8, 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, |
}; |
static const static_codebook _16c0_s_p9_0 = { |
4, 81, |
(char *)_vq_lengthlist__16c0_s_p9_0, |
1, -518803456, 1628680192, 2, 0, |
(long *)_vq_quantlist__16c0_s_p9_0, |
0 |
}; |
static const long _vq_quantlist__16c0_s_p9_1[] = { |
7, |
6, |
8, |
5, |
9, |
4, |
10, |
3, |
11, |
2, |
12, |
1, |
13, |
0, |
14, |
}; |
static const char _vq_lengthlist__16c0_s_p9_1[] = { |
1, 5, 5, 5, 5, 9,11,11,10,10,10,10,10,10,10, 7, |
6, 6, 6, 6,10,10,10,10,10,10,10,10,10,10, 7, 6, |
6, 6, 6,10, 9,10,10,10,10,10,10,10,10,10, 7, 7, |
8, 9,10,10,10,10,10,10,10,10,10,10,10, 8, 7,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, |
}; |
static const static_codebook _16c0_s_p9_1 = { |
2, 225, |
(char *)_vq_lengthlist__16c0_s_p9_1, |
1, -520986624, 1620377600, 4, 0, |
(long *)_vq_quantlist__16c0_s_p9_1, |
0 |
}; |
static const long _vq_quantlist__16c0_s_p9_2[] = { |
10, |
9, |
11, |
8, |
12, |
7, |
13, |
6, |
14, |
5, |
15, |
4, |
16, |
3, |
17, |
2, |
18, |
1, |
19, |
0, |
20, |
}; |
static const char _vq_lengthlist__16c0_s_p9_2[] = { |
1, 5, 5, 7, 8, 8, 7, 9, 9, 9,12,12,11,12,12,10, |
10,11,12,12,12,11,12,12, 8, 9, 8, 7, 9,10,10,11, |
11,10,11,12,10,12,10,12,12,12,11,12,11, 9, 8, 8, |
9,10, 9, 8, 9,10,12,12,11,11,12,11,10,11,12,11, |
12,12, 8, 9, 9, 9,10,11,12,11,12,11,11,11,11,12, |
12,11,11,12,12,11,11, 9, 9, 8, 9, 9,11, 9, 9,10, |
9,11,11,11,11,12,11,11,10,12,12,12, 9,12,11,10, |
11,11,11,11,12,12,12,11,11,11,12,10,12,12,12,10, |
10, 9,10, 9,10,10, 9, 9, 9,10,10,12,10,11,11, 9, |
11,11,10,11,11,11,10,10,10, 9, 9,10,10, 9, 9,10, |
11,11,10,11,10,11,10,11,11,10,11,11,11,10, 9,10, |
10, 9,10, 9, 9,11, 9, 9,11,10,10,11,11,10,10,11, |
10,11, 8, 9,11,11,10, 9,10,11,11,10,11,11,10,10, |
10,11,10, 9,10,10,11, 9,10,10, 9,11,10,10,10,10, |
11,10,11,11, 9,11,10,11,10,10,11,11,10,10,10, 9, |
10,10,11,11,11, 9,10,10,10,10,10,11,10,10,10, 9, |
10,10,11,10,10,10,10,10, 9,10,11,10,10,10,10,11, |
11,11,10,10,10,10,10,11,10,11,10,11,10,10,10, 9, |
11,11,10,10,10,11,11,10,10,10,10,10,10,10,10,11, |
11, 9,10,10,10,11,10,11,10,10,10,11, 9,10,11,10, |
11,10,10, 9,10,10,10,11,10,11,10,10,10,10,10,11, |
11,10,11,11,10,10,11,11,10, 9, 9,10,10,10,10,10, |
9,11, 9,10,10,10,11,11,10,10,10,10,11,11,11,10, |
9, 9,10,10,11,10,10,10,10,10,11,11,11,10,10,10, |
11,11,11, 9,10,10,10,10, 9,10, 9,10,11,10,11,10, |
10,11,11,10,11,11,11,11,11,10,11,10,10,10, 9,11, |
11,10,11,11,11,11,11,11,11,11,11,10,11,10,10,10, |
10,11,10,10,11, 9,10,10,10, |
}; |
static const static_codebook _16c0_s_p9_2 = { |
2, 441, |
(char *)_vq_lengthlist__16c0_s_p9_2, |
1, -529268736, 1611661312, 5, 0, |
(long *)_vq_quantlist__16c0_s_p9_2, |
0 |
}; |
static const char _huff_lengthlist__16c0_s_single[] = { |
3, 4,19, 7, 9, 7, 8,11, 9,12, 4, 1,19, 6, 7, 7, |
8,10,11,13,18,18,18,18,18,18,18,18,18,18, 8, 6, |
18, 8, 9, 9,11,12,14,18, 9, 6,18, 9, 7, 8, 9,11, |
12,18, 7, 6,18, 8, 7, 7, 7, 9,11,17, 8, 8,18, 9, |
7, 6, 6, 8,11,17,10,10,18,12, 9, 8, 7, 9,12,18, |
13,15,18,15,13,11,10,11,15,18,14,18,18,18,18,18, |
16,16,18,18, |
}; |
static const static_codebook _huff_book__16c0_s_single = { |
2, 100, |
(char *)_huff_lengthlist__16c0_s_single, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist__16c1_s_long[] = { |
2, 5,20, 7,10, 7, 8,10,11,11, 4, 2,20, 5, 8, 6, |
7, 9,10,10,20,20,20,20,19,19,19,19,19,19, 7, 5, |
19, 6,10, 7, 9,11,13,17,11, 8,19,10, 7, 7, 8,10, |
11,15, 7, 5,19, 7, 7, 5, 6, 9,11,16, 7, 6,19, 8, |
7, 6, 6, 7, 9,13, 9, 9,19,11, 9, 8, 6, 7, 8,13, |
12,14,19,16,13,10, 9, 8, 9,13,14,17,19,18,18,17, |
12,11,11,13, |
}; |
static const static_codebook _huff_book__16c1_s_long = { |
2, 100, |
(char *)_huff_lengthlist__16c1_s_long, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const long _vq_quantlist__16c1_s_p1_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__16c1_s_p1_0[] = { |
1, 5, 5, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 0, |
0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 5, 8, 7, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, |
0, 0, 0, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 5, 7, 8, 0, 0, 0, 0, 0, 0, 7, 9, 8, 0, 0, |
0, 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 8, 7, 0, 0, 0, 0, |
0, 0, 8, 9, 9, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, |
0, 0, 0, 9, 9,11, 0, 0, 0, 0, 0, 0, 9,11,10, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, |
0, 0, 0, 0, 8,11, 9, 0, 0, 0, 0, 0, 0, 9,10,11, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 5, 7, 8, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, |
0, 0, 0, 0, 8, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 9,11,10, 0, |
0, 0, 0, 0, 0, 8, 9,11, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 9,10,11, |
0, 0, 0, 0, 0, 0, 9,11, 9, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, |
}; |
static const static_codebook _16c1_s_p1_0 = { |
8, 6561, |
(char *)_vq_lengthlist__16c1_s_p1_0, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__16c1_s_p1_0, |
0 |
}; |
static const long _vq_quantlist__16c1_s_p3_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__16c1_s_p3_0[] = { |
1, 4, 4, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 5, 7, 7, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 4, 5, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 9, 9, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 6, 7, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, |
}; |
static const static_codebook _16c1_s_p3_0 = { |
4, 625, |
(char *)_vq_lengthlist__16c1_s_p3_0, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__16c1_s_p3_0, |
0 |
}; |
static const long _vq_quantlist__16c1_s_p4_0[] = { |
4, |
3, |
5, |
2, |
6, |
1, |
7, |
0, |
8, |
}; |
static const char _vq_lengthlist__16c1_s_p4_0[] = { |
1, 2, 3, 7, 7, 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, |
0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0, 7, 7, |
0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, |
8, 8, 0, 0, 0, 0, 0, 0, 0, 8, 9, 0, 0, 0, 0, 0, |
0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, |
}; |
static const static_codebook _16c1_s_p4_0 = { |
2, 81, |
(char *)_vq_lengthlist__16c1_s_p4_0, |
1, -531628032, 1611661312, 4, 0, |
(long *)_vq_quantlist__16c1_s_p4_0, |
0 |
}; |
static const long _vq_quantlist__16c1_s_p5_0[] = { |
4, |
3, |
5, |
2, |
6, |
1, |
7, |
0, |
8, |
}; |
static const char _vq_lengthlist__16c1_s_p5_0[] = { |
1, 3, 3, 5, 5, 6, 6, 8, 8, 0, 0, 0, 7, 7, 7, 7, |
9, 9, 0, 0, 0, 7, 7, 7, 7, 9, 9, 0, 0, 0, 8, 8, |
8, 8, 9, 9, 0, 0, 0, 8, 8, 8, 8,10,10, 0, 0, 0, |
9, 9, 8, 8,10,10, 0, 0, 0, 9, 9, 8, 8,10,10, 0, |
0, 0,10,10, 9, 9,10,10, 0, 0, 0, 0, 0, 9, 9,10, |
10, |
}; |
static const static_codebook _16c1_s_p5_0 = { |
2, 81, |
(char *)_vq_lengthlist__16c1_s_p5_0, |
1, -531628032, 1611661312, 4, 0, |
(long *)_vq_quantlist__16c1_s_p5_0, |
0 |
}; |
static const long _vq_quantlist__16c1_s_p6_0[] = { |
8, |
7, |
9, |
6, |
10, |
5, |
11, |
4, |
12, |
3, |
13, |
2, |
14, |
1, |
15, |
0, |
16, |
}; |
static const char _vq_lengthlist__16c1_s_p6_0[] = { |
1, 3, 3, 6, 6, 8, 8, 9, 9, 9, 9,10,10,11,11,12, |
12, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,10,11,11, |
12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,10,11, |
11,12,12, 0, 0, 0, 8, 8, 8, 9,10, 9,10,10,10,10, |
11,11,12,12, 0, 0, 0, 8, 8, 9, 9,10,10,10,10,11, |
11,11,12,12,12, 0, 0, 0, 8, 8, 9, 9,10,10,10,10, |
11,11,12,12,12,12, 0, 0, 0, 8, 8, 9, 9,10,10,10, |
10,11,11,12,12,13,13, 0, 0, 0, 9, 9, 9, 9,10,10, |
10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, 9,10, |
10,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, 9, |
10,10,11,11,12,12,12,12,13,13, 0, 0, 0, 0, 0, 9, |
9,10,10,11,11,12,12,12,12,13,13, 0, 0, 0, 0, 0, |
10,10,11,10,11,11,12,12,13,13,13,13, 0, 0, 0, 0, |
0, 0, 0,10,10,11,11,12,12,13,13,13,13, 0, 0, 0, |
0, 0, 0, 0,11,11,12,12,12,12,13,13,14,14, 0, 0, |
0, 0, 0, 0, 0,11,11,12,12,12,12,13,13,14,14, 0, |
0, 0, 0, 0, 0, 0,12,12,12,12,13,13,13,13,14,14, |
0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,13,13,13,13,14, |
14, |
}; |
static const static_codebook _16c1_s_p6_0 = { |
2, 289, |
(char *)_vq_lengthlist__16c1_s_p6_0, |
1, -529530880, 1611661312, 5, 0, |
(long *)_vq_quantlist__16c1_s_p6_0, |
0 |
}; |
static const long _vq_quantlist__16c1_s_p7_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__16c1_s_p7_0[] = { |
1, 4, 4, 6, 6, 6, 7, 6, 6, 4, 7, 7,10, 9,10,10, |
10, 9, 4, 7, 7,10,10,10,11,10,10, 6,10,10,11,11, |
11,11,10,10, 6,10, 9,11,11,11,11,10,10, 6,10,10, |
11,11,11,11,10,10, 7,11,11,11,11,11,12,12,11, 6, |
10,10,11,10,10,11,11,11, 6,10,10,10,11,10,11,11, |
11, |
}; |
static const static_codebook _16c1_s_p7_0 = { |
4, 81, |
(char *)_vq_lengthlist__16c1_s_p7_0, |
1, -529137664, 1618345984, 2, 0, |
(long *)_vq_quantlist__16c1_s_p7_0, |
0 |
}; |
static const long _vq_quantlist__16c1_s_p7_1[] = { |
5, |
4, |
6, |
3, |
7, |
2, |
8, |
1, |
9, |
0, |
10, |
}; |
static const char _vq_lengthlist__16c1_s_p7_1[] = { |
2, 3, 3, 5, 6, 7, 7, 7, 7, 8, 8,10,10,10, 6, 6, |
7, 7, 8, 8, 8, 8,10,10,10, 6, 6, 7, 7, 8, 8, 8, |
8,10,10,10, 7, 7, 7, 7, 8, 8, 8, 8,10,10,10, 7, |
7, 7, 7, 8, 8, 8, 8,10,10,10, 7, 7, 8, 8, 8, 8, |
8, 8,10,10,10, 7, 7, 8, 8, 8, 8, 8, 8,10,10,10, |
8, 8, 8, 8, 8, 8, 9, 9,10,10,10,10,10, 8, 8, 8, |
8, 9, 9,10,10,10,10,10, 9, 9, 8, 8, 9, 9,10,10, |
10,10,10, 8, 8, 8, 8, 9, 9, |
}; |
static const static_codebook _16c1_s_p7_1 = { |
2, 121, |
(char *)_vq_lengthlist__16c1_s_p7_1, |
1, -531365888, 1611661312, 4, 0, |
(long *)_vq_quantlist__16c1_s_p7_1, |
0 |
}; |
static const long _vq_quantlist__16c1_s_p8_0[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__16c1_s_p8_0[] = { |
1, 4, 4, 6, 6, 7, 7, 7, 7, 8, 8, 9, 9, 6, 5, 5, |
7, 8, 8, 9, 8, 8, 9, 9,10,11, 6, 5, 5, 8, 8, 9, |
9, 8, 8, 9,10,10,11, 0, 8, 8, 8, 9, 9, 9, 9, 9, |
10,10,11,11, 0, 9, 9, 9, 8, 9, 9, 9, 9,10,10,11, |
11, 0,13,13, 9, 9,10,10,10,10,11,11,12,12, 0,14, |
13, 9, 9,10,10,10,10,11,11,12,12, 0, 0, 0,10,10, |
9, 9,11,11,12,12,13,12, 0, 0, 0,10,10, 9, 9,10, |
10,12,12,13,13, 0, 0, 0,13,14,11,10,11,11,12,12, |
13,14, 0, 0, 0,14,14,10,10,11,11,12,12,13,13, 0, |
0, 0, 0, 0,12,12,12,12,13,13,14,15, 0, 0, 0, 0, |
0,12,12,12,12,13,13,14,15, |
}; |
static const static_codebook _16c1_s_p8_0 = { |
2, 169, |
(char *)_vq_lengthlist__16c1_s_p8_0, |
1, -526516224, 1616117760, 4, 0, |
(long *)_vq_quantlist__16c1_s_p8_0, |
0 |
}; |
static const long _vq_quantlist__16c1_s_p8_1[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__16c1_s_p8_1[] = { |
2, 3, 3, 5, 5, 6, 6, 6, 5, 5, 6, 6, 6, 5, 5, 6, |
6, 6, 5, 5, 6, 6, 6, 5, 5, |
}; |
static const static_codebook _16c1_s_p8_1 = { |
2, 25, |
(char *)_vq_lengthlist__16c1_s_p8_1, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__16c1_s_p8_1, |
0 |
}; |
static const long _vq_quantlist__16c1_s_p9_0[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__16c1_s_p9_0[] = { |
1, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, |
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, |
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, |
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, |
8, 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 const static_codebook _16c1_s_p9_0 = { |
2, 169, |
(char *)_vq_lengthlist__16c1_s_p9_0, |
1, -513964032, 1628680192, 4, 0, |
(long *)_vq_quantlist__16c1_s_p9_0, |
0 |
}; |
static const long _vq_quantlist__16c1_s_p9_1[] = { |
7, |
6, |
8, |
5, |
9, |
4, |
10, |
3, |
11, |
2, |
12, |
1, |
13, |
0, |
14, |
}; |
static const char _vq_lengthlist__16c1_s_p9_1[] = { |
1, 4, 4, 4, 4, 8, 8,12,13,14,14,14,14,14,14, 6, |
6, 6, 6, 6,10, 9,14,14,14,14,14,14,14,14, 7, 6, |
5, 6, 6,10, 9,12,13,13,13,13,13,13,13,13, 7, 7, |
9, 9,11,11,12,13,13,13,13,13,13,13,13, 7, 7, 8, |
8,11,12,13,13,13,13,13,13,13,13,13,12,12,10,10, |
13,12,13,13,13,13,13,13,13,13,13,12,12,10,10,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,12,13,12, |
13,13,13,13,13,13,13,13,13,13,13,13,12,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,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,12,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13, |
}; |
static const static_codebook _16c1_s_p9_1 = { |
2, 225, |
(char *)_vq_lengthlist__16c1_s_p9_1, |
1, -520986624, 1620377600, 4, 0, |
(long *)_vq_quantlist__16c1_s_p9_1, |
0 |
}; |
static const long _vq_quantlist__16c1_s_p9_2[] = { |
10, |
9, |
11, |
8, |
12, |
7, |
13, |
6, |
14, |
5, |
15, |
4, |
16, |
3, |
17, |
2, |
18, |
1, |
19, |
0, |
20, |
}; |
static const char _vq_lengthlist__16c1_s_p9_2[] = { |
1, 4, 4, 6, 6, 7, 7, 8, 7, 8, 8, 9, 9, 9, 9,10, |
10,10, 9,10,10,11,12,12, 8, 8, 8, 8, 9, 9, 9, 9, |
10,10,10,10,10,11,11,10,12,11,11,13,11, 7, 7, 8, |
8, 8, 8, 9, 9, 9,10,10,10,10, 9,10,10,11,11,12, |
11,11, 8, 8, 8, 8, 9, 9,10,10,10,10,11,11,11,11, |
11,11,11,12,11,12,12, 8, 8, 9, 9, 9, 9, 9,10,10, |
10,10,10,10,11,11,11,11,11,11,12,11, 9, 9, 9, 9, |
10,10,10,10,11,10,11,11,11,11,11,11,12,12,12,12, |
11, 9, 9, 9, 9,10,10,10,10,11,11,11,11,11,11,11, |
11,11,12,12,12,13, 9,10,10, 9,11,10,10,10,10,11, |
11,11,11,11,10,11,12,11,12,12,11,12,11,10, 9,10, |
10,11,10,11,11,11,11,11,11,11,11,11,12,12,11,12, |
12,12,10,10,10,11,10,11,11,11,11,11,11,11,11,11, |
11,11,12,13,12,12,11, 9,10,10,11,11,10,11,11,11, |
12,11,11,11,11,11,12,12,13,13,12,13,10,10,12,10, |
11,11,11,11,11,11,11,11,11,12,12,11,13,12,12,12, |
12,13,12,11,11,11,11,11,11,12,11,12,11,11,11,11, |
12,12,13,12,11,12,12,11,11,11,11,11,12,11,11,11, |
11,12,11,11,12,11,12,13,13,12,12,12,12,11,11,11, |
11,11,12,11,11,12,11,12,11,11,11,11,13,12,12,12, |
12,13,11,11,11,12,12,11,11,11,12,11,12,12,12,11, |
12,13,12,11,11,12,12,11,12,11,11,11,12,12,11,12, |
11,11,11,12,12,12,12,13,12,13,12,12,12,12,11,11, |
12,11,11,11,11,11,11,12,12,12,13,12,11,13,13,12, |
12,11,12,10,11,11,11,11,12,11,12,12,11,12,12,13, |
12,12,13,12,12,12,12,12,11,12,12,12,11,12,11,11, |
11,12,13,12,13,13,13,13,13,12,13,13,12,12,13,11, |
11,11,11,11,12,11,11,12,11, |
}; |
static const static_codebook _16c1_s_p9_2 = { |
2, 441, |
(char *)_vq_lengthlist__16c1_s_p9_2, |
1, -529268736, 1611661312, 5, 0, |
(long *)_vq_quantlist__16c1_s_p9_2, |
0 |
}; |
static const char _huff_lengthlist__16c1_s_short[] = { |
5, 6,17, 8,12, 9,10,10,12,13, 5, 2,17, 4, 9, 5, |
7, 8,11,13,16,16,16,16,16,16,16,16,16,16, 6, 4, |
16, 5,10, 5, 7,10,14,16,13, 9,16,11, 8, 7, 8, 9, |
13,16, 7, 4,16, 5, 7, 4, 6, 8,11,13, 8, 6,16, 7, |
8, 5, 5, 7, 9,13, 9, 8,16, 9, 8, 6, 6, 7, 9,13, |
11,11,16,10,10, 7, 7, 7, 9,13,13,13,16,13,13, 9, |
9, 9,10,13, |
}; |
static const static_codebook _huff_book__16c1_s_short = { |
2, 100, |
(char *)_huff_lengthlist__16c1_s_short, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist__16c2_s_long[] = { |
4, 7, 9, 9, 9, 8, 9,10,13,16, 5, 4, 5, 6, 7, 7, |
8, 9,12,16, 6, 5, 5, 5, 7, 7, 9,10,12,15, 7, 6, |
5, 4, 5, 6, 8, 9,10,13, 8, 7, 7, 5, 5, 5, 7, 9, |
10,12, 7, 7, 7, 6, 5, 5, 6, 7,10,12, 8, 8, 8, 7, |
7, 5, 5, 6, 9,11, 8, 9, 9, 8, 8, 6, 6, 5, 8,11, |
10,11,12,12,11, 9, 9, 8, 9,12,13,14,15,15,14,12, |
12,11,11,13, |
}; |
static const static_codebook _huff_book__16c2_s_long = { |
2, 100, |
(char *)_huff_lengthlist__16c2_s_long, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const long _vq_quantlist__16c2_s_p1_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__16c2_s_p1_0[] = { |
1, 3, 3, 0, 0, 0, 0, 0, 0, 4, 5, 5, 0, 0, 0, 0, |
0, 0, 4, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, |
}; |
static const static_codebook _16c2_s_p1_0 = { |
4, 81, |
(char *)_vq_lengthlist__16c2_s_p1_0, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__16c2_s_p1_0, |
0 |
}; |
static const long _vq_quantlist__16c2_s_p2_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__16c2_s_p2_0[] = { |
2, 4, 4, 7, 7, 0, 0, 0, 8, 8, 0, 0, 0, 8, 8, 0, |
0, 0, 8, 8, 0, 0, 0, 8, 8, 4, 4, 4, 8, 7, 0, 0, |
0, 8, 8, 0, 0, 0, 8, 8, 0, 0, 0, 9, 9, 0, 0, 0, |
9, 9, 4, 4, 4, 7, 8, 0, 0, 0, 8, 8, 0, 0, 0, 8, |
8, 0, 0, 0, 9, 9, 0, 0, 0, 9, 9, 7, 8, 8,10, 9, |
0, 0, 0,12,11, 0, 0, 0,11,12, 0, 0, 0,14,13, 0, |
0, 0,14,14, 7, 8, 8, 9,10, 0, 0, 0,11,12, 0, 0, |
0,11,11, 0, 0, 0,14,14, 0, 0, 0,14,14, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 8,11,11, 0, 0, 0, |
12,11, 0, 0, 0,12,12, 0, 0, 0,13,12, 0, 0, 0,13, |
13, 8, 8, 8,11,11, 0, 0, 0,11,11, 0, 0, 0,12,12, |
0, 0, 0,13,13, 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 8, 9, 8,12,11, 0, 0, 0,12,12, 0, |
0, 0,12,11, 0, 0, 0,13,13, 0, 0, 0,13,13, 8, 8, |
8,11,12, 0, 0, 0,11,12, 0, 0, 0,11,12, 0, 0, 0, |
13,14, 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 8, 9, 9,14,14, 0, 0, 0,13,13, 0, 0, 0,13, |
13, 0, 0, 0,13,12, 0, 0, 0,13,13, 8, 9, 9,14,14, |
0, 0, 0,13,13, 0, 0, 0,13,13, 0, 0, 0,12,13, 0, |
0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, |
9, 9,14,14, 0, 0, 0,13,13, 0, 0, 0,13,13, 0, 0, |
0,13,13, 0, 0, 0,13,12, 8, 9, 9,14,14, 0, 0, 0, |
13,13, 0, 0, 0,13,13, 0, 0, 0,13,13, 0, 0, 0,12, |
12, |
}; |
static const static_codebook _16c2_s_p2_0 = { |
4, 625, |
(char *)_vq_lengthlist__16c2_s_p2_0, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__16c2_s_p2_0, |
0 |
}; |
static const long _vq_quantlist__16c2_s_p3_0[] = { |
4, |
3, |
5, |
2, |
6, |
1, |
7, |
0, |
8, |
}; |
static const char _vq_lengthlist__16c2_s_p3_0[] = { |
1, 3, 3, 5, 5, 7, 7, 8, 8, 0, 0, 0, 6, 6, 8, 8, |
9, 9, 0, 0, 0, 6, 6, 8, 8, 9, 9, 0, 0, 0, 7, 7, |
8, 9,10,10, 0, 0, 0, 7, 7, 9, 9,10,10, 0, 0, 0, |
8, 8, 9, 9,11,11, 0, 0, 0, 7, 7, 9, 9,11,11, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, |
}; |
static const static_codebook _16c2_s_p3_0 = { |
2, 81, |
(char *)_vq_lengthlist__16c2_s_p3_0, |
1, -531628032, 1611661312, 4, 0, |
(long *)_vq_quantlist__16c2_s_p3_0, |
0 |
}; |
static const long _vq_quantlist__16c2_s_p4_0[] = { |
8, |
7, |
9, |
6, |
10, |
5, |
11, |
4, |
12, |
3, |
13, |
2, |
14, |
1, |
15, |
0, |
16, |
}; |
static const char _vq_lengthlist__16c2_s_p4_0[] = { |
2, 3, 3, 5, 5, 6, 6, 6, 6, 7, 7, 8, 8, 8, 8, 9, |
9, 0, 0, 0, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9,10,10, |
11,10, 0, 0, 0, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9,10, |
10,10,10, 0, 0, 0, 6, 6, 8, 8, 9, 9, 9, 9,10,10, |
11,11,11,11, 0, 0, 0, 7, 6, 8, 8, 9, 9, 9, 9,10, |
10,11,11,11,11, 0, 0, 0, 7, 7, 8, 8, 9, 9,10,10, |
11,11,11,11,12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9,10, |
10,11,11,11,11,12,12, 0, 0, 0, 7, 8, 8, 8, 9, 9, |
10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 8, 8, 9, |
9,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, |
}; |
static const static_codebook _16c2_s_p4_0 = { |
2, 289, |
(char *)_vq_lengthlist__16c2_s_p4_0, |
1, -529530880, 1611661312, 5, 0, |
(long *)_vq_quantlist__16c2_s_p4_0, |
0 |
}; |
static const long _vq_quantlist__16c2_s_p5_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__16c2_s_p5_0[] = { |
1, 4, 4, 5, 7, 7, 6, 7, 7, 4, 6, 6,10,11,10,10, |
10,11, 4, 6, 6,10,10,11,10,11,10, 5,10,10, 9,12, |
11,10,12,12, 7,10,10,12,12,12,12,13,13, 7,11,10, |
11,12,12,12,13,13, 6,11,10,10,12,12,11,12,12, 7, |
11,10,12,13,13,12,12,12, 7,10,11,12,13,13,12,12, |
12, |
}; |
static const static_codebook _16c2_s_p5_0 = { |
4, 81, |
(char *)_vq_lengthlist__16c2_s_p5_0, |
1, -529137664, 1618345984, 2, 0, |
(long *)_vq_quantlist__16c2_s_p5_0, |
0 |
}; |
static const long _vq_quantlist__16c2_s_p5_1[] = { |
5, |
4, |
6, |
3, |
7, |
2, |
8, |
1, |
9, |
0, |
10, |
}; |
static const char _vq_lengthlist__16c2_s_p5_1[] = { |
2, 3, 3, 6, 6, 6, 6, 7, 7, 7, 7,11,10,10, 6, 6, |
7, 7, 8, 8, 8, 8,10,10,10, 6, 6, 7, 7, 8, 8, 8, |
8,11,11,11, 7, 7, 8, 8, 8, 8, 9, 9,11,11,11, 6, |
7, 8, 8, 8, 8, 9, 9,11,11,11, 7, 7, 8, 8, 8, 8, |
8, 8,11,11,11, 7, 7, 8, 8, 8, 8, 9, 9,11,11,11, |
8, 8, 8, 8, 8, 8, 8, 8,11,11,11,11,11, 8, 8, 8, |
8, 8, 8,12,11,11,11,11, 8, 8, 8, 8, 8, 8,12,11, |
11,11,11, 7, 7, 8, 8, 8, 8, |
}; |
static const static_codebook _16c2_s_p5_1 = { |
2, 121, |
(char *)_vq_lengthlist__16c2_s_p5_1, |
1, -531365888, 1611661312, 4, 0, |
(long *)_vq_quantlist__16c2_s_p5_1, |
0 |
}; |
static const long _vq_quantlist__16c2_s_p6_0[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__16c2_s_p6_0[] = { |
1, 4, 4, 6, 6, 8, 7, 8, 8, 9, 9,10,10, 5, 5, 5, |
7, 7, 9, 9, 9, 9,11,11,12,12, 6, 5, 5, 7, 7, 9, |
9,10, 9,11,11,12,12, 0, 7, 7, 7, 7, 9, 9,10,10, |
11,11,12,12, 0, 7, 7, 7, 7, 9, 9,10,10,11,11,12, |
12, 0,11,11, 8, 8,10,10,11,11,12,12,13,13, 0,12, |
12, 9, 9,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, |
}; |
static const static_codebook _16c2_s_p6_0 = { |
2, 169, |
(char *)_vq_lengthlist__16c2_s_p6_0, |
1, -526516224, 1616117760, 4, 0, |
(long *)_vq_quantlist__16c2_s_p6_0, |
0 |
}; |
static const long _vq_quantlist__16c2_s_p6_1[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__16c2_s_p6_1[] = { |
2, 3, 3, 5, 5, 6, 6, 6, 5, 5, 6, 6, 6, 5, 5, 6, |
6, 6, 5, 5, 6, 6, 6, 5, 5, |
}; |
static const static_codebook _16c2_s_p6_1 = { |
2, 25, |
(char *)_vq_lengthlist__16c2_s_p6_1, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__16c2_s_p6_1, |
0 |
}; |
static const long _vq_quantlist__16c2_s_p7_0[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__16c2_s_p7_0[] = { |
1, 4, 4, 7, 7, 8, 8, 8, 8,10, 9,10,10, 5, 5, 5, |
7, 7, 9, 9,10,10,11,10,12,11, 6, 5, 5, 7, 7, 9, |
9,10,10,11,11,12,12,20, 7, 7, 7, 7, 9, 9,10,10, |
11,11,12,12,20, 7, 7, 7, 7, 9, 9,11,10,12,11,12, |
12,20,11,11, 8, 8,10,10,11,11,12,12,13,13,20,12, |
12, 8, 8, 9, 9,11,11,12,12,13,13,20,20,21,10,10, |
10,10,11,11,12,12,13,13,21,21,21,10,10,10,10,11, |
11,12,12,13,13,21,21,21,14,14,11,11,12,12,13,13, |
13,14,21,21,21,16,15,11,11,12,11,13,13,14,14,21, |
21,21,21,21,13,13,12,12,13,13,14,14,21,21,21,21, |
21,13,13,12,12,13,13,14,14, |
}; |
static const static_codebook _16c2_s_p7_0 = { |
2, 169, |
(char *)_vq_lengthlist__16c2_s_p7_0, |
1, -523206656, 1618345984, 4, 0, |
(long *)_vq_quantlist__16c2_s_p7_0, |
0 |
}; |
static const long _vq_quantlist__16c2_s_p7_1[] = { |
5, |
4, |
6, |
3, |
7, |
2, |
8, |
1, |
9, |
0, |
10, |
}; |
static const char _vq_lengthlist__16c2_s_p7_1[] = { |
2, 4, 4, 6, 6, 7, 7, 7, 7, 7, 7, 9, 9, 9, 6, 7, |
7, 7, 7, 7, 8, 8, 9, 9, 9, 6, 6, 7, 7, 7, 7, 8, |
8, 9, 9, 9, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 7, |
7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 7, 7, 7, 7, 8, 8, |
8, 8, 9, 9, 9, 7, 7, 7, 7, 7, 7, 8, 8, 9, 9, 9, |
7, 7, 8, 8, 7, 7, 8, 8, 9, 9, 9, 9, 9, 8, 8, 7, |
7, 8, 8, 9, 9, 9, 9, 9, 8, 8, 7, 7, 8, 8, 9, 9, |
9, 9, 9, 7, 7, 7, 7, 8, 8, |
}; |
static const static_codebook _16c2_s_p7_1 = { |
2, 121, |
(char *)_vq_lengthlist__16c2_s_p7_1, |
1, -531365888, 1611661312, 4, 0, |
(long *)_vq_quantlist__16c2_s_p7_1, |
0 |
}; |
static const long _vq_quantlist__16c2_s_p8_0[] = { |
7, |
6, |
8, |
5, |
9, |
4, |
10, |
3, |
11, |
2, |
12, |
1, |
13, |
0, |
14, |
}; |
static const char _vq_lengthlist__16c2_s_p8_0[] = { |
1, 4, 4, 6, 6, 7, 7, 7, 7, 8, 8, 9, 9,10,10, 6, |
6, 6, 8, 8, 9, 9, 8, 8, 9, 9,10,10,11,11, 6, 5, |
5, 8, 7, 9, 9, 8, 8, 9, 9,10,10,11,11,20, 8, 8, |
8, 8, 9, 9, 9, 9,10,10,11,10,12,11,20, 8, 8, 8, |
8, 9, 9, 9, 9,10,10,11,11,12,12,20,12,12, 9, 9, |
10,10,10,10,11,11,12,12,13,12,20,13,13, 9, 9,10, |
10,10,10,11,11,12,12,13,13,20,20,20, 9, 9, 9, 9, |
10,10,11,11,12,12,13,12,20,20,20, 9, 9, 9, 8,10, |
10,12,11,12,12,13,13,20,20,20,13,13,10,10,11,11, |
12,12,13,13,13,13,20,20,20,13,13,10,10,11,10,12, |
11,13,13,14,14,20,20,20,20,20,11,11,11,11,12,12, |
13,13,14,14,20,20,20,20,20,11,10,11,11,13,11,13, |
13,14,14,20,20,21,21,21,14,14,11,12,13,13,13,13, |
14,14,21,21,21,21,21,15,15,12,11,13,12,14,13,15, |
14, |
}; |
static const static_codebook _16c2_s_p8_0 = { |
2, 225, |
(char *)_vq_lengthlist__16c2_s_p8_0, |
1, -520986624, 1620377600, 4, 0, |
(long *)_vq_quantlist__16c2_s_p8_0, |
0 |
}; |
static const long _vq_quantlist__16c2_s_p8_1[] = { |
10, |
9, |
11, |
8, |
12, |
7, |
13, |
6, |
14, |
5, |
15, |
4, |
16, |
3, |
17, |
2, |
18, |
1, |
19, |
0, |
20, |
}; |
static const char _vq_lengthlist__16c2_s_p8_1[] = { |
2, 4, 4, 6, 6, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, |
8, 8, 8, 8, 8,11,11,11, 7, 7, 8, 8, 8, 8, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,11,10, 7, 7, 8, |
8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,11, |
11,11, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9,11,11,11, 8, 8, 8, 8, 9, 9, 9, 9, 9, |
9, 9, 9,10, 9,10,10,10,10,11,11,11, 8, 8, 9, 9, |
9, 9, 9, 9, 9, 9,10,10,10,10,10,10,10,10,11,11, |
11, 8, 8, 9, 9, 9, 9, 9, 9, 9,10,10,10,10,10,10, |
10,10,10,11,11,11, 9, 9, 9, 9, 9, 9, 9, 9,10,10, |
10,10,10,10,10,10,10,10,11,11,11,11,11, 9, 9, 9, |
9, 9, 9,10,10,10,10,10,10,10,10,10,10,11,11,11, |
11,11, 9, 9, 9, 9,10,10,10,10,10,10,10,10,10,10, |
10,10,11,11,11,11,11, 9, 9, 9, 9,10,10,10,10,10, |
10,10,10,10,10,10,10,11,11,11,11,11,10, 9,10,10, |
10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11, |
11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10, |
10,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10, |
10,10,10,10,10,10,11,11,11,11,11,11,11,10,10,10, |
10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11, |
11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10, |
11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10, |
10,10,10,10,10,11,11,11,11,11,11,11,11,11,10,10, |
10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11, |
11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,11, |
11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10, |
10,10,10,10,11,11,11,11,11,11,11,11,11,11,11,10, |
10,10,10,10,10,10,10,10,10, |
}; |
static const static_codebook _16c2_s_p8_1 = { |
2, 441, |
(char *)_vq_lengthlist__16c2_s_p8_1, |
1, -529268736, 1611661312, 5, 0, |
(long *)_vq_quantlist__16c2_s_p8_1, |
0 |
}; |
static const long _vq_quantlist__16c2_s_p9_0[] = { |
8, |
7, |
9, |
6, |
10, |
5, |
11, |
4, |
12, |
3, |
13, |
2, |
14, |
1, |
15, |
0, |
16, |
}; |
static const char _vq_lengthlist__16c2_s_p9_0[] = { |
1, 4, 3,10, 8,10,10,10,10,10,10,10,10,10,10,10, |
10, 6,10,10,10,10,10,10,10,10,10,10,10,10,10,10, |
10,10, 6,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,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 const static_codebook _16c2_s_p9_0 = { |
2, 289, |
(char *)_vq_lengthlist__16c2_s_p9_0, |
1, -509798400, 1631393792, 5, 0, |
(long *)_vq_quantlist__16c2_s_p9_0, |
0 |
}; |
static const long _vq_quantlist__16c2_s_p9_1[] = { |
9, |
8, |
10, |
7, |
11, |
6, |
12, |
5, |
13, |
4, |
14, |
3, |
15, |
2, |
16, |
1, |
17, |
0, |
18, |
}; |
static const char _vq_lengthlist__16c2_s_p9_1[] = { |
1, 4, 4, 7, 7, 7, 7, 7, 7, 8, 8,10, 9,11,10,13, |
11,14,13, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8,11, 9, |
13,11,14,12,14,13, 5, 6, 6, 8, 8, 8, 8, 8, 8, 9, |
9,11,11,13,11,14,13,15,15,17, 8, 8, 8, 8, 9, 9, |
9, 8,11, 9,12,10,13,11,14,12,14,13,17, 8, 8, 8, |
8, 9, 9, 9, 9,10,10,11,11,13,13,13,14,16,15,17, |
12,12, 8, 8, 9, 9,10,10,11,11,12,11,13,12,13,12, |
14,13,16,12,12, 8, 8, 9, 9,10,10,11,11,12,12,13, |
13,14,14,15,15,17,17,17, 9, 9, 9, 9,11,11,12,12, |
12,13,13,13,16,14,14,14,17,17,17, 9, 8, 9, 8,11, |
10,12,12,13,13,14,14,15,15,16,16,17,17,17,12,12, |
10,10,11,12,12,13,13,14,13,15,15,14,16,15,17,17, |
17,12,12,10, 8,12, 9,13,12,14,14,15,14,15,16,16, |
16,17,17,17,17,17,11,11,12,12,14,14,14,16,15,16, |
15,16,15,17,17,17,17,17,17,11, 9,12,10,13,11,15, |
14,16,16,17,16,16,15,17,17,17,17,17,15,15,12,12, |
14,14,15,16,16,15,16,16,17,17,17,17,17,17,17,14, |
14,12,10,14,11,15,12,17,16,15,16,17,16,17,17,17, |
17,17,17,17,13,13,14,14,14,16,17,17,16,17,17,17, |
17,17,17,17,17,17,17,13, 9,13,12,15,13,16,16,17, |
17,17,17,17,17,17,17,17,17,17,15,17,14,14,15,16, |
16,17,16,17,16,17,17,17,17,17,17,17,17,17,17,14, |
13,15,16,16,17,16,17,17,17, |
}; |
static const static_codebook _16c2_s_p9_1 = { |
2, 361, |
(char *)_vq_lengthlist__16c2_s_p9_1, |
1, -518287360, 1622704128, 5, 0, |
(long *)_vq_quantlist__16c2_s_p9_1, |
0 |
}; |
static const long _vq_quantlist__16c2_s_p9_2[] = { |
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 const char _vq_lengthlist__16c2_s_p9_2[] = { |
2, 4, 4, 4, 4, 5, 5, 5, 5, 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, |
}; |
static const static_codebook _16c2_s_p9_2 = { |
1, 49, |
(char *)_vq_lengthlist__16c2_s_p9_2, |
1, -526909440, 1611661312, 6, 0, |
(long *)_vq_quantlist__16c2_s_p9_2, |
0 |
}; |
static const char _huff_lengthlist__16c2_s_short[] = { |
7,10,12,11,12,13,15,16,18,15,10, 8, 8, 8, 9,10, |
12,13,14,17,10, 7, 7, 7, 7, 8,10,12,15,18,10, 7, |
7, 5, 5, 6, 8,10,13,15,10, 7, 6, 5, 4, 4, 6, 9, |
12,15,11, 7, 7, 5, 4, 3, 4, 7,11,13,12, 9, 8, 7, |
5, 4, 4, 5,10,13,11,11,11, 9, 7, 5, 5, 5, 9,12, |
13,12,13,12,10, 8, 8, 7, 9,13,14,14,14,14,13,11, |
11,10,10,13, |
}; |
static const static_codebook _huff_book__16c2_s_short = { |
2, 100, |
(char *)_huff_lengthlist__16c2_s_short, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const long _vq_quantlist__8c0_s_p1_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__8c0_s_p1_0[] = { |
1, 5, 4, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 0, |
0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 5, 8, 8, 0, 0, 0, 0, 0, 0, 7, 8, 9, 0, 0, 0, |
0, 0, 0, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 5, 8, 8, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, |
0, 0, 0, 0, 7, 9, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 8, 8, 0, 0, 0, 0, |
0, 0, 8,10,10, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,10, 9, 0, 0, 0, |
0, 0, 0, 8, 9,11, 0, 0, 0, 0, 0, 0, 9,11,11, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9,10, 0, 0, |
0, 0, 0, 0, 9,11,10, 0, 0, 0, 0, 0, 0, 9,11,11, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 5, 8, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, 0, |
0, 0, 0, 0, 8, 9,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 9,11,11, 0, |
0, 0, 0, 0, 0, 9,10,11, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 7, 9,10, 0, 0, 0, 0, 0, 0, 9,11,11, |
0, 0, 0, 0, 0, 0, 8,11, 9, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, |
}; |
static const static_codebook _8c0_s_p1_0 = { |
8, 6561, |
(char *)_vq_lengthlist__8c0_s_p1_0, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__8c0_s_p1_0, |
0 |
}; |
static const long _vq_quantlist__8c0_s_p3_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__8c0_s_p3_0[] = { |
1, 4, 4, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 6, 7, 7, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 4, 5, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7, 7, 8, 8, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 6, 7, 7, 8, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, |
}; |
static const static_codebook _8c0_s_p3_0 = { |
4, 625, |
(char *)_vq_lengthlist__8c0_s_p3_0, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__8c0_s_p3_0, |
0 |
}; |
static const long _vq_quantlist__8c0_s_p4_0[] = { |
4, |
3, |
5, |
2, |
6, |
1, |
7, |
0, |
8, |
}; |
static const char _vq_lengthlist__8c0_s_p4_0[] = { |
1, 2, 3, 7, 7, 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, |
0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0, 7, 7, |
0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, |
8, 8, 0, 0, 0, 0, 0, 0, 0, 9, 8, 0, 0, 0, 0, 0, |
0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, |
}; |
static const static_codebook _8c0_s_p4_0 = { |
2, 81, |
(char *)_vq_lengthlist__8c0_s_p4_0, |
1, -531628032, 1611661312, 4, 0, |
(long *)_vq_quantlist__8c0_s_p4_0, |
0 |
}; |
static const long _vq_quantlist__8c0_s_p5_0[] = { |
4, |
3, |
5, |
2, |
6, |
1, |
7, |
0, |
8, |
}; |
static const char _vq_lengthlist__8c0_s_p5_0[] = { |
1, 3, 3, 5, 5, 7, 6, 8, 8, 0, 0, 0, 7, 7, 7, 7, |
8, 8, 0, 0, 0, 7, 7, 7, 7, 8, 9, 0, 0, 0, 8, 8, |
8, 8, 9, 9, 0, 0, 0, 8, 8, 8, 8, 9, 9, 0, 0, 0, |
9, 9, 8, 8,10,10, 0, 0, 0, 9, 9, 8, 8,10,10, 0, |
0, 0,10,10, 9, 9,10,10, 0, 0, 0, 0, 0, 9, 9,10, |
10, |
}; |
static const static_codebook _8c0_s_p5_0 = { |
2, 81, |
(char *)_vq_lengthlist__8c0_s_p5_0, |
1, -531628032, 1611661312, 4, 0, |
(long *)_vq_quantlist__8c0_s_p5_0, |
0 |
}; |
static const long _vq_quantlist__8c0_s_p6_0[] = { |
8, |
7, |
9, |
6, |
10, |
5, |
11, |
4, |
12, |
3, |
13, |
2, |
14, |
1, |
15, |
0, |
16, |
}; |
static const char _vq_lengthlist__8c0_s_p6_0[] = { |
1, 3, 3, 6, 6, 8, 8, 9, 9, 8, 8,10, 9,10,10,11, |
11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,10,11,11, |
11,12, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,10,11, |
11,12,11, 0, 0, 0, 8, 8, 9, 9,10,10, 9, 9,10,10, |
11,11,12,12, 0, 0, 0, 8, 8, 9, 9,10,10, 9, 9,11, |
10,11,11,12,12, 0, 0, 0, 9, 9, 9, 9,10,10,10,10, |
11,11,11,12,12,12, 0, 0, 0, 9, 9, 9, 9,10,10,10, |
10,11,11,12,12,13,13, 0, 0, 0,10,10,10,10,11,11, |
10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0,10, 9,10, |
11,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, 9, |
10, 9,10,11,12,12,13,13,14,13, 0, 0, 0, 0, 0, 9, |
9, 9,10,10,10,11,11,13,12,13,13, 0, 0, 0, 0, 0, |
10,10,10,10,11,11,12,12,13,13,14,14, 0, 0, 0, 0, |
0, 0, 0,10,10,11,11,12,12,13,13,13,14, 0, 0, 0, |
0, 0, 0, 0,11,11,11,11,12,12,13,14,14,14, 0, 0, |
0, 0, 0, 0, 0,11,11,11,11,12,12,13,13,14,13, 0, |
0, 0, 0, 0, 0, 0,11,11,12,12,13,13,14,14,14,14, |
0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,12,12,13,13,14, |
14, |
}; |
static const static_codebook _8c0_s_p6_0 = { |
2, 289, |
(char *)_vq_lengthlist__8c0_s_p6_0, |
1, -529530880, 1611661312, 5, 0, |
(long *)_vq_quantlist__8c0_s_p6_0, |
0 |
}; |
static const long _vq_quantlist__8c0_s_p7_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__8c0_s_p7_0[] = { |
1, 4, 4, 7, 6, 6, 7, 6, 6, 4, 7, 7,11, 9,10,12, |
9,10, 4, 7, 7,10,10,10,11, 9, 9, 6,11,10,11,11, |
12,11,11,11, 6,10,10,11,11,12,11,10,10, 6, 9,10, |
11,11,11,11,10,10, 7,10,11,12,11,11,12,11,12, 6, |
9, 9,10, 9, 9,11,10,10, 6, 9, 9,10,10,10,11,10, |
10, |
}; |
static const static_codebook _8c0_s_p7_0 = { |
4, 81, |
(char *)_vq_lengthlist__8c0_s_p7_0, |
1, -529137664, 1618345984, 2, 0, |
(long *)_vq_quantlist__8c0_s_p7_0, |
0 |
}; |
static const long _vq_quantlist__8c0_s_p7_1[] = { |
5, |
4, |
6, |
3, |
7, |
2, |
8, |
1, |
9, |
0, |
10, |
}; |
static const char _vq_lengthlist__8c0_s_p7_1[] = { |
1, 3, 3, 6, 6, 8, 8, 9, 9, 9, 9,10,10,10, 7, 7, |
8, 8, 9, 9, 9, 9,10,10, 9, 7, 7, 8, 8, 9, 9, 9, |
9,10,10,10, 8, 8, 9, 9, 9, 9, 9, 9,10,10,10, 8, |
8, 9, 9, 9, 9, 8, 9,10,10,10, 8, 8, 9, 9, 9,10, |
10,10,10,10,10, 9, 9, 9, 9, 9, 9,10,10,11,10,11, |
9, 9, 9, 9,10,10,10,10,11,11,11,10,10, 9, 9,10, |
10,10, 9,11,10,10,10,10,10,10, 9, 9,10,10,11,11, |
10,10,10, 9, 9, 9,10,10,10, |
}; |
static const static_codebook _8c0_s_p7_1 = { |
2, 121, |
(char *)_vq_lengthlist__8c0_s_p7_1, |
1, -531365888, 1611661312, 4, 0, |
(long *)_vq_quantlist__8c0_s_p7_1, |
0 |
}; |
static const long _vq_quantlist__8c0_s_p8_0[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__8c0_s_p8_0[] = { |
1, 4, 4, 7, 6, 7, 7, 7, 7, 8, 8, 9, 9, 7, 6, 6, |
7, 7, 8, 8, 7, 7, 8, 9,10,10, 7, 6, 6, 7, 7, 8, |
7, 7, 7, 9, 9,10,12, 0, 8, 8, 8, 8, 8, 9, 8, 8, |
9, 9,10,10, 0, 8, 8, 8, 8, 8, 9, 8, 9, 9, 9,11, |
10, 0, 0,13, 9, 8, 9, 9, 9, 9,10,10,11,11, 0,13, |
0, 9, 9, 9, 9, 9, 9,11,10,11,11, 0, 0, 0, 8, 9, |
10, 9,10,10,13,11,12,12, 0, 0, 0, 8, 9, 9, 9,10, |
10,13,12,12,13, 0, 0, 0,12, 0,10,10,12,11,10,11, |
12,12, 0, 0, 0,13,13,10,10,10,11,12, 0,13, 0, 0, |
0, 0, 0, 0,13,11, 0,12,12,12,13,12, 0, 0, 0, 0, |
0, 0,13,13,11,13,13,11,12, |
}; |
static const static_codebook _8c0_s_p8_0 = { |
2, 169, |
(char *)_vq_lengthlist__8c0_s_p8_0, |
1, -526516224, 1616117760, 4, 0, |
(long *)_vq_quantlist__8c0_s_p8_0, |
0 |
}; |
static const long _vq_quantlist__8c0_s_p8_1[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__8c0_s_p8_1[] = { |
1, 3, 4, 5, 5, 7, 6, 6, 6, 5, 7, 7, 7, 6, 6, 7, |
7, 7, 6, 6, 7, 7, 7, 6, 6, |
}; |
static const static_codebook _8c0_s_p8_1 = { |
2, 25, |
(char *)_vq_lengthlist__8c0_s_p8_1, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__8c0_s_p8_1, |
0 |
}; |
static const long _vq_quantlist__8c0_s_p9_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__8c0_s_p9_0[] = { |
1, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, |
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, |
8, 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, |
}; |
static const static_codebook _8c0_s_p9_0 = { |
4, 81, |
(char *)_vq_lengthlist__8c0_s_p9_0, |
1, -518803456, 1628680192, 2, 0, |
(long *)_vq_quantlist__8c0_s_p9_0, |
0 |
}; |
static const long _vq_quantlist__8c0_s_p9_1[] = { |
7, |
6, |
8, |
5, |
9, |
4, |
10, |
3, |
11, |
2, |
12, |
1, |
13, |
0, |
14, |
}; |
static const char _vq_lengthlist__8c0_s_p9_1[] = { |
1, 4, 4, 5, 5,10, 8,11,11,11,11,11,11,11,11, 6, |
6, 6, 7, 6,11,10,11,11,11,11,11,11,11,11, 7, 5, |
6, 6, 6, 8, 7,11,11,11,11,11,11,11,11,11, 7, 8, |
8, 8, 9, 9,11,11,11,11,11,11,11,11,11, 9, 8, 7, |
8, 9,11,11,11,11,11,11,11,11,11,11,11,10,11,11, |
11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11, |
11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, |
11,11,11,11,11,11,11,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,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,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, |
}; |
static const static_codebook _8c0_s_p9_1 = { |
2, 225, |
(char *)_vq_lengthlist__8c0_s_p9_1, |
1, -520986624, 1620377600, 4, 0, |
(long *)_vq_quantlist__8c0_s_p9_1, |
0 |
}; |
static const long _vq_quantlist__8c0_s_p9_2[] = { |
10, |
9, |
11, |
8, |
12, |
7, |
13, |
6, |
14, |
5, |
15, |
4, |
16, |
3, |
17, |
2, |
18, |
1, |
19, |
0, |
20, |
}; |
static const char _vq_lengthlist__8c0_s_p9_2[] = { |
1, 5, 5, 7, 7, 8, 7, 8, 8,10,10, 9, 9,10,10,10, |
11,11,10,12,11,12,12,12, 9, 8, 8, 8, 8, 8, 9,10, |
10,10,10,11,11,11,10,11,11,12,12,11,12, 8, 8, 7, |
7, 8, 9,10,10,10, 9,10,10, 9,10,10,11,11,11,11, |
11,11, 9, 9, 9, 9, 8, 9,10,10,11,10,10,11,11,12, |
10,10,12,12,11,11,10, 9, 9,10, 8, 9,10,10,10, 9, |
10,10,11,11,10,11,10,10,10,12,12,12, 9,10, 9,10, |
9, 9,10,10,11,11,11,11,10,10,10,11,12,11,12,11, |
12,10,11,10,11, 9,10, 9,10, 9,10,10, 9,10,10,11, |
10,11,11,11,11,12,11, 9,10,10,10,10,11,11,11,11, |
11,10,11,11,11,11,10,12,10,12,12,11,12,10,10,11, |
10, 9,11,10,11, 9,10,11,10,10,10,11,11,11,11,12, |
12,10, 9, 9,11,10, 9,12,11,10,12,12,11,11,11,11, |
10,11,11,12,11,10,12, 9,11,10,11,10,10,11,10,11, |
9,10,10,10,11,12,11,11,12,11,10,10,11,11, 9,10, |
10,12,10,11,10,10,10, 9,10,10,10,10, 9,10,10,11, |
11,11,11,12,11,10,10,10,10,11,11,10,11,11, 9,11, |
10,12,10,12,11,10,11,10,10,10,11,10,10,11,11,10, |
11,10,10,10,10,11,11,12,10,10,10,11,10,11,12,11, |
10,11,10,10,11,11,10,12,10, 9,10,10,11,11,11,10, |
12,10,10,11,11,11,10,10,11,10,10,10,11,10,11,10, |
12,11,11,10,10,10,12,10,10,11, 9,10,11,11,11,10, |
10,11,10,10, 9,11,11,12,12,11,12,11,11,11,11,11, |
11, 9,10,11,10,12,10,10,10,10,11,10,10,11,10,10, |
12,10,10,10,10,10, 9,12,10,10,10,10,12, 9,11,10, |
10,11,10,12,12,10,12,12,12,10,10,10,10, 9,10,11, |
10,10,12,10,10,12,11,10,11,10,10,12,11,10,12,10, |
10,11, 9,11,10, 9,10, 9,10, |
}; |
static const static_codebook _8c0_s_p9_2 = { |
2, 441, |
(char *)_vq_lengthlist__8c0_s_p9_2, |
1, -529268736, 1611661312, 5, 0, |
(long *)_vq_quantlist__8c0_s_p9_2, |
0 |
}; |
static const char _huff_lengthlist__8c0_s_single[] = { |
4, 5,18, 7,10, 6, 7, 8, 9,10, 5, 2,18, 5, 7, 5, |
6, 7, 8,11,17,17,17,17,17,17,17,17,17,17, 7, 4, |
17, 6, 9, 6, 8,10,12,15,11, 7,17, 9, 6, 6, 7, 9, |
11,15, 6, 4,17, 6, 6, 4, 5, 8,11,16, 6, 6,17, 8, |
6, 5, 6, 9,13,16, 8, 9,17,11, 9, 8, 8,11,13,17, |
9,12,17,15,14,13,12,13,14,17,12,15,17,17,17,17, |
17,16,17,17, |
}; |
static const static_codebook _huff_book__8c0_s_single = { |
2, 100, |
(char *)_huff_lengthlist__8c0_s_single, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const long _vq_quantlist__8c1_s_p1_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__8c1_s_p1_0[] = { |
1, 5, 5, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 0, |
0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 5, 8, 7, 0, 0, 0, 0, 0, 0, 7, 8, 9, 0, 0, 0, |
0, 0, 0, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 5, 7, 8, 0, 0, 0, 0, 0, 0, 7, 9, 8, 0, 0, |
0, 0, 0, 0, 7, 9, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 8, 8, 0, 0, 0, 0, |
0, 0, 8, 9, 9, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, |
0, 0, 0, 8, 8,10, 0, 0, 0, 0, 0, 0, 9,10,10, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, |
0, 0, 0, 0, 8,10, 9, 0, 0, 0, 0, 0, 0, 9,10,10, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 5, 8, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, 0, |
0, 0, 0, 0, 8, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 9,10,10, 0, |
0, 0, 0, 0, 0, 8, 9,10, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 9,10,10, |
0, 0, 0, 0, 0, 0, 8,10, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, |
}; |
static const static_codebook _8c1_s_p1_0 = { |
8, 6561, |
(char *)_vq_lengthlist__8c1_s_p1_0, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__8c1_s_p1_0, |
0 |
}; |
static const long _vq_quantlist__8c1_s_p3_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__8c1_s_p3_0[] = { |
2, 4, 4, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 6, 6, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 4, 4, 4, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 7, 7, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 6, 6, 6, 7, 7, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, |
}; |
static const static_codebook _8c1_s_p3_0 = { |
4, 625, |
(char *)_vq_lengthlist__8c1_s_p3_0, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__8c1_s_p3_0, |
0 |
}; |
static const long _vq_quantlist__8c1_s_p4_0[] = { |
4, |
3, |
5, |
2, |
6, |
1, |
7, |
0, |
8, |
}; |
static const char _vq_lengthlist__8c1_s_p4_0[] = { |
1, 2, 3, 7, 7, 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, |
0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0, 7, 7, |
0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, |
8, 8, 0, 0, 0, 0, 0, 0, 0, 9, 8, 0, 0, 0, 0, 0, |
0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, |
}; |
static const static_codebook _8c1_s_p4_0 = { |
2, 81, |
(char *)_vq_lengthlist__8c1_s_p4_0, |
1, -531628032, 1611661312, 4, 0, |
(long *)_vq_quantlist__8c1_s_p4_0, |
0 |
}; |
static const long _vq_quantlist__8c1_s_p5_0[] = { |
4, |
3, |
5, |
2, |
6, |
1, |
7, |
0, |
8, |
}; |
static const char _vq_lengthlist__8c1_s_p5_0[] = { |
1, 3, 3, 4, 5, 6, 6, 8, 8, 0, 0, 0, 8, 8, 7, 7, |
9, 9, 0, 0, 0, 8, 8, 7, 7, 9, 9, 0, 0, 0, 9,10, |
8, 8, 9, 9, 0, 0, 0,10,10, 8, 8, 9, 9, 0, 0, 0, |
11,10, 8, 8,10,10, 0, 0, 0,11,11, 8, 8,10,10, 0, |
0, 0,12,12, 9, 9,10,10, 0, 0, 0, 0, 0, 9, 9,10, |
10, |
}; |
static const static_codebook _8c1_s_p5_0 = { |
2, 81, |
(char *)_vq_lengthlist__8c1_s_p5_0, |
1, -531628032, 1611661312, 4, 0, |
(long *)_vq_quantlist__8c1_s_p5_0, |
0 |
}; |
static const long _vq_quantlist__8c1_s_p6_0[] = { |
8, |
7, |
9, |
6, |
10, |
5, |
11, |
4, |
12, |
3, |
13, |
2, |
14, |
1, |
15, |
0, |
16, |
}; |
static const char _vq_lengthlist__8c1_s_p6_0[] = { |
1, 3, 3, 5, 5, 8, 8, 8, 8, 9, 9,10,10,11,11,11, |
11, 0, 0, 0, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11,11, |
12,12, 0, 0, 0, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11, |
11,12,12, 0, 0, 0, 9, 9, 8, 8,10,10,10,10,11,11, |
12,12,12,12, 0, 0, 0, 9, 9, 8, 8,10,10,10,10,11, |
11,12,12,12,12, 0, 0, 0,10,10, 9, 9,10,10,10,10, |
11,11,12,12,13,13, 0, 0, 0,10,10, 9, 9,10,10,10, |
10,11,11,12,12,13,13, 0, 0, 0,11,11, 9, 9,10,10, |
10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, 9,10, |
10,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, 9, |
10,10,11,11,12,12,12,12,13,13, 0, 0, 0, 0, 0, 9, |
9,10,10,11,11,12,11,12,12,13,13, 0, 0, 0, 0, 0, |
10,10,11,11,11,11,12,12,13,12,13,13, 0, 0, 0, 0, |
0, 0, 0,11,10,11,11,12,12,13,13,13,13, 0, 0, 0, |
0, 0, 0, 0,11,11,12,12,12,12,13,13,13,14, 0, 0, |
0, 0, 0, 0, 0,11,11,12,12,12,12,13,13,14,13, 0, |
0, 0, 0, 0, 0, 0,12,12,12,12,13,13,13,13,14,14, |
0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,13,13,13,13,14, |
14, |
}; |
static const static_codebook _8c1_s_p6_0 = { |
2, 289, |
(char *)_vq_lengthlist__8c1_s_p6_0, |
1, -529530880, 1611661312, 5, 0, |
(long *)_vq_quantlist__8c1_s_p6_0, |
0 |
}; |
static const long _vq_quantlist__8c1_s_p7_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__8c1_s_p7_0[] = { |
1, 4, 4, 6, 6, 6, 7, 6, 6, 4, 7, 7,10, 9, 9,10, |
9, 9, 5, 7, 7,10, 9, 9,10, 9, 9, 6,10,10,10,10, |
10,11,10,10, 6, 9, 9,10, 9,10,11,10,10, 6, 9, 9, |
10, 9, 9,11, 9,10, 7,10,10,11,11,11,11,10,10, 6, |
9, 9,10,10,10,11, 9, 9, 6, 9, 9,10,10,10,10, 9, |
9, |
}; |
static const static_codebook _8c1_s_p7_0 = { |
4, 81, |
(char *)_vq_lengthlist__8c1_s_p7_0, |
1, -529137664, 1618345984, 2, 0, |
(long *)_vq_quantlist__8c1_s_p7_0, |
0 |
}; |
static const long _vq_quantlist__8c1_s_p7_1[] = { |
5, |
4, |
6, |
3, |
7, |
2, |
8, |
1, |
9, |
0, |
10, |
}; |
static const char _vq_lengthlist__8c1_s_p7_1[] = { |
2, 3, 3, 5, 5, 7, 7, 7, 7, 7, 7,10,10, 9, 7, 7, |
7, 7, 8, 8, 8, 8, 9, 9, 9, 7, 7, 7, 7, 8, 8, 8, |
8,10,10,10, 7, 7, 7, 7, 8, 8, 8, 8,10,10,10, 7, |
7, 7, 7, 8, 8, 8, 8,10,10,10, 8, 8, 8, 8, 8, 8, |
8, 8,10,10,10, 8, 8, 8, 8, 8, 8, 8, 8,10,10,10, |
8, 8, 8, 8, 8, 8, 8, 8,10,10,10,10,10, 8, 8, 8, |
8, 8, 8,10,10,10,10,10, 8, 8, 8, 8, 8, 8,10,10, |
10,10,10, 8, 8, 8, 8, 8, 8, |
}; |
static const static_codebook _8c1_s_p7_1 = { |
2, 121, |
(char *)_vq_lengthlist__8c1_s_p7_1, |
1, -531365888, 1611661312, 4, 0, |
(long *)_vq_quantlist__8c1_s_p7_1, |
0 |
}; |
static const long _vq_quantlist__8c1_s_p8_0[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__8c1_s_p8_0[] = { |
1, 4, 4, 6, 6, 8, 8, 8, 8, 9, 9,10,10, 7, 5, 5, |
7, 7, 8, 8, 8, 8, 9,10,11,11, 7, 5, 5, 7, 7, 8, |
8, 9, 9,10,10,11,11, 0, 8, 8, 8, 8, 9, 9, 9, 9, |
9,10,11,11, 0, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11, |
11, 0,12,12, 9, 9, 9, 9,10, 9,10,11,11,11, 0,13, |
12, 9, 8, 9, 9,10,10,11,11,12,11, 0, 0, 0, 9, 9, |
9, 9,10,10,11,11,12,12, 0, 0, 0,10,10, 9, 9,10, |
10,11,11,12,12, 0, 0, 0,13,13,10,10,11,11,12,11, |
13,12, 0, 0, 0,14,14,10,10,11,10,11,11,12,12, 0, |
0, 0, 0, 0,12,12,11,11,12,12,13,13, 0, 0, 0, 0, |
0,12,12,11,10,12,11,13,12, |
}; |
static const static_codebook _8c1_s_p8_0 = { |
2, 169, |
(char *)_vq_lengthlist__8c1_s_p8_0, |
1, -526516224, 1616117760, 4, 0, |
(long *)_vq_quantlist__8c1_s_p8_0, |
0 |
}; |
static const long _vq_quantlist__8c1_s_p8_1[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__8c1_s_p8_1[] = { |
2, 3, 3, 5, 5, 6, 6, 6, 5, 5, 6, 6, 6, 5, 5, 6, |
6, 6, 5, 5, 6, 6, 6, 5, 5, |
}; |
static const static_codebook _8c1_s_p8_1 = { |
2, 25, |
(char *)_vq_lengthlist__8c1_s_p8_1, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__8c1_s_p8_1, |
0 |
}; |
static const long _vq_quantlist__8c1_s_p9_0[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__8c1_s_p9_0[] = { |
1, 3, 3,10,10,10,10,10,10,10,10,10,10, 5, 6, 6, |
10,10,10,10,10,10,10,10,10,10, 6, 7, 8,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, 9, 9, 9, 9, |
}; |
static const static_codebook _8c1_s_p9_0 = { |
2, 169, |
(char *)_vq_lengthlist__8c1_s_p9_0, |
1, -513964032, 1628680192, 4, 0, |
(long *)_vq_quantlist__8c1_s_p9_0, |
0 |
}; |
static const long _vq_quantlist__8c1_s_p9_1[] = { |
7, |
6, |
8, |
5, |
9, |
4, |
10, |
3, |
11, |
2, |
12, |
1, |
13, |
0, |
14, |
}; |
static const char _vq_lengthlist__8c1_s_p9_1[] = { |
1, 4, 4, 5, 5, 7, 7, 9, 9,11,11,12,12,13,13, 6, |
5, 5, 6, 6, 9, 9,10,10,12,12,12,13,15,14, 6, 5, |
5, 7, 7, 9, 9,10,10,12,12,12,13,14,13,17, 7, 7, |
8, 8,10,10,11,11,12,13,13,13,13,13,17, 7, 7, 8, |
8,10,10,11,11,13,13,13,13,14,14,17,11,11, 9, 9, |
11,11,12,12,12,13,13,14,15,13,17,12,12, 9, 9,11, |
11,12,12,13,13,13,13,14,16,17,17,17,11,12,12,12, |
13,13,13,14,15,14,15,15,17,17,17,12,12,11,11,13, |
13,14,14,15,14,15,15,17,17,17,15,15,13,13,14,14, |
15,14,15,15,16,15,17,17,17,15,15,13,13,13,14,14, |
15,15,15,15,16,17,17,17,17,16,14,15,14,14,15,14, |
14,15,15,15,17,17,17,17,17,14,14,16,14,15,15,15, |
15,15,15,17,17,17,17,17,17,16,16,15,17,15,15,14, |
17,15,17,16,17,17,17,17,16,15,14,15,15,15,15,15, |
15, |
}; |
static const static_codebook _8c1_s_p9_1 = { |
2, 225, |
(char *)_vq_lengthlist__8c1_s_p9_1, |
1, -520986624, 1620377600, 4, 0, |
(long *)_vq_quantlist__8c1_s_p9_1, |
0 |
}; |
static const long _vq_quantlist__8c1_s_p9_2[] = { |
10, |
9, |
11, |
8, |
12, |
7, |
13, |
6, |
14, |
5, |
15, |
4, |
16, |
3, |
17, |
2, |
18, |
1, |
19, |
0, |
20, |
}; |
static const char _vq_lengthlist__8c1_s_p9_2[] = { |
2, 4, 4, 6, 6, 7, 7, 8, 8, 8, 8, 9, 8, 9, 9, 9, |
9, 9, 9, 9, 9,11,11,12, 7, 7, 7, 7, 8, 8, 9, 9, |
9, 9,10,10,10,10,10,10,10,10,11,11,11, 7, 7, 7, |
7, 8, 8, 9, 8, 9, 9, 9, 9, 9, 9,10,10,10,10,11, |
11,12, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9,10,10,10,10, |
10,10,10,10,11,11,11, 7, 7, 8, 8, 8, 8, 9, 9, 9, |
9,10,10,10,10,10,10,10,10,11,11,11, 8, 8, 8, 8, |
9, 9, 9, 9, 9, 9,10,10,10,10,10,10,10,10,11,11, |
11, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9,10,10,10,10,10, |
10,10,10,11,12,11, 9, 9, 8, 9, 9, 9, 9, 9,10,10, |
10,10,10,10,10,10,10,10,11,11,11,11,11, 8, 8, 9, |
9, 9, 9,10,10,10,10,10,10,10,10,10,10,11,12,11, |
12,11, 9, 9, 9, 9, 9,10,10,10,10,10,10,10,10,10, |
10,10,11,11,11,11,11, 9, 9, 9, 9,10,10,10,10,10, |
10,10,10,10,10,10,10,12,11,12,11,11, 9, 9, 9,10, |
10,10,10,10,10,10,10,10,10,10,10,10,12,11,11,11, |
11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10, |
11,11,11,12,11,11,12,11,10,10,10,10,10,10,10,10, |
10,10,10,10,11,10,11,11,11,11,11,11,11,10,10,10, |
10,10,10,10,10,10,10,10,10,10,10,11,11,12,11,12, |
11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10, |
11,11,12,11,12,11,11,11,11,10,10,10,10,10,10,10, |
10,10,10,10,10,11,11,12,11,11,12,11,11,12,10,10, |
11,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11, |
11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,12, |
12,11,12,11,11,12,12,12,11,11,10,10,10,10,10,10, |
10,10,10,11,12,12,11,12,12,11,12,11,11,11,11,10, |
10,10,10,10,10,10,10,10,10, |
}; |
static const static_codebook _8c1_s_p9_2 = { |
2, 441, |
(char *)_vq_lengthlist__8c1_s_p9_2, |
1, -529268736, 1611661312, 5, 0, |
(long *)_vq_quantlist__8c1_s_p9_2, |
0 |
}; |
static const char _huff_lengthlist__8c1_s_single[] = { |
4, 6,18, 8,11, 8, 8, 9, 9,10, 4, 4,18, 5, 9, 5, |
6, 7, 8,10,18,18,18,18,17,17,17,17,17,17, 7, 5, |
17, 6,11, 6, 7, 8, 9,12,12, 9,17,12, 8, 8, 9,10, |
10,13, 7, 5,17, 6, 8, 4, 5, 6, 8,10, 6, 5,17, 6, |
8, 5, 4, 5, 7, 9, 7, 7,17, 8, 9, 6, 5, 5, 6, 8, |
8, 8,17, 9,11, 8, 6, 6, 6, 7, 9,10,17,12,12,10, |
9, 7, 7, 8, |
}; |
static const static_codebook _huff_book__8c1_s_single = { |
2, 100, |
(char *)_huff_lengthlist__8c1_s_single, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist__44c2_s_long[] = { |
6, 6,12,10,10,10, 9,10,12,12, 6, 1,10, 5, 6, 6, |
7, 9,11,14,12, 9, 8,11, 7, 8, 9,11,13,15,10, 5, |
12, 7, 8, 7, 9,12,14,15,10, 6, 7, 8, 5, 6, 7, 9, |
12,14, 9, 6, 8, 7, 6, 6, 7, 9,12,12, 9, 7, 9, 9, |
7, 6, 6, 7,10,10,10, 9,10,11, 8, 7, 6, 6, 8,10, |
12,11,13,13,11,10, 8, 8, 8,10,11,13,15,15,14,13, |
10, 8, 8, 9, |
}; |
static const static_codebook _huff_book__44c2_s_long = { |
2, 100, |
(char *)_huff_lengthlist__44c2_s_long, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const long _vq_quantlist__44c2_s_p1_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44c2_s_p1_0[] = { |
2, 4, 4, 0, 0, 0, 0, 0, 0, 5, 6, 6, 0, 0, 0, 0, |
0, 0, 5, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, 0, |
0, 0, 0, 6, 8, 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, 5, 7, 7, 0, 0, 0, 0, 0, 0, 6, 8, 7, 0, 0, |
0, 0, 0, 0, 7, 8, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 0, |
0, 0, 7, 8, 8, 0, 0, 0, 0, 0, 0, 7, 8, 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, 7, 8, 8, 0, 0, 0, |
0, 0, 0, 8, 9, 9, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 8, 8, 0, 0, |
0, 0, 0, 0, 8, 9, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 4, 7, 7, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, |
0, 0, 0, 0, 7, 8, 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, 6, 8, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, |
0, 0, 0, 0, 0, 8, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 7, 8, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, |
0, 0, 0, 0, 0, 0, 8, 9, 9, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, |
}; |
static const static_codebook _44c2_s_p1_0 = { |
8, 6561, |
(char *)_vq_lengthlist__44c2_s_p1_0, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__44c2_s_p1_0, |
0 |
}; |
static const long _vq_quantlist__44c2_s_p2_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44c2_s_p2_0[] = { |
1, 4, 4, 0, 0, 0, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, |
8, 8, 0, 0, 0, 0, 0, 0, 0, 4, 6, 6, 0, 0, 0, 8, |
8, 0, 0, 0, 8, 8, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, |
0, 0, 4, 6, 6, 0, 0, 0, 8, 8, 0, 0, 0, 8, 8, 0, |
0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, 0,11,11, 0, 0, |
0,11,11, 0, 0, 0,12,11, 0, 0, 0, 0, 0, 0, 0, 7, |
8, 8, 0, 0, 0,10,11, 0, 0, 0,11,11, 0, 0, 0,11, |
12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 6, 8, 8, 0, 0, 0,11,11, 0, 0, 0,11,11, |
0, 0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 6, 8, 8, 0, |
0, 0,10,11, 0, 0, 0,10,11, 0, 0, 0,11,11, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
8, 9, 9, 0, 0, 0,11,12, 0, 0, 0,11,12, 0, 0, 0, |
12,11, 0, 0, 0, 0, 0, 0, 0, 8,10, 9, 0, 0, 0,12, |
11, 0, 0, 0,12,11, 0, 0, 0,11,12, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, |
}; |
static const static_codebook _44c2_s_p2_0 = { |
4, 625, |
(char *)_vq_lengthlist__44c2_s_p2_0, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44c2_s_p2_0, |
0 |
}; |
static const long _vq_quantlist__44c2_s_p3_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44c2_s_p3_0[] = { |
2, 4, 3, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 6, 6, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 4, 4, 4, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 9, 9, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 6, 6, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, |
}; |
static const static_codebook _44c2_s_p3_0 = { |
4, 625, |
(char *)_vq_lengthlist__44c2_s_p3_0, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44c2_s_p3_0, |
0 |
}; |
static const long _vq_quantlist__44c2_s_p4_0[] = { |
4, |
3, |
5, |
2, |
6, |
1, |
7, |
0, |
8, |
}; |
static const char _vq_lengthlist__44c2_s_p4_0[] = { |
1, 3, 3, 6, 6, 0, 0, 0, 0, 0, 6, 6, 6, 6, 0, 0, |
0, 0, 0, 6, 6, 6, 6, 0, 0, 0, 0, 0, 7, 7, 6, 6, |
0, 0, 0, 0, 0, 0, 0, 6, 7, 0, 0, 0, 0, 0, 0, 0, |
7, 8, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, |
0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, |
}; |
static const static_codebook _44c2_s_p4_0 = { |
2, 81, |
(char *)_vq_lengthlist__44c2_s_p4_0, |
1, -531628032, 1611661312, 4, 0, |
(long *)_vq_quantlist__44c2_s_p4_0, |
0 |
}; |
static const long _vq_quantlist__44c2_s_p5_0[] = { |
4, |
3, |
5, |
2, |
6, |
1, |
7, |
0, |
8, |
}; |
static const char _vq_lengthlist__44c2_s_p5_0[] = { |
1, 3, 3, 6, 6, 7, 7, 9, 9, 0, 7, 7, 7, 7, 7, 7, |
9, 9, 0, 7, 7, 7, 7, 7, 7, 9, 9, 0, 8, 8, 7, 7, |
8, 8,10,10, 0, 0, 0, 7, 7, 8, 8,10,10, 0, 0, 0, |
9, 9, 8, 8,10,10, 0, 0, 0, 9, 9, 8, 8,10,10, 0, |
0, 0,10,10, 9, 9,11,11, 0, 0, 0, 0, 0, 9, 9,11, |
11, |
}; |
static const static_codebook _44c2_s_p5_0 = { |
2, 81, |
(char *)_vq_lengthlist__44c2_s_p5_0, |
1, -531628032, 1611661312, 4, 0, |
(long *)_vq_quantlist__44c2_s_p5_0, |
0 |
}; |
static const long _vq_quantlist__44c2_s_p6_0[] = { |
8, |
7, |
9, |
6, |
10, |
5, |
11, |
4, |
12, |
3, |
13, |
2, |
14, |
1, |
15, |
0, |
16, |
}; |
static const char _vq_lengthlist__44c2_s_p6_0[] = { |
1, 4, 3, 6, 6, 8, 8, 9, 9, 9, 9, 9, 9,10,10,11, |
11, 0, 7, 7, 7, 7, 8, 8, 9, 9, 9, 9,10,10,11,11, |
12,11, 0, 7, 7, 7, 7, 8, 8, 9, 9, 9, 9,10,10,11, |
11,11,12, 0, 8, 8, 7, 7, 9, 9,10,10, 9, 9,10,10, |
11,11,12,12, 0, 0, 0, 7, 7, 9, 9,10,10,10, 9,10, |
10,11,11,12,12, 0, 0, 0, 8, 8, 9, 9,10,10,10,10, |
11,11,11,11,12,12, 0, 0, 0, 8, 8, 9, 9,10,10,10, |
10,11,11,12,12,12,12, 0, 0, 0, 9, 9, 9, 9,10,10, |
10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, 9, 9,10, |
10,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, 9, |
10,10,11,11,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, |
9,10,10,11,11,11,11,12,12,13,13, 0, 0, 0, 0, 0, |
10,10,10,10,11,11,12,12,13,12,13,13, 0, 0, 0, 0, |
0, 0, 0,10,10,11,11,12,12,13,13,13,13, 0, 0, 0, |
0, 0, 0, 0,11,11,12,12,12,12,13,13,13,14, 0, 0, |
0, 0, 0, 0, 0,11,11,12,12,12,12,13,13,13,14, 0, |
0, 0, 0, 0, 0, 0,12,12,12,12,13,13,13,13,14,14, |
0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,13,13,13,13,14, |
14, |
}; |
static const static_codebook _44c2_s_p6_0 = { |
2, 289, |
(char *)_vq_lengthlist__44c2_s_p6_0, |
1, -529530880, 1611661312, 5, 0, |
(long *)_vq_quantlist__44c2_s_p6_0, |
0 |
}; |
static const long _vq_quantlist__44c2_s_p7_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44c2_s_p7_0[] = { |
1, 4, 4, 7, 6, 6, 7, 6, 6, 4, 7, 7,10, 9, 9,11, |
9, 9, 4, 7, 7,10, 9, 9,10, 9, 9, 7,10,10,11,10, |
11,11,10,11, 6, 9, 9,11,10,10,11,10,10, 6, 9, 9, |
11,10,11,11,10,10, 7,11,10,11,11,11,12,11,11, 6, |
9, 9,11,10,10,11,11,10, 6, 9, 9,11,10,10,12,10, |
11, |
}; |
static const static_codebook _44c2_s_p7_0 = { |
4, 81, |
(char *)_vq_lengthlist__44c2_s_p7_0, |
1, -529137664, 1618345984, 2, 0, |
(long *)_vq_quantlist__44c2_s_p7_0, |
0 |
}; |
static const long _vq_quantlist__44c2_s_p7_1[] = { |
5, |
4, |
6, |
3, |
7, |
2, |
8, |
1, |
9, |
0, |
10, |
}; |
static const char _vq_lengthlist__44c2_s_p7_1[] = { |
2, 3, 4, 6, 6, 7, 7, 7, 7, 7, 7, 9, 7, 7, 6, 6, |
7, 7, 8, 8, 8, 8, 9, 6, 6, 6, 6, 7, 7, 8, 8, 8, |
8,10, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8,10,10,10, 7, |
7, 7, 7, 8, 8, 8, 8,10,10,10, 7, 7, 8, 8, 8, 8, |
8, 8,10,10,10, 7, 8, 8, 8, 8, 8, 8, 8,10,10,10, |
8, 8, 8, 8, 8, 8, 8, 8,10,10,10,10,10, 8, 8, 8, |
8, 8, 8,10,10,10,10,10, 9, 9, 8, 8, 8, 8,10,10, |
10,10,10, 8, 8, 8, 8, 8, 8, |
}; |
static const static_codebook _44c2_s_p7_1 = { |
2, 121, |
(char *)_vq_lengthlist__44c2_s_p7_1, |
1, -531365888, 1611661312, 4, 0, |
(long *)_vq_quantlist__44c2_s_p7_1, |
0 |
}; |
static const long _vq_quantlist__44c2_s_p8_0[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44c2_s_p8_0[] = { |
1, 4, 4, 6, 6, 7, 7, 7, 7, 8, 8, 9, 9, 6, 5, 5, |
7, 7, 8, 8, 8, 8, 9, 9,10,10, 7, 6, 5, 7, 7, 8, |
8, 8, 8, 9, 9,10,10, 0, 8, 8, 8, 8, 9, 9, 9, 9, |
10,10,11,11, 0, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11, |
11, 0,12,12, 9, 9,10,10,10,10,11,11,11,11, 0,13, |
13, 9, 9,10,10,10,10,11,11,12,12, 0, 0, 0,10,10, |
10,10,11,11,12,12,12,13, 0, 0, 0,10,10,10,10,11, |
11,12,12,12,12, 0, 0, 0,14,14,10,11,11,11,12,12, |
13,13, 0, 0, 0,14,14,11,10,11,11,13,12,13,13, 0, |
0, 0, 0, 0,12,12,11,12,13,12,14,14, 0, 0, 0, 0, |
0,12,12,12,12,13,12,14,14, |
}; |
static const static_codebook _44c2_s_p8_0 = { |
2, 169, |
(char *)_vq_lengthlist__44c2_s_p8_0, |
1, -526516224, 1616117760, 4, 0, |
(long *)_vq_quantlist__44c2_s_p8_0, |
0 |
}; |
static const long _vq_quantlist__44c2_s_p8_1[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44c2_s_p8_1[] = { |
2, 4, 4, 5, 4, 6, 5, 5, 5, 5, 6, 5, 5, 5, 5, 6, |
5, 5, 5, 5, 6, 6, 6, 5, 5, |
}; |
static const static_codebook _44c2_s_p8_1 = { |
2, 25, |
(char *)_vq_lengthlist__44c2_s_p8_1, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44c2_s_p8_1, |
0 |
}; |
static const long _vq_quantlist__44c2_s_p9_0[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44c2_s_p9_0[] = { |
1, 5, 4,12,12,12,12,12,12,12,12,12,12, 4, 9, 8, |
11,11,11,11,11,11,11,11,11,11, 2, 8, 7,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,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,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,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, |
}; |
static const static_codebook _44c2_s_p9_0 = { |
2, 169, |
(char *)_vq_lengthlist__44c2_s_p9_0, |
1, -514541568, 1627103232, 4, 0, |
(long *)_vq_quantlist__44c2_s_p9_0, |
0 |
}; |
static const long _vq_quantlist__44c2_s_p9_1[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44c2_s_p9_1[] = { |
1, 4, 4, 6, 6, 7, 6, 8, 8,10, 9,10,10, 6, 5, 5, |
7, 7, 8, 7,10, 9,11,11,12,13, 6, 5, 5, 7, 7, 8, |
8,10,10,11,11,13,13,18, 8, 8, 8, 8, 9, 9,10,10, |
12,12,12,13,18, 8, 8, 8, 8, 9, 9,10,10,12,12,13, |
13,18,11,11, 8, 8,10,10,11,11,12,11,13,12,18,11, |
11, 9, 7,10,10,11,11,11,12,12,13,17,17,17,10,10, |
11,11,12,12,12,10,12,12,17,17,17,11,10,11,10,13, |
12,11,12,12,12,17,17,17,15,14,11,11,12,11,13,10, |
13,12,17,17,17,14,14,12,10,11,11,13,13,13,13,17, |
17,16,17,16,13,13,12,10,13,10,14,13,17,16,17,16, |
17,13,12,12,10,13,11,14,14, |
}; |
static const static_codebook _44c2_s_p9_1 = { |
2, 169, |
(char *)_vq_lengthlist__44c2_s_p9_1, |
1, -522616832, 1620115456, 4, 0, |
(long *)_vq_quantlist__44c2_s_p9_1, |
0 |
}; |
static const long _vq_quantlist__44c2_s_p9_2[] = { |
8, |
7, |
9, |
6, |
10, |
5, |
11, |
4, |
12, |
3, |
13, |
2, |
14, |
1, |
15, |
0, |
16, |
}; |
static const char _vq_lengthlist__44c2_s_p9_2[] = { |
2, 4, 4, 6, 6, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, |
8,10, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, |
9, 9,10, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, |
9, 9, 9,10, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, |
9, 9, 9, 9,10,10,10, 8, 7, 8, 8, 8, 8, 9, 9, 9, |
9, 9, 9, 9, 9,10,11,11, 8, 8, 8, 8, 9, 9, 9, 9, |
9, 9,10, 9, 9, 9,10,11,10, 8, 8, 8, 8, 9, 9, 9, |
9, 9, 9, 9,10,10,10,10,11,10, 8, 8, 9, 9, 9, 9, |
9, 9,10, 9, 9,10, 9,10,11,10,11,11,11, 8, 8, 9, |
9, 9, 9, 9, 9, 9, 9,10,10,11,11,11,11,11, 9, 9, |
9, 9, 9, 9,10, 9, 9, 9,10,10,11,11,11,11,11, 9, |
9, 9, 9, 9, 9, 9, 9, 9,10, 9,10,11,11,11,11,11, |
9, 9, 9, 9,10,10, 9, 9, 9,10,10,10,11,11,11,11, |
11,11,11, 9, 9, 9,10, 9, 9,10,10,10,10,11,11,10, |
11,11,11,11,10, 9,10,10, 9, 9, 9, 9,10,10,11,10, |
11,11,11,11,11, 9, 9, 9, 9,10, 9,10,10,10,10,11, |
10,11,11,11,11,11,10,10, 9, 9,10, 9,10,10,10,10, |
10,10,10,11,11,11,11,11,11, 9, 9,10, 9,10, 9,10, |
10, |
}; |
static const static_codebook _44c2_s_p9_2 = { |
2, 289, |
(char *)_vq_lengthlist__44c2_s_p9_2, |
1, -529530880, 1611661312, 5, 0, |
(long *)_vq_quantlist__44c2_s_p9_2, |
0 |
}; |
static const char _huff_lengthlist__44c2_s_short[] = { |
11, 9,13,12,12,11,12,12,13,15, 8, 2,11, 4, 8, 5, |
7,10,12,15,13, 7,10, 9, 8, 8,10,13,17,17,11, 4, |
12, 5, 9, 5, 8,11,14,16,12, 6, 8, 7, 6, 6, 8,11, |
13,16,11, 4, 9, 5, 6, 4, 6,10,13,16,11, 6,11, 7, |
7, 6, 7,10,13,15,13, 9,12, 9, 8, 6, 8,10,12,14, |
14,10,10, 8, 6, 5, 6, 9,11,13,15,11,11, 9, 6, 5, |
6, 8, 9,12, |
}; |
static const static_codebook _huff_book__44c2_s_short = { |
2, 100, |
(char *)_huff_lengthlist__44c2_s_short, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist__44c3_s_long[] = { |
5, 6,11,11,11,11,10,10,12,11, 5, 2,11, 5, 6, 6, |
7, 9,11,13,13,10, 7,11, 6, 7, 8, 9,10,12,11, 5, |
11, 6, 8, 7, 9,11,14,15,11, 6, 6, 8, 4, 5, 7, 8, |
10,13,10, 5, 7, 7, 5, 5, 6, 8,10,11,10, 7, 7, 8, |
6, 5, 5, 7, 9, 9,11, 8, 8,11, 8, 7, 6, 6, 7, 9, |
12,11,10,13, 9, 9, 7, 7, 7, 9,11,13,12,15,12,11, |
9, 8, 8, 8, |
}; |
static const static_codebook _huff_book__44c3_s_long = { |
2, 100, |
(char *)_huff_lengthlist__44c3_s_long, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const long _vq_quantlist__44c3_s_p1_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44c3_s_p1_0[] = { |
2, 4, 4, 0, 0, 0, 0, 0, 0, 5, 6, 6, 0, 0, 0, 0, |
0, 0, 5, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, 0, |
0, 0, 0, 6, 7, 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, 5, 7, 7, 0, 0, 0, 0, 0, 0, 6, 8, 7, 0, 0, |
0, 0, 0, 0, 7, 8, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 0, |
0, 0, 7, 8, 8, 0, 0, 0, 0, 0, 0, 7, 8, 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, 7, 8, 8, 0, 0, 0, |
0, 0, 0, 8, 8, 9, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 8, 8, 0, 0, |
0, 0, 0, 0, 7, 9, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, |
0, 0, 0, 0, 7, 8, 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, 6, 8, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, |
0, 0, 0, 0, 0, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 6, 8, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, |
0, 0, 0, 0, 0, 0, 8, 9, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, |
}; |
static const static_codebook _44c3_s_p1_0 = { |
8, 6561, |
(char *)_vq_lengthlist__44c3_s_p1_0, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__44c3_s_p1_0, |
0 |
}; |
static const long _vq_quantlist__44c3_s_p2_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44c3_s_p2_0[] = { |
2, 5, 5, 0, 0, 0, 5, 5, 0, 0, 0, 5, 5, 0, 0, 0, |
7, 8, 0, 0, 0, 0, 0, 0, 0, 5, 6, 6, 0, 0, 0, 7, |
7, 0, 0, 0, 7, 7, 0, 0, 0,10,10, 0, 0, 0, 0, 0, |
0, 0, 5, 6, 6, 0, 0, 0, 7, 7, 0, 0, 0, 7, 7, 0, |
0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 7, 7, 0, 0, |
0, 7, 7, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 5, |
7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 9, |
9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 5, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 7, 7, |
0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, |
0, 0, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 9, 9, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
8,10,10, 0, 0, 0, 9, 9, 0, 0, 0, 9, 9, 0, 0, 0, |
10,10, 0, 0, 0, 0, 0, 0, 0, 8,10,10, 0, 0, 0, 9, |
9, 0, 0, 0, 9, 9, 0, 0, 0,10,10, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, |
}; |
static const static_codebook _44c3_s_p2_0 = { |
4, 625, |
(char *)_vq_lengthlist__44c3_s_p2_0, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44c3_s_p2_0, |
0 |
}; |
static const long _vq_quantlist__44c3_s_p3_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44c3_s_p3_0[] = { |
2, 4, 3, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 6, 6, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 4, 4, 4, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 9, 9, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 6, 6, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, |
}; |
static const static_codebook _44c3_s_p3_0 = { |
4, 625, |
(char *)_vq_lengthlist__44c3_s_p3_0, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44c3_s_p3_0, |
0 |
}; |
static const long _vq_quantlist__44c3_s_p4_0[] = { |
4, |
3, |
5, |
2, |
6, |
1, |
7, |
0, |
8, |
}; |
static const char _vq_lengthlist__44c3_s_p4_0[] = { |
2, 3, 3, 6, 6, 0, 0, 0, 0, 0, 4, 4, 6, 6, 0, 0, |
0, 0, 0, 4, 4, 6, 6, 0, 0, 0, 0, 0, 5, 5, 6, 6, |
0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0, |
7, 8, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, |
0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, |
}; |
static const static_codebook _44c3_s_p4_0 = { |
2, 81, |
(char *)_vq_lengthlist__44c3_s_p4_0, |
1, -531628032, 1611661312, 4, 0, |
(long *)_vq_quantlist__44c3_s_p4_0, |
0 |
}; |
static const long _vq_quantlist__44c3_s_p5_0[] = { |
4, |
3, |
5, |
2, |
6, |
1, |
7, |
0, |
8, |
}; |
static const char _vq_lengthlist__44c3_s_p5_0[] = { |
1, 3, 4, 6, 6, 7, 7, 9, 9, 0, 5, 5, 7, 7, 7, 8, |
9, 9, 0, 5, 5, 7, 7, 8, 8, 9, 9, 0, 7, 7, 8, 8, |
8, 8,10,10, 0, 0, 0, 8, 8, 8, 8,10,10, 0, 0, 0, |
9, 9, 9, 9,10,10, 0, 0, 0, 9, 9, 9, 9,10,10, 0, |
0, 0,10,10,10,10,11,11, 0, 0, 0, 0, 0,10,10,11, |
11, |
}; |
static const static_codebook _44c3_s_p5_0 = { |
2, 81, |
(char *)_vq_lengthlist__44c3_s_p5_0, |
1, -531628032, 1611661312, 4, 0, |
(long *)_vq_quantlist__44c3_s_p5_0, |
0 |
}; |
static const long _vq_quantlist__44c3_s_p6_0[] = { |
8, |
7, |
9, |
6, |
10, |
5, |
11, |
4, |
12, |
3, |
13, |
2, |
14, |
1, |
15, |
0, |
16, |
}; |
static const char _vq_lengthlist__44c3_s_p6_0[] = { |
2, 3, 3, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9,10,10,11, |
10, 0, 5, 5, 7, 7, 8, 8, 9, 9, 9, 9,10,10,10,10, |
11,11, 0, 5, 5, 7, 7, 8, 8, 9, 9, 9, 9,10,10,10, |
10,11,11, 0, 6, 6, 7, 7, 8, 8, 9, 9, 9, 9,10,10, |
11,11,11,11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10, |
10,11,11,11,12, 0, 0, 0, 8, 8, 8, 8, 9, 9, 9, 9, |
10,10,11,11,12,12, 0, 0, 0, 8, 8, 8, 8, 9, 9, 9, |
9,10,10,11,11,12,12, 0, 0, 0, 9, 9, 9, 9,10,10, |
10,10,11,10,11,11,12,12, 0, 0, 0, 0, 0, 9, 9,10, |
10,10,10,11,11,11,11,12,12, 0, 0, 0, 0, 0, 9, 8, |
9, 9,10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, 8, |
8, 9, 9,10,10,11,11,12,11,12,12, 0, 0, 0, 0, 0, |
9,10,10,10,11,11,11,11,12,12,13,13, 0, 0, 0, 0, |
0, 0, 0,10,10,10,10,11,11,12,12,13,13, 0, 0, 0, |
0, 0, 0, 0,11,11,11,11,12,12,12,12,13,13, 0, 0, |
0, 0, 0, 0, 0,11,11,11,11,12,12,12,12,13,13, 0, |
0, 0, 0, 0, 0, 0,11,11,12,12,12,12,13,13,13,13, |
0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,12,12,13,13,13, |
13, |
}; |
static const static_codebook _44c3_s_p6_0 = { |
2, 289, |
(char *)_vq_lengthlist__44c3_s_p6_0, |
1, -529530880, 1611661312, 5, 0, |
(long *)_vq_quantlist__44c3_s_p6_0, |
0 |
}; |
static const long _vq_quantlist__44c3_s_p7_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44c3_s_p7_0[] = { |
1, 4, 4, 7, 6, 6, 7, 6, 6, 4, 7, 7,10, 9, 9,11, |
9, 9, 4, 7, 7,10, 9, 9,11, 9, 9, 7,10,10,11,11, |
10,12,11,11, 6, 9, 9,11,10,10,11,10,10, 6, 9, 9, |
11,10,10,11,10,10, 7,11,11,11,11,11,12,11,11, 6, |
9, 9,11,10,10,11,10,10, 6, 9, 9,11,10,10,11,10, |
10, |
}; |
static const static_codebook _44c3_s_p7_0 = { |
4, 81, |
(char *)_vq_lengthlist__44c3_s_p7_0, |
1, -529137664, 1618345984, 2, 0, |
(long *)_vq_quantlist__44c3_s_p7_0, |
0 |
}; |
static const long _vq_quantlist__44c3_s_p7_1[] = { |
5, |
4, |
6, |
3, |
7, |
2, |
8, |
1, |
9, |
0, |
10, |
}; |
static const char _vq_lengthlist__44c3_s_p7_1[] = { |
2, 4, 4, 6, 6, 7, 7, 7, 7, 8, 8,10, 5, 5, 6, 6, |
7, 7, 8, 8, 8, 8,10, 5, 5, 6, 6, 7, 7, 8, 8, 8, |
8,10, 6, 6, 7, 7, 8, 8, 8, 8, 8, 8,10,10,10, 7, |
7, 8, 7, 8, 8, 8, 8,10,10,10, 8, 8, 8, 8, 8, 8, |
8, 8,10,10,10, 7, 8, 8, 8, 8, 8, 8, 8,10,10,10, |
8, 8, 8, 8, 8, 8, 8, 8,10,10,10,10,10, 8, 8, 8, |
8, 8, 8,10,10,10,10,10, 9, 9, 8, 8, 9, 8,10,10, |
10,10,10, 8, 8, 8, 8, 8, 8, |
}; |
static const static_codebook _44c3_s_p7_1 = { |
2, 121, |
(char *)_vq_lengthlist__44c3_s_p7_1, |
1, -531365888, 1611661312, 4, 0, |
(long *)_vq_quantlist__44c3_s_p7_1, |
0 |
}; |
static const long _vq_quantlist__44c3_s_p8_0[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44c3_s_p8_0[] = { |
1, 4, 4, 6, 6, 7, 7, 8, 8, 9, 9,10,10, 6, 5, 5, |
7, 7, 8, 8, 8, 8, 9, 9,10,10, 7, 5, 5, 7, 7, 8, |
8, 8, 8, 9, 9,11,10, 0, 8, 8, 8, 8, 9, 9, 9, 9, |
10,10,11,11, 0, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11, |
11, 0,12,12, 9, 9,10,10,10,10,11,11,11,12, 0,13, |
13, 9, 9,10,10,10,10,11,11,12,12, 0, 0, 0,10,10, |
10,10,11,11,12,12,12,12, 0, 0, 0,10,10,10,10,11, |
11,12,12,12,12, 0, 0, 0,14,14,11,11,11,11,12,12, |
13,13, 0, 0, 0,14,14,11,11,11,11,12,12,13,13, 0, |
0, 0, 0, 0,12,12,12,12,13,13,14,13, 0, 0, 0, 0, |
0,13,13,12,12,13,12,14,13, |
}; |
static const static_codebook _44c3_s_p8_0 = { |
2, 169, |
(char *)_vq_lengthlist__44c3_s_p8_0, |
1, -526516224, 1616117760, 4, 0, |
(long *)_vq_quantlist__44c3_s_p8_0, |
0 |
}; |
static const long _vq_quantlist__44c3_s_p8_1[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44c3_s_p8_1[] = { |
2, 4, 4, 5, 5, 6, 5, 5, 5, 5, 6, 4, 5, 5, 5, 6, |
5, 5, 5, 5, 6, 6, 6, 5, 5, |
}; |
static const static_codebook _44c3_s_p8_1 = { |
2, 25, |
(char *)_vq_lengthlist__44c3_s_p8_1, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44c3_s_p8_1, |
0 |
}; |
static const long _vq_quantlist__44c3_s_p9_0[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44c3_s_p9_0[] = { |
1, 4, 4,12,12,12,12,12,12,12,12,12,12, 4, 9, 8, |
12,12,12,12,12,12,12,12,12,12, 2, 9, 7,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,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,12,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, |
}; |
static const static_codebook _44c3_s_p9_0 = { |
2, 169, |
(char *)_vq_lengthlist__44c3_s_p9_0, |
1, -514332672, 1627381760, 4, 0, |
(long *)_vq_quantlist__44c3_s_p9_0, |
0 |
}; |
static const long _vq_quantlist__44c3_s_p9_1[] = { |
7, |
6, |
8, |
5, |
9, |
4, |
10, |
3, |
11, |
2, |
12, |
1, |
13, |
0, |
14, |
}; |
static const char _vq_lengthlist__44c3_s_p9_1[] = { |
1, 4, 4, 6, 6, 7, 7, 8, 7, 9, 9,10,10,10,10, 6, |
5, 5, 7, 7, 8, 8,10, 8,11,10,12,12,13,13, 6, 5, |
5, 7, 7, 8, 8,10, 9,11,11,12,12,13,12,18, 8, 8, |
8, 8, 9, 9,10, 9,11,10,12,12,13,13,18, 8, 8, 8, |
8, 9, 9,10,10,11,11,13,12,14,13,18,11,11, 9, 9, |
10,10,11,11,11,12,13,12,13,14,18,11,11, 9, 8,11, |
10,11,11,11,11,12,12,14,13,18,18,18,10,11,10,11, |
12,12,12,12,13,12,14,13,18,18,18,10,11,11, 9,12, |
11,12,12,12,13,13,13,18,18,17,14,14,11,11,12,12, |
13,12,14,12,14,13,18,18,18,14,14,11,10,12, 9,12, |
13,13,13,13,13,18,18,17,16,18,13,13,12,12,13,11, |
14,12,14,14,17,18,18,17,18,13,12,13,10,12,11,14, |
14,14,14,17,18,18,18,18,15,16,12,12,13,10,14,12, |
14,15,18,18,18,16,17,16,14,12,11,13,10,13,13,14, |
15, |
}; |
static const static_codebook _44c3_s_p9_1 = { |
2, 225, |
(char *)_vq_lengthlist__44c3_s_p9_1, |
1, -522338304, 1620115456, 4, 0, |
(long *)_vq_quantlist__44c3_s_p9_1, |
0 |
}; |
static const long _vq_quantlist__44c3_s_p9_2[] = { |
8, |
7, |
9, |
6, |
10, |
5, |
11, |
4, |
12, |
3, |
13, |
2, |
14, |
1, |
15, |
0, |
16, |
}; |
static const char _vq_lengthlist__44c3_s_p9_2[] = { |
2, 5, 5, 6, 6, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, |
8,10, 6, 6, 7, 7, 8, 7, 8, 8, 8, 8, 8, 9, 9, 9, |
9, 9,10, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, |
9, 9, 9,10, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, |
9, 9, 9, 9,10,10,10, 7, 7, 8, 8, 8, 9, 9, 9, 9, |
9, 9, 9, 9, 9,11,11,11, 8, 8, 8, 8, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9,10,10,10, 8, 8, 8, 8, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9,10,10,10, 8, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9,10, 9,10,10,10,11,11, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9,11,10,11,11,11, 9, 9, |
9, 9, 9, 9,10,10, 9, 9,10, 9,11,10,11,11,11, 9, |
9, 9, 9, 9, 9, 9, 9,10,10,10, 9,11,11,11,11,11, |
9, 9, 9, 9,10,10, 9, 9, 9, 9,10, 9,11,11,11,11, |
11,11,11, 9, 9, 9, 9, 9, 9,10,10,10,10,11,11,11, |
11,11,11,11,10, 9,10,10, 9,10, 9, 9,10, 9,11,10, |
10,11,11,11,11, 9,10, 9, 9, 9, 9,10,10,10,10,11, |
11,11,11,11,11,10,10,10, 9, 9,10, 9,10, 9,10,10, |
10,10,11,11,11,11,11,11,11, 9, 9, 9, 9, 9,10,10, |
10, |
}; |
static const static_codebook _44c3_s_p9_2 = { |
2, 289, |
(char *)_vq_lengthlist__44c3_s_p9_2, |
1, -529530880, 1611661312, 5, 0, |
(long *)_vq_quantlist__44c3_s_p9_2, |
0 |
}; |
static const char _huff_lengthlist__44c3_s_short[] = { |
10, 9,13,11,14,10,12,13,13,14, 7, 2,12, 5,10, 5, |
7,10,12,14,12, 6, 9, 8, 7, 7, 9,11,13,16,10, 4, |
12, 5,10, 6, 8,12,14,16,12, 6, 8, 7, 6, 5, 7,11, |
12,16,10, 4, 8, 5, 6, 4, 6, 9,13,16,10, 6,10, 7, |
7, 6, 7, 9,13,15,12, 9,11, 9, 8, 6, 7,10,12,14, |
14,11,10, 9, 6, 5, 6, 9,11,13,15,13,11,10, 6, 5, |
6, 8, 9,11, |
}; |
static const static_codebook _huff_book__44c3_s_short = { |
2, 100, |
(char *)_huff_lengthlist__44c3_s_short, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist__44c4_s_long[] = { |
4, 7,11,11,11,11,10,11,12,11, 5, 2,11, 5, 6, 6, |
7, 9,11,12,11, 9, 6,10, 6, 7, 8, 9,10,11,11, 5, |
11, 7, 8, 8, 9,11,13,14,11, 6, 5, 8, 4, 5, 7, 8, |
10,11,10, 6, 7, 7, 5, 5, 6, 8, 9,11,10, 7, 8, 9, |
6, 6, 6, 7, 8, 9,11, 9, 9,11, 7, 7, 6, 6, 7, 9, |
12,12,10,13, 9, 8, 7, 7, 7, 8,11,13,11,14,11,10, |
9, 8, 7, 7, |
}; |
static const static_codebook _huff_book__44c4_s_long = { |
2, 100, |
(char *)_huff_lengthlist__44c4_s_long, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const long _vq_quantlist__44c4_s_p1_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44c4_s_p1_0[] = { |
2, 4, 4, 0, 0, 0, 0, 0, 0, 5, 6, 6, 0, 0, 0, 0, |
0, 0, 5, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, 0, |
0, 0, 0, 6, 8, 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, 5, 7, 7, 0, 0, 0, 0, 0, 0, 6, 8, 7, 0, 0, |
0, 0, 0, 0, 7, 8, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 0, |
0, 0, 7, 8, 8, 0, 0, 0, 0, 0, 0, 7, 8, 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, 7, 8, 8, 0, 0, 0, |
0, 0, 0, 8, 9, 9, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 8, 8, 0, 0, |
0, 0, 0, 0, 8, 9, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 4, 7, 7, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, |
0, 0, 0, 0, 7, 8, 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, 6, 8, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, |
0, 0, 0, 0, 0, 8, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 7, 8, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, |
0, 0, 0, 0, 0, 0, 8, 9, 9, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, |
}; |
static const static_codebook _44c4_s_p1_0 = { |
8, 6561, |
(char *)_vq_lengthlist__44c4_s_p1_0, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__44c4_s_p1_0, |
0 |
}; |
static const long _vq_quantlist__44c4_s_p2_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44c4_s_p2_0[] = { |
2, 5, 5, 0, 0, 0, 5, 5, 0, 0, 0, 5, 5, 0, 0, 0, |
7, 7, 0, 0, 0, 0, 0, 0, 0, 5, 6, 6, 0, 0, 0, 7, |
7, 0, 0, 0, 7, 7, 0, 0, 0,10,10, 0, 0, 0, 0, 0, |
0, 0, 5, 6, 6, 0, 0, 0, 7, 7, 0, 0, 0, 7, 7, 0, |
0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 5, 8, 7, 0, 0, 0, 7, 7, 0, 0, |
0, 7, 7, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 5, |
7, 8, 0, 0, 0, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 9, |
9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 5, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 7, 7, |
0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, |
0, 0, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 9, 9, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
7,10,10, 0, 0, 0, 9, 9, 0, 0, 0, 9, 9, 0, 0, 0, |
10,10, 0, 0, 0, 0, 0, 0, 0, 8,10,10, 0, 0, 0, 9, |
9, 0, 0, 0, 9, 9, 0, 0, 0,10,10, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, |
}; |
static const static_codebook _44c4_s_p2_0 = { |
4, 625, |
(char *)_vq_lengthlist__44c4_s_p2_0, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44c4_s_p2_0, |
0 |
}; |
static const long _vq_quantlist__44c4_s_p3_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44c4_s_p3_0[] = { |
2, 3, 3, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 4, 6, 6, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 4, 4, 5, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 9, 9, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 6, 6, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, |
}; |
static const static_codebook _44c4_s_p3_0 = { |
4, 625, |
(char *)_vq_lengthlist__44c4_s_p3_0, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44c4_s_p3_0, |
0 |
}; |
static const long _vq_quantlist__44c4_s_p4_0[] = { |
4, |
3, |
5, |
2, |
6, |
1, |
7, |
0, |
8, |
}; |
static const char _vq_lengthlist__44c4_s_p4_0[] = { |
2, 3, 3, 6, 6, 0, 0, 0, 0, 0, 4, 4, 6, 6, 0, 0, |
0, 0, 0, 4, 4, 6, 6, 0, 0, 0, 0, 0, 5, 5, 6, 6, |
0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0, |
7, 8, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, |
0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, |
}; |
static const static_codebook _44c4_s_p4_0 = { |
2, 81, |
(char *)_vq_lengthlist__44c4_s_p4_0, |
1, -531628032, 1611661312, 4, 0, |
(long *)_vq_quantlist__44c4_s_p4_0, |
0 |
}; |
static const long _vq_quantlist__44c4_s_p5_0[] = { |
4, |
3, |
5, |
2, |
6, |
1, |
7, |
0, |
8, |
}; |
static const char _vq_lengthlist__44c4_s_p5_0[] = { |
2, 3, 3, 6, 6, 7, 7, 9, 9, 0, 4, 4, 6, 6, 7, 7, |
9, 9, 0, 4, 5, 6, 6, 7, 7, 9, 9, 0, 6, 6, 7, 7, |
8, 8,10,10, 0, 0, 0, 7, 7, 8, 8,10, 9, 0, 0, 0, |
9, 8, 8, 8,10,10, 0, 0, 0, 8, 8, 8, 8,10,10, 0, |
0, 0,10,10, 9, 9,11,11, 0, 0, 0, 0, 0, 9, 9,10, |
10, |
}; |
static const static_codebook _44c4_s_p5_0 = { |
2, 81, |
(char *)_vq_lengthlist__44c4_s_p5_0, |
1, -531628032, 1611661312, 4, 0, |
(long *)_vq_quantlist__44c4_s_p5_0, |
0 |
}; |
static const long _vq_quantlist__44c4_s_p6_0[] = { |
8, |
7, |
9, |
6, |
10, |
5, |
11, |
4, |
12, |
3, |
13, |
2, |
14, |
1, |
15, |
0, |
16, |
}; |
static const char _vq_lengthlist__44c4_s_p6_0[] = { |
2, 4, 4, 6, 6, 8, 8, 9, 9, 8, 8, 9, 9,10,10,11, |
11, 0, 4, 4, 6, 6, 8, 8, 9, 9, 9, 9,10,10,11,11, |
11,11, 0, 4, 4, 7, 6, 8, 8, 9, 9, 9, 9,10,10,11, |
11,11,11, 0, 6, 6, 7, 7, 8, 8, 9, 9, 9, 9,10,10, |
11,11,11,12, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10, |
10,11,11,12,12, 0, 0, 0, 8, 8, 8, 8, 9, 9, 9, 9, |
10,10,11,11,12,12, 0, 0, 0, 8, 8, 8, 8, 9, 9, 9, |
9,10,10,11,11,12,12, 0, 0, 0, 9, 9, 9, 9,10,10, |
10,10,11,11,11,11,12,12, 0, 0, 0, 0, 0, 9, 9,10, |
10,10,10,11,11,11,11,12,12, 0, 0, 0, 0, 0, 9, 9, |
9,10,10,10,11,11,11,11,12,12, 0, 0, 0, 0, 0, 9, |
9, 9, 9,10,10,11,11,11,12,12,12, 0, 0, 0, 0, 0, |
10,10,10,10,11,11,11,11,12,12,13,12, 0, 0, 0, 0, |
0, 0, 0,10,10,11,11,11,11,12,12,12,12, 0, 0, 0, |
0, 0, 0, 0,11,11,11,11,12,12,12,12,13,13, 0, 0, |
0, 0, 0, 0, 0,11,11,11,11,12,12,12,12,13,13, 0, |
0, 0, 0, 0, 0, 0,12,12,12,12,12,12,13,13,13,13, |
0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,12,12,12,13,13, |
13, |
}; |
static const static_codebook _44c4_s_p6_0 = { |
2, 289, |
(char *)_vq_lengthlist__44c4_s_p6_0, |
1, -529530880, 1611661312, 5, 0, |
(long *)_vq_quantlist__44c4_s_p6_0, |
0 |
}; |
static const long _vq_quantlist__44c4_s_p7_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44c4_s_p7_0[] = { |
1, 4, 4, 7, 6, 6, 7, 6, 6, 4, 7, 7,10, 9, 9,11, |
9, 9, 4, 7, 7,10, 9, 9,11, 9, 9, 7,10,10,11,11, |
10,11,11,11, 6, 9, 9,11,10,10,11,10,10, 6, 9, 9, |
11,10,10,11,10,10, 7,11,11,12,11,11,12,11,11, 6, |
9, 9,11,10,10,11,10,10, 6, 9, 9,11,10,10,11,10, |
10, |
}; |
static const static_codebook _44c4_s_p7_0 = { |
4, 81, |
(char *)_vq_lengthlist__44c4_s_p7_0, |
1, -529137664, 1618345984, 2, 0, |
(long *)_vq_quantlist__44c4_s_p7_0, |
0 |
}; |
static const long _vq_quantlist__44c4_s_p7_1[] = { |
5, |
4, |
6, |
3, |
7, |
2, |
8, |
1, |
9, |
0, |
10, |
}; |
static const char _vq_lengthlist__44c4_s_p7_1[] = { |
2, 4, 4, 6, 6, 7, 7, 7, 7, 8, 8,10, 5, 5, 6, 6, |
7, 7, 8, 8, 8, 8,10, 5, 5, 6, 6, 7, 7, 8, 8, 8, |
8,10, 6, 6, 7, 7, 8, 8, 8, 8, 8, 8,10,10,10, 7, |
7, 8, 8, 8, 8, 8, 8,10,10,10, 8, 7, 8, 8, 8, 8, |
8, 8,10,10,10, 7, 7, 8, 8, 8, 8, 8, 8,10,10,10, |
8, 8, 8, 8, 8, 8, 8, 8,10,10,10,10,10, 8, 8, 8, |
8, 8, 8,10,10,10,10,10, 9, 9, 8, 8, 9, 8,10,10, |
10,10,10, 8, 8, 8, 8, 9, 9, |
}; |
static const static_codebook _44c4_s_p7_1 = { |
2, 121, |
(char *)_vq_lengthlist__44c4_s_p7_1, |
1, -531365888, 1611661312, 4, 0, |
(long *)_vq_quantlist__44c4_s_p7_1, |
0 |
}; |
static const long _vq_quantlist__44c4_s_p8_0[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44c4_s_p8_0[] = { |
1, 4, 4, 6, 6, 7, 7, 8, 8, 9, 9,10,10, 6, 5, 5, |
7, 7, 8, 8, 8, 8, 9,10,11,11, 7, 5, 5, 7, 7, 8, |
8, 9, 9,10,10,11,11, 0, 8, 8, 8, 8, 9, 9, 9, 9, |
10,10,11,11, 0, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11, |
11, 0,12,12, 9, 9, 9, 9,10,10,10,10,11,11, 0,13, |
13, 9, 9,10, 9,10,10,11,11,11,12, 0, 0, 0,10,10, |
10,10,10,10,11,11,12,12, 0, 0, 0,10,10,10,10,10, |
10,11,11,12,12, 0, 0, 0,14,14,11,11,11,11,12,12, |
12,12, 0, 0, 0,14,14,11,11,11,11,12,12,12,13, 0, |
0, 0, 0, 0,12,12,12,12,12,12,13,13, 0, 0, 0, 0, |
0,13,12,12,12,12,12,13,13, |
}; |
static const static_codebook _44c4_s_p8_0 = { |
2, 169, |
(char *)_vq_lengthlist__44c4_s_p8_0, |
1, -526516224, 1616117760, 4, 0, |
(long *)_vq_quantlist__44c4_s_p8_0, |
0 |
}; |
static const long _vq_quantlist__44c4_s_p8_1[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44c4_s_p8_1[] = { |
2, 4, 4, 5, 5, 6, 5, 5, 5, 5, 6, 5, 4, 5, 5, 6, |
5, 5, 5, 5, 6, 6, 6, 5, 5, |
}; |
static const static_codebook _44c4_s_p8_1 = { |
2, 25, |
(char *)_vq_lengthlist__44c4_s_p8_1, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44c4_s_p8_1, |
0 |
}; |
static const long _vq_quantlist__44c4_s_p9_0[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44c4_s_p9_0[] = { |
1, 3, 3,12,12,12,12,12,12,12,12,12,12, 4, 7, 7, |
12,12,12,12,12,12,12,12,12,12, 3, 8, 8,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,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, |
}; |
static const static_codebook _44c4_s_p9_0 = { |
2, 169, |
(char *)_vq_lengthlist__44c4_s_p9_0, |
1, -513964032, 1628680192, 4, 0, |
(long *)_vq_quantlist__44c4_s_p9_0, |
0 |
}; |
static const long _vq_quantlist__44c4_s_p9_1[] = { |
7, |
6, |
8, |
5, |
9, |
4, |
10, |
3, |
11, |
2, |
12, |
1, |
13, |
0, |
14, |
}; |
static const char _vq_lengthlist__44c4_s_p9_1[] = { |
1, 4, 4, 5, 5, 7, 7, 9, 8,10, 9,10,10,10,10, 6, |
5, 5, 7, 7, 9, 8,10, 9,11,10,12,12,13,13, 6, 5, |
5, 7, 7, 9, 9,10,10,11,11,12,12,12,13,19, 8, 8, |
8, 8, 9, 9,10,10,12,11,12,12,13,13,19, 8, 8, 8, |
8, 9, 9,11,11,12,12,13,13,13,13,19,12,12, 9, 9, |
11,11,11,11,12,11,13,12,13,13,18,12,12, 9, 9,11, |
10,11,11,12,12,12,13,13,14,19,18,18,11,11,11,11, |
12,12,13,12,13,13,14,14,16,18,18,11,11,11,10,12, |
11,13,13,13,13,13,14,17,18,18,14,15,11,12,12,13, |
13,13,13,14,14,14,18,18,18,15,15,12,10,13,10,13, |
13,13,13,13,14,18,17,18,17,18,12,13,12,13,13,13, |
14,14,16,14,18,17,18,18,17,13,12,13,10,12,12,14, |
14,14,14,17,18,18,18,18,14,15,12,12,13,12,14,14, |
15,15,18,18,18,17,18,15,14,12,11,12,12,14,14,14, |
15, |
}; |
static const static_codebook _44c4_s_p9_1 = { |
2, 225, |
(char *)_vq_lengthlist__44c4_s_p9_1, |
1, -520986624, 1620377600, 4, 0, |
(long *)_vq_quantlist__44c4_s_p9_1, |
0 |
}; |
static const long _vq_quantlist__44c4_s_p9_2[] = { |
10, |
9, |
11, |
8, |
12, |
7, |
13, |
6, |
14, |
5, |
15, |
4, |
16, |
3, |
17, |
2, |
18, |
1, |
19, |
0, |
20, |
}; |
static const char _vq_lengthlist__44c4_s_p9_2[] = { |
2, 5, 5, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, |
8, 9, 9, 9, 9,11, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, |
9, 9, 9, 9, 9, 9,10,10,10,10,11, 6, 6, 7, 7, 8, |
8, 8, 8, 9, 9, 9, 9, 9, 9,10, 9,10,10,10,10,11, |
7, 7, 7, 7, 8, 8, 9, 9, 9, 9, 9, 9, 9,10,10,10, |
10,10,10,10,12,11,11, 7, 7, 8, 8, 9, 9, 9, 9, 9, |
9,10,10,10,10,10,10,10,10,12,11,12, 8, 8, 8, 8, |
9, 9, 9, 9, 9,10,10,10,10,10,10,10,10,10,11,11, |
11, 8, 8, 8, 8, 9, 9, 9, 9,10,10,10,10,10,10,10, |
10,10,10,11,11,12, 9, 9, 9, 9, 9, 9,10, 9,10,10, |
10,10,10,10,10,10,10,10,11,11,11,11,11, 9, 9, 9, |
9,10,10,10,10,10,10,10,10,10,10,10,10,11,12,11, |
11,11, 9, 9, 9,10,10,10,10,10,10,10,10,10,10,10, |
10,10,11,11,11,11,11, 9, 9, 9, 9,10,10,10,10,10, |
10,10,10,10,10,10,10,11,11,11,12,12,10,10,10,10, |
10,10,10,10,10,10,10,10,10,10,10,10,11,12,11,12, |
11,11,11, 9,10,10,10,10,10,10,10,10,10,10,10,10, |
10,11,12,11,11,11,11,11,10,10,10,10,10,10,10,10, |
10,10,10,10,10,10,11,11,11,12,11,11,11,10,10,10, |
10,10,10,10,10,10,10,10,10,10,10,12,11,11,12,11, |
11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10, |
11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10, |
10,10,10,10,10,11,11,11,11,12,12,11,11,11,11,11, |
11,11,10,10,10,10,10,10,10,10,12,12,12,11,11,11, |
12,11,11,11,10,10,10,10,10,10,10,10,10,10,10,12, |
11,12,12,12,12,12,11,12,11,11,10,10,10,10,10,10, |
10,10,10,10,12,12,12,12,11,11,11,11,11,11,11,10, |
10,10,10,10,10,10,10,10,10, |
}; |
static const static_codebook _44c4_s_p9_2 = { |
2, 441, |
(char *)_vq_lengthlist__44c4_s_p9_2, |
1, -529268736, 1611661312, 5, 0, |
(long *)_vq_quantlist__44c4_s_p9_2, |
0 |
}; |
static const char _huff_lengthlist__44c4_s_short[] = { |
4, 7,14,10,15,10,12,15,16,15, 4, 2,11, 5,10, 6, |
8,11,14,14,14,10, 7,11, 6, 8,10,11,13,15, 9, 4, |
11, 5, 9, 6, 9,12,14,15,14, 9, 6, 9, 4, 5, 7,10, |
12,13, 9, 5, 7, 6, 5, 5, 7,10,13,13,10, 8, 9, 8, |
7, 6, 8,10,14,14,13,11,10,10, 7, 7, 8,11,14,15, |
13,12, 9, 9, 6, 5, 7,10,14,17,15,13,11,10, 6, 6, |
7, 9,12,17, |
}; |
static const static_codebook _huff_book__44c4_s_short = { |
2, 100, |
(char *)_huff_lengthlist__44c4_s_short, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist__44c5_s_long[] = { |
3, 8, 9,13,10,12,12,12,12,12, 6, 4, 6, 8, 6, 8, |
10,10,11,12, 8, 5, 4,10, 4, 7, 8, 9,10,11,13, 8, |
10, 8, 9, 9,11,12,13,14,10, 6, 4, 9, 3, 5, 6, 8, |
10,11,11, 8, 6, 9, 5, 5, 6, 7, 9,11,12, 9, 7,11, |
6, 6, 6, 7, 8,10,12,11, 9,12, 7, 7, 6, 6, 7, 9, |
13,12,10,13, 9, 8, 7, 7, 7, 8,11,15,11,15,11,10, |
9, 8, 7, 7, |
}; |
static const static_codebook _huff_book__44c5_s_long = { |
2, 100, |
(char *)_huff_lengthlist__44c5_s_long, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const long _vq_quantlist__44c5_s_p1_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44c5_s_p1_0[] = { |
2, 4, 4, 0, 0, 0, 0, 0, 0, 4, 7, 7, 0, 0, 0, 0, |
0, 0, 4, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, |
0, 0, 0, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 4, 7, 7, 0, 0, 0, 0, 0, 0, 7, 9, 8, 0, 0, |
0, 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 7, 7, 0, 0, 0, 0, |
0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, |
0, 0, 0, 9,10,11, 0, 0, 0, 0, 0, 0, 9,10,10, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, |
0, 0, 0, 0, 8,10, 9, 0, 0, 0, 0, 0, 0, 9,10,11, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 4, 7, 7, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, |
0, 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 9,11,10, 0, |
0, 0, 0, 0, 0, 8, 9,10, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 9,10,10, |
0, 0, 0, 0, 0, 0, 9,11,10, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, |
}; |
static const static_codebook _44c5_s_p1_0 = { |
8, 6561, |
(char *)_vq_lengthlist__44c5_s_p1_0, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__44c5_s_p1_0, |
0 |
}; |
static const long _vq_quantlist__44c5_s_p2_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44c5_s_p2_0[] = { |
2, 4, 4, 0, 0, 0, 5, 5, 0, 0, 0, 5, 5, 0, 0, 0, |
8, 7, 0, 0, 0, 0, 0, 0, 0, 4, 6, 6, 0, 0, 0, 8, |
8, 0, 0, 0, 8, 7, 0, 0, 0,10,10, 0, 0, 0, 0, 0, |
0, 0, 4, 6, 6, 0, 0, 0, 8, 8, 0, 0, 0, 7, 8, 0, |
0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 5, 8, 7, 0, 0, 0, 8, 8, 0, 0, |
0, 8, 8, 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 5, |
7, 8, 0, 0, 0, 8, 8, 0, 0, 0, 8, 8, 0, 0, 0,10, |
10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 5, 8, 8, 0, 0, 0, 8, 8, 0, 0, 0, 8, 8, |
0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 5, 8, 8, 0, |
0, 0, 8, 8, 0, 0, 0, 8, 8, 0, 0, 0,10,10, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
8,10,10, 0, 0, 0,10,10, 0, 0, 0, 9,10, 0, 0, 0, |
11,10, 0, 0, 0, 0, 0, 0, 0, 8,10,10, 0, 0, 0,10, |
10, 0, 0, 0,10,10, 0, 0, 0,10,11, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, |
}; |
static const static_codebook _44c5_s_p2_0 = { |
4, 625, |
(char *)_vq_lengthlist__44c5_s_p2_0, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44c5_s_p2_0, |
0 |
}; |
static const long _vq_quantlist__44c5_s_p3_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44c5_s_p3_0[] = { |
2, 4, 3, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 5, 6, 6, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 3, 5, 5, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 8, 8, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 5, 6, 6, 8, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, |
}; |
static const static_codebook _44c5_s_p3_0 = { |
4, 625, |
(char *)_vq_lengthlist__44c5_s_p3_0, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44c5_s_p3_0, |
0 |
}; |
static const long _vq_quantlist__44c5_s_p4_0[] = { |
4, |
3, |
5, |
2, |
6, |
1, |
7, |
0, |
8, |
}; |
static const char _vq_lengthlist__44c5_s_p4_0[] = { |
2, 3, 3, 6, 6, 0, 0, 0, 0, 0, 4, 4, 6, 6, 0, 0, |
0, 0, 0, 4, 4, 6, 6, 0, 0, 0, 0, 0, 5, 5, 6, 6, |
0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0, |
7, 7, 0, 0, 0, 0, 0, 0, 0, 8, 7, 0, 0, 0, 0, 0, |
0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, |
}; |
static const static_codebook _44c5_s_p4_0 = { |
2, 81, |
(char *)_vq_lengthlist__44c5_s_p4_0, |
1, -531628032, 1611661312, 4, 0, |
(long *)_vq_quantlist__44c5_s_p4_0, |
0 |
}; |
static const long _vq_quantlist__44c5_s_p5_0[] = { |
4, |
3, |
5, |
2, |
6, |
1, |
7, |
0, |
8, |
}; |
static const char _vq_lengthlist__44c5_s_p5_0[] = { |
2, 4, 3, 6, 6, 7, 7, 9, 9, 0, 4, 4, 6, 6, 7, 7, |
9, 9, 0, 4, 4, 6, 6, 7, 7, 9, 9, 0, 6, 6, 7, 7, |
7, 7, 9, 9, 0, 0, 0, 7, 6, 7, 7, 9, 9, 0, 0, 0, |
8, 8, 8, 8,10,10, 0, 0, 0, 8, 8, 8, 8,10,10, 0, |
0, 0, 9, 9, 9, 9,10,10, 0, 0, 0, 0, 0, 9, 9,10, |
10, |
}; |
static const static_codebook _44c5_s_p5_0 = { |
2, 81, |
(char *)_vq_lengthlist__44c5_s_p5_0, |
1, -531628032, 1611661312, 4, 0, |
(long *)_vq_quantlist__44c5_s_p5_0, |
0 |
}; |
static const long _vq_quantlist__44c5_s_p6_0[] = { |
8, |
7, |
9, |
6, |
10, |
5, |
11, |
4, |
12, |
3, |
13, |
2, |
14, |
1, |
15, |
0, |
16, |
}; |
static const char _vq_lengthlist__44c5_s_p6_0[] = { |
2, 4, 4, 6, 6, 8, 8, 9, 9, 9, 9,10,10,10,10,11, |
11, 0, 4, 4, 6, 6, 8, 8, 9, 9, 9, 9,10,10,11,11, |
12,12, 0, 4, 4, 6, 6, 8, 8, 9, 9, 9, 9,10,10,11, |
11,12,12, 0, 6, 6, 7, 7, 8, 8, 9, 9, 9, 9,10,10, |
11,11,12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10, |
10,11,11,12,12, 0, 0, 0, 7, 7, 9, 9,10,10,10,10, |
11,11,11,11,12,12, 0, 0, 0, 7, 7, 8, 9,10,10,10, |
10,11,11,11,11,12,12, 0, 0, 0, 8, 8, 9, 9,10,10, |
10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, 9, 9,10, |
10,10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, 9, 9, |
10,10,10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, 9, |
9, 9,10,10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, |
10,10,10,10,11,11,11,12,12,12,13,13, 0, 0, 0, 0, |
0, 0, 0,10,10,11,11,11,11,12,12,13,13, 0, 0, 0, |
0, 0, 0, 0,11,11,11,11,12,12,12,13,13,13, 0, 0, |
0, 0, 0, 0, 0,11,11,11,11,12,12,12,12,13,13, 0, |
0, 0, 0, 0, 0, 0,12,12,12,12,13,12,13,13,13,13, |
0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,12,12,13,13,13, |
13, |
}; |
static const static_codebook _44c5_s_p6_0 = { |
2, 289, |
(char *)_vq_lengthlist__44c5_s_p6_0, |
1, -529530880, 1611661312, 5, 0, |
(long *)_vq_quantlist__44c5_s_p6_0, |
0 |
}; |
static const long _vq_quantlist__44c5_s_p7_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44c5_s_p7_0[] = { |
1, 4, 4, 7, 6, 6, 7, 6, 6, 4, 7, 7,10, 9, 9,11, |
9, 9, 4, 7, 7,10, 9, 9,11, 9, 9, 7,10,10,11,11, |
10,11,11,11, 6, 9, 9,11,10,10,11,10,10, 6, 9, 9, |
11,10,10,11,10,10, 7,11,11,12,11,11,12,11,11, 6, |
9, 9,11,10,10,11,10,10, 6, 9, 9,11,10,10,11,10, |
10, |
}; |
static const static_codebook _44c5_s_p7_0 = { |
4, 81, |
(char *)_vq_lengthlist__44c5_s_p7_0, |
1, -529137664, 1618345984, 2, 0, |
(long *)_vq_quantlist__44c5_s_p7_0, |
0 |
}; |
static const long _vq_quantlist__44c5_s_p7_1[] = { |
5, |
4, |
6, |
3, |
7, |
2, |
8, |
1, |
9, |
0, |
10, |
}; |
static const char _vq_lengthlist__44c5_s_p7_1[] = { |
2, 4, 4, 6, 6, 7, 7, 8, 8, 8, 8,10, 5, 5, 6, 6, |
7, 7, 8, 8, 8, 8,10, 5, 5, 6, 6, 7, 7, 8, 8, 8, |
8,10, 6, 6, 7, 7, 8, 8, 8, 8, 8, 8,10,10,10, 7, |
7, 8, 8, 8, 8, 8, 8,10,10,10, 7, 7, 8, 8, 8, 8, |
8, 8,10,10,10, 7, 7, 8, 8, 8, 8, 8, 8,10,10,10, |
8, 8, 8, 8, 8, 8, 8, 9,10,10,10,10,10, 8, 8, 8, |
8, 8, 8,10,10,10,10,10, 9, 9, 8, 8, 8, 8,10,10, |
10,10,10, 8, 8, 8, 8, 8, 8, |
}; |
static const static_codebook _44c5_s_p7_1 = { |
2, 121, |
(char *)_vq_lengthlist__44c5_s_p7_1, |
1, -531365888, 1611661312, 4, 0, |
(long *)_vq_quantlist__44c5_s_p7_1, |
0 |
}; |
static const long _vq_quantlist__44c5_s_p8_0[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44c5_s_p8_0[] = { |
1, 4, 4, 6, 6, 7, 7, 8, 8, 9, 9,10,10, 6, 5, 5, |
7, 7, 8, 8, 8, 9,10,10,10,10, 7, 5, 5, 7, 7, 8, |
8, 9, 9,10,10,10,10, 0, 8, 8, 8, 8, 9, 9, 9, 9, |
10,10,11,11, 0, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11, |
11, 0,12,12, 9, 9, 9,10,10,10,10,10,11,11, 0,13, |
13, 9, 9, 9, 9,10,10,11,11,11,11, 0, 0, 0,10,10, |
10,10,10,10,11,11,11,11, 0, 0, 0,10,10,10,10,10, |
10,11,11,12,12, 0, 0, 0,14,14,11,11,11,11,12,12, |
12,12, 0, 0, 0,14,14,11,11,11,11,12,12,12,12, 0, |
0, 0, 0, 0,12,12,12,12,12,12,13,13, 0, 0, 0, 0, |
0,12,12,12,12,12,12,13,13, |
}; |
static const static_codebook _44c5_s_p8_0 = { |
2, 169, |
(char *)_vq_lengthlist__44c5_s_p8_0, |
1, -526516224, 1616117760, 4, 0, |
(long *)_vq_quantlist__44c5_s_p8_0, |
0 |
}; |
static const long _vq_quantlist__44c5_s_p8_1[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44c5_s_p8_1[] = { |
2, 4, 4, 5, 5, 6, 5, 5, 5, 5, 6, 4, 5, 5, 5, 6, |
5, 5, 5, 5, 6, 6, 6, 5, 5, |
}; |
static const static_codebook _44c5_s_p8_1 = { |
2, 25, |
(char *)_vq_lengthlist__44c5_s_p8_1, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44c5_s_p8_1, |
0 |
}; |
static const long _vq_quantlist__44c5_s_p9_0[] = { |
7, |
6, |
8, |
5, |
9, |
4, |
10, |
3, |
11, |
2, |
12, |
1, |
13, |
0, |
14, |
}; |
static const char _vq_lengthlist__44c5_s_p9_0[] = { |
1, 3, 3,13,13,13,13,13,13,13,13,13,13,13,13, 4, |
7, 7,13,13,13,13,13,13,13,13,13,13,13,13, 3, 8, |
6,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,12,12,12,12,12,12,12, |
12, |
}; |
static const static_codebook _44c5_s_p9_0 = { |
2, 225, |
(char *)_vq_lengthlist__44c5_s_p9_0, |
1, -512522752, 1628852224, 4, 0, |
(long *)_vq_quantlist__44c5_s_p9_0, |
0 |
}; |
static const long _vq_quantlist__44c5_s_p9_1[] = { |
8, |
7, |
9, |
6, |
10, |
5, |
11, |
4, |
12, |
3, |
13, |
2, |
14, |
1, |
15, |
0, |
16, |
}; |
static const char _vq_lengthlist__44c5_s_p9_1[] = { |
1, 4, 4, 5, 5, 7, 7, 9, 8,10, 9,10,10,11,10,11, |
11, 6, 5, 5, 7, 7, 8, 9,10,10,11,10,12,11,12,11, |
13,12, 6, 5, 5, 7, 7, 9, 9,10,10,11,11,12,12,13, |
12,13,13,18, 8, 8, 8, 8, 9, 9,10,11,11,11,12,11, |
13,11,13,12,18, 8, 8, 8, 8,10,10,11,11,12,12,13, |
13,13,13,13,14,18,12,12, 9, 9,11,11,11,11,12,12, |
13,12,13,12,13,13,20,13,12, 9, 9,11,11,11,11,12, |
12,13,13,13,14,14,13,20,18,19,11,12,11,11,12,12, |
13,13,13,13,13,13,14,13,18,19,19,12,11,11,11,12, |
12,13,12,13,13,13,14,14,13,18,17,19,14,15,12,12, |
12,13,13,13,14,14,14,14,14,14,19,19,19,16,15,12, |
11,13,12,14,14,14,13,13,14,14,14,19,18,19,18,19, |
13,13,13,13,14,14,14,13,14,14,14,14,18,17,19,19, |
19,13,13,13,11,13,11,13,14,14,14,14,14,19,17,17, |
18,18,16,16,13,13,13,13,14,13,15,15,14,14,19,19, |
17,17,18,16,16,13,11,14,10,13,12,14,14,14,14,19, |
19,19,19,19,18,17,13,14,13,11,14,13,14,14,15,15, |
19,19,19,17,19,18,18,14,13,12,11,14,11,15,15,15, |
15, |
}; |
static const static_codebook _44c5_s_p9_1 = { |
2, 289, |
(char *)_vq_lengthlist__44c5_s_p9_1, |
1, -520814592, 1620377600, 5, 0, |
(long *)_vq_quantlist__44c5_s_p9_1, |
0 |
}; |
static const long _vq_quantlist__44c5_s_p9_2[] = { |
10, |
9, |
11, |
8, |
12, |
7, |
13, |
6, |
14, |
5, |
15, |
4, |
16, |
3, |
17, |
2, |
18, |
1, |
19, |
0, |
20, |
}; |
static const char _vq_lengthlist__44c5_s_p9_2[] = { |
3, 5, 5, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, |
8, 8, 8, 8, 9,11, 5, 6, 7, 7, 8, 7, 8, 8, 8, 8, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9,11, 5, 5, 7, 7, 7, |
7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,11, |
7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, |
9,10, 9,10,11,11,11, 7, 7, 8, 8, 8, 8, 9, 9, 9, |
9, 9, 9,10,10,10,10,10,10,11,11,11, 8, 8, 8, 8, |
9, 9, 9, 9, 9, 9, 9,10,10,10,10,10,10,10,11,11, |
11, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9,10,10,10,10,10, |
10,10,10,11,11,11, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
10,10,10,10,10,10,10,10,11,11,11,11,11, 9, 9, 9, |
9, 9, 9,10, 9,10,10,10,10,10,10,10,10,11,11,11, |
11,11, 9, 9, 9, 9, 9, 9,10,10,10,10,10,10,10,10, |
10,10,11,11,11,11,11, 9, 9, 9, 9, 9, 9,10,10,10, |
10,10,10,10,10,10,10,11,11,11,11,11, 9, 9,10, 9, |
10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11, |
11,11,11, 9, 9,10,10,10,10,10,10,10,10,10,10,10, |
10,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10, |
10,10,10,10,10,10,11,11,11,11,11,11,11,10,10,10, |
10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11, |
11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10, |
11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10, |
10,10,10,10,10,11,11,11,11,11,11,11,11,11,10,10, |
10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11, |
11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,11, |
11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10, |
10,10,10,10,11,11,11,11,11,11,11,11,11,11,11,10, |
10,10,10,10,10,10,10,10,10, |
}; |
static const static_codebook _44c5_s_p9_2 = { |
2, 441, |
(char *)_vq_lengthlist__44c5_s_p9_2, |
1, -529268736, 1611661312, 5, 0, |
(long *)_vq_quantlist__44c5_s_p9_2, |
0 |
}; |
static const char _huff_lengthlist__44c5_s_short[] = { |
5, 8,10,14,11,11,12,16,15,17, 5, 5, 7, 9, 7, 8, |
10,13,17,17, 7, 5, 5,10, 5, 7, 8,11,13,15,10, 8, |
10, 8, 8, 8,11,15,18,18, 8, 5, 5, 8, 3, 4, 6,10, |
14,16, 9, 7, 6, 7, 4, 3, 5, 9,14,18,10, 9, 8,10, |
6, 5, 6, 9,14,18,12,12,11,12, 8, 7, 8,11,14,18, |
14,13,12,10, 7, 5, 6, 9,14,18,14,14,13,10, 6, 5, |
6, 8,11,16, |
}; |
static const static_codebook _huff_book__44c5_s_short = { |
2, 100, |
(char *)_huff_lengthlist__44c5_s_short, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist__44c6_s_long[] = { |
3, 8,11,13,14,14,13,13,16,14, 6, 3, 4, 7, 9, 9, |
10,11,14,13,10, 4, 3, 5, 7, 7, 9,10,13,15,12, 7, |
4, 4, 6, 6, 8,10,13,15,12, 8, 6, 6, 6, 6, 8,10, |
13,14,11, 9, 7, 6, 6, 6, 7, 8,12,11,13,10, 9, 8, |
7, 6, 6, 7,11,11,13,11,10, 9, 9, 7, 7, 6,10,11, |
13,13,13,13,13,11, 9, 8,10,12,12,15,15,16,15,12, |
11,10,10,12, |
}; |
static const static_codebook _huff_book__44c6_s_long = { |
2, 100, |
(char *)_huff_lengthlist__44c6_s_long, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const long _vq_quantlist__44c6_s_p1_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44c6_s_p1_0[] = { |
1, 5, 5, 0, 5, 5, 0, 5, 5, 5, 8, 7, 0, 9, 9, 0, |
9, 8, 5, 7, 8, 0, 9, 9, 0, 8, 9, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 5, 9, 8, 0, 8, 8, 0, 8, 8, 5, 8, 9, |
0, 8, 8, 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, |
9, 9, 0, 8, 8, 0, 8, 8, 5, 9, 9, 0, 8, 8, 0, 8, |
8, |
}; |
static const static_codebook _44c6_s_p1_0 = { |
4, 81, |
(char *)_vq_lengthlist__44c6_s_p1_0, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__44c6_s_p1_0, |
0 |
}; |
static const long _vq_quantlist__44c6_s_p2_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44c6_s_p2_0[] = { |
3, 5, 5, 8, 8, 0, 5, 5, 8, 8, 0, 5, 5, 8, 8, 0, |
7, 7, 9, 9, 0, 0, 0, 9, 9, 5, 7, 7, 9, 9, 0, 8, |
8,10,10, 0, 8, 7,10, 9, 0,10,10,11,11, 0, 0, 0, |
11,11, 5, 7, 7, 9, 9, 0, 8, 8,10,10, 0, 7, 8, 9, |
10, 0,10,10,11,11, 0, 0, 0,11,11, 8, 9, 9,11,11, |
0,11,11,12,12, 0,11,10,12,12, 0,13,14,14,14, 0, |
0, 0,14,13, 8, 9, 9,11,11, 0,11,11,12,12, 0,10, |
11,12,12, 0,14,13,14,14, 0, 0, 0,13,14, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 5, 8, 7,11,10, 0, 7, 7,10,10, |
0, 7, 7,10,10, 0, 9, 9,11,10, 0, 0, 0,11,11, 5, |
7, 8,10,11, 0, 7, 7,10,10, 0, 7, 7,10,10, 0, 9, |
9,10,11, 0, 0, 0,11,11, 8,10, 9,12,12, 0,10,10, |
12,12, 0,10,10,12,12, 0,12,12,13,13, 0, 0, 0,13, |
13, 8, 9,10,12,12, 0,10,10,11,12, 0,10,10,12,12, |
0,12,12,13,13, 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 5, 8, 8,11,11, 0, 7, 7,10,10, 0, 7, 7, |
10,10, 0, 9, 9,10,11, 0, 0, 0,11,10, 5, 8, 8,11, |
11, 0, 7, 7,10,10, 0, 7, 7,10,10, 0, 9, 9,11,11, |
0, 0, 0,10,11, 8,10,10,12,12, 0,10,10,12,12, 0, |
10,10,12,12, 0,12,13,13,13, 0, 0, 0,14,13, 8,10, |
10,12,12, 0,10,10,12,12, 0,10,10,12,12, 0,13,12, |
13,13, 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
7,10,10,14,13, 0, 9, 9,13,12, 0, 9, 9,12,12, 0, |
10,10,12,12, 0, 0, 0,12,12, 7,10,10,13,14, 0, 9, |
9,12,13, 0, 9, 9,12,12, 0,10,10,12,12, 0, 0, 0, |
12,12, 9,11,11,14,13, 0,11,10,14,13, 0,11,11,13, |
13, 0,12,12,13,13, 0, 0, 0,13,13, 9,11,11,13,14, |
0,10,11,13,14, 0,11,11,13,13, 0,12,12,13,13, 0, |
0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, |
11,11,14,14, 0,11,11,13,13, 0,11,10,13,13, 0,12, |
12,13,13, 0, 0, 0,13,13, 9,11,11,14,14, 0,11,11, |
13,13, 0,10,11,13,13, 0,12,12,14,13, 0, 0, 0,13, |
13, |
}; |
static const static_codebook _44c6_s_p2_0 = { |
4, 625, |
(char *)_vq_lengthlist__44c6_s_p2_0, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44c6_s_p2_0, |
0 |
}; |
static const long _vq_quantlist__44c6_s_p3_0[] = { |
4, |
3, |
5, |
2, |
6, |
1, |
7, |
0, |
8, |
}; |
static const char _vq_lengthlist__44c6_s_p3_0[] = { |
2, 3, 4, 6, 6, 7, 7, 9, 9, 0, 4, 4, 6, 6, 7, 7, |
9,10, 0, 4, 4, 6, 6, 7, 7,10, 9, 0, 5, 5, 7, 7, |
8, 8,10,10, 0, 0, 0, 7, 6, 8, 8,10,10, 0, 0, 0, |
7, 7, 9, 9,11,11, 0, 0, 0, 7, 7, 9, 9,11,11, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, |
}; |
static const static_codebook _44c6_s_p3_0 = { |
2, 81, |
(char *)_vq_lengthlist__44c6_s_p3_0, |
1, -531628032, 1611661312, 4, 0, |
(long *)_vq_quantlist__44c6_s_p3_0, |
0 |
}; |
static const long _vq_quantlist__44c6_s_p4_0[] = { |
8, |
7, |
9, |
6, |
10, |
5, |
11, |
4, |
12, |
3, |
13, |
2, |
14, |
1, |
15, |
0, |
16, |
}; |
static const char _vq_lengthlist__44c6_s_p4_0[] = { |
2, 4, 4, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, 9,10,10, |
10, 0, 4, 4, 6, 6, 8, 8, 9, 9, 9, 9,10,10,10,10, |
11,11, 0, 4, 4, 6, 6, 8, 8, 9, 9, 9, 9,10,10,10, |
10,11,11, 0, 6, 6, 7, 7, 8, 8, 9, 9, 9, 9,10,10, |
11,11,11,11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10, |
10,11,11,11,11, 0, 0, 0, 7, 7, 9, 9,10,10,10,10, |
11,11,11,11,12,12, 0, 0, 0, 7, 7, 9, 9,10,10,10, |
10,11,11,11,11,12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9, |
10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, 8, 8, 9, |
9,10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, |
}; |
static const static_codebook _44c6_s_p4_0 = { |
2, 289, |
(char *)_vq_lengthlist__44c6_s_p4_0, |
1, -529530880, 1611661312, 5, 0, |
(long *)_vq_quantlist__44c6_s_p4_0, |
0 |
}; |
static const long _vq_quantlist__44c6_s_p5_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44c6_s_p5_0[] = { |
1, 4, 4, 5, 7, 7, 6, 7, 7, 4, 6, 6, 9, 9,10,10, |
10, 9, 4, 6, 6, 9,10, 9,10, 9,10, 6, 9, 9,10,12, |
11,10,11,11, 7,10, 9,11,12,12,12,12,12, 7,10,10, |
11,12,12,12,12,12, 6,10,10,10,12,12,11,12,12, 7, |
9,10,11,12,12,12,12,12, 7,10, 9,12,12,12,12,12, |
12, |
}; |
static const static_codebook _44c6_s_p5_0 = { |
4, 81, |
(char *)_vq_lengthlist__44c6_s_p5_0, |
1, -529137664, 1618345984, 2, 0, |
(long *)_vq_quantlist__44c6_s_p5_0, |
0 |
}; |
static const long _vq_quantlist__44c6_s_p5_1[] = { |
5, |
4, |
6, |
3, |
7, |
2, |
8, |
1, |
9, |
0, |
10, |
}; |
static const char _vq_lengthlist__44c6_s_p5_1[] = { |
3, 5, 4, 6, 6, 7, 7, 8, 8, 8, 8,11, 4, 4, 6, 6, |
7, 7, 8, 8, 8, 8,11, 4, 4, 6, 6, 7, 7, 8, 8, 8, |
8,11, 6, 6, 6, 6, 8, 8, 8, 8, 9, 9,11,11,11, 6, |
6, 7, 8, 8, 8, 8, 9,11,11,11, 7, 7, 8, 8, 8, 8, |
8, 8,11,11,11, 7, 7, 8, 8, 8, 8, 8, 8,11,11,11, |
8, 8, 8, 8, 8, 8, 8, 8,11,11,11,10,10, 8, 8, 8, |
8, 8, 8,11,11,11,10,10, 8, 8, 8, 8, 8, 8,11,11, |
11,10,10, 7, 7, 8, 8, 8, 8, |
}; |
static const static_codebook _44c6_s_p5_1 = { |
2, 121, |
(char *)_vq_lengthlist__44c6_s_p5_1, |
1, -531365888, 1611661312, 4, 0, |
(long *)_vq_quantlist__44c6_s_p5_1, |
0 |
}; |
static const long _vq_quantlist__44c6_s_p6_0[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44c6_s_p6_0[] = { |
1, 4, 4, 6, 6, 8, 8, 8, 8,10, 9,10,10, 6, 5, 5, |
7, 7, 9, 9, 9, 9,10,10,11,11, 6, 5, 5, 7, 7, 9, |
9,10, 9,11,10,11,11, 0, 6, 6, 7, 7, 9, 9,10,10, |
11,11,12,12, 0, 7, 7, 7, 7, 9, 9,10,10,11,11,12, |
12, 0,11,11, 8, 8,10,10,11,11,12,12,12,12, 0,11, |
12, 9, 8,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, |
}; |
static const static_codebook _44c6_s_p6_0 = { |
2, 169, |
(char *)_vq_lengthlist__44c6_s_p6_0, |
1, -526516224, 1616117760, 4, 0, |
(long *)_vq_quantlist__44c6_s_p6_0, |
0 |
}; |
static const long _vq_quantlist__44c6_s_p6_1[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44c6_s_p6_1[] = { |
3, 4, 4, 5, 5, 5, 4, 4, 5, 5, 5, 4, 4, 5, 5, 6, |
5, 5, 5, 5, 6, 6, 6, 5, 5, |
}; |
static const static_codebook _44c6_s_p6_1 = { |
2, 25, |
(char *)_vq_lengthlist__44c6_s_p6_1, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44c6_s_p6_1, |
0 |
}; |
static const long _vq_quantlist__44c6_s_p7_0[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44c6_s_p7_0[] = { |
1, 4, 4, 6, 6, 8, 8, 8, 8,10,10,11,10, 6, 5, 5, |
7, 7, 8, 8, 9, 9,10,10,12,11, 6, 5, 5, 7, 7, 8, |
8, 9, 9,10,10,12,11,21, 7, 7, 7, 7, 9, 9,10,10, |
11,11,12,12,21, 7, 7, 7, 7, 9, 9,10,10,11,11,12, |
12,21,12,12, 9, 9,10,10,11,11,11,11,12,12,21,12, |
12, 9, 9,10,10,11,11,12,12,12,12,21,21,21,11,11, |
10,10,11,12,12,12,13,13,21,21,21,11,11,10,10,12, |
12,12,12,13,13,21,21,21,15,15,11,11,12,12,13,13, |
13,13,21,21,21,15,16,11,11,12,12,13,13,14,14,21, |
21,21,21,20,13,13,13,13,13,13,14,14,20,20,20,20, |
20,13,13,13,13,13,13,14,14, |
}; |
static const static_codebook _44c6_s_p7_0 = { |
2, 169, |
(char *)_vq_lengthlist__44c6_s_p7_0, |
1, -523206656, 1618345984, 4, 0, |
(long *)_vq_quantlist__44c6_s_p7_0, |
0 |
}; |
static const long _vq_quantlist__44c6_s_p7_1[] = { |
5, |
4, |
6, |
3, |
7, |
2, |
8, |
1, |
9, |
0, |
10, |
}; |
static const char _vq_lengthlist__44c6_s_p7_1[] = { |
3, 5, 5, 6, 6, 7, 7, 7, 7, 7, 7, 9, 5, 5, 6, 6, |
7, 7, 7, 7, 8, 7, 8, 5, 5, 6, 6, 7, 7, 7, 7, 7, |
7, 9, 6, 6, 7, 7, 7, 7, 8, 7, 7, 8, 9, 9, 9, 7, |
7, 7, 7, 7, 7, 7, 8, 9, 9, 9, 7, 7, 7, 7, 8, 8, |
8, 8, 9, 9, 9, 7, 7, 7, 7, 7, 7, 8, 8, 9, 9, 9, |
8, 8, 8, 8, 7, 7, 8, 8, 9, 9, 9, 9, 8, 8, 8, 7, |
7, 8, 8, 9, 9, 9, 8, 8, 8, 8, 7, 7, 8, 8, 9, 9, |
9, 8, 8, 7, 7, 7, 7, 8, 8, |
}; |
static const static_codebook _44c6_s_p7_1 = { |
2, 121, |
(char *)_vq_lengthlist__44c6_s_p7_1, |
1, -531365888, 1611661312, 4, 0, |
(long *)_vq_quantlist__44c6_s_p7_1, |
0 |
}; |
static const long _vq_quantlist__44c6_s_p8_0[] = { |
7, |
6, |
8, |
5, |
9, |
4, |
10, |
3, |
11, |
2, |
12, |
1, |
13, |
0, |
14, |
}; |
static const char _vq_lengthlist__44c6_s_p8_0[] = { |
1, 4, 4, 7, 7, 8, 8, 7, 7, 8, 7, 9, 8,10, 9, 6, |
5, 5, 8, 8, 9, 9, 8, 8, 9, 9,11,10,11,10, 6, 5, |
5, 8, 8, 9, 9, 8, 8, 9, 9,10,10,11,11,18, 8, 8, |
9, 8,10,10, 9, 9,10,10,10,10,11,10,18, 8, 8, 9, |
9,10,10, 9, 9,10,10,11,11,12,12,18,12,13, 9,10, |
10,10, 9,10,10,10,11,11,12,11,18,13,13, 9, 9,10, |
10,10,10,10,10,11,11,12,12,18,18,18,10,10, 9, 9, |
11,11,11,11,11,12,12,12,18,18,18,10, 9,10, 9,11, |
10,11,11,11,11,13,12,18,18,18,14,13,10,10,11,11, |
12,12,12,12,12,12,18,18,18,14,13,10,10,11,10,12, |
12,12,12,12,12,18,18,18,18,18,12,12,11,11,12,12, |
13,13,13,14,18,18,18,18,18,12,12,11,11,12,11,13, |
13,14,13,18,18,18,18,18,16,16,11,12,12,13,13,13, |
14,13,18,18,18,18,18,16,15,12,11,12,11,13,11,15, |
14, |
}; |
static const static_codebook _44c6_s_p8_0 = { |
2, 225, |
(char *)_vq_lengthlist__44c6_s_p8_0, |
1, -520986624, 1620377600, 4, 0, |
(long *)_vq_quantlist__44c6_s_p8_0, |
0 |
}; |
static const long _vq_quantlist__44c6_s_p8_1[] = { |
10, |
9, |
11, |
8, |
12, |
7, |
13, |
6, |
14, |
5, |
15, |
4, |
16, |
3, |
17, |
2, |
18, |
1, |
19, |
0, |
20, |
}; |
static const char _vq_lengthlist__44c6_s_p8_1[] = { |
3, 5, 5, 6, 6, 7, 7, 7, 7, 8, 7, 8, 8, 8, 8, 8, |
8, 8, 8, 8, 8,10, 6, 6, 7, 7, 8, 8, 8, 8, 8, 8, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 6, 6, 7, 7, 8, |
8, 8, 8, 8, 8, 9, 8, 9, 9, 9, 9, 9, 9, 9, 9,10, |
7, 7, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9,10,11,11, 8, 7, 8, 8, 8, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9,11,11,11, 8, 8, 8, 8, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,11,11, |
11, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9,11,11,11, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9,11,11,11,11,11, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10, 9,11,11,11, |
11,11, 9, 9, 9, 9, 9, 9,10, 9, 9,10, 9,10, 9, 9, |
10, 9,11,11,11,11,11, 9, 9, 9, 9, 9, 9, 9,10,10, |
10,10, 9,10,10, 9,10,11,11,11,11,11, 9, 9, 9, 9, |
10,10,10, 9,10,10,10,10, 9,10,10, 9,11,11,11,11, |
11,11,11, 9, 9, 9, 9,10,10,10,10, 9,10,10,10,10, |
10,11,11,11,11,11,11,11,10, 9,10,10,10,10,10,10, |
10, 9,10, 9,10,10,11,11,11,11,11,11,11,10, 9,10, |
9,10,10, 9,10,10,10,10,10,10,10,11,11,11,11,11, |
11,11,10,10,10,10,10,10,10, 9,10,10,10,10,10, 9, |
11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10, |
10,10,10,10,10,11,11,11,11,11,11,11,11,11,10,10, |
10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11, |
11,11,11,10,10,10,10,10,10,10,10,10, 9,10,10,11, |
11,11,11,11,11,11,11,11,10,10,10, 9,10,10,10,10, |
10,10,10,10,10,11,11,11,11,11,11,11,11,10,11, 9, |
10,10,10,10,10,10,10,10,10, |
}; |
static const static_codebook _44c6_s_p8_1 = { |
2, 441, |
(char *)_vq_lengthlist__44c6_s_p8_1, |
1, -529268736, 1611661312, 5, 0, |
(long *)_vq_quantlist__44c6_s_p8_1, |
0 |
}; |
static const long _vq_quantlist__44c6_s_p9_0[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44c6_s_p9_0[] = { |
1, 3, 3,11,11,11,11,11,11,11,11,11,11, 4, 7, 7, |
11,11,11,11,11,11,11,11,11,11, 5, 8, 9,11,11,11, |
11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, |
11,11,11,11,11,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 const static_codebook _44c6_s_p9_0 = { |
2, 169, |
(char *)_vq_lengthlist__44c6_s_p9_0, |
1, -511845376, 1630791680, 4, 0, |
(long *)_vq_quantlist__44c6_s_p9_0, |
0 |
}; |
static const long _vq_quantlist__44c6_s_p9_1[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44c6_s_p9_1[] = { |
1, 4, 4, 7, 7, 7, 7, 7, 6, 8, 8, 8, 8, 6, 6, 6, |
8, 8, 8, 8, 8, 7, 9, 8,10,10, 5, 6, 6, 8, 8, 9, |
9, 8, 8,10,10,10,10,16, 9, 9, 9, 9, 9, 9, 9, 8, |
10, 9,11,11,16, 8, 9, 9, 9, 9, 9, 9, 9,10,10,11, |
11,16,13,13, 9, 9,10, 9, 9,10,11,11,11,12,16,13, |
14, 9, 8,10, 8, 9, 9,10,10,12,11,16,14,16, 9, 9, |
9, 9,11,11,12,11,12,11,16,16,16, 9, 7, 9, 6,11, |
11,11,10,11,11,16,16,16,11,12, 9,10,11,11,12,11, |
13,13,16,16,16,12,11,10, 7,12,10,12,12,12,12,16, |
16,15,16,16,10,11,10,11,13,13,14,12,16,16,16,15, |
15,12,10,11,11,13,11,12,13, |
}; |
static const static_codebook _44c6_s_p9_1 = { |
2, 169, |
(char *)_vq_lengthlist__44c6_s_p9_1, |
1, -518889472, 1622704128, 4, 0, |
(long *)_vq_quantlist__44c6_s_p9_1, |
0 |
}; |
static const long _vq_quantlist__44c6_s_p9_2[] = { |
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 const char _vq_lengthlist__44c6_s_p9_2[] = { |
2, 4, 3, 4, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, |
6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, |
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, |
7, |
}; |
static const static_codebook _44c6_s_p9_2 = { |
1, 49, |
(char *)_vq_lengthlist__44c6_s_p9_2, |
1, -526909440, 1611661312, 6, 0, |
(long *)_vq_quantlist__44c6_s_p9_2, |
0 |
}; |
static const char _huff_lengthlist__44c6_s_short[] = { |
3, 9,11,11,13,14,19,17,17,19, 5, 4, 5, 8,10,10, |
13,16,18,19, 7, 4, 4, 5, 8, 9,12,14,17,19, 8, 6, |
5, 5, 7, 7,10,13,16,18,10, 8, 7, 6, 5, 5, 8,11, |
17,19,11, 9, 7, 7, 5, 4, 5, 8,17,19,13,11, 8, 7, |
7, 5, 5, 7,16,18,14,13, 8, 6, 6, 5, 5, 7,16,18, |
18,16,10, 8, 8, 7, 7, 9,16,18,18,18,12,10,10, 9, |
9,10,17,18, |
}; |
static const static_codebook _huff_book__44c6_s_short = { |
2, 100, |
(char *)_huff_lengthlist__44c6_s_short, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist__44c7_s_long[] = { |
3, 8,11,13,15,14,14,13,15,14, 6, 4, 5, 7, 9,10, |
11,11,14,13,10, 4, 3, 5, 7, 8, 9,10,13,13,12, 7, |
4, 4, 5, 6, 8, 9,12,14,13, 9, 6, 5, 5, 6, 8, 9, |
12,14,12, 9, 7, 6, 5, 5, 6, 8,11,11,12,11, 9, 8, |
7, 6, 6, 7,10,11,13,11,10, 9, 8, 7, 6, 6, 9,11, |
13,13,12,12,12,10, 9, 8, 9,11,12,14,15,15,14,12, |
11,10,10,12, |
}; |
static const static_codebook _huff_book__44c7_s_long = { |
2, 100, |
(char *)_huff_lengthlist__44c7_s_long, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const long _vq_quantlist__44c7_s_p1_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44c7_s_p1_0[] = { |
1, 5, 5, 0, 5, 5, 0, 5, 5, 5, 8, 7, 0, 9, 9, 0, |
9, 8, 5, 7, 8, 0, 9, 9, 0, 8, 9, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 5, 9, 9, 0, 8, 8, 0, 8, 8, 5, 8, 9, |
0, 8, 8, 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, |
9, 9, 0, 8, 8, 0, 8, 8, 5, 8, 9, 0, 8, 8, 0, 8, |
8, |
}; |
static const static_codebook _44c7_s_p1_0 = { |
4, 81, |
(char *)_vq_lengthlist__44c7_s_p1_0, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__44c7_s_p1_0, |
0 |
}; |
static const long _vq_quantlist__44c7_s_p2_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44c7_s_p2_0[] = { |
3, 5, 5, 8, 8, 0, 5, 5, 8, 8, 0, 5, 5, 8, 8, 0, |
7, 7, 9, 9, 0, 0, 0, 9, 9, 5, 7, 7, 9, 9, 0, 8, |
8,10,10, 0, 8, 7,10, 9, 0,10,10,11,11, 0, 0, 0, |
11,11, 5, 7, 7, 9, 9, 0, 8, 8,10,10, 0, 7, 8, 9, |
10, 0,10,10,11,11, 0, 0, 0,11,11, 8, 9, 9,11,10, |
0,11,11,12,12, 0,11,10,12,12, 0,13,14,14,14, 0, |
0, 0,14,13, 8, 9, 9,10,11, 0,11,11,12,12, 0,10, |
11,12,12, 0,13,13,14,14, 0, 0, 0,13,14, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 5, 8, 7,11,10, 0, 7, 7,10,10, |
0, 7, 7,10,10, 0, 9, 9,11,10, 0, 0, 0,11,11, 5, |
7, 8,10,11, 0, 7, 7,10,10, 0, 7, 7,10,10, 0, 9, |
9,10,11, 0, 0, 0,11,11, 8,10, 9,12,12, 0,10,10, |
12,12, 0,10,10,12,12, 0,12,12,13,13, 0, 0, 0,13, |
13, 8, 9,10,12,12, 0,10,10,12,12, 0,10,10,11,12, |
0,12,12,13,13, 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 5, 8, 8,11,11, 0, 7, 7,10,10, 0, 7, 7, |
10,10, 0, 9, 9,10,11, 0, 0, 0,11,10, 5, 8, 8,10, |
11, 0, 7, 7,10,10, 0, 7, 7,10,10, 0, 9, 9,11,10, |
0, 0, 0,10,11, 9,10,10,12,12, 0,10,10,12,12, 0, |
10,10,12,12, 0,12,13,13,13, 0, 0, 0,13,12, 9,10, |
10,12,12, 0,10,10,12,12, 0,10,10,12,12, 0,13,12, |
13,13, 0, 0, 0,12,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
7,10,10,14,13, 0, 9, 9,12,12, 0, 9, 9,12,12, 0, |
10,10,12,12, 0, 0, 0,12,12, 7,10,10,13,14, 0, 9, |
9,12,13, 0, 9, 9,12,12, 0,10,10,12,12, 0, 0, 0, |
12,12, 9,11,11,14,13, 0,11,10,13,12, 0,11,11,13, |
13, 0,12,12,13,13, 0, 0, 0,13,13, 9,11,11,13,14, |
0,10,11,12,13, 0,11,11,13,13, 0,12,12,13,13, 0, |
0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, |
11,11,14,14, 0,10,11,13,13, 0,11,10,13,13, 0,12, |
12,13,13, 0, 0, 0,13,12, 9,11,11,14,14, 0,11,10, |
13,13, 0,10,11,13,13, 0,12,12,14,13, 0, 0, 0,13, |
13, |
}; |
static const static_codebook _44c7_s_p2_0 = { |
4, 625, |
(char *)_vq_lengthlist__44c7_s_p2_0, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44c7_s_p2_0, |
0 |
}; |
static const long _vq_quantlist__44c7_s_p3_0[] = { |
4, |
3, |
5, |
2, |
6, |
1, |
7, |
0, |
8, |
}; |
static const char _vq_lengthlist__44c7_s_p3_0[] = { |
2, 4, 4, 5, 5, 7, 7, 9, 9, 0, 4, 4, 6, 6, 7, 7, |
9, 9, 0, 4, 4, 6, 6, 7, 7, 9, 9, 0, 5, 5, 6, 6, |
8, 8,10,10, 0, 0, 0, 6, 6, 8, 8,10,10, 0, 0, 0, |
7, 7, 9, 9,10,10, 0, 0, 0, 7, 7, 8, 8,10,10, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, |
}; |
static const static_codebook _44c7_s_p3_0 = { |
2, 81, |
(char *)_vq_lengthlist__44c7_s_p3_0, |
1, -531628032, 1611661312, 4, 0, |
(long *)_vq_quantlist__44c7_s_p3_0, |
0 |
}; |
static const long _vq_quantlist__44c7_s_p4_0[] = { |
8, |
7, |
9, |
6, |
10, |
5, |
11, |
4, |
12, |
3, |
13, |
2, |
14, |
1, |
15, |
0, |
16, |
}; |
static const char _vq_lengthlist__44c7_s_p4_0[] = { |
3, 4, 4, 5, 5, 7, 7, 8, 8, 8, 8, 9, 9,10,10,11, |
11, 0, 4, 4, 6, 6, 7, 7, 8, 8, 9, 9,10,10,11,11, |
12,12, 0, 4, 4, 6, 6, 7, 7, 8, 8, 9, 9,10,10,11, |
11,12,12, 0, 5, 5, 6, 6, 8, 8, 9, 9, 9, 9,10,10, |
11,12,12,12, 0, 0, 0, 6, 6, 8, 7, 9, 9, 9, 9,10, |
10,11,11,12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9,10,10, |
11,11,12,12,13,12, 0, 0, 0, 7, 7, 8, 8, 9, 9,10, |
10,11,11,12,12,12,13, 0, 0, 0, 7, 7, 8, 8, 9, 9, |
10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 8, 8, 9, |
9,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, |
}; |
static const static_codebook _44c7_s_p4_0 = { |
2, 289, |
(char *)_vq_lengthlist__44c7_s_p4_0, |
1, -529530880, 1611661312, 5, 0, |
(long *)_vq_quantlist__44c7_s_p4_0, |
0 |
}; |
static const long _vq_quantlist__44c7_s_p5_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44c7_s_p5_0[] = { |
1, 4, 4, 5, 7, 7, 6, 7, 7, 4, 6, 7,10,10,10,10, |
10, 9, 4, 6, 6,10,10,10,10, 9,10, 5,10,10, 9,11, |
12,10,11,12, 7,10,10,11,12,12,12,12,12, 7,10,10, |
11,12,12,12,12,12, 6,10,10,10,12,12,11,12,12, 7, |
10,10,12,12,12,12,11,12, 7,10,10,11,12,12,12,12, |
12, |
}; |
static const static_codebook _44c7_s_p5_0 = { |
4, 81, |
(char *)_vq_lengthlist__44c7_s_p5_0, |
1, -529137664, 1618345984, 2, 0, |
(long *)_vq_quantlist__44c7_s_p5_0, |
0 |
}; |
static const long _vq_quantlist__44c7_s_p5_1[] = { |
5, |
4, |
6, |
3, |
7, |
2, |
8, |
1, |
9, |
0, |
10, |
}; |
static const char _vq_lengthlist__44c7_s_p5_1[] = { |
3, 5, 5, 6, 6, 7, 7, 8, 8, 8, 8,11, 4, 4, 6, 6, |
7, 7, 8, 8, 9, 9,11, 4, 4, 6, 6, 7, 7, 8, 8, 9, |
9,12, 5, 5, 6, 6, 7, 7, 9, 9, 9, 9,12,12,12, 6, |
6, 7, 7, 9, 9, 9, 9,11,11,11, 7, 7, 7, 7, 8, 8, |
9, 9,11,11,11, 7, 7, 7, 7, 8, 8, 9, 9,11,11,11, |
7, 7, 8, 8, 8, 8, 9, 9,11,11,11,11,11, 8, 8, 8, |
8, 8, 9,11,11,11,11,11, 8, 8, 8, 8, 8, 8,11,11, |
11,11,11, 7, 7, 8, 8, 8, 8, |
}; |
static const static_codebook _44c7_s_p5_1 = { |
2, 121, |
(char *)_vq_lengthlist__44c7_s_p5_1, |
1, -531365888, 1611661312, 4, 0, |
(long *)_vq_quantlist__44c7_s_p5_1, |
0 |
}; |
static const long _vq_quantlist__44c7_s_p6_0[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44c7_s_p6_0[] = { |
1, 4, 4, 6, 6, 7, 7, 8, 7, 9, 8,10,10, 6, 5, 5, |
7, 7, 8, 8, 9, 9, 9,10,11,11, 7, 5, 5, 7, 7, 8, |
8, 9, 9,10,10,11,11, 0, 7, 7, 7, 7, 9, 8, 9, 9, |
10,10,11,11, 0, 8, 8, 7, 7, 8, 9, 9, 9,10,10,11, |
11, 0,11,11, 9, 9,10,10,11,10,11,11,12,12, 0,12, |
12, 9, 9,10,10,11,11,11,11,12,12, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, |
}; |
static const static_codebook _44c7_s_p6_0 = { |
2, 169, |
(char *)_vq_lengthlist__44c7_s_p6_0, |
1, -526516224, 1616117760, 4, 0, |
(long *)_vq_quantlist__44c7_s_p6_0, |
0 |
}; |
static const long _vq_quantlist__44c7_s_p6_1[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44c7_s_p6_1[] = { |
3, 4, 4, 5, 5, 5, 4, 4, 5, 5, 5, 4, 4, 5, 5, 6, |
5, 5, 5, 5, 6, 6, 6, 5, 5, |
}; |
static const static_codebook _44c7_s_p6_1 = { |
2, 25, |
(char *)_vq_lengthlist__44c7_s_p6_1, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44c7_s_p6_1, |
0 |
}; |
static const long _vq_quantlist__44c7_s_p7_0[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44c7_s_p7_0[] = { |
1, 4, 4, 6, 6, 7, 8, 9, 9,10,10,12,11, 6, 5, 5, |
7, 7, 8, 8, 9,10,11,11,12,12, 7, 5, 5, 7, 7, 8, |
8,10,10,11,11,12,12,20, 7, 7, 7, 7, 8, 9,10,10, |
11,11,12,13,20, 7, 7, 7, 7, 9, 9,10,10,11,12,13, |
13,20,11,11, 8, 8, 9, 9,11,11,12,12,13,13,20,11, |
11, 8, 8, 9, 9,11,11,12,12,13,13,20,20,20,10,10, |
10,10,12,12,13,13,13,13,20,20,20,10,10,10,10,12, |
12,13,13,13,14,20,20,20,14,14,11,11,12,12,13,13, |
14,14,20,20,20,14,14,11,11,12,12,13,13,14,14,20, |
20,20,20,19,13,13,13,13,14,14,15,14,19,19,19,19, |
19,13,13,13,13,14,14,15,15, |
}; |
static const static_codebook _44c7_s_p7_0 = { |
2, 169, |
(char *)_vq_lengthlist__44c7_s_p7_0, |
1, -523206656, 1618345984, 4, 0, |
(long *)_vq_quantlist__44c7_s_p7_0, |
0 |
}; |
static const long _vq_quantlist__44c7_s_p7_1[] = { |
5, |
4, |
6, |
3, |
7, |
2, |
8, |
1, |
9, |
0, |
10, |
}; |
static const char _vq_lengthlist__44c7_s_p7_1[] = { |
4, 5, 5, 6, 6, 7, 7, 7, 7, 7, 7, 8, 6, 6, 7, 7, |
7, 7, 7, 7, 7, 7, 8, 6, 6, 6, 7, 7, 7, 7, 7, 7, |
7, 8, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 7, |
7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 7, 7, 7, 7, 7, 7, |
7, 7, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, |
7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 7, 7, 7, |
7, 7, 7, 8, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 8, 8, |
8, 8, 8, 7, 7, 7, 7, 7, 7, |
}; |
static const static_codebook _44c7_s_p7_1 = { |
2, 121, |
(char *)_vq_lengthlist__44c7_s_p7_1, |
1, -531365888, 1611661312, 4, 0, |
(long *)_vq_quantlist__44c7_s_p7_1, |
0 |
}; |
static const long _vq_quantlist__44c7_s_p8_0[] = { |
7, |
6, |
8, |
5, |
9, |
4, |
10, |
3, |
11, |
2, |
12, |
1, |
13, |
0, |
14, |
}; |
static const char _vq_lengthlist__44c7_s_p8_0[] = { |
1, 4, 4, 7, 7, 8, 8, 8, 7, 9, 8, 9, 9,10,10, 6, |
5, 5, 7, 7, 9, 9, 8, 8,10, 9,11,10,12,11, 6, 5, |
5, 8, 7, 9, 9, 8, 8,10,10,11,11,12,11,19, 8, 8, |
8, 8,10,10, 9, 9,10,10,11,11,12,11,19, 8, 8, 8, |
8,10,10, 9, 9,10,10,11,11,12,12,19,12,12, 9, 9, |
10,10, 9,10,10,10,11,11,12,12,19,12,12, 9, 9,10, |
10,10,10,10,10,12,12,12,12,19,19,19, 9, 9, 9, 9, |
11,10,11,11,12,11,13,13,19,19,19, 9, 9, 9, 9,11, |
10,11,11,11,12,13,13,19,19,19,13,13,10,10,11,11, |
12,12,12,12,13,12,19,19,19,14,13,10,10,11,11,12, |
12,12,13,13,13,19,19,19,19,19,12,12,12,11,12,13, |
14,13,13,13,19,19,19,19,19,12,12,12,11,12,12,13, |
14,13,14,19,19,19,19,19,16,16,12,13,12,13,13,14, |
15,14,19,18,18,18,18,16,15,12,11,12,11,14,12,14, |
14, |
}; |
static const static_codebook _44c7_s_p8_0 = { |
2, 225, |
(char *)_vq_lengthlist__44c7_s_p8_0, |
1, -520986624, 1620377600, 4, 0, |
(long *)_vq_quantlist__44c7_s_p8_0, |
0 |
}; |
static const long _vq_quantlist__44c7_s_p8_1[] = { |
10, |
9, |
11, |
8, |
12, |
7, |
13, |
6, |
14, |
5, |
15, |
4, |
16, |
3, |
17, |
2, |
18, |
1, |
19, |
0, |
20, |
}; |
static const char _vq_lengthlist__44c7_s_p8_1[] = { |
3, 5, 5, 7, 6, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, |
8, 8, 8, 8, 8,10, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 6, 6, 7, 7, 8, |
8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, |
7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9,10,10,10, 8, 8, 8, 8, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10, 8, 8, 8, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10, |
10, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9,10,10,10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9,10,11,10,10,10, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9,10, 9, 9,10, 9, 9,10,11,10, |
11,10, 9, 9, 9, 9, 9, 9, 9,10,10,10, 9,10, 9, 9, |
9, 9,11,10,11,10,10, 9, 9, 9, 9, 9, 9,10, 9, 9, |
10, 9, 9,10, 9, 9,10,11,10,10,11,10, 9, 9, 9, 9, |
9,10,10, 9,10,10,10,10, 9,10,10,10,10,10,10,11, |
11,11,10, 9, 9, 9,10,10,10,10,10,10,10,10,10,10, |
10,10,10,11,11,10,10,10,10,10,10,10,10,10,10,10, |
10, 9,10,10, 9,10,11,11,10,11,10,11,10, 9,10,10, |
9,10,10,10,10,10,10,10,10,10,10,11,11,11,11,10, |
11,11,10,10,10,10,10,10, 9,10, 9,10,10, 9,10, 9, |
10,10,10,11,10,11,10,11,11,10,10,10,10,10,10, 9, |
10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,10, |
10,10,10,10,10,10,10,10,10,10,10,10,10,11,10,11, |
11,10,10,10,10, 9, 9,10,10, 9, 9,10, 9,10,10,10, |
10,11,11,10,10,10,10,10,10,10, 9, 9,10,10,10, 9, |
9,10,10,10,10,10,11,10,11,10,10,10,10,10,10, 9, |
10,10,10,10,10,10,10,10,10, |
}; |
static const static_codebook _44c7_s_p8_1 = { |
2, 441, |
(char *)_vq_lengthlist__44c7_s_p8_1, |
1, -529268736, 1611661312, 5, 0, |
(long *)_vq_quantlist__44c7_s_p8_1, |
0 |
}; |
static const long _vq_quantlist__44c7_s_p9_0[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44c7_s_p9_0[] = { |
1, 3, 3,11,11,11,11,11,11,11,11,11,11, 4, 6, 6, |
11,11,11,11,11,11,11,11,11,11, 4, 7, 7,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,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,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,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, |
}; |
static const static_codebook _44c7_s_p9_0 = { |
2, 169, |
(char *)_vq_lengthlist__44c7_s_p9_0, |
1, -511845376, 1630791680, 4, 0, |
(long *)_vq_quantlist__44c7_s_p9_0, |
0 |
}; |
static const long _vq_quantlist__44c7_s_p9_1[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44c7_s_p9_1[] = { |
1, 4, 4, 7, 7, 7, 7, 7, 6, 8, 8, 8, 8, 6, 6, 6, |
8, 8, 9, 8, 8, 7, 9, 8,11,10, 5, 6, 6, 8, 8, 9, |
8, 8, 8,10, 9,11,11,16, 8, 8, 9, 8, 9, 9, 9, 8, |
10, 9,11,10,16, 8, 8, 9, 9,10,10, 9, 9,10,10,11, |
11,16,13,13, 9, 9,10,10, 9,10,11,11,12,11,16,13, |
13, 9, 8,10, 9,10,10,10,10,11,11,16,14,16, 8, 9, |
9, 9,11,10,11,11,12,11,16,16,16, 9, 7,10, 7,11, |
10,11,11,12,11,16,16,16,12,12, 9,10,11,11,12,11, |
12,12,16,16,16,12,10,10, 7,11, 8,12,11,12,12,16, |
16,15,16,16,11,12,10,10,12,11,12,12,16,16,16,15, |
15,11,11,10,10,12,12,12,12, |
}; |
static const static_codebook _44c7_s_p9_1 = { |
2, 169, |
(char *)_vq_lengthlist__44c7_s_p9_1, |
1, -518889472, 1622704128, 4, 0, |
(long *)_vq_quantlist__44c7_s_p9_1, |
0 |
}; |
static const long _vq_quantlist__44c7_s_p9_2[] = { |
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 const char _vq_lengthlist__44c7_s_p9_2[] = { |
2, 4, 3, 4, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, |
6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, |
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, |
7, |
}; |
static const static_codebook _44c7_s_p9_2 = { |
1, 49, |
(char *)_vq_lengthlist__44c7_s_p9_2, |
1, -526909440, 1611661312, 6, 0, |
(long *)_vq_quantlist__44c7_s_p9_2, |
0 |
}; |
static const char _huff_lengthlist__44c7_s_short[] = { |
4,11,12,14,15,15,17,17,18,18, 5, 6, 6, 8, 9,10, |
13,17,18,19, 7, 5, 4, 6, 8, 9,11,15,19,19, 8, 6, |
5, 5, 6, 7,11,14,16,17, 9, 7, 7, 6, 7, 7,10,13, |
15,19,10, 8, 7, 6, 7, 6, 7, 9,14,16,12,10, 9, 7, |
7, 6, 4, 5,10,15,14,13,11, 7, 6, 6, 4, 2, 7,13, |
16,16,15, 9, 8, 8, 8, 6, 9,13,19,19,17,12,11,10, |
10, 9,11,14, |
}; |
static const static_codebook _huff_book__44c7_s_short = { |
2, 100, |
(char *)_huff_lengthlist__44c7_s_short, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist__44c8_s_long[] = { |
3, 8,12,13,14,14,14,13,14,14, 6, 4, 5, 8,10,10, |
11,11,14,13, 9, 5, 4, 5, 7, 8, 9,10,13,13,12, 7, |
5, 4, 5, 6, 8, 9,12,13,13, 9, 6, 5, 5, 5, 7, 9, |
11,14,12,10, 7, 6, 5, 4, 6, 7,10,11,12,11, 9, 8, |
7, 5, 5, 6,10,10,13,12,10, 9, 8, 6, 6, 5, 8,10, |
14,13,12,12,11,10, 9, 7, 8,10,12,13,14,14,13,12, |
11, 9, 9,10, |
}; |
static const static_codebook _huff_book__44c8_s_long = { |
2, 100, |
(char *)_huff_lengthlist__44c8_s_long, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const long _vq_quantlist__44c8_s_p1_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44c8_s_p1_0[] = { |
1, 5, 5, 0, 5, 5, 0, 5, 5, 5, 7, 7, 0, 9, 8, 0, |
9, 8, 6, 7, 7, 0, 8, 9, 0, 8, 9, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 5, 9, 8, 0, 8, 8, 0, 8, 8, 5, 8, 9, |
0, 8, 8, 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, |
9, 8, 0, 8, 8, 0, 8, 8, 5, 8, 9, 0, 8, 8, 0, 8, |
8, |
}; |
static const static_codebook _44c8_s_p1_0 = { |
4, 81, |
(char *)_vq_lengthlist__44c8_s_p1_0, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__44c8_s_p1_0, |
0 |
}; |
static const long _vq_quantlist__44c8_s_p2_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44c8_s_p2_0[] = { |
3, 5, 5, 8, 8, 0, 5, 5, 8, 8, 0, 5, 5, 8, 8, 0, |
7, 7, 9, 9, 0, 0, 0, 9, 9, 5, 7, 7, 9, 9, 0, 8, |
7,10, 9, 0, 8, 7,10, 9, 0,10,10,11,11, 0, 0, 0, |
11,11, 5, 7, 7, 9, 9, 0, 7, 8, 9,10, 0, 7, 8, 9, |
10, 0,10,10,11,11, 0, 0, 0,11,11, 8, 9, 9,11,10, |
0,11,10,12,11, 0,11,10,12,12, 0,13,13,14,14, 0, |
0, 0,14,13, 8, 9, 9,10,11, 0,10,11,12,12, 0,10, |
11,12,12, 0,13,13,14,14, 0, 0, 0,13,14, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 5, 8, 7,11,10, 0, 7, 7,10,10, |
0, 7, 7,10,10, 0, 9, 9,10,10, 0, 0, 0,11,10, 5, |
7, 8,10,11, 0, 7, 7,10,10, 0, 7, 7,10,10, 0, 9, |
9,10,10, 0, 0, 0,10,10, 8,10, 9,12,12, 0,10,10, |
12,11, 0,10,10,12,12, 0,12,12,13,12, 0, 0, 0,13, |
12, 8, 9,10,12,12, 0,10,10,11,12, 0,10,10,11,12, |
0,12,12,13,13, 0, 0, 0,12,13, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 6, 8, 7,11,10, 0, 7, 7,10,10, 0, 7, 7, |
10,10, 0, 9, 9,10,11, 0, 0, 0,10,10, 6, 7, 8,10, |
11, 0, 7, 7,10,10, 0, 7, 7,10,10, 0, 9, 9,10,10, |
0, 0, 0,10,10, 9,10, 9,12,12, 0,10,10,12,12, 0, |
10,10,12,11, 0,12,12,13,13, 0, 0, 0,13,12, 8, 9, |
10,12,12, 0,10,10,12,12, 0,10,10,11,12, 0,12,12, |
13,13, 0, 0, 0,12,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
7,10,10,13,13, 0, 9, 9,12,12, 0, 9, 9,12,12, 0, |
10,10,12,12, 0, 0, 0,12,12, 7,10,10,13,13, 0, 9, |
9,12,12, 0, 9, 9,12,12, 0,10,10,12,12, 0, 0, 0, |
12,12, 9,11,11,14,13, 0,10,10,13,12, 0,11,10,13, |
12, 0,12,12,13,12, 0, 0, 0,13,13, 9,11,11,13,14, |
0,10,11,12,13, 0,10,11,13,13, 0,12,12,12,13, 0, |
0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, |
11,11,14,14, 0,10,11,13,13, 0,11,10,13,13, 0,11, |
12,13,13, 0, 0, 0,13,12, 9,11,11,14,14, 0,11,10, |
13,13, 0,10,11,13,13, 0,12,12,13,13, 0, 0, 0,12, |
13, |
}; |
static const static_codebook _44c8_s_p2_0 = { |
4, 625, |
(char *)_vq_lengthlist__44c8_s_p2_0, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44c8_s_p2_0, |
0 |
}; |
static const long _vq_quantlist__44c8_s_p3_0[] = { |
4, |
3, |
5, |
2, |
6, |
1, |
7, |
0, |
8, |
}; |
static const char _vq_lengthlist__44c8_s_p3_0[] = { |
2, 4, 4, 5, 5, 7, 7, 9, 9, 0, 4, 4, 6, 6, 7, 7, |
9, 9, 0, 4, 4, 6, 6, 7, 7, 9, 9, 0, 5, 5, 6, 6, |
8, 8,10,10, 0, 0, 0, 6, 6, 8, 8,10,10, 0, 0, 0, |
7, 7, 9, 9,10,10, 0, 0, 0, 7, 7, 8, 8,10,10, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, |
}; |
static const static_codebook _44c8_s_p3_0 = { |
2, 81, |
(char *)_vq_lengthlist__44c8_s_p3_0, |
1, -531628032, 1611661312, 4, 0, |
(long *)_vq_quantlist__44c8_s_p3_0, |
0 |
}; |
static const long _vq_quantlist__44c8_s_p4_0[] = { |
8, |
7, |
9, |
6, |
10, |
5, |
11, |
4, |
12, |
3, |
13, |
2, |
14, |
1, |
15, |
0, |
16, |
}; |
static const char _vq_lengthlist__44c8_s_p4_0[] = { |
3, 4, 4, 5, 5, 7, 7, 8, 8, 8, 8, 9, 9,10,10,11, |
11, 0, 4, 4, 6, 6, 7, 7, 8, 8, 9, 8,10,10,11,11, |
11,11, 0, 4, 4, 6, 6, 7, 7, 8, 8, 9, 9,10,10,11, |
11,11,11, 0, 6, 5, 6, 6, 7, 7, 9, 9, 9, 9,10,10, |
11,11,12,12, 0, 0, 0, 6, 6, 7, 7, 9, 9, 9, 9,10, |
10,11,11,12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9,10,10, |
11,11,11,12,12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9,10, |
10,11,11,11,12,12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9, |
10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 8, 8, 9, |
9,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, |
}; |
static const static_codebook _44c8_s_p4_0 = { |
2, 289, |
(char *)_vq_lengthlist__44c8_s_p4_0, |
1, -529530880, 1611661312, 5, 0, |
(long *)_vq_quantlist__44c8_s_p4_0, |
0 |
}; |
static const long _vq_quantlist__44c8_s_p5_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44c8_s_p5_0[] = { |
1, 4, 4, 5, 7, 7, 6, 7, 7, 4, 7, 6,10,10,10,10, |
10,10, 4, 6, 6,10,10,10,10, 9,10, 5,10,10, 9,11, |
11,10,11,11, 7,10,10,11,12,12,12,12,12, 7,10,10, |
11,12,12,12,12,12, 6,10,10,10,12,12,10,12,12, 7, |
10,10,11,12,12,12,12,12, 7,10,10,11,12,12,12,12, |
12, |
}; |
static const static_codebook _44c8_s_p5_0 = { |
4, 81, |
(char *)_vq_lengthlist__44c8_s_p5_0, |
1, -529137664, 1618345984, 2, 0, |
(long *)_vq_quantlist__44c8_s_p5_0, |
0 |
}; |
static const long _vq_quantlist__44c8_s_p5_1[] = { |
5, |
4, |
6, |
3, |
7, |
2, |
8, |
1, |
9, |
0, |
10, |
}; |
static const char _vq_lengthlist__44c8_s_p5_1[] = { |
3, 5, 5, 6, 6, 7, 7, 8, 8, 8, 8,11, 4, 5, 6, 6, |
7, 7, 8, 8, 8, 8,11, 5, 5, 6, 6, 7, 7, 8, 8, 8, |
9,12, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9,12,12,12, 6, |
6, 7, 7, 8, 8, 9, 9,11,11,11, 6, 6, 7, 7, 8, 8, |
8, 8,11,11,11, 6, 6, 7, 7, 8, 8, 8, 8,11,11,11, |
7, 7, 7, 8, 8, 8, 8, 8,11,11,11,11,11, 7, 7, 8, |
8, 8, 8,11,11,11,11,11, 7, 7, 7, 7, 8, 8,11,11, |
11,11,11, 7, 7, 7, 7, 8, 8, |
}; |
static const static_codebook _44c8_s_p5_1 = { |
2, 121, |
(char *)_vq_lengthlist__44c8_s_p5_1, |
1, -531365888, 1611661312, 4, 0, |
(long *)_vq_quantlist__44c8_s_p5_1, |
0 |
}; |
static const long _vq_quantlist__44c8_s_p6_0[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44c8_s_p6_0[] = { |
1, 4, 4, 6, 6, 7, 7, 8, 8, 9, 9,10,10, 6, 5, 5, |
7, 7, 8, 8, 9, 9,10,10,11,11, 6, 5, 5, 7, 7, 8, |
8, 9, 9,10,10,11,11, 0, 7, 7, 7, 7, 9, 9,10,10, |
10,10,11,11, 0, 7, 7, 7, 7, 9, 9,10,10,10,10,11, |
11, 0,11,11, 9, 9,10,10,11,11,11,11,12,12, 0,12, |
12, 9, 9,10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, |
}; |
static const static_codebook _44c8_s_p6_0 = { |
2, 169, |
(char *)_vq_lengthlist__44c8_s_p6_0, |
1, -526516224, 1616117760, 4, 0, |
(long *)_vq_quantlist__44c8_s_p6_0, |
0 |
}; |
static const long _vq_quantlist__44c8_s_p6_1[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44c8_s_p6_1[] = { |
3, 4, 4, 5, 5, 5, 4, 4, 5, 5, 5, 4, 4, 5, 5, 6, |
5, 5, 5, 5, 6, 6, 6, 5, 5, |
}; |
static const static_codebook _44c8_s_p6_1 = { |
2, 25, |
(char *)_vq_lengthlist__44c8_s_p6_1, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44c8_s_p6_1, |
0 |
}; |
static const long _vq_quantlist__44c8_s_p7_0[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44c8_s_p7_0[] = { |
1, 4, 4, 6, 6, 8, 7, 9, 9,10,10,12,12, 6, 5, 5, |
7, 7, 8, 8,10,10,11,11,12,12, 7, 5, 5, 7, 7, 8, |
8,10,10,11,11,12,12,21, 7, 7, 7, 7, 8, 9,10,10, |
11,11,12,12,21, 7, 7, 7, 7, 9, 9,10,10,12,12,13, |
13,21,11,11, 8, 8, 9, 9,11,11,12,12,13,13,21,11, |
11, 8, 8, 9, 9,11,11,12,12,13,13,21,21,21,10,10, |
10,10,11,11,12,13,13,13,21,21,21,10,10,10,10,11, |
11,13,13,14,13,21,21,21,13,13,11,11,12,12,13,13, |
14,14,21,21,21,14,14,11,11,12,12,13,13,14,14,21, |
21,21,21,20,13,13,13,12,14,14,16,15,20,20,20,20, |
20,13,13,13,13,14,13,15,15, |
}; |
static const static_codebook _44c8_s_p7_0 = { |
2, 169, |
(char *)_vq_lengthlist__44c8_s_p7_0, |
1, -523206656, 1618345984, 4, 0, |
(long *)_vq_quantlist__44c8_s_p7_0, |
0 |
}; |
static const long _vq_quantlist__44c8_s_p7_1[] = { |
5, |
4, |
6, |
3, |
7, |
2, |
8, |
1, |
9, |
0, |
10, |
}; |
static const char _vq_lengthlist__44c8_s_p7_1[] = { |
4, 5, 6, 6, 6, 7, 7, 7, 7, 7, 7, 8, 6, 6, 6, 7, |
7, 7, 7, 7, 7, 7, 8, 6, 6, 6, 6, 7, 7, 7, 7, 7, |
7, 8, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 7, |
7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 7, 7, 7, 7, 7, 7, |
7, 7, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, |
7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 7, 7, 7, |
7, 7, 7, 8, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 8, 8, |
8, 8, 8, 7, 7, 7, 7, 7, 7, |
}; |
static const static_codebook _44c8_s_p7_1 = { |
2, 121, |
(char *)_vq_lengthlist__44c8_s_p7_1, |
1, -531365888, 1611661312, 4, 0, |
(long *)_vq_quantlist__44c8_s_p7_1, |
0 |
}; |
static const long _vq_quantlist__44c8_s_p8_0[] = { |
7, |
6, |
8, |
5, |
9, |
4, |
10, |
3, |
11, |
2, |
12, |
1, |
13, |
0, |
14, |
}; |
static const char _vq_lengthlist__44c8_s_p8_0[] = { |
1, 4, 4, 7, 6, 8, 8, 8, 7, 9, 8,10,10,11,10, 6, |
5, 5, 7, 7, 9, 9, 8, 8,10,10,11,11,12,11, 6, 5, |
5, 7, 7, 9, 9, 9, 9,10,10,11,11,12,12,20, 8, 8, |
8, 8, 9, 9, 9, 9,10,10,11,11,12,12,20, 8, 8, 8, |
8,10, 9, 9, 9,10,10,11,11,12,12,20,12,12, 9, 9, |
10,10,10,10,10,11,12,12,12,12,20,12,12, 9, 9,10, |
10,10,10,11,11,12,12,13,13,20,20,20, 9, 9, 9, 9, |
11,10,11,11,12,12,12,13,20,19,19, 9, 9, 9, 9,11, |
11,11,12,12,12,13,13,19,19,19,13,13,10,10,11,11, |
12,12,13,13,13,13,19,19,19,14,13,11,10,11,11,12, |
12,12,13,13,13,19,19,19,19,19,12,12,12,12,13,13, |
13,13,14,13,19,19,19,19,19,12,12,12,11,12,12,13, |
14,14,14,19,19,19,19,19,16,15,13,12,13,13,13,14, |
14,14,19,19,19,19,19,17,17,13,12,13,11,14,13,15, |
15, |
}; |
static const static_codebook _44c8_s_p8_0 = { |
2, 225, |
(char *)_vq_lengthlist__44c8_s_p8_0, |
1, -520986624, 1620377600, 4, 0, |
(long *)_vq_quantlist__44c8_s_p8_0, |
0 |
}; |
static const long _vq_quantlist__44c8_s_p8_1[] = { |
10, |
9, |
11, |
8, |
12, |
7, |
13, |
6, |
14, |
5, |
15, |
4, |
16, |
3, |
17, |
2, |
18, |
1, |
19, |
0, |
20, |
}; |
static const char _vq_lengthlist__44c8_s_p8_1[] = { |
4, 5, 5, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, |
8, 8, 8, 8, 8,10, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 6, 6, 7, 7, 8, |
8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, |
7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9,10,10,10, 8, 8, 8, 8, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10, 8, 8, 8, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10, |
10, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9,10,10,10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9,10,10,10,10,10, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10, |
10,10, 9, 9, 9, 9, 9, 9, 9, 9,10, 9, 9, 9, 9, 9, |
9, 9,10,10,10,10,10, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9,10,10,10,10,10, 9, 9, 9, 9, |
9, 9, 9, 9,10,10,10, 9, 9, 9, 9, 9,10,10,10,10, |
10,10,10, 9, 9, 9, 9, 9,10,10,10, 9, 9, 9, 9, 9, |
9,10,10,10,10,10,10,10, 9,10,10, 9,10,10,10,10, |
9,10, 9,10,10, 9,10,10,10,10,10,10,10, 9,10,10, |
10,10,10,10, 9, 9,10,10, 9,10,10,10,10,10,10,10, |
10,10,10,10,10,10,10,10, 9, 9, 9,10, 9, 9, 9, 9, |
10,10,10,10,10,10,10,10,10,10,10,10,10,10, 9, 9, |
10, 9,10, 9,10,10,10,10,10,10,10,10,10,10,10,10, |
10,10,10,10, 9, 9,10, 9, 9, 9,10,10,10,10,10,10, |
10,10,10,10,10, 9, 9, 9, 9, 9, 9,10, 9, 9,10,10, |
10,10,10,10,10,10,10,10,10,10,10,10,10, 9,10, 9, |
9,10, 9, 9,10,10,10,10,10,10,10,10,10,10,10,10, |
10, 9, 9,10,10, 9,10, 9, 9, |
}; |
static const static_codebook _44c8_s_p8_1 = { |
2, 441, |
(char *)_vq_lengthlist__44c8_s_p8_1, |
1, -529268736, 1611661312, 5, 0, |
(long *)_vq_quantlist__44c8_s_p8_1, |
0 |
}; |
static const long _vq_quantlist__44c8_s_p9_0[] = { |
8, |
7, |
9, |
6, |
10, |
5, |
11, |
4, |
12, |
3, |
13, |
2, |
14, |
1, |
15, |
0, |
16, |
}; |
static const char _vq_lengthlist__44c8_s_p9_0[] = { |
1, 4, 3,11,11,11,11,11,11,11,11,11,11,11,11,11, |
11, 4, 7, 7,11,11,11,11,11,11,11,11,11,11,11,11, |
11,11, 4, 8,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,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, |
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,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,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,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 const static_codebook _44c8_s_p9_0 = { |
2, 289, |
(char *)_vq_lengthlist__44c8_s_p9_0, |
1, -509798400, 1631393792, 5, 0, |
(long *)_vq_quantlist__44c8_s_p9_0, |
0 |
}; |
static const long _vq_quantlist__44c8_s_p9_1[] = { |
9, |
8, |
10, |
7, |
11, |
6, |
12, |
5, |
13, |
4, |
14, |
3, |
15, |
2, |
16, |
1, |
17, |
0, |
18, |
}; |
static const char _vq_lengthlist__44c8_s_p9_1[] = { |
1, 4, 4, 7, 6, 7, 7, 7, 7, 8, 8, 9, 9,10,10,10, |
10,11,11, 6, 6, 6, 8, 8, 9, 8, 8, 7,10, 8,11,10, |
12,11,12,12,13,13, 5, 5, 6, 8, 8, 9, 9, 8, 8,10, |
9,11,11,12,12,13,13,13,13,17, 8, 8, 9, 9, 9, 9, |
9, 9,10, 9,12,10,12,12,13,12,13,13,17, 9, 8, 9, |
9, 9, 9, 9, 9,10,10,12,12,12,12,13,13,13,13,17, |
13,13, 9, 9,10,10,10,10,11,11,12,11,13,12,13,13, |
14,15,17,13,13, 9, 8,10, 9,10,10,11,11,12,12,14, |
13,15,13,14,15,17,17,17, 9,10, 9,10,11,11,12,12, |
12,12,13,13,14,14,15,15,17,17,17, 9, 8, 9, 8,11, |
11,12,12,12,12,14,13,14,14,14,15,17,17,17,12,14, |
9,10,11,11,12,12,14,13,13,14,15,13,15,15,17,17, |
17,13,11,10, 8,11, 9,13,12,13,13,13,13,13,14,14, |
14,17,17,17,17,17,11,12,11,11,13,13,14,13,15,14, |
13,15,16,15,17,17,17,17,17,11,11,12, 8,13,12,14, |
13,17,14,15,14,15,14,17,17,17,17,17,15,15,12,12, |
12,12,13,14,14,14,15,14,17,14,17,17,17,17,17,16, |
17,12,12,13,12,13,13,14,14,14,14,14,14,17,17,17, |
17,17,17,17,14,14,13,12,13,13,15,15,14,13,15,17, |
17,17,17,17,17,17,17,13,14,13,13,13,13,14,15,15, |
15,14,15,17,17,17,17,17,17,17,16,15,13,14,13,13, |
14,14,15,14,14,16,17,17,17,17,17,17,17,16,16,13, |
14,13,13,14,14,15,14,15,14, |
}; |
static const static_codebook _44c8_s_p9_1 = { |
2, 361, |
(char *)_vq_lengthlist__44c8_s_p9_1, |
1, -518287360, 1622704128, 5, 0, |
(long *)_vq_quantlist__44c8_s_p9_1, |
0 |
}; |
static const long _vq_quantlist__44c8_s_p9_2[] = { |
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 const char _vq_lengthlist__44c8_s_p9_2[] = { |
2, 4, 4, 4, 5, 5, 5, 5, 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, |
}; |
static const static_codebook _44c8_s_p9_2 = { |
1, 49, |
(char *)_vq_lengthlist__44c8_s_p9_2, |
1, -526909440, 1611661312, 6, 0, |
(long *)_vq_quantlist__44c8_s_p9_2, |
0 |
}; |
static const char _huff_lengthlist__44c8_s_short[] = { |
4,11,13,14,15,15,18,17,19,17, 5, 6, 8, 9,10,10, |
12,15,19,19, 6, 6, 6, 6, 8, 8,11,14,18,19, 8, 6, |
5, 4, 6, 7,10,13,16,17, 9, 7, 6, 5, 6, 7, 9,12, |
15,19,10, 8, 7, 6, 6, 6, 7, 9,13,15,12,10, 9, 8, |
7, 6, 4, 5,10,15,13,13,11, 8, 6, 6, 4, 2, 7,12, |
17,15,16,10, 8, 8, 7, 6, 9,12,19,18,17,13,11,10, |
10, 9,11,14, |
}; |
static const static_codebook _huff_book__44c8_s_short = { |
2, 100, |
(char *)_huff_lengthlist__44c8_s_short, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist__44c9_s_long[] = { |
3, 8,12,14,15,15,15,13,15,15, 6, 5, 8,10,12,12, |
13,12,14,13,10, 6, 5, 6, 8, 9,11,11,13,13,13, 8, |
5, 4, 5, 6, 8,10,11,13,14,10, 7, 5, 4, 5, 7, 9, |
11,12,13,11, 8, 6, 5, 4, 5, 7, 9,11,12,11,10, 8, |
7, 5, 4, 5, 9,10,13,13,11,10, 8, 6, 5, 4, 7, 9, |
15,14,13,12,10, 9, 8, 7, 8, 9,12,12,14,13,12,11, |
10, 9, 8, 9, |
}; |
static const static_codebook _huff_book__44c9_s_long = { |
2, 100, |
(char *)_huff_lengthlist__44c9_s_long, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const long _vq_quantlist__44c9_s_p1_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44c9_s_p1_0[] = { |
1, 5, 5, 0, 5, 5, 0, 5, 5, 6, 8, 8, 0, 9, 8, 0, |
9, 8, 6, 8, 8, 0, 8, 9, 0, 8, 9, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 5, 8, 8, 0, 7, 7, 0, 8, 8, 5, 8, 8, |
0, 7, 8, 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, |
9, 8, 0, 8, 8, 0, 7, 7, 5, 8, 9, 0, 8, 8, 0, 7, |
7, |
}; |
static const static_codebook _44c9_s_p1_0 = { |
4, 81, |
(char *)_vq_lengthlist__44c9_s_p1_0, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__44c9_s_p1_0, |
0 |
}; |
static const long _vq_quantlist__44c9_s_p2_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44c9_s_p2_0[] = { |
3, 5, 5, 8, 8, 0, 5, 5, 8, 8, 0, 5, 5, 8, 8, 0, |
7, 7, 9, 9, 0, 0, 0, 9, 9, 6, 7, 7, 9, 8, 0, 8, |
8, 9, 9, 0, 8, 7, 9, 9, 0, 9,10,10,10, 0, 0, 0, |
11,10, 6, 7, 7, 8, 9, 0, 8, 8, 9, 9, 0, 7, 8, 9, |
9, 0,10, 9,11,10, 0, 0, 0,10,10, 8, 9, 8,10,10, |
0,10,10,12,11, 0,10,10,11,11, 0,12,13,13,13, 0, |
0, 0,13,12, 8, 8, 9,10,10, 0,10,10,11,12, 0,10, |
10,11,11, 0,13,12,13,13, 0, 0, 0,13,13, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 6, 8, 7,10,10, 0, 7, 7,10, 9, |
0, 7, 7,10,10, 0, 9, 9,10,10, 0, 0, 0,10,10, 6, |
7, 8,10,10, 0, 7, 7, 9,10, 0, 7, 7,10,10, 0, 9, |
9,10,10, 0, 0, 0,10,10, 8, 9, 9,11,11, 0,10,10, |
11,11, 0,10,10,11,11, 0,12,12,12,12, 0, 0, 0,12, |
12, 8, 9,10,11,11, 0, 9,10,11,11, 0,10,10,11,11, |
0,12,12,12,12, 0, 0, 0,12,12, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 5, 8, 7,10,10, 0, 7, 7,10,10, 0, 7, 7, |
10, 9, 0, 9, 9,10,10, 0, 0, 0,10,10, 6, 7, 8,10, |
10, 0, 7, 7,10,10, 0, 7, 7, 9,10, 0, 9, 9,10,10, |
0, 0, 0,10,10, 8,10, 9,12,11, 0,10,10,12,11, 0, |
10, 9,11,11, 0,11,12,12,12, 0, 0, 0,12,12, 8, 9, |
10,11,12, 0,10,10,11,11, 0, 9,10,11,11, 0,12,11, |
12,12, 0, 0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
7,10, 9,12,12, 0, 9, 9,12,11, 0, 9, 9,11,11, 0, |
10,10,12,11, 0, 0, 0,11,12, 7, 9,10,12,12, 0, 9, |
9,11,12, 0, 9, 9,11,11, 0,10,10,11,12, 0, 0, 0, |
11,11, 9,11,10,13,12, 0,10,10,12,12, 0,10,10,12, |
12, 0,11,11,12,12, 0, 0, 0,13,12, 9,10,11,12,13, |
0,10,10,12,12, 0,10,10,12,12, 0,11,12,12,12, 0, |
0, 0,12,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, |
11,10,13,13, 0,10,10,12,12, 0,10,10,12,12, 0,11, |
12,12,12, 0, 0, 0,12,12, 9,10,11,13,13, 0,10,10, |
12,12, 0,10,10,12,12, 0,12,11,13,12, 0, 0, 0,12, |
12, |
}; |
static const static_codebook _44c9_s_p2_0 = { |
4, 625, |
(char *)_vq_lengthlist__44c9_s_p2_0, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44c9_s_p2_0, |
0 |
}; |
static const long _vq_quantlist__44c9_s_p3_0[] = { |
4, |
3, |
5, |
2, |
6, |
1, |
7, |
0, |
8, |
}; |
static const char _vq_lengthlist__44c9_s_p3_0[] = { |
3, 4, 4, 5, 5, 6, 6, 8, 8, 0, 4, 4, 5, 5, 6, 7, |
8, 8, 0, 4, 4, 5, 5, 7, 7, 8, 8, 0, 5, 5, 6, 6, |
7, 7, 9, 9, 0, 0, 0, 6, 6, 7, 7, 9, 9, 0, 0, 0, |
7, 7, 8, 8, 9, 9, 0, 0, 0, 7, 7, 8, 8, 9, 9, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, |
}; |
static const static_codebook _44c9_s_p3_0 = { |
2, 81, |
(char *)_vq_lengthlist__44c9_s_p3_0, |
1, -531628032, 1611661312, 4, 0, |
(long *)_vq_quantlist__44c9_s_p3_0, |
0 |
}; |
static const long _vq_quantlist__44c9_s_p4_0[] = { |
8, |
7, |
9, |
6, |
10, |
5, |
11, |
4, |
12, |
3, |
13, |
2, |
14, |
1, |
15, |
0, |
16, |
}; |
static const char _vq_lengthlist__44c9_s_p4_0[] = { |
3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9,10,10,10, |
10, 0, 5, 4, 5, 5, 7, 7, 8, 8, 8, 8, 9, 9,10,10, |
11,11, 0, 5, 5, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9,10, |
10,11,11, 0, 6, 5, 6, 6, 7, 7, 8, 8, 9, 9,10,10, |
11,11,11,12, 0, 0, 0, 6, 6, 7, 7, 8, 8, 9, 9,10, |
10,11,11,12,12, 0, 0, 0, 7, 7, 7, 7, 9, 9, 9, 9, |
10,10,11,11,12,12, 0, 0, 0, 7, 7, 7, 8, 9, 9, 9, |
9,10,10,11,11,12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9, |
10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 8, 8, 9, |
9,10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, |
}; |
static const static_codebook _44c9_s_p4_0 = { |
2, 289, |
(char *)_vq_lengthlist__44c9_s_p4_0, |
1, -529530880, 1611661312, 5, 0, |
(long *)_vq_quantlist__44c9_s_p4_0, |
0 |
}; |
static const long _vq_quantlist__44c9_s_p5_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44c9_s_p5_0[] = { |
1, 4, 4, 5, 7, 7, 6, 7, 7, 4, 7, 6, 9,10,10,10, |
10, 9, 4, 6, 7, 9,10,10,10, 9,10, 5, 9, 9, 9,11, |
11,10,11,11, 7,10, 9,11,12,11,12,12,12, 7, 9,10, |
11,11,12,12,12,12, 6,10,10,10,12,12,10,12,11, 7, |
10,10,11,12,12,11,12,12, 7,10,10,11,12,12,12,12, |
12, |
}; |
static const static_codebook _44c9_s_p5_0 = { |
4, 81, |
(char *)_vq_lengthlist__44c9_s_p5_0, |
1, -529137664, 1618345984, 2, 0, |
(long *)_vq_quantlist__44c9_s_p5_0, |
0 |
}; |
static const long _vq_quantlist__44c9_s_p5_1[] = { |
5, |
4, |
6, |
3, |
7, |
2, |
8, |
1, |
9, |
0, |
10, |
}; |
static const char _vq_lengthlist__44c9_s_p5_1[] = { |
4, 5, 5, 6, 6, 7, 7, 7, 7, 7, 7,11, 5, 5, 6, 6, |
7, 7, 7, 7, 8, 8,11, 5, 5, 6, 6, 7, 7, 7, 7, 8, |
8,11, 5, 5, 6, 6, 7, 7, 8, 8, 8, 8,11,11,11, 6, |
6, 7, 7, 7, 8, 8, 8,11,11,11, 6, 6, 7, 7, 7, 8, |
8, 8,11,11,11, 6, 6, 7, 7, 7, 7, 8, 8,11,11,11, |
7, 7, 7, 7, 7, 7, 8, 8,11,11,11,10,10, 7, 7, 7, |
7, 8, 8,11,11,11,11,11, 7, 7, 7, 7, 7, 7,11,11, |
11,11,11, 7, 7, 7, 7, 7, 7, |
}; |
static const static_codebook _44c9_s_p5_1 = { |
2, 121, |
(char *)_vq_lengthlist__44c9_s_p5_1, |
1, -531365888, 1611661312, 4, 0, |
(long *)_vq_quantlist__44c9_s_p5_1, |
0 |
}; |
static const long _vq_quantlist__44c9_s_p6_0[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44c9_s_p6_0[] = { |
2, 4, 4, 6, 6, 7, 7, 7, 7, 8, 8, 9, 9, 5, 4, 4, |
6, 6, 8, 8, 9, 9, 9, 9,10,10, 6, 4, 4, 6, 6, 8, |
8, 9, 9, 9, 9,10,10, 0, 6, 6, 7, 7, 8, 8, 9, 9, |
10,10,11,11, 0, 6, 6, 7, 7, 8, 8, 9, 9,10,10,11, |
11, 0,10,10, 8, 8, 9, 9,10,10,11,11,12,12, 0,11, |
11, 8, 8, 9, 9,10,10,11,11,12,12, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, |
}; |
static const static_codebook _44c9_s_p6_0 = { |
2, 169, |
(char *)_vq_lengthlist__44c9_s_p6_0, |
1, -526516224, 1616117760, 4, 0, |
(long *)_vq_quantlist__44c9_s_p6_0, |
0 |
}; |
static const long _vq_quantlist__44c9_s_p6_1[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44c9_s_p6_1[] = { |
4, 4, 4, 5, 5, 5, 4, 4, 5, 5, 5, 4, 4, 5, 5, 5, |
5, 5, 5, 5, 5, 5, 5, 5, 5, |
}; |
static const static_codebook _44c9_s_p6_1 = { |
2, 25, |
(char *)_vq_lengthlist__44c9_s_p6_1, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44c9_s_p6_1, |
0 |
}; |
static const long _vq_quantlist__44c9_s_p7_0[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44c9_s_p7_0[] = { |
2, 4, 4, 6, 6, 7, 7, 8, 8,10,10,11,11, 6, 4, 4, |
6, 6, 8, 8, 9, 9,10,10,12,12, 6, 4, 5, 6, 6, 8, |
8, 9, 9,10,10,12,12,20, 6, 6, 6, 6, 8, 8, 9,10, |
11,11,12,12,20, 6, 6, 6, 6, 8, 8,10,10,11,11,12, |
12,20,10,10, 7, 7, 9, 9,10,10,11,11,12,12,20,11, |
11, 7, 7, 9, 9,10,10,11,11,12,12,20,20,20, 9, 9, |
9, 9,11,11,12,12,13,13,20,20,20, 9, 9, 9, 9,11, |
11,12,12,13,13,20,20,20,13,13,10,10,11,11,12,13, |
13,13,20,20,20,13,13,10,10,11,11,12,13,13,13,20, |
20,20,20,19,12,12,12,12,13,13,14,15,19,19,19,19, |
19,12,12,12,12,13,13,14,14, |
}; |
static const static_codebook _44c9_s_p7_0 = { |
2, 169, |
(char *)_vq_lengthlist__44c9_s_p7_0, |
1, -523206656, 1618345984, 4, 0, |
(long *)_vq_quantlist__44c9_s_p7_0, |
0 |
}; |
static const long _vq_quantlist__44c9_s_p7_1[] = { |
5, |
4, |
6, |
3, |
7, |
2, |
8, |
1, |
9, |
0, |
10, |
}; |
static const char _vq_lengthlist__44c9_s_p7_1[] = { |
5, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, |
7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 7, 7, 7, 7, 7, |
7, 8, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 8, 8, 8, 6, |
6, 7, 7, 7, 7, 7, 7, 8, 8, 8, 7, 7, 7, 7, 7, 7, |
7, 7, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, |
7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 7, 7, 7, |
7, 7, 7, 8, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 8, 8, |
8, 8, 8, 7, 7, 7, 7, 7, 7, |
}; |
static const static_codebook _44c9_s_p7_1 = { |
2, 121, |
(char *)_vq_lengthlist__44c9_s_p7_1, |
1, -531365888, 1611661312, 4, 0, |
(long *)_vq_quantlist__44c9_s_p7_1, |
0 |
}; |
static const long _vq_quantlist__44c9_s_p8_0[] = { |
7, |
6, |
8, |
5, |
9, |
4, |
10, |
3, |
11, |
2, |
12, |
1, |
13, |
0, |
14, |
}; |
static const char _vq_lengthlist__44c9_s_p8_0[] = { |
1, 4, 4, 7, 6, 8, 8, 8, 8, 9, 9,10,10,11,10, 6, |
5, 5, 7, 7, 9, 9, 8, 9,10,10,11,11,12,12, 6, 5, |
5, 7, 7, 9, 9, 9, 9,10,10,11,11,12,12,21, 7, 8, |
8, 8, 9, 9, 9, 9,10,10,11,11,12,12,21, 8, 8, 8, |
8, 9, 9, 9, 9,10,10,11,11,12,12,21,11,12, 9, 9, |
10,10,10,10,10,11,11,12,12,12,21,12,12, 9, 8,10, |
10,10,10,11,11,12,12,13,13,21,21,21, 9, 9, 9, 9, |
11,11,11,11,12,12,12,13,21,20,20, 9, 9, 9, 9,10, |
11,11,11,12,12,13,13,20,20,20,13,13,10,10,11,11, |
12,12,13,13,13,13,20,20,20,13,13,10,10,11,11,12, |
12,13,13,13,13,20,20,20,20,20,12,12,12,12,12,12, |
13,13,14,14,20,20,20,20,20,12,12,12,11,13,12,13, |
13,14,14,20,20,20,20,20,15,16,13,12,13,13,14,13, |
14,14,20,20,20,20,20,16,15,12,12,13,12,14,13,14, |
14, |
}; |
static const static_codebook _44c9_s_p8_0 = { |
2, 225, |
(char *)_vq_lengthlist__44c9_s_p8_0, |
1, -520986624, 1620377600, 4, 0, |
(long *)_vq_quantlist__44c9_s_p8_0, |
0 |
}; |
static const long _vq_quantlist__44c9_s_p8_1[] = { |
10, |
9, |
11, |
8, |
12, |
7, |
13, |
6, |
14, |
5, |
15, |
4, |
16, |
3, |
17, |
2, |
18, |
1, |
19, |
0, |
20, |
}; |
static const char _vq_lengthlist__44c9_s_p8_1[] = { |
4, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, |
8, 8, 8, 8, 8,10, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 6, 6, 7, 7, 8, |
8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, |
7, 7, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9,10,10,10, 8, 8, 8, 8, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10, 8, 8, 8, 8, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10, |
10, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9,10,10,10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9,10,10,10,10,10, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10, |
10,10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9,10,10,10,10,10, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9,10,10,10,10,10, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9,10, 9, 9, 9,10,10,10,10, |
10,10,10, 9, 9, 9, 9, 9, 9,10, 9, 9, 9, 9, 9, 9, |
9,10,10,10,10,10,10,10, 9, 9, 9,10,10,10,10,10, |
9, 9, 9, 9, 9, 9,10,10,10,10,10,10,10, 9, 9,10, |
9,10, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10,10,10,10, |
10,10,10,10, 9, 9,10,10, 9, 9, 9, 9, 9, 9, 9, 9, |
10,10,10,10,10,10,10,10,10,10,10,10,10, 9, 9, 9, |
9, 9, 9, 9, 9,10,10,10,10,10,10,10,10,10,10,10, |
10,10, 9, 9,10, 9, 9, 9, 9, 9,10,10,10,10,10,10, |
10,10,10,10,10, 9, 9,10,10, 9, 9,10, 9, 9, 9,10, |
10,10,10,10,10,10,10,10,10,10, 9, 9,10, 9, 9, 9, |
9, 9, 9, 9,10,10,10,10,10,10,10,10,10,10,10, 9, |
9, 9, 9,10, 9, 9, 9, 9, 9, |
}; |
static const static_codebook _44c9_s_p8_1 = { |
2, 441, |
(char *)_vq_lengthlist__44c9_s_p8_1, |
1, -529268736, 1611661312, 5, 0, |
(long *)_vq_quantlist__44c9_s_p8_1, |
0 |
}; |
static const long _vq_quantlist__44c9_s_p9_0[] = { |
9, |
8, |
10, |
7, |
11, |
6, |
12, |
5, |
13, |
4, |
14, |
3, |
15, |
2, |
16, |
1, |
17, |
0, |
18, |
}; |
static const char _vq_lengthlist__44c9_s_p9_0[] = { |
1, 4, 3,12,12,12,12,12,12,12,12,12,12,12,12,12, |
12,12,12, 4, 5, 6,12,12,12,12,12,12,12,12,12,12, |
12,12,12,12,12,12, 4, 6, 6,12,12,12,12,12,12,12, |
12,12,12,12,12,12,12,12,12,12,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,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,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,12,12,12,12,12,12,12,12, |
12,12,12,12,12,12,12,12,12,12,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, |
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,11,11,11,11,11,11,11,11,11,11, |
11,11,11,11,11,11,11,11,11, |
}; |
static const static_codebook _44c9_s_p9_0 = { |
2, 361, |
(char *)_vq_lengthlist__44c9_s_p9_0, |
1, -508535424, 1631393792, 5, 0, |
(long *)_vq_quantlist__44c9_s_p9_0, |
0 |
}; |
static const long _vq_quantlist__44c9_s_p9_1[] = { |
9, |
8, |
10, |
7, |
11, |
6, |
12, |
5, |
13, |
4, |
14, |
3, |
15, |
2, |
16, |
1, |
17, |
0, |
18, |
}; |
static const char _vq_lengthlist__44c9_s_p9_1[] = { |
1, 4, 4, 7, 7, 7, 7, 8, 7, 9, 8, 9, 9,10,10,11, |
11,11,11, 6, 5, 5, 8, 8, 9, 9, 9, 8,10, 9,11,10, |
12,12,13,12,13,13, 5, 5, 5, 8, 8, 9, 9, 9, 9,10, |
10,11,11,12,12,13,12,13,13,17, 8, 8, 9, 9, 9, 9, |
9, 9,10,10,12,11,13,12,13,13,13,13,18, 8, 8, 9, |
9, 9, 9, 9, 9,11,11,12,12,13,13,13,13,13,13,17, |
13,12, 9, 9,10,10,10,10,11,11,12,12,12,13,13,13, |
14,14,18,13,12, 9, 9,10,10,10,10,11,11,12,12,13, |
13,13,14,14,14,17,18,18,10,10,10,10,11,11,11,12, |
12,12,14,13,14,13,13,14,18,18,18,10, 9,10, 9,11, |
11,12,12,12,12,13,13,15,14,14,14,18,18,16,13,14, |
10,11,11,11,12,13,13,13,13,14,13,13,14,14,18,18, |
18,14,12,11, 9,11,10,13,12,13,13,13,14,14,14,13, |
14,18,18,17,18,18,11,12,12,12,13,13,14,13,14,14, |
13,14,14,14,18,18,18,18,17,12,10,12, 9,13,11,13, |
14,14,14,14,14,15,14,18,18,17,17,18,14,15,12,13, |
13,13,14,13,14,14,15,14,15,14,18,17,18,18,18,15, |
15,12,10,14,10,14,14,13,13,14,14,14,14,18,16,18, |
18,18,18,17,14,14,13,14,14,13,13,14,14,14,15,15, |
18,18,18,18,17,17,17,14,14,14,12,14,13,14,14,15, |
14,15,14,18,18,18,18,18,18,18,17,16,13,13,13,14, |
14,14,14,15,16,15,18,18,18,18,18,18,18,17,17,13, |
13,13,13,14,13,14,15,15,15, |
}; |
static const static_codebook _44c9_s_p9_1 = { |
2, 361, |
(char *)_vq_lengthlist__44c9_s_p9_1, |
1, -518287360, 1622704128, 5, 0, |
(long *)_vq_quantlist__44c9_s_p9_1, |
0 |
}; |
static const long _vq_quantlist__44c9_s_p9_2[] = { |
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 const char _vq_lengthlist__44c9_s_p9_2[] = { |
2, 4, 4, 5, 5, 5, 5, 5, 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, |
}; |
static const static_codebook _44c9_s_p9_2 = { |
1, 49, |
(char *)_vq_lengthlist__44c9_s_p9_2, |
1, -526909440, 1611661312, 6, 0, |
(long *)_vq_quantlist__44c9_s_p9_2, |
0 |
}; |
static const char _huff_lengthlist__44c9_s_short[] = { |
5,13,18,16,17,17,19,18,19,19, 5, 7,10,11,12,12, |
13,16,17,18, 6, 6, 7, 7, 9, 9,10,14,17,19, 8, 7, |
6, 5, 6, 7, 9,12,19,17, 8, 7, 7, 6, 5, 6, 8,11, |
15,19, 9, 8, 7, 6, 5, 5, 6, 8,13,15,11,10, 8, 8, |
7, 5, 4, 4,10,14,12,13,11, 9, 7, 6, 4, 2, 6,12, |
18,16,16,13, 8, 7, 7, 5, 8,13,16,17,18,15,11, 9, |
9, 8,10,13, |
}; |
static const static_codebook _huff_book__44c9_s_short = { |
2, 100, |
(char *)_huff_lengthlist__44c9_s_short, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist__44c0_s_long[] = { |
5, 4, 8, 9, 8, 9,10,12,15, 4, 1, 5, 5, 6, 8,11, |
12,12, 8, 5, 8, 9, 9,11,13,12,12, 9, 5, 8, 5, 7, |
9,12,13,13, 8, 6, 8, 7, 7, 9,11,11,11, 9, 7, 9, |
7, 7, 7, 7,10,12,10,10,11, 9, 8, 7, 7, 9,11,11, |
12,13,12,11, 9, 8, 9,11,13,16,16,15,15,12,10,11, |
12, |
}; |
static const static_codebook _huff_book__44c0_s_long = { |
2, 81, |
(char *)_huff_lengthlist__44c0_s_long, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const long _vq_quantlist__44c0_s_p1_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44c0_s_p1_0[] = { |
1, 5, 5, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 0, |
0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 5, 8, 7, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, |
0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, |
0, 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 0, |
0, 0, 8,10, 9, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, |
0, 0, 0, 9,10,11, 0, 0, 0, 0, 0, 0, 9,11,10, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, |
0, 0, 0, 0, 9,11, 9, 0, 0, 0, 0, 0, 0, 9,10,11, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, |
0, 0, 0, 0, 8, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 9,11,10, 0, |
0, 0, 0, 0, 0, 9, 9,11, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 7, 9,10, 0, 0, 0, 0, 0, 0, 9,10,11, |
0, 0, 0, 0, 0, 0, 9,11,10, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, |
}; |
static const static_codebook _44c0_s_p1_0 = { |
8, 6561, |
(char *)_vq_lengthlist__44c0_s_p1_0, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__44c0_s_p1_0, |
0 |
}; |
static const long _vq_quantlist__44c0_s_p2_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44c0_s_p2_0[] = { |
1, 4, 4, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 5, 7, 6, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 4, 5, 6, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7, 7, 9, 9, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 6, 7, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, |
}; |
static const static_codebook _44c0_s_p2_0 = { |
4, 625, |
(char *)_vq_lengthlist__44c0_s_p2_0, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44c0_s_p2_0, |
0 |
}; |
static const long _vq_quantlist__44c0_s_p3_0[] = { |
4, |
3, |
5, |
2, |
6, |
1, |
7, |
0, |
8, |
}; |
static const char _vq_lengthlist__44c0_s_p3_0[] = { |
1, 3, 2, 8, 7, 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, |
0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0, 7, 7, |
0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, |
8, 8, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, |
0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, |
}; |
static const static_codebook _44c0_s_p3_0 = { |
2, 81, |
(char *)_vq_lengthlist__44c0_s_p3_0, |
1, -531628032, 1611661312, 4, 0, |
(long *)_vq_quantlist__44c0_s_p3_0, |
0 |
}; |
static const long _vq_quantlist__44c0_s_p4_0[] = { |
4, |
3, |
5, |
2, |
6, |
1, |
7, |
0, |
8, |
}; |
static const char _vq_lengthlist__44c0_s_p4_0[] = { |
1, 3, 3, 6, 6, 6, 6, 8, 8, 0, 0, 0, 7, 7, 7, 7, |
9, 9, 0, 0, 0, 7, 7, 7, 7, 9, 9, 0, 0, 0, 7, 7, |
7, 8, 9, 9, 0, 0, 0, 7, 7, 7, 7, 9, 9, 0, 0, 0, |
9, 9, 8, 8,10,10, 0, 0, 0, 8, 9, 8, 8,10,10, 0, |
0, 0,10,10, 9, 9,10,10, 0, 0, 0, 0, 0, 9, 9,10, |
10, |
}; |
static const static_codebook _44c0_s_p4_0 = { |
2, 81, |
(char *)_vq_lengthlist__44c0_s_p4_0, |
1, -531628032, 1611661312, 4, 0, |
(long *)_vq_quantlist__44c0_s_p4_0, |
0 |
}; |
static const long _vq_quantlist__44c0_s_p5_0[] = { |
8, |
7, |
9, |
6, |
10, |
5, |
11, |
4, |
12, |
3, |
13, |
2, |
14, |
1, |
15, |
0, |
16, |
}; |
static const char _vq_lengthlist__44c0_s_p5_0[] = { |
1, 4, 3, 6, 6, 8, 7, 8, 8, 8, 8, 9, 9,10,10,11, |
11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9, 9,10,10,10, |
11,11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,10,10, |
10,11,11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,10, |
11,11,11,11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10, |
10,11,11,11,11, 0, 0, 0, 8, 8, 9, 9, 9, 9,10,10, |
10,10,11,11,12,12, 0, 0, 0, 8, 8, 9, 9, 9, 9,10, |
10,10,10,11,11,12,12, 0, 0, 0, 9, 9, 9, 9,10,10, |
10,10,11,11,11,12,12,12, 0, 0, 0, 0, 0, 9, 9,10, |
10,10,10,11,11,11,11,12,12, 0, 0, 0, 0, 0, 9, 9, |
10,10,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, |
9,10,10,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, |
10,10,11,11,11,11,11,12,12,12,13,13, 0, 0, 0, 0, |
0, 0, 0,11,10,11,11,11,11,12,12,13,13, 0, 0, 0, |
0, 0, 0, 0,11,11,12,11,12,12,12,12,13,13, 0, 0, |
0, 0, 0, 0, 0,11,11,11,12,12,12,12,13,13,13, 0, |
0, 0, 0, 0, 0, 0,12,12,12,12,12,13,13,13,14,14, |
0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,12,12,13,13,14, |
14, |
}; |
static const static_codebook _44c0_s_p5_0 = { |
2, 289, |
(char *)_vq_lengthlist__44c0_s_p5_0, |
1, -529530880, 1611661312, 5, 0, |
(long *)_vq_quantlist__44c0_s_p5_0, |
0 |
}; |
static const long _vq_quantlist__44c0_s_p6_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44c0_s_p6_0[] = { |
1, 4, 4, 7, 6, 6, 7, 6, 6, 4, 7, 7,10, 9, 9,10, |
9, 9, 4, 6, 7,10, 9, 9,11, 9, 9, 7,10,10,11,11, |
11,12,10,11, 6, 9, 9,11,10,11,11,10,10, 6, 9, 9, |
11,10,11,11,10,10, 7,11,10,12,11,11,11,11,11, 7, |
9, 9,10,10,10,11,11,10, 6, 9, 9,11,10,10,11,10, |
10, |
}; |
static const static_codebook _44c0_s_p6_0 = { |
4, 81, |
(char *)_vq_lengthlist__44c0_s_p6_0, |
1, -529137664, 1618345984, 2, 0, |
(long *)_vq_quantlist__44c0_s_p6_0, |
0 |
}; |
static const long _vq_quantlist__44c0_s_p6_1[] = { |
5, |
4, |
6, |
3, |
7, |
2, |
8, |
1, |
9, |
0, |
10, |
}; |
static const char _vq_lengthlist__44c0_s_p6_1[] = { |
2, 3, 3, 6, 6, 7, 7, 7, 7, 7, 8,10,10,10, 6, 6, |
7, 7, 8, 8, 8, 8,10,10,10, 6, 6, 7, 7, 8, 8, 8, |
8,10,10,10, 7, 7, 7, 7, 8, 8, 8, 8,10,10,10, 7, |
7, 7, 7, 8, 8, 8, 8,10,10,10, 8, 7, 8, 8, 8, 8, |
8, 8,10,10,10, 7, 7, 8, 8, 8, 8, 8, 8,10,10,10, |
8, 8, 8, 8, 8, 8, 8, 8,10,10,10,10,10, 8, 8, 8, |
8, 8, 8,10,10,10,10,10, 9, 9, 8, 8, 8, 8,10,10, |
10,10,10, 8, 8, 8, 8, 8, 8, |
}; |
static const static_codebook _44c0_s_p6_1 = { |
2, 121, |
(char *)_vq_lengthlist__44c0_s_p6_1, |
1, -531365888, 1611661312, 4, 0, |
(long *)_vq_quantlist__44c0_s_p6_1, |
0 |
}; |
static const long _vq_quantlist__44c0_s_p7_0[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44c0_s_p7_0[] = { |
1, 4, 4, 6, 6, 7, 7, 7, 7, 8, 8, 9, 9, 7, 5, 5, |
7, 7, 8, 8, 8, 8, 9, 9,10,10, 7, 5, 6, 7, 7, 8, |
8, 8, 8, 9, 9,10,10, 0, 8, 8, 8, 8, 9, 9, 9, 9, |
10,10,11,11, 0, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11, |
11, 0,12,12, 9, 9,10,10,10,10,11,11,11,11, 0,13, |
13, 9, 9, 9, 9,10,10,11,11,11,12, 0, 0, 0,10,10, |
10,10,11,11,11,11,12,12, 0, 0, 0,10,10, 9, 9,11, |
11,11,12,12,12, 0, 0, 0,13,13,10,10,11,11,12,12, |
13,13, 0, 0, 0,14,14,10,10,11,11,12,12,13,13, 0, |
0, 0, 0, 0,11,11,11,11,13,12,13,13, 0, 0, 0, 0, |
0,12,12,11,11,12,12,13,13, |
}; |
static const static_codebook _44c0_s_p7_0 = { |
2, 169, |
(char *)_vq_lengthlist__44c0_s_p7_0, |
1, -526516224, 1616117760, 4, 0, |
(long *)_vq_quantlist__44c0_s_p7_0, |
0 |
}; |
static const long _vq_quantlist__44c0_s_p7_1[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44c0_s_p7_1[] = { |
2, 3, 3, 5, 5, 6, 6, 6, 5, 5, 6, 6, 6, 5, 5, 6, |
6, 6, 5, 5, 6, 6, 6, 5, 5, |
}; |
static const static_codebook _44c0_s_p7_1 = { |
2, 25, |
(char *)_vq_lengthlist__44c0_s_p7_1, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44c0_s_p7_1, |
0 |
}; |
static const long _vq_quantlist__44c0_s_p8_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44c0_s_p8_0[] = { |
1, 5, 5,10,10, 6, 9, 8,10,10, 6,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, 8,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,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,11,11, |
11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11, |
11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, |
11,11,11,11,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,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, |
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,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,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,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,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,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,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,11,11,11,11,11,11, |
11, |
}; |
static const static_codebook _44c0_s_p8_0 = { |
4, 625, |
(char *)_vq_lengthlist__44c0_s_p8_0, |
1, -518283264, 1627103232, 3, 0, |
(long *)_vq_quantlist__44c0_s_p8_0, |
0 |
}; |
static const long _vq_quantlist__44c0_s_p8_1[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44c0_s_p8_1[] = { |
1, 4, 4, 6, 6, 7, 7, 9, 9,11,12,13,12, 6, 5, 5, |
7, 7, 8, 8,10, 9,12,12,12,12, 6, 5, 5, 7, 7, 8, |
8,10, 9,12,11,11,13,16, 7, 7, 8, 8, 9, 9,10,10, |
12,12,13,12,16, 7, 7, 8, 7, 9, 9,10,10,11,12,12, |
13,16,10,10, 8, 8,10,10,11,12,12,12,13,13,16,11, |
10, 8, 7,11,10,11,11,12,11,13,13,16,16,16,10,10, |
10,10,11,11,13,12,13,13,16,16,16,11, 9,11, 9,15, |
13,12,13,13,13,16,16,16,15,13,11,11,12,13,12,12, |
14,13,16,16,16,14,13,11,11,13,12,14,13,13,13,16, |
16,16,16,16,13,13,13,12,14,13,14,14,16,16,16,16, |
16,13,13,12,12,14,14,15,13, |
}; |
static const static_codebook _44c0_s_p8_1 = { |
2, 169, |
(char *)_vq_lengthlist__44c0_s_p8_1, |
1, -522616832, 1620115456, 4, 0, |
(long *)_vq_quantlist__44c0_s_p8_1, |
0 |
}; |
static const long _vq_quantlist__44c0_s_p8_2[] = { |
8, |
7, |
9, |
6, |
10, |
5, |
11, |
4, |
12, |
3, |
13, |
2, |
14, |
1, |
15, |
0, |
16, |
}; |
static const char _vq_lengthlist__44c0_s_p8_2[] = { |
2, 4, 4, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, |
8,10,10,10, 7, 7, 7, 8, 8, 8, 9, 9, 9, 9, 9, 9, |
9, 9,10,10,10, 7, 7, 7, 7, 8, 8, 9, 9, 9, 9, 9, |
9, 9, 9,10,10,10, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, |
9,10, 9, 9,10,10,10, 7, 7, 8, 8, 9, 8, 9, 9, 9, |
9,10, 9, 9,10,10,10,10, 8, 8, 8, 8, 9, 8, 9, 9, |
9, 9, 9,10, 9,10,10,10,10, 7, 7, 8, 8, 9, 9, 9, |
9, 9, 9,10, 9,10,10,10,10,10, 8, 8, 8, 9, 9, 9, |
9, 9, 9, 9,10,10,10, 9,11,10,10,10,10, 8, 8, 9, |
9, 9, 9, 9,10, 9, 9, 9,10,10,10,10,11,11, 9, 9, |
9, 9, 9, 9, 9, 9,10, 9, 9,10,11,10,10,11,11, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9,10, 9,11,11,10,11,11, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 9,11,10,10,11, |
11,11,11, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10, |
11,11,11,11, 9,10, 9,10, 9, 9, 9, 9,10, 9,10,11, |
10,11,10,10,10,10,10, 9, 9, 9,10, 9, 9, 9,10,11, |
11,10,11,11,10,11,10,10,10, 9, 9, 9, 9,10, 9, 9, |
10,11,10,11,11,11,11,10,11,10,10, 9,10, 9, 9, 9, |
10, |
}; |
static const static_codebook _44c0_s_p8_2 = { |
2, 289, |
(char *)_vq_lengthlist__44c0_s_p8_2, |
1, -529530880, 1611661312, 5, 0, |
(long *)_vq_quantlist__44c0_s_p8_2, |
0 |
}; |
static const char _huff_lengthlist__44c0_s_short[] = { |
9, 8,12,11,12,13,14,14,16, 6, 1, 5, 6, 6, 9,12, |
14,17, 9, 4, 5, 9, 7, 9,13,15,16, 8, 5, 8, 6, 8, |
10,13,17,17, 9, 6, 7, 7, 8, 9,13,15,17,11, 8, 9, |
9, 9,10,12,16,16,13, 7, 8, 7, 7, 9,12,14,15,13, |
6, 7, 5, 5, 7,10,13,13,14, 7, 8, 5, 6, 7, 9,10, |
12, |
}; |
static const static_codebook _huff_book__44c0_s_short = { |
2, 81, |
(char *)_huff_lengthlist__44c0_s_short, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist__44c0_sm_long[] = { |
5, 4, 9,10, 9,10,11,12,13, 4, 1, 5, 7, 7, 9,11, |
12,14, 8, 5, 7, 9, 8,10,13,13,13,10, 7, 9, 4, 6, |
7,10,12,14, 9, 6, 7, 6, 6, 7,10,12,12, 9, 8, 9, |
7, 6, 7, 8,11,12,11,11,11, 9, 8, 7, 8,10,12,12, |
13,14,12,11, 9, 9, 9,12,12,17,17,15,16,12,10,11, |
13, |
}; |
static const static_codebook _huff_book__44c0_sm_long = { |
2, 81, |
(char *)_huff_lengthlist__44c0_sm_long, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const long _vq_quantlist__44c0_sm_p1_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44c0_sm_p1_0[] = { |
1, 5, 5, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 0, |
0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 5, 8, 7, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, |
0, 0, 0, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 7, 9, 8, 0, 0, |
0, 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 8, 7, 0, 0, 0, 0, |
0, 0, 8, 9, 9, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, |
0, 0, 0, 9,10,10, 0, 0, 0, 0, 0, 0, 9,10,10, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, |
0, 0, 0, 0, 8,10, 9, 0, 0, 0, 0, 0, 0, 9,10,10, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 5, 7, 8, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, |
0, 0, 0, 0, 8, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 9,10,10, 0, |
0, 0, 0, 0, 0, 9, 9,10, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 9,10,10, |
0, 0, 0, 0, 0, 0, 9,10,10, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, |
}; |
static const static_codebook _44c0_sm_p1_0 = { |
8, 6561, |
(char *)_vq_lengthlist__44c0_sm_p1_0, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__44c0_sm_p1_0, |
0 |
}; |
static const long _vq_quantlist__44c0_sm_p2_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44c0_sm_p2_0[] = { |
1, 4, 4, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 5, 7, 7, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 4, 5, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7, 7, 9, 9, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 7, 7, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, |
}; |
static const static_codebook _44c0_sm_p2_0 = { |
4, 625, |
(char *)_vq_lengthlist__44c0_sm_p2_0, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44c0_sm_p2_0, |
0 |
}; |
static const long _vq_quantlist__44c0_sm_p3_0[] = { |
4, |
3, |
5, |
2, |
6, |
1, |
7, |
0, |
8, |
}; |
static const char _vq_lengthlist__44c0_sm_p3_0[] = { |
1, 3, 3, 7, 7, 0, 0, 0, 0, 0, 5, 4, 7, 7, 0, 0, |
0, 0, 0, 5, 5, 7, 7, 0, 0, 0, 0, 0, 6, 7, 8, 8, |
0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, |
9,10, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, |
0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, |
}; |
static const static_codebook _44c0_sm_p3_0 = { |
2, 81, |
(char *)_vq_lengthlist__44c0_sm_p3_0, |
1, -531628032, 1611661312, 4, 0, |
(long *)_vq_quantlist__44c0_sm_p3_0, |
0 |
}; |
static const long _vq_quantlist__44c0_sm_p4_0[] = { |
4, |
3, |
5, |
2, |
6, |
1, |
7, |
0, |
8, |
}; |
static const char _vq_lengthlist__44c0_sm_p4_0[] = { |
1, 4, 3, 6, 6, 7, 7, 9, 9, 0, 5, 5, 7, 7, 8, 7, |
9, 9, 0, 5, 5, 7, 7, 8, 8, 9, 9, 0, 7, 7, 8, 8, |
8, 8,10,10, 0, 0, 0, 8, 8, 8, 8,10,10, 0, 0, 0, |
9, 9, 9, 9,11,11, 0, 0, 0, 9, 9, 9, 9,11,11, 0, |
0, 0,10,10,10,10,11,11, 0, 0, 0, 0, 0, 9, 9,11, |
11, |
}; |
static const static_codebook _44c0_sm_p4_0 = { |
2, 81, |
(char *)_vq_lengthlist__44c0_sm_p4_0, |
1, -531628032, 1611661312, 4, 0, |
(long *)_vq_quantlist__44c0_sm_p4_0, |
0 |
}; |
static const long _vq_quantlist__44c0_sm_p5_0[] = { |
8, |
7, |
9, |
6, |
10, |
5, |
11, |
4, |
12, |
3, |
13, |
2, |
14, |
1, |
15, |
0, |
16, |
}; |
static const char _vq_lengthlist__44c0_sm_p5_0[] = { |
1, 4, 4, 6, 6, 8, 8, 8, 8, 8, 8, 9, 9,10,10,11, |
11, 0, 6, 6, 7, 7, 8, 8, 9, 9, 9, 9,10,10,10,11, |
11,11, 0, 5, 6, 7, 7, 8, 8, 9, 9, 9, 9,10,10,10, |
11,11,11, 0, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9,10,10, |
11,11,12,12, 0, 0, 0, 8, 8, 8, 8, 9, 9, 9, 9,10, |
10,11,11,12,12, 0, 0, 0, 8, 8, 9, 9,10,10,10,10, |
11,11,11,11,12,12, 0, 0, 0, 8, 8, 9, 9,10,10,10, |
10,11,11,11,11,12,12, 0, 0, 0, 9, 9, 9, 9,10,10, |
10,10,11,11,12,12,12,13, 0, 0, 0, 0, 0, 9, 9,10, |
10,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, 9, |
10,10,11,11,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, |
9,10,10,11,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, |
10,10,10,10,11,11,12,12,12,13,13,13, 0, 0, 0, 0, |
0, 0, 0,10,10,11,11,12,12,12,13,13,13, 0, 0, 0, |
0, 0, 0, 0,11,11,12,12,12,12,13,13,14,14, 0, 0, |
0, 0, 0, 0, 0,11,11,12,11,12,12,13,13,13,13, 0, |
0, 0, 0, 0, 0, 0,12,12,12,12,13,13,13,13,14,14, |
0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,12,12,13,13,14, |
14, |
}; |
static const static_codebook _44c0_sm_p5_0 = { |
2, 289, |
(char *)_vq_lengthlist__44c0_sm_p5_0, |
1, -529530880, 1611661312, 5, 0, |
(long *)_vq_quantlist__44c0_sm_p5_0, |
0 |
}; |
static const long _vq_quantlist__44c0_sm_p6_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44c0_sm_p6_0[] = { |
1, 4, 4, 7, 6, 6, 7, 6, 6, 4, 7, 7,10, 9, 9,11, |
9, 9, 4, 7, 7,10, 9, 9,11, 9, 9, 7,10,10,10,11, |
11,11,10,10, 6, 9, 9,11,11,10,11,10,10, 6, 9, 9, |
11,10,11,11,10,10, 7,11,10,11,11,11,11,11,11, 6, |
9, 9,11,10,10,11,11,10, 6, 9, 9,11,10,10,11,10, |
11, |
}; |
static const static_codebook _44c0_sm_p6_0 = { |
4, 81, |
(char *)_vq_lengthlist__44c0_sm_p6_0, |
1, -529137664, 1618345984, 2, 0, |
(long *)_vq_quantlist__44c0_sm_p6_0, |
0 |
}; |
static const long _vq_quantlist__44c0_sm_p6_1[] = { |
5, |
4, |
6, |
3, |
7, |
2, |
8, |
1, |
9, |
0, |
10, |
}; |
static const char _vq_lengthlist__44c0_sm_p6_1[] = { |
2, 4, 4, 6, 6, 7, 7, 7, 7, 7, 8, 9, 5, 5, 6, 6, |
7, 7, 8, 8, 8, 8, 9, 5, 5, 6, 6, 7, 7, 8, 8, 8, |
8,10, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8,10,10,10, 7, |
7, 7, 7, 8, 8, 8, 8,10,10,10, 8, 8, 8, 8, 8, 8, |
8, 8,10,10,10, 8, 8, 8, 8, 8, 8, 8, 8,10,10,10, |
8, 8, 8, 8, 8, 8, 8, 8,10,10,10,10,10, 8, 8, 8, |
8, 8, 8,10,10,10,10,10, 9, 9, 8, 8, 8, 8,10,10, |
10,10,10, 8, 8, 8, 8, 8, 8, |
}; |
static const static_codebook _44c0_sm_p6_1 = { |
2, 121, |
(char *)_vq_lengthlist__44c0_sm_p6_1, |
1, -531365888, 1611661312, 4, 0, |
(long *)_vq_quantlist__44c0_sm_p6_1, |
0 |
}; |
static const long _vq_quantlist__44c0_sm_p7_0[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44c0_sm_p7_0[] = { |
1, 4, 4, 6, 6, 7, 7, 7, 7, 8, 8, 9, 9, 7, 5, 5, |
7, 7, 8, 8, 8, 8, 9, 9,10,10, 7, 6, 5, 7, 7, 8, |
8, 8, 8, 9, 9,10,10, 0, 8, 8, 8, 8, 9, 9, 9, 9, |
10,10,11,11, 0, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11, |
11, 0,12,12, 9, 9,10,10,10,10,11,11,11,11, 0,13, |
13, 9, 9, 9, 9,10,10,11,11,11,12, 0, 0, 0, 9,10, |
10,10,11,11,12,11,12,12, 0, 0, 0,10,10, 9, 9,11, |
11,12,12,12,12, 0, 0, 0,13,13,10,10,11,11,12,12, |
13,13, 0, 0, 0,14,14,10,10,11,11,12,12,13,13, 0, |
0, 0, 0, 0,11,12,11,11,13,12,13,13, 0, 0, 0, 0, |
0,12,12,11,11,13,12,14,14, |
}; |
static const static_codebook _44c0_sm_p7_0 = { |
2, 169, |
(char *)_vq_lengthlist__44c0_sm_p7_0, |
1, -526516224, 1616117760, 4, 0, |
(long *)_vq_quantlist__44c0_sm_p7_0, |
0 |
}; |
static const long _vq_quantlist__44c0_sm_p7_1[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44c0_sm_p7_1[] = { |
2, 4, 4, 4, 4, 6, 5, 5, 5, 5, 6, 5, 5, 5, 5, 6, |
6, 6, 5, 5, 6, 6, 6, 5, 5, |
}; |
static const static_codebook _44c0_sm_p7_1 = { |
2, 25, |
(char *)_vq_lengthlist__44c0_sm_p7_1, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44c0_sm_p7_1, |
0 |
}; |
static const long _vq_quantlist__44c0_sm_p8_0[] = { |
4, |
3, |
5, |
2, |
6, |
1, |
7, |
0, |
8, |
}; |
static const char _vq_lengthlist__44c0_sm_p8_0[] = { |
1, 3, 3,11,11,11,11,11,11, 3, 7, 6,11,11,11,11, |
11,11, 4, 8, 7,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, |
}; |
static const static_codebook _44c0_sm_p8_0 = { |
2, 81, |
(char *)_vq_lengthlist__44c0_sm_p8_0, |
1, -516186112, 1627103232, 4, 0, |
(long *)_vq_quantlist__44c0_sm_p8_0, |
0 |
}; |
static const long _vq_quantlist__44c0_sm_p8_1[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44c0_sm_p8_1[] = { |
1, 4, 4, 6, 6, 7, 7, 9, 9,10,11,12,12, 6, 5, 5, |
7, 7, 8, 8,10,10,12,11,12,12, 6, 5, 5, 7, 7, 8, |
8,10,10,12,11,12,12,17, 7, 7, 8, 8, 9, 9,10,10, |
12,12,13,13,18, 7, 7, 8, 7, 9, 9,10,10,12,12,12, |
13,19,10,10, 8, 8,10,10,11,11,12,12,13,14,19,11, |
10, 8, 7,10,10,11,11,12,12,13,12,19,19,19,10,10, |
10,10,11,11,12,12,13,13,19,19,19,11, 9,11, 9,14, |
12,13,12,13,13,19,20,18,13,14,11,11,12,12,13,13, |
14,13,20,20,20,15,13,11,10,13,11,13,13,14,13,20, |
20,20,20,20,13,14,12,12,13,13,13,13,20,20,20,20, |
20,13,13,12,12,16,13,15,13, |
}; |
static const static_codebook _44c0_sm_p8_1 = { |
2, 169, |
(char *)_vq_lengthlist__44c0_sm_p8_1, |
1, -522616832, 1620115456, 4, 0, |
(long *)_vq_quantlist__44c0_sm_p8_1, |
0 |
}; |
static const long _vq_quantlist__44c0_sm_p8_2[] = { |
8, |
7, |
9, |
6, |
10, |
5, |
11, |
4, |
12, |
3, |
13, |
2, |
14, |
1, |
15, |
0, |
16, |
}; |
static const char _vq_lengthlist__44c0_sm_p8_2[] = { |
2, 5, 5, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, |
8,10, 6, 6, 7, 7, 7, 7, 8, 8, 9, 9, 9, 9, 9, 9, |
9, 9,10, 6, 6, 7, 7, 8, 7, 8, 8, 9, 9, 9, 9, 9, |
9, 9, 9,10, 7, 7, 7, 7, 8, 8, 8, 9, 9, 9, 9, 9, |
9, 9, 9, 9,10,10,10, 7, 7, 8, 8, 9, 8, 9, 9, 9, |
9,10, 9, 9,10,10,10,11, 8, 8, 8, 8, 9, 9, 9, 9, |
9, 9, 9,10, 9,10,10,10,10, 8, 8, 8, 8, 9, 9, 9, |
9, 9, 9, 9, 9,10,10,11,10,10, 8, 8, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9,10,10,10,10,10,11,11, 8, 8, 9, |
9, 9, 9, 9, 9, 9, 9, 9,10,11,11,11,11,11, 9, 9, |
9, 9, 9, 9, 9, 9,10, 9,10, 9,11,11,10,11,11, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9,10, 9,11,11,10,11,11, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 9,11,10,11,11, |
11,11,11, 9, 9,10, 9, 9, 9, 9, 9, 9, 9,10,11,10, |
11,11,11,11,10,10,10,10, 9, 9, 9, 9, 9, 9,10,11, |
11,11,11,11,11, 9,10, 9, 9, 9, 9, 9, 9, 9, 9,11, |
11,10,11,11,11,10,10,10, 9, 9, 9, 9, 9, 9, 9, 9, |
10,11,10,11,11,11,11,11,11, 9, 9, 9, 9, 9, 9, 9, |
9, |
}; |
static const static_codebook _44c0_sm_p8_2 = { |
2, 289, |
(char *)_vq_lengthlist__44c0_sm_p8_2, |
1, -529530880, 1611661312, 5, 0, |
(long *)_vq_quantlist__44c0_sm_p8_2, |
0 |
}; |
static const char _huff_lengthlist__44c0_sm_short[] = { |
6, 6,12,13,13,14,16,17,17, 4, 2, 5, 8, 7, 9,12, |
15,15, 9, 4, 5, 9, 7, 9,12,16,18,11, 6, 7, 4, 6, |
8,11,14,18,10, 5, 6, 5, 5, 7,10,14,17,10, 5, 7, |
7, 6, 7,10,13,16,11, 5, 7, 7, 7, 8,10,12,15,13, |
6, 7, 5, 5, 7, 9,12,13,16, 8, 9, 6, 6, 7, 9,10, |
12, |
}; |
static const static_codebook _huff_book__44c0_sm_short = { |
2, 81, |
(char *)_huff_lengthlist__44c0_sm_short, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist__44c1_s_long[] = { |
5, 5, 9,10, 9, 9,10,11,12, 5, 1, 5, 6, 6, 7,10, |
12,14, 9, 5, 6, 8, 8,10,12,14,14,10, 5, 8, 5, 6, |
8,11,13,14, 9, 5, 7, 6, 6, 8,10,12,11, 9, 7, 9, |
7, 6, 6, 7,10,10,10, 9,12, 9, 8, 7, 7,10,12,11, |
11,13,12,10, 9, 8, 9,11,11,14,15,15,13,11, 9, 9, |
11, |
}; |
static const static_codebook _huff_book__44c1_s_long = { |
2, 81, |
(char *)_huff_lengthlist__44c1_s_long, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const long _vq_quantlist__44c1_s_p1_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44c1_s_p1_0[] = { |
2, 4, 4, 0, 0, 0, 0, 0, 0, 5, 7, 6, 0, 0, 0, 0, |
0, 0, 5, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, 0, |
0, 0, 0, 7, 8, 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, 5, 7, 7, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, |
0, 0, 0, 0, 7, 8, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 7, 7, 0, 0, 0, 0, |
0, 0, 7, 8, 8, 0, 0, 0, 0, 0, 0, 7, 8, 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, 7, 8, 8, 0, 0, 0, |
0, 0, 0, 8, 9,10, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 8, 8, 0, 0, |
0, 0, 0, 0, 8, 9, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 4, 7, 7, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, |
0, 0, 0, 0, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 6, 8, 8, 0, 0, 0, 0, 0, 0, 8,10, 9, 0, |
0, 0, 0, 0, 0, 8, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 7, 8, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, |
0, 0, 0, 0, 0, 0, 8, 9, 9, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, |
}; |
static const static_codebook _44c1_s_p1_0 = { |
8, 6561, |
(char *)_vq_lengthlist__44c1_s_p1_0, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__44c1_s_p1_0, |
0 |
}; |
static const long _vq_quantlist__44c1_s_p2_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44c1_s_p2_0[] = { |
2, 3, 4, 6, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 6, 6, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 4, 4, 5, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 8, 8, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 6, 6, 6, 8, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, |
}; |
static const static_codebook _44c1_s_p2_0 = { |
4, 625, |
(char *)_vq_lengthlist__44c1_s_p2_0, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44c1_s_p2_0, |
0 |
}; |
static const long _vq_quantlist__44c1_s_p3_0[] = { |
4, |
3, |
5, |
2, |
6, |
1, |
7, |
0, |
8, |
}; |
static const char _vq_lengthlist__44c1_s_p3_0[] = { |
1, 3, 2, 7, 7, 0, 0, 0, 0, 0,13,13, 6, 6, 0, 0, |
0, 0, 0,12, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0, 7, 7, |
0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, |
8, 9, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, |
0, 0,11,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, |
}; |
static const static_codebook _44c1_s_p3_0 = { |
2, 81, |
(char *)_vq_lengthlist__44c1_s_p3_0, |
1, -531628032, 1611661312, 4, 0, |
(long *)_vq_quantlist__44c1_s_p3_0, |
0 |
}; |
static const long _vq_quantlist__44c1_s_p4_0[] = { |
4, |
3, |
5, |
2, |
6, |
1, |
7, |
0, |
8, |
}; |
static const char _vq_lengthlist__44c1_s_p4_0[] = { |
1, 3, 3, 6, 5, 6, 6, 8, 8, 0, 0, 0, 7, 7, 7, 7, |
9, 9, 0, 0, 0, 7, 7, 7, 7, 9, 9, 0, 0, 0, 7, 7, |
8, 8,10,10, 0, 0, 0, 7, 7, 8, 8,10,10, 0, 0, 0, |
9, 9, 8, 8,10,10, 0, 0, 0, 8, 8, 8, 8,10,10, 0, |
0, 0,10,10, 9, 9,11,11, 0, 0, 0, 0, 0, 9, 9,11, |
11, |
}; |
static const static_codebook _44c1_s_p4_0 = { |
2, 81, |
(char *)_vq_lengthlist__44c1_s_p4_0, |
1, -531628032, 1611661312, 4, 0, |
(long *)_vq_quantlist__44c1_s_p4_0, |
0 |
}; |
static const long _vq_quantlist__44c1_s_p5_0[] = { |
8, |
7, |
9, |
6, |
10, |
5, |
11, |
4, |
12, |
3, |
13, |
2, |
14, |
1, |
15, |
0, |
16, |
}; |
static const char _vq_lengthlist__44c1_s_p5_0[] = { |
1, 4, 3, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9,10,10,11, |
11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,10,10,10, |
11,11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,10,10, |
10,11,11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,10, |
11,11,11,11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10, |
10,11,11,12,11, 0, 0, 0, 8, 8, 9, 9, 9,10,10,10, |
10,10,11,11,12,12, 0, 0, 0, 8, 8, 9, 9,10, 9,10, |
10,10,10,11,11,12,12, 0, 0, 0, 9, 9, 9, 9,10,10, |
10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, 9, 9,10, |
10,10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, 9, 9, |
10,10,10,11,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, |
9,10,10,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, |
10,10,10,10,11,11,12,12,12,12,13,13, 0, 0, 0, 0, |
0, 0, 0,10,10,11,11,12,12,12,12,13,13, 0, 0, 0, |
0, 0, 0, 0,11,11,12,12,12,12,13,13,13,13, 0, 0, |
0, 0, 0, 0, 0,11,11,11,11,12,12,13,13,13,13, 0, |
0, 0, 0, 0, 0, 0,12,12,12,12,12,12,13,13,14,14, |
0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,12,12,13,13,14, |
14, |
}; |
static const static_codebook _44c1_s_p5_0 = { |
2, 289, |
(char *)_vq_lengthlist__44c1_s_p5_0, |
1, -529530880, 1611661312, 5, 0, |
(long *)_vq_quantlist__44c1_s_p5_0, |
0 |
}; |
static const long _vq_quantlist__44c1_s_p6_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44c1_s_p6_0[] = { |
1, 4, 4, 7, 6, 6, 7, 6, 6, 4, 7, 7,10, 9, 9,11, |
9, 9, 4, 7, 7,10, 9, 9,11, 9, 9, 6,10,10,11,11, |
11,11,10,10, 6, 9, 9,11,10,10,11,10,10, 6, 9, 9, |
11,10,11,11,10,10, 7,11,10,11,11,11,12,11,11, 7, |
9, 9,11,10,10,11,11,10, 6, 9, 9,10,10,10,12,10, |
11, |
}; |
static const static_codebook _44c1_s_p6_0 = { |
4, 81, |
(char *)_vq_lengthlist__44c1_s_p6_0, |
1, -529137664, 1618345984, 2, 0, |
(long *)_vq_quantlist__44c1_s_p6_0, |
0 |
}; |
static const long _vq_quantlist__44c1_s_p6_1[] = { |
5, |
4, |
6, |
3, |
7, |
2, |
8, |
1, |
9, |
0, |
10, |
}; |
static const char _vq_lengthlist__44c1_s_p6_1[] = { |
2, 3, 3, 6, 6, 7, 7, 7, 7, 8, 8,10,10,10, 6, 6, |
7, 7, 8, 8, 8, 8,10,10,10, 6, 6, 7, 7, 8, 8, 8, |
8,10,10,10, 7, 7, 7, 7, 8, 8, 8, 8,10,10,10, 7, |
7, 7, 7, 8, 8, 8, 8,10,10,10, 7, 7, 8, 8, 8, 8, |
8, 8,10,10,10, 7, 7, 8, 8, 8, 8, 8, 8,10,10,10, |
8, 8, 8, 8, 8, 8, 8, 8,10,10,10,10,10, 8, 8, 8, |
8, 8, 8,10,10,10,10,10, 9, 9, 8, 8, 8, 8,10,10, |
10,10,10, 8, 8, 8, 8, 8, 8, |
}; |
static const static_codebook _44c1_s_p6_1 = { |
2, 121, |
(char *)_vq_lengthlist__44c1_s_p6_1, |
1, -531365888, 1611661312, 4, 0, |
(long *)_vq_quantlist__44c1_s_p6_1, |
0 |
}; |
static const long _vq_quantlist__44c1_s_p7_0[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44c1_s_p7_0[] = { |
1, 4, 4, 6, 6, 7, 7, 7, 7, 8, 8,10, 9, 7, 5, 6, |
7, 7, 8, 8, 8, 8, 9, 9,10,10, 7, 5, 5, 7, 7, 8, |
8, 8, 8, 9, 9,10,10, 0, 8, 8, 8, 8, 9, 9, 9, 9, |
10,10,11,10, 0, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11, |
11, 0,12,12, 9, 9, 9,10,10,10,11,11,11,11, 0,13, |
13, 9, 9, 9, 9,10,10,11,11,11,11, 0, 0, 0,10,10, |
10,10,11,11,12,11,12,12, 0, 0, 0,10,10,10, 9,11, |
11,12,11,13,12, 0, 0, 0,13,13,10,10,11,11,12,12, |
13,13, 0, 0, 0,14,14,10,10,11,11,12,12,13,13, 0, |
0, 0, 0, 0,11,12,11,11,12,12,14,13, 0, 0, 0, 0, |
0,12,11,11,11,13,10,14,13, |
}; |
static const static_codebook _44c1_s_p7_0 = { |
2, 169, |
(char *)_vq_lengthlist__44c1_s_p7_0, |
1, -526516224, 1616117760, 4, 0, |
(long *)_vq_quantlist__44c1_s_p7_0, |
0 |
}; |
static const long _vq_quantlist__44c1_s_p7_1[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44c1_s_p7_1[] = { |
2, 3, 3, 5, 5, 6, 6, 6, 5, 5, 6, 6, 6, 5, 5, 6, |
6, 6, 5, 5, 6, 6, 6, 5, 5, |
}; |
static const static_codebook _44c1_s_p7_1 = { |
2, 25, |
(char *)_vq_lengthlist__44c1_s_p7_1, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44c1_s_p7_1, |
0 |
}; |
static const long _vq_quantlist__44c1_s_p8_0[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44c1_s_p8_0[] = { |
1, 4, 3,10,10,10,10,10,10,10,10,10,10, 4, 8, 6, |
10,10,10,10,10,10,10,10,10,10, 4, 8, 7,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 const static_codebook _44c1_s_p8_0 = { |
2, 169, |
(char *)_vq_lengthlist__44c1_s_p8_0, |
1, -514541568, 1627103232, 4, 0, |
(long *)_vq_quantlist__44c1_s_p8_0, |
0 |
}; |
static const long _vq_quantlist__44c1_s_p8_1[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44c1_s_p8_1[] = { |
1, 4, 4, 6, 5, 7, 7, 9, 9,10,10,12,12, 6, 5, 5, |
7, 7, 8, 8,10,10,12,11,12,12, 6, 5, 5, 7, 7, 8, |
8,10,10,11,11,12,12,15, 7, 7, 8, 8, 9, 9,11,11, |
12,12,13,12,15, 8, 8, 8, 7, 9, 9,10,10,12,12,13, |
13,16,11,10, 8, 8,10,10,11,11,12,12,13,13,16,11, |
11, 9, 8,11,10,11,11,12,12,13,12,16,16,16,10,11, |
10,11,12,12,12,12,13,13,16,16,16,11, 9,11, 9,14, |
12,12,12,13,13,16,16,16,12,14,11,12,12,12,13,13, |
14,13,16,16,16,15,13,12,10,13,10,13,14,13,13,16, |
16,16,16,16,13,14,12,13,13,12,13,13,16,16,16,16, |
16,13,12,12,11,14,12,15,13, |
}; |
static const static_codebook _44c1_s_p8_1 = { |
2, 169, |
(char *)_vq_lengthlist__44c1_s_p8_1, |
1, -522616832, 1620115456, 4, 0, |
(long *)_vq_quantlist__44c1_s_p8_1, |
0 |
}; |
static const long _vq_quantlist__44c1_s_p8_2[] = { |
8, |
7, |
9, |
6, |
10, |
5, |
11, |
4, |
12, |
3, |
13, |
2, |
14, |
1, |
15, |
0, |
16, |
}; |
static const char _vq_lengthlist__44c1_s_p8_2[] = { |
2, 4, 4, 6, 6, 6, 6, 7, 7, 8, 8, 8, 8, 8, 8, 8, |
8,10,10,10, 7, 7, 7, 7, 8, 8, 9, 9, 9, 9, 9, 9, |
9, 9,10,10,10, 7, 7, 8, 7, 8, 8, 9, 9, 9, 9, 9, |
9, 9, 9,10,10,10, 7, 7, 8, 8, 8, 9, 9, 9, 9, 9, |
9,10, 9, 9,10,10,10, 7, 7, 8, 8, 9, 8, 9, 9, 9, |
9,10, 9, 9,10,10,11,11, 8, 8, 8, 8, 9, 9, 9, 9, |
9, 9,10, 9, 9,10,10,10,10, 8, 8, 8, 8, 9, 9, 9, |
9, 9, 9, 9, 9,10,10,11,11,11, 8, 8, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9,10,10,10,10,11,11,11, 8, 8, 9, |
9, 9, 9,10, 9, 9, 9, 9, 9,11,11,11,11,11, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9,11,10,10,11,11, 9, |
9, 9, 9, 9, 9, 9, 9, 9,10,10,10,10,11,10,11,11, |
9, 9, 9, 9, 9, 9, 9, 9, 9,10,10, 9,10,10,11,11, |
11,11,11, 9, 9, 9,10, 9, 9, 9, 9, 9, 9,10,11,11, |
11,11,11,11,10,10,10,10, 9, 9, 9, 9, 9, 9,10,11, |
11,11,11,11,11, 9,10, 9, 9, 9, 9,10, 9, 9, 9,11, |
11,11,11,11,11,11,10,10, 9, 9, 9, 9, 9, 9,10, 9, |
11,11,10,11,11,11,11,10,11, 9, 9, 9, 9, 9, 9, 9, |
9, |
}; |
static const static_codebook _44c1_s_p8_2 = { |
2, 289, |
(char *)_vq_lengthlist__44c1_s_p8_2, |
1, -529530880, 1611661312, 5, 0, |
(long *)_vq_quantlist__44c1_s_p8_2, |
0 |
}; |
static const char _huff_lengthlist__44c1_s_short[] = { |
6, 8,13,12,13,14,15,16,16, 4, 2, 4, 7, 6, 8,11, |
13,15,10, 4, 4, 8, 6, 8,11,14,17,11, 5, 6, 5, 6, |
8,12,14,17,11, 5, 5, 6, 5, 7,10,13,16,12, 6, 7, |
8, 7, 8,10,13,15,13, 8, 8, 7, 7, 8,10,12,15,15, |
7, 7, 5, 5, 7, 9,12,14,15, 8, 8, 6, 6, 7, 8,10, |
11, |
}; |
static const static_codebook _huff_book__44c1_s_short = { |
2, 81, |
(char *)_huff_lengthlist__44c1_s_short, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist__44c1_sm_long[] = { |
5, 4, 8,10, 9, 9,10,11,12, 4, 2, 5, 6, 6, 8,10, |
11,13, 8, 4, 6, 8, 7, 9,12,12,14,10, 6, 8, 4, 5, |
6, 9,11,12, 9, 5, 6, 5, 5, 6, 9,11,11, 9, 7, 9, |
6, 5, 5, 7,10,10,10, 9,11, 8, 7, 6, 7, 9,11,11, |
12,13,10,10, 9, 8, 9,11,11,15,15,12,13,11, 9,10, |
11, |
}; |
static const static_codebook _huff_book__44c1_sm_long = { |
2, 81, |
(char *)_huff_lengthlist__44c1_sm_long, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const long _vq_quantlist__44c1_sm_p1_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44c1_sm_p1_0[] = { |
1, 5, 5, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 0, |
0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 5, 8, 7, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, |
0, 0, 0, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 7, 9, 8, 0, 0, |
0, 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 8, 7, 0, 0, 0, 0, |
0, 0, 8, 9, 9, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, |
0, 0, 0, 9, 9,10, 0, 0, 0, 0, 0, 0, 9,10,10, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, |
0, 0, 0, 0, 8,10, 9, 0, 0, 0, 0, 0, 0, 9,10,10, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 5, 7, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, 0, |
0, 0, 0, 0, 8, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 9,10,10, 0, |
0, 0, 0, 0, 0, 8, 9,10, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 9,10,10, |
0, 0, 0, 0, 0, 0, 9,10, 9, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, |
}; |
static const static_codebook _44c1_sm_p1_0 = { |
8, 6561, |
(char *)_vq_lengthlist__44c1_sm_p1_0, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__44c1_sm_p1_0, |
0 |
}; |
static const long _vq_quantlist__44c1_sm_p2_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44c1_sm_p2_0[] = { |
2, 3, 4, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 6, 6, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 4, 4, 4, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 9, 9, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 6, 6, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, |
}; |
static const static_codebook _44c1_sm_p2_0 = { |
4, 625, |
(char *)_vq_lengthlist__44c1_sm_p2_0, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44c1_sm_p2_0, |
0 |
}; |
static const long _vq_quantlist__44c1_sm_p3_0[] = { |
4, |
3, |
5, |
2, |
6, |
1, |
7, |
0, |
8, |
}; |
static const char _vq_lengthlist__44c1_sm_p3_0[] = { |
1, 3, 3, 7, 7, 0, 0, 0, 0, 0, 5, 5, 6, 6, 0, 0, |
0, 0, 0, 5, 5, 7, 7, 0, 0, 0, 0, 0, 7, 7, 7, 7, |
0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, |
8, 9, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, |
0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, |
}; |
static const static_codebook _44c1_sm_p3_0 = { |
2, 81, |
(char *)_vq_lengthlist__44c1_sm_p3_0, |
1, -531628032, 1611661312, 4, 0, |
(long *)_vq_quantlist__44c1_sm_p3_0, |
0 |
}; |
static const long _vq_quantlist__44c1_sm_p4_0[] = { |
4, |
3, |
5, |
2, |
6, |
1, |
7, |
0, |
8, |
}; |
static const char _vq_lengthlist__44c1_sm_p4_0[] = { |
1, 3, 3, 6, 6, 7, 7, 9, 9, 0, 6, 6, 7, 7, 8, 8, |
9, 9, 0, 6, 6, 7, 7, 8, 8, 9, 9, 0, 7, 7, 8, 8, |
8, 8,10,10, 0, 0, 0, 8, 8, 8, 8,10,10, 0, 0, 0, |
8, 8, 9, 9,11,11, 0, 0, 0, 9, 9, 9, 9,11,11, 0, |
0, 0,10,10,10,10,11,11, 0, 0, 0, 0, 0, 9, 9,11, |
11, |
}; |
static const static_codebook _44c1_sm_p4_0 = { |
2, 81, |
(char *)_vq_lengthlist__44c1_sm_p4_0, |
1, -531628032, 1611661312, 4, 0, |
(long *)_vq_quantlist__44c1_sm_p4_0, |
0 |
}; |
static const long _vq_quantlist__44c1_sm_p5_0[] = { |
8, |
7, |
9, |
6, |
10, |
5, |
11, |
4, |
12, |
3, |
13, |
2, |
14, |
1, |
15, |
0, |
16, |
}; |
static const char _vq_lengthlist__44c1_sm_p5_0[] = { |
2, 3, 3, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9,10,10,11, |
11, 0, 5, 5, 6, 6, 8, 8, 9, 9, 9, 9,10,10,10,10, |
11,11, 0, 5, 5, 6, 6, 8, 8, 9, 9, 9, 9,10,10,10, |
10,11,11, 0, 7, 7, 7, 7, 8, 8, 9, 9, 9, 9,10,10, |
11,11,12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10, |
10,11,11,12,12, 0, 0, 0, 8, 8, 8, 8, 9, 9,10,10, |
10,11,11,11,12,12, 0, 0, 0, 8, 8, 8, 8, 9, 9,10, |
10,10,10,11,11,12,12, 0, 0, 0, 9, 9, 9, 9,10,10, |
10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, 9, 9,10, |
10,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, 9, |
9, 9,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, |
9, 9, 9,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, |
9, 9,10,10,11,11,12,12,12,12,13,13, 0, 0, 0, 0, |
0, 0, 0,10,10,11,11,12,12,12,12,13,13, 0, 0, 0, |
0, 0, 0, 0,11,11,11,11,12,12,13,13,13,13, 0, 0, |
0, 0, 0, 0, 0,11,11,11,11,12,12,13,13,13,13, 0, |
0, 0, 0, 0, 0, 0,11,11,12,12,12,12,13,13,14,14, |
0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,12,12,13,13,14, |
14, |
}; |
static const static_codebook _44c1_sm_p5_0 = { |
2, 289, |
(char *)_vq_lengthlist__44c1_sm_p5_0, |
1, -529530880, 1611661312, 5, 0, |
(long *)_vq_quantlist__44c1_sm_p5_0, |
0 |
}; |
static const long _vq_quantlist__44c1_sm_p6_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44c1_sm_p6_0[] = { |
1, 4, 4, 7, 6, 6, 7, 6, 6, 4, 7, 7,10, 9, 9,11, |
9, 9, 4, 7, 7,10, 9, 9,11, 9, 9, 7,10,10,10,11, |
11,11,10,10, 6, 9, 9,11,11,10,11,10,10, 6, 9, 9, |
11,10,11,11,10,10, 7,11,11,11,11,11,11,11,11, 6, |
9, 9,11,10,10,11,11,10, 6, 9, 9,10,10,10,11,10, |
11, |
}; |
static const static_codebook _44c1_sm_p6_0 = { |
4, 81, |
(char *)_vq_lengthlist__44c1_sm_p6_0, |
1, -529137664, 1618345984, 2, 0, |
(long *)_vq_quantlist__44c1_sm_p6_0, |
0 |
}; |
static const long _vq_quantlist__44c1_sm_p6_1[] = { |
5, |
4, |
6, |
3, |
7, |
2, |
8, |
1, |
9, |
0, |
10, |
}; |
static const char _vq_lengthlist__44c1_sm_p6_1[] = { |
2, 4, 4, 6, 6, 7, 7, 7, 7, 8, 8,10, 5, 5, 6, 6, |
7, 7, 8, 8, 8, 8,10, 5, 5, 6, 6, 7, 7, 8, 8, 8, |
8,10, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8,10,10,10, 7, |
7, 7, 7, 8, 8, 8, 8,10,10,10, 7, 7, 8, 8, 8, 8, |
8, 8,10,10,10, 7, 7, 8, 8, 8, 8, 8, 8,10,10,10, |
8, 8, 8, 8, 8, 8, 9, 8,10,10,10,10,10, 8, 8, 8, |
8, 8, 8,10,10,10,10,10, 9, 9, 8, 8, 8, 8,10,10, |
10,10,10, 8, 8, 8, 8, 8, 8, |
}; |
static const static_codebook _44c1_sm_p6_1 = { |
2, 121, |
(char *)_vq_lengthlist__44c1_sm_p6_1, |
1, -531365888, 1611661312, 4, 0, |
(long *)_vq_quantlist__44c1_sm_p6_1, |
0 |
}; |
static const long _vq_quantlist__44c1_sm_p7_0[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44c1_sm_p7_0[] = { |
1, 4, 4, 6, 6, 7, 7, 7, 7, 8, 8, 9, 9, 7, 5, 5, |
7, 7, 8, 8, 8, 8, 9, 9,10,10, 7, 5, 6, 7, 7, 8, |
8, 8, 8, 9, 9,11,10, 0, 8, 8, 8, 8, 9, 9, 9, 9, |
10,10,11,11, 0, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11, |
11, 0,12,12, 9, 9,10,10,10,10,11,11,11,11, 0,13, |
13, 9, 9, 9, 9,10,10,11,11,12,12, 0, 0, 0, 9,10, |
9,10,11,11,12,11,13,12, 0, 0, 0,10,10, 9, 9,11, |
11,12,12,13,12, 0, 0, 0,13,13,10,10,11,11,12,12, |
13,13, 0, 0, 0,14,14,10,10,11,11,12,12,13,13, 0, |
0, 0, 0, 0,11,12,11,11,12,13,14,13, 0, 0, 0, 0, |
0,12,12,11,11,13,12,14,13, |
}; |
static const static_codebook _44c1_sm_p7_0 = { |
2, 169, |
(char *)_vq_lengthlist__44c1_sm_p7_0, |
1, -526516224, 1616117760, 4, 0, |
(long *)_vq_quantlist__44c1_sm_p7_0, |
0 |
}; |
static const long _vq_quantlist__44c1_sm_p7_1[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44c1_sm_p7_1[] = { |
2, 4, 4, 4, 5, 6, 5, 5, 5, 5, 6, 5, 5, 5, 5, 6, |
5, 5, 5, 5, 6, 6, 6, 5, 5, |
}; |
static const static_codebook _44c1_sm_p7_1 = { |
2, 25, |
(char *)_vq_lengthlist__44c1_sm_p7_1, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44c1_sm_p7_1, |
0 |
}; |
static const long _vq_quantlist__44c1_sm_p8_0[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44c1_sm_p8_0[] = { |
1, 3, 3,13,13,13,13,13,13,13,13,13,13, 3, 6, 6, |
13,13,13,13,13,13,13,13,13,13, 4, 8, 7,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,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 const static_codebook _44c1_sm_p8_0 = { |
2, 169, |
(char *)_vq_lengthlist__44c1_sm_p8_0, |
1, -514541568, 1627103232, 4, 0, |
(long *)_vq_quantlist__44c1_sm_p8_0, |
0 |
}; |
static const long _vq_quantlist__44c1_sm_p8_1[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44c1_sm_p8_1[] = { |
1, 4, 4, 6, 6, 7, 7, 9, 9,10,11,12,12, 6, 5, 5, |
7, 7, 8, 7,10,10,11,11,12,12, 6, 5, 5, 7, 7, 8, |
8,10,10,11,11,12,12,16, 7, 7, 8, 8, 9, 9,11,11, |
12,12,13,13,17, 7, 7, 8, 7, 9, 9,11,10,12,12,13, |
13,19,11,10, 8, 8,10,10,11,11,12,12,13,13,19,11, |
11, 9, 7,11,10,11,11,12,12,13,12,19,19,19,10,10, |
10,10,11,12,12,12,13,14,18,19,19,11, 9,11, 9,13, |
12,12,12,13,13,19,20,19,13,15,11,11,12,12,13,13, |
14,13,18,19,20,15,13,12,10,13,10,13,13,13,14,20, |
20,20,20,20,13,14,12,12,13,12,13,13,20,20,20,20, |
20,13,12,12,12,14,12,14,13, |
}; |
static const static_codebook _44c1_sm_p8_1 = { |
2, 169, |
(char *)_vq_lengthlist__44c1_sm_p8_1, |
1, -522616832, 1620115456, 4, 0, |
(long *)_vq_quantlist__44c1_sm_p8_1, |
0 |
}; |
static const long _vq_quantlist__44c1_sm_p8_2[] = { |
8, |
7, |
9, |
6, |
10, |
5, |
11, |
4, |
12, |
3, |
13, |
2, |
14, |
1, |
15, |
0, |
16, |
}; |
static const char _vq_lengthlist__44c1_sm_p8_2[] = { |
2, 5, 5, 6, 6, 7, 6, 7, 7, 8, 8, 8, 8, 8, 8, 8, |
8,10, 6, 6, 7, 7, 7, 7, 8, 8, 9, 9, 9, 9, 9, 9, |
9, 9,10, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, |
9, 9, 9,10, 7, 7, 7, 7, 8, 8, 8, 9, 9, 9, 9, 9, |
9, 9, 9, 9,10,10,10, 7, 7, 8, 8, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9,10,11,11, 8, 8, 8, 8, 9, 9, 9, 9, |
9, 9,10,10, 9,10,10,10,10, 8, 8, 8, 8, 9, 9, 9, |
9, 9, 9, 9, 9,10,10,11,10,10, 8, 8, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9,10, 9,10,10,10,11,11, 8, 8, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9,11,11,11,11,11, 9, 9, |
9, 9, 9, 9, 9, 9,10, 9,10, 9,11,11,11,11,11, 9, |
8, 9, 9, 9, 9, 9, 9, 9,10,10, 9,11,11,10,11,11, |
9, 9, 9, 9, 9, 9, 9, 9, 9,10,10, 9,11,11,11,11, |
11,11,11, 9, 9,10, 9, 9, 9, 9,10, 9,10,10,11,10, |
11,11,11,11, 9,10,10,10, 9, 9, 9, 9, 9, 9,10,11, |
11,11,11,11,11, 9, 9, 9, 9, 9, 9, 9, 9,10, 9,11, |
11,10,11,11,11,11,10,10, 9, 9, 9, 9, 9, 9,10, 9, |
10,11,10,11,11,11,11,11,11, 9, 9,10, 9, 9, 9, 9, |
9, |
}; |
static const static_codebook _44c1_sm_p8_2 = { |
2, 289, |
(char *)_vq_lengthlist__44c1_sm_p8_2, |
1, -529530880, 1611661312, 5, 0, |
(long *)_vq_quantlist__44c1_sm_p8_2, |
0 |
}; |
static const char _huff_lengthlist__44c1_sm_short[] = { |
4, 7,13,14,14,15,16,18,18, 4, 2, 5, 8, 7, 9,12, |
15,15,10, 4, 5,10, 6, 8,11,15,17,12, 5, 7, 5, 6, |
8,11,14,17,11, 5, 6, 6, 5, 6, 9,13,17,12, 6, 7, |
6, 5, 6, 8,12,14,14, 7, 8, 6, 6, 7, 9,11,14,14, |
8, 9, 6, 5, 6, 9,11,13,16,10,10, 7, 6, 7, 8,10, |
11, |
}; |
static const static_codebook _huff_book__44c1_sm_short = { |
2, 81, |
(char *)_huff_lengthlist__44c1_sm_short, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist__44cn1_s_long[] = { |
4, 4, 7, 8, 7, 8,10,12,17, 3, 1, 6, 6, 7, 8,10, |
12,15, 7, 6, 9, 9, 9,11,12,14,17, 8, 6, 9, 6, 7, |
9,11,13,17, 7, 6, 9, 7, 7, 8, 9,12,15, 8, 8,10, |
8, 7, 7, 7,10,14, 9,10,12,10, 8, 8, 8,10,14,11, |
13,15,13,12,11,11,12,16,17,18,18,19,20,18,16,16, |
20, |
}; |
static const static_codebook _huff_book__44cn1_s_long = { |
2, 81, |
(char *)_huff_lengthlist__44cn1_s_long, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const long _vq_quantlist__44cn1_s_p1_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44cn1_s_p1_0[] = { |
1, 4, 4, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 0, |
0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 5, 8, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, 0, 0, |
0, 0, 0, 7, 9,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 5, 8, 8, 0, 0, 0, 0, 0, 0, 7,10, 9, 0, 0, |
0, 0, 0, 0, 8,10, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 8, 8, 0, 0, 0, 0, |
0, 0, 8,10,10, 0, 0, 0, 0, 0, 0, 8, 9,10, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,10,10, 0, 0, 0, |
0, 0, 0, 9, 9,11, 0, 0, 0, 0, 0, 0,10,11,11, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,10,10, 0, 0, |
0, 0, 0, 0, 9,11, 9, 0, 0, 0, 0, 0, 0,10,11,11, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 5, 8, 8, 0, 0, 0, 0, 0, 0, 8,10,10, 0, 0, |
0, 0, 0, 0, 8,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 7,10,10, 0, 0, 0, 0, 0, 0,10,11,11, 0, |
0, 0, 0, 0, 0, 9, 9,11, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 7,10,10, 0, 0, 0, 0, 0, 0,10,11,11, |
0, 0, 0, 0, 0, 0, 9,11, 9, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, |
}; |
static const static_codebook _44cn1_s_p1_0 = { |
8, 6561, |
(char *)_vq_lengthlist__44cn1_s_p1_0, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__44cn1_s_p1_0, |
0 |
}; |
static const long _vq_quantlist__44cn1_s_p2_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44cn1_s_p2_0[] = { |
1, 4, 4, 7, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 5, 7, 7, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 4, 5, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7, 7, 9, 9, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 6, 7, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, |
}; |
static const static_codebook _44cn1_s_p2_0 = { |
4, 625, |
(char *)_vq_lengthlist__44cn1_s_p2_0, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44cn1_s_p2_0, |
0 |
}; |
static const long _vq_quantlist__44cn1_s_p3_0[] = { |
4, |
3, |
5, |
2, |
6, |
1, |
7, |
0, |
8, |
}; |
static const char _vq_lengthlist__44cn1_s_p3_0[] = { |
1, 2, 3, 7, 7, 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, |
0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0, 7, 7, |
0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, |
9, 8, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, |
0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, |
}; |
static const static_codebook _44cn1_s_p3_0 = { |
2, 81, |
(char *)_vq_lengthlist__44cn1_s_p3_0, |
1, -531628032, 1611661312, 4, 0, |
(long *)_vq_quantlist__44cn1_s_p3_0, |
0 |
}; |
static const long _vq_quantlist__44cn1_s_p4_0[] = { |
4, |
3, |
5, |
2, |
6, |
1, |
7, |
0, |
8, |
}; |
static const char _vq_lengthlist__44cn1_s_p4_0[] = { |
1, 3, 3, 6, 6, 6, 6, 8, 8, 0, 0, 0, 6, 6, 7, 7, |
9, 9, 0, 0, 0, 6, 6, 7, 7, 9, 9, 0, 0, 0, 7, 7, |
8, 8,10,10, 0, 0, 0, 7, 7, 8, 8,10,10, 0, 0, 0, |
9, 9, 9, 9,10,10, 0, 0, 0, 9, 9, 9, 9,10,10, 0, |
0, 0,10,10,10,10,11,11, 0, 0, 0, 0, 0,10,10,11, |
11, |
}; |
static const static_codebook _44cn1_s_p4_0 = { |
2, 81, |
(char *)_vq_lengthlist__44cn1_s_p4_0, |
1, -531628032, 1611661312, 4, 0, |
(long *)_vq_quantlist__44cn1_s_p4_0, |
0 |
}; |
static const long _vq_quantlist__44cn1_s_p5_0[] = { |
8, |
7, |
9, |
6, |
10, |
5, |
11, |
4, |
12, |
3, |
13, |
2, |
14, |
1, |
15, |
0, |
16, |
}; |
static const char _vq_lengthlist__44cn1_s_p5_0[] = { |
1, 4, 3, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9,10,10,10, |
10, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,10,10,10, |
11,11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,10,10, |
10,11,11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,10, |
11,11,11,12, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10, |
10,11,11,11,11, 0, 0, 0, 8, 8, 9, 9, 9, 9,10,10, |
10,10,11,11,12,12, 0, 0, 0, 8, 8, 9, 9, 9, 9,10, |
10,10,11,11,11,12,12, 0, 0, 0, 9, 9,10, 9,10,10, |
10,10,11,11,11,11,12,12, 0, 0, 0, 0, 0, 9, 9,10, |
10,10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, 9, 9, |
10,10,10,11,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, |
9,10,10,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, |
10,10,11,10,11,11,11,12,13,12,13,13, 0, 0, 0, 0, |
0, 0, 0,11,10,11,11,12,12,12,12,13,13, 0, 0, 0, |
0, 0, 0, 0,11,11,12,12,12,12,13,13,13,14, 0, 0, |
0, 0, 0, 0, 0,11,11,12,12,12,12,13,13,13,14, 0, |
0, 0, 0, 0, 0, 0,12,12,12,13,13,13,13,13,14,14, |
0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,13,12,13,13,14, |
14, |
}; |
static const static_codebook _44cn1_s_p5_0 = { |
2, 289, |
(char *)_vq_lengthlist__44cn1_s_p5_0, |
1, -529530880, 1611661312, 5, 0, |
(long *)_vq_quantlist__44cn1_s_p5_0, |
0 |
}; |
static const long _vq_quantlist__44cn1_s_p6_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44cn1_s_p6_0[] = { |
1, 4, 4, 7, 6, 6, 7, 6, 6, 4, 6, 6,10, 9, 9,11, |
9, 9, 4, 6, 6,10, 9, 9,10, 9, 9, 7,10,10,11,11, |
11,12,11,11, 7, 9, 9,11,11,10,11,10,10, 7, 9, 9, |
11,10,11,11,10,10, 7,10,10,11,11,11,12,11,11, 7, |
9, 9,11,10,10,11,10,10, 7, 9, 9,11,10,10,11,10, |
10, |
}; |
static const static_codebook _44cn1_s_p6_0 = { |
4, 81, |
(char *)_vq_lengthlist__44cn1_s_p6_0, |
1, -529137664, 1618345984, 2, 0, |
(long *)_vq_quantlist__44cn1_s_p6_0, |
0 |
}; |
static const long _vq_quantlist__44cn1_s_p6_1[] = { |
5, |
4, |
6, |
3, |
7, |
2, |
8, |
1, |
9, |
0, |
10, |
}; |
static const char _vq_lengthlist__44cn1_s_p6_1[] = { |
1, 4, 4, 6, 6, 7, 7, 8, 8, 8, 8,10,10,10, 7, 6, |
8, 8, 8, 8, 8, 8,10,10,10, 7, 6, 7, 7, 8, 8, 8, |
8,10,10,10, 7, 7, 8, 8, 8, 8, 8, 8,10,10,10, 7, |
7, 8, 8, 8, 8, 8, 8,10,10,10, 8, 8, 8, 8, 9, 9, |
9, 9,10,10,10, 8, 8, 8, 8, 9, 9, 9, 9,10,10,10, |
9, 9, 9, 9, 9, 9, 9, 9,10,10,10,10,10, 9, 9, 9, |
9, 9, 9,10,10,10,10,10, 9, 9, 9, 9, 9, 9,10,10, |
10,10,10, 9, 9, 9, 9, 9, 9, |
}; |
static const static_codebook _44cn1_s_p6_1 = { |
2, 121, |
(char *)_vq_lengthlist__44cn1_s_p6_1, |
1, -531365888, 1611661312, 4, 0, |
(long *)_vq_quantlist__44cn1_s_p6_1, |
0 |
}; |
static const long _vq_quantlist__44cn1_s_p7_0[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44cn1_s_p7_0[] = { |
1, 4, 4, 6, 6, 7, 7, 8, 8, 9, 9,10,10, 6, 5, 5, |
7, 7, 8, 8, 8, 8, 9, 9,11,11, 7, 5, 5, 7, 7, 8, |
8, 8, 8, 9,10,11,11, 0, 8, 8, 8, 8, 9, 9, 9, 9, |
10,10,11,11, 0, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11, |
11, 0,12,12, 9, 9, 9,10,10,10,11,11,11,12, 0,13, |
13, 9, 9, 9, 9,10,10,11,11,11,12, 0, 0, 0,10,10, |
10,10,11,11,12,12,12,13, 0, 0, 0,10,10,10,10,11, |
11,12,12,13,12, 0, 0, 0,14,14,11,10,11,12,12,13, |
13,14, 0, 0, 0,15,15,11,11,12,11,12,12,14,13, 0, |
0, 0, 0, 0,12,12,12,12,13,13,14,14, 0, 0, 0, 0, |
0,13,13,12,12,13,13,13,14, |
}; |
static const static_codebook _44cn1_s_p7_0 = { |
2, 169, |
(char *)_vq_lengthlist__44cn1_s_p7_0, |
1, -526516224, 1616117760, 4, 0, |
(long *)_vq_quantlist__44cn1_s_p7_0, |
0 |
}; |
static const long _vq_quantlist__44cn1_s_p7_1[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44cn1_s_p7_1[] = { |
2, 3, 3, 5, 5, 6, 6, 6, 5, 5, 6, 6, 6, 5, 5, 6, |
6, 6, 5, 5, 6, 6, 6, 5, 5, |
}; |
static const static_codebook _44cn1_s_p7_1 = { |
2, 25, |
(char *)_vq_lengthlist__44cn1_s_p7_1, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44cn1_s_p7_1, |
0 |
}; |
static const long _vq_quantlist__44cn1_s_p8_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44cn1_s_p8_0[] = { |
1, 7, 7,11,11, 8,11,11,11,11, 4,11, 3,11,11,11, |
11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11, |
11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, |
11,11,11,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,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, 7,11,11, |
11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, |
11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11, |
11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,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,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, 8,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,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,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,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,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,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,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,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,12,12,12,12,12,12,12, |
12, |
}; |
static const static_codebook _44cn1_s_p8_0 = { |
4, 625, |
(char *)_vq_lengthlist__44cn1_s_p8_0, |
1, -518283264, 1627103232, 3, 0, |
(long *)_vq_quantlist__44cn1_s_p8_0, |
0 |
}; |
static const long _vq_quantlist__44cn1_s_p8_1[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44cn1_s_p8_1[] = { |
1, 4, 4, 6, 6, 8, 8, 9,10,10,11,11,11, 6, 5, 5, |
7, 7, 8, 8, 9,10, 9,11,11,12, 5, 5, 5, 7, 7, 8, |
9,10,10,12,12,14,13,15, 7, 7, 8, 8, 9,10,11,11, |
10,12,10,11,15, 7, 8, 8, 8, 9, 9,11,11,13,12,12, |
13,15,10,10, 8, 8,10,10,12,12,11,14,10,10,15,11, |
11, 8, 8,10,10,12,13,13,14,15,13,15,15,15,10,10, |
10,10,12,12,13,12,13,10,15,15,15,10,10,11,10,13, |
11,13,13,15,13,15,15,15,13,13,10,11,11,11,12,10, |
14,11,15,15,14,14,13,10,10,12,11,13,13,14,14,15, |
15,15,15,15,11,11,11,11,12,11,15,12,15,15,15,15, |
15,12,12,11,11,14,12,13,14, |
}; |
static const static_codebook _44cn1_s_p8_1 = { |
2, 169, |
(char *)_vq_lengthlist__44cn1_s_p8_1, |
1, -522616832, 1620115456, 4, 0, |
(long *)_vq_quantlist__44cn1_s_p8_1, |
0 |
}; |
static const long _vq_quantlist__44cn1_s_p8_2[] = { |
8, |
7, |
9, |
6, |
10, |
5, |
11, |
4, |
12, |
3, |
13, |
2, |
14, |
1, |
15, |
0, |
16, |
}; |
static const char _vq_lengthlist__44cn1_s_p8_2[] = { |
3, 4, 3, 6, 6, 7, 7, 8, 8, 9, 9, 9, 9, 9, 9, 9, |
9,10,11,11, 6, 6, 7, 7, 8, 8, 9, 9, 9, 9, 9, 9, |
9, 9,10,10,10, 6, 6, 7, 7, 8, 8, 9, 9, 9, 9, 9, |
9, 9, 9,10,10,10, 7, 7, 7, 8, 8, 8, 9, 9, 9, 9, |
9, 9,10, 9,10,11,10, 7, 6, 7, 7, 8, 8, 9, 9, 9, |
9, 9, 9, 9,10,10,10,11, 7, 7, 8, 8, 8, 8, 9, 9, |
9, 9, 9, 9, 9, 9,10,10,10, 7, 7, 8, 8, 8, 8, 9, |
9, 9, 9, 9, 9, 9,10,11,11,11, 8, 8, 8, 8, 8, 8, |
9, 9, 9, 9, 9, 9, 9, 9,11,10,10,11,11, 8, 8, 8, |
9, 9, 9, 9, 9, 9,10, 9,10,10,10,10,11,11, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9,11,11,10,11,11, 9, |
9, 9, 9, 9, 9, 9, 9, 9,10,10,10,10,11,10,11,11, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,11,10,10,11, |
11,11,11, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10,11,11, |
10,11,11,11, 9,10,10, 9, 9, 9, 9, 9, 9, 9,10,11, |
11,11,11,11,11, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,11, |
11,11,11,11,11,11,10,10, 9, 9, 9, 9, 9, 9, 9, 9, |
11,11,11,10,11,11,11,11,11, 9, 9, 9,10, 9, 9, 9, |
9, |
}; |
static const static_codebook _44cn1_s_p8_2 = { |
2, 289, |
(char *)_vq_lengthlist__44cn1_s_p8_2, |
1, -529530880, 1611661312, 5, 0, |
(long *)_vq_quantlist__44cn1_s_p8_2, |
0 |
}; |
static const char _huff_lengthlist__44cn1_s_short[] = { |
10, 9,12,15,12,13,16,14,16, 7, 1, 5,14, 7,10,13, |
16,16, 9, 4, 6,16, 8,11,16,16,16,14, 4, 7,16, 9, |
12,14,16,16,10, 5, 7,14, 9,12,14,15,15,13, 8, 9, |
14,10,12,13,14,15,13, 9, 9, 7, 6, 8,11,12,12,14, |
8, 8, 5, 4, 5, 8,11,12,16,10,10, 6, 5, 6, 8, 9, |
10, |
}; |
static const static_codebook _huff_book__44cn1_s_short = { |
2, 81, |
(char *)_huff_lengthlist__44cn1_s_short, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist__44cn1_sm_long[] = { |
3, 3, 8, 8, 8, 8,10,12,14, 3, 2, 6, 7, 7, 8,10, |
12,16, 7, 6, 7, 9, 8,10,12,14,16, 8, 6, 8, 4, 5, |
7, 9,11,13, 7, 6, 8, 5, 6, 7, 9,11,14, 8, 8,10, |
7, 7, 6, 8,10,13, 9,11,12, 9, 9, 7, 8,10,12,10, |
13,15,11,11,10, 9,10,13,13,16,17,14,15,14,13,14, |
17, |
}; |
static const static_codebook _huff_book__44cn1_sm_long = { |
2, 81, |
(char *)_huff_lengthlist__44cn1_sm_long, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const long _vq_quantlist__44cn1_sm_p1_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44cn1_sm_p1_0[] = { |
1, 4, 5, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 0, |
0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 5, 8, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, 0, 0, |
0, 0, 0, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 5, 8, 8, 0, 0, 0, 0, 0, 0, 7, 9, 8, 0, 0, |
0, 0, 0, 0, 8, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 8, 8, 0, 0, 0, 0, |
0, 0, 8,10, 9, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,10, 9, 0, 0, 0, |
0, 0, 0, 9, 9,10, 0, 0, 0, 0, 0, 0, 9,10,10, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, |
0, 0, 0, 0, 8,10, 9, 0, 0, 0, 0, 0, 0, 9,10,10, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 5, 8, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, 0, |
0, 0, 0, 0, 8, 9,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 9,10,10, 0, |
0, 0, 0, 0, 0, 8, 9,10, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 7, 9,10, 0, 0, 0, 0, 0, 0, 9,10,10, |
0, 0, 0, 0, 0, 0, 9,10, 9, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, |
}; |
static const static_codebook _44cn1_sm_p1_0 = { |
8, 6561, |
(char *)_vq_lengthlist__44cn1_sm_p1_0, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__44cn1_sm_p1_0, |
0 |
}; |
static const long _vq_quantlist__44cn1_sm_p2_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44cn1_sm_p2_0[] = { |
1, 4, 4, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 5, 7, 7, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 4, 5, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7, 7, 9, 9, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 7, 7, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, |
}; |
static const static_codebook _44cn1_sm_p2_0 = { |
4, 625, |
(char *)_vq_lengthlist__44cn1_sm_p2_0, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44cn1_sm_p2_0, |
0 |
}; |
static const long _vq_quantlist__44cn1_sm_p3_0[] = { |
4, |
3, |
5, |
2, |
6, |
1, |
7, |
0, |
8, |
}; |
static const char _vq_lengthlist__44cn1_sm_p3_0[] = { |
1, 3, 4, 7, 7, 0, 0, 0, 0, 0, 4, 4, 7, 7, 0, 0, |
0, 0, 0, 4, 5, 7, 7, 0, 0, 0, 0, 0, 6, 7, 8, 8, |
0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, |
9, 9, 0, 0, 0, 0, 0, 0, 0,10, 9, 0, 0, 0, 0, 0, |
0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, |
}; |
static const static_codebook _44cn1_sm_p3_0 = { |
2, 81, |
(char *)_vq_lengthlist__44cn1_sm_p3_0, |
1, -531628032, 1611661312, 4, 0, |
(long *)_vq_quantlist__44cn1_sm_p3_0, |
0 |
}; |
static const long _vq_quantlist__44cn1_sm_p4_0[] = { |
4, |
3, |
5, |
2, |
6, |
1, |
7, |
0, |
8, |
}; |
static const char _vq_lengthlist__44cn1_sm_p4_0[] = { |
1, 4, 3, 6, 6, 7, 7, 9, 9, 0, 5, 5, 7, 7, 8, 7, |
9, 9, 0, 5, 5, 7, 7, 8, 8, 9, 9, 0, 7, 7, 8, 8, |
8, 8,10,10, 0, 0, 0, 8, 8, 8, 8,10,10, 0, 0, 0, |
9, 9, 9, 9,10,10, 0, 0, 0, 9, 9, 9, 9,10,10, 0, |
0, 0,10,10,10,10,11,11, 0, 0, 0, 0, 0,10,10,11, |
11, |
}; |
static const static_codebook _44cn1_sm_p4_0 = { |
2, 81, |
(char *)_vq_lengthlist__44cn1_sm_p4_0, |
1, -531628032, 1611661312, 4, 0, |
(long *)_vq_quantlist__44cn1_sm_p4_0, |
0 |
}; |
static const long _vq_quantlist__44cn1_sm_p5_0[] = { |
8, |
7, |
9, |
6, |
10, |
5, |
11, |
4, |
12, |
3, |
13, |
2, |
14, |
1, |
15, |
0, |
16, |
}; |
static const char _vq_lengthlist__44cn1_sm_p5_0[] = { |
1, 4, 4, 6, 6, 8, 8, 9, 9, 8, 8, 9, 9,10,10,11, |
11, 0, 6, 6, 7, 7, 8, 8, 9, 9, 9, 9,10,10,11,11, |
12,12, 0, 6, 5, 7, 7, 8, 8, 9, 9, 9, 9,10,10,11, |
11,12,12, 0, 7, 7, 7, 7, 8, 8, 9, 9, 9, 9,10,10, |
11,11,12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9,10,10,11, |
11,11,11,12,12, 0, 0, 0, 8, 8, 9, 9,10,10,10,10, |
11,11,12,12,12,12, 0, 0, 0, 8, 8, 9, 9,10,10,10, |
10,11,11,12,12,12,12, 0, 0, 0, 9, 9, 9, 9,10,10, |
10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, 9,10, |
10,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, 9, |
10,10,11,11,12,12,13,13,13,13, 0, 0, 0, 0, 0, 9, |
9,10,10,11,11,12,12,12,13,13,13, 0, 0, 0, 0, 0, |
10,10,11,11,11,11,12,12,13,13,14,14, 0, 0, 0, 0, |
0, 0, 0,11,11,11,11,12,12,13,13,14,14, 0, 0, 0, |
0, 0, 0, 0,11,11,12,12,13,13,13,13,14,14, 0, 0, |
0, 0, 0, 0, 0,11,11,12,12,13,13,13,13,14,14, 0, |
0, 0, 0, 0, 0, 0,12,12,12,13,13,13,14,14,14,14, |
0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,13,13,14,14,14, |
14, |
}; |
static const static_codebook _44cn1_sm_p5_0 = { |
2, 289, |
(char *)_vq_lengthlist__44cn1_sm_p5_0, |
1, -529530880, 1611661312, 5, 0, |
(long *)_vq_quantlist__44cn1_sm_p5_0, |
0 |
}; |
static const long _vq_quantlist__44cn1_sm_p6_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44cn1_sm_p6_0[] = { |
1, 4, 4, 7, 6, 6, 7, 6, 6, 4, 7, 6,10, 9, 9,11, |
9, 9, 4, 6, 7,10, 9, 9,11, 9, 9, 7,10,10,10,11, |
11,11,11,10, 6, 9, 9,11,10,10,11,10,10, 6, 9, 9, |
11,10,11,11,10,10, 7,11,11,11,11,11,12,11,11, 7, |
9, 9,11,10,10,12,10,10, 7, 9, 9,11,10,10,11,10, |
10, |
}; |
static const static_codebook _44cn1_sm_p6_0 = { |
4, 81, |
(char *)_vq_lengthlist__44cn1_sm_p6_0, |
1, -529137664, 1618345984, 2, 0, |
(long *)_vq_quantlist__44cn1_sm_p6_0, |
0 |
}; |
static const long _vq_quantlist__44cn1_sm_p6_1[] = { |
5, |
4, |
6, |
3, |
7, |
2, |
8, |
1, |
9, |
0, |
10, |
}; |
static const char _vq_lengthlist__44cn1_sm_p6_1[] = { |
2, 4, 4, 5, 5, 7, 7, 7, 7, 8, 8,10, 5, 5, 6, 6, |
7, 7, 8, 8, 8, 8,10, 5, 5, 6, 6, 7, 7, 8, 8, 8, |
8,10, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8,10,10,10, 7, |
7, 7, 7, 8, 8, 8, 8,10,10,10, 8, 8, 8, 8, 8, 8, |
8, 8,10,10,10, 8, 8, 8, 8, 8, 8, 8, 8,10,10,10, |
8, 8, 8, 8, 8, 8, 9, 9,10,10,10,10,10, 8, 8, 8, |
8, 9, 9,10,10,10,10,10, 9, 9, 9, 9, 8, 9,10,10, |
10,10,10, 8, 9, 8, 8, 9, 8, |
}; |
static const static_codebook _44cn1_sm_p6_1 = { |
2, 121, |
(char *)_vq_lengthlist__44cn1_sm_p6_1, |
1, -531365888, 1611661312, 4, 0, |
(long *)_vq_quantlist__44cn1_sm_p6_1, |
0 |
}; |
static const long _vq_quantlist__44cn1_sm_p7_0[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44cn1_sm_p7_0[] = { |
1, 4, 4, 6, 6, 7, 7, 7, 7, 9, 9,10,10, 7, 5, 5, |
7, 7, 8, 8, 8, 8,10, 9,11,10, 7, 5, 5, 7, 7, 8, |
8, 8, 8, 9,10,11,11, 0, 8, 8, 8, 8, 9, 9, 9, 9, |
10,10,11,11, 0, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11, |
11, 0,12,12, 9, 9, 9,10,10,10,11,11,12,12, 0,13, |
13, 9, 9, 9, 9,10,10,11,11,12,12, 0, 0, 0,10,10, |
10,10,11,11,12,12,12,13, 0, 0, 0,10,10,10,10,11, |
11,12,12,12,12, 0, 0, 0,14,14,11,11,11,11,12,13, |
13,13, 0, 0, 0,14,14,11,10,11,11,12,12,13,13, 0, |
0, 0, 0, 0,12,12,12,12,13,13,13,14, 0, 0, 0, 0, |
0,13,12,12,12,13,13,13,14, |
}; |
static const static_codebook _44cn1_sm_p7_0 = { |
2, 169, |
(char *)_vq_lengthlist__44cn1_sm_p7_0, |
1, -526516224, 1616117760, 4, 0, |
(long *)_vq_quantlist__44cn1_sm_p7_0, |
0 |
}; |
static const long _vq_quantlist__44cn1_sm_p7_1[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44cn1_sm_p7_1[] = { |
2, 4, 4, 4, 5, 6, 5, 5, 5, 5, 6, 5, 5, 5, 5, 6, |
5, 5, 5, 5, 6, 6, 6, 5, 5, |
}; |
static const static_codebook _44cn1_sm_p7_1 = { |
2, 25, |
(char *)_vq_lengthlist__44cn1_sm_p7_1, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44cn1_sm_p7_1, |
0 |
}; |
static const long _vq_quantlist__44cn1_sm_p8_0[] = { |
4, |
3, |
5, |
2, |
6, |
1, |
7, |
0, |
8, |
}; |
static const char _vq_lengthlist__44cn1_sm_p8_0[] = { |
1, 4, 4,12,11,13,13,14,14, 4, 7, 7,11,13,14,14, |
14,14, 3, 8, 3,14,14,14,14,14,14,14,10,12,14,14, |
14,14,14,14,14,14, 5,14, 8,14,14,14,14,14,12,14, |
13,14,14,14,14,14,14,14,13,14,10,14,14,14,14,14, |
14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, |
14, |
}; |
static const static_codebook _44cn1_sm_p8_0 = { |
2, 81, |
(char *)_vq_lengthlist__44cn1_sm_p8_0, |
1, -516186112, 1627103232, 4, 0, |
(long *)_vq_quantlist__44cn1_sm_p8_0, |
0 |
}; |
static const long _vq_quantlist__44cn1_sm_p8_1[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44cn1_sm_p8_1[] = { |
1, 4, 4, 6, 6, 8, 8, 9, 9,10,11,11,11, 6, 5, 5, |
7, 7, 8, 8,10,10,10,11,11,11, 6, 5, 5, 7, 7, 8, |
8,10,10,11,12,12,12,14, 7, 7, 7, 8, 9, 9,11,11, |
11,12,11,12,17, 7, 7, 8, 7, 9, 9,11,11,12,12,12, |
12,14,11,11, 8, 8,10,10,11,12,12,13,11,12,14,11, |
11, 8, 8,10,10,11,12,12,13,13,12,14,15,14,10,10, |
10,10,11,12,12,12,12,11,14,13,16,10,10,10, 9,12, |
11,12,12,13,14,14,15,14,14,13,10,10,11,11,12,11, |
13,11,14,12,15,13,14,11,10,12,10,12,12,13,13,13, |
13,14,15,15,12,12,11,11,12,11,13,12,14,14,14,14, |
17,12,12,11,10,13,11,13,13, |
}; |
static const static_codebook _44cn1_sm_p8_1 = { |
2, 169, |
(char *)_vq_lengthlist__44cn1_sm_p8_1, |
1, -522616832, 1620115456, 4, 0, |
(long *)_vq_quantlist__44cn1_sm_p8_1, |
0 |
}; |
static const long _vq_quantlist__44cn1_sm_p8_2[] = { |
8, |
7, |
9, |
6, |
10, |
5, |
11, |
4, |
12, |
3, |
13, |
2, |
14, |
1, |
15, |
0, |
16, |
}; |
static const char _vq_lengthlist__44cn1_sm_p8_2[] = { |
3, 4, 4, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, |
9,10, 6, 6, 6, 6, 7, 7, 8, 8, 8, 9, 9, 9, 9, 9, |
9, 9,10, 6, 6, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, 9, |
9, 9, 9,10, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, |
9, 9, 9, 9,10,10,10, 7, 7, 7, 8, 8, 8, 9, 9, 9, |
9, 9, 9, 9, 9,10,10,10, 8, 8, 8, 8, 8, 8, 9, 9, |
9, 9, 9, 9, 9, 9,10,10,10, 8, 8, 8, 8, 8, 8, 9, |
9, 9, 9, 9, 9, 9, 9,11,10,11, 8, 8, 8, 8, 8, 8, |
9, 9, 9, 9, 9, 9, 9, 9,10,10,10,11,11, 8, 8, 8, |
8, 9, 9, 9, 9, 9, 9, 9, 9,11,10,11,11,11, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,11,10,11,11, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,11,11,10,11,11, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,11,10,11,11, |
11,11,11, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,11,11, |
11,11,11,11, 9,10,10,10, 9, 9, 9, 9, 9, 9,11,10, |
11,11,11,11,11, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,11, |
11,11,11,11,11,11,10,10, 9, 9, 9, 9, 9, 9, 9, 9, |
10,11,11,11,11,11,11,11,11, 9, 9, 9, 9, 9, 9, 9, |
9, |
}; |
static const static_codebook _44cn1_sm_p8_2 = { |
2, 289, |
(char *)_vq_lengthlist__44cn1_sm_p8_2, |
1, -529530880, 1611661312, 5, 0, |
(long *)_vq_quantlist__44cn1_sm_p8_2, |
0 |
}; |
static const char _huff_lengthlist__44cn1_sm_short[] = { |
5, 6,12,14,12,14,16,17,18, 4, 2, 5,11, 7,10,12, |
14,15, 9, 4, 5,11, 7,10,13,15,18,15, 6, 7, 5, 6, |
8,11,13,16,11, 5, 6, 5, 5, 6, 9,13,15,12, 5, 7, |
6, 5, 6, 9,12,14,12, 6, 7, 8, 6, 7, 9,12,13,14, |
8, 8, 7, 5, 5, 8,10,12,16, 9, 9, 8, 6, 6, 7, 9, |
9, |
}; |
static const static_codebook _huff_book__44cn1_sm_short = { |
2, 81, |
(char *)_huff_lengthlist__44cn1_sm_short, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
/contrib/sdk/sources/libvorbis-1.3.7/lib/books/floor/floor_books.h |
---|
0,0 → 1,1546 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: static codebooks autogenerated by huff/huffbuld |
********************************************************************/ |
#include "codebook.h" |
static const char _huff_lengthlist_line_256x7_0sub1[] = { |
0, 2, 3, 3, 3, 3, 4, 3, 4, |
}; |
static const static_codebook _huff_book_line_256x7_0sub1 = { |
1, 9, |
(char *)_huff_lengthlist_line_256x7_0sub1, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_256x7_0sub2[] = { |
0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 3, 4, 3, 5, 3, |
6, 3, 6, 4, 6, 4, 7, 5, 7, |
}; |
static const static_codebook _huff_book_line_256x7_0sub2 = { |
1, 25, |
(char *)_huff_lengthlist_line_256x7_0sub2, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_256x7_0sub3[] = { |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 5, 2, 5, 3, 5, 3, |
6, 3, 6, 4, 7, 6, 7, 8, 7, 9, 8, 9, 9, 9,10, 9, |
11,13,11,13,10,10,13,13,13,13,13,13,12,12,12,12, |
}; |
static const static_codebook _huff_book_line_256x7_0sub3 = { |
1, 64, |
(char *)_huff_lengthlist_line_256x7_0sub3, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_256x7_1sub1[] = { |
0, 3, 3, 3, 3, 2, 4, 3, 4, |
}; |
static const static_codebook _huff_book_line_256x7_1sub1 = { |
1, 9, |
(char *)_huff_lengthlist_line_256x7_1sub1, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_256x7_1sub2[] = { |
0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 4, 3, 4, 4, |
5, 4, 6, 5, 6, 7, 6, 8, 8, |
}; |
static const static_codebook _huff_book_line_256x7_1sub2 = { |
1, 25, |
(char *)_huff_lengthlist_line_256x7_1sub2, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_256x7_1sub3[] = { |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 4, 3, 6, 3, 7, |
3, 8, 5, 8, 6, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, |
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, |
}; |
static const static_codebook _huff_book_line_256x7_1sub3 = { |
1, 64, |
(char *)_huff_lengthlist_line_256x7_1sub3, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_256x7_class0[] = { |
7, 5, 5, 9, 9, 6, 6, 9,12, 8, 7, 8,11, 8, 9,15, |
6, 3, 3, 7, 7, 4, 3, 6, 9, 6, 5, 6, 8, 6, 8,15, |
8, 5, 5, 9, 8, 5, 4, 6,10, 7, 5, 5,11, 8, 7,15, |
14,15,13,13,13,13, 8,11,15,10, 7, 6,11, 9,10,15, |
}; |
static const static_codebook _huff_book_line_256x7_class0 = { |
1, 64, |
(char *)_huff_lengthlist_line_256x7_class0, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_256x7_class1[] = { |
5, 6, 8,15, 6, 9,10,15,10,11,12,15,15,15,15,15, |
4, 6, 7,15, 6, 7, 8,15, 9, 8, 9,15,15,15,15,15, |
6, 8, 9,15, 7, 7, 8,15,10, 9,10,15,15,15,15,15, |
15,13,15,15,15,10,11,15,15,13,13,15,15,15,15,15, |
4, 6, 7,15, 6, 8, 9,15,10,10,12,15,15,15,15,15, |
2, 5, 6,15, 5, 6, 7,15, 8, 6, 7,15,15,15,15,15, |
5, 6, 8,15, 5, 6, 7,15, 9, 6, 7,15,15,15,15,15, |
14,12,13,15,12,10,11,15,15,15,15,15,15,15,15,15, |
7, 8, 9,15, 9,10,10,15,15,14,14,15,15,15,15,15, |
5, 6, 7,15, 7, 8, 9,15,12, 9,10,15,15,15,15,15, |
7, 7, 9,15, 7, 7, 8,15,12, 8, 9,15,15,15,15,15, |
13,13,14,15,12,11,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, |
13,13,13,15,15,15,15,15,15,15,15,15,15,15,15,15, |
15,12,13,15,15,12,13,15,15,14,15,15,15,15,15,15, |
15,15,15,15,15,15,13,15,15,15,15,15,15,15,15,15, |
}; |
static const static_codebook _huff_book_line_256x7_class1 = { |
1, 256, |
(char *)_huff_lengthlist_line_256x7_class1, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_512x17_0sub0[] = { |
4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, |
5, 6, 5, 6, 6, 6, 6, 5, 6, 6, 7, 6, 7, 6, 7, 6, |
7, 6, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 9, 7, 9, 7, |
9, 7, 9, 8, 9, 8,10, 8,10, 8,10, 7,10, 6,10, 8, |
10, 8,11, 7,10, 7,11, 8,11,11,12,12,11,11,12,11, |
13,11,13,11,13,12,15,12,13,13,14,14,14,14,14,15, |
15,15,16,14,17,19,19,18,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 const static_codebook _huff_book_line_512x17_0sub0 = { |
1, 128, |
(char *)_huff_lengthlist_line_512x17_0sub0, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_512x17_1sub0[] = { |
2, 4, 5, 4, 5, 4, 5, 4, 5, 5, 5, 5, 5, 5, 6, 5, |
6, 5, 6, 6, 7, 6, 7, 6, 8, 7, 8, 7, 8, 7, 8, 7, |
}; |
static const static_codebook _huff_book_line_512x17_1sub0 = { |
1, 32, |
(char *)_huff_lengthlist_line_512x17_1sub0, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_512x17_1sub1[] = { |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
4, 3, 5, 3, 5, 4, 5, 4, 5, 4, 5, 5, 5, 5, 6, 5, |
6, 5, 7, 5, 8, 6, 8, 6, 8, 6, 8, 6, 8, 7, 9, 7, |
9, 7,11, 9,11,11,12,11,14,12,14,16,14,16,13,16, |
14,16,12,15,13,16,14,16,13,14,12,15,13,15,13,13, |
13,15,12,14,14,15,13,15,12,15,15,15,15,15,15,15, |
15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, |
}; |
static const static_codebook _huff_book_line_512x17_1sub1 = { |
1, 128, |
(char *)_huff_lengthlist_line_512x17_1sub1, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_512x17_2sub1[] = { |
0, 4, 5, 4, 4, 4, 5, 4, 4, 4, 5, 4, 5, 4, 5, 3, |
5, 3, |
}; |
static const static_codebook _huff_book_line_512x17_2sub1 = { |
1, 18, |
(char *)_huff_lengthlist_line_512x17_2sub1, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_512x17_2sub2[] = { |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 4, 3, 4, 3, 4, 4, 5, 4, 5, 4, 6, 4, 6, 5, |
6, 5, 7, 5, 7, 6, 8, 6, 8, 6, 8, 7, 8, 7, 9, 7, |
9, 8, |
}; |
static const static_codebook _huff_book_line_512x17_2sub2 = { |
1, 50, |
(char *)_huff_lengthlist_line_512x17_2sub2, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_512x17_2sub3[] = { |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 3, 3, 3, 3, 4, 3, 4, 4, 5, 5, 6, 6, 7, 7, |
7, 8, 8,11, 8, 9, 9, 9,10,11,11,11, 9,10,10,11, |
11,11,11,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 const static_codebook _huff_book_line_512x17_2sub3 = { |
1, 128, |
(char *)_huff_lengthlist_line_512x17_2sub3, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_512x17_3sub1[] = { |
0, 4, 4, 4, 4, 4, 4, 3, 4, 4, 4, 4, 4, 5, 4, 5, |
5, 5, |
}; |
static const static_codebook _huff_book_line_512x17_3sub1 = { |
1, 18, |
(char *)_huff_lengthlist_line_512x17_3sub1, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_512x17_3sub2[] = { |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 2, 3, 3, 4, 3, 5, 4, 6, 4, 6, 5, 7, 6, 7, |
6, 8, 6, 8, 7, 9, 8,10, 8,12, 9,13,10,15,10,15, |
11,14, |
}; |
static const static_codebook _huff_book_line_512x17_3sub2 = { |
1, 50, |
(char *)_huff_lengthlist_line_512x17_3sub2, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_512x17_3sub3[] = { |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 4, 8, 4, 8, 4, 8, 4, 8, 5, 8, 5, 8, 6, 8, |
4, 8, 4, 8, 5, 8, 5, 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, |
}; |
static const static_codebook _huff_book_line_512x17_3sub3 = { |
1, 128, |
(char *)_huff_lengthlist_line_512x17_3sub3, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_512x17_class1[] = { |
1, 2, 3, 6, 5, 4, 7, 7, |
}; |
static const static_codebook _huff_book_line_512x17_class1 = { |
1, 8, |
(char *)_huff_lengthlist_line_512x17_class1, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_512x17_class2[] = { |
3, 3, 3,14, 5, 4, 4,11, 8, 6, 6,10,17,12,11,17, |
6, 5, 5,15, 5, 3, 4,11, 8, 5, 5, 8,16, 9,10,14, |
10, 8, 9,17, 8, 6, 6,13,10, 7, 7,10,16,11,13,14, |
17,17,17,17,17,16,16,16,16,15,16,16,16,16,16,16, |
}; |
static const static_codebook _huff_book_line_512x17_class2 = { |
1, 64, |
(char *)_huff_lengthlist_line_512x17_class2, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_512x17_class3[] = { |
2, 4, 6,17, 4, 5, 7,17, 8, 7,10,17,17,17,17,17, |
3, 4, 6,15, 3, 3, 6,15, 7, 6, 9,17,17,17,17,17, |
6, 8,10,17, 6, 6, 8,16, 9, 8,10,17,17,15,16,17, |
17,17,17,17,12,15,15,16,12,15,15,16,16,16,16,16, |
}; |
static const static_codebook _huff_book_line_512x17_class3 = { |
1, 64, |
(char *)_huff_lengthlist_line_512x17_class3, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_128x4_class0[] = { |
7, 7, 7,11, 6, 6, 7,11, 7, 6, 6,10,12,10,10,13, |
7, 7, 8,11, 7, 7, 7,11, 7, 6, 7,10,11,10,10,13, |
10,10, 9,12, 9, 9, 9,11, 8, 8, 8,11,13,11,10,14, |
15,15,14,15,15,14,13,14,15,12,12,17,17,17,17,17, |
7, 7, 6, 9, 6, 6, 6, 9, 7, 6, 6, 8,11,11,10,12, |
7, 7, 7, 9, 7, 6, 6, 9, 7, 6, 6, 9,13,10,10,11, |
10, 9, 8,10, 9, 8, 8,10, 8, 8, 7, 9,13,12,10,11, |
17,14,14,13,15,14,12,13,17,13,12,15,17,17,14,17, |
7, 6, 6, 7, 6, 6, 5, 7, 6, 6, 6, 6,11, 9, 9, 9, |
7, 7, 6, 7, 7, 6, 6, 7, 6, 6, 6, 6,10, 9, 8, 9, |
10, 9, 8, 8, 9, 8, 7, 8, 8, 7, 6, 8,11,10, 9,10, |
17,17,12,15,15,15,12,14,14,14,10,12,15,13,12,13, |
11,10, 8,10,11,10, 8, 8,10, 9, 7, 7,10, 9, 9,11, |
11,11, 9,10,11,10, 8, 9,10, 8, 6, 8,10, 9, 9,11, |
14,13,10,12,12,11,10,10, 8, 7, 8,10,10,11,11,12, |
17,17,15,17,17,17,17,17,17,13,12,17,17,17,14,17, |
}; |
static const static_codebook _huff_book_line_128x4_class0 = { |
1, 256, |
(char *)_huff_lengthlist_line_128x4_class0, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_128x4_0sub0[] = { |
2, 2, 2, 2, |
}; |
static const static_codebook _huff_book_line_128x4_0sub0 = { |
1, 4, |
(char *)_huff_lengthlist_line_128x4_0sub0, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_128x4_0sub1[] = { |
0, 0, 0, 0, 3, 2, 3, 2, 3, 3, |
}; |
static const static_codebook _huff_book_line_128x4_0sub1 = { |
1, 10, |
(char *)_huff_lengthlist_line_128x4_0sub1, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_128x4_0sub2[] = { |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 4, 3, 4, 3, |
4, 4, 5, 4, 5, 4, 6, 5, 6, |
}; |
static const static_codebook _huff_book_line_128x4_0sub2 = { |
1, 25, |
(char *)_huff_lengthlist_line_128x4_0sub2, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_128x4_0sub3[] = { |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 3, 5, 3, 5, 3, |
5, 4, 6, 5, 6, 5, 7, 6, 6, 7, 7, 9, 9,11,11,16, |
11,14,10,11,11,13,16,15,15,15,15,15,15,15,15,15, |
}; |
static const static_codebook _huff_book_line_128x4_0sub3 = { |
1, 64, |
(char *)_huff_lengthlist_line_128x4_0sub3, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_256x4_class0[] = { |
6, 7, 7,12, 6, 6, 7,12, 7, 6, 6,10,15,12,11,13, |
7, 7, 8,13, 7, 7, 8,12, 7, 7, 7,11,12,12,11,13, |
10, 9, 9,11, 9, 9, 9,10,10, 8, 8,12,14,12,12,14, |
11,11,12,14,11,12,11,15,15,12,13,15,15,15,15,15, |
6, 6, 7,10, 6, 6, 6,11, 7, 6, 6, 9,14,12,11,13, |
7, 7, 7,10, 6, 6, 7, 9, 7, 7, 6,10,13,12,10,12, |
9, 9, 9,11, 9, 9, 8, 9, 9, 8, 8,10,13,12,10,12, |
12,12,11,13,12,12,11,12,15,13,12,15,15,15,14,14, |
6, 6, 6, 8, 6, 6, 5, 6, 7, 7, 6, 5,11,10, 9, 8, |
7, 6, 6, 7, 6, 6, 5, 6, 7, 7, 6, 6,11,10, 9, 8, |
8, 8, 8, 9, 8, 8, 7, 8, 8, 8, 6, 7,11,10, 9, 9, |
14,11,10,14,14,11,10,15,13,11, 9,11,15,12,12,11, |
11, 9, 8, 8,10, 9, 8, 9,11,10, 9, 8,12,11,12,11, |
13,10, 8, 9,11,10, 8, 9,10, 9, 8, 9,10, 8,12,12, |
15,11,10,10,13,11,10,10, 8, 8, 7,12,10, 9,11,12, |
15,12,11,15,13,11,11,15,12,14,11,13,15,15,13,13, |
}; |
static const static_codebook _huff_book_line_256x4_class0 = { |
1, 256, |
(char *)_huff_lengthlist_line_256x4_class0, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_256x4_0sub0[] = { |
2, 2, 2, 2, |
}; |
static const static_codebook _huff_book_line_256x4_0sub0 = { |
1, 4, |
(char *)_huff_lengthlist_line_256x4_0sub0, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_256x4_0sub1[] = { |
0, 0, 0, 0, 2, 2, 3, 3, 3, 3, |
}; |
static const static_codebook _huff_book_line_256x4_0sub1 = { |
1, 10, |
(char *)_huff_lengthlist_line_256x4_0sub1, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_256x4_0sub2[] = { |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 3, 4, 3, 4, 3, |
5, 3, 5, 4, 5, 4, 6, 4, 6, |
}; |
static const static_codebook _huff_book_line_256x4_0sub2 = { |
1, 25, |
(char *)_huff_lengthlist_line_256x4_0sub2, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_256x4_0sub3[] = { |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 3, 5, 3, 5, 3, |
6, 4, 7, 4, 7, 5, 7, 6, 7, 6, 7, 8,10,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,12,12,12,12,12, |
}; |
static const static_codebook _huff_book_line_256x4_0sub3 = { |
1, 64, |
(char *)_huff_lengthlist_line_256x4_0sub3, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_128x7_class0[] = { |
10, 7, 8,13, 9, 6, 7,11,10, 8, 8,12,17,17,17,17, |
7, 5, 5, 9, 6, 4, 4, 8, 8, 5, 5, 8,16,14,13,16, |
7, 5, 5, 7, 6, 3, 3, 5, 8, 5, 4, 7,14,12,12,15, |
10, 7, 8, 9, 7, 5, 5, 6, 9, 6, 5, 5,15,12, 9,10, |
}; |
static const static_codebook _huff_book_line_128x7_class0 = { |
1, 64, |
(char *)_huff_lengthlist_line_128x7_class0, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_128x7_class1[] = { |
8,13,17,17, 8,11,17,17,11,13,17,17,17,17,17,17, |
6,10,16,17, 6,10,15,17, 8,10,16,17,17,17,17,17, |
9,13,15,17, 8,11,17,17,10,12,17,17,17,17,17,17, |
17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, |
6,11,15,17, 7,10,15,17, 8,10,17,17,17,15,17,17, |
4, 8,13,17, 4, 7,13,17, 6, 8,15,17,16,15,17,17, |
6,11,15,17, 6, 9,13,17, 8,10,17,17,15,17,17,17, |
16,17,17,17,12,14,15,17,13,14,15,17,17,17,17,17, |
5,10,14,17, 5, 9,14,17, 7, 9,15,17,15,15,17,17, |
3, 7,12,17, 3, 6,11,17, 5, 7,13,17,12,12,17,17, |
5, 9,14,17, 3, 7,11,17, 5, 8,13,17,13,11,16,17, |
12,17,17,17, 9,14,15,17,10,11,14,17,16,14,17,17, |
8,12,17,17, 8,12,17,17,10,12,17,17,17,17,17,17, |
5,10,17,17, 5, 9,15,17, 7, 9,17,17,13,13,17,17, |
7,11,17,17, 6,10,15,17, 7, 9,15,17,12,11,17,17, |
12,15,17,17,11,14,17,17,11,10,15,17,17,16,17,17, |
}; |
static const static_codebook _huff_book_line_128x7_class1 = { |
1, 256, |
(char *)_huff_lengthlist_line_128x7_class1, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_128x7_0sub1[] = { |
0, 3, 3, 3, 3, 3, 3, 3, 3, |
}; |
static const static_codebook _huff_book_line_128x7_0sub1 = { |
1, 9, |
(char *)_huff_lengthlist_line_128x7_0sub1, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_128x7_0sub2[] = { |
0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 4, 4, 4, 4, |
5, 4, 5, 4, 5, 4, 6, 4, 6, |
}; |
static const static_codebook _huff_book_line_128x7_0sub2 = { |
1, 25, |
(char *)_huff_lengthlist_line_128x7_0sub2, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_128x7_0sub3[] = { |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 5, 3, 5, 3, 5, 4, |
5, 4, 5, 5, 5, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, |
7, 8, 9,11,13,13,13,13,13,13,13,13,13,13,13,13, |
}; |
static const static_codebook _huff_book_line_128x7_0sub3 = { |
1, 64, |
(char *)_huff_lengthlist_line_128x7_0sub3, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_128x7_1sub1[] = { |
0, 3, 3, 2, 3, 3, 4, 3, 4, |
}; |
static const static_codebook _huff_book_line_128x7_1sub1 = { |
1, 9, |
(char *)_huff_lengthlist_line_128x7_1sub1, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_128x7_1sub2[] = { |
0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 3, 6, 3, 6, 3, |
6, 3, 7, 3, 8, 4, 9, 4, 9, |
}; |
static const static_codebook _huff_book_line_128x7_1sub2 = { |
1, 25, |
(char *)_huff_lengthlist_line_128x7_1sub2, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_128x7_1sub3[] = { |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 7, 2, 7, 3, 8, 4, |
9, 5, 9, 8,10,11,11,12,14,14,14,14,14,14,14,14, |
14,14,14,14,14,14,14,14,14,14,14,14,13,13,13,13, |
}; |
static const static_codebook _huff_book_line_128x7_1sub3 = { |
1, 64, |
(char *)_huff_lengthlist_line_128x7_1sub3, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_128x11_class1[] = { |
1, 6, 3, 7, 2, 4, 5, 7, |
}; |
static const static_codebook _huff_book_line_128x11_class1 = { |
1, 8, |
(char *)_huff_lengthlist_line_128x11_class1, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_128x11_class2[] = { |
1, 6,12,16, 4,12,15,16, 9,15,16,16,16,16,16,16, |
2, 5,11,16, 5,11,13,16, 9,13,16,16,16,16,16,16, |
4, 8,12,16, 5, 9,12,16, 9,13,15,16,16,16,16,16, |
15,16,16,16,11,14,13,16,12,15,16,16,16,16,16,15, |
}; |
static const static_codebook _huff_book_line_128x11_class2 = { |
1, 64, |
(char *)_huff_lengthlist_line_128x11_class2, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_128x11_class3[] = { |
7, 6, 9,17, 7, 6, 8,17,12, 9,11,16,16,16,16,16, |
5, 4, 7,16, 5, 3, 6,14, 9, 6, 8,15,16,16,16,16, |
5, 4, 6,13, 3, 2, 4,11, 7, 4, 6,13,16,11,10,14, |
12,12,12,16, 9, 7,10,15,12, 9,11,16,16,15,15,16, |
}; |
static const static_codebook _huff_book_line_128x11_class3 = { |
1, 64, |
(char *)_huff_lengthlist_line_128x11_class3, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_128x11_0sub0[] = { |
5, 5, 5, 5, 5, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, |
6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 6, 6, 6, 7, 6, |
7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 8, 6, 8, 6, 8, 7, |
8, 7, 8, 7, 8, 7, 9, 7, 9, 8, 9, 8, 9, 8,10, 8, |
10, 9,10, 9,10, 9,11, 9,11, 9,10,10,11,10,11,10, |
11,11,11,11,11,11,12,13,14,14,14,15,15,16,16,16, |
17,15,16,15,16,16,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, |
}; |
static const static_codebook _huff_book_line_128x11_0sub0 = { |
1, 128, |
(char *)_huff_lengthlist_line_128x11_0sub0, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_128x11_1sub0[] = { |
2, 5, 5, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, |
6, 5, 6, 5, 6, 5, 7, 6, 7, 6, 7, 6, 8, 6, 8, 6, |
}; |
static const static_codebook _huff_book_line_128x11_1sub0 = { |
1, 32, |
(char *)_huff_lengthlist_line_128x11_1sub0, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_128x11_1sub1[] = { |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
5, 3, 5, 3, 6, 4, 6, 4, 7, 4, 7, 4, 7, 4, 8, 4, |
8, 4, 9, 5, 9, 5, 9, 5, 9, 6,10, 6,10, 6,11, 7, |
10, 7,10, 8,11, 9,11, 9,11,10,11,11,12,11,11,12, |
15,15,12,14,11,14,12,14,11,14,13,14,12,14,11,14, |
11,14,12,14,11,14,11,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, |
}; |
static const static_codebook _huff_book_line_128x11_1sub1 = { |
1, 128, |
(char *)_huff_lengthlist_line_128x11_1sub1, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_128x11_2sub1[] = { |
0, 4, 5, 4, 5, 4, 5, 3, 5, 3, 5, 3, 5, 4, 4, 4, |
5, 5, |
}; |
static const static_codebook _huff_book_line_128x11_2sub1 = { |
1, 18, |
(char *)_huff_lengthlist_line_128x11_2sub1, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_128x11_2sub2[] = { |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 3, 3, 3, 4, 4, 4, 4, 5, 4, 5, 4, 6, 5, 7, |
5, 7, 6, 8, 6, 8, 6, 9, 7, 9, 7,10, 7, 9, 8,11, |
8,11, |
}; |
static const static_codebook _huff_book_line_128x11_2sub2 = { |
1, 50, |
(char *)_huff_lengthlist_line_128x11_2sub2, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_128x11_2sub3[] = { |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 4, 8, 3, 8, 4, 8, 4, 8, 6, 8, 5, 8, 4, 8, |
4, 8, 6, 8, 7, 8, 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, |
}; |
static const static_codebook _huff_book_line_128x11_2sub3 = { |
1, 128, |
(char *)_huff_lengthlist_line_128x11_2sub3, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_128x11_3sub1[] = { |
0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 4, |
5, 4, |
}; |
static const static_codebook _huff_book_line_128x11_3sub1 = { |
1, 18, |
(char *)_huff_lengthlist_line_128x11_3sub1, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_128x11_3sub2[] = { |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 5, 3, 5, 4, 6, 4, 6, 4, 7, 4, 7, 4, 8, 4, |
8, 4, 9, 4, 9, 4,10, 4,10, 5,10, 5,11, 5,12, 6, |
12, 6, |
}; |
static const static_codebook _huff_book_line_128x11_3sub2 = { |
1, 50, |
(char *)_huff_lengthlist_line_128x11_3sub2, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_128x11_3sub3[] = { |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 7, 1, 6, 3, 7, 3, 8, 4, 8, 5, 8, 8, 8, 9, |
7, 8, 8, 7, 7, 7, 8, 9,10, 9, 9,10,10,10,10,10, |
10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, |
10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, |
10,10,10,10,10,10,10,10,10,10,10,10,10,10, 9, 9, |
}; |
static const static_codebook _huff_book_line_128x11_3sub3 = { |
1, 128, |
(char *)_huff_lengthlist_line_128x11_3sub3, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_128x17_class1[] = { |
1, 3, 4, 7, 2, 5, 6, 7, |
}; |
static const static_codebook _huff_book_line_128x17_class1 = { |
1, 8, |
(char *)_huff_lengthlist_line_128x17_class1, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_128x17_class2[] = { |
1, 4,10,19, 3, 8,13,19, 7,12,19,19,19,19,19,19, |
2, 6,11,19, 8,13,19,19, 9,11,19,19,19,19,19,19, |
6, 7,13,19, 9,13,19,19,10,13,18,18,18,18,18,18, |
18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18, |
}; |
static const static_codebook _huff_book_line_128x17_class2 = { |
1, 64, |
(char *)_huff_lengthlist_line_128x17_class2, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_128x17_class3[] = { |
3, 6,10,17, 4, 8,11,20, 8,10,11,20,20,20,20,20, |
2, 4, 8,18, 4, 6, 8,17, 7, 8,10,20,20,17,20,20, |
3, 5, 8,17, 3, 4, 6,17, 8, 8,10,17,17,12,16,20, |
13,13,15,20,10,10,12,20,15,14,15,20,20,20,19,19, |
}; |
static const static_codebook _huff_book_line_128x17_class3 = { |
1, 64, |
(char *)_huff_lengthlist_line_128x17_class3, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_128x17_0sub0[] = { |
5, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, |
7, 5, 7, 5, 7, 5, 7, 5, 7, 5, 7, 5, 8, 5, 8, 5, |
8, 5, 8, 5, 8, 6, 8, 6, 8, 6, 9, 6, 9, 6, 9, 6, |
9, 6, 9, 7, 9, 7, 9, 7, 9, 7,10, 7,10, 8,10, 8, |
10, 8,10, 8,10, 8,11, 8,11, 8,11, 8,11, 8,11, 9, |
12, 9,12, 9,12, 9,12, 9,12,10,12,10,13,11,13,11, |
14,12,14,13,15,14,16,14,17,15,18,16,20,20,20,20, |
20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20, |
}; |
static const static_codebook _huff_book_line_128x17_0sub0 = { |
1, 128, |
(char *)_huff_lengthlist_line_128x17_0sub0, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_128x17_1sub0[] = { |
2, 5, 5, 4, 5, 4, 5, 4, 5, 5, 5, 5, 5, 5, 6, 5, |
6, 5, 6, 5, 7, 6, 7, 6, 7, 6, 8, 6, 9, 7, 9, 7, |
}; |
static const static_codebook _huff_book_line_128x17_1sub0 = { |
1, 32, |
(char *)_huff_lengthlist_line_128x17_1sub0, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_128x17_1sub1[] = { |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
4, 3, 5, 3, 5, 3, 6, 3, 6, 4, 6, 4, 7, 4, 7, 5, |
8, 5, 8, 6, 9, 7, 9, 7, 9, 8,10, 9,10, 9,11,10, |
11,11,11,11,11,11,12,12,12,13,12,13,12,14,12,15, |
12,14,12,16,13,17,13,17,14,17,14,16,13,17,14,17, |
14,17,15,17,15,15,16,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, |
}; |
static const static_codebook _huff_book_line_128x17_1sub1 = { |
1, 128, |
(char *)_huff_lengthlist_line_128x17_1sub1, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_128x17_2sub1[] = { |
0, 4, 5, 4, 6, 4, 8, 3, 9, 3, 9, 2, 9, 3, 8, 4, |
9, 4, |
}; |
static const static_codebook _huff_book_line_128x17_2sub1 = { |
1, 18, |
(char *)_huff_lengthlist_line_128x17_2sub1, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_128x17_2sub2[] = { |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 5, 1, 5, 3, 5, 3, 5, 4, 7, 5,10, 7,10, 7, |
12,10,14,10,14, 9,14,11,14,14,14,13,13,13,13,13, |
13,13, |
}; |
static const static_codebook _huff_book_line_128x17_2sub2 = { |
1, 50, |
(char *)_huff_lengthlist_line_128x17_2sub2, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_128x17_2sub3[] = { |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 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, 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, 6, 6, 6, 6, 6, 6, |
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, |
}; |
static const static_codebook _huff_book_line_128x17_2sub3 = { |
1, 128, |
(char *)_huff_lengthlist_line_128x17_2sub3, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_128x17_3sub1[] = { |
0, 4, 4, 4, 4, 4, 4, 4, 5, 3, 5, 3, 5, 4, 6, 4, |
6, 4, |
}; |
static const static_codebook _huff_book_line_128x17_3sub1 = { |
1, 18, |
(char *)_huff_lengthlist_line_128x17_3sub1, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_128x17_3sub2[] = { |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 5, 3, 6, 3, 6, 4, 7, 4, 7, 4, 7, 4, 8, 4, |
8, 4, 8, 4, 8, 4, 9, 4, 9, 5,10, 5,10, 7,10, 8, |
10, 8, |
}; |
static const static_codebook _huff_book_line_128x17_3sub2 = { |
1, 50, |
(char *)_huff_lengthlist_line_128x17_3sub2, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_128x17_3sub3[] = { |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 3, 2, 4, 3, 4, 4, 4, 5, 4, 7, 5, 8, 5,11, |
6,10, 6,12, 7,12, 7,12, 8,12, 8,12,10,12,12,12, |
12,12,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,11,11,11,11,11,11,11,11, |
}; |
static const static_codebook _huff_book_line_128x17_3sub3 = { |
1, 128, |
(char *)_huff_lengthlist_line_128x17_3sub3, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_1024x27_class1[] = { |
2,10, 8,14, 7,12,11,14, 1, 5, 3, 7, 4, 9, 7,13, |
}; |
static const static_codebook _huff_book_line_1024x27_class1 = { |
1, 16, |
(char *)_huff_lengthlist_line_1024x27_class1, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_1024x27_class2[] = { |
1, 4, 2, 6, 3, 7, 5, 7, |
}; |
static const static_codebook _huff_book_line_1024x27_class2 = { |
1, 8, |
(char *)_huff_lengthlist_line_1024x27_class2, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_1024x27_class3[] = { |
1, 5, 7,21, 5, 8, 9,21,10, 9,12,20,20,16,20,20, |
4, 8, 9,20, 6, 8, 9,20,11,11,13,20,20,15,17,20, |
9,11,14,20, 8,10,15,20,11,13,15,20,20,20,20,20, |
20,20,20,20,13,20,20,20,18,18,20,20,20,20,20,20, |
3, 6, 8,20, 6, 7, 9,20,10, 9,12,20,20,20,20,20, |
5, 7, 9,20, 6, 6, 9,20,10, 9,12,20,20,20,20,20, |
8,10,13,20, 8, 9,12,20,11,10,12,20,20,20,20,20, |
18,20,20,20,15,17,18,20,18,17,18,20,20,20,20,20, |
7,10,12,20, 8, 9,11,20,14,13,14,20,20,20,20,20, |
6, 9,12,20, 7, 8,11,20,12,11,13,20,20,20,20,20, |
9,11,15,20, 8,10,14,20,12,11,14,20,20,20,20,20, |
20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20, |
11,16,18,20,15,15,17,20,20,17,20,20,20,20,20,20, |
9,14,16,20,12,12,15,20,17,15,18,20,20,20,20,20, |
16,19,18,20,15,16,20,20,17,17,20,20,20,20,20,20, |
20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20, |
}; |
static const static_codebook _huff_book_line_1024x27_class3 = { |
1, 256, |
(char *)_huff_lengthlist_line_1024x27_class3, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_1024x27_class4[] = { |
2, 3, 7,13, 4, 4, 7,15, 8, 6, 9,17,21,16,15,21, |
2, 5, 7,11, 5, 5, 7,14, 9, 7,10,16,17,15,16,21, |
4, 7,10,17, 7, 7, 9,15,11, 9,11,16,21,18,15,21, |
18,21,21,21,15,17,17,19,21,19,18,20,21,21,21,20, |
}; |
static const static_codebook _huff_book_line_1024x27_class4 = { |
1, 64, |
(char *)_huff_lengthlist_line_1024x27_class4, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_1024x27_0sub0[] = { |
5, 5, 5, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, |
6, 5, 6, 5, 6, 5, 6, 5, 7, 5, 7, 5, 7, 5, 7, 5, |
8, 6, 8, 6, 8, 6, 9, 6, 9, 6,10, 6,10, 6,11, 6, |
11, 7,11, 7,12, 7,12, 7,12, 7,12, 7,12, 7,12, 7, |
12, 7,12, 8,13, 8,12, 8,12, 8,13, 8,13, 9,13, 9, |
13, 9,13, 9,12,10,12,10,13,10,14,11,14,12,14,13, |
14,13,14,14,15,16,15,15,15,14,15,17,21,22,22,21, |
22,22,22,22,22,22,21,21,21,21,21,21,21,21,21,21, |
}; |
static const static_codebook _huff_book_line_1024x27_0sub0 = { |
1, 128, |
(char *)_huff_lengthlist_line_1024x27_0sub0, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_1024x27_1sub0[] = { |
2, 5, 5, 4, 5, 4, 5, 4, 5, 4, 6, 5, 6, 5, 6, 5, |
6, 5, 7, 5, 7, 6, 8, 6, 8, 6, 8, 6, 9, 6, 9, 6, |
}; |
static const static_codebook _huff_book_line_1024x27_1sub0 = { |
1, 32, |
(char *)_huff_lengthlist_line_1024x27_1sub0, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_1024x27_1sub1[] = { |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
8, 5, 8, 4, 9, 4, 9, 4, 9, 4, 9, 4, 9, 4, 9, 4, |
9, 4, 9, 4, 9, 4, 8, 4, 8, 4, 9, 5, 9, 5, 9, 5, |
9, 5, 9, 6,10, 6,10, 7,10, 8,11, 9,11,11,12,13, |
12,14,13,15,13,15,14,16,14,17,15,17,15,15,16,16, |
15,16,16,16,15,18,16,15,17,17,19,19,19,19,19,19, |
19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19, |
}; |
static const static_codebook _huff_book_line_1024x27_1sub1 = { |
1, 128, |
(char *)_huff_lengthlist_line_1024x27_1sub1, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_1024x27_2sub0[] = { |
1, 5, 5, 5, 5, 5, 5, 5, 6, 5, 6, 5, 6, 5, 6, 5, |
6, 6, 7, 7, 7, 7, 8, 7, 8, 8, 9, 8,10, 9,10, 9, |
}; |
static const static_codebook _huff_book_line_1024x27_2sub0 = { |
1, 32, |
(char *)_huff_lengthlist_line_1024x27_2sub0, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_1024x27_2sub1[] = { |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
4, 3, 4, 3, 4, 4, 5, 4, 5, 4, 5, 5, 6, 5, 6, 5, |
7, 5, 7, 6, 7, 6, 8, 7, 8, 7, 8, 7, 9, 8, 9, 9, |
9, 9,10,10,10,11, 9,12, 9,12, 9,15,10,14, 9,13, |
10,13,10,12,10,12,10,13,10,12,11,13,11,14,12,13, |
13,14,14,13,14,15,14,16,13,13,14,16,16,16,16,16, |
16,16,16,16,16,16,16,16,16,16,16,16,16,16,15,15, |
}; |
static const static_codebook _huff_book_line_1024x27_2sub1 = { |
1, 128, |
(char *)_huff_lengthlist_line_1024x27_2sub1, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_1024x27_3sub1[] = { |
0, 4, 5, 4, 5, 3, 5, 3, 5, 3, 5, 4, 4, 4, 4, 5, |
5, 5, |
}; |
static const static_codebook _huff_book_line_1024x27_3sub1 = { |
1, 18, |
(char *)_huff_lengthlist_line_1024x27_3sub1, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_1024x27_3sub2[] = { |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 3, 3, 4, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5, 6, |
5, 7, 5, 8, 6, 8, 6, 9, 7,10, 7,10, 8,10, 8,11, |
9,11, |
}; |
static const static_codebook _huff_book_line_1024x27_3sub2 = { |
1, 50, |
(char *)_huff_lengthlist_line_1024x27_3sub2, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_1024x27_3sub3[] = { |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 3, 7, 3, 8, 3,10, 3, 8, 3, 9, 3, 8, 4, 9, |
4, 9, 5, 9, 6,10, 6, 9, 7,11, 7,12, 9,13,10,13, |
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, |
}; |
static const static_codebook _huff_book_line_1024x27_3sub3 = { |
1, 128, |
(char *)_huff_lengthlist_line_1024x27_3sub3, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_1024x27_4sub1[] = { |
0, 4, 5, 4, 5, 4, 5, 4, 5, 3, 5, 3, 5, 3, 5, 4, |
5, 4, |
}; |
static const static_codebook _huff_book_line_1024x27_4sub1 = { |
1, 18, |
(char *)_huff_lengthlist_line_1024x27_4sub1, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_1024x27_4sub2[] = { |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 4, 2, 4, 2, 5, 3, 5, 4, 6, 6, 6, 7, 7, 8, |
7, 8, 7, 8, 7, 9, 8, 9, 8, 9, 8,10, 8,11, 9,12, |
9,12, |
}; |
static const static_codebook _huff_book_line_1024x27_4sub2 = { |
1, 50, |
(char *)_huff_lengthlist_line_1024x27_4sub2, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_1024x27_4sub3[] = { |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 2, 5, 2, 6, 3, 6, 4, 7, 4, 7, 5, 9, 5,11, |
6,11, 6,11, 7,11, 6,11, 6,11, 9,11, 8,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,11,11,11,11,11,11,11,10,10,10,10,10,10, |
}; |
static const static_codebook _huff_book_line_1024x27_4sub3 = { |
1, 128, |
(char *)_huff_lengthlist_line_1024x27_4sub3, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_2048x27_class1[] = { |
2, 6, 8, 9, 7,11,13,13, 1, 3, 5, 5, 6, 6,12,10, |
}; |
static const static_codebook _huff_book_line_2048x27_class1 = { |
1, 16, |
(char *)_huff_lengthlist_line_2048x27_class1, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_2048x27_class2[] = { |
1, 2, 3, 6, 4, 7, 5, 7, |
}; |
static const static_codebook _huff_book_line_2048x27_class2 = { |
1, 8, |
(char *)_huff_lengthlist_line_2048x27_class2, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_2048x27_class3[] = { |
3, 3, 6,16, 5, 5, 7,16, 9, 8,11,16,16,16,16,16, |
5, 5, 8,16, 5, 5, 7,16, 8, 7, 9,16,16,16,16,16, |
9, 9,12,16, 6, 8,11,16, 9,10,11,16,16,16,16,16, |
16,16,16,16,13,16,16,16,15,16,16,16,16,16,16,16, |
5, 4, 7,16, 6, 5, 8,16, 9, 8,10,16,16,16,16,16, |
5, 5, 7,15, 5, 4, 6,15, 7, 6, 8,16,16,16,16,16, |
9, 9,11,15, 7, 7, 9,16, 8, 8, 9,16,16,16,16,16, |
16,16,16,16,15,15,15,16,15,15,14,16,16,16,16,16, |
8, 8,11,16, 8, 9,10,16,11,10,14,16,16,16,16,16, |
6, 8,10,16, 6, 7,10,16, 8, 8,11,16,14,16,16,16, |
10,11,14,16, 9, 9,11,16,10,10,11,16,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, |
12,16,15,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, |
}; |
static const static_codebook _huff_book_line_2048x27_class3 = { |
1, 256, |
(char *)_huff_lengthlist_line_2048x27_class3, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_2048x27_class4[] = { |
2, 4, 7,13, 4, 5, 7,15, 8, 7,10,16,16,14,16,16, |
2, 4, 7,16, 3, 4, 7,14, 8, 8,10,16,16,16,15,16, |
6, 8,11,16, 7, 7, 9,16,11, 9,13,16,16,16,15,16, |
16,16,16,16,14,16,16,16,16,16,16,16,16,16,16,16, |
}; |
static const static_codebook _huff_book_line_2048x27_class4 = { |
1, 64, |
(char *)_huff_lengthlist_line_2048x27_class4, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_2048x27_0sub0[] = { |
5, 5, 5, 5, 5, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, |
6, 5, 7, 5, 7, 5, 7, 5, 8, 5, 8, 5, 8, 5, 9, 5, |
9, 6,10, 6,10, 6,11, 6,11, 6,11, 6,11, 6,11, 6, |
11, 6,11, 6,12, 7,11, 7,11, 7,11, 7,11, 7,10, 7, |
11, 7,11, 7,12, 7,11, 8,11, 8,11, 8,11, 8,13, 8, |
12, 9,11, 9,11, 9,11,10,12,10,12, 9,12,10,12,11, |
14,12,16,12,12,11,14,16,17,17,17,17,17,17,17,17, |
17,17,17,17,17,17,17,17,17,17,17,17,16,16,16,16, |
}; |
static const static_codebook _huff_book_line_2048x27_0sub0 = { |
1, 128, |
(char *)_huff_lengthlist_line_2048x27_0sub0, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_2048x27_1sub0[] = { |
4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, |
5, 5, 6, 6, 6, 6, 6, 6, 7, 6, 7, 6, 7, 6, 7, 6, |
}; |
static const static_codebook _huff_book_line_2048x27_1sub0 = { |
1, 32, |
(char *)_huff_lengthlist_line_2048x27_1sub0, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_2048x27_1sub1[] = { |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
6, 5, 7, 5, 7, 4, 7, 4, 8, 4, 8, 4, 8, 4, 8, 3, |
8, 4, 9, 4, 9, 4, 9, 4, 9, 4, 9, 5, 9, 5, 9, 6, |
9, 7, 9, 8, 9, 9, 9,10, 9,11, 9,14, 9,15,10,15, |
10,15,10,15,10,15,11,15,10,14,12,14,11,14,13,14, |
13,15,15,15,12,15,15,15,13,15,13,15,13,15,15,15, |
15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,14, |
}; |
static const static_codebook _huff_book_line_2048x27_1sub1 = { |
1, 128, |
(char *)_huff_lengthlist_line_2048x27_1sub1, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_2048x27_2sub0[] = { |
2, 4, 5, 4, 5, 4, 5, 4, 5, 5, 5, 5, 5, 5, 6, 5, |
6, 5, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, |
}; |
static const static_codebook _huff_book_line_2048x27_2sub0 = { |
1, 32, |
(char *)_huff_lengthlist_line_2048x27_2sub0, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_2048x27_2sub1[] = { |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
3, 4, 3, 4, 3, 4, 4, 5, 4, 5, 5, 5, 6, 6, 6, 7, |
6, 8, 6, 8, 6, 9, 7,10, 7,10, 7,10, 7,12, 7,12, |
7,12, 9,12,11,12,10,12,10,12,11,12,12,12,10,12, |
10,12,10,12, 9,12,11,12,12,12,12,12,11,12,11,12, |
12,12,12,12,12,12,12,12,10,10,12,12,12,12,12,10, |
12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, |
}; |
static const static_codebook _huff_book_line_2048x27_2sub1 = { |
1, 128, |
(char *)_huff_lengthlist_line_2048x27_2sub1, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_2048x27_3sub1[] = { |
0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, |
5, 5, |
}; |
static const static_codebook _huff_book_line_2048x27_3sub1 = { |
1, 18, |
(char *)_huff_lengthlist_line_2048x27_3sub1, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_2048x27_3sub2[] = { |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 3, 3, 3, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 6, |
6, 7, 6, 7, 6, 8, 6, 9, 7, 9, 7, 9, 9,11, 9,12, |
10,12, |
}; |
static const static_codebook _huff_book_line_2048x27_3sub2 = { |
1, 50, |
(char *)_huff_lengthlist_line_2048x27_3sub2, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_2048x27_3sub3[] = { |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 3, 6, 3, 7, 3, 7, 5, 7, 7, 7, 7, 7, 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, |
}; |
static const static_codebook _huff_book_line_2048x27_3sub3 = { |
1, 128, |
(char *)_huff_lengthlist_line_2048x27_3sub3, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_2048x27_4sub1[] = { |
0, 3, 4, 4, 4, 4, 4, 4, 4, 4, 5, 4, 5, 4, 5, 4, |
4, 5, |
}; |
static const static_codebook _huff_book_line_2048x27_4sub1 = { |
1, 18, |
(char *)_huff_lengthlist_line_2048x27_4sub1, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_2048x27_4sub2[] = { |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 3, 2, 4, 3, 4, 4, 4, 5, 5, 6, 5, 6, 5, 7, |
6, 6, 6, 7, 7, 7, 8, 9, 9, 9,12,10,11,10,10,12, |
10,10, |
}; |
static const static_codebook _huff_book_line_2048x27_4sub2 = { |
1, 50, |
(char *)_huff_lengthlist_line_2048x27_4sub2, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_2048x27_4sub3[] = { |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 3, 6, 5, 7, 5, 7, 7, 7, 7, 7, 5, 7, 5, 7, |
5, 7, 5, 7, 7, 7, 7, 7, 4, 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, 6, 6, 6, 6, 6, 6, 6, 6, 6, |
}; |
static const static_codebook _huff_book_line_2048x27_4sub3 = { |
1, 128, |
(char *)_huff_lengthlist_line_2048x27_4sub3, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_256x4low_class0[] = { |
4, 5, 6,11, 5, 5, 6,10, 7, 7, 6, 6,14,13, 9, 9, |
6, 6, 6,10, 6, 6, 6, 9, 8, 7, 7, 9,14,12, 8,11, |
8, 7, 7,11, 8, 8, 7,11, 9, 9, 7, 9,13,11, 9,13, |
19,19,18,19,15,16,16,19,11,11,10,13,10,10, 9,15, |
5, 5, 6,13, 6, 6, 6,11, 8, 7, 6, 7,14,11,10,11, |
6, 6, 6,12, 7, 6, 6,11, 8, 7, 7,11,13,11, 9,11, |
9, 7, 6,12, 8, 7, 6,12, 9, 8, 8,11,13,10, 7,13, |
19,19,17,19,17,14,14,19,12,10, 8,12,13,10, 9,16, |
7, 8, 7,12, 7, 7, 7,11, 8, 7, 7, 8,12,12,11,11, |
8, 8, 7,12, 8, 7, 6,11, 8, 7, 7,10,10,11,10,11, |
9, 8, 8,13, 9, 8, 7,12,10, 9, 7,11, 9, 8, 7,11, |
18,18,15,18,18,16,17,18,15,11,10,18,11, 9, 9,18, |
16,16,13,16,12,11,10,16,12,11, 9, 6,15,12,11,13, |
16,16,14,14,13,11,12,16,12, 9, 9,13,13,10,10,12, |
17,18,17,17,14,15,14,16,14,12,14,15,12,10,11,12, |
18,18,18,18,18,18,18,18,18,12,13,18,16,11, 9,18, |
}; |
static const static_codebook _huff_book_line_256x4low_class0 = { |
1, 256, |
(char *)_huff_lengthlist_line_256x4low_class0, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_256x4low_0sub0[] = { |
1, 3, 2, 3, |
}; |
static const static_codebook _huff_book_line_256x4low_0sub0 = { |
1, 4, |
(char *)_huff_lengthlist_line_256x4low_0sub0, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_256x4low_0sub1[] = { |
0, 0, 0, 0, 2, 3, 2, 3, 3, 3, |
}; |
static const static_codebook _huff_book_line_256x4low_0sub1 = { |
1, 10, |
(char *)_huff_lengthlist_line_256x4low_0sub1, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_256x4low_0sub2[] = { |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 4, 3, 4, |
4, 4, 4, 4, 5, 5, 5, 6, 6, |
}; |
static const static_codebook _huff_book_line_256x4low_0sub2 = { |
1, 25, |
(char *)_huff_lengthlist_line_256x4low_0sub2, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist_line_256x4low_0sub3[] = { |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 2, 4, 3, 5, 4, |
5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 7, 7, 8, 6, 9, |
7,12,11,16,13,16,12,15,13,15,12,14,12,15,15,15, |
}; |
static const static_codebook _huff_book_line_256x4low_0sub3 = { |
1, 64, |
(char *)_huff_lengthlist_line_256x4low_0sub3, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
/contrib/sdk/sources/libvorbis-1.3.7/lib/books/uncoupled/res_books_uncoupled.h |
---|
0,0 → 1,7757 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: static codebooks autogenerated by huff/huffbuld |
********************************************************************/ |
#include "codebook.h" |
static const long _vq_quantlist__16u0__p1_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__16u0__p1_0[] = { |
1, 4, 4, 5, 7, 7, 5, 7, 8, 5, 8, 8, 8,10,10, 8, |
10,11, 5, 8, 8, 8,10,10, 8,10,10, 4, 9, 9, 9,12, |
11, 8,11,11, 8,12,11,10,12,14,10,13,13, 7,11,11, |
10,14,12,11,14,14, 4, 9, 9, 8,11,11, 9,11,12, 7, |
11,11,10,13,14,10,12,14, 8,11,12,10,14,14,10,13, |
12, |
}; |
static const static_codebook _16u0__p1_0 = { |
4, 81, |
(char *)_vq_lengthlist__16u0__p1_0, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__16u0__p1_0, |
0 |
}; |
static const long _vq_quantlist__16u0__p2_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__16u0__p2_0[] = { |
2, 4, 4, 5, 6, 6, 5, 6, 6, 5, 7, 7, 7, 8, 9, 7, |
8, 9, 5, 7, 7, 7, 9, 8, 7, 9, 7, 4, 7, 7, 7, 9, |
9, 7, 8, 8, 6, 9, 8, 7, 8,11, 9,11,10, 6, 8, 9, |
8,11, 8, 9,10,11, 4, 7, 7, 7, 8, 8, 7, 9, 9, 6, |
9, 8, 9,11,10, 8, 8,11, 6, 8, 9, 9,10,11, 8,11, |
8, |
}; |
static const static_codebook _16u0__p2_0 = { |
4, 81, |
(char *)_vq_lengthlist__16u0__p2_0, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__16u0__p2_0, |
0 |
}; |
static const long _vq_quantlist__16u0__p3_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__16u0__p3_0[] = { |
1, 5, 5, 7, 7, 6, 7, 7, 8, 8, 6, 7, 8, 8, 8, 8, |
9, 9,11,11, 8, 9, 9,11,11, 6, 9, 8,10,10, 8,10, |
10,11,11, 8,10,10,11,11,10,11,10,13,12, 9,11,10, |
13,13, 6, 8, 9,10,10, 8,10,10,11,11, 8,10,10,11, |
11, 9,10,11,13,12,10,10,11,12,12, 8,11,11,14,13, |
10,12,11,15,13, 9,12,11,15,14,12,14,13,16,14,12, |
13,13,17,14, 8,11,11,13,14, 9,11,12,14,15,10,11, |
12,13,15,11,13,13,14,16,12,13,14,14,16, 5, 9, 9, |
11,11, 9,11,11,12,12, 8,11,11,12,12,11,12,12,15, |
14,10,12,12,15,15, 8,11,11,13,12,10,12,12,13,13, |
10,12,12,14,13,12,12,13,14,15,11,13,13,17,16, 7, |
11,11,13,13,10,12,12,14,13,10,12,12,13,14,12,13, |
12,15,14,11,13,13,15,14, 9,12,12,16,15,11,13,13, |
17,16,10,13,13,16,16,13,14,15,15,16,13,15,14,19, |
17, 9,12,12,14,16,11,13,13,15,16,10,13,13,17,16, |
13,14,13,17,15,12,15,15,16,17, 5, 9, 9,11,11, 8, |
11,11,13,12, 9,11,11,12,12,10,12,12,14,15,11,12, |
12,14,14, 7,11,10,13,12,10,12,12,14,13,10,11,12, |
13,13,11,13,13,15,16,12,12,13,15,15, 7,11,11,13, |
13,10,13,13,14,14,10,12,12,13,13,11,13,13,16,15, |
12,13,13,15,14, 9,12,12,15,15,10,13,13,17,16,11, |
12,13,15,15,12,15,14,18,18,13,14,14,16,17, 9,12, |
12,15,16,10,13,13,15,16,11,13,13,15,16,13,15,15, |
17,17,13,15,14,16,15, 7,11,11,15,16,10,13,12,16, |
17,10,12,13,15,17,15,16,16,18,17,13,15,15,17,18, |
8,12,12,16,16,11,13,14,17,18,11,13,13,18,16,15, |
17,16,17,19,14,15,15,17,16, 8,12,12,16,15,11,14, |
13,18,17,11,13,14,18,17,15,16,16,18,17,13,16,16, |
18,18,11,15,14,18,17,13,14,15,18, 0,12,15,15, 0, |
17,17,16,17,17,18,14,16,18,18, 0,11,14,14,17, 0, |
12,15,14,17,19,12,15,14,18, 0,15,18,16, 0,17,14, |
18,16,18, 0, 7,11,11,16,15,10,12,12,18,16,10,13, |
13,16,15,13,15,14,17,17,14,16,16,19,18, 8,12,12, |
16,16,11,13,13,18,16,11,13,14,17,16,14,15,15,19, |
18,15,16,16, 0,19, 8,12,12,16,17,11,13,13,17,17, |
11,14,13,17,17,13,15,15,17,19,15,17,17,19, 0,11, |
14,15,19,17,12,15,16,18,18,12,14,15,19,17,14,16, |
17, 0,18,16,16,19,17, 0,11,14,14,18,19,12,15,14, |
17,17,13,16,14,17,16,14,17,16,18,18,15,18,15, 0, |
18, |
}; |
static const static_codebook _16u0__p3_0 = { |
4, 625, |
(char *)_vq_lengthlist__16u0__p3_0, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__16u0__p3_0, |
0 |
}; |
static const long _vq_quantlist__16u0__p4_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__16u0__p4_0[] = { |
3, 5, 5, 8, 8, 6, 6, 6, 9, 9, 6, 6, 6, 9, 9, 9, |
10, 9,11,11, 9, 9, 9,11,11, 6, 7, 7,10,10, 7, 7, |
8,10,10, 7, 7, 8,10,10,10,10,10,11,12, 9,10,10, |
11,12, 6, 7, 7,10,10, 7, 8, 7,10,10, 7, 8, 7,10, |
10,10,11,10,12,11,10,10,10,13,10, 9,10,10,12,12, |
10,11,10,14,12, 9,11,11,13,13,11,12,13,13,13,11, |
12,12,15,13, 9,10,10,12,13, 9,11,10,12,13,10,10, |
11,12,13,11,12,12,12,13,11,12,12,13,13, 5, 7, 7, |
10,10, 7, 8, 8,10,10, 7, 8, 8,10,10,10,11,10,12, |
13,10,10,11,12,12, 6, 8, 8,11,10, 7, 8, 9,10,12, |
8, 9, 9,11,11,11,10,11,11,12,10,11,11,13,12, 7, |
8, 8,10,11, 8, 9, 8,11,10, 8, 9, 9,11,11,10,12, |
10,13,11,10,11,11,13,13,10,11,10,14,13,10,10,11, |
13,13,10,12,11,14,13,12,11,13,12,13,13,12,13,14, |
14,10,11,11,13,13,10,11,10,12,13,10,12,12,12,14, |
12,12,12,14,12,12,13,12,17,15, 5, 7, 7,10,10, 7, |
8, 8,10,10, 7, 8, 8,11,10,10,10,11,12,12,10,11, |
11,12,13, 6, 8, 8,11,10, 8, 9, 9,11,11, 7, 8, 9, |
10,11,11,11,11,12,12,10,10,11,12,13, 6, 8, 8,10, |
11, 8, 9, 9,11,11, 7, 9, 7,11,10,10,12,12,13,13, |
11,11,10,13,11, 9,11,10,14,13,11,11,11,15,13,10, |
10,11,13,13,12,13,13,14,14,12,11,12,12,13,10,11, |
11,12,13,10,11,12,13,13,10,11,10,13,12,12,12,13, |
14, 0,12,13,11,13,11, 8,10,10,13,13,10,11,11,14, |
13,10,11,11,13,12,13,14,14,14,15,12,12,12,15,14, |
9,11,10,13,12,10,10,11,13,14,11,11,11,15,12,13, |
12,14,15,16,13,13,13,14,13, 9,11,11,12,12,10,12, |
11,13,13,10,11,11,13,14,13,13,13,15,15,13,13,14, |
17,15,11,12,12,14,14,10,11,12,13,15,12,13,13, 0, |
15,13,11,14,12,16,14,16,14, 0,15,11,12,12,14,16, |
11,13,12,16,15,12,13,13,14,15,12,14,12,15,13,15, |
14,14,16,16, 8,10,10,13,13,10,11,10,13,14,10,11, |
11,13,13,13,13,12,14,14,14,13,13,16,17, 9,10,10, |
12,14,10,12,11,14,13,10,11,12,13,14,12,12,12,15, |
15,13,13,13,14,14, 9,10,10,13,13,10,11,12,12,14, |
10,11,10,13,13,13,13,13,14,16,13,13,13,14,14,11, |
12,13,15,13,12,14,13,14,16,12,12,13,13,14,13,14, |
14,17,15,13,12,17,13,16,11,12,13,14,15,12,13,14, |
14,17,11,12,11,14,14,13,16,14,16, 0,14,15,11,15, |
11, |
}; |
static const static_codebook _16u0__p4_0 = { |
4, 625, |
(char *)_vq_lengthlist__16u0__p4_0, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__16u0__p4_0, |
0 |
}; |
static const long _vq_quantlist__16u0__p5_0[] = { |
4, |
3, |
5, |
2, |
6, |
1, |
7, |
0, |
8, |
}; |
static const char _vq_lengthlist__16u0__p5_0[] = { |
1, 4, 4, 7, 7, 7, 7, 9, 9, 4, 6, 6, 8, 8, 8, 8, |
9, 9, 4, 6, 6, 8, 8, 8, 8, 9, 9, 7, 8, 8, 9, 9, |
9, 9,11,10, 7, 8, 8, 9, 9, 9, 9,10,11, 7, 8, 8, |
9, 9,10,10,11,11, 7, 8, 8, 9, 9,10,10,11,11, 9, |
9, 9,10,10,11,11,12,12, 9, 9, 9,10,10,11,11,12, |
12, |
}; |
static const static_codebook _16u0__p5_0 = { |
2, 81, |
(char *)_vq_lengthlist__16u0__p5_0, |
1, -531628032, 1611661312, 4, 0, |
(long *)_vq_quantlist__16u0__p5_0, |
0 |
}; |
static const long _vq_quantlist__16u0__p6_0[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__16u0__p6_0[] = { |
1, 4, 4, 7, 7,10,10,12,12,13,13,18,17, 3, 6, 6, |
9, 9,11,11,13,13,14,14,18,17, 3, 6, 6, 9, 9,11, |
11,13,13,14,14,17,18, 7, 9, 9,11,11,13,13,14,14, |
15,15, 0, 0, 7, 9, 9,11,11,13,13,14,14,15,16,19, |
18,10,11,11,13,13,14,14,16,15,17,18, 0, 0,10,11, |
11,13,13,14,14,15,15,16,18, 0, 0,11,13,13,14,14, |
15,15,17,17, 0,19, 0, 0,11,13,13,14,14,14,15,16, |
18, 0,19, 0, 0,13,14,14,15,15,18,17,18,18, 0,19, |
0, 0,13,14,14,15,16,16,16,18,18,19, 0, 0, 0,16, |
17,17, 0,17,19,19, 0,19, 0, 0, 0, 0,16,19,16,17, |
18, 0,19, 0, 0, 0, 0, 0, 0, |
}; |
static const static_codebook _16u0__p6_0 = { |
2, 169, |
(char *)_vq_lengthlist__16u0__p6_0, |
1, -526516224, 1616117760, 4, 0, |
(long *)_vq_quantlist__16u0__p6_0, |
0 |
}; |
static const long _vq_quantlist__16u0__p6_1[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__16u0__p6_1[] = { |
1, 4, 5, 6, 6, 4, 6, 6, 6, 6, 4, 6, 6, 6, 6, 6, |
6, 6, 7, 7, 6, 6, 6, 7, 7, |
}; |
static const static_codebook _16u0__p6_1 = { |
2, 25, |
(char *)_vq_lengthlist__16u0__p6_1, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__16u0__p6_1, |
0 |
}; |
static const long _vq_quantlist__16u0__p7_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__16u0__p7_0[] = { |
1, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, |
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, |
8, 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, |
}; |
static const static_codebook _16u0__p7_0 = { |
4, 81, |
(char *)_vq_lengthlist__16u0__p7_0, |
1, -518803456, 1628680192, 2, 0, |
(long *)_vq_quantlist__16u0__p7_0, |
0 |
}; |
static const long _vq_quantlist__16u0__p7_1[] = { |
7, |
6, |
8, |
5, |
9, |
4, |
10, |
3, |
11, |
2, |
12, |
1, |
13, |
0, |
14, |
}; |
static const char _vq_lengthlist__16u0__p7_1[] = { |
1, 5, 5, 6, 5, 9,10,11,11,10,10,10,10,10,10, 5, |
8, 8, 8,10,10,10,10,10,10,10,10,10,10,10, 5, 8, |
9, 9, 9,10,10,10,10,10,10,10,10,10,10, 5,10, 8, |
10,10,10,10,10,10,10,10,10,10,10,10, 4, 8, 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, 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, |
}; |
static const static_codebook _16u0__p7_1 = { |
2, 225, |
(char *)_vq_lengthlist__16u0__p7_1, |
1, -520986624, 1620377600, 4, 0, |
(long *)_vq_quantlist__16u0__p7_1, |
0 |
}; |
static const long _vq_quantlist__16u0__p7_2[] = { |
10, |
9, |
11, |
8, |
12, |
7, |
13, |
6, |
14, |
5, |
15, |
4, |
16, |
3, |
17, |
2, |
18, |
1, |
19, |
0, |
20, |
}; |
static const char _vq_lengthlist__16u0__p7_2[] = { |
1, 6, 6, 7, 8, 7, 7,10, 9,10, 9,11,10, 9,11,10, |
9, 9, 9, 9,10, 6, 8, 7, 9, 9, 8, 8,10,10, 9,11, |
11,12,12,10, 9,11, 9,12,10, 9, 6, 9, 8, 9,12, 8, |
8,11, 9,11,11,12,11,12,12,10,11,11,10,10,11, 7, |
10, 9, 9, 9, 9, 9,10, 9,10, 9,10,10,12,10,10,10, |
11,12,10,10, 7, 9, 9, 9,10, 9, 9,10,10, 9, 9, 9, |
11,11,10,10,10,10, 9, 9,12, 7, 9,10, 9,11, 9,10, |
9,10,11,11,11,10,11,12, 9,12,11,10,10,10, 7, 9, |
9, 9, 9,10,12,10, 9,11,12,10,11,12,12,11, 9,10, |
11,10,11, 7, 9,10,10,11,10, 9,10,11,11,11,10,12, |
12,12,11,11,10,11,11,12, 8, 9,10,12,11,10,10,12, |
12,12,12,12,10,11,11, 9,11,10,12,11,11, 8, 9,10, |
10,11,12,11,11,10,10,10,12,12,12, 9,10,12,12,12, |
12,12, 8,10,11,10,10,12, 9,11,12,12,11,12,12,12, |
12,10,12,10,10,10,10, 8,12,11,11,11,10,10,11,12, |
12,12,12,11,12,12,12,11,11,11,12,10, 9,10,10,12, |
10,12,10,12,12,10,10,10,11,12,12,12,11,12,12,12, |
11,10,11,12,12,12,11,12,12,11,12,12,11,12,12,12, |
12,11,12,12,10,10,10,10,11,11,12,11,12,12,12,12, |
12,12,12,11,12,11,10,11,11,12,11,11, 9,10,10,10, |
12,10,10,11, 9,11,12,11,12,11,12,12,10,11,10,12, |
9, 9, 9,12,11,10,11,10,12,10,12,10,12,12,12,11, |
11,11,11,11,10, 9,10,10,11,10,11,11,12,11,10,11, |
12,12,12,11,11, 9,12,10,12, 9,10,12,10,10,11,10, |
11,11,12,11,10,11,10,11,11,11,11,12,11,11,10, 9, |
10,10,10, 9,11,11,10, 9,12,10,11,12,11,12,12,11, |
12,11,12,11,10,11,10,12,11,12,11,12,11,12,10,11, |
10,10,12,11,10,11,11,11,10, |
}; |
static const static_codebook _16u0__p7_2 = { |
2, 441, |
(char *)_vq_lengthlist__16u0__p7_2, |
1, -529268736, 1611661312, 5, 0, |
(long *)_vq_quantlist__16u0__p7_2, |
0 |
}; |
static const char _huff_lengthlist__16u0__single[] = { |
3, 5, 8, 7,14, 8, 9,19, 5, 2, 5, 5, 9, 6, 9,19, |
8, 4, 5, 7, 8, 9,13,19, 7, 4, 6, 5, 9, 6, 9,19, |
12, 8, 7, 9,10,11,13,19, 8, 5, 8, 6, 9, 6, 7,19, |
8, 8,10, 7, 7, 4, 5,19,12,17,19,15,18,13,11,18, |
}; |
static const static_codebook _huff_book__16u0__single = { |
2, 64, |
(char *)_huff_lengthlist__16u0__single, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist__16u1__long[] = { |
3, 6,10, 8,12, 8,14, 8,14,19, 5, 3, 5, 5, 7, 6, |
11, 7,16,19, 7, 5, 6, 7, 7, 9,11,12,19,19, 6, 4, |
7, 5, 7, 6,10, 7,18,18, 8, 6, 7, 7, 7, 7, 8, 9, |
18,18, 7, 5, 8, 5, 7, 5, 8, 6,18,18,12, 9,10, 9, |
9, 9, 8, 9,18,18, 8, 7,10, 6, 8, 5, 6, 4,11,18, |
11,15,16,12,11, 8, 8, 6, 9,18,14,18,18,18,16,16, |
16,13,16,18, |
}; |
static const static_codebook _huff_book__16u1__long = { |
2, 100, |
(char *)_huff_lengthlist__16u1__long, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const long _vq_quantlist__16u1__p1_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__16u1__p1_0[] = { |
1, 4, 4, 5, 7, 7, 5, 7, 7, 5, 8, 7, 7,10,10, 7, |
9,10, 5, 7, 8, 7,10, 9, 7,10,10, 5, 8, 8, 8,10, |
10, 8,10,10, 7,10,10,10,11,12,10,12,13, 7,10,10, |
9,13,11,10,12,13, 5, 8, 8, 8,10,10, 8,10,10, 7, |
10,10,10,12,12, 9,11,12, 7,10,11,10,12,12,10,13, |
11, |
}; |
static const static_codebook _16u1__p1_0 = { |
4, 81, |
(char *)_vq_lengthlist__16u1__p1_0, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__16u1__p1_0, |
0 |
}; |
static const long _vq_quantlist__16u1__p2_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__16u1__p2_0[] = { |
3, 4, 4, 5, 6, 6, 5, 6, 6, 5, 6, 6, 6, 7, 8, 6, |
7, 8, 5, 6, 6, 6, 8, 7, 6, 8, 7, 5, 6, 6, 6, 8, |
8, 6, 8, 8, 6, 8, 8, 7, 7,10, 8, 9, 9, 6, 8, 8, |
7, 9, 8, 8, 9,10, 5, 6, 6, 6, 8, 8, 7, 8, 8, 6, |
8, 8, 8,10, 9, 7, 8, 9, 6, 8, 8, 8, 9, 9, 7,10, |
8, |
}; |
static const static_codebook _16u1__p2_0 = { |
4, 81, |
(char *)_vq_lengthlist__16u1__p2_0, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__16u1__p2_0, |
0 |
}; |
static const long _vq_quantlist__16u1__p3_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__16u1__p3_0[] = { |
1, 5, 5, 8, 8, 6, 7, 7, 9, 9, 5, 7, 7, 9, 9, 9, |
10, 9,11,11, 9, 9,10,11,11, 6, 8, 8,10,10, 8, 9, |
10,11,11, 8, 9,10,11,11,10,11,11,12,13,10,11,11, |
13,13, 6, 8, 8,10,10, 8,10, 9,11,11, 8,10, 9,11, |
11,10,11,11,13,13,10,11,11,13,12, 9,11,11,14,13, |
10,12,12,15,14,10,12,11,14,13,12,13,13,15,15,12, |
13,13,16,14, 9,11,11,13,14,10,11,12,14,14,10,12, |
12,14,15,12,13,13,14,15,12,13,14,15,16, 5, 8, 8, |
11,11, 8,10,10,12,12, 8,10,10,12,12,11,12,12,14, |
14,11,12,12,14,14, 8,10,10,12,12, 9,11,12,12,13, |
10,12,12,13,13,12,12,13,14,15,11,13,13,15,15, 7, |
10,10,12,12, 9,12,11,13,12,10,11,12,13,13,12,13, |
12,15,14,11,12,13,15,15,10,12,12,15,14,11,13,13, |
16,15,11,13,13,16,15,14,13,14,15,16,13,15,15,17, |
17,10,12,12,14,15,11,12,12,15,15,11,13,13,15,16, |
13,15,13,16,15,13,15,15,16,17, 5, 8, 8,11,11, 8, |
10,10,12,12, 8,10,10,12,12,11,12,12,14,14,11,12, |
12,14,14, 7,10,10,12,12,10,12,12,14,13, 9,11,12, |
12,13,12,13,13,15,15,12,12,13,13,15, 7,10,10,12, |
13,10,11,12,13,13,10,12,11,13,13,11,13,13,15,15, |
12,13,12,15,14, 9,12,12,15,14,11,13,13,15,15,11, |
12,13,15,15,13,14,14,17,19,13,13,14,16,16,10,12, |
12,14,15,11,13,13,15,16,11,13,12,16,15,13,15,15, |
17,18,14,15,13,16,15, 8,11,11,15,14,10,12,12,16, |
15,10,12,12,16,16,14,15,15,18,17,13,14,15,16,18, |
9,12,12,15,15,11,12,14,16,17,11,13,13,16,15,15, |
15,15,17,18,14,15,16,17,17, 9,12,12,15,15,11,14, |
13,16,16,11,13,13,16,16,15,16,15,17,18,14,16,15, |
17,16,12,14,14,17,16,12,14,15,18,17,13,15,15,17, |
17,15,15,18,16,20,15,16,17,18,18,11,14,14,16,17, |
13,15,14,18,17,13,15,15,17,17,15,17,15,18,17,15, |
17,16,19,18, 8,11,11,14,15,10,12,12,15,15,10,12, |
12,16,16,13,14,14,17,16,14,15,15,17,17, 9,12,12, |
15,16,11,13,13,16,16,11,12,13,16,16,14,16,15,20, |
17,14,16,16,17,17, 9,12,12,15,16,11,13,13,16,17, |
11,13,13,17,16,14,15,15,17,18,15,15,15,18,18,11, |
14,14,17,16,13,15,15,17,17,13,14,14,18,17,15,16, |
16,18,19,15,15,17,17,19,11,14,14,16,17,13,15,14, |
17,19,13,15,14,18,17,15,17,16,18,18,15,17,15,18, |
16, |
}; |
static const static_codebook _16u1__p3_0 = { |
4, 625, |
(char *)_vq_lengthlist__16u1__p3_0, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__16u1__p3_0, |
0 |
}; |
static const long _vq_quantlist__16u1__p4_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__16u1__p4_0[] = { |
4, 5, 5, 8, 8, 6, 6, 7, 9, 9, 6, 6, 6, 9, 9, 9, |
10, 9,11,11, 9, 9,10,11,11, 6, 7, 7,10, 9, 7, 7, |
8, 9,10, 7, 7, 8,10,10,10,10,10,10,12, 9, 9,10, |
11,12, 6, 7, 7, 9, 9, 7, 8, 7,10,10, 7, 8, 7,10, |
10, 9,10, 9,12,11,10,10, 9,12,10, 9,10,10,12,11, |
10,10,10,12,12, 9,10,10,12,12,12,11,12,13,13,11, |
11,12,12,13, 9,10,10,11,12, 9,10,10,12,12,10,10, |
10,12,12,11,12,11,14,13,11,12,12,14,13, 5, 7, 7, |
10,10, 7, 8, 8,10,10, 7, 8, 7,10,10,10,10,10,12, |
12,10,10,10,12,12, 6, 8, 7,10,10, 7, 7, 9,10,11, |
8, 9, 9,11,10,10,10,11,11,13,10,10,11,12,13, 6, |
8, 8,10,10, 7, 9, 8,11,10, 8, 9, 9,10,11,10,11, |
10,13,11,10,11,10,12,12,10,11,10,12,11,10,10,10, |
12,13,10,11,11,13,12,11,11,13,11,14,12,12,13,14, |
14, 9,10,10,12,13,10,11,10,13,12,10,11,11,12,13, |
11,12,11,14,12,12,13,13,15,14, 5, 7, 7,10,10, 7, |
7, 8,10,10, 7, 8, 8,10,10,10,10,10,11,12,10,10, |
10,12,12, 7, 8, 8,10,10, 8, 9, 8,11,10, 7, 8, 9, |
10,11,10,11,11,12,12,10,10,11,11,13, 7, 7, 8,10, |
10, 8, 8, 9,10,11, 7, 9, 7,11,10,10,11,11,13,12, |
11,11,10,13,11, 9,10,10,12,12,10,11,11,13,12,10, |
10,11,12,12,12,13,13,14,14,11,11,12,12,14,10,10, |
11,12,12,10,11,11,12,13,10,10,10,13,12,12,13,13, |
15,14,12,13,10,14,11, 8,10,10,12,12,10,11,10,13, |
13, 9,10,10,12,12,12,13,13,15,14,11,12,12,13,13, |
9,10,10,13,12,10,10,11,13,13,10,11,10,13,12,12, |
12,13,14,15,12,13,12,15,13, 9,10,10,12,13,10,11, |
10,13,12,10,10,11,12,13,12,14,12,15,13,12,12,13, |
14,15,11,12,11,14,13,11,11,12,14,15,12,13,12,15, |
14,13,11,15,11,16,13,14,14,16,15,11,12,12,14,14, |
11,12,11,14,13,12,12,13,14,15,13,14,12,16,12,14, |
14,14,15,15, 8,10,10,12,12, 9,10,10,12,12,10,10, |
11,13,13,11,12,12,13,13,12,13,13,14,15, 9,10,10, |
13,12,10,11,11,13,12,10,10,11,13,13,12,13,12,15, |
14,12,12,13,13,16, 9, 9,10,12,13,10,10,11,12,13, |
10,11,10,13,13,12,12,13,13,15,13,13,12,15,13,11, |
12,12,14,14,12,13,12,15,14,11,11,12,13,14,14,14, |
14,16,15,13,12,15,12,16,11,11,12,13,14,12,13,13, |
14,15,10,12,11,14,13,14,15,14,16,16,13,14,11,15, |
11, |
}; |
static const static_codebook _16u1__p4_0 = { |
4, 625, |
(char *)_vq_lengthlist__16u1__p4_0, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__16u1__p4_0, |
0 |
}; |
static const long _vq_quantlist__16u1__p5_0[] = { |
4, |
3, |
5, |
2, |
6, |
1, |
7, |
0, |
8, |
}; |
static const char _vq_lengthlist__16u1__p5_0[] = { |
1, 4, 4, 7, 7, 7, 7, 9, 9, 4, 6, 6, 8, 8, 8, 8, |
10,10, 4, 5, 6, 8, 8, 8, 8,10,10, 7, 8, 8, 9, 9, |
9, 9,11,11, 7, 8, 8, 9, 9, 9, 9,11,11, 7, 8, 8, |
10, 9,11,11,12,11, 7, 8, 8, 9, 9,11,11,12,12, 9, |
10,10,11,11,12,12,13,12, 9,10,10,11,11,12,12,12, |
13, |
}; |
static const static_codebook _16u1__p5_0 = { |
2, 81, |
(char *)_vq_lengthlist__16u1__p5_0, |
1, -531628032, 1611661312, 4, 0, |
(long *)_vq_quantlist__16u1__p5_0, |
0 |
}; |
static const long _vq_quantlist__16u1__p6_0[] = { |
4, |
3, |
5, |
2, |
6, |
1, |
7, |
0, |
8, |
}; |
static const char _vq_lengthlist__16u1__p6_0[] = { |
3, 4, 4, 6, 6, 7, 7, 9, 9, 4, 4, 4, 6, 6, 8, 8, |
9, 9, 4, 4, 4, 6, 6, 7, 7, 9, 9, 6, 6, 6, 7, 7, |
8, 8,10, 9, 6, 6, 6, 7, 7, 8, 8, 9,10, 7, 8, 7, |
8, 8, 9, 9,10,10, 7, 8, 8, 8, 8, 9, 9,10,10, 9, |
9, 9,10,10,10,10,11,11, 9, 9, 9,10,10,10,10,11, |
11, |
}; |
static const static_codebook _16u1__p6_0 = { |
2, 81, |
(char *)_vq_lengthlist__16u1__p6_0, |
1, -531628032, 1611661312, 4, 0, |
(long *)_vq_quantlist__16u1__p6_0, |
0 |
}; |
static const long _vq_quantlist__16u1__p7_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__16u1__p7_0[] = { |
1, 4, 4, 4, 8, 8, 4, 8, 8, 5,11, 9, 8,12,11, 8, |
12,11, 5,10,11, 8,11,12, 8,11,12, 4,11,11,11,14, |
13,10,13,13, 8,14,13,12,14,16,12,16,15, 8,14,14, |
13,16,14,12,15,16, 4,11,11,10,14,13,11,14,14, 8, |
15,14,12,15,15,12,14,16, 8,14,14,11,16,15,12,15, |
13, |
}; |
static const static_codebook _16u1__p7_0 = { |
4, 81, |
(char *)_vq_lengthlist__16u1__p7_0, |
1, -529137664, 1618345984, 2, 0, |
(long *)_vq_quantlist__16u1__p7_0, |
0 |
}; |
static const long _vq_quantlist__16u1__p7_1[] = { |
5, |
4, |
6, |
3, |
7, |
2, |
8, |
1, |
9, |
0, |
10, |
}; |
static const char _vq_lengthlist__16u1__p7_1[] = { |
2, 4, 4, 6, 6, 7, 7, 8, 8, 8, 8, 4, 6, 5, 7, 7, |
8, 8, 8, 8, 8, 8, 4, 5, 6, 7, 7, 8, 8, 8, 8, 8, |
8, 6, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 6, 7, 7, 8, |
8, 8, 8, 9, 9, 9, 9, 7, 8, 8, 8, 8, 9, 9, 9,10, |
9,10, 7, 8, 8, 8, 8, 9, 9, 9, 9,10, 9, 8, 8, 8, |
9, 9,10,10,10,10,10,10, 8, 8, 8, 9, 9, 9, 9,10, |
10,10,10, 8, 8, 8, 9, 9, 9,10,10,10,10,10, 8, 8, |
8, 9, 9,10,10,10,10,10,10, |
}; |
static const static_codebook _16u1__p7_1 = { |
2, 121, |
(char *)_vq_lengthlist__16u1__p7_1, |
1, -531365888, 1611661312, 4, 0, |
(long *)_vq_quantlist__16u1__p7_1, |
0 |
}; |
static const long _vq_quantlist__16u1__p8_0[] = { |
5, |
4, |
6, |
3, |
7, |
2, |
8, |
1, |
9, |
0, |
10, |
}; |
static const char _vq_lengthlist__16u1__p8_0[] = { |
1, 4, 4, 5, 5, 8, 8,10,10,12,12, 4, 7, 7, 8, 8, |
9, 9,12,11,14,13, 4, 7, 7, 7, 8, 9,10,11,11,13, |
12, 5, 8, 8, 9, 9,11,11,12,13,15,14, 5, 7, 8, 9, |
9,11,11,13,13,17,15, 8, 9,10,11,11,12,13,17,14, |
17,16, 8,10, 9,11,11,12,12,13,15,15,17,10,11,11, |
12,13,14,15,15,16,16,17, 9,11,11,12,12,14,15,17, |
15,15,16,11,14,12,14,15,16,15,16,16,16,15,11,13, |
13,14,14,15,15,16,16,15,16, |
}; |
static const static_codebook _16u1__p8_0 = { |
2, 121, |
(char *)_vq_lengthlist__16u1__p8_0, |
1, -524582912, 1618345984, 4, 0, |
(long *)_vq_quantlist__16u1__p8_0, |
0 |
}; |
static const long _vq_quantlist__16u1__p8_1[] = { |
5, |
4, |
6, |
3, |
7, |
2, |
8, |
1, |
9, |
0, |
10, |
}; |
static const char _vq_lengthlist__16u1__p8_1[] = { |
2, 5, 5, 6, 6, 7, 7, 8, 8, 8, 8, 4, 6, 6, 7, 7, |
8, 7, 8, 8, 8, 8, 4, 6, 6, 7, 7, 7, 7, 8, 8, 8, |
8, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 9, 6, 7, 7, 7, |
7, 8, 8, 8, 8, 9, 9, 7, 7, 7, 8, 8, 8, 8, 9, 9, |
9, 9, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 8, 8, 8, |
8, 8, 9, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 9, 9, 9, |
9, 9, 9, 8, 8, 8, 9, 8, 9, 9, 9, 9, 9, 9, 8, 8, |
8, 9, 9, 9, 9, 9, 9, 9, 9, |
}; |
static const static_codebook _16u1__p8_1 = { |
2, 121, |
(char *)_vq_lengthlist__16u1__p8_1, |
1, -531365888, 1611661312, 4, 0, |
(long *)_vq_quantlist__16u1__p8_1, |
0 |
}; |
static const long _vq_quantlist__16u1__p9_0[] = { |
7, |
6, |
8, |
5, |
9, |
4, |
10, |
3, |
11, |
2, |
12, |
1, |
13, |
0, |
14, |
}; |
static const char _vq_lengthlist__16u1__p9_0[] = { |
1, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 8, 8, 8, 8, 8, 8, 8, 8, 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 const static_codebook _16u1__p9_0 = { |
2, 225, |
(char *)_vq_lengthlist__16u1__p9_0, |
1, -514071552, 1627381760, 4, 0, |
(long *)_vq_quantlist__16u1__p9_0, |
0 |
}; |
static const long _vq_quantlist__16u1__p9_1[] = { |
7, |
6, |
8, |
5, |
9, |
4, |
10, |
3, |
11, |
2, |
12, |
1, |
13, |
0, |
14, |
}; |
static const char _vq_lengthlist__16u1__p9_1[] = { |
1, 6, 5, 9, 9,10,10, 6, 7, 9, 9,10,10,10,10, 5, |
10, 8,10, 8,10,10, 8, 8,10, 9,10,10,10,10, 5, 8, |
9,10,10,10,10, 8,10,10,10,10,10,10,10, 9,10,10, |
10,10,10,10, 9, 9,10,10,10,10,10,10, 9, 9, 8, 9, |
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, 8,10,10,10,10, |
10,10,10,10,10,10,10,10,10, 6, 8, 8,10,10,10, 8, |
10,10,10,10,10,10,10,10, 5, 8, 8,10,10,10, 9, 9, |
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, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, |
}; |
static const static_codebook _16u1__p9_1 = { |
2, 225, |
(char *)_vq_lengthlist__16u1__p9_1, |
1, -522338304, 1620115456, 4, 0, |
(long *)_vq_quantlist__16u1__p9_1, |
0 |
}; |
static const long _vq_quantlist__16u1__p9_2[] = { |
8, |
7, |
9, |
6, |
10, |
5, |
11, |
4, |
12, |
3, |
13, |
2, |
14, |
1, |
15, |
0, |
16, |
}; |
static const char _vq_lengthlist__16u1__p9_2[] = { |
1, 6, 6, 7, 8, 8,11,10, 9, 9,11, 9,10, 9,11,11, |
9, 6, 7, 6,11, 8,11, 9,10,10,11, 9,11,10,10,10, |
11, 9, 5, 7, 7, 8, 8,10,11, 8, 8,11, 9, 9,10,11, |
9,10,11, 8, 9, 6, 8, 8, 9, 9,10,10,11,11,11, 9, |
11,10, 9,11, 8, 8, 8, 9, 8, 9,10,11, 9, 9,11,11, |
10, 9, 9,11,10, 8,11, 8, 9, 8,11, 9,10, 9,10,11, |
11,10,10, 9,10,10, 8, 8, 9,10,10,10, 9,11, 9,10, |
11,11,11,11,10, 9,11, 9, 9,11,11,10, 8,11,11,11, |
9,10,10,11,10,11,11, 9,11,10, 9,11,10,10,10,10, |
9,11,10,11,10, 9, 9,10,11, 9, 8,10,11,11,10,10, |
11, 9,11,10,11,11,10,11, 9, 9, 8,10, 8, 9,11, 9, |
8,10,10, 9,11,10,11,10,11, 9,11, 8,10,11,11,11, |
11,10,10,11,11,11,11,10,11,11,10, 9, 8,10,10, 9, |
11,10,11,11,11, 9, 9, 9,11,11,11,10,10, 9, 9,10, |
9,11,11,11,11, 8,10,11,10,11,11,10,11,11, 9, 9, |
9,10, 9,11, 9,11,11,11,11,11,10,11,11,10,11,10, |
11,11, 9,11,10,11,10, 9,10, 9,10,10,11,11,11,11, |
9,10, 9,10,11,11,10,11,11,11,11,11,11,10,11,11, |
10, |
}; |
static const static_codebook _16u1__p9_2 = { |
2, 289, |
(char *)_vq_lengthlist__16u1__p9_2, |
1, -529530880, 1611661312, 5, 0, |
(long *)_vq_quantlist__16u1__p9_2, |
0 |
}; |
static const char _huff_lengthlist__16u1__short[] = { |
5, 7,10, 9,11,10,15,11,13,16, 6, 4, 6, 6, 7, 7, |
10, 9,12,16,10, 6, 5, 6, 6, 7,10,11,16,16, 9, 6, |
7, 6, 7, 7,10, 8,14,16,11, 6, 5, 4, 5, 6, 8, 9, |
15,16, 9, 6, 6, 5, 6, 6, 9, 8,14,16,12, 7, 6, 6, |
5, 6, 6, 7,13,16, 8, 6, 7, 6, 5, 5, 4, 4,11,16, |
9, 8, 9, 9, 7, 7, 6, 5,13,16,14,14,16,15,16,15, |
16,16,16,16, |
}; |
static const static_codebook _huff_book__16u1__short = { |
2, 100, |
(char *)_huff_lengthlist__16u1__short, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist__16u2__long[] = { |
5, 8,10,10,10,11,11,12,14,18, 7, 5, 5, 6, 8, 9, |
10,12,14,17, 9, 5, 4, 5, 6, 8,10,11,13,19, 9, 5, |
4, 4, 5, 6, 9,10,12,17, 8, 6, 5, 4, 4, 5, 7,10, |
11,15, 8, 7, 7, 6, 5, 5, 6, 9,11,14, 8, 9, 8, 7, |
6, 5, 6, 7,11,14, 9,11,11, 9, 7, 6, 6, 6, 9,14, |
11,14,15,13, 9, 8, 7, 7, 9,14,13,15,19,17,12,11, |
10, 9,10,14, |
}; |
static const static_codebook _huff_book__16u2__long = { |
2, 100, |
(char *)_huff_lengthlist__16u2__long, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const long _vq_quantlist__16u2_p1_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__16u2_p1_0[] = { |
1, 5, 5, 5, 7, 7, 5, 7, 7, 5, 7, 7, 7, 9, 9, 7, |
9, 9, 5, 7, 7, 7, 9, 9, 8, 9, 9, 5, 7, 7, 8, 9, |
9, 7, 9, 9, 7, 9, 9, 9,10,11, 9,10,10, 7, 9, 9, |
9,10, 9, 9,10,11, 5, 8, 7, 7, 9, 9, 8, 9, 9, 7, |
9, 9, 9,11,10, 9, 9,10, 7, 9, 9, 9,10,10, 9,11, |
10, |
}; |
static const static_codebook _16u2_p1_0 = { |
4, 81, |
(char *)_vq_lengthlist__16u2_p1_0, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__16u2_p1_0, |
0 |
}; |
static const long _vq_quantlist__16u2_p2_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__16u2_p2_0[] = { |
3, 5, 5, 8, 8, 5, 7, 7, 9, 9, 5, 7, 7, 9, 9, 9, |
10, 9,11,11, 9, 9, 9,11,11, 5, 7, 7, 9, 9, 7, 8, |
8,10,10, 7, 8, 8,10,10,10,10,10,12,12, 9,10,10, |
11,12, 5, 7, 7, 9, 9, 7, 8, 8,10,10, 7, 8, 8,10, |
10, 9,10,10,12,11,10,10,10,12,12, 9,10,10,12,12, |
10,10,10,12,12, 9,10,10,12,12,12,12,12,14,14,11, |
12,12,13,14, 9,10,10,12,12, 9,10,10,12,12,10,10, |
10,12,12,11,12,12,14,13,12,12,12,14,13, 5, 7, 7, |
9, 9, 7, 8, 8,10,10, 7, 8, 8,10,10,10,10,10,12, |
12,10,10,10,12,12, 7, 8, 8,11,10, 8, 9, 9,11,11, |
8, 9, 9,11,11,10,11,11,12,13,10,11,11,12,13, 7, |
8, 8,10,10, 8, 9, 8,11,10, 8, 9, 9,11,11,10,11, |
10,13,12,10,11,11,13,13,10,11,10,13,12,10,11,11, |
13,13,10,11,11,13,13,12,12,13,13,14,12,13,13,14, |
14, 9,10,10,12,12,10,11,10,13,12,10,11,11,13,13, |
12,13,12,14,13,12,13,13,14,15, 5, 7, 7, 9,10, 7, |
8, 8,10,10, 7, 8, 8,10,10,10,10,10,12,12,10,10, |
11,12,12, 7, 8, 8,10,10, 8, 9, 9,11,11, 8, 8, 9, |
10,11,10,11,11,13,13,10,10,11,12,13, 7, 8, 8,10, |
10, 8, 9, 9,11,11, 8, 9, 9,11,11,10,11,11,13,12, |
10,11,11,13,12, 9,10,10,12,12,10,11,11,13,13,10, |
10,11,12,13,12,13,13,15,14,12,12,13,12,14, 9,10, |
11,12,13,10,11,11,13,13,10,11,11,13,13,12,13,13, |
14,14,12,13,12,14,13, 8,10,10,12,12, 9,11,10,13, |
12, 9,10,10,12,13,12,13,13,14,14,12,12,12,14,14, |
9,10,10,13,13,10,11,11,13,13,10,11,11,13,13,13, |
13,13,14,15,12,13,13,14,15, 9,10,10,12,13,10,11, |
10,13,13,10,11,11,12,13,12,13,12,15,14,12,13,13, |
14,15,11,12,12,15,14,12,12,13,14,15,12,13,13,15, |
14,13,13,15,14,16,14,14,14,16,15,11,12,12,14,14, |
11,12,12,14,14,12,13,13,14,15,13,14,13,15,13,14, |
14,14,15,16, 8, 9,10,12,12, 9,10,10,13,12, 9,10, |
11,12,13,12,12,12,14,14,12,13,13,14,14, 9,10,10, |
13,12,10,11,11,13,13,10,10,11,13,13,12,13,13,15, |
14,12,12,13,14,15, 9,10,10,13,13,10,11,11,13,13, |
10,11,11,13,13,12,13,13,14,14,13,13,13,15,15,11, |
12,12,14,13,12,13,13,15,14,11,12,12,14,14,14,14, |
14,16,15,13,13,14,13,16,11,12,12,14,14,12,13,13, |
14,15,12,13,12,14,14,14,14,14,16,16,14,15,13,16, |
14, |
}; |
static const static_codebook _16u2_p2_0 = { |
4, 625, |
(char *)_vq_lengthlist__16u2_p2_0, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__16u2_p2_0, |
0 |
}; |
static const long _vq_quantlist__16u2_p3_0[] = { |
4, |
3, |
5, |
2, |
6, |
1, |
7, |
0, |
8, |
}; |
static const char _vq_lengthlist__16u2_p3_0[] = { |
2, 4, 4, 6, 6, 7, 7, 9, 9, 4, 5, 5, 6, 6, 8, 7, |
9, 9, 4, 5, 5, 6, 6, 7, 8, 9, 9, 6, 6, 6, 7, 7, |
8, 8,10,10, 6, 6, 6, 7, 7, 8, 8,10,10, 7, 8, 7, |
8, 8, 9, 9,11,10, 7, 7, 8, 8, 8, 9, 9,10,11, 9, |
9, 9,10,10,11,10,11,11, 9, 9, 9,10,10,10,11,11, |
11, |
}; |
static const static_codebook _16u2_p3_0 = { |
2, 81, |
(char *)_vq_lengthlist__16u2_p3_0, |
1, -531628032, 1611661312, 4, 0, |
(long *)_vq_quantlist__16u2_p3_0, |
0 |
}; |
static const long _vq_quantlist__16u2_p4_0[] = { |
8, |
7, |
9, |
6, |
10, |
5, |
11, |
4, |
12, |
3, |
13, |
2, |
14, |
1, |
15, |
0, |
16, |
}; |
static const char _vq_lengthlist__16u2_p4_0[] = { |
2, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9,10,10,11,11,11, |
11, 5, 5, 5, 7, 6, 8, 7, 9, 9, 9, 9,10,10,11,11, |
12,12, 5, 5, 5, 6, 6, 7, 8, 8, 9, 9, 9,10,10,11, |
11,12,12, 6, 7, 6, 7, 7, 8, 8, 9, 9, 9, 9,10,10, |
11,11,12,12, 6, 6, 7, 7, 7, 8, 8, 9, 9, 9, 9,10, |
10,11,11,12,12, 7, 8, 8, 8, 8, 9, 9, 9, 9,10,10, |
11,11,11,11,12,12, 7, 7, 8, 8, 8, 9, 9, 9, 9,10, |
10,11,11,11,11,12,12, 8, 9, 9, 9, 9, 9, 9,10,10, |
10,10,11,11,12,12,12,12, 8, 9, 9, 9, 9, 9, 9,10, |
10,10,10,11,11,12,12,12,12, 9, 9, 9, 9, 9,10,10, |
10,10,10,11,11,11,12,12,13,13, 9, 9, 9, 9, 9,10, |
10,10,10,11,10,11,11,12,12,13,13,10,10,10,10,10, |
11,11,11,11,11,11,11,12,12,12,13,13,10,10,10,10, |
10,11,11,11,11,11,11,12,11,12,12,13,13,11,11,11, |
11,11,11,11,12,12,12,12,12,12,13,13,13,13,11,11, |
11,11,11,11,11,12,12,12,12,13,12,13,13,13,13,11, |
12,12,12,12,12,12,12,12,13,13,13,13,13,13,14,14, |
11,12,12,12,12,12,12,12,13,13,13,13,13,13,13,14, |
14, |
}; |
static const static_codebook _16u2_p4_0 = { |
2, 289, |
(char *)_vq_lengthlist__16u2_p4_0, |
1, -529530880, 1611661312, 5, 0, |
(long *)_vq_quantlist__16u2_p4_0, |
0 |
}; |
static const long _vq_quantlist__16u2_p5_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__16u2_p5_0[] = { |
1, 4, 4, 5, 7, 7, 5, 7, 7, 5, 8, 8, 7, 9, 9, 7, |
9,10, 5, 8, 8, 7,10, 9, 7,10, 9, 5, 8, 8, 8,11, |
10, 8,10,10, 7,10,10, 9, 9,12,10,12,12, 7,10,10, |
9,12,10,10,11,12, 5, 8, 8, 8,10,10, 8,11,11, 7, |
11,10,10,12,11, 9,10,12, 7,10,11,10,12,12, 9,12, |
9, |
}; |
static const static_codebook _16u2_p5_0 = { |
4, 81, |
(char *)_vq_lengthlist__16u2_p5_0, |
1, -529137664, 1618345984, 2, 0, |
(long *)_vq_quantlist__16u2_p5_0, |
0 |
}; |
static const long _vq_quantlist__16u2_p5_1[] = { |
5, |
4, |
6, |
3, |
7, |
2, |
8, |
1, |
9, |
0, |
10, |
}; |
static const char _vq_lengthlist__16u2_p5_1[] = { |
2, 5, 5, 6, 6, 7, 7, 8, 8, 8, 8, 5, 6, 6, 7, 7, |
7, 7, 8, 8, 8, 8, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8, |
8, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 6, 7, 7, 7, |
7, 8, 8, 8, 8, 8, 8, 7, 7, 7, 8, 8, 8, 8, 8, 8, |
8, 8, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, |
8, 8, 8, 8, 8, 8, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, |
8, 9, 9, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 8, 8, |
8, 8, 8, 8, 8, 9, 9, 9, 9, |
}; |
static const static_codebook _16u2_p5_1 = { |
2, 121, |
(char *)_vq_lengthlist__16u2_p5_1, |
1, -531365888, 1611661312, 4, 0, |
(long *)_vq_quantlist__16u2_p5_1, |
0 |
}; |
static const long _vq_quantlist__16u2_p6_0[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__16u2_p6_0[] = { |
1, 5, 4, 7, 7, 8, 8, 8, 8,10,10,11,11, 4, 6, 6, |
7, 7, 9, 9, 9, 9,10,10,11,11, 4, 6, 6, 7, 7, 9, |
9, 9, 9,10,10,11,11, 7, 8, 8, 9, 9, 9, 9,10,10, |
11,11,12,12, 7, 7, 7, 9, 8,10, 9,10,10,11,11,12, |
12, 8, 9, 9, 9,10,10,10,11,11,12,12,13,13, 8, 9, |
9,10, 9,10,10,11,11,12,12,13,13, 8, 9, 9,10,10, |
11,11,11,11,12,12,13,13, 8, 9, 9,10,10,11,11,12, |
11,12,12,13,13,10,10,10,11,11,12,12,12,12,13,13, |
14,14,10,10,10,11,11,12,12,12,12,13,13,14,14,11, |
11,11,12,12,13,13,13,13,14,14,14,14,11,11,11,12, |
12,13,13,13,13,14,14,14,14, |
}; |
static const static_codebook _16u2_p6_0 = { |
2, 169, |
(char *)_vq_lengthlist__16u2_p6_0, |
1, -526516224, 1616117760, 4, 0, |
(long *)_vq_quantlist__16u2_p6_0, |
0 |
}; |
static const long _vq_quantlist__16u2_p6_1[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__16u2_p6_1[] = { |
2, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, |
5, 5, 5, 5, 5, 5, 5, 5, 5, |
}; |
static const static_codebook _16u2_p6_1 = { |
2, 25, |
(char *)_vq_lengthlist__16u2_p6_1, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__16u2_p6_1, |
0 |
}; |
static const long _vq_quantlist__16u2_p7_0[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__16u2_p7_0[] = { |
1, 4, 4, 7, 7, 8, 8, 8, 8, 9, 9,10,10, 4, 6, 6, |
8, 8, 9, 9, 9, 9,10,10,11,10, 4, 6, 6, 8, 8, 9, |
9, 9, 9,10,10,11,11, 7, 8, 8,10, 9,10,10,10,10, |
11,11,12,12, 7, 8, 8,10,10,10,10,10,10,11,11,12, |
12, 8, 9, 9,10,10,11,11,11,11,12,12,13,13, 8, 9, |
9,10,10,11,11,11,11,12,12,13,13, 8, 9, 9,11,10, |
11,11,12,12,13,13,14,13, 8, 9, 9,10,10,11,11,12, |
12,13,13,13,13, 9,10,10,11,11,12,12,13,13,13,13, |
14,14, 9,10,10,11,11,12,12,13,13,13,13,14,14,10, |
11,11,12,12,13,13,14,13,14,14,15,14,10,11,11,12, |
12,13,13,14,13,14,14,15,14, |
}; |
static const static_codebook _16u2_p7_0 = { |
2, 169, |
(char *)_vq_lengthlist__16u2_p7_0, |
1, -523206656, 1618345984, 4, 0, |
(long *)_vq_quantlist__16u2_p7_0, |
0 |
}; |
static const long _vq_quantlist__16u2_p7_1[] = { |
5, |
4, |
6, |
3, |
7, |
2, |
8, |
1, |
9, |
0, |
10, |
}; |
static const char _vq_lengthlist__16u2_p7_1[] = { |
2, 5, 5, 7, 7, 7, 7, 7, 7, 8, 8, 5, 6, 6, 7, 7, |
7, 7, 8, 8, 8, 8, 5, 6, 6, 7, 7, 7, 7, 8, 8, 8, |
8, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 7, 7, 7, 7, |
7, 8, 8, 8, 8, 8, 8, 7, 7, 7, 8, 8, 8, 8, 8, 8, |
8, 8, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 7, 8, 8, |
8, 8, 8, 8, 8, 8, 8, 8, 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, 8, 8, 8, 8, 8, 8, 8, 8, |
}; |
static const static_codebook _16u2_p7_1 = { |
2, 121, |
(char *)_vq_lengthlist__16u2_p7_1, |
1, -531365888, 1611661312, 4, 0, |
(long *)_vq_quantlist__16u2_p7_1, |
0 |
}; |
static const long _vq_quantlist__16u2_p8_0[] = { |
7, |
6, |
8, |
5, |
9, |
4, |
10, |
3, |
11, |
2, |
12, |
1, |
13, |
0, |
14, |
}; |
static const char _vq_lengthlist__16u2_p8_0[] = { |
1, 4, 4, 7, 7, 8, 8, 7, 7, 9, 8,10, 9,11,11, 4, |
7, 6, 9, 8, 9, 9, 9, 9,10, 9,11, 9,12, 9, 4, 6, |
7, 8, 8, 9, 9, 9, 9,10,10,10,11,11,12, 7, 9, 8, |
10,10,11,11,10,10,11,11,12,12,13,12, 7, 8, 8,10, |
10,10,11,10,10,11,11,11,12,12,13, 8, 9, 9,11,11, |
11,11,11,11,12,12,13,13,13,13, 8, 9, 9,11,11,11, |
11,11,11,12,12,13,13,13,14, 8, 9, 9,10,10,11,11, |
12,11,13,13,14,13,14,14, 8, 9, 9,10,10,11,11,12, |
12,12,12,13,13,14,14, 9,10,10,11,11,12,12,13,12, |
13,13,14,14,15,15, 9,10,10,11,11,12,12,12,13,13, |
13,14,14,14,15,10,11,11,12,12,13,13,14,13,14,14, |
15,14,15,15,10,11,11,12,12,13,12,13,14,14,14,14, |
14,15,15,11,12,12,13,13,13,13,14,14,15,14,15,15, |
16,16,11,12,12,13,13,13,13,14,14,14,15,15,15,16, |
16, |
}; |
static const static_codebook _16u2_p8_0 = { |
2, 225, |
(char *)_vq_lengthlist__16u2_p8_0, |
1, -520986624, 1620377600, 4, 0, |
(long *)_vq_quantlist__16u2_p8_0, |
0 |
}; |
static const long _vq_quantlist__16u2_p8_1[] = { |
10, |
9, |
11, |
8, |
12, |
7, |
13, |
6, |
14, |
5, |
15, |
4, |
16, |
3, |
17, |
2, |
18, |
1, |
19, |
0, |
20, |
}; |
static const char _vq_lengthlist__16u2_p8_1[] = { |
3, 5, 5, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 5, 6, 6, 7, 7, 8, 8, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9,10,10,10,10, 5, 6, 6, 7, 7, 8, |
8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 7, |
7, 7, 8, 8, 9, 8, 9, 9, 9, 9, 9, 9,10,10,10,10, |
10,10,10,10, 7, 7, 7, 8, 8, 9, 9, 9, 9, 9, 9, 9, |
9,10, 9,10,10,10, 9,10, 9, 8, 8, 8, 9, 8, 9, 9, |
9, 9,10, 9,10,10,10,10,10,10,10,10,10,10, 8, 8, |
8, 8, 9, 9, 9, 9, 9, 9, 9,10,10,10,10,10,10,10, |
10,10,10, 8, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10,10, |
10,10,10,10,10,10,10,10, 8, 9, 9, 9, 9, 9, 9, 9, |
10,10,10,10,10,10,10,10,10,10,10,10,10, 9, 9, 9, |
9, 9, 9, 9,10,10,10,10,10,10,10,10,10,10,10,10, |
10,10, 9, 9, 9, 9, 9, 9, 9,10,10,10,10,10,10,10, |
10,10,10,10,10,10,10, 9, 9, 9, 9, 9,10,10,10,10, |
10,10,10,10,10,10,10,10,10,10,10,10, 9, 9, 9, 9, |
9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, |
10, 9, 9, 9,10,10,10,10,10,10,10,10,10,10,10,10, |
10,10,10,10,10,10, 9, 9, 9,10,10,10,10,10,10,10, |
10,10,10,10,10,10,10,10,10,10,10, 9, 9,10,10,10, |
10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, |
9,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, 9,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, 9,10,10,10,10,10,10,10,10,10,10,10, |
10,10,10,10,10,10,10,10,10, |
}; |
static const static_codebook _16u2_p8_1 = { |
2, 441, |
(char *)_vq_lengthlist__16u2_p8_1, |
1, -529268736, 1611661312, 5, 0, |
(long *)_vq_quantlist__16u2_p8_1, |
0 |
}; |
static const long _vq_quantlist__16u2_p9_0[] = { |
7, |
6, |
8, |
5, |
9, |
4, |
10, |
3, |
11, |
2, |
12, |
1, |
13, |
0, |
14, |
}; |
static const char _vq_lengthlist__16u2_p9_0[] = { |
1, 5, 3, 9, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 5, |
7, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 5, 7, |
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,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 const static_codebook _16u2_p9_0 = { |
2, 225, |
(char *)_vq_lengthlist__16u2_p9_0, |
1, -510036736, 1631393792, 4, 0, |
(long *)_vq_quantlist__16u2_p9_0, |
0 |
}; |
static const long _vq_quantlist__16u2_p9_1[] = { |
9, |
8, |
10, |
7, |
11, |
6, |
12, |
5, |
13, |
4, |
14, |
3, |
15, |
2, |
16, |
1, |
17, |
0, |
18, |
}; |
static const char _vq_lengthlist__16u2_p9_1[] = { |
1, 4, 4, 7, 7, 7, 7, 7, 6, 9, 7,10, 8,12,12,13, |
13,14,14, 4, 7, 7, 9, 9, 9, 8, 9, 8,10, 9,11, 9, |
14, 9,14,10,13,11, 4, 7, 7, 9, 9, 9, 9, 8, 9,10, |
10,11,11,12,13,12,13,14,15, 7, 9, 9,10,11,10,10, |
10,10,11,12,13,13,13,14,17,14,15,16, 7, 9, 9,10, |
10,10,10,10,10,11,12,13,13,14,14,15,15,18,18, 8, |
9, 9,11,10,11,11,11,12,13,12,14,14,16,15,15,17, |
18,15, 8, 9, 9,10,10,11,11,11,11,13,13,14,14,15, |
15,15,16,16,18, 7, 9, 8,10,10,11,11,12,12,14,14, |
15,15,16,16,15,17,16,18, 8, 9, 9,10,10,11,12,12, |
12,13,13,16,15,17,16,17,18,17,18, 9,10,10,12,11, |
13,13,14,13,14,14,15,17,16,18,17,18,17,18, 9,10, |
10,12,11,12,13,13,14,15,16,14,15,16,18,18,18,18, |
17,11,11,11,13,13,14,14,16,15,15,15,16,15,15,18, |
18,18,17,16,11,11,12,13,13,15,14,15,16,16,16,17, |
16,15,18,17,18,16,18,12,13,13,15,15,15,16,18,16, |
17,16,17,16,17,17,17,18,18,17,13,13,13,15,13,16, |
15,17,16,16,16,18,18,18,18,16,17,17,18,13,15,14, |
15,15,18,17,18,18,18,16,18,17,18,17,18,16,17,17, |
14,14,14,15,16,17,16,18,18,18,17,18,17,18,18,18, |
16,16,16,14,17,16,17,15,16,18,18,17,18,17,18,17, |
18,18,18,17,18,17,15,16,15,18,15,18,17,16,18,18, |
18,18,18,18,17,18,16,18,17, |
}; |
static const static_codebook _16u2_p9_1 = { |
2, 361, |
(char *)_vq_lengthlist__16u2_p9_1, |
1, -518287360, 1622704128, 5, 0, |
(long *)_vq_quantlist__16u2_p9_1, |
0 |
}; |
static const long _vq_quantlist__16u2_p9_2[] = { |
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 const char _vq_lengthlist__16u2_p9_2[] = { |
2, 3, 4, 4, 4, 5, 5, 6, 5, 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, 7, 8, 8, 8, 8, 8, |
8, |
}; |
static const static_codebook _16u2_p9_2 = { |
1, 49, |
(char *)_vq_lengthlist__16u2_p9_2, |
1, -526909440, 1611661312, 6, 0, |
(long *)_vq_quantlist__16u2_p9_2, |
0 |
}; |
static const char _huff_lengthlist__16u2__short[] = { |
8,11,13,13,15,16,19,19,19,19,11, 8, 8, 9, 9,11, |
13,15,19,20,14, 8, 7, 7, 8, 9,12,13,15,20,15, 9, |
6, 5, 5, 7,10,12,14,18,14, 9, 7, 5, 3, 4, 7,10, |
12,16,13,10, 8, 6, 3, 3, 5, 8,11,14,11,10, 9, 7, |
5, 4, 4, 6,11,14,10,10,10, 8, 6, 5, 5, 6,10,14, |
10,10,10, 9, 8, 7, 7, 7,10,14,11,12,12,12,11,10, |
10,10,12,16, |
}; |
static const static_codebook _huff_book__16u2__short = { |
2, 100, |
(char *)_huff_lengthlist__16u2__short, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const long _vq_quantlist__8u0__p1_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__8u0__p1_0[] = { |
1, 4, 4, 5, 7, 7, 5, 7, 7, 5, 8, 8, 8,10,10, 7, |
10,10, 5, 8, 8, 7,10,10, 8,10,10, 4, 9, 8, 8,11, |
11, 8,11,11, 7,11,11,10,11,13,10,13,13, 7,11,11, |
10,13,12,10,13,13, 5, 9, 8, 8,11,11, 8,11,11, 7, |
11,11, 9,13,13,10,12,13, 7,11,11,10,13,13,10,13, |
11, |
}; |
static const static_codebook _8u0__p1_0 = { |
4, 81, |
(char *)_vq_lengthlist__8u0__p1_0, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__8u0__p1_0, |
0 |
}; |
static const long _vq_quantlist__8u0__p2_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__8u0__p2_0[] = { |
2, 4, 4, 5, 6, 6, 5, 6, 6, 5, 7, 7, 6, 7, 8, 6, |
7, 8, 5, 7, 7, 6, 8, 8, 7, 9, 7, 5, 7, 7, 7, 9, |
9, 7, 8, 8, 6, 9, 8, 7, 7,10, 8,10,10, 6, 8, 8, |
8,10, 8, 8,10,10, 5, 7, 7, 7, 8, 8, 7, 8, 9, 6, |
8, 8, 8,10,10, 8, 8,10, 6, 8, 9, 8,10,10, 7,10, |
8, |
}; |
static const static_codebook _8u0__p2_0 = { |
4, 81, |
(char *)_vq_lengthlist__8u0__p2_0, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__8u0__p2_0, |
0 |
}; |
static const long _vq_quantlist__8u0__p3_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__8u0__p3_0[] = { |
1, 5, 5, 7, 7, 6, 7, 7, 9, 9, 6, 7, 7, 9, 9, 8, |
10, 9,11,11, 8, 9, 9,11,11, 6, 8, 8,10,10, 8,10, |
10,11,11, 8,10,10,11,11,10,11,11,12,12,10,11,11, |
12,13, 6, 8, 8,10,10, 8,10,10,11,11, 8,10,10,11, |
11, 9,10,11,12,12,10,11,11,12,12, 8,11,11,14,13, |
10,12,11,15,13,10,12,11,14,14,12,13,12,16,14,12, |
14,12,16,15, 8,11,11,13,14,10,11,12,13,15,10,11, |
12,13,15,11,12,13,14,15,12,12,14,14,16, 5, 8, 8, |
11,11, 9,11,11,12,12, 8,10,11,12,12,11,12,12,15, |
14,11,12,12,14,14, 7,11,10,13,12,10,11,12,13,14, |
10,12,12,14,13,12,13,13,14,15,12,13,13,15,15, 7, |
10,11,12,13,10,12,11,14,13,10,12,13,13,15,12,13, |
12,14,14,11,13,13,15,16, 9,12,12,15,14,11,13,13, |
15,16,11,13,13,16,16,13,14,15,15,15,12,14,15,17, |
16, 9,12,12,14,15,11,13,13,15,16,11,13,13,16,18, |
13,14,14,17,16,13,15,15,17,18, 5, 8, 9,11,11, 8, |
11,11,12,12, 8,10,11,12,12,11,12,12,14,14,11,12, |
12,14,15, 7,11,10,12,13,10,12,12,14,13,10,11,12, |
13,14,11,13,13,15,14,12,13,13,14,15, 7,10,11,13, |
13,10,12,12,13,14,10,12,12,13,13,11,13,13,16,16, |
12,13,13,15,14, 9,12,12,16,15,10,13,13,15,15,11, |
13,13,17,15,12,15,15,18,17,13,14,14,15,16, 9,12, |
12,15,15,11,13,13,15,16,11,13,13,15,15,12,15,15, |
16,16,13,15,14,17,15, 7,11,11,15,15,10,13,13,16, |
15,10,13,13,15,16,14,15,15,17,19,13,15,14,15,18, |
9,12,12,16,16,11,13,14,17,16,11,13,13,17,16,15, |
15,16,17,19,13,15,16, 0,18, 9,12,12,16,15,11,14, |
13,17,17,11,13,14,16,16,15,16,16,19,18,13,15,15, |
17,19,11,14,14,19,16,12,14,15, 0,18,12,16,15,18, |
17,15,15,18,16,19,14,15,17,19,19,11,14,14,18,19, |
13,15,14,19,19,12,16,15,18,17,15,17,15, 0,16,14, |
17,16,19, 0, 7,11,11,14,14,10,12,12,15,15,10,13, |
13,16,15,13,15,15,17, 0,14,15,15,16,19, 9,12,12, |
16,16,11,14,14,16,16,11,13,13,16,16,14,17,16,19, |
0,14,18,17,17,19, 9,12,12,15,16,11,13,13,15,17, |
12,14,13,19,16,13,15,15,17,19,15,17,16,17,19,11, |
14,14,19,16,12,15,15,19,17,13,14,15,17,19,14,16, |
17,19,19,16,15,16,17,19,11,15,14,16,16,12,15,15, |
19, 0,12,14,15,19,19,14,16,16, 0,18,15,19,14,18, |
16, |
}; |
static const static_codebook _8u0__p3_0 = { |
4, 625, |
(char *)_vq_lengthlist__8u0__p3_0, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__8u0__p3_0, |
0 |
}; |
static const long _vq_quantlist__8u0__p4_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__8u0__p4_0[] = { |
3, 5, 5, 8, 8, 5, 6, 7, 9, 9, 6, 7, 6, 9, 9, 9, |
9, 9,10,11, 9, 9, 9,11,10, 6, 7, 7,10,10, 7, 7, |
8,10,10, 7, 8, 8,10,10,10,10,10,10,11, 9,10,10, |
11,12, 6, 7, 7,10,10, 7, 8, 8,10,10, 7, 8, 7,10, |
10, 9,10,10,12,11,10,10,10,11,10, 9,10,10,12,11, |
10,10,10,13,11, 9,10,10,12,12,11,11,12,12,13,11, |
11,11,12,13, 9,10,10,12,12,10,10,11,12,12,10,10, |
11,12,12,11,11,11,13,13,11,12,12,13,13, 5, 7, 7, |
10,10, 7, 8, 8,10,10, 7, 8, 8,10,10,10,11,11,12, |
12,10,11,10,12,12, 7, 8, 8,11,11, 7, 8, 9,10,11, |
8, 9, 9,11,11,11,10,11,10,12,10,11,11,12,13, 7, |
8, 8,10,11, 8, 9, 8,12,10, 8, 9, 9,11,12,10,11, |
10,13,11,10,11,11,13,12, 9,11,10,13,12,10,10,11, |
12,12,10,11,11,13,13,12,10,13,11,14,11,12,12,15, |
13, 9,11,11,13,13,10,11,11,13,12,10,11,11,12,14, |
12,13,11,14,12,12,12,12,14,14, 5, 7, 7,10,10, 7, |
8, 8,10,10, 7, 8, 8,11,10,10,11,11,12,12,10,11, |
10,12,12, 7, 8, 8,10,11, 8, 9, 9,12,11, 8, 8, 9, |
10,11,10,11,11,12,13,11,10,11,11,13, 6, 8, 8,10, |
11, 8, 9, 9,11,11, 7, 9, 7,11,10,10,11,11,12,12, |
10,11,10,13,10, 9,11,10,13,12,10,12,11,13,13,10, |
10,11,12,13,11,12,13,15,14,11,11,13,12,13, 9,10, |
11,12,13,10,11,11,12,13,10,11,10,13,12,12,13,13, |
13,14,12,12,11,14,11, 8,10,10,12,13,10,11,11,13, |
13,10,11,10,13,13,12,13,14,15,14,12,12,12,14,13, |
9,10,10,13,12,10,10,12,13,13,10,11,11,15,12,12, |
12,13,15,14,12,13,13,15,13, 9,10,11,12,13,10,12, |
10,13,12,10,11,11,12,13,12,14,12,15,13,12,12,12, |
15,14,11,12,11,14,13,11,11,12,14,14,12,13,13,14, |
13,13,11,15,11,15,14,14,14,16,15,11,12,12,13,14, |
11,13,11,14,14,12,12,13,14,15,12,14,12,15,12,13, |
15,14,16,15, 8,10,10,12,12,10,10,10,12,13,10,11, |
11,13,13,12,12,12,13,14,13,13,13,15,15, 9,10,10, |
12,12,10,11,11,13,12,10,10,11,13,13,12,12,12,14, |
14,12,12,13,15,14, 9,10,10,13,12,10,10,12,12,13, |
10,11,10,13,13,12,13,13,14,14,12,13,12,14,13,11, |
12,12,14,13,12,13,12,14,14,10,12,12,14,14,14,14, |
14,16,14,13,12,14,12,15,10,12,12,14,15,12,13,13, |
14,16,11,12,11,15,14,13,14,14,14,15,13,14,11,14, |
12, |
}; |
static const static_codebook _8u0__p4_0 = { |
4, 625, |
(char *)_vq_lengthlist__8u0__p4_0, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__8u0__p4_0, |
0 |
}; |
static const long _vq_quantlist__8u0__p5_0[] = { |
4, |
3, |
5, |
2, |
6, |
1, |
7, |
0, |
8, |
}; |
static const char _vq_lengthlist__8u0__p5_0[] = { |
1, 4, 4, 7, 7, 7, 7, 9, 9, 4, 6, 6, 8, 7, 8, 8, |
10,10, 4, 6, 6, 8, 8, 8, 8,10,10, 6, 8, 8, 9, 9, |
9, 9,11,11, 7, 8, 8, 9, 9, 9, 9,11,11, 7, 8, 8, |
9, 9,10,10,12,11, 7, 8, 8, 9, 9,10,10,11,11, 9, |
10,10,11,11,11,12,12,12, 9,10,10,11,11,12,12,12, |
12, |
}; |
static const static_codebook _8u0__p5_0 = { |
2, 81, |
(char *)_vq_lengthlist__8u0__p5_0, |
1, -531628032, 1611661312, 4, 0, |
(long *)_vq_quantlist__8u0__p5_0, |
0 |
}; |
static const long _vq_quantlist__8u0__p6_0[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__8u0__p6_0[] = { |
1, 4, 4, 7, 7, 9, 9,11,11,12,12,16,16, 3, 6, 6, |
9, 9,11,11,12,12,13,14,18,16, 3, 6, 7, 9, 9,11, |
11,13,12,14,14,17,16, 7, 9, 9,11,11,12,12,14,14, |
14,14,17,16, 7, 9, 9,11,11,13,12,13,13,14,14,17, |
0, 9,11,11,12,13,14,14,14,13,15,14,17,17, 9,11, |
11,12,12,14,14,13,14,14,15, 0, 0,11,12,12,15,14, |
15,14,15,14,15,16,17, 0,11,12,13,13,13,14,14,15, |
14,15,15, 0, 0,12,14,14,15,15,14,16,15,15,17,16, |
0,18,13,14,14,15,14,15,14,15,16,17,16, 0, 0,17, |
17,18, 0,16,18,16, 0, 0, 0,17, 0, 0,16, 0, 0,16, |
16, 0,15, 0,17, 0, 0, 0, 0, |
}; |
static const static_codebook _8u0__p6_0 = { |
2, 169, |
(char *)_vq_lengthlist__8u0__p6_0, |
1, -526516224, 1616117760, 4, 0, |
(long *)_vq_quantlist__8u0__p6_0, |
0 |
}; |
static const long _vq_quantlist__8u0__p6_1[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__8u0__p6_1[] = { |
1, 4, 4, 6, 6, 4, 6, 5, 7, 7, 4, 5, 6, 7, 7, 6, |
7, 7, 7, 7, 6, 7, 7, 7, 7, |
}; |
static const static_codebook _8u0__p6_1 = { |
2, 25, |
(char *)_vq_lengthlist__8u0__p6_1, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__8u0__p6_1, |
0 |
}; |
static const long _vq_quantlist__8u0__p7_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__8u0__p7_0[] = { |
1, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, |
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, |
8, 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, |
}; |
static const static_codebook _8u0__p7_0 = { |
4, 81, |
(char *)_vq_lengthlist__8u0__p7_0, |
1, -518803456, 1628680192, 2, 0, |
(long *)_vq_quantlist__8u0__p7_0, |
0 |
}; |
static const long _vq_quantlist__8u0__p7_1[] = { |
7, |
6, |
8, |
5, |
9, |
4, |
10, |
3, |
11, |
2, |
12, |
1, |
13, |
0, |
14, |
}; |
static const char _vq_lengthlist__8u0__p7_1[] = { |
1, 5, 5, 5, 5,10,10,11,11,11,11,11,11,11,11, 5, |
7, 6, 8, 8, 9,10,11,11,11,11,11,11,11,11, 6, 6, |
7, 9, 7,11,10,11,11,11,11,11,11,11,11, 5, 6, 6, |
11, 8,11,11,11,11,11,11,11,11,11,11, 5, 6, 6, 9, |
10,11,10,11,11,11,11,11,11,11,11, 7,10,10,11,11, |
11,11,11,11,11,11,11,11,11,11, 7,11, 8,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,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,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,10,10,10,10,10, |
10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, |
10, |
}; |
static const static_codebook _8u0__p7_1 = { |
2, 225, |
(char *)_vq_lengthlist__8u0__p7_1, |
1, -520986624, 1620377600, 4, 0, |
(long *)_vq_quantlist__8u0__p7_1, |
0 |
}; |
static const long _vq_quantlist__8u0__p7_2[] = { |
10, |
9, |
11, |
8, |
12, |
7, |
13, |
6, |
14, |
5, |
15, |
4, |
16, |
3, |
17, |
2, |
18, |
1, |
19, |
0, |
20, |
}; |
static const char _vq_lengthlist__8u0__p7_2[] = { |
1, 6, 5, 7, 7, 9, 9, 9, 9,10,12,12,10,11,11,10, |
11,11,11,10,11, 6, 8, 8, 9, 9,10,10, 9,10,11,11, |
10,11,11,11,11,10,11,11,11,11, 6, 7, 8, 9, 9, 9, |
10,11,10,11,12,11,10,11,11,11,11,11,11,12,10, 8, |
9, 9,10, 9,10,10, 9,10,10,10,10,10, 9,10,10,10, |
10, 9,10,10, 9, 9, 9, 9,10,10, 9, 9,10,10,11,10, |
9,12,10,11,10, 9,10,10,10, 8, 9, 9,10, 9,10, 9, |
9,10,10, 9,10, 9,11,10,10,10,10,10, 9,10, 8, 8, |
9, 9,10, 9,11, 9, 8, 9, 9,10,11,10,10,10,11,12, |
9, 9,11, 8, 9, 8,11,10,11,10,10, 9,11,10,10,10, |
10,10,10,10,11,11,11,11, 8, 9, 9, 9,10,10,10,11, |
11,12,11,12,11,10,10,10,12,11,11,11,10, 8,10, 9, |
11,10,10,11,12,10,11,12,11,11,12,11,12,12,10,11, |
11,10, 9, 9,10,11,12,10,10,10,11,10,11,11,10,12, |
12,10,11,10,11,12,10, 9,10,10,11,10,11,11,11,11, |
11,12,11,11,11, 9,11,10,11,10,11,10, 9, 9,10,11, |
11,11,10,10,11,12,12,11,12,11,11,11,12,12,12,12, |
11, 9,11,11,12,10,11,11,11,11,11,11,12,11,11,12, |
11,11,11,10,11,11, 9,11,10,11,11,11,10,10,10,11, |
11,11,12,10,11,10,11,11,11,11,12, 9,11,10,11,11, |
10,10,11,11, 9,11,11,12,10,10,10,10,10,11,11,10, |
9,10,11,11,12,11,10,10,12,11,11,12,11,12,11,11, |
10,10,11,11,10,12,11,10,11,10,11,10,10,10,11,11, |
10,10,11,11,11,11,10,10,10,12,11,11,11,11,10, 9, |
10,11,11,11,12,11,11,11,12,10,11,11,11, 9,10,11, |
11,11,11,11,11,10,10,11,11,12,11,10,11,12,11,10, |
10,11, 9,10,11,11,11,11,11,10,11,11,10,12,11,11, |
11,12,11,11,11,10,10,11,11, |
}; |
static const static_codebook _8u0__p7_2 = { |
2, 441, |
(char *)_vq_lengthlist__8u0__p7_2, |
1, -529268736, 1611661312, 5, 0, |
(long *)_vq_quantlist__8u0__p7_2, |
0 |
}; |
static const char _huff_lengthlist__8u0__single[] = { |
4, 7,11, 9,12, 8, 7,10, 6, 4, 5, 5, 7, 5, 6,16, |
9, 5, 5, 6, 7, 7, 9,16, 7, 4, 6, 5, 7, 5, 7,17, |
10, 7, 7, 8, 7, 7, 8,18, 7, 5, 6, 4, 5, 4, 5,15, |
7, 6, 7, 5, 6, 4, 5,15,12,13,18,12,17,11, 9,17, |
}; |
static const static_codebook _huff_book__8u0__single = { |
2, 64, |
(char *)_huff_lengthlist__8u0__single, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const long _vq_quantlist__8u1__p1_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__8u1__p1_0[] = { |
1, 4, 4, 5, 7, 7, 5, 7, 7, 5, 8, 8, 7, 9,10, 7, |
9, 9, 5, 8, 8, 7,10, 9, 7, 9, 9, 5, 8, 8, 8,10, |
10, 8,10,10, 7,10,10, 9,10,12,10,12,12, 7,10,10, |
9,12,11,10,12,12, 5, 8, 8, 8,10,10, 8,10,10, 7, |
10,10,10,12,12, 9,11,12, 7,10,10,10,12,12, 9,12, |
10, |
}; |
static const static_codebook _8u1__p1_0 = { |
4, 81, |
(char *)_vq_lengthlist__8u1__p1_0, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__8u1__p1_0, |
0 |
}; |
static const long _vq_quantlist__8u1__p2_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__8u1__p2_0[] = { |
3, 4, 5, 5, 6, 6, 5, 6, 6, 5, 7, 6, 6, 7, 8, 6, |
7, 8, 5, 6, 6, 6, 8, 7, 6, 8, 7, 5, 6, 6, 7, 8, |
8, 6, 7, 7, 6, 8, 7, 7, 7, 9, 8, 9, 9, 6, 7, 8, |
7, 9, 7, 8, 9, 9, 5, 6, 6, 6, 7, 7, 7, 8, 8, 6, |
8, 7, 8, 9, 9, 7, 7, 9, 6, 7, 8, 8, 9, 9, 7, 9, |
7, |
}; |
static const static_codebook _8u1__p2_0 = { |
4, 81, |
(char *)_vq_lengthlist__8u1__p2_0, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__8u1__p2_0, |
0 |
}; |
static const long _vq_quantlist__8u1__p3_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__8u1__p3_0[] = { |
1, 5, 5, 7, 7, 6, 7, 7, 9, 9, 6, 7, 7, 9, 9, 8, |
10, 9,11,11, 9, 9, 9,11,11, 6, 8, 8,10,10, 8,10, |
10,11,11, 8, 9,10,11,11,10,11,11,12,12,10,11,11, |
12,13, 6, 8, 8,10,10, 8,10, 9,11,11, 8,10, 9,11, |
11,10,11,11,12,12,10,11,11,12,12, 9,11,11,14,13, |
10,12,11,14,14,10,12,11,14,13,12,13,13,15,14,12, |
13,13,15,14, 8,11,11,13,14,10,11,12,13,15,10,11, |
12,14,14,12,13,13,14,15,12,13,13,14,15, 5, 8, 8, |
11,11, 8,10,10,12,12, 8,10,10,12,12,11,12,12,14, |
13,11,12,12,13,14, 8,10,10,12,12, 9,11,12,13,14, |
10,12,12,13,13,12,12,13,14,14,11,13,13,15,15, 7, |
10,10,12,12, 9,12,11,14,12,10,11,12,13,14,12,13, |
12,14,14,12,13,13,15,16,10,12,12,15,14,11,12,13, |
15,15,11,13,13,15,16,14,14,15,15,16,13,14,15,17, |
15, 9,12,12,14,15,11,13,12,15,15,11,13,13,15,15, |
13,14,13,15,14,13,14,14,17, 0, 5, 8, 8,11,11, 8, |
10,10,12,12, 8,10,10,12,12,11,12,12,14,14,11,12, |
12,14,14, 7,10,10,12,12,10,12,12,13,13, 9,11,12, |
12,13,11,12,13,15,15,11,12,13,14,15, 8,10,10,12, |
12,10,12,11,13,13,10,12,11,13,13,11,13,13,15,14, |
12,13,12,15,13, 9,12,12,14,14,11,13,13,16,15,11, |
12,13,16,15,13,14,15,16,16,13,13,15,15,16,10,12, |
12,15,14,11,13,13,14,16,11,13,13,15,16,13,15,15, |
16,17,13,15,14,16,15, 8,11,11,14,15,10,12,12,15, |
15,10,12,12,15,16,14,15,15,16,17,13,14,14,16,16, |
9,12,12,15,15,11,13,14,15,17,11,13,13,15,16,14, |
15,16,19,17,13,15,15, 0,17, 9,12,12,15,15,11,14, |
13,16,15,11,13,13,15,16,15,15,15,18,17,13,15,15, |
17,17,11,15,14,18,16,12,14,15,17,17,12,15,15,18, |
18,15,15,16,15,19,14,16,16, 0, 0,11,14,14,16,17, |
12,15,14,18,17,12,15,15,18,18,15,17,15,18,16,14, |
16,16,18,18, 7,11,11,14,14,10,12,12,15,15,10,12, |
13,15,15,13,14,15,16,16,14,15,15,18,18, 9,12,12, |
15,15,11,13,13,16,15,11,12,13,16,16,14,15,15,17, |
16,15,16,16,17,17, 9,12,12,15,15,11,13,13,15,17, |
11,14,13,16,15,13,15,15,17,17,15,15,15,18,17,11, |
14,14,17,15,12,14,15,17,18,13,13,15,17,17,14,16, |
16,19,18,16,15,17,17, 0,11,14,14,17,17,12,15,15, |
18, 0,12,15,14,18,16,14,17,17,19, 0,16,18,15, 0, |
16, |
}; |
static const static_codebook _8u1__p3_0 = { |
4, 625, |
(char *)_vq_lengthlist__8u1__p3_0, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__8u1__p3_0, |
0 |
}; |
static const long _vq_quantlist__8u1__p4_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__8u1__p4_0[] = { |
4, 5, 5, 9, 9, 6, 7, 7, 9, 9, 6, 7, 7, 9, 9, 9, |
9, 9,11,11, 9, 9, 9,11,11, 6, 7, 7, 9, 9, 7, 7, |
8, 9,10, 7, 7, 8, 9,10, 9, 9,10,10,11, 9, 9,10, |
10,12, 6, 7, 7, 9, 9, 7, 8, 7,10, 9, 7, 8, 7,10, |
9, 9,10, 9,12,11,10,10, 9,12,10, 9,10,10,12,11, |
9,10,10,12,11, 9,10,10,12,12,11,11,12,12,13,11, |
11,12,12,13, 9, 9,10,12,11, 9,10,10,12,12,10,10, |
10,12,12,11,12,11,13,12,11,12,11,13,12, 6, 7, 7, |
9, 9, 7, 8, 8,10,10, 7, 8, 7,10, 9,10,10,10,12, |
12,10,10,10,12,11, 7, 8, 7,10,10, 7, 7, 9,10,11, |
8, 9, 9,11,10,10,10,11,10,12,10,10,11,12,12, 7, |
8, 8,10,10, 7, 9, 8,11,10, 8, 8, 9,11,11,10,11, |
10,12,11,10,11,11,12,12, 9,10,10,12,12, 9,10,10, |
12,12,10,11,11,13,12,11,10,12,10,14,12,12,12,13, |
14, 9,10,10,12,12, 9,11,10,12,12,10,11,11,12,12, |
11,12,11,14,12,12,12,12,14,14, 5, 7, 7, 9, 9, 7, |
7, 7, 9,10, 7, 8, 8,10,10,10,10,10,11,11,10,10, |
10,12,12, 7, 8, 8,10,10, 8, 9, 8,11,10, 7, 8, 9, |
10,11,10,10,10,11,12,10,10,11,11,13, 6, 7, 8,10, |
10, 8, 9, 9,10,10, 7, 9, 7,11,10,10,11,10,12,12, |
10,11,10,12,10, 9,10,10,12,12,10,11,11,13,12, 9, |
10,10,12,12,12,12,12,14,13,11,11,12,11,14, 9,10, |
10,11,12,10,11,11,12,13, 9,10,10,12,12,12,12,12, |
14,13,11,12,10,14,11, 9, 9,10,11,12, 9,10,10,12, |
12, 9,10,10,12,12,12,12,12,14,14,11,12,12,13,12, |
9,10, 9,12,12, 9,10,11,12,13,10,11,10,13,11,12, |
12,13,13,14,12,12,12,13,13, 9,10,10,12,12,10,11, |
10,13,12,10,10,11,12,13,12,13,12,14,13,12,12,12, |
13,14,11,12,11,14,13,10,10,11,13,13,12,12,12,14, |
13,12,10,14,10,15,13,14,14,14,14,11,11,12,13,14, |
10,12,11,13,13,12,12,12,13,15,12,13,11,15,12,13, |
13,14,14,14, 9,10, 9,12,12, 9,10,10,12,12,10,10, |
10,12,12,11,11,12,12,13,12,12,12,14,14, 9,10,10, |
12,12,10,11,10,13,12,10,10,11,12,13,12,12,12,14, |
13,12,12,13,13,14, 9,10,10,12,13,10,10,11,11,12, |
9,11,10,13,12,12,12,12,13,14,12,13,12,14,13,11, |
12,11,13,13,12,13,12,14,13,10,11,12,13,13,13,13, |
13,14,15,12,11,14,12,14,11,11,12,12,13,12,12,12, |
13,14,10,12,10,14,13,13,13,13,14,15,12,14,11,15, |
10, |
}; |
static const static_codebook _8u1__p4_0 = { |
4, 625, |
(char *)_vq_lengthlist__8u1__p4_0, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__8u1__p4_0, |
0 |
}; |
static const long _vq_quantlist__8u1__p5_0[] = { |
4, |
3, |
5, |
2, |
6, |
1, |
7, |
0, |
8, |
}; |
static const char _vq_lengthlist__8u1__p5_0[] = { |
1, 4, 4, 7, 7, 7, 7, 9, 9, 4, 6, 5, 8, 7, 8, 8, |
10,10, 4, 6, 6, 8, 8, 8, 8,10,10, 7, 8, 8, 9, 9, |
9, 9,11,11, 7, 8, 8, 9, 9, 9, 9,11,11, 8, 8, 8, |
9, 9,10,10,12,11, 8, 8, 8, 9, 9,10,10,11,11, 9, |
10,10,11,11,11,11,13,12, 9,10,10,11,11,12,12,12, |
13, |
}; |
static const static_codebook _8u1__p5_0 = { |
2, 81, |
(char *)_vq_lengthlist__8u1__p5_0, |
1, -531628032, 1611661312, 4, 0, |
(long *)_vq_quantlist__8u1__p5_0, |
0 |
}; |
static const long _vq_quantlist__8u1__p6_0[] = { |
4, |
3, |
5, |
2, |
6, |
1, |
7, |
0, |
8, |
}; |
static const char _vq_lengthlist__8u1__p6_0[] = { |
3, 4, 4, 6, 6, 7, 7, 9, 9, 4, 4, 5, 6, 6, 7, 7, |
9, 9, 4, 4, 4, 6, 6, 7, 7, 9, 9, 6, 6, 6, 7, 7, |
8, 8, 9, 9, 6, 6, 6, 7, 7, 8, 8, 9, 9, 7, 7, 7, |
8, 8, 8, 9,10,10, 7, 7, 7, 8, 8, 9, 8,10,10, 9, |
9, 9, 9, 9,10,10,10,10, 9, 9, 9, 9, 9,10,10,10, |
10, |
}; |
static const static_codebook _8u1__p6_0 = { |
2, 81, |
(char *)_vq_lengthlist__8u1__p6_0, |
1, -531628032, 1611661312, 4, 0, |
(long *)_vq_quantlist__8u1__p6_0, |
0 |
}; |
static const long _vq_quantlist__8u1__p7_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__8u1__p7_0[] = { |
1, 4, 4, 5, 7, 7, 5, 7, 7, 5, 9, 9, 8,10,10, 8, |
10,10, 5, 9, 9, 7,10,10, 8,10,10, 4,10,10, 9,12, |
12, 9,11,11, 7,12,11,10,11,13,10,13,13, 7,12,12, |
10,13,12,10,13,13, 4,10,10, 9,12,12, 9,12,12, 7, |
12,12,10,13,13,10,12,13, 7,11,12,10,13,13,10,13, |
11, |
}; |
static const static_codebook _8u1__p7_0 = { |
4, 81, |
(char *)_vq_lengthlist__8u1__p7_0, |
1, -529137664, 1618345984, 2, 0, |
(long *)_vq_quantlist__8u1__p7_0, |
0 |
}; |
static const long _vq_quantlist__8u1__p7_1[] = { |
5, |
4, |
6, |
3, |
7, |
2, |
8, |
1, |
9, |
0, |
10, |
}; |
static const char _vq_lengthlist__8u1__p7_1[] = { |
2, 4, 4, 6, 6, 7, 7, 8, 8, 8, 8, 4, 5, 5, 7, 7, |
8, 8, 9, 9, 9, 9, 4, 5, 5, 7, 7, 8, 8, 9, 9, 9, |
9, 6, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 6, 7, 7, 8, |
8, 8, 8, 9, 9, 9, 9, 8, 8, 8, 8, 8, 9, 9, 9, 9, |
9, 9, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 8, 9, 9, |
9, 9, 9, 9,10,10,10,10, 8, 9, 9, 9, 9, 9, 9,10, |
10,10,10, 8, 9, 9, 9, 9, 9, 9,10,10,10,10, 8, 9, |
9, 9, 9, 9, 9,10,10,10,10, |
}; |
static const static_codebook _8u1__p7_1 = { |
2, 121, |
(char *)_vq_lengthlist__8u1__p7_1, |
1, -531365888, 1611661312, 4, 0, |
(long *)_vq_quantlist__8u1__p7_1, |
0 |
}; |
static const long _vq_quantlist__8u1__p8_0[] = { |
5, |
4, |
6, |
3, |
7, |
2, |
8, |
1, |
9, |
0, |
10, |
}; |
static const char _vq_lengthlist__8u1__p8_0[] = { |
1, 4, 4, 6, 6, 8, 8,10,10,11,11, 4, 6, 6, 7, 7, |
9, 9,11,11,13,12, 4, 6, 6, 7, 7, 9, 9,11,11,12, |
12, 6, 7, 7, 9, 9,11,11,12,12,13,13, 6, 7, 7, 9, |
9,11,11,12,12,13,13, 8, 9, 9,11,11,12,12,13,13, |
14,14, 8, 9, 9,11,11,12,12,13,13,14,14, 9,11,11, |
12,12,13,13,14,14,15,15, 9,11,11,12,12,13,13,14, |
14,15,14,11,12,12,13,13,14,14,15,15,16,16,11,12, |
12,13,13,14,14,15,15,15,15, |
}; |
static const static_codebook _8u1__p8_0 = { |
2, 121, |
(char *)_vq_lengthlist__8u1__p8_0, |
1, -524582912, 1618345984, 4, 0, |
(long *)_vq_quantlist__8u1__p8_0, |
0 |
}; |
static const long _vq_quantlist__8u1__p8_1[] = { |
5, |
4, |
6, |
3, |
7, |
2, |
8, |
1, |
9, |
0, |
10, |
}; |
static const char _vq_lengthlist__8u1__p8_1[] = { |
2, 5, 5, 6, 6, 7, 7, 7, 7, 8, 8, 5, 6, 6, 7, 7, |
7, 7, 8, 8, 8, 8, 5, 6, 6, 7, 7, 7, 7, 8, 8, 8, |
8, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 6, 7, 7, 7, |
7, 8, 8, 8, 8, 8, 8, 7, 7, 7, 8, 8, 8, 8, 8, 8, |
8, 8, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, |
8, 8, 8, 8, 9, 8, 9, 9, 7, 8, 8, 8, 8, 8, 8, 9, |
8, 9, 9, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 8, 8, |
8, 8, 8, 8, 8, 9, 9, 9, 9, |
}; |
static const static_codebook _8u1__p8_1 = { |
2, 121, |
(char *)_vq_lengthlist__8u1__p8_1, |
1, -531365888, 1611661312, 4, 0, |
(long *)_vq_quantlist__8u1__p8_1, |
0 |
}; |
static const long _vq_quantlist__8u1__p9_0[] = { |
7, |
6, |
8, |
5, |
9, |
4, |
10, |
3, |
11, |
2, |
12, |
1, |
13, |
0, |
14, |
}; |
static const char _vq_lengthlist__8u1__p9_0[] = { |
1, 4, 4,11,11,11,11,11,11,11,11,11,11,11,11, 3, |
11, 8,11,11,11,11,11,11,11,11,11,11,11,11, 3, 9, |
9,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,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,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,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,11,11,11,11,11,11,11, |
11,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10, |
10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, |
10, |
}; |
static const static_codebook _8u1__p9_0 = { |
2, 225, |
(char *)_vq_lengthlist__8u1__p9_0, |
1, -514071552, 1627381760, 4, 0, |
(long *)_vq_quantlist__8u1__p9_0, |
0 |
}; |
static const long _vq_quantlist__8u1__p9_1[] = { |
7, |
6, |
8, |
5, |
9, |
4, |
10, |
3, |
11, |
2, |
12, |
1, |
13, |
0, |
14, |
}; |
static const char _vq_lengthlist__8u1__p9_1[] = { |
1, 4, 4, 7, 7, 9, 9, 7, 7, 8, 8,10,10,11,11, 4, |
7, 7, 9, 9,10,10, 8, 8,10,10,10,11,10,11, 4, 7, |
7, 9, 9,10,10, 8, 8,10, 9,11,11,11,11, 7, 9, 9, |
12,12,11,12,10,10,11,10,12,11,11,11, 7, 9, 9,11, |
11,13,12, 9, 9,11,10,11,11,12,11, 9,10,10,12,12, |
14,14,10,10,11,12,12,11,11,11, 9,10,11,11,13,14, |
13,10,11,11,11,12,11,12,12, 7, 8, 8,10, 9,11,10, |
11,12,12,11,12,14,12,13, 7, 8, 8, 9,10,10,11,12, |
12,12,11,12,12,12,13, 9, 9, 9,11,11,13,12,12,12, |
12,11,12,12,13,12, 8,10,10,11,10,11,12,12,12,12, |
12,12,14,12,12, 9,11,11,11,12,12,12,12,13,13,12, |
12,13,13,12,10,11,11,12,11,12,12,12,11,12,13,12, |
12,12,13,11,11,12,12,12,13,12,12,11,12,13,13,12, |
12,13,12,11,12,12,13,13,12,13,12,13,13,13,13,14, |
13, |
}; |
static const static_codebook _8u1__p9_1 = { |
2, 225, |
(char *)_vq_lengthlist__8u1__p9_1, |
1, -522338304, 1620115456, 4, 0, |
(long *)_vq_quantlist__8u1__p9_1, |
0 |
}; |
static const long _vq_quantlist__8u1__p9_2[] = { |
8, |
7, |
9, |
6, |
10, |
5, |
11, |
4, |
12, |
3, |
13, |
2, |
14, |
1, |
15, |
0, |
16, |
}; |
static const char _vq_lengthlist__8u1__p9_2[] = { |
2, 5, 4, 6, 6, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, |
9, 5, 6, 6, 7, 7, 8, 8, 9, 8, 9, 9, 9, 9, 9, 9, |
9, 9, 5, 6, 6, 7, 7, 8, 8, 8, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 7, 7, 7, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, |
9,10,10, 9, 7, 7, 7, 8, 8, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9,10,10, 8, 8, 8, 9, 9, 9, 9,10,10,10, 9, |
10,10,10,10,10,10, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, |
10,10,10,10,10,10,10, 9, 9, 9, 9, 9, 9, 9, 9,10, |
10,10,10,10,10,10,10,10, 9, 9, 9, 9, 9,10,10,10, |
10,10,10,10,10,10,10,10,10, 9, 9, 9, 9, 9, 9,10, |
10,10,10,10,10,10,10,10,10,10, 9, 9, 9, 9, 9,10, |
10,10,10,10,10,10,10,10,10,10,10, 9, 9, 9, 9,10, |
10,10,10,10,10,10,10,10,10,10,10,10, 9, 9, 9, 9, |
9,10,10,10,10,10,10,10,10,10,10,10,10, 9, 9, 9, |
10,10,10,10,10,10,10,10,10,10,10,10,10,10, 9,10, |
9, 9, 9,10,10,10,10,10,10,10,10,10,10,10,10, 9, |
10, 9,10,10,10,10,10,10,10,10,10,10,10,10,10,10, |
9, 9,10,10,10,10,10,10,10,10,10,10,10,10,10,10, |
10, |
}; |
static const static_codebook _8u1__p9_2 = { |
2, 289, |
(char *)_vq_lengthlist__8u1__p9_2, |
1, -529530880, 1611661312, 5, 0, |
(long *)_vq_quantlist__8u1__p9_2, |
0 |
}; |
static const char _huff_lengthlist__8u1__single[] = { |
4, 7,13, 9,15, 9,16, 8,10,13, 7, 5, 8, 6, 9, 7, |
10, 7,10,11,11, 6, 7, 8, 8, 9, 9, 9,12,16, 8, 5, |
8, 6, 8, 6, 9, 7,10,12,11, 7, 7, 7, 6, 7, 7, 7, |
11,15, 7, 5, 8, 6, 7, 5, 7, 6, 9,13,13, 9, 9, 8, |
6, 6, 5, 5, 9,14, 8, 6, 8, 6, 6, 4, 5, 3, 5,13, |
9, 9,11, 8,10, 7, 8, 4, 5,12,11,16,17,15,17,12, |
13, 8, 8,15, |
}; |
static const static_codebook _huff_book__8u1__single = { |
2, 100, |
(char *)_huff_lengthlist__8u1__single, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist__44u0__long[] = { |
5, 8,13,10,17,11,11,15, 7, 2, 4, 5, 8, 7, 9,16, |
13, 4, 3, 5, 6, 8,11,20,10, 4, 5, 5, 7, 6, 8,18, |
15, 7, 6, 7, 8,10,14,20,10, 6, 7, 6, 9, 7, 8,17, |
9, 8,10, 8,10, 5, 4,11,12,17,19,14,16,10, 7,12, |
}; |
static const static_codebook _huff_book__44u0__long = { |
2, 64, |
(char *)_huff_lengthlist__44u0__long, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const long _vq_quantlist__44u0__p1_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44u0__p1_0[] = { |
1, 4, 4, 5, 8, 7, 5, 7, 8, 5, 8, 8, 8,11,11, 8, |
10,10, 5, 8, 8, 8,11,10, 8,11,11, 4, 8, 8, 8,11, |
11, 8,11,11, 8,12,11,11,13,13,11,13,14, 7,11,11, |
10,13,12,11,13,14, 4, 8, 8, 8,11,11, 8,11,12, 8, |
11,11,11,13,13,10,12,13, 8,11,11,11,14,13,11,14, |
13, |
}; |
static const static_codebook _44u0__p1_0 = { |
4, 81, |
(char *)_vq_lengthlist__44u0__p1_0, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__44u0__p1_0, |
0 |
}; |
static const long _vq_quantlist__44u0__p2_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44u0__p2_0[] = { |
2, 4, 4, 5, 6, 6, 5, 6, 6, 5, 7, 7, 7, 8, 8, 6, |
8, 8, 5, 7, 7, 6, 8, 8, 7, 8, 8, 4, 7, 7, 7, 8, |
8, 7, 8, 8, 7, 8, 8, 8, 9,10, 8,10,10, 6, 8, 8, |
8,10, 8, 8,10,10, 5, 7, 7, 7, 8, 8, 7, 8, 8, 6, |
8, 8, 8,10,10, 8, 8,10, 6, 8, 8, 8,10,10, 8,10, |
9, |
}; |
static const static_codebook _44u0__p2_0 = { |
4, 81, |
(char *)_vq_lengthlist__44u0__p2_0, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__44u0__p2_0, |
0 |
}; |
static const long _vq_quantlist__44u0__p3_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44u0__p3_0[] = { |
1, 5, 5, 8, 8, 5, 8, 7, 9, 9, 5, 7, 8, 9, 9, 9, |
10, 9,12,12, 9, 9,10,12,12, 6, 8, 8,11,10, 8,10, |
10,11,11, 8, 9,10,11,11,10,11,11,14,13,10,11,11, |
13,13, 5, 8, 8,10,10, 8,10,10,11,11, 8,10,10,11, |
11,10,11,11,13,13,10,11,11,13,13, 9,11,11,15,14, |
10,12,12,15,14,10,12,11,15,14,13,14,14,16,16,12, |
14,13,17,15, 9,11,11,14,15,10,11,12,14,16,10,11, |
12,14,16,12,13,14,16,16,13,13,15,15,18, 5, 8, 8, |
11,11, 8,10,10,12,12, 8,10,10,12,13,11,12,12,14, |
14,11,12,12,15,15, 8,10,10,13,13,10,12,12,13,13, |
10,12,12,14,14,12,13,13,15,15,12,13,13,16,16, 7, |
10,10,12,12,10,12,11,13,13,10,12,12,13,14,12,13, |
12,15,14,12,13,13,16,16,10,12,12,17,16,12,13,13, |
16,15,11,13,13,17,17,15,15,15,16,17,14,15,15,19, |
19,10,12,12,15,16,11,13,12,15,18,11,13,13,16,16, |
14,15,15,17,17,14,15,15,17,19, 5, 8, 8,11,11, 8, |
10,10,12,12, 8,10,10,12,12,11,12,12,16,15,11,12, |
12,14,15, 7,10,10,13,13,10,12,12,14,13,10,11,12, |
13,13,12,13,13,16,16,12,12,13,15,15, 8,10,10,13, |
13,10,12,12,14,14,10,12,12,13,13,12,13,13,16,16, |
12,13,13,15,15,10,12,12,16,15,11,13,13,17,16,11, |
12,13,16,15,13,15,15,19,17,14,15,14,17,16,10,12, |
12,16,16,11,13,13,16,17,12,13,13,15,17,14,15,15, |
17,19,14,15,15,17,17, 8,11,11,16,16,10,13,12,17, |
17,10,12,13,16,16,15,17,16,20,19,14,15,17,18,19, |
9,12,12,16,17,11,13,14,17,18,11,13,13,19,18,16, |
17,18,19,19,15,16,16,19,19, 9,12,12,16,17,11,14, |
13,18,17,11,13,13,17,17,16,17,16,20,19,14,16,16, |
18,18,12,15,15,19,17,14,15,16, 0,20,13,15,16,20, |
17,18,16,20, 0, 0,15,16,19,20, 0,12,15,14,18,19, |
13,16,15,20,19,13,16,15,20,18,17,18,17, 0,20,16, |
17,16, 0, 0, 8,11,11,16,15,10,12,12,17,17,10,13, |
13,17,16,14,16,15,18,20,15,16,16,19,19, 9,12,12, |
16,16,11,13,13,17,16,11,13,14,17,18,15,15,16,20, |
20,16,16,17,19,19, 9,13,12,16,17,11,14,13,17,17, |
11,14,14,18,17,14,16,15,18,19,16,17,18,18,19,12, |
14,15,19,18,13,15,16,18, 0,13,14,15, 0, 0,16,16, |
17,20, 0,17,17,20,20, 0,12,15,15,19,20,13,15,15, |
0, 0,14,16,15, 0, 0,15,18,16, 0, 0,17,18,16, 0, |
19, |
}; |
static const static_codebook _44u0__p3_0 = { |
4, 625, |
(char *)_vq_lengthlist__44u0__p3_0, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44u0__p3_0, |
0 |
}; |
static const long _vq_quantlist__44u0__p4_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44u0__p4_0[] = { |
4, 5, 5, 9, 9, 5, 6, 6, 9, 9, 5, 6, 6, 9, 9, 9, |
10, 9,12,12, 9, 9,10,12,12, 5, 7, 7,10,10, 7, 7, |
8,10,10, 6, 7, 8,10,10,10,10,10,11,13,10, 9,10, |
12,13, 5, 7, 7,10,10, 6, 8, 7,10,10, 7, 8, 7,10, |
10, 9,10,10,12,12,10,10,10,13,11, 9,10,10,13,13, |
10,11,10,13,13,10,10,10,13,13,12,12,13,14,14,12, |
12,13,14,14, 9,10,10,13,13,10,10,10,13,13,10,10, |
10,13,13,12,13,12,15,14,12,13,12,15,15, 5, 7, 6, |
10,10, 7, 8, 8,10,10, 7, 8, 8,10,10,10,11,10,13, |
13,10,10,10,12,12, 7, 8, 8,11,10, 8, 8, 9,10,11, |
8, 9, 9,11,11,11,10,11,11,14,11,11,11,13,13, 6, |
8, 8,10,10, 7, 9, 8,11,10, 8, 9, 9,11,11,10,11, |
10,14,11,10,11,11,13,13,10,11,11,14,13,10,10,11, |
14,13,10,11,11,14,14,12,11,13,12,16,13,14,14,15, |
15,10,10,11,13,14,10,11,10,14,13,10,11,11,14,14, |
12,13,12,15,13,13,13,14,15,16, 5, 7, 7,10,10, 7, |
8, 8,10,10, 7, 8, 8,10,10,10,10,10,13,13,10,10, |
11,12,13, 6, 8, 8,11,10, 8, 9, 9,11,11, 7, 8, 9, |
10,11,10,11,11,13,13,10,10,11,11,13, 6, 8, 8,10, |
11, 8, 9, 9,11,11, 8, 9, 8,12,10,10,11,11,13,13, |
10,11,10,14,11,10,10,10,14,13,10,11,11,14,13,10, |
10,11,13,13,12,14,14,16,16,12,12,13,13,15,10,11, |
11,13,14,10,11,11,14,15,10,11,10,13,13,13,14,13, |
16,16,12,13,11,15,12, 9,10,10,13,13,10,11,11,14, |
13,10,10,11,13,14,13,14,13,16,16,13,13,13,15,16, |
9,10,10,13,13,10,10,11,13,14,10,11,11,15,13,13, |
13,14,14,18,13,13,14,16,15, 9,10,10,13,14,10,11, |
10,14,13,10,11,11,13,14,13,14,13,16,15,13,13,14, |
15,16,12,13,12,16,14,11,11,13,15,15,13,14,13,16, |
15,15,12,16,12,17,14,15,15,17,17,12,13,13,14,16, |
11,13,11,16,15,12,13,14,15,16,14,15,13, 0,14,14, |
16,16, 0, 0, 9,10,10,13,13,10,11,10,14,14,10,11, |
11,13,13,12,13,13,14,16,13,14,14,16,16, 9,10,10, |
14,14,11,11,11,14,13,10,10,11,14,14,13,13,13,16, |
16,13,13,14,14,17, 9,10,10,13,14,10,11,11,13,15, |
10,11,10,14,14,13,13,13,14,17,13,14,13,17,14,12, |
13,13,16,14,13,14,13,16,15,12,12,13,15,16,15,15, |
16,18,16,15,13,15,14, 0,12,12,13,14,16,13,13,14, |
15,16,11,12,11,16,14,15,16,16,17,17,14,15,12,17, |
12, |
}; |
static const static_codebook _44u0__p4_0 = { |
4, 625, |
(char *)_vq_lengthlist__44u0__p4_0, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44u0__p4_0, |
0 |
}; |
static const long _vq_quantlist__44u0__p5_0[] = { |
4, |
3, |
5, |
2, |
6, |
1, |
7, |
0, |
8, |
}; |
static const char _vq_lengthlist__44u0__p5_0[] = { |
1, 4, 4, 7, 7, 7, 7, 9, 9, 4, 6, 6, 8, 8, 8, 8, |
9, 9, 4, 6, 6, 8, 8, 8, 8, 9, 9, 7, 8, 8, 9, 9, |
9, 9,11,10, 7, 8, 8, 9, 9, 9, 9,10,10, 7, 8, 8, |
9, 9,10,10,11,11, 7, 8, 8, 9, 9,10,10,11,11, 9, |
9, 9,10,10,11,11,12,12, 9, 9, 9,10,11,11,11,12, |
12, |
}; |
static const static_codebook _44u0__p5_0 = { |
2, 81, |
(char *)_vq_lengthlist__44u0__p5_0, |
1, -531628032, 1611661312, 4, 0, |
(long *)_vq_quantlist__44u0__p5_0, |
0 |
}; |
static const long _vq_quantlist__44u0__p6_0[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44u0__p6_0[] = { |
1, 4, 4, 6, 6, 8, 8,10, 9,11,10,14,13, 4, 6, 5, |
8, 8, 9, 9,11,10,11,11,14,14, 4, 5, 6, 8, 8, 9, |
9,10,10,11,11,14,14, 6, 8, 8, 9, 9,10,10,11,11, |
12,12,16,15, 7, 8, 8, 9, 9,10,10,11,11,12,12,15, |
15, 9,10,10,10,10,11,11,12,12,12,12,15,15, 9,10, |
9,10,11,11,11,12,12,12,13,15,15,10,10,11,11,11, |
12,12,13,12,13,13,16,15,10,11,11,11,11,12,12,13, |
12,13,13,16,17,11,11,12,12,12,13,13,13,14,14,15, |
17,17,11,11,12,12,12,13,13,13,14,14,14,16,18,14, |
15,15,15,15,16,16,16,16,17,18, 0, 0,14,15,15,15, |
15,17,16,17,18,17,17,18, 0, |
}; |
static const static_codebook _44u0__p6_0 = { |
2, 169, |
(char *)_vq_lengthlist__44u0__p6_0, |
1, -526516224, 1616117760, 4, 0, |
(long *)_vq_quantlist__44u0__p6_0, |
0 |
}; |
static const long _vq_quantlist__44u0__p6_1[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44u0__p6_1[] = { |
2, 4, 4, 5, 5, 4, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, |
6, 6, 6, 6, 5, 6, 6, 6, 6, |
}; |
static const static_codebook _44u0__p6_1 = { |
2, 25, |
(char *)_vq_lengthlist__44u0__p6_1, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44u0__p6_1, |
0 |
}; |
static const long _vq_quantlist__44u0__p7_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44u0__p7_0[] = { |
1, 4, 4,11,11, 9,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,11,11,11,11, |
11,11, 9,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,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,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,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,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, |
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,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,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,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,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,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,11,11,11,11,11,11,11,11,11,11,11,11, |
11,11,11,11,11,11,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 const static_codebook _44u0__p7_0 = { |
4, 625, |
(char *)_vq_lengthlist__44u0__p7_0, |
1, -518709248, 1626677248, 3, 0, |
(long *)_vq_quantlist__44u0__p7_0, |
0 |
}; |
static const long _vq_quantlist__44u0__p7_1[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44u0__p7_1[] = { |
1, 4, 4, 6, 6, 6, 6, 7, 7, 8, 8, 9, 9, 5, 7, 7, |
8, 7, 7, 7, 9, 8,10, 9,10,11, 5, 7, 7, 8, 8, 7, |
7, 8, 9,10,10,11,11, 6, 8, 8, 9, 9, 9, 9,11,10, |
12,12,15,12, 6, 8, 8, 9, 9, 9, 9,11,11,12,11,14, |
12, 7, 8, 8,10,10,12,12,13,13,13,15,13,13, 7, 8, |
8,10,10,11,11,13,12,14,15,15,15, 9,10,10,11,12, |
13,13,14,15,14,15,14,15, 8,10,10,12,12,14,14,15, |
14,14,15,15,14,10,12,12,14,14,15,14,15,15,15,14, |
15,15,10,12,12,13,14,15,14,15,15,14,15,15,15,12, |
15,13,15,14,15,15,15,15,15,15,15,15,13,13,15,15, |
15,15,15,15,15,15,15,15,15, |
}; |
static const static_codebook _44u0__p7_1 = { |
2, 169, |
(char *)_vq_lengthlist__44u0__p7_1, |
1, -523010048, 1618608128, 4, 0, |
(long *)_vq_quantlist__44u0__p7_1, |
0 |
}; |
static const long _vq_quantlist__44u0__p7_2[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44u0__p7_2[] = { |
2, 5, 4, 6, 6, 7, 7, 8, 8, 8, 8, 9, 8, 5, 5, 6, |
7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 5, 6, 5, 7, 7, 8, |
8, 8, 8, 9, 9, 9, 9, 6, 7, 7, 8, 8, 8, 8, 9, 8, |
9, 9, 9, 9, 6, 7, 7, 8, 7, 8, 8, 9, 9, 9, 9, 9, |
9, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 7, 8, |
8, 9, 8, 9, 8, 9, 9, 9, 9, 9, 9, 8, 9, 8, 9, 9, |
9, 9, 9, 9, 9, 9,10,10, 8, 8, 9, 9, 9, 9, 9, 9, |
9, 9,10, 9,10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9,10,10,10, 9, 9, 9, 9, 9, |
9, 9, 9,10, 9, 9,10,10, 9, |
}; |
static const static_codebook _44u0__p7_2 = { |
2, 169, |
(char *)_vq_lengthlist__44u0__p7_2, |
1, -531103744, 1611661312, 4, 0, |
(long *)_vq_quantlist__44u0__p7_2, |
0 |
}; |
static const char _huff_lengthlist__44u0__short[] = { |
12,13,14,13,17,12,15,17, 5, 5, 6,10,10,11,15,16, |
4, 3, 3, 7, 5, 7,10,16, 7, 7, 7,10, 9,11,12,16, |
6, 5, 5, 9, 5, 6,10,16, 8, 7, 7, 9, 6, 7, 9,16, |
11, 7, 3, 6, 4, 5, 8,16,12, 9, 4, 8, 5, 7, 9,16, |
}; |
static const static_codebook _huff_book__44u0__short = { |
2, 64, |
(char *)_huff_lengthlist__44u0__short, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist__44u1__long[] = { |
5, 8,13,10,17,11,11,15, 7, 2, 4, 5, 8, 7, 9,16, |
13, 4, 3, 5, 6, 8,11,20,10, 4, 5, 5, 7, 6, 8,18, |
15, 7, 6, 7, 8,10,14,20,10, 6, 7, 6, 9, 7, 8,17, |
9, 8,10, 8,10, 5, 4,11,12,17,19,14,16,10, 7,12, |
}; |
static const static_codebook _huff_book__44u1__long = { |
2, 64, |
(char *)_huff_lengthlist__44u1__long, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const long _vq_quantlist__44u1__p1_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44u1__p1_0[] = { |
1, 4, 4, 5, 8, 7, 5, 7, 8, 5, 8, 8, 8,11,11, 8, |
10,10, 5, 8, 8, 8,11,10, 8,11,11, 4, 8, 8, 8,11, |
11, 8,11,11, 8,12,11,11,13,13,11,13,14, 7,11,11, |
10,13,12,11,13,14, 4, 8, 8, 8,11,11, 8,11,12, 8, |
11,11,11,13,13,10,12,13, 8,11,11,11,14,13,11,14, |
13, |
}; |
static const static_codebook _44u1__p1_0 = { |
4, 81, |
(char *)_vq_lengthlist__44u1__p1_0, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__44u1__p1_0, |
0 |
}; |
static const long _vq_quantlist__44u1__p2_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44u1__p2_0[] = { |
2, 4, 4, 5, 6, 6, 5, 6, 6, 5, 7, 7, 7, 8, 8, 6, |
8, 8, 5, 7, 7, 6, 8, 8, 7, 8, 8, 4, 7, 7, 7, 8, |
8, 7, 8, 8, 7, 8, 8, 8, 9,10, 8,10,10, 6, 8, 8, |
8,10, 8, 8,10,10, 5, 7, 7, 7, 8, 8, 7, 8, 8, 6, |
8, 8, 8,10,10, 8, 8,10, 6, 8, 8, 8,10,10, 8,10, |
9, |
}; |
static const static_codebook _44u1__p2_0 = { |
4, 81, |
(char *)_vq_lengthlist__44u1__p2_0, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__44u1__p2_0, |
0 |
}; |
static const long _vq_quantlist__44u1__p3_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44u1__p3_0[] = { |
1, 5, 5, 8, 8, 5, 8, 7, 9, 9, 5, 7, 8, 9, 9, 9, |
10, 9,12,12, 9, 9,10,12,12, 6, 8, 8,11,10, 8,10, |
10,11,11, 8, 9,10,11,11,10,11,11,14,13,10,11,11, |
13,13, 5, 8, 8,10,10, 8,10,10,11,11, 8,10,10,11, |
11,10,11,11,13,13,10,11,11,13,13, 9,11,11,15,14, |
10,12,12,15,14,10,12,11,15,14,13,14,14,16,16,12, |
14,13,17,15, 9,11,11,14,15,10,11,12,14,16,10,11, |
12,14,16,12,13,14,16,16,13,13,15,15,18, 5, 8, 8, |
11,11, 8,10,10,12,12, 8,10,10,12,13,11,12,12,14, |
14,11,12,12,15,15, 8,10,10,13,13,10,12,12,13,13, |
10,12,12,14,14,12,13,13,15,15,12,13,13,16,16, 7, |
10,10,12,12,10,12,11,13,13,10,12,12,13,14,12,13, |
12,15,14,12,13,13,16,16,10,12,12,17,16,12,13,13, |
16,15,11,13,13,17,17,15,15,15,16,17,14,15,15,19, |
19,10,12,12,15,16,11,13,12,15,18,11,13,13,16,16, |
14,15,15,17,17,14,15,15,17,19, 5, 8, 8,11,11, 8, |
10,10,12,12, 8,10,10,12,12,11,12,12,16,15,11,12, |
12,14,15, 7,10,10,13,13,10,12,12,14,13,10,11,12, |
13,13,12,13,13,16,16,12,12,13,15,15, 8,10,10,13, |
13,10,12,12,14,14,10,12,12,13,13,12,13,13,16,16, |
12,13,13,15,15,10,12,12,16,15,11,13,13,17,16,11, |
12,13,16,15,13,15,15,19,17,14,15,14,17,16,10,12, |
12,16,16,11,13,13,16,17,12,13,13,15,17,14,15,15, |
17,19,14,15,15,17,17, 8,11,11,16,16,10,13,12,17, |
17,10,12,13,16,16,15,17,16,20,19,14,15,17,18,19, |
9,12,12,16,17,11,13,14,17,18,11,13,13,19,18,16, |
17,18,19,19,15,16,16,19,19, 9,12,12,16,17,11,14, |
13,18,17,11,13,13,17,17,16,17,16,20,19,14,16,16, |
18,18,12,15,15,19,17,14,15,16, 0,20,13,15,16,20, |
17,18,16,20, 0, 0,15,16,19,20, 0,12,15,14,18,19, |
13,16,15,20,19,13,16,15,20,18,17,18,17, 0,20,16, |
17,16, 0, 0, 8,11,11,16,15,10,12,12,17,17,10,13, |
13,17,16,14,16,15,18,20,15,16,16,19,19, 9,12,12, |
16,16,11,13,13,17,16,11,13,14,17,18,15,15,16,20, |
20,16,16,17,19,19, 9,13,12,16,17,11,14,13,17,17, |
11,14,14,18,17,14,16,15,18,19,16,17,18,18,19,12, |
14,15,19,18,13,15,16,18, 0,13,14,15, 0, 0,16,16, |
17,20, 0,17,17,20,20, 0,12,15,15,19,20,13,15,15, |
0, 0,14,16,15, 0, 0,15,18,16, 0, 0,17,18,16, 0, |
19, |
}; |
static const static_codebook _44u1__p3_0 = { |
4, 625, |
(char *)_vq_lengthlist__44u1__p3_0, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44u1__p3_0, |
0 |
}; |
static const long _vq_quantlist__44u1__p4_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44u1__p4_0[] = { |
4, 5, 5, 9, 9, 5, 6, 6, 9, 9, 5, 6, 6, 9, 9, 9, |
10, 9,12,12, 9, 9,10,12,12, 5, 7, 7,10,10, 7, 7, |
8,10,10, 6, 7, 8,10,10,10,10,10,11,13,10, 9,10, |
12,13, 5, 7, 7,10,10, 6, 8, 7,10,10, 7, 8, 7,10, |
10, 9,10,10,12,12,10,10,10,13,11, 9,10,10,13,13, |
10,11,10,13,13,10,10,10,13,13,12,12,13,14,14,12, |
12,13,14,14, 9,10,10,13,13,10,10,10,13,13,10,10, |
10,13,13,12,13,12,15,14,12,13,12,15,15, 5, 7, 6, |
10,10, 7, 8, 8,10,10, 7, 8, 8,10,10,10,11,10,13, |
13,10,10,10,12,12, 7, 8, 8,11,10, 8, 8, 9,10,11, |
8, 9, 9,11,11,11,10,11,11,14,11,11,11,13,13, 6, |
8, 8,10,10, 7, 9, 8,11,10, 8, 9, 9,11,11,10,11, |
10,14,11,10,11,11,13,13,10,11,11,14,13,10,10,11, |
14,13,10,11,11,14,14,12,11,13,12,16,13,14,14,15, |
15,10,10,11,13,14,10,11,10,14,13,10,11,11,14,14, |
12,13,12,15,13,13,13,14,15,16, 5, 7, 7,10,10, 7, |
8, 8,10,10, 7, 8, 8,10,10,10,10,10,13,13,10,10, |
11,12,13, 6, 8, 8,11,10, 8, 9, 9,11,11, 7, 8, 9, |
10,11,10,11,11,13,13,10,10,11,11,13, 6, 8, 8,10, |
11, 8, 9, 9,11,11, 8, 9, 8,12,10,10,11,11,13,13, |
10,11,10,14,11,10,10,10,14,13,10,11,11,14,13,10, |
10,11,13,13,12,14,14,16,16,12,12,13,13,15,10,11, |
11,13,14,10,11,11,14,15,10,11,10,13,13,13,14,13, |
16,16,12,13,11,15,12, 9,10,10,13,13,10,11,11,14, |
13,10,10,11,13,14,13,14,13,16,16,13,13,13,15,16, |
9,10,10,13,13,10,10,11,13,14,10,11,11,15,13,13, |
13,14,14,18,13,13,14,16,15, 9,10,10,13,14,10,11, |
10,14,13,10,11,11,13,14,13,14,13,16,15,13,13,14, |
15,16,12,13,12,16,14,11,11,13,15,15,13,14,13,16, |
15,15,12,16,12,17,14,15,15,17,17,12,13,13,14,16, |
11,13,11,16,15,12,13,14,15,16,14,15,13, 0,14,14, |
16,16, 0, 0, 9,10,10,13,13,10,11,10,14,14,10,11, |
11,13,13,12,13,13,14,16,13,14,14,16,16, 9,10,10, |
14,14,11,11,11,14,13,10,10,11,14,14,13,13,13,16, |
16,13,13,14,14,17, 9,10,10,13,14,10,11,11,13,15, |
10,11,10,14,14,13,13,13,14,17,13,14,13,17,14,12, |
13,13,16,14,13,14,13,16,15,12,12,13,15,16,15,15, |
16,18,16,15,13,15,14, 0,12,12,13,14,16,13,13,14, |
15,16,11,12,11,16,14,15,16,16,17,17,14,15,12,17, |
12, |
}; |
static const static_codebook _44u1__p4_0 = { |
4, 625, |
(char *)_vq_lengthlist__44u1__p4_0, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44u1__p4_0, |
0 |
}; |
static const long _vq_quantlist__44u1__p5_0[] = { |
4, |
3, |
5, |
2, |
6, |
1, |
7, |
0, |
8, |
}; |
static const char _vq_lengthlist__44u1__p5_0[] = { |
1, 4, 4, 7, 7, 7, 7, 9, 9, 4, 6, 6, 8, 8, 8, 8, |
9, 9, 4, 6, 6, 8, 8, 8, 8, 9, 9, 7, 8, 8, 9, 9, |
9, 9,11,10, 7, 8, 8, 9, 9, 9, 9,10,10, 7, 8, 8, |
9, 9,10,10,11,11, 7, 8, 8, 9, 9,10,10,11,11, 9, |
9, 9,10,10,11,11,12,12, 9, 9, 9,10,11,11,11,12, |
12, |
}; |
static const static_codebook _44u1__p5_0 = { |
2, 81, |
(char *)_vq_lengthlist__44u1__p5_0, |
1, -531628032, 1611661312, 4, 0, |
(long *)_vq_quantlist__44u1__p5_0, |
0 |
}; |
static const long _vq_quantlist__44u1__p6_0[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44u1__p6_0[] = { |
1, 4, 4, 6, 6, 8, 8,10, 9,11,10,14,13, 4, 6, 5, |
8, 8, 9, 9,11,10,11,11,14,14, 4, 5, 6, 8, 8, 9, |
9,10,10,11,11,14,14, 6, 8, 8, 9, 9,10,10,11,11, |
12,12,16,15, 7, 8, 8, 9, 9,10,10,11,11,12,12,15, |
15, 9,10,10,10,10,11,11,12,12,12,12,15,15, 9,10, |
9,10,11,11,11,12,12,12,13,15,15,10,10,11,11,11, |
12,12,13,12,13,13,16,15,10,11,11,11,11,12,12,13, |
12,13,13,16,17,11,11,12,12,12,13,13,13,14,14,15, |
17,17,11,11,12,12,12,13,13,13,14,14,14,16,18,14, |
15,15,15,15,16,16,16,16,17,18, 0, 0,14,15,15,15, |
15,17,16,17,18,17,17,18, 0, |
}; |
static const static_codebook _44u1__p6_0 = { |
2, 169, |
(char *)_vq_lengthlist__44u1__p6_0, |
1, -526516224, 1616117760, 4, 0, |
(long *)_vq_quantlist__44u1__p6_0, |
0 |
}; |
static const long _vq_quantlist__44u1__p6_1[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44u1__p6_1[] = { |
2, 4, 4, 5, 5, 4, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, |
6, 6, 6, 6, 5, 6, 6, 6, 6, |
}; |
static const static_codebook _44u1__p6_1 = { |
2, 25, |
(char *)_vq_lengthlist__44u1__p6_1, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44u1__p6_1, |
0 |
}; |
static const long _vq_quantlist__44u1__p7_0[] = { |
3, |
2, |
4, |
1, |
5, |
0, |
6, |
}; |
static const char _vq_lengthlist__44u1__p7_0[] = { |
1, 3, 2, 9, 9, 7, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, |
8, |
}; |
static const static_codebook _44u1__p7_0 = { |
2, 49, |
(char *)_vq_lengthlist__44u1__p7_0, |
1, -518017024, 1626677248, 3, 0, |
(long *)_vq_quantlist__44u1__p7_0, |
0 |
}; |
static const long _vq_quantlist__44u1__p7_1[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44u1__p7_1[] = { |
1, 4, 4, 6, 6, 6, 6, 7, 7, 8, 8, 9, 9, 5, 7, 7, |
8, 7, 7, 7, 9, 8,10, 9,10,11, 5, 7, 7, 8, 8, 7, |
7, 8, 9,10,10,11,11, 6, 8, 8, 9, 9, 9, 9,11,10, |
12,12,15,12, 6, 8, 8, 9, 9, 9, 9,11,11,12,11,14, |
12, 7, 8, 8,10,10,12,12,13,13,13,15,13,13, 7, 8, |
8,10,10,11,11,13,12,14,15,15,15, 9,10,10,11,12, |
13,13,14,15,14,15,14,15, 8,10,10,12,12,14,14,15, |
14,14,15,15,14,10,12,12,14,14,15,14,15,15,15,14, |
15,15,10,12,12,13,14,15,14,15,15,14,15,15,15,12, |
15,13,15,14,15,15,15,15,15,15,15,15,13,13,15,15, |
15,15,15,15,15,15,15,15,15, |
}; |
static const static_codebook _44u1__p7_1 = { |
2, 169, |
(char *)_vq_lengthlist__44u1__p7_1, |
1, -523010048, 1618608128, 4, 0, |
(long *)_vq_quantlist__44u1__p7_1, |
0 |
}; |
static const long _vq_quantlist__44u1__p7_2[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44u1__p7_2[] = { |
2, 5, 4, 6, 6, 7, 7, 8, 8, 8, 8, 9, 8, 5, 5, 6, |
7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 5, 6, 5, 7, 7, 8, |
8, 8, 8, 9, 9, 9, 9, 6, 7, 7, 8, 8, 8, 8, 9, 8, |
9, 9, 9, 9, 6, 7, 7, 8, 7, 8, 8, 9, 9, 9, 9, 9, |
9, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 7, 8, |
8, 9, 8, 9, 8, 9, 9, 9, 9, 9, 9, 8, 9, 8, 9, 9, |
9, 9, 9, 9, 9, 9,10,10, 8, 8, 9, 9, 9, 9, 9, 9, |
9, 9,10, 9,10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9,10,10,10, 9, 9, 9, 9, 9, |
9, 9, 9,10, 9, 9,10,10, 9, |
}; |
static const static_codebook _44u1__p7_2 = { |
2, 169, |
(char *)_vq_lengthlist__44u1__p7_2, |
1, -531103744, 1611661312, 4, 0, |
(long *)_vq_quantlist__44u1__p7_2, |
0 |
}; |
static const char _huff_lengthlist__44u1__short[] = { |
12,13,14,13,17,12,15,17, 5, 5, 6,10,10,11,15,16, |
4, 3, 3, 7, 5, 7,10,16, 7, 7, 7,10, 9,11,12,16, |
6, 5, 5, 9, 5, 6,10,16, 8, 7, 7, 9, 6, 7, 9,16, |
11, 7, 3, 6, 4, 5, 8,16,12, 9, 4, 8, 5, 7, 9,16, |
}; |
static const static_codebook _huff_book__44u1__short = { |
2, 64, |
(char *)_huff_lengthlist__44u1__short, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist__44u2__long[] = { |
5, 9,14,12,15,13,10,13, 7, 4, 5, 6, 8, 7, 8,12, |
13, 4, 3, 5, 5, 6, 9,15,12, 6, 5, 6, 6, 6, 7,14, |
14, 7, 4, 6, 4, 6, 8,15,12, 6, 6, 5, 5, 5, 6,14, |
9, 7, 8, 6, 7, 5, 4,10,10,13,14,14,15,10, 6, 8, |
}; |
static const static_codebook _huff_book__44u2__long = { |
2, 64, |
(char *)_huff_lengthlist__44u2__long, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const long _vq_quantlist__44u2__p1_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44u2__p1_0[] = { |
1, 4, 4, 5, 8, 7, 5, 7, 8, 5, 8, 8, 8,11,11, 8, |
10,11, 5, 8, 8, 8,11,10, 8,11,11, 4, 8, 8, 8,11, |
11, 8,11,11, 8,11,11,11,13,14,11,13,13, 7,11,11, |
10,13,12,11,14,14, 4, 8, 8, 8,11,11, 8,11,11, 8, |
11,11,11,14,13,10,12,13, 8,11,11,11,13,13,11,13, |
13, |
}; |
static const static_codebook _44u2__p1_0 = { |
4, 81, |
(char *)_vq_lengthlist__44u2__p1_0, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__44u2__p1_0, |
0 |
}; |
static const long _vq_quantlist__44u2__p2_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44u2__p2_0[] = { |
2, 5, 5, 5, 6, 6, 5, 6, 6, 5, 6, 6, 7, 8, 8, 6, |
8, 8, 5, 6, 6, 6, 8, 7, 7, 8, 8, 5, 6, 6, 7, 8, |
8, 6, 8, 8, 6, 8, 8, 8, 9,10, 8,10,10, 6, 8, 8, |
7,10, 8, 8,10,10, 5, 6, 6, 6, 8, 8, 7, 8, 8, 6, |
8, 8, 8,10,10, 8, 8,10, 6, 8, 8, 8,10,10, 8,10, |
9, |
}; |
static const static_codebook _44u2__p2_0 = { |
4, 81, |
(char *)_vq_lengthlist__44u2__p2_0, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__44u2__p2_0, |
0 |
}; |
static const long _vq_quantlist__44u2__p3_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44u2__p3_0[] = { |
2, 4, 4, 7, 8, 5, 7, 7, 9, 9, 5, 7, 7, 9, 9, 8, |
9, 9,12,11, 8, 9, 9,11,12, 5, 7, 7,10,10, 7, 9, |
9,11,11, 7, 9, 9,10,11,10,11,11,13,13, 9,10,11, |
12,13, 5, 7, 7,10,10, 7, 9, 9,11,10, 7, 9, 9,11, |
11, 9,11,10,13,13,10,11,11,13,13, 8,10,10,14,13, |
10,11,11,15,14, 9,11,11,15,14,13,14,13,16,14,12, |
13,13,15,16, 8,10,10,13,14, 9,11,11,14,15,10,11, |
11,14,15,12,13,13,15,15,12,13,14,15,16, 5, 7, 7, |
10,10, 7, 9, 9,11,11, 7, 9, 9,11,12,10,11,11,14, |
13,10,11,11,14,14, 7, 9, 9,12,12, 9,11,11,13,13, |
9,11,11,13,13,12,13,12,14,14,11,12,13,15,15, 7, |
9, 9,12,12, 8,11,10,13,12, 9,11,11,13,13,11,13, |
12,15,13,11,13,13,15,16, 9,12,11,15,15,11,12,12, |
16,15,11,12,13,16,16,13,14,15,16,15,13,15,15,17, |
17, 9,11,11,14,15,10,12,12,15,15,11,13,12,15,16, |
13,15,14,16,16,13,15,15,17,19, 5, 7, 7,10,10, 7, |
9, 9,12,11, 7, 9, 9,11,11,10,11,11,14,14,10,11, |
11,13,14, 7, 9, 9,12,12, 9,11,11,13,13, 9,10,11, |
12,13,11,13,12,16,15,11,12,12,14,15, 7, 9, 9,12, |
12, 9,11,11,13,13, 9,11,11,13,12,11,13,12,15,16, |
12,13,13,15,14, 9,11,11,15,14,11,13,12,16,15,10, |
11,12,15,15,13,14,14,18,17,13,14,14,15,17,10,11, |
11,14,15,11,13,12,15,17,11,13,12,15,16,13,15,14, |
18,17,14,15,15,16,18, 7,10,10,14,14,10,12,12,15, |
15,10,12,12,15,15,14,15,15,18,17,13,15,15,16,16, |
9,11,11,16,15,11,13,13,16,18,11,13,13,16,16,15, |
16,16, 0, 0,14,15,16,18,17, 9,11,11,15,15,10,13, |
12,17,16,11,12,13,16,17,14,15,16,19,19,14,15,15, |
0,20,12,14,14, 0, 0,13,14,16,19,18,13,15,16,20, |
17,16,18, 0, 0, 0,15,16,17,18,19,11,14,14, 0,19, |
12,15,14,17,17,13,15,15, 0, 0,16,17,15,20,19,15, |
17,16,19, 0, 8,10,10,14,15,10,12,11,15,15,10,11, |
12,16,15,13,14,14,19,17,14,15,15, 0, 0, 9,11,11, |
16,15,11,13,13,17,16,10,12,13,16,17,14,15,15,18, |
18,14,15,16,20,19, 9,12,12, 0,15,11,13,13,16,17, |
11,13,13,19,17,14,16,16,18,17,15,16,16,17,19,11, |
14,14,18,18,13,14,15, 0, 0,12,14,15,19,18,15,16, |
19, 0,19,15,16,19,19,17,12,14,14,16,19,13,15,15, |
0,17,13,15,14,18,18,15,16,15, 0,18,16,17,17, 0, |
0, |
}; |
static const static_codebook _44u2__p3_0 = { |
4, 625, |
(char *)_vq_lengthlist__44u2__p3_0, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44u2__p3_0, |
0 |
}; |
static const long _vq_quantlist__44u2__p4_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44u2__p4_0[] = { |
4, 5, 5, 8, 8, 5, 7, 6, 9, 9, 5, 6, 7, 9, 9, 9, |
9, 9,11,11, 9, 9, 9,11,11, 5, 7, 7, 9, 9, 7, 8, |
8,10,10, 7, 7, 8,10,10,10,10,10,11,12, 9,10,10, |
11,12, 5, 7, 7, 9, 9, 6, 8, 7,10,10, 7, 8, 8,10, |
10, 9,10,10,12,11, 9,10,10,12,11, 9,10,10,12,12, |
10,10,10,13,12, 9,10,10,12,13,12,12,12,14,14,11, |
12,12,13,14, 9,10,10,12,12, 9,10,10,12,13,10,10, |
10,12,13,11,12,12,14,13,12,12,12,14,13, 5, 7, 7, |
10, 9, 7, 8, 8,10,10, 7, 8, 8,10,10,10,10,10,12, |
12,10,10,10,12,12, 7, 8, 8,11,10, 8, 8, 9,11,11, |
8, 9, 9,11,11,10,11,11,12,13,10,11,11,13,13, 6, |
8, 8,10,10, 7, 9, 8,11,10, 8, 9, 9,11,11,10,11, |
10,13,11,10,11,11,13,13, 9,10,10,13,13,10,11,11, |
13,13,10,11,11,14,13,12,11,13,12,15,12,13,13,15, |
15, 9,10,10,12,13,10,11,10,13,13,10,11,11,13,13, |
12,13,11,15,13,12,13,13,15,15, 5, 7, 7, 9,10, 7, |
8, 8,10,10, 7, 8, 8,10,10,10,10,10,12,12,10,10, |
11,12,12, 6, 8, 8,10,10, 8, 9, 9,11,11, 7, 8, 9, |
10,11,10,11,11,13,13,10,10,11,11,13, 7, 8, 8,10, |
11, 8, 9, 9,11,11, 8, 9, 8,11,11,10,11,11,13,13, |
10,11,11,13,12, 9,10,10,13,12,10,11,11,14,13,10, |
10,11,13,13,12,13,13,15,15,12,11,13,12,14, 9,10, |
10,12,13,10,11,11,13,14,10,11,11,13,13,12,13,13, |
15,15,12,13,12,15,12, 8, 9, 9,12,12, 9,11,10,13, |
13, 9,10,10,13,13,12,13,13,15,15,12,12,12,14,14, |
9,10,10,13,13,10,11,11,13,14,10,11,11,14,12,13, |
13,14,14,16,12,13,13,15,14, 9,10,10,13,13,10,11, |
10,14,13,10,11,11,13,14,12,14,13,16,14,13,13,13, |
14,15,11,13,12,15,14,11,12,13,14,15,12,13,13,16, |
15,14,12,15,12,16,14,15,15,17,16,11,12,12,14,15, |
11,13,11,15,14,12,13,13,15,16,13,15,12,17,13,14, |
15,15,16,16, 8, 9, 9,12,12, 9,10,10,13,13, 9,10, |
10,13,13,12,13,12,14,14,12,13,13,15,15, 9,10,10, |
13,13,10,11,11,14,13,10,10,11,13,14,12,13,13,15, |
14,12,12,14,14,16, 9,10,10,13,13,10,11,11,13,14, |
10,11,11,14,13,13,13,13,15,15,13,14,13,16,14,11, |
12,12,14,14,12,13,13,16,15,11,12,13,14,15,14,15, |
15,16,16,14,13,15,13,17,11,12,12,14,15,12,13,13, |
15,16,11,13,12,15,15,14,15,14,16,16,14,15,12,17, |
13, |
}; |
static const static_codebook _44u2__p4_0 = { |
4, 625, |
(char *)_vq_lengthlist__44u2__p4_0, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44u2__p4_0, |
0 |
}; |
static const long _vq_quantlist__44u2__p5_0[] = { |
4, |
3, |
5, |
2, |
6, |
1, |
7, |
0, |
8, |
}; |
static const char _vq_lengthlist__44u2__p5_0[] = { |
1, 4, 4, 7, 7, 8, 8, 9, 9, 4, 6, 5, 8, 8, 8, 8, |
10,10, 4, 5, 6, 8, 8, 8, 8,10,10, 7, 8, 8, 9, 9, |
9, 9,11,11, 7, 8, 8, 9, 9, 9, 9,11,11, 8, 8, 8, |
9, 9,10,11,12,12, 8, 8, 8, 9, 9,10,10,12,12,10, |
10,10,11,11,12,12,13,13,10,10,10,11,11,12,12,13, |
13, |
}; |
static const static_codebook _44u2__p5_0 = { |
2, 81, |
(char *)_vq_lengthlist__44u2__p5_0, |
1, -531628032, 1611661312, 4, 0, |
(long *)_vq_quantlist__44u2__p5_0, |
0 |
}; |
static const long _vq_quantlist__44u2__p6_0[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44u2__p6_0[] = { |
1, 4, 4, 6, 6, 8, 8,10,10,11,11,14,13, 4, 6, 5, |
8, 8, 9, 9,11,10,12,11,15,14, 4, 5, 6, 8, 8, 9, |
9,11,11,11,11,14,14, 6, 8, 8,10, 9,11,11,11,11, |
12,12,15,15, 6, 8, 8, 9, 9,11,11,11,12,12,12,15, |
15, 8,10,10,11,11,11,11,12,12,13,13,15,16, 8,10, |
10,11,11,11,11,12,12,13,13,16,16,10,11,11,12,12, |
12,12,13,13,13,13,17,16,10,11,11,12,12,12,12,13, |
13,13,14,16,17,11,12,12,13,13,13,13,14,14,15,14, |
18,17,11,12,12,13,13,13,13,14,14,14,15,19,18,14, |
15,15,15,15,16,16,18,19,18,18, 0, 0,14,15,15,16, |
15,17,17,16,18,17,18, 0, 0, |
}; |
static const static_codebook _44u2__p6_0 = { |
2, 169, |
(char *)_vq_lengthlist__44u2__p6_0, |
1, -526516224, 1616117760, 4, 0, |
(long *)_vq_quantlist__44u2__p6_0, |
0 |
}; |
static const long _vq_quantlist__44u2__p6_1[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44u2__p6_1[] = { |
2, 4, 4, 5, 5, 4, 5, 5, 6, 5, 4, 5, 5, 5, 6, 5, |
6, 5, 6, 6, 5, 5, 6, 6, 6, |
}; |
static const static_codebook _44u2__p6_1 = { |
2, 25, |
(char *)_vq_lengthlist__44u2__p6_1, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44u2__p6_1, |
0 |
}; |
static const long _vq_quantlist__44u2__p7_0[] = { |
4, |
3, |
5, |
2, |
6, |
1, |
7, |
0, |
8, |
}; |
static const char _vq_lengthlist__44u2__p7_0[] = { |
1, 3, 2,12,12,12,12,12,12, 4,12,12,12,12,12,12, |
12,12, 5,12,12,12,12,12,12,12,12,12,12,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,11,11,11,11,11,11,11,11,11,11,11,11,11, |
11, |
}; |
static const static_codebook _44u2__p7_0 = { |
2, 81, |
(char *)_vq_lengthlist__44u2__p7_0, |
1, -516612096, 1626677248, 4, 0, |
(long *)_vq_quantlist__44u2__p7_0, |
0 |
}; |
static const long _vq_quantlist__44u2__p7_1[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44u2__p7_1[] = { |
1, 4, 4, 7, 6, 7, 6, 8, 7, 9, 7, 9, 8, 4, 7, 6, |
8, 8, 9, 8,10, 9,10,10,11,11, 4, 7, 7, 8, 8, 8, |
8, 9,10,11,11,11,11, 6, 8, 8,10,10,10,10,11,11, |
12,12,12,12, 7, 8, 8,10,10,10,10,11,11,12,12,13, |
13, 7, 9, 9,11,10,12,12,13,13,14,13,14,14, 7, 9, |
9,10,11,11,12,13,13,13,13,16,14, 9,10,10,12,12, |
13,13,14,14,15,16,15,16, 9,10,10,12,12,12,13,14, |
14,14,15,16,15,10,12,12,13,13,15,13,16,16,15,17, |
17,17,10,11,11,12,14,14,14,15,15,17,17,15,17,11, |
12,12,14,14,14,15,15,15,17,16,17,17,10,12,12,13, |
14,14,14,17,15,17,17,17,17, |
}; |
static const static_codebook _44u2__p7_1 = { |
2, 169, |
(char *)_vq_lengthlist__44u2__p7_1, |
1, -523010048, 1618608128, 4, 0, |
(long *)_vq_quantlist__44u2__p7_1, |
0 |
}; |
static const long _vq_quantlist__44u2__p7_2[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44u2__p7_2[] = { |
2, 5, 5, 6, 6, 7, 7, 8, 7, 8, 8, 8, 8, 5, 6, 6, |
7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 5, 6, 6, 7, 7, 8, |
7, 8, 8, 8, 8, 8, 8, 6, 7, 7, 7, 8, 8, 8, 8, 8, |
9, 9, 9, 9, 6, 7, 7, 8, 7, 8, 8, 9, 9, 9, 9, 9, |
9, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 7, 8, |
8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 8, 8, 8, 8, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 8, 8, 8, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, |
}; |
static const static_codebook _44u2__p7_2 = { |
2, 169, |
(char *)_vq_lengthlist__44u2__p7_2, |
1, -531103744, 1611661312, 4, 0, |
(long *)_vq_quantlist__44u2__p7_2, |
0 |
}; |
static const char _huff_lengthlist__44u2__short[] = { |
13,15,17,17,15,15,12,17,11, 9, 7,10,10, 9,12,17, |
10, 6, 3, 6, 5, 7,10,17,15,10, 6, 9, 8, 9,11,17, |
15, 8, 4, 7, 3, 5, 9,16,16,10, 5, 8, 4, 5, 8,16, |
13,11, 5, 8, 3, 3, 5,14,13,12, 7,10, 5, 5, 7,14, |
}; |
static const static_codebook _huff_book__44u2__short = { |
2, 64, |
(char *)_huff_lengthlist__44u2__short, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist__44u3__long[] = { |
6, 9,13,12,14,11,10,13, 8, 4, 5, 7, 8, 7, 8,12, |
11, 4, 3, 5, 5, 7, 9,14,11, 6, 5, 6, 6, 6, 7,13, |
13, 7, 5, 6, 4, 5, 7,14,11, 7, 6, 6, 5, 5, 6,13, |
9, 7, 8, 6, 7, 5, 3, 9, 9,12,13,12,14,10, 6, 7, |
}; |
static const static_codebook _huff_book__44u3__long = { |
2, 64, |
(char *)_huff_lengthlist__44u3__long, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const long _vq_quantlist__44u3__p1_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44u3__p1_0[] = { |
1, 4, 4, 5, 8, 7, 5, 7, 8, 5, 8, 8, 8,10,11, 8, |
10,11, 5, 8, 8, 8,11,10, 8,11,11, 4, 8, 8, 8,11, |
11, 8,11,11, 8,11,11,11,13,14,11,14,14, 8,11,11, |
10,14,12,11,14,14, 4, 8, 8, 8,11,11, 8,11,11, 7, |
11,11,11,14,14,10,12,14, 8,11,11,11,14,14,11,14, |
13, |
}; |
static const static_codebook _44u3__p1_0 = { |
4, 81, |
(char *)_vq_lengthlist__44u3__p1_0, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__44u3__p1_0, |
0 |
}; |
static const long _vq_quantlist__44u3__p2_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44u3__p2_0[] = { |
2, 5, 4, 5, 6, 6, 5, 6, 6, 5, 6, 6, 7, 8, 8, 6, |
8, 8, 5, 6, 6, 6, 8, 8, 7, 8, 8, 5, 7, 6, 7, 8, |
8, 6, 8, 8, 7, 8, 8, 8, 9,10, 8,10,10, 6, 8, 8, |
8,10, 8, 8,10,10, 5, 6, 6, 6, 8, 8, 7, 8, 8, 6, |
8, 8, 8,10,10, 8, 8,10, 7, 8, 8, 8,10,10, 8,10, |
9, |
}; |
static const static_codebook _44u3__p2_0 = { |
4, 81, |
(char *)_vq_lengthlist__44u3__p2_0, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__44u3__p2_0, |
0 |
}; |
static const long _vq_quantlist__44u3__p3_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44u3__p3_0[] = { |
2, 4, 4, 7, 7, 5, 7, 7, 9, 9, 5, 7, 7, 9, 9, 8, |
9, 9,12,12, 8, 9, 9,11,12, 5, 7, 7,10,10, 7, 9, |
9,11,11, 7, 9, 9,10,11,10,11,11,13,13, 9,10,11, |
13,13, 5, 7, 7,10,10, 7, 9, 9,11,10, 7, 9, 9,11, |
11, 9,11,10,13,13,10,11,11,14,13, 8,10,10,14,13, |
10,11,11,15,14, 9,11,11,14,14,13,14,13,16,16,12, |
13,13,15,15, 8,10,10,13,14, 9,11,11,14,14,10,11, |
11,14,15,12,13,13,15,15,13,14,14,15,16, 5, 7, 7, |
10,10, 7, 9, 9,11,11, 7, 9, 9,11,12,10,11,11,14, |
14,10,11,11,14,14, 7, 9, 9,12,12, 9,11,11,13,13, |
9,11,11,13,13,12,12,13,15,15,11,12,13,15,16, 7, |
9, 9,11,11, 8,11,10,13,12, 9,11,11,13,13,11,13, |
12,15,13,11,13,13,15,16, 9,12,11,15,14,11,12,13, |
16,15,11,13,13,15,16,14,14,15,17,16,13,15,16, 0, |
17, 9,11,11,15,15,10,13,12,15,15,11,13,13,15,16, |
13,15,13,16,15,14,16,15, 0,19, 5, 7, 7,10,10, 7, |
9, 9,11,11, 7, 9, 9,11,11,10,12,11,14,14,10,11, |
12,14,14, 7, 9, 9,12,12, 9,11,11,14,13, 9,10,11, |
12,13,11,13,13,16,16,11,12,13,13,16, 7, 9, 9,12, |
12, 9,11,11,13,13, 9,11,11,13,13,11,13,13,15,15, |
12,13,12,15,14, 9,11,11,15,14,11,13,12,16,16,10, |
12,12,15,15,13,15,15,17,19,13,14,15,16,17,10,12, |
12,15,15,11,13,13,16,16,11,13,13,15,16,13,15,15, |
0, 0,14,15,15,16,16, 8,10,10,14,14,10,12,12,15, |
15,10,12,11,15,16,14,15,15,19,20,13,14,14,18,16, |
9,11,11,15,15,11,13,13,17,16,11,13,13,16,16,15, |
17,17,20,20,14,15,16,17,20, 9,11,11,15,15,10,13, |
12,16,15,11,13,13,15,17,14,16,15,18, 0,14,16,15, |
18,20,12,14,14, 0, 0,14,14,16, 0, 0,13,16,15, 0, |
0,17,17,18, 0, 0,16,17,19,19, 0,12,14,14,18, 0, |
12,16,14, 0,17,13,15,15,18, 0,16,18,17, 0,17,16, |
18,17, 0, 0, 7,10,10,14,14,10,12,11,15,15,10,12, |
12,16,15,13,15,15,18, 0,14,15,15,17, 0, 9,11,11, |
15,15,11,13,13,16,16,11,12,13,16,16,14,15,16,17, |
17,14,16,16,16,18, 9,11,12,16,16,11,13,13,17,17, |
11,14,13,20,17,15,16,16,19, 0,15,16,17, 0,19,11, |
13,14,17,16,14,15,15,20,18,13,14,15,17,19,16,18, |
18, 0,20,16,16,19,17, 0,12,15,14,17, 0,14,15,15, |
18,19,13,16,15,19,20,15,18,18, 0,20,17, 0,16, 0, |
0, |
}; |
static const static_codebook _44u3__p3_0 = { |
4, 625, |
(char *)_vq_lengthlist__44u3__p3_0, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44u3__p3_0, |
0 |
}; |
static const long _vq_quantlist__44u3__p4_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44u3__p4_0[] = { |
4, 5, 5, 8, 8, 5, 7, 6, 9, 9, 5, 6, 7, 9, 9, 9, |
9, 9,11,11, 9, 9, 9,11,11, 5, 7, 7, 9, 9, 7, 8, |
8,10,10, 7, 7, 8,10,10, 9,10,10,11,12, 9,10,10, |
11,12, 5, 7, 7, 9, 9, 7, 8, 7,10,10, 7, 8, 8,10, |
10, 9,10, 9,12,11, 9,10,10,12,11, 9,10, 9,12,12, |
9,10,10,13,12, 9,10,10,12,13,12,12,12,14,14,11, |
12,12,13,14, 9, 9,10,12,12, 9,10,10,12,12, 9,10, |
10,12,13,11,12,11,14,13,12,12,12,14,13, 5, 7, 7, |
9, 9, 7, 8, 8,10,10, 7, 8, 8,10,10,10,10,10,12, |
12, 9,10,10,12,12, 7, 8, 8,11,10, 8, 8, 9,11,11, |
8, 9, 9,11,11,11,11,11,12,13,10,11,11,13,13, 6, |
8, 8,10,10, 7, 9, 8,11,10, 8, 9, 9,11,11,10,11, |
10,13,11,10,11,11,13,13, 9,11,10,13,12,10,11,11, |
13,13,10,11,11,13,13,12,12,13,12,15,12,13,13,15, |
15, 9,10,10,12,13,10,11,10,13,12,10,11,11,13,14, |
12,13,11,15,13,12,13,13,15,15, 5, 7, 7, 9, 9, 7, |
8, 8,10,10, 7, 8, 8,10,10, 9,10,10,12,12,10,10, |
11,12,12, 6, 8, 8,10,10, 8, 9, 9,11,11, 7, 8, 9, |
10,11,10,11,11,13,13,10,10,11,11,13, 7, 8, 8,10, |
10, 8, 9, 9,11,11, 8, 9, 9,11,11,10,11,11,13,13, |
11,11,11,13,12, 9,10,10,13,12,10,11,11,14,13,10, |
10,11,12,13,12,13,13,15,15,12,11,13,13,14, 9,10, |
11,12,13,10,11,11,13,13,10,11,11,13,13,12,13,13, |
15,15,12,13,12,15,12, 8, 9, 9,12,12, 9,11,10,13, |
13, 9,10,10,13,13,12,13,13,15,14,12,12,12,14,13, |
9,10,10,13,12,10,11,11,13,13,10,11,11,14,12,13, |
13,14,14,16,12,13,13,15,15, 9,10,10,13,13,10,11, |
10,14,13,10,11,11,13,14,12,14,13,15,14,13,13,13, |
15,15,11,13,12,15,14,11,12,13,14,15,12,13,13,16, |
14,14,12,15,12,16,14,15,15,17,15,11,12,12,14,14, |
11,13,11,15,14,12,13,13,15,15,13,15,12,17,13,14, |
15,15,16,16, 8, 9, 9,12,12, 9,10,10,12,13, 9,10, |
10,13,13,12,12,12,14,14,12,13,13,15,15, 9,10,10, |
13,12,10,11,11,14,13,10,10,11,13,14,12,13,13,15, |
15,12,12,13,14,16, 9,10,10,13,13,10,11,11,13,14, |
10,11,11,14,13,12,13,13,14,15,13,14,13,16,14,11, |
12,12,14,14,12,13,13,15,14,11,12,13,14,15,14,15, |
15,16,16,13,13,15,13,16,11,12,12,14,15,12,13,13, |
14,15,11,13,12,15,14,14,15,15,16,16,14,15,12,16, |
13, |
}; |
static const static_codebook _44u3__p4_0 = { |
4, 625, |
(char *)_vq_lengthlist__44u3__p4_0, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44u3__p4_0, |
0 |
}; |
static const long _vq_quantlist__44u3__p5_0[] = { |
4, |
3, |
5, |
2, |
6, |
1, |
7, |
0, |
8, |
}; |
static const char _vq_lengthlist__44u3__p5_0[] = { |
2, 3, 3, 6, 6, 7, 7, 9, 9, 4, 5, 5, 7, 7, 8, 8, |
10,10, 4, 5, 5, 7, 7, 8, 8,10,10, 6, 7, 7, 8, 8, |
9, 9,11,10, 6, 7, 7, 8, 8, 9, 9,10,10, 7, 8, 8, |
9, 9,10,10,11,11, 7, 8, 8, 9, 9,10,10,11,11, 9, |
10,10,11,10,11,11,12,12, 9,10,10,10,10,11,11,12, |
12, |
}; |
static const static_codebook _44u3__p5_0 = { |
2, 81, |
(char *)_vq_lengthlist__44u3__p5_0, |
1, -531628032, 1611661312, 4, 0, |
(long *)_vq_quantlist__44u3__p5_0, |
0 |
}; |
static const long _vq_quantlist__44u3__p6_0[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44u3__p6_0[] = { |
1, 4, 4, 6, 6, 8, 8, 9, 9,10,11,13,14, 4, 6, 5, |
8, 8, 9, 9,10,10,11,11,14,14, 4, 6, 6, 8, 8, 9, |
9,10,10,11,11,14,14, 6, 8, 8, 9, 9,10,10,11,11, |
12,12,15,15, 6, 8, 8, 9, 9,10,11,11,11,12,12,15, |
15, 8, 9, 9,11,10,11,11,12,12,13,13,15,16, 8, 9, |
9,10,11,11,11,12,12,13,13,16,16,10,10,11,11,11, |
12,12,13,13,13,14,17,16, 9,10,11,12,11,12,12,13, |
13,13,13,16,18,11,12,11,12,12,13,13,13,14,15,14, |
17,17,11,11,12,12,12,13,13,13,14,14,15,18,17,14, |
15,15,15,15,16,16,17,17,19,18, 0,20,14,15,14,15, |
15,16,16,16,17,18,16,20,18, |
}; |
static const static_codebook _44u3__p6_0 = { |
2, 169, |
(char *)_vq_lengthlist__44u3__p6_0, |
1, -526516224, 1616117760, 4, 0, |
(long *)_vq_quantlist__44u3__p6_0, |
0 |
}; |
static const long _vq_quantlist__44u3__p6_1[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44u3__p6_1[] = { |
2, 4, 4, 5, 5, 4, 5, 5, 6, 5, 4, 5, 5, 5, 6, 5, |
6, 5, 6, 6, 5, 5, 6, 6, 6, |
}; |
static const static_codebook _44u3__p6_1 = { |
2, 25, |
(char *)_vq_lengthlist__44u3__p6_1, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44u3__p6_1, |
0 |
}; |
static const long _vq_quantlist__44u3__p7_0[] = { |
4, |
3, |
5, |
2, |
6, |
1, |
7, |
0, |
8, |
}; |
static const char _vq_lengthlist__44u3__p7_0[] = { |
1, 3, 3,10,10,10,10,10,10, 4,10,10,10,10,10,10, |
10,10, 4,10,10,10,10,10,10,10,10,10,10, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, |
}; |
static const static_codebook _44u3__p7_0 = { |
2, 81, |
(char *)_vq_lengthlist__44u3__p7_0, |
1, -515907584, 1627381760, 4, 0, |
(long *)_vq_quantlist__44u3__p7_0, |
0 |
}; |
static const long _vq_quantlist__44u3__p7_1[] = { |
7, |
6, |
8, |
5, |
9, |
4, |
10, |
3, |
11, |
2, |
12, |
1, |
13, |
0, |
14, |
}; |
static const char _vq_lengthlist__44u3__p7_1[] = { |
1, 4, 4, 6, 6, 7, 6, 8, 7, 9, 8,10, 9,11,11, 4, |
7, 7, 8, 7, 9, 9,10,10,11,11,11,11,12,12, 4, 7, |
7, 7, 7, 9, 9,10,10,11,11,12,12,12,11, 6, 8, 8, |
9, 9,10,10,11,11,12,12,13,12,13,13, 6, 8, 8, 9, |
9,10,11,11,11,12,12,13,14,13,13, 8, 9, 9,11,11, |
12,12,12,13,14,13,14,14,14,15, 8, 9, 9,11,11,11, |
12,13,14,13,14,15,17,14,15, 9,10,10,12,12,13,13, |
13,14,15,15,15,16,16,16, 9,11,11,12,12,13,13,14, |
14,14,15,16,16,16,16,10,12,12,13,13,14,14,15,15, |
15,16,17,17,17,17,10,12,11,13,13,15,14,15,14,16, |
17,16,16,16,16,11,13,12,14,14,14,14,15,16,17,16, |
17,17,17,17,11,13,12,14,14,14,15,17,16,17,17,17, |
17,17,17,12,13,13,15,16,15,16,17,17,16,16,17,17, |
17,17,12,13,13,15,15,15,16,17,17,17,16,17,16,17, |
17, |
}; |
static const static_codebook _44u3__p7_1 = { |
2, 225, |
(char *)_vq_lengthlist__44u3__p7_1, |
1, -522338304, 1620115456, 4, 0, |
(long *)_vq_quantlist__44u3__p7_1, |
0 |
}; |
static const long _vq_quantlist__44u3__p7_2[] = { |
8, |
7, |
9, |
6, |
10, |
5, |
11, |
4, |
12, |
3, |
13, |
2, |
14, |
1, |
15, |
0, |
16, |
}; |
static const char _vq_lengthlist__44u3__p7_2[] = { |
2, 5, 5, 7, 6, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, |
9, 5, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, |
10,10, 5, 6, 6, 7, 7, 8, 8, 8, 8, 9, 8, 9, 9, 9, |
9,10, 9, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, |
10,10,10,10, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9,10, |
9,10,10,10,10, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, |
10,10,10,10,10,10, 7, 8, 8, 9, 8, 9, 9, 9, 9,10, |
9,10,10,10,10,10,10, 8, 8, 8, 9, 9, 9, 9, 9, 9, |
9,10,10,10,10,10,10,10, 8, 9, 8, 9, 9, 9, 9,10, |
9,10,10,10,10,10,10,10,10, 9, 9, 9, 9, 9, 9,10, |
9,10,10,10,10,10,10,10,10,10, 9, 9, 9, 9, 9,10, |
9,10,10,10,10,10,10,10,10,10,10, 9, 9, 9,10, 9, |
10,10,10,10,10,10,10,10,10,10,10,10, 9, 9, 9,10, |
10,10,10,10,10,10,10,10,10,10,10,10,10, 9, 9, 9, |
10,10,10,10,10,10,10,10,10,10,10,10,10,11, 9,10, |
10,10,10,10,10,10,10,10,10,10,10,10,10,10,11, 9, |
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,11,11,11,10, |
11, |
}; |
static const static_codebook _44u3__p7_2 = { |
2, 289, |
(char *)_vq_lengthlist__44u3__p7_2, |
1, -529530880, 1611661312, 5, 0, |
(long *)_vq_quantlist__44u3__p7_2, |
0 |
}; |
static const char _huff_lengthlist__44u3__short[] = { |
14,14,14,15,13,15,12,16,10, 8, 7, 9, 9, 8,12,16, |
10, 5, 4, 6, 5, 6, 9,16,14, 8, 6, 8, 7, 8,10,16, |
14, 7, 4, 6, 3, 5, 8,16,15, 9, 5, 7, 4, 4, 7,16, |
13,10, 6, 7, 4, 3, 4,13,13,12, 7, 9, 5, 5, 6,12, |
}; |
static const static_codebook _huff_book__44u3__short = { |
2, 64, |
(char *)_huff_lengthlist__44u3__short, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist__44u4__long[] = { |
3, 8,12,12,13,12,11,13, 5, 4, 6, 7, 8, 8, 9,13, |
9, 5, 4, 5, 5, 7, 9,13, 9, 6, 5, 6, 6, 7, 8,12, |
12, 7, 5, 6, 4, 5, 8,13,11, 7, 6, 6, 5, 5, 6,12, |
10, 8, 8, 7, 7, 5, 3, 8,10,12,13,12,12, 9, 6, 7, |
}; |
static const static_codebook _huff_book__44u4__long = { |
2, 64, |
(char *)_huff_lengthlist__44u4__long, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const long _vq_quantlist__44u4__p1_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44u4__p1_0[] = { |
1, 4, 4, 5, 8, 7, 5, 7, 8, 5, 8, 8, 8,10,11, 8, |
10,11, 5, 8, 8, 8,11,10, 8,11,11, 4, 8, 8, 8,11, |
11, 8,11,11, 8,11,11,11,13,14,11,15,14, 8,11,11, |
10,13,12,11,14,14, 4, 8, 8, 8,11,11, 8,11,11, 7, |
11,11,11,15,14,10,12,14, 8,11,11,11,14,14,11,14, |
13, |
}; |
static const static_codebook _44u4__p1_0 = { |
4, 81, |
(char *)_vq_lengthlist__44u4__p1_0, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__44u4__p1_0, |
0 |
}; |
static const long _vq_quantlist__44u4__p2_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44u4__p2_0[] = { |
2, 5, 5, 5, 6, 6, 5, 6, 6, 5, 6, 6, 7, 8, 8, 6, |
8, 8, 5, 6, 6, 6, 8, 8, 7, 8, 8, 5, 7, 6, 6, 8, |
8, 6, 8, 8, 6, 8, 8, 8, 9,10, 8,10,10, 6, 8, 8, |
8,10, 8, 8,10,10, 5, 6, 6, 6, 8, 8, 6, 8, 8, 6, |
8, 8, 8,10,10, 8, 8,10, 6, 8, 8, 8,10,10, 8,10, |
9, |
}; |
static const static_codebook _44u4__p2_0 = { |
4, 81, |
(char *)_vq_lengthlist__44u4__p2_0, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__44u4__p2_0, |
0 |
}; |
static const long _vq_quantlist__44u4__p3_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44u4__p3_0[] = { |
2, 4, 4, 8, 8, 5, 7, 7, 9, 9, 5, 7, 7, 9, 9, 8, |
10, 9,12,12, 8, 9,10,12,12, 5, 7, 7,10,10, 7, 9, |
9,11,11, 7, 9, 9,11,11,10,12,11,14,14, 9,10,11, |
13,14, 5, 7, 7,10,10, 7, 9, 9,11,11, 7, 9, 9,11, |
11, 9,11,10,14,13,10,11,11,14,14, 8,10,10,14,13, |
10,12,12,15,14, 9,11,11,15,14,13,14,14,17,17,12, |
14,14,16,16, 8,10,10,14,14, 9,11,11,14,15,10,12, |
12,14,15,12,14,13,16,16,13,14,15,15,18, 4, 7, 7, |
10,10, 7, 9, 9,12,11, 7, 9, 9,11,12,10,12,11,15, |
14,10,11,12,14,15, 7, 9, 9,12,12, 9,11,12,13,13, |
9,11,12,13,13,12,13,13,15,16,11,13,13,15,16, 7, |
9, 9,12,12, 9,11,10,13,12, 9,11,12,13,14,11,13, |
12,16,14,12,13,13,15,16,10,12,12,16,15,11,13,13, |
17,16,11,13,13,17,16,14,15,15,17,17,14,16,16,18, |
20, 9,11,11,15,16,11,13,12,16,16,11,13,13,16,17, |
14,15,14,18,16,14,16,16,17,20, 5, 7, 7,10,10, 7, |
9, 9,12,11, 7, 9,10,11,12,10,12,11,15,15,10,12, |
12,14,14, 7, 9, 9,12,12, 9,12,11,14,13, 9,10,11, |
12,13,12,13,14,16,16,11,12,13,14,16, 7, 9, 9,12, |
12, 9,12,11,13,13, 9,12,11,13,13,11,13,13,16,16, |
12,13,13,16,15, 9,11,11,16,14,11,13,13,16,16,11, |
12,13,16,16,14,16,16,17,17,13,14,15,16,17,10,12, |
12,15,15,11,13,13,16,17,11,13,13,16,16,14,16,15, |
19,19,14,15,15,17,18, 8,10,10,14,14,10,12,12,15, |
15,10,12,12,16,16,14,16,15,20,19,13,15,15,17,16, |
9,12,12,16,16,11,13,13,16,18,11,14,13,16,17,16, |
17,16,20, 0,15,16,18,18,20, 9,11,11,15,15,11,14, |
12,17,16,11,13,13,17,17,15,17,15,20,20,14,16,16, |
17, 0,13,15,14,18,16,14,15,16, 0,18,14,16,16, 0, |
0,18,16, 0, 0,20,16,18,18, 0, 0,12,14,14,17,18, |
13,15,14,20,18,14,16,15,19,19,16,20,16, 0,18,16, |
19,17,19, 0, 8,10,10,14,14,10,12,12,16,15,10,12, |
12,16,16,13,15,15,18,17,14,16,16,19, 0, 9,11,11, |
16,15,11,14,13,18,17,11,12,13,17,18,14,17,16,18, |
18,15,16,17,18,18, 9,12,12,16,16,11,13,13,16,18, |
11,14,13,17,17,15,16,16,18,20,16,17,17,20,20,12, |
14,14,18,17,14,16,16, 0,19,13,14,15,18, 0,16, 0, |
0, 0, 0,16,16, 0,19,20,13,15,14, 0, 0,14,16,16, |
18,19,14,16,15, 0,20,16,20,18, 0,20,17,20,17, 0, |
0, |
}; |
static const static_codebook _44u4__p3_0 = { |
4, 625, |
(char *)_vq_lengthlist__44u4__p3_0, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44u4__p3_0, |
0 |
}; |
static const long _vq_quantlist__44u4__p4_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44u4__p4_0[] = { |
4, 5, 5, 8, 8, 5, 7, 6, 9, 9, 5, 6, 7, 9, 9, 9, |
9, 9,11,11, 8, 9, 9,11,11, 5, 7, 7, 9, 9, 7, 8, |
8,10,10, 7, 7, 8,10,10, 9,10,10,11,12, 9,10,10, |
11,12, 5, 7, 7, 9, 9, 7, 8, 7,10,10, 7, 8, 8,10, |
10, 9,10,10,12,11, 9,10,10,12,11, 9,10, 9,12,12, |
9,10,10,13,12, 9,10,10,12,12,12,12,12,14,14,11, |
12,12,13,14, 9, 9,10,12,12, 9,10,10,13,13, 9,10, |
10,12,13,11,12,12,14,13,11,12,12,14,14, 5, 7, 7, |
9, 9, 7, 8, 8,10,10, 7, 8, 8,10,10,10,10,10,12, |
12, 9,10,10,12,12, 7, 8, 8,11,10, 8, 8, 9,11,11, |
8, 9, 9,11,11,11,11,11,12,13,10,11,11,13,13, 6, |
8, 8,10,10, 7, 9, 8,11,10, 8, 9, 9,11,11,10,11, |
10,13,11,10,11,11,13,13, 9,11,10,13,12,10,11,11, |
13,14,10,11,11,14,13,12,12,13,12,15,12,13,13,15, |
15, 9,10,10,12,13,10,11,10,13,12,10,11,11,13,14, |
12,13,11,15,13,13,13,13,15,15, 5, 7, 7, 9, 9, 7, |
8, 8,10,10, 7, 8, 8,10,10, 9,10,10,12,12,10,10, |
11,12,13, 6, 8, 8,10,10, 8, 9, 9,11,11, 7, 8, 9, |
10,11,10,11,11,13,13,10,10,11,11,13, 7, 8, 8,10, |
11, 8, 9, 9,11,11, 8, 9, 8,11,11,10,11,11,13,13, |
11,12,11,13,12, 9,10,10,13,12,10,11,11,14,13,10, |
10,11,12,13,12,13,13,15,15,12,11,13,13,14, 9,10, |
11,12,13,10,11,11,13,14,10,11,11,13,13,12,13,13, |
15,15,12,13,12,15,12, 8, 9, 9,12,12, 9,11,10,13, |
13, 9,10,10,13,13,12,13,13,15,15,12,12,12,14,14, |
9,10,10,13,13,10,11,11,13,14,10,11,11,14,13,13, |
13,14,14,16,13,13,13,15,15, 9,10,10,13,13,10,11, |
10,14,13,10,11,11,13,14,12,14,13,16,14,12,13,13, |
14,15,11,12,12,15,14,11,12,13,14,15,12,13,13,16, |
15,14,12,15,12,16,14,15,15,16,16,11,12,12,14,14, |
11,13,12,15,14,12,13,13,15,16,13,15,13,17,13,14, |
15,15,16,17, 8, 9, 9,12,12, 9,10,10,12,13, 9,10, |
10,13,13,12,12,12,14,14,12,13,13,15,15, 9,10,10, |
13,12,10,11,11,14,13,10,10,11,13,14,13,13,13,15, |
15,12,13,14,14,16, 9,10,10,13,13,10,11,11,13,14, |
10,11,11,14,14,13,13,13,15,15,13,14,13,16,14,11, |
12,12,15,14,12,13,13,16,15,11,12,13,14,15,14,15, |
15,17,16,13,13,15,13,16,11,12,13,14,15,13,13,13, |
15,16,11,13,12,15,14,14,15,15,16,16,14,15,12,17, |
13, |
}; |
static const static_codebook _44u4__p4_0 = { |
4, 625, |
(char *)_vq_lengthlist__44u4__p4_0, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44u4__p4_0, |
0 |
}; |
static const long _vq_quantlist__44u4__p5_0[] = { |
4, |
3, |
5, |
2, |
6, |
1, |
7, |
0, |
8, |
}; |
static const char _vq_lengthlist__44u4__p5_0[] = { |
2, 3, 3, 6, 6, 7, 7, 9, 9, 4, 5, 5, 7, 7, 8, 8, |
10, 9, 4, 5, 5, 7, 7, 8, 8,10,10, 6, 7, 7, 8, 8, |
9, 9,11,10, 6, 7, 7, 8, 8, 9, 9,10,11, 7, 8, 8, |
9, 9,10,10,11,11, 7, 8, 8, 9, 9,10,10,11,11, 9, |
10,10,11,10,11,11,12,12, 9,10,10,10,11,11,11,12, |
12, |
}; |
static const static_codebook _44u4__p5_0 = { |
2, 81, |
(char *)_vq_lengthlist__44u4__p5_0, |
1, -531628032, 1611661312, 4, 0, |
(long *)_vq_quantlist__44u4__p5_0, |
0 |
}; |
static const long _vq_quantlist__44u4__p6_0[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44u4__p6_0[] = { |
1, 4, 4, 6, 6, 8, 8, 9, 9,11,10,13,13, 4, 6, 5, |
8, 8, 9, 9,10,10,11,11,14,14, 4, 6, 6, 8, 8, 9, |
9,10,10,11,11,14,14, 6, 8, 8, 9, 9,10,10,11,11, |
12,12,15,15, 6, 8, 8, 9, 9,10,11,11,11,12,12,15, |
15, 8, 9, 9,11,10,11,11,12,12,13,13,16,16, 8, 9, |
9,10,10,11,11,12,12,13,13,16,16,10,10,10,12,11, |
12,12,13,13,14,14,16,16,10,10,10,11,12,12,12,13, |
13,13,14,16,17,11,12,11,12,12,13,13,14,14,15,14, |
18,17,11,11,12,12,12,13,13,14,14,14,15,19,18,14, |
15,14,15,15,17,16,17,17,17,17,21, 0,14,15,15,16, |
16,16,16,17,17,18,17,20,21, |
}; |
static const static_codebook _44u4__p6_0 = { |
2, 169, |
(char *)_vq_lengthlist__44u4__p6_0, |
1, -526516224, 1616117760, 4, 0, |
(long *)_vq_quantlist__44u4__p6_0, |
0 |
}; |
static const long _vq_quantlist__44u4__p6_1[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44u4__p6_1[] = { |
2, 4, 4, 5, 5, 4, 5, 5, 6, 5, 4, 5, 5, 5, 6, 5, |
6, 5, 6, 6, 5, 5, 6, 6, 6, |
}; |
static const static_codebook _44u4__p6_1 = { |
2, 25, |
(char *)_vq_lengthlist__44u4__p6_1, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44u4__p6_1, |
0 |
}; |
static const long _vq_quantlist__44u4__p7_0[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44u4__p7_0[] = { |
1, 3, 3,12,12,12,12,12,12,12,12,12,12, 3,12,11, |
12,12,12,12,12,12,12,12,12,12, 4,11,10,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,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,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,11,11, |
11,11,11,11,11,11,11,11,11, |
}; |
static const static_codebook _44u4__p7_0 = { |
2, 169, |
(char *)_vq_lengthlist__44u4__p7_0, |
1, -514332672, 1627381760, 4, 0, |
(long *)_vq_quantlist__44u4__p7_0, |
0 |
}; |
static const long _vq_quantlist__44u4__p7_1[] = { |
7, |
6, |
8, |
5, |
9, |
4, |
10, |
3, |
11, |
2, |
12, |
1, |
13, |
0, |
14, |
}; |
static const char _vq_lengthlist__44u4__p7_1[] = { |
1, 4, 4, 6, 6, 7, 7, 9, 8,10, 8,10, 9,11,11, 4, |
7, 6, 8, 7, 9, 9,10,10,11,10,11,10,12,10, 4, 6, |
7, 8, 8, 9, 9,10,10,11,11,11,11,12,12, 6, 8, 8, |
10, 9,11,10,12,11,12,12,12,12,13,13, 6, 8, 8,10, |
10,10,11,11,11,12,12,13,12,13,13, 8, 9, 9,11,11, |
12,11,12,12,13,13,13,13,13,13, 8, 9, 9,11,11,11, |
12,12,12,13,13,13,13,13,13, 9,10,10,12,11,13,13, |
13,13,14,13,13,14,14,14, 9,10,11,11,12,12,13,13, |
13,13,13,14,15,14,14,10,11,11,12,12,13,13,14,14, |
14,14,14,15,16,16,10,11,11,12,13,13,13,13,15,14, |
14,15,16,15,16,10,12,12,13,13,14,14,14,15,15,15, |
15,15,15,16,11,12,12,13,13,14,14,14,15,15,15,16, |
15,17,16,11,12,12,13,13,13,15,15,14,16,16,16,16, |
16,17,11,12,12,13,13,14,14,15,14,15,15,17,17,16, |
16, |
}; |
static const static_codebook _44u4__p7_1 = { |
2, 225, |
(char *)_vq_lengthlist__44u4__p7_1, |
1, -522338304, 1620115456, 4, 0, |
(long *)_vq_quantlist__44u4__p7_1, |
0 |
}; |
static const long _vq_quantlist__44u4__p7_2[] = { |
8, |
7, |
9, |
6, |
10, |
5, |
11, |
4, |
12, |
3, |
13, |
2, |
14, |
1, |
15, |
0, |
16, |
}; |
static const char _vq_lengthlist__44u4__p7_2[] = { |
2, 5, 5, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, |
9, 5, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, |
9, 9, 5, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, |
9, 9, 9, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, |
10,10,10,10, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9,10, |
9,10, 9,10,10, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, |
10,10,10,10,10,10, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, |
9,10,10,10,10,10,10, 8, 9, 8, 9, 9, 9, 9, 9, 9, |
10,10,10,10,10,10,10,10, 8, 8, 8, 9, 9, 9, 9, 9, |
10,10,10,10,10,10,10,10,10, 9, 9, 9, 9, 9,10,10, |
10,10,10,10,10,10,10,10,10,10, 9, 9, 9, 9, 9,10, |
10,10,10,10,10,10,10,10,10,10,10, 9, 9, 9, 9,10, |
10,10,10,10,10,10,10,10,10,10,10,10, 9, 9, 9, 9, |
10,10,10,10,10,10,10,10,10,11,10,10,10, 9, 9, 9, |
10,10,10,10,10,10,10,10,10,10,10,10,10,10, 9, 9, |
9,10,10,10,10,10,10,10,10,10,10,10,10,10,10, 9, |
10, 9,10,10,10,10,10,10,10,10,10,10,10,10,10,10, |
9,10, 9,10,10,10,10,10,10,10,10,10,10,11,10,10, |
10, |
}; |
static const static_codebook _44u4__p7_2 = { |
2, 289, |
(char *)_vq_lengthlist__44u4__p7_2, |
1, -529530880, 1611661312, 5, 0, |
(long *)_vq_quantlist__44u4__p7_2, |
0 |
}; |
static const char _huff_lengthlist__44u4__short[] = { |
14,17,15,17,16,14,13,16,10, 7, 7,10,13,10,15,16, |
9, 4, 4, 6, 5, 7, 9,16,12, 8, 7, 8, 8, 8,11,16, |
14, 7, 4, 6, 3, 5, 8,15,13, 8, 5, 7, 4, 5, 7,16, |
12, 9, 6, 8, 3, 3, 5,16,14,13, 7,10, 5, 5, 7,15, |
}; |
static const static_codebook _huff_book__44u4__short = { |
2, 64, |
(char *)_huff_lengthlist__44u4__short, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist__44u5__long[] = { |
3, 8,13,12,14,12,16,11,13,14, 5, 4, 5, 6, 7, 8, |
10, 9,12,15,10, 5, 5, 5, 6, 8, 9, 9,13,15,10, 5, |
5, 6, 6, 7, 8, 8,11,13,12, 7, 5, 6, 4, 6, 7, 7, |
11,14,11, 7, 7, 6, 6, 6, 7, 6,10,14,14, 9, 8, 8, |
6, 7, 7, 7,11,16,11, 8, 8, 7, 6, 6, 7, 4, 7,12, |
10,10,12,10,10, 9,10, 5, 6, 9,10,12,15,13,14,14, |
14, 8, 7, 8, |
}; |
static const static_codebook _huff_book__44u5__long = { |
2, 100, |
(char *)_huff_lengthlist__44u5__long, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const long _vq_quantlist__44u5__p1_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44u5__p1_0[] = { |
1, 4, 4, 5, 8, 7, 5, 7, 7, 5, 8, 8, 8,10,10, 7, |
9,10, 5, 8, 8, 7,10, 9, 8,10,10, 5, 8, 8, 8,10, |
10, 8,10,10, 8,10,10,10,12,13,10,13,13, 7,10,10, |
10,13,11,10,13,13, 4, 8, 8, 8,11,10, 8,10,10, 7, |
10,10,10,13,13,10,11,13, 8,10,11,10,13,13,10,13, |
12, |
}; |
static const static_codebook _44u5__p1_0 = { |
4, 81, |
(char *)_vq_lengthlist__44u5__p1_0, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__44u5__p1_0, |
0 |
}; |
static const long _vq_quantlist__44u5__p2_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44u5__p2_0[] = { |
3, 4, 4, 5, 6, 6, 5, 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, 9, 8, 9, 9, 6, 8, 7, |
7, 9, 8, 8, 9, 9, 5, 6, 6, 6, 8, 7, 6, 8, 8, 6, |
8, 7, 8, 9, 9, 7, 8, 9, 6, 8, 8, 8, 9, 9, 8, 9, |
9, |
}; |
static const static_codebook _44u5__p2_0 = { |
4, 81, |
(char *)_vq_lengthlist__44u5__p2_0, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__44u5__p2_0, |
0 |
}; |
static const long _vq_quantlist__44u5__p3_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44u5__p3_0[] = { |
2, 4, 5, 8, 8, 5, 7, 6, 9, 9, 5, 6, 7, 9, 9, 8, |
10, 9,13,12, 8, 9,10,12,12, 5, 7, 7,10,10, 7, 9, |
9,11,11, 6, 8, 9,11,11,10,11,11,14,14, 9,10,11, |
13,14, 5, 7, 7, 9,10, 7, 9, 8,11,11, 7, 9, 9,11, |
11, 9,11,10,14,13,10,11,11,14,14, 8,10,10,13,13, |
10,11,11,15,14, 9,11,11,14,14,13,14,14,17,16,12, |
13,13,15,16, 8,10,10,13,13, 9,11,11,14,15,10,11, |
11,14,15,12,14,13,16,16,13,15,14,15,17, 5, 7, 7, |
10,10, 7, 9, 9,11,11, 7, 9, 9,11,11,10,11,11,14, |
14,10,11,12,14,14, 7, 9, 9,12,11, 9,11,11,13,13, |
9,11,11,13,13,12,13,13,15,16,11,12,13,15,16, 6, |
9, 9,11,11, 8,11,10,13,12, 9,11,11,13,14,11,13, |
12,16,14,11,13,13,16,17,10,12,11,15,15,11,13,13, |
16,16,11,13,13,17,16,14,15,15,17,17,14,16,16,17, |
18, 9,11,11,14,15,10,12,12,15,15,11,13,13,16,17, |
13,15,13,17,15,14,15,16,18, 0, 5, 7, 7,10,10, 7, |
9, 9,11,11, 7, 9, 9,11,11,10,11,11,14,14,10,11, |
12,14,15, 6, 9, 9,12,11, 9,11,11,13,13, 8,10,11, |
12,13,11,13,13,16,15,11,12,13,14,15, 7, 9, 9,11, |
12, 9,11,11,13,13, 9,11,11,13,13,11,13,13,15,16, |
11,13,13,15,14, 9,11,11,15,14,11,13,13,17,15,10, |
12,12,15,15,14,16,16,17,17,13,13,15,15,17,10,11, |
12,15,15,11,13,13,16,16,11,13,13,15,15,14,15,15, |
18,18,14,15,15,17,17, 8,10,10,13,13,10,12,11,15, |
15,10,11,12,15,15,14,15,15,18,18,13,14,14,18,18, |
9,11,11,15,16,11,13,13,17,17,11,13,13,16,16,15, |
15,16,17, 0,14,15,17, 0, 0, 9,11,11,15,15,10,13, |
12,18,16,11,13,13,15,16,14,16,15,20,20,14,15,16, |
17, 0,13,14,14,20,16,14,15,16,19,18,14,15,15,19, |
0,18,16, 0,20,20,16,18,18, 0, 0,12,14,14,18,18, |
13,15,14,18,16,14,15,16,18,20,16,19,16, 0,17,17, |
18,18,19, 0, 8,10,10,14,14,10,11,11,14,15,10,11, |
12,15,15,13,15,14,19,17,13,15,15,17, 0, 9,11,11, |
16,15,11,13,13,16,16,10,12,13,15,17,14,16,16,18, |
18,14,15,15,18, 0, 9,11,11,15,15,11,13,13,16,17, |
11,13,13,18,17,14,18,16,18,18,15,17,17,18, 0,12, |
14,14,18,18,14,15,15,20, 0,13,14,15,17, 0,16,18, |
17, 0, 0,16,16, 0,17,20,12,14,14,18,18,14,16,15, |
0,18,14,16,15,18, 0,16,19,17, 0, 0,17,18,16, 0, |
0, |
}; |
static const static_codebook _44u5__p3_0 = { |
4, 625, |
(char *)_vq_lengthlist__44u5__p3_0, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44u5__p3_0, |
0 |
}; |
static const long _vq_quantlist__44u5__p4_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44u5__p4_0[] = { |
4, 5, 5, 8, 8, 6, 7, 6, 9, 9, 6, 6, 7, 9, 9, 8, |
9, 9,11,11, 8, 9, 9,11,11, 6, 7, 7, 9, 9, 7, 8, |
8,10,10, 6, 7, 8, 9,10, 9,10,10,11,12, 9, 9,10, |
11,12, 6, 7, 7, 9, 9, 6, 8, 7,10, 9, 7, 8, 8,10, |
10, 9,10, 9,12,11, 9,10,10,12,11, 8, 9, 9,12,11, |
9,10,10,12,12, 9,10,10,12,12,11,12,12,13,14,11, |
11,12,13,14, 8, 9, 9,11,12, 9,10,10,12,12, 9,10, |
10,12,12,11,12,11,14,13,11,12,12,13,13, 5, 7, 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,10,10, 8, 8, 9,10,11, |
8, 9, 9,11,11,10,10,11,11,13,10,11,11,12,13, 6, |
7, 8,10,10, 7, 9, 8,11,10, 8, 9, 9,11,11,10,11, |
10,13,11,10,11,11,12,12, 9,10,10,12,12,10,10,11, |
12,13,10,11,11,13,13,12,11,13,12,15,12,13,13,14, |
15, 9,10,10,12,12, 9,11,10,13,12,10,11,11,13,13, |
11,13,11,14,12,12,13,13,14,15, 5, 7, 7, 9, 9, 7, |
8, 8,10,10, 7, 8, 8,10,10, 9,10,10,12,12, 9,10, |
10,12,12, 6, 8, 7,10,10, 8, 9, 9,11,11, 7, 8, 9, |
10,11,10,11,11,12,12,10,10,11,11,13, 7, 8, 8,10, |
10, 8, 9, 9,11,11, 8, 9, 8,11,10,10,11,11,13,12, |
10,11,10,13,11, 9,10,10,12,12,10,11,11,13,12, 9, |
10,10,12,13,12,13,13,14,15,11,11,13,12,14, 9,10, |
10,12,12,10,11,11,13,13,10,11,10,13,12,12,13,13, |
14,14,12,13,11,14,12, 8, 9, 9,12,12, 9,10,10,12, |
12, 9,10,10,12,12,12,12,12,14,14,11,12,12,14,13, |
9,10,10,12,12,10,11,11,13,13,10,11,11,13,12,12, |
12,13,14,15,12,13,13,15,14, 9,10,10,12,12,10,11, |
10,13,12,10,11,11,12,13,12,13,12,15,13,12,13,13, |
14,15,11,12,12,14,13,11,12,12,14,15,12,13,13,15, |
14,13,12,14,12,16,13,14,14,15,15,11,11,12,14,14, |
11,12,11,14,13,12,13,13,14,15,13,14,12,16,12,14, |
14,15,16,16, 8, 9, 9,11,12, 9,10,10,12,12, 9,10, |
10,12,13,11,12,12,13,13,12,12,13,14,14, 9,10,10, |
12,12,10,11,10,13,12,10,10,11,12,13,12,13,13,15, |
14,12,12,13,13,15, 9,10,10,12,13,10,11,11,12,13, |
10,11,11,13,13,12,13,13,14,15,12,13,12,15,14,11, |
12,11,14,13,12,13,13,15,14,11,11,12,13,14,14,15, |
14,16,15,13,12,14,13,16,11,12,12,13,14,12,13,13, |
14,15,11,12,11,14,14,14,14,14,15,16,13,15,12,16, |
12, |
}; |
static const static_codebook _44u5__p4_0 = { |
4, 625, |
(char *)_vq_lengthlist__44u5__p4_0, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44u5__p4_0, |
0 |
}; |
static const long _vq_quantlist__44u5__p5_0[] = { |
4, |
3, |
5, |
2, |
6, |
1, |
7, |
0, |
8, |
}; |
static const char _vq_lengthlist__44u5__p5_0[] = { |
2, 3, 3, 6, 6, 8, 8,10,10, 4, 5, 5, 8, 7, 8, 8, |
11,10, 3, 5, 5, 7, 8, 8, 8,10,11, 6, 8, 7,10, 9, |
10,10,11,11, 6, 7, 8, 9, 9, 9,10,11,12, 8, 8, 8, |
10,10,11,11,13,12, 8, 8, 9, 9,10,11,11,12,13,10, |
11,10,12,11,13,12,14,14,10,10,11,11,12,12,13,14, |
14, |
}; |
static const static_codebook _44u5__p5_0 = { |
2, 81, |
(char *)_vq_lengthlist__44u5__p5_0, |
1, -531628032, 1611661312, 4, 0, |
(long *)_vq_quantlist__44u5__p5_0, |
0 |
}; |
static const long _vq_quantlist__44u5__p6_0[] = { |
4, |
3, |
5, |
2, |
6, |
1, |
7, |
0, |
8, |
}; |
static const char _vq_lengthlist__44u5__p6_0[] = { |
3, 4, 4, 5, 5, 7, 7, 9, 9, 4, 5, 4, 6, 6, 7, 7, |
9, 9, 4, 4, 5, 6, 6, 7, 7, 9, 9, 5, 6, 6, 7, 7, |
8, 8,10,10, 6, 6, 6, 7, 7, 8, 8,10,10, 7, 7, 7, |
8, 8, 9, 9,11,10, 7, 7, 7, 8, 8, 9, 9,10,11, 9, |
9, 9,10,10,11,10,11,11, 9, 9, 9,10,10,11,10,11, |
11, |
}; |
static const static_codebook _44u5__p6_0 = { |
2, 81, |
(char *)_vq_lengthlist__44u5__p6_0, |
1, -531628032, 1611661312, 4, 0, |
(long *)_vq_quantlist__44u5__p6_0, |
0 |
}; |
static const long _vq_quantlist__44u5__p7_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44u5__p7_0[] = { |
1, 4, 4, 5, 7, 7, 5, 7, 7, 5, 9, 9, 8,11,10, 7, |
11,10, 5, 9, 9, 7,10,10, 8,10,11, 4, 9, 9, 9,12, |
12, 9,12,12, 8,12,12,11,12,12,10,12,13, 7,12,12, |
11,12,12,10,12,13, 4, 9, 9, 9,12,12, 9,12,12, 7, |
12,11,10,13,13,11,12,12, 7,12,12,10,13,13,11,12, |
12, |
}; |
static const static_codebook _44u5__p7_0 = { |
4, 81, |
(char *)_vq_lengthlist__44u5__p7_0, |
1, -529137664, 1618345984, 2, 0, |
(long *)_vq_quantlist__44u5__p7_0, |
0 |
}; |
static const long _vq_quantlist__44u5__p7_1[] = { |
5, |
4, |
6, |
3, |
7, |
2, |
8, |
1, |
9, |
0, |
10, |
}; |
static const char _vq_lengthlist__44u5__p7_1[] = { |
2, 4, 4, 6, 6, 7, 7, 8, 8, 8, 8, 4, 5, 5, 7, 7, |
8, 8, 9, 8, 8, 9, 4, 5, 5, 7, 7, 8, 8, 9, 9, 8, |
9, 6, 7, 7, 8, 8, 9, 8, 9, 9, 9, 9, 6, 7, 7, 8, |
8, 9, 9, 9, 9, 9, 9, 7, 8, 8, 9, 9, 9, 9, 9, 9, |
9, 9, 7, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 8, 9, 9, |
9, 9, 9, 9,10,10,10,10, 8, 9, 9, 9, 9, 9, 9,10, |
10,10,10, 8, 9, 9, 9, 9, 9, 9,10,10,10,10, 8, 9, |
9, 9, 9, 9, 9,10,10,10,10, |
}; |
static const static_codebook _44u5__p7_1 = { |
2, 121, |
(char *)_vq_lengthlist__44u5__p7_1, |
1, -531365888, 1611661312, 4, 0, |
(long *)_vq_quantlist__44u5__p7_1, |
0 |
}; |
static const long _vq_quantlist__44u5__p8_0[] = { |
5, |
4, |
6, |
3, |
7, |
2, |
8, |
1, |
9, |
0, |
10, |
}; |
static const char _vq_lengthlist__44u5__p8_0[] = { |
1, 4, 4, 6, 6, 8, 8, 9, 9,10,10, 4, 6, 6, 7, 7, |
9, 9,10,10,11,11, 4, 6, 6, 7, 7, 9, 9,10,10,11, |
11, 6, 8, 7, 9, 9,10,10,11,11,13,12, 6, 8, 8, 9, |
9,10,10,11,11,12,13, 8, 9, 9,10,10,12,12,13,12, |
14,13, 8, 9, 9,10,10,12,12,13,13,14,14, 9,11,11, |
12,12,13,13,14,14,15,14, 9,11,11,12,12,13,13,14, |
14,15,14,11,12,12,13,13,14,14,15,14,15,14,11,11, |
12,13,13,14,14,14,14,15,15, |
}; |
static const static_codebook _44u5__p8_0 = { |
2, 121, |
(char *)_vq_lengthlist__44u5__p8_0, |
1, -524582912, 1618345984, 4, 0, |
(long *)_vq_quantlist__44u5__p8_0, |
0 |
}; |
static const long _vq_quantlist__44u5__p8_1[] = { |
5, |
4, |
6, |
3, |
7, |
2, |
8, |
1, |
9, |
0, |
10, |
}; |
static const char _vq_lengthlist__44u5__p8_1[] = { |
3, 5, 5, 6, 6, 7, 7, 7, 7, 7, 7, 5, 6, 5, 7, 6, |
7, 7, 8, 8, 8, 8, 5, 5, 5, 6, 6, 7, 7, 8, 8, 8, |
8, 6, 7, 6, 7, 7, 8, 8, 8, 8, 8, 8, 6, 6, 7, 7, |
7, 8, 8, 8, 8, 8, 8, 7, 7, 7, 8, 8, 8, 8, 8, 8, |
8, 8, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 7, 8, 8, |
8, 8, 8, 8, 8, 8, 8, 8, 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, 8, 8, 8, 8, 8, 8, 8, 8, |
}; |
static const static_codebook _44u5__p8_1 = { |
2, 121, |
(char *)_vq_lengthlist__44u5__p8_1, |
1, -531365888, 1611661312, 4, 0, |
(long *)_vq_quantlist__44u5__p8_1, |
0 |
}; |
static const long _vq_quantlist__44u5__p9_0[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44u5__p9_0[] = { |
1, 3, 2,12,10,13,13,13,13,13,13,13,13, 4, 9, 9, |
13,13,13,13,13,13,13,13,13,13, 5,10, 9,13,13,13, |
13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,13, |
13,13,13,13,11,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, |
13,13,13,13,13,13,13,13,13,13,13,13,13,12,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, |
}; |
static const static_codebook _44u5__p9_0 = { |
2, 169, |
(char *)_vq_lengthlist__44u5__p9_0, |
1, -514332672, 1627381760, 4, 0, |
(long *)_vq_quantlist__44u5__p9_0, |
0 |
}; |
static const long _vq_quantlist__44u5__p9_1[] = { |
7, |
6, |
8, |
5, |
9, |
4, |
10, |
3, |
11, |
2, |
12, |
1, |
13, |
0, |
14, |
}; |
static const char _vq_lengthlist__44u5__p9_1[] = { |
1, 4, 4, 7, 7, 8, 8, 8, 7, 8, 7, 9, 8, 9, 9, 4, |
7, 6, 9, 8,10,10, 9, 8, 9, 9, 9, 9, 9, 8, 5, 6, |
6, 8, 9,10,10, 9, 9, 9,10,10,10,10,11, 7, 8, 8, |
10,10,11,11,10,10,11,11,11,12,11,11, 7, 8, 8,10, |
10,11,11,10,10,11,11,12,11,11,11, 8, 9, 9,11,11, |
12,12,11,11,12,11,12,12,12,12, 8, 9,10,11,11,12, |
12,11,11,12,12,12,12,12,12, 8, 9, 9,10,10,12,11, |
12,12,12,12,12,12,12,13, 8, 9, 9,11,11,11,11,12, |
12,12,12,13,12,13,13, 9,10,10,11,11,12,12,12,13, |
12,13,13,13,14,13, 9,10,10,11,11,12,12,12,13,13, |
12,13,13,14,13, 9,11,10,12,11,13,12,12,13,13,13, |
13,13,13,14, 9,10,10,12,12,12,12,12,13,13,13,13, |
13,14,14,10,11,11,12,12,12,13,13,13,14,14,13,14, |
14,14,10,11,11,12,12,12,12,13,12,13,14,13,14,14, |
14, |
}; |
static const static_codebook _44u5__p9_1 = { |
2, 225, |
(char *)_vq_lengthlist__44u5__p9_1, |
1, -522338304, 1620115456, 4, 0, |
(long *)_vq_quantlist__44u5__p9_1, |
0 |
}; |
static const long _vq_quantlist__44u5__p9_2[] = { |
8, |
7, |
9, |
6, |
10, |
5, |
11, |
4, |
12, |
3, |
13, |
2, |
14, |
1, |
15, |
0, |
16, |
}; |
static const char _vq_lengthlist__44u5__p9_2[] = { |
2, 5, 5, 7, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, |
9, 5, 6, 6, 7, 7, 8, 8, 9, 8, 9, 9, 9, 9, 9, 9, |
9, 9, 5, 6, 6, 7, 7, 8, 8, 9, 8, 9, 9, 9, 9, 9, |
9, 9, 9, 7, 7, 7, 8, 8, 9, 8, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 7, 7, 7, 8, 8, 9, 8, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, |
9,10, 9,10,10,10, 8, 8, 8, 9, 8, 9, 9, 9, 9, 9, |
9, 9,10, 9,10, 9,10, 8, 9, 9, 9, 9, 9, 9, 9, 9, |
9,10, 9,10,10,10,10,10, 8, 9, 9, 9, 9, 9, 9,10, |
9,10, 9,10,10,10,10,10,10, 9, 9, 9, 9, 9,10, 9, |
10,10,10,10,10,10,10,10,10,10, 9, 9, 9, 9, 9, 9, |
9,10, 9,10, 9,10,10,10,10,10,10, 9, 9, 9, 9, 9, |
10,10,10,10,10,10,10,10,10,10,10,10, 9, 9, 9, 9, |
9, 9,10,10,10,10,10,10,10,10,10,10,10, 9, 9, 9, |
9,10,10, 9,10,10,10,10,10,10,10,10,10,10, 9, 9, |
9, 9, 9,10,10,10,10,10,10,10,10,10,10,10,10, 9, |
9, 9, 9, 9,10,10,10,10,10,10,10,10,10,10,10,10, |
9, 9, 9,10, 9,10,10,10,10,10,10,10,10,10,10,10, |
10, |
}; |
static const static_codebook _44u5__p9_2 = { |
2, 289, |
(char *)_vq_lengthlist__44u5__p9_2, |
1, -529530880, 1611661312, 5, 0, |
(long *)_vq_quantlist__44u5__p9_2, |
0 |
}; |
static const char _huff_lengthlist__44u5__short[] = { |
4,10,17,13,17,13,17,17,17,17, 3, 6, 8, 9,11, 9, |
15,12,16,17, 6, 5, 5, 7, 7, 8,10,11,17,17, 7, 8, |
7, 9, 9,10,13,13,17,17, 8, 6, 5, 7, 4, 7, 5, 8, |
14,17, 9, 9, 8, 9, 7, 9, 8,10,16,17,12,10, 7, 8, |
4, 7, 4, 7,16,17,12,11, 9,10, 6, 9, 5, 7,14,17, |
14,13,10,15, 4, 8, 3, 5,14,17,17,14,11,15, 6,10, |
6, 8,15,17, |
}; |
static const static_codebook _huff_book__44u5__short = { |
2, 100, |
(char *)_huff_lengthlist__44u5__short, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist__44u6__long[] = { |
3, 9,14,13,14,13,16,12,13,14, 5, 4, 6, 6, 8, 9, |
11,10,12,15,10, 5, 5, 6, 6, 8,10,10,13,16,10, 6, |
6, 6, 6, 8, 9, 9,12,14,13, 7, 6, 6, 4, 6, 6, 7, |
11,14,10, 7, 7, 7, 6, 6, 6, 7,10,13,15,10, 9, 8, |
5, 6, 5, 6,10,14,10, 9, 8, 8, 6, 6, 5, 4, 6,11, |
11,11,12,11,10, 9, 9, 5, 5, 9,10,12,15,13,13,13, |
13, 8, 7, 7, |
}; |
static const static_codebook _huff_book__44u6__long = { |
2, 100, |
(char *)_huff_lengthlist__44u6__long, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const long _vq_quantlist__44u6__p1_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44u6__p1_0[] = { |
1, 4, 4, 4, 8, 7, 5, 7, 7, 5, 8, 8, 8,10,10, 7, |
9,10, 5, 8, 8, 7,10, 9, 8,10,10, 5, 8, 8, 8,10, |
10, 8,10,10, 8,10,10,10,12,13,10,13,13, 7,10,10, |
10,13,11,10,13,13, 5, 8, 8, 8,11,10, 8,10,10, 7, |
10,10,10,13,13,10,11,13, 8,10,11,10,13,13,10,13, |
12, |
}; |
static const static_codebook _44u6__p1_0 = { |
4, 81, |
(char *)_vq_lengthlist__44u6__p1_0, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__44u6__p1_0, |
0 |
}; |
static const long _vq_quantlist__44u6__p2_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44u6__p2_0[] = { |
3, 4, 4, 5, 6, 6, 5, 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, 9, 8, 9, 9, 6, 7, 7, |
7, 9, 8, 8, 9, 9, 5, 6, 6, 6, 8, 7, 6, 8, 8, 6, |
8, 8, 8, 9, 9, 7, 8, 9, 6, 8, 8, 8, 9, 9, 8, 9, |
9, |
}; |
static const static_codebook _44u6__p2_0 = { |
4, 81, |
(char *)_vq_lengthlist__44u6__p2_0, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__44u6__p2_0, |
0 |
}; |
static const long _vq_quantlist__44u6__p3_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44u6__p3_0[] = { |
2, 5, 4, 8, 8, 5, 7, 6, 9, 9, 5, 6, 7, 9, 9, 8, |
9, 9,13,12, 8, 9,10,12,13, 5, 7, 7,10, 9, 7, 9, |
9,11,11, 7, 8, 9,11,11,10,11,11,14,14, 9,10,11, |
13,14, 5, 7, 7, 9,10, 6, 9, 8,11,11, 7, 9, 9,11, |
11, 9,11,10,14,13,10,11,11,14,13, 8,10,10,13,13, |
10,11,11,15,15, 9,11,11,14,14,13,14,14,17,16,12, |
13,14,16,16, 8,10,10,13,14, 9,11,11,14,15,10,11, |
12,14,15,12,14,13,16,15,13,14,14,15,17, 5, 7, 7, |
10,10, 7, 9, 9,11,11, 7, 9, 9,11,11,10,12,11,14, |
14,10,11,11,14,14, 7, 9, 9,12,11, 9,11,11,13,13, |
9,11,11,13,13,11,13,13,14,15,11,12,13,15,16, 6, |
9, 9,11,12, 8,11,10,13,12, 9,11,11,13,14,11,13, |
12,16,14,11,13,13,15,16,10,12,11,14,15,11,13,13, |
15,17,11,13,13,17,16,15,15,16,17,16,14,15,16,18, |
0, 9,11,11,14,15,10,12,12,16,15,11,13,13,16,16, |
13,15,14,18,15,14,16,16, 0, 0, 5, 7, 7,10,10, 7, |
9, 9,11,11, 7, 9, 9,11,11,10,11,11,14,14,10,11, |
12,14,14, 6, 9, 9,11,11, 9,11,11,13,13, 8,10,11, |
12,13,11,13,13,16,15,11,12,13,14,16, 7, 9, 9,11, |
12, 9,11,11,13,13, 9,11,11,13,13,11,13,13,16,15, |
11,13,12,15,15, 9,11,11,15,14,11,13,13,17,16,10, |
12,13,15,16,14,16,16, 0,18,14,14,15,15,17,10,11, |
12,15,15,11,13,13,16,16,11,13,13,16,16,14,16,16, |
19,17,14,15,15,17,17, 8,10,10,14,14,10,12,11,15, |
15,10,11,12,16,15,14,15,15,18,20,13,14,16,17,18, |
9,11,11,15,16,11,13,13,17,17,11,13,13,17,16,15, |
16,16, 0, 0,15,16,16, 0, 0, 9,11,11,15,15,10,13, |
12,17,15,11,13,13,17,16,15,17,15,20,19,15,16,16, |
19, 0,13,15,14, 0,17,14,15,16, 0,20,15,16,16, 0, |
19,17,18, 0, 0, 0,16,17,18, 0, 0,12,14,14,19,18, |
13,15,14, 0,17,14,15,16,19,19,16,18,16, 0,19,19, |
20,17,20, 0, 8,10,10,13,14,10,11,11,15,15,10,12, |
12,15,16,14,15,14,19,16,14,15,15, 0,18, 9,11,11, |
16,15,11,13,13, 0,16,11,12,13,16,17,14,16,17, 0, |
19,15,16,16,18, 0, 9,11,11,15,16,11,13,13,16,16, |
11,14,13,18,17,15,16,16,18,20,15,17,19, 0, 0,12, |
14,14,17,17,14,16,15, 0, 0,13,14,15,19, 0,16,18, |
20, 0, 0,16,16,18,18, 0,12,14,14,17,20,14,16,16, |
19, 0,14,16,14, 0,20,16,20,17, 0, 0,17, 0,15, 0, |
19, |
}; |
static const static_codebook _44u6__p3_0 = { |
4, 625, |
(char *)_vq_lengthlist__44u6__p3_0, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44u6__p3_0, |
0 |
}; |
static const long _vq_quantlist__44u6__p4_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44u6__p4_0[] = { |
4, 5, 5, 8, 8, 6, 7, 6, 9, 9, 6, 6, 7, 9, 9, 8, |
9, 9,11,11, 8, 9, 9,11,11, 6, 7, 7, 9, 9, 7, 8, |
8,10,10, 7, 7, 8, 9,10, 9,10,10,11,11, 9, 9,10, |
11,12, 6, 7, 7, 9, 9, 7, 8, 7,10, 9, 7, 8, 8,10, |
10, 9,10, 9,12,11, 9,10,10,12,11, 8, 9, 9,11,11, |
9,10,10,12,12, 9,10,10,12,12,11,12,12,14,13,11, |
11,12,13,13, 8, 9, 9,11,11, 9,10,10,12,12, 9,10, |
10,12,12,11,12,11,13,12,11,12,12,13,13, 5, 7, 7, |
9, 9, 7, 8, 7,10,10, 7, 7, 8,10,10, 9,10,10,12, |
11, 9,10,10,11,12, 7, 8, 8,10,10, 8, 8, 9,11,11, |
8, 9, 9,11,11,10,10,11,12,13,10,10,11,12,12, 6, |
7, 7,10,10, 7, 9, 8,11,10, 8, 8, 9,10,11,10,11, |
10,13,11,10,11,11,12,12, 9,10,10,12,12,10,10,11, |
13,13,10,11,11,12,13,12,12,12,13,14,12,12,13,14, |
14, 9,10,10,12,12, 9,10,10,13,12,10,11,11,13,13, |
11,12,11,14,12,12,13,13,14,14, 6, 7, 7, 9, 9, 7, |
8, 7,10,10, 7, 8, 8,10,10, 9,10,10,12,11, 9,10, |
10,11,12, 6, 7, 7,10,10, 8, 9, 8,11,10, 7, 8, 9, |
10,11,10,11,11,12,12,10,10,11,11,13, 7, 8, 8,10, |
10, 8, 9, 9,11,11, 8, 9, 8,11,11,10,11,10,13,12, |
10,11,11,13,12, 9,10,10,12,12,10,11,11,13,12, 9, |
10,10,12,13,12,13,12,14,14,11,11,12,12,14, 9,10, |
10,12,12,10,11,11,13,13,10,11,10,13,12,12,12,12, |
14,14,12,13,12,14,13, 8, 9, 9,11,11, 9,10,10,12, |
12, 9,10,10,12,12,11,12,12,14,13,11,12,12,13,14, |
9,10,10,12,12,10,11,11,13,13,10,11,11,13,13,12, |
12,13,14,15,12,12,13,14,14, 9,10,10,12,12, 9,11, |
10,13,12,10,10,11,12,13,12,13,12,14,13,12,12,13, |
14,15,11,12,12,14,13,11,12,12,14,14,12,13,13,14, |
14,13,13,14,14,16,13,14,14,15,15,11,12,11,13,13, |
11,12,11,14,13,12,12,13,14,15,12,14,12,15,12,13, |
14,15,15,16, 8, 9, 9,11,11, 9,10,10,12,12, 9,10, |
10,12,12,11,12,12,14,13,11,12,12,13,13, 9,10,10, |
12,12,10,11,10,13,12, 9,10,11,12,13,12,13,12,14, |
14,12,12,13,13,14, 9,10,10,12,12,10,11,11,13,13, |
10,11,11,13,13,12,13,12,14,14,12,13,13,14,14,11, |
11,11,13,13,12,13,12,14,14,11,11,12,13,14,14,14, |
14,16,15,12,12,14,12,15,11,12,12,13,14,12,13,13, |
14,15,11,12,12,14,14,13,14,14,16,16,13,14,13,16, |
13, |
}; |
static const static_codebook _44u6__p4_0 = { |
4, 625, |
(char *)_vq_lengthlist__44u6__p4_0, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44u6__p4_0, |
0 |
}; |
static const long _vq_quantlist__44u6__p5_0[] = { |
4, |
3, |
5, |
2, |
6, |
1, |
7, |
0, |
8, |
}; |
static const char _vq_lengthlist__44u6__p5_0[] = { |
2, 3, 3, 6, 6, 8, 8,10,10, 4, 5, 5, 8, 7, 8, 8, |
11,11, 3, 5, 5, 7, 8, 8, 8,11,11, 6, 8, 7, 9, 9, |
10, 9,12,11, 6, 7, 8, 9, 9, 9,10,11,12, 8, 8, 8, |
10, 9,12,11,13,13, 8, 8, 9, 9,10,11,12,13,13,10, |
11,11,12,12,13,13,14,14,10,10,11,11,12,13,13,14, |
14, |
}; |
static const static_codebook _44u6__p5_0 = { |
2, 81, |
(char *)_vq_lengthlist__44u6__p5_0, |
1, -531628032, 1611661312, 4, 0, |
(long *)_vq_quantlist__44u6__p5_0, |
0 |
}; |
static const long _vq_quantlist__44u6__p6_0[] = { |
4, |
3, |
5, |
2, |
6, |
1, |
7, |
0, |
8, |
}; |
static const char _vq_lengthlist__44u6__p6_0[] = { |
3, 4, 4, 5, 5, 7, 7, 9, 9, 4, 5, 4, 6, 6, 7, 7, |
9, 9, 4, 4, 5, 6, 6, 7, 8, 9, 9, 5, 6, 6, 7, 7, |
8, 8,10,10, 5, 6, 6, 7, 7, 8, 8,10,10, 7, 8, 7, |
8, 8,10, 9,11,11, 7, 7, 8, 8, 8, 9,10,10,11, 9, |
9, 9,10,10,11,11,12,11, 9, 9, 9,10,10,11,11,11, |
12, |
}; |
static const static_codebook _44u6__p6_0 = { |
2, 81, |
(char *)_vq_lengthlist__44u6__p6_0, |
1, -531628032, 1611661312, 4, 0, |
(long *)_vq_quantlist__44u6__p6_0, |
0 |
}; |
static const long _vq_quantlist__44u6__p7_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44u6__p7_0[] = { |
1, 4, 4, 5, 7, 7, 5, 7, 7, 5, 9, 8, 7,10,10, 8, |
10,10, 5, 8, 9, 7,10,10, 7,10, 9, 4, 8, 8, 9,11, |
11, 8,11,11, 7,11,11,10,10,13,10,13,13, 7,11,11, |
10,13,12,10,13,13, 5, 9, 8, 8,11,11, 9,11,11, 7, |
11,11,10,13,13,10,12,13, 7,11,11,10,13,13, 9,13, |
10, |
}; |
static const static_codebook _44u6__p7_0 = { |
4, 81, |
(char *)_vq_lengthlist__44u6__p7_0, |
1, -529137664, 1618345984, 2, 0, |
(long *)_vq_quantlist__44u6__p7_0, |
0 |
}; |
static const long _vq_quantlist__44u6__p7_1[] = { |
5, |
4, |
6, |
3, |
7, |
2, |
8, |
1, |
9, |
0, |
10, |
}; |
static const char _vq_lengthlist__44u6__p7_1[] = { |
3, 4, 4, 6, 6, 7, 7, 8, 8, 8, 8, 4, 5, 5, 7, 6, |
8, 8, 8, 8, 8, 8, 4, 5, 5, 6, 7, 8, 8, 8, 8, 8, |
8, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 6, 7, 7, 7, |
7, 8, 8, 8, 8, 8, 8, 7, 8, 8, 8, 8, 8, 8, 9, 9, |
9, 9, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 8, 8, 8, |
8, 8, 9, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 9, 9, 9, |
9, 9, 9, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 8, 8, |
8, 8, 8, 9, 9, 9, 9, 9, 9, |
}; |
static const static_codebook _44u6__p7_1 = { |
2, 121, |
(char *)_vq_lengthlist__44u6__p7_1, |
1, -531365888, 1611661312, 4, 0, |
(long *)_vq_quantlist__44u6__p7_1, |
0 |
}; |
static const long _vq_quantlist__44u6__p8_0[] = { |
5, |
4, |
6, |
3, |
7, |
2, |
8, |
1, |
9, |
0, |
10, |
}; |
static const char _vq_lengthlist__44u6__p8_0[] = { |
1, 4, 4, 6, 6, 8, 8, 9, 9,10,10, 4, 6, 6, 7, 7, |
9, 9,10,10,11,11, 4, 6, 6, 7, 7, 9, 9,10,10,11, |
11, 6, 8, 8, 9, 9,10,10,11,11,12,12, 6, 8, 8, 9, |
9,10,10,11,11,12,12, 8, 9, 9,10,10,11,11,12,12, |
13,13, 8, 9, 9,10,10,11,11,12,12,13,13,10,10,10, |
11,11,13,13,13,13,15,14, 9,10,10,12,11,12,13,13, |
13,14,15,11,12,12,13,13,13,13,15,14,15,15,11,11, |
12,13,13,14,14,14,15,15,15, |
}; |
static const static_codebook _44u6__p8_0 = { |
2, 121, |
(char *)_vq_lengthlist__44u6__p8_0, |
1, -524582912, 1618345984, 4, 0, |
(long *)_vq_quantlist__44u6__p8_0, |
0 |
}; |
static const long _vq_quantlist__44u6__p8_1[] = { |
5, |
4, |
6, |
3, |
7, |
2, |
8, |
1, |
9, |
0, |
10, |
}; |
static const char _vq_lengthlist__44u6__p8_1[] = { |
3, 5, 5, 6, 6, 7, 7, 7, 7, 7, 7, 5, 6, 5, 7, 7, |
7, 7, 8, 7, 8, 8, 5, 5, 6, 6, 7, 7, 7, 7, 7, 8, |
8, 6, 7, 7, 7, 7, 8, 7, 8, 8, 8, 8, 6, 6, 7, 7, |
7, 7, 8, 8, 8, 8, 8, 7, 7, 7, 8, 8, 8, 8, 8, 8, |
8, 8, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 7, 7, 7, |
8, 8, 8, 8, 8, 8, 8, 8, 7, 8, 8, 8, 8, 8, 8, 8, |
8, 8, 8, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 8, |
8, 8, 8, 8, 8, 8, 8, 8, 8, |
}; |
static const static_codebook _44u6__p8_1 = { |
2, 121, |
(char *)_vq_lengthlist__44u6__p8_1, |
1, -531365888, 1611661312, 4, 0, |
(long *)_vq_quantlist__44u6__p8_1, |
0 |
}; |
static const long _vq_quantlist__44u6__p9_0[] = { |
7, |
6, |
8, |
5, |
9, |
4, |
10, |
3, |
11, |
2, |
12, |
1, |
13, |
0, |
14, |
}; |
static const char _vq_lengthlist__44u6__p9_0[] = { |
1, 3, 2, 9, 8,15,15,15,15,15,15,15,15,15,15, 4, |
8, 9,13,14,14,14,14,14,14,14,14,14,14,14, 5, 8, |
9,14,14,14,14,14,14,14,14,14,14,14,14,11,14,14, |
14,14,14,14,14,14,14,14,14,14,14,14,11,14,14,14, |
14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, |
14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, |
14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, |
14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, |
14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, |
14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, |
14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, |
14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, |
14,14,14,14,14,14,14,14,14,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 const static_codebook _44u6__p9_0 = { |
2, 225, |
(char *)_vq_lengthlist__44u6__p9_0, |
1, -514071552, 1627381760, 4, 0, |
(long *)_vq_quantlist__44u6__p9_0, |
0 |
}; |
static const long _vq_quantlist__44u6__p9_1[] = { |
7, |
6, |
8, |
5, |
9, |
4, |
10, |
3, |
11, |
2, |
12, |
1, |
13, |
0, |
14, |
}; |
static const char _vq_lengthlist__44u6__p9_1[] = { |
1, 4, 4, 7, 7, 8, 9, 8, 8, 9, 8, 9, 8, 9, 9, 4, |
7, 6, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 4, 7, |
6, 9, 9,10,10, 9, 9,10,10,10,10,11,11, 7, 9, 8, |
10,10,11,11,10,10,11,11,11,11,11,11, 7, 8, 9,10, |
10,11,11,10,10,11,11,11,11,11,12, 8,10,10,11,11, |
12,12,11,11,12,12,12,12,13,12, 8,10,10,11,11,12, |
11,11,11,11,12,12,12,12,13, 8, 9, 9,11,10,11,11, |
12,12,12,12,13,12,13,12, 8, 9, 9,11,11,11,11,12, |
12,12,12,12,13,13,13, 9,10,10,11,12,12,12,12,12, |
13,13,13,13,13,13, 9,10,10,11,11,12,12,12,12,13, |
13,13,13,14,13,10,10,10,12,11,12,12,13,13,13,13, |
13,13,13,13,10,10,11,11,11,12,12,13,13,13,13,13, |
13,13,13,10,11,11,12,12,13,12,12,13,13,13,13,13, |
13,14,10,11,11,12,12,13,12,13,13,13,14,13,13,14, |
13, |
}; |
static const static_codebook _44u6__p9_1 = { |
2, 225, |
(char *)_vq_lengthlist__44u6__p9_1, |
1, -522338304, 1620115456, 4, 0, |
(long *)_vq_quantlist__44u6__p9_1, |
0 |
}; |
static const long _vq_quantlist__44u6__p9_2[] = { |
8, |
7, |
9, |
6, |
10, |
5, |
11, |
4, |
12, |
3, |
13, |
2, |
14, |
1, |
15, |
0, |
16, |
}; |
static const char _vq_lengthlist__44u6__p9_2[] = { |
3, 5, 5, 7, 7, 8, 8, 8, 8, 8, 8, 9, 8, 8, 9, 9, |
9, 5, 6, 6, 7, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, |
9, 9, 5, 6, 6, 7, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, |
9, 9, 9, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 8, 8, 8, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 8, 8, 8, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 8, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9,10, 9, 8, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9,10,10, 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, 9,10, 9, 9, 9,10, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9,10, 9, 9, 9,10, 9, 9,10, 9, |
9, 9, 9, 9, 9, 9, 9, 9,10,10,10, 9,10, 9,10,10, |
9, 9, 9, 9, 9, 9, 9, 9, 9,10,10, 9,10,10, 9, 9, |
10, |
}; |
static const static_codebook _44u6__p9_2 = { |
2, 289, |
(char *)_vq_lengthlist__44u6__p9_2, |
1, -529530880, 1611661312, 5, 0, |
(long *)_vq_quantlist__44u6__p9_2, |
0 |
}; |
static const char _huff_lengthlist__44u6__short[] = { |
4,11,16,13,17,13,17,16,17,17, 4, 7, 9, 9,13,10, |
16,12,16,17, 7, 6, 5, 7, 8, 9,12,12,16,17, 6, 9, |
7, 9,10,10,15,15,17,17, 6, 7, 5, 7, 5, 7, 7,10, |
16,17, 7, 9, 8, 9, 8,10,11,11,15,17, 7, 7, 7, 8, |
5, 8, 8, 9,15,17, 8, 7, 9, 9, 7, 8, 7, 2, 7,15, |
14,13,13,15, 5,10, 4, 3, 6,17,17,15,13,17, 7,11, |
7, 6, 9,16, |
}; |
static const static_codebook _huff_book__44u6__short = { |
2, 100, |
(char *)_huff_lengthlist__44u6__short, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist__44u7__long[] = { |
3, 9,14,13,15,14,16,13,13,14, 5, 5, 7, 7, 8, 9, |
11,10,12,15,10, 6, 5, 6, 6, 9,10,10,13,16,10, 6, |
6, 6, 6, 8, 9, 9,12,15,14, 7, 6, 6, 5, 6, 6, 8, |
12,15,10, 8, 7, 7, 6, 7, 7, 7,11,13,14,10, 9, 8, |
5, 6, 4, 5, 9,12,10, 9, 9, 8, 6, 6, 5, 3, 6,11, |
12,11,12,12,10, 9, 8, 5, 5, 8,10,11,15,13,13,13, |
12, 8, 6, 7, |
}; |
static const static_codebook _huff_book__44u7__long = { |
2, 100, |
(char *)_huff_lengthlist__44u7__long, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const long _vq_quantlist__44u7__p1_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44u7__p1_0[] = { |
1, 4, 4, 4, 7, 7, 5, 7, 7, 5, 8, 8, 8,10,10, 7, |
10,10, 5, 8, 8, 7,10,10, 8,10,10, 5, 8, 8, 8,11, |
10, 8,10,10, 8,10,10,10,12,13,10,13,13, 7,10,10, |
10,13,12,10,13,13, 5, 8, 8, 8,11,10, 8,10,11, 7, |
10,10,10,13,13,10,12,13, 8,11,11,10,13,13,10,13, |
12, |
}; |
static const static_codebook _44u7__p1_0 = { |
4, 81, |
(char *)_vq_lengthlist__44u7__p1_0, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__44u7__p1_0, |
0 |
}; |
static const long _vq_quantlist__44u7__p2_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44u7__p2_0[] = { |
3, 4, 4, 5, 6, 6, 5, 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, |
7, 6, 8, 8, 6, 8, 8, 8, 9, 9, 8, 9, 9, 6, 8, 7, |
7, 9, 8, 8, 9, 9, 5, 6, 6, 6, 8, 7, 6, 8, 8, 6, |
8, 8, 8, 9, 9, 7, 8, 9, 6, 8, 8, 8, 9, 9, 8, 9, |
9, |
}; |
static const static_codebook _44u7__p2_0 = { |
4, 81, |
(char *)_vq_lengthlist__44u7__p2_0, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__44u7__p2_0, |
0 |
}; |
static const long _vq_quantlist__44u7__p3_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44u7__p3_0[] = { |
2, 5, 4, 8, 8, 5, 7, 6, 9, 9, 5, 6, 7, 9, 9, 8, |
9, 9,13,12, 8, 9,10,12,13, 5, 7, 7,10, 9, 7, 9, |
9,11,11, 6, 8, 9,11,11,10,11,11,14,14, 9,10,11, |
13,14, 5, 7, 7, 9, 9, 7, 9, 8,11,11, 7, 9, 9,11, |
11, 9,11,10,14,13,10,11,11,14,14, 8,10,10,14,13, |
10,11,12,15,14, 9,11,11,15,14,13,14,14,16,16,12, |
13,14,17,16, 8,10,10,13,13, 9,11,11,14,15,10,11, |
12,14,15,12,14,13,16,16,13,14,15,15,17, 5, 7, 7, |
10,10, 7, 9, 9,11,11, 7, 9, 9,11,11,10,12,11,15, |
14,10,11,12,14,14, 7, 9, 9,12,12, 9,11,11,13,13, |
9,11,11,13,13,11,13,13,14,17,11,13,13,15,16, 6, |
9, 9,11,11, 8,11,10,13,12, 9,11,11,13,13,11,13, |
12,16,14,11,13,13,16,16,10,12,12,15,15,11,13,13, |
16,16,11,13,13,16,15,14,16,17,17,19,14,16,16,18, |
0, 9,11,11,14,15,10,13,12,16,15,11,13,13,16,16, |
14,15,14, 0,16,14,16,16,18, 0, 5, 7, 7,10,10, 7, |
9, 9,12,11, 7, 9, 9,11,12,10,11,11,15,14,10,11, |
12,14,14, 6, 9, 9,11,11, 9,11,11,13,13, 8,10,11, |
12,13,11,13,13,17,15,11,12,13,14,15, 7, 9, 9,11, |
12, 9,11,11,13,13, 9,11,11,13,13,11,13,12,16,16, |
11,13,13,15,14, 9,11,11,14,15,11,13,13,16,15,10, |
12,13,16,16,15,16,16, 0, 0,14,13,15,16,18,10,11, |
11,15,15,11,13,14,16,18,11,13,13,16,15,15,16,16, |
19, 0,14,15,15,16,16, 8,10,10,13,13,10,12,11,16, |
15,10,11,11,16,15,13,15,16,18, 0,13,14,15,17,17, |
9,11,11,15,15,11,13,13,16,18,11,13,13,16,17,15, |
16,16, 0, 0,15,18,16, 0,17, 9,11,11,15,15,11,13, |
12,17,15,11,13,14,16,17,15,18,15, 0,17,15,16,16, |
18,19,13,15,14, 0,18,14,16,16,19,18,14,16,15,19, |
19,16,18,19, 0, 0,16,17, 0, 0, 0,12,14,14,17,17, |
13,16,14, 0,18,14,16,15,18, 0,16,18,16,19,17,18, |
19,17, 0, 0, 8,10,10,14,14, 9,12,11,15,15,10,11, |
12,15,17,13,15,15,18,16,14,16,15,18,17, 9,11,11, |
16,15,11,13,13, 0,16,11,12,13,16,15,15,16,16, 0, |
17,15,15,16,18,17, 9,12,11,15,17,11,13,13,16,16, |
11,14,13,16,16,15,15,16,18,19,16,18,16, 0, 0,12, |
14,14, 0,16,14,16,16, 0,18,13,14,15,16, 0,17,16, |
18, 0, 0,16,16,17,19, 0,13,14,14,17, 0,14,17,16, |
0,19,14,15,15,18,19,17,16,18, 0, 0,15,19,16, 0, |
0, |
}; |
static const static_codebook _44u7__p3_0 = { |
4, 625, |
(char *)_vq_lengthlist__44u7__p3_0, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44u7__p3_0, |
0 |
}; |
static const long _vq_quantlist__44u7__p4_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44u7__p4_0[] = { |
4, 5, 5, 8, 8, 6, 7, 6, 9, 9, 6, 6, 7, 9, 9, 8, |
9, 9,11,11, 8, 9, 9,10,11, 6, 7, 7, 9, 9, 7, 8, |
8,10,10, 6, 7, 8, 9,10, 9,10,10,12,12, 9, 9,10, |
11,12, 6, 7, 7, 9, 9, 6, 8, 7,10, 9, 7, 8, 8,10, |
10, 9,10, 9,12,11, 9,10,10,12,11, 8, 9, 9,11,11, |
9,10,10,12,12, 9,10,10,12,12,11,12,12,13,14,11, |
11,12,13,13, 8, 9, 9,11,11, 9,10,10,12,11, 9,10, |
10,12,12,11,12,11,13,13,11,12,12,13,13, 6, 7, 7, |
9, 9, 7, 8, 7,10,10, 7, 7, 8,10,10, 9,10,10,12, |
11, 9,10,10,12,12, 7, 8, 8,10,10, 8, 8, 9,11,11, |
8, 9, 9,11,11,10,11,11,12,12,10,10,11,12,13, 6, |
7, 7,10,10, 7, 9, 8,11,10, 8, 8, 9,10,11,10,11, |
10,13,11,10,11,11,12,12, 9,10,10,12,12,10,10,11, |
13,13,10,11,11,13,12,12,12,13,13,14,12,12,13,14, |
14, 9,10,10,12,12, 9,10,10,12,12,10,11,11,13,13, |
11,12,11,14,12,12,13,13,14,14, 6, 7, 7, 9, 9, 7, |
8, 7,10,10, 7, 7, 8,10,10, 9,10,10,12,11, 9,10, |
10,11,12, 6, 7, 7,10,10, 8, 9, 8,11,10, 7, 8, 9, |
10,11,10,11,11,13,12,10,10,11,11,13, 7, 8, 8,10, |
10, 8, 9, 9,11,11, 8, 9, 9,11,11,10,11,10,13,12, |
10,11,11,12,12, 9,10,10,12,12,10,11,11,13,12, 9, |
10,10,12,13,12,13,12,14,14,11,11,12,12,14, 9,10, |
10,12,12,10,11,11,13,13,10,11,11,13,13,12,13,12, |
14,14,12,13,12,14,13, 8, 9, 9,11,11, 9,10,10,12, |
12, 9,10,10,12,12,11,12,12,14,13,11,12,12,13,13, |
9,10,10,12,12,10,11,11,13,13,10,11,11,13,12,12, |
13,13,14,14,12,12,13,14,14, 9,10,10,12,12, 9,11, |
10,13,12,10,10,11,12,13,11,13,12,14,13,12,12,13, |
14,14,11,12,12,13,13,11,12,13,14,14,12,13,13,14, |
14,13,13,14,14,16,13,14,14,16,16,11,11,11,13,13, |
11,12,11,14,13,12,12,13,14,15,13,14,12,16,13,14, |
14,14,15,16, 8, 9, 9,11,11, 9,10,10,12,12, 9,10, |
10,12,12,11,12,12,14,13,11,12,12,13,14, 9,10,10, |
12,12,10,11,10,13,12, 9,10,11,12,13,12,13,12,14, |
14,12,12,13,13,14, 9,10,10,12,12,10,11,11,12,13, |
10,11,11,13,13,12,13,12,14,14,12,13,13,14,14,11, |
12,12,13,13,12,13,12,14,14,11,11,12,13,14,13,15, |
14,16,15,13,12,14,13,16,11,12,12,13,13,12,13,13, |
14,14,12,12,12,14,14,13,14,14,15,15,13,14,13,16, |
14, |
}; |
static const static_codebook _44u7__p4_0 = { |
4, 625, |
(char *)_vq_lengthlist__44u7__p4_0, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44u7__p4_0, |
0 |
}; |
static const long _vq_quantlist__44u7__p5_0[] = { |
4, |
3, |
5, |
2, |
6, |
1, |
7, |
0, |
8, |
}; |
static const char _vq_lengthlist__44u7__p5_0[] = { |
2, 3, 3, 6, 6, 7, 8,10,10, 4, 5, 5, 8, 7, 8, 8, |
11,11, 3, 5, 5, 7, 7, 8, 9,11,11, 6, 8, 7, 9, 9, |
10,10,12,12, 6, 7, 8, 9,10,10,10,12,12, 8, 8, 8, |
10,10,12,11,13,13, 8, 8, 9,10,10,11,11,13,13,10, |
11,11,12,12,13,13,14,14,10,11,11,12,12,13,13,14, |
14, |
}; |
static const static_codebook _44u7__p5_0 = { |
2, 81, |
(char *)_vq_lengthlist__44u7__p5_0, |
1, -531628032, 1611661312, 4, 0, |
(long *)_vq_quantlist__44u7__p5_0, |
0 |
}; |
static const long _vq_quantlist__44u7__p6_0[] = { |
4, |
3, |
5, |
2, |
6, |
1, |
7, |
0, |
8, |
}; |
static const char _vq_lengthlist__44u7__p6_0[] = { |
3, 4, 4, 5, 5, 7, 7, 9, 9, 4, 5, 4, 6, 6, 8, 7, |
9, 9, 4, 4, 5, 6, 6, 7, 7, 9, 9, 5, 6, 6, 7, 7, |
8, 8,10,10, 5, 6, 6, 7, 7, 8, 8,10,10, 7, 8, 7, |
8, 8,10, 9,11,11, 7, 7, 8, 8, 8, 9,10,11,11, 9, |
9, 9,10,10,11,10,12,11, 9, 9, 9,10,10,11,11,11, |
12, |
}; |
static const static_codebook _44u7__p6_0 = { |
2, 81, |
(char *)_vq_lengthlist__44u7__p6_0, |
1, -531628032, 1611661312, 4, 0, |
(long *)_vq_quantlist__44u7__p6_0, |
0 |
}; |
static const long _vq_quantlist__44u7__p7_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44u7__p7_0[] = { |
1, 4, 4, 5, 7, 7, 5, 7, 7, 5, 9, 8, 8, 9, 9, 7, |
10,10, 5, 8, 9, 7, 9,10, 8, 9, 9, 4, 9, 9, 9,11, |
10, 8,10,10, 7,11,10,10,10,12,10,12,12, 7,10,10, |
10,12,11,10,12,12, 5, 9, 9, 8,10,10, 9,11,11, 7, |
11,10,10,12,12,10,11,12, 7,10,11,10,12,12,10,12, |
10, |
}; |
static const static_codebook _44u7__p7_0 = { |
4, 81, |
(char *)_vq_lengthlist__44u7__p7_0, |
1, -529137664, 1618345984, 2, 0, |
(long *)_vq_quantlist__44u7__p7_0, |
0 |
}; |
static const long _vq_quantlist__44u7__p7_1[] = { |
5, |
4, |
6, |
3, |
7, |
2, |
8, |
1, |
9, |
0, |
10, |
}; |
static const char _vq_lengthlist__44u7__p7_1[] = { |
3, 4, 4, 6, 6, 7, 7, 8, 8, 8, 8, 4, 5, 5, 6, 6, |
8, 7, 8, 8, 8, 8, 4, 5, 5, 6, 6, 7, 8, 8, 8, 8, |
8, 6, 7, 6, 7, 7, 8, 8, 9, 9, 9, 9, 6, 6, 7, 7, |
7, 8, 8, 9, 9, 9, 9, 7, 8, 7, 8, 8, 9, 9, 9, 9, |
9, 9, 7, 7, 8, 8, 8, 9, 9, 9, 9, 9, 9, 8, 8, 8, |
9, 9, 9, 9,10, 9, 9, 9, 8, 8, 8, 9, 9, 9, 9, 9, |
9, 9,10, 8, 8, 8, 9, 9, 9, 9,10, 9,10,10, 8, 8, |
8, 9, 9, 9, 9, 9,10,10,10, |
}; |
static const static_codebook _44u7__p7_1 = { |
2, 121, |
(char *)_vq_lengthlist__44u7__p7_1, |
1, -531365888, 1611661312, 4, 0, |
(long *)_vq_quantlist__44u7__p7_1, |
0 |
}; |
static const long _vq_quantlist__44u7__p8_0[] = { |
5, |
4, |
6, |
3, |
7, |
2, |
8, |
1, |
9, |
0, |
10, |
}; |
static const char _vq_lengthlist__44u7__p8_0[] = { |
1, 4, 4, 6, 6, 8, 8,10,10,11,11, 4, 6, 6, 7, 7, |
9, 9,11,10,12,12, 5, 6, 5, 7, 7, 9, 9,10,11,12, |
12, 6, 7, 7, 8, 8,10,10,11,11,13,13, 6, 7, 7, 8, |
8,10,10,11,12,13,13, 8, 9, 9,10,10,11,11,12,12, |
14,14, 8, 9, 9,10,10,11,11,12,12,14,14,10,10,10, |
11,11,13,12,14,14,15,15,10,10,10,12,12,13,13,14, |
14,15,15,11,12,12,13,13,14,14,15,14,16,15,11,12, |
12,13,13,14,14,15,15,15,16, |
}; |
static const static_codebook _44u7__p8_0 = { |
2, 121, |
(char *)_vq_lengthlist__44u7__p8_0, |
1, -524582912, 1618345984, 4, 0, |
(long *)_vq_quantlist__44u7__p8_0, |
0 |
}; |
static const long _vq_quantlist__44u7__p8_1[] = { |
5, |
4, |
6, |
3, |
7, |
2, |
8, |
1, |
9, |
0, |
10, |
}; |
static const char _vq_lengthlist__44u7__p8_1[] = { |
4, 5, 5, 6, 6, 7, 7, 7, 7, 7, 7, 5, 6, 6, 7, 7, |
7, 7, 7, 7, 7, 7, 5, 6, 6, 6, 7, 7, 7, 7, 7, 7, |
7, 6, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 6, 7, 7, 7, |
7, 7, 7, 7, 7, 8, 8, 7, 7, 7, 7, 7, 8, 7, 8, 8, |
8, 8, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 7, 7, 7, |
7, 7, 8, 8, 8, 8, 8, 8, 7, 7, 7, 7, 7, 8, 8, 8, |
8, 8, 8, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 7, 7, |
7, 8, 8, 8, 8, 8, 8, 8, 8, |
}; |
static const static_codebook _44u7__p8_1 = { |
2, 121, |
(char *)_vq_lengthlist__44u7__p8_1, |
1, -531365888, 1611661312, 4, 0, |
(long *)_vq_quantlist__44u7__p8_1, |
0 |
}; |
static const long _vq_quantlist__44u7__p9_0[] = { |
5, |
4, |
6, |
3, |
7, |
2, |
8, |
1, |
9, |
0, |
10, |
}; |
static const char _vq_lengthlist__44u7__p9_0[] = { |
1, 3, 3,10,10,10,10,10,10,10,10, 4,10,10,10,10, |
10,10,10,10,10,10, 4,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, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, |
}; |
static const static_codebook _44u7__p9_0 = { |
2, 121, |
(char *)_vq_lengthlist__44u7__p9_0, |
1, -512171520, 1630791680, 4, 0, |
(long *)_vq_quantlist__44u7__p9_0, |
0 |
}; |
static const long _vq_quantlist__44u7__p9_1[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44u7__p9_1[] = { |
1, 4, 4, 6, 5, 8, 6, 9, 8,10, 9,11,10, 4, 6, 6, |
8, 8, 9, 9,11,10,11,11,11,11, 4, 6, 6, 8, 8,10, |
9,11,11,11,11,11,12, 6, 8, 8,10,10,11,11,12,12, |
13,12,13,13, 6, 8, 8,10,10,11,11,12,12,12,13,14, |
13, 8,10,10,11,11,12,13,14,14,14,14,15,15, 8,10, |
10,11,12,12,13,13,14,14,14,14,15, 9,11,11,13,13, |
14,14,15,14,16,15,17,15, 9,11,11,12,13,14,14,15, |
14,15,15,15,16,10,12,12,13,14,15,15,15,15,16,17, |
16,17,10,13,12,13,14,14,16,16,16,16,15,16,17,11, |
13,13,14,15,14,17,15,16,17,17,17,17,11,13,13,14, |
15,15,15,15,17,17,16,17,16, |
}; |
static const static_codebook _44u7__p9_1 = { |
2, 169, |
(char *)_vq_lengthlist__44u7__p9_1, |
1, -518889472, 1622704128, 4, 0, |
(long *)_vq_quantlist__44u7__p9_1, |
0 |
}; |
static const long _vq_quantlist__44u7__p9_2[] = { |
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 const char _vq_lengthlist__44u7__p9_2[] = { |
2, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, |
6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, |
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, |
8, |
}; |
static const static_codebook _44u7__p9_2 = { |
1, 49, |
(char *)_vq_lengthlist__44u7__p9_2, |
1, -526909440, 1611661312, 6, 0, |
(long *)_vq_quantlist__44u7__p9_2, |
0 |
}; |
static const char _huff_lengthlist__44u7__short[] = { |
5,12,17,16,16,17,17,17,17,17, 4, 7,11,11,12, 9, |
17,10,17,17, 7, 7, 8, 9, 7, 9,11,10,15,17, 7, 9, |
10,11,10,12,14,12,16,17, 7, 8, 5, 7, 4, 7, 7, 8, |
16,16, 6,10, 9,10, 7,10,11,11,16,17, 6, 8, 8, 9, |
5, 7, 5, 8,16,17, 5, 5, 8, 7, 6, 7, 7, 6, 6,14, |
12,10,12,11, 7,11, 4, 4, 2, 7,17,15,15,15, 8,15, |
6, 8, 5, 9, |
}; |
static const static_codebook _huff_book__44u7__short = { |
2, 100, |
(char *)_huff_lengthlist__44u7__short, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist__44u8__long[] = { |
3, 9,13,14,14,15,14,14,15,15, 5, 4, 6, 8,10,12, |
12,14,15,15, 9, 5, 4, 5, 8,10,11,13,16,16,10, 7, |
4, 3, 5, 7, 9,11,13,13,10, 9, 7, 4, 4, 6, 8,10, |
12,14,13,11, 9, 6, 5, 5, 6, 8,12,14,13,11,10, 8, |
7, 6, 6, 7,10,14,13,11,12,10, 8, 7, 6, 6, 9,13, |
12,11,14,12,11, 9, 8, 7, 9,11,11,12,14,13,14,11, |
10, 8, 8, 9, |
}; |
static const static_codebook _huff_book__44u8__long = { |
2, 100, |
(char *)_huff_lengthlist__44u8__long, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist__44u8__short[] = { |
6,14,18,18,17,17,17,17,17,17, 4, 7, 9, 9,10,13, |
15,17,17,17, 6, 7, 5, 6, 8,11,16,17,16,17, 5, 7, |
5, 4, 6,10,14,17,17,17, 6, 6, 6, 5, 7,10,13,16, |
17,17, 7, 6, 7, 7, 7, 8, 7,10,15,16,12, 9, 9, 6, |
6, 5, 3, 5,11,15,14,14,13, 5, 5, 7, 3, 4, 8,15, |
17,17,13, 7, 7,10, 6, 6,10,15,17,17,16,10,11,14, |
10,10,15,17, |
}; |
static const static_codebook _huff_book__44u8__short = { |
2, 100, |
(char *)_huff_lengthlist__44u8__short, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const long _vq_quantlist__44u8_p1_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44u8_p1_0[] = { |
1, 5, 5, 5, 7, 7, 5, 7, 7, 5, 7, 7, 8, 9, 9, 7, |
9, 9, 5, 7, 7, 7, 9, 9, 8, 9, 9, 5, 7, 7, 7, 9, |
9, 7, 9, 9, 7, 9, 9, 9,10,11, 9,11,10, 7, 9, 9, |
9,11,10, 9,10,11, 5, 7, 7, 7, 9, 9, 7, 9, 9, 7, |
9, 9, 9,11,10, 9,10,10, 8, 9, 9, 9,11,11, 9,11, |
10, |
}; |
static const static_codebook _44u8_p1_0 = { |
4, 81, |
(char *)_vq_lengthlist__44u8_p1_0, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__44u8_p1_0, |
0 |
}; |
static const long _vq_quantlist__44u8_p2_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44u8_p2_0[] = { |
4, 5, 5, 8, 8, 5, 7, 6, 9, 9, 5, 6, 7, 9, 9, 8, |
9, 9,11,11, 8, 9, 9,11,11, 5, 7, 7, 9, 9, 7, 8, |
8,10,10, 7, 8, 8,10,10, 9,10,10,12,12, 9,10,10, |
11,12, 5, 7, 7, 9, 9, 7, 8, 7,10,10, 7, 8, 8,10, |
10, 9,10, 9,12,11, 9,10,10,12,12, 8, 9, 9,12,11, |
9,10,10,12,12, 9,10,10,12,12,11,12,12,14,14,11, |
11,12,13,14, 8, 9, 9,11,11, 9,10,10,12,12, 9,10, |
10,12,12,11,12,11,13,13,11,12,12,14,14, 5, 7, 7, |
9, 9, 7, 8, 8,10,10, 7, 8, 8,10,10, 9,10,10,12, |
12, 9,10,10,11,12, 7, 8, 8,10,10, 8, 9, 9,11,11, |
8, 9, 9,11,11,10,11,11,12,13,10,11,11,12,13, 6, |
8, 8,10,10, 8, 9, 8,11,10, 8, 9, 9,11,11,10,11, |
10,13,12,10,11,11,13,13, 9,10,10,12,12,10,11,11, |
13,13,10,11,11,13,13,12,12,13,13,14,12,13,13,14, |
14, 9,10,10,12,12,10,11,10,13,12,10,11,11,13,13, |
11,13,12,14,13,12,13,13,14,14, 5, 7, 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,10,10, 8, 9, 9,11,11, 8, 8, 9, |
10,11,10,11,11,13,13,10,10,11,12,13, 7, 8, 8,10, |
10, 8, 9, 9,11,11, 8, 9, 9,11,11,10,11,11,13,13, |
10,11,11,13,12, 9,10,10,12,12,10,11,11,13,13,10, |
10,11,12,13,12,13,13,14,14,12,12,13,13,14, 9,10, |
10,12,12,10,11,11,13,13,10,11,11,13,13,12,13,13, |
15,14,12,13,13,14,13, 8, 9, 9,11,11, 9,10,10,12, |
12, 9,10,10,12,12,12,12,12,14,13,11,12,12,14,14, |
9,10,10,12,12,10,11,11,13,13,10,11,11,13,13,12, |
13,13,14,15,12,13,13,14,15, 9,10,10,12,12,10,11, |
10,13,12,10,11,11,13,13,12,13,12,15,14,12,13,13, |
14,15,11,12,12,14,14,12,13,13,14,14,12,13,13,15, |
14,14,14,14,14,16,14,14,15,16,16,11,12,12,14,14, |
11,12,12,14,14,12,13,13,14,15,13,14,13,16,14,14, |
14,14,16,16, 8, 9, 9,11,11, 9,10,10,12,12, 9,10, |
10,12,12,11,12,12,14,13,11,12,12,14,14, 9,10,10, |
12,12,10,11,11,13,13,10,10,11,12,13,12,13,13,15, |
14,12,12,13,13,14, 9,10,10,12,12,10,11,11,13,13, |
10,11,11,13,13,12,13,13,14,14,12,13,13,15,14,11, |
12,12,14,13,12,13,13,15,14,11,12,12,13,14,14,15, |
14,16,15,13,13,14,13,16,11,12,12,14,14,12,13,13, |
14,15,12,13,12,15,14,14,14,14,16,15,14,15,13,16, |
14, |
}; |
static const static_codebook _44u8_p2_0 = { |
4, 625, |
(char *)_vq_lengthlist__44u8_p2_0, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44u8_p2_0, |
0 |
}; |
static const long _vq_quantlist__44u8_p3_0[] = { |
4, |
3, |
5, |
2, |
6, |
1, |
7, |
0, |
8, |
}; |
static const char _vq_lengthlist__44u8_p3_0[] = { |
3, 4, 4, 5, 5, 7, 7, 9, 9, 4, 5, 4, 6, 6, 7, 7, |
9, 9, 4, 4, 5, 6, 6, 7, 7, 9, 9, 5, 6, 6, 7, 7, |
8, 8,10,10, 6, 6, 6, 7, 7, 8, 8,10,10, 7, 7, 7, |
8, 8, 9, 9,11,10, 7, 7, 7, 8, 8, 9, 9,10,11, 9, |
9, 9,10,10,11,10,12,11, 9, 9, 9, 9,10,11,11,11, |
12, |
}; |
static const static_codebook _44u8_p3_0 = { |
2, 81, |
(char *)_vq_lengthlist__44u8_p3_0, |
1, -531628032, 1611661312, 4, 0, |
(long *)_vq_quantlist__44u8_p3_0, |
0 |
}; |
static const long _vq_quantlist__44u8_p4_0[] = { |
8, |
7, |
9, |
6, |
10, |
5, |
11, |
4, |
12, |
3, |
13, |
2, |
14, |
1, |
15, |
0, |
16, |
}; |
static const char _vq_lengthlist__44u8_p4_0[] = { |
4, 4, 4, 6, 6, 7, 7, 8, 8, 8, 8,10,10,11,11,11, |
11, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9,10,10,11,11, |
12,12, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9,10,10,11, |
11,12,12, 6, 6, 6, 7, 7, 8, 8, 9, 9, 9, 9,10,10, |
11,11,12,12, 6, 6, 6, 7, 7, 8, 8, 9, 9, 9, 9,10, |
10,11,11,12,12, 7, 7, 7, 8, 8, 9, 8,10, 9,10, 9, |
11,10,12,11,13,12, 7, 7, 7, 8, 8, 8, 9, 9,10, 9, |
10,10,11,11,12,12,13, 8, 8, 8, 9, 9, 9, 9,10,10, |
11,10,11,11,12,12,13,13, 8, 8, 8, 9, 9, 9,10,10, |
10,10,11,11,11,12,12,12,13, 8, 9, 9, 9, 9,10, 9, |
11,10,11,11,12,11,13,12,13,13, 8, 9, 9, 9, 9, 9, |
10,10,11,11,11,11,12,12,13,13,13,10,10,10,10,10, |
11,10,11,11,12,11,13,12,13,13,14,13,10,10,10,10, |
10,10,11,11,11,11,12,12,13,13,13,13,14,11,11,11, |
11,11,12,11,12,12,13,12,13,13,14,13,14,14,11,11, |
11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,11, |
12,12,12,12,13,12,13,12,13,13,14,13,14,14,14,14, |
11,12,12,12,12,12,12,13,13,13,13,13,14,14,14,14, |
14, |
}; |
static const static_codebook _44u8_p4_0 = { |
2, 289, |
(char *)_vq_lengthlist__44u8_p4_0, |
1, -529530880, 1611661312, 5, 0, |
(long *)_vq_quantlist__44u8_p4_0, |
0 |
}; |
static const long _vq_quantlist__44u8_p5_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44u8_p5_0[] = { |
1, 4, 4, 5, 7, 7, 5, 7, 7, 5, 8, 8, 8, 9, 9, 7, |
9, 9, 5, 8, 8, 7, 9, 9, 8, 9, 9, 5, 8, 8, 8,10, |
10, 8,10,10, 7,10,10, 9,10,12, 9,12,11, 7,10,10, |
9,11,10, 9,11,12, 5, 8, 8, 8,10,10, 8,10,10, 7, |
10,10, 9,11,11, 9,10,11, 7,10,10, 9,11,11,10,12, |
10, |
}; |
static const static_codebook _44u8_p5_0 = { |
4, 81, |
(char *)_vq_lengthlist__44u8_p5_0, |
1, -529137664, 1618345984, 2, 0, |
(long *)_vq_quantlist__44u8_p5_0, |
0 |
}; |
static const long _vq_quantlist__44u8_p5_1[] = { |
5, |
4, |
6, |
3, |
7, |
2, |
8, |
1, |
9, |
0, |
10, |
}; |
static const char _vq_lengthlist__44u8_p5_1[] = { |
4, 5, 5, 6, 6, 7, 7, 7, 7, 8, 8, 5, 5, 5, 6, 6, |
7, 7, 8, 8, 8, 8, 5, 5, 5, 6, 6, 7, 7, 7, 8, 8, |
8, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 6, 6, 6, 7, |
7, 7, 7, 8, 8, 8, 8, 7, 7, 7, 7, 7, 8, 8, 8, 8, |
8, 8, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 7, 8, 7, |
8, 8, 8, 8, 8, 8, 8, 8, 7, 8, 8, 8, 8, 8, 8, 8, |
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 8, 8, |
8, 8, 8, 8, 8, 8, 8, 9, 9, |
}; |
static const static_codebook _44u8_p5_1 = { |
2, 121, |
(char *)_vq_lengthlist__44u8_p5_1, |
1, -531365888, 1611661312, 4, 0, |
(long *)_vq_quantlist__44u8_p5_1, |
0 |
}; |
static const long _vq_quantlist__44u8_p6_0[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44u8_p6_0[] = { |
2, 4, 4, 6, 6, 7, 7, 8, 8, 9, 9,10,10, 4, 6, 5, |
7, 7, 8, 8, 8, 8, 9, 9,10,10, 4, 6, 6, 7, 7, 8, |
8, 8, 8, 9, 9,10,10, 6, 7, 7, 7, 8, 8, 8, 8, 9, |
9,10,10,10, 6, 7, 7, 8, 8, 8, 8, 9, 8,10, 9,11, |
10, 7, 8, 8, 8, 8, 8, 9, 9, 9,10,10,11,11, 7, 8, |
8, 8, 8, 9, 8, 9, 9,10,10,11,11, 8, 8, 8, 9, 9, |
9, 9, 9,10,10,10,11,11, 8, 8, 8, 9, 9, 9, 9,10, |
9,10,10,11,11, 9, 9, 9, 9,10,10,10,10,10,10,11, |
11,12, 9, 9, 9,10, 9,10,10,10,10,11,10,12,11,10, |
10,10,10,10,11,11,11,11,11,12,12,12,10,10,10,10, |
11,11,11,11,11,12,11,12,12, |
}; |
static const static_codebook _44u8_p6_0 = { |
2, 169, |
(char *)_vq_lengthlist__44u8_p6_0, |
1, -526516224, 1616117760, 4, 0, |
(long *)_vq_quantlist__44u8_p6_0, |
0 |
}; |
static const long _vq_quantlist__44u8_p6_1[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44u8_p6_1[] = { |
3, 4, 4, 5, 5, 4, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, |
5, 5, 5, 5, 5, 5, 5, 5, 5, |
}; |
static const static_codebook _44u8_p6_1 = { |
2, 25, |
(char *)_vq_lengthlist__44u8_p6_1, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44u8_p6_1, |
0 |
}; |
static const long _vq_quantlist__44u8_p7_0[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44u8_p7_0[] = { |
1, 4, 5, 6, 6, 7, 7, 8, 8,10,10,11,11, 5, 6, 6, |
7, 7, 8, 8, 9, 9,11,10,12,11, 5, 6, 6, 7, 7, 8, |
8, 9, 9,10,11,11,12, 6, 7, 7, 8, 8, 9, 9,10,10, |
11,11,12,12, 6, 7, 7, 8, 8, 9, 9,10,10,11,12,13, |
12, 7, 8, 8, 9, 9,10,10,11,11,12,12,13,13, 8, 8, |
8, 9, 9,10,10,11,11,12,12,13,13, 9, 9, 9,10,10, |
11,11,12,12,13,13,14,14, 9, 9, 9,10,10,11,11,12, |
12,13,13,14,14,10,11,11,12,11,13,12,13,13,14,14, |
15,15,10,11,11,11,12,12,13,13,14,14,14,15,15,11, |
12,12,13,13,14,13,15,14,15,15,16,15,11,11,12,13, |
13,13,14,14,14,15,15,15,16, |
}; |
static const static_codebook _44u8_p7_0 = { |
2, 169, |
(char *)_vq_lengthlist__44u8_p7_0, |
1, -523206656, 1618345984, 4, 0, |
(long *)_vq_quantlist__44u8_p7_0, |
0 |
}; |
static const long _vq_quantlist__44u8_p7_1[] = { |
5, |
4, |
6, |
3, |
7, |
2, |
8, |
1, |
9, |
0, |
10, |
}; |
static const char _vq_lengthlist__44u8_p7_1[] = { |
4, 5, 5, 6, 6, 7, 7, 7, 7, 7, 7, 5, 6, 6, 7, 7, |
7, 7, 7, 7, 7, 7, 5, 6, 6, 7, 7, 7, 7, 7, 7, 7, |
7, 6, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 6, 7, 7, 7, |
7, 7, 7, 7, 7, 7, 8, 7, 7, 7, 7, 7, 7, 7, 8, 8, |
8, 8, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 7, 7, 7, |
8, 7, 8, 8, 8, 8, 8, 8, 7, 7, 7, 7, 7, 8, 8, 8, |
8, 8, 8, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 7, 7, |
7, 8, 8, 8, 8, 8, 8, 8, 8, |
}; |
static const static_codebook _44u8_p7_1 = { |
2, 121, |
(char *)_vq_lengthlist__44u8_p7_1, |
1, -531365888, 1611661312, 4, 0, |
(long *)_vq_quantlist__44u8_p7_1, |
0 |
}; |
static const long _vq_quantlist__44u8_p8_0[] = { |
7, |
6, |
8, |
5, |
9, |
4, |
10, |
3, |
11, |
2, |
12, |
1, |
13, |
0, |
14, |
}; |
static const char _vq_lengthlist__44u8_p8_0[] = { |
1, 4, 4, 7, 7, 8, 8, 8, 7, 9, 8,10, 9,11,10, 4, |
6, 6, 8, 8,10, 9, 9, 9,10,10,11,10,12,10, 4, 6, |
6, 8, 8,10,10, 9, 9,10,10,11,11,11,12, 7, 8, 8, |
10,10,11,11,11,10,12,11,12,12,13,11, 7, 8, 8,10, |
10,11,11,10,10,11,11,12,12,13,13, 8,10,10,11,11, |
12,11,12,11,13,12,13,12,14,13, 8,10, 9,11,11,12, |
12,12,12,12,12,13,13,14,13, 8, 9, 9,11,10,12,11, |
13,12,13,13,14,13,14,13, 8, 9, 9,10,11,12,12,12, |
12,13,13,14,15,14,14, 9,10,10,12,11,13,12,13,13, |
14,13,14,14,14,14, 9,10,10,12,12,12,12,13,13,14, |
14,14,15,14,14,10,11,11,13,12,13,12,14,14,14,14, |
14,14,15,15,10,11,11,12,12,13,13,14,14,14,15,15, |
14,16,15,11,12,12,13,12,14,14,14,13,15,14,15,15, |
15,17,11,12,12,13,13,14,14,14,15,15,14,15,15,14, |
17, |
}; |
static const static_codebook _44u8_p8_0 = { |
2, 225, |
(char *)_vq_lengthlist__44u8_p8_0, |
1, -520986624, 1620377600, 4, 0, |
(long *)_vq_quantlist__44u8_p8_0, |
0 |
}; |
static const long _vq_quantlist__44u8_p8_1[] = { |
10, |
9, |
11, |
8, |
12, |
7, |
13, |
6, |
14, |
5, |
15, |
4, |
16, |
3, |
17, |
2, |
18, |
1, |
19, |
0, |
20, |
}; |
static const char _vq_lengthlist__44u8_p8_1[] = { |
4, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 6, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 5, 6, 6, 7, 7, 8, |
8, 9, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 7, |
7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10, 9,10, 8, 8, |
8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 9,10, |
10, 9,10, 8, 9, 8, 9, 9, 9, 9, 9, 9, 9, 9,10, 9, |
10,10,10,10,10,10,10,10, 8, 9, 8, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9,10,10,10,10, 9,10,10, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9,10, 9,10,10,10,10,10,10, |
10,10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 9,10, |
10,10,10,10,10,10,10, 9, 9, 9, 9, 9, 9, 9,10, 9, |
10,10,10,10,10,10,10,10,10,10,10,10, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9,10,10,10,10,10,10,10,10,10,10, |
10, 9, 9, 9, 9, 9, 9,10,10,10,10,10,10,10,10,10, |
10,10,10,10,10,10, 9, 9, 9, 9, 9, 9, 9,10,10,10, |
10,10,10,10,10,10,10,10,10,10,10, 9, 9, 9, 9, 9, |
9, 9,10,10,10,10,10,10,10,10,10,10,10,10,10,10, |
9, 9, 9, 9, 9,10,10,10,10,10,10,10,10,10,10,10, |
10,10,10,10,10, 9, 9, 9,10, 9,10,10,10,10,10,10, |
10,10,10,10,10,10,10,10,10,10, 9, 9, 9, 9, 9,10, |
9,10,10,10,10,10,10,10,10,10,10,10,10,10,10, 9, |
9, 9, 9, 9, 9,10,10,10,10,10,10,10,10,10,10,10, |
10,10,10,10, 9, 9, 9,10, 9,10, 9,10,10,10,10,10, |
10,10,10,10,10,10,10,10,10, |
}; |
static const static_codebook _44u8_p8_1 = { |
2, 441, |
(char *)_vq_lengthlist__44u8_p8_1, |
1, -529268736, 1611661312, 5, 0, |
(long *)_vq_quantlist__44u8_p8_1, |
0 |
}; |
static const long _vq_quantlist__44u8_p9_0[] = { |
4, |
3, |
5, |
2, |
6, |
1, |
7, |
0, |
8, |
}; |
static const char _vq_lengthlist__44u8_p9_0[] = { |
1, 3, 3, 9, 9, 9, 9, 9, 9, 4, 9, 9, 9, 9, 9, 9, |
9, 9, 5, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 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, 8, 8, 8, |
8, |
}; |
static const static_codebook _44u8_p9_0 = { |
2, 81, |
(char *)_vq_lengthlist__44u8_p9_0, |
1, -511895552, 1631393792, 4, 0, |
(long *)_vq_quantlist__44u8_p9_0, |
0 |
}; |
static const long _vq_quantlist__44u8_p9_1[] = { |
9, |
8, |
10, |
7, |
11, |
6, |
12, |
5, |
13, |
4, |
14, |
3, |
15, |
2, |
16, |
1, |
17, |
0, |
18, |
}; |
static const char _vq_lengthlist__44u8_p9_1[] = { |
1, 4, 4, 7, 7, 8, 7, 8, 6, 9, 7,10, 8,11,10,11, |
11,11,11, 4, 7, 6, 9, 9,10, 9, 9, 9,10,10,11,10, |
11,10,11,11,13,11, 4, 7, 7, 9, 9, 9, 9, 9, 9,10, |
10,11,10,11,11,11,12,11,12, 7, 9, 8,11,11,11,11, |
10,10,11,11,12,12,12,12,12,12,14,13, 7, 8, 9,10, |
11,11,11,10,10,11,11,11,11,12,12,14,12,13,14, 8, |
9, 9,11,11,11,11,11,11,12,12,14,12,15,14,14,14, |
15,14, 8, 9, 9,11,11,11,11,12,11,12,12,13,13,13, |
13,13,13,14,14, 8, 9, 9,11,10,12,11,12,12,13,13, |
13,13,15,14,14,14,16,16, 8, 9, 9,10,11,11,12,12, |
12,13,13,13,14,14,14,15,16,15,15, 9,10,10,11,12, |
12,13,13,13,14,14,16,14,14,16,16,16,16,15, 9,10, |
10,11,11,12,13,13,14,15,14,16,14,15,16,16,16,16, |
15,10,11,11,12,13,13,14,15,15,15,15,15,16,15,16, |
15,16,15,15,10,11,11,13,13,14,13,13,15,14,15,15, |
16,15,15,15,16,15,16,10,12,12,14,14,14,14,14,16, |
16,15,15,15,16,16,16,16,16,16,11,12,12,14,14,14, |
14,15,15,16,15,16,15,16,15,16,16,16,16,12,12,13, |
14,14,15,16,16,16,16,16,16,15,16,16,16,16,16,16, |
12,13,13,14,14,14,14,15,16,15,16,16,16,16,16,16, |
16,16,16,12,13,14,14,14,16,15,16,15,16,16,16,16, |
16,16,16,16,16,16,12,14,13,14,15,15,15,16,15,16, |
16,15,16,16,16,16,16,16,16, |
}; |
static const static_codebook _44u8_p9_1 = { |
2, 361, |
(char *)_vq_lengthlist__44u8_p9_1, |
1, -518287360, 1622704128, 5, 0, |
(long *)_vq_quantlist__44u8_p9_1, |
0 |
}; |
static const long _vq_quantlist__44u8_p9_2[] = { |
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 const char _vq_lengthlist__44u8_p9_2[] = { |
2, 3, 4, 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, |
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, |
7, |
}; |
static const static_codebook _44u8_p9_2 = { |
1, 49, |
(char *)_vq_lengthlist__44u8_p9_2, |
1, -526909440, 1611661312, 6, 0, |
(long *)_vq_quantlist__44u8_p9_2, |
0 |
}; |
static const char _huff_lengthlist__44u9__long[] = { |
3, 9,13,13,14,15,14,14,15,15, 5, 5, 9,10,12,12, |
13,14,16,15,10, 6, 6, 6, 8,11,12,13,16,15,11, 7, |
5, 3, 5, 8,10,12,15,15,10,10, 7, 4, 3, 5, 8,10, |
12,12,12,12, 9, 7, 5, 4, 6, 8,10,13,13,12,11, 9, |
7, 5, 5, 6, 9,12,14,12,12,10, 8, 6, 6, 6, 7,11, |
13,12,14,13,10, 8, 7, 7, 7,10,11,11,12,13,12,11, |
10, 8, 8, 9, |
}; |
static const static_codebook _huff_book__44u9__long = { |
2, 100, |
(char *)_huff_lengthlist__44u9__long, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const char _huff_lengthlist__44u9__short[] = { |
9,16,18,18,17,17,17,17,17,17, 5, 8,11,12,11,12, |
17,17,16,16, 6, 6, 8, 8, 9,10,14,15,16,16, 6, 7, |
7, 4, 6, 9,13,16,16,16, 6, 6, 7, 4, 5, 8,11,15, |
17,16, 7, 6, 7, 6, 6, 8, 9,10,14,16,11, 8, 8, 7, |
6, 6, 3, 4,10,15,14,12,12,10, 5, 6, 3, 3, 8,13, |
15,17,15,11, 6, 8, 6, 6, 9,14,17,15,15,12, 8,10, |
9, 9,12,15, |
}; |
static const static_codebook _huff_book__44u9__short = { |
2, 100, |
(char *)_huff_lengthlist__44u9__short, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const long _vq_quantlist__44u9_p1_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44u9_p1_0[] = { |
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, 8, 9, 9, 9,10,11, 9,11,11, 7, 9, 9, |
9,11,10, 9,11,11, 5, 7, 7, 7, 9, 9, 8, 9,10, 7, |
9, 9, 9,11,11, 9,10,11, 7, 9,10, 9,11,11, 9,11, |
10, |
}; |
static const static_codebook _44u9_p1_0 = { |
4, 81, |
(char *)_vq_lengthlist__44u9_p1_0, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__44u9_p1_0, |
0 |
}; |
static const long _vq_quantlist__44u9_p2_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44u9_p2_0[] = { |
3, 5, 5, 8, 8, 5, 7, 7, 9, 9, 6, 7, 7, 9, 9, 8, |
9, 9,11,10, 8, 9, 9,11,11, 6, 7, 7, 9, 9, 7, 8, |
8,10,10, 7, 8, 8, 9,10, 9,10,10,11,11, 9, 9,10, |
11,11, 6, 7, 7, 9, 9, 7, 8, 8,10, 9, 7, 8, 8,10, |
10, 9,10, 9,11,11, 9,10,10,11,11, 8, 9, 9,11,11, |
9,10,10,12,11, 9,10,10,11,12,11,11,11,13,13,11, |
11,11,12,13, 8, 9, 9,11,11, 9,10,10,11,11, 9,10, |
10,12,11,11,12,11,13,12,11,11,12,13,13, 6, 7, 7, |
9, 9, 7, 8, 8,10,10, 7, 8, 8,10,10, 9,10,10,12, |
11, 9,10,10,11,12, 7, 8, 8,10,10, 8, 9, 9,11,11, |
8, 9, 9,10,10,10,11,11,12,12,10,10,11,12,12, 7, |
8, 8,10,10, 8, 9, 8,10,10, 8, 9, 9,10,10,10,11, |
10,12,11,10,10,11,12,12, 9,10,10,11,12,10,11,11, |
12,12,10,11,10,12,12,12,12,12,13,13,11,12,12,13, |
13, 9,10,10,11,11, 9,10,10,12,12,10,11,11,12,13, |
11,12,11,13,12,12,12,12,13,14, 6, 7, 7, 9, 9, 7, |
8, 8,10,10, 7, 8, 8,10,10, 9,10,10,11,11, 9,10, |
10,11,12, 7, 8, 8,10,10, 8, 9, 9,11,10, 8, 8, 9, |
10,10,10,11,10,12,12,10,10,11,11,12, 7, 8, 8,10, |
10, 8, 9, 9,10,10, 8, 9, 9,10,10,10,11,10,12,12, |
10,11,10,12,12, 9,10,10,12,11,10,11,11,12,12, 9, |
10,10,12,12,12,12,12,13,13,11,11,12,12,14, 9,10, |
10,11,12,10,11,11,12,12,10,11,11,12,12,11,12,12, |
14,14,12,12,12,13,13, 8, 9, 9,11,11, 9,10,10,12, |
11, 9,10,10,12,12,11,12,11,13,13,11,11,12,13,13, |
9,10,10,12,12,10,11,11,12,12,10,11,11,12,12,12, |
12,12,14,14,12,12,12,13,13, 9,10,10,12,11,10,11, |
10,12,12,10,11,11,12,12,11,12,12,14,13,12,12,12, |
13,14,11,12,11,13,13,11,12,12,13,13,12,12,12,14, |
14,13,13,13,13,15,13,13,14,15,15,11,11,11,13,13, |
11,12,11,13,13,11,12,12,13,13,12,13,12,15,13,13, |
13,14,14,15, 8, 9, 9,11,11, 9,10,10,11,12, 9,10, |
10,11,12,11,12,11,13,13,11,12,12,13,13, 9,10,10, |
11,12,10,11,10,12,12,10,10,11,12,13,12,12,12,14, |
13,11,12,12,13,14, 9,10,10,12,12,10,11,11,12,12, |
10,11,11,12,12,12,12,12,14,13,12,12,12,14,13,11, |
11,11,13,13,11,12,12,14,13,11,11,12,13,13,13,13, |
13,15,14,12,12,13,13,15,11,12,12,13,13,12,12,12, |
13,14,11,12,12,13,13,13,13,14,14,15,13,13,13,14, |
14, |
}; |
static const static_codebook _44u9_p2_0 = { |
4, 625, |
(char *)_vq_lengthlist__44u9_p2_0, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44u9_p2_0, |
0 |
}; |
static const long _vq_quantlist__44u9_p3_0[] = { |
4, |
3, |
5, |
2, |
6, |
1, |
7, |
0, |
8, |
}; |
static const char _vq_lengthlist__44u9_p3_0[] = { |
3, 4, 4, 5, 5, 7, 7, 8, 8, 4, 5, 5, 6, 6, 7, 7, |
9, 9, 4, 4, 5, 6, 6, 7, 7, 9, 9, 5, 6, 6, 7, 7, |
8, 8, 9, 9, 5, 6, 6, 7, 7, 8, 8, 9, 9, 7, 7, 7, |
8, 8, 9, 9,10,10, 7, 7, 7, 8, 8, 9, 9,10,10, 8, |
9, 9,10, 9,10,10,11,11, 8, 9, 9, 9,10,10,10,11, |
11, |
}; |
static const static_codebook _44u9_p3_0 = { |
2, 81, |
(char *)_vq_lengthlist__44u9_p3_0, |
1, -531628032, 1611661312, 4, 0, |
(long *)_vq_quantlist__44u9_p3_0, |
0 |
}; |
static const long _vq_quantlist__44u9_p4_0[] = { |
8, |
7, |
9, |
6, |
10, |
5, |
11, |
4, |
12, |
3, |
13, |
2, |
14, |
1, |
15, |
0, |
16, |
}; |
static const char _vq_lengthlist__44u9_p4_0[] = { |
4, 5, 5, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9,10,10,11, |
11, 5, 5, 5, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9,10,10, |
11,11, 5, 5, 5, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9,10, |
10,11,11, 6, 6, 6, 7, 6, 7, 7, 8, 8, 9, 9,10,10, |
11,11,12,11, 6, 6, 6, 6, 7, 7, 7, 8, 8, 9, 9,10, |
10,11,11,11,12, 7, 7, 7, 7, 7, 8, 8, 9, 9, 9, 9, |
10,10,11,11,12,12, 7, 7, 7, 7, 7, 8, 8, 9, 9, 9, |
9,10,10,11,11,12,12, 8, 8, 8, 8, 8, 9, 8,10, 9, |
10,10,11,10,12,11,13,12, 8, 8, 8, 8, 8, 9, 9, 9, |
10,10,10,10,11,11,12,12,12, 8, 8, 8, 9, 9, 9, 9, |
10,10,11,10,12,11,12,12,13,12, 8, 8, 8, 9, 9, 9, |
9,10,10,10,11,11,11,12,12,12,13, 9, 9, 9,10,10, |
10,10,11,10,11,11,12,11,13,12,13,13, 9, 9,10,10, |
10,10,10,10,11,11,11,11,12,12,13,13,13,10,11,10, |
11,11,11,11,12,11,12,12,13,12,13,13,14,13,10,10, |
10,11,11,11,11,11,12,12,12,12,13,13,13,13,14,11, |
11,11,12,11,12,12,12,12,13,13,13,13,14,13,14,14, |
11,11,11,11,12,12,12,12,12,12,13,13,13,13,14,14, |
14, |
}; |
static const static_codebook _44u9_p4_0 = { |
2, 289, |
(char *)_vq_lengthlist__44u9_p4_0, |
1, -529530880, 1611661312, 5, 0, |
(long *)_vq_quantlist__44u9_p4_0, |
0 |
}; |
static const long _vq_quantlist__44u9_p5_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44u9_p5_0[] = { |
1, 4, 4, 5, 7, 7, 5, 7, 7, 5, 8, 8, 8, 9, 9, 7, |
9, 9, 5, 8, 8, 7, 9, 9, 8, 9, 9, 5, 8, 8, 8,10, |
10, 8,10,10, 7,10,10, 9,10,12, 9,11,11, 7,10,10, |
9,11,10, 9,11,12, 5, 8, 8, 8,10,10, 8,10,10, 7, |
10,10, 9,12,11, 9,10,11, 7,10,10, 9,11,11,10,12, |
10, |
}; |
static const static_codebook _44u9_p5_0 = { |
4, 81, |
(char *)_vq_lengthlist__44u9_p5_0, |
1, -529137664, 1618345984, 2, 0, |
(long *)_vq_quantlist__44u9_p5_0, |
0 |
}; |
static const long _vq_quantlist__44u9_p5_1[] = { |
5, |
4, |
6, |
3, |
7, |
2, |
8, |
1, |
9, |
0, |
10, |
}; |
static const char _vq_lengthlist__44u9_p5_1[] = { |
5, 5, 5, 6, 6, 7, 7, 7, 7, 7, 7, 5, 6, 6, 6, 6, |
7, 7, 7, 7, 8, 7, 5, 6, 6, 6, 6, 7, 7, 7, 7, 7, |
7, 6, 6, 6, 7, 7, 7, 7, 7, 7, 8, 8, 6, 6, 6, 7, |
7, 7, 7, 7, 7, 8, 8, 7, 7, 7, 7, 7, 8, 7, 8, 8, |
8, 8, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 7, 7, 7, |
8, 7, 8, 8, 8, 8, 8, 8, 7, 7, 7, 7, 8, 8, 8, 8, |
8, 8, 8, 7, 8, 7, 8, 8, 8, 8, 8, 8, 8, 8, 7, 8, |
8, 8, 8, 8, 8, 8, 8, 8, 8, |
}; |
static const static_codebook _44u9_p5_1 = { |
2, 121, |
(char *)_vq_lengthlist__44u9_p5_1, |
1, -531365888, 1611661312, 4, 0, |
(long *)_vq_quantlist__44u9_p5_1, |
0 |
}; |
static const long _vq_quantlist__44u9_p6_0[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44u9_p6_0[] = { |
2, 4, 4, 6, 6, 7, 7, 8, 8, 9, 9,10,10, 4, 6, 5, |
7, 7, 8, 8, 8, 8, 9, 9,10,10, 4, 5, 6, 7, 7, 8, |
8, 8, 8, 9, 9,10,10, 6, 7, 7, 8, 8, 8, 8, 9, 9, |
10,10,10,10, 6, 7, 7, 8, 8, 8, 8, 9, 9,10,10,10, |
10, 7, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11,11, 7, 8, |
8, 8, 8, 9, 9, 9, 9,10,10,11,11, 8, 8, 8, 9, 9, |
9, 9, 9,10,10,10,11,11, 8, 8, 8, 9, 9, 9, 9,10, |
9,10,10,11,11, 9, 9, 9,10,10,10,10,10,11,11,11, |
11,12, 9, 9, 9,10,10,10,10,10,10,11,10,12,11,10, |
10,10,10,10,11,11,11,11,11,12,12,12,10,10,10,10, |
10,11,11,11,11,12,11,12,12, |
}; |
static const static_codebook _44u9_p6_0 = { |
2, 169, |
(char *)_vq_lengthlist__44u9_p6_0, |
1, -526516224, 1616117760, 4, 0, |
(long *)_vq_quantlist__44u9_p6_0, |
0 |
}; |
static const long _vq_quantlist__44u9_p6_1[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44u9_p6_1[] = { |
4, 4, 4, 5, 5, 4, 5, 4, 5, 5, 4, 4, 5, 5, 5, 5, |
5, 5, 5, 5, 5, 5, 5, 5, 5, |
}; |
static const static_codebook _44u9_p6_1 = { |
2, 25, |
(char *)_vq_lengthlist__44u9_p6_1, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44u9_p6_1, |
0 |
}; |
static const long _vq_quantlist__44u9_p7_0[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44u9_p7_0[] = { |
1, 4, 5, 6, 6, 7, 7, 8, 9,10,10,11,11, 5, 6, 6, |
7, 7, 8, 8, 9, 9,10,10,11,11, 5, 6, 6, 7, 7, 8, |
8, 9, 9,10,10,11,11, 6, 7, 7, 8, 8, 9, 9,10,10, |
11,11,12,12, 6, 7, 7, 8, 8, 9, 9,10,10,11,11,12, |
12, 8, 8, 8, 9, 9,10,10,11,11,12,12,13,13, 8, 8, |
8, 9, 9,10,10,11,11,12,12,13,13, 9, 9, 9,10,10, |
11,11,12,12,13,13,13,13, 9, 9, 9,10,10,11,11,12, |
12,13,13,14,14,10,10,10,11,11,12,12,13,13,14,13, |
15,14,10,10,10,11,11,12,12,13,13,14,14,14,14,11, |
11,12,12,12,13,13,14,14,14,14,15,15,11,11,12,12, |
12,13,13,14,14,14,15,15,15, |
}; |
static const static_codebook _44u9_p7_0 = { |
2, 169, |
(char *)_vq_lengthlist__44u9_p7_0, |
1, -523206656, 1618345984, 4, 0, |
(long *)_vq_quantlist__44u9_p7_0, |
0 |
}; |
static const long _vq_quantlist__44u9_p7_1[] = { |
5, |
4, |
6, |
3, |
7, |
2, |
8, |
1, |
9, |
0, |
10, |
}; |
static const char _vq_lengthlist__44u9_p7_1[] = { |
5, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 7, 7, |
7, 7, 7, 7, 7, 7, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, |
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 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, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, |
7, 8, 8, 7, 7, 7, 7, 7, 7, 7, 8, 7, 8, 8, 7, 7, |
7, 7, 7, 7, 7, 8, 8, 8, 8, |
}; |
static const static_codebook _44u9_p7_1 = { |
2, 121, |
(char *)_vq_lengthlist__44u9_p7_1, |
1, -531365888, 1611661312, 4, 0, |
(long *)_vq_quantlist__44u9_p7_1, |
0 |
}; |
static const long _vq_quantlist__44u9_p8_0[] = { |
7, |
6, |
8, |
5, |
9, |
4, |
10, |
3, |
11, |
2, |
12, |
1, |
13, |
0, |
14, |
}; |
static const char _vq_lengthlist__44u9_p8_0[] = { |
1, 4, 4, 7, 7, 8, 8, 8, 8, 9, 9,10, 9,11,10, 4, |
6, 6, 8, 8, 9, 9, 9, 9,10,10,11,10,12,10, 4, 6, |
6, 8, 8, 9,10, 9, 9,10,10,11,11,12,12, 7, 8, 8, |
10,10,11,11,10,10,11,11,12,12,13,12, 7, 8, 8,10, |
10,11,11,10,10,11,11,12,12,12,13, 8,10, 9,11,11, |
12,12,11,11,12,12,13,13,14,13, 8, 9, 9,11,11,12, |
12,11,12,12,12,13,13,14,13, 8, 9, 9,10,10,12,11, |
13,12,13,13,14,13,15,14, 8, 9, 9,10,10,11,12,12, |
12,13,13,13,14,14,14, 9,10,10,12,11,13,12,13,13, |
14,13,14,14,14,15, 9,10,10,11,12,12,12,13,13,14, |
14,14,15,15,15,10,11,11,12,12,13,13,14,14,14,14, |
15,14,16,15,10,11,11,12,12,13,13,13,14,14,14,14, |
14,15,16,11,12,12,13,13,14,13,14,14,15,14,15,16, |
16,16,11,12,12,13,13,14,13,14,14,15,15,15,16,15, |
15, |
}; |
static const static_codebook _44u9_p8_0 = { |
2, 225, |
(char *)_vq_lengthlist__44u9_p8_0, |
1, -520986624, 1620377600, 4, 0, |
(long *)_vq_quantlist__44u9_p8_0, |
0 |
}; |
static const long _vq_quantlist__44u9_p8_1[] = { |
10, |
9, |
11, |
8, |
12, |
7, |
13, |
6, |
14, |
5, |
15, |
4, |
16, |
3, |
17, |
2, |
18, |
1, |
19, |
0, |
20, |
}; |
static const char _vq_lengthlist__44u9_p8_1[] = { |
4, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 6, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 6, 6, 6, 7, 7, 8, |
8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 7, |
7, 7, 8, 8, 8, 8, 9, 8, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9, 9,10, 9,10,10,10, 8, 8, |
8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9,10,10, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
10, 9,10, 9,10,10,10,10, 8, 8, 8, 9, 9, 9, 9, 9, |
9, 9, 9, 9, 9,10,10, 9,10,10,10,10,10, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9, 9,10, 9,10,10,10,10,10,10, |
10,10, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10, |
10,10,10,10,10,10,10, 9, 9, 9, 9, 9, 9, 9, 9, 9, |
9, 9,10,10,10,10,10,10,10,10,10,10, 9, 9, 9, 9, |
9, 9, 9, 9, 9, 9, 9,10,10,10,10,10,10,10,10,10, |
10, 9, 9, 9, 9, 9, 9, 9,10, 9,10,10,10,10,10,10, |
10,10,10,10,10,10, 9, 9, 9, 9, 9, 9, 9, 9,10,10, |
10,10,10,10,10,10,10,10,10,10,10, 9, 9, 9, 9, 9, |
10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, |
9, 9, 9, 9,10, 9, 9,10,10,10,10,10,10,10,10,10, |
10,10,10,10,10, 9, 9, 9,10, 9,10, 9,10,10,10,10, |
10,10,10,10,10,10,10,10,10,10, 9, 9, 9,10, 9,10, |
10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, 9, |
9, 9, 9, 9,10,10,10,10,10,10,10,10,10,10,10,10, |
10,10,10,10, 9, 9, 9,10,10,10,10,10,10,10,10,10, |
10,10,10,10,10,10,10,10,10, |
}; |
static const static_codebook _44u9_p8_1 = { |
2, 441, |
(char *)_vq_lengthlist__44u9_p8_1, |
1, -529268736, 1611661312, 5, 0, |
(long *)_vq_quantlist__44u9_p8_1, |
0 |
}; |
static const long _vq_quantlist__44u9_p9_0[] = { |
7, |
6, |
8, |
5, |
9, |
4, |
10, |
3, |
11, |
2, |
12, |
1, |
13, |
0, |
14, |
}; |
static const char _vq_lengthlist__44u9_p9_0[] = { |
1, 3, 3,11,11,11,11,11,11,11,11,11,11,11,11, 4, |
10,11,11,11,11,11,11,11,11,11,11,11,11,11, 4,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,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,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,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,11,11,11,11,11,11,11, |
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 const static_codebook _44u9_p9_0 = { |
2, 225, |
(char *)_vq_lengthlist__44u9_p9_0, |
1, -510036736, 1631393792, 4, 0, |
(long *)_vq_quantlist__44u9_p9_0, |
0 |
}; |
static const long _vq_quantlist__44u9_p9_1[] = { |
9, |
8, |
10, |
7, |
11, |
6, |
12, |
5, |
13, |
4, |
14, |
3, |
15, |
2, |
16, |
1, |
17, |
0, |
18, |
}; |
static const char _vq_lengthlist__44u9_p9_1[] = { |
1, 4, 4, 7, 7, 8, 7, 8, 7, 9, 8,10, 9,10,10,11, |
11,12,12, 4, 7, 6, 9, 9,10, 9, 9, 8,10,10,11,10, |
12,10,13,12,13,12, 4, 6, 6, 9, 9, 9, 9, 9, 9,10, |
10,11,11,11,12,12,12,12,12, 7, 9, 8,11,10,10,10, |
11,10,11,11,12,12,13,12,13,13,13,13, 7, 8, 9,10, |
10,11,11,10,10,11,11,11,12,13,13,13,13,14,14, 8, |
9, 9,11,11,12,11,12,12,13,12,12,13,13,14,15,14, |
14,14, 8, 9, 9,10,11,11,11,12,12,13,12,13,13,14, |
14,14,15,14,16, 8, 9, 9,11,10,12,12,12,12,15,13, |
13,13,17,14,15,15,15,14, 8, 9, 9,10,11,11,12,13, |
12,13,13,13,14,15,14,14,14,16,15, 9,11,10,12,12, |
13,13,13,13,14,14,16,15,14,14,14,15,15,17, 9,10, |
10,11,11,13,13,13,14,14,13,15,14,15,14,15,16,15, |
16,10,11,11,12,12,13,14,15,14,15,14,14,15,17,16, |
15,15,17,17,10,12,11,13,12,14,14,13,14,15,15,15, |
15,16,17,17,15,17,16,11,12,12,14,13,15,14,15,16, |
17,15,17,15,17,15,15,16,17,15,11,11,12,14,14,14, |
14,14,15,15,16,15,17,17,17,16,17,16,15,12,12,13, |
14,14,14,15,14,15,15,16,16,17,16,17,15,17,17,16, |
12,14,12,14,14,15,15,15,14,14,16,16,16,15,16,16, |
15,17,15,12,13,13,14,15,14,15,17,15,17,16,17,17, |
17,16,17,16,17,17,12,13,13,14,16,15,15,15,16,15, |
17,17,15,17,15,17,16,16,17, |
}; |
static const static_codebook _44u9_p9_1 = { |
2, 361, |
(char *)_vq_lengthlist__44u9_p9_1, |
1, -518287360, 1622704128, 5, 0, |
(long *)_vq_quantlist__44u9_p9_1, |
0 |
}; |
static const long _vq_quantlist__44u9_p9_2[] = { |
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 const char _vq_lengthlist__44u9_p9_2[] = { |
2, 4, 4, 5, 4, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, |
6, 6, 6, 7, 6, 7, 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, |
}; |
static const static_codebook _44u9_p9_2 = { |
1, 49, |
(char *)_vq_lengthlist__44u9_p9_2, |
1, -526909440, 1611661312, 6, 0, |
(long *)_vq_quantlist__44u9_p9_2, |
0 |
}; |
static const char _huff_lengthlist__44un1__long[] = { |
5, 6,12, 9,14, 9, 9,19, 6, 1, 5, 5, 8, 7, 9,19, |
12, 4, 4, 7, 7, 9,11,18, 9, 5, 6, 6, 8, 7, 8,17, |
14, 8, 7, 8, 8,10,12,18, 9, 6, 8, 6, 8, 6, 8,18, |
9, 8,11, 8,11, 7, 5,15,16,18,18,18,17,15,11,18, |
}; |
static const static_codebook _huff_book__44un1__long = { |
2, 64, |
(char *)_huff_lengthlist__44un1__long, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
static const long _vq_quantlist__44un1__p1_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44un1__p1_0[] = { |
1, 4, 4, 5, 8, 7, 5, 7, 8, 5, 8, 8, 8,10,11, 8, |
10,11, 5, 8, 8, 8,11,10, 8,11,10, 4, 9, 9, 8,11, |
11, 8,11,11, 8,12,11,10,12,14,11,13,13, 7,11,11, |
10,13,11,11,13,14, 4, 8, 9, 8,11,11, 8,11,12, 7, |
11,11,11,14,13,10,11,13, 8,11,12,11,13,13,10,14, |
12, |
}; |
static const static_codebook _44un1__p1_0 = { |
4, 81, |
(char *)_vq_lengthlist__44un1__p1_0, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__44un1__p1_0, |
0 |
}; |
static const long _vq_quantlist__44un1__p2_0[] = { |
1, |
0, |
2, |
}; |
static const char _vq_lengthlist__44un1__p2_0[] = { |
2, 4, 4, 5, 6, 6, 5, 6, 6, 5, 7, 7, 7, 8, 8, 6, |
7, 9, 5, 7, 7, 6, 8, 7, 7, 9, 8, 4, 7, 7, 7, 9, |
8, 7, 8, 8, 7, 9, 8, 8, 8,10, 9,10,10, 6, 8, 8, |
7,10, 8, 9,10,10, 5, 7, 7, 7, 8, 8, 7, 8, 9, 6, |
8, 8, 9,10,10, 7, 8,10, 6, 8, 9, 9,10,10, 8,10, |
8, |
}; |
static const static_codebook _44un1__p2_0 = { |
4, 81, |
(char *)_vq_lengthlist__44un1__p2_0, |
1, -535822336, 1611661312, 2, 0, |
(long *)_vq_quantlist__44un1__p2_0, |
0 |
}; |
static const long _vq_quantlist__44un1__p3_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44un1__p3_0[] = { |
1, 5, 5, 8, 8, 5, 8, 7, 9, 9, 5, 7, 8, 9, 9, 9, |
10, 9,12,12, 9, 9,10,11,12, 6, 8, 8,10,10, 8,10, |
10,11,11, 8, 9,10,11,11,10,11,11,13,13,10,11,11, |
12,13, 6, 8, 8,10,10, 8,10, 9,11,11, 8,10,10,11, |
11,10,11,11,13,12,10,11,11,13,12, 9,11,11,15,13, |
10,12,11,15,13,10,11,11,15,14,12,14,13,16,15,12, |
13,13,17,16, 9,11,11,13,15,10,11,12,14,15,10,11, |
12,14,15,12,13,13,15,16,12,13,13,16,16, 5, 8, 8, |
11,11, 8,10,10,12,12, 8,10,10,12,12,11,12,12,14, |
14,11,12,12,14,14, 8,11,10,13,12,10,11,12,12,13, |
10,12,12,13,13,12,12,13,13,15,11,12,13,15,14, 7, |
10,10,12,12, 9,12,11,13,12,10,12,12,13,14,12,13, |
12,15,13,11,13,12,14,15,10,12,12,16,14,11,12,12, |
16,15,11,13,12,17,16,13,13,15,15,17,13,15,15,20, |
17,10,12,12,14,16,11,12,12,15,15,11,13,13,15,18, |
13,14,13,15,15,13,15,14,16,16, 5, 8, 8,11,11, 8, |
10,10,12,12, 8,10,10,12,12,11,12,12,14,14,11,12, |
12,14,15, 7,10,10,13,12,10,12,12,14,13, 9,10,12, |
12,13,11,13,13,15,15,11,12,13,13,15, 8,10,10,12, |
13,10,12,12,13,13,10,12,11,13,13,11,13,12,15,15, |
12,13,12,15,13,10,12,12,16,14,11,12,12,16,15,10, |
12,12,16,14,14,15,14,18,16,13,13,14,15,16,10,12, |
12,14,16,11,13,13,16,16,11,13,12,14,16,13,15,15, |
18,18,13,15,13,16,14, 8,11,11,16,16,10,13,13,17, |
16,10,12,12,16,15,14,16,15,20,17,13,14,14,17,17, |
9,12,12,16,16,11,13,14,16,17,11,13,13,16,16,15, |
15,19,18, 0,14,15,15,18,18, 9,12,12,17,16,11,13, |
12,17,16,11,12,13,15,17,15,16,15, 0,19,14,15,14, |
19,18,12,14,14, 0,16,13,14,14,19,18,13,15,16,17, |
16,15,15,17,18, 0,14,16,16,19, 0,12,14,14,16,18, |
13,15,13,17,18,13,15,14,17,18,15,18,14,18,18,16, |
17,16, 0,17, 8,11,11,15,15,10,12,12,16,16,10,13, |
13,16,16,13,15,14,17,17,14,15,17,17,18, 9,12,12, |
16,15,11,13,13,16,16,11,12,13,17,17,14,14,15,17, |
17,14,15,16, 0,18, 9,12,12,16,17,11,13,13,16,17, |
11,14,13,18,17,14,16,14,17,17,15,17,17,18,18,12, |
14,14, 0,16,13,15,15,19, 0,12,13,15, 0, 0,14,17, |
16,19, 0,16,15,18,18, 0,12,14,14,17, 0,13,14,14, |
17, 0,13,15,14, 0,18,15,16,16, 0,18,15,18,15, 0, |
17, |
}; |
static const static_codebook _44un1__p3_0 = { |
4, 625, |
(char *)_vq_lengthlist__44un1__p3_0, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44un1__p3_0, |
0 |
}; |
static const long _vq_quantlist__44un1__p4_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44un1__p4_0[] = { |
3, 5, 5, 9, 9, 5, 6, 6,10, 9, 5, 6, 6, 9,10,10, |
10,10,12,11, 9,10,10,12,12, 5, 7, 7,10,10, 7, 7, |
8,10,11, 7, 7, 8,10,11,10,10,11,11,13,10,10,11, |
11,13, 6, 7, 7,10,10, 7, 8, 7,11,10, 7, 8, 7,10, |
10,10,11, 9,13,11,10,11,10,13,11,10,10,10,14,13, |
10,11,11,14,13,10,10,11,13,14,12,12,13,15,15,12, |
12,13,13,14,10,10,10,12,13,10,11,10,13,13,10,11, |
11,13,13,12,13,12,14,13,12,13,13,14,13, 5, 7, 7, |
10,10, 7, 8, 8,11,10, 7, 8, 8,10,10,11,11,11,13, |
13,10,11,11,12,12, 7, 8, 8,11,11, 7, 8, 9,10,12, |
8, 9, 9,11,11,11,10,12,11,14,11,11,12,13,13, 6, |
8, 8,10,11, 7, 9, 7,12,10, 8, 9,10,11,12,10,12, |
10,14,11,11,12,11,13,13,10,11,11,14,14,10,10,11, |
13,14,11,12,12,15,13,12,11,14,12,16,12,13,14,15, |
16,10,10,11,13,14,10,11,10,14,12,11,12,12,13,14, |
12,13,11,15,12,14,14,14,15,15, 5, 7, 7,10,10, 7, |
8, 8,10,10, 7, 8, 8,10,11,10,11,10,12,12,10,11, |
11,12,13, 6, 8, 8,11,11, 8, 9, 9,12,11, 7, 7, 9, |
10,12,11,11,11,12,13,11,10,12,11,15, 7, 8, 8,11, |
11, 8, 9, 9,11,11, 7, 9, 8,12,10,11,12,11,13,12, |
11,12,10,15,11,10,11,10,14,12,11,12,11,14,13,10, |
10,11,13,14,13,13,13,17,15,12,11,14,12,15,10,10, |
11,13,14,11,12,12,14,14,10,11,10,14,13,13,14,13, |
16,17,12,14,11,16,12, 9,10,10,14,13,10,11,10,14, |
14,10,11,11,13,13,13,14,14,16,15,12,13,13,14,14, |
9,11,10,14,13,10,10,12,13,14,11,12,11,14,13,13, |
14,14,14,15,13,14,14,15,15, 9,10,11,13,14,10,11, |
10,15,13,11,11,12,12,15,13,14,12,15,14,13,13,14, |
14,15,12,13,12,16,14,11,11,12,15,14,13,15,13,16, |
14,13,12,15,12,17,15,16,15,16,16,12,12,13,13,15, |
11,13,11,15,14,13,13,14,15,17,13,14,12, 0,13,14, |
15,14,15, 0, 9,10,10,13,13,10,11,11,13,13,10,11, |
11,13,13,12,13,12,14,14,13,14,14,15,17, 9,10,10, |
13,13,11,12,11,15,12,10,10,11,13,16,13,14,13,15, |
14,13,13,14,15,16,10,10,11,13,14,11,11,12,13,14, |
10,12,11,14,14,13,13,13,14,15,13,15,13,16,15,12, |
13,12,15,13,12,15,13,15,15,11,11,13,14,15,15,15, |
15,15,17,13,12,14,13,17,12,12,14,14,15,13,13,14, |
14,16,11,13,11,16,15,14,16,16,17, 0,14,13,11,16, |
12, |
}; |
static const static_codebook _44un1__p4_0 = { |
4, 625, |
(char *)_vq_lengthlist__44un1__p4_0, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44un1__p4_0, |
0 |
}; |
static const long _vq_quantlist__44un1__p5_0[] = { |
4, |
3, |
5, |
2, |
6, |
1, |
7, |
0, |
8, |
}; |
static const char _vq_lengthlist__44un1__p5_0[] = { |
1, 4, 4, 7, 7, 8, 8, 9, 9, 4, 6, 5, 8, 7, 8, 8, |
10, 9, 4, 6, 6, 8, 8, 8, 8,10,10, 7, 8, 7, 9, 9, |
9, 9,11,10, 7, 8, 8, 9, 9, 9, 9,10,11, 8, 8, 8, |
9, 9,10,10,11,11, 8, 8, 8, 9, 9,10,10,11,11, 9, |
10,10,11,10,11,11,12,12, 9,10,10,10,11,11,11,12, |
12, |
}; |
static const static_codebook _44un1__p5_0 = { |
2, 81, |
(char *)_vq_lengthlist__44un1__p5_0, |
1, -531628032, 1611661312, 4, 0, |
(long *)_vq_quantlist__44un1__p5_0, |
0 |
}; |
static const long _vq_quantlist__44un1__p6_0[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44un1__p6_0[] = { |
1, 4, 4, 6, 6, 8, 8,10,10,11,11,15,15, 4, 5, 5, |
8, 8, 9, 9,11,11,12,12,16,16, 4, 5, 6, 8, 8, 9, |
9,11,11,12,12,14,14, 7, 8, 8, 9, 9,10,10,11,12, |
13,13,16,17, 7, 8, 8, 9, 9,10,10,12,12,12,13,15, |
15, 9,10,10,10,10,11,11,12,12,13,13,15,16, 9, 9, |
9,10,10,11,11,13,12,13,13,17,17,10,11,11,11,12, |
12,12,13,13,14,15, 0,18,10,11,11,12,12,12,13,14, |
13,14,14,17,16,11,12,12,13,13,14,14,14,14,15,16, |
17,16,11,12,12,13,13,14,14,14,14,15,15,17,17,14, |
15,15,16,16,16,17,17,16, 0,17, 0,18,14,15,15,16, |
16, 0,15,18,18, 0,16, 0, 0, |
}; |
static const static_codebook _44un1__p6_0 = { |
2, 169, |
(char *)_vq_lengthlist__44un1__p6_0, |
1, -526516224, 1616117760, 4, 0, |
(long *)_vq_quantlist__44un1__p6_0, |
0 |
}; |
static const long _vq_quantlist__44un1__p6_1[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44un1__p6_1[] = { |
2, 4, 4, 5, 5, 4, 5, 5, 5, 5, 4, 5, 5, 6, 5, 5, |
6, 5, 6, 6, 5, 6, 6, 6, 6, |
}; |
static const static_codebook _44un1__p6_1 = { |
2, 25, |
(char *)_vq_lengthlist__44un1__p6_1, |
1, -533725184, 1611661312, 3, 0, |
(long *)_vq_quantlist__44un1__p6_1, |
0 |
}; |
static const long _vq_quantlist__44un1__p7_0[] = { |
2, |
1, |
3, |
0, |
4, |
}; |
static const char _vq_lengthlist__44un1__p7_0[] = { |
1, 5, 3,11,11,11,11,11,11,11, 8,11,11,11,11,11, |
11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11, |
11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, |
11,11,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,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, 8,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,11,11,11,11,11,11,11,11,11,11,11,10, |
11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, |
11,11,11,11,11,11,11,11,11,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,11, |
11,11,11,11,11,11,11,11,11,11, 7,11,11,11,11,11, |
11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, |
11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11, |
11,11,11,11,11,11,11,11,11,11,11,11,11,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,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,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,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,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,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,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,11,11,11,11,11,11,11,11,11, |
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 const static_codebook _44un1__p7_0 = { |
4, 625, |
(char *)_vq_lengthlist__44un1__p7_0, |
1, -518709248, 1626677248, 3, 0, |
(long *)_vq_quantlist__44un1__p7_0, |
0 |
}; |
static const long _vq_quantlist__44un1__p7_1[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44un1__p7_1[] = { |
1, 4, 4, 6, 6, 6, 6, 9, 8, 9, 8, 8, 8, 5, 7, 7, |
7, 7, 8, 8, 8,10, 8,10, 8, 9, 5, 7, 7, 8, 7, 7, |
8,10,10,11,10,12,11, 7, 8, 8, 9, 9, 9,10,11,11, |
11,11,11,11, 7, 8, 8, 8, 9, 9, 9,10,10,10,11,11, |
12, 7, 8, 8, 9, 9,10,11,11,12,11,12,11,11, 7, 8, |
8, 9, 9,10,10,11,11,11,12,12,11, 8,10,10,10,10, |
11,11,14,11,12,12,12,13, 9,10,10,10,10,12,11,14, |
11,14,11,12,13,10,11,11,11,11,13,11,14,14,13,13, |
13,14,11,11,11,12,11,12,12,12,13,14,14,13,14,12, |
11,12,12,12,12,13,13,13,14,13,14,14,11,12,12,14, |
12,13,13,12,13,13,14,14,14, |
}; |
static const static_codebook _44un1__p7_1 = { |
2, 169, |
(char *)_vq_lengthlist__44un1__p7_1, |
1, -523010048, 1618608128, 4, 0, |
(long *)_vq_quantlist__44un1__p7_1, |
0 |
}; |
static const long _vq_quantlist__44un1__p7_2[] = { |
6, |
5, |
7, |
4, |
8, |
3, |
9, |
2, |
10, |
1, |
11, |
0, |
12, |
}; |
static const char _vq_lengthlist__44un1__p7_2[] = { |
3, 4, 4, 6, 6, 7, 7, 8, 8, 9, 9, 9, 8, 4, 5, 5, |
6, 6, 8, 8, 9, 8, 9, 9, 9, 9, 4, 5, 5, 7, 6, 8, |
8, 8, 8, 9, 8, 9, 8, 6, 7, 7, 7, 8, 8, 8, 9, 9, |
9, 9, 9, 9, 6, 7, 7, 7, 7, 8, 8, 9, 9, 9, 9, 9, |
9, 7, 8, 8, 8, 8, 9, 8, 9, 9,10, 9, 9,10, 7, 8, |
8, 8, 8, 9, 9, 9, 9, 9, 9,10,10, 8, 9, 9, 9, 9, |
9, 9, 9, 9,10,10, 9,10, 8, 9, 9, 9, 9, 9, 9, 9, |
9, 9, 9,10,10, 9, 9, 9,10, 9, 9,10, 9, 9,10,10, |
10,10, 9, 9, 9, 9, 9, 9, 9,10, 9,10,10,10,10, 9, |
9, 9,10, 9, 9,10,10, 9,10,10,10,10, 9, 9, 9,10, |
9, 9, 9,10,10,10,10,10,10, |
}; |
static const static_codebook _44un1__p7_2 = { |
2, 169, |
(char *)_vq_lengthlist__44un1__p7_2, |
1, -531103744, 1611661312, 4, 0, |
(long *)_vq_quantlist__44un1__p7_2, |
0 |
}; |
static const char _huff_lengthlist__44un1__short[] = { |
12,12,14,12,14,14,14,14,12, 6, 6, 8, 9, 9,11,14, |
12, 4, 2, 6, 6, 7,11,14,13, 6, 5, 7, 8, 9,11,14, |
13, 8, 5, 8, 6, 8,12,14,12, 7, 7, 8, 8, 8,10,14, |
12, 6, 3, 4, 4, 4, 7,14,11, 7, 4, 6, 6, 6, 8,14, |
}; |
static const static_codebook _huff_book__44un1__short = { |
2, 64, |
(char *)_huff_lengthlist__44un1__short, |
0, 0, 0, 0, 0, |
NULL, |
0 |
}; |
/contrib/sdk/sources/libvorbis-1.3.7/lib/codebook.c |
---|
0,0 → 1,461 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2015 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: basic codebook pack/unpack/code/decode operations |
********************************************************************/ |
#include <stdlib.h> |
#include <string.h> |
#include <math.h> |
#include <ogg/ogg.h> |
#include "vorbis/codec.h" |
#include "codebook.h" |
#include "scales.h" |
#include "misc.h" |
#include "os.h" |
/* packs the given codebook into the bitstream **************************/ |
int vorbis_staticbook_pack(const static_codebook *c,oggpack_buffer *opb){ |
long i,j; |
int ordered=0; |
/* first the basic parameters */ |
oggpack_write(opb,0x564342,24); |
oggpack_write(opb,c->dim,16); |
oggpack_write(opb,c->entries,24); |
/* pack the codewords. There are two packings; length ordered and |
length random. Decide between the two now. */ |
for(i=1;i<c->entries;i++) |
if(c->lengthlist[i-1]==0 || c->lengthlist[i]<c->lengthlist[i-1])break; |
if(i==c->entries)ordered=1; |
if(ordered){ |
/* length ordered. We only need to say how many codewords of |
each length. The actual codewords are generated |
deterministically */ |
long count=0; |
oggpack_write(opb,1,1); /* ordered */ |
oggpack_write(opb,c->lengthlist[0]-1,5); /* 1 to 32 */ |
for(i=1;i<c->entries;i++){ |
char this=c->lengthlist[i]; |
char last=c->lengthlist[i-1]; |
if(this>last){ |
for(j=last;j<this;j++){ |
oggpack_write(opb,i-count,ov_ilog(c->entries-count)); |
count=i; |
} |
} |
} |
oggpack_write(opb,i-count,ov_ilog(c->entries-count)); |
}else{ |
/* length random. Again, we don't code the codeword itself, just |
the length. This time, though, we have to encode each length */ |
oggpack_write(opb,0,1); /* unordered */ |
/* algortihmic mapping has use for 'unused entries', which we tag |
here. The algorithmic mapping happens as usual, but the unused |
entry has no codeword. */ |
for(i=0;i<c->entries;i++) |
if(c->lengthlist[i]==0)break; |
if(i==c->entries){ |
oggpack_write(opb,0,1); /* no unused entries */ |
for(i=0;i<c->entries;i++) |
oggpack_write(opb,c->lengthlist[i]-1,5); |
}else{ |
oggpack_write(opb,1,1); /* we have unused entries; thus we tag */ |
for(i=0;i<c->entries;i++){ |
if(c->lengthlist[i]==0){ |
oggpack_write(opb,0,1); |
}else{ |
oggpack_write(opb,1,1); |
oggpack_write(opb,c->lengthlist[i]-1,5); |
} |
} |
} |
} |
/* is the entry number the desired return value, or do we have a |
mapping? If we have a mapping, what type? */ |
oggpack_write(opb,c->maptype,4); |
switch(c->maptype){ |
case 0: |
/* no mapping */ |
break; |
case 1:case 2: |
/* implicitly populated value mapping */ |
/* explicitly populated value mapping */ |
if(!c->quantlist){ |
/* no quantlist? error */ |
return(-1); |
} |
/* values that define the dequantization */ |
oggpack_write(opb,c->q_min,32); |
oggpack_write(opb,c->q_delta,32); |
oggpack_write(opb,c->q_quant-1,4); |
oggpack_write(opb,c->q_sequencep,1); |
{ |
int quantvals; |
switch(c->maptype){ |
case 1: |
/* a single column of (c->entries/c->dim) quantized values for |
building a full value list algorithmically (square lattice) */ |
quantvals=_book_maptype1_quantvals(c); |
break; |
case 2: |
/* every value (c->entries*c->dim total) specified explicitly */ |
quantvals=c->entries*c->dim; |
break; |
default: /* NOT_REACHABLE */ |
quantvals=-1; |
} |
/* quantized values */ |
for(i=0;i<quantvals;i++) |
oggpack_write(opb,labs(c->quantlist[i]),c->q_quant); |
} |
break; |
default: |
/* error case; we don't have any other map types now */ |
return(-1); |
} |
return(0); |
} |
/* unpacks a codebook from the packet buffer into the codebook struct, |
readies the codebook auxiliary structures for decode *************/ |
static_codebook *vorbis_staticbook_unpack(oggpack_buffer *opb){ |
long i,j; |
static_codebook *s=_ogg_calloc(1,sizeof(*s)); |
s->allocedp=1; |
/* make sure alignment is correct */ |
if(oggpack_read(opb,24)!=0x564342)goto _eofout; |
/* first the basic parameters */ |
s->dim=oggpack_read(opb,16); |
s->entries=oggpack_read(opb,24); |
if(s->entries==-1)goto _eofout; |
if(ov_ilog(s->dim)+ov_ilog(s->entries)>24)goto _eofout; |
/* codeword ordering.... length ordered or unordered? */ |
switch((int)oggpack_read(opb,1)){ |
case 0:{ |
long unused; |
/* allocated but unused entries? */ |
unused=oggpack_read(opb,1); |
if((s->entries*(unused?1:5)+7)>>3>opb->storage-oggpack_bytes(opb)) |
goto _eofout; |
/* unordered */ |
s->lengthlist=_ogg_malloc(sizeof(*s->lengthlist)*s->entries); |
/* allocated but unused entries? */ |
if(unused){ |
/* yes, unused entries */ |
for(i=0;i<s->entries;i++){ |
if(oggpack_read(opb,1)){ |
long num=oggpack_read(opb,5); |
if(num==-1)goto _eofout; |
s->lengthlist[i]=num+1; |
}else |
s->lengthlist[i]=0; |
} |
}else{ |
/* all entries used; no tagging */ |
for(i=0;i<s->entries;i++){ |
long num=oggpack_read(opb,5); |
if(num==-1)goto _eofout; |
s->lengthlist[i]=num+1; |
} |
} |
break; |
} |
case 1: |
/* ordered */ |
{ |
long length=oggpack_read(opb,5)+1; |
if(length==0)goto _eofout; |
s->lengthlist=_ogg_malloc(sizeof(*s->lengthlist)*s->entries); |
for(i=0;i<s->entries;){ |
long num=oggpack_read(opb,ov_ilog(s->entries-i)); |
if(num==-1)goto _eofout; |
if(length>32 || num>s->entries-i || |
(num>0 && (num-1)>>(length-1)>1)){ |
goto _errout; |
} |
if(length>32)goto _errout; |
for(j=0;j<num;j++,i++) |
s->lengthlist[i]=length; |
length++; |
} |
} |
break; |
default: |
/* EOF */ |
goto _eofout; |
} |
/* Do we have a mapping to unpack? */ |
switch((s->maptype=oggpack_read(opb,4))){ |
case 0: |
/* no mapping */ |
break; |
case 1: case 2: |
/* implicitly populated value mapping */ |
/* explicitly populated value mapping */ |
s->q_min=oggpack_read(opb,32); |
s->q_delta=oggpack_read(opb,32); |
s->q_quant=oggpack_read(opb,4)+1; |
s->q_sequencep=oggpack_read(opb,1); |
if(s->q_sequencep==-1)goto _eofout; |
{ |
int quantvals=0; |
switch(s->maptype){ |
case 1: |
quantvals=(s->dim==0?0:_book_maptype1_quantvals(s)); |
break; |
case 2: |
quantvals=s->entries*s->dim; |
break; |
} |
/* quantized values */ |
if(((quantvals*s->q_quant+7)>>3)>opb->storage-oggpack_bytes(opb)) |
goto _eofout; |
s->quantlist=_ogg_malloc(sizeof(*s->quantlist)*quantvals); |
for(i=0;i<quantvals;i++) |
s->quantlist[i]=oggpack_read(opb,s->q_quant); |
if(quantvals&&s->quantlist[quantvals-1]==-1)goto _eofout; |
} |
break; |
default: |
goto _errout; |
} |
/* all set */ |
return(s); |
_errout: |
_eofout: |
vorbis_staticbook_destroy(s); |
return(NULL); |
} |
/* returns the number of bits ************************************************/ |
int vorbis_book_encode(codebook *book, int a, oggpack_buffer *b){ |
if(a<0 || a>=book->c->entries)return(0); |
oggpack_write(b,book->codelist[a],book->c->lengthlist[a]); |
return(book->c->lengthlist[a]); |
} |
/* the 'eliminate the decode tree' optimization actually requires the |
codewords to be MSb first, not LSb. This is an annoying inelegancy |
(and one of the first places where carefully thought out design |
turned out to be wrong; Vorbis II and future Ogg codecs should go |
to an MSb bitpacker), but not actually the huge hit it appears to |
be. The first-stage decode table catches most words so that |
bitreverse is not in the main execution path. */ |
static ogg_uint32_t bitreverse(ogg_uint32_t x){ |
x= ((x>>16)&0x0000ffff) | ((x<<16)&0xffff0000); |
x= ((x>> 8)&0x00ff00ff) | ((x<< 8)&0xff00ff00); |
x= ((x>> 4)&0x0f0f0f0f) | ((x<< 4)&0xf0f0f0f0); |
x= ((x>> 2)&0x33333333) | ((x<< 2)&0xcccccccc); |
return((x>> 1)&0x55555555) | ((x<< 1)&0xaaaaaaaa); |
} |
STIN long decode_packed_entry_number(codebook *book, oggpack_buffer *b){ |
int read=book->dec_maxlength; |
long lo,hi; |
long lok = oggpack_look(b,book->dec_firsttablen); |
if (lok >= 0) { |
long entry = book->dec_firsttable[lok]; |
if(entry&0x80000000UL){ |
lo=(entry>>15)&0x7fff; |
hi=book->used_entries-(entry&0x7fff); |
}else{ |
oggpack_adv(b, book->dec_codelengths[entry-1]); |
return(entry-1); |
} |
}else{ |
lo=0; |
hi=book->used_entries; |
} |
/* Single entry codebooks use a firsttablen of 1 and a |
dec_maxlength of 1. If a single-entry codebook gets here (due to |
failure to read one bit above), the next look attempt will also |
fail and we'll correctly kick out instead of trying to walk the |
underformed tree */ |
lok = oggpack_look(b, read); |
while(lok<0 && read>1) |
lok = oggpack_look(b, --read); |
if(lok<0)return -1; |
/* bisect search for the codeword in the ordered list */ |
{ |
ogg_uint32_t testword=bitreverse((ogg_uint32_t)lok); |
while(hi-lo>1){ |
long p=(hi-lo)>>1; |
long test=book->codelist[lo+p]>testword; |
lo+=p&(test-1); |
hi-=p&(-test); |
} |
if(book->dec_codelengths[lo]<=read){ |
oggpack_adv(b, book->dec_codelengths[lo]); |
return(lo); |
} |
} |
oggpack_adv(b, read); |
return(-1); |
} |
/* Decode side is specced and easier, because we don't need to find |
matches using different criteria; we simply read and map. There are |
two things we need to do 'depending': |
We may need to support interleave. We don't really, but it's |
convenient to do it here rather than rebuild the vector later. |
Cascades may be additive or multiplicitive; this is not inherent in |
the codebook, but set in the code using the codebook. Like |
interleaving, it's easiest to do it here. |
addmul==0 -> declarative (set the value) |
addmul==1 -> additive |
addmul==2 -> multiplicitive */ |
/* returns the [original, not compacted] entry number or -1 on eof *********/ |
long vorbis_book_decode(codebook *book, oggpack_buffer *b){ |
if(book->used_entries>0){ |
long packed_entry=decode_packed_entry_number(book,b); |
if(packed_entry>=0) |
return(book->dec_index[packed_entry]); |
} |
/* if there's no dec_index, the codebook unpacking isn't collapsed */ |
return(-1); |
} |
/* returns 0 on OK or -1 on eof *************************************/ |
/* decode vector / dim granularity gaurding is done in the upper layer */ |
long vorbis_book_decodevs_add(codebook *book,float *a,oggpack_buffer *b,int n){ |
if(book->used_entries>0){ |
int step=n/book->dim; |
long *entry = alloca(sizeof(*entry)*step); |
float **t = alloca(sizeof(*t)*step); |
int i,j,o; |
for (i = 0; i < step; i++) { |
entry[i]=decode_packed_entry_number(book,b); |
if(entry[i]==-1)return(-1); |
t[i] = book->valuelist+entry[i]*book->dim; |
} |
for(i=0,o=0;i<book->dim;i++,o+=step) |
for (j=0;o+j<n && j<step;j++) |
a[o+j]+=t[j][i]; |
} |
return(0); |
} |
/* decode vector / dim granularity gaurding is done in the upper layer */ |
long vorbis_book_decodev_add(codebook *book,float *a,oggpack_buffer *b,int n){ |
if(book->used_entries>0){ |
int i,j,entry; |
float *t; |
for(i=0;i<n;){ |
entry = decode_packed_entry_number(book,b); |
if(entry==-1)return(-1); |
t = book->valuelist+entry*book->dim; |
for(j=0;i<n && j<book->dim;) |
a[i++]+=t[j++]; |
} |
} |
return(0); |
} |
/* unlike the others, we guard against n not being an integer number |
of <dim> internally rather than in the upper layer (called only by |
floor0) */ |
long vorbis_book_decodev_set(codebook *book,float *a,oggpack_buffer *b,int n){ |
if(book->used_entries>0){ |
int i,j,entry; |
float *t; |
for(i=0;i<n;){ |
entry = decode_packed_entry_number(book,b); |
if(entry==-1)return(-1); |
t = book->valuelist+entry*book->dim; |
for (j=0;i<n && j<book->dim;){ |
a[i++]=t[j++]; |
} |
} |
}else{ |
int i; |
for(i=0;i<n;){ |
a[i++]=0.f; |
} |
} |
return(0); |
} |
long vorbis_book_decodevv_add(codebook *book,float **a,long offset,int ch, |
oggpack_buffer *b,int n){ |
long i,j,entry; |
int chptr=0; |
if(book->used_entries>0){ |
int m=(offset+n)/ch; |
for(i=offset/ch;i<m;){ |
entry = decode_packed_entry_number(book,b); |
if(entry==-1)return(-1); |
{ |
const float *t = book->valuelist+entry*book->dim; |
for (j=0;i<m && j<book->dim;j++){ |
a[chptr++][i]+=t[j]; |
if(chptr==ch){ |
chptr=0; |
i++; |
} |
} |
} |
} |
} |
return(0); |
} |
/contrib/sdk/sources/libvorbis-1.3.7/lib/codebook.h |
---|
0,0 → 1,117 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2015 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: basic shared codebook operations |
********************************************************************/ |
#ifndef _V_CODEBOOK_H_ |
#define _V_CODEBOOK_H_ |
#include <ogg/ogg.h> |
/* This structure encapsulates huffman and VQ style encoding books; it |
doesn't do anything specific to either. |
valuelist/quantlist are nonNULL (and q_* significant) only if |
there's entry->value mapping to be done. |
If encode-side mapping must be done (and thus the entry needs to be |
hunted), the auxiliary encode pointer will point to a decision |
tree. This is true of both VQ and huffman, but is mostly useful |
with VQ. |
*/ |
typedef struct static_codebook{ |
long dim; /* codebook dimensions (elements per vector) */ |
long entries; /* codebook entries */ |
char *lengthlist; /* codeword lengths in bits */ |
/* mapping ***************************************************************/ |
int maptype; /* 0=none |
1=implicitly populated values from map column |
2=listed arbitrary values */ |
/* The below does a linear, single monotonic sequence mapping. */ |
long q_min; /* packed 32 bit float; quant value 0 maps to minval */ |
long q_delta; /* packed 32 bit float; val 1 - val 0 == delta */ |
int q_quant; /* bits: 0 < quant <= 16 */ |
int q_sequencep; /* bitflag */ |
long *quantlist; /* map == 1: (int)(entries^(1/dim)) element column map |
map == 2: list of dim*entries quantized entry vals |
*/ |
int allocedp; |
} static_codebook; |
typedef struct codebook{ |
long dim; /* codebook dimensions (elements per vector) */ |
long entries; /* codebook entries */ |
long used_entries; /* populated codebook entries */ |
const static_codebook *c; |
/* for encode, the below are entry-ordered, fully populated */ |
/* for decode, the below are ordered by bitreversed codeword and only |
used entries are populated */ |
float *valuelist; /* list of dim*entries actual entry values */ |
ogg_uint32_t *codelist; /* list of bitstream codewords for each entry */ |
int *dec_index; /* only used if sparseness collapsed */ |
char *dec_codelengths; |
ogg_uint32_t *dec_firsttable; |
int dec_firsttablen; |
int dec_maxlength; |
/* The current encoder uses only centered, integer-only lattice books. */ |
int quantvals; |
int minval; |
int delta; |
} codebook; |
extern void vorbis_staticbook_destroy(static_codebook *b); |
extern int vorbis_book_init_encode(codebook *dest,const static_codebook *source); |
extern int vorbis_book_init_decode(codebook *dest,const static_codebook *source); |
extern void vorbis_book_clear(codebook *b); |
extern float *_book_unquantize(const static_codebook *b,int n,int *map); |
extern float *_book_logdist(const static_codebook *b,float *vals); |
extern float _float32_unpack(long val); |
extern long _float32_pack(float val); |
extern int _best(codebook *book, float *a, int step); |
extern long _book_maptype1_quantvals(const static_codebook *b); |
extern int vorbis_book_besterror(codebook *book,float *a,int step,int addmul); |
extern long vorbis_book_codeword(codebook *book,int entry); |
extern long vorbis_book_codelen(codebook *book,int entry); |
extern int vorbis_staticbook_pack(const static_codebook *c,oggpack_buffer *b); |
extern static_codebook *vorbis_staticbook_unpack(oggpack_buffer *b); |
extern int vorbis_book_encode(codebook *book, int a, oggpack_buffer *b); |
extern long vorbis_book_decode(codebook *book, oggpack_buffer *b); |
extern long vorbis_book_decodevs_add(codebook *book, float *a, |
oggpack_buffer *b,int n); |
extern long vorbis_book_decodev_set(codebook *book, float *a, |
oggpack_buffer *b,int n); |
extern long vorbis_book_decodev_add(codebook *book, float *a, |
oggpack_buffer *b,int n); |
extern long vorbis_book_decodevv_add(codebook *book, float **a, |
long off,int ch, |
oggpack_buffer *b,int n); |
#endif |
/contrib/sdk/sources/libvorbis-1.3.7/lib/codec_internal.h |
---|
0,0 → 1,166 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: libvorbis codec headers |
********************************************************************/ |
#ifndef _V_CODECI_H_ |
#define _V_CODECI_H_ |
#include "envelope.h" |
#include "codebook.h" |
#define BLOCKTYPE_IMPULSE 0 |
#define BLOCKTYPE_PADDING 1 |
#define BLOCKTYPE_TRANSITION 0 |
#define BLOCKTYPE_LONG 1 |
#define PACKETBLOBS 15 |
typedef struct vorbis_block_internal{ |
float **pcmdelay; /* this is a pointer into local storage */ |
float ampmax; |
int blocktype; |
oggpack_buffer *packetblob[PACKETBLOBS]; /* initialized, must be freed; |
blob [PACKETBLOBS/2] points to |
the oggpack_buffer in the |
main vorbis_block */ |
} vorbis_block_internal; |
typedef void vorbis_look_floor; |
typedef void vorbis_look_residue; |
typedef void vorbis_look_transform; |
/* mode ************************************************************/ |
typedef struct { |
int blockflag; |
int windowtype; |
int transformtype; |
int mapping; |
} vorbis_info_mode; |
typedef void vorbis_info_floor; |
typedef void vorbis_info_residue; |
typedef void vorbis_info_mapping; |
#include "psy.h" |
#include "bitrate.h" |
typedef struct private_state { |
/* local lookup storage */ |
envelope_lookup *ve; /* envelope lookup */ |
int window[2]; |
vorbis_look_transform **transform[2]; /* block, type */ |
drft_lookup fft_look[2]; |
int modebits; |
vorbis_look_floor **flr; |
vorbis_look_residue **residue; |
vorbis_look_psy *psy; |
vorbis_look_psy_global *psy_g_look; |
/* local storage, only used on the encoding side. This way the |
application does not need to worry about freeing some packets' |
memory and not others'; packet storage is always tracked. |
Cleared next call to a _dsp_ function */ |
unsigned char *header; |
unsigned char *header1; |
unsigned char *header2; |
bitrate_manager_state bms; |
ogg_int64_t sample_count; |
} private_state; |
/* codec_setup_info contains all the setup information specific to the |
specific compression/decompression mode in progress (eg, |
psychoacoustic settings, channel setup, options, codebook |
etc). |
*********************************************************************/ |
#include "highlevel.h" |
typedef struct codec_setup_info { |
/* Vorbis supports only short and long blocks, but allows the |
encoder to choose the sizes */ |
long blocksizes[2]; |
/* modes are the primary means of supporting on-the-fly different |
blocksizes, different channel mappings (LR or M/A), |
different residue backends, etc. Each mode consists of a |
blocksize flag and a mapping (along with the mapping setup */ |
int modes; |
int maps; |
int floors; |
int residues; |
int books; |
int psys; /* encode only */ |
vorbis_info_mode *mode_param[64]; |
int map_type[64]; |
vorbis_info_mapping *map_param[64]; |
int floor_type[64]; |
vorbis_info_floor *floor_param[64]; |
int residue_type[64]; |
vorbis_info_residue *residue_param[64]; |
static_codebook *book_param[256]; |
codebook *fullbooks; |
vorbis_info_psy *psy_param[4]; /* encode only */ |
vorbis_info_psy_global psy_g_param; |
bitrate_manager_info bi; |
highlevel_encode_setup hi; /* used only by vorbisenc.c. It's a |
highly redundant structure, but |
improves clarity of program flow. */ |
int halfrate_flag; /* painless downsample for decode */ |
} codec_setup_info; |
extern vorbis_look_psy_global *_vp_global_look(vorbis_info *vi); |
extern void _vp_global_free(vorbis_look_psy_global *look); |
typedef struct { |
int sorted_index[VIF_POSIT+2]; |
int forward_index[VIF_POSIT+2]; |
int reverse_index[VIF_POSIT+2]; |
int hineighbor[VIF_POSIT]; |
int loneighbor[VIF_POSIT]; |
int posts; |
int n; |
int quant_q; |
vorbis_info_floor1 *vi; |
long phrasebits; |
long postbits; |
long frames; |
} vorbis_look_floor1; |
extern int *floor1_fit(vorbis_block *vb,vorbis_look_floor1 *look, |
const float *logmdct, /* in */ |
const float *logmask); |
extern int *floor1_interpolate_fit(vorbis_block *vb,vorbis_look_floor1 *look, |
int *A,int *B, |
int del); |
extern int floor1_encode(oggpack_buffer *opb,vorbis_block *vb, |
vorbis_look_floor1 *look, |
int *post,int *ilogmask); |
#endif |
/contrib/sdk/sources/libvorbis-1.3.7/lib/envelope.c |
---|
0,0 → 1,374 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: PCM data envelope analysis |
********************************************************************/ |
#include <stdlib.h> |
#include <string.h> |
#include <stdio.h> |
#include <math.h> |
#include <ogg/ogg.h> |
#include "vorbis/codec.h" |
#include "codec_internal.h" |
#include "os.h" |
#include "scales.h" |
#include "envelope.h" |
#include "mdct.h" |
#include "misc.h" |
void _ve_envelope_init(envelope_lookup *e,vorbis_info *vi){ |
codec_setup_info *ci=vi->codec_setup; |
vorbis_info_psy_global *gi=&ci->psy_g_param; |
int ch=vi->channels; |
int i,j; |
int n=e->winlength=128; |
e->searchstep=64; /* not random */ |
e->minenergy=gi->preecho_minenergy; |
e->ch=ch; |
e->storage=128; |
e->cursor=ci->blocksizes[1]/2; |
e->mdct_win=_ogg_calloc(n,sizeof(*e->mdct_win)); |
mdct_init(&e->mdct,n); |
for(i=0;i<n;i++){ |
e->mdct_win[i]=sin(i/(n-1.)*M_PI); |
e->mdct_win[i]*=e->mdct_win[i]; |
} |
/* magic follows */ |
e->band[0].begin=2; e->band[0].end=4; |
e->band[1].begin=4; e->band[1].end=5; |
e->band[2].begin=6; e->band[2].end=6; |
e->band[3].begin=9; e->band[3].end=8; |
e->band[4].begin=13; e->band[4].end=8; |
e->band[5].begin=17; e->band[5].end=8; |
e->band[6].begin=22; e->band[6].end=8; |
for(j=0;j<VE_BANDS;j++){ |
n=e->band[j].end; |
e->band[j].window=_ogg_malloc(n*sizeof(*e->band[0].window)); |
for(i=0;i<n;i++){ |
e->band[j].window[i]=sin((i+.5)/n*M_PI); |
e->band[j].total+=e->band[j].window[i]; |
} |
e->band[j].total=1./e->band[j].total; |
} |
e->filter=_ogg_calloc(VE_BANDS*ch,sizeof(*e->filter)); |
e->mark=_ogg_calloc(e->storage,sizeof(*e->mark)); |
} |
void _ve_envelope_clear(envelope_lookup *e){ |
int i; |
mdct_clear(&e->mdct); |
for(i=0;i<VE_BANDS;i++) |
_ogg_free(e->band[i].window); |
_ogg_free(e->mdct_win); |
_ogg_free(e->filter); |
_ogg_free(e->mark); |
memset(e,0,sizeof(*e)); |
} |
/* fairly straight threshhold-by-band based until we find something |
that works better and isn't patented. */ |
static int _ve_amp(envelope_lookup *ve, |
vorbis_info_psy_global *gi, |
float *data, |
envelope_band *bands, |
envelope_filter_state *filters){ |
long n=ve->winlength; |
int ret=0; |
long i,j; |
float decay; |
/* 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 minV=ve->minenergy; |
float *vec=alloca(n*sizeof(*vec)); |
/* stretch is used to gradually lengthen the number of windows |
considered prevoius-to-potential-trigger */ |
int stretch=max(VE_MINSTRETCH,ve->stretch/2); |
float penalty=gi->stretch_penalty-(ve->stretch/2-VE_MINSTRETCH); |
if(penalty<0.f)penalty=0.f; |
if(penalty>gi->stretch_penalty)penalty=gi->stretch_penalty; |
/*_analysis_output_always("lpcm",seq2,data,n,0,0, |
totalshift+pos*ve->searchstep);*/ |
/* window and transform */ |
for(i=0;i<n;i++) |
vec[i]=data[i]*ve->mdct_win[i]; |
mdct_forward(&ve->mdct,vec,vec); |
/*_analysis_output_always("mdct",seq2,vec,n/2,0,1,0); */ |
/* near-DC spreading function; this has nothing to do with |
psychoacoustics, just sidelobe leakage and window size */ |
{ |
float temp=vec[0]*vec[0]+.7*vec[1]*vec[1]+.2*vec[2]*vec[2]; |
int ptr=filters->nearptr; |
/* the accumulation is regularly refreshed from scratch to avoid |
floating point creep */ |
if(ptr==0){ |
decay=filters->nearDC_acc=filters->nearDC_partialacc+temp; |
filters->nearDC_partialacc=temp; |
}else{ |
decay=filters->nearDC_acc+=temp; |
filters->nearDC_partialacc+=temp; |
} |
filters->nearDC_acc-=filters->nearDC[ptr]; |
filters->nearDC[ptr]=temp; |
decay*=(1./(VE_NEARDC+1)); |
filters->nearptr++; |
if(filters->nearptr>=VE_NEARDC)filters->nearptr=0; |
decay=todB(&decay)*.5-15.f; |
} |
/* perform spreading and limiting, also smooth the spectrum. yes, |
the MDCT results in all real coefficients, but it still *behaves* |
like real/imaginary pairs */ |
for(i=0;i<n/2;i+=2){ |
float val=vec[i]*vec[i]+vec[i+1]*vec[i+1]; |
val=todB(&val)*.5f; |
if(val<decay)val=decay; |
if(val<minV)val=minV; |
vec[i>>1]=val; |
decay-=8.; |
} |
/*_analysis_output_always("spread",seq2++,vec,n/4,0,0,0);*/ |
/* perform preecho/postecho triggering by band */ |
for(j=0;j<VE_BANDS;j++){ |
float acc=0.; |
float valmax,valmin; |
/* accumulate amplitude */ |
for(i=0;i<bands[j].end;i++) |
acc+=vec[i+bands[j].begin]*bands[j].window[i]; |
acc*=bands[j].total; |
/* convert amplitude to delta */ |
{ |
int p,this=filters[j].ampptr; |
float postmax,postmin,premax=-99999.f,premin=99999.f; |
p=this; |
p--; |
if(p<0)p+=VE_AMP; |
postmax=max(acc,filters[j].ampbuf[p]); |
postmin=min(acc,filters[j].ampbuf[p]); |
for(i=0;i<stretch;i++){ |
p--; |
if(p<0)p+=VE_AMP; |
premax=max(premax,filters[j].ampbuf[p]); |
premin=min(premin,filters[j].ampbuf[p]); |
} |
valmin=postmin-premin; |
valmax=postmax-premax; |
/*filters[j].markers[pos]=valmax;*/ |
filters[j].ampbuf[this]=acc; |
filters[j].ampptr++; |
if(filters[j].ampptr>=VE_AMP)filters[j].ampptr=0; |
} |
/* look at min/max, decide trigger */ |
if(valmax>gi->preecho_thresh[j]+penalty){ |
ret|=1; |
ret|=4; |
} |
if(valmin<gi->postecho_thresh[j]-penalty)ret|=2; |
} |
return(ret); |
} |
#if 0 |
static int seq=0; |
static ogg_int64_t totalshift=-1024; |
#endif |
long _ve_envelope_search(vorbis_dsp_state *v){ |
vorbis_info *vi=v->vi; |
codec_setup_info *ci=vi->codec_setup; |
vorbis_info_psy_global *gi=&ci->psy_g_param; |
envelope_lookup *ve=((private_state *)(v->backend_state))->ve; |
long i,j; |
int first=ve->current/ve->searchstep; |
int last=v->pcm_current/ve->searchstep-VE_WIN; |
if(first<0)first=0; |
/* make sure we have enough storage to match the PCM */ |
if(last+VE_WIN+VE_POST>ve->storage){ |
ve->storage=last+VE_WIN+VE_POST; /* be sure */ |
ve->mark=_ogg_realloc(ve->mark,ve->storage*sizeof(*ve->mark)); |
} |
for(j=first;j<last;j++){ |
int ret=0; |
ve->stretch++; |
if(ve->stretch>VE_MAXSTRETCH*2) |
ve->stretch=VE_MAXSTRETCH*2; |
for(i=0;i<ve->ch;i++){ |
float *pcm=v->pcm[i]+ve->searchstep*(j); |
ret|=_ve_amp(ve,gi,pcm,ve->band,ve->filter+i*VE_BANDS); |
} |
ve->mark[j+VE_POST]=0; |
if(ret&1){ |
ve->mark[j]=1; |
ve->mark[j+1]=1; |
} |
if(ret&2){ |
ve->mark[j]=1; |
if(j>0)ve->mark[j-1]=1; |
} |
if(ret&4)ve->stretch=-1; |
} |
ve->current=last*ve->searchstep; |
{ |
long centerW=v->centerW; |
long testW= |
centerW+ |
ci->blocksizes[v->W]/4+ |
ci->blocksizes[1]/2+ |
ci->blocksizes[0]/4; |
j=ve->cursor; |
while(j<ve->current-(ve->searchstep)){/* account for postecho |
working back one window */ |
if(j>=testW)return(1); |
ve->cursor=j; |
if(ve->mark[j/ve->searchstep]){ |
if(j>centerW){ |
#if 0 |
if(j>ve->curmark){ |
float *marker=alloca(v->pcm_current*sizeof(*marker)); |
int l,m; |
memset(marker,0,sizeof(*marker)*v->pcm_current); |
fprintf(stderr,"mark! seq=%d, cursor:%fs time:%fs\n", |
seq, |
(totalshift+ve->cursor)/44100., |
(totalshift+j)/44100.); |
_analysis_output_always("pcmL",seq,v->pcm[0],v->pcm_current,0,0,totalshift); |
_analysis_output_always("pcmR",seq,v->pcm[1],v->pcm_current,0,0,totalshift); |
_analysis_output_always("markL",seq,v->pcm[0],j,0,0,totalshift); |
_analysis_output_always("markR",seq,v->pcm[1],j,0,0,totalshift); |
for(m=0;m<VE_BANDS;m++){ |
char buf[80]; |
sprintf(buf,"delL%d",m); |
for(l=0;l<last;l++)marker[l*ve->searchstep]=ve->filter[m].markers[l]*.1; |
_analysis_output_always(buf,seq,marker,v->pcm_current,0,0,totalshift); |
} |
for(m=0;m<VE_BANDS;m++){ |
char buf[80]; |
sprintf(buf,"delR%d",m); |
for(l=0;l<last;l++)marker[l*ve->searchstep]=ve->filter[m+VE_BANDS].markers[l]*.1; |
_analysis_output_always(buf,seq,marker,v->pcm_current,0,0,totalshift); |
} |
for(l=0;l<last;l++)marker[l*ve->searchstep]=ve->mark[l]*.4; |
_analysis_output_always("mark",seq,marker,v->pcm_current,0,0,totalshift); |
seq++; |
} |
#endif |
ve->curmark=j; |
if(j>=testW)return(1); |
return(0); |
} |
} |
j+=ve->searchstep; |
} |
} |
return(-1); |
} |
int _ve_envelope_mark(vorbis_dsp_state *v){ |
envelope_lookup *ve=((private_state *)(v->backend_state))->ve; |
vorbis_info *vi=v->vi; |
codec_setup_info *ci=vi->codec_setup; |
long centerW=v->centerW; |
long beginW=centerW-ci->blocksizes[v->W]/4; |
long endW=centerW+ci->blocksizes[v->W]/4; |
if(v->W){ |
beginW-=ci->blocksizes[v->lW]/4; |
endW+=ci->blocksizes[v->nW]/4; |
}else{ |
beginW-=ci->blocksizes[0]/4; |
endW+=ci->blocksizes[0]/4; |
} |
if(ve->curmark>=beginW && ve->curmark<endW)return(1); |
{ |
long first=beginW/ve->searchstep; |
long last=endW/ve->searchstep; |
long i; |
for(i=first;i<last;i++) |
if(ve->mark[i])return(1); |
} |
return(0); |
} |
void _ve_envelope_shift(envelope_lookup *e,long shift){ |
int smallsize=e->current/e->searchstep+VE_POST; /* adjust for placing marks |
ahead of ve->current */ |
int smallshift=shift/e->searchstep; |
memmove(e->mark,e->mark+smallshift,(smallsize-smallshift)*sizeof(*e->mark)); |
#if 0 |
for(i=0;i<VE_BANDS*e->ch;i++) |
memmove(e->filter[i].markers, |
e->filter[i].markers+smallshift, |
(1024-smallshift)*sizeof(*(*e->filter).markers)); |
totalshift+=shift; |
#endif |
e->current-=shift; |
if(e->curmark>=0) |
e->curmark-=shift; |
e->cursor-=shift; |
} |
/contrib/sdk/sources/libvorbis-1.3.7/lib/envelope.h |
---|
0,0 → 1,79 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: PCM data envelope analysis and manipulation |
********************************************************************/ |
#ifndef _V_ENVELOPE_ |
#define _V_ENVELOPE_ |
#include "mdct.h" |
#define VE_PRE 16 |
#define VE_WIN 4 |
#define VE_POST 2 |
#define VE_AMP (VE_PRE+VE_POST-1) |
#define VE_BANDS 7 |
#define VE_NEARDC 15 |
#define VE_MINSTRETCH 2 /* a bit less than short block */ |
#define VE_MAXSTRETCH 12 /* one-third full block */ |
typedef struct { |
float ampbuf[VE_AMP]; |
int ampptr; |
float nearDC[VE_NEARDC]; |
float nearDC_acc; |
float nearDC_partialacc; |
int nearptr; |
} envelope_filter_state; |
typedef struct { |
int begin; |
int end; |
float *window; |
float total; |
} envelope_band; |
typedef struct { |
int ch; |
int winlength; |
int searchstep; |
float minenergy; |
mdct_lookup mdct; |
float *mdct_win; |
envelope_band band[VE_BANDS]; |
envelope_filter_state *filter; |
int stretch; |
int *mark; |
long storage; |
long current; |
long curmark; |
long cursor; |
} envelope_lookup; |
extern void _ve_envelope_init(envelope_lookup *e,vorbis_info *vi); |
extern void _ve_envelope_clear(envelope_lookup *e); |
extern long _ve_envelope_search(vorbis_dsp_state *v); |
extern void _ve_envelope_shift(envelope_lookup *e,long shift); |
extern int _ve_envelope_mark(vorbis_dsp_state *v); |
#endif |
/contrib/sdk/sources/libvorbis-1.3.7/lib/floor0.c |
---|
0,0 → 1,223 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2015 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: floor backend 0 implementation |
********************************************************************/ |
#include <stdlib.h> |
#include <string.h> |
#include <math.h> |
#include <ogg/ogg.h> |
#include "vorbis/codec.h" |
#include "codec_internal.h" |
#include "registry.h" |
#include "lpc.h" |
#include "lsp.h" |
#include "codebook.h" |
#include "scales.h" |
#include "misc.h" |
#include "os.h" |
#include "misc.h" |
#include <stdio.h> |
typedef struct { |
int ln; |
int m; |
int **linearmap; |
int n[2]; |
vorbis_info_floor0 *vi; |
long bits; |
long frames; |
} vorbis_look_floor0; |
/***********************************************/ |
static void floor0_free_info(vorbis_info_floor *i){ |
vorbis_info_floor0 *info=(vorbis_info_floor0 *)i; |
if(info){ |
memset(info,0,sizeof(*info)); |
_ogg_free(info); |
} |
} |
static void floor0_free_look(vorbis_look_floor *i){ |
vorbis_look_floor0 *look=(vorbis_look_floor0 *)i; |
if(look){ |
if(look->linearmap){ |
if(look->linearmap[0])_ogg_free(look->linearmap[0]); |
if(look->linearmap[1])_ogg_free(look->linearmap[1]); |
_ogg_free(look->linearmap); |
} |
memset(look,0,sizeof(*look)); |
_ogg_free(look); |
} |
} |
static vorbis_info_floor *floor0_unpack (vorbis_info *vi,oggpack_buffer *opb){ |
codec_setup_info *ci=vi->codec_setup; |
int j; |
vorbis_info_floor0 *info=_ogg_malloc(sizeof(*info)); |
info->order=oggpack_read(opb,8); |
info->rate=oggpack_read(opb,16); |
info->barkmap=oggpack_read(opb,16); |
info->ampbits=oggpack_read(opb,6); |
info->ampdB=oggpack_read(opb,8); |
info->numbooks=oggpack_read(opb,4)+1; |
if(info->order<1)goto err_out; |
if(info->rate<1)goto err_out; |
if(info->barkmap<1)goto err_out; |
if(info->numbooks<1)goto err_out; |
for(j=0;j<info->numbooks;j++){ |
info->books[j]=oggpack_read(opb,8); |
if(info->books[j]<0 || info->books[j]>=ci->books)goto err_out; |
if(ci->book_param[info->books[j]]->maptype==0)goto err_out; |
if(ci->book_param[info->books[j]]->dim<1)goto err_out; |
} |
return(info); |
err_out: |
floor0_free_info(info); |
return(NULL); |
} |
/* initialize Bark scale and normalization lookups. We could do this |
with static tables, but Vorbis allows a number of possible |
combinations, so it's best to do it computationally. |
The below is authoritative in terms of defining scale mapping. |
Note that the scale depends on the sampling rate as well as the |
linear block and mapping sizes */ |
static void floor0_map_lazy_init(vorbis_block *vb, |
vorbis_info_floor *infoX, |
vorbis_look_floor0 *look){ |
if(!look->linearmap[vb->W]){ |
vorbis_dsp_state *vd=vb->vd; |
vorbis_info *vi=vd->vi; |
codec_setup_info *ci=vi->codec_setup; |
vorbis_info_floor0 *info=(vorbis_info_floor0 *)infoX; |
int W=vb->W; |
int n=ci->blocksizes[W]/2,j; |
/* we choose a scaling constant so that: |
floor(bark(rate/2-1)*C)=mapped-1 |
floor(bark(rate/2)*C)=mapped */ |
float scale=look->ln/toBARK(info->rate/2.f); |
/* the mapping from a linear scale to a smaller bark scale is |
straightforward. We do *not* make sure that the linear mapping |
does not skip bark-scale bins; the decoder simply skips them and |
the encoder may do what it wishes in filling them. They're |
necessary in some mapping combinations to keep the scale spacing |
accurate */ |
look->linearmap[W]=_ogg_malloc((n+1)*sizeof(**look->linearmap)); |
for(j=0;j<n;j++){ |
int val=floor( toBARK((info->rate/2.f)/n*j) |
*scale); /* bark numbers represent band edges */ |
if(val>=look->ln)val=look->ln-1; /* guard against the approximation */ |
look->linearmap[W][j]=val; |
} |
look->linearmap[W][j]=-1; |
look->n[W]=n; |
} |
} |
static vorbis_look_floor *floor0_look(vorbis_dsp_state *vd, |
vorbis_info_floor *i){ |
vorbis_info_floor0 *info=(vorbis_info_floor0 *)i; |
vorbis_look_floor0 *look=_ogg_calloc(1,sizeof(*look)); |
(void)vd; |
look->m=info->order; |
look->ln=info->barkmap; |
look->vi=info; |
look->linearmap=_ogg_calloc(2,sizeof(*look->linearmap)); |
return look; |
} |
static void *floor0_inverse1(vorbis_block *vb,vorbis_look_floor *i){ |
vorbis_look_floor0 *look=(vorbis_look_floor0 *)i; |
vorbis_info_floor0 *info=look->vi; |
int j,k; |
int ampraw=oggpack_read(&vb->opb,info->ampbits); |
if(ampraw>0){ /* also handles the -1 out of data case */ |
long maxval=(1<<info->ampbits)-1; |
float amp=(float)ampraw/maxval*info->ampdB; |
int booknum=oggpack_read(&vb->opb,ov_ilog(info->numbooks)); |
if(booknum!=-1 && booknum<info->numbooks){ /* be paranoid */ |
codec_setup_info *ci=vb->vd->vi->codec_setup; |
codebook *b=ci->fullbooks+info->books[booknum]; |
float last=0.f; |
/* the additional b->dim is a guard against any possible stack |
smash; b->dim is provably more than we can overflow the |
vector */ |
float *lsp=_vorbis_block_alloc(vb,sizeof(*lsp)*(look->m+b->dim+1)); |
if(vorbis_book_decodev_set(b,lsp,&vb->opb,look->m)==-1)goto eop; |
for(j=0;j<look->m;){ |
for(k=0;j<look->m && k<b->dim;k++,j++)lsp[j]+=last; |
last=lsp[j-1]; |
} |
lsp[look->m]=amp; |
return(lsp); |
} |
} |
eop: |
return(NULL); |
} |
static int floor0_inverse2(vorbis_block *vb,vorbis_look_floor *i, |
void *memo,float *out){ |
vorbis_look_floor0 *look=(vorbis_look_floor0 *)i; |
vorbis_info_floor0 *info=look->vi; |
floor0_map_lazy_init(vb,info,look); |
if(memo){ |
float *lsp=(float *)memo; |
float amp=lsp[look->m]; |
/* take the coefficients back to a spectral envelope curve */ |
vorbis_lsp_to_curve(out, |
look->linearmap[vb->W], |
look->n[vb->W], |
look->ln, |
lsp,look->m,amp,(float)info->ampdB); |
return(1); |
} |
memset(out,0,sizeof(*out)*look->n[vb->W]); |
return(0); |
} |
/* export hooks */ |
const vorbis_func_floor floor0_exportbundle={ |
NULL,&floor0_unpack,&floor0_look,&floor0_free_info, |
&floor0_free_look,&floor0_inverse1,&floor0_inverse2 |
}; |
/contrib/sdk/sources/libvorbis-1.3.7/lib/floor1.c |
---|
0,0 → 1,1086 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2015 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: floor backend 1 implementation |
********************************************************************/ |
#include <stdlib.h> |
#include <string.h> |
#include <math.h> |
#include <ogg/ogg.h> |
#include "vorbis/codec.h" |
#include "codec_internal.h" |
#include "registry.h" |
#include "codebook.h" |
#include "misc.h" |
#include "scales.h" |
#include <stdio.h> |
#define floor1_rangedB 140 /* floor 1 fixed at -140dB to 0dB range */ |
typedef struct lsfit_acc{ |
int x0; |
int x1; |
int xa; |
int ya; |
int x2a; |
int y2a; |
int xya; |
int an; |
int xb; |
int yb; |
int x2b; |
int y2b; |
int xyb; |
int bn; |
} lsfit_acc; |
/***********************************************/ |
static void floor1_free_info(vorbis_info_floor *i){ |
vorbis_info_floor1 *info=(vorbis_info_floor1 *)i; |
if(info){ |
memset(info,0,sizeof(*info)); |
_ogg_free(info); |
} |
} |
static void floor1_free_look(vorbis_look_floor *i){ |
vorbis_look_floor1 *look=(vorbis_look_floor1 *)i; |
if(look){ |
/*fprintf(stderr,"floor 1 bit usage %f:%f (%f total)\n", |
(float)look->phrasebits/look->frames, |
(float)look->postbits/look->frames, |
(float)(look->postbits+look->phrasebits)/look->frames);*/ |
memset(look,0,sizeof(*look)); |
_ogg_free(look); |
} |
} |
static void floor1_pack (vorbis_info_floor *i,oggpack_buffer *opb){ |
vorbis_info_floor1 *info=(vorbis_info_floor1 *)i; |
int j,k; |
int count=0; |
int rangebits; |
int maxposit=info->postlist[1]; |
int maxclass=-1; |
/* save out partitions */ |
oggpack_write(opb,info->partitions,5); /* only 0 to 31 legal */ |
for(j=0;j<info->partitions;j++){ |
oggpack_write(opb,info->partitionclass[j],4); /* only 0 to 15 legal */ |
if(maxclass<info->partitionclass[j])maxclass=info->partitionclass[j]; |
} |
/* save out partition classes */ |
for(j=0;j<maxclass+1;j++){ |
oggpack_write(opb,info->class_dim[j]-1,3); /* 1 to 8 */ |
oggpack_write(opb,info->class_subs[j],2); /* 0 to 3 */ |
if(info->class_subs[j])oggpack_write(opb,info->class_book[j],8); |
for(k=0;k<(1<<info->class_subs[j]);k++) |
oggpack_write(opb,info->class_subbook[j][k]+1,8); |
} |
/* save out the post list */ |
oggpack_write(opb,info->mult-1,2); /* only 1,2,3,4 legal now */ |
/* maxposit cannot legally be less than 1; this is encode-side, we |
can assume our setup is OK */ |
oggpack_write(opb,ov_ilog(maxposit-1),4); |
rangebits=ov_ilog(maxposit-1); |
for(j=0,k=0;j<info->partitions;j++){ |
count+=info->class_dim[info->partitionclass[j]]; |
for(;k<count;k++) |
oggpack_write(opb,info->postlist[k+2],rangebits); |
} |
} |
static int icomp(const void *a,const void *b){ |
return(**(int **)a-**(int **)b); |
} |
static vorbis_info_floor *floor1_unpack (vorbis_info *vi,oggpack_buffer *opb){ |
codec_setup_info *ci=vi->codec_setup; |
int j,k,count=0,maxclass=-1,rangebits; |
vorbis_info_floor1 *info=_ogg_calloc(1,sizeof(*info)); |
/* read partitions */ |
info->partitions=oggpack_read(opb,5); /* only 0 to 31 legal */ |
for(j=0;j<info->partitions;j++){ |
info->partitionclass[j]=oggpack_read(opb,4); /* only 0 to 15 legal */ |
if(info->partitionclass[j]<0)goto err_out; |
if(maxclass<info->partitionclass[j])maxclass=info->partitionclass[j]; |
} |
/* read partition classes */ |
for(j=0;j<maxclass+1;j++){ |
info->class_dim[j]=oggpack_read(opb,3)+1; /* 1 to 8 */ |
info->class_subs[j]=oggpack_read(opb,2); /* 0,1,2,3 bits */ |
if(info->class_subs[j]<0) |
goto err_out; |
if(info->class_subs[j])info->class_book[j]=oggpack_read(opb,8); |
if(info->class_book[j]<0 || info->class_book[j]>=ci->books) |
goto err_out; |
for(k=0;k<(1<<info->class_subs[j]);k++){ |
info->class_subbook[j][k]=oggpack_read(opb,8)-1; |
if(info->class_subbook[j][k]<-1 || info->class_subbook[j][k]>=ci->books) |
goto err_out; |
} |
} |
/* read the post list */ |
info->mult=oggpack_read(opb,2)+1; /* only 1,2,3,4 legal now */ |
rangebits=oggpack_read(opb,4); |
if(rangebits<0)goto err_out; |
for(j=0,k=0;j<info->partitions;j++){ |
count+=info->class_dim[info->partitionclass[j]]; |
if(count>VIF_POSIT) goto err_out; |
for(;k<count;k++){ |
int t=info->postlist[k+2]=oggpack_read(opb,rangebits); |
if(t<0 || t>=(1<<rangebits)) |
goto err_out; |
} |
} |
info->postlist[0]=0; |
info->postlist[1]=1<<rangebits; |
/* don't allow repeated values in post list as they'd result in |
zero-length segments */ |
{ |
int *sortpointer[VIF_POSIT+2]; |
for(j=0;j<count+2;j++)sortpointer[j]=info->postlist+j; |
qsort(sortpointer,count+2,sizeof(*sortpointer),icomp); |
for(j=1;j<count+2;j++) |
if(*sortpointer[j-1]==*sortpointer[j])goto err_out; |
} |
return(info); |
err_out: |
floor1_free_info(info); |
return(NULL); |
} |
static vorbis_look_floor *floor1_look(vorbis_dsp_state *vd, |
vorbis_info_floor *in){ |
int *sortpointer[VIF_POSIT+2]; |
vorbis_info_floor1 *info=(vorbis_info_floor1 *)in; |
vorbis_look_floor1 *look=_ogg_calloc(1,sizeof(*look)); |
int i,j,n=0; |
(void)vd; |
look->vi=info; |
look->n=info->postlist[1]; |
/* we drop each position value in-between already decoded values, |
and use linear interpolation to predict each new value past the |
edges. The positions are read in the order of the position |
list... we precompute the bounding positions in the lookup. Of |
course, the neighbors can change (if a position is declined), but |
this is an initial mapping */ |
for(i=0;i<info->partitions;i++)n+=info->class_dim[info->partitionclass[i]]; |
n+=2; |
look->posts=n; |
/* also store a sorted position index */ |
for(i=0;i<n;i++)sortpointer[i]=info->postlist+i; |
qsort(sortpointer,n,sizeof(*sortpointer),icomp); |
/* points from sort order back to range number */ |
for(i=0;i<n;i++)look->forward_index[i]=sortpointer[i]-info->postlist; |
/* points from range order to sorted position */ |
for(i=0;i<n;i++)look->reverse_index[look->forward_index[i]]=i; |
/* we actually need the post values too */ |
for(i=0;i<n;i++)look->sorted_index[i]=info->postlist[look->forward_index[i]]; |
/* quantize values to multiplier spec */ |
switch(info->mult){ |
case 1: /* 1024 -> 256 */ |
look->quant_q=256; |
break; |
case 2: /* 1024 -> 128 */ |
look->quant_q=128; |
break; |
case 3: /* 1024 -> 86 */ |
look->quant_q=86; |
break; |
case 4: /* 1024 -> 64 */ |
look->quant_q=64; |
break; |
} |
/* discover our neighbors for decode where we don't use fit flags |
(that would push the neighbors outward) */ |
for(i=0;i<n-2;i++){ |
int lo=0; |
int hi=1; |
int lx=0; |
int hx=look->n; |
int currentx=info->postlist[i+2]; |
for(j=0;j<i+2;j++){ |
int x=info->postlist[j]; |
if(x>lx && x<currentx){ |
lo=j; |
lx=x; |
} |
if(x<hx && x>currentx){ |
hi=j; |
hx=x; |
} |
} |
look->loneighbor[i]=lo; |
look->hineighbor[i]=hi; |
} |
return(look); |
} |
static int render_point(int x0,int x1,int y0,int y1,int x){ |
y0&=0x7fff; /* mask off flag */ |
y1&=0x7fff; |
{ |
int dy=y1-y0; |
int adx=x1-x0; |
int ady=abs(dy); |
int err=ady*(x-x0); |
int off=err/adx; |
if(dy<0)return(y0-off); |
return(y0+off); |
} |
} |
static int vorbis_dBquant(const float *x){ |
int i= *x*7.3142857f+1023.5f; |
if(i>1023)return(1023); |
if(i<0)return(0); |
return i; |
} |
static const float FLOOR1_fromdB_LOOKUP[256]={ |
1.0649863e-07F, 1.1341951e-07F, 1.2079015e-07F, 1.2863978e-07F, |
1.3699951e-07F, 1.4590251e-07F, 1.5538408e-07F, 1.6548181e-07F, |
1.7623575e-07F, 1.8768855e-07F, 1.9988561e-07F, 2.128753e-07F, |
2.2670913e-07F, 2.4144197e-07F, 2.5713223e-07F, 2.7384213e-07F, |
2.9163793e-07F, 3.1059021e-07F, 3.3077411e-07F, 3.5226968e-07F, |
3.7516214e-07F, 3.9954229e-07F, 4.2550680e-07F, 4.5315863e-07F, |
4.8260743e-07F, 5.1396998e-07F, 5.4737065e-07F, 5.8294187e-07F, |
6.2082472e-07F, 6.6116941e-07F, 7.0413592e-07F, 7.4989464e-07F, |
7.9862701e-07F, 8.5052630e-07F, 9.0579828e-07F, 9.6466216e-07F, |
1.0273513e-06F, 1.0941144e-06F, 1.1652161e-06F, 1.2409384e-06F, |
1.3215816e-06F, 1.4074654e-06F, 1.4989305e-06F, 1.5963394e-06F, |
1.7000785e-06F, 1.8105592e-06F, 1.9282195e-06F, 2.0535261e-06F, |
2.1869758e-06F, 2.3290978e-06F, 2.4804557e-06F, 2.6416497e-06F, |
2.8133190e-06F, 2.9961443e-06F, 3.1908506e-06F, 3.3982101e-06F, |
3.6190449e-06F, 3.8542308e-06F, 4.1047004e-06F, 4.3714470e-06F, |
4.6555282e-06F, 4.9580707e-06F, 5.2802740e-06F, 5.6234160e-06F, |
5.9888572e-06F, 6.3780469e-06F, 6.7925283e-06F, 7.2339451e-06F, |
7.7040476e-06F, 8.2047000e-06F, 8.7378876e-06F, 9.3057248e-06F, |
9.9104632e-06F, 1.0554501e-05F, 1.1240392e-05F, 1.1970856e-05F, |
1.2748789e-05F, 1.3577278e-05F, 1.4459606e-05F, 1.5399272e-05F, |
1.6400004e-05F, 1.7465768e-05F, 1.8600792e-05F, 1.9809576e-05F, |
2.1096914e-05F, 2.2467911e-05F, 2.3928002e-05F, 2.5482978e-05F, |
2.7139006e-05F, 2.8902651e-05F, 3.0780908e-05F, 3.2781225e-05F, |
3.4911534e-05F, 3.7180282e-05F, 3.9596466e-05F, 4.2169667e-05F, |
4.4910090e-05F, 4.7828601e-05F, 5.0936773e-05F, 5.4246931e-05F, |
5.7772202e-05F, 6.1526565e-05F, 6.5524908e-05F, 6.9783085e-05F, |
7.4317983e-05F, 7.9147585e-05F, 8.4291040e-05F, 8.9768747e-05F, |
9.5602426e-05F, 0.00010181521F, 0.00010843174F, 0.00011547824F, |
0.00012298267F, 0.00013097477F, 0.00013948625F, 0.00014855085F, |
0.00015820453F, 0.00016848555F, 0.00017943469F, 0.00019109536F, |
0.00020351382F, 0.00021673929F, 0.00023082423F, 0.00024582449F, |
0.00026179955F, 0.00027881276F, 0.00029693158F, 0.00031622787F, |
0.00033677814F, 0.00035866388F, 0.00038197188F, 0.00040679456F, |
0.00043323036F, 0.00046138411F, 0.00049136745F, 0.00052329927F, |
0.00055730621F, 0.00059352311F, 0.00063209358F, 0.00067317058F, |
0.00071691700F, 0.00076350630F, 0.00081312324F, 0.00086596457F, |
0.00092223983F, 0.00098217216F, 0.0010459992F, 0.0011139742F, |
0.0011863665F, 0.0012634633F, 0.0013455702F, 0.0014330129F, |
0.0015261382F, 0.0016253153F, 0.0017309374F, 0.0018434235F, |
0.0019632195F, 0.0020908006F, 0.0022266726F, 0.0023713743F, |
0.0025254795F, 0.0026895994F, 0.0028643847F, 0.0030505286F, |
0.0032487691F, 0.0034598925F, 0.0036847358F, 0.0039241906F, |
0.0041792066F, 0.0044507950F, 0.0047400328F, 0.0050480668F, |
0.0053761186F, 0.0057254891F, 0.0060975636F, 0.0064938176F, |
0.0069158225F, 0.0073652516F, 0.0078438871F, 0.0083536271F, |
0.0088964928F, 0.009474637F, 0.010090352F, 0.010746080F, |
0.011444421F, 0.012188144F, 0.012980198F, 0.013823725F, |
0.014722068F, 0.015678791F, 0.016697687F, 0.017782797F, |
0.018938423F, 0.020169149F, 0.021479854F, 0.022875735F, |
0.024362330F, 0.025945531F, 0.027631618F, 0.029427276F, |
0.031339626F, 0.033376252F, 0.035545228F, 0.037855157F, |
0.040315199F, 0.042935108F, 0.045725273F, 0.048696758F, |
0.051861348F, 0.055231591F, 0.058820850F, 0.062643361F, |
0.066714279F, 0.071049749F, 0.075666962F, 0.080584227F, |
0.085821044F, 0.091398179F, 0.097337747F, 0.10366330F, |
0.11039993F, 0.11757434F, 0.12521498F, 0.13335215F, |
0.14201813F, 0.15124727F, 0.16107617F, 0.17154380F, |
0.18269168F, 0.19456402F, 0.20720788F, 0.22067342F, |
0.23501402F, 0.25028656F, 0.26655159F, 0.28387361F, |
0.30232132F, 0.32196786F, 0.34289114F, 0.36517414F, |
0.38890521F, 0.41417847F, 0.44109412F, 0.46975890F, |
0.50028648F, 0.53279791F, 0.56742212F, 0.60429640F, |
0.64356699F, 0.68538959F, 0.72993007F, 0.77736504F, |
0.82788260F, 0.88168307F, 0.9389798F, 1.F, |
}; |
static void render_line(int n, int x0,int x1,int y0,int y1,float *d){ |
int dy=y1-y0; |
int adx=x1-x0; |
int ady=abs(dy); |
int base=dy/adx; |
int sy=(dy<0?base-1:base+1); |
int x=x0; |
int y=y0; |
int err=0; |
ady-=abs(base*adx); |
if(n>x1)n=x1; |
if(x<n) |
d[x]*=FLOOR1_fromdB_LOOKUP[y]; |
while(++x<n){ |
err=err+ady; |
if(err>=adx){ |
err-=adx; |
y+=sy; |
}else{ |
y+=base; |
} |
d[x]*=FLOOR1_fromdB_LOOKUP[y]; |
} |
} |
static void render_line0(int n, int x0,int x1,int y0,int y1,int *d){ |
int dy=y1-y0; |
int adx=x1-x0; |
int ady=abs(dy); |
int base=dy/adx; |
int sy=(dy<0?base-1:base+1); |
int x=x0; |
int y=y0; |
int err=0; |
ady-=abs(base*adx); |
if(n>x1)n=x1; |
if(x<n) |
d[x]=y; |
while(++x<n){ |
err=err+ady; |
if(err>=adx){ |
err-=adx; |
y+=sy; |
}else{ |
y+=base; |
} |
d[x]=y; |
} |
} |
/* the floor has already been filtered to only include relevant sections */ |
static int accumulate_fit(const float *flr,const float *mdct, |
int x0, int x1,lsfit_acc *a, |
int n,vorbis_info_floor1 *info){ |
long i; |
int xa=0,ya=0,x2a=0,y2a=0,xya=0,na=0, xb=0,yb=0,x2b=0,y2b=0,xyb=0,nb=0; |
memset(a,0,sizeof(*a)); |
a->x0=x0; |
a->x1=x1; |
if(x1>=n)x1=n-1; |
for(i=x0;i<=x1;i++){ |
int quantized=vorbis_dBquant(flr+i); |
if(quantized){ |
if(mdct[i]+info->twofitatten>=flr[i]){ |
xa += i; |
ya += quantized; |
x2a += i*i; |
y2a += quantized*quantized; |
xya += i*quantized; |
na++; |
}else{ |
xb += i; |
yb += quantized; |
x2b += i*i; |
y2b += quantized*quantized; |
xyb += i*quantized; |
nb++; |
} |
} |
} |
a->xa=xa; |
a->ya=ya; |
a->x2a=x2a; |
a->y2a=y2a; |
a->xya=xya; |
a->an=na; |
a->xb=xb; |
a->yb=yb; |
a->x2b=x2b; |
a->y2b=y2b; |
a->xyb=xyb; |
a->bn=nb; |
return(na); |
} |
static int fit_line(lsfit_acc *a,int fits,int *y0,int *y1, |
vorbis_info_floor1 *info){ |
double xb=0,yb=0,x2b=0,y2b=0,xyb=0,bn=0; |
int i; |
int x0=a[0].x0; |
int x1=a[fits-1].x1; |
for(i=0;i<fits;i++){ |
double weight = (a[i].bn+a[i].an)*info->twofitweight/(a[i].an+1)+1.; |
xb+=a[i].xb + a[i].xa * weight; |
yb+=a[i].yb + a[i].ya * weight; |
x2b+=a[i].x2b + a[i].x2a * weight; |
y2b+=a[i].y2b + a[i].y2a * weight; |
xyb+=a[i].xyb + a[i].xya * weight; |
bn+=a[i].bn + a[i].an * weight; |
} |
if(*y0>=0){ |
xb+= x0; |
yb+= *y0; |
x2b+= x0 * x0; |
y2b+= *y0 * *y0; |
xyb+= *y0 * x0; |
bn++; |
} |
if(*y1>=0){ |
xb+= x1; |
yb+= *y1; |
x2b+= x1 * x1; |
y2b+= *y1 * *y1; |
xyb+= *y1 * x1; |
bn++; |
} |
{ |
double denom=(bn*x2b-xb*xb); |
if(denom>0.){ |
double a=(yb*x2b-xyb*xb)/denom; |
double b=(bn*xyb-xb*yb)/denom; |
*y0=rint(a+b*x0); |
*y1=rint(a+b*x1); |
/* limit to our range! */ |
if(*y0>1023)*y0=1023; |
if(*y1>1023)*y1=1023; |
if(*y0<0)*y0=0; |
if(*y1<0)*y1=0; |
return 0; |
}else{ |
*y0=0; |
*y1=0; |
return 1; |
} |
} |
} |
static int inspect_error(int x0,int x1,int y0,int y1,const float *mask, |
const float *mdct, |
vorbis_info_floor1 *info){ |
int dy=y1-y0; |
int adx=x1-x0; |
int ady=abs(dy); |
int base=dy/adx; |
int sy=(dy<0?base-1:base+1); |
int x=x0; |
int y=y0; |
int err=0; |
int val=vorbis_dBquant(mask+x); |
int mse=0; |
int n=0; |
ady-=abs(base*adx); |
mse=(y-val); |
mse*=mse; |
n++; |
if(mdct[x]+info->twofitatten>=mask[x]){ |
if(y+info->maxover<val)return(1); |
if(y-info->maxunder>val)return(1); |
} |
while(++x<x1){ |
err=err+ady; |
if(err>=adx){ |
err-=adx; |
y+=sy; |
}else{ |
y+=base; |
} |
val=vorbis_dBquant(mask+x); |
mse+=((y-val)*(y-val)); |
n++; |
if(mdct[x]+info->twofitatten>=mask[x]){ |
if(val){ |
if(y+info->maxover<val)return(1); |
if(y-info->maxunder>val)return(1); |
} |
} |
} |
if(info->maxover*info->maxover/n>info->maxerr)return(0); |
if(info->maxunder*info->maxunder/n>info->maxerr)return(0); |
if(mse/n>info->maxerr)return(1); |
return(0); |
} |
static int post_Y(int *A,int *B,int pos){ |
if(A[pos]<0) |
return B[pos]; |
if(B[pos]<0) |
return A[pos]; |
return (A[pos]+B[pos])>>1; |
} |
int *floor1_fit(vorbis_block *vb,vorbis_look_floor1 *look, |
const float *logmdct, /* in */ |
const float *logmask){ |
long i,j; |
vorbis_info_floor1 *info=look->vi; |
long n=look->n; |
long posts=look->posts; |
long nonzero=0; |
lsfit_acc fits[VIF_POSIT+1]; |
int fit_valueA[VIF_POSIT+2]; /* index by range list position */ |
int fit_valueB[VIF_POSIT+2]; /* index by range list position */ |
int loneighbor[VIF_POSIT+2]; /* sorted index of range list position (+2) */ |
int hineighbor[VIF_POSIT+2]; |
int *output=NULL; |
int memo[VIF_POSIT+2]; |
for(i=0;i<posts;i++)fit_valueA[i]=-200; /* mark all unused */ |
for(i=0;i<posts;i++)fit_valueB[i]=-200; /* mark all unused */ |
for(i=0;i<posts;i++)loneighbor[i]=0; /* 0 for the implicit 0 post */ |
for(i=0;i<posts;i++)hineighbor[i]=1; /* 1 for the implicit post at n */ |
for(i=0;i<posts;i++)memo[i]=-1; /* no neighbor yet */ |
/* quantize the relevant floor points and collect them into line fit |
structures (one per minimal division) at the same time */ |
if(posts==0){ |
nonzero+=accumulate_fit(logmask,logmdct,0,n,fits,n,info); |
}else{ |
for(i=0;i<posts-1;i++) |
nonzero+=accumulate_fit(logmask,logmdct,look->sorted_index[i], |
look->sorted_index[i+1],fits+i, |
n,info); |
} |
if(nonzero){ |
/* start by fitting the implicit base case.... */ |
int y0=-200; |
int y1=-200; |
fit_line(fits,posts-1,&y0,&y1,info); |
fit_valueA[0]=y0; |
fit_valueB[0]=y0; |
fit_valueB[1]=y1; |
fit_valueA[1]=y1; |
/* Non degenerate case */ |
/* start progressive splitting. This is a greedy, non-optimal |
algorithm, but simple and close enough to the best |
answer. */ |
for(i=2;i<posts;i++){ |
int sortpos=look->reverse_index[i]; |
int ln=loneighbor[sortpos]; |
int hn=hineighbor[sortpos]; |
/* eliminate repeat searches of a particular range with a memo */ |
if(memo[ln]!=hn){ |
/* haven't performed this error search yet */ |
int lsortpos=look->reverse_index[ln]; |
int hsortpos=look->reverse_index[hn]; |
memo[ln]=hn; |
{ |
/* A note: we want to bound/minimize *local*, not global, error */ |
int lx=info->postlist[ln]; |
int hx=info->postlist[hn]; |
int ly=post_Y(fit_valueA,fit_valueB,ln); |
int hy=post_Y(fit_valueA,fit_valueB,hn); |
if(ly==-1 || hy==-1){ |
exit(1); |
} |
if(inspect_error(lx,hx,ly,hy,logmask,logmdct,info)){ |
/* outside error bounds/begin search area. Split it. */ |
int ly0=-200; |
int ly1=-200; |
int hy0=-200; |
int hy1=-200; |
int ret0=fit_line(fits+lsortpos,sortpos-lsortpos,&ly0,&ly1,info); |
int ret1=fit_line(fits+sortpos,hsortpos-sortpos,&hy0,&hy1,info); |
if(ret0){ |
ly0=ly; |
ly1=hy0; |
} |
if(ret1){ |
hy0=ly1; |
hy1=hy; |
} |
if(ret0 && ret1){ |
fit_valueA[i]=-200; |
fit_valueB[i]=-200; |
}else{ |
/* store new edge values */ |
fit_valueB[ln]=ly0; |
if(ln==0)fit_valueA[ln]=ly0; |
fit_valueA[i]=ly1; |
fit_valueB[i]=hy0; |
fit_valueA[hn]=hy1; |
if(hn==1)fit_valueB[hn]=hy1; |
if(ly1>=0 || hy0>=0){ |
/* store new neighbor values */ |
for(j=sortpos-1;j>=0;j--) |
if(hineighbor[j]==hn) |
hineighbor[j]=i; |
else |
break; |
for(j=sortpos+1;j<posts;j++) |
if(loneighbor[j]==ln) |
loneighbor[j]=i; |
else |
break; |
} |
} |
}else{ |
fit_valueA[i]=-200; |
fit_valueB[i]=-200; |
} |
} |
} |
} |
output=_vorbis_block_alloc(vb,sizeof(*output)*posts); |
output[0]=post_Y(fit_valueA,fit_valueB,0); |
output[1]=post_Y(fit_valueA,fit_valueB,1); |
/* fill in posts marked as not using a fit; we will zero |
back out to 'unused' when encoding them so long as curve |
interpolation doesn't force them into use */ |
for(i=2;i<posts;i++){ |
int ln=look->loneighbor[i-2]; |
int hn=look->hineighbor[i-2]; |
int x0=info->postlist[ln]; |
int x1=info->postlist[hn]; |
int y0=output[ln]; |
int y1=output[hn]; |
int predicted=render_point(x0,x1,y0,y1,info->postlist[i]); |
int vx=post_Y(fit_valueA,fit_valueB,i); |
if(vx>=0 && predicted!=vx){ |
output[i]=vx; |
}else{ |
output[i]= predicted|0x8000; |
} |
} |
} |
return(output); |
} |
int *floor1_interpolate_fit(vorbis_block *vb,vorbis_look_floor1 *look, |
int *A,int *B, |
int del){ |
long i; |
long posts=look->posts; |
int *output=NULL; |
if(A && B){ |
output=_vorbis_block_alloc(vb,sizeof(*output)*posts); |
/* overly simpleminded--- look again post 1.2 */ |
for(i=0;i<posts;i++){ |
output[i]=((65536-del)*(A[i]&0x7fff)+del*(B[i]&0x7fff)+32768)>>16; |
if(A[i]&0x8000 && B[i]&0x8000)output[i]|=0x8000; |
} |
} |
return(output); |
} |
int floor1_encode(oggpack_buffer *opb,vorbis_block *vb, |
vorbis_look_floor1 *look, |
int *post,int *ilogmask){ |
long i,j; |
vorbis_info_floor1 *info=look->vi; |
long posts=look->posts; |
codec_setup_info *ci=vb->vd->vi->codec_setup; |
int out[VIF_POSIT+2]; |
static_codebook **sbooks=ci->book_param; |
codebook *books=ci->fullbooks; |
/* quantize values to multiplier spec */ |
if(post){ |
for(i=0;i<posts;i++){ |
int val=post[i]&0x7fff; |
switch(info->mult){ |
case 1: /* 1024 -> 256 */ |
val>>=2; |
break; |
case 2: /* 1024 -> 128 */ |
val>>=3; |
break; |
case 3: /* 1024 -> 86 */ |
val/=12; |
break; |
case 4: /* 1024 -> 64 */ |
val>>=4; |
break; |
} |
post[i]=val | (post[i]&0x8000); |
} |
out[0]=post[0]; |
out[1]=post[1]; |
/* find prediction values for each post and subtract them */ |
for(i=2;i<posts;i++){ |
int ln=look->loneighbor[i-2]; |
int hn=look->hineighbor[i-2]; |
int x0=info->postlist[ln]; |
int x1=info->postlist[hn]; |
int y0=post[ln]; |
int y1=post[hn]; |
int predicted=render_point(x0,x1,y0,y1,info->postlist[i]); |
if((post[i]&0x8000) || (predicted==post[i])){ |
post[i]=predicted|0x8000; /* in case there was roundoff jitter |
in interpolation */ |
out[i]=0; |
}else{ |
int headroom=(look->quant_q-predicted<predicted? |
look->quant_q-predicted:predicted); |
int val=post[i]-predicted; |
/* at this point the 'deviation' value is in the range +/- max |
range, but the real, unique range can always be mapped to |
only [0-maxrange). So we want to wrap the deviation into |
this limited range, but do it in the way that least screws |
an essentially gaussian probability distribution. */ |
if(val<0) |
if(val<-headroom) |
val=headroom-val-1; |
else |
val=-1-(val<<1); |
else |
if(val>=headroom) |
val= val+headroom; |
else |
val<<=1; |
out[i]=val; |
post[ln]&=0x7fff; |
post[hn]&=0x7fff; |
} |
} |
/* we have everything we need. pack it out */ |
/* mark nontrivial floor */ |
oggpack_write(opb,1,1); |
/* beginning/end post */ |
look->frames++; |
look->postbits+=ov_ilog(look->quant_q-1)*2; |
oggpack_write(opb,out[0],ov_ilog(look->quant_q-1)); |
oggpack_write(opb,out[1],ov_ilog(look->quant_q-1)); |
/* partition by partition */ |
for(i=0,j=2;i<info->partitions;i++){ |
int class=info->partitionclass[i]; |
int cdim=info->class_dim[class]; |
int csubbits=info->class_subs[class]; |
int csub=1<<csubbits; |
int bookas[8]={0,0,0,0,0,0,0,0}; |
int cval=0; |
int cshift=0; |
int k,l; |
/* generate the partition's first stage cascade value */ |
if(csubbits){ |
int maxval[8]={0,0,0,0,0,0,0,0}; /* gcc's static analysis |
issues a warning without |
initialization */ |
for(k=0;k<csub;k++){ |
int booknum=info->class_subbook[class][k]; |
if(booknum<0){ |
maxval[k]=1; |
}else{ |
maxval[k]=sbooks[info->class_subbook[class][k]]->entries; |
} |
} |
for(k=0;k<cdim;k++){ |
for(l=0;l<csub;l++){ |
int val=out[j+k]; |
if(val<maxval[l]){ |
bookas[k]=l; |
break; |
} |
} |
cval|= bookas[k]<<cshift; |
cshift+=csubbits; |
} |
/* write it */ |
look->phrasebits+= |
vorbis_book_encode(books+info->class_book[class],cval,opb); |
#ifdef TRAIN_FLOOR1 |
{ |
FILE *of; |
char buffer[80]; |
sprintf(buffer,"line_%dx%ld_class%d.vqd", |
vb->pcmend/2,posts-2,class); |
of=fopen(buffer,"a"); |
fprintf(of,"%d\n",cval); |
fclose(of); |
} |
#endif |
} |
/* write post values */ |
for(k=0;k<cdim;k++){ |
int book=info->class_subbook[class][bookas[k]]; |
if(book>=0){ |
/* hack to allow training with 'bad' books */ |
if(out[j+k]<(books+book)->entries) |
look->postbits+=vorbis_book_encode(books+book, |
out[j+k],opb); |
/*else |
fprintf(stderr,"+!");*/ |
#ifdef TRAIN_FLOOR1 |
{ |
FILE *of; |
char buffer[80]; |
sprintf(buffer,"line_%dx%ld_%dsub%d.vqd", |
vb->pcmend/2,posts-2,class,bookas[k]); |
of=fopen(buffer,"a"); |
fprintf(of,"%d\n",out[j+k]); |
fclose(of); |
} |
#endif |
} |
} |
j+=cdim; |
} |
{ |
/* generate quantized floor equivalent to what we'd unpack in decode */ |
/* render the lines */ |
int hx=0; |
int lx=0; |
int ly=post[0]*info->mult; |
int n=ci->blocksizes[vb->W]/2; |
for(j=1;j<look->posts;j++){ |
int current=look->forward_index[j]; |
int hy=post[current]&0x7fff; |
if(hy==post[current]){ |
hy*=info->mult; |
hx=info->postlist[current]; |
render_line0(n,lx,hx,ly,hy,ilogmask); |
lx=hx; |
ly=hy; |
} |
} |
for(j=hx;j<vb->pcmend/2;j++)ilogmask[j]=ly; /* be certain */ |
return(1); |
} |
}else{ |
oggpack_write(opb,0,1); |
memset(ilogmask,0,vb->pcmend/2*sizeof(*ilogmask)); |
return(0); |
} |
} |
static void *floor1_inverse1(vorbis_block *vb,vorbis_look_floor *in){ |
vorbis_look_floor1 *look=(vorbis_look_floor1 *)in; |
vorbis_info_floor1 *info=look->vi; |
codec_setup_info *ci=vb->vd->vi->codec_setup; |
int i,j,k; |
codebook *books=ci->fullbooks; |
/* unpack wrapped/predicted values from stream */ |
if(oggpack_read(&vb->opb,1)==1){ |
int *fit_value=_vorbis_block_alloc(vb,(look->posts)*sizeof(*fit_value)); |
fit_value[0]=oggpack_read(&vb->opb,ov_ilog(look->quant_q-1)); |
fit_value[1]=oggpack_read(&vb->opb,ov_ilog(look->quant_q-1)); |
/* partition by partition */ |
for(i=0,j=2;i<info->partitions;i++){ |
int class=info->partitionclass[i]; |
int cdim=info->class_dim[class]; |
int csubbits=info->class_subs[class]; |
int csub=1<<csubbits; |
int cval=0; |
/* decode the partition's first stage cascade value */ |
if(csubbits){ |
cval=vorbis_book_decode(books+info->class_book[class],&vb->opb); |
if(cval==-1)goto eop; |
} |
for(k=0;k<cdim;k++){ |
int book=info->class_subbook[class][cval&(csub-1)]; |
cval>>=csubbits; |
if(book>=0){ |
if((fit_value[j+k]=vorbis_book_decode(books+book,&vb->opb))==-1) |
goto eop; |
}else{ |
fit_value[j+k]=0; |
} |
} |
j+=cdim; |
} |
/* unwrap positive values and reconsitute via linear interpolation */ |
for(i=2;i<look->posts;i++){ |
int predicted=render_point(info->postlist[look->loneighbor[i-2]], |
info->postlist[look->hineighbor[i-2]], |
fit_value[look->loneighbor[i-2]], |
fit_value[look->hineighbor[i-2]], |
info->postlist[i]); |
int hiroom=look->quant_q-predicted; |
int loroom=predicted; |
int room=(hiroom<loroom?hiroom:loroom)<<1; |
int val=fit_value[i]; |
if(val){ |
if(val>=room){ |
if(hiroom>loroom){ |
val = val-loroom; |
}else{ |
val = -1-(val-hiroom); |
} |
}else{ |
if(val&1){ |
val= -((val+1)>>1); |
}else{ |
val>>=1; |
} |
} |
fit_value[i]=(val+predicted)&0x7fff; |
fit_value[look->loneighbor[i-2]]&=0x7fff; |
fit_value[look->hineighbor[i-2]]&=0x7fff; |
}else{ |
fit_value[i]=predicted|0x8000; |
} |
} |
return(fit_value); |
} |
eop: |
return(NULL); |
} |
static int floor1_inverse2(vorbis_block *vb,vorbis_look_floor *in,void *memo, |
float *out){ |
vorbis_look_floor1 *look=(vorbis_look_floor1 *)in; |
vorbis_info_floor1 *info=look->vi; |
codec_setup_info *ci=vb->vd->vi->codec_setup; |
int n=ci->blocksizes[vb->W]/2; |
int j; |
if(memo){ |
/* render the lines */ |
int *fit_value=(int *)memo; |
int hx=0; |
int lx=0; |
int ly=fit_value[0]*info->mult; |
/* guard lookup against out-of-range values */ |
ly=(ly<0?0:ly>255?255:ly); |
for(j=1;j<look->posts;j++){ |
int current=look->forward_index[j]; |
int hy=fit_value[current]&0x7fff; |
if(hy==fit_value[current]){ |
hx=info->postlist[current]; |
hy*=info->mult; |
/* guard lookup against out-of-range values */ |
hy=(hy<0?0:hy>255?255:hy); |
render_line(n,lx,hx,ly,hy,out); |
lx=hx; |
ly=hy; |
} |
} |
for(j=hx;j<n;j++)out[j]*=FLOOR1_fromdB_LOOKUP[ly]; /* be certain */ |
return(1); |
} |
memset(out,0,sizeof(*out)*n); |
return(0); |
} |
/* export hooks */ |
const vorbis_func_floor floor1_exportbundle={ |
&floor1_pack,&floor1_unpack,&floor1_look,&floor1_free_info, |
&floor1_free_look,&floor1_inverse1,&floor1_inverse2 |
}; |
/contrib/sdk/sources/libvorbis-1.3.7/lib/highlevel.h |
---|
0,0 → 1,57 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: highlevel encoder setup struct separated out for vorbisenc clarity |
********************************************************************/ |
typedef struct highlevel_byblocktype { |
double tone_mask_setting; |
double tone_peaklimit_setting; |
double noise_bias_setting; |
double noise_compand_setting; |
} highlevel_byblocktype; |
typedef struct highlevel_encode_setup { |
int set_in_stone; |
const void *setup; |
double base_setting; |
double impulse_noisetune; |
/* bitrate management below all settable */ |
float req; |
int managed; |
long bitrate_min; |
long bitrate_av; |
double bitrate_av_damp; |
long bitrate_max; |
long bitrate_reservoir; |
double bitrate_reservoir_bias; |
int impulse_block_p; |
int noise_normalize_p; |
int coupling_p; |
double stereo_point_setting; |
double lowpass_kHz; |
int lowpass_altered; |
double ath_floating_dB; |
double ath_absolute_dB; |
double amplitude_track_dBpersec; |
double trigger_setting; |
highlevel_byblocktype block[4]; /* padding, impulse, transition, long */ |
} highlevel_encode_setup; |
/contrib/sdk/sources/libvorbis-1.3.7/lib/info.c |
---|
0,0 → 1,687 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2015 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: maintain the info structure, info <-> header packets |
********************************************************************/ |
/* general handling of the header and the vorbis_info structure (and |
substructures) */ |
#include <stdlib.h> |
#include <string.h> |
#include <ogg/ogg.h> |
#include "vorbis/codec.h" |
#include "codec_internal.h" |
#include "codebook.h" |
#include "registry.h" |
#include "window.h" |
#include "psy.h" |
#include "misc.h" |
#include "os.h" |
#define GENERAL_VENDOR_STRING "Xiph.Org libVorbis 1.3.7" |
#define ENCODE_VENDOR_STRING "Xiph.Org libVorbis I 20200704 (Reducing Environment)" |
/* helpers */ |
static void _v_writestring(oggpack_buffer *o,const char *s, int bytes){ |
while(bytes--){ |
oggpack_write(o,*s++,8); |
} |
} |
static void _v_readstring(oggpack_buffer *o,char *buf,int bytes){ |
while(bytes--){ |
*buf++=oggpack_read(o,8); |
} |
} |
static int _v_toupper(int c) { |
return (c >= 'a' && c <= 'z') ? (c & ~('a' - 'A')) : c; |
} |
void vorbis_comment_init(vorbis_comment *vc){ |
memset(vc,0,sizeof(*vc)); |
} |
void vorbis_comment_add(vorbis_comment *vc,const char *comment){ |
vc->user_comments=_ogg_realloc(vc->user_comments, |
(vc->comments+2)*sizeof(*vc->user_comments)); |
vc->comment_lengths=_ogg_realloc(vc->comment_lengths, |
(vc->comments+2)*sizeof(*vc->comment_lengths)); |
vc->comment_lengths[vc->comments]=strlen(comment); |
vc->user_comments[vc->comments]=_ogg_malloc(vc->comment_lengths[vc->comments]+1); |
strcpy(vc->user_comments[vc->comments], comment); |
vc->comments++; |
vc->user_comments[vc->comments]=NULL; |
} |
void vorbis_comment_add_tag(vorbis_comment *vc, const char *tag, const char *contents){ |
/* Length for key and value +2 for = and \0 */ |
char *comment=_ogg_malloc(strlen(tag)+strlen(contents)+2); |
strcpy(comment, tag); |
strcat(comment, "="); |
strcat(comment, contents); |
vorbis_comment_add(vc, comment); |
_ogg_free(comment); |
} |
/* This is more or less the same as strncasecmp - but that doesn't exist |
* everywhere, and this is a fairly trivial function, so we include it */ |
static int tagcompare(const char *s1, const char *s2, int n){ |
int c=0; |
while(c < n){ |
if(_v_toupper(s1[c]) != _v_toupper(s2[c])) |
return !0; |
c++; |
} |
return 0; |
} |
char *vorbis_comment_query(vorbis_comment *vc, const char *tag, int count){ |
long i; |
int found = 0; |
int taglen = strlen(tag)+1; /* +1 for the = we append */ |
char *fulltag = _ogg_malloc(taglen+1); |
strcpy(fulltag, tag); |
strcat(fulltag, "="); |
for(i=0;i<vc->comments;i++){ |
if(!tagcompare(vc->user_comments[i], fulltag, taglen)){ |
if(count == found) { |
/* We return a pointer to the data, not a copy */ |
_ogg_free(fulltag); |
return vc->user_comments[i] + taglen; |
} else { |
found++; |
} |
} |
} |
_ogg_free(fulltag); |
return NULL; /* didn't find anything */ |
} |
int vorbis_comment_query_count(vorbis_comment *vc, const char *tag){ |
int i,count=0; |
int taglen = strlen(tag)+1; /* +1 for the = we append */ |
char *fulltag = _ogg_malloc(taglen+1); |
strcpy(fulltag,tag); |
strcat(fulltag, "="); |
for(i=0;i<vc->comments;i++){ |
if(!tagcompare(vc->user_comments[i], fulltag, taglen)) |
count++; |
} |
_ogg_free(fulltag); |
return count; |
} |
void vorbis_comment_clear(vorbis_comment *vc){ |
if(vc){ |
long i; |
if(vc->user_comments){ |
for(i=0;i<vc->comments;i++) |
if(vc->user_comments[i])_ogg_free(vc->user_comments[i]); |
_ogg_free(vc->user_comments); |
} |
if(vc->comment_lengths)_ogg_free(vc->comment_lengths); |
if(vc->vendor)_ogg_free(vc->vendor); |
memset(vc,0,sizeof(*vc)); |
} |
} |
/* blocksize 0 is guaranteed to be short, 1 is guaranteed to be long. |
They may be equal, but short will never ge greater than long */ |
int vorbis_info_blocksize(vorbis_info *vi,int zo){ |
codec_setup_info *ci = vi->codec_setup; |
return ci ? ci->blocksizes[zo] : -1; |
} |
/* used by synthesis, which has a full, alloced vi */ |
void vorbis_info_init(vorbis_info *vi){ |
memset(vi,0,sizeof(*vi)); |
vi->codec_setup=_ogg_calloc(1,sizeof(codec_setup_info)); |
} |
void vorbis_info_clear(vorbis_info *vi){ |
codec_setup_info *ci=vi->codec_setup; |
int i; |
if(ci){ |
for(i=0;i<ci->modes;i++) |
if(ci->mode_param[i])_ogg_free(ci->mode_param[i]); |
for(i=0;i<ci->maps;i++) /* unpack does the range checking */ |
if(ci->map_param[i]) /* this may be cleaning up an aborted |
unpack, in which case the below type |
cannot be trusted */ |
_mapping_P[ci->map_type[i]]->free_info(ci->map_param[i]); |
for(i=0;i<ci->floors;i++) /* unpack does the range checking */ |
if(ci->floor_param[i]) /* this may be cleaning up an aborted |
unpack, in which case the below type |
cannot be trusted */ |
_floor_P[ci->floor_type[i]]->free_info(ci->floor_param[i]); |
for(i=0;i<ci->residues;i++) /* unpack does the range checking */ |
if(ci->residue_param[i]) /* this may be cleaning up an aborted |
unpack, in which case the below type |
cannot be trusted */ |
_residue_P[ci->residue_type[i]]->free_info(ci->residue_param[i]); |
for(i=0;i<ci->books;i++){ |
if(ci->book_param[i]){ |
/* knows if the book was not alloced */ |
vorbis_staticbook_destroy(ci->book_param[i]); |
} |
if(ci->fullbooks) |
vorbis_book_clear(ci->fullbooks+i); |
} |
if(ci->fullbooks) |
_ogg_free(ci->fullbooks); |
for(i=0;i<ci->psys;i++) |
_vi_psy_free(ci->psy_param[i]); |
_ogg_free(ci); |
} |
memset(vi,0,sizeof(*vi)); |
} |
/* Header packing/unpacking ********************************************/ |
static int _vorbis_unpack_info(vorbis_info *vi,oggpack_buffer *opb){ |
codec_setup_info *ci=vi->codec_setup; |
int bs; |
if(!ci)return(OV_EFAULT); |
vi->version=oggpack_read(opb,32); |
if(vi->version!=0)return(OV_EVERSION); |
vi->channels=oggpack_read(opb,8); |
vi->rate=oggpack_read(opb,32); |
vi->bitrate_upper=(ogg_int32_t)oggpack_read(opb,32); |
vi->bitrate_nominal=(ogg_int32_t)oggpack_read(opb,32); |
vi->bitrate_lower=(ogg_int32_t)oggpack_read(opb,32); |
bs = oggpack_read(opb,4); |
if(bs<0)goto err_out; |
ci->blocksizes[0]=1<<bs; |
bs = oggpack_read(opb,4); |
if(bs<0)goto err_out; |
ci->blocksizes[1]=1<<bs; |
if(vi->rate<1)goto err_out; |
if(vi->channels<1)goto err_out; |
if(ci->blocksizes[0]<64)goto err_out; |
if(ci->blocksizes[1]<ci->blocksizes[0])goto err_out; |
if(ci->blocksizes[1]>8192)goto err_out; |
if(oggpack_read(opb,1)!=1)goto err_out; /* EOP check */ |
return(0); |
err_out: |
vorbis_info_clear(vi); |
return(OV_EBADHEADER); |
} |
static int _vorbis_unpack_comment(vorbis_comment *vc,oggpack_buffer *opb){ |
int i; |
int vendorlen=oggpack_read(opb,32); |
if(vendorlen<0)goto err_out; |
if(vendorlen>opb->storage-8)goto err_out; |
vc->vendor=_ogg_calloc(vendorlen+1,1); |
_v_readstring(opb,vc->vendor,vendorlen); |
i=oggpack_read(opb,32); |
if(i<0)goto err_out; |
if(i>((opb->storage-oggpack_bytes(opb))>>2))goto err_out; |
vc->comments=i; |
vc->user_comments=_ogg_calloc(vc->comments+1,sizeof(*vc->user_comments)); |
vc->comment_lengths=_ogg_calloc(vc->comments+1, sizeof(*vc->comment_lengths)); |
for(i=0;i<vc->comments;i++){ |
int len=oggpack_read(opb,32); |
if(len<0)goto err_out; |
if(len>opb->storage-oggpack_bytes(opb))goto err_out; |
vc->comment_lengths[i]=len; |
vc->user_comments[i]=_ogg_calloc(len+1,1); |
_v_readstring(opb,vc->user_comments[i],len); |
} |
if(oggpack_read(opb,1)!=1)goto err_out; /* EOP check */ |
return(0); |
err_out: |
vorbis_comment_clear(vc); |
return(OV_EBADHEADER); |
} |
/* all of the real encoding details are here. The modes, books, |
everything */ |
static int _vorbis_unpack_books(vorbis_info *vi,oggpack_buffer *opb){ |
codec_setup_info *ci=vi->codec_setup; |
int i; |
/* codebooks */ |
ci->books=oggpack_read(opb,8)+1; |
if(ci->books<=0)goto err_out; |
for(i=0;i<ci->books;i++){ |
ci->book_param[i]=vorbis_staticbook_unpack(opb); |
if(!ci->book_param[i])goto err_out; |
} |
/* time backend settings; hooks are unused */ |
{ |
int times=oggpack_read(opb,6)+1; |
if(times<=0)goto err_out; |
for(i=0;i<times;i++){ |
int test=oggpack_read(opb,16); |
if(test<0 || test>=VI_TIMEB)goto err_out; |
} |
} |
/* floor backend settings */ |
ci->floors=oggpack_read(opb,6)+1; |
if(ci->floors<=0)goto err_out; |
for(i=0;i<ci->floors;i++){ |
ci->floor_type[i]=oggpack_read(opb,16); |
if(ci->floor_type[i]<0 || ci->floor_type[i]>=VI_FLOORB)goto err_out; |
ci->floor_param[i]=_floor_P[ci->floor_type[i]]->unpack(vi,opb); |
if(!ci->floor_param[i])goto err_out; |
} |
/* residue backend settings */ |
ci->residues=oggpack_read(opb,6)+1; |
if(ci->residues<=0)goto err_out; |
for(i=0;i<ci->residues;i++){ |
ci->residue_type[i]=oggpack_read(opb,16); |
if(ci->residue_type[i]<0 || ci->residue_type[i]>=VI_RESB)goto err_out; |
ci->residue_param[i]=_residue_P[ci->residue_type[i]]->unpack(vi,opb); |
if(!ci->residue_param[i])goto err_out; |
} |
/* map backend settings */ |
ci->maps=oggpack_read(opb,6)+1; |
if(ci->maps<=0)goto err_out; |
for(i=0;i<ci->maps;i++){ |
ci->map_type[i]=oggpack_read(opb,16); |
if(ci->map_type[i]<0 || ci->map_type[i]>=VI_MAPB)goto err_out; |
ci->map_param[i]=_mapping_P[ci->map_type[i]]->unpack(vi,opb); |
if(!ci->map_param[i])goto err_out; |
} |
/* mode settings */ |
ci->modes=oggpack_read(opb,6)+1; |
if(ci->modes<=0)goto err_out; |
for(i=0;i<ci->modes;i++){ |
ci->mode_param[i]=_ogg_calloc(1,sizeof(*ci->mode_param[i])); |
ci->mode_param[i]->blockflag=oggpack_read(opb,1); |
ci->mode_param[i]->windowtype=oggpack_read(opb,16); |
ci->mode_param[i]->transformtype=oggpack_read(opb,16); |
ci->mode_param[i]->mapping=oggpack_read(opb,8); |
if(ci->mode_param[i]->windowtype>=VI_WINDOWB)goto err_out; |
if(ci->mode_param[i]->transformtype>=VI_WINDOWB)goto err_out; |
if(ci->mode_param[i]->mapping>=ci->maps)goto err_out; |
if(ci->mode_param[i]->mapping<0)goto err_out; |
} |
if(oggpack_read(opb,1)!=1)goto err_out; /* top level EOP check */ |
return(0); |
err_out: |
vorbis_info_clear(vi); |
return(OV_EBADHEADER); |
} |
/* Is this packet a vorbis ID header? */ |
int vorbis_synthesis_idheader(ogg_packet *op){ |
oggpack_buffer opb; |
char buffer[6]; |
if(op){ |
oggpack_readinit(&opb,op->packet,op->bytes); |
if(!op->b_o_s) |
return(0); /* Not the initial packet */ |
if(oggpack_read(&opb,8) != 1) |
return 0; /* not an ID header */ |
memset(buffer,0,6); |
_v_readstring(&opb,buffer,6); |
if(memcmp(buffer,"vorbis",6)) |
return 0; /* not vorbis */ |
return 1; |
} |
return 0; |
} |
/* The Vorbis header is in three packets; the initial small packet in |
the first page that identifies basic parameters, a second packet |
with bitstream comments and a third packet that holds the |
codebook. */ |
int vorbis_synthesis_headerin(vorbis_info *vi,vorbis_comment *vc,ogg_packet *op){ |
oggpack_buffer opb; |
if(op){ |
oggpack_readinit(&opb,op->packet,op->bytes); |
/* Which of the three types of header is this? */ |
/* Also verify header-ness, vorbis */ |
{ |
char buffer[6]; |
int packtype=oggpack_read(&opb,8); |
memset(buffer,0,6); |
_v_readstring(&opb,buffer,6); |
if(memcmp(buffer,"vorbis",6)){ |
/* not a vorbis header */ |
return(OV_ENOTVORBIS); |
} |
switch(packtype){ |
case 0x01: /* least significant *bit* is read first */ |
if(!op->b_o_s){ |
/* Not the initial packet */ |
return(OV_EBADHEADER); |
} |
if(vi->rate!=0){ |
/* previously initialized info header */ |
return(OV_EBADHEADER); |
} |
return(_vorbis_unpack_info(vi,&opb)); |
case 0x03: /* least significant *bit* is read first */ |
if(vi->rate==0){ |
/* um... we didn't get the initial header */ |
return(OV_EBADHEADER); |
} |
if(vc->vendor!=NULL){ |
/* previously initialized comment header */ |
return(OV_EBADHEADER); |
} |
return(_vorbis_unpack_comment(vc,&opb)); |
case 0x05: /* least significant *bit* is read first */ |
if(vi->rate==0 || vc->vendor==NULL){ |
/* um... we didn;t get the initial header or comments yet */ |
return(OV_EBADHEADER); |
} |
if(vi->codec_setup==NULL){ |
/* improperly initialized vorbis_info */ |
return(OV_EFAULT); |
} |
if(((codec_setup_info *)vi->codec_setup)->books>0){ |
/* previously initialized setup header */ |
return(OV_EBADHEADER); |
} |
return(_vorbis_unpack_books(vi,&opb)); |
default: |
/* Not a valid vorbis header type */ |
return(OV_EBADHEADER); |
break; |
} |
} |
} |
return(OV_EBADHEADER); |
} |
/* pack side **********************************************************/ |
static int _vorbis_pack_info(oggpack_buffer *opb,vorbis_info *vi){ |
codec_setup_info *ci=vi->codec_setup; |
if(!ci|| |
ci->blocksizes[0]<64|| |
ci->blocksizes[1]<ci->blocksizes[0]){ |
return(OV_EFAULT); |
} |
/* preamble */ |
oggpack_write(opb,0x01,8); |
_v_writestring(opb,"vorbis", 6); |
/* basic information about the stream */ |
oggpack_write(opb,0x00,32); |
oggpack_write(opb,vi->channels,8); |
oggpack_write(opb,vi->rate,32); |
oggpack_write(opb,vi->bitrate_upper,32); |
oggpack_write(opb,vi->bitrate_nominal,32); |
oggpack_write(opb,vi->bitrate_lower,32); |
oggpack_write(opb,ov_ilog(ci->blocksizes[0]-1),4); |
oggpack_write(opb,ov_ilog(ci->blocksizes[1]-1),4); |
oggpack_write(opb,1,1); |
return(0); |
} |
static int _vorbis_pack_comment(oggpack_buffer *opb,vorbis_comment *vc){ |
int bytes = strlen(ENCODE_VENDOR_STRING); |
/* preamble */ |
oggpack_write(opb,0x03,8); |
_v_writestring(opb,"vorbis", 6); |
/* vendor */ |
oggpack_write(opb,bytes,32); |
_v_writestring(opb,ENCODE_VENDOR_STRING, bytes); |
/* comments */ |
oggpack_write(opb,vc->comments,32); |
if(vc->comments){ |
int i; |
for(i=0;i<vc->comments;i++){ |
if(vc->user_comments[i]){ |
oggpack_write(opb,vc->comment_lengths[i],32); |
_v_writestring(opb,vc->user_comments[i], vc->comment_lengths[i]); |
}else{ |
oggpack_write(opb,0,32); |
} |
} |
} |
oggpack_write(opb,1,1); |
return(0); |
} |
static int _vorbis_pack_books(oggpack_buffer *opb,vorbis_info *vi){ |
codec_setup_info *ci=vi->codec_setup; |
int i; |
if(!ci)return(OV_EFAULT); |
oggpack_write(opb,0x05,8); |
_v_writestring(opb,"vorbis", 6); |
/* books */ |
oggpack_write(opb,ci->books-1,8); |
for(i=0;i<ci->books;i++) |
if(vorbis_staticbook_pack(ci->book_param[i],opb))goto err_out; |
/* times; hook placeholders */ |
oggpack_write(opb,0,6); |
oggpack_write(opb,0,16); |
/* floors */ |
oggpack_write(opb,ci->floors-1,6); |
for(i=0;i<ci->floors;i++){ |
oggpack_write(opb,ci->floor_type[i],16); |
if(_floor_P[ci->floor_type[i]]->pack) |
_floor_P[ci->floor_type[i]]->pack(ci->floor_param[i],opb); |
else |
goto err_out; |
} |
/* residues */ |
oggpack_write(opb,ci->residues-1,6); |
for(i=0;i<ci->residues;i++){ |
oggpack_write(opb,ci->residue_type[i],16); |
_residue_P[ci->residue_type[i]]->pack(ci->residue_param[i],opb); |
} |
/* maps */ |
oggpack_write(opb,ci->maps-1,6); |
for(i=0;i<ci->maps;i++){ |
oggpack_write(opb,ci->map_type[i],16); |
_mapping_P[ci->map_type[i]]->pack(vi,ci->map_param[i],opb); |
} |
/* modes */ |
oggpack_write(opb,ci->modes-1,6); |
for(i=0;i<ci->modes;i++){ |
oggpack_write(opb,ci->mode_param[i]->blockflag,1); |
oggpack_write(opb,ci->mode_param[i]->windowtype,16); |
oggpack_write(opb,ci->mode_param[i]->transformtype,16); |
oggpack_write(opb,ci->mode_param[i]->mapping,8); |
} |
oggpack_write(opb,1,1); |
return(0); |
err_out: |
return(-1); |
} |
int vorbis_commentheader_out(vorbis_comment *vc, |
ogg_packet *op){ |
oggpack_buffer opb; |
oggpack_writeinit(&opb); |
if(_vorbis_pack_comment(&opb,vc)){ |
oggpack_writeclear(&opb); |
return OV_EIMPL; |
} |
op->packet = _ogg_malloc(oggpack_bytes(&opb)); |
memcpy(op->packet, opb.buffer, oggpack_bytes(&opb)); |
op->bytes=oggpack_bytes(&opb); |
op->b_o_s=0; |
op->e_o_s=0; |
op->granulepos=0; |
op->packetno=1; |
oggpack_writeclear(&opb); |
return 0; |
} |
int vorbis_analysis_headerout(vorbis_dsp_state *v, |
vorbis_comment *vc, |
ogg_packet *op, |
ogg_packet *op_comm, |
ogg_packet *op_code){ |
int ret=OV_EIMPL; |
vorbis_info *vi=v->vi; |
oggpack_buffer opb; |
private_state *b=v->backend_state; |
if(!b||vi->channels<=0||vi->channels>256){ |
b = NULL; |
ret=OV_EFAULT; |
goto err_out; |
} |
/* first header packet **********************************************/ |
oggpack_writeinit(&opb); |
if(_vorbis_pack_info(&opb,vi))goto err_out; |
/* build the packet */ |
if(b->header)_ogg_free(b->header); |
b->header=_ogg_malloc(oggpack_bytes(&opb)); |
memcpy(b->header,opb.buffer,oggpack_bytes(&opb)); |
op->packet=b->header; |
op->bytes=oggpack_bytes(&opb); |
op->b_o_s=1; |
op->e_o_s=0; |
op->granulepos=0; |
op->packetno=0; |
/* second header packet (comments) **********************************/ |
oggpack_reset(&opb); |
if(_vorbis_pack_comment(&opb,vc))goto err_out; |
if(b->header1)_ogg_free(b->header1); |
b->header1=_ogg_malloc(oggpack_bytes(&opb)); |
memcpy(b->header1,opb.buffer,oggpack_bytes(&opb)); |
op_comm->packet=b->header1; |
op_comm->bytes=oggpack_bytes(&opb); |
op_comm->b_o_s=0; |
op_comm->e_o_s=0; |
op_comm->granulepos=0; |
op_comm->packetno=1; |
/* third header packet (modes/codebooks) ****************************/ |
oggpack_reset(&opb); |
if(_vorbis_pack_books(&opb,vi))goto err_out; |
if(b->header2)_ogg_free(b->header2); |
b->header2=_ogg_malloc(oggpack_bytes(&opb)); |
memcpy(b->header2,opb.buffer,oggpack_bytes(&opb)); |
op_code->packet=b->header2; |
op_code->bytes=oggpack_bytes(&opb); |
op_code->b_o_s=0; |
op_code->e_o_s=0; |
op_code->granulepos=0; |
op_code->packetno=2; |
oggpack_writeclear(&opb); |
return(0); |
err_out: |
memset(op,0,sizeof(*op)); |
memset(op_comm,0,sizeof(*op_comm)); |
memset(op_code,0,sizeof(*op_code)); |
if(b){ |
if(vi->channels>0)oggpack_writeclear(&opb); |
if(b->header)_ogg_free(b->header); |
if(b->header1)_ogg_free(b->header1); |
if(b->header2)_ogg_free(b->header2); |
b->header=NULL; |
b->header1=NULL; |
b->header2=NULL; |
} |
return(ret); |
} |
double vorbis_granule_time(vorbis_dsp_state *v,ogg_int64_t granulepos){ |
if(granulepos == -1) return -1; |
/* We're not guaranteed a 64 bit unsigned type everywhere, so we |
have to put the unsigned granpo in a signed type. */ |
if(granulepos>=0){ |
return((double)granulepos/v->vi->rate); |
}else{ |
ogg_int64_t granuleoff=0xffffffff; |
granuleoff<<=31; |
granuleoff|=0x7ffffffff; |
return(((double)granulepos+2+granuleoff+granuleoff)/v->vi->rate); |
} |
} |
const char *vorbis_version_string(void){ |
return GENERAL_VENDOR_STRING; |
} |
/contrib/sdk/sources/libvorbis-1.3.7/lib/lookup.c |
---|
0,0 → 1,93 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: lookup based functions |
********************************************************************/ |
#include <math.h> |
#include "lookup.h" |
#include "lookup_data.h" |
#include "os.h" |
#include "misc.h" |
#ifdef FLOAT_LOOKUP |
/* interpolated lookup based cos function, domain 0 to PI only */ |
float vorbis_coslook(float a){ |
double d=a*(.31830989*(float)COS_LOOKUP_SZ); |
int i=vorbis_ftoi(d-.5); |
return COS_LOOKUP[i]+ (d-i)*(COS_LOOKUP[i+1]-COS_LOOKUP[i]); |
} |
/* interpolated 1./sqrt(p) where .5 <= p < 1. */ |
float vorbis_invsqlook(float a){ |
double d=a*(2.f*(float)INVSQ_LOOKUP_SZ)-(float)INVSQ_LOOKUP_SZ; |
int i=vorbis_ftoi(d-.5f); |
return INVSQ_LOOKUP[i]+ (d-i)*(INVSQ_LOOKUP[i+1]-INVSQ_LOOKUP[i]); |
} |
/* interpolated 1./sqrt(p) where .5 <= p < 1. */ |
float vorbis_invsq2explook(int a){ |
return INVSQ2EXP_LOOKUP[a-INVSQ2EXP_LOOKUP_MIN]; |
} |
#include <stdio.h> |
/* interpolated lookup based fromdB function, domain -140dB to 0dB only */ |
float vorbis_fromdBlook(float a){ |
int i=vorbis_ftoi(a*((float)(-(1<<FROMdB2_SHIFT)))-.5f); |
return (i<0)?1.f: |
((i>=(FROMdB_LOOKUP_SZ<<FROMdB_SHIFT))?0.f: |
FROMdB_LOOKUP[i>>FROMdB_SHIFT]*FROMdB2_LOOKUP[i&FROMdB2_MASK]); |
} |
#endif |
#ifdef INT_LOOKUP |
/* interpolated 1./sqrt(p) where .5 <= a < 1. (.100000... to .111111...) in |
16.16 format |
returns in m.8 format */ |
long vorbis_invsqlook_i(long a,long e){ |
long i=(a&0x7fff)>>(INVSQ_LOOKUP_I_SHIFT-1); |
long d=(a&INVSQ_LOOKUP_I_MASK)<<(16-INVSQ_LOOKUP_I_SHIFT); /* 0.16 */ |
long val=INVSQ_LOOKUP_I[i]- /* 1.16 */ |
(((INVSQ_LOOKUP_I[i]-INVSQ_LOOKUP_I[i+1])* /* 0.16 */ |
d)>>16); /* result 1.16 */ |
e+=32; |
if(e&1)val=(val*5792)>>13; /* multiply val by 1/sqrt(2) */ |
e=(e>>1)-8; |
return(val>>e); |
} |
/* interpolated lookup based fromdB function, domain -140dB to 0dB only */ |
/* a is in n.12 format */ |
float vorbis_fromdBlook_i(long a){ |
int i=(-a)>>(12-FROMdB2_SHIFT); |
return (i<0)?1.f: |
((i>=(FROMdB_LOOKUP_SZ<<FROMdB_SHIFT))?0.f: |
FROMdB_LOOKUP[i>>FROMdB_SHIFT]*FROMdB2_LOOKUP[i&FROMdB2_MASK]); |
} |
/* interpolated lookup based cos function, domain 0 to PI only */ |
/* a is in 0.16 format, where 0==0, 2^^16-1==PI, return 0.14 */ |
long vorbis_coslook_i(long a){ |
int i=a>>COS_LOOKUP_I_SHIFT; |
int d=a&COS_LOOKUP_I_MASK; |
return COS_LOOKUP_I[i]- ((d*(COS_LOOKUP_I[i]-COS_LOOKUP_I[i+1]))>> |
COS_LOOKUP_I_SHIFT); |
} |
#endif |
/contrib/sdk/sources/libvorbis-1.3.7/lib/lookup.h |
---|
0,0 → 1,31 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: lookup based functions |
********************************************************************/ |
#ifndef _V_LOOKUP_H_ |
#ifdef FLOAT_LOOKUP |
extern float vorbis_coslook(float a); |
extern float vorbis_invsqlook(float a); |
extern float vorbis_invsq2explook(int a); |
extern float vorbis_fromdBlook(float a); |
#endif |
#ifdef INT_LOOKUP |
extern long vorbis_invsqlook_i(long a,long e); |
extern long vorbis_coslook_i(long a); |
extern float vorbis_fromdBlook_i(long a); |
#endif |
#endif |
/contrib/sdk/sources/libvorbis-1.3.7/lib/lookup_data.h |
---|
0,0 → 1,191 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: lookup data; generated by lookups.pl; edit there |
********************************************************************/ |
#ifndef _V_LOOKUP_DATA_H_ |
#ifdef FLOAT_LOOKUP |
#define COS_LOOKUP_SZ 128 |
static const float COS_LOOKUP[COS_LOOKUP_SZ+1]={ |
+1.0000000000000f,+0.9996988186962f,+0.9987954562052f,+0.9972904566787f, |
+0.9951847266722f,+0.9924795345987f,+0.9891765099648f,+0.9852776423889f, |
+0.9807852804032f,+0.9757021300385f,+0.9700312531945f,+0.9637760657954f, |
+0.9569403357322f,+0.9495281805930f,+0.9415440651830f,+0.9329927988347f, |
+0.9238795325113f,+0.9142097557035f,+0.9039892931234f,+0.8932243011955f, |
+0.8819212643484f,+0.8700869911087f,+0.8577286100003f,+0.8448535652497f, |
+0.8314696123025f,+0.8175848131516f,+0.8032075314806f,+0.7883464276266f, |
+0.7730104533627f,+0.7572088465065f,+0.7409511253550f,+0.7242470829515f, |
+0.7071067811865f,+0.6895405447371f,+0.6715589548470f,+0.6531728429538f, |
+0.6343932841636f,+0.6152315905806f,+0.5956993044924f,+0.5758081914178f, |
+0.5555702330196f,+0.5349976198871f,+0.5141027441932f,+0.4928981922298f, |
+0.4713967368260f,+0.4496113296546f,+0.4275550934303f,+0.4052413140050f, |
+0.3826834323651f,+0.3598950365350f,+0.3368898533922f,+0.3136817403989f, |
+0.2902846772545f,+0.2667127574749f,+0.2429801799033f,+0.2191012401569f, |
+0.1950903220161f,+0.1709618887603f,+0.1467304744554f,+0.1224106751992f, |
+0.0980171403296f,+0.0735645635997f,+0.0490676743274f,+0.0245412285229f, |
+0.0000000000000f,-0.0245412285229f,-0.0490676743274f,-0.0735645635997f, |
-0.0980171403296f,-0.1224106751992f,-0.1467304744554f,-0.1709618887603f, |
-0.1950903220161f,-0.2191012401569f,-0.2429801799033f,-0.2667127574749f, |
-0.2902846772545f,-0.3136817403989f,-0.3368898533922f,-0.3598950365350f, |
-0.3826834323651f,-0.4052413140050f,-0.4275550934303f,-0.4496113296546f, |
-0.4713967368260f,-0.4928981922298f,-0.5141027441932f,-0.5349976198871f, |
-0.5555702330196f,-0.5758081914178f,-0.5956993044924f,-0.6152315905806f, |
-0.6343932841636f,-0.6531728429538f,-0.6715589548470f,-0.6895405447371f, |
-0.7071067811865f,-0.7242470829515f,-0.7409511253550f,-0.7572088465065f, |
-0.7730104533627f,-0.7883464276266f,-0.8032075314806f,-0.8175848131516f, |
-0.8314696123025f,-0.8448535652497f,-0.8577286100003f,-0.8700869911087f, |
-0.8819212643484f,-0.8932243011955f,-0.9039892931234f,-0.9142097557035f, |
-0.9238795325113f,-0.9329927988347f,-0.9415440651830f,-0.9495281805930f, |
-0.9569403357322f,-0.9637760657954f,-0.9700312531945f,-0.9757021300385f, |
-0.9807852804032f,-0.9852776423889f,-0.9891765099648f,-0.9924795345987f, |
-0.9951847266722f,-0.9972904566787f,-0.9987954562052f,-0.9996988186962f, |
-1.0000000000000f, |
}; |
#define INVSQ_LOOKUP_SZ 32 |
static const float INVSQ_LOOKUP[INVSQ_LOOKUP_SZ+1]={ |
1.414213562373f,1.392621247646f,1.371988681140f,1.352246807566f, |
1.333333333333f,1.315191898443f,1.297771369046f,1.281025230441f, |
1.264911064067f,1.249390095109f,1.234426799697f,1.219988562661f, |
1.206045378311f,1.192569588000f,1.179535649239f,1.166919931983f, |
1.154700538379f,1.142857142857f,1.131370849898f,1.120224067222f, |
1.109400392450f,1.098884511590f,1.088662107904f,1.078719779941f, |
1.069044967650f,1.059625885652f,1.050451462878f,1.041511287847f, |
1.032795558989f,1.024295039463f,1.016001016002f,1.007905261358f, |
1.000000000000f, |
}; |
#define INVSQ2EXP_LOOKUP_MIN (-32) |
#define INVSQ2EXP_LOOKUP_MAX 32 |
static const float INVSQ2EXP_LOOKUP[INVSQ2EXP_LOOKUP_MAX-\ |
INVSQ2EXP_LOOKUP_MIN+1]={ |
65536.f, 46340.95001f, 32768.f, 23170.47501f, |
16384.f, 11585.2375f, 8192.f, 5792.618751f, |
4096.f, 2896.309376f, 2048.f, 1448.154688f, |
1024.f, 724.0773439f, 512.f, 362.038672f, |
256.f, 181.019336f, 128.f, 90.50966799f, |
64.f, 45.254834f, 32.f, 22.627417f, |
16.f, 11.3137085f, 8.f, 5.656854249f, |
4.f, 2.828427125f, 2.f, 1.414213562f, |
1.f, 0.7071067812f, 0.5f, 0.3535533906f, |
0.25f, 0.1767766953f, 0.125f, 0.08838834765f, |
0.0625f, 0.04419417382f, 0.03125f, 0.02209708691f, |
0.015625f, 0.01104854346f, 0.0078125f, 0.005524271728f, |
0.00390625f, 0.002762135864f, 0.001953125f, 0.001381067932f, |
0.0009765625f, 0.000690533966f, 0.00048828125f, 0.000345266983f, |
0.000244140625f,0.0001726334915f,0.0001220703125f,8.631674575e-05f, |
6.103515625e-05f,4.315837288e-05f,3.051757812e-05f,2.157918644e-05f, |
1.525878906e-05f, |
}; |
#endif |
#define FROMdB_LOOKUP_SZ 35 |
#define FROMdB2_LOOKUP_SZ 32 |
#define FROMdB_SHIFT 5 |
#define FROMdB2_SHIFT 3 |
#define FROMdB2_MASK 31 |
#ifdef FLOAT_LOOKUP |
static const float FROMdB_LOOKUP[FROMdB_LOOKUP_SZ]={ |
1.f, 0.6309573445f, 0.3981071706f, 0.2511886432f, |
0.1584893192f, 0.1f, 0.06309573445f, 0.03981071706f, |
0.02511886432f, 0.01584893192f, 0.01f, 0.006309573445f, |
0.003981071706f, 0.002511886432f, 0.001584893192f, 0.001f, |
0.0006309573445f,0.0003981071706f,0.0002511886432f,0.0001584893192f, |
0.0001f,6.309573445e-05f,3.981071706e-05f,2.511886432e-05f, |
1.584893192e-05f, 1e-05f,6.309573445e-06f,3.981071706e-06f, |
2.511886432e-06f,1.584893192e-06f, 1e-06f,6.309573445e-07f, |
3.981071706e-07f,2.511886432e-07f,1.584893192e-07f, |
}; |
static const float FROMdB2_LOOKUP[FROMdB2_LOOKUP_SZ]={ |
0.9928302478f, 0.9786445908f, 0.9646616199f, 0.9508784391f, |
0.9372921937f, 0.92390007f, 0.9106992942f, 0.8976871324f, |
0.8848608897f, 0.8722179097f, 0.8597555737f, 0.8474713009f, |
0.835362547f, 0.8234268041f, 0.8116616003f, 0.8000644989f, |
0.7886330981f, 0.7773650302f, 0.7662579617f, 0.755309592f, |
0.7445176537f, 0.7338799116f, 0.7233941627f, 0.7130582353f, |
0.7028699885f, 0.6928273125f, 0.6829281272f, 0.6731703824f, |
0.6635520573f, 0.6540711597f, 0.6447257262f, 0.6355138211f, |
}; |
#endif |
#ifdef INT_LOOKUP |
#define INVSQ_LOOKUP_I_SHIFT 10 |
#define INVSQ_LOOKUP_I_MASK 1023 |
static const long INVSQ_LOOKUP_I[64+1]={ |
92682l, 91966l, 91267l, 90583l, |
89915l, 89261l, 88621l, 87995l, |
87381l, 86781l, 86192l, 85616l, |
85051l, 84497l, 83953l, 83420l, |
82897l, 82384l, 81880l, 81385l, |
80899l, 80422l, 79953l, 79492l, |
79039l, 78594l, 78156l, 77726l, |
77302l, 76885l, 76475l, 76072l, |
75674l, 75283l, 74898l, 74519l, |
74146l, 73778l, 73415l, 73058l, |
72706l, 72359l, 72016l, 71679l, |
71347l, 71019l, 70695l, 70376l, |
70061l, 69750l, 69444l, 69141l, |
68842l, 68548l, 68256l, 67969l, |
67685l, 67405l, 67128l, 66855l, |
66585l, 66318l, 66054l, 65794l, |
65536l, |
}; |
#define COS_LOOKUP_I_SHIFT 9 |
#define COS_LOOKUP_I_MASK 511 |
#define COS_LOOKUP_I_SZ 128 |
static const long COS_LOOKUP_I[COS_LOOKUP_I_SZ+1]={ |
16384l, 16379l, 16364l, 16340l, |
16305l, 16261l, 16207l, 16143l, |
16069l, 15986l, 15893l, 15791l, |
15679l, 15557l, 15426l, 15286l, |
15137l, 14978l, 14811l, 14635l, |
14449l, 14256l, 14053l, 13842l, |
13623l, 13395l, 13160l, 12916l, |
12665l, 12406l, 12140l, 11866l, |
11585l, 11297l, 11003l, 10702l, |
10394l, 10080l, 9760l, 9434l, |
9102l, 8765l, 8423l, 8076l, |
7723l, 7366l, 7005l, 6639l, |
6270l, 5897l, 5520l, 5139l, |
4756l, 4370l, 3981l, 3590l, |
3196l, 2801l, 2404l, 2006l, |
1606l, 1205l, 804l, 402l, |
0l, -401l, -803l, -1204l, |
-1605l, -2005l, -2403l, -2800l, |
-3195l, -3589l, -3980l, -4369l, |
-4755l, -5138l, -5519l, -5896l, |
-6269l, -6638l, -7004l, -7365l, |
-7722l, -8075l, -8422l, -8764l, |
-9101l, -9433l, -9759l, -10079l, |
-10393l, -10701l, -11002l, -11296l, |
-11584l, -11865l, -12139l, -12405l, |
-12664l, -12915l, -13159l, -13394l, |
-13622l, -13841l, -14052l, -14255l, |
-14448l, -14634l, -14810l, -14977l, |
-15136l, -15285l, -15425l, -15556l, |
-15678l, -15790l, -15892l, -15985l, |
-16068l, -16142l, -16206l, -16260l, |
-16304l, -16339l, -16363l, -16378l, |
-16383l, |
}; |
#endif |
#endif |
/contrib/sdk/sources/libvorbis-1.3.7/lib/lpc.c |
---|
0,0 → 1,159 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: LPC low level routines |
********************************************************************/ |
/* Some of these routines (autocorrelator, LPC coefficient estimator) |
are derived from code written by Jutta Degener and Carsten Bormann; |
thus we include their copyright below. The entirety of this file |
is freely redistributable on the condition that both of these |
copyright notices are preserved without modification. */ |
/* Preserved Copyright: *********************************************/ |
/* Copyright 1992, 1993, 1994 by Jutta Degener and Carsten Bormann, |
Technische Universita"t Berlin |
Any use of this software is permitted provided that this notice is not |
removed and that neither the authors nor the Technische Universita"t |
Berlin are deemed to have made any representations as to the |
suitability of this software for any purpose nor are held responsible |
for any defects of this software. THERE IS ABSOLUTELY NO WARRANTY FOR |
THIS SOFTWARE. |
As a matter of courtesy, the authors request to be informed about uses |
this software has found, about bugs in this software, and about any |
improvements that may be of general interest. |
Berlin, 28.11.1994 |
Jutta Degener |
Carsten Bormann |
*********************************************************************/ |
#include <stdlib.h> |
#include <string.h> |
#include <math.h> |
#include "os.h" |
#include "smallft.h" |
#include "lpc.h" |
#include "scales.h" |
#include "misc.h" |
/* Autocorrelation LPC coeff generation algorithm invented by |
N. Levinson in 1947, modified by J. Durbin in 1959. */ |
/* Input : n elements of time doamin data |
Output: m lpc coefficients, excitation energy */ |
float vorbis_lpc_from_data(float *data,float *lpci,int n,int m){ |
double *aut=alloca(sizeof(*aut)*(m+1)); |
double *lpc=alloca(sizeof(*lpc)*(m)); |
double error; |
double epsilon; |
int i,j; |
/* autocorrelation, p+1 lag coefficients */ |
j=m+1; |
while(j--){ |
double d=0; /* double needed for accumulator depth */ |
for(i=j;i<n;i++)d+=(double)data[i]*data[i-j]; |
aut[j]=d; |
} |
/* Generate lpc coefficients from autocorr values */ |
/* set our noise floor to about -100dB */ |
error=aut[0] * (1. + 1e-10); |
epsilon=1e-9*aut[0]+1e-10; |
for(i=0;i<m;i++){ |
double r= -aut[i+1]; |
if(error<epsilon){ |
memset(lpc+i,0,(m-i)*sizeof(*lpc)); |
goto done; |
} |
/* Sum up this iteration's reflection coefficient; note that in |
Vorbis we don't save it. If anyone wants to recycle this code |
and needs reflection coefficients, save the results of 'r' from |
each iteration. */ |
for(j=0;j<i;j++)r-=lpc[j]*aut[i-j]; |
r/=error; |
/* Update LPC coefficients and total error */ |
lpc[i]=r; |
for(j=0;j<i/2;j++){ |
double tmp=lpc[j]; |
lpc[j]+=r*lpc[i-1-j]; |
lpc[i-1-j]+=r*tmp; |
} |
if(i&1)lpc[j]+=lpc[j]*r; |
error*=1.-r*r; |
} |
done: |
/* slightly damp the filter */ |
{ |
double g = .99; |
double damp = g; |
for(j=0;j<m;j++){ |
lpc[j]*=damp; |
damp*=g; |
} |
} |
for(j=0;j<m;j++)lpci[j]=(float)lpc[j]; |
/* we need the error value to know how big an impulse to hit the |
filter with later */ |
return error; |
} |
void vorbis_lpc_predict(float *coeff,float *prime,int m, |
float *data,long n){ |
/* in: coeff[0...m-1] LPC coefficients |
prime[0...m-1] initial values (allocated size of n+m-1) |
out: data[0...n-1] data samples */ |
long i,j,o,p; |
float y; |
float *work=alloca(sizeof(*work)*(m+n)); |
if(!prime) |
for(i=0;i<m;i++) |
work[i]=0.f; |
else |
for(i=0;i<m;i++) |
work[i]=prime[i]; |
for(i=0;i<n;i++){ |
y=0; |
o=i; |
p=m; |
for(j=0;j<m;j++) |
y-=work[o++]*coeff[--p]; |
data[i]=work[o]=y; |
} |
} |
/contrib/sdk/sources/libvorbis-1.3.7/lib/lpc.h |
---|
0,0 → 1,28 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: LPC low level routines |
********************************************************************/ |
#ifndef _V_LPC_H_ |
#define _V_LPC_H_ |
#include "vorbis/codec.h" |
/* simple linear scale LPC code */ |
extern float vorbis_lpc_from_data(float *data,float *lpc,int n,int m); |
extern void vorbis_lpc_predict(float *coeff,float *prime,int m, |
float *data,long n); |
#endif |
/contrib/sdk/sources/libvorbis-1.3.7/lib/lsp.c |
---|
0,0 → 1,454 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: LSP (also called LSF) conversion routines |
The LSP generation code is taken (with minimal modification and a |
few bugfixes) from "On the Computation of the LSP Frequencies" by |
Joseph Rothweiler (see http://www.rothweiler.us for contact info). |
The paper is available at: |
https://web.archive.org/web/20110810174000/http://home.myfairpoint.net/vzenxj75/myown1/joe/lsf/index.html |
********************************************************************/ |
/* Note that the lpc-lsp conversion finds the roots of polynomial with |
an iterative root polisher (CACM algorithm 283). It *is* possible |
to confuse this algorithm into not converging; that should only |
happen with absurdly closely spaced roots (very sharp peaks in the |
LPC f response) which in turn should be impossible in our use of |
the code. If this *does* happen anyway, it's a bug in the floor |
finder; find the cause of the confusion (probably a single bin |
spike or accidental near-float-limit resolution problems) and |
correct it. */ |
#include <math.h> |
#include <string.h> |
#include <stdlib.h> |
#include "lsp.h" |
#include "os.h" |
#include "misc.h" |
#include "lookup.h" |
#include "scales.h" |
/* three possible LSP to f curve functions; the exact computation |
(float), a lookup based float implementation, and an integer |
implementation. The float lookup is likely the optimal choice on |
any machine with an FPU. The integer implementation is *not* fixed |
point (due to the need for a large dynamic range and thus a |
separately tracked exponent) and thus much more complex than the |
relatively simple float implementations. It's mostly for future |
work on a fully fixed point implementation for processors like the |
ARM family. */ |
/* define either of these (preferably FLOAT_LOOKUP) to have faster |
but less precise implementation. */ |
#undef FLOAT_LOOKUP |
#undef INT_LOOKUP |
#ifdef FLOAT_LOOKUP |
#include "lookup.c" /* catch this in the build system; we #include for |
compilers (like gcc) that can't inline across |
modules */ |
/* side effect: changes *lsp to cosines of lsp */ |
void vorbis_lsp_to_curve(float *curve,int *map,int n,int ln,float *lsp,int m, |
float amp,float ampoffset){ |
int i; |
float wdel=M_PI/ln; |
vorbis_fpu_control fpu; |
vorbis_fpu_setround(&fpu); |
for(i=0;i<m;i++)lsp[i]=vorbis_coslook(lsp[i]); |
i=0; |
while(i<n){ |
int k=map[i]; |
int qexp; |
float p=.7071067812f; |
float q=.7071067812f; |
float w=vorbis_coslook(wdel*k); |
float *ftmp=lsp; |
int c=m>>1; |
while(c--){ |
q*=ftmp[0]-w; |
p*=ftmp[1]-w; |
ftmp+=2; |
} |
if(m&1){ |
/* odd order filter; slightly assymetric */ |
/* the last coefficient */ |
q*=ftmp[0]-w; |
q*=q; |
p*=p*(1.f-w*w); |
}else{ |
/* even order filter; still symmetric */ |
q*=q*(1.f+w); |
p*=p*(1.f-w); |
} |
q=frexp(p+q,&qexp); |
q=vorbis_fromdBlook(amp* |
vorbis_invsqlook(q)* |
vorbis_invsq2explook(qexp+m)- |
ampoffset); |
do{ |
curve[i++]*=q; |
}while(map[i]==k); |
} |
vorbis_fpu_restore(fpu); |
} |
#else |
#ifdef INT_LOOKUP |
#include "lookup.c" /* catch this in the build system; we #include for |
compilers (like gcc) that can't inline across |
modules */ |
static const int MLOOP_1[64]={ |
0,10,11,11, 12,12,12,12, 13,13,13,13, 13,13,13,13, |
14,14,14,14, 14,14,14,14, 14,14,14,14, 14,14,14,14, |
15,15,15,15, 15,15,15,15, 15,15,15,15, 15,15,15,15, |
15,15,15,15, 15,15,15,15, 15,15,15,15, 15,15,15,15, |
}; |
static const int MLOOP_2[64]={ |
0,4,5,5, 6,6,6,6, 7,7,7,7, 7,7,7,7, |
8,8,8,8, 8,8,8,8, 8,8,8,8, 8,8,8,8, |
9,9,9,9, 9,9,9,9, 9,9,9,9, 9,9,9,9, |
9,9,9,9, 9,9,9,9, 9,9,9,9, 9,9,9,9, |
}; |
static const int MLOOP_3[8]={0,1,2,2,3,3,3,3}; |
/* side effect: changes *lsp to cosines of lsp */ |
void vorbis_lsp_to_curve(float *curve,int *map,int n,int ln,float *lsp,int m, |
float amp,float ampoffset){ |
/* 0 <= m < 256 */ |
/* set up for using all int later */ |
int i; |
int ampoffseti=rint(ampoffset*4096.f); |
int ampi=rint(amp*16.f); |
long *ilsp=alloca(m*sizeof(*ilsp)); |
for(i=0;i<m;i++)ilsp[i]=vorbis_coslook_i(lsp[i]/M_PI*65536.f+.5f); |
i=0; |
while(i<n){ |
int j,k=map[i]; |
unsigned long pi=46341; /* 2**-.5 in 0.16 */ |
unsigned long qi=46341; |
int qexp=0,shift; |
long wi=vorbis_coslook_i(k*65536/ln); |
qi*=labs(ilsp[0]-wi); |
pi*=labs(ilsp[1]-wi); |
for(j=3;j<m;j+=2){ |
if(!(shift=MLOOP_1[(pi|qi)>>25])) |
if(!(shift=MLOOP_2[(pi|qi)>>19])) |
shift=MLOOP_3[(pi|qi)>>16]; |
qi=(qi>>shift)*labs(ilsp[j-1]-wi); |
pi=(pi>>shift)*labs(ilsp[j]-wi); |
qexp+=shift; |
} |
if(!(shift=MLOOP_1[(pi|qi)>>25])) |
if(!(shift=MLOOP_2[(pi|qi)>>19])) |
shift=MLOOP_3[(pi|qi)>>16]; |
/* pi,qi normalized collectively, both tracked using qexp */ |
if(m&1){ |
/* odd order filter; slightly assymetric */ |
/* the last coefficient */ |
qi=(qi>>shift)*labs(ilsp[j-1]-wi); |
pi=(pi>>shift)<<14; |
qexp+=shift; |
if(!(shift=MLOOP_1[(pi|qi)>>25])) |
if(!(shift=MLOOP_2[(pi|qi)>>19])) |
shift=MLOOP_3[(pi|qi)>>16]; |
pi>>=shift; |
qi>>=shift; |
qexp+=shift-14*((m+1)>>1); |
pi=((pi*pi)>>16); |
qi=((qi*qi)>>16); |
qexp=qexp*2+m; |
pi*=(1<<14)-((wi*wi)>>14); |
qi+=pi>>14; |
}else{ |
/* even order filter; still symmetric */ |
/* p*=p(1-w), q*=q(1+w), let normalization drift because it isn't |
worth tracking step by step */ |
pi>>=shift; |
qi>>=shift; |
qexp+=shift-7*m; |
pi=((pi*pi)>>16); |
qi=((qi*qi)>>16); |
qexp=qexp*2+m; |
pi*=(1<<14)-wi; |
qi*=(1<<14)+wi; |
qi=(qi+pi)>>14; |
} |
/* we've let the normalization drift because it wasn't important; |
however, for the lookup, things must be normalized again. We |
need at most one right shift or a number of left shifts */ |
if(qi&0xffff0000){ /* checks for 1.xxxxxxxxxxxxxxxx */ |
qi>>=1; qexp++; |
}else |
while(qi && !(qi&0x8000)){ /* checks for 0.0xxxxxxxxxxxxxxx or less*/ |
qi<<=1; qexp--; |
} |
amp=vorbis_fromdBlook_i(ampi* /* n.4 */ |
vorbis_invsqlook_i(qi,qexp)- |
/* m.8, m+n<=8 */ |
ampoffseti); /* 8.12[0] */ |
curve[i]*=amp; |
while(map[++i]==k)curve[i]*=amp; |
} |
} |
#else |
/* old, nonoptimized but simple version for any poor sap who needs to |
figure out what the hell this code does, or wants the other |
fraction of a dB precision */ |
/* side effect: changes *lsp to cosines of lsp */ |
void vorbis_lsp_to_curve(float *curve,int *map,int n,int ln,float *lsp,int m, |
float amp,float ampoffset){ |
int i; |
float wdel=M_PI/ln; |
for(i=0;i<m;i++)lsp[i]=2.f*cos(lsp[i]); |
i=0; |
while(i<n){ |
int j,k=map[i]; |
float p=.5f; |
float q=.5f; |
float w=2.f*cos(wdel*k); |
for(j=1;j<m;j+=2){ |
q *= w-lsp[j-1]; |
p *= w-lsp[j]; |
} |
if(j==m){ |
/* odd order filter; slightly assymetric */ |
/* the last coefficient */ |
q*=w-lsp[j-1]; |
p*=p*(4.f-w*w); |
q*=q; |
}else{ |
/* even order filter; still symmetric */ |
p*=p*(2.f-w); |
q*=q*(2.f+w); |
} |
q=fromdB(amp/sqrt(p+q)-ampoffset); |
curve[i]*=q; |
while(map[++i]==k)curve[i]*=q; |
} |
} |
#endif |
#endif |
static void cheby(float *g, int ord) { |
int i, j; |
g[0] *= .5f; |
for(i=2; i<= ord; i++) { |
for(j=ord; j >= i; j--) { |
g[j-2] -= g[j]; |
g[j] += g[j]; |
} |
} |
} |
static int comp(const void *a,const void *b){ |
return (*(float *)a<*(float *)b)-(*(float *)a>*(float *)b); |
} |
/* Newton-Raphson-Maehly actually functioned as a decent root finder, |
but there are root sets for which it gets into limit cycles |
(exacerbated by zero suppression) and fails. We can't afford to |
fail, even if the failure is 1 in 100,000,000, so we now use |
Laguerre and later polish with Newton-Raphson (which can then |
afford to fail) */ |
#define EPSILON 10e-7 |
static int Laguerre_With_Deflation(float *a,int ord,float *r){ |
int i,m; |
double *defl=alloca(sizeof(*defl)*(ord+1)); |
for(i=0;i<=ord;i++)defl[i]=a[i]; |
for(m=ord;m>0;m--){ |
double new=0.f,delta; |
/* iterate a root */ |
while(1){ |
double p=defl[m],pp=0.f,ppp=0.f,denom; |
/* eval the polynomial and its first two derivatives */ |
for(i=m;i>0;i--){ |
ppp = new*ppp + pp; |
pp = new*pp + p; |
p = new*p + defl[i-1]; |
} |
/* Laguerre's method */ |
denom=(m-1) * ((m-1)*pp*pp - m*p*ppp); |
if(denom<0) |
return(-1); /* complex root! The LPC generator handed us a bad filter */ |
if(pp>0){ |
denom = pp + sqrt(denom); |
if(denom<EPSILON)denom=EPSILON; |
}else{ |
denom = pp - sqrt(denom); |
if(denom>-(EPSILON))denom=-(EPSILON); |
} |
delta = m*p/denom; |
new -= delta; |
if(delta<0.f)delta*=-1; |
if(fabs(delta/new)<10e-12)break; |
} |
r[m-1]=new; |
/* forward deflation */ |
for(i=m;i>0;i--) |
defl[i-1]+=new*defl[i]; |
defl++; |
} |
return(0); |
} |
/* for spit-and-polish only */ |
static int Newton_Raphson(float *a,int ord,float *r){ |
int i, k, count=0; |
double error=1.f; |
double *root=alloca(ord*sizeof(*root)); |
for(i=0; i<ord;i++) root[i] = r[i]; |
while(error>1e-20){ |
error=0; |
for(i=0; i<ord; i++) { /* Update each point. */ |
double pp=0.,delta; |
double rooti=root[i]; |
double p=a[ord]; |
for(k=ord-1; k>= 0; k--) { |
pp= pp* rooti + p; |
p = p * rooti + a[k]; |
} |
delta = p/pp; |
root[i] -= delta; |
error+= delta*delta; |
} |
if(count>40)return(-1); |
count++; |
} |
/* Replaced the original bubble sort with a real sort. With your |
help, we can eliminate the bubble sort in our lifetime. --Monty */ |
for(i=0; i<ord;i++) r[i] = root[i]; |
return(0); |
} |
/* Convert lpc coefficients to lsp coefficients */ |
int vorbis_lpc_to_lsp(float *lpc,float *lsp,int m){ |
int order2=(m+1)>>1; |
int g1_order,g2_order; |
float *g1=alloca(sizeof(*g1)*(order2+1)); |
float *g2=alloca(sizeof(*g2)*(order2+1)); |
float *g1r=alloca(sizeof(*g1r)*(order2+1)); |
float *g2r=alloca(sizeof(*g2r)*(order2+1)); |
int i; |
/* even and odd are slightly different base cases */ |
g1_order=(m+1)>>1; |
g2_order=(m) >>1; |
/* Compute the lengths of the x polynomials. */ |
/* Compute the first half of K & R F1 & F2 polynomials. */ |
/* Compute half of the symmetric and antisymmetric polynomials. */ |
/* Remove the roots at +1 and -1. */ |
g1[g1_order] = 1.f; |
for(i=1;i<=g1_order;i++) g1[g1_order-i] = lpc[i-1]+lpc[m-i]; |
g2[g2_order] = 1.f; |
for(i=1;i<=g2_order;i++) g2[g2_order-i] = lpc[i-1]-lpc[m-i]; |
if(g1_order>g2_order){ |
for(i=2; i<=g2_order;i++) g2[g2_order-i] += g2[g2_order-i+2]; |
}else{ |
for(i=1; i<=g1_order;i++) g1[g1_order-i] -= g1[g1_order-i+1]; |
for(i=1; i<=g2_order;i++) g2[g2_order-i] += g2[g2_order-i+1]; |
} |
/* Convert into polynomials in cos(alpha) */ |
cheby(g1,g1_order); |
cheby(g2,g2_order); |
/* Find the roots of the 2 even polynomials.*/ |
if(Laguerre_With_Deflation(g1,g1_order,g1r) || |
Laguerre_With_Deflation(g2,g2_order,g2r)) |
return(-1); |
Newton_Raphson(g1,g1_order,g1r); /* if it fails, it leaves g1r alone */ |
Newton_Raphson(g2,g2_order,g2r); /* if it fails, it leaves g2r alone */ |
qsort(g1r,g1_order,sizeof(*g1r),comp); |
qsort(g2r,g2_order,sizeof(*g2r),comp); |
for(i=0;i<g1_order;i++) |
lsp[i*2] = acos(g1r[i]); |
for(i=0;i<g2_order;i++) |
lsp[i*2+1] = acos(g2r[i]); |
return(0); |
} |
/contrib/sdk/sources/libvorbis-1.3.7/lib/lsp.h |
---|
0,0 → 1,27 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: LSP (also called LSF) conversion routines |
********************************************************************/ |
#ifndef _V_LSP_H_ |
#define _V_LSP_H_ |
extern int vorbis_lpc_to_lsp(float *lpc,float *lsp,int m); |
extern void vorbis_lsp_to_curve(float *curve,int *map,int n,int ln, |
float *lsp,int m, |
float amp,float ampoffset); |
#endif |
/contrib/sdk/sources/libvorbis-1.3.7/lib/mapping0.c |
---|
0,0 → 1,808 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2010 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: channel mapping 0 implementation |
********************************************************************/ |
#include <stdlib.h> |
#include <stdio.h> |
#include <string.h> |
#include <math.h> |
#include <ogg/ogg.h> |
#include "vorbis/codec.h" |
#include "codec_internal.h" |
#include "codebook.h" |
#include "window.h" |
#include "registry.h" |
#include "psy.h" |
#include "misc.h" |
/* simplistic, wasteful way of doing this (unique lookup for each |
mode/submapping); there should be a central repository for |
identical lookups. That will require minor work, so I'm putting it |
off as low priority. |
Why a lookup for each backend in a given mode? Because the |
blocksize is set by the mode, and low backend lookups may require |
parameters from other areas of the mode/mapping */ |
static void mapping0_free_info(vorbis_info_mapping *i){ |
vorbis_info_mapping0 *info=(vorbis_info_mapping0 *)i; |
if(info){ |
memset(info,0,sizeof(*info)); |
_ogg_free(info); |
} |
} |
static void mapping0_pack(vorbis_info *vi,vorbis_info_mapping *vm, |
oggpack_buffer *opb){ |
int i; |
vorbis_info_mapping0 *info=(vorbis_info_mapping0 *)vm; |
/* another 'we meant to do it this way' hack... up to beta 4, we |
packed 4 binary zeros here to signify one submapping in use. We |
now redefine that to mean four bitflags that indicate use of |
deeper features; bit0:submappings, bit1:coupling, |
bit2,3:reserved. This is backward compatable with all actual uses |
of the beta code. */ |
if(info->submaps>1){ |
oggpack_write(opb,1,1); |
oggpack_write(opb,info->submaps-1,4); |
}else |
oggpack_write(opb,0,1); |
if(info->coupling_steps>0){ |
oggpack_write(opb,1,1); |
oggpack_write(opb,info->coupling_steps-1,8); |
for(i=0;i<info->coupling_steps;i++){ |
oggpack_write(opb,info->coupling_mag[i],ov_ilog(vi->channels-1)); |
oggpack_write(opb,info->coupling_ang[i],ov_ilog(vi->channels-1)); |
} |
}else |
oggpack_write(opb,0,1); |
oggpack_write(opb,0,2); /* 2,3:reserved */ |
/* we don't write the channel submappings if we only have one... */ |
if(info->submaps>1){ |
for(i=0;i<vi->channels;i++) |
oggpack_write(opb,info->chmuxlist[i],4); |
} |
for(i=0;i<info->submaps;i++){ |
oggpack_write(opb,0,8); /* time submap unused */ |
oggpack_write(opb,info->floorsubmap[i],8); |
oggpack_write(opb,info->residuesubmap[i],8); |
} |
} |
/* also responsible for range checking */ |
static vorbis_info_mapping *mapping0_unpack(vorbis_info *vi,oggpack_buffer *opb){ |
int i,b; |
vorbis_info_mapping0 *info=_ogg_calloc(1,sizeof(*info)); |
codec_setup_info *ci=vi->codec_setup; |
if(vi->channels<=0)goto err_out; |
b=oggpack_read(opb,1); |
if(b<0)goto err_out; |
if(b){ |
info->submaps=oggpack_read(opb,4)+1; |
if(info->submaps<=0)goto err_out; |
}else |
info->submaps=1; |
b=oggpack_read(opb,1); |
if(b<0)goto err_out; |
if(b){ |
info->coupling_steps=oggpack_read(opb,8)+1; |
if(info->coupling_steps<=0)goto err_out; |
for(i=0;i<info->coupling_steps;i++){ |
/* vi->channels > 0 is enforced in the caller */ |
int testM=info->coupling_mag[i]= |
oggpack_read(opb,ov_ilog(vi->channels-1)); |
int testA=info->coupling_ang[i]= |
oggpack_read(opb,ov_ilog(vi->channels-1)); |
if(testM<0 || |
testA<0 || |
testM==testA || |
testM>=vi->channels || |
testA>=vi->channels) goto err_out; |
} |
} |
if(oggpack_read(opb,2)!=0)goto err_out; /* 2,3:reserved */ |
if(info->submaps>1){ |
for(i=0;i<vi->channels;i++){ |
info->chmuxlist[i]=oggpack_read(opb,4); |
if(info->chmuxlist[i]>=info->submaps || info->chmuxlist[i]<0)goto err_out; |
} |
} |
for(i=0;i<info->submaps;i++){ |
oggpack_read(opb,8); /* time submap unused */ |
info->floorsubmap[i]=oggpack_read(opb,8); |
if(info->floorsubmap[i]>=ci->floors || info->floorsubmap[i]<0)goto err_out; |
info->residuesubmap[i]=oggpack_read(opb,8); |
if(info->residuesubmap[i]>=ci->residues || info->residuesubmap[i]<0)goto err_out; |
} |
return info; |
err_out: |
mapping0_free_info(info); |
return(NULL); |
} |
#include "os.h" |
#include "lpc.h" |
#include "lsp.h" |
#include "envelope.h" |
#include "mdct.h" |
#include "psy.h" |
#include "scales.h" |
#if 0 |
static long seq=0; |
static ogg_int64_t total=0; |
static float FLOOR1_fromdB_LOOKUP[256]={ |
1.0649863e-07F, 1.1341951e-07F, 1.2079015e-07F, 1.2863978e-07F, |
1.3699951e-07F, 1.4590251e-07F, 1.5538408e-07F, 1.6548181e-07F, |
1.7623575e-07F, 1.8768855e-07F, 1.9988561e-07F, 2.128753e-07F, |
2.2670913e-07F, 2.4144197e-07F, 2.5713223e-07F, 2.7384213e-07F, |
2.9163793e-07F, 3.1059021e-07F, 3.3077411e-07F, 3.5226968e-07F, |
3.7516214e-07F, 3.9954229e-07F, 4.2550680e-07F, 4.5315863e-07F, |
4.8260743e-07F, 5.1396998e-07F, 5.4737065e-07F, 5.8294187e-07F, |
6.2082472e-07F, 6.6116941e-07F, 7.0413592e-07F, 7.4989464e-07F, |
7.9862701e-07F, 8.5052630e-07F, 9.0579828e-07F, 9.6466216e-07F, |
1.0273513e-06F, 1.0941144e-06F, 1.1652161e-06F, 1.2409384e-06F, |
1.3215816e-06F, 1.4074654e-06F, 1.4989305e-06F, 1.5963394e-06F, |
1.7000785e-06F, 1.8105592e-06F, 1.9282195e-06F, 2.0535261e-06F, |
2.1869758e-06F, 2.3290978e-06F, 2.4804557e-06F, 2.6416497e-06F, |
2.8133190e-06F, 2.9961443e-06F, 3.1908506e-06F, 3.3982101e-06F, |
3.6190449e-06F, 3.8542308e-06F, 4.1047004e-06F, 4.3714470e-06F, |
4.6555282e-06F, 4.9580707e-06F, 5.2802740e-06F, 5.6234160e-06F, |
5.9888572e-06F, 6.3780469e-06F, 6.7925283e-06F, 7.2339451e-06F, |
7.7040476e-06F, 8.2047000e-06F, 8.7378876e-06F, 9.3057248e-06F, |
9.9104632e-06F, 1.0554501e-05F, 1.1240392e-05F, 1.1970856e-05F, |
1.2748789e-05F, 1.3577278e-05F, 1.4459606e-05F, 1.5399272e-05F, |
1.6400004e-05F, 1.7465768e-05F, 1.8600792e-05F, 1.9809576e-05F, |
2.1096914e-05F, 2.2467911e-05F, 2.3928002e-05F, 2.5482978e-05F, |
2.7139006e-05F, 2.8902651e-05F, 3.0780908e-05F, 3.2781225e-05F, |
3.4911534e-05F, 3.7180282e-05F, 3.9596466e-05F, 4.2169667e-05F, |
4.4910090e-05F, 4.7828601e-05F, 5.0936773e-05F, 5.4246931e-05F, |
5.7772202e-05F, 6.1526565e-05F, 6.5524908e-05F, 6.9783085e-05F, |
7.4317983e-05F, 7.9147585e-05F, 8.4291040e-05F, 8.9768747e-05F, |
9.5602426e-05F, 0.00010181521F, 0.00010843174F, 0.00011547824F, |
0.00012298267F, 0.00013097477F, 0.00013948625F, 0.00014855085F, |
0.00015820453F, 0.00016848555F, 0.00017943469F, 0.00019109536F, |
0.00020351382F, 0.00021673929F, 0.00023082423F, 0.00024582449F, |
0.00026179955F, 0.00027881276F, 0.00029693158F, 0.00031622787F, |
0.00033677814F, 0.00035866388F, 0.00038197188F, 0.00040679456F, |
0.00043323036F, 0.00046138411F, 0.00049136745F, 0.00052329927F, |
0.00055730621F, 0.00059352311F, 0.00063209358F, 0.00067317058F, |
0.00071691700F, 0.00076350630F, 0.00081312324F, 0.00086596457F, |
0.00092223983F, 0.00098217216F, 0.0010459992F, 0.0011139742F, |
0.0011863665F, 0.0012634633F, 0.0013455702F, 0.0014330129F, |
0.0015261382F, 0.0016253153F, 0.0017309374F, 0.0018434235F, |
0.0019632195F, 0.0020908006F, 0.0022266726F, 0.0023713743F, |
0.0025254795F, 0.0026895994F, 0.0028643847F, 0.0030505286F, |
0.0032487691F, 0.0034598925F, 0.0036847358F, 0.0039241906F, |
0.0041792066F, 0.0044507950F, 0.0047400328F, 0.0050480668F, |
0.0053761186F, 0.0057254891F, 0.0060975636F, 0.0064938176F, |
0.0069158225F, 0.0073652516F, 0.0078438871F, 0.0083536271F, |
0.0088964928F, 0.009474637F, 0.010090352F, 0.010746080F, |
0.011444421F, 0.012188144F, 0.012980198F, 0.013823725F, |
0.014722068F, 0.015678791F, 0.016697687F, 0.017782797F, |
0.018938423F, 0.020169149F, 0.021479854F, 0.022875735F, |
0.024362330F, 0.025945531F, 0.027631618F, 0.029427276F, |
0.031339626F, 0.033376252F, 0.035545228F, 0.037855157F, |
0.040315199F, 0.042935108F, 0.045725273F, 0.048696758F, |
0.051861348F, 0.055231591F, 0.058820850F, 0.062643361F, |
0.066714279F, 0.071049749F, 0.075666962F, 0.080584227F, |
0.085821044F, 0.091398179F, 0.097337747F, 0.10366330F, |
0.11039993F, 0.11757434F, 0.12521498F, 0.13335215F, |
0.14201813F, 0.15124727F, 0.16107617F, 0.17154380F, |
0.18269168F, 0.19456402F, 0.20720788F, 0.22067342F, |
0.23501402F, 0.25028656F, 0.26655159F, 0.28387361F, |
0.30232132F, 0.32196786F, 0.34289114F, 0.36517414F, |
0.38890521F, 0.41417847F, 0.44109412F, 0.46975890F, |
0.50028648F, 0.53279791F, 0.56742212F, 0.60429640F, |
0.64356699F, 0.68538959F, 0.72993007F, 0.77736504F, |
0.82788260F, 0.88168307F, 0.9389798F, 1.F, |
}; |
#endif |
static int mapping0_forward(vorbis_block *vb){ |
vorbis_dsp_state *vd=vb->vd; |
vorbis_info *vi=vd->vi; |
codec_setup_info *ci=vi->codec_setup; |
private_state *b=vb->vd->backend_state; |
vorbis_block_internal *vbi=(vorbis_block_internal *)vb->internal; |
int n=vb->pcmend; |
int i,j,k; |
int *nonzero = alloca(sizeof(*nonzero)*vi->channels); |
float **gmdct = _vorbis_block_alloc(vb,vi->channels*sizeof(*gmdct)); |
int **iwork = _vorbis_block_alloc(vb,vi->channels*sizeof(*iwork)); |
int ***floor_posts = _vorbis_block_alloc(vb,vi->channels*sizeof(*floor_posts)); |
float global_ampmax=vbi->ampmax; |
float *local_ampmax=alloca(sizeof(*local_ampmax)*vi->channels); |
int blocktype=vbi->blocktype; |
int modenumber=vb->W; |
vorbis_info_mapping0 *info=ci->map_param[modenumber]; |
vorbis_look_psy *psy_look=b->psy+blocktype+(vb->W?2:0); |
vb->mode=modenumber; |
for(i=0;i<vi->channels;i++){ |
float scale=4.f/n; |
float scale_dB; |
float *pcm =vb->pcm[i]; |
float *logfft =pcm; |
iwork[i]=_vorbis_block_alloc(vb,n/2*sizeof(**iwork)); |
gmdct[i]=_vorbis_block_alloc(vb,n/2*sizeof(**gmdct)); |
scale_dB=todB(&scale) + .345; /* + .345 is a hack; the original |
todB estimation used on IEEE 754 |
compliant machines had a bug that |
returned dB values about a third |
of a decibel too high. The bug |
was harmless because tunings |
implicitly took that into |
account. However, fixing the bug |
in the estimator requires |
changing all the tunings as well. |
For now, it's easier to sync |
things back up here, and |
recalibrate the tunings in the |
next major model upgrade. */ |
#if 0 |
if(vi->channels==2){ |
if(i==0) |
_analysis_output("pcmL",seq,pcm,n,0,0,total-n/2); |
else |
_analysis_output("pcmR",seq,pcm,n,0,0,total-n/2); |
}else{ |
_analysis_output("pcm",seq,pcm,n,0,0,total-n/2); |
} |
#endif |
/* window the PCM data */ |
_vorbis_apply_window(pcm,b->window,ci->blocksizes,vb->lW,vb->W,vb->nW); |
#if 0 |
if(vi->channels==2){ |
if(i==0) |
_analysis_output("windowedL",seq,pcm,n,0,0,total-n/2); |
else |
_analysis_output("windowedR",seq,pcm,n,0,0,total-n/2); |
}else{ |
_analysis_output("windowed",seq,pcm,n,0,0,total-n/2); |
} |
#endif |
/* transform the PCM data */ |
/* only MDCT right now.... */ |
mdct_forward(b->transform[vb->W][0],pcm,gmdct[i]); |
/* FFT yields more accurate tonal estimation (not phase sensitive) */ |
drft_forward(&b->fft_look[vb->W],pcm); |
logfft[0]=scale_dB+todB(pcm) + .345; /* + .345 is a hack; the |
original todB estimation used on |
IEEE 754 compliant machines had a |
bug that returned dB values about |
a third of a decibel too high. |
The bug was harmless because |
tunings implicitly took that into |
account. However, fixing the bug |
in the estimator requires |
changing all the tunings as well. |
For now, it's easier to sync |
things back up here, and |
recalibrate the tunings in the |
next major model upgrade. */ |
local_ampmax[i]=logfft[0]; |
for(j=1;j<n-1;j+=2){ |
float temp=pcm[j]*pcm[j]+pcm[j+1]*pcm[j+1]; |
temp=logfft[(j+1)>>1]=scale_dB+.5f*todB(&temp) + .345; /* + |
.345 is a hack; the original todB |
estimation used on IEEE 754 |
compliant machines had a bug that |
returned dB values about a third |
of a decibel too high. The bug |
was harmless because tunings |
implicitly took that into |
account. However, fixing the bug |
in the estimator requires |
changing all the tunings as well. |
For now, it's easier to sync |
things back up here, and |
recalibrate the tunings in the |
next major model upgrade. */ |
if(temp>local_ampmax[i])local_ampmax[i]=temp; |
} |
if(local_ampmax[i]>0.f)local_ampmax[i]=0.f; |
if(local_ampmax[i]>global_ampmax)global_ampmax=local_ampmax[i]; |
#if 0 |
if(vi->channels==2){ |
if(i==0){ |
_analysis_output("fftL",seq,logfft,n/2,1,0,0); |
}else{ |
_analysis_output("fftR",seq,logfft,n/2,1,0,0); |
} |
}else{ |
_analysis_output("fft",seq,logfft,n/2,1,0,0); |
} |
#endif |
} |
{ |
float *noise = _vorbis_block_alloc(vb,n/2*sizeof(*noise)); |
float *tone = _vorbis_block_alloc(vb,n/2*sizeof(*tone)); |
for(i=0;i<vi->channels;i++){ |
/* the encoder setup assumes that all the modes used by any |
specific bitrate tweaking use the same floor */ |
int submap=info->chmuxlist[i]; |
/* the following makes things clearer to *me* anyway */ |
float *mdct =gmdct[i]; |
float *logfft =vb->pcm[i]; |
float *logmdct =logfft+n/2; |
float *logmask =logfft; |
vb->mode=modenumber; |
floor_posts[i]=_vorbis_block_alloc(vb,PACKETBLOBS*sizeof(**floor_posts)); |
memset(floor_posts[i],0,sizeof(**floor_posts)*PACKETBLOBS); |
for(j=0;j<n/2;j++) |
logmdct[j]=todB(mdct+j) + .345; /* + .345 is a hack; the original |
todB estimation used on IEEE 754 |
compliant machines had a bug that |
returned dB values about a third |
of a decibel too high. The bug |
was harmless because tunings |
implicitly took that into |
account. However, fixing the bug |
in the estimator requires |
changing all the tunings as well. |
For now, it's easier to sync |
things back up here, and |
recalibrate the tunings in the |
next major model upgrade. */ |
#if 0 |
if(vi->channels==2){ |
if(i==0) |
_analysis_output("mdctL",seq,logmdct,n/2,1,0,0); |
else |
_analysis_output("mdctR",seq,logmdct,n/2,1,0,0); |
}else{ |
_analysis_output("mdct",seq,logmdct,n/2,1,0,0); |
} |
#endif |
/* first step; noise masking. Not only does 'noise masking' |
give us curves from which we can decide how much resolution |
to give noise parts of the spectrum, it also implicitly hands |
us a tonality estimate (the larger the value in the |
'noise_depth' vector, the more tonal that area is) */ |
_vp_noisemask(psy_look, |
logmdct, |
noise); /* noise does not have by-frequency offset |
bias applied yet */ |
#if 0 |
if(vi->channels==2){ |
if(i==0) |
_analysis_output("noiseL",seq,noise,n/2,1,0,0); |
else |
_analysis_output("noiseR",seq,noise,n/2,1,0,0); |
}else{ |
_analysis_output("noise",seq,noise,n/2,1,0,0); |
} |
#endif |
/* second step: 'all the other crap'; all the stuff that isn't |
computed/fit for bitrate management goes in the second psy |
vector. This includes tone masking, peak limiting and ATH */ |
_vp_tonemask(psy_look, |
logfft, |
tone, |
global_ampmax, |
local_ampmax[i]); |
#if 0 |
if(vi->channels==2){ |
if(i==0) |
_analysis_output("toneL",seq,tone,n/2,1,0,0); |
else |
_analysis_output("toneR",seq,tone,n/2,1,0,0); |
}else{ |
_analysis_output("tone",seq,tone,n/2,1,0,0); |
} |
#endif |
/* third step; we offset the noise vectors, overlay tone |
masking. We then do a floor1-specific line fit. If we're |
performing bitrate management, the line fit is performed |
multiple times for up/down tweakage on demand. */ |
#if 0 |
{ |
float aotuv[psy_look->n]; |
#endif |
_vp_offset_and_mix(psy_look, |
noise, |
tone, |
1, |
logmask, |
mdct, |
logmdct); |
#if 0 |
if(vi->channels==2){ |
if(i==0) |
_analysis_output("aotuvM1_L",seq,aotuv,psy_look->n,1,1,0); |
else |
_analysis_output("aotuvM1_R",seq,aotuv,psy_look->n,1,1,0); |
}else{ |
_analysis_output("aotuvM1",seq,aotuv,psy_look->n,1,1,0); |
} |
} |
#endif |
#if 0 |
if(vi->channels==2){ |
if(i==0) |
_analysis_output("mask1L",seq,logmask,n/2,1,0,0); |
else |
_analysis_output("mask1R",seq,logmask,n/2,1,0,0); |
}else{ |
_analysis_output("mask1",seq,logmask,n/2,1,0,0); |
} |
#endif |
/* this algorithm is hardwired to floor 1 for now; abort out if |
we're *not* floor1. This won't happen unless someone has |
broken the encode setup lib. Guard it anyway. */ |
if(ci->floor_type[info->floorsubmap[submap]]!=1)return(-1); |
floor_posts[i][PACKETBLOBS/2]= |
floor1_fit(vb,b->flr[info->floorsubmap[submap]], |
logmdct, |
logmask); |
/* are we managing bitrate? If so, perform two more fits for |
later rate tweaking (fits represent hi/lo) */ |
if(vorbis_bitrate_managed(vb) && floor_posts[i][PACKETBLOBS/2]){ |
/* higher rate by way of lower noise curve */ |
_vp_offset_and_mix(psy_look, |
noise, |
tone, |
2, |
logmask, |
mdct, |
logmdct); |
#if 0 |
if(vi->channels==2){ |
if(i==0) |
_analysis_output("mask2L",seq,logmask,n/2,1,0,0); |
else |
_analysis_output("mask2R",seq,logmask,n/2,1,0,0); |
}else{ |
_analysis_output("mask2",seq,logmask,n/2,1,0,0); |
} |
#endif |
floor_posts[i][PACKETBLOBS-1]= |
floor1_fit(vb,b->flr[info->floorsubmap[submap]], |
logmdct, |
logmask); |
/* lower rate by way of higher noise curve */ |
_vp_offset_and_mix(psy_look, |
noise, |
tone, |
0, |
logmask, |
mdct, |
logmdct); |
#if 0 |
if(vi->channels==2){ |
if(i==0) |
_analysis_output("mask0L",seq,logmask,n/2,1,0,0); |
else |
_analysis_output("mask0R",seq,logmask,n/2,1,0,0); |
}else{ |
_analysis_output("mask0",seq,logmask,n/2,1,0,0); |
} |
#endif |
floor_posts[i][0]= |
floor1_fit(vb,b->flr[info->floorsubmap[submap]], |
logmdct, |
logmask); |
/* we also interpolate a range of intermediate curves for |
intermediate rates */ |
for(k=1;k<PACKETBLOBS/2;k++) |
floor_posts[i][k]= |
floor1_interpolate_fit(vb,b->flr[info->floorsubmap[submap]], |
floor_posts[i][0], |
floor_posts[i][PACKETBLOBS/2], |
k*65536/(PACKETBLOBS/2)); |
for(k=PACKETBLOBS/2+1;k<PACKETBLOBS-1;k++) |
floor_posts[i][k]= |
floor1_interpolate_fit(vb,b->flr[info->floorsubmap[submap]], |
floor_posts[i][PACKETBLOBS/2], |
floor_posts[i][PACKETBLOBS-1], |
(k-PACKETBLOBS/2)*65536/(PACKETBLOBS/2)); |
} |
} |
} |
vbi->ampmax=global_ampmax; |
/* |
the next phases are performed once for vbr-only and PACKETBLOB |
times for bitrate managed modes. |
1) encode actual mode being used |
2) encode the floor for each channel, compute coded mask curve/res |
3) normalize and couple. |
4) encode residue |
5) save packet bytes to the packetblob vector |
*/ |
/* iterate over the many masking curve fits we've created */ |
{ |
int **couple_bundle=alloca(sizeof(*couple_bundle)*vi->channels); |
int *zerobundle=alloca(sizeof(*zerobundle)*vi->channels); |
for(k=(vorbis_bitrate_managed(vb)?0:PACKETBLOBS/2); |
k<=(vorbis_bitrate_managed(vb)?PACKETBLOBS-1:PACKETBLOBS/2); |
k++){ |
oggpack_buffer *opb=vbi->packetblob[k]; |
/* start out our new packet blob with packet type and mode */ |
/* Encode the packet type */ |
oggpack_write(opb,0,1); |
/* Encode the modenumber */ |
/* Encode frame mode, pre,post windowsize, then dispatch */ |
oggpack_write(opb,modenumber,b->modebits); |
if(vb->W){ |
oggpack_write(opb,vb->lW,1); |
oggpack_write(opb,vb->nW,1); |
} |
/* encode floor, compute masking curve, sep out residue */ |
for(i=0;i<vi->channels;i++){ |
int submap=info->chmuxlist[i]; |
int *ilogmask=iwork[i]; |
nonzero[i]=floor1_encode(opb,vb,b->flr[info->floorsubmap[submap]], |
floor_posts[i][k], |
ilogmask); |
#if 0 |
{ |
char buf[80]; |
sprintf(buf,"maskI%c%d",i?'R':'L',k); |
float work[n/2]; |
for(j=0;j<n/2;j++) |
work[j]=FLOOR1_fromdB_LOOKUP[iwork[i][j]]; |
_analysis_output(buf,seq,work,n/2,1,1,0); |
} |
#endif |
} |
/* our iteration is now based on masking curve, not prequant and |
coupling. Only one prequant/coupling step */ |
/* quantize/couple */ |
/* incomplete implementation that assumes the tree is all depth |
one, or no tree at all */ |
_vp_couple_quantize_normalize(k, |
&ci->psy_g_param, |
psy_look, |
info, |
gmdct, |
iwork, |
nonzero, |
ci->psy_g_param.sliding_lowpass[vb->W][k], |
vi->channels); |
#if 0 |
for(i=0;i<vi->channels;i++){ |
char buf[80]; |
sprintf(buf,"res%c%d",i?'R':'L',k); |
float work[n/2]; |
for(j=0;j<n/2;j++) |
work[j]=iwork[i][j]; |
_analysis_output(buf,seq,work,n/2,1,0,0); |
} |
#endif |
/* classify and encode by submap */ |
for(i=0;i<info->submaps;i++){ |
int ch_in_bundle=0; |
long **classifications; |
int resnum=info->residuesubmap[i]; |
for(j=0;j<vi->channels;j++){ |
if(info->chmuxlist[j]==i){ |
zerobundle[ch_in_bundle]=0; |
if(nonzero[j])zerobundle[ch_in_bundle]=1; |
couple_bundle[ch_in_bundle++]=iwork[j]; |
} |
} |
classifications=_residue_P[ci->residue_type[resnum]]-> |
class(vb,b->residue[resnum],couple_bundle,zerobundle,ch_in_bundle); |
ch_in_bundle=0; |
for(j=0;j<vi->channels;j++) |
if(info->chmuxlist[j]==i) |
couple_bundle[ch_in_bundle++]=iwork[j]; |
_residue_P[ci->residue_type[resnum]]-> |
forward(opb,vb,b->residue[resnum], |
couple_bundle,zerobundle,ch_in_bundle,classifications,i); |
} |
/* ok, done encoding. Next protopacket. */ |
} |
} |
#if 0 |
seq++; |
total+=ci->blocksizes[vb->W]/4+ci->blocksizes[vb->nW]/4; |
#endif |
return(0); |
} |
static int mapping0_inverse(vorbis_block *vb,vorbis_info_mapping *l){ |
vorbis_dsp_state *vd=vb->vd; |
vorbis_info *vi=vd->vi; |
codec_setup_info *ci=vi->codec_setup; |
private_state *b=vd->backend_state; |
vorbis_info_mapping0 *info=(vorbis_info_mapping0 *)l; |
int i,j; |
long n=vb->pcmend=ci->blocksizes[vb->W]; |
float **pcmbundle=alloca(sizeof(*pcmbundle)*vi->channels); |
int *zerobundle=alloca(sizeof(*zerobundle)*vi->channels); |
int *nonzero =alloca(sizeof(*nonzero)*vi->channels); |
void **floormemo=alloca(sizeof(*floormemo)*vi->channels); |
/* recover the spectral envelope; store it in the PCM vector for now */ |
for(i=0;i<vi->channels;i++){ |
int submap=info->chmuxlist[i]; |
floormemo[i]=_floor_P[ci->floor_type[info->floorsubmap[submap]]]-> |
inverse1(vb,b->flr[info->floorsubmap[submap]]); |
if(floormemo[i]) |
nonzero[i]=1; |
else |
nonzero[i]=0; |
memset(vb->pcm[i],0,sizeof(*vb->pcm[i])*n/2); |
} |
/* channel coupling can 'dirty' the nonzero listing */ |
for(i=0;i<info->coupling_steps;i++){ |
if(nonzero[info->coupling_mag[i]] || |
nonzero[info->coupling_ang[i]]){ |
nonzero[info->coupling_mag[i]]=1; |
nonzero[info->coupling_ang[i]]=1; |
} |
} |
/* recover the residue into our working vectors */ |
for(i=0;i<info->submaps;i++){ |
int ch_in_bundle=0; |
for(j=0;j<vi->channels;j++){ |
if(info->chmuxlist[j]==i){ |
if(nonzero[j]) |
zerobundle[ch_in_bundle]=1; |
else |
zerobundle[ch_in_bundle]=0; |
pcmbundle[ch_in_bundle++]=vb->pcm[j]; |
} |
} |
_residue_P[ci->residue_type[info->residuesubmap[i]]]-> |
inverse(vb,b->residue[info->residuesubmap[i]], |
pcmbundle,zerobundle,ch_in_bundle); |
} |
/* channel coupling */ |
for(i=info->coupling_steps-1;i>=0;i--){ |
float *pcmM=vb->pcm[info->coupling_mag[i]]; |
float *pcmA=vb->pcm[info->coupling_ang[i]]; |
for(j=0;j<n/2;j++){ |
float mag=pcmM[j]; |
float ang=pcmA[j]; |
if(mag>0) |
if(ang>0){ |
pcmM[j]=mag; |
pcmA[j]=mag-ang; |
}else{ |
pcmA[j]=mag; |
pcmM[j]=mag+ang; |
} |
else |
if(ang>0){ |
pcmM[j]=mag; |
pcmA[j]=mag+ang; |
}else{ |
pcmA[j]=mag; |
pcmM[j]=mag-ang; |
} |
} |
} |
/* compute and apply spectral envelope */ |
for(i=0;i<vi->channels;i++){ |
float *pcm=vb->pcm[i]; |
int submap=info->chmuxlist[i]; |
_floor_P[ci->floor_type[info->floorsubmap[submap]]]-> |
inverse2(vb,b->flr[info->floorsubmap[submap]], |
floormemo[i],pcm); |
} |
/* transform the PCM data; takes PCM vector, vb; modifies PCM vector */ |
/* only MDCT right now.... */ |
for(i=0;i<vi->channels;i++){ |
float *pcm=vb->pcm[i]; |
mdct_backward(b->transform[vb->W][0],pcm,pcm); |
} |
/* all done! */ |
return(0); |
} |
/* export hooks */ |
const vorbis_func_mapping mapping0_exportbundle={ |
&mapping0_pack, |
&mapping0_unpack, |
&mapping0_free_info, |
&mapping0_forward, |
&mapping0_inverse |
}; |
/contrib/sdk/sources/libvorbis-1.3.7/lib/masking.h |
---|
0,0 → 1,784 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: masking curve data for psychoacoustics |
********************************************************************/ |
#ifndef _V_MASKING_H_ |
#define _V_MASKING_H_ |
/* more detailed ATH; the bass if flat to save stressing the floor |
overly for only a bin or two of savings. */ |
#define MAX_ATH 88 |
static const float ATH[]={ |
/*15*/ -51, -52, -53, -54, -55, -56, -57, -58, |
/*31*/ -59, -60, -61, -62, -63, -64, -65, -66, |
/*63*/ -67, -68, -69, -70, -71, -72, -73, -74, |
/*125*/ -75, -76, -77, -78, -80, -81, -82, -83, |
/*250*/ -84, -85, -86, -87, -88, -88, -89, -89, |
/*500*/ -90, -91, -91, -92, -93, -94, -95, -96, |
/*1k*/ -96, -97, -98, -98, -99, -99,-100,-100, |
/*2k*/ -101,-102,-103,-104,-106,-107,-107,-107, |
/*4k*/ -107,-105,-103,-102,-101, -99, -98, -96, |
/*8k*/ -95, -95, -96, -97, -96, -95, -93, -90, |
/*16k*/ -80, -70, -50, -40, -30, -30, -30, -30 |
}; |
/* The tone masking curves from Ehmer's and Fielder's papers have been |
replaced by an empirically collected data set. The previously |
published values were, far too often, simply on crack. */ |
#define EHMER_OFFSET 16 |
#define EHMER_MAX 56 |
/* masking tones from -50 to 0dB, 62.5 through 16kHz at half octaves |
test tones from -2 octaves to +5 octaves sampled at eighth octaves */ |
/* (Vorbis 0dB, the loudest possible tone, is assumed to be ~100dB SPL |
for collection of these curves) */ |
static const float tonemasks[P_BANDS][6][EHMER_MAX]={ |
/* 62.5 Hz */ |
{{ -60, -60, -60, -60, -60, -60, -60, -60, |
-60, -60, -60, -60, -62, -62, -65, -73, |
-69, -68, -68, -67, -70, -70, -72, -74, |
-75, -79, -79, -80, -83, -88, -93, -100, |
-110, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{ -48, -48, -48, -48, -48, -48, -48, -48, |
-48, -48, -48, -48, -48, -53, -61, -66, |
-66, -68, -67, -70, -76, -76, -72, -73, |
-75, -76, -78, -79, -83, -88, -93, -100, |
-110, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{ -37, -37, -37, -37, -37, -37, -37, -37, |
-38, -40, -42, -46, -48, -53, -55, -62, |
-65, -58, -56, -56, -61, -60, -65, -67, |
-69, -71, -77, -77, -78, -80, -82, -84, |
-88, -93, -98, -106, -112, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{ -25, -25, -25, -25, -25, -25, -25, -25, |
-25, -26, -27, -29, -32, -38, -48, -52, |
-52, -50, -48, -48, -51, -52, -54, -60, |
-67, -67, -66, -68, -69, -73, -73, -76, |
-80, -81, -81, -85, -85, -86, -88, -93, |
-100, -110, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{ -16, -16, -16, -16, -16, -16, -16, -16, |
-17, -19, -20, -22, -26, -28, -31, -40, |
-47, -39, -39, -40, -42, -43, -47, -51, |
-57, -52, -55, -55, -60, -58, -62, -63, |
-70, -67, -69, -72, -73, -77, -80, -82, |
-83, -87, -90, -94, -98, -104, -115, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{ -8, -8, -8, -8, -8, -8, -8, -8, |
-8, -8, -10, -11, -15, -19, -25, -30, |
-34, -31, -30, -31, -29, -32, -35, -42, |
-48, -42, -44, -46, -50, -50, -51, -52, |
-59, -54, -55, -55, -58, -62, -63, -66, |
-72, -73, -76, -75, -78, -80, -80, -81, |
-84, -88, -90, -94, -98, -101, -106, -110}}, |
/* 88Hz */ |
{{ -66, -66, -66, -66, -66, -66, -66, -66, |
-66, -66, -66, -66, -66, -67, -67, -67, |
-76, -72, -71, -74, -76, -76, -75, -78, |
-79, -79, -81, -83, -86, -89, -93, -97, |
-100, -105, -110, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{ -47, -47, -47, -47, -47, -47, -47, -47, |
-47, -47, -47, -48, -51, -55, -59, -66, |
-66, -66, -67, -66, -68, -69, -70, -74, |
-79, -77, -77, -78, -80, -81, -82, -84, |
-86, -88, -91, -95, -100, -108, -116, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{ -36, -36, -36, -36, -36, -36, -36, -36, |
-36, -37, -37, -41, -44, -48, -51, -58, |
-62, -60, -57, -59, -59, -60, -63, -65, |
-72, -71, -70, -72, -74, -77, -76, -78, |
-81, -81, -80, -83, -86, -91, -96, -100, |
-105, -110, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{ -28, -28, -28, -28, -28, -28, -28, -28, |
-28, -30, -32, -32, -33, -35, -41, -49, |
-50, -49, -47, -48, -48, -52, -51, -57, |
-65, -61, -59, -61, -64, -69, -70, -74, |
-77, -77, -78, -81, -84, -85, -87, -90, |
-92, -96, -100, -107, -112, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{ -19, -19, -19, -19, -19, -19, -19, -19, |
-20, -21, -23, -27, -30, -35, -36, -41, |
-46, -44, -42, -40, -41, -41, -43, -48, |
-55, -53, -52, -53, -56, -59, -58, -60, |
-67, -66, -69, -71, -72, -75, -79, -81, |
-84, -87, -90, -93, -97, -101, -107, -114, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{ -9, -9, -9, -9, -9, -9, -9, -9, |
-11, -12, -12, -15, -16, -20, -23, -30, |
-37, -34, -33, -34, -31, -32, -32, -38, |
-47, -44, -41, -40, -47, -49, -46, -46, |
-58, -50, -50, -54, -58, -62, -64, -67, |
-67, -70, -72, -76, -79, -83, -87, -91, |
-96, -100, -104, -110, -999, -999, -999, -999}}, |
/* 125 Hz */ |
{{ -62, -62, -62, -62, -62, -62, -62, -62, |
-62, -62, -63, -64, -66, -67, -66, -68, |
-75, -72, -76, -75, -76, -78, -79, -82, |
-84, -85, -90, -94, -101, -110, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{ -59, -59, -59, -59, -59, -59, -59, -59, |
-59, -59, -59, -60, -60, -61, -63, -66, |
-71, -68, -70, -70, -71, -72, -72, -75, |
-81, -78, -79, -82, -83, -86, -90, -97, |
-103, -113, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{ -53, -53, -53, -53, -53, -53, -53, -53, |
-53, -54, -55, -57, -56, -57, -55, -61, |
-65, -60, -60, -62, -63, -63, -66, -68, |
-74, -73, -75, -75, -78, -80, -80, -82, |
-85, -90, -96, -101, -108, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{ -46, -46, -46, -46, -46, -46, -46, -46, |
-46, -46, -47, -47, -47, -47, -48, -51, |
-57, -51, -49, -50, -51, -53, -54, -59, |
-66, -60, -62, -67, -67, -70, -72, -75, |
-76, -78, -81, -85, -88, -94, -97, -104, |
-112, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{ -36, -36, -36, -36, -36, -36, -36, -36, |
-39, -41, -42, -42, -39, -38, -41, -43, |
-52, -44, -40, -39, -37, -37, -40, -47, |
-54, -50, -48, -50, -55, -61, -59, -62, |
-66, -66, -66, -69, -69, -73, -74, -74, |
-75, -77, -79, -82, -87, -91, -95, -100, |
-108, -115, -999, -999, -999, -999, -999, -999}, |
{ -28, -26, -24, -22, -20, -20, -23, -29, |
-30, -31, -28, -27, -28, -28, -28, -35, |
-40, -33, -32, -29, -30, -30, -30, -37, |
-45, -41, -37, -38, -45, -47, -47, -48, |
-53, -49, -48, -50, -49, -49, -51, -52, |
-58, -56, -57, -56, -60, -61, -62, -70, |
-72, -74, -78, -83, -88, -93, -100, -106}}, |
/* 177 Hz */ |
{{-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -110, -105, -100, -95, -91, -87, -83, |
-80, -78, -76, -78, -78, -81, -83, -85, |
-86, -85, -86, -87, -90, -97, -107, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -110, -105, -100, -95, -90, |
-85, -81, -77, -73, -70, -67, -67, -68, |
-75, -73, -70, -69, -70, -72, -75, -79, |
-84, -83, -84, -86, -88, -89, -89, -93, |
-98, -105, -112, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-105, -100, -95, -90, -85, -80, -76, -71, |
-68, -68, -65, -63, -63, -62, -62, -64, |
-65, -64, -61, -62, -63, -64, -66, -68, |
-73, -73, -74, -75, -76, -81, -83, -85, |
-88, -89, -92, -95, -100, -108, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{ -80, -75, -71, -68, -65, -63, -62, -61, |
-61, -61, -61, -59, -56, -57, -53, -50, |
-58, -52, -50, -50, -52, -53, -54, -58, |
-67, -63, -67, -68, -72, -75, -78, -80, |
-81, -81, -82, -85, -89, -90, -93, -97, |
-101, -107, -114, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{ -65, -61, -59, -57, -56, -55, -55, -56, |
-56, -57, -55, -53, -52, -47, -44, -44, |
-50, -44, -41, -39, -39, -42, -40, -46, |
-51, -49, -50, -53, -54, -63, -60, -61, |
-62, -66, -66, -66, -70, -73, -74, -75, |
-76, -75, -79, -85, -89, -91, -96, -102, |
-110, -999, -999, -999, -999, -999, -999, -999}, |
{ -52, -50, -49, -49, -48, -48, -48, -49, |
-50, -50, -49, -46, -43, -39, -35, -33, |
-38, -36, -32, -29, -32, -32, -32, -35, |
-44, -39, -38, -38, -46, -50, -45, -46, |
-53, -50, -50, -50, -54, -54, -53, -53, |
-56, -57, -59, -66, -70, -72, -74, -79, |
-83, -85, -90, -97, -114, -999, -999, -999}}, |
/* 250 Hz */ |
{{-999, -999, -999, -999, -999, -999, -110, -105, |
-100, -95, -90, -86, -80, -75, -75, -79, |
-80, -79, -80, -81, -82, -88, -95, -103, |
-110, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -999, -108, -103, -98, -93, |
-88, -83, -79, -78, -75, -71, -67, -68, |
-73, -73, -72, -73, -75, -77, -80, -82, |
-88, -93, -100, -107, -114, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -110, -105, -101, -96, -90, |
-86, -81, -77, -73, -69, -66, -61, -62, |
-66, -64, -62, -65, -66, -70, -72, -76, |
-81, -80, -84, -90, -95, -102, -110, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -107, -103, -97, -92, -88, |
-83, -79, -74, -70, -66, -59, -53, -58, |
-62, -55, -54, -54, -54, -58, -61, -62, |
-72, -70, -72, -75, -78, -80, -81, -80, |
-83, -83, -88, -93, -100, -107, -115, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -105, -100, -95, -90, -85, |
-80, -75, -70, -66, -62, -56, -48, -44, |
-48, -46, -46, -43, -46, -48, -48, -51, |
-58, -58, -59, -60, -62, -62, -61, -61, |
-65, -64, -65, -68, -70, -74, -75, -78, |
-81, -86, -95, -110, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -105, -100, -95, -90, -85, -80, |
-75, -70, -65, -61, -55, -49, -39, -33, |
-40, -35, -32, -38, -40, -33, -35, -37, |
-46, -41, -45, -44, -46, -42, -45, -46, |
-52, -50, -50, -50, -54, -54, -55, -57, |
-62, -64, -66, -68, -70, -76, -81, -90, |
-100, -110, -999, -999, -999, -999, -999, -999}}, |
/* 354 hz */ |
{{-999, -999, -999, -999, -999, -999, -999, -999, |
-105, -98, -90, -85, -82, -83, -80, -78, |
-84, -79, -80, -83, -87, -89, -91, -93, |
-99, -106, -117, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -999, -999, -999, -999, -999, |
-105, -98, -90, -85, -80, -75, -70, -68, |
-74, -72, -74, -77, -80, -82, -85, -87, |
-92, -89, -91, -95, -100, -106, -112, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -999, -999, -999, -999, -999, |
-105, -98, -90, -83, -75, -71, -63, -64, |
-67, -62, -64, -67, -70, -73, -77, -81, |
-84, -83, -85, -89, -90, -93, -98, -104, |
-109, -114, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -999, -999, -999, -999, -999, |
-103, -96, -88, -81, -75, -68, -58, -54, |
-56, -54, -56, -56, -58, -60, -63, -66, |
-74, -69, -72, -72, -75, -74, -77, -81, |
-81, -82, -84, -87, -93, -96, -99, -104, |
-110, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -999, -999, -108, -102, -96, |
-91, -85, -80, -74, -68, -60, -51, -46, |
-48, -46, -43, -45, -47, -47, -49, -48, |
-56, -53, -55, -58, -57, -63, -58, -60, |
-66, -64, -67, -70, -70, -74, -77, -84, |
-86, -89, -91, -93, -94, -101, -109, -118, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -108, -103, -98, -93, -88, |
-83, -78, -73, -68, -60, -53, -44, -35, |
-38, -38, -34, -34, -36, -40, -41, -44, |
-51, -45, -46, -47, -46, -54, -50, -49, |
-50, -50, -50, -51, -54, -57, -58, -60, |
-66, -66, -66, -64, -65, -68, -77, -82, |
-87, -95, -110, -999, -999, -999, -999, -999}}, |
/* 500 Hz */ |
{{-999, -999, -999, -999, -999, -999, -999, -999, |
-107, -102, -97, -92, -87, -83, -78, -75, |
-82, -79, -83, -85, -89, -92, -95, -98, |
-101, -105, -109, -113, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -999, -999, -999, -999, -106, |
-100, -95, -90, -86, -81, -78, -74, -69, |
-74, -74, -76, -79, -83, -84, -86, -89, |
-92, -97, -93, -100, -103, -107, -110, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -999, -999, -999, -106, -100, |
-95, -90, -87, -83, -80, -75, -69, -60, |
-66, -66, -68, -70, -74, -78, -79, -81, |
-81, -83, -84, -87, -93, -96, -99, -103, |
-107, -110, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -999, -999, -108, -103, -98, |
-93, -89, -85, -82, -78, -71, -62, -55, |
-58, -58, -54, -54, -55, -59, -61, -62, |
-70, -66, -66, -67, -70, -72, -75, -78, |
-84, -84, -84, -88, -91, -90, -95, -98, |
-102, -103, -106, -110, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -999, -108, -103, -98, -94, |
-90, -87, -82, -79, -73, -67, -58, -47, |
-50, -45, -41, -45, -48, -44, -44, -49, |
-54, -51, -48, -47, -49, -50, -51, -57, |
-58, -60, -63, -69, -70, -69, -71, -74, |
-78, -82, -90, -95, -101, -105, -110, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -105, -101, -97, -93, -90, |
-85, -80, -77, -72, -65, -56, -48, -37, |
-40, -36, -34, -40, -50, -47, -38, -41, |
-47, -38, -35, -39, -38, -43, -40, -45, |
-50, -45, -44, -47, -50, -55, -48, -48, |
-52, -66, -70, -76, -82, -90, -97, -105, |
-110, -999, -999, -999, -999, -999, -999, -999}}, |
/* 707 Hz */ |
{{-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -108, -103, -98, -93, -86, -79, -76, |
-83, -81, -85, -87, -89, -93, -98, -102, |
-107, -112, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -108, -103, -98, -93, -86, -79, -71, |
-77, -74, -77, -79, -81, -84, -85, -90, |
-92, -93, -92, -98, -101, -108, -112, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -999, -999, -999, -999, -999, |
-108, -103, -98, -93, -87, -78, -68, -65, |
-66, -62, -65, -67, -70, -73, -75, -78, |
-82, -82, -83, -84, -91, -93, -98, -102, |
-106, -110, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -999, -999, -999, -999, -999, |
-105, -100, -95, -90, -82, -74, -62, -57, |
-58, -56, -51, -52, -52, -54, -54, -58, |
-66, -59, -60, -63, -66, -69, -73, -79, |
-83, -84, -80, -81, -81, -82, -88, -92, |
-98, -105, -113, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -999, -999, -999, -999, -107, |
-102, -97, -92, -84, -79, -69, -57, -47, |
-52, -47, -44, -45, -50, -52, -42, -42, |
-53, -43, -43, -48, -51, -56, -55, -52, |
-57, -59, -61, -62, -67, -71, -78, -83, |
-86, -94, -98, -103, -110, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -999, -999, -999, -105, -100, |
-95, -90, -84, -78, -70, -61, -51, -41, |
-40, -38, -40, -46, -52, -51, -41, -40, |
-46, -40, -38, -38, -41, -46, -41, -46, |
-47, -43, -43, -45, -41, -45, -56, -67, |
-68, -83, -87, -90, -95, -102, -107, -113, |
-999, -999, -999, -999, -999, -999, -999, -999}}, |
/* 1000 Hz */ |
{{-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -109, -105, -101, -96, -91, -84, -77, |
-82, -82, -85, -89, -94, -100, -106, -110, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -106, -103, -98, -92, -85, -80, -71, |
-75, -72, -76, -80, -84, -86, -89, -93, |
-100, -107, -113, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -999, -999, -999, -999, -107, |
-104, -101, -97, -92, -88, -84, -80, -64, |
-66, -63, -64, -66, -69, -73, -77, -83, |
-83, -86, -91, -98, -104, -111, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -999, -999, -999, -999, -107, |
-104, -101, -97, -92, -90, -84, -74, -57, |
-58, -52, -55, -54, -50, -52, -50, -52, |
-63, -62, -69, -76, -77, -78, -78, -79, |
-82, -88, -94, -100, -106, -111, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -999, -999, -999, -106, -102, |
-98, -95, -90, -85, -83, -78, -70, -50, |
-50, -41, -44, -49, -47, -50, -50, -44, |
-55, -46, -47, -48, -48, -54, -49, -49, |
-58, -62, -71, -81, -87, -92, -97, -102, |
-108, -114, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -999, -999, -999, -106, -102, |
-98, -95, -90, -85, -83, -78, -70, -45, |
-43, -41, -47, -50, -51, -50, -49, -45, |
-47, -41, -44, -41, -39, -43, -38, -37, |
-40, -41, -44, -50, -58, -65, -73, -79, |
-85, -92, -97, -101, -105, -109, -113, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}}, |
/* 1414 Hz */ |
{{-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -107, -100, -95, -87, -81, |
-85, -83, -88, -93, -100, -107, -114, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -107, -101, -95, -88, -83, -76, |
-73, -72, -79, -84, -90, -95, -100, -105, |
-110, -115, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -104, -98, -92, -87, -81, -70, |
-65, -62, -67, -71, -74, -80, -85, -91, |
-95, -99, -103, -108, -111, -114, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -103, -97, -90, -85, -76, -60, |
-56, -54, -60, -62, -61, -56, -63, -65, |
-73, -74, -77, -75, -78, -81, -86, -87, |
-88, -91, -94, -98, -103, -110, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -999, -999, -999, -999, -105, |
-100, -97, -92, -86, -81, -79, -70, -57, |
-51, -47, -51, -58, -60, -56, -53, -50, |
-58, -52, -50, -50, -53, -55, -64, -69, |
-71, -85, -82, -78, -81, -85, -95, -102, |
-112, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -999, -999, -999, -999, -105, |
-100, -97, -92, -85, -83, -79, -72, -49, |
-40, -43, -43, -54, -56, -51, -50, -40, |
-43, -38, -36, -35, -37, -38, -37, -44, |
-54, -60, -57, -60, -70, -75, -84, -92, |
-103, -112, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}}, |
/* 2000 Hz */ |
{{-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -110, -102, -95, -89, -82, |
-83, -84, -90, -92, -99, -107, -113, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -107, -101, -95, -89, -83, -72, |
-74, -78, -85, -88, -88, -90, -92, -98, |
-105, -111, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -109, -103, -97, -93, -87, -81, -70, |
-70, -67, -75, -73, -76, -79, -81, -83, |
-88, -89, -97, -103, -110, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -107, -100, -94, -88, -83, -75, -63, |
-59, -59, -63, -66, -60, -62, -67, -67, |
-77, -76, -81, -88, -86, -92, -96, -102, |
-109, -116, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -105, -98, -92, -86, -81, -73, -56, |
-52, -47, -55, -60, -58, -52, -51, -45, |
-49, -50, -53, -54, -61, -71, -70, -69, |
-78, -79, -87, -90, -96, -104, -112, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -103, -96, -90, -86, -78, -70, -51, |
-42, -47, -48, -55, -54, -54, -53, -42, |
-35, -28, -33, -38, -37, -44, -47, -49, |
-54, -63, -68, -78, -82, -89, -94, -99, |
-104, -109, -114, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}}, |
/* 2828 Hz */ |
{{-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -110, -100, -90, -79, |
-85, -81, -82, -82, -89, -94, -99, -103, |
-109, -115, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -105, -97, -85, -72, |
-74, -70, -70, -70, -76, -85, -91, -93, |
-97, -103, -109, -115, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -112, -93, -81, -68, |
-62, -60, -60, -57, -63, -70, -77, -82, |
-90, -93, -98, -104, -109, -113, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -113, -100, -93, -84, -63, |
-58, -48, -53, -54, -52, -52, -57, -64, |
-66, -76, -83, -81, -85, -85, -90, -95, |
-98, -101, -103, -106, -108, -111, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -105, -95, -86, -74, -53, |
-50, -38, -43, -49, -43, -42, -39, -39, |
-46, -52, -57, -56, -72, -69, -74, -81, |
-87, -92, -94, -97, -99, -102, -105, -108, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -108, -99, -90, -76, -66, -45, |
-43, -41, -44, -47, -43, -47, -40, -30, |
-31, -31, -39, -33, -40, -41, -43, -53, |
-59, -70, -73, -77, -79, -82, -84, -87, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}}, |
/* 4000 Hz */ |
{{-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -110, -91, -76, |
-75, -85, -93, -98, -104, -110, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -110, -91, -70, |
-70, -75, -86, -89, -94, -98, -101, -106, |
-110, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -110, -95, -80, -60, |
-65, -64, -74, -83, -88, -91, -95, -99, |
-103, -107, -110, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -110, -95, -80, -58, |
-55, -49, -66, -68, -71, -78, -78, -80, |
-88, -85, -89, -97, -100, -105, -110, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -110, -95, -80, -53, |
-52, -41, -59, -59, -49, -58, -56, -63, |
-86, -79, -90, -93, -98, -103, -107, -112, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -110, -97, -91, -73, -45, |
-40, -33, -53, -61, -49, -54, -50, -50, |
-60, -52, -67, -74, -81, -92, -96, -100, |
-105, -110, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}}, |
/* 5657 Hz */ |
{{-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -113, -106, -99, -92, -77, |
-80, -88, -97, -106, -115, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -116, -109, -102, -95, -89, -74, |
-72, -88, -87, -95, -102, -109, -116, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -116, -109, -102, -95, -89, -75, |
-66, -74, -77, -78, -86, -87, -90, -96, |
-105, -115, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -115, -108, -101, -94, -88, -66, |
-56, -61, -70, -65, -78, -72, -83, -84, |
-93, -98, -105, -110, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -110, -105, -95, -89, -82, -57, |
-52, -52, -59, -56, -59, -58, -69, -67, |
-88, -82, -82, -89, -94, -100, -108, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -110, -101, -96, -90, -83, -77, -54, |
-43, -38, -50, -48, -52, -48, -42, -42, |
-51, -52, -53, -59, -65, -71, -78, -85, |
-95, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}}, |
/* 8000 Hz */ |
{{-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -120, -105, -86, -68, |
-78, -79, -90, -100, -110, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -120, -105, -86, -66, |
-73, -77, -88, -96, -105, -115, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -120, -105, -92, -80, -61, |
-64, -68, -80, -87, -92, -100, -110, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -120, -104, -91, -79, -52, |
-60, -54, -64, -69, -77, -80, -82, -84, |
-85, -87, -88, -90, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -118, -100, -87, -77, -49, |
-50, -44, -58, -61, -61, -67, -65, -62, |
-62, -62, -65, -68, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -115, -98, -84, -62, -49, |
-44, -38, -46, -49, -49, -46, -39, -37, |
-39, -40, -42, -43, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}}, |
/* 11314 Hz */ |
{{-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -110, -88, -74, |
-77, -82, -82, -85, -90, -94, -99, -104, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -110, -88, -66, |
-70, -81, -80, -81, -84, -88, -91, -93, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -110, -88, -61, |
-63, -70, -71, -74, -77, -80, -83, -85, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -110, -86, -62, |
-63, -62, -62, -58, -52, -50, -50, -52, |
-54, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -118, -108, -84, -53, |
-50, -50, -50, -55, -47, -45, -40, -40, |
-40, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -118, -100, -73, -43, |
-37, -42, -43, -53, -38, -37, -35, -35, |
-38, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}}, |
/* 16000 Hz */ |
{{-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -110, -100, -91, -84, -74, |
-80, -80, -80, -80, -80, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -110, -100, -91, -84, -74, |
-68, -68, -68, -68, -68, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -110, -100, -86, -78, -70, |
-60, -45, -30, -21, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -110, -100, -87, -78, -67, |
-48, -38, -29, -21, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -110, -100, -86, -69, -56, |
-45, -35, -33, -29, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}, |
{-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -110, -100, -83, -71, -48, |
-27, -38, -37, -34, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999, |
-999, -999, -999, -999, -999, -999, -999, -999}} |
}; |
#endif |
/contrib/sdk/sources/libvorbis-1.3.7/lib/mdct.c |
---|
0,0 → 1,562 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: normalized modified discrete cosine transform |
power of two length transform only [64 <= n ] |
Original algorithm adapted long ago from _The use of multirate filter |
banks for coding of high quality digital audio_, by T. Sporer, |
K. Brandenburg and B. Edler, collection of the European Signal |
Processing Conference (EUSIPCO), Amsterdam, June 1992, Vol.1, pp |
211-214 |
The below code implements an algorithm that no longer looks much like |
that presented in the paper, but the basic structure remains if you |
dig deep enough to see it. |
This module DOES NOT INCLUDE code to generate/apply the window |
function. Everybody has their own weird favorite including me... I |
happen to like the properties of y=sin(.5PI*sin^2(x)), but others may |
vehemently disagree. |
********************************************************************/ |
/* this can also be run as an integer transform by uncommenting a |
define in mdct.h; the integerization is a first pass and although |
it's likely stable for Vorbis, the dynamic range is constrained and |
roundoff isn't done (so it's noisy). Consider it functional, but |
only a starting point. There's no point on a machine with an FPU */ |
#include <stdio.h> |
#include <stdlib.h> |
#include <string.h> |
#include <math.h> |
#include "vorbis/codec.h" |
#include "mdct.h" |
#include "os.h" |
#include "misc.h" |
/* build lookups for trig functions; also pre-figure scaling and |
some window function algebra. */ |
void mdct_init(mdct_lookup *lookup,int n){ |
int *bitrev=_ogg_malloc(sizeof(*bitrev)*(n/4)); |
DATA_TYPE *T=_ogg_malloc(sizeof(*T)*(n+n/4)); |
int i; |
int n2=n>>1; |
int log2n=lookup->log2n=rint(log((float)n)/log(2.f)); |
lookup->n=n; |
lookup->trig=T; |
lookup->bitrev=bitrev; |
/* trig lookups... */ |
for(i=0;i<n/4;i++){ |
T[i*2]=FLOAT_CONV(cos((M_PI/n)*(4*i))); |
T[i*2+1]=FLOAT_CONV(-sin((M_PI/n)*(4*i))); |
T[n2+i*2]=FLOAT_CONV(cos((M_PI/(2*n))*(2*i+1))); |
T[n2+i*2+1]=FLOAT_CONV(sin((M_PI/(2*n))*(2*i+1))); |
} |
for(i=0;i<n/8;i++){ |
T[n+i*2]=FLOAT_CONV(cos((M_PI/n)*(4*i+2))*.5); |
T[n+i*2+1]=FLOAT_CONV(-sin((M_PI/n)*(4*i+2))*.5); |
} |
/* bitreverse lookup... */ |
{ |
int mask=(1<<(log2n-1))-1,i,j; |
int msb=1<<(log2n-2); |
for(i=0;i<n/8;i++){ |
int acc=0; |
for(j=0;msb>>j;j++) |
if((msb>>j)&i)acc|=1<<j; |
bitrev[i*2]=((~acc)&mask)-1; |
bitrev[i*2+1]=acc; |
} |
} |
lookup->scale=FLOAT_CONV(4.f/n); |
} |
/* 8 point butterfly (in place, 4 register) */ |
STIN void mdct_butterfly_8(DATA_TYPE *x){ |
REG_TYPE r0 = x[6] + x[2]; |
REG_TYPE r1 = x[6] - x[2]; |
REG_TYPE r2 = x[4] + x[0]; |
REG_TYPE r3 = x[4] - x[0]; |
x[6] = r0 + r2; |
x[4] = r0 - r2; |
r0 = x[5] - x[1]; |
r2 = x[7] - x[3]; |
x[0] = r1 + r0; |
x[2] = r1 - r0; |
r0 = x[5] + x[1]; |
r1 = x[7] + x[3]; |
x[3] = r2 + r3; |
x[1] = r2 - r3; |
x[7] = r1 + r0; |
x[5] = r1 - r0; |
} |
/* 16 point butterfly (in place, 4 register) */ |
STIN void mdct_butterfly_16(DATA_TYPE *x){ |
REG_TYPE r0 = x[1] - x[9]; |
REG_TYPE r1 = x[0] - x[8]; |
x[8] += x[0]; |
x[9] += x[1]; |
x[0] = MULT_NORM((r0 + r1) * cPI2_8); |
x[1] = MULT_NORM((r0 - r1) * cPI2_8); |
r0 = x[3] - x[11]; |
r1 = x[10] - x[2]; |
x[10] += x[2]; |
x[11] += x[3]; |
x[2] = r0; |
x[3] = r1; |
r0 = x[12] - x[4]; |
r1 = x[13] - x[5]; |
x[12] += x[4]; |
x[13] += x[5]; |
x[4] = MULT_NORM((r0 - r1) * cPI2_8); |
x[5] = MULT_NORM((r0 + r1) * cPI2_8); |
r0 = x[14] - x[6]; |
r1 = x[15] - x[7]; |
x[14] += x[6]; |
x[15] += x[7]; |
x[6] = r0; |
x[7] = r1; |
mdct_butterfly_8(x); |
mdct_butterfly_8(x+8); |
} |
/* 32 point butterfly (in place, 4 register) */ |
STIN void mdct_butterfly_32(DATA_TYPE *x){ |
REG_TYPE r0 = x[30] - x[14]; |
REG_TYPE r1 = x[31] - x[15]; |
x[30] += x[14]; |
x[31] += x[15]; |
x[14] = r0; |
x[15] = r1; |
r0 = x[28] - x[12]; |
r1 = x[29] - x[13]; |
x[28] += x[12]; |
x[29] += x[13]; |
x[12] = MULT_NORM( r0 * cPI1_8 - r1 * cPI3_8 ); |
x[13] = MULT_NORM( r0 * cPI3_8 + r1 * cPI1_8 ); |
r0 = x[26] - x[10]; |
r1 = x[27] - x[11]; |
x[26] += x[10]; |
x[27] += x[11]; |
x[10] = MULT_NORM(( r0 - r1 ) * cPI2_8); |
x[11] = MULT_NORM(( r0 + r1 ) * cPI2_8); |
r0 = x[24] - x[8]; |
r1 = x[25] - x[9]; |
x[24] += x[8]; |
x[25] += x[9]; |
x[8] = MULT_NORM( r0 * cPI3_8 - r1 * cPI1_8 ); |
x[9] = MULT_NORM( r1 * cPI3_8 + r0 * cPI1_8 ); |
r0 = x[22] - x[6]; |
r1 = x[7] - x[23]; |
x[22] += x[6]; |
x[23] += x[7]; |
x[6] = r1; |
x[7] = r0; |
r0 = x[4] - x[20]; |
r1 = x[5] - x[21]; |
x[20] += x[4]; |
x[21] += x[5]; |
x[4] = MULT_NORM( r1 * cPI1_8 + r0 * cPI3_8 ); |
x[5] = MULT_NORM( r1 * cPI3_8 - r0 * cPI1_8 ); |
r0 = x[2] - x[18]; |
r1 = x[3] - x[19]; |
x[18] += x[2]; |
x[19] += x[3]; |
x[2] = MULT_NORM(( r1 + r0 ) * cPI2_8); |
x[3] = MULT_NORM(( r1 - r0 ) * cPI2_8); |
r0 = x[0] - x[16]; |
r1 = x[1] - x[17]; |
x[16] += x[0]; |
x[17] += x[1]; |
x[0] = MULT_NORM( r1 * cPI3_8 + r0 * cPI1_8 ); |
x[1] = MULT_NORM( r1 * cPI1_8 - r0 * cPI3_8 ); |
mdct_butterfly_16(x); |
mdct_butterfly_16(x+16); |
} |
/* N point first stage butterfly (in place, 2 register) */ |
STIN void mdct_butterfly_first(DATA_TYPE *T, |
DATA_TYPE *x, |
int points){ |
DATA_TYPE *x1 = x + points - 8; |
DATA_TYPE *x2 = x + (points>>1) - 8; |
REG_TYPE r0; |
REG_TYPE r1; |
do{ |
r0 = x1[6] - x2[6]; |
r1 = x1[7] - x2[7]; |
x1[6] += x2[6]; |
x1[7] += x2[7]; |
x2[6] = MULT_NORM(r1 * T[1] + r0 * T[0]); |
x2[7] = MULT_NORM(r1 * T[0] - r0 * T[1]); |
r0 = x1[4] - x2[4]; |
r1 = x1[5] - x2[5]; |
x1[4] += x2[4]; |
x1[5] += x2[5]; |
x2[4] = MULT_NORM(r1 * T[5] + r0 * T[4]); |
x2[5] = MULT_NORM(r1 * T[4] - r0 * T[5]); |
r0 = x1[2] - x2[2]; |
r1 = x1[3] - x2[3]; |
x1[2] += x2[2]; |
x1[3] += x2[3]; |
x2[2] = MULT_NORM(r1 * T[9] + r0 * T[8]); |
x2[3] = MULT_NORM(r1 * T[8] - r0 * T[9]); |
r0 = x1[0] - x2[0]; |
r1 = x1[1] - x2[1]; |
x1[0] += x2[0]; |
x1[1] += x2[1]; |
x2[0] = MULT_NORM(r1 * T[13] + r0 * T[12]); |
x2[1] = MULT_NORM(r1 * T[12] - r0 * T[13]); |
x1-=8; |
x2-=8; |
T+=16; |
}while(x2>=x); |
} |
/* N/stage point generic N stage butterfly (in place, 2 register) */ |
STIN void mdct_butterfly_generic(DATA_TYPE *T, |
DATA_TYPE *x, |
int points, |
int trigint){ |
DATA_TYPE *x1 = x + points - 8; |
DATA_TYPE *x2 = x + (points>>1) - 8; |
REG_TYPE r0; |
REG_TYPE r1; |
do{ |
r0 = x1[6] - x2[6]; |
r1 = x1[7] - x2[7]; |
x1[6] += x2[6]; |
x1[7] += x2[7]; |
x2[6] = MULT_NORM(r1 * T[1] + r0 * T[0]); |
x2[7] = MULT_NORM(r1 * T[0] - r0 * T[1]); |
T+=trigint; |
r0 = x1[4] - x2[4]; |
r1 = x1[5] - x2[5]; |
x1[4] += x2[4]; |
x1[5] += x2[5]; |
x2[4] = MULT_NORM(r1 * T[1] + r0 * T[0]); |
x2[5] = MULT_NORM(r1 * T[0] - r0 * T[1]); |
T+=trigint; |
r0 = x1[2] - x2[2]; |
r1 = x1[3] - x2[3]; |
x1[2] += x2[2]; |
x1[3] += x2[3]; |
x2[2] = MULT_NORM(r1 * T[1] + r0 * T[0]); |
x2[3] = MULT_NORM(r1 * T[0] - r0 * T[1]); |
T+=trigint; |
r0 = x1[0] - x2[0]; |
r1 = x1[1] - x2[1]; |
x1[0] += x2[0]; |
x1[1] += x2[1]; |
x2[0] = MULT_NORM(r1 * T[1] + r0 * T[0]); |
x2[1] = MULT_NORM(r1 * T[0] - r0 * T[1]); |
T+=trigint; |
x1-=8; |
x2-=8; |
}while(x2>=x); |
} |
STIN void mdct_butterflies(mdct_lookup *init, |
DATA_TYPE *x, |
int points){ |
DATA_TYPE *T=init->trig; |
int stages=init->log2n-5; |
int i,j; |
if(--stages>0){ |
mdct_butterfly_first(T,x,points); |
} |
for(i=1;--stages>0;i++){ |
for(j=0;j<(1<<i);j++) |
mdct_butterfly_generic(T,x+(points>>i)*j,points>>i,4<<i); |
} |
for(j=0;j<points;j+=32) |
mdct_butterfly_32(x+j); |
} |
void mdct_clear(mdct_lookup *l){ |
if(l){ |
if(l->trig)_ogg_free(l->trig); |
if(l->bitrev)_ogg_free(l->bitrev); |
memset(l,0,sizeof(*l)); |
} |
} |
STIN void mdct_bitreverse(mdct_lookup *init, |
DATA_TYPE *x){ |
int n = init->n; |
int *bit = init->bitrev; |
DATA_TYPE *w0 = x; |
DATA_TYPE *w1 = x = w0+(n>>1); |
DATA_TYPE *T = init->trig+n; |
do{ |
DATA_TYPE *x0 = x+bit[0]; |
DATA_TYPE *x1 = x+bit[1]; |
REG_TYPE r0 = x0[1] - x1[1]; |
REG_TYPE r1 = x0[0] + x1[0]; |
REG_TYPE r2 = MULT_NORM(r1 * T[0] + r0 * T[1]); |
REG_TYPE r3 = MULT_NORM(r1 * T[1] - r0 * T[0]); |
w1 -= 4; |
r0 = HALVE(x0[1] + x1[1]); |
r1 = HALVE(x0[0] - x1[0]); |
w0[0] = r0 + r2; |
w1[2] = r0 - r2; |
w0[1] = r1 + r3; |
w1[3] = r3 - r1; |
x0 = x+bit[2]; |
x1 = x+bit[3]; |
r0 = x0[1] - x1[1]; |
r1 = x0[0] + x1[0]; |
r2 = MULT_NORM(r1 * T[2] + r0 * T[3]); |
r3 = MULT_NORM(r1 * T[3] - r0 * T[2]); |
r0 = HALVE(x0[1] + x1[1]); |
r1 = HALVE(x0[0] - x1[0]); |
w0[2] = r0 + r2; |
w1[0] = r0 - r2; |
w0[3] = r1 + r3; |
w1[1] = r3 - r1; |
T += 4; |
bit += 4; |
w0 += 4; |
}while(w0<w1); |
} |
void mdct_backward(mdct_lookup *init, DATA_TYPE *in, DATA_TYPE *out){ |
int n=init->n; |
int n2=n>>1; |
int n4=n>>2; |
/* rotate */ |
DATA_TYPE *iX = in+n2-7; |
DATA_TYPE *oX = out+n2+n4; |
DATA_TYPE *T = init->trig+n4; |
do{ |
oX -= 4; |
oX[0] = MULT_NORM(-iX[2] * T[3] - iX[0] * T[2]); |
oX[1] = MULT_NORM (iX[0] * T[3] - iX[2] * T[2]); |
oX[2] = MULT_NORM(-iX[6] * T[1] - iX[4] * T[0]); |
oX[3] = MULT_NORM (iX[4] * T[1] - iX[6] * T[0]); |
iX -= 8; |
T += 4; |
}while(iX>=in); |
iX = in+n2-8; |
oX = out+n2+n4; |
T = init->trig+n4; |
do{ |
T -= 4; |
oX[0] = MULT_NORM (iX[4] * T[3] + iX[6] * T[2]); |
oX[1] = MULT_NORM (iX[4] * T[2] - iX[6] * T[3]); |
oX[2] = MULT_NORM (iX[0] * T[1] + iX[2] * T[0]); |
oX[3] = MULT_NORM (iX[0] * T[0] - iX[2] * T[1]); |
iX -= 8; |
oX += 4; |
}while(iX>=in); |
mdct_butterflies(init,out+n2,n2); |
mdct_bitreverse(init,out); |
/* roatate + window */ |
{ |
DATA_TYPE *oX1=out+n2+n4; |
DATA_TYPE *oX2=out+n2+n4; |
DATA_TYPE *iX =out; |
T =init->trig+n2; |
do{ |
oX1-=4; |
oX1[3] = MULT_NORM (iX[0] * T[1] - iX[1] * T[0]); |
oX2[0] = -MULT_NORM (iX[0] * T[0] + iX[1] * T[1]); |
oX1[2] = MULT_NORM (iX[2] * T[3] - iX[3] * T[2]); |
oX2[1] = -MULT_NORM (iX[2] * T[2] + iX[3] * T[3]); |
oX1[1] = MULT_NORM (iX[4] * T[5] - iX[5] * T[4]); |
oX2[2] = -MULT_NORM (iX[4] * T[4] + iX[5] * T[5]); |
oX1[0] = MULT_NORM (iX[6] * T[7] - iX[7] * T[6]); |
oX2[3] = -MULT_NORM (iX[6] * T[6] + iX[7] * T[7]); |
oX2+=4; |
iX += 8; |
T += 8; |
}while(iX<oX1); |
iX=out+n2+n4; |
oX1=out+n4; |
oX2=oX1; |
do{ |
oX1-=4; |
iX-=4; |
oX2[0] = -(oX1[3] = iX[3]); |
oX2[1] = -(oX1[2] = iX[2]); |
oX2[2] = -(oX1[1] = iX[1]); |
oX2[3] = -(oX1[0] = iX[0]); |
oX2+=4; |
}while(oX2<iX); |
iX=out+n2+n4; |
oX1=out+n2+n4; |
oX2=out+n2; |
do{ |
oX1-=4; |
oX1[0]= iX[3]; |
oX1[1]= iX[2]; |
oX1[2]= iX[1]; |
oX1[3]= iX[0]; |
iX+=4; |
}while(oX1>oX2); |
} |
} |
void mdct_forward(mdct_lookup *init, DATA_TYPE *in, DATA_TYPE *out){ |
int n=init->n; |
int n2=n>>1; |
int n4=n>>2; |
int n8=n>>3; |
DATA_TYPE *w=alloca(n*sizeof(*w)); /* forward needs working space */ |
DATA_TYPE *w2=w+n2; |
/* rotate */ |
/* window + rotate + step 1 */ |
REG_TYPE r0; |
REG_TYPE r1; |
DATA_TYPE *x0=in+n2+n4; |
DATA_TYPE *x1=x0+1; |
DATA_TYPE *T=init->trig+n2; |
int i=0; |
for(i=0;i<n8;i+=2){ |
x0 -=4; |
T-=2; |
r0= x0[2] + x1[0]; |
r1= x0[0] + x1[2]; |
w2[i]= MULT_NORM(r1*T[1] + r0*T[0]); |
w2[i+1]= MULT_NORM(r1*T[0] - r0*T[1]); |
x1 +=4; |
} |
x1=in+1; |
for(;i<n2-n8;i+=2){ |
T-=2; |
x0 -=4; |
r0= x0[2] - x1[0]; |
r1= x0[0] - x1[2]; |
w2[i]= MULT_NORM(r1*T[1] + r0*T[0]); |
w2[i+1]= MULT_NORM(r1*T[0] - r0*T[1]); |
x1 +=4; |
} |
x0=in+n; |
for(;i<n2;i+=2){ |
T-=2; |
x0 -=4; |
r0= -x0[2] - x1[0]; |
r1= -x0[0] - x1[2]; |
w2[i]= MULT_NORM(r1*T[1] + r0*T[0]); |
w2[i+1]= MULT_NORM(r1*T[0] - r0*T[1]); |
x1 +=4; |
} |
mdct_butterflies(init,w+n2,n2); |
mdct_bitreverse(init,w); |
/* roatate + window */ |
T=init->trig+n2; |
x0=out+n2; |
for(i=0;i<n4;i++){ |
x0--; |
out[i] =MULT_NORM((w[0]*T[0]+w[1]*T[1])*init->scale); |
x0[0] =MULT_NORM((w[0]*T[1]-w[1]*T[0])*init->scale); |
w+=2; |
T+=2; |
} |
} |
/contrib/sdk/sources/libvorbis-1.3.7/lib/mdct.h |
---|
0,0 → 1,70 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: modified discrete cosine transform prototypes |
********************************************************************/ |
#ifndef _OGG_mdct_H_ |
#define _OGG_mdct_H_ |
#include "vorbis/codec.h" |
/*#define MDCT_INTEGERIZED <- be warned there could be some hurt left here*/ |
#ifdef MDCT_INTEGERIZED |
#define DATA_TYPE int |
#define REG_TYPE register int |
#define TRIGBITS 14 |
#define cPI3_8 6270 |
#define cPI2_8 11585 |
#define cPI1_8 15137 |
#define FLOAT_CONV(x) ((int)((x)*(1<<TRIGBITS)+.5)) |
#define MULT_NORM(x) ((x)>>TRIGBITS) |
#define HALVE(x) ((x)>>1) |
#else |
#define DATA_TYPE float |
#define REG_TYPE float |
#define cPI3_8 .38268343236508977175F |
#define cPI2_8 .70710678118654752441F |
#define cPI1_8 .92387953251128675613F |
#define FLOAT_CONV(x) (x) |
#define MULT_NORM(x) (x) |
#define HALVE(x) ((x)*.5f) |
#endif |
typedef struct { |
int n; |
int log2n; |
DATA_TYPE *trig; |
int *bitrev; |
DATA_TYPE scale; |
} mdct_lookup; |
extern void mdct_init(mdct_lookup *lookup,int n); |
extern void mdct_clear(mdct_lookup *l); |
extern void mdct_forward(mdct_lookup *init, DATA_TYPE *in, DATA_TYPE *out); |
extern void mdct_backward(mdct_lookup *init, DATA_TYPE *in, DATA_TYPE *out); |
#endif |
/contrib/sdk/sources/libvorbis-1.3.7/lib/misc.h |
---|
0,0 → 1,57 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2015 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: miscellaneous prototypes |
********************************************************************/ |
#ifndef _V_RANDOM_H_ |
#define _V_RANDOM_H_ |
#include "vorbis/codec.h" |
extern void *_vorbis_block_alloc(vorbis_block *vb,long bytes); |
extern void _vorbis_block_ripcord(vorbis_block *vb); |
extern int ov_ilog(ogg_uint32_t v); |
#ifdef ANALYSIS |
extern int analysis_noisy; |
extern void _analysis_output(char *base,int i,float *v,int n,int bark,int dB, |
ogg_int64_t off); |
extern void _analysis_output_always(char *base,int i,float *v,int n,int bark,int dB, |
ogg_int64_t off); |
#endif |
#ifdef DEBUG_MALLOC |
#define _VDBG_GRAPHFILE "malloc.m" |
#undef _VDBG_GRAPHFILE |
extern void *_VDBG_malloc(void *ptr,long bytes,char *file,long line); |
extern void _VDBG_free(void *ptr,char *file,long line); |
#ifndef MISC_C |
#undef _ogg_malloc |
#undef _ogg_calloc |
#undef _ogg_realloc |
#undef _ogg_free |
#define _ogg_malloc(x) _VDBG_malloc(NULL,(x),__FILE__,__LINE__) |
#define _ogg_calloc(x,y) _VDBG_malloc(NULL,(x)*(y),__FILE__,__LINE__) |
#define _ogg_realloc(x,y) _VDBG_malloc((x),(y),__FILE__,__LINE__) |
#define _ogg_free(x) _VDBG_free((x),__FILE__,__LINE__) |
#endif |
#endif |
#endif |
/contrib/sdk/sources/libvorbis-1.3.7/lib/modes/floor_all.h |
---|
0,0 → 1,259 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: key floor settings |
********************************************************************/ |
#include "vorbis/codec.h" |
#include "backends.h" |
#include "books/floor/floor_books.h" |
static const static_codebook*const _floor_128x4_books[]={ |
&_huff_book_line_128x4_class0, |
&_huff_book_line_128x4_0sub0, |
&_huff_book_line_128x4_0sub1, |
&_huff_book_line_128x4_0sub2, |
&_huff_book_line_128x4_0sub3, |
}; |
static const static_codebook*const _floor_256x4_books[]={ |
&_huff_book_line_256x4_class0, |
&_huff_book_line_256x4_0sub0, |
&_huff_book_line_256x4_0sub1, |
&_huff_book_line_256x4_0sub2, |
&_huff_book_line_256x4_0sub3, |
}; |
static const static_codebook*const _floor_128x7_books[]={ |
&_huff_book_line_128x7_class0, |
&_huff_book_line_128x7_class1, |
&_huff_book_line_128x7_0sub1, |
&_huff_book_line_128x7_0sub2, |
&_huff_book_line_128x7_0sub3, |
&_huff_book_line_128x7_1sub1, |
&_huff_book_line_128x7_1sub2, |
&_huff_book_line_128x7_1sub3, |
}; |
static const static_codebook*const _floor_256x7_books[]={ |
&_huff_book_line_256x7_class0, |
&_huff_book_line_256x7_class1, |
&_huff_book_line_256x7_0sub1, |
&_huff_book_line_256x7_0sub2, |
&_huff_book_line_256x7_0sub3, |
&_huff_book_line_256x7_1sub1, |
&_huff_book_line_256x7_1sub2, |
&_huff_book_line_256x7_1sub3, |
}; |
static const static_codebook*const _floor_128x11_books[]={ |
&_huff_book_line_128x11_class1, |
&_huff_book_line_128x11_class2, |
&_huff_book_line_128x11_class3, |
&_huff_book_line_128x11_0sub0, |
&_huff_book_line_128x11_1sub0, |
&_huff_book_line_128x11_1sub1, |
&_huff_book_line_128x11_2sub1, |
&_huff_book_line_128x11_2sub2, |
&_huff_book_line_128x11_2sub3, |
&_huff_book_line_128x11_3sub1, |
&_huff_book_line_128x11_3sub2, |
&_huff_book_line_128x11_3sub3, |
}; |
static const static_codebook*const _floor_128x17_books[]={ |
&_huff_book_line_128x17_class1, |
&_huff_book_line_128x17_class2, |
&_huff_book_line_128x17_class3, |
&_huff_book_line_128x17_0sub0, |
&_huff_book_line_128x17_1sub0, |
&_huff_book_line_128x17_1sub1, |
&_huff_book_line_128x17_2sub1, |
&_huff_book_line_128x17_2sub2, |
&_huff_book_line_128x17_2sub3, |
&_huff_book_line_128x17_3sub1, |
&_huff_book_line_128x17_3sub2, |
&_huff_book_line_128x17_3sub3, |
}; |
static const static_codebook*const _floor_256x4low_books[]={ |
&_huff_book_line_256x4low_class0, |
&_huff_book_line_256x4low_0sub0, |
&_huff_book_line_256x4low_0sub1, |
&_huff_book_line_256x4low_0sub2, |
&_huff_book_line_256x4low_0sub3, |
}; |
static const static_codebook*const _floor_1024x27_books[]={ |
&_huff_book_line_1024x27_class1, |
&_huff_book_line_1024x27_class2, |
&_huff_book_line_1024x27_class3, |
&_huff_book_line_1024x27_class4, |
&_huff_book_line_1024x27_0sub0, |
&_huff_book_line_1024x27_1sub0, |
&_huff_book_line_1024x27_1sub1, |
&_huff_book_line_1024x27_2sub0, |
&_huff_book_line_1024x27_2sub1, |
&_huff_book_line_1024x27_3sub1, |
&_huff_book_line_1024x27_3sub2, |
&_huff_book_line_1024x27_3sub3, |
&_huff_book_line_1024x27_4sub1, |
&_huff_book_line_1024x27_4sub2, |
&_huff_book_line_1024x27_4sub3, |
}; |
static const static_codebook*const _floor_2048x27_books[]={ |
&_huff_book_line_2048x27_class1, |
&_huff_book_line_2048x27_class2, |
&_huff_book_line_2048x27_class3, |
&_huff_book_line_2048x27_class4, |
&_huff_book_line_2048x27_0sub0, |
&_huff_book_line_2048x27_1sub0, |
&_huff_book_line_2048x27_1sub1, |
&_huff_book_line_2048x27_2sub0, |
&_huff_book_line_2048x27_2sub1, |
&_huff_book_line_2048x27_3sub1, |
&_huff_book_line_2048x27_3sub2, |
&_huff_book_line_2048x27_3sub3, |
&_huff_book_line_2048x27_4sub1, |
&_huff_book_line_2048x27_4sub2, |
&_huff_book_line_2048x27_4sub3, |
}; |
static const static_codebook*const _floor_512x17_books[]={ |
&_huff_book_line_512x17_class1, |
&_huff_book_line_512x17_class2, |
&_huff_book_line_512x17_class3, |
&_huff_book_line_512x17_0sub0, |
&_huff_book_line_512x17_1sub0, |
&_huff_book_line_512x17_1sub1, |
&_huff_book_line_512x17_2sub1, |
&_huff_book_line_512x17_2sub2, |
&_huff_book_line_512x17_2sub3, |
&_huff_book_line_512x17_3sub1, |
&_huff_book_line_512x17_3sub2, |
&_huff_book_line_512x17_3sub3, |
}; |
static const static_codebook*const _floor_Xx0_books[]={ |
0 |
}; |
static const static_codebook*const *const _floor_books[11]={ |
_floor_128x4_books, |
_floor_256x4_books, |
_floor_128x7_books, |
_floor_256x7_books, |
_floor_128x11_books, |
_floor_128x17_books, |
_floor_256x4low_books, |
_floor_1024x27_books, |
_floor_2048x27_books, |
_floor_512x17_books, |
_floor_Xx0_books, |
}; |
static const vorbis_info_floor1 _floor[11]={ |
/* 0: 128 x 4 */ |
{ |
1,{0},{4},{2},{0}, |
{{1,2,3,4}}, |
4,{0,128, 33,8,16,70}, |
60,30,500, 1.,18., 128 |
}, |
/* 1: 256 x 4 */ |
{ |
1,{0},{4},{2},{0}, |
{{1,2,3,4}}, |
4,{0,256, 66,16,32,140}, |
60,30,500, 1.,18., 256 |
}, |
/* 2: 128 x 7 */ |
{ |
2,{0,1},{3,4},{2,2},{0,1}, |
{{-1,2,3,4},{-1,5,6,7}}, |
4,{0,128, 14,4,58, 2,8,28,90}, |
60,30,500, 1.,18., 128 |
}, |
/* 3: 256 x 7 */ |
{ |
2,{0,1},{3,4},{2,2},{0,1}, |
{{-1,2,3,4},{-1,5,6,7}}, |
4,{0,256, 28,8,116, 4,16,56,180}, |
60,30,500, 1.,18., 256 |
}, |
/* 4: 128 x 11 */ |
{ |
4,{0,1,2,3},{2,3,3,3},{0,1,2,2},{-1,0,1,2}, |
{{3},{4,5},{-1,6,7,8},{-1,9,10,11}}, |
2,{0,128, 8,33, 4,16,70, 2,6,12, 23,46,90}, |
60,30,500, 1,18., 128 |
}, |
/* 5: 128 x 17 */ |
{ |
6,{0,1,1,2,3,3},{2,3,3,3},{0,1,2,2},{-1,0,1,2}, |
{{3},{4,5},{-1,6,7,8},{-1,9,10,11}}, |
2,{0,128, 12,46, 4,8,16, 23,33,70, 2,6,10, 14,19,28, 39,58,90}, |
60,30,500, 1,18., 128 |
}, |
/* 6: 256 x 4 (low bitrate version) */ |
{ |
1,{0},{4},{2},{0}, |
{{1,2,3,4}}, |
4,{0,256, 66,16,32,140}, |
60,30,500, 1.,18., 256 |
}, |
/* 7: 1024 x 27 */ |
{ |
8,{0,1,2,2,3,3,4,4},{3,4,3,4,3},{0,1,1,2,2},{-1,0,1,2,3}, |
{{4},{5,6},{7,8},{-1,9,10,11},{-1,12,13,14}}, |
2,{0,1024, 93,23,372, 6,46,186,750, 14,33,65, 130,260,556, |
3,10,18,28, 39,55,79,111, 158,220,312, 464,650,850}, |
60,30,500, 3,18., 1024 |
}, |
/* 8: 2048 x 27 */ |
{ |
8,{0,1,2,2,3,3,4,4},{3,4,3,4,3},{0,1,1,2,2},{-1,0,1,2,3}, |
{{4},{5,6},{7,8},{-1,9,10,11},{-1,12,13,14}}, |
2,{0,2048, 186,46,744, 12,92,372,1500, 28,66,130, 260,520,1112, |
6,20,36,56, 78,110,158,222, 316,440,624, 928,1300,1700}, |
60,30,500, 3,18., 2048 |
}, |
/* 9: 512 x 17 */ |
{ |
6,{0,1,1,2,3,3},{2,3,3,3},{0,1,2,2},{-1,0,1,2}, |
{{3},{4,5},{-1,6,7,8},{-1,9,10,11}}, |
2,{0,512, 46,186, 16,33,65, 93,130,278, |
7,23,39, 55,79,110, 156,232,360}, |
60,30,500, 1,18., 512 |
}, |
/* 10: X x 0 (LFE floor; edge posts only) */ |
{ |
0,{0}, {0},{0},{-1}, |
{{-1}}, |
2,{0,12}, |
60,30,500, 1.,18., 10 |
}, |
}; |
/contrib/sdk/sources/libvorbis-1.3.7/lib/modes/psych_11.h |
---|
0,0 → 1,50 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: 11kHz settings |
********************************************************************/ |
static const double _psy_lowpass_11[3]={4.5,5.5,30.,}; |
static const att3 _psy_tone_masteratt_11[3]={ |
{{ 30, 25, 12}, 0, 0}, /* 0 */ |
{{ 30, 25, 12}, 0, 0}, /* 0 */ |
{{ 20, 0, -14}, 0, 0}, /* 0 */ |
}; |
static const vp_adjblock _vp_tonemask_adj_11[3]={ |
/* adjust for mode zero */ |
/* 63 125 250 500 1 2 4 8 16 */ |
{{-20,-20,-20,-20,-20,-16,-10, 0, 0, 0, 0,10, 2, 0,99,99,99}}, /* 0 */ |
{{-20,-20,-20,-20,-20,-16,-10, 0, 0, 0, 0, 5, 0, 0,99,99,99}}, /* 1 */ |
{{-20,-20,-20,-20,-20,-16,-10, 0, 0, 0, 0, 0, 0, 0,99,99,99}}, /* 2 */ |
}; |
static const noise3 _psy_noisebias_11[3]={ |
/* 63 125 250 500 1k 2k 4k 8k 16k*/ |
{{{-10,-10,-10,-10, -5, -5, -5, 0, 4, 10, 10, 12, 12, 12, 99, 99, 99}, |
{-15,-15,-15,-15,-10,-10, -5, 0, 0, 4, 4, 5, 5, 10, 99, 99, 99}, |
{-30,-30,-30,-30,-30,-24,-20,-14,-10, -6, -8, -8, -6, -6, 99, 99, 99}}}, |
{{{-10,-10,-10,-10, -5, -5, -5, 0, 4, 10, 10, 12, 12, 12, 99, 99, 99}, |
{-15,-15,-15,-15,-10,-10, -5, -5, -5, 0, 0, 0, 0, 0, 99, 99, 99}, |
{-30,-30,-30,-30,-30,-24,-20,-14,-10, -6, -8, -8, -6, -6, 99, 99, 99}}}, |
{{{-15,-15,-15,-15,-15,-12,-10, -8, 0, 2, 4, 4, 5, 5, 99, 99, 99}, |
{-30,-30,-30,-30,-26,-22,-20,-14,-12,-12,-10,-10,-10,-10, 99, 99, 99}, |
{-30,-30,-30,-30,-26,-26,-26,-26,-26,-26,-26,-26,-26,-24, 99, 99, 99}}}, |
}; |
static const double _noise_thresh_11[3]={ .3,.5,.5 }; |
/contrib/sdk/sources/libvorbis-1.3.7/lib/modes/psych_16.h |
---|
0,0 → 1,132 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: 16kHz settings |
********************************************************************/ |
/* stereo mode by base quality level */ |
static const adj_stereo _psy_stereo_modes_16[4]={ |
/* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 */ |
{{ 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3}, |
{ 6, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4}, |
{ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 4, 4}, |
{ 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99}}, |
{{ 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3}, |
{ 6, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4}, |
{ 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 4, 4, 4, 4, 4}, |
{ 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99}}, |
{{ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3}, |
{ 5, 4, 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}, |
{ 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99}}, |
{{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, |
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, |
{ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8}, |
{ 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99}}, |
}; |
static const double _psy_lowpass_16[4]={6.5,8,30.,99.}; |
static const att3 _psy_tone_masteratt_16[4]={ |
{{ 30, 25, 12}, 0, 0}, /* 0 */ |
{{ 25, 22, 12}, 0, 0}, /* 0 */ |
{{ 20, 12, 0}, 0, 0}, /* 0 */ |
{{ 15, 0, -14}, 0, 0}, /* 0 */ |
}; |
static const vp_adjblock _vp_tonemask_adj_16[4]={ |
/* adjust for mode zero */ |
/* 63 125 250 500 1 2 4 8 16 */ |
{{-20,-20,-20,-20,-20,-16,-10, 0, 0, 0, 0,10, 0, 0, 0, 0, 0}}, /* 0 */ |
{{-20,-20,-20,-20,-20,-16,-10, 0, 0, 0, 0,10, 0, 0, 0, 0, 0}}, /* 1 */ |
{{-20,-20,-20,-20,-20,-16,-10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, /* 2 */ |
{{-30,-30,-30,-30,-30,-26,-20,-10, -5, 0, 0, 0, 0, 0, 0, 0, 0}}, /* 2 */ |
}; |
static const noise3 _psy_noisebias_16_short[4]={ |
/* 63 125 250 500 1k 2k 4k 8k 16k*/ |
{{{-15,-15,-15,-15,-15,-10,-10,-5, 4, 10, 10, 10, 10, 12, 12, 14, 20}, |
{-15,-15,-15,-15,-15,-10,-10, -5, 0, 0, 4, 5, 5, 6, 8, 8, 15}, |
{-30,-30,-30,-30,-30,-24,-20,-14,-10, -6, -8, -8, -6, -6, -6, -6, -6}}}, |
{{{-15,-15,-15,-15,-15,-10,-10,-5, 4, 6, 6, 6, 6, 8, 10, 12, 20}, |
{-15,-15,-15,-15,-15,-15,-15,-10, -5, -5, -5, 4, 5, 6, 8, 8, 15}, |
{-30,-30,-30,-30,-30,-24,-20,-14,-10,-10,-10,-10,-10,-10,-10,-10,-10}}}, |
{{{-15,-15,-15,-15,-15,-12,-10, -8, 0, 2, 4, 4, 5, 5, 5, 8, 12}, |
{-20,-20,-20,-20,-16,-12,-20,-14,-10,-10, -8, 0, 0, 0, 0, 2, 5}, |
{-30,-30,-30,-30,-26,-26,-26,-26,-26,-26,-26,-26,-26,-24,-20,-20,-20}}}, |
{{{-15,-15,-15,-15,-15,-12,-10, -8, -5, -5, -5, -5, -5, 0, 0, 0, 6}, |
{-30,-30,-30,-30,-26,-22,-20,-14,-12,-12,-10,-10,-10,-10,-10,-10, -6}, |
{-30,-30,-30,-30,-26,-26,-26,-26,-26,-26,-26,-26,-26,-24,-20,-20,-20}}}, |
}; |
static const noise3 _psy_noisebias_16_impulse[4]={ |
/* 63 125 250 500 1k 2k 4k 8k 16k*/ |
{{{-15,-15,-15,-15,-15,-10,-10,-5, 4, 10, 10, 10, 10, 12, 12, 14, 20}, |
{-15,-15,-15,-15,-15,-10,-10, -5, 0, 0, 4, 5, 5, 6, 8, 8, 15}, |
{-30,-30,-30,-30,-30,-24,-20,-14,-10, -6, -8, -8, -6, -6, -6, -6, -6}}}, |
{{{-15,-15,-15,-15,-15,-10,-10,-5, 4, 4, 4, 4, 5, 5, 6, 8, 15}, |
{-15,-15,-15,-15,-15,-15,-15,-10, -5, -5, -5, 0, 0, 0, 0, 4, 10}, |
{-30,-30,-30,-30,-30,-24,-20,-14,-10,-10,-10,-10,-10,-10,-10,-10,-10}}}, |
{{{-15,-15,-15,-15,-15,-12,-10, -8, 0, 0, 0, 0, 0, 0, 0, 4, 10}, |
{-20,-20,-20,-20,-16,-12,-20,-14,-10,-10,-10,-10,-10,-10,-10, -7, -5}, |
{-30,-30,-30,-30,-26,-26,-26,-26,-26,-26,-26,-26,-26,-24,-20,-20,-20}}}, |
{{{-15,-15,-15,-15,-15,-12,-10, -8, -5, -5, -5, -5, -5, 0, 0, 0, 6}, |
{-30,-30,-30,-30,-26,-22,-20,-18,-18,-18,-20,-20,-20,-20,-20,-20,-16}, |
{-30,-30,-30,-30,-26,-26,-26,-26,-26,-26,-26,-26,-26,-24,-20,-20,-20}}}, |
}; |
static const noise3 _psy_noisebias_16[4]={ |
/* 63 125 250 500 1k 2k 4k 8k 16k*/ |
{{{-10,-10,-10,-10, -5, -5, -5, 0, 4, 6, 8, 8, 10, 10, 10, 14, 20}, |
{-10,-10,-10,-10,-10, -5, -2, -2, 0, 0, 0, 4, 5, 6, 8, 8, 15}, |
{-30,-30,-30,-30,-30,-24,-20,-14,-10, -6, -8, -8, -6, -6, -6, -6, -6}}}, |
{{{-10,-10,-10,-10, -5, -5, -5, 0, 4, 6, 6, 6, 6, 8, 10, 12, 20}, |
{-15,-15,-15,-15,-15,-10, -5, -5, 0, 0, 0, 4, 5, 6, 8, 8, 15}, |
{-30,-30,-30,-30,-30,-24,-20,-14,-10, -6, -8, -8, -6, -6, -6, -6, -6}}}, |
{{{-15,-15,-15,-15,-15,-12,-10, -8, 0, 2, 4, 4, 5, 5, 5, 8, 12}, |
{-20,-20,-20,-20,-16,-12,-20,-10, -5, -5, 0, 0, 0, 0, 0, 2, 5}, |
{-30,-30,-30,-30,-26,-26,-26,-26,-26,-26,-26,-26,-26,-24,-20,-20,-20}}}, |
{{{-15,-15,-15,-15,-15,-12,-10, -8, -5, -5, -5, -5, -5, 0, 0, 0, 6}, |
{-30,-30,-30,-30,-26,-22,-20,-14,-12,-12,-10,-10,-10,-10,-10,-10, -6}, |
{-30,-30,-30,-30,-26,-26,-26,-26,-26,-26,-26,-26,-26,-24,-20,-20,-20}}}, |
}; |
static const noiseguard _psy_noiseguards_16[4]={ |
{10,10,-1}, |
{10,10,-1}, |
{20,20,-1}, |
{20,20,-1}, |
}; |
static const double _noise_thresh_16[4]={ .3,.5,.5,.5 }; |
static const int _noise_start_16[3]={ 256,256,9999 }; |
static const int _noise_part_16[4]={ 8,8,8,8 }; |
static const int _psy_ath_floater_16[4]={ |
-100,-100,-100,-105, |
}; |
static const int _psy_ath_abs_16[4]={ |
-130,-130,-130,-140, |
}; |
/contrib/sdk/sources/libvorbis-1.3.7/lib/modes/psych_44.h |
---|
0,0 → 1,641 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: key psychoacoustic settings for 44.1/48kHz |
********************************************************************/ |
/* preecho trigger settings *****************************************/ |
static const vorbis_info_psy_global _psy_global_44[5]={ |
{8, /* lines per eighth octave */ |
{20.f,14.f,12.f,12.f,12.f,12.f,12.f}, |
{-60.f,-30.f,-40.f,-40.f,-40.f,-40.f,-40.f}, 2,-75.f, |
-6.f, |
{99.},{{99.},{99.}},{0},{0},{{0.},{0.}} |
}, |
{8, /* lines per eighth octave */ |
{14.f,10.f,10.f,10.f,10.f,10.f,10.f}, |
{-40.f,-30.f,-25.f,-25.f,-25.f,-25.f,-25.f}, 2,-80.f, |
-6.f, |
{99.},{{99.},{99.}},{0},{0},{{0.},{0.}} |
}, |
{8, /* lines per eighth octave */ |
{12.f,10.f,10.f,10.f,10.f,10.f,10.f}, |
{-20.f,-20.f,-15.f,-15.f,-15.f,-15.f,-15.f}, 0,-80.f, |
-6.f, |
{99.},{{99.},{99.}},{0},{0},{{0.},{0.}} |
}, |
{8, /* lines per eighth octave */ |
{10.f,8.f,8.f,8.f,8.f,8.f,8.f}, |
{-20.f,-15.f,-12.f,-12.f,-12.f,-12.f,-12.f}, 0,-80.f, |
-6.f, |
{99.},{{99.},{99.}},{0},{0},{{0.},{0.}} |
}, |
{8, /* lines per eighth octave */ |
{10.f,6.f,6.f,6.f,6.f,6.f,6.f}, |
{-15.f,-15.f,-12.f,-12.f,-12.f,-12.f,-12.f}, 0,-85.f, |
-6.f, |
{99.},{{99.},{99.}},{0},{0},{{0.},{0.}} |
}, |
}; |
/* noise compander lookups * low, mid, high quality ****************/ |
static const compandblock _psy_compand_44[6]={ |
/* sub-mode Z short */ |
{{ |
0, 1, 2, 3, 4, 5, 6, 7, /* 7dB */ |
8, 9,10,11,12,13,14, 15, /* 15dB */ |
16,17,18,19,20,21,22, 23, /* 23dB */ |
24,25,26,27,28,29,30, 31, /* 31dB */ |
32,33,34,35,36,37,38, 39, /* 39dB */ |
}}, |
/* mode_Z nominal short */ |
{{ |
0, 1, 2, 3, 4, 5, 6, 6, /* 7dB */ |
7, 7, 7, 7, 6, 6, 6, 7, /* 15dB */ |
7, 8, 9,10,11,12,13, 14, /* 23dB */ |
15,16,17,17,17,18,18, 19, /* 31dB */ |
19,19,20,21,22,23,24, 25, /* 39dB */ |
}}, |
/* mode A short */ |
{{ |
0, 1, 2, 3, 4, 5, 5, 5, /* 7dB */ |
6, 6, 6, 5, 4, 4, 4, 4, /* 15dB */ |
4, 4, 5, 5, 5, 6, 6, 6, /* 23dB */ |
7, 7, 7, 8, 8, 8, 9, 10, /* 31dB */ |
11,12,13,14,15,16,17, 18, /* 39dB */ |
}}, |
/* sub-mode Z long */ |
{{ |
0, 1, 2, 3, 4, 5, 6, 7, /* 7dB */ |
8, 9,10,11,12,13,14, 15, /* 15dB */ |
16,17,18,19,20,21,22, 23, /* 23dB */ |
24,25,26,27,28,29,30, 31, /* 31dB */ |
32,33,34,35,36,37,38, 39, /* 39dB */ |
}}, |
/* mode_Z nominal long */ |
{{ |
0, 1, 2, 3, 4, 5, 6, 7, /* 7dB */ |
8, 9,10,11,12,12,13, 13, /* 15dB */ |
13,14,14,14,15,15,15, 15, /* 23dB */ |
16,16,17,17,17,18,18, 19, /* 31dB */ |
19,19,20,21,22,23,24, 25, /* 39dB */ |
}}, |
/* mode A long */ |
{{ |
0, 1, 2, 3, 4, 5, 6, 7, /* 7dB */ |
8, 8, 7, 6, 5, 4, 4, 4, /* 15dB */ |
4, 4, 5, 5, 5, 6, 6, 6, /* 23dB */ |
7, 7, 7, 8, 8, 8, 9, 10, /* 31dB */ |
11,12,13,14,15,16,17, 18, /* 39dB */ |
}} |
}; |
/* tonal masking curve level adjustments *************************/ |
static const vp_adjblock _vp_tonemask_adj_longblock[12]={ |
/* 63 125 250 500 1 2 4 8 16 */ |
{{ -3, -8,-13,-15,-10,-10,-10,-10,-10,-10,-10, 0, 0, 0, 0, 0, 0}}, /* -1 */ |
/* {{-15,-15,-15,-15,-10, -8, -4, -2, 0, 0, 0, 10, 0, 0, 0, 0, 0}}, 0 */ |
{{ -4,-10,-14,-16,-15,-14,-13,-12,-12,-12,-11, -1, -1, -1, -1, -1, 0}}, /* 0 */ |
/* {{-15,-15,-15,-15,-15,-12,-10, -8, 0, 0, 0, 5, 0, 0, 0, 0, 0}}, 1 */ |
{{ -6,-12,-14,-16,-15,-15,-14,-13,-13,-12,-12, -2, -2, -1, -1, -1, 0}}, /* 1 */ |
/* {{-15,-15,-15,-15,-15,-12,-10, -8, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, 2 */ |
{{-12,-13,-14,-16,-16,-16,-15,-14,-13,-12,-12, -6, -3, -1, -1, -1, 0}}, /* 2 */ |
/* {{-15,-15,-15,-15,-15,-12,-10, -8, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, 3 */ |
{{-15,-15,-15,-16,-16,-16,-16,-14,-13,-13,-13,-10, -4, -2, -1, -1, 0}}, /* 3 */ |
/* {{-15,-15,-15,-15,-15,-12,-10, -8, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, *//* 4 */ |
{{-16,-16,-16,-16,-16,-16,-16,-15,-14,-14,-13,-11, -7 -3, -1, -1 , 0}}, /* 4 */ |
/* {{-15,-15,-15,-15,-15,-12,-10, -8, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, 5 */ |
{{-16,-16,-16,-16,-16,-16,-16,-15,-14,-14,-13,-11, -7 -3, -1, -1 , 0}}, /* 5 */ |
/* {{-15,-15,-15,-15,-15,-12,-10, -8, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, 6 */ |
{{-16,-16,-16,-16,-16,-16,-16,-15,-14,-14,-14,-12, -8, -4, -2, -2, 0}}, /* 6 */ |
/* {{-15,-15,-15,-15,-15,-12,-10, -8, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, 7 */ |
{{-16,-16,-16,-16,-16,-16,-16,-15,-14,-14,-14,-12, -9, -4, -2, -2, 0}}, /* 7 */ |
/* {{-15,-15,-15,-15,-15,-12,-10, -8, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, 8 */ |
{{-16,-16,-16,-16,-16,-16,-16,-15,-14,-14,-14,-12, -9, -4, -2, -2, 0}}, /* 8 */ |
/* {{-15,-15,-15,-15,-15,-12,-10, -8, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, 9 */ |
{{-16,-16,-16,-16,-16,-16,-16,-15,-14,-14,-14,-12, -9, -4, -2, -2, 0}}, /* 9 */ |
/* {{-15,-15,-15,-15,-15,-12,-10, -8, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, 10 */ |
{{-16,-16,-16,-16,-16,-16,-16,-15,-14,-14,-14,-12, -9, -4, -2, -2, 0}}, /* 10 */ |
}; |
static const vp_adjblock _vp_tonemask_adj_otherblock[12]={ |
/* 63 125 250 500 1 2 4 8 16 */ |
{{ -3, -8,-13,-15,-10,-10, -9, -9, -9, -9, -9, 1, 1, 1, 1, 1, 1}}, /* -1 */ |
/* {{-20,-20,-20,-20,-14,-12,-10, -8, -4, 0, 0, 10, 0, 0, 0, 0, 0}}, 0 */ |
{{ -4,-10,-14,-16,-14,-13,-12,-12,-11,-11,-10, 0, 0, 0, 0, 0, 0}}, /* 0 */ |
/* {{-20,-20,-20,-20,-20,-18,-16,-14,-10, 0, 0, 5, 0, 0, 0, 0, 0}}, 1 */ |
{{ -6,-12,-14,-16,-15,-15,-14,-13,-13,-12,-12, -2, -2, -1, 0, 0, 0}}, /* 1 */ |
/* {{-20,-20,-20,-20,-20,-18,-16,-14,-10, 0, 0, 0, 0, 0, 0, 0, 0}}, 2 */ |
{{-12,-13,-14,-16,-16,-16,-15,-14,-13,-12,-12, -5, -2, -1, 0, 0, 0}}, /* 2 */ |
/* {{-20,-20,-20,-20,-20,-18,-16,-14,-10, 0, 0, 0, 0, 0, 0, 0, 0}}, 3 */ |
{{-15,-15,-15,-16,-16,-16,-16,-14,-13,-13,-13,-10, -4, -2, 0, 0, 0}}, /* 3 */ |
/* {{-20,-20,-20,-20,-20,-18,-16,-14,-10, 0, 0, 0, 0, 0, 0, 0, 0}}, 4 */ |
{{-16,-16,-16,-16,-16,-16,-16,-15,-14,-14,-13,-11, -7 -3, -1, -1 , 0}}, /* 4 */ |
/* {{-20,-20,-20,-20,-20,-18,-16,-14,-10, 0, 0, 0, 0, 0, 0, 0, 0}}, 5 */ |
{{-16,-16,-16,-16,-16,-16,-16,-15,-14,-14,-13,-11, -7 -3, -1, -1 , 0}}, /* 5 */ |
/* {{-20,-20,-20,-20,-20,-18,-16,-14,-10, 0, 0, 0, 0, 0, 0, 0, 0}}, 6 */ |
{{-16,-16,-16,-16,-16,-16,-16,-15,-14,-14,-14,-12, -8, -4, -2, -2, 0}}, /* 6 */ |
/* {{-20,-20,-20,-20,-20,-18,-16,-14,-10, 0, 0, 0, 0, 0, 0, 0, 0}}, 7 */ |
{{-16,-16,-16,-16,-16,-16,-16,-15,-14,-14,-14,-12, -9, -4, -2, -2, 0}}, /* 7 */ |
/* {{-20,-20,-20,-20,-20,-18,-16,-14,-10, 0, 0, 0, 0, 0, 0, 0, 0}}, 8 */ |
{{-16,-16,-16,-16,-16,-16,-16,-15,-14,-14,-14,-12, -9, -4, -2, -2, 0}}, /* 8 */ |
/* {{-20,-20,-20,-20,-20,-18,-16,-14,-10, 0, 0, 0, 0, 0, 0, 0, 0}}, 9 */ |
{{-16,-16,-16,-16,-16,-16,-16,-15,-14,-14,-14,-12, -9, -4, -2, -2, 0}}, /* 9 */ |
/* {{-20,-20,-20,-20,-20,-18,-16,-14,-10, 0, 0, 0, 0, 0, 0, 0, 0}}, 10 */ |
{{-16,-16,-16,-16,-16,-16,-16,-15,-14,-14,-14,-12, -9, -4, -2, -2, 0}}, /* 10 */ |
}; |
/* noise bias (transition block) */ |
static const noise3 _psy_noisebias_trans[12]={ |
/* 63 125 250 500 1k 2k 4k 8k 16k*/ |
/* -1 */ |
{{{-10,-10,-10,-10,-10, -4, 0, 0, 4, 8, 8, 8, 8, 10, 12, 14, 20}, |
{-30,-30,-30,-30,-26,-20,-16, -8, -6, -6, -2, 2, 2, 3, 6, 6, 15}, |
{-30,-30,-30,-30,-30,-24,-20,-14,-10, -6, -8, -8, -6, -6, -6, -4, -2}}}, |
/* 0 |
{{{-15,-15,-15,-15,-15,-12,-10, -8, 0, 2, 4, 4, 5, 5, 5, 8, 10}, |
{-30,-30,-30,-30,-26,-22,-20,-14, -8, -4, 0, 0, 0, 0, 2, 4, 10}, |
{-30,-30,-30,-30,-26,-22,-20,-14,-10, -6, -6, -6, -6, -4, -4, -4, -2}}},*/ |
{{{-15,-15,-15,-15,-15,-12, -6, -4, 0, 2, 4, 4, 5, 5, 5, 8, 10}, |
{-30,-30,-30,-30,-26,-22,-20,-14, -8, -4, 0, 0, 0, 0, 2, 3, 6}, |
{-30,-30,-30,-30,-26,-22,-20,-14,-10, -6, -6, -6, -6, -4, -4, -4, -2}}}, |
/* 1 |
{{{-15,-15,-15,-15,-15,-12,-10, -8, 0, 2, 4, 4, 5, 5, 5, 8, 10}, |
{-30,-30,-30,-30,-26,-22,-20,-14,-10, -4, -2, -2, -2, -2, 0, 2, 8}, |
{-30,-30,-30,-30,-26,-22,-20,-14,-10, -8, -8, -8, -8, -6, -6, -6, -4}}},*/ |
{{{-15,-15,-15,-15,-15,-12,-10, -8, 0, 2, 4, 4, 5, 5, 5, 8, 10}, |
{-30,-30,-30,-30,-26,-22,-20,-14,-10, -4, -2, -2, -2, -2, 0, 1, 4}, |
{-30,-30,-30,-30,-26,-22,-20,-14,-10, -8, -8, -8, -8, -6, -6, -6, -4}}}, |
/* 2 |
{{{-15,-15,-15,-15,-15,-12,-10, -8, 0, 2, 2, 2, 4, 4, 5, 6, 10}, |
{-30,-30,-30,-30,-26,-22,-20,-14,-10, -4, -2, -2, -2, -2, 0, 2, 6}, |
{-30,-30,-30,-30,-26,-22,-20,-14,-10,-10,-10,-10,-10, -8, -8, -8, -4}}}, */ |
{{{-15,-15,-15,-15,-15,-12,-10, -8, 0, 2, 2, 2, 4, 4, 5, 6, 10}, |
{-30,-30,-30,-30,-26,-22,-20,-14,-10, -4, -3, -3, -3, -2, -1, 0, 3}, |
{-30,-30,-30,-30,-26,-22,-20,-14,-10,-10,-10,-10,-10, -8, -8, -7, -4}}}, |
/* 3 |
{{{-15,-15,-15,-15,-15,-12,-10, -8, 0, 2, 2, 2, 4, 4, 4, 5, 8}, |
{-30,-30,-30,-30,-26,-22,-20,-14,-10, -4, -3, -3, -3, -3, -1, 1, 6}, |
{-30,-30,-30,-30,-26,-22,-20,-14,-10,-10,-10,-10,-10, -8, -8, -8, -4}}},*/ |
{{{-15,-15,-15,-15,-15,-12,-10, -8, 0, 2, 2, 2, 4, 4, 4, 5, 8}, |
{-30,-30,-30,-30,-26,-22,-20,-14,-10, -4, -3, -3, -3, -3, -2, 0, 2}, |
{-30,-30,-30,-30,-26,-22,-20,-14,-10,-10,-10,-10,-10, -8, -8, -8, -4}}}, |
/* 4 |
{{{-20,-20,-20,-20,-20,-18,-14, -8, -1, 1, 1, 1, 2, 3, 3, 4, 7}, |
{-30,-30,-30,-30,-26,-22,-20,-14,-10, -4, -3, -3, -3, -3, -1, 1, 5}, |
{-30,-30,-30,-30,-26,-22,-20,-14,-10,-10,-10,-10,-10, -8, -8, -8, -4}}},*/ |
{{{-20,-20,-20,-20,-20,-18,-14, -8, -1, 1, 1, 1, 2, 3, 3, 4, 7}, |
{-30,-30,-30,-30,-26,-22,-20,-14,-10, -4, -3, -3, -3, -3, -2, -1, 1}, |
{-30,-30,-30,-30,-26,-22,-20,-14,-10,-10,-10,-10,-10, -8, -8, -8, -4}}}, |
/* 5 |
{{{-24,-24,-24,-24,-20,-18,-14, -8, -1, 1, 1, 1, 2, 3, 3, 4, 7}, |
{-32,-32,-32,-32,-28,-24,-22,-16,-12, -6, -4, -4, -4, -4, -2, -1, 2}, |
{-34,-34,-34,-34,-30,-24,-24,-18,-14,-12,-12,-12,-12,-10,-10, -9, -5}}}, */ |
{{{-24,-24,-24,-24,-20,-18,-14, -8, -1, 1, 1, 1, 2, 3, 3, 4, 7}, |
{-32,-32,-32,-32,-28,-24,-22,-16,-12, -6, -4, -4, -4, -4, -3, -1, 0}, |
{-34,-34,-34,-34,-30,-24,-24,-18,-14,-12,-12,-12,-12,-10,-10, -9, -5}}}, |
/* 6 |
{{{-24,-24,-24,-24,-20,-18,-14, -8, -1, 1, 1, 1, 2, 3, 3, 4, 7}, |
{-32,-32,-32,-32,-28,-24,-24,-18,-14, -8, -6, -6, -6, -6, -4, -2, 1}, |
{-34,-34,-34,-34,-30,-26,-24,-18,-17,-15,-15,-15,-15,-13,-13,-12, -8}}},*/ |
{{{-24,-24,-24,-24,-20,-18,-14, -8, -1, 1, 1, 1, 2, 3, 3, 4, 7}, |
{-32,-32,-32,-32,-28,-24,-24,-18,-14, -8, -6, -6, -6, -6, -5, -2, 0}, |
{-34,-34,-34,-34,-30,-26,-26,-24,-22,-19,-19,-19,-19,-18,-17,-16,-12}}}, |
/* 7 |
{{{-24,-24,-24,-24,-20,-18,-14, -8, -1, 1, 1, 1, 2, 3, 3, 4, 7}, |
{-32,-32,-32,-32,-28,-24,-24,-18,-14,-12,-10, -8, -8, -8, -6, -4, 0}, |
{-34,-34,-34,-34,-30,-26,-26,-24,-22,-19,-19,-19,-19,-18,-17,-16,-12}}},*/ |
{{{-24,-24,-24,-24,-20,-18,-14, -8, -1, 1, 1, 1, 2, 3, 3, 4, 7}, |
{-32,-32,-32,-32,-28,-24,-24,-24,-18,-14,-12,-10,-10,-10, -8, -6, -2}, |
{-34,-34,-34,-34,-30,-26,-26,-26,-24,-24,-24,-24,-24,-24,-24,-20,-16}}}, |
/* 8 |
{{{-24,-24,-24,-24,-22,-20,-15,-10, -8, -2, 0, 0, 0, 1, 2, 3, 7}, |
{-36,-36,-36,-36,-30,-30,-30,-24,-18,-14,-12,-10,-10,-10, -8, -6, -2}, |
{-36,-36,-36,-36,-34,-30,-28,-26,-24,-24,-24,-24,-24,-24,-24,-20,-16}}},*/ |
{{{-24,-24,-24,-24,-22,-20,-15,-10, -8, -2, 0, 0, 0, 1, 2, 3, 7}, |
{-36,-36,-36,-36,-30,-30,-30,-24,-20,-16,-16,-16,-16,-14,-12,-10, -7}, |
{-36,-36,-36,-36,-34,-30,-28,-26,-24,-30,-30,-30,-30,-30,-30,-24,-20}}}, |
/* 9 |
{{{-28,-28,-28,-28,-28,-28,-28,-20,-14, -8, -4, -4, -4, -4, -4, -2, 2}, |
{-36,-36,-36,-36,-34,-32,-32,-28,-20,-16,-16,-16,-16,-14,-12,-10, -7}, |
{-40,-40,-40,-40,-40,-40,-40,-32,-30,-30,-30,-30,-30,-30,-30,-24,-20}}},*/ |
{{{-28,-28,-28,-28,-28,-28,-28,-20,-14, -8, -4, -4, -4, -4, -4, -2, 2}, |
{-38,-38,-38,-38,-36,-34,-34,-30,-24,-20,-20,-20,-20,-18,-16,-12,-10}, |
{-40,-40,-40,-40,-40,-40,-40,-38,-35,-35,-35,-35,-35,-35,-35,-35,-30}}}, |
/* 10 */ |
{{{-30,-30,-30,-30,-30,-30,-30,-28,-20,-14,-14,-14,-14,-14,-14,-12,-10}, |
{-40,-40,-40,-40,-40,-40,-40,-40,-35,-30,-30,-30,-30,-30,-30,-30,-20}, |
{-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40}}}, |
}; |
/* noise bias (long block) */ |
static const noise3 _psy_noisebias_long[12]={ |
/*63 125 250 500 1k 2k 4k 8k 16k*/ |
/* -1 */ |
{{{-10,-10,-10,-10,-10, -4, 0, 0, 0, 6, 6, 6, 6, 10, 10, 12, 20}, |
{-20,-20,-20,-20,-20,-20,-10, -2, 0, 0, 0, 0, 0, 2, 4, 6, 15}, |
{-20,-20,-20,-20,-20,-20,-20,-10, -6, -6, -6, -6, -6, -4, -4, -4, -2}}}, |
/* 0 */ |
/* {{{-10,-10,-10,-10,-10,-10, -8, 2, 2, 2, 4, 4, 5, 5, 5, 8, 10}, |
{-20,-20,-20,-20,-20,-20,-20,-14, -6, 0, 0, 0, 0, 0, 2, 4, 10}, |
{-20,-20,-20,-20,-20,-20,-20,-14, -8, -6, -6, -6, -6, -4, -4, -4, -2}}},*/ |
{{{-10,-10,-10,-10,-10,-10, -8, 2, 2, 2, 4, 4, 5, 5, 5, 8, 10}, |
{-20,-20,-20,-20,-20,-20,-20,-14, -6, 0, 0, 0, 0, 0, 2, 3, 6}, |
{-20,-20,-20,-20,-20,-20,-20,-14, -8, -6, -6, -6, -6, -4, -4, -4, -2}}}, |
/* 1 */ |
/* {{{-10,-10,-10,-10,-10,-10, -8, -4, 0, 2, 4, 4, 5, 5, 5, 8, 10}, |
{-20,-20,-20,-20,-20,-20,-20,-14,-10, -4, -2, -2, -2, -2, 0, 2, 8}, |
{-20,-20,-20,-20,-20,-20,-20,-14,-10, -8, -8, -8, -8, -6, -6, -6, -4}}},*/ |
{{{-10,-10,-10,-10,-10,-10, -8, -4, 0, 2, 4, 4, 5, 5, 5, 8, 10}, |
{-20,-20,-20,-20,-20,-20,-20,-14,-10, -4, -2, -2, -2, -2, 0, 1, 4}, |
{-20,-20,-20,-20,-20,-20,-20,-14,-10, -8, -8, -8, -8, -6, -6, -6, -4}}}, |
/* 2 */ |
/* {{{-10,-10,-10,-10,-10,-10,-10, -8, 0, 2, 2, 2, 4, 4, 5, 6, 10}, |
{-20,-20,-20,-20,-20,-20,-20,-14,-10, -4, -2, -2, -2, -2, 0, 2, 6}, |
{-20,-20,-20,-20,-20,-20,-20,-14,-10,-10,-10,-10,-10, -8, -8, -8, -4}}},*/ |
{{{-10,-10,-10,-10,-10,-10,-10, -8, 0, 2, 2, 2, 4, 4, 5, 6, 10}, |
{-20,-20,-20,-20,-20,-20,-20,-14,-10, -4, -3, -3, -3, -2, -1, 0, 3}, |
{-20,-20,-20,-20,-20,-20,-20,-14,-10,-10,-10,-10,-10, -8, -8, -8, -4}}}, |
/* 3 */ |
/* {{{-10,-10,-10,-10,-10,-10,-10, -8, 0, 2, 2, 2, 4, 4, 4, 5, 8}, |
{-20,-20,-20,-20,-20,-20,-20,-14,-10, -4, -3, -3, -3, -3, -1, 1, 6}, |
{-20,-20,-20,-20,-20,-20,-20,-14,-10,-10,-10,-10,-10, -8, -8, -8, -4}}},*/ |
{{{-10,-10,-10,-10,-10,-10,-10, -8, 0, 2, 2, 2, 4, 4, 4, 5, 8}, |
{-20,-20,-20,-20,-20,-20,-20,-14,-10, -4, -3, -3, -3, -3, -2, 0, 2}, |
{-20,-20,-20,-20,-20,-20,-20,-14,-10,-10,-10,-10,-10, -8, -8, -8, -5}}}, |
/* 4 */ |
/* {{{-15,-15,-15,-15,-15,-15,-15,-10, -4, 1, 1, 1, 2, 3, 3, 4, 7}, |
{-20,-20,-20,-20,-20,-20,-20,-14,-10, -4, -3, -3, -3, -3, -1, 1, 5}, |
{-20,-20,-20,-20,-20,-20,-20,-14,-10,-10,-10,-10,-10, -8, -8, -8, -4}}},*/ |
{{{-15,-15,-15,-15,-15,-15,-15,-10, -4, 1, 1, 1, 2, 3, 3, 4, 7}, |
{-20,-20,-20,-20,-20,-20,-20,-14,-10, -4, -3, -3, -3, -3, -2, -1, 1}, |
{-20,-20,-20,-20,-20,-20,-20,-14,-10,-10,-10,-10,-10, -8, -8, -8, -7}}}, |
/* 5 */ |
/* {{{-15,-15,-15,-15,-15,-15,-15,-10, -4, 1, 1, 1, 2, 3, 3, 4, 7}, |
{-22,-22,-22,-22,-22,-22,-22,-16,-12, -6, -4, -4, -4, -4, -2, -1, 2}, |
{-24,-24,-24,-24,-24,-24,-24,-18,-14,-12,-12,-12,-12,-10,-10, -9, -5}}},*/ |
{{{-15,-15,-15,-15,-15,-15,-15,-10, -4, 1, 1, 1, 2, 3, 3, 4, 7}, |
{-22,-22,-22,-22,-22,-22,-22,-16,-12, -6, -4, -4, -4, -4, -3, -1, 0}, |
{-24,-24,-24,-24,-24,-24,-24,-18,-14,-12,-12,-12,-12,-10,-10, -9, -8}}}, |
/* 6 */ |
/* {{{-15,-15,-15,-15,-15,-15,-15,-10, -4, 1, 1, 1, 2, 3, 3, 4, 7}, |
{-24,-24,-24,-24,-24,-24,-24,-18,-14, -8, -6, -6, -6, -6, -4, -2, 1}, |
{-26,-26,-26,-26,-26,-26,-26,-18,-16,-15,-15,-15,-15,-13,-13,-12, -8}}},*/ |
{{{-15,-15,-15,-15,-15,-15,-15,-10, -4, 1, 1, 1, 2, 3, 3, 4, 7}, |
{-24,-24,-24,-24,-24,-24,-24,-18,-14, -8, -6, -6, -6, -6, -5, -2, 0}, |
{-26,-26,-26,-26,-26,-26,-26,-18,-16,-15,-15,-15,-15,-13,-13,-12,-10}}}, |
/* 7 */ |
{{{-15,-15,-15,-15,-15,-15,-15,-10, -4, 1, 1, 1, 2, 3, 3, 4, 7}, |
{-24,-24,-24,-24,-24,-24,-24,-18,-14,-10, -8, -8, -8, -8, -6, -4, 0}, |
{-26,-26,-26,-26,-26,-26,-26,-22,-20,-19,-19,-19,-19,-18,-17,-16,-12}}}, |
/* 8 */ |
{{{-15,-15,-15,-15,-15,-15,-15,-10, -4, 0, 0, 0, 0, 1, 2, 3, 7}, |
{-26,-26,-26,-26,-26,-26,-26,-20,-16,-12,-10,-10,-10,-10, -8, -6, -2}, |
{-28,-28,-28,-28,-28,-28,-28,-26,-24,-24,-24,-24,-24,-24,-24,-20,-16}}}, |
/* 9 */ |
{{{-22,-22,-22,-22,-22,-22,-22,-18,-14, -8, -4, -4, -4, -4, -4, -2, 2}, |
{-26,-26,-26,-26,-26,-26,-26,-22,-18,-16,-16,-16,-16,-14,-12,-10, -7}, |
{-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-24,-20}}}, |
/* 10 */ |
{{{-24,-24,-24,-24,-24,-24,-24,-24,-24,-18,-14,-14,-14,-14,-14,-12,-10}, |
{-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-20}, |
{-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40}}}, |
}; |
/* noise bias (impulse block) */ |
static const noise3 _psy_noisebias_impulse[12]={ |
/* 63 125 250 500 1k 2k 4k 8k 16k*/ |
/* -1 */ |
{{{-10,-10,-10,-10,-10, -4, 0, 0, 4, 8, 8, 8, 8, 10, 12, 14, 20}, |
{-30,-30,-30,-30,-26,-20,-16, -8, -6, -6, -2, 2, 2, 3, 6, 6, 15}, |
{-30,-30,-30,-30,-30,-24,-20,-14,-10, -6, -8, -8, -6, -6, -6, -4, -2}}}, |
/* 0 */ |
/* {{{-10,-10,-10,-10,-10, -4, 0, 0, 4, 4, 8, 8, 8, 10, 12, 14, 20}, |
{-30,-30,-30,-30,-26,-22,-20,-14, -6, -2, 0, 0, 0, 0, 2, 4, 10}, |
{-30,-30,-30,-30,-30,-24,-20,-14,-10, -6, -8, -8, -6, -6, -6, -4, -2}}},*/ |
{{{-10,-10,-10,-10,-10, -4, 0, 0, 4, 4, 8, 8, 8, 10, 12, 14, 20}, |
{-30,-30,-30,-30,-26,-22,-20,-14, -6, -2, 0, 0, 0, 0, 2, 3, 6}, |
{-30,-30,-30,-30,-30,-24,-20,-14,-10, -6, -8, -8, -6, -6, -6, -4, -2}}}, |
/* 1 */ |
{{{-12,-12,-12,-12,-12, -8, -6, -4, 0, 4, 4, 4, 4, 10, 12, 14, 20}, |
{-30,-30,-30,-30,-26,-22,-20,-14,-10, -6, -4, -4, -2, -2, -2, -2, 2}, |
{-30,-30,-30,-30,-26,-22,-20,-14,-10, -8,-10,-10, -8, -8, -8, -6, -4}}}, |
/* 2 */ |
{{{-14,-14,-14,-14,-14,-10, -8, -6, -2, 2, 2, 2, 2, 8, 10, 10, 16}, |
{-30,-30,-30,-30,-26,-22,-20,-14,-10, -6, -6, -6, -4, -4, -4, -2, 0}, |
{-30,-30,-30,-30,-26,-22,-20,-14,-10,-10,-10,-10,-10,-10,-10, -8, -4}}}, |
/* 3 */ |
{{{-14,-14,-14,-14,-14,-10, -8, -6, -2, 2, 2, 2, 2, 6, 8, 8, 14}, |
{-30,-30,-30,-30,-26,-22,-20,-14,-10, -6, -6, -6, -4, -4, -4, -2, 0}, |
{-30,-30,-30,-30,-26,-22,-20,-14,-10,-10,-10,-10,-10,-10,-10, -8, -4}}}, |
/* 4 */ |
{{{-16,-16,-16,-16,-16,-12,-10, -6, -2, 0, 0, 0, 0, 4, 6, 6, 12}, |
{-30,-30,-30,-30,-26,-22,-20,-14,-10, -6, -6, -6, -4, -4, -4, -2, 0}, |
{-30,-30,-30,-30,-26,-22,-20,-14,-10,-10,-10,-10,-10,-10,-10, -8, -4}}}, |
/* 5 */ |
{{{-20,-20,-20,-20,-20,-18,-14,-10, -4, 0, 0, 0, 0, 4, 4, 6, 11}, |
{-32,-32,-32,-32,-28,-24,-22,-16,-10, -6, -8, -8, -6, -6, -6, -4, -2}, |
{-34,-34,-34,-34,-30,-26,-24,-18,-14,-12,-12,-12,-12,-12,-10, -9, -5}}}, |
/* 6 |
{{{-20,-20,-20,-20,-20,-18,-14,-10, -4, 0, 0, 0, 0, 4, 4, 6, 11}, |
{-34,-34,-34,-34,-30,-30,-24,-20,-12,-12,-14,-14,-10, -9, -8, -6, -4}, |
{-34,-34,-34,-34,-34,-30,-26,-20,-16,-15,-15,-15,-15,-15,-13,-12, -8}}},*/ |
{{{-20,-20,-20,-20,-20,-18,-14,-10, -4, 0, 0, 0, 0, 4, 4, 6, 11}, |
{-34,-34,-34,-34,-30,-30,-30,-24,-16,-16,-16,-16,-16,-16,-14,-14,-12}, |
{-36,-36,-36,-36,-36,-34,-28,-24,-20,-20,-20,-20,-20,-20,-20,-18,-16}}}, |
/* 7 */ |
/* {{{-22,-22,-22,-22,-22,-20,-14,-10, -6, 0, 0, 0, 0, 4, 4, 6, 11}, |
{-34,-34,-34,-34,-30,-30,-24,-20,-14,-14,-16,-16,-14,-12,-10,-10,-10}, |
{-34,-34,-34,-34,-32,-32,-30,-24,-20,-19,-19,-19,-19,-19,-17,-16,-12}}},*/ |
{{{-22,-22,-22,-22,-22,-20,-14,-10, -6, 0, 0, 0, 0, 4, 4, 6, 11}, |
{-34,-34,-34,-34,-30,-30,-30,-30,-26,-26,-26,-26,-26,-26,-26,-24,-22}, |
{-40,-40,-40,-40,-40,-40,-40,-32,-30,-30,-30,-30,-30,-30,-30,-30,-24}}}, |
/* 8 */ |
/* {{{-24,-24,-24,-24,-24,-22,-14,-10, -6, -1, -1, -1, -1, 3, 3, 5, 10}, |
{-34,-34,-34,-34,-30,-30,-30,-24,-20,-20,-20,-20,-20,-18,-16,-16,-14}, |
{-36,-36,-36,-36,-36,-34,-28,-24,-24,-24,-24,-24,-24,-24,-24,-20,-16}}},*/ |
{{{-24,-24,-24,-24,-24,-22,-14,-10, -6, -1, -1, -1, -1, 3, 3, 5, 10}, |
{-34,-34,-34,-34,-34,-32,-32,-30,-26,-26,-26,-26,-26,-26,-26,-26,-24}, |
{-40,-40,-40,-40,-40,-40,-40,-32,-30,-30,-30,-30,-30,-30,-30,-30,-24}}}, |
/* 9 */ |
/* {{{-28,-28,-28,-28,-28,-28,-28,-20,-14, -8, -4, -4, -4, -4, -4, -2, 2}, |
{-36,-36,-36,-36,-34,-32,-32,-30,-26,-26,-26,-26,-26,-22,-20,-20,-18}, |
{-40,-40,-40,-40,-40,-40,-40,-32,-30,-30,-30,-30,-30,-30,-30,-24,-20}}},*/ |
{{{-28,-28,-28,-28,-28,-28,-28,-20,-14, -8, -4, -4, -4, -4, -4, -2, 2}, |
{-36,-36,-36,-36,-34,-32,-32,-30,-26,-26,-26,-26,-26,-26,-26,-26,-26}, |
{-40,-40,-40,-40,-40,-40,-40,-32,-30,-30,-30,-30,-30,-30,-30,-24,-20}}}, |
/* 10 */ |
{{{-30,-30,-30,-30,-30,-26,-24,-24,-24,-20,-16,-16,-16,-16,-16,-14,-12}, |
{-40,-40,-40,-40,-40,-40,-40,-40,-35,-30,-30,-30,-30,-30,-30,-30,-26}, |
{-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40}}}, |
}; |
/* noise bias (padding block) */ |
static const noise3 _psy_noisebias_padding[12]={ |
/* 63 125 250 500 1k 2k 4k 8k 16k*/ |
/* -1 */ |
{{{-10,-10,-10,-10,-10, -4, 0, 0, 4, 8, 8, 8, 8, 10, 12, 14, 20}, |
{-30,-30,-30,-30,-26,-20,-16, -8, -6, -6, -2, 2, 2, 3, 6, 6, 15}, |
{-30,-30,-30,-30,-30,-24,-20,-14,-10, -6, -8, -8, -6, -6, -6, -4, -2}}}, |
/* 0 */ |
{{{-10,-10,-10,-10,-10, -4, 0, 0, 4, 8, 8, 8, 8, 10, 12, 14, 20}, |
{-30,-30,-30,-30,-26,-22,-20,-14,-10, -4, -2, 2, 3, 6, 6, 8, 10}, |
{-30,-30,-30,-30,-26,-22,-20,-14,-10, -4, -4, -4, -4, -4, -2, 0, 2}}}, |
/* 1 */ |
{{{-12,-12,-12,-12,-12, -8, -6, -4, 0, 4, 4, 4, 4, 10, 12, 14, 20}, |
{-30,-30,-30,-30,-26,-22,-20,-14,-10, -4, 0, 0, 0, 2, 2, 4, 8}, |
{-30,-30,-30,-30,-26,-22,-20,-14,-10, -6, -6, -6, -6, -6, -4, -2, 0}}}, |
/* 2 */ |
/* {{{-14,-14,-14,-14,-14,-10, -8, -6, -2, 2, 2, 2, 2, 8, 10, 10, 16}, |
{-30,-30,-30,-30,-26,-22,-20,-14,-10, -4, 0, 0, 0, 2, 2, 4, 8}, |
{-30,-30,-30,-30,-26,-22,-20,-14,-10, -8, -8, -8, -8, -8, -6, -4, -2}}},*/ |
{{{-14,-14,-14,-14,-14,-10, -8, -6, -2, 2, 2, 2, 2, 8, 10, 10, 16}, |
{-30,-30,-30,-30,-26,-22,-20,-14,-10, -6, -1, -1, -1, 0, 0, 2, 6}, |
{-30,-30,-30,-30,-26,-22,-20,-14,-10, -8, -8, -8, -8, -8, -6, -4, -2}}}, |
/* 3 */ |
{{{-14,-14,-14,-14,-14,-10, -8, -6, -2, 2, 2, 2, 2, 6, 8, 8, 14}, |
{-30,-30,-30,-30,-26,-22,-20,-14,-10, -6, -1, -1, -1, 0, 0, 2, 6}, |
{-30,-30,-30,-30,-26,-22,-20,-14,-10, -8, -8, -8, -8, -8, -6, -4, -2}}}, |
/* 4 */ |
{{{-16,-16,-16,-16,-16,-12,-10, -6, -2, 0, 0, 0, 0, 4, 6, 6, 12}, |
{-30,-30,-30,-30,-26,-22,-20,-14,-10, -6, -1, -1, -1, -1, 0, 2, 6}, |
{-30,-30,-30,-30,-26,-22,-20,-14,-10, -8, -8, -8, -8, -8, -6, -4, -2}}}, |
/* 5 */ |
{{{-20,-20,-20,-20,-20,-18,-14,-10, -4, 0, 0, 0, 0, 4, 6, 6, 12}, |
{-32,-32,-32,-32,-28,-24,-22,-16,-12, -6, -3, -3, -3, -3, -2, 0, 4}, |
{-34,-34,-34,-34,-30,-26,-24,-18,-14,-10,-10,-10,-10,-10, -8, -5, -3}}}, |
/* 6 */ |
{{{-20,-20,-20,-20,-20,-18,-14,-10, -4, 0, 0, 0, 0, 4, 6, 6, 12}, |
{-34,-34,-34,-34,-30,-30,-24,-20,-14, -8, -4, -4, -4, -4, -3, -1, 4}, |
{-34,-34,-34,-34,-34,-30,-26,-20,-16,-13,-13,-13,-13,-13,-11, -8, -6}}}, |
/* 7 */ |
{{{-20,-20,-20,-20,-20,-18,-14,-10, -4, 0, 0, 0, 0, 4, 6, 6, 12}, |
{-34,-34,-34,-34,-30,-30,-30,-24,-16,-10, -8, -6, -6, -6, -5, -3, 1}, |
{-34,-34,-34,-34,-32,-32,-28,-22,-18,-16,-16,-16,-16,-16,-14,-12,-10}}}, |
/* 8 */ |
{{{-22,-22,-22,-22,-22,-20,-14,-10, -4, 0, 0, 0, 0, 3, 5, 5, 11}, |
{-34,-34,-34,-34,-30,-30,-30,-24,-16,-12,-10, -8, -8, -8, -7, -5, -2}, |
{-36,-36,-36,-36,-36,-34,-28,-22,-20,-20,-20,-20,-20,-20,-20,-16,-14}}}, |
/* 9 */ |
{{{-28,-28,-28,-28,-28,-28,-28,-20,-14, -8, -2, -2, -2, -2, 0, 2, 6}, |
{-36,-36,-36,-36,-34,-32,-32,-24,-16,-12,-12,-12,-12,-12,-10, -8, -5}, |
{-40,-40,-40,-40,-40,-40,-40,-32,-26,-24,-24,-24,-24,-24,-24,-20,-18}}}, |
/* 10 */ |
{{{-30,-30,-30,-30,-30,-26,-24,-24,-24,-20,-12,-12,-12,-12,-12,-10, -8}, |
{-40,-40,-40,-40,-40,-40,-40,-40,-35,-30,-25,-25,-25,-25,-25,-25,-15}, |
{-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40}}}, |
}; |
static const noiseguard _psy_noiseguards_44[4]={ |
{3,3,15}, |
{3,3,15}, |
{10,10,100}, |
{10,10,100}, |
}; |
static const int _psy_tone_suppress[12]={ |
-20,-20,-20,-20,-20,-24,-30,-40,-40,-45,-45,-45, |
}; |
static const int _psy_tone_0dB[12]={ |
90,90,95,95,95,95,105,105,105,105,105,105, |
}; |
static const int _psy_noise_suppress[12]={ |
-20,-20,-24,-24,-24,-24,-30,-40,-40,-45,-45,-45, |
}; |
static const vorbis_info_psy _psy_info_template={ |
/* blockflag */ |
-1, |
/* ath_adjatt, ath_maxatt */ |
-140.,-140., |
/* tonemask att boost/decay,suppr,curves */ |
{0.f,0.f,0.f}, 0.,0., -40.f, {0.}, |
/*noisemaskp,supp, low/high window, low/hi guard, minimum */ |
1, -0.f, .5f, .5f, 0,0,0, |
/* noiseoffset*3, noisecompand, max_curve_dB */ |
{{-1},{-1},{-1}},{-1},105.f, |
/* noise normalization - noise_p, start, partition, thresh. */ |
0,-1,-1,0., |
}; |
/* ath ****************/ |
static const int _psy_ath_floater[12]={ |
-100,-100,-100,-100,-100,-100,-105,-105,-105,-105,-110,-120, |
}; |
static const int _psy_ath_abs[12]={ |
-130,-130,-130,-130,-140,-140,-140,-140,-140,-140,-140,-150, |
}; |
/* stereo setup. These don't map directly to quality level, there's |
an additional indirection as several of the below may be used in a |
single bitmanaged stream |
****************/ |
/* various stereo possibilities */ |
/* stereo mode by base quality level */ |
static const adj_stereo _psy_stereo_modes_44[12]={ |
/* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 -1 */ |
{{ 4, 4, 4, 4, 4, 4, 4, 3, 2, 2, 1, 0, 0, 0, 0}, |
{ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 5, 4, 3}, |
{ 1, 2, 3, 4, 4, 4, 4, 4, 4, 5, 6, 7, 8, 8, 8}, |
{ 12,12.5, 13,13.5, 14,14.5, 15, 99, 99, 99, 99, 99, 99, 99, 99}}, |
/* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 0 */ |
{{ 4, 4, 4, 4, 4, 4, 4, 3, 2, 1, 0, 0, 0, 0, 0}, |
{ 8, 8, 8, 8, 6, 6, 5, 5, 5, 5, 5, 5, 5, 4, 3}, |
{ 1, 2, 3, 4, 4, 5, 6, 6, 6, 6, 6, 8, 8, 8, 8}, |
{ 12,12.5, 13,13.5, 14,14.5, 15, 99, 99, 99, 99, 99, 99, 99, 99}}, |
/* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 */ |
{{ 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 0, 0, 0, 0, 0}, |
{ 8, 8, 8, 8, 6, 6, 5, 5, 5, 5, 5, 5, 5, 4, 3}, |
{ 1, 2, 3, 4, 4, 5, 6, 6, 6, 6, 6, 8, 8, 8, 8}, |
{ 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99}}, |
/* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 */ |
{{ 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 0, 0, 0, 0, 0}, |
{ 8, 8, 6, 6, 5, 5, 4, 4, 4, 4, 4, 4, 3, 2, 1}, |
{ 3, 4, 4, 5, 5, 6, 6, 6, 6, 6, 6, 8, 8, 8, 8}, |
{ 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99}}, |
/* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 3 */ |
{{ 2, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0}, |
{ 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 2, 1}, |
{ 4, 4, 5, 6, 6, 6, 6, 6, 8, 8, 10, 10, 10, 10, 10}, |
{ 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99}}, |
/* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 4 */ |
{{ 2, 2, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, |
{ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 2, 1, 0}, |
{ 6, 6, 6, 8, 8, 8, 8, 8, 8, 8, 10, 10, 10, 10, 10}, |
{ 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99}}, |
/* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 5 */ |
{{ 2, 2, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, |
{ 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0}, |
{ 6, 7, 8, 8, 8, 10, 10, 12, 12, 12, 12, 12, 12, 12, 12}, |
{ 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99}}, |
/* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 6 */ |
{{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, |
{ 3, 3, 3, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0}, |
{ 8, 8, 8, 10, 10, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12}, |
{ 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99}}, |
/* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 7 */ |
{{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, |
{ 3, 3, 3, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, |
{ 8, 8, 10, 10, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12}, |
{ 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99}}, |
/* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 8 */ |
{{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, |
{ 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, |
{ 8, 10, 10, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12}, |
{ 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99}}, |
/* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 9 */ |
{{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, |
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, |
{ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4}, |
{ 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99}}, |
/* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 10 */ |
{{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, |
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, |
{ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4}, |
{ 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99}}, |
}; |
/* tone master attenuation by base quality mode and bitrate tweak */ |
static const att3 _psy_tone_masteratt_44[12]={ |
{{ 35, 21, 9}, 0, 0}, /* -1 */ |
{{ 30, 20, 8}, -2, 1.25}, /* 0 */ |
/* {{ 25, 14, 4}, 0, 0}, *//* 1 */ |
{{ 25, 12, 2}, 0, 0}, /* 1 */ |
/* {{ 20, 10, -2}, 0, 0}, *//* 2 */ |
{{ 20, 9, -3}, 0, 0}, /* 2 */ |
{{ 20, 9, -4}, 0, 0}, /* 3 */ |
{{ 20, 9, -4}, 0, 0}, /* 4 */ |
{{ 20, 6, -6}, 0, 0}, /* 5 */ |
{{ 20, 3, -10}, 0, 0}, /* 6 */ |
{{ 18, 1, -14}, 0, 0}, /* 7 */ |
{{ 18, 0, -16}, 0, 0}, /* 8 */ |
{{ 18, -2, -16}, 0, 0}, /* 9 */ |
{{ 12, -2, -20}, 0, 0}, /* 10 */ |
}; |
/* lowpass by mode **************/ |
static const double _psy_lowpass_44[12]={ |
/* 15.1,15.8,16.5,17.9,20.5,48.,999.,999.,999.,999.,999. */ |
13.9,15.1,15.8,16.5,17.2,18.9,20.1,48.,999.,999.,999.,999. |
}; |
/* noise normalization **********/ |
static const int _noise_start_short_44[11]={ |
/* 16,16,16,16,32,32,9999,9999,9999,9999 */ |
32,16,16,16,32,9999,9999,9999,9999,9999,9999 |
}; |
static const int _noise_start_long_44[11]={ |
/* 128,128,128,256,512,512,9999,9999,9999,9999 */ |
256,128,128,256,512,9999,9999,9999,9999,9999,9999 |
}; |
static const int _noise_part_short_44[11]={ |
8,8,8,8,8,8,8,8,8,8,8 |
}; |
static const int _noise_part_long_44[11]={ |
32,32,32,32,32,32,32,32,32,32,32 |
}; |
static const double _noise_thresh_44[11]={ |
/* .2,.2,.3,.4,.5,.5,9999.,9999.,9999.,9999., */ |
.2,.2,.2,.4,.6,9999.,9999.,9999.,9999.,9999.,9999., |
}; |
static const double _noise_thresh_5only[2]={ |
.5,.5, |
}; |
/contrib/sdk/sources/libvorbis-1.3.7/lib/modes/psych_8.h |
---|
0,0 → 1,100 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: 8kHz psychoacoustic settings |
********************************************************************/ |
static const att3 _psy_tone_masteratt_8[3]={ |
{{ 32, 25, 12}, 0, 0}, /* 0 */ |
{{ 30, 25, 12}, 0, 0}, /* 0 */ |
{{ 20, 0, -14}, 0, 0}, /* 0 */ |
}; |
static const vp_adjblock _vp_tonemask_adj_8[3]={ |
/* adjust for mode zero */ |
/* 63 125 250 500 1 2 4 8 16 */ |
{{-15,-15,-15,-15,-10,-10, -6, 0, 0, 0, 0,10, 0, 0,99,99,99}}, /* 1 */ |
{{-15,-15,-15,-15,-10,-10, -6, 0, 0, 0, 0,10, 0, 0,99,99,99}}, /* 1 */ |
{{-15,-15,-15,-15,-10,-10, -6, 0, 0, 0, 0, 0, 0, 0,99,99,99}}, /* 1 */ |
}; |
static const noise3 _psy_noisebias_8[3]={ |
/* 63 125 250 500 1k 2k 4k 8k 16k*/ |
{{{-10,-10,-10,-10, -5, -5, -5, 0, 4, 8, 8, 8, 10, 10, 99, 99, 99}, |
{-10,-10,-10,-10, -5, -5, -5, 0, 0, 4, 4, 4, 4, 4, 99, 99, 99}, |
{-30,-30,-30,-30,-30,-24,-20,-14,-10, -6, -8, -8, -6, -6, 99, 99, 99}}}, |
{{{-10,-10,-10,-10, -5, -5, -5, 0, 4, 8, 8, 8, 10, 10, 99, 99, 99}, |
{-10,-10,-10,-10,-10,-10, -5, -5, -5, 0, 0, 0, 0, 0, 99, 99, 99}, |
{-30,-30,-30,-30,-30,-24,-20,-14,-10, -6, -8, -8, -6, -6, 99, 99, 99}}}, |
{{{-15,-15,-15,-15,-15,-12,-10, -8, 0, 2, 4, 4, 5, 5, 99, 99, 99}, |
{-30,-30,-30,-30,-26,-22,-20,-14,-12,-12,-10,-10,-10,-10, 99, 99, 99}, |
{-30,-30,-30,-30,-26,-26,-26,-26,-26,-26,-26,-26,-26,-24, 99, 99, 99}}}, |
}; |
/* stereo mode by base quality level */ |
static const adj_stereo _psy_stereo_modes_8[3]={ |
/* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 */ |
{{ 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3}, |
{ 6, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4}, |
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, |
{ 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99}}, |
{{ 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3}, |
{ 6, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4}, |
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, |
{ 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99}}, |
{{ 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, 4, 4, 4}, |
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, |
{ 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99}}, |
}; |
static const noiseguard _psy_noiseguards_8[2]={ |
{10,10,-1}, |
{10,10,-1}, |
}; |
static const compandblock _psy_compand_8[2]={ |
{{ |
0, 1, 2, 3, 4, 5, 6, 7, /* 7dB */ |
8, 8, 9, 9,10,10,11, 11, /* 15dB */ |
12,12,13,13,14,14,15, 15, /* 23dB */ |
16,16,17,17,17,18,18, 19, /* 31dB */ |
19,19,20,21,22,23,24, 25, /* 39dB */ |
}}, |
{{ |
0, 1, 2, 3, 4, 5, 6, 6, /* 7dB */ |
7, 7, 6, 6, 5, 5, 4, 4, /* 15dB */ |
3, 3, 3, 4, 5, 6, 7, 8, /* 23dB */ |
9,10,11,12,13,14,15, 16, /* 31dB */ |
17,18,19,20,21,22,23, 24, /* 39dB */ |
}}, |
}; |
static const double _psy_lowpass_8[3]={3.,4.,4.}; |
static const int _noise_start_8[2]={ |
64,64, |
}; |
static const int _noise_part_8[2]={ |
8,8, |
}; |
static const int _psy_ath_floater_8[3]={ |
-100,-100,-105, |
}; |
static const int _psy_ath_abs_8[3]={ |
-130,-130,-140, |
}; |
/contrib/sdk/sources/libvorbis-1.3.7/lib/modes/residue_16.h |
---|
0,0 → 1,162 |
/******************************************************************** |
* * |
* This FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: toplevel residue templates 16/22kHz |
********************************************************************/ |
/***** residue backends *********************************************/ |
static const static_bookblock _resbook_16s_0={ |
{ |
{0}, |
{0,0,&_16c0_s_p1_0}, |
{0}, |
{0,0,&_16c0_s_p3_0}, |
{0,0,&_16c0_s_p4_0}, |
{0,0,&_16c0_s_p5_0}, |
{0,0,&_16c0_s_p6_0}, |
{&_16c0_s_p7_0,&_16c0_s_p7_1}, |
{&_16c0_s_p8_0,&_16c0_s_p8_1}, |
{&_16c0_s_p9_0,&_16c0_s_p9_1,&_16c0_s_p9_2} |
} |
}; |
static const static_bookblock _resbook_16s_1={ |
{ |
{0}, |
{0,0,&_16c1_s_p1_0}, |
{0}, |
{0,0,&_16c1_s_p3_0}, |
{0,0,&_16c1_s_p4_0}, |
{0,0,&_16c1_s_p5_0}, |
{0,0,&_16c1_s_p6_0}, |
{&_16c1_s_p7_0,&_16c1_s_p7_1}, |
{&_16c1_s_p8_0,&_16c1_s_p8_1}, |
{&_16c1_s_p9_0,&_16c1_s_p9_1,&_16c1_s_p9_2} |
} |
}; |
static const static_bookblock _resbook_16s_2={ |
{ |
{0}, |
{0,0,&_16c2_s_p1_0}, |
{0,0,&_16c2_s_p2_0}, |
{0,0,&_16c2_s_p3_0}, |
{0,0,&_16c2_s_p4_0}, |
{&_16c2_s_p5_0,&_16c2_s_p5_1}, |
{&_16c2_s_p6_0,&_16c2_s_p6_1}, |
{&_16c2_s_p7_0,&_16c2_s_p7_1}, |
{&_16c2_s_p8_0,&_16c2_s_p8_1}, |
{&_16c2_s_p9_0,&_16c2_s_p9_1,&_16c2_s_p9_2} |
} |
}; |
static const vorbis_residue_template _res_16s_0[]={ |
{2,0,32, &_residue_44_mid, |
&_huff_book__16c0_s_single,&_huff_book__16c0_s_single, |
&_resbook_16s_0,&_resbook_16s_0}, |
}; |
static const vorbis_residue_template _res_16s_1[]={ |
{2,0,32, &_residue_44_mid, |
&_huff_book__16c1_s_short,&_huff_book__16c1_s_short, |
&_resbook_16s_1,&_resbook_16s_1}, |
{2,0,32, &_residue_44_mid, |
&_huff_book__16c1_s_long,&_huff_book__16c1_s_long, |
&_resbook_16s_1,&_resbook_16s_1} |
}; |
static const vorbis_residue_template _res_16s_2[]={ |
{2,0,32, &_residue_44_high, |
&_huff_book__16c2_s_short,&_huff_book__16c2_s_short, |
&_resbook_16s_2,&_resbook_16s_2}, |
{2,0,32, &_residue_44_high, |
&_huff_book__16c2_s_long,&_huff_book__16c2_s_long, |
&_resbook_16s_2,&_resbook_16s_2} |
}; |
static const vorbis_mapping_template _mapres_template_16_stereo[3]={ |
{ _map_nominal, _res_16s_0 }, /* 0 */ |
{ _map_nominal, _res_16s_1 }, /* 1 */ |
{ _map_nominal, _res_16s_2 }, /* 2 */ |
}; |
static const static_bookblock _resbook_16u_0={ |
{ |
{0}, |
{0,0,&_16u0__p1_0}, |
{0,0,&_16u0__p2_0}, |
{0,0,&_16u0__p3_0}, |
{0,0,&_16u0__p4_0}, |
{0,0,&_16u0__p5_0}, |
{&_16u0__p6_0,&_16u0__p6_1}, |
{&_16u0__p7_0,&_16u0__p7_1,&_16u0__p7_2} |
} |
}; |
static const static_bookblock _resbook_16u_1={ |
{ |
{0}, |
{0,0,&_16u1__p1_0}, |
{0,0,&_16u1__p2_0}, |
{0,0,&_16u1__p3_0}, |
{0,0,&_16u1__p4_0}, |
{0,0,&_16u1__p5_0}, |
{0,0,&_16u1__p6_0}, |
{&_16u1__p7_0,&_16u1__p7_1}, |
{&_16u1__p8_0,&_16u1__p8_1}, |
{&_16u1__p9_0,&_16u1__p9_1,&_16u1__p9_2} |
} |
}; |
static const static_bookblock _resbook_16u_2={ |
{ |
{0}, |
{0,0,&_16u2_p1_0}, |
{0,0,&_16u2_p2_0}, |
{0,0,&_16u2_p3_0}, |
{0,0,&_16u2_p4_0}, |
{&_16u2_p5_0,&_16u2_p5_1}, |
{&_16u2_p6_0,&_16u2_p6_1}, |
{&_16u2_p7_0,&_16u2_p7_1}, |
{&_16u2_p8_0,&_16u2_p8_1}, |
{&_16u2_p9_0,&_16u2_p9_1,&_16u2_p9_2} |
} |
}; |
static const vorbis_residue_template _res_16u_0[]={ |
{1,0,32, &_residue_44_low_un, |
&_huff_book__16u0__single,&_huff_book__16u0__single, |
&_resbook_16u_0,&_resbook_16u_0}, |
}; |
static const vorbis_residue_template _res_16u_1[]={ |
{1,0,32, &_residue_44_mid_un, |
&_huff_book__16u1__short,&_huff_book__16u1__short, |
&_resbook_16u_1,&_resbook_16u_1}, |
{1,0,32, &_residue_44_mid_un, |
&_huff_book__16u1__long,&_huff_book__16u1__long, |
&_resbook_16u_1,&_resbook_16u_1} |
}; |
static const vorbis_residue_template _res_16u_2[]={ |
{1,0,32, &_residue_44_hi_un, |
&_huff_book__16u2__short,&_huff_book__16u2__short, |
&_resbook_16u_2,&_resbook_16u_2}, |
{1,0,32, &_residue_44_hi_un, |
&_huff_book__16u2__long,&_huff_book__16u2__long, |
&_resbook_16u_2,&_resbook_16u_2} |
}; |
static const vorbis_mapping_template _mapres_template_16_uncoupled[3]={ |
{ _map_nominal_u, _res_16u_0 }, /* 0 */ |
{ _map_nominal_u, _res_16u_1 }, /* 1 */ |
{ _map_nominal_u, _res_16u_2 }, /* 2 */ |
}; |
/contrib/sdk/sources/libvorbis-1.3.7/lib/modes/residue_44.h |
---|
0,0 → 1,291 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: toplevel residue templates for 32/44.1/48kHz |
********************************************************************/ |
#include "vorbis/codec.h" |
#include "backends.h" |
#include "books/coupled/res_books_stereo.h" |
/***** residue backends *********************************************/ |
static const vorbis_info_residue0 _residue_44_low={ |
0,-1, -1, 9,-1,-1, |
/* 0 1 2 3 4 5 6 7 */ |
{0}, |
{-1}, |
{ 0, 1, 2, 2, 4, 8, 16, 32}, |
{ 0, 0, 0,999, 4, 8, 16, 32}, |
}; |
static const vorbis_info_residue0 _residue_44_mid={ |
0,-1, -1, 10,-1,-1, |
/* 0 1 2 3 4 5 6 7 8 */ |
{0}, |
{-1}, |
{ 0, 1, 1, 2, 2, 4, 8, 16, 32}, |
{ 0, 0,999, 0,999, 4, 8, 16, 32}, |
}; |
static const vorbis_info_residue0 _residue_44_high={ |
0,-1, -1, 10,-1,-1, |
/* 0 1 2 3 4 5 6 7 8 */ |
{0}, |
{-1}, |
{ 0, 1, 2, 4, 8, 16, 32, 71,157}, |
{ 0, 1, 2, 3, 4, 8, 16, 71,157}, |
}; |
static const static_bookblock _resbook_44s_n1={ |
{ |
{0},{0,0,&_44cn1_s_p1_0},{0,0,&_44cn1_s_p2_0}, |
{0,0,&_44cn1_s_p3_0},{0,0,&_44cn1_s_p4_0},{0,0,&_44cn1_s_p5_0}, |
{&_44cn1_s_p6_0,&_44cn1_s_p6_1},{&_44cn1_s_p7_0,&_44cn1_s_p7_1}, |
{&_44cn1_s_p8_0,&_44cn1_s_p8_1,&_44cn1_s_p8_2} |
} |
}; |
static const static_bookblock _resbook_44sm_n1={ |
{ |
{0},{0,0,&_44cn1_sm_p1_0},{0,0,&_44cn1_sm_p2_0}, |
{0,0,&_44cn1_sm_p3_0},{0,0,&_44cn1_sm_p4_0},{0,0,&_44cn1_sm_p5_0}, |
{&_44cn1_sm_p6_0,&_44cn1_sm_p6_1},{&_44cn1_sm_p7_0,&_44cn1_sm_p7_1}, |
{&_44cn1_sm_p8_0,&_44cn1_sm_p8_1,&_44cn1_sm_p8_2} |
} |
}; |
static const static_bookblock _resbook_44s_0={ |
{ |
{0},{0,0,&_44c0_s_p1_0},{0,0,&_44c0_s_p2_0}, |
{0,0,&_44c0_s_p3_0},{0,0,&_44c0_s_p4_0},{0,0,&_44c0_s_p5_0}, |
{&_44c0_s_p6_0,&_44c0_s_p6_1},{&_44c0_s_p7_0,&_44c0_s_p7_1}, |
{&_44c0_s_p8_0,&_44c0_s_p8_1,&_44c0_s_p8_2} |
} |
}; |
static const static_bookblock _resbook_44sm_0={ |
{ |
{0},{0,0,&_44c0_sm_p1_0},{0,0,&_44c0_sm_p2_0}, |
{0,0,&_44c0_sm_p3_0},{0,0,&_44c0_sm_p4_0},{0,0,&_44c0_sm_p5_0}, |
{&_44c0_sm_p6_0,&_44c0_sm_p6_1},{&_44c0_sm_p7_0,&_44c0_sm_p7_1}, |
{&_44c0_sm_p8_0,&_44c0_sm_p8_1,&_44c0_sm_p8_2} |
} |
}; |
static const static_bookblock _resbook_44s_1={ |
{ |
{0},{0,0,&_44c1_s_p1_0},{0,0,&_44c1_s_p2_0}, |
{0,0,&_44c1_s_p3_0},{0,0,&_44c1_s_p4_0},{0,0,&_44c1_s_p5_0}, |
{&_44c1_s_p6_0,&_44c1_s_p6_1},{&_44c1_s_p7_0,&_44c1_s_p7_1}, |
{&_44c1_s_p8_0,&_44c1_s_p8_1,&_44c1_s_p8_2} |
} |
}; |
static const static_bookblock _resbook_44sm_1={ |
{ |
{0},{0,0,&_44c1_sm_p1_0},{0,0,&_44c1_sm_p2_0}, |
{0,0,&_44c1_sm_p3_0},{0,0,&_44c1_sm_p4_0},{0,0,&_44c1_sm_p5_0}, |
{&_44c1_sm_p6_0,&_44c1_sm_p6_1},{&_44c1_sm_p7_0,&_44c1_sm_p7_1}, |
{&_44c1_sm_p8_0,&_44c1_sm_p8_1,&_44c1_sm_p8_2} |
} |
}; |
static const static_bookblock _resbook_44s_2={ |
{ |
{0},{0,0,&_44c2_s_p1_0},{0,0,&_44c2_s_p2_0},{0,0,&_44c2_s_p3_0}, |
{0,0,&_44c2_s_p4_0},{0,0,&_44c2_s_p5_0},{0,0,&_44c2_s_p6_0}, |
{&_44c2_s_p7_0,&_44c2_s_p7_1},{&_44c2_s_p8_0,&_44c2_s_p8_1}, |
{&_44c2_s_p9_0,&_44c2_s_p9_1,&_44c2_s_p9_2} |
} |
}; |
static const static_bookblock _resbook_44s_3={ |
{ |
{0},{0,0,&_44c3_s_p1_0},{0,0,&_44c3_s_p2_0},{0,0,&_44c3_s_p3_0}, |
{0,0,&_44c3_s_p4_0},{0,0,&_44c3_s_p5_0},{0,0,&_44c3_s_p6_0}, |
{&_44c3_s_p7_0,&_44c3_s_p7_1},{&_44c3_s_p8_0,&_44c3_s_p8_1}, |
{&_44c3_s_p9_0,&_44c3_s_p9_1,&_44c3_s_p9_2} |
} |
}; |
static const static_bookblock _resbook_44s_4={ |
{ |
{0},{0,0,&_44c4_s_p1_0},{0,0,&_44c4_s_p2_0},{0,0,&_44c4_s_p3_0}, |
{0,0,&_44c4_s_p4_0},{0,0,&_44c4_s_p5_0},{0,0,&_44c4_s_p6_0}, |
{&_44c4_s_p7_0,&_44c4_s_p7_1},{&_44c4_s_p8_0,&_44c4_s_p8_1}, |
{&_44c4_s_p9_0,&_44c4_s_p9_1,&_44c4_s_p9_2} |
} |
}; |
static const static_bookblock _resbook_44s_5={ |
{ |
{0},{0,0,&_44c5_s_p1_0},{0,0,&_44c5_s_p2_0},{0,0,&_44c5_s_p3_0}, |
{0,0,&_44c5_s_p4_0},{0,0,&_44c5_s_p5_0},{0,0,&_44c5_s_p6_0}, |
{&_44c5_s_p7_0,&_44c5_s_p7_1},{&_44c5_s_p8_0,&_44c5_s_p8_1}, |
{&_44c5_s_p9_0,&_44c5_s_p9_1,&_44c5_s_p9_2} |
} |
}; |
static const static_bookblock _resbook_44s_6={ |
{ |
{0},{0,0,&_44c6_s_p1_0},{0,0,&_44c6_s_p2_0},{0,0,&_44c6_s_p3_0}, |
{0,0,&_44c6_s_p4_0}, |
{&_44c6_s_p5_0,&_44c6_s_p5_1}, |
{&_44c6_s_p6_0,&_44c6_s_p6_1}, |
{&_44c6_s_p7_0,&_44c6_s_p7_1}, |
{&_44c6_s_p8_0,&_44c6_s_p8_1}, |
{&_44c6_s_p9_0,&_44c6_s_p9_1,&_44c6_s_p9_2} |
} |
}; |
static const static_bookblock _resbook_44s_7={ |
{ |
{0},{0,0,&_44c7_s_p1_0},{0,0,&_44c7_s_p2_0},{0,0,&_44c7_s_p3_0}, |
{0,0,&_44c7_s_p4_0}, |
{&_44c7_s_p5_0,&_44c7_s_p5_1}, |
{&_44c7_s_p6_0,&_44c7_s_p6_1}, |
{&_44c7_s_p7_0,&_44c7_s_p7_1}, |
{&_44c7_s_p8_0,&_44c7_s_p8_1}, |
{&_44c7_s_p9_0,&_44c7_s_p9_1,&_44c7_s_p9_2} |
} |
}; |
static const static_bookblock _resbook_44s_8={ |
{ |
{0},{0,0,&_44c8_s_p1_0},{0,0,&_44c8_s_p2_0},{0,0,&_44c8_s_p3_0}, |
{0,0,&_44c8_s_p4_0}, |
{&_44c8_s_p5_0,&_44c8_s_p5_1}, |
{&_44c8_s_p6_0,&_44c8_s_p6_1}, |
{&_44c8_s_p7_0,&_44c8_s_p7_1}, |
{&_44c8_s_p8_0,&_44c8_s_p8_1}, |
{&_44c8_s_p9_0,&_44c8_s_p9_1,&_44c8_s_p9_2} |
} |
}; |
static const static_bookblock _resbook_44s_9={ |
{ |
{0},{0,0,&_44c9_s_p1_0},{0,0,&_44c9_s_p2_0},{0,0,&_44c9_s_p3_0}, |
{0,0,&_44c9_s_p4_0}, |
{&_44c9_s_p5_0,&_44c9_s_p5_1}, |
{&_44c9_s_p6_0,&_44c9_s_p6_1}, |
{&_44c9_s_p7_0,&_44c9_s_p7_1}, |
{&_44c9_s_p8_0,&_44c9_s_p8_1}, |
{&_44c9_s_p9_0,&_44c9_s_p9_1,&_44c9_s_p9_2} |
} |
}; |
static const vorbis_residue_template _res_44s_n1[]={ |
{2,0,32, &_residue_44_low, |
&_huff_book__44cn1_s_short,&_huff_book__44cn1_sm_short, |
&_resbook_44s_n1,&_resbook_44sm_n1}, |
{2,0,32, &_residue_44_low, |
&_huff_book__44cn1_s_long,&_huff_book__44cn1_sm_long, |
&_resbook_44s_n1,&_resbook_44sm_n1} |
}; |
static const vorbis_residue_template _res_44s_0[]={ |
{2,0,16, &_residue_44_low, |
&_huff_book__44c0_s_short,&_huff_book__44c0_sm_short, |
&_resbook_44s_0,&_resbook_44sm_0}, |
{2,0,32, &_residue_44_low, |
&_huff_book__44c0_s_long,&_huff_book__44c0_sm_long, |
&_resbook_44s_0,&_resbook_44sm_0} |
}; |
static const vorbis_residue_template _res_44s_1[]={ |
{2,0,16, &_residue_44_low, |
&_huff_book__44c1_s_short,&_huff_book__44c1_sm_short, |
&_resbook_44s_1,&_resbook_44sm_1}, |
{2,0,32, &_residue_44_low, |
&_huff_book__44c1_s_long,&_huff_book__44c1_sm_long, |
&_resbook_44s_1,&_resbook_44sm_1} |
}; |
static const vorbis_residue_template _res_44s_2[]={ |
{2,0,16, &_residue_44_mid, |
&_huff_book__44c2_s_short,&_huff_book__44c2_s_short, |
&_resbook_44s_2,&_resbook_44s_2}, |
{2,0,32, &_residue_44_mid, |
&_huff_book__44c2_s_long,&_huff_book__44c2_s_long, |
&_resbook_44s_2,&_resbook_44s_2} |
}; |
static const vorbis_residue_template _res_44s_3[]={ |
{2,0,16, &_residue_44_mid, |
&_huff_book__44c3_s_short,&_huff_book__44c3_s_short, |
&_resbook_44s_3,&_resbook_44s_3}, |
{2,0,32, &_residue_44_mid, |
&_huff_book__44c3_s_long,&_huff_book__44c3_s_long, |
&_resbook_44s_3,&_resbook_44s_3} |
}; |
static const vorbis_residue_template _res_44s_4[]={ |
{2,0,16, &_residue_44_mid, |
&_huff_book__44c4_s_short,&_huff_book__44c4_s_short, |
&_resbook_44s_4,&_resbook_44s_4}, |
{2,0,32, &_residue_44_mid, |
&_huff_book__44c4_s_long,&_huff_book__44c4_s_long, |
&_resbook_44s_4,&_resbook_44s_4} |
}; |
static const vorbis_residue_template _res_44s_5[]={ |
{2,0,16, &_residue_44_mid, |
&_huff_book__44c5_s_short,&_huff_book__44c5_s_short, |
&_resbook_44s_5,&_resbook_44s_5}, |
{2,0,32, &_residue_44_mid, |
&_huff_book__44c5_s_long,&_huff_book__44c5_s_long, |
&_resbook_44s_5,&_resbook_44s_5} |
}; |
static const vorbis_residue_template _res_44s_6[]={ |
{2,0,16, &_residue_44_high, |
&_huff_book__44c6_s_short,&_huff_book__44c6_s_short, |
&_resbook_44s_6,&_resbook_44s_6}, |
{2,0,32, &_residue_44_high, |
&_huff_book__44c6_s_long,&_huff_book__44c6_s_long, |
&_resbook_44s_6,&_resbook_44s_6} |
}; |
static const vorbis_residue_template _res_44s_7[]={ |
{2,0,16, &_residue_44_high, |
&_huff_book__44c7_s_short,&_huff_book__44c7_s_short, |
&_resbook_44s_7,&_resbook_44s_7}, |
{2,0,32, &_residue_44_high, |
&_huff_book__44c7_s_long,&_huff_book__44c7_s_long, |
&_resbook_44s_7,&_resbook_44s_7} |
}; |
static const vorbis_residue_template _res_44s_8[]={ |
{2,0,16, &_residue_44_high, |
&_huff_book__44c8_s_short,&_huff_book__44c8_s_short, |
&_resbook_44s_8,&_resbook_44s_8}, |
{2,0,32, &_residue_44_high, |
&_huff_book__44c8_s_long,&_huff_book__44c8_s_long, |
&_resbook_44s_8,&_resbook_44s_8} |
}; |
static const vorbis_residue_template _res_44s_9[]={ |
{2,0,16, &_residue_44_high, |
&_huff_book__44c9_s_short,&_huff_book__44c9_s_short, |
&_resbook_44s_9,&_resbook_44s_9}, |
{2,0,32, &_residue_44_high, |
&_huff_book__44c9_s_long,&_huff_book__44c9_s_long, |
&_resbook_44s_9,&_resbook_44s_9} |
}; |
static const vorbis_mapping_template _mapres_template_44_stereo[]={ |
{ _map_nominal, _res_44s_n1 }, /* -1 */ |
{ _map_nominal, _res_44s_0 }, /* 0 */ |
{ _map_nominal, _res_44s_1 }, /* 1 */ |
{ _map_nominal, _res_44s_2 }, /* 2 */ |
{ _map_nominal, _res_44s_3 }, /* 3 */ |
{ _map_nominal, _res_44s_4 }, /* 4 */ |
{ _map_nominal, _res_44s_5 }, /* 5 */ |
{ _map_nominal, _res_44s_6 }, /* 6 */ |
{ _map_nominal, _res_44s_7 }, /* 7 */ |
{ _map_nominal, _res_44s_8 }, /* 8 */ |
{ _map_nominal, _res_44s_9 }, /* 9 */ |
}; |
/contrib/sdk/sources/libvorbis-1.3.7/lib/modes/residue_44p51.h |
---|
0,0 → 1,450 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2010 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: toplevel residue templates for 32/44.1/48kHz uncoupled |
********************************************************************/ |
#include "vorbis/codec.h" |
#include "backends.h" |
#include "books/coupled/res_books_51.h" |
/***** residue backends *********************************************/ |
static const vorbis_info_residue0 _residue_44p_lo={ |
0,-1, -1, 7,-1,-1, |
/* 0 1 2 3 4 5 6 7 8 */ |
{0}, |
{-1}, |
{ 0, 1, 2, 7, 17, 31}, |
{ 0, 0, 99, 7, 17, 31}, |
}; |
static const vorbis_info_residue0 _residue_44p={ |
0,-1, -1, 8,-1,-1, |
/* 0 1 2 3 4 5 6 7 8 */ |
{0}, |
{-1}, |
{ 0, 1, 1, 2, 7, 17, 31}, |
{ 0, 0, 99, 99, 7, 17, 31}, |
}; |
static const vorbis_info_residue0 _residue_44p_hi={ |
0,-1, -1, 8,-1,-1, |
/* 0 1 2 3 4 5 6 7 8 */ |
{0}, |
{-1}, |
{ 0, 1, 2, 4, 7, 17, 31}, |
{ 0, 1, 2, 4, 7, 17, 31}, |
}; |
static const vorbis_info_residue0 _residue_44p_lfe={ |
0,-1, -1, 2,-1,-1, |
/* 0 1 2 3 4 5 6 7 8 */ |
{0}, |
{-1}, |
{ 32}, |
{ -1} |
}; |
static const static_bookblock _resbook_44p_n1={ |
{ |
{0}, |
{0,&_44pn1_p1_0}, |
{&_44pn1_p2_0,&_44pn1_p2_1,0}, |
{&_44pn1_p3_0,&_44pn1_p3_1,0}, |
{&_44pn1_p4_0,&_44pn1_p4_1,0}, |
{&_44pn1_p5_0,&_44pn1_p5_1,&_44pn1_p4_1}, |
{&_44pn1_p6_0,&_44pn1_p6_1,&_44pn1_p6_2}, |
} |
}; |
static const static_bookblock _resbook_44p_0={ |
{ |
{0}, |
{0,&_44p0_p1_0}, |
{&_44p0_p2_0,&_44p0_p2_1,0}, |
{&_44p0_p3_0,&_44p0_p3_1,0}, |
{&_44p0_p4_0,&_44p0_p4_1,0}, |
{&_44p0_p5_0,&_44p0_p5_1,&_44p0_p4_1}, |
{&_44p0_p6_0,&_44p0_p6_1,&_44p0_p6_2}, |
} |
}; |
static const static_bookblock _resbook_44p_1={ |
{ |
{0}, |
{0,&_44p1_p1_0}, |
{&_44p1_p2_0,&_44p1_p2_1,0}, |
{&_44p1_p3_0,&_44p1_p3_1,0}, |
{&_44p1_p4_0,&_44p1_p4_1,0}, |
{&_44p1_p5_0,&_44p1_p5_1,&_44p1_p4_1}, |
{&_44p1_p6_0,&_44p1_p6_1,&_44p1_p6_2}, |
} |
}; |
static const static_bookblock _resbook_44p_2={ |
{ |
{0}, |
{0,0,&_44p2_p1_0}, |
{0,&_44p2_p2_0,0}, |
{&_44p2_p3_0,&_44p2_p3_1,0}, |
{&_44p2_p4_0,&_44p2_p4_1,0}, |
{&_44p2_p5_0,&_44p2_p5_1,0}, |
{&_44p2_p6_0,&_44p2_p6_1,&_44p2_p5_1}, |
{&_44p2_p7_0,&_44p2_p7_1,&_44p2_p7_2,&_44p2_p7_3} |
} |
}; |
static const static_bookblock _resbook_44p_3={ |
{ |
{0}, |
{0,0,&_44p3_p1_0}, |
{0,&_44p3_p2_0,0}, |
{&_44p3_p3_0,&_44p3_p3_1,0}, |
{&_44p3_p4_0,&_44p3_p4_1,0}, |
{&_44p3_p5_0,&_44p3_p5_1,0}, |
{&_44p3_p6_0,&_44p3_p6_1,&_44p3_p5_1}, |
{&_44p3_p7_0,&_44p3_p7_1,&_44p3_p7_2,&_44p3_p7_3} |
} |
}; |
static const static_bookblock _resbook_44p_4={ |
{ |
{0}, |
{0,0,&_44p4_p1_0}, |
{0,&_44p4_p2_0,0}, |
{&_44p4_p3_0,&_44p4_p3_1,0}, |
{&_44p4_p4_0,&_44p4_p4_1,0}, |
{&_44p4_p5_0,&_44p4_p5_1,0}, |
{&_44p4_p6_0,&_44p4_p6_1,&_44p4_p5_1}, |
{&_44p4_p7_0,&_44p4_p7_1,&_44p4_p7_2,&_44p4_p7_3} |
} |
}; |
static const static_bookblock _resbook_44p_5={ |
{ |
{0}, |
{0,0,&_44p5_p1_0}, |
{0,&_44p5_p2_0,0}, |
{&_44p5_p3_0,&_44p5_p3_1,0}, |
{&_44p5_p4_0,&_44p5_p4_1,0}, |
{&_44p5_p5_0,&_44p5_p5_1,0}, |
{&_44p5_p6_0,&_44p5_p6_1,&_44p5_p5_1}, |
{&_44p5_p7_0,&_44p5_p7_1,&_44p5_p7_2,&_44p5_p7_3} |
} |
}; |
static const static_bookblock _resbook_44p_6={ |
{ |
{0}, |
{0,0,&_44p6_p1_0}, |
{0,&_44p6_p2_0,0}, |
{&_44p6_p3_0,&_44p6_p3_1,0}, |
{&_44p6_p4_0,&_44p6_p4_1,0}, |
{&_44p6_p5_0,&_44p6_p5_1,0}, |
{&_44p6_p6_0,&_44p6_p6_1,&_44p6_p5_1}, |
{&_44p6_p7_0,&_44p6_p7_1,&_44p6_p7_2,&_44p6_p7_3} |
} |
}; |
static const static_bookblock _resbook_44p_7={ |
{ |
{0}, |
{0,0,&_44p7_p1_0}, |
{0,&_44p7_p2_0,0}, |
{&_44p7_p3_0,&_44p7_p3_1,0}, |
{&_44p7_p4_0,&_44p7_p4_1,0}, |
{&_44p7_p5_0,&_44p7_p5_1,0}, |
{&_44p7_p6_0,&_44p7_p6_1,&_44p7_p5_1}, |
{&_44p7_p7_0,&_44p7_p7_1,&_44p7_p7_2,&_44p7_p7_3} |
} |
}; |
static const static_bookblock _resbook_44p_8={ |
{ |
{0}, |
{0,0,&_44p8_p1_0}, |
{0,&_44p8_p2_0,0}, |
{&_44p8_p3_0,&_44p8_p3_1,0}, |
{&_44p8_p4_0,&_44p8_p4_1,0}, |
{&_44p8_p5_0,&_44p8_p5_1,0}, |
{&_44p8_p6_0,&_44p8_p6_1,&_44p8_p5_1}, |
{&_44p8_p7_0,&_44p8_p7_1,&_44p8_p7_2,&_44p8_p7_3} |
} |
}; |
static const static_bookblock _resbook_44p_9={ |
{ |
{0}, |
{0,0,&_44p9_p1_0}, |
{0,&_44p9_p2_0,0}, |
{&_44p9_p3_0,&_44p9_p3_1,0}, |
{&_44p9_p4_0,&_44p9_p4_1,0}, |
{&_44p9_p5_0,&_44p9_p5_1,0}, |
{&_44p9_p6_0,&_44p9_p6_1,&_44p9_p5_1}, |
{&_44p9_p7_0,&_44p9_p7_1,&_44p9_p7_2,&_44p9_p7_3} |
} |
}; |
static const static_bookblock _resbook_44p_ln1={ |
{ |
{&_44pn1_l0_0,&_44pn1_l0_1,0}, |
{&_44pn1_l1_0,&_44pn1_p6_1,&_44pn1_p6_2}, |
} |
}; |
static const static_bookblock _resbook_44p_l0={ |
{ |
{&_44p0_l0_0,&_44p0_l0_1,0}, |
{&_44p0_l1_0,&_44p0_p6_1,&_44p0_p6_2}, |
} |
}; |
static const static_bookblock _resbook_44p_l1={ |
{ |
{&_44p1_l0_0,&_44p1_l0_1,0}, |
{&_44p1_l1_0,&_44p1_p6_1,&_44p1_p6_2}, |
} |
}; |
static const static_bookblock _resbook_44p_l2={ |
{ |
{&_44p2_l0_0,&_44p2_l0_1,0}, |
{&_44p2_l1_0,&_44p2_p7_2,&_44p2_p7_3}, |
} |
}; |
static const static_bookblock _resbook_44p_l3={ |
{ |
{&_44p3_l0_0,&_44p3_l0_1,0}, |
{&_44p3_l1_0,&_44p3_p7_2,&_44p3_p7_3}, |
} |
}; |
static const static_bookblock _resbook_44p_l4={ |
{ |
{&_44p4_l0_0,&_44p4_l0_1,0}, |
{&_44p4_l1_0,&_44p4_p7_2,&_44p4_p7_3}, |
} |
}; |
static const static_bookblock _resbook_44p_l5={ |
{ |
{&_44p5_l0_0,&_44p5_l0_1,0}, |
{&_44p5_l1_0,&_44p5_p7_2,&_44p5_p7_3}, |
} |
}; |
static const static_bookblock _resbook_44p_l6={ |
{ |
{&_44p6_l0_0,&_44p6_l0_1,0}, |
{&_44p6_l1_0,&_44p6_p7_2,&_44p6_p7_3}, |
} |
}; |
static const static_bookblock _resbook_44p_l7={ |
{ |
{&_44p7_l0_0,&_44p7_l0_1,0}, |
{&_44p7_l1_0,&_44p7_p7_2,&_44p7_p7_3}, |
} |
}; |
static const static_bookblock _resbook_44p_l8={ |
{ |
{&_44p8_l0_0,&_44p8_l0_1,0}, |
{&_44p8_l1_0,&_44p8_p7_2,&_44p8_p7_3}, |
} |
}; |
static const static_bookblock _resbook_44p_l9={ |
{ |
{&_44p9_l0_0,&_44p9_l0_1,0}, |
{&_44p9_l1_0,&_44p9_p7_2,&_44p9_p7_3}, |
} |
}; |
static const vorbis_info_mapping0 _map_nominal_51[2]={ |
{2, {0,0,0,0,0,1}, {0,2}, {0,2}, 4,{0,3,0,0},{2,4,1,3}}, |
{2, {0,0,0,0,0,1}, {1,2}, {1,2}, 4,{0,3,0,0},{2,4,1,3}} |
}; |
static const vorbis_info_mapping0 _map_nominal_51u[2]={ |
{2, {0,0,0,0,0,1}, {0,2}, {0,2}, 0,{0},{0}}, |
{2, {0,0,0,0,0,1}, {1,2}, {1,2}, 0,{0},{0}} |
}; |
static const vorbis_residue_template _res_44p51_n1[]={ |
{2,0,30, &_residue_44p_lo, |
&_huff_book__44pn1_short,&_huff_book__44pn1_short, |
&_resbook_44p_n1,&_resbook_44p_n1}, |
{2,0,30, &_residue_44p_lo, |
&_huff_book__44pn1_long,&_huff_book__44pn1_long, |
&_resbook_44p_n1,&_resbook_44p_n1}, |
{1,2,6, &_residue_44p_lfe, |
&_huff_book__44pn1_lfe,&_huff_book__44pn1_lfe, |
&_resbook_44p_ln1,&_resbook_44p_ln1} |
}; |
static const vorbis_residue_template _res_44p51_0[]={ |
{2,0,15, &_residue_44p_lo, |
&_huff_book__44p0_short,&_huff_book__44p0_short, |
&_resbook_44p_0,&_resbook_44p_0}, |
{2,0,30, &_residue_44p_lo, |
&_huff_book__44p0_long,&_huff_book__44p0_long, |
&_resbook_44p_0,&_resbook_44p_0}, |
{1,2,6, &_residue_44p_lfe, |
&_huff_book__44p0_lfe,&_huff_book__44p0_lfe, |
&_resbook_44p_l0,&_resbook_44p_l0} |
}; |
static const vorbis_residue_template _res_44p51_1[]={ |
{2,0,15, &_residue_44p_lo, |
&_huff_book__44p1_short,&_huff_book__44p1_short, |
&_resbook_44p_1,&_resbook_44p_1}, |
{2,0,30, &_residue_44p_lo, |
&_huff_book__44p1_long,&_huff_book__44p1_long, |
&_resbook_44p_1,&_resbook_44p_1}, |
{1,2,6, &_residue_44p_lfe, |
&_huff_book__44p1_lfe,&_huff_book__44p1_lfe, |
&_resbook_44p_l1,&_resbook_44p_l1} |
}; |
static const vorbis_residue_template _res_44p51_2[]={ |
{2,0,15, &_residue_44p, |
&_huff_book__44p2_short,&_huff_book__44p2_short, |
&_resbook_44p_2,&_resbook_44p_2}, |
{2,0,30, &_residue_44p, |
&_huff_book__44p2_long,&_huff_book__44p2_long, |
&_resbook_44p_2,&_resbook_44p_2}, |
{1,2,6, &_residue_44p_lfe, |
&_huff_book__44p2_lfe,&_huff_book__44p2_lfe, |
&_resbook_44p_l2,&_resbook_44p_l2} |
}; |
static const vorbis_residue_template _res_44p51_3[]={ |
{2,0,15, &_residue_44p, |
&_huff_book__44p3_short,&_huff_book__44p3_short, |
&_resbook_44p_3,&_resbook_44p_3}, |
{2,0,30, &_residue_44p, |
&_huff_book__44p3_long,&_huff_book__44p3_long, |
&_resbook_44p_3,&_resbook_44p_3}, |
{1,2,6, &_residue_44p_lfe, |
&_huff_book__44p3_lfe,&_huff_book__44p3_lfe, |
&_resbook_44p_l3,&_resbook_44p_l3} |
}; |
static const vorbis_residue_template _res_44p51_4[]={ |
{2,0,15, &_residue_44p, |
&_huff_book__44p4_short,&_huff_book__44p4_short, |
&_resbook_44p_4,&_resbook_44p_4}, |
{2,0,30, &_residue_44p, |
&_huff_book__44p4_long,&_huff_book__44p4_long, |
&_resbook_44p_4,&_resbook_44p_4}, |
{1,2,6, &_residue_44p_lfe, |
&_huff_book__44p4_lfe,&_huff_book__44p4_lfe, |
&_resbook_44p_l4,&_resbook_44p_l4} |
}; |
static const vorbis_residue_template _res_44p51_5[]={ |
{2,0,15, &_residue_44p_hi, |
&_huff_book__44p5_short,&_huff_book__44p5_short, |
&_resbook_44p_5,&_resbook_44p_5}, |
{2,0,30, &_residue_44p_hi, |
&_huff_book__44p5_long,&_huff_book__44p5_long, |
&_resbook_44p_5,&_resbook_44p_5}, |
{1,2,6, &_residue_44p_lfe, |
&_huff_book__44p5_lfe,&_huff_book__44p5_lfe, |
&_resbook_44p_l5,&_resbook_44p_l5} |
}; |
static const vorbis_residue_template _res_44p51_6[]={ |
{2,0,15, &_residue_44p_hi, |
&_huff_book__44p6_short,&_huff_book__44p6_short, |
&_resbook_44p_6,&_resbook_44p_6}, |
{2,0,30, &_residue_44p_hi, |
&_huff_book__44p6_long,&_huff_book__44p6_long, |
&_resbook_44p_6,&_resbook_44p_6}, |
{1,2,6, &_residue_44p_lfe, |
&_huff_book__44p6_lfe,&_huff_book__44p6_lfe, |
&_resbook_44p_l6,&_resbook_44p_l6} |
}; |
static const vorbis_residue_template _res_44p51_7[]={ |
{2,0,15, &_residue_44p_hi, |
&_huff_book__44p7_short,&_huff_book__44p7_short, |
&_resbook_44p_7,&_resbook_44p_7}, |
{2,0,30, &_residue_44p_hi, |
&_huff_book__44p7_long,&_huff_book__44p7_long, |
&_resbook_44p_7,&_resbook_44p_7}, |
{1,2,6, &_residue_44p_lfe, |
&_huff_book__44p6_lfe,&_huff_book__44p6_lfe, |
&_resbook_44p_l6,&_resbook_44p_l6} |
}; |
static const vorbis_residue_template _res_44p51_8[]={ |
{2,0,15, &_residue_44p_hi, |
&_huff_book__44p8_short,&_huff_book__44p8_short, |
&_resbook_44p_8,&_resbook_44p_8}, |
{2,0,30, &_residue_44p_hi, |
&_huff_book__44p8_long,&_huff_book__44p8_long, |
&_resbook_44p_8,&_resbook_44p_8}, |
{1,2,6, &_residue_44p_lfe, |
&_huff_book__44p6_lfe,&_huff_book__44p6_lfe, |
&_resbook_44p_l6,&_resbook_44p_l6} |
}; |
static const vorbis_residue_template _res_44p51_9[]={ |
{2,0,15, &_residue_44p_hi, |
&_huff_book__44p9_short,&_huff_book__44p9_short, |
&_resbook_44p_9,&_resbook_44p_9}, |
{2,0,30, &_residue_44p_hi, |
&_huff_book__44p9_long,&_huff_book__44p9_long, |
&_resbook_44p_9,&_resbook_44p_9}, |
{1,2,6, &_residue_44p_lfe, |
&_huff_book__44p6_lfe,&_huff_book__44p6_lfe, |
&_resbook_44p_l6,&_resbook_44p_l6} |
}; |
static const vorbis_mapping_template _mapres_template_44_51[]={ |
{ _map_nominal_51, _res_44p51_n1 }, /* -1 */ |
{ _map_nominal_51, _res_44p51_0 }, /* 0 */ |
{ _map_nominal_51, _res_44p51_1 }, /* 1 */ |
{ _map_nominal_51, _res_44p51_2 }, /* 2 */ |
{ _map_nominal_51, _res_44p51_3 }, /* 3 */ |
{ _map_nominal_51, _res_44p51_4 }, /* 4 */ |
{ _map_nominal_51u, _res_44p51_5 }, /* 5 */ |
{ _map_nominal_51u, _res_44p51_6 }, /* 6 */ |
{ _map_nominal_51u, _res_44p51_7 }, /* 7 */ |
{ _map_nominal_51u, _res_44p51_8 }, /* 8 */ |
{ _map_nominal_51u, _res_44p51_9 }, /* 9 */ |
}; |
/contrib/sdk/sources/libvorbis-1.3.7/lib/modes/residue_44u.h |
---|
0,0 → 1,317 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: toplevel residue templates for 32/44.1/48kHz uncoupled |
********************************************************************/ |
#include "vorbis/codec.h" |
#include "backends.h" |
#include "books/uncoupled/res_books_uncoupled.h" |
/***** residue backends *********************************************/ |
static const vorbis_info_residue0 _residue_44_low_un={ |
0,-1, -1, 8,-1,-1, |
{0}, |
{-1}, |
{ 0, 1, 1, 2, 2, 4, 28}, |
{ -1, 25, -1, 45, -1, -1, -1} |
}; |
static const vorbis_info_residue0 _residue_44_mid_un={ |
0,-1, -1, 10,-1,-1, |
/* 0 1 2 3 4 5 6 7 8 9 */ |
{0}, |
{-1}, |
{ 0, 1, 1, 2, 2, 4, 4, 16, 60}, |
{ -1, 30, -1, 50, -1, 80, -1, -1, -1} |
}; |
static const vorbis_info_residue0 _residue_44_hi_un={ |
0,-1, -1, 10,-1,-1, |
/* 0 1 2 3 4 5 6 7 8 9 */ |
{0}, |
{-1}, |
{ 0, 1, 2, 4, 8, 16, 32, 71,157}, |
{ -1, -1, -1, -1, -1, -1, -1, -1, -1} |
}; |
/* mapping conventions: |
only one submap (this would change for efficient 5.1 support for example)*/ |
/* Four psychoacoustic profiles are used, one for each blocktype */ |
static const vorbis_info_mapping0 _map_nominal_u[2]={ |
{1, {0,0,0,0,0,0}, {0}, {0}, 0,{0},{0}}, |
{1, {0,0,0,0,0,0}, {1}, {1}, 0,{0},{0}} |
}; |
static const static_bookblock _resbook_44u_n1={ |
{ |
{0}, |
{0,0,&_44un1__p1_0}, |
{0,0,&_44un1__p2_0}, |
{0,0,&_44un1__p3_0}, |
{0,0,&_44un1__p4_0}, |
{0,0,&_44un1__p5_0}, |
{&_44un1__p6_0,&_44un1__p6_1}, |
{&_44un1__p7_0,&_44un1__p7_1,&_44un1__p7_2} |
} |
}; |
static const static_bookblock _resbook_44u_0={ |
{ |
{0}, |
{0,0,&_44u0__p1_0}, |
{0,0,&_44u0__p2_0}, |
{0,0,&_44u0__p3_0}, |
{0,0,&_44u0__p4_0}, |
{0,0,&_44u0__p5_0}, |
{&_44u0__p6_0,&_44u0__p6_1}, |
{&_44u0__p7_0,&_44u0__p7_1,&_44u0__p7_2} |
} |
}; |
static const static_bookblock _resbook_44u_1={ |
{ |
{0}, |
{0,0,&_44u1__p1_0}, |
{0,0,&_44u1__p2_0}, |
{0,0,&_44u1__p3_0}, |
{0,0,&_44u1__p4_0}, |
{0,0,&_44u1__p5_0}, |
{&_44u1__p6_0,&_44u1__p6_1}, |
{&_44u1__p7_0,&_44u1__p7_1,&_44u1__p7_2} |
} |
}; |
static const static_bookblock _resbook_44u_2={ |
{ |
{0}, |
{0,0,&_44u2__p1_0}, |
{0,0,&_44u2__p2_0}, |
{0,0,&_44u2__p3_0}, |
{0,0,&_44u2__p4_0}, |
{0,0,&_44u2__p5_0}, |
{&_44u2__p6_0,&_44u2__p6_1}, |
{&_44u2__p7_0,&_44u2__p7_1,&_44u2__p7_2} |
} |
}; |
static const static_bookblock _resbook_44u_3={ |
{ |
{0}, |
{0,0,&_44u3__p1_0}, |
{0,0,&_44u3__p2_0}, |
{0,0,&_44u3__p3_0}, |
{0,0,&_44u3__p4_0}, |
{0,0,&_44u3__p5_0}, |
{&_44u3__p6_0,&_44u3__p6_1}, |
{&_44u3__p7_0,&_44u3__p7_1,&_44u3__p7_2} |
} |
}; |
static const static_bookblock _resbook_44u_4={ |
{ |
{0}, |
{0,0,&_44u4__p1_0}, |
{0,0,&_44u4__p2_0}, |
{0,0,&_44u4__p3_0}, |
{0,0,&_44u4__p4_0}, |
{0,0,&_44u4__p5_0}, |
{&_44u4__p6_0,&_44u4__p6_1}, |
{&_44u4__p7_0,&_44u4__p7_1,&_44u4__p7_2} |
} |
}; |
static const static_bookblock _resbook_44u_5={ |
{ |
{0}, |
{0,0,&_44u5__p1_0}, |
{0,0,&_44u5__p2_0}, |
{0,0,&_44u5__p3_0}, |
{0,0,&_44u5__p4_0}, |
{0,0,&_44u5__p5_0}, |
{0,0,&_44u5__p6_0}, |
{&_44u5__p7_0,&_44u5__p7_1}, |
{&_44u5__p8_0,&_44u5__p8_1}, |
{&_44u5__p9_0,&_44u5__p9_1,&_44u5__p9_2} |
} |
}; |
static const static_bookblock _resbook_44u_6={ |
{ |
{0}, |
{0,0,&_44u6__p1_0}, |
{0,0,&_44u6__p2_0}, |
{0,0,&_44u6__p3_0}, |
{0,0,&_44u6__p4_0}, |
{0,0,&_44u6__p5_0}, |
{0,0,&_44u6__p6_0}, |
{&_44u6__p7_0,&_44u6__p7_1}, |
{&_44u6__p8_0,&_44u6__p8_1}, |
{&_44u6__p9_0,&_44u6__p9_1,&_44u6__p9_2} |
} |
}; |
static const static_bookblock _resbook_44u_7={ |
{ |
{0}, |
{0,0,&_44u7__p1_0}, |
{0,0,&_44u7__p2_0}, |
{0,0,&_44u7__p3_0}, |
{0,0,&_44u7__p4_0}, |
{0,0,&_44u7__p5_0}, |
{0,0,&_44u7__p6_0}, |
{&_44u7__p7_0,&_44u7__p7_1}, |
{&_44u7__p8_0,&_44u7__p8_1}, |
{&_44u7__p9_0,&_44u7__p9_1,&_44u7__p9_2} |
} |
}; |
static const static_bookblock _resbook_44u_8={ |
{ |
{0}, |
{0,0,&_44u8_p1_0}, |
{0,0,&_44u8_p2_0}, |
{0,0,&_44u8_p3_0}, |
{0,0,&_44u8_p4_0}, |
{&_44u8_p5_0,&_44u8_p5_1}, |
{&_44u8_p6_0,&_44u8_p6_1}, |
{&_44u8_p7_0,&_44u8_p7_1}, |
{&_44u8_p8_0,&_44u8_p8_1}, |
{&_44u8_p9_0,&_44u8_p9_1,&_44u8_p9_2} |
} |
}; |
static const static_bookblock _resbook_44u_9={ |
{ |
{0}, |
{0,0,&_44u9_p1_0}, |
{0,0,&_44u9_p2_0}, |
{0,0,&_44u9_p3_0}, |
{0,0,&_44u9_p4_0}, |
{&_44u9_p5_0,&_44u9_p5_1}, |
{&_44u9_p6_0,&_44u9_p6_1}, |
{&_44u9_p7_0,&_44u9_p7_1}, |
{&_44u9_p8_0,&_44u9_p8_1}, |
{&_44u9_p9_0,&_44u9_p9_1,&_44u9_p9_2} |
} |
}; |
static const vorbis_residue_template _res_44u_n1[]={ |
{1,0,32, &_residue_44_low_un, |
&_huff_book__44un1__short,&_huff_book__44un1__short, |
&_resbook_44u_n1,&_resbook_44u_n1}, |
{1,0,32, &_residue_44_low_un, |
&_huff_book__44un1__long,&_huff_book__44un1__long, |
&_resbook_44u_n1,&_resbook_44u_n1} |
}; |
static const vorbis_residue_template _res_44u_0[]={ |
{1,0,16, &_residue_44_low_un, |
&_huff_book__44u0__short,&_huff_book__44u0__short, |
&_resbook_44u_0,&_resbook_44u_0}, |
{1,0,32, &_residue_44_low_un, |
&_huff_book__44u0__long,&_huff_book__44u0__long, |
&_resbook_44u_0,&_resbook_44u_0} |
}; |
static const vorbis_residue_template _res_44u_1[]={ |
{1,0,16, &_residue_44_low_un, |
&_huff_book__44u1__short,&_huff_book__44u1__short, |
&_resbook_44u_1,&_resbook_44u_1}, |
{1,0,32, &_residue_44_low_un, |
&_huff_book__44u1__long,&_huff_book__44u1__long, |
&_resbook_44u_1,&_resbook_44u_1} |
}; |
static const vorbis_residue_template _res_44u_2[]={ |
{1,0,16, &_residue_44_low_un, |
&_huff_book__44u2__short,&_huff_book__44u2__short, |
&_resbook_44u_2,&_resbook_44u_2}, |
{1,0,32, &_residue_44_low_un, |
&_huff_book__44u2__long,&_huff_book__44u2__long, |
&_resbook_44u_2,&_resbook_44u_2} |
}; |
static const vorbis_residue_template _res_44u_3[]={ |
{1,0,16, &_residue_44_low_un, |
&_huff_book__44u3__short,&_huff_book__44u3__short, |
&_resbook_44u_3,&_resbook_44u_3}, |
{1,0,32, &_residue_44_low_un, |
&_huff_book__44u3__long,&_huff_book__44u3__long, |
&_resbook_44u_3,&_resbook_44u_3} |
}; |
static const vorbis_residue_template _res_44u_4[]={ |
{1,0,16, &_residue_44_low_un, |
&_huff_book__44u4__short,&_huff_book__44u4__short, |
&_resbook_44u_4,&_resbook_44u_4}, |
{1,0,32, &_residue_44_low_un, |
&_huff_book__44u4__long,&_huff_book__44u4__long, |
&_resbook_44u_4,&_resbook_44u_4} |
}; |
static const vorbis_residue_template _res_44u_5[]={ |
{1,0,16, &_residue_44_mid_un, |
&_huff_book__44u5__short,&_huff_book__44u5__short, |
&_resbook_44u_5,&_resbook_44u_5}, |
{1,0,32, &_residue_44_mid_un, |
&_huff_book__44u5__long,&_huff_book__44u5__long, |
&_resbook_44u_5,&_resbook_44u_5} |
}; |
static const vorbis_residue_template _res_44u_6[]={ |
{1,0,16, &_residue_44_mid_un, |
&_huff_book__44u6__short,&_huff_book__44u6__short, |
&_resbook_44u_6,&_resbook_44u_6}, |
{1,0,32, &_residue_44_mid_un, |
&_huff_book__44u6__long,&_huff_book__44u6__long, |
&_resbook_44u_6,&_resbook_44u_6} |
}; |
static const vorbis_residue_template _res_44u_7[]={ |
{1,0,16, &_residue_44_mid_un, |
&_huff_book__44u7__short,&_huff_book__44u7__short, |
&_resbook_44u_7,&_resbook_44u_7}, |
{1,0,32, &_residue_44_mid_un, |
&_huff_book__44u7__long,&_huff_book__44u7__long, |
&_resbook_44u_7,&_resbook_44u_7} |
}; |
static const vorbis_residue_template _res_44u_8[]={ |
{1,0,16, &_residue_44_hi_un, |
&_huff_book__44u8__short,&_huff_book__44u8__short, |
&_resbook_44u_8,&_resbook_44u_8}, |
{1,0,32, &_residue_44_hi_un, |
&_huff_book__44u8__long,&_huff_book__44u8__long, |
&_resbook_44u_8,&_resbook_44u_8} |
}; |
static const vorbis_residue_template _res_44u_9[]={ |
{1,0,16, &_residue_44_hi_un, |
&_huff_book__44u9__short,&_huff_book__44u9__short, |
&_resbook_44u_9,&_resbook_44u_9}, |
{1,0,32, &_residue_44_hi_un, |
&_huff_book__44u9__long,&_huff_book__44u9__long, |
&_resbook_44u_9,&_resbook_44u_9} |
}; |
static const vorbis_mapping_template _mapres_template_44_uncoupled[]={ |
{ _map_nominal_u, _res_44u_n1 }, /* -1 */ |
{ _map_nominal_u, _res_44u_0 }, /* 0 */ |
{ _map_nominal_u, _res_44u_1 }, /* 1 */ |
{ _map_nominal_u, _res_44u_2 }, /* 2 */ |
{ _map_nominal_u, _res_44u_3 }, /* 3 */ |
{ _map_nominal_u, _res_44u_4 }, /* 4 */ |
{ _map_nominal_u, _res_44u_5 }, /* 5 */ |
{ _map_nominal_u, _res_44u_6 }, /* 6 */ |
{ _map_nominal_u, _res_44u_7 }, /* 7 */ |
{ _map_nominal_u, _res_44u_8 }, /* 8 */ |
{ _map_nominal_u, _res_44u_9 }, /* 9 */ |
}; |
/contrib/sdk/sources/libvorbis-1.3.7/lib/modes/residue_8.h |
---|
0,0 → 1,108 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: toplevel residue templates 8/11kHz |
********************************************************************/ |
#include "vorbis/codec.h" |
#include "backends.h" |
/***** residue backends *********************************************/ |
static const static_bookblock _resbook_8s_0={ |
{ |
{0}, |
{0,0,&_8c0_s_p1_0}, |
{0}, |
{0,0,&_8c0_s_p3_0}, |
{0,0,&_8c0_s_p4_0}, |
{0,0,&_8c0_s_p5_0}, |
{0,0,&_8c0_s_p6_0}, |
{&_8c0_s_p7_0,&_8c0_s_p7_1}, |
{&_8c0_s_p8_0,&_8c0_s_p8_1}, |
{&_8c0_s_p9_0,&_8c0_s_p9_1,&_8c0_s_p9_2} |
} |
}; |
static const static_bookblock _resbook_8s_1={ |
{ |
{0}, |
{0,0,&_8c1_s_p1_0}, |
{0}, |
{0,0,&_8c1_s_p3_0}, |
{0,0,&_8c1_s_p4_0}, |
{0,0,&_8c1_s_p5_0}, |
{0,0,&_8c1_s_p6_0}, |
{&_8c1_s_p7_0,&_8c1_s_p7_1}, |
{&_8c1_s_p8_0,&_8c1_s_p8_1}, |
{&_8c1_s_p9_0,&_8c1_s_p9_1,&_8c1_s_p9_2} |
} |
}; |
static const vorbis_residue_template _res_8s_0[]={ |
{2,0,32, &_residue_44_mid, |
&_huff_book__8c0_s_single,&_huff_book__8c0_s_single, |
&_resbook_8s_0,&_resbook_8s_0}, |
}; |
static const vorbis_residue_template _res_8s_1[]={ |
{2,0,32, &_residue_44_mid, |
&_huff_book__8c1_s_single,&_huff_book__8c1_s_single, |
&_resbook_8s_1,&_resbook_8s_1}, |
}; |
static const vorbis_mapping_template _mapres_template_8_stereo[2]={ |
{ _map_nominal, _res_8s_0 }, /* 0 */ |
{ _map_nominal, _res_8s_1 }, /* 1 */ |
}; |
static const static_bookblock _resbook_8u_0={ |
{ |
{0}, |
{0,0,&_8u0__p1_0}, |
{0,0,&_8u0__p2_0}, |
{0,0,&_8u0__p3_0}, |
{0,0,&_8u0__p4_0}, |
{0,0,&_8u0__p5_0}, |
{&_8u0__p6_0,&_8u0__p6_1}, |
{&_8u0__p7_0,&_8u0__p7_1,&_8u0__p7_2} |
} |
}; |
static const static_bookblock _resbook_8u_1={ |
{ |
{0}, |
{0,0,&_8u1__p1_0}, |
{0,0,&_8u1__p2_0}, |
{0,0,&_8u1__p3_0}, |
{0,0,&_8u1__p4_0}, |
{0,0,&_8u1__p5_0}, |
{0,0,&_8u1__p6_0}, |
{&_8u1__p7_0,&_8u1__p7_1}, |
{&_8u1__p8_0,&_8u1__p8_1}, |
{&_8u1__p9_0,&_8u1__p9_1,&_8u1__p9_2} |
} |
}; |
static const vorbis_residue_template _res_8u_0[]={ |
{1,0,32, &_residue_44_low_un, |
&_huff_book__8u0__single,&_huff_book__8u0__single, |
&_resbook_8u_0,&_resbook_8u_0}, |
}; |
static const vorbis_residue_template _res_8u_1[]={ |
{1,0,32, &_residue_44_mid_un, |
&_huff_book__8u1__single,&_huff_book__8u1__single, |
&_resbook_8u_1,&_resbook_8u_1}, |
}; |
static const vorbis_mapping_template _mapres_template_8_uncoupled[2]={ |
{ _map_nominal_u, _res_8u_0 }, /* 0 */ |
{ _map_nominal_u, _res_8u_1 }, /* 1 */ |
}; |
/contrib/sdk/sources/libvorbis-1.3.7/lib/modes/setup_11.h |
---|
0,0 → 1,142 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: 11kHz settings |
********************************************************************/ |
#include "psych_11.h" |
static const int blocksize_11[2]={ |
512,512 |
}; |
static const int _floor_mapping_11a[]={ |
6,6 |
}; |
static const int *_floor_mapping_11[]={ |
_floor_mapping_11a |
}; |
static const double rate_mapping_11[3]={ |
8000.,13000.,44000., |
}; |
static const double rate_mapping_11_uncoupled[3]={ |
12000.,20000.,50000., |
}; |
static const double quality_mapping_11[3]={ |
-.1,.0,1. |
}; |
static const ve_setup_data_template ve_setup_11_stereo={ |
2, |
rate_mapping_11, |
quality_mapping_11, |
2, |
9000, |
15000, |
blocksize_11, |
blocksize_11, |
_psy_tone_masteratt_11, |
_psy_tone_0dB, |
_psy_tone_suppress, |
_vp_tonemask_adj_11, |
NULL, |
_vp_tonemask_adj_11, |
_psy_noiseguards_8, |
_psy_noisebias_11, |
_psy_noisebias_11, |
NULL, |
NULL, |
_psy_noise_suppress, |
_psy_compand_8, |
_psy_compand_8_mapping, |
NULL, |
{_noise_start_8,_noise_start_8}, |
{_noise_part_8,_noise_part_8}, |
_noise_thresh_11, |
_psy_ath_floater_8, |
_psy_ath_abs_8, |
_psy_lowpass_11, |
_psy_global_44, |
_global_mapping_8, |
_psy_stereo_modes_8, |
_floor_books, |
_floor, |
1, |
_floor_mapping_11, |
_mapres_template_8_stereo |
}; |
static const ve_setup_data_template ve_setup_11_uncoupled={ |
2, |
rate_mapping_11_uncoupled, |
quality_mapping_11, |
-1, |
9000, |
15000, |
blocksize_11, |
blocksize_11, |
_psy_tone_masteratt_11, |
_psy_tone_0dB, |
_psy_tone_suppress, |
_vp_tonemask_adj_11, |
NULL, |
_vp_tonemask_adj_11, |
_psy_noiseguards_8, |
_psy_noisebias_11, |
_psy_noisebias_11, |
NULL, |
NULL, |
_psy_noise_suppress, |
_psy_compand_8, |
_psy_compand_8_mapping, |
NULL, |
{_noise_start_8,_noise_start_8}, |
{_noise_part_8,_noise_part_8}, |
_noise_thresh_11, |
_psy_ath_floater_8, |
_psy_ath_abs_8, |
_psy_lowpass_11, |
_psy_global_44, |
_global_mapping_8, |
_psy_stereo_modes_8, |
_floor_books, |
_floor, |
1, |
_floor_mapping_11, |
_mapres_template_8_uncoupled |
}; |
/contrib/sdk/sources/libvorbis-1.3.7/lib/modes/setup_16.h |
---|
0,0 → 1,152 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: 16kHz settings |
********************************************************************/ |
#include "psych_16.h" |
#include "residue_16.h" |
static const int blocksize_16_short[3]={ |
1024,512,512 |
}; |
static const int blocksize_16_long[3]={ |
1024,1024,1024 |
}; |
static const int _floor_mapping_16a[]={ |
9,3,3 |
}; |
static const int _floor_mapping_16b[]={ |
9,9,9 |
}; |
static const int *_floor_mapping_16[]={ |
_floor_mapping_16a, |
_floor_mapping_16b |
}; |
static const double rate_mapping_16[4]={ |
12000.,20000.,44000.,86000. |
}; |
static const double rate_mapping_16_uncoupled[4]={ |
16000.,28000.,64000.,100000. |
}; |
static const double _global_mapping_16[4]={ 1., 2., 3., 4. }; |
static const double quality_mapping_16[4]={ -.1,.05,.5,1. }; |
static const double _psy_compand_16_mapping[4]={ 0., .8, 1., 1.}; |
static const ve_setup_data_template ve_setup_16_stereo={ |
3, |
rate_mapping_16, |
quality_mapping_16, |
2, |
15000, |
19000, |
blocksize_16_short, |
blocksize_16_long, |
_psy_tone_masteratt_16, |
_psy_tone_0dB, |
_psy_tone_suppress, |
_vp_tonemask_adj_16, |
_vp_tonemask_adj_16, |
_vp_tonemask_adj_16, |
_psy_noiseguards_16, |
_psy_noisebias_16_impulse, |
_psy_noisebias_16_short, |
_psy_noisebias_16_short, |
_psy_noisebias_16, |
_psy_noise_suppress, |
_psy_compand_8, |
_psy_compand_16_mapping, |
_psy_compand_16_mapping, |
{_noise_start_16,_noise_start_16}, |
{ _noise_part_16, _noise_part_16}, |
_noise_thresh_16, |
_psy_ath_floater_16, |
_psy_ath_abs_16, |
_psy_lowpass_16, |
_psy_global_44, |
_global_mapping_16, |
_psy_stereo_modes_16, |
_floor_books, |
_floor, |
2, |
_floor_mapping_16, |
_mapres_template_16_stereo |
}; |
static const ve_setup_data_template ve_setup_16_uncoupled={ |
3, |
rate_mapping_16_uncoupled, |
quality_mapping_16, |
-1, |
15000, |
19000, |
blocksize_16_short, |
blocksize_16_long, |
_psy_tone_masteratt_16, |
_psy_tone_0dB, |
_psy_tone_suppress, |
_vp_tonemask_adj_16, |
_vp_tonemask_adj_16, |
_vp_tonemask_adj_16, |
_psy_noiseguards_16, |
_psy_noisebias_16_impulse, |
_psy_noisebias_16_short, |
_psy_noisebias_16_short, |
_psy_noisebias_16, |
_psy_noise_suppress, |
_psy_compand_8, |
_psy_compand_16_mapping, |
_psy_compand_16_mapping, |
{_noise_start_16,_noise_start_16}, |
{ _noise_part_16, _noise_part_16}, |
_noise_thresh_16, |
_psy_ath_floater_16, |
_psy_ath_abs_16, |
_psy_lowpass_16, |
_psy_global_44, |
_global_mapping_16, |
_psy_stereo_modes_16, |
_floor_books, |
_floor, |
2, |
_floor_mapping_16, |
_mapres_template_16_uncoupled |
}; |
/contrib/sdk/sources/libvorbis-1.3.7/lib/modes/setup_22.h |
---|
0,0 → 1,127 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: 22kHz settings |
********************************************************************/ |
static const double rate_mapping_22[4]={ |
15000.,20000.,44000.,86000. |
}; |
static const double rate_mapping_22_uncoupled[4]={ |
16000.,28000.,50000.,90000. |
}; |
static const double _psy_lowpass_22[4]={9.5,11.,30.,99.}; |
static const ve_setup_data_template ve_setup_22_stereo={ |
3, |
rate_mapping_22, |
quality_mapping_16, |
2, |
19000, |
26000, |
blocksize_16_short, |
blocksize_16_long, |
_psy_tone_masteratt_16, |
_psy_tone_0dB, |
_psy_tone_suppress, |
_vp_tonemask_adj_16, |
_vp_tonemask_adj_16, |
_vp_tonemask_adj_16, |
_psy_noiseguards_16, |
_psy_noisebias_16_impulse, |
_psy_noisebias_16_short, |
_psy_noisebias_16_short, |
_psy_noisebias_16, |
_psy_noise_suppress, |
_psy_compand_8, |
_psy_compand_16_mapping, |
_psy_compand_16_mapping, |
{_noise_start_16,_noise_start_16}, |
{ _noise_part_16, _noise_part_16}, |
_noise_thresh_16, |
_psy_ath_floater_16, |
_psy_ath_abs_16, |
_psy_lowpass_22, |
_psy_global_44, |
_global_mapping_16, |
_psy_stereo_modes_16, |
_floor_books, |
_floor, |
2, |
_floor_mapping_16, |
_mapres_template_16_stereo |
}; |
static const ve_setup_data_template ve_setup_22_uncoupled={ |
3, |
rate_mapping_22_uncoupled, |
quality_mapping_16, |
-1, |
19000, |
26000, |
blocksize_16_short, |
blocksize_16_long, |
_psy_tone_masteratt_16, |
_psy_tone_0dB, |
_psy_tone_suppress, |
_vp_tonemask_adj_16, |
_vp_tonemask_adj_16, |
_vp_tonemask_adj_16, |
_psy_noiseguards_16, |
_psy_noisebias_16_impulse, |
_psy_noisebias_16_short, |
_psy_noisebias_16_short, |
_psy_noisebias_16, |
_psy_noise_suppress, |
_psy_compand_8, |
_psy_compand_16_mapping, |
_psy_compand_16_mapping, |
{_noise_start_16,_noise_start_16}, |
{ _noise_part_16, _noise_part_16}, |
_noise_thresh_16, |
_psy_ath_floater_16, |
_psy_ath_abs_16, |
_psy_lowpass_22, |
_psy_global_44, |
_global_mapping_16, |
_psy_stereo_modes_16, |
_floor_books, |
_floor, |
2, |
_floor_mapping_16, |
_mapres_template_16_uncoupled |
}; |
/contrib/sdk/sources/libvorbis-1.3.7/lib/modes/setup_32.h |
---|
0,0 → 1,131 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: toplevel settings for 32kHz |
********************************************************************/ |
static const double rate_mapping_32[12]={ |
18000.,28000.,35000.,45000.,56000.,60000., |
75000.,90000.,100000.,115000.,150000.,190000., |
}; |
static const double rate_mapping_32_un[12]={ |
30000.,42000.,52000.,64000.,72000.,78000., |
86000.,92000.,110000.,120000.,140000.,190000., |
}; |
static const double _psy_lowpass_32[12]={ |
12.3,13.,13.,14.,15.,99.,99.,99.,99.,99.,99.,99. |
}; |
static const ve_setup_data_template ve_setup_32_stereo={ |
11, |
rate_mapping_32, |
quality_mapping_44, |
2, |
26000, |
40000, |
blocksize_short_44, |
blocksize_long_44, |
_psy_tone_masteratt_44, |
_psy_tone_0dB, |
_psy_tone_suppress, |
_vp_tonemask_adj_otherblock, |
_vp_tonemask_adj_longblock, |
_vp_tonemask_adj_otherblock, |
_psy_noiseguards_44, |
_psy_noisebias_impulse, |
_psy_noisebias_padding, |
_psy_noisebias_trans, |
_psy_noisebias_long, |
_psy_noise_suppress, |
_psy_compand_44, |
_psy_compand_short_mapping, |
_psy_compand_long_mapping, |
{_noise_start_short_44,_noise_start_long_44}, |
{_noise_part_short_44,_noise_part_long_44}, |
_noise_thresh_44, |
_psy_ath_floater, |
_psy_ath_abs, |
_psy_lowpass_32, |
_psy_global_44, |
_global_mapping_44, |
_psy_stereo_modes_44, |
_floor_books, |
_floor, |
2, |
_floor_mapping_44, |
_mapres_template_44_stereo |
}; |
static const ve_setup_data_template ve_setup_32_uncoupled={ |
11, |
rate_mapping_32_un, |
quality_mapping_44, |
-1, |
26000, |
40000, |
blocksize_short_44, |
blocksize_long_44, |
_psy_tone_masteratt_44, |
_psy_tone_0dB, |
_psy_tone_suppress, |
_vp_tonemask_adj_otherblock, |
_vp_tonemask_adj_longblock, |
_vp_tonemask_adj_otherblock, |
_psy_noiseguards_44, |
_psy_noisebias_impulse, |
_psy_noisebias_padding, |
_psy_noisebias_trans, |
_psy_noisebias_long, |
_psy_noise_suppress, |
_psy_compand_44, |
_psy_compand_short_mapping, |
_psy_compand_long_mapping, |
{_noise_start_short_44,_noise_start_long_44}, |
{_noise_part_short_44,_noise_part_long_44}, |
_noise_thresh_44, |
_psy_ath_floater, |
_psy_ath_abs, |
_psy_lowpass_32, |
_psy_global_44, |
_global_mapping_44, |
NULL, |
_floor_books, |
_floor, |
2, |
_floor_mapping_44, |
_mapres_template_44_uncoupled |
}; |
/contrib/sdk/sources/libvorbis-1.3.7/lib/modes/setup_44.h |
---|
0,0 → 1,116 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: toplevel settings for 44.1/48kHz |
********************************************************************/ |
#include "modes/floor_all.h" |
#include "modes/residue_44.h" |
#include "modes/psych_44.h" |
static const double rate_mapping_44_stereo[12]={ |
22500.,32000.,40000.,48000.,56000.,64000., |
80000.,96000.,112000.,128000.,160000.,250001. |
}; |
static const double quality_mapping_44[12]={ |
-.1,.0,.1,.2,.3,.4,.5,.6,.7,.8,.9,1.0 |
}; |
static const int blocksize_short_44[11]={ |
512,256,256,256,256,256,256,256,256,256,256 |
}; |
static const int blocksize_long_44[11]={ |
4096,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048 |
}; |
static const double _psy_compand_short_mapping[12]={ |
0.5, 1., 1., 1.3, 1.6, 2., 2., 2., 2., 2., 2., 2. |
}; |
static const double _psy_compand_long_mapping[12]={ |
3.5, 4., 4., 4.3, 4.6, 5., 5., 5., 5., 5., 5., 5. |
}; |
static const double _global_mapping_44[12]={ |
/* 1., 1., 1.5, 2., 2., 2.5, 2.7, 3.0, 3.5, 4., 4. */ |
0., 1., 1., 1.5, 2., 2., 2.5, 2.7, 3.0, 3.7, 4., 4. |
}; |
static const int _floor_mapping_44a[11]={ |
1,0,0,2,2,4,5,5,5,5,5 |
}; |
static const int _floor_mapping_44b[11]={ |
8,7,7,7,7,7,7,7,7,7,7 |
}; |
static const int _floor_mapping_44c[11]={ |
10,10,10,10,10,10,10,10,10,10,10 |
}; |
static const int *_floor_mapping_44[]={ |
_floor_mapping_44a, |
_floor_mapping_44b, |
_floor_mapping_44c, |
}; |
static const ve_setup_data_template ve_setup_44_stereo={ |
11, |
rate_mapping_44_stereo, |
quality_mapping_44, |
2, |
40000, |
50000, |
blocksize_short_44, |
blocksize_long_44, |
_psy_tone_masteratt_44, |
_psy_tone_0dB, |
_psy_tone_suppress, |
_vp_tonemask_adj_otherblock, |
_vp_tonemask_adj_longblock, |
_vp_tonemask_adj_otherblock, |
_psy_noiseguards_44, |
_psy_noisebias_impulse, |
_psy_noisebias_padding, |
_psy_noisebias_trans, |
_psy_noisebias_long, |
_psy_noise_suppress, |
_psy_compand_44, |
_psy_compand_short_mapping, |
_psy_compand_long_mapping, |
{_noise_start_short_44,_noise_start_long_44}, |
{_noise_part_short_44,_noise_part_long_44}, |
_noise_thresh_44, |
_psy_ath_floater, |
_psy_ath_abs, |
_psy_lowpass_44, |
_psy_global_44, |
_global_mapping_44, |
_psy_stereo_modes_44, |
_floor_books, |
_floor, |
2, |
_floor_mapping_44, |
_mapres_template_44_stereo |
}; |
/contrib/sdk/sources/libvorbis-1.3.7/lib/modes/setup_44p51.h |
---|
0,0 → 1,73 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2010 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: toplevel settings for 44.1/48kHz 5.1 surround modes |
********************************************************************/ |
#include "modes/residue_44p51.h" |
static const double rate_mapping_44p51[12]={ |
14000.,20000.,28000.,38000.,46000.,54000., |
75000.,96000.,120000.,140000.,180000.,240001. |
}; |
static const ve_setup_data_template ve_setup_44_51={ |
11, |
rate_mapping_44p51, |
quality_mapping_44, |
6, |
40000, |
70000, |
blocksize_short_44, |
blocksize_long_44, |
_psy_tone_masteratt_44, |
_psy_tone_0dB, |
_psy_tone_suppress, |
_vp_tonemask_adj_otherblock, |
_vp_tonemask_adj_longblock, |
_vp_tonemask_adj_otherblock, |
_psy_noiseguards_44, |
_psy_noisebias_impulse, |
_psy_noisebias_padding, |
_psy_noisebias_trans, |
_psy_noisebias_long, |
_psy_noise_suppress, |
_psy_compand_44, |
_psy_compand_short_mapping, |
_psy_compand_long_mapping, |
{_noise_start_short_44,_noise_start_long_44}, |
{_noise_part_short_44,_noise_part_long_44}, |
_noise_thresh_44, |
_psy_ath_floater, |
_psy_ath_abs, |
_psy_lowpass_44, |
_psy_global_44, |
_global_mapping_44, |
_psy_stereo_modes_44, |
_floor_books, |
_floor, |
3, |
_floor_mapping_44, |
_mapres_template_44_51 |
}; |
/contrib/sdk/sources/libvorbis-1.3.7/lib/modes/setup_44u.h |
---|
0,0 → 1,73 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: toplevel settings for 44.1/48kHz uncoupled modes |
********************************************************************/ |
#include "modes/residue_44u.h" |
static const double rate_mapping_44_un[12]={ |
32000.,48000.,60000.,70000.,80000.,86000., |
96000.,110000.,120000.,140000.,160000.,240001. |
}; |
static const ve_setup_data_template ve_setup_44_uncoupled={ |
11, |
rate_mapping_44_un, |
quality_mapping_44, |
-1, |
40000, |
50000, |
blocksize_short_44, |
blocksize_long_44, |
_psy_tone_masteratt_44, |
_psy_tone_0dB, |
_psy_tone_suppress, |
_vp_tonemask_adj_otherblock, |
_vp_tonemask_adj_longblock, |
_vp_tonemask_adj_otherblock, |
_psy_noiseguards_44, |
_psy_noisebias_impulse, |
_psy_noisebias_padding, |
_psy_noisebias_trans, |
_psy_noisebias_long, |
_psy_noise_suppress, |
_psy_compand_44, |
_psy_compand_short_mapping, |
_psy_compand_long_mapping, |
{_noise_start_short_44,_noise_start_long_44}, |
{_noise_part_short_44,_noise_part_long_44}, |
_noise_thresh_44, |
_psy_ath_floater, |
_psy_ath_abs, |
_psy_lowpass_44, |
_psy_global_44, |
_global_mapping_44, |
_psy_stereo_modes_44, |
_floor_books, |
_floor, |
2, |
_floor_mapping_44, |
_mapres_template_44_uncoupled |
}; |
/contrib/sdk/sources/libvorbis-1.3.7/lib/modes/setup_8.h |
---|
0,0 → 1,148 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: 8kHz settings |
********************************************************************/ |
#include "psych_8.h" |
#include "residue_8.h" |
static const int blocksize_8[2]={ |
512,512 |
}; |
static const int _floor_mapping_8a[]={ |
6,6 |
}; |
static const int *_floor_mapping_8[]={ |
_floor_mapping_8a |
}; |
static const double rate_mapping_8[3]={ |
6000.,9000.,32000., |
}; |
static const double rate_mapping_8_uncoupled[3]={ |
8000.,14000.,42000., |
}; |
static const double quality_mapping_8[3]={ |
-.1,.0,1. |
}; |
static const double _psy_compand_8_mapping[3]={ 0., 1., 1.}; |
static const double _global_mapping_8[3]={ 1., 2., 3. }; |
static const ve_setup_data_template ve_setup_8_stereo={ |
2, |
rate_mapping_8, |
quality_mapping_8, |
2, |
8000, |
9000, |
blocksize_8, |
blocksize_8, |
_psy_tone_masteratt_8, |
_psy_tone_0dB, |
_psy_tone_suppress, |
_vp_tonemask_adj_8, |
NULL, |
_vp_tonemask_adj_8, |
_psy_noiseguards_8, |
_psy_noisebias_8, |
_psy_noisebias_8, |
NULL, |
NULL, |
_psy_noise_suppress, |
_psy_compand_8, |
_psy_compand_8_mapping, |
NULL, |
{_noise_start_8,_noise_start_8}, |
{_noise_part_8,_noise_part_8}, |
_noise_thresh_5only, |
_psy_ath_floater_8, |
_psy_ath_abs_8, |
_psy_lowpass_8, |
_psy_global_44, |
_global_mapping_8, |
_psy_stereo_modes_8, |
_floor_books, |
_floor, |
1, |
_floor_mapping_8, |
_mapres_template_8_stereo |
}; |
static const ve_setup_data_template ve_setup_8_uncoupled={ |
2, |
rate_mapping_8_uncoupled, |
quality_mapping_8, |
-1, |
8000, |
9000, |
blocksize_8, |
blocksize_8, |
_psy_tone_masteratt_8, |
_psy_tone_0dB, |
_psy_tone_suppress, |
_vp_tonemask_adj_8, |
NULL, |
_vp_tonemask_adj_8, |
_psy_noiseguards_8, |
_psy_noisebias_8, |
_psy_noisebias_8, |
NULL, |
NULL, |
_psy_noise_suppress, |
_psy_compand_8, |
_psy_compand_8_mapping, |
NULL, |
{_noise_start_8,_noise_start_8}, |
{_noise_part_8,_noise_part_8}, |
_noise_thresh_5only, |
_psy_ath_floater_8, |
_psy_ath_abs_8, |
_psy_lowpass_8, |
_psy_global_44, |
_global_mapping_8, |
_psy_stereo_modes_8, |
_floor_books, |
_floor, |
1, |
_floor_mapping_8, |
_mapres_template_8_uncoupled |
}; |
/contrib/sdk/sources/libvorbis-1.3.7/lib/modes/setup_X.h |
---|
0,0 → 1,224 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: catch-all toplevel settings for q modes only |
********************************************************************/ |
static const double rate_mapping_X[12]={ |
-1.,-1.,-1.,-1.,-1.,-1., |
-1.,-1.,-1.,-1.,-1.,-1. |
}; |
static const ve_setup_data_template ve_setup_X_stereo={ |
11, |
rate_mapping_X, |
quality_mapping_44, |
2, |
50000, |
200000, |
blocksize_short_44, |
blocksize_long_44, |
_psy_tone_masteratt_44, |
_psy_tone_0dB, |
_psy_tone_suppress, |
_vp_tonemask_adj_otherblock, |
_vp_tonemask_adj_longblock, |
_vp_tonemask_adj_otherblock, |
_psy_noiseguards_44, |
_psy_noisebias_impulse, |
_psy_noisebias_padding, |
_psy_noisebias_trans, |
_psy_noisebias_long, |
_psy_noise_suppress, |
_psy_compand_44, |
_psy_compand_short_mapping, |
_psy_compand_long_mapping, |
{_noise_start_short_44,_noise_start_long_44}, |
{_noise_part_short_44,_noise_part_long_44}, |
_noise_thresh_44, |
_psy_ath_floater, |
_psy_ath_abs, |
_psy_lowpass_44, |
_psy_global_44, |
_global_mapping_44, |
_psy_stereo_modes_44, |
_floor_books, |
_floor, |
2, |
_floor_mapping_44, |
_mapres_template_44_stereo |
}; |
static const ve_setup_data_template ve_setup_X_uncoupled={ |
11, |
rate_mapping_X, |
quality_mapping_44, |
-1, |
50000, |
200000, |
blocksize_short_44, |
blocksize_long_44, |
_psy_tone_masteratt_44, |
_psy_tone_0dB, |
_psy_tone_suppress, |
_vp_tonemask_adj_otherblock, |
_vp_tonemask_adj_longblock, |
_vp_tonemask_adj_otherblock, |
_psy_noiseguards_44, |
_psy_noisebias_impulse, |
_psy_noisebias_padding, |
_psy_noisebias_trans, |
_psy_noisebias_long, |
_psy_noise_suppress, |
_psy_compand_44, |
_psy_compand_short_mapping, |
_psy_compand_long_mapping, |
{_noise_start_short_44,_noise_start_long_44}, |
{_noise_part_short_44,_noise_part_long_44}, |
_noise_thresh_44, |
_psy_ath_floater, |
_psy_ath_abs, |
_psy_lowpass_44, |
_psy_global_44, |
_global_mapping_44, |
NULL, |
_floor_books, |
_floor, |
2, |
_floor_mapping_44, |
_mapres_template_44_uncoupled |
}; |
static const ve_setup_data_template ve_setup_XX_stereo={ |
2, |
rate_mapping_X, |
quality_mapping_8, |
2, |
0, |
8000, |
blocksize_8, |
blocksize_8, |
_psy_tone_masteratt_8, |
_psy_tone_0dB, |
_psy_tone_suppress, |
_vp_tonemask_adj_8, |
NULL, |
_vp_tonemask_adj_8, |
_psy_noiseguards_8, |
_psy_noisebias_8, |
_psy_noisebias_8, |
NULL, |
NULL, |
_psy_noise_suppress, |
_psy_compand_8, |
_psy_compand_8_mapping, |
NULL, |
{_noise_start_8,_noise_start_8}, |
{_noise_part_8,_noise_part_8}, |
_noise_thresh_5only, |
_psy_ath_floater_8, |
_psy_ath_abs_8, |
_psy_lowpass_8, |
_psy_global_44, |
_global_mapping_8, |
_psy_stereo_modes_8, |
_floor_books, |
_floor, |
1, |
_floor_mapping_8, |
_mapres_template_8_stereo |
}; |
static const ve_setup_data_template ve_setup_XX_uncoupled={ |
2, |
rate_mapping_X, |
quality_mapping_8, |
-1, |
0, |
8000, |
blocksize_8, |
blocksize_8, |
_psy_tone_masteratt_8, |
_psy_tone_0dB, |
_psy_tone_suppress, |
_vp_tonemask_adj_8, |
NULL, |
_vp_tonemask_adj_8, |
_psy_noiseguards_8, |
_psy_noisebias_8, |
_psy_noisebias_8, |
NULL, |
NULL, |
_psy_noise_suppress, |
_psy_compand_8, |
_psy_compand_8_mapping, |
NULL, |
{_noise_start_8,_noise_start_8}, |
{_noise_part_8,_noise_part_8}, |
_noise_thresh_5only, |
_psy_ath_floater_8, |
_psy_ath_abs_8, |
_psy_lowpass_8, |
_psy_global_44, |
_global_mapping_8, |
_psy_stereo_modes_8, |
_floor_books, |
_floor, |
1, |
_floor_mapping_8, |
_mapres_template_8_uncoupled |
}; |
/contrib/sdk/sources/libvorbis-1.3.7/lib/os.h |
---|
0,0 → 1,189 |
#ifndef _OS_H |
#define _OS_H |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2015 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: #ifdef jail to whip a few platforms into the UNIX ideal. |
********************************************************************/ |
#ifdef HAVE_CONFIG_H |
#include "config.h" |
#endif |
#include <math.h> |
#include <ogg/os_types.h> |
#include "misc.h" |
#ifndef _V_IFDEFJAIL_H_ |
# define _V_IFDEFJAIL_H_ |
# ifdef __GNUC__ |
# define STIN static __inline__ |
# elif defined(_WIN32) |
# define STIN static __inline |
# else |
# define STIN static |
# endif |
#ifdef DJGPP |
# define rint(x) (floor((x)+0.5f)) |
#endif |
#ifndef M_PI |
# define M_PI (3.1415926536f) |
#endif |
#if defined(_WIN32) && !defined(__SYMBIAN32__) |
# include <malloc.h> |
# define rint(x) (floor((x)+0.5f)) |
# define NO_FLOAT_MATH_LIB |
# define FAST_HYPOT(a, b) sqrt((a)*(a) + (b)*(b)) |
#endif |
#if defined(__SYMBIAN32__) && defined(__WINS__) |
void *_alloca(size_t size); |
# define alloca _alloca |
#endif |
#ifndef FAST_HYPOT |
# define FAST_HYPOT hypot |
#endif |
#endif /* _V_IFDEFJAIL_H_ */ |
#ifdef HAVE_ALLOCA_H |
# include <alloca.h> |
#endif |
#ifdef USE_MEMORY_H |
# include <memory.h> |
#endif |
#ifndef min |
# define min(x,y) ((x)>(y)?(y):(x)) |
#endif |
#ifndef max |
# define max(x,y) ((x)<(y)?(y):(x)) |
#endif |
/* Special i386 GCC implementation */ |
#if defined(__i386__) && defined(__GNUC__) && !defined(__BEOS__) && !defined(__SSE2_MATH__) |
# define VORBIS_FPU_CONTROL |
/* both GCC and MSVC are kinda stupid about rounding/casting to int. |
Because of encapsulation constraints (GCC can't see inside the asm |
block and so we end up doing stupid things like a store/load that |
is collectively a noop), we do it this way */ |
/* we must set up the fpu before this works!! */ |
typedef ogg_int16_t vorbis_fpu_control; |
static inline void vorbis_fpu_setround(vorbis_fpu_control *fpu){ |
ogg_int16_t ret; |
ogg_int16_t temp; |
__asm__ __volatile__("fnstcw %0\n\t" |
"movw %0,%%dx\n\t" |
"andw $62463,%%dx\n\t" |
"movw %%dx,%1\n\t" |
"fldcw %1\n\t":"=m"(ret):"m"(temp): "dx"); |
*fpu=ret; |
} |
static inline void vorbis_fpu_restore(vorbis_fpu_control fpu){ |
__asm__ __volatile__("fldcw %0":: "m"(fpu)); |
} |
/* assumes the FPU is in round mode! */ |
static inline int vorbis_ftoi(double f){ /* yes, double! Otherwise, |
we get extra fst/fld to |
truncate precision */ |
int i; |
__asm__("fistl %0": "=m"(i) : "t"(f)); |
return(i); |
} |
#endif /* Special i386 GCC implementation */ |
/* MSVC inline assembly. 32 bit only; inline ASM isn't implemented in the |
* 64 bit compiler and doesn't work on arm. */ |
#if defined(_MSC_VER) && defined(_M_IX86) && !defined(_WIN32_WCE) |
# define VORBIS_FPU_CONTROL |
typedef ogg_int16_t vorbis_fpu_control; |
static __inline int vorbis_ftoi(double f){ |
int i; |
__asm{ |
fld f |
fistp i |
} |
return i; |
} |
static __inline void vorbis_fpu_setround(vorbis_fpu_control *fpu){ |
(void)fpu; |
} |
static __inline void vorbis_fpu_restore(vorbis_fpu_control fpu){ |
(void)fpu; |
} |
#endif /* Special MSVC 32 bit implementation */ |
/* Optimized code path for x86_64 builds. Uses SSE2 intrinsics. This can be |
done safely because all x86_64 CPUs supports SSE2. */ |
#if (defined(_MSC_VER) && defined(_M_X64)) || (defined(__GNUC__) && defined (__SSE2_MATH__)) |
# define VORBIS_FPU_CONTROL |
typedef ogg_int16_t vorbis_fpu_control; |
#include <emmintrin.h> |
static __inline int vorbis_ftoi(double f){ |
return _mm_cvtsd_si32(_mm_load_sd(&f)); |
} |
static __inline void vorbis_fpu_setround(vorbis_fpu_control *fpu){ |
(void)fpu; |
} |
static __inline void vorbis_fpu_restore(vorbis_fpu_control fpu){ |
(void)fpu; |
} |
#endif /* Special MSVC x64 implementation */ |
/* If no special implementation was found for the current compiler / platform, |
use the default implementation here: */ |
#ifndef VORBIS_FPU_CONTROL |
typedef int vorbis_fpu_control; |
STIN int vorbis_ftoi(double f){ |
/* Note: MSVC and GCC (at least on some systems) round towards zero, thus, |
the floor() call is required to ensure correct roudning of |
negative numbers */ |
return (int)floor(f+.5); |
} |
/* We don't have special code for this compiler/arch, so do it the slow way */ |
# define vorbis_fpu_setround(vorbis_fpu_control) {} |
# define vorbis_fpu_restore(vorbis_fpu_control) {} |
#endif /* default implementation */ |
#endif /* _OS_H */ |
/contrib/sdk/sources/libvorbis-1.3.7/lib/psy.c |
---|
0,0 → 1,1209 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2010 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: psychoacoustics not including preecho |
********************************************************************/ |
#include <stdlib.h> |
#include <math.h> |
#include <string.h> |
#include "vorbis/codec.h" |
#include "codec_internal.h" |
#include "masking.h" |
#include "psy.h" |
#include "os.h" |
#include "lpc.h" |
#include "smallft.h" |
#include "scales.h" |
#include "misc.h" |
#define NEGINF -9999.f |
static const double stereo_threshholds[]={0.0, .5, 1.0, 1.5, 2.5, 4.5, 8.5, 16.5, 9e10}; |
static const double stereo_threshholds_limited[]={0.0, .5, 1.0, 1.5, 2.0, 2.5, 4.5, 8.5, 9e10}; |
vorbis_look_psy_global *_vp_global_look(vorbis_info *vi){ |
codec_setup_info *ci=vi->codec_setup; |
vorbis_info_psy_global *gi=&ci->psy_g_param; |
vorbis_look_psy_global *look=_ogg_calloc(1,sizeof(*look)); |
look->channels=vi->channels; |
look->ampmax=-9999.; |
look->gi=gi; |
return(look); |
} |
void _vp_global_free(vorbis_look_psy_global *look){ |
if(look){ |
memset(look,0,sizeof(*look)); |
_ogg_free(look); |
} |
} |
void _vi_gpsy_free(vorbis_info_psy_global *i){ |
if(i){ |
memset(i,0,sizeof(*i)); |
_ogg_free(i); |
} |
} |
void _vi_psy_free(vorbis_info_psy *i){ |
if(i){ |
memset(i,0,sizeof(*i)); |
_ogg_free(i); |
} |
} |
static void min_curve(float *c, |
float *c2){ |
int i; |
for(i=0;i<EHMER_MAX;i++)if(c2[i]<c[i])c[i]=c2[i]; |
} |
static void max_curve(float *c, |
float *c2){ |
int i; |
for(i=0;i<EHMER_MAX;i++)if(c2[i]>c[i])c[i]=c2[i]; |
} |
static void attenuate_curve(float *c,float att){ |
int i; |
for(i=0;i<EHMER_MAX;i++) |
c[i]+=att; |
} |
static float ***setup_tone_curves(float curveatt_dB[P_BANDS],float binHz,int n, |
float center_boost, float center_decay_rate){ |
int i,j,k,m; |
float ath[EHMER_MAX]; |
float workc[P_BANDS][P_LEVELS][EHMER_MAX]; |
float athc[P_LEVELS][EHMER_MAX]; |
float *brute_buffer=alloca(n*sizeof(*brute_buffer)); |
float ***ret=_ogg_malloc(sizeof(*ret)*P_BANDS); |
memset(workc,0,sizeof(workc)); |
for(i=0;i<P_BANDS;i++){ |
/* we add back in the ATH to avoid low level curves falling off to |
-infinity and unnecessarily cutting off high level curves in the |
curve limiting (last step). */ |
/* A half-band's settings must be valid over the whole band, and |
it's better to mask too little than too much */ |
int ath_offset=i*4; |
for(j=0;j<EHMER_MAX;j++){ |
float min=999.; |
for(k=0;k<4;k++) |
if(j+k+ath_offset<MAX_ATH){ |
if(min>ATH[j+k+ath_offset])min=ATH[j+k+ath_offset]; |
}else{ |
if(min>ATH[MAX_ATH-1])min=ATH[MAX_ATH-1]; |
} |
ath[j]=min; |
} |
/* copy curves into working space, replicate the 50dB curve to 30 |
and 40, replicate the 100dB curve to 110 */ |
for(j=0;j<6;j++) |
memcpy(workc[i][j+2],tonemasks[i][j],EHMER_MAX*sizeof(*tonemasks[i][j])); |
memcpy(workc[i][0],tonemasks[i][0],EHMER_MAX*sizeof(*tonemasks[i][0])); |
memcpy(workc[i][1],tonemasks[i][0],EHMER_MAX*sizeof(*tonemasks[i][0])); |
/* apply centered curve boost/decay */ |
for(j=0;j<P_LEVELS;j++){ |
for(k=0;k<EHMER_MAX;k++){ |
float adj=center_boost+abs(EHMER_OFFSET-k)*center_decay_rate; |
if(adj<0. && center_boost>0)adj=0.; |
if(adj>0. && center_boost<0)adj=0.; |
workc[i][j][k]+=adj; |
} |
} |
/* normalize curves so the driving amplitude is 0dB */ |
/* make temp curves with the ATH overlayed */ |
for(j=0;j<P_LEVELS;j++){ |
attenuate_curve(workc[i][j],curveatt_dB[i]+100.-(j<2?2:j)*10.-P_LEVEL_0); |
memcpy(athc[j],ath,EHMER_MAX*sizeof(**athc)); |
attenuate_curve(athc[j],+100.-j*10.f-P_LEVEL_0); |
max_curve(athc[j],workc[i][j]); |
} |
/* Now limit the louder curves. |
the idea is this: We don't know what the playback attenuation |
will be; 0dB SL moves every time the user twiddles the volume |
knob. So that means we have to use a single 'most pessimal' curve |
for all masking amplitudes, right? Wrong. The *loudest* sound |
can be in (we assume) a range of ...+100dB] SL. However, sounds |
20dB down will be in a range ...+80], 40dB down is from ...+60], |
etc... */ |
for(j=1;j<P_LEVELS;j++){ |
min_curve(athc[j],athc[j-1]); |
min_curve(workc[i][j],athc[j]); |
} |
} |
for(i=0;i<P_BANDS;i++){ |
int hi_curve,lo_curve,bin; |
ret[i]=_ogg_malloc(sizeof(**ret)*P_LEVELS); |
/* low frequency curves are measured with greater resolution than |
the MDCT/FFT will actually give us; we want the curve applied |
to the tone data to be pessimistic and thus apply the minimum |
masking possible for a given bin. That means that a single bin |
could span more than one octave and that the curve will be a |
composite of multiple octaves. It also may mean that a single |
bin may span > an eighth of an octave and that the eighth |
octave values may also be composited. */ |
/* which octave curves will we be compositing? */ |
bin=floor(fromOC(i*.5)/binHz); |
lo_curve= ceil(toOC(bin*binHz+1)*2); |
hi_curve= floor(toOC((bin+1)*binHz)*2); |
if(lo_curve>i)lo_curve=i; |
if(lo_curve<0)lo_curve=0; |
if(hi_curve>=P_BANDS)hi_curve=P_BANDS-1; |
for(m=0;m<P_LEVELS;m++){ |
ret[i][m]=_ogg_malloc(sizeof(***ret)*(EHMER_MAX+2)); |
for(j=0;j<n;j++)brute_buffer[j]=999.; |
/* render the curve into bins, then pull values back into curve. |
The point is that any inherent subsampling aliasing results in |
a safe minimum */ |
for(k=lo_curve;k<=hi_curve;k++){ |
int l=0; |
for(j=0;j<EHMER_MAX;j++){ |
int lo_bin= fromOC(j*.125+k*.5-2.0625)/binHz; |
int hi_bin= fromOC(j*.125+k*.5-1.9375)/binHz+1; |
if(lo_bin<0)lo_bin=0; |
if(lo_bin>n)lo_bin=n; |
if(lo_bin<l)l=lo_bin; |
if(hi_bin<0)hi_bin=0; |
if(hi_bin>n)hi_bin=n; |
for(;l<hi_bin && l<n;l++) |
if(brute_buffer[l]>workc[k][m][j]) |
brute_buffer[l]=workc[k][m][j]; |
} |
for(;l<n;l++) |
if(brute_buffer[l]>workc[k][m][EHMER_MAX-1]) |
brute_buffer[l]=workc[k][m][EHMER_MAX-1]; |
} |
/* be equally paranoid about being valid up to next half ocatve */ |
if(i+1<P_BANDS){ |
int l=0; |
k=i+1; |
for(j=0;j<EHMER_MAX;j++){ |
int lo_bin= fromOC(j*.125+i*.5-2.0625)/binHz; |
int hi_bin= fromOC(j*.125+i*.5-1.9375)/binHz+1; |
if(lo_bin<0)lo_bin=0; |
if(lo_bin>n)lo_bin=n; |
if(lo_bin<l)l=lo_bin; |
if(hi_bin<0)hi_bin=0; |
if(hi_bin>n)hi_bin=n; |
for(;l<hi_bin && l<n;l++) |
if(brute_buffer[l]>workc[k][m][j]) |
brute_buffer[l]=workc[k][m][j]; |
} |
for(;l<n;l++) |
if(brute_buffer[l]>workc[k][m][EHMER_MAX-1]) |
brute_buffer[l]=workc[k][m][EHMER_MAX-1]; |
} |
for(j=0;j<EHMER_MAX;j++){ |
int bin=fromOC(j*.125+i*.5-2.)/binHz; |
if(bin<0){ |
ret[i][m][j+2]=-999.; |
}else{ |
if(bin>=n){ |
ret[i][m][j+2]=-999.; |
}else{ |
ret[i][m][j+2]=brute_buffer[bin]; |
} |
} |
} |
/* add fenceposts */ |
for(j=0;j<EHMER_OFFSET;j++) |
if(ret[i][m][j+2]>-200.f)break; |
ret[i][m][0]=j; |
for(j=EHMER_MAX-1;j>EHMER_OFFSET+1;j--) |
if(ret[i][m][j+2]>-200.f) |
break; |
ret[i][m][1]=j; |
} |
} |
return(ret); |
} |
void _vp_psy_init(vorbis_look_psy *p,vorbis_info_psy *vi, |
vorbis_info_psy_global *gi,int n,long rate){ |
long i,j,lo=-99,hi=1; |
long maxoc; |
memset(p,0,sizeof(*p)); |
p->eighth_octave_lines=gi->eighth_octave_lines; |
p->shiftoc=rint(log(gi->eighth_octave_lines*8.f)/log(2.f))-1; |
p->firstoc=toOC(.25f*rate*.5/n)*(1<<(p->shiftoc+1))-gi->eighth_octave_lines; |
maxoc=toOC((n+.25f)*rate*.5/n)*(1<<(p->shiftoc+1))+.5f; |
p->total_octave_lines=maxoc-p->firstoc+1; |
p->ath=_ogg_malloc(n*sizeof(*p->ath)); |
p->octave=_ogg_malloc(n*sizeof(*p->octave)); |
p->bark=_ogg_malloc(n*sizeof(*p->bark)); |
p->vi=vi; |
p->n=n; |
p->rate=rate; |
/* AoTuV HF weighting */ |
p->m_val = 1.; |
if(rate < 26000) p->m_val = 0; |
else if(rate < 38000) p->m_val = .94; /* 32kHz */ |
else if(rate > 46000) p->m_val = 1.275; /* 48kHz */ |
/* set up the lookups for a given blocksize and sample rate */ |
for(i=0,j=0;i<MAX_ATH-1;i++){ |
int endpos=rint(fromOC((i+1)*.125-2.)*2*n/rate); |
float base=ATH[i]; |
if(j<endpos){ |
float delta=(ATH[i+1]-base)/(endpos-j); |
for(;j<endpos && j<n;j++){ |
p->ath[j]=base+100.; |
base+=delta; |
} |
} |
} |
for(;j<n;j++){ |
p->ath[j]=p->ath[j-1]; |
} |
for(i=0;i<n;i++){ |
float bark=toBARK(rate/(2*n)*i); |
for(;lo+vi->noisewindowlomin<i && |
toBARK(rate/(2*n)*lo)<(bark-vi->noisewindowlo);lo++); |
for(;hi<=n && (hi<i+vi->noisewindowhimin || |
toBARK(rate/(2*n)*hi)<(bark+vi->noisewindowhi));hi++); |
p->bark[i]=((lo-1)<<16)+(hi-1); |
} |
for(i=0;i<n;i++) |
p->octave[i]=toOC((i+.25f)*.5*rate/n)*(1<<(p->shiftoc+1))+.5f; |
p->tonecurves=setup_tone_curves(vi->toneatt,rate*.5/n,n, |
vi->tone_centerboost,vi->tone_decay); |
/* set up rolling noise median */ |
p->noiseoffset=_ogg_malloc(P_NOISECURVES*sizeof(*p->noiseoffset)); |
for(i=0;i<P_NOISECURVES;i++) |
p->noiseoffset[i]=_ogg_malloc(n*sizeof(**p->noiseoffset)); |
for(i=0;i<n;i++){ |
float halfoc=toOC((i+.5)*rate/(2.*n))*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; |
for(j=0;j<P_NOISECURVES;j++) |
p->noiseoffset[j][i]= |
p->vi->noiseoff[j][inthalfoc]*(1.-del) + |
p->vi->noiseoff[j][inthalfoc+1]*del; |
} |
#if 0 |
{ |
static int ls=0; |
_analysis_output_always("noiseoff0",ls,p->noiseoffset[0],n,1,0,0); |
_analysis_output_always("noiseoff1",ls,p->noiseoffset[1],n,1,0,0); |
_analysis_output_always("noiseoff2",ls++,p->noiseoffset[2],n,1,0,0); |
} |
#endif |
} |
void _vp_psy_clear(vorbis_look_psy *p){ |
int i,j; |
if(p){ |
if(p->ath)_ogg_free(p->ath); |
if(p->octave)_ogg_free(p->octave); |
if(p->bark)_ogg_free(p->bark); |
if(p->tonecurves){ |
for(i=0;i<P_BANDS;i++){ |
for(j=0;j<P_LEVELS;j++){ |
_ogg_free(p->tonecurves[i][j]); |
} |
_ogg_free(p->tonecurves[i]); |
} |
_ogg_free(p->tonecurves); |
} |
if(p->noiseoffset){ |
for(i=0;i<P_NOISECURVES;i++){ |
_ogg_free(p->noiseoffset[i]); |
} |
_ogg_free(p->noiseoffset); |
} |
memset(p,0,sizeof(*p)); |
} |
} |
/* octave/(8*eighth_octave_lines) x scale and dB y scale */ |
static void seed_curve(float *seed, |
const float **curves, |
float amp, |
int oc, int n, |
int linesper,float dBoffset){ |
int i,post1; |
int seedptr; |
const float *posts,*curve; |
int choice=(int)((amp+dBoffset-P_LEVEL_0)*.1f); |
choice=max(choice,0); |
choice=min(choice,P_LEVELS-1); |
posts=curves[choice]; |
curve=posts+2; |
post1=(int)posts[1]; |
seedptr=oc+(posts[0]-EHMER_OFFSET)*linesper-(linesper>>1); |
for(i=posts[0];i<post1;i++){ |
if(seedptr>0){ |
float lin=amp+curve[i]; |
if(seed[seedptr]<lin)seed[seedptr]=lin; |
} |
seedptr+=linesper; |
if(seedptr>=n)break; |
} |
} |
static void seed_loop(vorbis_look_psy *p, |
const float ***curves, |
const float *f, |
const float *flr, |
float *seed, |
float specmax){ |
vorbis_info_psy *vi=p->vi; |
long n=p->n,i; |
float dBoffset=vi->max_curve_dB-specmax; |
/* prime the working vector with peak values */ |
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+6.f>flr[i]){ |
oc=oc>>p->shiftoc; |
if(oc>=P_BANDS)oc=P_BANDS-1; |
if(oc<0)oc=0; |
seed_curve(seed, |
curves[oc], |
max, |
p->octave[i]-p->firstoc, |
p->total_octave_lines, |
p->eighth_octave_lines, |
dBoffset); |
} |
} |
} |
static void seed_chase(float *seeds, int linesper, long n){ |
long *posstack=alloca(n*sizeof(*posstack)); |
float *ampstack=alloca(n*sizeof(*ampstack)); |
long stack=0; |
long pos=0; |
long i; |
for(i=0;i<n;i++){ |
if(stack<2){ |
posstack[stack]=i; |
ampstack[stack++]=seeds[i]; |
}else{ |
while(1){ |
if(seeds[i]<ampstack[stack-1]){ |
posstack[stack]=i; |
ampstack[stack++]=seeds[i]; |
break; |
}else{ |
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; |
} |
} |
posstack[stack]=i; |
ampstack[stack++]=seeds[i]; |
break; |
} |
} |
} |
} |
/* the stack now contains only the positions that are relevant. Scan |
'em straight through */ |
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 ;-) */ |
} |
/* bleaugh, this is more complicated than it needs to be */ |
#include<stdio.h> |
static void max_seeds(vorbis_look_psy *p, |
float *seed, |
float *flr){ |
long n=p->total_octave_lines; |
int linesper=p->eighth_octave_lines; |
long linpos=0; |
long pos; |
seed_chase(seed,linesper,n); /* for masking */ |
pos=p->octave[0]-p->firstoc-(linesper>>1); |
while(linpos+1<p->n){ |
float minV=seed[pos]; |
long end=((p->octave[linpos]+p->octave[linpos+1])>>1)-p->firstoc; |
if(minV>p->vi->tone_abs_limit)minV=p->vi->tone_abs_limit; |
while(pos+1<=end){ |
pos++; |
if((seed[pos]>NEGINF && seed[pos]<minV) || minV==NEGINF) |
minV=seed[pos]; |
} |
end=pos+p->firstoc; |
for(;linpos<p->n && p->octave[linpos]<=end;linpos++) |
if(flr[linpos]<minV)flr[linpos]=minV; |
} |
{ |
float minV=seed[p->total_octave_lines-1]; |
for(;linpos<p->n;linpos++) |
if(flr[linpos]<minV)flr[linpos]=minV; |
} |
} |
static void bark_noise_hybridmp(int n,const long *b, |
const float *f, |
float *noise, |
const float offset, |
const int fixed){ |
float *N=alloca(n*sizeof(*N)); |
float *X=alloca(n*sizeof(*N)); |
float *XX=alloca(n*sizeof(*N)); |
float *Y=alloca(n*sizeof(*N)); |
float *XY=alloca(n*sizeof(*N)); |
float tN, tX, tXX, tY, tXY; |
int i; |
int lo, hi; |
float R=0.f; |
float A=0.f; |
float B=0.f; |
float D=1.f; |
float w, x, y; |
tN = tX = tXX = tY = tXY = 0.f; |
y = f[0] + offset; |
if (y < 1.f) y = 1.f; |
w = y * y * .5; |
tN += w; |
tX += w; |
tY += w * y; |
N[0] = tN; |
X[0] = tX; |
XX[0] = tXX; |
Y[0] = tY; |
XY[0] = tXY; |
for (i = 1, x = 1.f; i < n; i++, x += 1.f) { |
y = f[i] + offset; |
if (y < 1.f) y = 1.f; |
w = y * y; |
tN += w; |
tX += w * x; |
tXX += w * x * x; |
tY += w * y; |
tXY += w * x * y; |
N[i] = tN; |
X[i] = tX; |
XX[i] = tXX; |
Y[i] = tY; |
XY[i] = tXY; |
} |
for (i = 0, x = 0.f; i < n; i++, x += 1.f) { |
lo = b[i] >> 16; |
hi = b[i] & 0xffff; |
if( lo>=0 || -lo>=n ) break; |
if( hi>=n ) break; |
tN = N[hi] + N[-lo]; |
tX = X[hi] - X[-lo]; |
tXX = XX[hi] + XX[-lo]; |
tY = Y[hi] + Y[-lo]; |
tXY = XY[hi] - XY[-lo]; |
A = tY * tXX - tX * tXY; |
B = tN * tXY - tX * tY; |
D = tN * tXX - tX * tX; |
R = (A + x * B) / D; |
if (R < 0.f) R = 0.f; |
noise[i] = R - offset; |
} |
for ( ; i < n; i++, x += 1.f) { |
lo = b[i] >> 16; |
hi = b[i] & 0xffff; |
if( lo<0 || lo>=n ) break; |
if( hi>=n ) break; |
tN = N[hi] - N[lo]; |
tX = X[hi] - X[lo]; |
tXX = XX[hi] - XX[lo]; |
tY = Y[hi] - Y[lo]; |
tXY = XY[hi] - XY[lo]; |
A = tY * tXX - tX * tXY; |
B = tN * tXY - tX * tY; |
D = tN * tXX - tX * tX; |
R = (A + x * B) / D; |
if (R < 0.f) R = 0.f; |
noise[i] = R - offset; |
} |
for ( ; i < n; i++, x += 1.f) { |
R = (A + x * B) / D; |
if (R < 0.f) R = 0.f; |
noise[i] = R - offset; |
} |
if (fixed <= 0) return; |
for (i = 0, x = 0.f; i < n; i++, x += 1.f) { |
hi = i + fixed / 2; |
lo = hi - fixed; |
if ( hi>=n ) break; |
if ( lo>=0 ) break; |
tN = N[hi] + N[-lo]; |
tX = X[hi] - X[-lo]; |
tXX = XX[hi] + XX[-lo]; |
tY = Y[hi] + Y[-lo]; |
tXY = XY[hi] - XY[-lo]; |
A = tY * tXX - tX * tXY; |
B = tN * tXY - tX * tY; |
D = tN * tXX - tX * tX; |
R = (A + x * B) / D; |
if (R - offset < noise[i]) noise[i] = R - offset; |
} |
for ( ; i < n; i++, x += 1.f) { |
hi = i + fixed / 2; |
lo = hi - fixed; |
if ( hi>=n ) break; |
if ( lo<0 ) break; |
tN = N[hi] - N[lo]; |
tX = X[hi] - X[lo]; |
tXX = XX[hi] - XX[lo]; |
tY = Y[hi] - Y[lo]; |
tXY = XY[hi] - XY[lo]; |
A = tY * tXX - tX * tXY; |
B = tN * tXY - tX * tY; |
D = tN * tXX - tX * tX; |
R = (A + x * B) / D; |
if (R - offset < noise[i]) noise[i] = R - offset; |
} |
for ( ; i < n; i++, x += 1.f) { |
R = (A + x * B) / D; |
if (R - offset < noise[i]) noise[i] = R - offset; |
} |
} |
void _vp_noisemask(vorbis_look_psy *p, |
float *logmdct, |
float *logmask){ |
int i,n=p->n; |
float *work=alloca(n*sizeof(*work)); |
bark_noise_hybridmp(n,p->bark,logmdct,logmask, |
140.,-1); |
for(i=0;i<n;i++)work[i]=logmdct[i]-logmask[i]; |
bark_noise_hybridmp(n,p->bark,work,logmask,0., |
p->vi->noisewindowfixed); |
for(i=0;i<n;i++)work[i]=logmdct[i]-work[i]; |
#if 0 |
{ |
static int seq=0; |
float work2[n]; |
for(i=0;i<n;i++){ |
work2[i]=logmask[i]+work[i]; |
} |
if(seq&1) |
_analysis_output("median2R",seq/2,work,n,1,0,0); |
else |
_analysis_output("median2L",seq/2,work,n,1,0,0); |
if(seq&1) |
_analysis_output("envelope2R",seq/2,work2,n,1,0,0); |
else |
_analysis_output("envelope2L",seq/2,work2,n,1,0,0); |
seq++; |
} |
#endif |
for(i=0;i<n;i++){ |
int dB=logmask[i]+.5; |
if(dB>=NOISE_COMPAND_LEVELS)dB=NOISE_COMPAND_LEVELS-1; |
if(dB<0)dB=0; |
logmask[i]= work[i]+p->vi->noisecompand[dB]; |
} |
} |
void _vp_tonemask(vorbis_look_psy *p, |
float *logfft, |
float *logmask, |
float global_specmax, |
float local_specmax){ |
int i,n=p->n; |
float *seed=alloca(sizeof(*seed)*p->total_octave_lines); |
float att=local_specmax+p->vi->ath_adjatt; |
for(i=0;i<p->total_octave_lines;i++)seed[i]=NEGINF; |
/* set the ATH (floating below localmax, not global max by a |
specified att) */ |
if(att<p->vi->ath_maxatt)att=p->vi->ath_maxatt; |
for(i=0;i<n;i++) |
logmask[i]=p->ath[i]+att; |
/* tone masking */ |
seed_loop(p,(const float ***)p->tonecurves,logfft,logmask,seed,global_specmax); |
max_seeds(p,seed,logmask); |
} |
void _vp_offset_and_mix(vorbis_look_psy *p, |
float *noise, |
float *tone, |
int offset_select, |
float *logmask, |
float *mdct, |
float *logmdct){ |
int i,n=p->n; |
float de, coeffi, cx;/* AoTuV */ |
float toneatt=p->vi->tone_masteratt[offset_select]; |
cx = p->m_val; |
for(i=0;i<n;i++){ |
float val= noise[i]+p->noiseoffset[offset_select][i]; |
if(val>p->vi->noisemaxsupp)val=p->vi->noisemaxsupp; |
logmask[i]=max(val,tone[i]+toneatt); |
/* AoTuV */ |
/** @ M1 ** |
The following codes improve a noise problem. |
A fundamental idea uses the value of masking and carries out |
the relative compensation of the MDCT. |
However, this code is not perfect and all noise problems cannot be solved. |
by Aoyumi @ 2004/04/18 |
*/ |
if(offset_select == 1) { |
coeffi = -17.2; /* coeffi is a -17.2dB threshold */ |
val = val - logmdct[i]; /* val == mdct line value relative to floor in dB */ |
if(val > coeffi){ |
/* mdct value is > -17.2 dB below floor */ |
de = 1.0-((val-coeffi)*0.005*cx); |
/* pro-rated attenuation: |
-0.00 dB boost if mdct value is -17.2dB (relative to floor) |
-0.77 dB boost if mdct value is 0dB (relative to floor) |
-1.64 dB boost if mdct value is +17.2dB (relative to floor) |
etc... */ |
if(de < 0) de = 0.0001; |
}else |
/* mdct value is <= -17.2 dB below floor */ |
de = 1.0-((val-coeffi)*0.0003*cx); |
/* pro-rated attenuation: |
+0.00 dB atten if mdct value is -17.2dB (relative to floor) |
+0.45 dB atten if mdct value is -34.4dB (relative to floor) |
etc... */ |
mdct[i] *= de; |
} |
} |
} |
float _vp_ampmax_decay(float amp,vorbis_dsp_state *vd){ |
vorbis_info *vi=vd->vi; |
codec_setup_info *ci=vi->codec_setup; |
vorbis_info_psy_global *gi=&ci->psy_g_param; |
int n=ci->blocksizes[vd->W]/2; |
float secs=(float)n/vi->rate; |
amp+=secs*gi->ampmax_att_per_sec; |
if(amp<-9999)amp=-9999; |
return(amp); |
} |
static float FLOOR1_fromdB_LOOKUP[256]={ |
1.0649863e-07F, 1.1341951e-07F, 1.2079015e-07F, 1.2863978e-07F, |
1.3699951e-07F, 1.4590251e-07F, 1.5538408e-07F, 1.6548181e-07F, |
1.7623575e-07F, 1.8768855e-07F, 1.9988561e-07F, 2.128753e-07F, |
2.2670913e-07F, 2.4144197e-07F, 2.5713223e-07F, 2.7384213e-07F, |
2.9163793e-07F, 3.1059021e-07F, 3.3077411e-07F, 3.5226968e-07F, |
3.7516214e-07F, 3.9954229e-07F, 4.2550680e-07F, 4.5315863e-07F, |
4.8260743e-07F, 5.1396998e-07F, 5.4737065e-07F, 5.8294187e-07F, |
6.2082472e-07F, 6.6116941e-07F, 7.0413592e-07F, 7.4989464e-07F, |
7.9862701e-07F, 8.5052630e-07F, 9.0579828e-07F, 9.6466216e-07F, |
1.0273513e-06F, 1.0941144e-06F, 1.1652161e-06F, 1.2409384e-06F, |
1.3215816e-06F, 1.4074654e-06F, 1.4989305e-06F, 1.5963394e-06F, |
1.7000785e-06F, 1.8105592e-06F, 1.9282195e-06F, 2.0535261e-06F, |
2.1869758e-06F, 2.3290978e-06F, 2.4804557e-06F, 2.6416497e-06F, |
2.8133190e-06F, 2.9961443e-06F, 3.1908506e-06F, 3.3982101e-06F, |
3.6190449e-06F, 3.8542308e-06F, 4.1047004e-06F, 4.3714470e-06F, |
4.6555282e-06F, 4.9580707e-06F, 5.2802740e-06F, 5.6234160e-06F, |
5.9888572e-06F, 6.3780469e-06F, 6.7925283e-06F, 7.2339451e-06F, |
7.7040476e-06F, 8.2047000e-06F, 8.7378876e-06F, 9.3057248e-06F, |
9.9104632e-06F, 1.0554501e-05F, 1.1240392e-05F, 1.1970856e-05F, |
1.2748789e-05F, 1.3577278e-05F, 1.4459606e-05F, 1.5399272e-05F, |
1.6400004e-05F, 1.7465768e-05F, 1.8600792e-05F, 1.9809576e-05F, |
2.1096914e-05F, 2.2467911e-05F, 2.3928002e-05F, 2.5482978e-05F, |
2.7139006e-05F, 2.8902651e-05F, 3.0780908e-05F, 3.2781225e-05F, |
3.4911534e-05F, 3.7180282e-05F, 3.9596466e-05F, 4.2169667e-05F, |
4.4910090e-05F, 4.7828601e-05F, 5.0936773e-05F, 5.4246931e-05F, |
5.7772202e-05F, 6.1526565e-05F, 6.5524908e-05F, 6.9783085e-05F, |
7.4317983e-05F, 7.9147585e-05F, 8.4291040e-05F, 8.9768747e-05F, |
9.5602426e-05F, 0.00010181521F, 0.00010843174F, 0.00011547824F, |
0.00012298267F, 0.00013097477F, 0.00013948625F, 0.00014855085F, |
0.00015820453F, 0.00016848555F, 0.00017943469F, 0.00019109536F, |
0.00020351382F, 0.00021673929F, 0.00023082423F, 0.00024582449F, |
0.00026179955F, 0.00027881276F, 0.00029693158F, 0.00031622787F, |
0.00033677814F, 0.00035866388F, 0.00038197188F, 0.00040679456F, |
0.00043323036F, 0.00046138411F, 0.00049136745F, 0.00052329927F, |
0.00055730621F, 0.00059352311F, 0.00063209358F, 0.00067317058F, |
0.00071691700F, 0.00076350630F, 0.00081312324F, 0.00086596457F, |
0.00092223983F, 0.00098217216F, 0.0010459992F, 0.0011139742F, |
0.0011863665F, 0.0012634633F, 0.0013455702F, 0.0014330129F, |
0.0015261382F, 0.0016253153F, 0.0017309374F, 0.0018434235F, |
0.0019632195F, 0.0020908006F, 0.0022266726F, 0.0023713743F, |
0.0025254795F, 0.0026895994F, 0.0028643847F, 0.0030505286F, |
0.0032487691F, 0.0034598925F, 0.0036847358F, 0.0039241906F, |
0.0041792066F, 0.0044507950F, 0.0047400328F, 0.0050480668F, |
0.0053761186F, 0.0057254891F, 0.0060975636F, 0.0064938176F, |
0.0069158225F, 0.0073652516F, 0.0078438871F, 0.0083536271F, |
0.0088964928F, 0.009474637F, 0.010090352F, 0.010746080F, |
0.011444421F, 0.012188144F, 0.012980198F, 0.013823725F, |
0.014722068F, 0.015678791F, 0.016697687F, 0.017782797F, |
0.018938423F, 0.020169149F, 0.021479854F, 0.022875735F, |
0.024362330F, 0.025945531F, 0.027631618F, 0.029427276F, |
0.031339626F, 0.033376252F, 0.035545228F, 0.037855157F, |
0.040315199F, 0.042935108F, 0.045725273F, 0.048696758F, |
0.051861348F, 0.055231591F, 0.058820850F, 0.062643361F, |
0.066714279F, 0.071049749F, 0.075666962F, 0.080584227F, |
0.085821044F, 0.091398179F, 0.097337747F, 0.10366330F, |
0.11039993F, 0.11757434F, 0.12521498F, 0.13335215F, |
0.14201813F, 0.15124727F, 0.16107617F, 0.17154380F, |
0.18269168F, 0.19456402F, 0.20720788F, 0.22067342F, |
0.23501402F, 0.25028656F, 0.26655159F, 0.28387361F, |
0.30232132F, 0.32196786F, 0.34289114F, 0.36517414F, |
0.38890521F, 0.41417847F, 0.44109412F, 0.46975890F, |
0.50028648F, 0.53279791F, 0.56742212F, 0.60429640F, |
0.64356699F, 0.68538959F, 0.72993007F, 0.77736504F, |
0.82788260F, 0.88168307F, 0.9389798F, 1.F, |
}; |
/* this is for per-channel noise normalization */ |
static int apsort(const void *a, const void *b){ |
float f1=**(float**)a; |
float f2=**(float**)b; |
return (f1<f2)-(f1>f2); |
} |
static void flag_lossless(int limit, float prepoint, float postpoint, float *mdct, |
float *floor, int *flag, int i, int jn){ |
int j; |
for(j=0;j<jn;j++){ |
float point = j>=limit-i ? postpoint : prepoint; |
float r = fabs(mdct[j])/floor[j]; |
if(r<point) |
flag[j]=0; |
else |
flag[j]=1; |
} |
} |
/* Overload/Side effect: On input, the *q vector holds either the |
quantized energy (for elements with the flag set) or the absolute |
values of the *r vector (for elements with flag unset). On output, |
*q holds the quantized energy for all elements */ |
static float noise_normalize(vorbis_look_psy *p, int limit, float *r, float *q, float *f, int *flags, float acc, int i, int n, int *out){ |
vorbis_info_psy *vi=p->vi; |
float **sort = alloca(n*sizeof(*sort)); |
int j,count=0; |
int start = (vi->normal_p ? vi->normal_start-i : n); |
if(start>n)start=n; |
/* force classic behavior where only energy in the current band is considered */ |
acc=0.f; |
/* still responsible for populating *out where noise norm not in |
effect. There's no need to [re]populate *q in these areas */ |
for(j=0;j<start;j++){ |
if(!flags || !flags[j]){ /* lossless coupling already quantized. |
Don't touch; requantizing based on |
energy would be incorrect. */ |
float ve = q[j]/f[j]; |
if(r[j]<0) |
out[j] = -rint(sqrt(ve)); |
else |
out[j] = rint(sqrt(ve)); |
} |
} |
/* sort magnitudes for noise norm portion of partition */ |
for(;j<n;j++){ |
if(!flags || !flags[j]){ /* can't noise norm elements that have |
already been loslessly coupled; we can |
only account for their energy error */ |
float ve = q[j]/f[j]; |
/* Despite all the new, more capable coupling code, for now we |
implement noise norm as it has been up to this point. Only |
consider promotions to unit magnitude from 0. In addition |
the only energy error counted is quantizations to zero. */ |
/* also-- the original point code only applied noise norm at > pointlimit */ |
if(ve<.25f && (!flags || j>=limit-i)){ |
acc += ve; |
sort[count++]=q+j; /* q is fabs(r) for unflagged element */ |
}else{ |
/* For now: no acc adjustment for nonzero quantization. populate *out and q as this value is final. */ |
if(r[j]<0) |
out[j] = -rint(sqrt(ve)); |
else |
out[j] = rint(sqrt(ve)); |
q[j] = out[j]*out[j]*f[j]; |
} |
}/* else{ |
again, no energy adjustment for error in nonzero quant-- for now |
}*/ |
} |
if(count){ |
/* noise norm to do */ |
qsort(sort,count,sizeof(*sort),apsort); |
for(j=0;j<count;j++){ |
int k=sort[j]-q; |
if(acc>=vi->normal_thresh){ |
out[k]=unitnorm(r[k]); |
acc-=1.f; |
q[k]=f[k]; |
}else{ |
out[k]=0; |
q[k]=0.f; |
} |
} |
} |
return acc; |
} |
/* Noise normalization, quantization and coupling are not wholly |
seperable processes in depth>1 coupling. */ |
void _vp_couple_quantize_normalize(int blobno, |
vorbis_info_psy_global *g, |
vorbis_look_psy *p, |
vorbis_info_mapping0 *vi, |
float **mdct, |
int **iwork, |
int *nonzero, |
int sliding_lowpass, |
int ch){ |
int i; |
int n = p->n; |
int partition=(p->vi->normal_p ? p->vi->normal_partition : 16); |
int limit = g->coupling_pointlimit[p->vi->blockflag][blobno]; |
float prepoint=stereo_threshholds[g->coupling_prepointamp[blobno]]; |
float postpoint=stereo_threshholds[g->coupling_postpointamp[blobno]]; |
#if 0 |
float de=0.1*p->m_val; /* a blend of the AoTuV M2 and M3 code here and below */ |
#endif |
/* mdct is our raw mdct output, floor not removed. */ |
/* inout passes in the ifloor, passes back quantized result */ |
/* unquantized energy (negative indicates amplitude has negative sign) */ |
float **raw = alloca(ch*sizeof(*raw)); |
/* dual pupose; quantized energy (if flag set), othersize fabs(raw) */ |
float **quant = alloca(ch*sizeof(*quant)); |
/* floor energy */ |
float **floor = alloca(ch*sizeof(*floor)); |
/* flags indicating raw/quantized status of elements in raw vector */ |
int **flag = alloca(ch*sizeof(*flag)); |
/* non-zero flag working vector */ |
int *nz = alloca(ch*sizeof(*nz)); |
/* energy surplus/defecit tracking */ |
float *acc = alloca((ch+vi->coupling_steps)*sizeof(*acc)); |
/* The threshold of a stereo is changed with the size of n */ |
if(n > 1000) |
postpoint=stereo_threshholds_limited[g->coupling_postpointamp[blobno]]; |
raw[0] = alloca(ch*partition*sizeof(**raw)); |
quant[0] = alloca(ch*partition*sizeof(**quant)); |
floor[0] = alloca(ch*partition*sizeof(**floor)); |
flag[0] = alloca(ch*partition*sizeof(**flag)); |
for(i=1;i<ch;i++){ |
raw[i] = &raw[0][partition*i]; |
quant[i] = &quant[0][partition*i]; |
floor[i] = &floor[0][partition*i]; |
flag[i] = &flag[0][partition*i]; |
} |
for(i=0;i<ch+vi->coupling_steps;i++) |
acc[i]=0.f; |
for(i=0;i<n;i+=partition){ |
int k,j,jn = partition > n-i ? n-i : partition; |
int step,track = 0; |
memcpy(nz,nonzero,sizeof(*nz)*ch); |
/* prefill */ |
memset(flag[0],0,ch*partition*sizeof(**flag)); |
for(k=0;k<ch;k++){ |
int *iout = &iwork[k][i]; |
if(nz[k]){ |
for(j=0;j<jn;j++) |
floor[k][j] = FLOOR1_fromdB_LOOKUP[iout[j]]; |
flag_lossless(limit,prepoint,postpoint,&mdct[k][i],floor[k],flag[k],i,jn); |
for(j=0;j<jn;j++){ |
quant[k][j] = raw[k][j] = mdct[k][i+j]*mdct[k][i+j]; |
if(mdct[k][i+j]<0.f) raw[k][j]*=-1.f; |
floor[k][j]*=floor[k][j]; |
} |
acc[track]=noise_normalize(p,limit,raw[k],quant[k],floor[k],NULL,acc[track],i,jn,iout); |
}else{ |
for(j=0;j<jn;j++){ |
floor[k][j] = 1e-10f; |
raw[k][j] = 0.f; |
quant[k][j] = 0.f; |
flag[k][j] = 0; |
iout[j]=0; |
} |
acc[track]=0.f; |
} |
track++; |
} |
/* coupling */ |
for(step=0;step<vi->coupling_steps;step++){ |
int Mi = vi->coupling_mag[step]; |
int Ai = vi->coupling_ang[step]; |
int *iM = &iwork[Mi][i]; |
int *iA = &iwork[Ai][i]; |
float *reM = raw[Mi]; |
float *reA = raw[Ai]; |
float *qeM = quant[Mi]; |
float *qeA = quant[Ai]; |
float *floorM = floor[Mi]; |
float *floorA = floor[Ai]; |
int *fM = flag[Mi]; |
int *fA = flag[Ai]; |
if(nz[Mi] || nz[Ai]){ |
nz[Mi] = nz[Ai] = 1; |
for(j=0;j<jn;j++){ |
if(j<sliding_lowpass-i){ |
if(fM[j] || fA[j]){ |
/* lossless coupling */ |
reM[j] = fabs(reM[j])+fabs(reA[j]); |
qeM[j] = qeM[j]+qeA[j]; |
fM[j]=fA[j]=1; |
/* couple iM/iA */ |
{ |
int A = iM[j]; |
int B = iA[j]; |
if(abs(A)>abs(B)){ |
iA[j]=(A>0?A-B:B-A); |
}else{ |
iA[j]=(B>0?A-B:B-A); |
iM[j]=B; |
} |
/* collapse two equivalent tuples to one */ |
if(iA[j]>=abs(iM[j])*2){ |
iA[j]= -iA[j]; |
iM[j]= -iM[j]; |
} |
} |
}else{ |
/* lossy (point) coupling */ |
if(j<limit-i){ |
/* dipole */ |
reM[j] += reA[j]; |
qeM[j] = fabs(reM[j]); |
}else{ |
#if 0 |
/* AoTuV */ |
/** @ M2 ** |
The boost problem by the combination of noise normalization and point stereo is eased. |
However, this is a temporary patch. |
by Aoyumi @ 2004/04/18 |
*/ |
float derate = (1.0 - de*((float)(j-limit+i) / (float)(n-limit))); |
/* elliptical */ |
if(reM[j]+reA[j]<0){ |
reM[j] = - (qeM[j] = (fabs(reM[j])+fabs(reA[j]))*derate*derate); |
}else{ |
reM[j] = (qeM[j] = (fabs(reM[j])+fabs(reA[j]))*derate*derate); |
} |
#else |
/* elliptical */ |
if(reM[j]+reA[j]<0){ |
reM[j] = - (qeM[j] = fabs(reM[j])+fabs(reA[j])); |
}else{ |
reM[j] = (qeM[j] = fabs(reM[j])+fabs(reA[j])); |
} |
#endif |
} |
reA[j]=qeA[j]=0.f; |
fA[j]=1; |
iA[j]=0; |
} |
} |
floorM[j]=floorA[j]=floorM[j]+floorA[j]; |
} |
/* normalize the resulting mag vector */ |
acc[track]=noise_normalize(p,limit,raw[Mi],quant[Mi],floor[Mi],flag[Mi],acc[track],i,jn,iM); |
track++; |
} |
} |
} |
for(i=0;i<vi->coupling_steps;i++){ |
/* make sure coupling a zero and a nonzero channel results in two |
nonzero channels. */ |
if(nonzero[vi->coupling_mag[i]] || |
nonzero[vi->coupling_ang[i]]){ |
nonzero[vi->coupling_mag[i]]=1; |
nonzero[vi->coupling_ang[i]]=1; |
} |
} |
} |
/contrib/sdk/sources/libvorbis-1.3.7/lib/psy.h |
---|
0,0 → 1,153 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: random psychoacoustics (not including preecho) |
********************************************************************/ |
#ifndef _V_PSY_H_ |
#define _V_PSY_H_ |
#include "smallft.h" |
#include "backends.h" |
#include "envelope.h" |
#ifndef EHMER_MAX |
#define EHMER_MAX 56 |
#endif |
/* psychoacoustic setup ********************************************/ |
#define P_BANDS 17 /* 62Hz to 16kHz */ |
#define P_LEVELS 8 /* 30dB to 100dB */ |
#define P_LEVEL_0 30. /* 30 dB */ |
#define P_NOISECURVES 3 |
#define NOISE_COMPAND_LEVELS 40 |
typedef struct vorbis_info_psy{ |
int blockflag; |
float ath_adjatt; |
float ath_maxatt; |
float tone_masteratt[P_NOISECURVES]; |
float tone_centerboost; |
float tone_decay; |
float tone_abs_limit; |
float toneatt[P_BANDS]; |
int noisemaskp; |
float noisemaxsupp; |
float noisewindowlo; |
float noisewindowhi; |
int noisewindowlomin; |
int noisewindowhimin; |
int noisewindowfixed; |
float noiseoff[P_NOISECURVES][P_BANDS]; |
float noisecompand[NOISE_COMPAND_LEVELS]; |
float max_curve_dB; |
int normal_p; |
int normal_start; |
int normal_partition; |
double normal_thresh; |
} vorbis_info_psy; |
typedef struct{ |
int eighth_octave_lines; |
/* for block long/short tuning; encode only */ |
float preecho_thresh[VE_BANDS]; |
float postecho_thresh[VE_BANDS]; |
float stretch_penalty; |
float preecho_minenergy; |
float ampmax_att_per_sec; |
/* channel coupling config */ |
int coupling_pkHz[PACKETBLOBS]; |
int coupling_pointlimit[2][PACKETBLOBS]; |
int coupling_prepointamp[PACKETBLOBS]; |
int coupling_postpointamp[PACKETBLOBS]; |
int sliding_lowpass[2][PACKETBLOBS]; |
} vorbis_info_psy_global; |
typedef struct { |
float ampmax; |
int channels; |
vorbis_info_psy_global *gi; |
int coupling_pointlimit[2][P_NOISECURVES]; |
} vorbis_look_psy_global; |
typedef struct { |
int n; |
struct vorbis_info_psy *vi; |
float ***tonecurves; |
float **noiseoffset; |
float *ath; |
long *octave; /* in n.ocshift format */ |
long *bark; |
long firstoc; |
long shiftoc; |
int eighth_octave_lines; /* power of two, please */ |
int total_octave_lines; |
long rate; /* cache it */ |
float m_val; /* Masking compensation value */ |
} vorbis_look_psy; |
extern void _vp_psy_init(vorbis_look_psy *p,vorbis_info_psy *vi, |
vorbis_info_psy_global *gi,int n,long rate); |
extern void _vp_psy_clear(vorbis_look_psy *p); |
extern void *_vi_psy_dup(void *source); |
extern void _vi_psy_free(vorbis_info_psy *i); |
extern vorbis_info_psy *_vi_psy_copy(vorbis_info_psy *i); |
extern void _vp_noisemask(vorbis_look_psy *p, |
float *logmdct, |
float *logmask); |
extern void _vp_tonemask(vorbis_look_psy *p, |
float *logfft, |
float *logmask, |
float global_specmax, |
float local_specmax); |
extern void _vp_offset_and_mix(vorbis_look_psy *p, |
float *noise, |
float *tone, |
int offset_select, |
float *logmask, |
float *mdct, |
float *logmdct); |
extern float _vp_ampmax_decay(float amp,vorbis_dsp_state *vd); |
extern void _vp_couple_quantize_normalize(int blobno, |
vorbis_info_psy_global *g, |
vorbis_look_psy *p, |
vorbis_info_mapping0 *vi, |
float **mdct, |
int **iwork, |
int *nonzero, |
int sliding_lowpass, |
int ch); |
#endif |
/contrib/sdk/sources/libvorbis-1.3.7/lib/psytune.c |
---|
0,0 → 1,523 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: simple utility that runs audio through the psychoacoustics |
without encoding |
********************************************************************/ |
/* NB: this is dead code, retained purely for doc and reference value |
don't try to compile it */ |
#include <stdio.h> |
#include <stdlib.h> |
#include <string.h> |
#include <math.h> |
#include "vorbis/codec.h" |
#include "codec_internal.h" |
#include "os.h" |
#include "misc.h" |
#include "psy.h" |
#include "mdct.h" |
#include "smallft.h" |
#include "window.h" |
#include "scales.h" |
#include "lpc.h" |
#include "lsp.h" |
#include "masking.h" |
#include "registry.h" |
static vorbis_info_psy_global _psy_set0G={ |
0, /* decaydBpms */ |
8, /* lines per eighth octave */ |
/* thresh sample period, preecho clamp trigger threshhold, range, minenergy */ |
256, {26.f,26.f,26.f,30.f}, {-90.f,-90.f,-90.f,-90.f}, -90.f, |
-6.f, |
0, |
0., |
0., |
}; |
static vp_part _vp_part0[]={ |
{ 1,9e10f, 9e10f, 1.f,9999.f}, |
{ 9999, .75f, 9e10f, .5f,9999.f}, |
/*{ 9999, 1.5f, 9e10f, .5f,9999.f},*/ |
{ 18,9e10f, 9e10f, .5f, 30.f}, |
{ 9999,9e10f, 9e10f, .5f, 30.f} |
}; |
static vp_couple _vp_couple0[]={ |
{ 1, {9e10f,9e10f,0}, { 0.f, 0.f,0}, { 0.f, 0.f,0}, {0.f,0.f,0}}, |
{ 18, {9e10f,9e10f,0}, { 0.f, 0.f,0}, { 0.f, 0.f,0}, {0.f,0.f,0}}, |
{ 9999, {9e10f,9e10f,0}, { 0.f, 9e10f,0}, { 0.f,22.f,1}, {0.f,0.f,0}} |
}; |
static vorbis_info_psy _psy_set0={ |
ATH_Bark_dB_lineaggressive, |
-100.f, |
-140.f, |
6.f, /* floor master att */ |
/* 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.f, /* tone master att */ |
/* 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*/ |
{-30.f,-30.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*175*/ |
{-30.f,-30.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*250*/ |
{-30.f,-30.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*350*/ |
{-30.f,-30.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*500*/ |
{-30.f,-30.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*700*/ |
{-30.f,-30.f,-35.f,-40.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*1000*/ |
{-30.f,-30.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*/ |
{-40.f,-40.f,-40.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,-33.f,-35.f,-40.f,-50.f,-60.f,-70.f,-80.f,-90.f,-100.f}, /*8000*/ |
{-30.f,-30.f,-33.f,-35.f,-40.f,-45.f,-50.f,-60.f,-70.f,-85.f,-100.f}, /*11500*/ |
{-24.f,-24.f,-26.f,-32.f,-32.f,-42.f,-50.f,-60.f,-70.f,-85.f,-100.f}, /*16000*/ |
}, |
1,/* peakattp */ |
{{-14.f,-20.f,-20.f,-20.f,-26.f,-32.f,-40.f,-40.f,-40.f,-40.f,-40.f},/*63*/ |
{-14.f,-20.f,-20.f,-20.f,-26.f,-32.f,-40.f,-40.f,-40.f,-40.f,-40.f},/*88*/ |
{-14.f,-20.f,-20.f,-20.f,-26.f,-32.f,-40.f,-40.f,-40.f,-40.f,-40.f},/*125*/ |
{-14.f,-20.f,-20.f,-20.f,-26.f,-32.f,-40.f,-40.f,-40.f,-40.f,-40.f},/*175*/ |
{-14.f,-20.f,-20.f,-20.f,-26.f,-32.f,-40.f,-40.f,-40.f,-40.f,-40.f},/*250*/ |
{-14.f,-20.f,-20.f,-20.f,-26.f,-32.f,-40.f,-40.f,-40.f,-40.f,-40.f},/*350*/ |
{-14.f,-20.f,-20.f,-20.f,-26.f,-32.f,-40.f,-40.f,-40.f,-40.f,-40.f},/*500*/ |
{-14.f,-20.f,-20.f,-20.f,-26.f,-32.f,-40.f,-40.f,-40.f,-40.f,-40.f},/*700*/ |
{-14.f,-20.f,-20.f,-20.f,-26.f,-32.f,-40.f,-40.f,-40.f,-40.f,-40.f},/*1000*/ |
{-14.f,-20.f,-20.f,-20.f,-26.f,-32.f,-40.f,-40.f,-40.f,-40.f,-40.f},/*1400*/ |
{-14.f,-20.f,-20.f,-20.f,-26.f,-32.f,-40.f,-40.f,-40.f,-40.f,-40.f},/*2000*/ |
{-14.f,-20.f,-20.f,-20.f,-26.f,-32.f,-40.f,-40.f,-40.f,-40.f,-40.f},/*2800*/ |
{-14.f,-20.f,-20.f,-20.f,-26.f,-32.f,-40.f,-40.f,-40.f,-40.f,-40.f},/*4000*/ |
{-10.f,-12.f,-14.f,-16.f,-16.f,-20.f,-24.f,-30.f,-32.f,-40.f,-40.f},/*5600*/ |
{-10.f,-12.f,-14.f,-16.f,-16.f,-20.f,-24.f,-30.f,-32.f,-40.f,-40.f},/*8000*/ |
{-10.f,-10.f,-10.f,-12.f,-14.f,-18.f,-22.f,-28.f,-32.f,-40.f,-40.f},/*11500*/ |
{-10.f,-10.f,-10.f,-12.f,-14.f,-18.f,-22.f,-28.f,-32.f,-40.f,-40.f},/*16000*/ |
}, |
1,/*noisemaskp */ |
-10.f, /* suppress any noise curve over maxspec+n */ |
.5f, /* low window */ |
.5f, /* high window */ |
10, |
10, |
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*/ |
.300f, 0.f, /*1400*/ |
.300f, 0.f, /*2000*/ |
.300f, 0.f, /*2800*/ |
.500f, 0.f, /*4000*/ |
.700f, 0.f, /*5600*/ |
.850f, 0.f, /*8000*/ |
.900f, 0.f, /*11500*/ |
.900f, 1.f, /*16000*/ |
}, |
95.f, /* even decade + 5 is important; saves an rint() later in a |
tight loop) */ |
-44., |
32, |
_vp_part0,_vp_couple0 |
}; |
static vorbis_info_floor1 _floor_set0={1, |
{0}, |
{32}, |
{0}, |
{0}, |
{{-1}}, |
2, |
{0,1024, |
88,31,243, |
14,54,143,460, |
6,3,10, 22,18,26, 41,36,47, |
69,61,78, 112,99,126, 185,162,211, |
329,282,387, 672,553,825 |
}, |
60,30,400, |
20,8,1,18., |
20,600, |
960}; |
static vorbis_info_mapping0 mapping_info={1,{0,1},{0},{0},{0},0, 1, {0},{1}}; |
static codec_setup_info codec_setup0={ {0,0}, |
1,1,1,1,1,0,1, |
{NULL}, |
{0},{&mapping_info}, |
{0},{NULL}, |
{1},{&_floor_set0}, |
{2},{NULL}, |
{NULL}, |
{&_psy_set0}, |
&_psy_set0G}; |
static int noisy=0; |
void analysis(char *base,int i,float *v,int n,int bark,int dB){ |
if(noisy){ |
int j; |
FILE *of; |
char buffer[80]; |
sprintf(buffer,"%s_%d.m",base,i); |
of=fopen(buffer,"w"); |
for(j=0;j<n;j++){ |
if(dB && v[j]==0) |
fprintf(of,"\n\n"); |
else{ |
if(bark) |
fprintf(of,"%g ",toBARK(22050.f*j/n)); |
else |
fprintf(of,"%g ",(float)j); |
if(dB){ |
fprintf(of,"%g\n",todB(v+j)); |
}else{ |
fprintf(of,"%g\n",v[j]); |
} |
} |
} |
fclose(of); |
} |
} |
long frameno=0; |
/****************************************************************/ |
int main(int argc,char *argv[]){ |
int eos=0; |
float nonz=0.f; |
float acc=0.f; |
float tot=0.f; |
float ampmax=-9999,newmax; |
float local_ampmax[2]; |
int framesize=2048; |
float ampmax_att_per_sec=-6.; |
float *pcm[2],*out[2],*window,*flr[2],*mask[2],*work[2]; |
signed char *buffer,*buffer2; |
mdct_lookup m_look; |
drft_lookup f_look; |
vorbis_look_psy p_look; |
vorbis_look_psy_global *pg_look; |
vorbis_look_floor *floor_look; |
vorbis_info vi; |
long i,j,k; |
int ath=0; |
int decayp=0; |
argv++; |
while(*argv){ |
if(*argv[0]=='-'){ |
/* option */ |
if(argv[0][1]=='v'){ |
noisy=0; |
} |
}else |
if(*argv[0]=='+'){ |
/* option */ |
if(argv[0][1]=='v'){ |
noisy=1; |
} |
}else |
framesize=atoi(argv[0]); |
argv++; |
} |
vi.channels=2; |
vi.codec_setup=&codec_setup0; |
pcm[0]=_ogg_malloc(framesize*sizeof(float)); |
pcm[1]=_ogg_malloc(framesize*sizeof(float)); |
out[0]=_ogg_calloc(framesize/2,sizeof(float)); |
out[1]=_ogg_calloc(framesize/2,sizeof(float)); |
work[0]=_ogg_calloc(framesize,sizeof(float)); |
work[1]=_ogg_calloc(framesize,sizeof(float)); |
flr[0]=_ogg_calloc(framesize/2,sizeof(float)); |
flr[1]=_ogg_calloc(framesize/2,sizeof(float)); |
buffer=_ogg_malloc(framesize*4); |
buffer2=buffer+framesize*2; |
window=_vorbis_window_create(0,framesize,framesize/2,framesize/2); |
mdct_init(&m_look,framesize); |
drft_init(&f_look,framesize); |
_vp_psy_init(&p_look,&_psy_set0,&_psy_set0G,framesize/2,44100); |
pg_look=_vp_global_look(&vi); |
floor_look=_floor_P[1]->look(NULL,NULL,&_floor_set0); |
/* we cheat on the WAV header; we just bypass 44 bytes and never |
verify that it matches 16bit/stereo/44.1kHz. */ |
fread(buffer,1,44,stdin); |
fwrite(buffer,1,44,stdout); |
memset(buffer,0,framesize*2); |
analysis("window",0,window,framesize,0,0); |
fprintf(stderr,"Processing for frame size %d...\n",framesize); |
while(!eos){ |
long bytes=fread(buffer2,1,framesize*2,stdin); |
if(bytes<framesize*2) |
memset(buffer2+bytes,0,framesize*2-bytes); |
if(bytes!=0){ |
int nonzero[2]; |
/* uninterleave samples */ |
for(i=0;i<framesize;i++){ |
pcm[0][i]=((buffer[i*4+1]<<8)| |
(0x00ff&(int)buffer[i*4]))/32768.f; |
pcm[1][i]=((buffer[i*4+3]<<8)| |
(0x00ff&(int)buffer[i*4+2]))/32768.f; |
} |
{ |
float secs=framesize/44100.; |
ampmax+=secs*ampmax_att_per_sec; |
if(ampmax<-9999)ampmax=-9999; |
} |
for(i=0;i<2;i++){ |
float scale=4.f/framesize; |
float *fft=work[i]; |
float *mdct=pcm[i]; |
float *logmdct=mdct+framesize/2; |
analysis("pre",frameno+i,pcm[i],framesize,0,0); |
/* fft and mdct transforms */ |
for(j=0;j<framesize;j++) |
fft[j]=pcm[i][j]*=window[j]; |
drft_forward(&f_look,fft); |
local_ampmax[i]=-9999.f; |
fft[0]*=scale; |
fft[0]=todB(fft); |
for(j=1;j<framesize-1;j+=2){ |
float temp=scale*FAST_HYPOT(fft[j],fft[j+1]); |
temp=fft[(j+1)>>1]=todB(&temp); |
if(temp>local_ampmax[i])local_ampmax[i]=temp; |
} |
if(local_ampmax[i]>ampmax)ampmax=local_ampmax[i]; |
mdct_forward(&m_look,pcm[i],mdct); |
for(j=0;j<framesize/2;j++) |
logmdct[j]=todB(mdct+j); |
analysis("mdct",frameno+i,logmdct,framesize/2,1,0); |
analysis("fft",frameno+i,fft,framesize/2,1,0); |
} |
for(i=0;i<2;i++){ |
float amp; |
float *fft=work[i]; |
float *logmax=fft; |
float *mdct=pcm[i]; |
float *logmdct=mdct+framesize/2; |
float *mask=fft+framesize/2; |
/* floor psychoacoustics */ |
_vp_compute_mask(&p_look, |
pg_look, |
i, |
fft, |
logmdct, |
mask, |
ampmax, |
local_ampmax[i], |
framesize/2); |
analysis("mask",frameno+i,mask,framesize/2,1,0); |
{ |
vorbis_block vb; |
vorbis_dsp_state vd; |
memset(&vd,0,sizeof(vd)); |
vd.vi=&vi; |
vb.vd=&vd; |
vb.pcmend=framesize; |
/* floor quantization/application */ |
nonzero[i]=_floor_P[1]->forward(&vb,floor_look, |
mdct, |
logmdct, |
mask, |
logmax, |
flr[i]); |
} |
_vp_remove_floor(&p_look, |
pg_look, |
logmdct, |
mdct, |
flr[i], |
pcm[i], |
local_ampmax[i]); |
for(j=0;j<framesize/2;j++) |
if(fabs(pcm[i][j])>1500) |
fprintf(stderr,"%ld ",frameno+i); |
analysis("res",frameno+i,pcm[i],framesize/2,1,0); |
analysis("codedflr",frameno+i,flr[i],framesize/2,1,1); |
} |
/* residue prequantization */ |
_vp_partition_prequant(&p_look, |
&vi, |
pcm, |
nonzero); |
for(i=0;i<2;i++) |
analysis("quant",frameno+i,pcm[i],framesize/2,1,0); |
/* channel coupling / stereo quantization */ |
_vp_couple(&p_look, |
&mapping_info, |
pcm, |
nonzero); |
for(i=0;i<2;i++) |
analysis("coupled",frameno+i,pcm[i],framesize/2,1,0); |
/* decoupling */ |
for(i=mapping_info.coupling_steps-1;i>=0;i--){ |
float *pcmM=pcm[mapping_info.coupling_mag[i]]; |
float *pcmA=pcm[mapping_info.coupling_ang[i]]; |
for(j=0;j<framesize/2;j++){ |
float mag=pcmM[j]; |
float ang=pcmA[j]; |
if(mag>0) |
if(ang>0){ |
pcmM[j]=mag; |
pcmA[j]=mag-ang; |
}else{ |
pcmA[j]=mag; |
pcmM[j]=mag+ang; |
} |
else |
if(ang>0){ |
pcmM[j]=mag; |
pcmA[j]=mag+ang; |
}else{ |
pcmA[j]=mag; |
pcmM[j]=mag-ang; |
} |
} |
} |
for(i=0;i<2;i++) |
analysis("decoupled",frameno+i,pcm[i],framesize/2,1,0); |
for(i=0;i<2;i++){ |
float amp; |
for(j=0;j<framesize/2;j++) |
pcm[i][j]*=flr[i][j]; |
analysis("final",frameno+i,pcm[i],framesize/2,1,1); |
/* take it back to time */ |
mdct_backward(&m_look,pcm[i],pcm[i]); |
for(j=0;j<framesize/2;j++) |
out[i][j]+=pcm[i][j]*window[j]; |
analysis("out",frameno+i,out[i],framesize/2,0,0); |
} |
/* write data. Use the part of buffer we're about to shift out */ |
for(i=0;i<2;i++){ |
char *ptr=buffer+i*2; |
float *mono=out[i]; |
int flag=0; |
for(j=0;j<framesize/2;j++){ |
int val=mono[j]*32767.; |
/* might as well guard against clipping */ |
if(val>32767){ |
if(!flag)fprintf(stderr,"clipping in frame %ld ",frameno+i); |
flag=1; |
val=32767; |
} |
if(val<-32768){ |
if(!flag)fprintf(stderr,"clipping in frame %ld ",frameno+i); |
flag=1; |
val=-32768; |
} |
ptr[0]=val&0xff; |
ptr[1]=(val>>8)&0xff; |
ptr+=4; |
} |
} |
fprintf(stderr,"*"); |
fwrite(buffer,1,framesize*2,stdout); |
memmove(buffer,buffer2,framesize*2); |
for(i=0;i<2;i++){ |
for(j=0,k=framesize/2;j<framesize/2;j++,k++) |
out[i][j]=pcm[i][k]*window[k]; |
} |
frameno+=2; |
}else |
eos=1; |
} |
fprintf(stderr,"average raw bits of entropy: %.03g/sample\n",acc/tot); |
fprintf(stderr,"average nonzero samples: %.03g/%d\n",nonz/tot*framesize/2, |
framesize/2); |
fprintf(stderr,"Done\n\n"); |
return 0; |
} |
/contrib/sdk/sources/libvorbis-1.3.7/lib/registry.c |
---|
0,0 → 1,44 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: registry for time, floor, res backends and channel mappings |
********************************************************************/ |
#include "vorbis/codec.h" |
#include "codec_internal.h" |
#include "registry.h" |
#include "misc.h" |
/* seems like major overkill now; the backend numbers will grow into |
the infrastructure soon enough */ |
extern const vorbis_func_floor floor0_exportbundle; |
extern const vorbis_func_floor floor1_exportbundle; |
extern const vorbis_func_residue residue0_exportbundle; |
extern const vorbis_func_residue residue1_exportbundle; |
extern const vorbis_func_residue residue2_exportbundle; |
extern const vorbis_func_mapping mapping0_exportbundle; |
const vorbis_func_floor *const _floor_P[]={ |
&floor0_exportbundle, |
&floor1_exportbundle, |
}; |
const vorbis_func_residue *const _residue_P[]={ |
&residue0_exportbundle, |
&residue1_exportbundle, |
&residue2_exportbundle, |
}; |
const vorbis_func_mapping *const _mapping_P[]={ |
&mapping0_exportbundle, |
}; |
/contrib/sdk/sources/libvorbis-1.3.7/lib/registry.h |
---|
0,0 → 1,31 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: registry for time, floor, res backends and channel mappings |
********************************************************************/ |
#ifndef _V_REG_H_ |
#define _V_REG_H_ |
#define VI_TRANSFORMB 1 |
#define VI_WINDOWB 1 |
#define VI_TIMEB 1 |
#define VI_FLOORB 2 |
#define VI_RESB 3 |
#define VI_MAPB 1 |
extern const vorbis_func_floor *const _floor_P[]; |
extern const vorbis_func_residue *const _residue_P[]; |
extern const vorbis_func_mapping *const _mapping_P[]; |
#endif |
/contrib/sdk/sources/libvorbis-1.3.7/lib/res0.c |
---|
0,0 → 1,886 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2010 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: residue backend 0, 1 and 2 implementation |
********************************************************************/ |
/* Slow, slow, slow, simpleminded and did I mention it was slow? The |
encode/decode loops are coded for clarity and performance is not |
yet even a nagging little idea lurking in the shadows. Oh and BTW, |
it's slow. */ |
#include <stdlib.h> |
#include <string.h> |
#include <math.h> |
#include <ogg/ogg.h> |
#include "vorbis/codec.h" |
#include "codec_internal.h" |
#include "registry.h" |
#include "codebook.h" |
#include "misc.h" |
#include "os.h" |
#if defined(TRAIN_RES) || defined (TRAIN_RESAUX) |
#include <stdio.h> |
#endif |
typedef struct { |
vorbis_info_residue0 *info; |
int parts; |
int stages; |
codebook *fullbooks; |
codebook *phrasebook; |
codebook ***partbooks; |
int partvals; |
int **decodemap; |
long postbits; |
long phrasebits; |
long frames; |
#if defined(TRAIN_RES) || defined(TRAIN_RESAUX) |
int train_seq; |
long *training_data[8][64]; |
float training_max[8][64]; |
float training_min[8][64]; |
float tmin; |
float tmax; |
int submap; |
#endif |
} vorbis_look_residue0; |
void res0_free_info(vorbis_info_residue *i){ |
vorbis_info_residue0 *info=(vorbis_info_residue0 *)i; |
if(info){ |
memset(info,0,sizeof(*info)); |
_ogg_free(info); |
} |
} |
void res0_free_look(vorbis_look_residue *i){ |
int j; |
if(i){ |
vorbis_look_residue0 *look=(vorbis_look_residue0 *)i; |
#ifdef TRAIN_RES |
{ |
int j,k,l; |
for(j=0;j<look->parts;j++){ |
/*fprintf(stderr,"partition %d: ",j);*/ |
for(k=0;k<8;k++) |
if(look->training_data[k][j]){ |
char buffer[80]; |
FILE *of; |
codebook *statebook=look->partbooks[j][k]; |
/* long and short into the same bucket by current convention */ |
sprintf(buffer,"res_sub%d_part%d_pass%d.vqd",look->submap,j,k); |
of=fopen(buffer,"a"); |
for(l=0;l<statebook->entries;l++) |
fprintf(of,"%d:%ld\n",l,look->training_data[k][j][l]); |
fclose(of); |
/*fprintf(stderr,"%d(%.2f|%.2f) ",k, |
look->training_min[k][j],look->training_max[k][j]);*/ |
_ogg_free(look->training_data[k][j]); |
look->training_data[k][j]=NULL; |
} |
/*fprintf(stderr,"\n");*/ |
} |
} |
fprintf(stderr,"min/max residue: %g::%g\n",look->tmin,look->tmax); |
/*fprintf(stderr,"residue bit usage %f:%f (%f total)\n", |
(float)look->phrasebits/look->frames, |
(float)look->postbits/look->frames, |
(float)(look->postbits+look->phrasebits)/look->frames);*/ |
#endif |
/*vorbis_info_residue0 *info=look->info; |
fprintf(stderr, |
"%ld frames encoded in %ld phrasebits and %ld residue bits " |
"(%g/frame) \n",look->frames,look->phrasebits, |
look->resbitsflat, |
(look->phrasebits+look->resbitsflat)/(float)look->frames); |
for(j=0;j<look->parts;j++){ |
long acc=0; |
fprintf(stderr,"\t[%d] == ",j); |
for(k=0;k<look->stages;k++) |
if((info->secondstages[j]>>k)&1){ |
fprintf(stderr,"%ld,",look->resbits[j][k]); |
acc+=look->resbits[j][k]; |
} |
fprintf(stderr,":: (%ld vals) %1.2fbits/sample\n",look->resvals[j], |
acc?(float)acc/(look->resvals[j]*info->grouping):0); |
} |
fprintf(stderr,"\n");*/ |
for(j=0;j<look->parts;j++) |
if(look->partbooks[j])_ogg_free(look->partbooks[j]); |
_ogg_free(look->partbooks); |
for(j=0;j<look->partvals;j++) |
_ogg_free(look->decodemap[j]); |
_ogg_free(look->decodemap); |
memset(look,0,sizeof(*look)); |
_ogg_free(look); |
} |
} |
static int icount(unsigned int v){ |
int ret=0; |
while(v){ |
ret+=v&1; |
v>>=1; |
} |
return(ret); |
} |
void res0_pack(vorbis_info_residue *vr,oggpack_buffer *opb){ |
vorbis_info_residue0 *info=(vorbis_info_residue0 *)vr; |
int j,acc=0; |
oggpack_write(opb,info->begin,24); |
oggpack_write(opb,info->end,24); |
oggpack_write(opb,info->grouping-1,24); /* residue vectors to group and |
code with a partitioned book */ |
oggpack_write(opb,info->partitions-1,6); /* possible partition choices */ |
oggpack_write(opb,info->groupbook,8); /* group huffman book */ |
/* secondstages is a bitmask; as encoding progresses pass by pass, a |
bitmask of one indicates this partition class has bits to write |
this pass */ |
for(j=0;j<info->partitions;j++){ |
if(ov_ilog(info->secondstages[j])>3){ |
/* yes, this is a minor hack due to not thinking ahead */ |
oggpack_write(opb,info->secondstages[j],3); |
oggpack_write(opb,1,1); |
oggpack_write(opb,info->secondstages[j]>>3,5); |
}else |
oggpack_write(opb,info->secondstages[j],4); /* trailing zero */ |
acc+=icount(info->secondstages[j]); |
} |
for(j=0;j<acc;j++) |
oggpack_write(opb,info->booklist[j],8); |
} |
/* vorbis_info is for range checking */ |
vorbis_info_residue *res0_unpack(vorbis_info *vi,oggpack_buffer *opb){ |
int j,acc=0; |
vorbis_info_residue0 *info=_ogg_calloc(1,sizeof(*info)); |
codec_setup_info *ci=vi->codec_setup; |
info->begin=oggpack_read(opb,24); |
info->end=oggpack_read(opb,24); |
info->grouping=oggpack_read(opb,24)+1; |
info->partitions=oggpack_read(opb,6)+1; |
info->groupbook=oggpack_read(opb,8); |
/* check for premature EOP */ |
if(info->groupbook<0)goto errout; |
for(j=0;j<info->partitions;j++){ |
int cascade=oggpack_read(opb,3); |
int cflag=oggpack_read(opb,1); |
if(cflag<0) goto errout; |
if(cflag){ |
int c=oggpack_read(opb,5); |
if(c<0) goto errout; |
cascade|=(c<<3); |
} |
info->secondstages[j]=cascade; |
acc+=icount(cascade); |
} |
for(j=0;j<acc;j++){ |
int book=oggpack_read(opb,8); |
if(book<0) goto errout; |
info->booklist[j]=book; |
} |
if(info->groupbook>=ci->books)goto errout; |
for(j=0;j<acc;j++){ |
if(info->booklist[j]>=ci->books)goto errout; |
if(ci->book_param[info->booklist[j]]->maptype==0)goto errout; |
} |
/* verify the phrasebook is not specifying an impossible or |
inconsistent partitioning scheme. */ |
/* modify the phrasebook ranging check from r16327; an early beta |
encoder had a bug where it used an oversized phrasebook by |
accident. These files should continue to be playable, but don't |
allow an exploit */ |
{ |
int entries = ci->book_param[info->groupbook]->entries; |
int dim = ci->book_param[info->groupbook]->dim; |
int partvals = 1; |
if (dim<1) goto errout; |
while(dim>0){ |
partvals *= info->partitions; |
if(partvals > entries) goto errout; |
dim--; |
} |
info->partvals = partvals; |
} |
return(info); |
errout: |
res0_free_info(info); |
return(NULL); |
} |
vorbis_look_residue *res0_look(vorbis_dsp_state *vd, |
vorbis_info_residue *vr){ |
vorbis_info_residue0 *info=(vorbis_info_residue0 *)vr; |
vorbis_look_residue0 *look=_ogg_calloc(1,sizeof(*look)); |
codec_setup_info *ci=vd->vi->codec_setup; |
int j,k,acc=0; |
int dim; |
int maxstage=0; |
look->info=info; |
look->parts=info->partitions; |
look->fullbooks=ci->fullbooks; |
look->phrasebook=ci->fullbooks+info->groupbook; |
dim=look->phrasebook->dim; |
look->partbooks=_ogg_calloc(look->parts,sizeof(*look->partbooks)); |
for(j=0;j<look->parts;j++){ |
int stages=ov_ilog(info->secondstages[j]); |
if(stages){ |
if(stages>maxstage)maxstage=stages; |
look->partbooks[j]=_ogg_calloc(stages,sizeof(*look->partbooks[j])); |
for(k=0;k<stages;k++) |
if(info->secondstages[j]&(1<<k)){ |
look->partbooks[j][k]=ci->fullbooks+info->booklist[acc++]; |
#ifdef TRAIN_RES |
look->training_data[k][j]=_ogg_calloc(look->partbooks[j][k]->entries, |
sizeof(***look->training_data)); |
#endif |
} |
} |
} |
look->partvals=1; |
for(j=0;j<dim;j++) |
look->partvals*=look->parts; |
look->stages=maxstage; |
look->decodemap=_ogg_malloc(look->partvals*sizeof(*look->decodemap)); |
for(j=0;j<look->partvals;j++){ |
long val=j; |
long mult=look->partvals/look->parts; |
look->decodemap[j]=_ogg_malloc(dim*sizeof(*look->decodemap[j])); |
for(k=0;k<dim;k++){ |
long deco=val/mult; |
val-=deco*mult; |
mult/=look->parts; |
look->decodemap[j][k]=deco; |
} |
} |
#if defined(TRAIN_RES) || defined (TRAIN_RESAUX) |
{ |
static int train_seq=0; |
look->train_seq=train_seq++; |
} |
#endif |
return(look); |
} |
/* break an abstraction and copy some code for performance purposes */ |
static int local_book_besterror(codebook *book,int *a){ |
int dim=book->dim; |
int i,j,o; |
int minval=book->minval; |
int del=book->delta; |
int qv=book->quantvals; |
int ze=(qv>>1); |
int index=0; |
/* assumes integer/centered encoder codebook maptype 1 no more than dim 8 */ |
int p[8]={0,0,0,0,0,0,0,0}; |
if(del!=1){ |
for(i=0,o=dim;i<dim;i++){ |
int v = (a[--o]-minval+(del>>1))/del; |
int m = (v<ze ? ((ze-v)<<1)-1 : ((v-ze)<<1)); |
index = index*qv+ (m<0?0:(m>=qv?qv-1:m)); |
p[o]=v*del+minval; |
} |
}else{ |
for(i=0,o=dim;i<dim;i++){ |
int v = a[--o]-minval; |
int m = (v<ze ? ((ze-v)<<1)-1 : ((v-ze)<<1)); |
index = index*qv+ (m<0?0:(m>=qv?qv-1:m)); |
p[o]=v*del+minval; |
} |
} |
if(book->c->lengthlist[index]<=0){ |
const static_codebook *c=book->c; |
int best=-1; |
/* assumes integer/centered encoder codebook maptype 1 no more than dim 8 */ |
int e[8]={0,0,0,0,0,0,0,0}; |
int maxval = book->minval + book->delta*(book->quantvals-1); |
for(i=0;i<book->entries;i++){ |
if(c->lengthlist[i]>0){ |
int this=0; |
for(j=0;j<dim;j++){ |
int val=(e[j]-a[j]); |
this+=val*val; |
} |
if(best==-1 || this<best){ |
memcpy(p,e,sizeof(p)); |
best=this; |
index=i; |
} |
} |
/* assumes the value patterning created by the tools in vq/ */ |
j=0; |
while(e[j]>=maxval) |
e[j++]=0; |
if(e[j]>=0) |
e[j]+=book->delta; |
e[j]= -e[j]; |
} |
} |
if(index>-1){ |
for(i=0;i<dim;i++) |
*a++ -= p[i]; |
} |
return(index); |
} |
#ifdef TRAIN_RES |
static int _encodepart(oggpack_buffer *opb,int *vec, int n, |
codebook *book,long *acc){ |
#else |
static int _encodepart(oggpack_buffer *opb,int *vec, int n, |
codebook *book){ |
#endif |
int i,bits=0; |
int dim=book->dim; |
int step=n/dim; |
for(i=0;i<step;i++){ |
int entry=local_book_besterror(book,vec+i*dim); |
#ifdef TRAIN_RES |
if(entry>=0) |
acc[entry]++; |
#endif |
bits+=vorbis_book_encode(book,entry,opb); |
} |
return(bits); |
} |
static long **_01class(vorbis_block *vb,vorbis_look_residue *vl, |
int **in,int ch){ |
long i,j,k; |
vorbis_look_residue0 *look=(vorbis_look_residue0 *)vl; |
vorbis_info_residue0 *info=look->info; |
/* move all this setup out later */ |
int samples_per_partition=info->grouping; |
int possible_partitions=info->partitions; |
int n=info->end-info->begin; |
int partvals=n/samples_per_partition; |
long **partword=_vorbis_block_alloc(vb,ch*sizeof(*partword)); |
float scale=100./samples_per_partition; |
/* we find the partition type for each partition of each |
channel. We'll go back and do the interleaved encoding in a |
bit. For now, clarity */ |
for(i=0;i<ch;i++){ |
partword[i]=_vorbis_block_alloc(vb,n/samples_per_partition*sizeof(*partword[i])); |
memset(partword[i],0,n/samples_per_partition*sizeof(*partword[i])); |
} |
for(i=0;i<partvals;i++){ |
int offset=i*samples_per_partition+info->begin; |
for(j=0;j<ch;j++){ |
int max=0; |
int ent=0; |
for(k=0;k<samples_per_partition;k++){ |
if(abs(in[j][offset+k])>max)max=abs(in[j][offset+k]); |
ent+=abs(in[j][offset+k]); |
} |
ent*=scale; |
for(k=0;k<possible_partitions-1;k++) |
if(max<=info->classmetric1[k] && |
(info->classmetric2[k]<0 || ent<info->classmetric2[k])) |
break; |
partword[j][i]=k; |
} |
} |
#ifdef TRAIN_RESAUX |
{ |
FILE *of; |
char buffer[80]; |
for(i=0;i<ch;i++){ |
sprintf(buffer,"resaux_%d.vqd",look->train_seq); |
of=fopen(buffer,"a"); |
for(j=0;j<partvals;j++) |
fprintf(of,"%ld, ",partword[i][j]); |
fprintf(of,"\n"); |
fclose(of); |
} |
} |
#endif |
look->frames++; |
return(partword); |
} |
/* designed for stereo or other modes where the partition size is an |
integer multiple of the number of channels encoded in the current |
submap */ |
static long **_2class(vorbis_block *vb,vorbis_look_residue *vl,int **in, |
int ch){ |
long i,j,k,l; |
vorbis_look_residue0 *look=(vorbis_look_residue0 *)vl; |
vorbis_info_residue0 *info=look->info; |
/* move all this setup out later */ |
int samples_per_partition=info->grouping; |
int possible_partitions=info->partitions; |
int n=info->end-info->begin; |
int partvals=n/samples_per_partition; |
long **partword=_vorbis_block_alloc(vb,sizeof(*partword)); |
#if defined(TRAIN_RES) || defined (TRAIN_RESAUX) |
FILE *of; |
char buffer[80]; |
#endif |
partword[0]=_vorbis_block_alloc(vb,partvals*sizeof(*partword[0])); |
memset(partword[0],0,partvals*sizeof(*partword[0])); |
for(i=0,l=info->begin/ch;i<partvals;i++){ |
int magmax=0; |
int angmax=0; |
for(j=0;j<samples_per_partition;j+=ch){ |
if(abs(in[0][l])>magmax)magmax=abs(in[0][l]); |
for(k=1;k<ch;k++) |
if(abs(in[k][l])>angmax)angmax=abs(in[k][l]); |
l++; |
} |
for(j=0;j<possible_partitions-1;j++) |
if(magmax<=info->classmetric1[j] && |
angmax<=info->classmetric2[j]) |
break; |
partword[0][i]=j; |
} |
#ifdef TRAIN_RESAUX |
sprintf(buffer,"resaux_%d.vqd",look->train_seq); |
of=fopen(buffer,"a"); |
for(i=0;i<partvals;i++) |
fprintf(of,"%ld, ",partword[0][i]); |
fprintf(of,"\n"); |
fclose(of); |
#endif |
look->frames++; |
return(partword); |
} |
static int _01forward(oggpack_buffer *opb, |
vorbis_look_residue *vl, |
int **in,int ch, |
long **partword, |
#ifdef TRAIN_RES |
int (*encode)(oggpack_buffer *,int *,int, |
codebook *,long *), |
int submap |
#else |
int (*encode)(oggpack_buffer *,int *,int, |
codebook *) |
#endif |
){ |
long i,j,k,s; |
vorbis_look_residue0 *look=(vorbis_look_residue0 *)vl; |
vorbis_info_residue0 *info=look->info; |
#ifdef TRAIN_RES |
look->submap=submap; |
#endif |
/* move all this setup out later */ |
int samples_per_partition=info->grouping; |
int possible_partitions=info->partitions; |
int partitions_per_word=look->phrasebook->dim; |
int n=info->end-info->begin; |
int partvals=n/samples_per_partition; |
long resbits[128]; |
long resvals[128]; |
#ifdef TRAIN_RES |
for(i=0;i<ch;i++) |
for(j=info->begin;j<info->end;j++){ |
if(in[i][j]>look->tmax)look->tmax=in[i][j]; |
if(in[i][j]<look->tmin)look->tmin=in[i][j]; |
} |
#endif |
memset(resbits,0,sizeof(resbits)); |
memset(resvals,0,sizeof(resvals)); |
/* we code the partition words for each channel, then the residual |
words for a partition per channel until we've written all the |
residual words for that partition word. Then write the next |
partition channel words... */ |
for(s=0;s<look->stages;s++){ |
for(i=0;i<partvals;){ |
/* first we encode a partition codeword for each channel */ |
if(s==0){ |
for(j=0;j<ch;j++){ |
long val=partword[j][i]; |
for(k=1;k<partitions_per_word;k++){ |
val*=possible_partitions; |
if(i+k<partvals) |
val+=partword[j][i+k]; |
} |
/* training hack */ |
if(val<look->phrasebook->entries) |
look->phrasebits+=vorbis_book_encode(look->phrasebook,val,opb); |
#if 0 /*def TRAIN_RES*/ |
else |
fprintf(stderr,"!"); |
#endif |
} |
} |
/* now we encode interleaved residual values for the partitions */ |
for(k=0;k<partitions_per_word && i<partvals;k++,i++){ |
long offset=i*samples_per_partition+info->begin; |
for(j=0;j<ch;j++){ |
if(s==0)resvals[partword[j][i]]+=samples_per_partition; |
if(info->secondstages[partword[j][i]]&(1<<s)){ |
codebook *statebook=look->partbooks[partword[j][i]][s]; |
if(statebook){ |
int ret; |
#ifdef TRAIN_RES |
long *accumulator=NULL; |
accumulator=look->training_data[s][partword[j][i]]; |
{ |
int l; |
int *samples=in[j]+offset; |
for(l=0;l<samples_per_partition;l++){ |
if(samples[l]<look->training_min[s][partword[j][i]]) |
look->training_min[s][partword[j][i]]=samples[l]; |
if(samples[l]>look->training_max[s][partword[j][i]]) |
look->training_max[s][partword[j][i]]=samples[l]; |
} |
} |
ret=encode(opb,in[j]+offset,samples_per_partition, |
statebook,accumulator); |
#else |
ret=encode(opb,in[j]+offset,samples_per_partition, |
statebook); |
#endif |
look->postbits+=ret; |
resbits[partword[j][i]]+=ret; |
} |
} |
} |
} |
} |
} |
return(0); |
} |
/* a truncated packet here just means 'stop working'; it's not an error */ |
static int _01inverse(vorbis_block *vb,vorbis_look_residue *vl, |
float **in,int ch, |
long (*decodepart)(codebook *, float *, |
oggpack_buffer *,int)){ |
long i,j,k,l,s; |
vorbis_look_residue0 *look=(vorbis_look_residue0 *)vl; |
vorbis_info_residue0 *info=look->info; |
/* move all this setup out later */ |
int samples_per_partition=info->grouping; |
int partitions_per_word=look->phrasebook->dim; |
int max=vb->pcmend>>1; |
int end=(info->end<max?info->end:max); |
int n=end-info->begin; |
if(n>0){ |
int partvals=n/samples_per_partition; |
int partwords=(partvals+partitions_per_word-1)/partitions_per_word; |
int ***partword=alloca(ch*sizeof(*partword)); |
for(j=0;j<ch;j++) |
partword[j]=_vorbis_block_alloc(vb,partwords*sizeof(*partword[j])); |
for(s=0;s<look->stages;s++){ |
/* each loop decodes on partition codeword containing |
partitions_per_word partitions */ |
for(i=0,l=0;i<partvals;l++){ |
if(s==0){ |
/* fetch the partition word for each channel */ |
for(j=0;j<ch;j++){ |
int temp=vorbis_book_decode(look->phrasebook,&vb->opb); |
if(temp==-1 || temp>=info->partvals)goto eopbreak; |
partword[j][l]=look->decodemap[temp]; |
if(partword[j][l]==NULL)goto errout; |
} |
} |
/* now we decode residual values for the partitions */ |
for(k=0;k<partitions_per_word && i<partvals;k++,i++) |
for(j=0;j<ch;j++){ |
long offset=info->begin+i*samples_per_partition; |
if(info->secondstages[partword[j][l][k]]&(1<<s)){ |
codebook *stagebook=look->partbooks[partword[j][l][k]][s]; |
if(stagebook){ |
if(decodepart(stagebook,in[j]+offset,&vb->opb, |
samples_per_partition)==-1)goto eopbreak; |
} |
} |
} |
} |
} |
} |
errout: |
eopbreak: |
return(0); |
} |
int res0_inverse(vorbis_block *vb,vorbis_look_residue *vl, |
float **in,int *nonzero,int ch){ |
int i,used=0; |
for(i=0;i<ch;i++) |
if(nonzero[i]) |
in[used++]=in[i]; |
if(used) |
return(_01inverse(vb,vl,in,used,vorbis_book_decodevs_add)); |
else |
return(0); |
} |
int res1_forward(oggpack_buffer *opb,vorbis_block *vb,vorbis_look_residue *vl, |
int **in,int *nonzero,int ch, long **partword, int submap){ |
int i,used=0; |
(void)vb; |
for(i=0;i<ch;i++) |
if(nonzero[i]) |
in[used++]=in[i]; |
if(used){ |
#ifdef TRAIN_RES |
return _01forward(opb,vl,in,used,partword,_encodepart,submap); |
#else |
(void)submap; |
return _01forward(opb,vl,in,used,partword,_encodepart); |
#endif |
}else{ |
return(0); |
} |
} |
long **res1_class(vorbis_block *vb,vorbis_look_residue *vl, |
int **in,int *nonzero,int ch){ |
int i,used=0; |
for(i=0;i<ch;i++) |
if(nonzero[i]) |
in[used++]=in[i]; |
if(used) |
return(_01class(vb,vl,in,used)); |
else |
return(0); |
} |
int res1_inverse(vorbis_block *vb,vorbis_look_residue *vl, |
float **in,int *nonzero,int ch){ |
int i,used=0; |
for(i=0;i<ch;i++) |
if(nonzero[i]) |
in[used++]=in[i]; |
if(used) |
return(_01inverse(vb,vl,in,used,vorbis_book_decodev_add)); |
else |
return(0); |
} |
long **res2_class(vorbis_block *vb,vorbis_look_residue *vl, |
int **in,int *nonzero,int ch){ |
int i,used=0; |
for(i=0;i<ch;i++) |
if(nonzero[i])used++; |
if(used) |
return(_2class(vb,vl,in,ch)); |
else |
return(0); |
} |
/* res2 is slightly more different; all the channels are interleaved |
into a single vector and encoded. */ |
int res2_forward(oggpack_buffer *opb, |
vorbis_block *vb,vorbis_look_residue *vl, |
int **in,int *nonzero,int ch, long **partword,int submap){ |
long i,j,k,n=vb->pcmend/2,used=0; |
/* don't duplicate the code; use a working vector hack for now and |
reshape ourselves into a single channel res1 */ |
/* ugly; reallocs for each coupling pass :-( */ |
int *work=_vorbis_block_alloc(vb,ch*n*sizeof(*work)); |
for(i=0;i<ch;i++){ |
int *pcm=in[i]; |
if(nonzero[i])used++; |
for(j=0,k=i;j<n;j++,k+=ch) |
work[k]=pcm[j]; |
} |
if(used){ |
#ifdef TRAIN_RES |
return _01forward(opb,vl,&work,1,partword,_encodepart,submap); |
#else |
(void)submap; |
return _01forward(opb,vl,&work,1,partword,_encodepart); |
#endif |
}else{ |
return(0); |
} |
} |
/* duplicate code here as speed is somewhat more important */ |
int res2_inverse(vorbis_block *vb,vorbis_look_residue *vl, |
float **in,int *nonzero,int ch){ |
long i,k,l,s; |
vorbis_look_residue0 *look=(vorbis_look_residue0 *)vl; |
vorbis_info_residue0 *info=look->info; |
/* move all this setup out later */ |
int samples_per_partition=info->grouping; |
int partitions_per_word=look->phrasebook->dim; |
int max=(vb->pcmend*ch)>>1; |
int end=(info->end<max?info->end:max); |
int n=end-info->begin; |
if(n>0){ |
int partvals=n/samples_per_partition; |
int partwords=(partvals+partitions_per_word-1)/partitions_per_word; |
int **partword=_vorbis_block_alloc(vb,partwords*sizeof(*partword)); |
for(i=0;i<ch;i++)if(nonzero[i])break; |
if(i==ch)return(0); /* no nonzero vectors */ |
for(s=0;s<look->stages;s++){ |
for(i=0,l=0;i<partvals;l++){ |
if(s==0){ |
/* fetch the partition word */ |
int temp=vorbis_book_decode(look->phrasebook,&vb->opb); |
if(temp==-1 || temp>=info->partvals)goto eopbreak; |
partword[l]=look->decodemap[temp]; |
if(partword[l]==NULL)goto errout; |
} |
/* now we decode residual values for the partitions */ |
for(k=0;k<partitions_per_word && i<partvals;k++,i++) |
if(info->secondstages[partword[l][k]]&(1<<s)){ |
codebook *stagebook=look->partbooks[partword[l][k]][s]; |
if(stagebook){ |
if(vorbis_book_decodevv_add(stagebook,in, |
i*samples_per_partition+info->begin,ch, |
&vb->opb,samples_per_partition)==-1) |
goto eopbreak; |
} |
} |
} |
} |
} |
errout: |
eopbreak: |
return(0); |
} |
const vorbis_func_residue residue0_exportbundle={ |
NULL, |
&res0_unpack, |
&res0_look, |
&res0_free_info, |
&res0_free_look, |
NULL, |
NULL, |
&res0_inverse |
}; |
const vorbis_func_residue residue1_exportbundle={ |
&res0_pack, |
&res0_unpack, |
&res0_look, |
&res0_free_info, |
&res0_free_look, |
&res1_class, |
&res1_forward, |
&res1_inverse |
}; |
const vorbis_func_residue residue2_exportbundle={ |
&res0_pack, |
&res0_unpack, |
&res0_look, |
&res0_free_info, |
&res0_free_look, |
&res2_class, |
&res2_forward, |
&res2_inverse |
}; |
/contrib/sdk/sources/libvorbis-1.3.7/lib/scales.h |
---|
0,0 → 1,89 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: linear scale -> dB, Bark and Mel scales |
********************************************************************/ |
#ifndef _V_SCALES_H_ |
#define _V_SCALES_H_ |
#include <math.h> |
#include "os.h" |
#ifdef _MSC_VER |
/* MS Visual Studio doesn't have C99 inline keyword. */ |
#define inline __inline |
#endif |
/* 20log10(x) */ |
#define VORBIS_IEEE_FLOAT32 1 |
#ifdef VORBIS_IEEE_FLOAT32 |
static inline float unitnorm(float x){ |
union { |
ogg_uint32_t i; |
float f; |
} ix; |
ix.f = x; |
ix.i = (ix.i & 0x80000000U) | (0x3f800000U); |
return ix.f; |
} |
/* Segher was off (too high) by ~ .3 decibel. Center the conversion correctly. */ |
static inline float todB(const float *x){ |
union { |
ogg_uint32_t i; |
float f; |
} ix; |
ix.f = *x; |
ix.i = ix.i&0x7fffffff; |
return (float)(ix.i * 7.17711438e-7f -764.6161886f); |
} |
#define todB_nn(x) todB(x) |
#else |
static float unitnorm(float x){ |
if(x<0)return(-1.f); |
return(1.f); |
} |
#define todB(x) (*(x)==0?-400.f:log(*(x)**(x))*4.34294480f) |
#define todB_nn(x) (*(x)==0.f?-400.f:log(*(x))*8.6858896f) |
#endif |
#define fromdB(x) (exp((x)*.11512925f)) |
/* The bark scale equations are approximations, since the original |
table was somewhat hand rolled. The below are chosen to have the |
best possible fit to the rolled tables, thus their somewhat odd |
appearance (these are more accurate and over a longer range than |
the oft-quoted bark equations found in the texts I have). The |
approximations are valid from 0 - 30kHz (nyquist) or so. |
all f in Hz, z in Bark */ |
#define toBARK(n) (13.1f*atan(.00074f*(n))+2.24f*atan((n)*(n)*1.85e-8f)+1e-4f*(n)) |
#define fromBARK(z) (102.f*(z)-2.f*pow(z,2.f)+.4f*pow(z,3.f)+pow(1.46f,z)-1.f) |
#define toMEL(n) (log(1.f+(n)*.001f)*1442.695f) |
#define fromMEL(m) (1000.f*exp((m)/1442.695f)-1000.f) |
/* Frequency to octave. We arbitrarily declare 63.5 Hz to be octave |
0.0 */ |
#define toOC(n) (log(n)*1.442695f-5.965784f) |
#define fromOC(o) (exp(((o)+5.965784f)*.693147f)) |
#endif |
/contrib/sdk/sources/libvorbis-1.3.7/lib/sharedbook.c |
---|
0,0 → 1,604 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2015 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: basic shared codebook operations |
********************************************************************/ |
#include <stdlib.h> |
#include <limits.h> |
#include <math.h> |
#include <string.h> |
#include <ogg/ogg.h> |
#include "os.h" |
#include "misc.h" |
#include "vorbis/codec.h" |
#include "codebook.h" |
#include "scales.h" |
/**** pack/unpack helpers ******************************************/ |
int ov_ilog(ogg_uint32_t v){ |
int ret; |
for(ret=0;v;ret++)v>>=1; |
return ret; |
} |
/* 32 bit float (not IEEE; nonnormalized mantissa + |
biased exponent) : neeeeeee eeemmmmm mmmmmmmm mmmmmmmm |
Why not IEEE? It's just not that important here. */ |
#define VQ_FEXP 10 |
#define VQ_FMAN 21 |
#define VQ_FEXP_BIAS 768 /* bias toward values smaller than 1. */ |
/* doesn't currently guard under/overflow */ |
long _float32_pack(float val){ |
int sign=0; |
long exp; |
long mant; |
if(val<0){ |
sign=0x80000000; |
val= -val; |
} |
exp= floor(log(val)/log(2.f)+.001); /* +epsilon */ |
mant=rint(ldexp(val,(VQ_FMAN-1)-exp)); |
exp=(exp+VQ_FEXP_BIAS)<<VQ_FMAN; |
return(sign|exp|mant); |
} |
float _float32_unpack(long val){ |
double mant=val&0x1fffff; |
int sign=val&0x80000000; |
long exp =(val&0x7fe00000L)>>VQ_FMAN; |
if(sign)mant= -mant; |
exp=exp-(VQ_FMAN-1)-VQ_FEXP_BIAS; |
/* clamp excessive exponent values */ |
if (exp>63){ |
exp=63; |
} |
if (exp<-63){ |
exp=-63; |
} |
return(ldexp(mant,exp)); |
} |
/* given a list of word lengths, generate a list of codewords. Works |
for length ordered or unordered, always assigns the lowest valued |
codewords first. Extended to handle unused entries (length 0) */ |
ogg_uint32_t *_make_words(char *l,long n,long sparsecount){ |
long i,j,count=0; |
ogg_uint32_t marker[33]; |
ogg_uint32_t *r=_ogg_malloc((sparsecount?sparsecount:n)*sizeof(*r)); |
memset(marker,0,sizeof(marker)); |
for(i=0;i<n;i++){ |
long length=l[i]; |
if(length>0){ |
ogg_uint32_t entry=marker[length]; |
/* when we claim a node for an entry, we also claim the nodes |
below it (pruning off the imagined tree that may have dangled |
from it) as well as blocking the use of any nodes directly |
above for leaves */ |
/* update ourself */ |
if(length<32 && (entry>>length)){ |
/* error condition; the lengths must specify an overpopulated tree */ |
_ogg_free(r); |
return(NULL); |
} |
r[count++]=entry; |
/* Look to see if the next shorter marker points to the node |
above. if so, update it and repeat. */ |
{ |
for(j=length;j>0;j--){ |
if(marker[j]&1){ |
/* have to jump branches */ |
if(j==1) |
marker[1]++; |
else |
marker[j]=marker[j-1]<<1; |
break; /* invariant says next upper marker would already |
have been moved if it was on the same path */ |
} |
marker[j]++; |
} |
} |
/* prune the tree; the implicit invariant says all the longer |
markers were dangling from our just-taken node. Dangle them |
from our *new* node. */ |
for(j=length+1;j<33;j++) |
if((marker[j]>>1) == entry){ |
entry=marker[j]; |
marker[j]=marker[j-1]<<1; |
}else |
break; |
}else |
if(sparsecount==0)count++; |
} |
/* any underpopulated tree must be rejected. */ |
/* Single-entry codebooks are a retconned extension to the spec. |
They have a single codeword '0' of length 1 that results in an |
underpopulated tree. Shield that case from the underformed tree check. */ |
if(!(count==1 && marker[2]==2)){ |
for(i=1;i<33;i++) |
if(marker[i] & (0xffffffffUL>>(32-i))){ |
_ogg_free(r); |
return(NULL); |
} |
} |
/* bitreverse the words because our bitwise packer/unpacker is LSb |
endian */ |
for(i=0,count=0;i<n;i++){ |
ogg_uint32_t temp=0; |
for(j=0;j<l[i];j++){ |
temp<<=1; |
temp|=(r[count]>>j)&1; |
} |
if(sparsecount){ |
if(l[i]) |
r[count++]=temp; |
}else |
r[count++]=temp; |
} |
return(r); |
} |
/* there might be a straightforward one-line way to do the below |
that's portable and totally safe against roundoff, but I haven't |
thought of it. Therefore, we opt on the side of caution */ |
long _book_maptype1_quantvals(const static_codebook *b){ |
long vals; |
if(b->entries<1){ |
return(0); |
} |
vals=floor(pow((float)b->entries,1.f/b->dim)); |
/* the above *should* be reliable, but we'll not assume that FP is |
ever reliable when bitstream sync is at stake; verify via integer |
means that vals really is the greatest value of dim for which |
vals^b->bim <= b->entries */ |
/* treat the above as an initial guess */ |
if(vals<1){ |
vals=1; |
} |
while(1){ |
long acc=1; |
long acc1=1; |
int i; |
for(i=0;i<b->dim;i++){ |
if(b->entries/vals<acc)break; |
acc*=vals; |
if(LONG_MAX/(vals+1)<acc1)acc1=LONG_MAX; |
else acc1*=vals+1; |
} |
if(i>=b->dim && acc<=b->entries && acc1>b->entries){ |
return(vals); |
}else{ |
if(i<b->dim || acc>b->entries){ |
vals--; |
}else{ |
vals++; |
} |
} |
} |
} |
/* unpack the quantized list of values for encode/decode ***********/ |
/* we need to deal with two map types: in map type 1, the values are |
generated algorithmically (each column of the vector counts through |
the values in the quant vector). in map type 2, all the values came |
in in an explicit list. Both value lists must be unpacked */ |
float *_book_unquantize(const static_codebook *b,int n,int *sparsemap){ |
long j,k,count=0; |
if(b->maptype==1 || b->maptype==2){ |
int quantvals; |
float mindel=_float32_unpack(b->q_min); |
float delta=_float32_unpack(b->q_delta); |
float *r=_ogg_calloc(n*b->dim,sizeof(*r)); |
/* maptype 1 and 2 both use a quantized value vector, but |
different sizes */ |
switch(b->maptype){ |
case 1: |
/* most of the time, entries%dimensions == 0, but we need to be |
well defined. We define that the possible vales at each |
scalar is values == entries/dim. If entries%dim != 0, we'll |
have 'too few' values (values*dim<entries), which means that |
we'll have 'left over' entries; left over entries use zeroed |
values (and are wasted). So don't generate codebooks like |
that */ |
quantvals=_book_maptype1_quantvals(b); |
for(j=0;j<b->entries;j++){ |
if((sparsemap && b->lengthlist[j]) || !sparsemap){ |
float last=0.f; |
int indexdiv=1; |
for(k=0;k<b->dim;k++){ |
int index= (j/indexdiv)%quantvals; |
float val=b->quantlist[index]; |
val=fabs(val)*delta+mindel+last; |
if(b->q_sequencep)last=val; |
if(sparsemap) |
r[sparsemap[count]*b->dim+k]=val; |
else |
r[count*b->dim+k]=val; |
indexdiv*=quantvals; |
} |
count++; |
} |
} |
break; |
case 2: |
for(j=0;j<b->entries;j++){ |
if((sparsemap && b->lengthlist[j]) || !sparsemap){ |
float last=0.f; |
for(k=0;k<b->dim;k++){ |
float val=b->quantlist[j*b->dim+k]; |
val=fabs(val)*delta+mindel+last; |
if(b->q_sequencep)last=val; |
if(sparsemap) |
r[sparsemap[count]*b->dim+k]=val; |
else |
r[count*b->dim+k]=val; |
} |
count++; |
} |
} |
break; |
} |
return(r); |
} |
return(NULL); |
} |
void vorbis_staticbook_destroy(static_codebook *b){ |
if(b->allocedp){ |
if(b->quantlist)_ogg_free(b->quantlist); |
if(b->lengthlist)_ogg_free(b->lengthlist); |
memset(b,0,sizeof(*b)); |
_ogg_free(b); |
} /* otherwise, it is in static memory */ |
} |
void vorbis_book_clear(codebook *b){ |
/* static book is not cleared; we're likely called on the lookup and |
the static codebook belongs to the info struct */ |
if(b->valuelist)_ogg_free(b->valuelist); |
if(b->codelist)_ogg_free(b->codelist); |
if(b->dec_index)_ogg_free(b->dec_index); |
if(b->dec_codelengths)_ogg_free(b->dec_codelengths); |
if(b->dec_firsttable)_ogg_free(b->dec_firsttable); |
memset(b,0,sizeof(*b)); |
} |
int vorbis_book_init_encode(codebook *c,const static_codebook *s){ |
memset(c,0,sizeof(*c)); |
c->c=s; |
c->entries=s->entries; |
c->used_entries=s->entries; |
c->dim=s->dim; |
c->codelist=_make_words(s->lengthlist,s->entries,0); |
/* c->valuelist=_book_unquantize(s,s->entries,NULL); */ |
c->quantvals=_book_maptype1_quantvals(s); |
c->minval=(int)rint(_float32_unpack(s->q_min)); |
c->delta=(int)rint(_float32_unpack(s->q_delta)); |
return(0); |
} |
static ogg_uint32_t bitreverse(ogg_uint32_t x){ |
x= ((x>>16)&0x0000ffffUL) | ((x<<16)&0xffff0000UL); |
x= ((x>> 8)&0x00ff00ffUL) | ((x<< 8)&0xff00ff00UL); |
x= ((x>> 4)&0x0f0f0f0fUL) | ((x<< 4)&0xf0f0f0f0UL); |
x= ((x>> 2)&0x33333333UL) | ((x<< 2)&0xccccccccUL); |
return((x>> 1)&0x55555555UL) | ((x<< 1)&0xaaaaaaaaUL); |
} |
static int sort32a(const void *a,const void *b){ |
return ( **(ogg_uint32_t **)a>**(ogg_uint32_t **)b)- |
( **(ogg_uint32_t **)a<**(ogg_uint32_t **)b); |
} |
/* decode codebook arrangement is more heavily optimized than encode */ |
int vorbis_book_init_decode(codebook *c,const static_codebook *s){ |
int i,j,n=0,tabn; |
int *sortindex; |
memset(c,0,sizeof(*c)); |
/* count actually used entries and find max length */ |
for(i=0;i<s->entries;i++) |
if(s->lengthlist[i]>0) |
n++; |
c->entries=s->entries; |
c->used_entries=n; |
c->dim=s->dim; |
if(n>0){ |
/* two different remappings go on here. |
First, we collapse the likely sparse codebook down only to |
actually represented values/words. This collapsing needs to be |
indexed as map-valueless books are used to encode original entry |
positions as integers. |
Second, we reorder all vectors, including the entry index above, |
by sorted bitreversed codeword to allow treeless decode. */ |
/* perform sort */ |
ogg_uint32_t *codes=_make_words(s->lengthlist,s->entries,c->used_entries); |
ogg_uint32_t **codep=alloca(sizeof(*codep)*n); |
if(codes==NULL)goto err_out; |
for(i=0;i<n;i++){ |
codes[i]=bitreverse(codes[i]); |
codep[i]=codes+i; |
} |
qsort(codep,n,sizeof(*codep),sort32a); |
sortindex=alloca(n*sizeof(*sortindex)); |
c->codelist=_ogg_malloc(n*sizeof(*c->codelist)); |
/* the index is a reverse index */ |
for(i=0;i<n;i++){ |
int position=codep[i]-codes; |
sortindex[position]=i; |
} |
for(i=0;i<n;i++) |
c->codelist[sortindex[i]]=codes[i]; |
_ogg_free(codes); |
c->valuelist=_book_unquantize(s,n,sortindex); |
c->dec_index=_ogg_malloc(n*sizeof(*c->dec_index)); |
for(n=0,i=0;i<s->entries;i++) |
if(s->lengthlist[i]>0) |
c->dec_index[sortindex[n++]]=i; |
c->dec_codelengths=_ogg_malloc(n*sizeof(*c->dec_codelengths)); |
c->dec_maxlength=0; |
for(n=0,i=0;i<s->entries;i++) |
if(s->lengthlist[i]>0){ |
c->dec_codelengths[sortindex[n++]]=s->lengthlist[i]; |
if(s->lengthlist[i]>c->dec_maxlength) |
c->dec_maxlength=s->lengthlist[i]; |
} |
if(n==1 && c->dec_maxlength==1){ |
/* special case the 'single entry codebook' with a single bit |
fastpath table (that always returns entry 0 )in order to use |
unmodified decode paths. */ |
c->dec_firsttablen=1; |
c->dec_firsttable=_ogg_calloc(2,sizeof(*c->dec_firsttable)); |
c->dec_firsttable[0]=c->dec_firsttable[1]=1; |
}else{ |
c->dec_firsttablen=ov_ilog(c->used_entries)-4; /* this is magic */ |
if(c->dec_firsttablen<5)c->dec_firsttablen=5; |
if(c->dec_firsttablen>8)c->dec_firsttablen=8; |
tabn=1<<c->dec_firsttablen; |
c->dec_firsttable=_ogg_calloc(tabn,sizeof(*c->dec_firsttable)); |
for(i=0;i<n;i++){ |
if(c->dec_codelengths[i]<=c->dec_firsttablen){ |
ogg_uint32_t orig=bitreverse(c->codelist[i]); |
for(j=0;j<(1<<(c->dec_firsttablen-c->dec_codelengths[i]));j++) |
c->dec_firsttable[orig|(j<<c->dec_codelengths[i])]=i+1; |
} |
} |
/* now fill in 'unused' entries in the firsttable with hi/lo search |
hints for the non-direct-hits */ |
{ |
ogg_uint32_t mask=0xfffffffeUL<<(31-c->dec_firsttablen); |
long lo=0,hi=0; |
for(i=0;i<tabn;i++){ |
ogg_uint32_t word=i<<(32-c->dec_firsttablen); |
if(c->dec_firsttable[bitreverse(word)]==0){ |
while((lo+1)<n && c->codelist[lo+1]<=word)lo++; |
while( hi<n && word>=(c->codelist[hi]&mask))hi++; |
/* we only actually have 15 bits per hint to play with here. |
In order to overflow gracefully (nothing breaks, efficiency |
just drops), encode as the difference from the extremes. */ |
{ |
unsigned long loval=lo; |
unsigned long hival=n-hi; |
if(loval>0x7fff)loval=0x7fff; |
if(hival>0x7fff)hival=0x7fff; |
c->dec_firsttable[bitreverse(word)]= |
0x80000000UL | (loval<<15) | hival; |
} |
} |
} |
} |
} |
} |
return(0); |
err_out: |
vorbis_book_clear(c); |
return(-1); |
} |
long vorbis_book_codeword(codebook *book,int entry){ |
if(book->c) /* only use with encode; decode optimizations are |
allowed to break this */ |
return book->codelist[entry]; |
return -1; |
} |
long vorbis_book_codelen(codebook *book,int entry){ |
if(book->c) /* only use with encode; decode optimizations are |
allowed to break this */ |
return book->c->lengthlist[entry]; |
return -1; |
} |
#ifdef _V_SELFTEST |
/* Unit tests of the dequantizer; this stuff will be OK |
cross-platform, I simply want to be sure that special mapping cases |
actually work properly; a bug could go unnoticed for a while */ |
#include <stdio.h> |
/* cases: |
no mapping |
full, explicit mapping |
algorithmic mapping |
nonsequential |
sequential |
*/ |
static long full_quantlist1[]={0,1,2,3, 4,5,6,7, 8,3,6,1}; |
static long partial_quantlist1[]={0,7,2}; |
/* no mapping */ |
static_codebook test1={ |
4,16, |
NULL, |
0, |
0,0,0,0, |
NULL, |
0 |
}; |
static float *test1_result=NULL; |
/* linear, full mapping, nonsequential */ |
static_codebook test2={ |
4,3, |
NULL, |
2, |
-533200896,1611661312,4,0, |
full_quantlist1, |
0 |
}; |
static float test2_result[]={-3,-2,-1,0, 1,2,3,4, 5,0,3,-2}; |
/* linear, full mapping, sequential */ |
static_codebook test3={ |
4,3, |
NULL, |
2, |
-533200896,1611661312,4,1, |
full_quantlist1, |
0 |
}; |
static float test3_result[]={-3,-5,-6,-6, 1,3,6,10, 5,5,8,6}; |
/* linear, algorithmic mapping, nonsequential */ |
static_codebook test4={ |
3,27, |
NULL, |
1, |
-533200896,1611661312,4,0, |
partial_quantlist1, |
0 |
}; |
static float test4_result[]={-3,-3,-3, 4,-3,-3, -1,-3,-3, |
-3, 4,-3, 4, 4,-3, -1, 4,-3, |
-3,-1,-3, 4,-1,-3, -1,-1,-3, |
-3,-3, 4, 4,-3, 4, -1,-3, 4, |
-3, 4, 4, 4, 4, 4, -1, 4, 4, |
-3,-1, 4, 4,-1, 4, -1,-1, 4, |
-3,-3,-1, 4,-3,-1, -1,-3,-1, |
-3, 4,-1, 4, 4,-1, -1, 4,-1, |
-3,-1,-1, 4,-1,-1, -1,-1,-1}; |
/* linear, algorithmic mapping, sequential */ |
static_codebook test5={ |
3,27, |
NULL, |
1, |
-533200896,1611661312,4,1, |
partial_quantlist1, |
0 |
}; |
static float test5_result[]={-3,-6,-9, 4, 1,-2, -1,-4,-7, |
-3, 1,-2, 4, 8, 5, -1, 3, 0, |
-3,-4,-7, 4, 3, 0, -1,-2,-5, |
-3,-6,-2, 4, 1, 5, -1,-4, 0, |
-3, 1, 5, 4, 8,12, -1, 3, 7, |
-3,-4, 0, 4, 3, 7, -1,-2, 2, |
-3,-6,-7, 4, 1, 0, -1,-4,-5, |
-3, 1, 0, 4, 8, 7, -1, 3, 2, |
-3,-4,-5, 4, 3, 2, -1,-2,-3}; |
void run_test(static_codebook *b,float *comp){ |
float *out=_book_unquantize(b,b->entries,NULL); |
int i; |
if(comp){ |
if(!out){ |
fprintf(stderr,"_book_unquantize incorrectly returned NULL\n"); |
exit(1); |
} |
for(i=0;i<b->entries*b->dim;i++) |
if(fabs(out[i]-comp[i])>.0001){ |
fprintf(stderr,"disagreement in unquantized and reference data:\n" |
"position %d, %g != %g\n",i,out[i],comp[i]); |
exit(1); |
} |
}else{ |
if(out){ |
fprintf(stderr,"_book_unquantize returned a value array: \n" |
" correct result should have been NULL\n"); |
exit(1); |
} |
} |
free(out); |
} |
int main(){ |
/* run the nine dequant tests, and compare to the hand-rolled results */ |
fprintf(stderr,"Dequant test 1... "); |
run_test(&test1,test1_result); |
fprintf(stderr,"OK\nDequant test 2... "); |
run_test(&test2,test2_result); |
fprintf(stderr,"OK\nDequant test 3... "); |
run_test(&test3,test3_result); |
fprintf(stderr,"OK\nDequant test 4... "); |
run_test(&test4,test4_result); |
fprintf(stderr,"OK\nDequant test 5... "); |
run_test(&test5,test5_result); |
fprintf(stderr,"OK\n\n"); |
return(0); |
} |
#endif |
/contrib/sdk/sources/libvorbis-1.3.7/lib/smallft.c |
---|
0,0 → 1,1254 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: *unnormalized* fft transform |
********************************************************************/ |
/* FFT implementation from OggSquish, minus cosine transforms, |
* minus all but radix 2/4 case. In Vorbis we only need this |
* cut-down version. |
* |
* To do more than just power-of-two sized vectors, see the full |
* version I wrote for NetLib. |
* |
* Note that the packing is a little strange; rather than the FFT r/i |
* packing following R_0, I_n, R_1, I_1, R_2, I_2 ... R_n-1, I_n-1, |
* it follows R_0, R_1, I_1, R_2, I_2 ... R_n-1, I_n-1, I_n like the |
* FORTRAN version |
*/ |
#include <stdlib.h> |
#include <string.h> |
#include <math.h> |
#include "smallft.h" |
#include "os.h" |
#include "misc.h" |
static void drfti1(int n, float *wa, int *ifac){ |
static int ntryh[4] = { 4,2,3,5 }; |
static float tpi = 6.28318530717958648f; |
float arg,argh,argld,fi; |
int ntry=0,i,j=-1; |
int k1, l1, l2, ib; |
int ld, ii, ip, is, nq, nr; |
int ido, ipm, nfm1; |
int nl=n; |
int nf=0; |
L101: |
j++; |
if (j < 4) |
ntry=ntryh[j]; |
else |
ntry+=2; |
L104: |
nq=nl/ntry; |
nr=nl-ntry*nq; |
if (nr!=0) goto L101; |
nf++; |
ifac[nf+1]=ntry; |
nl=nq; |
if(ntry!=2)goto L107; |
if(nf==1)goto L107; |
for (i=1;i<nf;i++){ |
ib=nf-i+1; |
ifac[ib+1]=ifac[ib]; |
} |
ifac[2] = 2; |
L107: |
if(nl!=1)goto L104; |
ifac[0]=n; |
ifac[1]=nf; |
argh=tpi/n; |
is=0; |
nfm1=nf-1; |
l1=1; |
if(nfm1==0)return; |
for (k1=0;k1<nfm1;k1++){ |
ip=ifac[k1+2]; |
ld=0; |
l2=l1*ip; |
ido=n/l2; |
ipm=ip-1; |
for (j=0;j<ipm;j++){ |
ld+=l1; |
i=is; |
argld=(float)ld*argh; |
fi=0.f; |
for (ii=2;ii<ido;ii+=2){ |
fi+=1.f; |
arg=fi*argld; |
wa[i++]=cos(arg); |
wa[i++]=sin(arg); |
} |
is+=ido; |
} |
l1=l2; |
} |
} |
static void fdrffti(int n, float *wsave, int *ifac){ |
if (n == 1) return; |
drfti1(n, wsave+n, ifac); |
} |
static void dradf2(int ido,int l1,float *cc,float *ch,float *wa1){ |
int i,k; |
float ti2,tr2; |
int t0,t1,t2,t3,t4,t5,t6; |
t1=0; |
t0=(t2=l1*ido); |
t3=ido<<1; |
for(k=0;k<l1;k++){ |
ch[t1<<1]=cc[t1]+cc[t2]; |
ch[(t1<<1)+t3-1]=cc[t1]-cc[t2]; |
t1+=ido; |
t2+=ido; |
} |
if(ido<2)return; |
if(ido==2)goto L105; |
t1=0; |
t2=t0; |
for(k=0;k<l1;k++){ |
t3=t2; |
t4=(t1<<1)+(ido<<1); |
t5=t1; |
t6=t1+t1; |
for(i=2;i<ido;i+=2){ |
t3+=2; |
t4-=2; |
t5+=2; |
t6+=2; |
tr2=wa1[i-2]*cc[t3-1]+wa1[i-1]*cc[t3]; |
ti2=wa1[i-2]*cc[t3]-wa1[i-1]*cc[t3-1]; |
ch[t6]=cc[t5]+ti2; |
ch[t4]=ti2-cc[t5]; |
ch[t6-1]=cc[t5-1]+tr2; |
ch[t4-1]=cc[t5-1]-tr2; |
} |
t1+=ido; |
t2+=ido; |
} |
if(ido%2==1)return; |
L105: |
t3=(t2=(t1=ido)-1); |
t2+=t0; |
for(k=0;k<l1;k++){ |
ch[t1]=-cc[t2]; |
ch[t1-1]=cc[t3]; |
t1+=ido<<1; |
t2+=ido; |
t3+=ido; |
} |
} |
static void dradf4(int ido,int l1,float *cc,float *ch,float *wa1, |
float *wa2,float *wa3){ |
static float hsqt2 = .70710678118654752f; |
int i,k,t0,t1,t2,t3,t4,t5,t6; |
float ci2,ci3,ci4,cr2,cr3,cr4,ti1,ti2,ti3,ti4,tr1,tr2,tr3,tr4; |
t0=l1*ido; |
t1=t0; |
t4=t1<<1; |
t2=t1+(t1<<1); |
t3=0; |
for(k=0;k<l1;k++){ |
tr1=cc[t1]+cc[t2]; |
tr2=cc[t3]+cc[t4]; |
ch[t5=t3<<2]=tr1+tr2; |
ch[(ido<<2)+t5-1]=tr2-tr1; |
ch[(t5+=(ido<<1))-1]=cc[t3]-cc[t4]; |
ch[t5]=cc[t2]-cc[t1]; |
t1+=ido; |
t2+=ido; |
t3+=ido; |
t4+=ido; |
} |
if(ido<2)return; |
if(ido==2)goto L105; |
t1=0; |
for(k=0;k<l1;k++){ |
t2=t1; |
t4=t1<<2; |
t5=(t6=ido<<1)+t4; |
for(i=2;i<ido;i+=2){ |
t3=(t2+=2); |
t4+=2; |
t5-=2; |
t3+=t0; |
cr2=wa1[i-2]*cc[t3-1]+wa1[i-1]*cc[t3]; |
ci2=wa1[i-2]*cc[t3]-wa1[i-1]*cc[t3-1]; |
t3+=t0; |
cr3=wa2[i-2]*cc[t3-1]+wa2[i-1]*cc[t3]; |
ci3=wa2[i-2]*cc[t3]-wa2[i-1]*cc[t3-1]; |
t3+=t0; |
cr4=wa3[i-2]*cc[t3-1]+wa3[i-1]*cc[t3]; |
ci4=wa3[i-2]*cc[t3]-wa3[i-1]*cc[t3-1]; |
tr1=cr2+cr4; |
tr4=cr4-cr2; |
ti1=ci2+ci4; |
ti4=ci2-ci4; |
ti2=cc[t2]+ci3; |
ti3=cc[t2]-ci3; |
tr2=cc[t2-1]+cr3; |
tr3=cc[t2-1]-cr3; |
ch[t4-1]=tr1+tr2; |
ch[t4]=ti1+ti2; |
ch[t5-1]=tr3-ti4; |
ch[t5]=tr4-ti3; |
ch[t4+t6-1]=ti4+tr3; |
ch[t4+t6]=tr4+ti3; |
ch[t5+t6-1]=tr2-tr1; |
ch[t5+t6]=ti1-ti2; |
} |
t1+=ido; |
} |
if(ido&1)return; |
L105: |
t2=(t1=t0+ido-1)+(t0<<1); |
t3=ido<<2; |
t4=ido; |
t5=ido<<1; |
t6=ido; |
for(k=0;k<l1;k++){ |
ti1=-hsqt2*(cc[t1]+cc[t2]); |
tr1=hsqt2*(cc[t1]-cc[t2]); |
ch[t4-1]=tr1+cc[t6-1]; |
ch[t4+t5-1]=cc[t6-1]-tr1; |
ch[t4]=ti1-cc[t1+t0]; |
ch[t4+t5]=ti1+cc[t1+t0]; |
t1+=ido; |
t2+=ido; |
t4+=t3; |
t6+=ido; |
} |
} |
static void dradfg(int ido,int ip,int l1,int idl1,float *cc,float *c1, |
float *c2,float *ch,float *ch2,float *wa){ |
static float tpi=6.283185307179586f; |
int idij,ipph,i,j,k,l,ic,ik,is; |
int t0,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10; |
float dc2,ai1,ai2,ar1,ar2,ds2; |
int nbd; |
float dcp,arg,dsp,ar1h,ar2h; |
int idp2,ipp2; |
arg=tpi/(float)ip; |
dcp=cos(arg); |
dsp=sin(arg); |
ipph=(ip+1)>>1; |
ipp2=ip; |
idp2=ido; |
nbd=(ido-1)>>1; |
t0=l1*ido; |
t10=ip*ido; |
if(ido==1)goto L119; |
for(ik=0;ik<idl1;ik++)ch2[ik]=c2[ik]; |
t1=0; |
for(j=1;j<ip;j++){ |
t1+=t0; |
t2=t1; |
for(k=0;k<l1;k++){ |
ch[t2]=c1[t2]; |
t2+=ido; |
} |
} |
is=-ido; |
t1=0; |
if(nbd>l1){ |
for(j=1;j<ip;j++){ |
t1+=t0; |
is+=ido; |
t2= -ido+t1; |
for(k=0;k<l1;k++){ |
idij=is-1; |
t2+=ido; |
t3=t2; |
for(i=2;i<ido;i+=2){ |
idij+=2; |
t3+=2; |
ch[t3-1]=wa[idij-1]*c1[t3-1]+wa[idij]*c1[t3]; |
ch[t3]=wa[idij-1]*c1[t3]-wa[idij]*c1[t3-1]; |
} |
} |
} |
}else{ |
for(j=1;j<ip;j++){ |
is+=ido; |
idij=is-1; |
t1+=t0; |
t2=t1; |
for(i=2;i<ido;i+=2){ |
idij+=2; |
t2+=2; |
t3=t2; |
for(k=0;k<l1;k++){ |
ch[t3-1]=wa[idij-1]*c1[t3-1]+wa[idij]*c1[t3]; |
ch[t3]=wa[idij-1]*c1[t3]-wa[idij]*c1[t3-1]; |
t3+=ido; |
} |
} |
} |
} |
t1=0; |
t2=ipp2*t0; |
if(nbd<l1){ |
for(j=1;j<ipph;j++){ |
t1+=t0; |
t2-=t0; |
t3=t1; |
t4=t2; |
for(i=2;i<ido;i+=2){ |
t3+=2; |
t4+=2; |
t5=t3-ido; |
t6=t4-ido; |
for(k=0;k<l1;k++){ |
t5+=ido; |
t6+=ido; |
c1[t5-1]=ch[t5-1]+ch[t6-1]; |
c1[t6-1]=ch[t5]-ch[t6]; |
c1[t5]=ch[t5]+ch[t6]; |
c1[t6]=ch[t6-1]-ch[t5-1]; |
} |
} |
} |
}else{ |
for(j=1;j<ipph;j++){ |
t1+=t0; |
t2-=t0; |
t3=t1; |
t4=t2; |
for(k=0;k<l1;k++){ |
t5=t3; |
t6=t4; |
for(i=2;i<ido;i+=2){ |
t5+=2; |
t6+=2; |
c1[t5-1]=ch[t5-1]+ch[t6-1]; |
c1[t6-1]=ch[t5]-ch[t6]; |
c1[t5]=ch[t5]+ch[t6]; |
c1[t6]=ch[t6-1]-ch[t5-1]; |
} |
t3+=ido; |
t4+=ido; |
} |
} |
} |
L119: |
for(ik=0;ik<idl1;ik++)c2[ik]=ch2[ik]; |
t1=0; |
t2=ipp2*idl1; |
for(j=1;j<ipph;j++){ |
t1+=t0; |
t2-=t0; |
t3=t1-ido; |
t4=t2-ido; |
for(k=0;k<l1;k++){ |
t3+=ido; |
t4+=ido; |
c1[t3]=ch[t3]+ch[t4]; |
c1[t4]=ch[t4]-ch[t3]; |
} |
} |
ar1=1.f; |
ai1=0.f; |
t1=0; |
t2=ipp2*idl1; |
t3=(ip-1)*idl1; |
for(l=1;l<ipph;l++){ |
t1+=idl1; |
t2-=idl1; |
ar1h=dcp*ar1-dsp*ai1; |
ai1=dcp*ai1+dsp*ar1; |
ar1=ar1h; |
t4=t1; |
t5=t2; |
t6=t3; |
t7=idl1; |
for(ik=0;ik<idl1;ik++){ |
ch2[t4++]=c2[ik]+ar1*c2[t7++]; |
ch2[t5++]=ai1*c2[t6++]; |
} |
dc2=ar1; |
ds2=ai1; |
ar2=ar1; |
ai2=ai1; |
t4=idl1; |
t5=(ipp2-1)*idl1; |
for(j=2;j<ipph;j++){ |
t4+=idl1; |
t5-=idl1; |
ar2h=dc2*ar2-ds2*ai2; |
ai2=dc2*ai2+ds2*ar2; |
ar2=ar2h; |
t6=t1; |
t7=t2; |
t8=t4; |
t9=t5; |
for(ik=0;ik<idl1;ik++){ |
ch2[t6++]+=ar2*c2[t8++]; |
ch2[t7++]+=ai2*c2[t9++]; |
} |
} |
} |
t1=0; |
for(j=1;j<ipph;j++){ |
t1+=idl1; |
t2=t1; |
for(ik=0;ik<idl1;ik++)ch2[ik]+=c2[t2++]; |
} |
if(ido<l1)goto L132; |
t1=0; |
t2=0; |
for(k=0;k<l1;k++){ |
t3=t1; |
t4=t2; |
for(i=0;i<ido;i++)cc[t4++]=ch[t3++]; |
t1+=ido; |
t2+=t10; |
} |
goto L135; |
L132: |
for(i=0;i<ido;i++){ |
t1=i; |
t2=i; |
for(k=0;k<l1;k++){ |
cc[t2]=ch[t1]; |
t1+=ido; |
t2+=t10; |
} |
} |
L135: |
t1=0; |
t2=ido<<1; |
t3=0; |
t4=ipp2*t0; |
for(j=1;j<ipph;j++){ |
t1+=t2; |
t3+=t0; |
t4-=t0; |
t5=t1; |
t6=t3; |
t7=t4; |
for(k=0;k<l1;k++){ |
cc[t5-1]=ch[t6]; |
cc[t5]=ch[t7]; |
t5+=t10; |
t6+=ido; |
t7+=ido; |
} |
} |
if(ido==1)return; |
if(nbd<l1)goto L141; |
t1=-ido; |
t3=0; |
t4=0; |
t5=ipp2*t0; |
for(j=1;j<ipph;j++){ |
t1+=t2; |
t3+=t2; |
t4+=t0; |
t5-=t0; |
t6=t1; |
t7=t3; |
t8=t4; |
t9=t5; |
for(k=0;k<l1;k++){ |
for(i=2;i<ido;i+=2){ |
ic=idp2-i; |
cc[i+t7-1]=ch[i+t8-1]+ch[i+t9-1]; |
cc[ic+t6-1]=ch[i+t8-1]-ch[i+t9-1]; |
cc[i+t7]=ch[i+t8]+ch[i+t9]; |
cc[ic+t6]=ch[i+t9]-ch[i+t8]; |
} |
t6+=t10; |
t7+=t10; |
t8+=ido; |
t9+=ido; |
} |
} |
return; |
L141: |
t1=-ido; |
t3=0; |
t4=0; |
t5=ipp2*t0; |
for(j=1;j<ipph;j++){ |
t1+=t2; |
t3+=t2; |
t4+=t0; |
t5-=t0; |
for(i=2;i<ido;i+=2){ |
t6=idp2+t1-i; |
t7=i+t3; |
t8=i+t4; |
t9=i+t5; |
for(k=0;k<l1;k++){ |
cc[t7-1]=ch[t8-1]+ch[t9-1]; |
cc[t6-1]=ch[t8-1]-ch[t9-1]; |
cc[t7]=ch[t8]+ch[t9]; |
cc[t6]=ch[t9]-ch[t8]; |
t6+=t10; |
t7+=t10; |
t8+=ido; |
t9+=ido; |
} |
} |
} |
} |
static void drftf1(int n,float *c,float *ch,float *wa,int *ifac){ |
int i,k1,l1,l2; |
int na,kh,nf; |
int ip,iw,ido,idl1,ix2,ix3; |
nf=ifac[1]; |
na=1; |
l2=n; |
iw=n; |
for(k1=0;k1<nf;k1++){ |
kh=nf-k1; |
ip=ifac[kh+1]; |
l1=l2/ip; |
ido=n/l2; |
idl1=ido*l1; |
iw-=(ip-1)*ido; |
na=1-na; |
if(ip!=4)goto L102; |
ix2=iw+ido; |
ix3=ix2+ido; |
if(na!=0) |
dradf4(ido,l1,ch,c,wa+iw-1,wa+ix2-1,wa+ix3-1); |
else |
dradf4(ido,l1,c,ch,wa+iw-1,wa+ix2-1,wa+ix3-1); |
goto L110; |
L102: |
if(ip!=2)goto L104; |
if(na!=0)goto L103; |
dradf2(ido,l1,c,ch,wa+iw-1); |
goto L110; |
L103: |
dradf2(ido,l1,ch,c,wa+iw-1); |
goto L110; |
L104: |
if(ido==1)na=1-na; |
if(na!=0)goto L109; |
dradfg(ido,ip,l1,idl1,c,c,c,ch,ch,wa+iw-1); |
na=1; |
goto L110; |
L109: |
dradfg(ido,ip,l1,idl1,ch,ch,ch,c,c,wa+iw-1); |
na=0; |
L110: |
l2=l1; |
} |
if(na==1)return; |
for(i=0;i<n;i++)c[i]=ch[i]; |
} |
static void dradb2(int ido,int l1,float *cc,float *ch,float *wa1){ |
int i,k,t0,t1,t2,t3,t4,t5,t6; |
float ti2,tr2; |
t0=l1*ido; |
t1=0; |
t2=0; |
t3=(ido<<1)-1; |
for(k=0;k<l1;k++){ |
ch[t1]=cc[t2]+cc[t3+t2]; |
ch[t1+t0]=cc[t2]-cc[t3+t2]; |
t2=(t1+=ido)<<1; |
} |
if(ido<2)return; |
if(ido==2)goto L105; |
t1=0; |
t2=0; |
for(k=0;k<l1;k++){ |
t3=t1; |
t5=(t4=t2)+(ido<<1); |
t6=t0+t1; |
for(i=2;i<ido;i+=2){ |
t3+=2; |
t4+=2; |
t5-=2; |
t6+=2; |
ch[t3-1]=cc[t4-1]+cc[t5-1]; |
tr2=cc[t4-1]-cc[t5-1]; |
ch[t3]=cc[t4]-cc[t5]; |
ti2=cc[t4]+cc[t5]; |
ch[t6-1]=wa1[i-2]*tr2-wa1[i-1]*ti2; |
ch[t6]=wa1[i-2]*ti2+wa1[i-1]*tr2; |
} |
t2=(t1+=ido)<<1; |
} |
if(ido%2==1)return; |
L105: |
t1=ido-1; |
t2=ido-1; |
for(k=0;k<l1;k++){ |
ch[t1]=cc[t2]+cc[t2]; |
ch[t1+t0]=-(cc[t2+1]+cc[t2+1]); |
t1+=ido; |
t2+=ido<<1; |
} |
} |
static void dradb3(int ido,int l1,float *cc,float *ch,float *wa1, |
float *wa2){ |
static float taur = -.5f; |
static float taui = .8660254037844386f; |
int i,k,t0,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10; |
float ci2,ci3,di2,di3,cr2,cr3,dr2,dr3,ti2,tr2; |
t0=l1*ido; |
t1=0; |
t2=t0<<1; |
t3=ido<<1; |
t4=ido+(ido<<1); |
t5=0; |
for(k=0;k<l1;k++){ |
tr2=cc[t3-1]+cc[t3-1]; |
cr2=cc[t5]+(taur*tr2); |
ch[t1]=cc[t5]+tr2; |
ci3=taui*(cc[t3]+cc[t3]); |
ch[t1+t0]=cr2-ci3; |
ch[t1+t2]=cr2+ci3; |
t1+=ido; |
t3+=t4; |
t5+=t4; |
} |
if(ido==1)return; |
t1=0; |
t3=ido<<1; |
for(k=0;k<l1;k++){ |
t7=t1+(t1<<1); |
t6=(t5=t7+t3); |
t8=t1; |
t10=(t9=t1+t0)+t0; |
for(i=2;i<ido;i+=2){ |
t5+=2; |
t6-=2; |
t7+=2; |
t8+=2; |
t9+=2; |
t10+=2; |
tr2=cc[t5-1]+cc[t6-1]; |
cr2=cc[t7-1]+(taur*tr2); |
ch[t8-1]=cc[t7-1]+tr2; |
ti2=cc[t5]-cc[t6]; |
ci2=cc[t7]+(taur*ti2); |
ch[t8]=cc[t7]+ti2; |
cr3=taui*(cc[t5-1]-cc[t6-1]); |
ci3=taui*(cc[t5]+cc[t6]); |
dr2=cr2-ci3; |
dr3=cr2+ci3; |
di2=ci2+cr3; |
di3=ci2-cr3; |
ch[t9-1]=wa1[i-2]*dr2-wa1[i-1]*di2; |
ch[t9]=wa1[i-2]*di2+wa1[i-1]*dr2; |
ch[t10-1]=wa2[i-2]*dr3-wa2[i-1]*di3; |
ch[t10]=wa2[i-2]*di3+wa2[i-1]*dr3; |
} |
t1+=ido; |
} |
} |
static void dradb4(int ido,int l1,float *cc,float *ch,float *wa1, |
float *wa2,float *wa3){ |
static float sqrt2=1.414213562373095f; |
int i,k,t0,t1,t2,t3,t4,t5,t6,t7,t8; |
float ci2,ci3,ci4,cr2,cr3,cr4,ti1,ti2,ti3,ti4,tr1,tr2,tr3,tr4; |
t0=l1*ido; |
t1=0; |
t2=ido<<2; |
t3=0; |
t6=ido<<1; |
for(k=0;k<l1;k++){ |
t4=t3+t6; |
t5=t1; |
tr3=cc[t4-1]+cc[t4-1]; |
tr4=cc[t4]+cc[t4]; |
tr1=cc[t3]-cc[(t4+=t6)-1]; |
tr2=cc[t3]+cc[t4-1]; |
ch[t5]=tr2+tr3; |
ch[t5+=t0]=tr1-tr4; |
ch[t5+=t0]=tr2-tr3; |
ch[t5+=t0]=tr1+tr4; |
t1+=ido; |
t3+=t2; |
} |
if(ido<2)return; |
if(ido==2)goto L105; |
t1=0; |
for(k=0;k<l1;k++){ |
t5=(t4=(t3=(t2=t1<<2)+t6))+t6; |
t7=t1; |
for(i=2;i<ido;i+=2){ |
t2+=2; |
t3+=2; |
t4-=2; |
t5-=2; |
t7+=2; |
ti1=cc[t2]+cc[t5]; |
ti2=cc[t2]-cc[t5]; |
ti3=cc[t3]-cc[t4]; |
tr4=cc[t3]+cc[t4]; |
tr1=cc[t2-1]-cc[t5-1]; |
tr2=cc[t2-1]+cc[t5-1]; |
ti4=cc[t3-1]-cc[t4-1]; |
tr3=cc[t3-1]+cc[t4-1]; |
ch[t7-1]=tr2+tr3; |
cr3=tr2-tr3; |
ch[t7]=ti2+ti3; |
ci3=ti2-ti3; |
cr2=tr1-tr4; |
cr4=tr1+tr4; |
ci2=ti1+ti4; |
ci4=ti1-ti4; |
ch[(t8=t7+t0)-1]=wa1[i-2]*cr2-wa1[i-1]*ci2; |
ch[t8]=wa1[i-2]*ci2+wa1[i-1]*cr2; |
ch[(t8+=t0)-1]=wa2[i-2]*cr3-wa2[i-1]*ci3; |
ch[t8]=wa2[i-2]*ci3+wa2[i-1]*cr3; |
ch[(t8+=t0)-1]=wa3[i-2]*cr4-wa3[i-1]*ci4; |
ch[t8]=wa3[i-2]*ci4+wa3[i-1]*cr4; |
} |
t1+=ido; |
} |
if(ido%2 == 1)return; |
L105: |
t1=ido; |
t2=ido<<2; |
t3=ido-1; |
t4=ido+(ido<<1); |
for(k=0;k<l1;k++){ |
t5=t3; |
ti1=cc[t1]+cc[t4]; |
ti2=cc[t4]-cc[t1]; |
tr1=cc[t1-1]-cc[t4-1]; |
tr2=cc[t1-1]+cc[t4-1]; |
ch[t5]=tr2+tr2; |
ch[t5+=t0]=sqrt2*(tr1-ti1); |
ch[t5+=t0]=ti2+ti2; |
ch[t5+=t0]=-sqrt2*(tr1+ti1); |
t3+=ido; |
t1+=t2; |
t4+=t2; |
} |
} |
static void dradbg(int ido,int ip,int l1,int idl1,float *cc,float *c1, |
float *c2,float *ch,float *ch2,float *wa){ |
static float tpi=6.283185307179586f; |
int idij,ipph,i,j,k,l,ik,is,t0,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10, |
t11,t12; |
float dc2,ai1,ai2,ar1,ar2,ds2; |
int nbd; |
float dcp,arg,dsp,ar1h,ar2h; |
int ipp2; |
t10=ip*ido; |
t0=l1*ido; |
arg=tpi/(float)ip; |
dcp=cos(arg); |
dsp=sin(arg); |
nbd=(ido-1)>>1; |
ipp2=ip; |
ipph=(ip+1)>>1; |
if(ido<l1)goto L103; |
t1=0; |
t2=0; |
for(k=0;k<l1;k++){ |
t3=t1; |
t4=t2; |
for(i=0;i<ido;i++){ |
ch[t3]=cc[t4]; |
t3++; |
t4++; |
} |
t1+=ido; |
t2+=t10; |
} |
goto L106; |
L103: |
t1=0; |
for(i=0;i<ido;i++){ |
t2=t1; |
t3=t1; |
for(k=0;k<l1;k++){ |
ch[t2]=cc[t3]; |
t2+=ido; |
t3+=t10; |
} |
t1++; |
} |
L106: |
t1=0; |
t2=ipp2*t0; |
t7=(t5=ido<<1); |
for(j=1;j<ipph;j++){ |
t1+=t0; |
t2-=t0; |
t3=t1; |
t4=t2; |
t6=t5; |
for(k=0;k<l1;k++){ |
ch[t3]=cc[t6-1]+cc[t6-1]; |
ch[t4]=cc[t6]+cc[t6]; |
t3+=ido; |
t4+=ido; |
t6+=t10; |
} |
t5+=t7; |
} |
if (ido == 1)goto L116; |
if(nbd<l1)goto L112; |
t1=0; |
t2=ipp2*t0; |
t7=0; |
for(j=1;j<ipph;j++){ |
t1+=t0; |
t2-=t0; |
t3=t1; |
t4=t2; |
t7+=(ido<<1); |
t8=t7; |
for(k=0;k<l1;k++){ |
t5=t3; |
t6=t4; |
t9=t8; |
t11=t8; |
for(i=2;i<ido;i+=2){ |
t5+=2; |
t6+=2; |
t9+=2; |
t11-=2; |
ch[t5-1]=cc[t9-1]+cc[t11-1]; |
ch[t6-1]=cc[t9-1]-cc[t11-1]; |
ch[t5]=cc[t9]-cc[t11]; |
ch[t6]=cc[t9]+cc[t11]; |
} |
t3+=ido; |
t4+=ido; |
t8+=t10; |
} |
} |
goto L116; |
L112: |
t1=0; |
t2=ipp2*t0; |
t7=0; |
for(j=1;j<ipph;j++){ |
t1+=t0; |
t2-=t0; |
t3=t1; |
t4=t2; |
t7+=(ido<<1); |
t8=t7; |
t9=t7; |
for(i=2;i<ido;i+=2){ |
t3+=2; |
t4+=2; |
t8+=2; |
t9-=2; |
t5=t3; |
t6=t4; |
t11=t8; |
t12=t9; |
for(k=0;k<l1;k++){ |
ch[t5-1]=cc[t11-1]+cc[t12-1]; |
ch[t6-1]=cc[t11-1]-cc[t12-1]; |
ch[t5]=cc[t11]-cc[t12]; |
ch[t6]=cc[t11]+cc[t12]; |
t5+=ido; |
t6+=ido; |
t11+=t10; |
t12+=t10; |
} |
} |
} |
L116: |
ar1=1.f; |
ai1=0.f; |
t1=0; |
t9=(t2=ipp2*idl1); |
t3=(ip-1)*idl1; |
for(l=1;l<ipph;l++){ |
t1+=idl1; |
t2-=idl1; |
ar1h=dcp*ar1-dsp*ai1; |
ai1=dcp*ai1+dsp*ar1; |
ar1=ar1h; |
t4=t1; |
t5=t2; |
t6=0; |
t7=idl1; |
t8=t3; |
for(ik=0;ik<idl1;ik++){ |
c2[t4++]=ch2[t6++]+ar1*ch2[t7++]; |
c2[t5++]=ai1*ch2[t8++]; |
} |
dc2=ar1; |
ds2=ai1; |
ar2=ar1; |
ai2=ai1; |
t6=idl1; |
t7=t9-idl1; |
for(j=2;j<ipph;j++){ |
t6+=idl1; |
t7-=idl1; |
ar2h=dc2*ar2-ds2*ai2; |
ai2=dc2*ai2+ds2*ar2; |
ar2=ar2h; |
t4=t1; |
t5=t2; |
t11=t6; |
t12=t7; |
for(ik=0;ik<idl1;ik++){ |
c2[t4++]+=ar2*ch2[t11++]; |
c2[t5++]+=ai2*ch2[t12++]; |
} |
} |
} |
t1=0; |
for(j=1;j<ipph;j++){ |
t1+=idl1; |
t2=t1; |
for(ik=0;ik<idl1;ik++)ch2[ik]+=ch2[t2++]; |
} |
t1=0; |
t2=ipp2*t0; |
for(j=1;j<ipph;j++){ |
t1+=t0; |
t2-=t0; |
t3=t1; |
t4=t2; |
for(k=0;k<l1;k++){ |
ch[t3]=c1[t3]-c1[t4]; |
ch[t4]=c1[t3]+c1[t4]; |
t3+=ido; |
t4+=ido; |
} |
} |
if(ido==1)goto L132; |
if(nbd<l1)goto L128; |
t1=0; |
t2=ipp2*t0; |
for(j=1;j<ipph;j++){ |
t1+=t0; |
t2-=t0; |
t3=t1; |
t4=t2; |
for(k=0;k<l1;k++){ |
t5=t3; |
t6=t4; |
for(i=2;i<ido;i+=2){ |
t5+=2; |
t6+=2; |
ch[t5-1]=c1[t5-1]-c1[t6]; |
ch[t6-1]=c1[t5-1]+c1[t6]; |
ch[t5]=c1[t5]+c1[t6-1]; |
ch[t6]=c1[t5]-c1[t6-1]; |
} |
t3+=ido; |
t4+=ido; |
} |
} |
goto L132; |
L128: |
t1=0; |
t2=ipp2*t0; |
for(j=1;j<ipph;j++){ |
t1+=t0; |
t2-=t0; |
t3=t1; |
t4=t2; |
for(i=2;i<ido;i+=2){ |
t3+=2; |
t4+=2; |
t5=t3; |
t6=t4; |
for(k=0;k<l1;k++){ |
ch[t5-1]=c1[t5-1]-c1[t6]; |
ch[t6-1]=c1[t5-1]+c1[t6]; |
ch[t5]=c1[t5]+c1[t6-1]; |
ch[t6]=c1[t5]-c1[t6-1]; |
t5+=ido; |
t6+=ido; |
} |
} |
} |
L132: |
if(ido==1)return; |
for(ik=0;ik<idl1;ik++)c2[ik]=ch2[ik]; |
t1=0; |
for(j=1;j<ip;j++){ |
t2=(t1+=t0); |
for(k=0;k<l1;k++){ |
c1[t2]=ch[t2]; |
t2+=ido; |
} |
} |
if(nbd>l1)goto L139; |
is= -ido-1; |
t1=0; |
for(j=1;j<ip;j++){ |
is+=ido; |
t1+=t0; |
idij=is; |
t2=t1; |
for(i=2;i<ido;i+=2){ |
t2+=2; |
idij+=2; |
t3=t2; |
for(k=0;k<l1;k++){ |
c1[t3-1]=wa[idij-1]*ch[t3-1]-wa[idij]*ch[t3]; |
c1[t3]=wa[idij-1]*ch[t3]+wa[idij]*ch[t3-1]; |
t3+=ido; |
} |
} |
} |
return; |
L139: |
is= -ido-1; |
t1=0; |
for(j=1;j<ip;j++){ |
is+=ido; |
t1+=t0; |
t2=t1; |
for(k=0;k<l1;k++){ |
idij=is; |
t3=t2; |
for(i=2;i<ido;i+=2){ |
idij+=2; |
t3+=2; |
c1[t3-1]=wa[idij-1]*ch[t3-1]-wa[idij]*ch[t3]; |
c1[t3]=wa[idij-1]*ch[t3]+wa[idij]*ch[t3-1]; |
} |
t2+=ido; |
} |
} |
} |
static void drftb1(int n, float *c, float *ch, float *wa, int *ifac){ |
int i,k1,l1,l2; |
int na; |
int nf,ip,iw,ix2,ix3,ido,idl1; |
nf=ifac[1]; |
na=0; |
l1=1; |
iw=1; |
for(k1=0;k1<nf;k1++){ |
ip=ifac[k1 + 2]; |
l2=ip*l1; |
ido=n/l2; |
idl1=ido*l1; |
if(ip!=4)goto L103; |
ix2=iw+ido; |
ix3=ix2+ido; |
if(na!=0) |
dradb4(ido,l1,ch,c,wa+iw-1,wa+ix2-1,wa+ix3-1); |
else |
dradb4(ido,l1,c,ch,wa+iw-1,wa+ix2-1,wa+ix3-1); |
na=1-na; |
goto L115; |
L103: |
if(ip!=2)goto L106; |
if(na!=0) |
dradb2(ido,l1,ch,c,wa+iw-1); |
else |
dradb2(ido,l1,c,ch,wa+iw-1); |
na=1-na; |
goto L115; |
L106: |
if(ip!=3)goto L109; |
ix2=iw+ido; |
if(na!=0) |
dradb3(ido,l1,ch,c,wa+iw-1,wa+ix2-1); |
else |
dradb3(ido,l1,c,ch,wa+iw-1,wa+ix2-1); |
na=1-na; |
goto L115; |
L109: |
/* The radix five case can be translated later..... */ |
/* if(ip!=5)goto L112; |
ix2=iw+ido; |
ix3=ix2+ido; |
ix4=ix3+ido; |
if(na!=0) |
dradb5(ido,l1,ch,c,wa+iw-1,wa+ix2-1,wa+ix3-1,wa+ix4-1); |
else |
dradb5(ido,l1,c,ch,wa+iw-1,wa+ix2-1,wa+ix3-1,wa+ix4-1); |
na=1-na; |
goto L115; |
L112:*/ |
if(na!=0) |
dradbg(ido,ip,l1,idl1,ch,ch,ch,c,c,wa+iw-1); |
else |
dradbg(ido,ip,l1,idl1,c,c,c,ch,ch,wa+iw-1); |
if(ido==1)na=1-na; |
L115: |
l1=l2; |
iw+=(ip-1)*ido; |
} |
if(na==0)return; |
for(i=0;i<n;i++)c[i]=ch[i]; |
} |
void drft_forward(drft_lookup *l,float *data){ |
if(l->n==1)return; |
drftf1(l->n,data,l->trigcache,l->trigcache+l->n,l->splitcache); |
} |
void drft_backward(drft_lookup *l,float *data){ |
if (l->n==1)return; |
drftb1(l->n,data,l->trigcache,l->trigcache+l->n,l->splitcache); |
} |
void drft_init(drft_lookup *l,int n){ |
l->n=n; |
l->trigcache=_ogg_calloc(3*n,sizeof(*l->trigcache)); |
l->splitcache=_ogg_calloc(32,sizeof(*l->splitcache)); |
fdrffti(n, l->trigcache, l->splitcache); |
} |
void drft_clear(drft_lookup *l){ |
if(l){ |
if(l->trigcache)_ogg_free(l->trigcache); |
if(l->splitcache)_ogg_free(l->splitcache); |
memset(l,0,sizeof(*l)); |
} |
} |
/contrib/sdk/sources/libvorbis-1.3.7/lib/smallft.h |
---|
0,0 → 1,33 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: fft transform |
********************************************************************/ |
#ifndef _V_SMFT_H_ |
#define _V_SMFT_H_ |
#include "vorbis/codec.h" |
typedef struct { |
int n; |
float *trigcache; |
int *splitcache; |
} drft_lookup; |
extern void drft_forward(drft_lookup *l,float *data); |
extern void drft_backward(drft_lookup *l,float *data); |
extern void drft_init(drft_lookup *l,int n); |
extern void drft_clear(drft_lookup *l); |
#endif |
/contrib/sdk/sources/libvorbis-1.3.7/lib/synthesis.c |
---|
0,0 → 1,179 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2015 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: single-block PCM synthesis |
********************************************************************/ |
#include <stdio.h> |
#include <ogg/ogg.h> |
#include "vorbis/codec.h" |
#include "codec_internal.h" |
#include "registry.h" |
#include "misc.h" |
#include "os.h" |
int vorbis_synthesis(vorbis_block *vb,ogg_packet *op){ |
vorbis_dsp_state *vd= vb ? vb->vd : 0; |
private_state *b= vd ? vd->backend_state : 0; |
vorbis_info *vi= vd ? vd->vi : 0; |
codec_setup_info *ci= vi ? vi->codec_setup : 0; |
oggpack_buffer *opb=vb ? &vb->opb : 0; |
int type,mode,i; |
if (!vd || !b || !vi || !ci || !opb) { |
return OV_EBADPACKET; |
} |
/* first things first. Make sure decode is ready */ |
_vorbis_block_ripcord(vb); |
oggpack_readinit(opb,op->packet,op->bytes); |
/* Check the packet type */ |
if(oggpack_read(opb,1)!=0){ |
/* Oops. This is not an audio data packet */ |
return(OV_ENOTAUDIO); |
} |
/* read our mode and pre/post windowsize */ |
mode=oggpack_read(opb,b->modebits); |
if(mode==-1){ |
return(OV_EBADPACKET); |
} |
vb->mode=mode; |
if(!ci->mode_param[mode]){ |
return(OV_EBADPACKET); |
} |
vb->W=ci->mode_param[mode]->blockflag; |
if(vb->W){ |
/* this doesn;t get mapped through mode selection as it's used |
only for window selection */ |
vb->lW=oggpack_read(opb,1); |
vb->nW=oggpack_read(opb,1); |
if(vb->nW==-1){ |
return(OV_EBADPACKET); |
} |
}else{ |
vb->lW=0; |
vb->nW=0; |
} |
/* more setup */ |
vb->granulepos=op->granulepos; |
vb->sequence=op->packetno; |
vb->eofflag=op->e_o_s; |
/* alloc pcm passback storage */ |
vb->pcmend=ci->blocksizes[vb->W]; |
vb->pcm=_vorbis_block_alloc(vb,sizeof(*vb->pcm)*vi->channels); |
for(i=0;i<vi->channels;i++) |
vb->pcm[i]=_vorbis_block_alloc(vb,vb->pcmend*sizeof(*vb->pcm[i])); |
/* unpack_header enforces range checking */ |
type=ci->map_type[ci->mode_param[mode]->mapping]; |
return(_mapping_P[type]->inverse(vb,ci->map_param[ci->mode_param[mode]-> |
mapping])); |
} |
/* used to track pcm position without actually performing decode. |
Useful for sequential 'fast forward' */ |
int vorbis_synthesis_trackonly(vorbis_block *vb,ogg_packet *op){ |
vorbis_dsp_state *vd=vb->vd; |
private_state *b=vd->backend_state; |
vorbis_info *vi=vd->vi; |
codec_setup_info *ci=vi->codec_setup; |
oggpack_buffer *opb=&vb->opb; |
int mode; |
/* first things first. Make sure decode is ready */ |
_vorbis_block_ripcord(vb); |
oggpack_readinit(opb,op->packet,op->bytes); |
/* Check the packet type */ |
if(oggpack_read(opb,1)!=0){ |
/* Oops. This is not an audio data packet */ |
return(OV_ENOTAUDIO); |
} |
/* read our mode and pre/post windowsize */ |
mode=oggpack_read(opb,b->modebits); |
if(mode==-1)return(OV_EBADPACKET); |
vb->mode=mode; |
if(!ci->mode_param[mode]){ |
return(OV_EBADPACKET); |
} |
vb->W=ci->mode_param[mode]->blockflag; |
if(vb->W){ |
vb->lW=oggpack_read(opb,1); |
vb->nW=oggpack_read(opb,1); |
if(vb->nW==-1) return(OV_EBADPACKET); |
}else{ |
vb->lW=0; |
vb->nW=0; |
} |
/* more setup */ |
vb->granulepos=op->granulepos; |
vb->sequence=op->packetno; |
vb->eofflag=op->e_o_s; |
/* no pcm */ |
vb->pcmend=0; |
vb->pcm=NULL; |
return(0); |
} |
long vorbis_packet_blocksize(vorbis_info *vi,ogg_packet *op){ |
codec_setup_info *ci=vi->codec_setup; |
oggpack_buffer opb; |
int mode; |
if(ci==NULL || ci->modes<=0){ |
/* codec setup not properly intialized */ |
return(OV_EFAULT); |
} |
oggpack_readinit(&opb,op->packet,op->bytes); |
/* Check the packet type */ |
if(oggpack_read(&opb,1)!=0){ |
/* Oops. This is not an audio data packet */ |
return(OV_ENOTAUDIO); |
} |
/* read our mode and pre/post windowsize */ |
mode=oggpack_read(&opb,ov_ilog(ci->modes-1)); |
if(mode==-1 || !ci->mode_param[mode])return(OV_EBADPACKET); |
return(ci->blocksizes[ci->mode_param[mode]->blockflag]); |
} |
int vorbis_synthesis_halfrate(vorbis_info *vi,int flag){ |
/* set / clear half-sample-rate mode */ |
codec_setup_info *ci=vi->codec_setup; |
/* right now, our MDCT can't handle < 64 sample windows. */ |
if(ci->blocksizes[0]<=64 && flag)return -1; |
ci->halfrate_flag=(flag?1:0); |
return 0; |
} |
int vorbis_synthesis_halfrate_p(vorbis_info *vi){ |
codec_setup_info *ci=vi->codec_setup; |
return ci->halfrate_flag; |
} |
/contrib/sdk/sources/libvorbis-1.3.7/lib/tone.c |
---|
0,0 → 1,54 |
#include <stdlib.h> |
#include <stdio.h> |
#include <math.h> |
#include <string.h> |
void usage(){ |
fprintf(stderr,"tone <frequency_Hz>,[<amplitude>] [<frequency_Hz>,[<amplitude>]...]\n"); |
exit(1); |
} |
int main (int argc,char *argv[]){ |
int i,j; |
double *f; |
double *amp; |
if(argc<2)usage(); |
f=alloca(sizeof(*f)*(argc-1)); |
amp=alloca(sizeof(*amp)*(argc-1)); |
i=0; |
while(argv[i+1]){ |
char *pos=strchr(argv[i+1],','); |
f[i]=atof(argv[i+1]); |
if(pos) |
amp[i]=atof(pos+1)*32767.f; |
else |
amp[i]=32767.f; |
fprintf(stderr,"%g Hz, %g amp\n",f[i],amp[i]); |
i++; |
} |
for(i=0;i<44100*10;i++){ |
float val=0; |
int ival; |
for(j=0;j<argc-1;j++) |
val+=amp[j]*sin(i/44100.f*f[j]*2*M_PI); |
ival=rint(val); |
if(ival>32767.f)ival=32767.f; |
if(ival<-32768.f)ival=-32768.f; |
fprintf(stdout,"%c%c%c%c", |
(char)(ival&0xff), |
(char)((ival>>8)&0xff), |
(char)(ival&0xff), |
(char)((ival>>8)&0xff)); |
} |
return(0); |
} |
/contrib/sdk/sources/libvorbis-1.3.7/lib/vorbisenc.c |
---|
0,0 → 1,1224 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2015 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: simple programmatic interface for encoder mode setup |
********************************************************************/ |
#include <stdlib.h> |
#include <string.h> |
#include <math.h> |
#include "vorbis/codec.h" |
#include "vorbis/vorbisenc.h" |
#include "codec_internal.h" |
#include "os.h" |
#include "misc.h" |
/* careful with this; it's using static array sizing to make managing |
all the modes a little less annoying. If we use a residue backend |
with > 12 partition types, or a different division of iteration, |
this needs to be updated. */ |
typedef struct { |
const static_codebook *books[12][4]; |
} static_bookblock; |
typedef struct { |
int res_type; |
int limit_type; /* 0 lowpass limited, 1 point stereo limited */ |
int grouping; |
const vorbis_info_residue0 *res; |
const static_codebook *book_aux; |
const static_codebook *book_aux_managed; |
const static_bookblock *books_base; |
const static_bookblock *books_base_managed; |
} vorbis_residue_template; |
typedef struct { |
const vorbis_info_mapping0 *map; |
const vorbis_residue_template *res; |
} vorbis_mapping_template; |
typedef struct vp_adjblock{ |
int block[P_BANDS]; |
} vp_adjblock; |
typedef struct { |
int data[NOISE_COMPAND_LEVELS]; |
} compandblock; |
/* high level configuration information for setting things up |
step-by-step with the detailed vorbis_encode_ctl interface. |
There's a fair amount of redundancy such that interactive setup |
does not directly deal with any vorbis_info or codec_setup_info |
initialization; it's all stored (until full init) in this highlevel |
setup, then flushed out to the real codec setup structs later. */ |
typedef struct { |
int att[P_NOISECURVES]; |
float boost; |
float decay; |
} att3; |
typedef struct { int data[P_NOISECURVES]; } adj3; |
typedef struct { |
int pre[PACKETBLOBS]; |
int post[PACKETBLOBS]; |
float kHz[PACKETBLOBS]; |
float lowpasskHz[PACKETBLOBS]; |
} adj_stereo; |
typedef struct { |
int lo; |
int hi; |
int fixed; |
} noiseguard; |
typedef struct { |
int data[P_NOISECURVES][17]; |
} noise3; |
typedef struct { |
int mappings; |
const double *rate_mapping; |
const double *quality_mapping; |
int coupling_restriction; |
long samplerate_min_restriction; |
long samplerate_max_restriction; |
const int *blocksize_short; |
const int *blocksize_long; |
const att3 *psy_tone_masteratt; |
const int *psy_tone_0dB; |
const int *psy_tone_dBsuppress; |
const vp_adjblock *psy_tone_adj_impulse; |
const vp_adjblock *psy_tone_adj_long; |
const vp_adjblock *psy_tone_adj_other; |
const noiseguard *psy_noiseguards; |
const noise3 *psy_noise_bias_impulse; |
const noise3 *psy_noise_bias_padding; |
const noise3 *psy_noise_bias_trans; |
const noise3 *psy_noise_bias_long; |
const int *psy_noise_dBsuppress; |
const compandblock *psy_noise_compand; |
const double *psy_noise_compand_short_mapping; |
const double *psy_noise_compand_long_mapping; |
const int *psy_noise_normal_start[2]; |
const int *psy_noise_normal_partition[2]; |
const double *psy_noise_normal_thresh; |
const int *psy_ath_float; |
const int *psy_ath_abs; |
const double *psy_lowpass; |
const vorbis_info_psy_global *global_params; |
const double *global_mapping; |
const adj_stereo *stereo_modes; |
const static_codebook *const *const *const floor_books; |
const vorbis_info_floor1 *floor_params; |
const int floor_mappings; |
const int **floor_mapping_list; |
const vorbis_mapping_template *maps; |
} ve_setup_data_template; |
/* a few static coder conventions */ |
static const vorbis_info_mode _mode_template[2]={ |
{0,0,0,0}, |
{1,0,0,1} |
}; |
static const vorbis_info_mapping0 _map_nominal[2]={ |
{1, {0,0}, {0}, {0}, 1,{0},{1}}, |
{1, {0,0}, {1}, {1}, 1,{0},{1}} |
}; |
#include "modes/setup_44.h" |
#include "modes/setup_44u.h" |
#include "modes/setup_44p51.h" |
#include "modes/setup_32.h" |
#include "modes/setup_8.h" |
#include "modes/setup_11.h" |
#include "modes/setup_16.h" |
#include "modes/setup_22.h" |
#include "modes/setup_X.h" |
static const ve_setup_data_template *const setup_list[]={ |
&ve_setup_44_stereo, |
&ve_setup_44_51, |
&ve_setup_44_uncoupled, |
&ve_setup_32_stereo, |
&ve_setup_32_uncoupled, |
&ve_setup_22_stereo, |
&ve_setup_22_uncoupled, |
&ve_setup_16_stereo, |
&ve_setup_16_uncoupled, |
&ve_setup_11_stereo, |
&ve_setup_11_uncoupled, |
&ve_setup_8_stereo, |
&ve_setup_8_uncoupled, |
&ve_setup_X_stereo, |
&ve_setup_X_uncoupled, |
&ve_setup_XX_stereo, |
&ve_setup_XX_uncoupled, |
0 |
}; |
static void vorbis_encode_floor_setup(vorbis_info *vi,int s, |
const static_codebook *const *const *const books, |
const vorbis_info_floor1 *in, |
const int *x){ |
int i,k,is=s; |
vorbis_info_floor1 *f=_ogg_calloc(1,sizeof(*f)); |
codec_setup_info *ci=vi->codec_setup; |
memcpy(f,in+x[is],sizeof(*f)); |
/* books */ |
{ |
int partitions=f->partitions; |
int maxclass=-1; |
int maxbook=-1; |
for(i=0;i<partitions;i++) |
if(f->partitionclass[i]>maxclass)maxclass=f->partitionclass[i]; |
for(i=0;i<=maxclass;i++){ |
if(f->class_book[i]>maxbook)maxbook=f->class_book[i]; |
f->class_book[i]+=ci->books; |
for(k=0;k<(1<<f->class_subs[i]);k++){ |
if(f->class_subbook[i][k]>maxbook)maxbook=f->class_subbook[i][k]; |
if(f->class_subbook[i][k]>=0)f->class_subbook[i][k]+=ci->books; |
} |
} |
for(i=0;i<=maxbook;i++) |
ci->book_param[ci->books++]=(static_codebook *)books[x[is]][i]; |
} |
/* for now, we're only using floor 1 */ |
ci->floor_type[ci->floors]=1; |
ci->floor_param[ci->floors]=f; |
ci->floors++; |
return; |
} |
static void vorbis_encode_global_psych_setup(vorbis_info *vi,double s, |
const vorbis_info_psy_global *in, |
const double *x){ |
int i,is=s; |
double ds=s-is; |
codec_setup_info *ci=vi->codec_setup; |
vorbis_info_psy_global *g=&ci->psy_g_param; |
memcpy(g,in+(int)x[is],sizeof(*g)); |
ds=x[is]*(1.-ds)+x[is+1]*ds; |
is=(int)ds; |
ds-=is; |
if(ds==0 && is>0){ |
is--; |
ds=1.; |
} |
/* interpolate the trigger threshholds */ |
for(i=0;i<4;i++){ |
g->preecho_thresh[i]=in[is].preecho_thresh[i]*(1.-ds)+in[is+1].preecho_thresh[i]*ds; |
g->postecho_thresh[i]=in[is].postecho_thresh[i]*(1.-ds)+in[is+1].postecho_thresh[i]*ds; |
} |
g->ampmax_att_per_sec=ci->hi.amplitude_track_dBpersec; |
return; |
} |
static void vorbis_encode_global_stereo(vorbis_info *vi, |
const highlevel_encode_setup *const hi, |
const adj_stereo *p){ |
float s=hi->stereo_point_setting; |
int i,is=s; |
double ds=s-is; |
codec_setup_info *ci=vi->codec_setup; |
vorbis_info_psy_global *g=&ci->psy_g_param; |
if(p){ |
memcpy(g->coupling_prepointamp,p[is].pre,sizeof(*p[is].pre)*PACKETBLOBS); |
memcpy(g->coupling_postpointamp,p[is].post,sizeof(*p[is].post)*PACKETBLOBS); |
if(hi->managed){ |
/* interpolate the kHz threshholds */ |
for(i=0;i<PACKETBLOBS;i++){ |
float kHz=p[is].kHz[i]*(1.-ds)+p[is+1].kHz[i]*ds; |
g->coupling_pointlimit[0][i]=kHz*1000./vi->rate*ci->blocksizes[0]; |
g->coupling_pointlimit[1][i]=kHz*1000./vi->rate*ci->blocksizes[1]; |
g->coupling_pkHz[i]=kHz; |
kHz=p[is].lowpasskHz[i]*(1.-ds)+p[is+1].lowpasskHz[i]*ds; |
g->sliding_lowpass[0][i]=kHz*1000./vi->rate*ci->blocksizes[0]; |
g->sliding_lowpass[1][i]=kHz*1000./vi->rate*ci->blocksizes[1]; |
} |
}else{ |
float kHz=p[is].kHz[PACKETBLOBS/2]*(1.-ds)+p[is+1].kHz[PACKETBLOBS/2]*ds; |
for(i=0;i<PACKETBLOBS;i++){ |
g->coupling_pointlimit[0][i]=kHz*1000./vi->rate*ci->blocksizes[0]; |
g->coupling_pointlimit[1][i]=kHz*1000./vi->rate*ci->blocksizes[1]; |
g->coupling_pkHz[i]=kHz; |
} |
kHz=p[is].lowpasskHz[PACKETBLOBS/2]*(1.-ds)+p[is+1].lowpasskHz[PACKETBLOBS/2]*ds; |
for(i=0;i<PACKETBLOBS;i++){ |
g->sliding_lowpass[0][i]=kHz*1000./vi->rate*ci->blocksizes[0]; |
g->sliding_lowpass[1][i]=kHz*1000./vi->rate*ci->blocksizes[1]; |
} |
} |
}else{ |
for(i=0;i<PACKETBLOBS;i++){ |
g->sliding_lowpass[0][i]=ci->blocksizes[0]; |
g->sliding_lowpass[1][i]=ci->blocksizes[1]; |
} |
} |
return; |
} |
static void vorbis_encode_psyset_setup(vorbis_info *vi,double s, |
const int *nn_start, |
const int *nn_partition, |
const double *nn_thresh, |
int block){ |
codec_setup_info *ci=vi->codec_setup; |
vorbis_info_psy *p=ci->psy_param[block]; |
highlevel_encode_setup *hi=&ci->hi; |
int is=s; |
if(block>=ci->psys) |
ci->psys=block+1; |
if(!p){ |
p=_ogg_calloc(1,sizeof(*p)); |
ci->psy_param[block]=p; |
} |
memcpy(p,&_psy_info_template,sizeof(*p)); |
p->blockflag=block>>1; |
if(hi->noise_normalize_p){ |
p->normal_p=1; |
p->normal_start=nn_start[is]; |
p->normal_partition=nn_partition[is]; |
p->normal_thresh=nn_thresh[is]; |
} |
return; |
} |
static void vorbis_encode_tonemask_setup(vorbis_info *vi,double s,int block, |
const att3 *att, |
const int *max, |
const vp_adjblock *in){ |
int i,is=s; |
double ds=s-is; |
codec_setup_info *ci=vi->codec_setup; |
vorbis_info_psy *p=ci->psy_param[block]; |
/* 0 and 2 are only used by bitmanagement, but there's no harm to always |
filling the values in here */ |
p->tone_masteratt[0]=att[is].att[0]*(1.-ds)+att[is+1].att[0]*ds; |
p->tone_masteratt[1]=att[is].att[1]*(1.-ds)+att[is+1].att[1]*ds; |
p->tone_masteratt[2]=att[is].att[2]*(1.-ds)+att[is+1].att[2]*ds; |
p->tone_centerboost=att[is].boost*(1.-ds)+att[is+1].boost*ds; |
p->tone_decay=att[is].decay*(1.-ds)+att[is+1].decay*ds; |
p->max_curve_dB=max[is]*(1.-ds)+max[is+1]*ds; |
for(i=0;i<P_BANDS;i++) |
p->toneatt[i]=in[is].block[i]*(1.-ds)+in[is+1].block[i]*ds; |
return; |
} |
static void vorbis_encode_compand_setup(vorbis_info *vi,double s,int block, |
const compandblock *in, |
const double *x){ |
int i,is=s; |
double ds=s-is; |
codec_setup_info *ci=vi->codec_setup; |
vorbis_info_psy *p=ci->psy_param[block]; |
ds=x[is]*(1.-ds)+x[is+1]*ds; |
is=(int)ds; |
ds-=is; |
if(ds==0 && is>0){ |
is--; |
ds=1.; |
} |
/* interpolate the compander settings */ |
for(i=0;i<NOISE_COMPAND_LEVELS;i++) |
p->noisecompand[i]=in[is].data[i]*(1.-ds)+in[is+1].data[i]*ds; |
return; |
} |
static void vorbis_encode_peak_setup(vorbis_info *vi,double s,int block, |
const int *suppress){ |
int is=s; |
double ds=s-is; |
codec_setup_info *ci=vi->codec_setup; |
vorbis_info_psy *p=ci->psy_param[block]; |
p->tone_abs_limit=suppress[is]*(1.-ds)+suppress[is+1]*ds; |
return; |
} |
static void vorbis_encode_noisebias_setup(vorbis_info *vi,double s,int block, |
const int *suppress, |
const noise3 *in, |
const noiseguard *guard, |
double userbias){ |
int i,is=s,j; |
double ds=s-is; |
codec_setup_info *ci=vi->codec_setup; |
vorbis_info_psy *p=ci->psy_param[block]; |
p->noisemaxsupp=suppress[is]*(1.-ds)+suppress[is+1]*ds; |
p->noisewindowlomin=guard[block].lo; |
p->noisewindowhimin=guard[block].hi; |
p->noisewindowfixed=guard[block].fixed; |
for(j=0;j<P_NOISECURVES;j++) |
for(i=0;i<P_BANDS;i++) |
p->noiseoff[j][i]=in[is].data[j][i]*(1.-ds)+in[is+1].data[j][i]*ds; |
/* impulse blocks may take a user specified bias to boost the |
nominal/high noise encoding depth */ |
for(j=0;j<P_NOISECURVES;j++){ |
float min=p->noiseoff[j][0]+6; /* the lowest it can go */ |
for(i=0;i<P_BANDS;i++){ |
p->noiseoff[j][i]+=userbias; |
if(p->noiseoff[j][i]<min)p->noiseoff[j][i]=min; |
} |
} |
return; |
} |
static void vorbis_encode_ath_setup(vorbis_info *vi,int block){ |
codec_setup_info *ci=vi->codec_setup; |
vorbis_info_psy *p=ci->psy_param[block]; |
p->ath_adjatt=ci->hi.ath_floating_dB; |
p->ath_maxatt=ci->hi.ath_absolute_dB; |
return; |
} |
static int book_dup_or_new(codec_setup_info *ci,const static_codebook *book){ |
int i; |
for(i=0;i<ci->books;i++) |
if(ci->book_param[i]==book)return(i); |
return(ci->books++); |
} |
static void vorbis_encode_blocksize_setup(vorbis_info *vi,double s, |
const int *shortb,const int *longb){ |
codec_setup_info *ci=vi->codec_setup; |
int is=s; |
int blockshort=shortb[is]; |
int blocklong=longb[is]; |
ci->blocksizes[0]=blockshort; |
ci->blocksizes[1]=blocklong; |
} |
static void vorbis_encode_residue_setup(vorbis_info *vi, |
int number, int block, |
const vorbis_residue_template *res){ |
codec_setup_info *ci=vi->codec_setup; |
int i; |
vorbis_info_residue0 *r=ci->residue_param[number]= |
_ogg_malloc(sizeof(*r)); |
memcpy(r,res->res,sizeof(*r)); |
if(ci->residues<=number)ci->residues=number+1; |
r->grouping=res->grouping; |
ci->residue_type[number]=res->res_type; |
/* fill in all the books */ |
{ |
int booklist=0,k; |
if(ci->hi.managed){ |
for(i=0;i<r->partitions;i++) |
for(k=0;k<4;k++) |
if(res->books_base_managed->books[i][k]) |
r->secondstages[i]|=(1<<k); |
r->groupbook=book_dup_or_new(ci,res->book_aux_managed); |
ci->book_param[r->groupbook]=(static_codebook *)res->book_aux_managed; |
for(i=0;i<r->partitions;i++){ |
for(k=0;k<4;k++){ |
if(res->books_base_managed->books[i][k]){ |
int bookid=book_dup_or_new(ci,res->books_base_managed->books[i][k]); |
r->booklist[booklist++]=bookid; |
ci->book_param[bookid]=(static_codebook *)res->books_base_managed->books[i][k]; |
} |
} |
} |
}else{ |
for(i=0;i<r->partitions;i++) |
for(k=0;k<4;k++) |
if(res->books_base->books[i][k]) |
r->secondstages[i]|=(1<<k); |
r->groupbook=book_dup_or_new(ci,res->book_aux); |
ci->book_param[r->groupbook]=(static_codebook *)res->book_aux; |
for(i=0;i<r->partitions;i++){ |
for(k=0;k<4;k++){ |
if(res->books_base->books[i][k]){ |
int bookid=book_dup_or_new(ci,res->books_base->books[i][k]); |
r->booklist[booklist++]=bookid; |
ci->book_param[bookid]=(static_codebook *)res->books_base->books[i][k]; |
} |
} |
} |
} |
} |
/* lowpass setup/pointlimit */ |
{ |
double freq=ci->hi.lowpass_kHz*1000.; |
vorbis_info_floor1 *f=ci->floor_param[block]; /* by convention */ |
double nyq=vi->rate/2.; |
long blocksize=ci->blocksizes[block]>>1; |
/* lowpass needs to be set in the floor and the residue. */ |
if(freq>nyq)freq=nyq; |
/* in the floor, the granularity can be very fine; it doesn't alter |
the encoding structure, only the samples used to fit the floor |
approximation */ |
f->n=freq/nyq*blocksize; |
/* this res may by limited by the maximum pointlimit of the mode, |
not the lowpass. the floor is always lowpass limited. */ |
switch(res->limit_type){ |
case 1: /* point stereo limited */ |
if(ci->hi.managed) |
freq=ci->psy_g_param.coupling_pkHz[PACKETBLOBS-1]*1000.; |
else |
freq=ci->psy_g_param.coupling_pkHz[PACKETBLOBS/2]*1000.; |
if(freq>nyq)freq=nyq; |
break; |
case 2: /* LFE channel; lowpass at ~ 250Hz */ |
freq=250; |
break; |
default: |
/* already set */ |
break; |
} |
/* in the residue, we're constrained, physically, by partition |
boundaries. We still lowpass 'wherever', but we have to round up |
here to next boundary, or the vorbis spec will round it *down* to |
previous boundary in encode/decode */ |
if(ci->residue_type[number]==2){ |
/* residue 2 bundles together multiple channels; used by stereo |
and surround. Count the channels in use */ |
/* Multiple maps/submaps can point to the same residue. In the case |
of residue 2, they all better have the same number of |
channels/samples. */ |
int j,k,ch=0; |
for(i=0;i<ci->maps&&ch==0;i++){ |
vorbis_info_mapping0 *mi=(vorbis_info_mapping0 *)ci->map_param[i]; |
for(j=0;j<mi->submaps && ch==0;j++) |
if(mi->residuesubmap[j]==number) /* we found a submap referencing theis residue backend */ |
for(k=0;k<vi->channels;k++) |
if(mi->chmuxlist[k]==j) /* this channel belongs to the submap */ |
ch++; |
} |
r->end=(int)((freq/nyq*blocksize*ch)/r->grouping+.9)* /* round up only if we're well past */ |
r->grouping; |
/* the blocksize and grouping may disagree at the end */ |
if(r->end>blocksize*ch)r->end=blocksize*ch/r->grouping*r->grouping; |
}else{ |
r->end=(int)((freq/nyq*blocksize)/r->grouping+.9)* /* round up only if we're well past */ |
r->grouping; |
/* the blocksize and grouping may disagree at the end */ |
if(r->end>blocksize)r->end=blocksize/r->grouping*r->grouping; |
} |
if(r->end==0)r->end=r->grouping; /* LFE channel */ |
} |
} |
/* we assume two maps in this encoder */ |
static void vorbis_encode_map_n_res_setup(vorbis_info *vi,double s, |
const vorbis_mapping_template *maps){ |
codec_setup_info *ci=vi->codec_setup; |
int i,j,is=s,modes=2; |
const vorbis_info_mapping0 *map=maps[is].map; |
const vorbis_info_mode *mode=_mode_template; |
const vorbis_residue_template *res=maps[is].res; |
if(ci->blocksizes[0]==ci->blocksizes[1])modes=1; |
for(i=0;i<modes;i++){ |
ci->map_param[i]=_ogg_calloc(1,sizeof(*map)); |
ci->mode_param[i]=_ogg_calloc(1,sizeof(*mode)); |
memcpy(ci->mode_param[i],mode+i,sizeof(*_mode_template)); |
if(i>=ci->modes)ci->modes=i+1; |
ci->map_type[i]=0; |
memcpy(ci->map_param[i],map+i,sizeof(*map)); |
if(i>=ci->maps)ci->maps=i+1; |
for(j=0;j<map[i].submaps;j++) |
vorbis_encode_residue_setup(vi,map[i].residuesubmap[j],i |
,res+map[i].residuesubmap[j]); |
} |
} |
static double setting_to_approx_bitrate(vorbis_info *vi){ |
codec_setup_info *ci=vi->codec_setup; |
highlevel_encode_setup *hi=&ci->hi; |
ve_setup_data_template *setup=(ve_setup_data_template *)hi->setup; |
int is=hi->base_setting; |
double ds=hi->base_setting-is; |
int ch=vi->channels; |
const double *r=setup->rate_mapping; |
if(r==NULL) |
return(-1); |
return((r[is]*(1.-ds)+r[is+1]*ds)*ch); |
} |
static const void *get_setup_template(long ch,long srate, |
double req,int q_or_bitrate, |
double *base_setting){ |
int i=0,j; |
if(q_or_bitrate)req/=ch; |
while(setup_list[i]){ |
if(setup_list[i]->coupling_restriction==-1 || |
setup_list[i]->coupling_restriction==ch){ |
if(srate>=setup_list[i]->samplerate_min_restriction && |
srate<=setup_list[i]->samplerate_max_restriction){ |
int mappings=setup_list[i]->mappings; |
const double *map=(q_or_bitrate? |
setup_list[i]->rate_mapping: |
setup_list[i]->quality_mapping); |
/* the template matches. Does the requested quality mode |
fall within this template's modes? */ |
if(req<map[0]){++i;continue;} |
if(req>map[setup_list[i]->mappings]){++i;continue;} |
for(j=0;j<mappings;j++) |
if(req>=map[j] && req<map[j+1])break; |
/* an all-points match */ |
if(j==mappings) |
*base_setting=j-.001; |
else{ |
float low=map[j]; |
float high=map[j+1]; |
float del=(req-low)/(high-low); |
*base_setting=j+del; |
} |
return(setup_list[i]); |
} |
} |
i++; |
} |
return NULL; |
} |
/* encoders will need to use vorbis_info_init beforehand and call |
vorbis_info clear when all done */ |
/* two interfaces; this, more detailed one, and later a convenience |
layer on top */ |
/* the final setup call */ |
int vorbis_encode_setup_init(vorbis_info *vi){ |
int i,i0=0,singleblock=0; |
codec_setup_info *ci=vi->codec_setup; |
ve_setup_data_template *setup=NULL; |
highlevel_encode_setup *hi=&ci->hi; |
if(ci==NULL)return(OV_EINVAL); |
if(vi->channels<1||vi->channels>255)return(OV_EINVAL); |
if(!hi->impulse_block_p)i0=1; |
/* too low/high an ATH floater is nonsensical, but doesn't break anything */ |
if(hi->ath_floating_dB>-80)hi->ath_floating_dB=-80; |
if(hi->ath_floating_dB<-200)hi->ath_floating_dB=-200; |
/* again, bound this to avoid the app shooting itself int he foot |
too badly */ |
if(hi->amplitude_track_dBpersec>0.)hi->amplitude_track_dBpersec=0.; |
if(hi->amplitude_track_dBpersec<-99999.)hi->amplitude_track_dBpersec=-99999.; |
/* get the appropriate setup template; matches the fetch in previous |
stages */ |
setup=(ve_setup_data_template *)hi->setup; |
if(setup==NULL)return(OV_EINVAL); |
hi->set_in_stone=1; |
/* choose block sizes from configured sizes as well as paying |
attention to long_block_p and short_block_p. If the configured |
short and long blocks are the same length, we set long_block_p |
and unset short_block_p */ |
vorbis_encode_blocksize_setup(vi,hi->base_setting, |
setup->blocksize_short, |
setup->blocksize_long); |
if(ci->blocksizes[0]==ci->blocksizes[1])singleblock=1; |
/* floor setup; choose proper floor params. Allocated on the floor |
stack in order; if we alloc only a single long floor, it's 0 */ |
for(i=0;i<setup->floor_mappings;i++) |
vorbis_encode_floor_setup(vi,hi->base_setting, |
setup->floor_books, |
setup->floor_params, |
setup->floor_mapping_list[i]); |
/* setup of [mostly] short block detection and stereo*/ |
vorbis_encode_global_psych_setup(vi,hi->trigger_setting, |
setup->global_params, |
setup->global_mapping); |
vorbis_encode_global_stereo(vi,hi,setup->stereo_modes); |
/* basic psych setup and noise normalization */ |
vorbis_encode_psyset_setup(vi,hi->base_setting, |
setup->psy_noise_normal_start[0], |
setup->psy_noise_normal_partition[0], |
setup->psy_noise_normal_thresh, |
0); |
vorbis_encode_psyset_setup(vi,hi->base_setting, |
setup->psy_noise_normal_start[0], |
setup->psy_noise_normal_partition[0], |
setup->psy_noise_normal_thresh, |
1); |
if(!singleblock){ |
vorbis_encode_psyset_setup(vi,hi->base_setting, |
setup->psy_noise_normal_start[1], |
setup->psy_noise_normal_partition[1], |
setup->psy_noise_normal_thresh, |
2); |
vorbis_encode_psyset_setup(vi,hi->base_setting, |
setup->psy_noise_normal_start[1], |
setup->psy_noise_normal_partition[1], |
setup->psy_noise_normal_thresh, |
3); |
} |
/* tone masking setup */ |
vorbis_encode_tonemask_setup(vi,hi->block[i0].tone_mask_setting,0, |
setup->psy_tone_masteratt, |
setup->psy_tone_0dB, |
setup->psy_tone_adj_impulse); |
vorbis_encode_tonemask_setup(vi,hi->block[1].tone_mask_setting,1, |
setup->psy_tone_masteratt, |
setup->psy_tone_0dB, |
setup->psy_tone_adj_other); |
if(!singleblock){ |
vorbis_encode_tonemask_setup(vi,hi->block[2].tone_mask_setting,2, |
setup->psy_tone_masteratt, |
setup->psy_tone_0dB, |
setup->psy_tone_adj_other); |
vorbis_encode_tonemask_setup(vi,hi->block[3].tone_mask_setting,3, |
setup->psy_tone_masteratt, |
setup->psy_tone_0dB, |
setup->psy_tone_adj_long); |
} |
/* noise companding setup */ |
vorbis_encode_compand_setup(vi,hi->block[i0].noise_compand_setting,0, |
setup->psy_noise_compand, |
setup->psy_noise_compand_short_mapping); |
vorbis_encode_compand_setup(vi,hi->block[1].noise_compand_setting,1, |
setup->psy_noise_compand, |
setup->psy_noise_compand_short_mapping); |
if(!singleblock){ |
vorbis_encode_compand_setup(vi,hi->block[2].noise_compand_setting,2, |
setup->psy_noise_compand, |
setup->psy_noise_compand_long_mapping); |
vorbis_encode_compand_setup(vi,hi->block[3].noise_compand_setting,3, |
setup->psy_noise_compand, |
setup->psy_noise_compand_long_mapping); |
} |
/* peak guarding setup */ |
vorbis_encode_peak_setup(vi,hi->block[i0].tone_peaklimit_setting,0, |
setup->psy_tone_dBsuppress); |
vorbis_encode_peak_setup(vi,hi->block[1].tone_peaklimit_setting,1, |
setup->psy_tone_dBsuppress); |
if(!singleblock){ |
vorbis_encode_peak_setup(vi,hi->block[2].tone_peaklimit_setting,2, |
setup->psy_tone_dBsuppress); |
vorbis_encode_peak_setup(vi,hi->block[3].tone_peaklimit_setting,3, |
setup->psy_tone_dBsuppress); |
} |
/* noise bias setup */ |
vorbis_encode_noisebias_setup(vi,hi->block[i0].noise_bias_setting,0, |
setup->psy_noise_dBsuppress, |
setup->psy_noise_bias_impulse, |
setup->psy_noiseguards, |
(i0==0?hi->impulse_noisetune:0.)); |
vorbis_encode_noisebias_setup(vi,hi->block[1].noise_bias_setting,1, |
setup->psy_noise_dBsuppress, |
setup->psy_noise_bias_padding, |
setup->psy_noiseguards,0.); |
if(!singleblock){ |
vorbis_encode_noisebias_setup(vi,hi->block[2].noise_bias_setting,2, |
setup->psy_noise_dBsuppress, |
setup->psy_noise_bias_trans, |
setup->psy_noiseguards,0.); |
vorbis_encode_noisebias_setup(vi,hi->block[3].noise_bias_setting,3, |
setup->psy_noise_dBsuppress, |
setup->psy_noise_bias_long, |
setup->psy_noiseguards,0.); |
} |
vorbis_encode_ath_setup(vi,0); |
vorbis_encode_ath_setup(vi,1); |
if(!singleblock){ |
vorbis_encode_ath_setup(vi,2); |
vorbis_encode_ath_setup(vi,3); |
} |
vorbis_encode_map_n_res_setup(vi,hi->base_setting,setup->maps); |
/* set bitrate readonlies and management */ |
if(hi->bitrate_av>0) |
vi->bitrate_nominal=hi->bitrate_av; |
else{ |
vi->bitrate_nominal=setting_to_approx_bitrate(vi); |
} |
vi->bitrate_lower=hi->bitrate_min; |
vi->bitrate_upper=hi->bitrate_max; |
if(hi->bitrate_av) |
vi->bitrate_window=(double)hi->bitrate_reservoir/hi->bitrate_av; |
else |
vi->bitrate_window=0.; |
if(hi->managed){ |
ci->bi.avg_rate=hi->bitrate_av; |
ci->bi.min_rate=hi->bitrate_min; |
ci->bi.max_rate=hi->bitrate_max; |
ci->bi.reservoir_bits=hi->bitrate_reservoir; |
ci->bi.reservoir_bias= |
hi->bitrate_reservoir_bias; |
ci->bi.slew_damp=hi->bitrate_av_damp; |
} |
return(0); |
} |
static void vorbis_encode_setup_setting(vorbis_info *vi, |
long channels, |
long rate){ |
int i,is; |
codec_setup_info *ci=vi->codec_setup; |
highlevel_encode_setup *hi=&ci->hi; |
const ve_setup_data_template *setup=hi->setup; |
double ds; |
vi->version=0; |
vi->channels=channels; |
vi->rate=rate; |
hi->impulse_block_p=1; |
hi->noise_normalize_p=1; |
is=hi->base_setting; |
ds=hi->base_setting-is; |
hi->stereo_point_setting=hi->base_setting; |
if(!hi->lowpass_altered) |
hi->lowpass_kHz= |
setup->psy_lowpass[is]*(1.-ds)+setup->psy_lowpass[is+1]*ds; |
hi->ath_floating_dB=setup->psy_ath_float[is]*(1.-ds)+ |
setup->psy_ath_float[is+1]*ds; |
hi->ath_absolute_dB=setup->psy_ath_abs[is]*(1.-ds)+ |
setup->psy_ath_abs[is+1]*ds; |
hi->amplitude_track_dBpersec=-6.; |
hi->trigger_setting=hi->base_setting; |
for(i=0;i<4;i++){ |
hi->block[i].tone_mask_setting=hi->base_setting; |
hi->block[i].tone_peaklimit_setting=hi->base_setting; |
hi->block[i].noise_bias_setting=hi->base_setting; |
hi->block[i].noise_compand_setting=hi->base_setting; |
} |
} |
int vorbis_encode_setup_vbr(vorbis_info *vi, |
long channels, |
long rate, |
float quality){ |
codec_setup_info *ci; |
highlevel_encode_setup *hi; |
if(rate<=0) return OV_EINVAL; |
ci=vi->codec_setup; |
hi=&ci->hi; |
quality+=.0000001; |
if(quality>=1.)quality=.9999; |
hi->req=quality; |
hi->setup=get_setup_template(channels,rate,quality,0,&hi->base_setting); |
if(!hi->setup)return OV_EIMPL; |
vorbis_encode_setup_setting(vi,channels,rate); |
hi->managed=0; |
hi->coupling_p=1; |
return 0; |
} |
int vorbis_encode_init_vbr(vorbis_info *vi, |
long channels, |
long rate, |
float base_quality /* 0. to 1. */ |
){ |
int ret=0; |
ret=vorbis_encode_setup_vbr(vi,channels,rate,base_quality); |
if(ret){ |
vorbis_info_clear(vi); |
return ret; |
} |
ret=vorbis_encode_setup_init(vi); |
if(ret) |
vorbis_info_clear(vi); |
return(ret); |
} |
int vorbis_encode_setup_managed(vorbis_info *vi, |
long channels, |
long rate, |
long max_bitrate, |
long nominal_bitrate, |
long min_bitrate){ |
codec_setup_info *ci; |
highlevel_encode_setup *hi; |
double tnominal; |
if(rate<=0) return OV_EINVAL; |
ci=vi->codec_setup; |
hi=&ci->hi; |
tnominal=nominal_bitrate; |
if(nominal_bitrate<=0.){ |
if(max_bitrate>0.){ |
if(min_bitrate>0.) |
nominal_bitrate=(max_bitrate+min_bitrate)*.5; |
else |
nominal_bitrate=max_bitrate*.875; |
}else{ |
if(min_bitrate>0.){ |
nominal_bitrate=min_bitrate; |
}else{ |
return(OV_EINVAL); |
} |
} |
} |
hi->req=nominal_bitrate; |
hi->setup=get_setup_template(channels,rate,nominal_bitrate,1,&hi->base_setting); |
if(!hi->setup)return OV_EIMPL; |
vorbis_encode_setup_setting(vi,channels,rate); |
/* initialize management with sane defaults */ |
hi->coupling_p=1; |
hi->managed=1; |
hi->bitrate_min=min_bitrate; |
hi->bitrate_max=max_bitrate; |
hi->bitrate_av=tnominal; |
hi->bitrate_av_damp=1.5f; /* full range in no less than 1.5 second */ |
hi->bitrate_reservoir=nominal_bitrate*2; |
hi->bitrate_reservoir_bias=.1; /* bias toward hoarding bits */ |
return(0); |
} |
int vorbis_encode_init(vorbis_info *vi, |
long channels, |
long rate, |
long max_bitrate, |
long nominal_bitrate, |
long min_bitrate){ |
int ret=vorbis_encode_setup_managed(vi,channels,rate, |
max_bitrate, |
nominal_bitrate, |
min_bitrate); |
if(ret){ |
vorbis_info_clear(vi); |
return(ret); |
} |
ret=vorbis_encode_setup_init(vi); |
if(ret) |
vorbis_info_clear(vi); |
return(ret); |
} |
int vorbis_encode_ctl(vorbis_info *vi,int number,void *arg){ |
if(vi){ |
codec_setup_info *ci=vi->codec_setup; |
highlevel_encode_setup *hi=&ci->hi; |
int setp=(number&0xf); /* a read request has a low nibble of 0 */ |
if(setp && hi->set_in_stone)return(OV_EINVAL); |
switch(number){ |
/* now deprecated *****************/ |
case OV_ECTL_RATEMANAGE_GET: |
{ |
struct ovectl_ratemanage_arg *ai= |
(struct ovectl_ratemanage_arg *)arg; |
ai->management_active=hi->managed; |
ai->bitrate_hard_window=ai->bitrate_av_window= |
(double)hi->bitrate_reservoir/vi->rate; |
ai->bitrate_av_window_center=1.; |
ai->bitrate_hard_min=hi->bitrate_min; |
ai->bitrate_hard_max=hi->bitrate_max; |
ai->bitrate_av_lo=hi->bitrate_av; |
ai->bitrate_av_hi=hi->bitrate_av; |
} |
return(0); |
/* now deprecated *****************/ |
case OV_ECTL_RATEMANAGE_SET: |
{ |
struct ovectl_ratemanage_arg *ai= |
(struct ovectl_ratemanage_arg *)arg; |
if(ai==NULL){ |
hi->managed=0; |
}else{ |
hi->managed=ai->management_active; |
vorbis_encode_ctl(vi,OV_ECTL_RATEMANAGE_AVG,arg); |
vorbis_encode_ctl(vi,OV_ECTL_RATEMANAGE_HARD,arg); |
} |
} |
return 0; |
/* now deprecated *****************/ |
case OV_ECTL_RATEMANAGE_AVG: |
{ |
struct ovectl_ratemanage_arg *ai= |
(struct ovectl_ratemanage_arg *)arg; |
if(ai==NULL){ |
hi->bitrate_av=0; |
}else{ |
hi->bitrate_av=(ai->bitrate_av_lo+ai->bitrate_av_hi)*.5; |
} |
} |
return(0); |
/* now deprecated *****************/ |
case OV_ECTL_RATEMANAGE_HARD: |
{ |
struct ovectl_ratemanage_arg *ai= |
(struct ovectl_ratemanage_arg *)arg; |
if(ai==NULL){ |
hi->bitrate_min=0; |
hi->bitrate_max=0; |
}else{ |
hi->bitrate_min=ai->bitrate_hard_min; |
hi->bitrate_max=ai->bitrate_hard_max; |
hi->bitrate_reservoir=ai->bitrate_hard_window* |
(hi->bitrate_max+hi->bitrate_min)*.5; |
} |
if(hi->bitrate_reservoir<128.) |
hi->bitrate_reservoir=128.; |
} |
return(0); |
/* replacement ratemanage interface */ |
case OV_ECTL_RATEMANAGE2_GET: |
{ |
struct ovectl_ratemanage2_arg *ai= |
(struct ovectl_ratemanage2_arg *)arg; |
if(ai==NULL)return OV_EINVAL; |
ai->management_active=hi->managed; |
ai->bitrate_limit_min_kbps=hi->bitrate_min/1000; |
ai->bitrate_limit_max_kbps=hi->bitrate_max/1000; |
ai->bitrate_average_kbps=hi->bitrate_av/1000; |
ai->bitrate_average_damping=hi->bitrate_av_damp; |
ai->bitrate_limit_reservoir_bits=hi->bitrate_reservoir; |
ai->bitrate_limit_reservoir_bias=hi->bitrate_reservoir_bias; |
} |
return (0); |
case OV_ECTL_RATEMANAGE2_SET: |
{ |
struct ovectl_ratemanage2_arg *ai= |
(struct ovectl_ratemanage2_arg *)arg; |
if(ai==NULL){ |
hi->managed=0; |
}else{ |
/* sanity check; only catch invariant violations */ |
if(ai->bitrate_limit_min_kbps>0 && |
ai->bitrate_average_kbps>0 && |
ai->bitrate_limit_min_kbps>ai->bitrate_average_kbps) |
return OV_EINVAL; |
if(ai->bitrate_limit_max_kbps>0 && |
ai->bitrate_average_kbps>0 && |
ai->bitrate_limit_max_kbps<ai->bitrate_average_kbps) |
return OV_EINVAL; |
if(ai->bitrate_limit_min_kbps>0 && |
ai->bitrate_limit_max_kbps>0 && |
ai->bitrate_limit_min_kbps>ai->bitrate_limit_max_kbps) |
return OV_EINVAL; |
if(ai->bitrate_average_damping <= 0.) |
return OV_EINVAL; |
if(ai->bitrate_limit_reservoir_bits < 0) |
return OV_EINVAL; |
if(ai->bitrate_limit_reservoir_bias < 0.) |
return OV_EINVAL; |
if(ai->bitrate_limit_reservoir_bias > 1.) |
return OV_EINVAL; |
hi->managed=ai->management_active; |
hi->bitrate_min=ai->bitrate_limit_min_kbps * 1000; |
hi->bitrate_max=ai->bitrate_limit_max_kbps * 1000; |
hi->bitrate_av=ai->bitrate_average_kbps * 1000; |
hi->bitrate_av_damp=ai->bitrate_average_damping; |
hi->bitrate_reservoir=ai->bitrate_limit_reservoir_bits; |
hi->bitrate_reservoir_bias=ai->bitrate_limit_reservoir_bias; |
} |
} |
return 0; |
case OV_ECTL_LOWPASS_GET: |
{ |
double *farg=(double *)arg; |
*farg=hi->lowpass_kHz; |
} |
return(0); |
case OV_ECTL_LOWPASS_SET: |
{ |
double *farg=(double *)arg; |
hi->lowpass_kHz=*farg; |
if(hi->lowpass_kHz<2.)hi->lowpass_kHz=2.; |
if(hi->lowpass_kHz>99.)hi->lowpass_kHz=99.; |
hi->lowpass_altered=1; |
} |
return(0); |
case OV_ECTL_IBLOCK_GET: |
{ |
double *farg=(double *)arg; |
*farg=hi->impulse_noisetune; |
} |
return(0); |
case OV_ECTL_IBLOCK_SET: |
{ |
double *farg=(double *)arg; |
hi->impulse_noisetune=*farg; |
if(hi->impulse_noisetune>0.)hi->impulse_noisetune=0.; |
if(hi->impulse_noisetune<-15.)hi->impulse_noisetune=-15.; |
} |
return(0); |
case OV_ECTL_COUPLING_GET: |
{ |
int *iarg=(int *)arg; |
*iarg=hi->coupling_p; |
} |
return(0); |
case OV_ECTL_COUPLING_SET: |
{ |
const void *new_template; |
double new_base=0.; |
int *iarg=(int *)arg; |
hi->coupling_p=((*iarg)!=0); |
/* Fetching a new template can alter the base_setting, which |
many other parameters are based on. Right now, the only |
parameter drawn from the base_setting that can be altered |
by an encctl is the lowpass, so that is explictly flagged |
to not be overwritten when we fetch a new template and |
recompute the dependant settings */ |
new_template = get_setup_template(hi->coupling_p?vi->channels:-1, |
vi->rate, |
hi->req, |
hi->managed, |
&new_base); |
if(!new_template)return OV_EIMPL; |
hi->setup=new_template; |
hi->base_setting=new_base; |
vorbis_encode_setup_setting(vi,vi->channels,vi->rate); |
} |
return(0); |
} |
return(OV_EIMPL); |
} |
return(OV_EINVAL); |
} |
/contrib/sdk/sources/libvorbis-1.3.7/lib/vorbisfile.c |
---|
0,0 → 1,2427 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2015 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: stdio-based convenience library for opening/seeking/decoding |
********************************************************************/ |
#include <stdlib.h> |
#include <stdio.h> |
#include <errno.h> |
#include <string.h> |
#include <math.h> |
#include "vorbis/codec.h" |
/* we don't need or want the static callback symbols here */ |
#define OV_EXCLUDE_STATIC_CALLBACKS |
#include "vorbis/vorbisfile.h" |
#include "os.h" |
#include "misc.h" |
/* A 'chained bitstream' is a Vorbis bitstream that contains more than |
one logical bitstream arranged end to end (the only form of Ogg |
multiplexing allowed in a Vorbis bitstream; grouping [parallel |
multiplexing] is not allowed in Vorbis) */ |
/* A Vorbis file can be played beginning to end (streamed) without |
worrying ahead of time about chaining (see decoder_example.c). If |
we have the whole file, however, and want random access |
(seeking/scrubbing) or desire to know the total length/time of a |
file, we need to account for the possibility of chaining. */ |
/* We can handle things a number of ways; we can determine the entire |
bitstream structure right off the bat, or find pieces on demand. |
This example determines and caches structure for the entire |
bitstream, but builds a virtual decoder on the fly when moving |
between links in the chain. */ |
/* There are also different ways to implement seeking. Enough |
information exists in an Ogg bitstream to seek to |
sample-granularity positions in the output. Or, one can seek by |
picking some portion of the stream roughly in the desired area if |
we only want coarse navigation through the stream. */ |
/************************************************************************* |
* Many, many internal helpers. The intention is not to be confusing; |
* rampant duplication and monolithic function implementation would be |
* harder to understand anyway. The high level functions are last. Begin |
* grokking near the end of the file */ |
/* read a little more data from the file/pipe into the ogg_sync framer |
*/ |
#define CHUNKSIZE 65536 /* greater-than-page-size granularity seeking */ |
#define READSIZE 2048 /* a smaller read size is needed for low-rate streaming. */ |
static long _get_data(OggVorbis_File *vf){ |
errno=0; |
if(!(vf->callbacks.read_func))return(-1); |
if(vf->datasource){ |
char *buffer=ogg_sync_buffer(&vf->oy,READSIZE); |
long bytes=(vf->callbacks.read_func)(buffer,1,READSIZE,vf->datasource); |
if(bytes>0)ogg_sync_wrote(&vf->oy,bytes); |
if(bytes==0 && errno)return(-1); |
return(bytes); |
}else |
return(0); |
} |
/* save a tiny smidge of verbosity to make the code more readable */ |
static int _seek_helper(OggVorbis_File *vf,ogg_int64_t offset){ |
if(vf->datasource){ |
/* only seek if the file position isn't already there */ |
if(vf->offset != offset){ |
if(!(vf->callbacks.seek_func)|| |
(vf->callbacks.seek_func)(vf->datasource, offset, SEEK_SET) == -1) |
return OV_EREAD; |
vf->offset=offset; |
ogg_sync_reset(&vf->oy); |
} |
}else{ |
/* shouldn't happen unless someone writes a broken callback */ |
return OV_EFAULT; |
} |
return 0; |
} |
/* The read/seek functions track absolute position within the stream */ |
/* from the head of the stream, get the next page. boundary specifies |
if the function is allowed to fetch more data from the stream (and |
how much) or only use internally buffered data. |
boundary: -1) unbounded search |
0) read no additional data; use cached only |
n) search for a new page beginning for n bytes |
return: <0) did not find a page (OV_FALSE, OV_EOF, OV_EREAD) |
n) found a page at absolute offset n */ |
static ogg_int64_t _get_next_page(OggVorbis_File *vf,ogg_page *og, |
ogg_int64_t boundary){ |
if(boundary>0)boundary+=vf->offset; |
while(1){ |
long more; |
if(boundary>0 && vf->offset>=boundary)return(OV_FALSE); |
more=ogg_sync_pageseek(&vf->oy,og); |
if(more<0){ |
/* skipped n bytes */ |
vf->offset-=more; |
}else{ |
if(more==0){ |
/* send more paramedics */ |
if(!boundary)return(OV_FALSE); |
{ |
long ret=_get_data(vf); |
if(ret==0)return(OV_EOF); |
if(ret<0)return(OV_EREAD); |
} |
}else{ |
/* got a page. Return the offset at the page beginning, |
advance the internal offset past the page end */ |
ogg_int64_t ret=vf->offset; |
vf->offset+=more; |
return(ret); |
} |
} |
} |
} |
/* find the latest page beginning before the passed in position. Much |
dirtier than the above as Ogg doesn't have any backward search |
linkage. no 'readp' as it will certainly have to read. */ |
/* returns offset or OV_EREAD, OV_FAULT */ |
static ogg_int64_t _get_prev_page(OggVorbis_File *vf,ogg_int64_t begin,ogg_page *og){ |
ogg_int64_t end = begin; |
ogg_int64_t ret; |
ogg_int64_t offset=-1; |
while(offset==-1){ |
begin-=CHUNKSIZE; |
if(begin<0) |
begin=0; |
ret=_seek_helper(vf,begin); |
if(ret)return(ret); |
while(vf->offset<end){ |
memset(og,0,sizeof(*og)); |
ret=_get_next_page(vf,og,end-vf->offset); |
if(ret==OV_EREAD)return(OV_EREAD); |
if(ret<0){ |
break; |
}else{ |
offset=ret; |
} |
} |
} |
/* In a fully compliant, non-multiplexed stream, we'll still be |
holding the last page. In multiplexed (or noncompliant streams), |
we will probably have to re-read the last page we saw */ |
if(og->header_len==0){ |
ret=_seek_helper(vf,offset); |
if(ret)return(ret); |
ret=_get_next_page(vf,og,CHUNKSIZE); |
if(ret<0) |
/* this shouldn't be possible */ |
return(OV_EFAULT); |
} |
return(offset); |
} |
static void _add_serialno(ogg_page *og,long **serialno_list, int *n){ |
long s = ogg_page_serialno(og); |
(*n)++; |
if(*serialno_list){ |
*serialno_list = _ogg_realloc(*serialno_list, sizeof(**serialno_list)*(*n)); |
}else{ |
*serialno_list = _ogg_malloc(sizeof(**serialno_list)); |
} |
(*serialno_list)[(*n)-1] = s; |
} |
/* returns nonzero if found */ |
static int _lookup_serialno(long s, long *serialno_list, int n){ |
if(serialno_list){ |
while(n--){ |
if(*serialno_list == s) return 1; |
serialno_list++; |
} |
} |
return 0; |
} |
static int _lookup_page_serialno(ogg_page *og, long *serialno_list, int n){ |
long s = ogg_page_serialno(og); |
return _lookup_serialno(s,serialno_list,n); |
} |
/* performs the same search as _get_prev_page, but prefers pages of |
the specified serial number. If a page of the specified serialno is |
spotted during the seek-back-and-read-forward, it will return the |
info of last page of the matching serial number instead of the very |
last page. If no page of the specified serialno is seen, it will |
return the info of last page and alter *serialno. */ |
static ogg_int64_t _get_prev_page_serial(OggVorbis_File *vf, ogg_int64_t begin, |
long *serial_list, int serial_n, |
int *serialno, ogg_int64_t *granpos){ |
ogg_page og; |
ogg_int64_t end=begin; |
ogg_int64_t ret; |
ogg_int64_t prefoffset=-1; |
ogg_int64_t offset=-1; |
ogg_int64_t ret_serialno=-1; |
ogg_int64_t ret_gran=-1; |
while(offset==-1){ |
begin-=CHUNKSIZE; |
if(begin<0) |
begin=0; |
ret=_seek_helper(vf,begin); |
if(ret)return(ret); |
while(vf->offset<end){ |
ret=_get_next_page(vf,&og,end-vf->offset); |
if(ret==OV_EREAD)return(OV_EREAD); |
if(ret<0){ |
break; |
}else{ |
ret_serialno=ogg_page_serialno(&og); |
ret_gran=ogg_page_granulepos(&og); |
offset=ret; |
if(ret_serialno == *serialno){ |
prefoffset=ret; |
*granpos=ret_gran; |
} |
if(!_lookup_serialno(ret_serialno,serial_list,serial_n)){ |
/* we fell off the end of the link, which means we seeked |
back too far and shouldn't have been looking in that link |
to begin with. If we found the preferred serial number, |
forget that we saw it. */ |
prefoffset=-1; |
} |
} |
} |
/*We started from the beginning of the stream and found nothing. |
This should be impossible unless the contents of the stream changed out |
from under us after we read from it.*/ |
if(!begin&&vf->offset<0)return OV_EBADLINK; |
} |
/* we're not interested in the page... just the serialno and granpos. */ |
if(prefoffset>=0)return(prefoffset); |
*serialno = ret_serialno; |
*granpos = ret_gran; |
return(offset); |
} |
/* uses the local ogg_stream storage in vf; this is important for |
non-streaming input sources */ |
static int _fetch_headers(OggVorbis_File *vf,vorbis_info *vi,vorbis_comment *vc, |
long **serialno_list, int *serialno_n, |
ogg_page *og_ptr){ |
ogg_page og; |
ogg_packet op; |
int i,ret; |
int allbos=0; |
if(!og_ptr){ |
ogg_int64_t llret=_get_next_page(vf,&og,CHUNKSIZE); |
if(llret==OV_EREAD)return(OV_EREAD); |
if(llret<0)return(OV_ENOTVORBIS); |
og_ptr=&og; |
} |
vorbis_info_init(vi); |
vorbis_comment_init(vc); |
vf->ready_state=OPENED; |
/* extract the serialnos of all BOS pages + the first set of vorbis |
headers we see in the link */ |
while(ogg_page_bos(og_ptr)){ |
if(serialno_list){ |
if(_lookup_page_serialno(og_ptr,*serialno_list,*serialno_n)){ |
/* a dupe serialnumber in an initial header packet set == invalid stream */ |
if(*serialno_list)_ogg_free(*serialno_list); |
*serialno_list=0; |
*serialno_n=0; |
ret=OV_EBADHEADER; |
goto bail_header; |
} |
_add_serialno(og_ptr,serialno_list,serialno_n); |
} |
if(vf->ready_state<STREAMSET){ |
/* we don't have a vorbis stream in this link yet, so begin |
prospective stream setup. We need a stream to get packets */ |
ogg_stream_reset_serialno(&vf->os,ogg_page_serialno(og_ptr)); |
ogg_stream_pagein(&vf->os,og_ptr); |
if(ogg_stream_packetout(&vf->os,&op) > 0 && |
vorbis_synthesis_idheader(&op)){ |
/* vorbis header; continue setup */ |
vf->ready_state=STREAMSET; |
if((ret=vorbis_synthesis_headerin(vi,vc,&op))){ |
ret=OV_EBADHEADER; |
goto bail_header; |
} |
} |
} |
/* get next page */ |
{ |
ogg_int64_t llret=_get_next_page(vf,og_ptr,CHUNKSIZE); |
if(llret==OV_EREAD){ |
ret=OV_EREAD; |
goto bail_header; |
} |
if(llret<0){ |
ret=OV_ENOTVORBIS; |
goto bail_header; |
} |
/* if this page also belongs to our vorbis stream, submit it and break */ |
if(vf->ready_state==STREAMSET && |
vf->os.serialno == ogg_page_serialno(og_ptr)){ |
ogg_stream_pagein(&vf->os,og_ptr); |
break; |
} |
} |
} |
if(vf->ready_state!=STREAMSET){ |
ret = OV_ENOTVORBIS; |
goto bail_header; |
} |
while(1){ |
i=0; |
while(i<2){ /* get a page loop */ |
while(i<2){ /* get a packet loop */ |
int result=ogg_stream_packetout(&vf->os,&op); |
if(result==0)break; |
if(result==-1){ |
ret=OV_EBADHEADER; |
goto bail_header; |
} |
if((ret=vorbis_synthesis_headerin(vi,vc,&op))) |
goto bail_header; |
i++; |
} |
while(i<2){ |
if(_get_next_page(vf,og_ptr,CHUNKSIZE)<0){ |
ret=OV_EBADHEADER; |
goto bail_header; |
} |
/* if this page belongs to the correct stream, go parse it */ |
if(vf->os.serialno == ogg_page_serialno(og_ptr)){ |
ogg_stream_pagein(&vf->os,og_ptr); |
break; |
} |
/* if we never see the final vorbis headers before the link |
ends, abort */ |
if(ogg_page_bos(og_ptr)){ |
if(allbos){ |
ret = OV_EBADHEADER; |
goto bail_header; |
}else |
allbos=1; |
} |
/* otherwise, keep looking */ |
} |
} |
return 0; |
} |
bail_header: |
vorbis_info_clear(vi); |
vorbis_comment_clear(vc); |
vf->ready_state=OPENED; |
return ret; |
} |
/* Starting from current cursor position, get initial PCM offset of |
next page. Consumes the page in the process without decoding |
audio, however this is only called during stream parsing upon |
seekable open. */ |
static ogg_int64_t _initial_pcmoffset(OggVorbis_File *vf, vorbis_info *vi){ |
ogg_page og; |
ogg_int64_t accumulated=0; |
long lastblock=-1; |
int result; |
int serialno = vf->os.serialno; |
while(1){ |
ogg_packet op; |
if(_get_next_page(vf,&og,-1)<0) |
break; /* should not be possible unless the file is truncated/mangled */ |
if(ogg_page_bos(&og)) break; |
if(ogg_page_serialno(&og)!=serialno) continue; |
/* count blocksizes of all frames in the page */ |
ogg_stream_pagein(&vf->os,&og); |
while((result=ogg_stream_packetout(&vf->os,&op))){ |
if(result>0){ /* ignore holes */ |
long thisblock=vorbis_packet_blocksize(vi,&op); |
if(thisblock>=0){ |
if(lastblock!=-1) |
accumulated+=(lastblock+thisblock)>>2; |
lastblock=thisblock; |
} |
} |
} |
if(ogg_page_granulepos(&og)!=-1){ |
/* pcm offset of last packet on the first audio page */ |
accumulated= ogg_page_granulepos(&og)-accumulated; |
break; |
} |
} |
/* less than zero? Either a corrupt file or a stream with samples |
trimmed off the beginning, a normal occurrence; in both cases set |
the offset to zero */ |
if(accumulated<0)accumulated=0; |
return accumulated; |
} |
/* finds each bitstream link one at a time using a bisection search |
(has to begin by knowing the offset of the lb's initial page). |
Recurses for each link so it can alloc the link storage after |
finding them all, then unroll and fill the cache at the same time */ |
static int _bisect_forward_serialno(OggVorbis_File *vf, |
ogg_int64_t begin, |
ogg_int64_t searched, |
ogg_int64_t end, |
ogg_int64_t endgran, |
int endserial, |
long *currentno_list, |
int currentnos, |
long m){ |
ogg_int64_t pcmoffset; |
ogg_int64_t dataoffset=searched; |
ogg_int64_t endsearched=end; |
ogg_int64_t next=end; |
ogg_int64_t searchgran=-1; |
ogg_page og; |
ogg_int64_t ret,last; |
int serialno = vf->os.serialno; |
/* invariants: |
we have the headers and serialnos for the link beginning at 'begin' |
we have the offset and granpos of the last page in the file (potentially |
not a page we care about) |
*/ |
/* Is the last page in our list of current serialnumbers? */ |
if(_lookup_serialno(endserial,currentno_list,currentnos)){ |
/* last page is in the starting serialno list, so we've bisected |
down to (or just started with) a single link. Now we need to |
find the last vorbis page belonging to the first vorbis stream |
for this link. */ |
searched = end; |
while(endserial != serialno){ |
endserial = serialno; |
searched=_get_prev_page_serial(vf,searched,currentno_list,currentnos,&endserial,&endgran); |
} |
vf->links=m+1; |
if(vf->offsets)_ogg_free(vf->offsets); |
if(vf->serialnos)_ogg_free(vf->serialnos); |
if(vf->dataoffsets)_ogg_free(vf->dataoffsets); |
vf->offsets=_ogg_malloc((vf->links+1)*sizeof(*vf->offsets)); |
vf->vi=_ogg_realloc(vf->vi,vf->links*sizeof(*vf->vi)); |
vf->vc=_ogg_realloc(vf->vc,vf->links*sizeof(*vf->vc)); |
vf->serialnos=_ogg_malloc(vf->links*sizeof(*vf->serialnos)); |
vf->dataoffsets=_ogg_malloc(vf->links*sizeof(*vf->dataoffsets)); |
vf->pcmlengths=_ogg_malloc(vf->links*2*sizeof(*vf->pcmlengths)); |
vf->offsets[m+1]=end; |
vf->offsets[m]=begin; |
vf->pcmlengths[m*2+1]=(endgran<0?0:endgran); |
}else{ |
/* last page is not in the starting stream's serial number list, |
so we have multiple links. Find where the stream that begins |
our bisection ends. */ |
long *next_serialno_list=NULL; |
int next_serialnos=0; |
vorbis_info vi; |
vorbis_comment vc; |
int testserial = serialno+1; |
/* the below guards against garbage seperating the last and |
first pages of two links. */ |
while(searched<endsearched){ |
ogg_int64_t bisect; |
if(endsearched-searched<CHUNKSIZE){ |
bisect=searched; |
}else{ |
bisect=(searched+endsearched)/2; |
} |
ret=_seek_helper(vf,bisect); |
if(ret)return(ret); |
last=_get_next_page(vf,&og,-1); |
if(last==OV_EREAD)return(OV_EREAD); |
if(last<0 || !_lookup_page_serialno(&og,currentno_list,currentnos)){ |
endsearched=bisect; |
if(last>=0)next=last; |
}else{ |
searched=vf->offset; |
} |
} |
/* Bisection point found */ |
/* for the time being, fetch end PCM offset the simple way */ |
searched = next; |
while(testserial != serialno){ |
testserial = serialno; |
searched = _get_prev_page_serial(vf,searched,currentno_list,currentnos,&testserial,&searchgran); |
} |
ret=_seek_helper(vf,next); |
if(ret)return(ret); |
ret=_fetch_headers(vf,&vi,&vc,&next_serialno_list,&next_serialnos,NULL); |
if(ret)return(ret); |
serialno = vf->os.serialno; |
dataoffset = vf->offset; |
/* this will consume a page, however the next bisection always |
starts with a raw seek */ |
pcmoffset = _initial_pcmoffset(vf,&vi); |
ret=_bisect_forward_serialno(vf,next,vf->offset,end,endgran,endserial, |
next_serialno_list,next_serialnos,m+1); |
if(ret)return(ret); |
if(next_serialno_list)_ogg_free(next_serialno_list); |
vf->offsets[m+1]=next; |
vf->serialnos[m+1]=serialno; |
vf->dataoffsets[m+1]=dataoffset; |
vf->vi[m+1]=vi; |
vf->vc[m+1]=vc; |
vf->pcmlengths[m*2+1]=searchgran; |
vf->pcmlengths[m*2+2]=pcmoffset; |
vf->pcmlengths[m*2+3]-=pcmoffset; |
if(vf->pcmlengths[m*2+3]<0)vf->pcmlengths[m*2+3]=0; |
} |
return(0); |
} |
static int _make_decode_ready(OggVorbis_File *vf){ |
if(vf->ready_state>STREAMSET)return 0; |
if(vf->ready_state<STREAMSET)return OV_EFAULT; |
if(vf->seekable){ |
if(vorbis_synthesis_init(&vf->vd,vf->vi+vf->current_link)) |
return OV_EBADLINK; |
}else{ |
if(vorbis_synthesis_init(&vf->vd,vf->vi)) |
return OV_EBADLINK; |
} |
vorbis_block_init(&vf->vd,&vf->vb); |
vf->ready_state=INITSET; |
vf->bittrack=0.f; |
vf->samptrack=0.f; |
return 0; |
} |
static int _open_seekable2(OggVorbis_File *vf){ |
ogg_int64_t dataoffset=vf->dataoffsets[0],end,endgran=-1; |
int endserial=vf->os.serialno; |
int serialno=vf->os.serialno; |
/* we're partially open and have a first link header state in |
storage in vf */ |
/* fetch initial PCM offset */ |
ogg_int64_t pcmoffset = _initial_pcmoffset(vf,vf->vi); |
/* we can seek, so set out learning all about this file */ |
if(vf->callbacks.seek_func && vf->callbacks.tell_func){ |
(vf->callbacks.seek_func)(vf->datasource,0,SEEK_END); |
vf->offset=vf->end=(vf->callbacks.tell_func)(vf->datasource); |
}else{ |
vf->offset=vf->end=-1; |
} |
/* If seek_func is implemented, tell_func must also be implemented */ |
if(vf->end==-1) return(OV_EINVAL); |
/* Get the offset of the last page of the physical bitstream, or, if |
we're lucky the last vorbis page of this link as most OggVorbis |
files will contain a single logical bitstream */ |
end=_get_prev_page_serial(vf,vf->end,vf->serialnos+2,vf->serialnos[1],&endserial,&endgran); |
if(end<0)return(end); |
/* now determine bitstream structure recursively */ |
if(_bisect_forward_serialno(vf,0,dataoffset,end,endgran,endserial, |
vf->serialnos+2,vf->serialnos[1],0)<0)return(OV_EREAD); |
vf->offsets[0]=0; |
vf->serialnos[0]=serialno; |
vf->dataoffsets[0]=dataoffset; |
vf->pcmlengths[0]=pcmoffset; |
vf->pcmlengths[1]-=pcmoffset; |
if(vf->pcmlengths[1]<0)vf->pcmlengths[1]=0; |
return(ov_raw_seek(vf,dataoffset)); |
} |
/* clear out the current logical bitstream decoder */ |
static void _decode_clear(OggVorbis_File *vf){ |
vorbis_dsp_clear(&vf->vd); |
vorbis_block_clear(&vf->vb); |
vf->ready_state=OPENED; |
} |
/* fetch and process a packet. Handles the case where we're at a |
bitstream boundary and dumps the decoding machine. If the decoding |
machine is unloaded, it loads it. It also keeps pcm_offset up to |
date (seek and read both use this. seek uses a special hack with |
readp). |
return: <0) error, OV_HOLE (lost packet) or OV_EOF |
0) need more data (only if readp==0) |
1) got a packet |
*/ |
static int _fetch_and_process_packet(OggVorbis_File *vf, |
ogg_packet *op_in, |
int readp, |
int spanp){ |
ogg_page og; |
/* handle one packet. Try to fetch it from current stream state */ |
/* extract packets from page */ |
while(1){ |
if(vf->ready_state==STREAMSET){ |
int ret=_make_decode_ready(vf); |
if(ret<0)return ret; |
} |
/* process a packet if we can. */ |
if(vf->ready_state==INITSET){ |
int hs=vorbis_synthesis_halfrate_p(vf->vi); |
while(1) { |
ogg_packet op; |
ogg_packet *op_ptr=(op_in?op_in:&op); |
int result=ogg_stream_packetout(&vf->os,op_ptr); |
ogg_int64_t granulepos; |
op_in=NULL; |
if(result==-1)return(OV_HOLE); /* hole in the data. */ |
if(result>0){ |
/* got a packet. process it */ |
granulepos=op_ptr->granulepos; |
if(!vorbis_synthesis(&vf->vb,op_ptr)){ /* lazy check for lazy |
header handling. The |
header packets aren't |
audio, so if/when we |
submit them, |
vorbis_synthesis will |
reject them */ |
/* suck in the synthesis data and track bitrate */ |
{ |
int oldsamples=vorbis_synthesis_pcmout(&vf->vd,NULL); |
/* for proper use of libvorbis within libvorbisfile, |
oldsamples will always be zero. */ |
if(oldsamples)return(OV_EFAULT); |
vorbis_synthesis_blockin(&vf->vd,&vf->vb); |
vf->samptrack+=(vorbis_synthesis_pcmout(&vf->vd,NULL)<<hs); |
vf->bittrack+=op_ptr->bytes*8; |
} |
/* update the pcm offset. */ |
if(granulepos!=-1 && !op_ptr->e_o_s){ |
int link=(vf->seekable?vf->current_link:0); |
int i,samples; |
/* this packet has a pcm_offset on it (the last packet |
completed on a page carries the offset) After processing |
(above), we know the pcm position of the *last* sample |
ready to be returned. Find the offset of the *first* |
As an aside, this trick is inaccurate if we begin |
reading anew right at the last page; the end-of-stream |
granulepos declares the last frame in the stream, and the |
last packet of the last page may be a partial frame. |
So, we need a previous granulepos from an in-sequence page |
to have a reference point. Thus the !op_ptr->e_o_s clause |
above */ |
if(vf->seekable && link>0) |
granulepos-=vf->pcmlengths[link*2]; |
if(granulepos<0)granulepos=0; /* actually, this |
shouldn't be possible |
here unless the stream |
is very broken */ |
samples=(vorbis_synthesis_pcmout(&vf->vd,NULL)<<hs); |
granulepos-=samples; |
for(i=0;i<link;i++) |
granulepos+=vf->pcmlengths[i*2+1]; |
vf->pcm_offset=granulepos; |
} |
return(1); |
} |
} |
else |
break; |
} |
} |
if(vf->ready_state>=OPENED){ |
ogg_int64_t ret; |
while(1){ |
/* the loop is not strictly necessary, but there's no sense in |
doing the extra checks of the larger loop for the common |
case in a multiplexed bistream where the page is simply |
part of a different logical bitstream; keep reading until |
we get one with the correct serialno */ |
if(!readp)return(0); |
if((ret=_get_next_page(vf,&og,-1))<0){ |
return(OV_EOF); /* eof. leave unitialized */ |
} |
/* bitrate tracking; add the header's bytes here, the body bytes |
are done by packet above */ |
vf->bittrack+=og.header_len*8; |
if(vf->ready_state==INITSET){ |
if(vf->current_serialno!=ogg_page_serialno(&og)){ |
/* two possibilities: |
1) our decoding just traversed a bitstream boundary |
2) another stream is multiplexed into this logical section */ |
if(ogg_page_bos(&og)){ |
/* boundary case */ |
if(!spanp) |
return(OV_EOF); |
_decode_clear(vf); |
if(!vf->seekable){ |
vorbis_info_clear(vf->vi); |
vorbis_comment_clear(vf->vc); |
} |
break; |
}else |
continue; /* possibility #2 */ |
} |
} |
break; |
} |
} |
/* Do we need to load a new machine before submitting the page? */ |
/* This is different in the seekable and non-seekable cases. |
In the seekable case, we already have all the header |
information loaded and cached; we just initialize the machine |
with it and continue on our merry way. |
In the non-seekable (streaming) case, we'll only be at a |
boundary if we just left the previous logical bitstream and |
we're now nominally at the header of the next bitstream |
*/ |
if(vf->ready_state!=INITSET){ |
int link; |
if(vf->ready_state<STREAMSET){ |
if(vf->seekable){ |
long serialno = ogg_page_serialno(&og); |
/* match the serialno to bitstream section. We use this rather than |
offset positions to avoid problems near logical bitstream |
boundaries */ |
for(link=0;link<vf->links;link++) |
if(vf->serialnos[link]==serialno)break; |
if(link==vf->links) continue; /* not the desired Vorbis |
bitstream section; keep |
trying */ |
vf->current_serialno=serialno; |
vf->current_link=link; |
ogg_stream_reset_serialno(&vf->os,vf->current_serialno); |
vf->ready_state=STREAMSET; |
}else{ |
/* we're streaming */ |
/* fetch the three header packets, build the info struct */ |
int ret=_fetch_headers(vf,vf->vi,vf->vc,NULL,NULL,&og); |
if(ret)return(ret); |
vf->current_serialno=vf->os.serialno; |
vf->current_link++; |
link=0; |
} |
} |
} |
/* the buffered page is the data we want, and we're ready for it; |
add it to the stream state */ |
ogg_stream_pagein(&vf->os,&og); |
} |
} |
/* if, eg, 64 bit stdio is configured by default, this will build with |
fseek64 */ |
static int _fseek64_wrap(FILE *f,ogg_int64_t off,int whence){ |
if(f==NULL)return(-1); |
return fseek(f,off,whence); |
} |
static int _ov_open1(void *f,OggVorbis_File *vf,const char *initial, |
long ibytes, ov_callbacks callbacks){ |
int offsettest=((f && callbacks.seek_func)?callbacks.seek_func(f,0,SEEK_CUR):-1); |
long *serialno_list=NULL; |
int serialno_list_size=0; |
int ret; |
memset(vf,0,sizeof(*vf)); |
vf->datasource=f; |
vf->callbacks = callbacks; |
/* init the framing state */ |
ogg_sync_init(&vf->oy); |
/* perhaps some data was previously read into a buffer for testing |
against other stream types. Allow initialization from this |
previously read data (especially as we may be reading from a |
non-seekable stream) */ |
if(initial){ |
char *buffer=ogg_sync_buffer(&vf->oy,ibytes); |
memcpy(buffer,initial,ibytes); |
ogg_sync_wrote(&vf->oy,ibytes); |
} |
/* can we seek? Stevens suggests the seek test was portable */ |
if(offsettest!=-1)vf->seekable=1; |
/* No seeking yet; Set up a 'single' (current) logical bitstream |
entry for partial open */ |
vf->links=1; |
vf->vi=_ogg_calloc(vf->links,sizeof(*vf->vi)); |
vf->vc=_ogg_calloc(vf->links,sizeof(*vf->vc)); |
ogg_stream_init(&vf->os,-1); /* fill in the serialno later */ |
/* Fetch all BOS pages, store the vorbis header and all seen serial |
numbers, load subsequent vorbis setup headers */ |
if((ret=_fetch_headers(vf,vf->vi,vf->vc,&serialno_list,&serialno_list_size,NULL))<0){ |
vf->datasource=NULL; |
ov_clear(vf); |
}else{ |
/* serial number list for first link needs to be held somewhere |
for second stage of seekable stream open; this saves having to |
seek/reread first link's serialnumber data then. */ |
vf->serialnos=_ogg_calloc(serialno_list_size+2,sizeof(*vf->serialnos)); |
vf->serialnos[0]=vf->current_serialno=vf->os.serialno; |
vf->serialnos[1]=serialno_list_size; |
memcpy(vf->serialnos+2,serialno_list,serialno_list_size*sizeof(*vf->serialnos)); |
vf->offsets=_ogg_calloc(1,sizeof(*vf->offsets)); |
vf->dataoffsets=_ogg_calloc(1,sizeof(*vf->dataoffsets)); |
vf->offsets[0]=0; |
vf->dataoffsets[0]=vf->offset; |
vf->ready_state=PARTOPEN; |
} |
if(serialno_list)_ogg_free(serialno_list); |
return(ret); |
} |
static int _ov_open2(OggVorbis_File *vf){ |
if(vf->ready_state != PARTOPEN) return OV_EINVAL; |
vf->ready_state=OPENED; |
if(vf->seekable){ |
int ret=_open_seekable2(vf); |
if(ret){ |
vf->datasource=NULL; |
ov_clear(vf); |
} |
return(ret); |
}else |
vf->ready_state=STREAMSET; |
return 0; |
} |
/* clear out the OggVorbis_File struct */ |
int ov_clear(OggVorbis_File *vf){ |
if(vf){ |
vorbis_block_clear(&vf->vb); |
vorbis_dsp_clear(&vf->vd); |
ogg_stream_clear(&vf->os); |
if(vf->vi && vf->links){ |
int i; |
for(i=0;i<vf->links;i++){ |
vorbis_info_clear(vf->vi+i); |
vorbis_comment_clear(vf->vc+i); |
} |
_ogg_free(vf->vi); |
_ogg_free(vf->vc); |
} |
if(vf->dataoffsets)_ogg_free(vf->dataoffsets); |
if(vf->pcmlengths)_ogg_free(vf->pcmlengths); |
if(vf->serialnos)_ogg_free(vf->serialnos); |
if(vf->offsets)_ogg_free(vf->offsets); |
ogg_sync_clear(&vf->oy); |
if(vf->datasource && vf->callbacks.close_func) |
(vf->callbacks.close_func)(vf->datasource); |
memset(vf,0,sizeof(*vf)); |
} |
#ifdef DEBUG_LEAKS |
_VDBG_dump(); |
#endif |
return(0); |
} |
/* inspects the OggVorbis file and finds/documents all the logical |
bitstreams contained in it. Tries to be tolerant of logical |
bitstream sections that are truncated/woogie. |
return: -1) error |
0) OK |
*/ |
int ov_open_callbacks(void *f,OggVorbis_File *vf, |
const char *initial,long ibytes,ov_callbacks callbacks){ |
int ret=_ov_open1(f,vf,initial,ibytes,callbacks); |
if(ret)return ret; |
return _ov_open2(vf); |
} |
int ov_open(FILE *f,OggVorbis_File *vf,const char *initial,long ibytes){ |
ov_callbacks callbacks = { |
(size_t (*)(void *, size_t, size_t, void *)) fread, |
(int (*)(void *, ogg_int64_t, int)) _fseek64_wrap, |
(int (*)(void *)) fclose, |
(long (*)(void *)) ftell |
}; |
return ov_open_callbacks((void *)f, vf, initial, ibytes, callbacks); |
} |
int ov_fopen(const char *path,OggVorbis_File *vf){ |
int ret; |
FILE *f = fopen(path,"rb"); |
if(!f) return -1; |
ret = ov_open(f,vf,NULL,0); |
if(ret) fclose(f); |
return ret; |
} |
/* cheap hack for game usage where downsampling is desirable; there's |
no need for SRC as we can just do it cheaply in libvorbis. */ |
int ov_halfrate(OggVorbis_File *vf,int flag){ |
int i; |
if(vf->vi==NULL)return OV_EINVAL; |
if(vf->ready_state>STREAMSET){ |
/* clear out stream state; dumping the decode machine is needed to |
reinit the MDCT lookups. */ |
vorbis_dsp_clear(&vf->vd); |
vorbis_block_clear(&vf->vb); |
vf->ready_state=STREAMSET; |
if(vf->pcm_offset>=0){ |
ogg_int64_t pos=vf->pcm_offset; |
vf->pcm_offset=-1; /* make sure the pos is dumped if unseekable */ |
ov_pcm_seek(vf,pos); |
} |
} |
for(i=0;i<vf->links;i++){ |
if(vorbis_synthesis_halfrate(vf->vi+i,flag)){ |
if(flag) ov_halfrate(vf,0); |
return OV_EINVAL; |
} |
} |
return 0; |
} |
int ov_halfrate_p(OggVorbis_File *vf){ |
if(vf->vi==NULL)return OV_EINVAL; |
return vorbis_synthesis_halfrate_p(vf->vi); |
} |
/* Only partially open the vorbis file; test for Vorbisness, and load |
the headers for the first chain. Do not seek (although test for |
seekability). Use ov_test_open to finish opening the file, else |
ov_clear to close/free it. Same return codes as open. |
Note that vorbisfile does _not_ take ownership of the file if the |
call fails; the calling applicaiton is responsible for closing the file |
if this call returns an error. */ |
int ov_test_callbacks(void *f,OggVorbis_File *vf, |
const char *initial,long ibytes,ov_callbacks callbacks) |
{ |
return _ov_open1(f,vf,initial,ibytes,callbacks); |
} |
int ov_test(FILE *f,OggVorbis_File *vf,const char *initial,long ibytes){ |
ov_callbacks callbacks = { |
(size_t (*)(void *, size_t, size_t, void *)) fread, |
(int (*)(void *, ogg_int64_t, int)) _fseek64_wrap, |
(int (*)(void *)) fclose, |
(long (*)(void *)) ftell |
}; |
return ov_test_callbacks((void *)f, vf, initial, ibytes, callbacks); |
} |
int ov_test_open(OggVorbis_File *vf){ |
if(vf->ready_state!=PARTOPEN)return(OV_EINVAL); |
return _ov_open2(vf); |
} |
/* How many logical bitstreams in this physical bitstream? */ |
long ov_streams(OggVorbis_File *vf){ |
return vf->links; |
} |
/* Is the FILE * associated with vf seekable? */ |
long ov_seekable(OggVorbis_File *vf){ |
return vf->seekable; |
} |
/* returns the bitrate for a given logical bitstream or the entire |
physical bitstream. If the file is open for random access, it will |
find the *actual* average bitrate. If the file is streaming, it |
returns the nominal bitrate (if set) else the average of the |
upper/lower bounds (if set) else -1 (unset). |
If you want the actual bitrate field settings, get them from the |
vorbis_info structs */ |
long ov_bitrate(OggVorbis_File *vf,int i){ |
if(vf->ready_state<OPENED)return(OV_EINVAL); |
if(i>=vf->links)return(OV_EINVAL); |
if(!vf->seekable && i!=0)return(ov_bitrate(vf,0)); |
if(i<0){ |
ogg_int64_t bits=0; |
int i; |
float br; |
for(i=0;i<vf->links;i++) |
bits+=(vf->offsets[i+1]-vf->dataoffsets[i])*8; |
/* This once read: return(rint(bits/ov_time_total(vf,-1))); |
* gcc 3.x on x86 miscompiled this at optimisation level 2 and above, |
* so this is slightly transformed to make it work. |
*/ |
br = bits/ov_time_total(vf,-1); |
return(rint(br)); |
}else{ |
if(vf->seekable){ |
/* return the actual bitrate */ |
return(rint((vf->offsets[i+1]-vf->dataoffsets[i])*8/ov_time_total(vf,i))); |
}else{ |
/* return nominal if set */ |
if(vf->vi[i].bitrate_nominal>0){ |
return vf->vi[i].bitrate_nominal; |
}else{ |
if(vf->vi[i].bitrate_upper>0){ |
if(vf->vi[i].bitrate_lower>0){ |
return (vf->vi[i].bitrate_upper+vf->vi[i].bitrate_lower)/2; |
}else{ |
return vf->vi[i].bitrate_upper; |
} |
} |
return(OV_FALSE); |
} |
} |
} |
} |
/* returns the actual bitrate since last call. returns -1 if no |
additional data to offer since last call (or at beginning of stream), |
EINVAL if stream is only partially open |
*/ |
long ov_bitrate_instant(OggVorbis_File *vf){ |
int link=(vf->seekable?vf->current_link:0); |
long ret; |
if(vf->ready_state<OPENED)return(OV_EINVAL); |
if(vf->samptrack==0)return(OV_FALSE); |
ret=vf->bittrack/vf->samptrack*vf->vi[link].rate+.5; |
vf->bittrack=0.f; |
vf->samptrack=0.f; |
return(ret); |
} |
/* Guess */ |
long ov_serialnumber(OggVorbis_File *vf,int i){ |
if(i>=vf->links)return(ov_serialnumber(vf,vf->links-1)); |
if(!vf->seekable && i>=0)return(ov_serialnumber(vf,-1)); |
if(i<0){ |
return(vf->current_serialno); |
}else{ |
return(vf->serialnos[i]); |
} |
} |
/* returns: total raw (compressed) length of content if i==-1 |
raw (compressed) length of that logical bitstream for i==0 to n |
OV_EINVAL if the stream is not seekable (we can't know the length) |
or if stream is only partially open |
*/ |
ogg_int64_t ov_raw_total(OggVorbis_File *vf,int i){ |
if(vf->ready_state<OPENED)return(OV_EINVAL); |
if(!vf->seekable || i>=vf->links)return(OV_EINVAL); |
if(i<0){ |
ogg_int64_t acc=0; |
int i; |
for(i=0;i<vf->links;i++) |
acc+=ov_raw_total(vf,i); |
return(acc); |
}else{ |
return(vf->offsets[i+1]-vf->offsets[i]); |
} |
} |
/* returns: total PCM length (samples) of content if i==-1 PCM length |
(samples) of that logical bitstream for i==0 to n |
OV_EINVAL if the stream is not seekable (we can't know the |
length) or only partially open |
*/ |
ogg_int64_t ov_pcm_total(OggVorbis_File *vf,int i){ |
if(vf->ready_state<OPENED)return(OV_EINVAL); |
if(!vf->seekable || i>=vf->links)return(OV_EINVAL); |
if(i<0){ |
ogg_int64_t acc=0; |
int i; |
for(i=0;i<vf->links;i++) |
acc+=ov_pcm_total(vf,i); |
return(acc); |
}else{ |
return(vf->pcmlengths[i*2+1]); |
} |
} |
/* returns: total seconds of content if i==-1 |
seconds in that logical bitstream for i==0 to n |
OV_EINVAL if the stream is not seekable (we can't know the |
length) or only partially open |
*/ |
double ov_time_total(OggVorbis_File *vf,int i){ |
if(vf->ready_state<OPENED)return(OV_EINVAL); |
if(!vf->seekable || i>=vf->links)return(OV_EINVAL); |
if(i<0){ |
double acc=0; |
int i; |
for(i=0;i<vf->links;i++) |
acc+=ov_time_total(vf,i); |
return(acc); |
}else{ |
return((double)(vf->pcmlengths[i*2+1])/vf->vi[i].rate); |
} |
} |
/* seek to an offset relative to the *compressed* data. This also |
scans packets to update the PCM cursor. It will cross a logical |
bitstream boundary, but only if it can't get any packets out of the |
tail of the bitstream we seek to (so no surprises). |
returns zero on success, nonzero on failure */ |
int ov_raw_seek(OggVorbis_File *vf,ogg_int64_t pos){ |
ogg_stream_state work_os; |
if(vf->ready_state<OPENED)return(OV_EINVAL); |
if(!vf->seekable) |
return(OV_ENOSEEK); /* don't dump machine if we can't seek */ |
if(pos<0 || pos>vf->end)return(OV_EINVAL); |
/* is the seek position outside our current link [if any]? */ |
if(vf->ready_state>=STREAMSET){ |
if(pos<vf->offsets[vf->current_link] || pos>=vf->offsets[vf->current_link+1]) |
_decode_clear(vf); /* clear out stream state */ |
} |
/* don't yet clear out decoding machine (if it's initialized), in |
the case we're in the same link. Restart the decode lapping, and |
let _fetch_and_process_packet deal with a potential bitstream |
boundary */ |
vf->pcm_offset=-1; |
ogg_stream_reset_serialno(&vf->os, |
vf->current_serialno); /* must set serialno */ |
vorbis_synthesis_restart(&vf->vd); |
if(_seek_helper(vf,pos)) { |
/* dump the machine so we're in a known state */ |
vf->pcm_offset=-1; |
_decode_clear(vf); |
return OV_EBADLINK; |
} |
/* we need to make sure the pcm_offset is set, but we don't want to |
advance the raw cursor past good packets just to get to the first |
with a granulepos. That's not equivalent behavior to beginning |
decoding as immediately after the seek position as possible. |
So, a hack. We use two stream states; a local scratch state and |
the shared vf->os stream state. We use the local state to |
scan, and the shared state as a buffer for later decode. |
Unfortuantely, on the last page we still advance to last packet |
because the granulepos on the last page is not necessarily on a |
packet boundary, and we need to make sure the granpos is |
correct. |
*/ |
{ |
ogg_page og; |
ogg_packet op; |
int lastblock=0; |
int accblock=0; |
int thisblock=0; |
int lastflag=0; |
int firstflag=0; |
ogg_int64_t pagepos=-1; |
ogg_stream_init(&work_os,vf->current_serialno); /* get the memory ready */ |
ogg_stream_reset(&work_os); /* eliminate the spurious OV_HOLE |
return from not necessarily |
starting from the beginning */ |
while(1){ |
if(vf->ready_state>=STREAMSET){ |
/* snarf/scan a packet if we can */ |
int result=ogg_stream_packetout(&work_os,&op); |
if(result>0){ |
if(vf->vi[vf->current_link].codec_setup){ |
thisblock=vorbis_packet_blocksize(vf->vi+vf->current_link,&op); |
if(thisblock<0){ |
ogg_stream_packetout(&vf->os,NULL); |
thisblock=0; |
}else{ |
/* We can't get a guaranteed correct pcm position out of the |
last page in a stream because it might have a 'short' |
granpos, which can only be detected in the presence of a |
preceding page. However, if the last page is also the first |
page, the granpos rules of a first page take precedence. Not |
only that, but for first==last, the EOS page must be treated |
as if its a normal first page for the stream to open/play. */ |
if(lastflag && !firstflag) |
ogg_stream_packetout(&vf->os,NULL); |
else |
if(lastblock)accblock+=(lastblock+thisblock)>>2; |
} |
if(op.granulepos!=-1){ |
int i,link=vf->current_link; |
ogg_int64_t granulepos=op.granulepos-vf->pcmlengths[link*2]; |
if(granulepos<0)granulepos=0; |
for(i=0;i<link;i++) |
granulepos+=vf->pcmlengths[i*2+1]; |
vf->pcm_offset=granulepos-accblock; |
if(vf->pcm_offset<0)vf->pcm_offset=0; |
break; |
} |
lastblock=thisblock; |
continue; |
}else |
ogg_stream_packetout(&vf->os,NULL); |
} |
} |
if(!lastblock){ |
pagepos=_get_next_page(vf,&og,-1); |
if(pagepos<0){ |
vf->pcm_offset=ov_pcm_total(vf,-1); |
break; |
} |
}else{ |
/* huh? Bogus stream with packets but no granulepos */ |
vf->pcm_offset=-1; |
break; |
} |
/* has our decoding just traversed a bitstream boundary? */ |
if(vf->ready_state>=STREAMSET){ |
if(vf->current_serialno!=ogg_page_serialno(&og)){ |
/* two possibilities: |
1) our decoding just traversed a bitstream boundary |
2) another stream is multiplexed into this logical section? */ |
if(ogg_page_bos(&og)){ |
/* we traversed */ |
_decode_clear(vf); /* clear out stream state */ |
ogg_stream_clear(&work_os); |
} /* else, do nothing; next loop will scoop another page */ |
} |
} |
if(vf->ready_state<STREAMSET){ |
int link; |
long serialno = ogg_page_serialno(&og); |
for(link=0;link<vf->links;link++) |
if(vf->serialnos[link]==serialno)break; |
if(link==vf->links) continue; /* not the desired Vorbis |
bitstream section; keep |
trying */ |
vf->current_link=link; |
vf->current_serialno=serialno; |
ogg_stream_reset_serialno(&vf->os,serialno); |
ogg_stream_reset_serialno(&work_os,serialno); |
vf->ready_state=STREAMSET; |
firstflag=(pagepos<=vf->dataoffsets[link]); |
} |
ogg_stream_pagein(&vf->os,&og); |
ogg_stream_pagein(&work_os,&og); |
lastflag=ogg_page_eos(&og); |
} |
} |
ogg_stream_clear(&work_os); |
vf->bittrack=0.f; |
vf->samptrack=0.f; |
return(0); |
} |
/* Page granularity seek (faster than sample granularity because we |
don't do the last bit of decode to find a specific sample). |
Seek to the last [granule marked] page preceding the specified pos |
location, such that decoding past the returned point will quickly |
arrive at the requested position. */ |
int ov_pcm_seek_page(OggVorbis_File *vf,ogg_int64_t pos){ |
int link=-1; |
ogg_int64_t result=0; |
ogg_int64_t total=ov_pcm_total(vf,-1); |
if(vf->ready_state<OPENED)return(OV_EINVAL); |
if(!vf->seekable)return(OV_ENOSEEK); |
if(pos<0 || pos>total)return(OV_EINVAL); |
/* which bitstream section does this pcm offset occur in? */ |
for(link=vf->links-1;link>=0;link--){ |
total-=vf->pcmlengths[link*2+1]; |
if(pos>=total)break; |
} |
/* Search within the logical bitstream for the page with the highest |
pcm_pos preceding pos. If we're looking for a position on the |
first page, bisection will halt without finding our position as |
it's before the first explicit granulepos fencepost. That case is |
handled separately below. |
There is a danger here; missing pages or incorrect frame number |
information in the bitstream could make our task impossible. |
Account for that (it would be an error condition) */ |
/* new search algorithm originally by HB (Nicholas Vinen) */ |
{ |
ogg_int64_t end=vf->offsets[link+1]; |
ogg_int64_t begin=vf->dataoffsets[link]; |
ogg_int64_t begintime = vf->pcmlengths[link*2]; |
ogg_int64_t endtime = vf->pcmlengths[link*2+1]+begintime; |
ogg_int64_t target=pos-total+begintime; |
ogg_int64_t best=-1; |
int got_page=0; |
ogg_page og; |
/* if we have only one page, there will be no bisection. Grab the page here */ |
if(begin==end){ |
result=_seek_helper(vf,begin); |
if(result) goto seek_error; |
result=_get_next_page(vf,&og,1); |
if(result<0) goto seek_error; |
got_page=1; |
} |
/* bisection loop */ |
while(begin<end){ |
ogg_int64_t bisect; |
if(end-begin<CHUNKSIZE){ |
bisect=begin; |
}else{ |
/* take a (pretty decent) guess. */ |
bisect=begin + |
(ogg_int64_t)((double)(target-begintime)*(end-begin)/(endtime-begintime)) |
- CHUNKSIZE; |
if(bisect<begin+CHUNKSIZE) |
bisect=begin; |
} |
result=_seek_helper(vf,bisect); |
if(result) goto seek_error; |
/* read loop within the bisection loop */ |
while(begin<end){ |
result=_get_next_page(vf,&og,end-vf->offset); |
if(result==OV_EREAD) goto seek_error; |
if(result<0){ |
/* there is no next page! */ |
if(bisect<=begin+1) |
/* No bisection left to perform. We've either found the |
best candidate already or failed. Exit loop. */ |
end=begin; |
else{ |
/* We tried to load a fraction of the last page; back up a |
bit and try to get the whole last page */ |
if(bisect==0) goto seek_error; |
bisect-=CHUNKSIZE; |
/* don't repeat/loop on a read we've already performed */ |
if(bisect<=begin)bisect=begin+1; |
/* seek and cntinue bisection */ |
result=_seek_helper(vf,bisect); |
if(result) goto seek_error; |
} |
}else{ |
ogg_int64_t granulepos; |
got_page=1; |
/* got a page. analyze it */ |
/* only consider pages from primary vorbis stream */ |
if(ogg_page_serialno(&og)!=vf->serialnos[link]) |
continue; |
/* only consider pages with the granulepos set */ |
granulepos=ogg_page_granulepos(&og); |
if(granulepos==-1)continue; |
if(granulepos<target){ |
/* this page is a successful candidate! Set state */ |
best=result; /* raw offset of packet with granulepos */ |
begin=vf->offset; /* raw offset of next page */ |
begintime=granulepos; |
/* if we're before our target but within a short distance, |
don't bisect; read forward */ |
if(target-begintime>44100)break; |
bisect=begin; /* *not* begin + 1 as above */ |
}else{ |
/* This is one of our pages, but the granpos is |
post-target; it is not a bisection return |
candidate. (The only way we'd use it is if it's the |
first page in the stream; we handle that case later |
outside the bisection) */ |
if(bisect<=begin+1){ |
/* No bisection left to perform. We've either found the |
best candidate already or failed. Exit loop. */ |
end=begin; |
}else{ |
if(end==vf->offset){ |
/* bisection read to the end; use the known page |
boundary (result) to update bisection, back up a |
little bit, and try again */ |
end=result; |
bisect-=CHUNKSIZE; |
if(bisect<=begin)bisect=begin+1; |
result=_seek_helper(vf,bisect); |
if(result) goto seek_error; |
}else{ |
/* Normal bisection */ |
end=bisect; |
endtime=granulepos; |
break; |
} |
} |
} |
} |
} |
} |
/* Out of bisection: did it 'fail?' */ |
if(best == -1){ |
/* Check the 'looking for data in first page' special case; |
bisection would 'fail' because our search target was before the |
first PCM granule position fencepost. */ |
if(got_page && |
begin == vf->dataoffsets[link] && |
ogg_page_serialno(&og)==vf->serialnos[link]){ |
/* Yes, this is the beginning-of-stream case. We already have |
our page, right at the beginning of PCM data. Set state |
and return. */ |
vf->pcm_offset=total; |
if(link!=vf->current_link){ |
/* Different link; dump entire decode machine */ |
_decode_clear(vf); |
vf->current_link=link; |
vf->current_serialno=vf->serialnos[link]; |
vf->ready_state=STREAMSET; |
}else{ |
vorbis_synthesis_restart(&vf->vd); |
} |
ogg_stream_reset_serialno(&vf->os,vf->current_serialno); |
ogg_stream_pagein(&vf->os,&og); |
}else |
goto seek_error; |
}else{ |
/* Bisection found our page. seek to it, update pcm offset. Easier case than |
raw_seek, don't keep packets preceding granulepos. */ |
ogg_page og; |
ogg_packet op; |
/* seek */ |
result=_seek_helper(vf,best); |
vf->pcm_offset=-1; |
if(result) goto seek_error; |
result=_get_next_page(vf,&og,-1); |
if(result<0) goto seek_error; |
if(link!=vf->current_link){ |
/* Different link; dump entire decode machine */ |
_decode_clear(vf); |
vf->current_link=link; |
vf->current_serialno=vf->serialnos[link]; |
vf->ready_state=STREAMSET; |
}else{ |
vorbis_synthesis_restart(&vf->vd); |
} |
ogg_stream_reset_serialno(&vf->os,vf->current_serialno); |
ogg_stream_pagein(&vf->os,&og); |
/* pull out all but last packet; the one with granulepos */ |
while(1){ |
result=ogg_stream_packetpeek(&vf->os,&op); |
if(result==0){ |
/* No packet returned; we exited the bisection with 'best' |
pointing to a page with a granule position, so the packet |
finishing this page ('best') originated on a preceding |
page. Keep fetching previous pages until we get one with |
a granulepos or without the 'continued' flag set. Then |
just use raw_seek for simplicity. */ |
/* Do not rewind past the beginning of link data; if we do, |
it's either a bug or a broken stream */ |
result=best; |
while(result>vf->dataoffsets[link]){ |
result=_get_prev_page(vf,result,&og); |
if(result<0) goto seek_error; |
if(ogg_page_serialno(&og)==vf->current_serialno && |
(ogg_page_granulepos(&og)>-1 || |
!ogg_page_continued(&og))){ |
return ov_raw_seek(vf,result); |
} |
} |
} |
if(result<0){ |
result = OV_EBADPACKET; |
goto seek_error; |
} |
if(op.granulepos!=-1){ |
vf->pcm_offset=op.granulepos-vf->pcmlengths[vf->current_link*2]; |
if(vf->pcm_offset<0)vf->pcm_offset=0; |
vf->pcm_offset+=total; |
break; |
}else |
result=ogg_stream_packetout(&vf->os,NULL); |
} |
} |
} |
/* verify result */ |
if(vf->pcm_offset>pos || pos>ov_pcm_total(vf,-1)){ |
result=OV_EFAULT; |
goto seek_error; |
} |
vf->bittrack=0.f; |
vf->samptrack=0.f; |
return(0); |
seek_error: |
/* dump machine so we're in a known state */ |
vf->pcm_offset=-1; |
_decode_clear(vf); |
return (int)result; |
} |
/* seek to a sample offset relative to the decompressed pcm stream |
returns zero on success, nonzero on failure */ |
int ov_pcm_seek(OggVorbis_File *vf,ogg_int64_t pos){ |
int thisblock,lastblock=0; |
int ret=ov_pcm_seek_page(vf,pos); |
if(ret<0)return(ret); |
if((ret=_make_decode_ready(vf)))return ret; |
/* discard leading packets we don't need for the lapping of the |
position we want; don't decode them */ |
while(1){ |
ogg_packet op; |
ogg_page og; |
int ret=ogg_stream_packetpeek(&vf->os,&op); |
if(ret>0){ |
thisblock=vorbis_packet_blocksize(vf->vi+vf->current_link,&op); |
if(thisblock<0){ |
ogg_stream_packetout(&vf->os,NULL); |
continue; /* non audio packet */ |
} |
if(lastblock)vf->pcm_offset+=(lastblock+thisblock)>>2; |
if(vf->pcm_offset+((thisblock+ |
vorbis_info_blocksize(vf->vi,1))>>2)>=pos)break; |
/* remove the packet from packet queue and track its granulepos */ |
ogg_stream_packetout(&vf->os,NULL); |
vorbis_synthesis_trackonly(&vf->vb,&op); /* set up a vb with |
only tracking, no |
pcm_decode */ |
vorbis_synthesis_blockin(&vf->vd,&vf->vb); |
/* end of logical stream case is hard, especially with exact |
length positioning. */ |
if(op.granulepos>-1){ |
int i; |
/* always believe the stream markers */ |
vf->pcm_offset=op.granulepos-vf->pcmlengths[vf->current_link*2]; |
if(vf->pcm_offset<0)vf->pcm_offset=0; |
for(i=0;i<vf->current_link;i++) |
vf->pcm_offset+=vf->pcmlengths[i*2+1]; |
} |
lastblock=thisblock; |
}else{ |
if(ret<0 && ret!=OV_HOLE)break; |
/* suck in a new page */ |
if(_get_next_page(vf,&og,-1)<0)break; |
if(ogg_page_bos(&og))_decode_clear(vf); |
if(vf->ready_state<STREAMSET){ |
long serialno=ogg_page_serialno(&og); |
int link; |
for(link=0;link<vf->links;link++) |
if(vf->serialnos[link]==serialno)break; |
if(link==vf->links) continue; |
vf->current_link=link; |
vf->ready_state=STREAMSET; |
vf->current_serialno=ogg_page_serialno(&og); |
ogg_stream_reset_serialno(&vf->os,serialno); |
ret=_make_decode_ready(vf); |
if(ret)return ret; |
lastblock=0; |
} |
ogg_stream_pagein(&vf->os,&og); |
} |
} |
vf->bittrack=0.f; |
vf->samptrack=0.f; |
/* discard samples until we reach the desired position. Crossing a |
logical bitstream boundary with abandon is OK. */ |
{ |
/* note that halfrate could be set differently in each link, but |
vorbisfile encoforces all links are set or unset */ |
int hs=vorbis_synthesis_halfrate_p(vf->vi); |
while(vf->pcm_offset<((pos>>hs)<<hs)){ |
ogg_int64_t target=(pos-vf->pcm_offset)>>hs; |
long samples=vorbis_synthesis_pcmout(&vf->vd,NULL); |
if(samples>target)samples=target; |
vorbis_synthesis_read(&vf->vd,samples); |
vf->pcm_offset+=samples<<hs; |
if(samples<target) |
if(_fetch_and_process_packet(vf,NULL,1,1)<=0) |
vf->pcm_offset=ov_pcm_total(vf,-1); /* eof */ |
} |
} |
return 0; |
} |
/* seek to a playback time relative to the decompressed pcm stream |
returns zero on success, nonzero on failure */ |
int ov_time_seek(OggVorbis_File *vf,double seconds){ |
/* translate time to PCM position and call ov_pcm_seek */ |
int link=-1; |
ogg_int64_t pcm_total=0; |
double time_total=0.; |
if(vf->ready_state<OPENED)return(OV_EINVAL); |
if(!vf->seekable)return(OV_ENOSEEK); |
if(seconds<0)return(OV_EINVAL); |
/* which bitstream section does this time offset occur in? */ |
for(link=0;link<vf->links;link++){ |
double addsec = ov_time_total(vf,link); |
if(seconds<time_total+addsec)break; |
time_total+=addsec; |
pcm_total+=vf->pcmlengths[link*2+1]; |
} |
if(link==vf->links)return(OV_EINVAL); |
/* enough information to convert time offset to pcm offset */ |
{ |
ogg_int64_t target=pcm_total+(seconds-time_total)*vf->vi[link].rate; |
return(ov_pcm_seek(vf,target)); |
} |
} |
/* page-granularity version of ov_time_seek |
returns zero on success, nonzero on failure */ |
int ov_time_seek_page(OggVorbis_File *vf,double seconds){ |
/* translate time to PCM position and call ov_pcm_seek */ |
int link=-1; |
ogg_int64_t pcm_total=0; |
double time_total=0.; |
if(vf->ready_state<OPENED)return(OV_EINVAL); |
if(!vf->seekable)return(OV_ENOSEEK); |
if(seconds<0)return(OV_EINVAL); |
/* which bitstream section does this time offset occur in? */ |
for(link=0;link<vf->links;link++){ |
double addsec = ov_time_total(vf,link); |
if(seconds<time_total+addsec)break; |
time_total+=addsec; |
pcm_total+=vf->pcmlengths[link*2+1]; |
} |
if(link==vf->links)return(OV_EINVAL); |
/* enough information to convert time offset to pcm offset */ |
{ |
ogg_int64_t target=pcm_total+(seconds-time_total)*vf->vi[link].rate; |
return(ov_pcm_seek_page(vf,target)); |
} |
} |
/* tell the current stream offset cursor. Note that seek followed by |
tell will likely not give the set offset due to caching */ |
ogg_int64_t ov_raw_tell(OggVorbis_File *vf){ |
if(vf->ready_state<OPENED)return(OV_EINVAL); |
return(vf->offset); |
} |
/* return PCM offset (sample) of next PCM sample to be read */ |
ogg_int64_t ov_pcm_tell(OggVorbis_File *vf){ |
if(vf->ready_state<OPENED)return(OV_EINVAL); |
return(vf->pcm_offset); |
} |
/* return time offset (seconds) of next PCM sample to be read */ |
double ov_time_tell(OggVorbis_File *vf){ |
int link=0; |
ogg_int64_t pcm_total=0; |
double time_total=0.f; |
if(vf->ready_state<OPENED)return(OV_EINVAL); |
if(vf->seekable){ |
pcm_total=ov_pcm_total(vf,-1); |
time_total=ov_time_total(vf,-1); |
/* which bitstream section does this time offset occur in? */ |
for(link=vf->links-1;link>=0;link--){ |
pcm_total-=vf->pcmlengths[link*2+1]; |
time_total-=ov_time_total(vf,link); |
if(vf->pcm_offset>=pcm_total)break; |
} |
} |
return((double)time_total+(double)(vf->pcm_offset-pcm_total)/vf->vi[link].rate); |
} |
/* link: -1) return the vorbis_info struct for the bitstream section |
currently being decoded |
0-n) to request information for a specific bitstream section |
In the case of a non-seekable bitstream, any call returns the |
current bitstream. NULL in the case that the machine is not |
initialized */ |
vorbis_info *ov_info(OggVorbis_File *vf,int link){ |
if(vf->seekable){ |
if(link<0) |
if(vf->ready_state>=STREAMSET) |
return vf->vi+vf->current_link; |
else |
return vf->vi; |
else |
if(link>=vf->links) |
return NULL; |
else |
return vf->vi+link; |
}else{ |
return vf->vi; |
} |
} |
/* grr, strong typing, grr, no templates/inheritence, grr */ |
vorbis_comment *ov_comment(OggVorbis_File *vf,int link){ |
if(vf->seekable){ |
if(link<0) |
if(vf->ready_state>=STREAMSET) |
return vf->vc+vf->current_link; |
else |
return vf->vc; |
else |
if(link>=vf->links) |
return NULL; |
else |
return vf->vc+link; |
}else{ |
return vf->vc; |
} |
} |
static int host_is_big_endian() { |
ogg_int32_t pattern = 0xfeedface; /* deadbeef */ |
unsigned char *bytewise = (unsigned char *)&pattern; |
if (bytewise[0] == 0xfe) return 1; |
return 0; |
} |
/* up to this point, everything could more or less hide the multiple |
logical bitstream nature of chaining from the toplevel application |
if the toplevel application didn't particularly care. However, at |
the point that we actually read audio back, the multiple-section |
nature must surface: Multiple bitstream sections do not necessarily |
have to have the same number of channels or sampling rate. |
ov_read returns the sequential logical bitstream number currently |
being decoded along with the PCM data in order that the toplevel |
application can take action on channel/sample rate changes. This |
number will be incremented even for streamed (non-seekable) streams |
(for seekable streams, it represents the actual logical bitstream |
index within the physical bitstream. Note that the accessor |
functions above are aware of this dichotomy). |
ov_read_filter is exactly the same as ov_read except that it processes |
the decoded audio data through a filter before packing it into the |
requested format. This gives greater accuracy than applying a filter |
after the audio has been converted into integral PCM. |
input values: buffer) a buffer to hold packed PCM data for return |
length) the byte length requested to be placed into buffer |
bigendianp) should the data be packed LSB first (0) or |
MSB first (1) |
word) word size for output. currently 1 (byte) or |
2 (16 bit short) |
return values: <0) error/hole in data (OV_HOLE), partial open (OV_EINVAL) |
0) EOF |
n) number of bytes of PCM actually returned. The |
below works on a packet-by-packet basis, so the |
return length is not related to the 'length' passed |
in, just guaranteed to fit. |
*section) set to the logical bitstream number */ |
long ov_read_filter(OggVorbis_File *vf,char *buffer,int length, |
int bigendianp,int word,int sgned,int *bitstream, |
void (*filter)(float **pcm,long channels,long samples,void *filter_param),void *filter_param){ |
int i,j; |
int host_endian = host_is_big_endian(); |
int hs; |
float **pcm; |
long samples; |
if(vf->ready_state<OPENED)return(OV_EINVAL); |
if(word<=0)return(OV_EINVAL); |
while(1){ |
if(vf->ready_state==INITSET){ |
samples=vorbis_synthesis_pcmout(&vf->vd,&pcm); |
if(samples)break; |
} |
/* suck in another packet */ |
{ |
int ret=_fetch_and_process_packet(vf,NULL,1,1); |
if(ret==OV_EOF) |
return(0); |
if(ret<=0) |
return(ret); |
} |
} |
if(samples>0){ |
/* yay! proceed to pack data into the byte buffer */ |
long channels=ov_info(vf,-1)->channels; |
long bytespersample=word * channels; |
vorbis_fpu_control fpu; |
if(channels<1||channels>255)return(OV_EINVAL); |
if(samples>length/bytespersample)samples=length/bytespersample; |
if(samples <= 0) |
return OV_EINVAL; |
/* Here. */ |
if(filter) |
filter(pcm,channels,samples,filter_param); |
/* a tight loop to pack each size */ |
{ |
int val; |
if(word==1){ |
int off=(sgned?0:128); |
vorbis_fpu_setround(&fpu); |
for(j=0;j<samples;j++) |
for(i=0;i<channels;i++){ |
val=vorbis_ftoi(pcm[i][j]*128.f); |
if(val>127)val=127; |
else if(val<-128)val=-128; |
*buffer++=val+off; |
} |
vorbis_fpu_restore(fpu); |
}else{ |
int off=(sgned?0:32768); |
if(host_endian==bigendianp){ |
if(sgned){ |
vorbis_fpu_setround(&fpu); |
for(i=0;i<channels;i++) { /* It's faster in this order */ |
float *src=pcm[i]; |
short *dest=((short *)buffer)+i; |
for(j=0;j<samples;j++) { |
val=vorbis_ftoi(src[j]*32768.f); |
if(val>32767)val=32767; |
else if(val<-32768)val=-32768; |
*dest=val; |
dest+=channels; |
} |
} |
vorbis_fpu_restore(fpu); |
}else{ |
vorbis_fpu_setround(&fpu); |
for(i=0;i<channels;i++) { |
float *src=pcm[i]; |
short *dest=((short *)buffer)+i; |
for(j=0;j<samples;j++) { |
val=vorbis_ftoi(src[j]*32768.f); |
if(val>32767)val=32767; |
else if(val<-32768)val=-32768; |
*dest=val+off; |
dest+=channels; |
} |
} |
vorbis_fpu_restore(fpu); |
} |
}else if(bigendianp){ |
vorbis_fpu_setround(&fpu); |
for(j=0;j<samples;j++) |
for(i=0;i<channels;i++){ |
val=vorbis_ftoi(pcm[i][j]*32768.f); |
if(val>32767)val=32767; |
else if(val<-32768)val=-32768; |
val+=off; |
*buffer++=(val>>8); |
*buffer++=(val&0xff); |
} |
vorbis_fpu_restore(fpu); |
}else{ |
int val; |
vorbis_fpu_setround(&fpu); |
for(j=0;j<samples;j++) |
for(i=0;i<channels;i++){ |
val=vorbis_ftoi(pcm[i][j]*32768.f); |
if(val>32767)val=32767; |
else if(val<-32768)val=-32768; |
val+=off; |
*buffer++=(val&0xff); |
*buffer++=(val>>8); |
} |
vorbis_fpu_restore(fpu); |
} |
} |
} |
vorbis_synthesis_read(&vf->vd,samples); |
hs=vorbis_synthesis_halfrate_p(vf->vi); |
vf->pcm_offset+=(samples<<hs); |
if(bitstream)*bitstream=vf->current_link; |
return(samples*bytespersample); |
}else{ |
return(samples); |
} |
} |
long ov_read(OggVorbis_File *vf,char *buffer,int length, |
int bigendianp,int word,int sgned,int *bitstream){ |
return ov_read_filter(vf, buffer, length, bigendianp, word, sgned, bitstream, NULL, NULL); |
} |
/* input values: pcm_channels) a float vector per channel of output |
length) the sample length being read by the app |
return values: <0) error/hole in data (OV_HOLE), partial open (OV_EINVAL) |
0) EOF |
n) number of samples of PCM actually returned. The |
below works on a packet-by-packet basis, so the |
return length is not related to the 'length' passed |
in, just guaranteed to fit. |
*section) set to the logical bitstream number */ |
long ov_read_float(OggVorbis_File *vf,float ***pcm_channels,int length, |
int *bitstream){ |
if(vf->ready_state<OPENED)return(OV_EINVAL); |
while(1){ |
if(vf->ready_state==INITSET){ |
float **pcm; |
long samples=vorbis_synthesis_pcmout(&vf->vd,&pcm); |
if(samples){ |
int hs=vorbis_synthesis_halfrate_p(vf->vi); |
if(pcm_channels)*pcm_channels=pcm; |
if(samples>length)samples=length; |
vorbis_synthesis_read(&vf->vd,samples); |
vf->pcm_offset+=samples<<hs; |
if(bitstream)*bitstream=vf->current_link; |
return samples; |
} |
} |
/* suck in another packet */ |
{ |
int ret=_fetch_and_process_packet(vf,NULL,1,1); |
if(ret==OV_EOF)return(0); |
if(ret<=0)return(ret); |
} |
} |
} |
extern const float *vorbis_window(vorbis_dsp_state *v,int W); |
static void _ov_splice(float **pcm,float **lappcm, |
int n1, int n2, |
int ch1, int ch2, |
const float *w1, const float *w2){ |
int i,j; |
const float *w=w1; |
int n=n1; |
if(n1>n2){ |
n=n2; |
w=w2; |
} |
/* splice */ |
for(j=0;j<ch1 && j<ch2;j++){ |
float *s=lappcm[j]; |
float *d=pcm[j]; |
for(i=0;i<n;i++){ |
float wd=w[i]*w[i]; |
float ws=1.-wd; |
d[i]=d[i]*wd + s[i]*ws; |
} |
} |
/* window from zero */ |
for(;j<ch2;j++){ |
float *d=pcm[j]; |
for(i=0;i<n;i++){ |
float wd=w[i]*w[i]; |
d[i]=d[i]*wd; |
} |
} |
} |
/* make sure vf is INITSET */ |
static int _ov_initset(OggVorbis_File *vf){ |
while(1){ |
if(vf->ready_state==INITSET)break; |
/* suck in another packet */ |
{ |
int ret=_fetch_and_process_packet(vf,NULL,1,0); |
if(ret<0 && ret!=OV_HOLE)return(ret); |
} |
} |
return 0; |
} |
/* make sure vf is INITSET and that we have a primed buffer; if |
we're crosslapping at a stream section boundary, this also makes |
sure we're sanity checking against the right stream information */ |
static int _ov_initprime(OggVorbis_File *vf){ |
vorbis_dsp_state *vd=&vf->vd; |
while(1){ |
if(vf->ready_state==INITSET) |
if(vorbis_synthesis_pcmout(vd,NULL))break; |
/* suck in another packet */ |
{ |
int ret=_fetch_and_process_packet(vf,NULL,1,0); |
if(ret<0 && ret!=OV_HOLE)return(ret); |
} |
} |
return 0; |
} |
/* grab enough data for lapping from vf; this may be in the form of |
unreturned, already-decoded pcm, remaining PCM we will need to |
decode, or synthetic postextrapolation from last packets. */ |
static void _ov_getlap(OggVorbis_File *vf,vorbis_info *vi,vorbis_dsp_state *vd, |
float **lappcm,int lapsize){ |
int lapcount=0,i; |
float **pcm; |
/* try first to decode the lapping data */ |
while(lapcount<lapsize){ |
int samples=vorbis_synthesis_pcmout(vd,&pcm); |
if(samples){ |
if(samples>lapsize-lapcount)samples=lapsize-lapcount; |
for(i=0;i<vi->channels;i++) |
memcpy(lappcm[i]+lapcount,pcm[i],sizeof(**pcm)*samples); |
lapcount+=samples; |
vorbis_synthesis_read(vd,samples); |
}else{ |
/* suck in another packet */ |
int ret=_fetch_and_process_packet(vf,NULL,1,0); /* do *not* span */ |
if(ret==OV_EOF)break; |
} |
} |
if(lapcount<lapsize){ |
/* failed to get lapping data from normal decode; pry it from the |
postextrapolation buffering, or the second half of the MDCT |
from the last packet */ |
int samples=vorbis_synthesis_lapout(&vf->vd,&pcm); |
if(samples==0){ |
for(i=0;i<vi->channels;i++) |
memset(lappcm[i]+lapcount,0,sizeof(**pcm)*lapsize-lapcount); |
lapcount=lapsize; |
}else{ |
if(samples>lapsize-lapcount)samples=lapsize-lapcount; |
for(i=0;i<vi->channels;i++) |
memcpy(lappcm[i]+lapcount,pcm[i],sizeof(**pcm)*samples); |
lapcount+=samples; |
} |
} |
} |
/* this sets up crosslapping of a sample by using trailing data from |
sample 1 and lapping it into the windowing buffer of sample 2 */ |
int ov_crosslap(OggVorbis_File *vf1, OggVorbis_File *vf2){ |
vorbis_info *vi1,*vi2; |
float **lappcm; |
float **pcm; |
const float *w1,*w2; |
int n1,n2,i,ret,hs1,hs2; |
if(vf1==vf2)return(0); /* degenerate case */ |
if(vf1->ready_state<OPENED)return(OV_EINVAL); |
if(vf2->ready_state<OPENED)return(OV_EINVAL); |
/* the relevant overlap buffers must be pre-checked and pre-primed |
before looking at settings in the event that priming would cross |
a bitstream boundary. So, do it now */ |
ret=_ov_initset(vf1); |
if(ret)return(ret); |
ret=_ov_initprime(vf2); |
if(ret)return(ret); |
vi1=ov_info(vf1,-1); |
vi2=ov_info(vf2,-1); |
hs1=ov_halfrate_p(vf1); |
hs2=ov_halfrate_p(vf2); |
lappcm=alloca(sizeof(*lappcm)*vi1->channels); |
n1=vorbis_info_blocksize(vi1,0)>>(1+hs1); |
n2=vorbis_info_blocksize(vi2,0)>>(1+hs2); |
w1=vorbis_window(&vf1->vd,0); |
w2=vorbis_window(&vf2->vd,0); |
for(i=0;i<vi1->channels;i++) |
lappcm[i]=alloca(sizeof(**lappcm)*n1); |
_ov_getlap(vf1,vi1,&vf1->vd,lappcm,n1); |
/* have a lapping buffer from vf1; now to splice it into the lapping |
buffer of vf2 */ |
/* consolidate and expose the buffer. */ |
vorbis_synthesis_lapout(&vf2->vd,&pcm); |
#if 0 |
_analysis_output_always("pcmL",0,pcm[0],n1*2,0,0,0); |
_analysis_output_always("pcmR",0,pcm[1],n1*2,0,0,0); |
#endif |
/* splice */ |
_ov_splice(pcm,lappcm,n1,n2,vi1->channels,vi2->channels,w1,w2); |
/* done */ |
return(0); |
} |
static int _ov_64_seek_lap(OggVorbis_File *vf,ogg_int64_t pos, |
int (*localseek)(OggVorbis_File *,ogg_int64_t)){ |
vorbis_info *vi; |
float **lappcm; |
float **pcm; |
const float *w1,*w2; |
int n1,n2,ch1,ch2,hs; |
int i,ret; |
if(vf->ready_state<OPENED)return(OV_EINVAL); |
ret=_ov_initset(vf); |
if(ret)return(ret); |
vi=ov_info(vf,-1); |
hs=ov_halfrate_p(vf); |
ch1=vi->channels; |
n1=vorbis_info_blocksize(vi,0)>>(1+hs); |
w1=vorbis_window(&vf->vd,0); /* window arrays from libvorbis are |
persistent; even if the decode state |
from this link gets dumped, this |
window array continues to exist */ |
lappcm=alloca(sizeof(*lappcm)*ch1); |
for(i=0;i<ch1;i++) |
lappcm[i]=alloca(sizeof(**lappcm)*n1); |
_ov_getlap(vf,vi,&vf->vd,lappcm,n1); |
/* have lapping data; seek and prime the buffer */ |
ret=localseek(vf,pos); |
if(ret)return ret; |
ret=_ov_initprime(vf); |
if(ret)return(ret); |
/* Guard against cross-link changes; they're perfectly legal */ |
vi=ov_info(vf,-1); |
ch2=vi->channels; |
n2=vorbis_info_blocksize(vi,0)>>(1+hs); |
w2=vorbis_window(&vf->vd,0); |
/* consolidate and expose the buffer. */ |
vorbis_synthesis_lapout(&vf->vd,&pcm); |
/* splice */ |
_ov_splice(pcm,lappcm,n1,n2,ch1,ch2,w1,w2); |
/* done */ |
return(0); |
} |
int ov_raw_seek_lap(OggVorbis_File *vf,ogg_int64_t pos){ |
return _ov_64_seek_lap(vf,pos,ov_raw_seek); |
} |
int ov_pcm_seek_lap(OggVorbis_File *vf,ogg_int64_t pos){ |
return _ov_64_seek_lap(vf,pos,ov_pcm_seek); |
} |
int ov_pcm_seek_page_lap(OggVorbis_File *vf,ogg_int64_t pos){ |
return _ov_64_seek_lap(vf,pos,ov_pcm_seek_page); |
} |
static int _ov_d_seek_lap(OggVorbis_File *vf,double pos, |
int (*localseek)(OggVorbis_File *,double)){ |
vorbis_info *vi; |
float **lappcm; |
float **pcm; |
const float *w1,*w2; |
int n1,n2,ch1,ch2,hs; |
int i,ret; |
if(vf->ready_state<OPENED)return(OV_EINVAL); |
ret=_ov_initset(vf); |
if(ret)return(ret); |
vi=ov_info(vf,-1); |
hs=ov_halfrate_p(vf); |
ch1=vi->channels; |
n1=vorbis_info_blocksize(vi,0)>>(1+hs); |
w1=vorbis_window(&vf->vd,0); /* window arrays from libvorbis are |
persistent; even if the decode state |
from this link gets dumped, this |
window array continues to exist */ |
lappcm=alloca(sizeof(*lappcm)*ch1); |
for(i=0;i<ch1;i++) |
lappcm[i]=alloca(sizeof(**lappcm)*n1); |
_ov_getlap(vf,vi,&vf->vd,lappcm,n1); |
/* have lapping data; seek and prime the buffer */ |
ret=localseek(vf,pos); |
if(ret)return ret; |
ret=_ov_initprime(vf); |
if(ret)return(ret); |
/* Guard against cross-link changes; they're perfectly legal */ |
vi=ov_info(vf,-1); |
ch2=vi->channels; |
n2=vorbis_info_blocksize(vi,0)>>(1+hs); |
w2=vorbis_window(&vf->vd,0); |
/* consolidate and expose the buffer. */ |
vorbis_synthesis_lapout(&vf->vd,&pcm); |
/* splice */ |
_ov_splice(pcm,lappcm,n1,n2,ch1,ch2,w1,w2); |
/* done */ |
return(0); |
} |
int ov_time_seek_lap(OggVorbis_File *vf,double pos){ |
return _ov_d_seek_lap(vf,pos,ov_time_seek); |
} |
int ov_time_seek_page_lap(OggVorbis_File *vf,double pos){ |
return _ov_d_seek_lap(vf,pos,ov_time_seek_page); |
} |
/contrib/sdk/sources/libvorbis-1.3.7/lib/window.c |
---|
0,0 → 1,2135 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: window functions |
********************************************************************/ |
#include <stdlib.h> |
#include <math.h> |
#include "os.h" |
#include "misc.h" |
#include "window.h" |
static const float vwin64[32] = { |
0.0009460463F, 0.0085006468F, 0.0235352254F, 0.0458950567F, |
0.0753351908F, 0.1115073077F, 0.1539457973F, 0.2020557475F, |
0.2551056759F, 0.3122276645F, 0.3724270287F, 0.4346027792F, |
0.4975789974F, 0.5601459521F, 0.6211085051F, 0.6793382689F, |
0.7338252629F, 0.7837245849F, 0.8283939355F, 0.8674186656F, |
0.9006222429F, 0.9280614787F, 0.9500073081F, 0.9669131782F, |
0.9793740220F, 0.9880792941F, 0.9937636139F, 0.9971582668F, |
0.9989462667F, 0.9997230082F, 0.9999638688F, 0.9999995525F, |
}; |
static const float vwin128[64] = { |
0.0002365472F, 0.0021280687F, 0.0059065254F, 0.0115626550F, |
0.0190823442F, 0.0284463735F, 0.0396300935F, 0.0526030430F, |
0.0673285281F, 0.0837631763F, 0.1018564887F, 0.1215504095F, |
0.1427789367F, 0.1654677960F, 0.1895342001F, 0.2148867160F, |
0.2414252576F, 0.2690412240F, 0.2976177952F, 0.3270303960F, |
0.3571473350F, 0.3878306189F, 0.4189369387F, 0.4503188188F, |
0.4818259135F, 0.5133064334F, 0.5446086751F, 0.5755826278F, |
0.6060816248F, 0.6359640047F, 0.6650947483F, 0.6933470543F, |
0.7206038179F, 0.7467589810F, 0.7717187213F, 0.7954024542F, |
0.8177436264F, 0.8386902831F, 0.8582053981F, 0.8762669622F, |
0.8928678298F, 0.9080153310F, 0.9217306608F, 0.9340480615F, |
0.9450138200F, 0.9546851041F, 0.9631286621F, 0.9704194171F, |
0.9766389810F, 0.9818741197F, 0.9862151938F, 0.9897546035F, |
0.9925852598F, 0.9947991032F, 0.9964856900F, 0.9977308602F, |
0.9986155015F, 0.9992144193F, 0.9995953200F, 0.9998179155F, |
0.9999331503F, 0.9999825563F, 0.9999977357F, 0.9999999720F, |
}; |
static const float vwin256[128] = { |
0.0000591390F, 0.0005321979F, 0.0014780301F, 0.0028960636F, |
0.0047854363F, 0.0071449926F, 0.0099732775F, 0.0132685298F, |
0.0170286741F, 0.0212513119F, 0.0259337111F, 0.0310727950F, |
0.0366651302F, 0.0427069140F, 0.0491939614F, 0.0561216907F, |
0.0634851102F, 0.0712788035F, 0.0794969160F, 0.0881331402F, |
0.0971807028F, 0.1066323515F, 0.1164803426F, 0.1267164297F, |
0.1373318534F, 0.1483173323F, 0.1596630553F, 0.1713586755F, |
0.1833933062F, 0.1957555184F, 0.2084333404F, 0.2214142599F, |
0.2346852280F, 0.2482326664F, 0.2620424757F, 0.2761000481F, |
0.2903902813F, 0.3048975959F, 0.3196059553F, 0.3344988887F, |
0.3495595160F, 0.3647705766F, 0.3801144597F, 0.3955732382F, |
0.4111287047F, 0.4267624093F, 0.4424557009F, 0.4581897696F, |
0.4739456913F, 0.4897044744F, 0.5054471075F, 0.5211546088F, |
0.5368080763F, 0.5523887395F, 0.5678780103F, 0.5832575361F, |
0.5985092508F, 0.6136154277F, 0.6285587300F, 0.6433222619F, |
0.6578896175F, 0.6722449294F, 0.6863729144F, 0.7002589187F, |
0.7138889597F, 0.7272497662F, 0.7403288154F, 0.7531143679F, |
0.7655954985F, 0.7777621249F, 0.7896050322F, 0.8011158947F, |
0.8122872932F, 0.8231127294F, 0.8335866365F, 0.8437043850F, |
0.8534622861F, 0.8628575905F, 0.8718884835F, 0.8805540765F, |
0.8888543947F, 0.8967903616F, 0.9043637797F, 0.9115773078F, |
0.9184344360F, 0.9249394562F, 0.9310974312F, 0.9369141608F, |
0.9423961446F, 0.9475505439F, 0.9523851406F, 0.9569082947F, |
0.9611289005F, 0.9650563408F, 0.9687004405F, 0.9720714191F, |
0.9751798427F, 0.9780365753F, 0.9806527301F, 0.9830396204F, |
0.9852087111F, 0.9871715701F, 0.9889398207F, 0.9905250941F, |
0.9919389832F, 0.9931929973F, 0.9942985174F, 0.9952667537F, |
0.9961087037F, 0.9968351119F, 0.9974564312F, 0.9979827858F, |
0.9984239359F, 0.9987892441F, 0.9990876435F, 0.9993276081F, |
0.9995171241F, 0.9996636648F, 0.9997741654F, 0.9998550016F, |
0.9999119692F, 0.9999502656F, 0.9999744742F, 0.9999885497F, |
0.9999958064F, 0.9999989077F, 0.9999998584F, 0.9999999983F, |
}; |
static const float vwin512[256] = { |
0.0000147849F, 0.0001330607F, 0.0003695946F, 0.0007243509F, |
0.0011972759F, 0.0017882983F, 0.0024973285F, 0.0033242588F, |
0.0042689632F, 0.0053312973F, 0.0065110982F, 0.0078081841F, |
0.0092223540F, 0.0107533880F, 0.0124010466F, 0.0141650703F, |
0.0160451800F, 0.0180410758F, 0.0201524373F, 0.0223789233F, |
0.0247201710F, 0.0271757958F, 0.0297453914F, 0.0324285286F, |
0.0352247556F, 0.0381335972F, 0.0411545545F, 0.0442871045F, |
0.0475306997F, 0.0508847676F, 0.0543487103F, 0.0579219038F, |
0.0616036982F, 0.0653934164F, 0.0692903546F, 0.0732937809F, |
0.0774029356F, 0.0816170305F, 0.0859352485F, 0.0903567428F, |
0.0948806375F, 0.0995060259F, 0.1042319712F, 0.1090575056F, |
0.1139816300F, 0.1190033137F, 0.1241214941F, 0.1293350764F, |
0.1346429333F, 0.1400439046F, 0.1455367974F, 0.1511203852F, |
0.1567934083F, 0.1625545735F, 0.1684025537F, 0.1743359881F, |
0.1803534820F, 0.1864536069F, 0.1926349000F, 0.1988958650F, |
0.2052349715F, 0.2116506555F, 0.2181413191F, 0.2247053313F, |
0.2313410275F, 0.2380467105F, 0.2448206500F, 0.2516610835F, |
0.2585662164F, 0.2655342226F, 0.2725632448F, 0.2796513950F, |
0.2867967551F, 0.2939973773F, 0.3012512852F, 0.3085564739F, |
0.3159109111F, 0.3233125375F, 0.3307592680F, 0.3382489922F, |
0.3457795756F, 0.3533488602F, 0.3609546657F, 0.3685947904F, |
0.3762670121F, 0.3839690896F, 0.3916987634F, 0.3994537572F, |
0.4072317788F, 0.4150305215F, 0.4228476653F, 0.4306808783F, |
0.4385278181F, 0.4463861329F, 0.4542534630F, 0.4621274424F, |
0.4700057001F, 0.4778858615F, 0.4857655502F, 0.4936423891F, |
0.5015140023F, 0.5093780165F, 0.5172320626F, 0.5250737772F, |
0.5329008043F, 0.5407107971F, 0.5485014192F, 0.5562703465F, |
0.5640152688F, 0.5717338914F, 0.5794239366F, 0.5870831457F, |
0.5947092801F, 0.6023001235F, 0.6098534829F, 0.6173671907F, |
0.6248391059F, 0.6322671161F, 0.6396491384F, 0.6469831217F, |
0.6542670475F, 0.6614989319F, 0.6686768267F, 0.6757988210F, |
0.6828630426F, 0.6898676592F, 0.6968108799F, 0.7036909564F, |
0.7105061843F, 0.7172549043F, 0.7239355032F, 0.7305464154F, |
0.7370861235F, 0.7435531598F, 0.7499461068F, 0.7562635986F, |
0.7625043214F, 0.7686670148F, 0.7747504721F, 0.7807535410F, |
0.7866751247F, 0.7925141825F, 0.7982697296F, 0.8039408387F, |
0.8095266395F, 0.8150263196F, 0.8204391248F, 0.8257643590F, |
0.8310013848F, 0.8361496236F, 0.8412085555F, 0.8461777194F, |
0.8510567129F, 0.8558451924F, 0.8605428730F, 0.8651495278F, |
0.8696649882F, 0.8740891432F, 0.8784219392F, 0.8826633797F, |
0.8868135244F, 0.8908724888F, 0.8948404441F, 0.8987176157F, |
0.9025042831F, 0.9062007791F, 0.9098074886F, 0.9133248482F, |
0.9167533451F, 0.9200935163F, 0.9233459472F, 0.9265112712F, |
0.9295901680F, 0.9325833632F, 0.9354916263F, 0.9383157705F, |
0.9410566504F, 0.9437151618F, 0.9462922398F, 0.9487888576F, |
0.9512060252F, 0.9535447882F, 0.9558062262F, 0.9579914516F, |
0.9601016078F, 0.9621378683F, 0.9641014348F, 0.9659935361F, |
0.9678154261F, 0.9695683830F, 0.9712537071F, 0.9728727198F, |
0.9744267618F, 0.9759171916F, 0.9773453842F, 0.9787127293F, |
0.9800206298F, 0.9812705006F, 0.9824637665F, 0.9836018613F, |
0.9846862258F, 0.9857183066F, 0.9866995544F, 0.9876314227F, |
0.9885153662F, 0.9893528393F, 0.9901452948F, 0.9908941823F, |
0.9916009470F, 0.9922670279F, 0.9928938570F, 0.9934828574F, |
0.9940354423F, 0.9945530133F, 0.9950369595F, 0.9954886562F, |
0.9959094633F, 0.9963007242F, 0.9966637649F, 0.9969998925F, |
0.9973103939F, 0.9975965351F, 0.9978595598F, 0.9981006885F, |
0.9983211172F, 0.9985220166F, 0.9987045311F, 0.9988697776F, |
0.9990188449F, 0.9991527924F, 0.9992726499F, 0.9993794157F, |
0.9994740570F, 0.9995575079F, 0.9996306699F, 0.9996944099F, |
0.9997495605F, 0.9997969190F, 0.9998372465F, 0.9998712678F, |
0.9998996704F, 0.9999231041F, 0.9999421807F, 0.9999574732F, |
0.9999695157F, 0.9999788026F, 0.9999857885F, 0.9999908879F, |
0.9999944746F, 0.9999968817F, 0.9999984010F, 0.9999992833F, |
0.9999997377F, 0.9999999317F, 0.9999999911F, 0.9999999999F, |
}; |
static const float vwin1024[512] = { |
0.0000036962F, 0.0000332659F, 0.0000924041F, 0.0001811086F, |
0.0002993761F, 0.0004472021F, 0.0006245811F, 0.0008315063F, |
0.0010679699F, 0.0013339631F, 0.0016294757F, 0.0019544965F, |
0.0023090133F, 0.0026930125F, 0.0031064797F, 0.0035493989F, |
0.0040217533F, 0.0045235250F, 0.0050546946F, 0.0056152418F, |
0.0062051451F, 0.0068243817F, 0.0074729278F, 0.0081507582F, |
0.0088578466F, 0.0095941655F, 0.0103596863F, 0.0111543789F, |
0.0119782122F, 0.0128311538F, 0.0137131701F, 0.0146242260F, |
0.0155642855F, 0.0165333111F, 0.0175312640F, 0.0185581042F, |
0.0196137903F, 0.0206982797F, 0.0218115284F, 0.0229534910F, |
0.0241241208F, 0.0253233698F, 0.0265511886F, 0.0278075263F, |
0.0290923308F, 0.0304055484F, 0.0317471241F, 0.0331170013F, |
0.0345151222F, 0.0359414274F, 0.0373958560F, 0.0388783456F, |
0.0403888325F, 0.0419272511F, 0.0434935347F, 0.0450876148F, |
0.0467094213F, 0.0483588828F, 0.0500359261F, 0.0517404765F, |
0.0534724575F, 0.0552317913F, 0.0570183983F, 0.0588321971F, |
0.0606731048F, 0.0625410369F, 0.0644359070F, 0.0663576272F, |
0.0683061077F, 0.0702812571F, 0.0722829821F, 0.0743111878F, |
0.0763657775F, 0.0784466526F, 0.0805537129F, 0.0826868561F, |
0.0848459782F, 0.0870309736F, 0.0892417345F, 0.0914781514F, |
0.0937401128F, 0.0960275056F, 0.0983402145F, 0.1006781223F, |
0.1030411101F, 0.1054290568F, 0.1078418397F, 0.1102793336F, |
0.1127414119F, 0.1152279457F, 0.1177388042F, 0.1202738544F, |
0.1228329618F, 0.1254159892F, 0.1280227980F, 0.1306532471F, |
0.1333071937F, 0.1359844927F, 0.1386849970F, 0.1414085575F, |
0.1441550230F, 0.1469242403F, 0.1497160539F, 0.1525303063F, |
0.1553668381F, 0.1582254875F, 0.1611060909F, 0.1640084822F, |
0.1669324936F, 0.1698779549F, 0.1728446939F, 0.1758325362F, |
0.1788413055F, 0.1818708232F, 0.1849209084F, 0.1879913785F, |
0.1910820485F, 0.1941927312F, 0.1973232376F, 0.2004733764F, |
0.2036429541F, 0.2068317752F, 0.2100396421F, 0.2132663552F, |
0.2165117125F, 0.2197755102F, 0.2230575422F, 0.2263576007F, |
0.2296754753F, 0.2330109540F, 0.2363638225F, 0.2397338646F, |
0.2431208619F, 0.2465245941F, 0.2499448389F, 0.2533813719F, |
0.2568339669F, 0.2603023956F, 0.2637864277F, 0.2672858312F, |
0.2708003718F, 0.2743298135F, 0.2778739186F, 0.2814324472F, |
0.2850051576F, 0.2885918065F, 0.2921921485F, 0.2958059366F, |
0.2994329219F, 0.3030728538F, 0.3067254799F, 0.3103905462F, |
0.3140677969F, 0.3177569747F, 0.3214578205F, 0.3251700736F, |
0.3288934718F, 0.3326277513F, 0.3363726468F, 0.3401278914F, |
0.3438932168F, 0.3476683533F, 0.3514530297F, 0.3552469734F, |
0.3590499106F, 0.3628615659F, 0.3666816630F, 0.3705099239F, |
0.3743460698F, 0.3781898204F, 0.3820408945F, 0.3858990095F, |
0.3897638820F, 0.3936352274F, 0.3975127601F, 0.4013961936F, |
0.4052852405F, 0.4091796123F, 0.4130790198F, 0.4169831732F, |
0.4208917815F, 0.4248045534F, 0.4287211965F, 0.4326414181F, |
0.4365649248F, 0.4404914225F, 0.4444206167F, 0.4483522125F, |
0.4522859146F, 0.4562214270F, 0.4601584538F, 0.4640966984F, |
0.4680358644F, 0.4719756548F, 0.4759157726F, 0.4798559209F, |
0.4837958024F, 0.4877351199F, 0.4916735765F, 0.4956108751F, |
0.4995467188F, 0.5034808109F, 0.5074128550F, 0.5113425550F, |
0.5152696149F, 0.5191937395F, 0.5231146336F, 0.5270320028F, |
0.5309455530F, 0.5348549910F, 0.5387600239F, 0.5426603597F, |
0.5465557070F, 0.5504457754F, 0.5543302752F, 0.5582089175F, |
0.5620814145F, 0.5659474793F, 0.5698068262F, 0.5736591704F, |
0.5775042283F, 0.5813417176F, 0.5851713571F, 0.5889928670F, |
0.5928059689F, 0.5966103856F, 0.6004058415F, 0.6041920626F, |
0.6079687761F, 0.6117357113F, 0.6154925986F, 0.6192391705F, |
0.6229751612F, 0.6267003064F, 0.6304143441F, 0.6341170137F, |
0.6378080569F, 0.6414872173F, 0.6451542405F, 0.6488088741F, |
0.6524508681F, 0.6560799742F, 0.6596959469F, 0.6632985424F, |
0.6668875197F, 0.6704626398F, 0.6740236662F, 0.6775703649F, |
0.6811025043F, 0.6846198554F, 0.6881221916F, 0.6916092892F, |
0.6950809269F, 0.6985368861F, 0.7019769510F, 0.7054009085F, |
0.7088085484F, 0.7121996632F, 0.7155740484F, 0.7189315023F, |
0.7222718263F, 0.7255948245F, 0.7289003043F, 0.7321880760F, |
0.7354579530F, 0.7387097518F, 0.7419432921F, 0.7451583966F, |
0.7483548915F, 0.7515326059F, 0.7546913723F, 0.7578310265F, |
0.7609514077F, 0.7640523581F, 0.7671337237F, 0.7701953535F, |
0.7732371001F, 0.7762588195F, 0.7792603711F, 0.7822416178F, |
0.7852024259F, 0.7881426654F, 0.7910622097F, 0.7939609356F, |
0.7968387237F, 0.7996954579F, 0.8025310261F, 0.8053453193F, |
0.8081382324F, 0.8109096638F, 0.8136595156F, 0.8163876936F, |
0.8190941071F, 0.8217786690F, 0.8244412960F, 0.8270819086F, |
0.8297004305F, 0.8322967896F, 0.8348709171F, 0.8374227481F, |
0.8399522213F, 0.8424592789F, 0.8449438672F, 0.8474059356F, |
0.8498454378F, 0.8522623306F, 0.8546565748F, 0.8570281348F, |
0.8593769787F, 0.8617030779F, 0.8640064080F, 0.8662869477F, |
0.8685446796F, 0.8707795899F, 0.8729916682F, 0.8751809079F, |
0.8773473059F, 0.8794908626F, 0.8816115819F, 0.8837094713F, |
0.8857845418F, 0.8878368079F, 0.8898662874F, 0.8918730019F, |
0.8938569760F, 0.8958182380F, 0.8977568194F, 0.8996727552F, |
0.9015660837F, 0.9034368465F, 0.9052850885F, 0.9071108577F, |
0.9089142057F, 0.9106951869F, 0.9124538591F, 0.9141902832F, |
0.9159045233F, 0.9175966464F, 0.9192667228F, 0.9209148257F, |
0.9225410313F, 0.9241454187F, 0.9257280701F, 0.9272890704F, |
0.9288285075F, 0.9303464720F, 0.9318430576F, 0.9333183603F, |
0.9347724792F, 0.9362055158F, 0.9376175745F, 0.9390087622F, |
0.9403791881F, 0.9417289644F, 0.9430582055F, 0.9443670283F, |
0.9456555521F, 0.9469238986F, 0.9481721917F, 0.9494005577F, |
0.9506091252F, 0.9517980248F, 0.9529673894F, 0.9541173540F, |
0.9552480557F, 0.9563596334F, 0.9574522282F, 0.9585259830F, |
0.9595810428F, 0.9606175542F, 0.9616356656F, 0.9626355274F, |
0.9636172915F, 0.9645811114F, 0.9655271425F, 0.9664555414F, |
0.9673664664F, 0.9682600774F, 0.9691365355F, 0.9699960034F, |
0.9708386448F, 0.9716646250F, 0.9724741103F, 0.9732672685F, |
0.9740442683F, 0.9748052795F, 0.9755504729F, 0.9762800205F, |
0.9769940950F, 0.9776928703F, 0.9783765210F, 0.9790452223F, |
0.9796991504F, 0.9803384823F, 0.9809633954F, 0.9815740679F, |
0.9821706784F, 0.9827534063F, 0.9833224312F, 0.9838779332F, |
0.9844200928F, 0.9849490910F, 0.9854651087F, 0.9859683274F, |
0.9864589286F, 0.9869370940F, 0.9874030054F, 0.9878568447F, |
0.9882987937F, 0.9887290343F, 0.9891477481F, 0.9895551169F, |
0.9899513220F, 0.9903365446F, 0.9907109658F, 0.9910747662F, |
0.9914281260F, 0.9917712252F, 0.9921042433F, 0.9924273593F, |
0.9927407516F, 0.9930445982F, 0.9933390763F, 0.9936243626F, |
0.9939006331F, 0.9941680631F, 0.9944268269F, 0.9946770982F, |
0.9949190498F, 0.9951528537F, 0.9953786808F, 0.9955967011F, |
0.9958070836F, 0.9960099963F, 0.9962056061F, 0.9963940787F, |
0.9965755786F, 0.9967502693F, 0.9969183129F, 0.9970798704F, |
0.9972351013F, 0.9973841640F, 0.9975272151F, 0.9976644103F, |
0.9977959036F, 0.9979218476F, 0.9980423932F, 0.9981576901F, |
0.9982678862F, 0.9983731278F, 0.9984735596F, 0.9985693247F, |
0.9986605645F, 0.9987474186F, 0.9988300248F, 0.9989085193F, |
0.9989830364F, 0.9990537085F, 0.9991206662F, 0.9991840382F, |
0.9992439513F, 0.9993005303F, 0.9993538982F, 0.9994041757F, |
0.9994514817F, 0.9994959330F, 0.9995376444F, 0.9995767286F, |
0.9996132960F, 0.9996474550F, 0.9996793121F, 0.9997089710F, |
0.9997365339F, 0.9997621003F, 0.9997857677F, 0.9998076311F, |
0.9998277836F, 0.9998463156F, 0.9998633155F, 0.9998788692F, |
0.9998930603F, 0.9999059701F, 0.9999176774F, 0.9999282586F, |
0.9999377880F, 0.9999463370F, 0.9999539749F, 0.9999607685F, |
0.9999667820F, 0.9999720773F, 0.9999767136F, 0.9999807479F, |
0.9999842344F, 0.9999872249F, 0.9999897688F, 0.9999919127F, |
0.9999937009F, 0.9999951749F, 0.9999963738F, 0.9999973342F, |
0.9999980900F, 0.9999986724F, 0.9999991103F, 0.9999994297F, |
0.9999996543F, 0.9999998049F, 0.9999999000F, 0.9999999552F, |
0.9999999836F, 0.9999999957F, 0.9999999994F, 1.0000000000F, |
}; |
static const float vwin2048[1024] = { |
0.0000009241F, 0.0000083165F, 0.0000231014F, 0.0000452785F, |
0.0000748476F, 0.0001118085F, 0.0001561608F, 0.0002079041F, |
0.0002670379F, 0.0003335617F, 0.0004074748F, 0.0004887765F, |
0.0005774661F, 0.0006735427F, 0.0007770054F, 0.0008878533F, |
0.0010060853F, 0.0011317002F, 0.0012646969F, 0.0014050742F, |
0.0015528307F, 0.0017079650F, 0.0018704756F, 0.0020403610F, |
0.0022176196F, 0.0024022497F, 0.0025942495F, 0.0027936173F, |
0.0030003511F, 0.0032144490F, 0.0034359088F, 0.0036647286F, |
0.0039009061F, 0.0041444391F, 0.0043953253F, 0.0046535621F, |
0.0049191472F, 0.0051920781F, 0.0054723520F, 0.0057599664F, |
0.0060549184F, 0.0063572052F, 0.0066668239F, 0.0069837715F, |
0.0073080449F, 0.0076396410F, 0.0079785566F, 0.0083247884F, |
0.0086783330F, 0.0090391871F, 0.0094073470F, 0.0097828092F, |
0.0101655700F, 0.0105556258F, 0.0109529726F, 0.0113576065F, |
0.0117695237F, 0.0121887200F, 0.0126151913F, 0.0130489335F, |
0.0134899422F, 0.0139382130F, 0.0143937415F, 0.0148565233F, |
0.0153265536F, 0.0158038279F, 0.0162883413F, 0.0167800889F, |
0.0172790660F, 0.0177852675F, 0.0182986882F, 0.0188193231F, |
0.0193471668F, 0.0198822141F, 0.0204244594F, 0.0209738974F, |
0.0215305225F, 0.0220943289F, 0.0226653109F, 0.0232434627F, |
0.0238287784F, 0.0244212519F, 0.0250208772F, 0.0256276481F, |
0.0262415582F, 0.0268626014F, 0.0274907711F, 0.0281260608F, |
0.0287684638F, 0.0294179736F, 0.0300745833F, 0.0307382859F, |
0.0314090747F, 0.0320869424F, 0.0327718819F, 0.0334638860F, |
0.0341629474F, 0.0348690586F, 0.0355822122F, 0.0363024004F, |
0.0370296157F, 0.0377638502F, 0.0385050960F, 0.0392533451F, |
0.0400085896F, 0.0407708211F, 0.0415400315F, 0.0423162123F, |
0.0430993552F, 0.0438894515F, 0.0446864926F, 0.0454904698F, |
0.0463013742F, 0.0471191969F, 0.0479439288F, 0.0487755607F, |
0.0496140836F, 0.0504594879F, 0.0513117642F, 0.0521709031F, |
0.0530368949F, 0.0539097297F, 0.0547893979F, 0.0556758894F, |
0.0565691941F, 0.0574693019F, 0.0583762026F, 0.0592898858F, |
0.0602103410F, 0.0611375576F, 0.0620715250F, 0.0630122324F, |
0.0639596688F, 0.0649138234F, 0.0658746848F, 0.0668422421F, |
0.0678164838F, 0.0687973985F, 0.0697849746F, 0.0707792005F, |
0.0717800645F, 0.0727875547F, 0.0738016591F, 0.0748223656F, |
0.0758496620F, 0.0768835359F, 0.0779239751F, 0.0789709668F, |
0.0800244985F, 0.0810845574F, 0.0821511306F, 0.0832242052F, |
0.0843037679F, 0.0853898056F, 0.0864823050F, 0.0875812525F, |
0.0886866347F, 0.0897984378F, 0.0909166480F, 0.0920412513F, |
0.0931722338F, 0.0943095813F, 0.0954532795F, 0.0966033140F, |
0.0977596702F, 0.0989223336F, 0.1000912894F, 0.1012665227F, |
0.1024480185F, 0.1036357616F, 0.1048297369F, 0.1060299290F, |
0.1072363224F, 0.1084489014F, 0.1096676504F, 0.1108925534F, |
0.1121235946F, 0.1133607577F, 0.1146040267F, 0.1158533850F, |
0.1171088163F, 0.1183703040F, 0.1196378312F, 0.1209113812F, |
0.1221909370F, 0.1234764815F, 0.1247679974F, 0.1260654674F, |
0.1273688740F, 0.1286781995F, 0.1299934263F, 0.1313145365F, |
0.1326415121F, 0.1339743349F, 0.1353129866F, 0.1366574490F, |
0.1380077035F, 0.1393637315F, 0.1407255141F, 0.1420930325F, |
0.1434662677F, 0.1448452004F, 0.1462298115F, 0.1476200814F, |
0.1490159906F, 0.1504175195F, 0.1518246482F, 0.1532373569F, |
0.1546556253F, 0.1560794333F, 0.1575087606F, 0.1589435866F, |
0.1603838909F, 0.1618296526F, 0.1632808509F, 0.1647374648F, |
0.1661994731F, 0.1676668546F, 0.1691395880F, 0.1706176516F, |
0.1721010238F, 0.1735896829F, 0.1750836068F, 0.1765827736F, |
0.1780871610F, 0.1795967468F, 0.1811115084F, 0.1826314234F, |
0.1841564689F, 0.1856866221F, 0.1872218600F, 0.1887621595F, |
0.1903074974F, 0.1918578503F, 0.1934131947F, 0.1949735068F, |
0.1965387630F, 0.1981089393F, 0.1996840117F, 0.2012639560F, |
0.2028487479F, 0.2044383630F, 0.2060327766F, 0.2076319642F, |
0.2092359007F, 0.2108445614F, 0.2124579211F, 0.2140759545F, |
0.2156986364F, 0.2173259411F, 0.2189578432F, 0.2205943168F, |
0.2222353361F, 0.2238808751F, 0.2255309076F, 0.2271854073F, |
0.2288443480F, 0.2305077030F, 0.2321754457F, 0.2338475493F, |
0.2355239869F, 0.2372047315F, 0.2388897560F, 0.2405790329F, |
0.2422725350F, 0.2439702347F, 0.2456721043F, 0.2473781159F, |
0.2490882418F, 0.2508024539F, 0.2525207240F, 0.2542430237F, |
0.2559693248F, 0.2576995986F, 0.2594338166F, 0.2611719498F, |
0.2629139695F, 0.2646598466F, 0.2664095520F, 0.2681630564F, |
0.2699203304F, 0.2716813445F, 0.2734460691F, 0.2752144744F, |
0.2769865307F, 0.2787622079F, 0.2805414760F, 0.2823243047F, |
0.2841106637F, 0.2859005227F, 0.2876938509F, 0.2894906179F, |
0.2912907928F, 0.2930943447F, 0.2949012426F, 0.2967114554F, |
0.2985249520F, 0.3003417009F, 0.3021616708F, 0.3039848301F, |
0.3058111471F, 0.3076405901F, 0.3094731273F, 0.3113087266F, |
0.3131473560F, 0.3149889833F, 0.3168335762F, 0.3186811024F, |
0.3205315294F, 0.3223848245F, 0.3242409552F, 0.3260998886F, |
0.3279615918F, 0.3298260319F, 0.3316931758F, 0.3335629903F, |
0.3354354423F, 0.3373104982F, 0.3391881247F, 0.3410682882F, |
0.3429509551F, 0.3448360917F, 0.3467236642F, 0.3486136387F, |
0.3505059811F, 0.3524006575F, 0.3542976336F, 0.3561968753F, |
0.3580983482F, 0.3600020179F, 0.3619078499F, 0.3638158096F, |
0.3657258625F, 0.3676379737F, 0.3695521086F, 0.3714682321F, |
0.3733863094F, 0.3753063055F, 0.3772281852F, 0.3791519134F, |
0.3810774548F, 0.3830047742F, 0.3849338362F, 0.3868646053F, |
0.3887970459F, 0.3907311227F, 0.3926667998F, 0.3946040417F, |
0.3965428125F, 0.3984830765F, 0.4004247978F, 0.4023679403F, |
0.4043124683F, 0.4062583455F, 0.4082055359F, 0.4101540034F, |
0.4121037117F, 0.4140546246F, 0.4160067058F, 0.4179599190F, |
0.4199142277F, 0.4218695956F, 0.4238259861F, 0.4257833627F, |
0.4277416888F, 0.4297009279F, 0.4316610433F, 0.4336219983F, |
0.4355837562F, 0.4375462803F, 0.4395095337F, 0.4414734797F, |
0.4434380815F, 0.4454033021F, 0.4473691046F, 0.4493354521F, |
0.4513023078F, 0.4532696345F, 0.4552373954F, 0.4572055533F, |
0.4591740713F, 0.4611429123F, 0.4631120393F, 0.4650814151F, |
0.4670510028F, 0.4690207650F, 0.4709906649F, 0.4729606651F, |
0.4749307287F, 0.4769008185F, 0.4788708972F, 0.4808409279F, |
0.4828108732F, 0.4847806962F, 0.4867503597F, 0.4887198264F, |
0.4906890593F, 0.4926580213F, 0.4946266753F, 0.4965949840F, |
0.4985629105F, 0.5005304176F, 0.5024974683F, 0.5044640255F, |
0.5064300522F, 0.5083955114F, 0.5103603659F, 0.5123245790F, |
0.5142881136F, 0.5162509328F, 0.5182129997F, 0.5201742774F, |
0.5221347290F, 0.5240943178F, 0.5260530070F, 0.5280107598F, |
0.5299675395F, 0.5319233095F, 0.5338780330F, 0.5358316736F, |
0.5377841946F, 0.5397355596F, 0.5416857320F, 0.5436346755F, |
0.5455823538F, 0.5475287304F, 0.5494737691F, 0.5514174337F, |
0.5533596881F, 0.5553004962F, 0.5572398218F, 0.5591776291F, |
0.5611138821F, 0.5630485449F, 0.5649815818F, 0.5669129570F, |
0.5688426349F, 0.5707705799F, 0.5726967564F, 0.5746211290F, |
0.5765436624F, 0.5784643212F, 0.5803830702F, 0.5822998743F, |
0.5842146984F, 0.5861275076F, 0.5880382669F, 0.5899469416F, |
0.5918534968F, 0.5937578981F, 0.5956601107F, 0.5975601004F, |
0.5994578326F, 0.6013532732F, 0.6032463880F, 0.6051371429F, |
0.6070255039F, 0.6089114372F, 0.6107949090F, 0.6126758856F, |
0.6145543334F, 0.6164302191F, 0.6183035092F, 0.6201741706F, |
0.6220421700F, 0.6239074745F, 0.6257700513F, 0.6276298674F, |
0.6294868903F, 0.6313410873F, 0.6331924262F, 0.6350408745F, |
0.6368864001F, 0.6387289710F, 0.6405685552F, 0.6424051209F, |
0.6442386364F, 0.6460690702F, 0.6478963910F, 0.6497205673F, |
0.6515415682F, 0.6533593625F, 0.6551739194F, 0.6569852082F, |
0.6587931984F, 0.6605978593F, 0.6623991609F, 0.6641970728F, |
0.6659915652F, 0.6677826081F, 0.6695701718F, 0.6713542268F, |
0.6731347437F, 0.6749116932F, 0.6766850461F, 0.6784547736F, |
0.6802208469F, 0.6819832374F, 0.6837419164F, 0.6854968559F, |
0.6872480275F, 0.6889954034F, 0.6907389556F, 0.6924786566F, |
0.6942144788F, 0.6959463950F, 0.6976743780F, 0.6993984008F, |
0.7011184365F, 0.7028344587F, 0.7045464407F, 0.7062543564F, |
0.7079581796F, 0.7096578844F, 0.7113534450F, 0.7130448359F, |
0.7147320316F, 0.7164150070F, 0.7180937371F, 0.7197681970F, |
0.7214383620F, 0.7231042077F, 0.7247657098F, 0.7264228443F, |
0.7280755871F, 0.7297239147F, 0.7313678035F, 0.7330072301F, |
0.7346421715F, 0.7362726046F, 0.7378985069F, 0.7395198556F, |
0.7411366285F, 0.7427488034F, 0.7443563584F, 0.7459592717F, |
0.7475575218F, 0.7491510873F, 0.7507399471F, 0.7523240803F, |
0.7539034661F, 0.7554780839F, 0.7570479136F, 0.7586129349F, |
0.7601731279F, 0.7617284730F, 0.7632789506F, 0.7648245416F, |
0.7663652267F, 0.7679009872F, 0.7694318044F, 0.7709576599F, |
0.7724785354F, 0.7739944130F, 0.7755052749F, 0.7770111035F, |
0.7785118815F, 0.7800075916F, 0.7814982170F, 0.7829837410F, |
0.7844641472F, 0.7859394191F, 0.7874095408F, 0.7888744965F, |
0.7903342706F, 0.7917888476F, 0.7932382124F, 0.7946823501F, |
0.7961212460F, 0.7975548855F, 0.7989832544F, 0.8004063386F, |
0.8018241244F, 0.8032365981F, 0.8046437463F, 0.8060455560F, |
0.8074420141F, 0.8088331080F, 0.8102188253F, 0.8115991536F, |
0.8129740810F, 0.8143435957F, 0.8157076861F, 0.8170663409F, |
0.8184195489F, 0.8197672994F, 0.8211095817F, 0.8224463853F, |
0.8237777001F, 0.8251035161F, 0.8264238235F, 0.8277386129F, |
0.8290478750F, 0.8303516008F, 0.8316497814F, 0.8329424083F, |
0.8342294731F, 0.8355109677F, 0.8367868841F, 0.8380572148F, |
0.8393219523F, 0.8405810893F, 0.8418346190F, 0.8430825345F, |
0.8443248294F, 0.8455614974F, 0.8467925323F, 0.8480179285F, |
0.8492376802F, 0.8504517822F, 0.8516602292F, 0.8528630164F, |
0.8540601391F, 0.8552515928F, 0.8564373733F, 0.8576174766F, |
0.8587918990F, 0.8599606368F, 0.8611236868F, 0.8622810460F, |
0.8634327113F, 0.8645786802F, 0.8657189504F, 0.8668535195F, |
0.8679823857F, 0.8691055472F, 0.8702230025F, 0.8713347503F, |
0.8724407896F, 0.8735411194F, 0.8746357394F, 0.8757246489F, |
0.8768078479F, 0.8778853364F, 0.8789571146F, 0.8800231832F, |
0.8810835427F, 0.8821381942F, 0.8831871387F, 0.8842303777F, |
0.8852679127F, 0.8862997456F, 0.8873258784F, 0.8883463132F, |
0.8893610527F, 0.8903700994F, 0.8913734562F, 0.8923711263F, |
0.8933631129F, 0.8943494196F, 0.8953300500F, 0.8963050083F, |
0.8972742985F, 0.8982379249F, 0.8991958922F, 0.9001482052F, |
0.9010948688F, 0.9020358883F, 0.9029712690F, 0.9039010165F, |
0.9048251367F, 0.9057436357F, 0.9066565195F, 0.9075637946F, |
0.9084654678F, 0.9093615456F, 0.9102520353F, 0.9111369440F, |
0.9120162792F, 0.9128900484F, 0.9137582595F, 0.9146209204F, |
0.9154780394F, 0.9163296248F, 0.9171756853F, 0.9180162296F, |
0.9188512667F, 0.9196808057F, 0.9205048559F, 0.9213234270F, |
0.9221365285F, 0.9229441704F, 0.9237463629F, 0.9245431160F, |
0.9253344404F, 0.9261203465F, 0.9269008453F, 0.9276759477F, |
0.9284456648F, 0.9292100080F, 0.9299689889F, 0.9307226190F, |
0.9314709103F, 0.9322138747F, 0.9329515245F, 0.9336838721F, |
0.9344109300F, 0.9351327108F, 0.9358492275F, 0.9365604931F, |
0.9372665208F, 0.9379673239F, 0.9386629160F, 0.9393533107F, |
0.9400385220F, 0.9407185637F, 0.9413934501F, 0.9420631954F, |
0.9427278141F, 0.9433873208F, 0.9440417304F, 0.9446910576F, |
0.9453353176F, 0.9459745255F, 0.9466086968F, 0.9472378469F, |
0.9478619915F, 0.9484811463F, 0.9490953274F, 0.9497045506F, |
0.9503088323F, 0.9509081888F, 0.9515026365F, 0.9520921921F, |
0.9526768723F, 0.9532566940F, 0.9538316742F, 0.9544018300F, |
0.9549671786F, 0.9555277375F, 0.9560835241F, 0.9566345562F, |
0.9571808513F, 0.9577224275F, 0.9582593027F, 0.9587914949F, |
0.9593190225F, 0.9598419038F, 0.9603601571F, 0.9608738012F, |
0.9613828546F, 0.9618873361F, 0.9623872646F, 0.9628826591F, |
0.9633735388F, 0.9638599227F, 0.9643418303F, 0.9648192808F, |
0.9652922939F, 0.9657608890F, 0.9662250860F, 0.9666849046F, |
0.9671403646F, 0.9675914861F, 0.9680382891F, 0.9684807937F, |
0.9689190202F, 0.9693529890F, 0.9697827203F, 0.9702082347F, |
0.9706295529F, 0.9710466953F, 0.9714596828F, 0.9718685362F, |
0.9722732762F, 0.9726739240F, 0.9730705005F, 0.9734630267F, |
0.9738515239F, 0.9742360134F, 0.9746165163F, 0.9749930540F, |
0.9753656481F, 0.9757343198F, 0.9760990909F, 0.9764599829F, |
0.9768170175F, 0.9771702164F, 0.9775196013F, 0.9778651941F, |
0.9782070167F, 0.9785450909F, 0.9788794388F, 0.9792100824F, |
0.9795370437F, 0.9798603449F, 0.9801800080F, 0.9804960554F, |
0.9808085092F, 0.9811173916F, 0.9814227251F, 0.9817245318F, |
0.9820228343F, 0.9823176549F, 0.9826090160F, 0.9828969402F, |
0.9831814498F, 0.9834625674F, 0.9837403156F, 0.9840147169F, |
0.9842857939F, 0.9845535692F, 0.9848180654F, 0.9850793052F, |
0.9853373113F, 0.9855921062F, 0.9858437127F, 0.9860921535F, |
0.9863374512F, 0.9865796287F, 0.9868187085F, 0.9870547136F, |
0.9872876664F, 0.9875175899F, 0.9877445067F, 0.9879684396F, |
0.9881894112F, 0.9884074444F, 0.9886225619F, 0.9888347863F, |
0.9890441404F, 0.9892506468F, 0.9894543284F, 0.9896552077F, |
0.9898533074F, 0.9900486502F, 0.9902412587F, 0.9904311555F, |
0.9906183633F, 0.9908029045F, 0.9909848019F, 0.9911640779F, |
0.9913407550F, 0.9915148557F, 0.9916864025F, 0.9918554179F, |
0.9920219241F, 0.9921859437F, 0.9923474989F, 0.9925066120F, |
0.9926633054F, 0.9928176012F, 0.9929695218F, 0.9931190891F, |
0.9932663254F, 0.9934112527F, 0.9935538932F, 0.9936942686F, |
0.9938324012F, 0.9939683126F, 0.9941020248F, 0.9942335597F, |
0.9943629388F, 0.9944901841F, 0.9946153170F, 0.9947383593F, |
0.9948593325F, 0.9949782579F, 0.9950951572F, 0.9952100516F, |
0.9953229625F, 0.9954339111F, 0.9955429186F, 0.9956500062F, |
0.9957551948F, 0.9958585056F, 0.9959599593F, 0.9960595769F, |
0.9961573792F, 0.9962533869F, 0.9963476206F, 0.9964401009F, |
0.9965308483F, 0.9966198833F, 0.9967072261F, 0.9967928971F, |
0.9968769164F, 0.9969593041F, 0.9970400804F, 0.9971192651F, |
0.9971968781F, 0.9972729391F, 0.9973474680F, 0.9974204842F, |
0.9974920074F, 0.9975620569F, 0.9976306521F, 0.9976978122F, |
0.9977635565F, 0.9978279039F, 0.9978908736F, 0.9979524842F, |
0.9980127547F, 0.9980717037F, 0.9981293499F, 0.9981857116F, |
0.9982408073F, 0.9982946554F, 0.9983472739F, 0.9983986810F, |
0.9984488947F, 0.9984979328F, 0.9985458132F, 0.9985925534F, |
0.9986381711F, 0.9986826838F, 0.9987261086F, 0.9987684630F, |
0.9988097640F, 0.9988500286F, 0.9988892738F, 0.9989275163F, |
0.9989647727F, 0.9990010597F, 0.9990363938F, 0.9990707911F, |
0.9991042679F, 0.9991368404F, 0.9991685244F, 0.9991993358F, |
0.9992292905F, 0.9992584038F, 0.9992866914F, 0.9993141686F, |
0.9993408506F, 0.9993667526F, 0.9993918895F, 0.9994162761F, |
0.9994399273F, 0.9994628576F, 0.9994850815F, 0.9995066133F, |
0.9995274672F, 0.9995476574F, 0.9995671978F, 0.9995861021F, |
0.9996043841F, 0.9996220573F, 0.9996391352F, 0.9996556310F, |
0.9996715579F, 0.9996869288F, 0.9997017568F, 0.9997160543F, |
0.9997298342F, 0.9997431088F, 0.9997558905F, 0.9997681914F, |
0.9997800236F, 0.9997913990F, 0.9998023292F, 0.9998128261F, |
0.9998229009F, 0.9998325650F, 0.9998418296F, 0.9998507058F, |
0.9998592044F, 0.9998673362F, 0.9998751117F, 0.9998825415F, |
0.9998896358F, 0.9998964047F, 0.9999028584F, 0.9999090066F, |
0.9999148590F, 0.9999204253F, 0.9999257148F, 0.9999307368F, |
0.9999355003F, 0.9999400144F, 0.9999442878F, 0.9999483293F, |
0.9999521472F, 0.9999557499F, 0.9999591457F, 0.9999623426F, |
0.9999653483F, 0.9999681708F, 0.9999708175F, 0.9999732959F, |
0.9999756132F, 0.9999777765F, 0.9999797928F, 0.9999816688F, |
0.9999834113F, 0.9999850266F, 0.9999865211F, 0.9999879009F, |
0.9999891721F, 0.9999903405F, 0.9999914118F, 0.9999923914F, |
0.9999932849F, 0.9999940972F, 0.9999948336F, 0.9999954989F, |
0.9999960978F, 0.9999966349F, 0.9999971146F, 0.9999975411F, |
0.9999979185F, 0.9999982507F, 0.9999985414F, 0.9999987944F, |
0.9999990129F, 0.9999992003F, 0.9999993596F, 0.9999994939F, |
0.9999996059F, 0.9999996981F, 0.9999997732F, 0.9999998333F, |
0.9999998805F, 0.9999999170F, 0.9999999444F, 0.9999999643F, |
0.9999999784F, 0.9999999878F, 0.9999999937F, 0.9999999972F, |
0.9999999990F, 0.9999999997F, 1.0000000000F, 1.0000000000F, |
}; |
static const float vwin4096[2048] = { |
0.0000002310F, 0.0000020791F, 0.0000057754F, 0.0000113197F, |
0.0000187121F, 0.0000279526F, 0.0000390412F, 0.0000519777F, |
0.0000667623F, 0.0000833949F, 0.0001018753F, 0.0001222036F, |
0.0001443798F, 0.0001684037F, 0.0001942754F, 0.0002219947F, |
0.0002515616F, 0.0002829761F, 0.0003162380F, 0.0003513472F, |
0.0003883038F, 0.0004271076F, 0.0004677584F, 0.0005102563F, |
0.0005546011F, 0.0006007928F, 0.0006488311F, 0.0006987160F, |
0.0007504474F, 0.0008040251F, 0.0008594490F, 0.0009167191F, |
0.0009758351F, 0.0010367969F, 0.0010996044F, 0.0011642574F, |
0.0012307558F, 0.0012990994F, 0.0013692880F, 0.0014413216F, |
0.0015151998F, 0.0015909226F, 0.0016684898F, 0.0017479011F, |
0.0018291565F, 0.0019122556F, 0.0019971983F, 0.0020839845F, |
0.0021726138F, 0.0022630861F, 0.0023554012F, 0.0024495588F, |
0.0025455588F, 0.0026434008F, 0.0027430847F, 0.0028446103F, |
0.0029479772F, 0.0030531853F, 0.0031602342F, 0.0032691238F, |
0.0033798538F, 0.0034924239F, 0.0036068338F, 0.0037230833F, |
0.0038411721F, 0.0039610999F, 0.0040828664F, 0.0042064714F, |
0.0043319145F, 0.0044591954F, 0.0045883139F, 0.0047192696F, |
0.0048520622F, 0.0049866914F, 0.0051231569F, 0.0052614583F, |
0.0054015953F, 0.0055435676F, 0.0056873748F, 0.0058330166F, |
0.0059804926F, 0.0061298026F, 0.0062809460F, 0.0064339226F, |
0.0065887320F, 0.0067453738F, 0.0069038476F, 0.0070641531F, |
0.0072262899F, 0.0073902575F, 0.0075560556F, 0.0077236838F, |
0.0078931417F, 0.0080644288F, 0.0082375447F, 0.0084124891F, |
0.0085892615F, 0.0087678614F, 0.0089482885F, 0.0091305422F, |
0.0093146223F, 0.0095005281F, 0.0096882592F, 0.0098778153F, |
0.0100691958F, 0.0102624002F, 0.0104574281F, 0.0106542791F, |
0.0108529525F, 0.0110534480F, 0.0112557651F, 0.0114599032F, |
0.0116658618F, 0.0118736405F, 0.0120832387F, 0.0122946560F, |
0.0125078917F, 0.0127229454F, 0.0129398166F, 0.0131585046F, |
0.0133790090F, 0.0136013292F, 0.0138254647F, 0.0140514149F, |
0.0142791792F, 0.0145087572F, 0.0147401481F, 0.0149733515F, |
0.0152083667F, 0.0154451932F, 0.0156838304F, 0.0159242777F, |
0.0161665345F, 0.0164106001F, 0.0166564741F, 0.0169041557F, |
0.0171536443F, 0.0174049393F, 0.0176580401F, 0.0179129461F, |
0.0181696565F, 0.0184281708F, 0.0186884883F, 0.0189506084F, |
0.0192145303F, 0.0194802535F, 0.0197477772F, 0.0200171008F, |
0.0202882236F, 0.0205611449F, 0.0208358639F, 0.0211123801F, |
0.0213906927F, 0.0216708011F, 0.0219527043F, 0.0222364019F, |
0.0225218930F, 0.0228091769F, 0.0230982529F, 0.0233891203F, |
0.0236817782F, 0.0239762259F, 0.0242724628F, 0.0245704880F, |
0.0248703007F, 0.0251719002F, 0.0254752858F, 0.0257804565F, |
0.0260874117F, 0.0263961506F, 0.0267066722F, 0.0270189760F, |
0.0273330609F, 0.0276489263F, 0.0279665712F, 0.0282859949F, |
0.0286071966F, 0.0289301753F, 0.0292549303F, 0.0295814607F, |
0.0299097656F, 0.0302398442F, 0.0305716957F, 0.0309053191F, |
0.0312407135F, 0.0315778782F, 0.0319168122F, 0.0322575145F, |
0.0325999844F, 0.0329442209F, 0.0332902231F, 0.0336379900F, |
0.0339875208F, 0.0343388146F, 0.0346918703F, 0.0350466871F, |
0.0354032640F, 0.0357616000F, 0.0361216943F, 0.0364835458F, |
0.0368471535F, 0.0372125166F, 0.0375796339F, 0.0379485046F, |
0.0383191276F, 0.0386915020F, 0.0390656267F, 0.0394415008F, |
0.0398191231F, 0.0401984927F, 0.0405796086F, 0.0409624698F, |
0.0413470751F, 0.0417334235F, 0.0421215141F, 0.0425113457F, |
0.0429029172F, 0.0432962277F, 0.0436912760F, 0.0440880610F, |
0.0444865817F, 0.0448868370F, 0.0452888257F, 0.0456925468F, |
0.0460979992F, 0.0465051816F, 0.0469140931F, 0.0473247325F, |
0.0477370986F, 0.0481511902F, 0.0485670064F, 0.0489845458F, |
0.0494038074F, 0.0498247899F, 0.0502474922F, 0.0506719131F, |
0.0510980514F, 0.0515259060F, 0.0519554756F, 0.0523867590F, |
0.0528197550F, 0.0532544624F, 0.0536908800F, 0.0541290066F, |
0.0545688408F, 0.0550103815F, 0.0554536274F, 0.0558985772F, |
0.0563452297F, 0.0567935837F, 0.0572436377F, 0.0576953907F, |
0.0581488412F, 0.0586039880F, 0.0590608297F, 0.0595193651F, |
0.0599795929F, 0.0604415117F, 0.0609051202F, 0.0613704170F, |
0.0618374009F, 0.0623060704F, 0.0627764243F, 0.0632484611F, |
0.0637221795F, 0.0641975781F, 0.0646746555F, 0.0651534104F, |
0.0656338413F, 0.0661159469F, 0.0665997257F, 0.0670851763F, |
0.0675722973F, 0.0680610873F, 0.0685515448F, 0.0690436684F, |
0.0695374567F, 0.0700329081F, 0.0705300213F, 0.0710287947F, |
0.0715292269F, 0.0720313163F, 0.0725350616F, 0.0730404612F, |
0.0735475136F, 0.0740562172F, 0.0745665707F, 0.0750785723F, |
0.0755922207F, 0.0761075143F, 0.0766244515F, 0.0771430307F, |
0.0776632505F, 0.0781851092F, 0.0787086052F, 0.0792337371F, |
0.0797605032F, 0.0802889018F, 0.0808189315F, 0.0813505905F, |
0.0818838773F, 0.0824187903F, 0.0829553277F, 0.0834934881F, |
0.0840332697F, 0.0845746708F, 0.0851176899F, 0.0856623252F, |
0.0862085751F, 0.0867564379F, 0.0873059119F, 0.0878569954F, |
0.0884096867F, 0.0889639840F, 0.0895198858F, 0.0900773902F, |
0.0906364955F, 0.0911972000F, 0.0917595019F, 0.0923233995F, |
0.0928888909F, 0.0934559745F, 0.0940246485F, 0.0945949110F, |
0.0951667604F, 0.0957401946F, 0.0963152121F, 0.0968918109F, |
0.0974699893F, 0.0980497454F, 0.0986310773F, 0.0992139832F, |
0.0997984614F, 0.1003845098F, 0.1009721267F, 0.1015613101F, |
0.1021520582F, 0.1027443692F, 0.1033382410F, 0.1039336718F, |
0.1045306597F, 0.1051292027F, 0.1057292990F, 0.1063309466F, |
0.1069341435F, 0.1075388878F, 0.1081451776F, 0.1087530108F, |
0.1093623856F, 0.1099732998F, 0.1105857516F, 0.1111997389F, |
0.1118152597F, 0.1124323121F, 0.1130508939F, 0.1136710032F, |
0.1142926379F, 0.1149157960F, 0.1155404755F, 0.1161666742F, |
0.1167943901F, 0.1174236211F, 0.1180543652F, 0.1186866202F, |
0.1193203841F, 0.1199556548F, 0.1205924300F, 0.1212307078F, |
0.1218704860F, 0.1225117624F, 0.1231545349F, 0.1237988013F, |
0.1244445596F, 0.1250918074F, 0.1257405427F, 0.1263907632F, |
0.1270424667F, 0.1276956512F, 0.1283503142F, 0.1290064537F, |
0.1296640674F, 0.1303231530F, 0.1309837084F, 0.1316457312F, |
0.1323092193F, 0.1329741703F, 0.1336405820F, 0.1343084520F, |
0.1349777782F, 0.1356485582F, 0.1363207897F, 0.1369944704F, |
0.1376695979F, 0.1383461700F, 0.1390241842F, 0.1397036384F, |
0.1403845300F, 0.1410668567F, 0.1417506162F, 0.1424358061F, |
0.1431224240F, 0.1438104674F, 0.1444999341F, 0.1451908216F, |
0.1458831274F, 0.1465768492F, 0.1472719844F, 0.1479685308F, |
0.1486664857F, 0.1493658468F, 0.1500666115F, 0.1507687775F, |
0.1514723422F, 0.1521773031F, 0.1528836577F, 0.1535914035F, |
0.1543005380F, 0.1550110587F, 0.1557229631F, 0.1564362485F, |
0.1571509124F, 0.1578669524F, 0.1585843657F, 0.1593031499F, |
0.1600233024F, 0.1607448205F, 0.1614677017F, 0.1621919433F, |
0.1629175428F, 0.1636444975F, 0.1643728047F, 0.1651024619F, |
0.1658334665F, 0.1665658156F, 0.1672995067F, 0.1680345371F, |
0.1687709041F, 0.1695086050F, 0.1702476372F, 0.1709879978F, |
0.1717296843F, 0.1724726938F, 0.1732170237F, 0.1739626711F, |
0.1747096335F, 0.1754579079F, 0.1762074916F, 0.1769583819F, |
0.1777105760F, 0.1784640710F, 0.1792188642F, 0.1799749529F, |
0.1807323340F, 0.1814910049F, 0.1822509628F, 0.1830122046F, |
0.1837747277F, 0.1845385292F, 0.1853036062F, 0.1860699558F, |
0.1868375751F, 0.1876064613F, 0.1883766114F, 0.1891480226F, |
0.1899206919F, 0.1906946164F, 0.1914697932F, 0.1922462194F, |
0.1930238919F, 0.1938028079F, 0.1945829643F, 0.1953643583F, |
0.1961469868F, 0.1969308468F, 0.1977159353F, 0.1985022494F, |
0.1992897859F, 0.2000785420F, 0.2008685145F, 0.2016597005F, |
0.2024520968F, 0.2032457005F, 0.2040405084F, 0.2048365175F, |
0.2056337247F, 0.2064321269F, 0.2072317211F, 0.2080325041F, |
0.2088344727F, 0.2096376240F, 0.2104419547F, 0.2112474618F, |
0.2120541420F, 0.2128619923F, 0.2136710094F, 0.2144811902F, |
0.2152925315F, 0.2161050301F, 0.2169186829F, 0.2177334866F, |
0.2185494381F, 0.2193665340F, 0.2201847712F, 0.2210041465F, |
0.2218246565F, 0.2226462981F, 0.2234690680F, 0.2242929629F, |
0.2251179796F, 0.2259441147F, 0.2267713650F, 0.2275997272F, |
0.2284291979F, 0.2292597739F, 0.2300914518F, 0.2309242283F, |
0.2317581001F, 0.2325930638F, 0.2334291160F, 0.2342662534F, |
0.2351044727F, 0.2359437703F, 0.2367841431F, 0.2376255875F, |
0.2384681001F, 0.2393116776F, 0.2401563165F, 0.2410020134F, |
0.2418487649F, 0.2426965675F, 0.2435454178F, 0.2443953122F, |
0.2452462474F, 0.2460982199F, 0.2469512262F, 0.2478052628F, |
0.2486603262F, 0.2495164129F, 0.2503735194F, 0.2512316421F, |
0.2520907776F, 0.2529509222F, 0.2538120726F, 0.2546742250F, |
0.2555373760F, 0.2564015219F, 0.2572666593F, 0.2581327845F, |
0.2589998939F, 0.2598679840F, 0.2607370510F, 0.2616070916F, |
0.2624781019F, 0.2633500783F, 0.2642230173F, 0.2650969152F, |
0.2659717684F, 0.2668475731F, 0.2677243257F, 0.2686020226F, |
0.2694806601F, 0.2703602344F, 0.2712407419F, 0.2721221789F, |
0.2730045417F, 0.2738878265F, 0.2747720297F, 0.2756571474F, |
0.2765431760F, 0.2774301117F, 0.2783179508F, 0.2792066895F, |
0.2800963240F, 0.2809868505F, 0.2818782654F, 0.2827705647F, |
0.2836637447F, 0.2845578016F, 0.2854527315F, 0.2863485307F, |
0.2872451953F, 0.2881427215F, 0.2890411055F, 0.2899403433F, |
0.2908404312F, 0.2917413654F, 0.2926431418F, 0.2935457567F, |
0.2944492061F, 0.2953534863F, 0.2962585932F, 0.2971645230F, |
0.2980712717F, 0.2989788356F, 0.2998872105F, 0.3007963927F, |
0.3017063781F, 0.3026171629F, 0.3035287430F, 0.3044411145F, |
0.3053542736F, 0.3062682161F, 0.3071829381F, 0.3080984356F, |
0.3090147047F, 0.3099317413F, 0.3108495414F, 0.3117681011F, |
0.3126874163F, 0.3136074830F, 0.3145282972F, 0.3154498548F, |
0.3163721517F, 0.3172951841F, 0.3182189477F, 0.3191434385F, |
0.3200686525F, 0.3209945856F, 0.3219212336F, 0.3228485927F, |
0.3237766585F, 0.3247054271F, 0.3256348943F, 0.3265650560F, |
0.3274959081F, 0.3284274465F, 0.3293596671F, 0.3302925657F, |
0.3312261382F, 0.3321603804F, 0.3330952882F, 0.3340308574F, |
0.3349670838F, 0.3359039634F, 0.3368414919F, 0.3377796651F, |
0.3387184789F, 0.3396579290F, 0.3405980113F, 0.3415387216F, |
0.3424800556F, 0.3434220091F, 0.3443645779F, 0.3453077578F, |
0.3462515446F, 0.3471959340F, 0.3481409217F, 0.3490865036F, |
0.3500326754F, 0.3509794328F, 0.3519267715F, 0.3528746873F, |
0.3538231759F, 0.3547722330F, 0.3557218544F, 0.3566720357F, |
0.3576227727F, 0.3585740610F, 0.3595258964F, 0.3604782745F, |
0.3614311910F, 0.3623846417F, 0.3633386221F, 0.3642931280F, |
0.3652481549F, 0.3662036987F, 0.3671597548F, 0.3681163191F, |
0.3690733870F, 0.3700309544F, 0.3709890167F, 0.3719475696F, |
0.3729066089F, 0.3738661299F, 0.3748261285F, 0.3757866002F, |
0.3767475406F, 0.3777089453F, 0.3786708100F, 0.3796331302F, |
0.3805959014F, 0.3815591194F, 0.3825227796F, 0.3834868777F, |
0.3844514093F, 0.3854163698F, 0.3863817549F, 0.3873475601F, |
0.3883137810F, 0.3892804131F, 0.3902474521F, 0.3912148933F, |
0.3921827325F, 0.3931509650F, 0.3941195865F, 0.3950885925F, |
0.3960579785F, 0.3970277400F, 0.3979978725F, 0.3989683716F, |
0.3999392328F, 0.4009104516F, 0.4018820234F, 0.4028539438F, |
0.4038262084F, 0.4047988125F, 0.4057717516F, 0.4067450214F, |
0.4077186172F, 0.4086925345F, 0.4096667688F, 0.4106413155F, |
0.4116161703F, 0.4125913284F, 0.4135667854F, 0.4145425368F, |
0.4155185780F, 0.4164949044F, 0.4174715116F, 0.4184483949F, |
0.4194255498F, 0.4204029718F, 0.4213806563F, 0.4223585987F, |
0.4233367946F, 0.4243152392F, 0.4252939281F, 0.4262728566F, |
0.4272520202F, 0.4282314144F, 0.4292110345F, 0.4301908760F, |
0.4311709343F, 0.4321512047F, 0.4331316828F, 0.4341123639F, |
0.4350932435F, 0.4360743168F, 0.4370555794F, 0.4380370267F, |
0.4390186540F, 0.4400004567F, 0.4409824303F, 0.4419645701F, |
0.4429468716F, 0.4439293300F, 0.4449119409F, 0.4458946996F, |
0.4468776014F, 0.4478606418F, 0.4488438162F, 0.4498271199F, |
0.4508105483F, 0.4517940967F, 0.4527777607F, 0.4537615355F, |
0.4547454165F, 0.4557293991F, 0.4567134786F, 0.4576976505F, |
0.4586819101F, 0.4596662527F, 0.4606506738F, 0.4616351687F, |
0.4626197328F, 0.4636043614F, 0.4645890499F, 0.4655737936F, |
0.4665585880F, 0.4675434284F, 0.4685283101F, 0.4695132286F, |
0.4704981791F, 0.4714831570F, 0.4724681577F, 0.4734531766F, |
0.4744382089F, 0.4754232501F, 0.4764082956F, 0.4773933406F, |
0.4783783806F, 0.4793634108F, 0.4803484267F, 0.4813334237F, |
0.4823183969F, 0.4833033419F, 0.4842882540F, 0.4852731285F, |
0.4862579608F, 0.4872427462F, 0.4882274802F, 0.4892121580F, |
0.4901967751F, 0.4911813267F, 0.4921658083F, 0.4931502151F, |
0.4941345427F, 0.4951187863F, 0.4961029412F, 0.4970870029F, |
0.4980709667F, 0.4990548280F, 0.5000385822F, 0.5010222245F, |
0.5020057505F, 0.5029891553F, 0.5039724345F, 0.5049555834F, |
0.5059385973F, 0.5069214716F, 0.5079042018F, 0.5088867831F, |
0.5098692110F, 0.5108514808F, 0.5118335879F, 0.5128155277F, |
0.5137972956F, 0.5147788869F, 0.5157602971F, 0.5167415215F, |
0.5177225555F, 0.5187033945F, 0.5196840339F, 0.5206644692F, |
0.5216446956F, 0.5226247086F, 0.5236045035F, 0.5245840759F, |
0.5255634211F, 0.5265425344F, 0.5275214114F, 0.5285000474F, |
0.5294784378F, 0.5304565781F, 0.5314344637F, 0.5324120899F, |
0.5333894522F, 0.5343665461F, 0.5353433670F, 0.5363199102F, |
0.5372961713F, 0.5382721457F, 0.5392478287F, 0.5402232159F, |
0.5411983027F, 0.5421730845F, 0.5431475569F, 0.5441217151F, |
0.5450955548F, 0.5460690714F, 0.5470422602F, 0.5480151169F, |
0.5489876368F, 0.5499598155F, 0.5509316484F, 0.5519031310F, |
0.5528742587F, 0.5538450271F, 0.5548154317F, 0.5557854680F, |
0.5567551314F, 0.5577244174F, 0.5586933216F, 0.5596618395F, |
0.5606299665F, 0.5615976983F, 0.5625650302F, 0.5635319580F, |
0.5644984770F, 0.5654645828F, 0.5664302709F, 0.5673955370F, |
0.5683603765F, 0.5693247850F, 0.5702887580F, 0.5712522912F, |
0.5722153800F, 0.5731780200F, 0.5741402069F, 0.5751019362F, |
0.5760632034F, 0.5770240042F, 0.5779843341F, 0.5789441889F, |
0.5799035639F, 0.5808624549F, 0.5818208575F, 0.5827787673F, |
0.5837361800F, 0.5846930910F, 0.5856494961F, 0.5866053910F, |
0.5875607712F, 0.5885156324F, 0.5894699703F, 0.5904237804F, |
0.5913770586F, 0.5923298004F, 0.5932820016F, 0.5942336578F, |
0.5951847646F, 0.5961353179F, 0.5970853132F, 0.5980347464F, |
0.5989836131F, 0.5999319090F, 0.6008796298F, 0.6018267713F, |
0.6027733292F, 0.6037192993F, 0.6046646773F, 0.6056094589F, |
0.6065536400F, 0.6074972162F, 0.6084401833F, 0.6093825372F, |
0.6103242736F, 0.6112653884F, 0.6122058772F, 0.6131457359F, |
0.6140849604F, 0.6150235464F, 0.6159614897F, 0.6168987862F, |
0.6178354318F, 0.6187714223F, 0.6197067535F, 0.6206414213F, |
0.6215754215F, 0.6225087501F, 0.6234414028F, 0.6243733757F, |
0.6253046646F, 0.6262352654F, 0.6271651739F, 0.6280943862F, |
0.6290228982F, 0.6299507057F, 0.6308778048F, 0.6318041913F, |
0.6327298612F, 0.6336548105F, 0.6345790352F, 0.6355025312F, |
0.6364252945F, 0.6373473211F, 0.6382686070F, 0.6391891483F, |
0.6401089409F, 0.6410279808F, 0.6419462642F, 0.6428637869F, |
0.6437805452F, 0.6446965350F, 0.6456117524F, 0.6465261935F, |
0.6474398544F, 0.6483527311F, 0.6492648197F, 0.6501761165F, |
0.6510866174F, 0.6519963186F, 0.6529052162F, 0.6538133064F, |
0.6547205854F, 0.6556270492F, 0.6565326941F, 0.6574375162F, |
0.6583415117F, 0.6592446769F, 0.6601470079F, 0.6610485009F, |
0.6619491521F, 0.6628489578F, 0.6637479143F, 0.6646460177F, |
0.6655432643F, 0.6664396505F, 0.6673351724F, 0.6682298264F, |
0.6691236087F, 0.6700165157F, 0.6709085436F, 0.6717996889F, |
0.6726899478F, 0.6735793167F, 0.6744677918F, 0.6753553697F, |
0.6762420466F, 0.6771278190F, 0.6780126832F, 0.6788966357F, |
0.6797796728F, 0.6806617909F, 0.6815429866F, 0.6824232562F, |
0.6833025961F, 0.6841810030F, 0.6850584731F, 0.6859350031F, |
0.6868105894F, 0.6876852284F, 0.6885589168F, 0.6894316510F, |
0.6903034275F, 0.6911742430F, 0.6920440939F, 0.6929129769F, |
0.6937808884F, 0.6946478251F, 0.6955137837F, 0.6963787606F, |
0.6972427525F, 0.6981057560F, 0.6989677678F, 0.6998287845F, |
0.7006888028F, 0.7015478194F, 0.7024058309F, 0.7032628340F, |
0.7041188254F, 0.7049738019F, 0.7058277601F, 0.7066806969F, |
0.7075326089F, 0.7083834929F, 0.7092333457F, 0.7100821640F, |
0.7109299447F, 0.7117766846F, 0.7126223804F, 0.7134670291F, |
0.7143106273F, 0.7151531721F, 0.7159946602F, 0.7168350885F, |
0.7176744539F, 0.7185127534F, 0.7193499837F, 0.7201861418F, |
0.7210212247F, 0.7218552293F, 0.7226881526F, 0.7235199914F, |
0.7243507428F, 0.7251804039F, 0.7260089715F, 0.7268364426F, |
0.7276628144F, 0.7284880839F, 0.7293122481F, 0.7301353040F, |
0.7309572487F, 0.7317780794F, 0.7325977930F, 0.7334163868F, |
0.7342338579F, 0.7350502033F, 0.7358654202F, 0.7366795059F, |
0.7374924573F, 0.7383042718F, 0.7391149465F, 0.7399244787F, |
0.7407328655F, 0.7415401041F, 0.7423461920F, 0.7431511261F, |
0.7439549040F, 0.7447575227F, 0.7455589797F, 0.7463592723F, |
0.7471583976F, 0.7479563532F, 0.7487531363F, 0.7495487443F, |
0.7503431745F, 0.7511364244F, 0.7519284913F, 0.7527193726F, |
0.7535090658F, 0.7542975683F, 0.7550848776F, 0.7558709910F, |
0.7566559062F, 0.7574396205F, 0.7582221314F, 0.7590034366F, |
0.7597835334F, 0.7605624194F, 0.7613400923F, 0.7621165495F, |
0.7628917886F, 0.7636658072F, 0.7644386030F, 0.7652101735F, |
0.7659805164F, 0.7667496292F, 0.7675175098F, 0.7682841556F, |
0.7690495645F, 0.7698137341F, 0.7705766622F, 0.7713383463F, |
0.7720987844F, 0.7728579741F, 0.7736159132F, 0.7743725994F, |
0.7751280306F, 0.7758822046F, 0.7766351192F, 0.7773867722F, |
0.7781371614F, 0.7788862848F, 0.7796341401F, 0.7803807253F, |
0.7811260383F, 0.7818700769F, 0.7826128392F, 0.7833543230F, |
0.7840945263F, 0.7848334471F, 0.7855710833F, 0.7863074330F, |
0.7870424941F, 0.7877762647F, 0.7885087428F, 0.7892399264F, |
0.7899698137F, 0.7906984026F, 0.7914256914F, 0.7921516780F, |
0.7928763607F, 0.7935997375F, 0.7943218065F, 0.7950425661F, |
0.7957620142F, 0.7964801492F, 0.7971969692F, 0.7979124724F, |
0.7986266570F, 0.7993395214F, 0.8000510638F, 0.8007612823F, |
0.8014701754F, 0.8021777413F, 0.8028839784F, 0.8035888849F, |
0.8042924592F, 0.8049946997F, 0.8056956048F, 0.8063951727F, |
0.8070934020F, 0.8077902910F, 0.8084858381F, 0.8091800419F, |
0.8098729007F, 0.8105644130F, 0.8112545774F, 0.8119433922F, |
0.8126308561F, 0.8133169676F, 0.8140017251F, 0.8146851272F, |
0.8153671726F, 0.8160478598F, 0.8167271874F, 0.8174051539F, |
0.8180817582F, 0.8187569986F, 0.8194308741F, 0.8201033831F, |
0.8207745244F, 0.8214442966F, 0.8221126986F, 0.8227797290F, |
0.8234453865F, 0.8241096700F, 0.8247725781F, 0.8254341097F, |
0.8260942636F, 0.8267530385F, 0.8274104334F, 0.8280664470F, |
0.8287210782F, 0.8293743259F, 0.8300261889F, 0.8306766662F, |
0.8313257566F, 0.8319734591F, 0.8326197727F, 0.8332646963F, |
0.8339082288F, 0.8345503692F, 0.8351911167F, 0.8358304700F, |
0.8364684284F, 0.8371049907F, 0.8377401562F, 0.8383739238F, |
0.8390062927F, 0.8396372618F, 0.8402668305F, 0.8408949977F, |
0.8415217626F, 0.8421471245F, 0.8427710823F, 0.8433936354F, |
0.8440147830F, 0.8446345242F, 0.8452528582F, 0.8458697844F, |
0.8464853020F, 0.8470994102F, 0.8477121084F, 0.8483233958F, |
0.8489332718F, 0.8495417356F, 0.8501487866F, 0.8507544243F, |
0.8513586479F, 0.8519614568F, 0.8525628505F, 0.8531628283F, |
0.8537613897F, 0.8543585341F, 0.8549542611F, 0.8555485699F, |
0.8561414603F, 0.8567329315F, 0.8573229832F, 0.8579116149F, |
0.8584988262F, 0.8590846165F, 0.8596689855F, 0.8602519327F, |
0.8608334577F, 0.8614135603F, 0.8619922399F, 0.8625694962F, |
0.8631453289F, 0.8637197377F, 0.8642927222F, 0.8648642821F, |
0.8654344172F, 0.8660031272F, 0.8665704118F, 0.8671362708F, |
0.8677007039F, 0.8682637109F, 0.8688252917F, 0.8693854460F, |
0.8699441737F, 0.8705014745F, 0.8710573485F, 0.8716117953F, |
0.8721648150F, 0.8727164073F, 0.8732665723F, 0.8738153098F, |
0.8743626197F, 0.8749085021F, 0.8754529569F, 0.8759959840F, |
0.8765375835F, 0.8770777553F, 0.8776164996F, 0.8781538162F, |
0.8786897054F, 0.8792241670F, 0.8797572013F, 0.8802888082F, |
0.8808189880F, 0.8813477407F, 0.8818750664F, 0.8824009653F, |
0.8829254375F, 0.8834484833F, 0.8839701028F, 0.8844902961F, |
0.8850090636F, 0.8855264054F, 0.8860423218F, 0.8865568131F, |
0.8870698794F, 0.8875815212F, 0.8880917386F, 0.8886005319F, |
0.8891079016F, 0.8896138479F, 0.8901183712F, 0.8906214719F, |
0.8911231503F, 0.8916234067F, 0.8921222417F, 0.8926196556F, |
0.8931156489F, 0.8936102219F, 0.8941033752F, 0.8945951092F, |
0.8950854244F, 0.8955743212F, 0.8960618003F, 0.8965478621F, |
0.8970325071F, 0.8975157359F, 0.8979975490F, 0.8984779471F, |
0.8989569307F, 0.8994345004F, 0.8999106568F, 0.9003854005F, |
0.9008587323F, 0.9013306526F, 0.9018011623F, 0.9022702619F, |
0.9027379521F, 0.9032042337F, 0.9036691074F, 0.9041325739F, |
0.9045946339F, 0.9050552882F, 0.9055145376F, 0.9059723828F, |
0.9064288246F, 0.9068838638F, 0.9073375013F, 0.9077897379F, |
0.9082405743F, 0.9086900115F, 0.9091380503F, 0.9095846917F, |
0.9100299364F, 0.9104737854F, 0.9109162397F, 0.9113573001F, |
0.9117969675F, 0.9122352430F, 0.9126721275F, 0.9131076219F, |
0.9135417273F, 0.9139744447F, 0.9144057750F, 0.9148357194F, |
0.9152642787F, 0.9156914542F, 0.9161172468F, 0.9165416576F, |
0.9169646877F, 0.9173863382F, 0.9178066102F, 0.9182255048F, |
0.9186430232F, 0.9190591665F, 0.9194739359F, 0.9198873324F, |
0.9202993574F, 0.9207100120F, 0.9211192973F, 0.9215272147F, |
0.9219337653F, 0.9223389504F, 0.9227427713F, 0.9231452290F, |
0.9235463251F, 0.9239460607F, 0.9243444371F, 0.9247414557F, |
0.9251371177F, 0.9255314245F, 0.9259243774F, 0.9263159778F, |
0.9267062270F, 0.9270951264F, 0.9274826774F, 0.9278688814F, |
0.9282537398F, 0.9286372540F, 0.9290194254F, 0.9294002555F, |
0.9297797458F, 0.9301578976F, 0.9305347125F, 0.9309101919F, |
0.9312843373F, 0.9316571503F, 0.9320286323F, 0.9323987849F, |
0.9327676097F, 0.9331351080F, 0.9335012816F, 0.9338661320F, |
0.9342296607F, 0.9345918694F, 0.9349527596F, 0.9353123330F, |
0.9356705911F, 0.9360275357F, 0.9363831683F, 0.9367374905F, |
0.9370905042F, 0.9374422108F, 0.9377926122F, 0.9381417099F, |
0.9384895057F, 0.9388360014F, 0.9391811985F, 0.9395250989F, |
0.9398677043F, 0.9402090165F, 0.9405490371F, 0.9408877680F, |
0.9412252110F, 0.9415613678F, 0.9418962402F, 0.9422298301F, |
0.9425621392F, 0.9428931695F, 0.9432229226F, 0.9435514005F, |
0.9438786050F, 0.9442045381F, 0.9445292014F, 0.9448525971F, |
0.9451747268F, 0.9454955926F, 0.9458151963F, 0.9461335399F, |
0.9464506253F, 0.9467664545F, 0.9470810293F, 0.9473943517F, |
0.9477064238F, 0.9480172474F, 0.9483268246F, 0.9486351573F, |
0.9489422475F, 0.9492480973F, 0.9495527087F, 0.9498560837F, |
0.9501582243F, 0.9504591325F, 0.9507588105F, 0.9510572603F, |
0.9513544839F, 0.9516504834F, 0.9519452609F, 0.9522388186F, |
0.9525311584F, 0.9528222826F, 0.9531121932F, 0.9534008923F, |
0.9536883821F, 0.9539746647F, 0.9542597424F, 0.9545436171F, |
0.9548262912F, 0.9551077667F, 0.9553880459F, 0.9556671309F, |
0.9559450239F, 0.9562217272F, 0.9564972429F, 0.9567715733F, |
0.9570447206F, 0.9573166871F, 0.9575874749F, 0.9578570863F, |
0.9581255236F, 0.9583927890F, 0.9586588849F, 0.9589238134F, |
0.9591875769F, 0.9594501777F, 0.9597116180F, 0.9599719003F, |
0.9602310267F, 0.9604889995F, 0.9607458213F, 0.9610014942F, |
0.9612560206F, 0.9615094028F, 0.9617616433F, 0.9620127443F, |
0.9622627083F, 0.9625115376F, 0.9627592345F, 0.9630058016F, |
0.9632512411F, 0.9634955555F, 0.9637387471F, 0.9639808185F, |
0.9642217720F, 0.9644616100F, 0.9647003349F, 0.9649379493F, |
0.9651744556F, 0.9654098561F, 0.9656441534F, 0.9658773499F, |
0.9661094480F, 0.9663404504F, 0.9665703593F, 0.9667991774F, |
0.9670269071F, 0.9672535509F, 0.9674791114F, 0.9677035909F, |
0.9679269921F, 0.9681493174F, 0.9683705694F, 0.9685907506F, |
0.9688098636F, 0.9690279108F, 0.9692448948F, 0.9694608182F, |
0.9696756836F, 0.9698894934F, 0.9701022503F, 0.9703139569F, |
0.9705246156F, 0.9707342291F, 0.9709428000F, 0.9711503309F, |
0.9713568243F, 0.9715622829F, 0.9717667093F, 0.9719701060F, |
0.9721724757F, 0.9723738210F, 0.9725741446F, 0.9727734490F, |
0.9729717369F, 0.9731690109F, 0.9733652737F, 0.9735605279F, |
0.9737547762F, 0.9739480212F, 0.9741402656F, 0.9743315120F, |
0.9745217631F, 0.9747110216F, 0.9748992901F, 0.9750865714F, |
0.9752728681F, 0.9754581829F, 0.9756425184F, 0.9758258775F, |
0.9760082627F, 0.9761896768F, 0.9763701224F, 0.9765496024F, |
0.9767281193F, 0.9769056760F, 0.9770822751F, 0.9772579193F, |
0.9774326114F, 0.9776063542F, 0.9777791502F, 0.9779510023F, |
0.9781219133F, 0.9782918858F, 0.9784609226F, 0.9786290264F, |
0.9787962000F, 0.9789624461F, 0.9791277676F, 0.9792921671F, |
0.9794556474F, 0.9796182113F, 0.9797798615F, 0.9799406009F, |
0.9801004321F, 0.9802593580F, 0.9804173813F, 0.9805745049F, |
0.9807307314F, 0.9808860637F, 0.9810405046F, 0.9811940568F, |
0.9813467232F, 0.9814985065F, 0.9816494095F, 0.9817994351F, |
0.9819485860F, 0.9820968650F, 0.9822442750F, 0.9823908186F, |
0.9825364988F, 0.9826813184F, 0.9828252801F, 0.9829683868F, |
0.9831106413F, 0.9832520463F, 0.9833926048F, 0.9835323195F, |
0.9836711932F, 0.9838092288F, 0.9839464291F, 0.9840827969F, |
0.9842183351F, 0.9843530464F, 0.9844869337F, 0.9846199998F, |
0.9847522475F, 0.9848836798F, 0.9850142993F, 0.9851441090F, |
0.9852731117F, 0.9854013101F, 0.9855287073F, 0.9856553058F, |
0.9857811087F, 0.9859061188F, 0.9860303388F, 0.9861537717F, |
0.9862764202F, 0.9863982872F, 0.9865193756F, 0.9866396882F, |
0.9867592277F, 0.9868779972F, 0.9869959993F, 0.9871132370F, |
0.9872297131F, 0.9873454304F, 0.9874603918F, 0.9875746001F, |
0.9876880581F, 0.9878007688F, 0.9879127348F, 0.9880239592F, |
0.9881344447F, 0.9882441941F, 0.9883532104F, 0.9884614962F, |
0.9885690546F, 0.9886758883F, 0.9887820001F, 0.9888873930F, |
0.9889920697F, 0.9890960331F, 0.9891992859F, 0.9893018312F, |
0.9894036716F, 0.9895048100F, 0.9896052493F, 0.9897049923F, |
0.9898040418F, 0.9899024006F, 0.9900000717F, 0.9900970577F, |
0.9901933616F, 0.9902889862F, 0.9903839343F, 0.9904782087F, |
0.9905718122F, 0.9906647477F, 0.9907570180F, 0.9908486259F, |
0.9909395742F, 0.9910298658F, 0.9911195034F, 0.9912084899F, |
0.9912968281F, 0.9913845208F, 0.9914715708F, 0.9915579810F, |
0.9916437540F, 0.9917288928F, 0.9918134001F, 0.9918972788F, |
0.9919805316F, 0.9920631613F, 0.9921451707F, 0.9922265626F, |
0.9923073399F, 0.9923875052F, 0.9924670615F, 0.9925460114F, |
0.9926243577F, 0.9927021033F, 0.9927792508F, 0.9928558032F, |
0.9929317631F, 0.9930071333F, 0.9930819167F, 0.9931561158F, |
0.9932297337F, 0.9933027728F, 0.9933752362F, 0.9934471264F, |
0.9935184462F, 0.9935891985F, 0.9936593859F, 0.9937290112F, |
0.9937980771F, 0.9938665864F, 0.9939345418F, 0.9940019460F, |
0.9940688018F, 0.9941351118F, 0.9942008789F, 0.9942661057F, |
0.9943307950F, 0.9943949494F, 0.9944585717F, 0.9945216645F, |
0.9945842307F, 0.9946462728F, 0.9947077936F, 0.9947687957F, |
0.9948292820F, 0.9948892550F, 0.9949487174F, 0.9950076719F, |
0.9950661212F, 0.9951240679F, 0.9951815148F, 0.9952384645F, |
0.9952949196F, 0.9953508828F, 0.9954063568F, 0.9954613442F, |
0.9955158476F, 0.9955698697F, 0.9956234132F, 0.9956764806F, |
0.9957290746F, 0.9957811978F, 0.9958328528F, 0.9958840423F, |
0.9959347688F, 0.9959850351F, 0.9960348435F, 0.9960841969F, |
0.9961330977F, 0.9961815486F, 0.9962295521F, 0.9962771108F, |
0.9963242274F, 0.9963709043F, 0.9964171441F, 0.9964629494F, |
0.9965083228F, 0.9965532668F, 0.9965977840F, 0.9966418768F, |
0.9966855479F, 0.9967287998F, 0.9967716350F, 0.9968140559F, |
0.9968560653F, 0.9968976655F, 0.9969388591F, 0.9969796485F, |
0.9970200363F, 0.9970600250F, 0.9970996170F, 0.9971388149F, |
0.9971776211F, 0.9972160380F, 0.9972540683F, 0.9972917142F, |
0.9973289783F, 0.9973658631F, 0.9974023709F, 0.9974385042F, |
0.9974742655F, 0.9975096571F, 0.9975446816F, 0.9975793413F, |
0.9976136386F, 0.9976475759F, 0.9976811557F, 0.9977143803F, |
0.9977472521F, 0.9977797736F, 0.9978119470F, 0.9978437748F, |
0.9978752593F, 0.9979064029F, 0.9979372079F, 0.9979676768F, |
0.9979978117F, 0.9980276151F, 0.9980570893F, 0.9980862367F, |
0.9981150595F, 0.9981435600F, 0.9981717406F, 0.9981996035F, |
0.9982271511F, 0.9982543856F, 0.9982813093F, 0.9983079246F, |
0.9983342336F, 0.9983602386F, 0.9983859418F, 0.9984113456F, |
0.9984364522F, 0.9984612638F, 0.9984857825F, 0.9985100108F, |
0.9985339507F, 0.9985576044F, 0.9985809743F, 0.9986040624F, |
0.9986268710F, 0.9986494022F, 0.9986716583F, 0.9986936413F, |
0.9987153535F, 0.9987367969F, 0.9987579738F, 0.9987788864F, |
0.9987995366F, 0.9988199267F, 0.9988400587F, 0.9988599348F, |
0.9988795572F, 0.9988989278F, 0.9989180487F, 0.9989369222F, |
0.9989555501F, 0.9989739347F, 0.9989920780F, 0.9990099820F, |
0.9990276487F, 0.9990450803F, 0.9990622787F, 0.9990792460F, |
0.9990959841F, 0.9991124952F, 0.9991287812F, 0.9991448440F, |
0.9991606858F, 0.9991763084F, 0.9991917139F, 0.9992069042F, |
0.9992218813F, 0.9992366471F, 0.9992512035F, 0.9992655525F, |
0.9992796961F, 0.9992936361F, 0.9993073744F, 0.9993209131F, |
0.9993342538F, 0.9993473987F, 0.9993603494F, 0.9993731080F, |
0.9993856762F, 0.9993980559F, 0.9994102490F, 0.9994222573F, |
0.9994340827F, 0.9994457269F, 0.9994571918F, 0.9994684793F, |
0.9994795910F, 0.9994905288F, 0.9995012945F, 0.9995118898F, |
0.9995223165F, 0.9995325765F, 0.9995426713F, 0.9995526029F, |
0.9995623728F, 0.9995719829F, 0.9995814349F, 0.9995907304F, |
0.9995998712F, 0.9996088590F, 0.9996176954F, 0.9996263821F, |
0.9996349208F, 0.9996433132F, 0.9996515609F, 0.9996596656F, |
0.9996676288F, 0.9996754522F, 0.9996831375F, 0.9996906862F, |
0.9996981000F, 0.9997053804F, 0.9997125290F, 0.9997195474F, |
0.9997264371F, 0.9997331998F, 0.9997398369F, 0.9997463500F, |
0.9997527406F, 0.9997590103F, 0.9997651606F, 0.9997711930F, |
0.9997771089F, 0.9997829098F, 0.9997885973F, 0.9997941728F, |
0.9997996378F, 0.9998049936F, 0.9998102419F, 0.9998153839F, |
0.9998204211F, 0.9998253550F, 0.9998301868F, 0.9998349182F, |
0.9998395503F, 0.9998440847F, 0.9998485226F, 0.9998528654F, |
0.9998571146F, 0.9998612713F, 0.9998653370F, 0.9998693130F, |
0.9998732007F, 0.9998770012F, 0.9998807159F, 0.9998843461F, |
0.9998878931F, 0.9998913581F, 0.9998947424F, 0.9998980473F, |
0.9999012740F, 0.9999044237F, 0.9999074976F, 0.9999104971F, |
0.9999134231F, 0.9999162771F, 0.9999190601F, 0.9999217733F, |
0.9999244179F, 0.9999269950F, 0.9999295058F, 0.9999319515F, |
0.9999343332F, 0.9999366519F, 0.9999389088F, 0.9999411050F, |
0.9999432416F, 0.9999453196F, 0.9999473402F, 0.9999493044F, |
0.9999512132F, 0.9999530677F, 0.9999548690F, 0.9999566180F, |
0.9999583157F, 0.9999599633F, 0.9999615616F, 0.9999631116F, |
0.9999646144F, 0.9999660709F, 0.9999674820F, 0.9999688487F, |
0.9999701719F, 0.9999714526F, 0.9999726917F, 0.9999738900F, |
0.9999750486F, 0.9999761682F, 0.9999772497F, 0.9999782941F, |
0.9999793021F, 0.9999802747F, 0.9999812126F, 0.9999821167F, |
0.9999829878F, 0.9999838268F, 0.9999846343F, 0.9999854113F, |
0.9999861584F, 0.9999868765F, 0.9999875664F, 0.9999882287F, |
0.9999888642F, 0.9999894736F, 0.9999900577F, 0.9999906172F, |
0.9999911528F, 0.9999916651F, 0.9999921548F, 0.9999926227F, |
0.9999930693F, 0.9999934954F, 0.9999939015F, 0.9999942883F, |
0.9999946564F, 0.9999950064F, 0.9999953390F, 0.9999956547F, |
0.9999959541F, 0.9999962377F, 0.9999965062F, 0.9999967601F, |
0.9999969998F, 0.9999972260F, 0.9999974392F, 0.9999976399F, |
0.9999978285F, 0.9999980056F, 0.9999981716F, 0.9999983271F, |
0.9999984724F, 0.9999986081F, 0.9999987345F, 0.9999988521F, |
0.9999989613F, 0.9999990625F, 0.9999991562F, 0.9999992426F, |
0.9999993223F, 0.9999993954F, 0.9999994625F, 0.9999995239F, |
0.9999995798F, 0.9999996307F, 0.9999996768F, 0.9999997184F, |
0.9999997559F, 0.9999997895F, 0.9999998195F, 0.9999998462F, |
0.9999998698F, 0.9999998906F, 0.9999999088F, 0.9999999246F, |
0.9999999383F, 0.9999999500F, 0.9999999600F, 0.9999999684F, |
0.9999999754F, 0.9999999811F, 0.9999999858F, 0.9999999896F, |
0.9999999925F, 0.9999999948F, 0.9999999965F, 0.9999999978F, |
0.9999999986F, 0.9999999992F, 0.9999999996F, 0.9999999998F, |
0.9999999999F, 1.0000000000F, 1.0000000000F, 1.0000000000F, |
}; |
static const float vwin8192[4096] = { |
0.0000000578F, 0.0000005198F, 0.0000014438F, 0.0000028299F, |
0.0000046780F, 0.0000069882F, 0.0000097604F, 0.0000129945F, |
0.0000166908F, 0.0000208490F, 0.0000254692F, 0.0000305515F, |
0.0000360958F, 0.0000421021F, 0.0000485704F, 0.0000555006F, |
0.0000628929F, 0.0000707472F, 0.0000790635F, 0.0000878417F, |
0.0000970820F, 0.0001067842F, 0.0001169483F, 0.0001275744F, |
0.0001386625F, 0.0001502126F, 0.0001622245F, 0.0001746984F, |
0.0001876343F, 0.0002010320F, 0.0002148917F, 0.0002292132F, |
0.0002439967F, 0.0002592421F, 0.0002749493F, 0.0002911184F, |
0.0003077493F, 0.0003248421F, 0.0003423967F, 0.0003604132F, |
0.0003788915F, 0.0003978316F, 0.0004172335F, 0.0004370971F, |
0.0004574226F, 0.0004782098F, 0.0004994587F, 0.0005211694F, |
0.0005433418F, 0.0005659759F, 0.0005890717F, 0.0006126292F, |
0.0006366484F, 0.0006611292F, 0.0006860716F, 0.0007114757F, |
0.0007373414F, 0.0007636687F, 0.0007904576F, 0.0008177080F, |
0.0008454200F, 0.0008735935F, 0.0009022285F, 0.0009313250F, |
0.0009608830F, 0.0009909025F, 0.0010213834F, 0.0010523257F, |
0.0010837295F, 0.0011155946F, 0.0011479211F, 0.0011807090F, |
0.0012139582F, 0.0012476687F, 0.0012818405F, 0.0013164736F, |
0.0013515679F, 0.0013871235F, 0.0014231402F, 0.0014596182F, |
0.0014965573F, 0.0015339576F, 0.0015718190F, 0.0016101415F, |
0.0016489251F, 0.0016881698F, 0.0017278754F, 0.0017680421F, |
0.0018086698F, 0.0018497584F, 0.0018913080F, 0.0019333185F, |
0.0019757898F, 0.0020187221F, 0.0020621151F, 0.0021059690F, |
0.0021502837F, 0.0021950591F, 0.0022402953F, 0.0022859921F, |
0.0023321497F, 0.0023787679F, 0.0024258467F, 0.0024733861F, |
0.0025213861F, 0.0025698466F, 0.0026187676F, 0.0026681491F, |
0.0027179911F, 0.0027682935F, 0.0028190562F, 0.0028702794F, |
0.0029219628F, 0.0029741066F, 0.0030267107F, 0.0030797749F, |
0.0031332994F, 0.0031872841F, 0.0032417289F, 0.0032966338F, |
0.0033519988F, 0.0034078238F, 0.0034641089F, 0.0035208539F, |
0.0035780589F, 0.0036357237F, 0.0036938485F, 0.0037524331F, |
0.0038114775F, 0.0038709817F, 0.0039309456F, 0.0039913692F, |
0.0040522524F, 0.0041135953F, 0.0041753978F, 0.0042376599F, |
0.0043003814F, 0.0043635624F, 0.0044272029F, 0.0044913028F, |
0.0045558620F, 0.0046208806F, 0.0046863585F, 0.0047522955F, |
0.0048186919F, 0.0048855473F, 0.0049528619F, 0.0050206356F, |
0.0050888684F, 0.0051575601F, 0.0052267108F, 0.0052963204F, |
0.0053663890F, 0.0054369163F, 0.0055079025F, 0.0055793474F, |
0.0056512510F, 0.0057236133F, 0.0057964342F, 0.0058697137F, |
0.0059434517F, 0.0060176482F, 0.0060923032F, 0.0061674166F, |
0.0062429883F, 0.0063190183F, 0.0063955066F, 0.0064724532F, |
0.0065498579F, 0.0066277207F, 0.0067060416F, 0.0067848205F, |
0.0068640575F, 0.0069437523F, 0.0070239051F, 0.0071045157F, |
0.0071855840F, 0.0072671102F, 0.0073490940F, 0.0074315355F, |
0.0075144345F, 0.0075977911F, 0.0076816052F, 0.0077658768F, |
0.0078506057F, 0.0079357920F, 0.0080214355F, 0.0081075363F, |
0.0081940943F, 0.0082811094F, 0.0083685816F, 0.0084565108F, |
0.0085448970F, 0.0086337401F, 0.0087230401F, 0.0088127969F, |
0.0089030104F, 0.0089936807F, 0.0090848076F, 0.0091763911F, |
0.0092684311F, 0.0093609276F, 0.0094538805F, 0.0095472898F, |
0.0096411554F, 0.0097354772F, 0.0098302552F, 0.0099254894F, |
0.0100211796F, 0.0101173259F, 0.0102139281F, 0.0103109863F, |
0.0104085002F, 0.0105064700F, 0.0106048955F, 0.0107037766F, |
0.0108031133F, 0.0109029056F, 0.0110031534F, 0.0111038565F, |
0.0112050151F, 0.0113066289F, 0.0114086980F, 0.0115112222F, |
0.0116142015F, 0.0117176359F, 0.0118215252F, 0.0119258695F, |
0.0120306686F, 0.0121359225F, 0.0122416312F, 0.0123477944F, |
0.0124544123F, 0.0125614847F, 0.0126690116F, 0.0127769928F, |
0.0128854284F, 0.0129943182F, 0.0131036623F, 0.0132134604F, |
0.0133237126F, 0.0134344188F, 0.0135455790F, 0.0136571929F, |
0.0137692607F, 0.0138817821F, 0.0139947572F, 0.0141081859F, |
0.0142220681F, 0.0143364037F, 0.0144511927F, 0.0145664350F, |
0.0146821304F, 0.0147982791F, 0.0149148808F, 0.0150319355F, |
0.0151494431F, 0.0152674036F, 0.0153858168F, 0.0155046828F, |
0.0156240014F, 0.0157437726F, 0.0158639962F, 0.0159846723F, |
0.0161058007F, 0.0162273814F, 0.0163494142F, 0.0164718991F, |
0.0165948361F, 0.0167182250F, 0.0168420658F, 0.0169663584F, |
0.0170911027F, 0.0172162987F, 0.0173419462F, 0.0174680452F, |
0.0175945956F, 0.0177215974F, 0.0178490504F, 0.0179769545F, |
0.0181053098F, 0.0182341160F, 0.0183633732F, 0.0184930812F, |
0.0186232399F, 0.0187538494F, 0.0188849094F, 0.0190164200F, |
0.0191483809F, 0.0192807923F, 0.0194136539F, 0.0195469656F, |
0.0196807275F, 0.0198149394F, 0.0199496012F, 0.0200847128F, |
0.0202202742F, 0.0203562853F, 0.0204927460F, 0.0206296561F, |
0.0207670157F, 0.0209048245F, 0.0210430826F, 0.0211817899F, |
0.0213209462F, 0.0214605515F, 0.0216006057F, 0.0217411086F, |
0.0218820603F, 0.0220234605F, 0.0221653093F, 0.0223076066F, |
0.0224503521F, 0.0225935459F, 0.0227371879F, 0.0228812779F, |
0.0230258160F, 0.0231708018F, 0.0233162355F, 0.0234621169F, |
0.0236084459F, 0.0237552224F, 0.0239024462F, 0.0240501175F, |
0.0241982359F, 0.0243468015F, 0.0244958141F, 0.0246452736F, |
0.0247951800F, 0.0249455331F, 0.0250963329F, 0.0252475792F, |
0.0253992720F, 0.0255514111F, 0.0257039965F, 0.0258570281F, |
0.0260105057F, 0.0261644293F, 0.0263187987F, 0.0264736139F, |
0.0266288747F, 0.0267845811F, 0.0269407330F, 0.0270973302F, |
0.0272543727F, 0.0274118604F, 0.0275697930F, 0.0277281707F, |
0.0278869932F, 0.0280462604F, 0.0282059723F, 0.0283661287F, |
0.0285267295F, 0.0286877747F, 0.0288492641F, 0.0290111976F, |
0.0291735751F, 0.0293363965F, 0.0294996617F, 0.0296633706F, |
0.0298275231F, 0.0299921190F, 0.0301571583F, 0.0303226409F, |
0.0304885667F, 0.0306549354F, 0.0308217472F, 0.0309890017F, |
0.0311566989F, 0.0313248388F, 0.0314934211F, 0.0316624459F, |
0.0318319128F, 0.0320018220F, 0.0321721732F, 0.0323429663F, |
0.0325142013F, 0.0326858779F, 0.0328579962F, 0.0330305559F, |
0.0332035570F, 0.0333769994F, 0.0335508829F, 0.0337252074F, |
0.0338999728F, 0.0340751790F, 0.0342508259F, 0.0344269134F, |
0.0346034412F, 0.0347804094F, 0.0349578178F, 0.0351356663F, |
0.0353139548F, 0.0354926831F, 0.0356718511F, 0.0358514588F, |
0.0360315059F, 0.0362119924F, 0.0363929182F, 0.0365742831F, |
0.0367560870F, 0.0369383297F, 0.0371210113F, 0.0373041315F, |
0.0374876902F, 0.0376716873F, 0.0378561226F, 0.0380409961F, |
0.0382263077F, 0.0384120571F, 0.0385982443F, 0.0387848691F, |
0.0389719315F, 0.0391594313F, 0.0393473683F, 0.0395357425F, |
0.0397245537F, 0.0399138017F, 0.0401034866F, 0.0402936080F, |
0.0404841660F, 0.0406751603F, 0.0408665909F, 0.0410584576F, |
0.0412507603F, 0.0414434988F, 0.0416366731F, 0.0418302829F, |
0.0420243282F, 0.0422188088F, 0.0424137246F, 0.0426090755F, |
0.0428048613F, 0.0430010819F, 0.0431977371F, 0.0433948269F, |
0.0435923511F, 0.0437903095F, 0.0439887020F, 0.0441875285F, |
0.0443867889F, 0.0445864830F, 0.0447866106F, 0.0449871717F, |
0.0451881661F, 0.0453895936F, 0.0455914542F, 0.0457937477F, |
0.0459964738F, 0.0461996326F, 0.0464032239F, 0.0466072475F, |
0.0468117032F, 0.0470165910F, 0.0472219107F, 0.0474276622F, |
0.0476338452F, 0.0478404597F, 0.0480475056F, 0.0482549827F, |
0.0484628907F, 0.0486712297F, 0.0488799994F, 0.0490891998F, |
0.0492988306F, 0.0495088917F, 0.0497193830F, 0.0499303043F, |
0.0501416554F, 0.0503534363F, 0.0505656468F, 0.0507782867F, |
0.0509913559F, 0.0512048542F, 0.0514187815F, 0.0516331376F, |
0.0518479225F, 0.0520631358F, 0.0522787775F, 0.0524948475F, |
0.0527113455F, 0.0529282715F, 0.0531456252F, 0.0533634066F, |
0.0535816154F, 0.0538002515F, 0.0540193148F, 0.0542388051F, |
0.0544587222F, 0.0546790660F, 0.0548998364F, 0.0551210331F, |
0.0553426561F, 0.0555647051F, 0.0557871801F, 0.0560100807F, |
0.0562334070F, 0.0564571587F, 0.0566813357F, 0.0569059378F, |
0.0571309649F, 0.0573564168F, 0.0575822933F, 0.0578085942F, |
0.0580353195F, 0.0582624689F, 0.0584900423F, 0.0587180396F, |
0.0589464605F, 0.0591753049F, 0.0594045726F, 0.0596342635F, |
0.0598643774F, 0.0600949141F, 0.0603258735F, 0.0605572555F, |
0.0607890597F, 0.0610212862F, 0.0612539346F, 0.0614870049F, |
0.0617204968F, 0.0619544103F, 0.0621887451F, 0.0624235010F, |
0.0626586780F, 0.0628942758F, 0.0631302942F, 0.0633667331F, |
0.0636035923F, 0.0638408717F, 0.0640785710F, 0.0643166901F, |
0.0645552288F, 0.0647941870F, 0.0650335645F, 0.0652733610F, |
0.0655135765F, 0.0657542108F, 0.0659952636F, 0.0662367348F, |
0.0664786242F, 0.0667209316F, 0.0669636570F, 0.0672068000F, |
0.0674503605F, 0.0676943384F, 0.0679387334F, 0.0681835454F, |
0.0684287742F, 0.0686744196F, 0.0689204814F, 0.0691669595F, |
0.0694138536F, 0.0696611637F, 0.0699088894F, 0.0701570307F, |
0.0704055873F, 0.0706545590F, 0.0709039458F, 0.0711537473F, |
0.0714039634F, 0.0716545939F, 0.0719056387F, 0.0721570975F, |
0.0724089702F, 0.0726612565F, 0.0729139563F, 0.0731670694F, |
0.0734205956F, 0.0736745347F, 0.0739288866F, 0.0741836510F, |
0.0744388277F, 0.0746944166F, 0.0749504175F, 0.0752068301F, |
0.0754636543F, 0.0757208899F, 0.0759785367F, 0.0762365946F, |
0.0764950632F, 0.0767539424F, 0.0770132320F, 0.0772729319F, |
0.0775330418F, 0.0777935616F, 0.0780544909F, 0.0783158298F, |
0.0785775778F, 0.0788397349F, 0.0791023009F, 0.0793652755F, |
0.0796286585F, 0.0798924498F, 0.0801566492F, 0.0804212564F, |
0.0806862712F, 0.0809516935F, 0.0812175231F, 0.0814837597F, |
0.0817504031F, 0.0820174532F, 0.0822849097F, 0.0825527724F, |
0.0828210412F, 0.0830897158F, 0.0833587960F, 0.0836282816F, |
0.0838981724F, 0.0841684682F, 0.0844391688F, 0.0847102740F, |
0.0849817835F, 0.0852536973F, 0.0855260150F, 0.0857987364F, |
0.0860718614F, 0.0863453897F, 0.0866193211F, 0.0868936554F, |
0.0871683924F, 0.0874435319F, 0.0877190737F, 0.0879950175F, |
0.0882713632F, 0.0885481105F, 0.0888252592F, 0.0891028091F, |
0.0893807600F, 0.0896591117F, 0.0899378639F, 0.0902170165F, |
0.0904965692F, 0.0907765218F, 0.0910568740F, 0.0913376258F, |
0.0916187767F, 0.0919003268F, 0.0921822756F, 0.0924646230F, |
0.0927473687F, 0.0930305126F, 0.0933140545F, 0.0935979940F, |
0.0938823310F, 0.0941670653F, 0.0944521966F, 0.0947377247F, |
0.0950236494F, 0.0953099704F, 0.0955966876F, 0.0958838007F, |
0.0961713094F, 0.0964592136F, 0.0967475131F, 0.0970362075F, |
0.0973252967F, 0.0976147805F, 0.0979046585F, 0.0981949307F, |
0.0984855967F, 0.0987766563F, 0.0990681093F, 0.0993599555F, |
0.0996521945F, 0.0999448263F, 0.1002378506F, 0.1005312671F, |
0.1008250755F, 0.1011192757F, 0.1014138675F, 0.1017088505F, |
0.1020042246F, 0.1022999895F, 0.1025961450F, 0.1028926909F, |
0.1031896268F, 0.1034869526F, 0.1037846680F, 0.1040827729F, |
0.1043812668F, 0.1046801497F, 0.1049794213F, 0.1052790813F, |
0.1055791294F, 0.1058795656F, 0.1061803894F, 0.1064816006F, |
0.1067831991F, 0.1070851846F, 0.1073875568F, 0.1076903155F, |
0.1079934604F, 0.1082969913F, 0.1086009079F, 0.1089052101F, |
0.1092098975F, 0.1095149699F, 0.1098204270F, 0.1101262687F, |
0.1104324946F, 0.1107391045F, 0.1110460982F, 0.1113534754F, |
0.1116612359F, 0.1119693793F, 0.1122779055F, 0.1125868142F, |
0.1128961052F, 0.1132057781F, 0.1135158328F, 0.1138262690F, |
0.1141370863F, 0.1144482847F, 0.1147598638F, 0.1150718233F, |
0.1153841631F, 0.1156968828F, 0.1160099822F, 0.1163234610F, |
0.1166373190F, 0.1169515559F, 0.1172661714F, 0.1175811654F, |
0.1178965374F, 0.1182122874F, 0.1185284149F, 0.1188449198F, |
0.1191618018F, 0.1194790606F, 0.1197966960F, 0.1201147076F, |
0.1204330953F, 0.1207518587F, 0.1210709976F, 0.1213905118F, |
0.1217104009F, 0.1220306647F, 0.1223513029F, 0.1226723153F, |
0.1229937016F, 0.1233154615F, 0.1236375948F, 0.1239601011F, |
0.1242829803F, 0.1246062319F, 0.1249298559F, 0.1252538518F, |
0.1255782195F, 0.1259029586F, 0.1262280689F, 0.1265535501F, |
0.1268794019F, 0.1272056241F, 0.1275322163F, 0.1278591784F, |
0.1281865099F, 0.1285142108F, 0.1288422805F, 0.1291707190F, |
0.1294995259F, 0.1298287009F, 0.1301582437F, 0.1304881542F, |
0.1308184319F, 0.1311490766F, 0.1314800881F, 0.1318114660F, |
0.1321432100F, 0.1324753200F, 0.1328077955F, 0.1331406364F, |
0.1334738422F, 0.1338074129F, 0.1341413479F, 0.1344756472F, |
0.1348103103F, 0.1351453370F, 0.1354807270F, 0.1358164801F, |
0.1361525959F, 0.1364890741F, 0.1368259145F, 0.1371631167F, |
0.1375006805F, 0.1378386056F, 0.1381768917F, 0.1385155384F, |
0.1388545456F, 0.1391939129F, 0.1395336400F, 0.1398737266F, |
0.1402141724F, 0.1405549772F, 0.1408961406F, 0.1412376623F, |
0.1415795421F, 0.1419217797F, 0.1422643746F, 0.1426073268F, |
0.1429506358F, 0.1432943013F, 0.1436383231F, 0.1439827008F, |
0.1443274342F, 0.1446725229F, 0.1450179667F, 0.1453637652F, |
0.1457099181F, 0.1460564252F, 0.1464032861F, 0.1467505006F, |
0.1470980682F, 0.1474459888F, 0.1477942620F, 0.1481428875F, |
0.1484918651F, 0.1488411942F, 0.1491908748F, 0.1495409065F, |
0.1498912889F, 0.1502420218F, 0.1505931048F, 0.1509445376F, |
0.1512963200F, 0.1516484516F, 0.1520009321F, 0.1523537612F, |
0.1527069385F, 0.1530604638F, 0.1534143368F, 0.1537685571F, |
0.1541231244F, 0.1544780384F, 0.1548332987F, 0.1551889052F, |
0.1555448574F, 0.1559011550F, 0.1562577978F, 0.1566147853F, |
0.1569721173F, 0.1573297935F, 0.1576878135F, 0.1580461771F, |
0.1584048838F, 0.1587639334F, 0.1591233255F, 0.1594830599F, |
0.1598431361F, 0.1602035540F, 0.1605643131F, 0.1609254131F, |
0.1612868537F, 0.1616486346F, 0.1620107555F, 0.1623732160F, |
0.1627360158F, 0.1630991545F, 0.1634626319F, 0.1638264476F, |
0.1641906013F, 0.1645550926F, 0.1649199212F, 0.1652850869F, |
0.1656505892F, 0.1660164278F, 0.1663826024F, 0.1667491127F, |
0.1671159583F, 0.1674831388F, 0.1678506541F, 0.1682185036F, |
0.1685866872F, 0.1689552044F, 0.1693240549F, 0.1696932384F, |
0.1700627545F, 0.1704326029F, 0.1708027833F, 0.1711732952F, |
0.1715441385F, 0.1719153127F, 0.1722868175F, 0.1726586526F, |
0.1730308176F, 0.1734033121F, 0.1737761359F, 0.1741492886F, |
0.1745227698F, 0.1748965792F, 0.1752707164F, 0.1756451812F, |
0.1760199731F, 0.1763950918F, 0.1767705370F, 0.1771463083F, |
0.1775224054F, 0.1778988279F, 0.1782755754F, 0.1786526477F, |
0.1790300444F, 0.1794077651F, 0.1797858094F, 0.1801641771F, |
0.1805428677F, 0.1809218810F, 0.1813012165F, 0.1816808739F, |
0.1820608528F, 0.1824411530F, 0.1828217739F, 0.1832027154F, |
0.1835839770F, 0.1839655584F, 0.1843474592F, 0.1847296790F, |
0.1851122175F, 0.1854950744F, 0.1858782492F, 0.1862617417F, |
0.1866455514F, 0.1870296780F, 0.1874141211F, 0.1877988804F, |
0.1881839555F, 0.1885693461F, 0.1889550517F, 0.1893410721F, |
0.1897274068F, 0.1901140555F, 0.1905010178F, 0.1908882933F, |
0.1912758818F, 0.1916637828F, 0.1920519959F, 0.1924405208F, |
0.1928293571F, 0.1932185044F, 0.1936079625F, 0.1939977308F, |
0.1943878091F, 0.1947781969F, 0.1951688939F, 0.1955598998F, |
0.1959512141F, 0.1963428364F, 0.1967347665F, 0.1971270038F, |
0.1975195482F, 0.1979123990F, 0.1983055561F, 0.1986990190F, |
0.1990927873F, 0.1994868607F, 0.1998812388F, 0.2002759212F, |
0.2006709075F, 0.2010661974F, 0.2014617904F, 0.2018576862F, |
0.2022538844F, 0.2026503847F, 0.2030471865F, 0.2034442897F, |
0.2038416937F, 0.2042393982F, 0.2046374028F, 0.2050357071F, |
0.2054343107F, 0.2058332133F, 0.2062324145F, 0.2066319138F, |
0.2070317110F, 0.2074318055F, 0.2078321970F, 0.2082328852F, |
0.2086338696F, 0.2090351498F, 0.2094367255F, 0.2098385962F, |
0.2102407617F, 0.2106432213F, 0.2110459749F, 0.2114490220F, |
0.2118523621F, 0.2122559950F, 0.2126599202F, 0.2130641373F, |
0.2134686459F, 0.2138734456F, 0.2142785361F, 0.2146839168F, |
0.2150895875F, 0.2154955478F, 0.2159017972F, 0.2163083353F, |
0.2167151617F, 0.2171222761F, 0.2175296780F, 0.2179373670F, |
0.2183453428F, 0.2187536049F, 0.2191621529F, 0.2195709864F, |
0.2199801051F, 0.2203895085F, 0.2207991961F, 0.2212091677F, |
0.2216194228F, 0.2220299610F, 0.2224407818F, 0.2228518850F, |
0.2232632699F, 0.2236749364F, 0.2240868839F, 0.2244991121F, |
0.2249116204F, 0.2253244086F, 0.2257374763F, 0.2261508229F, |
0.2265644481F, 0.2269783514F, 0.2273925326F, 0.2278069911F, |
0.2282217265F, 0.2286367384F, 0.2290520265F, 0.2294675902F, |
0.2298834292F, 0.2302995431F, 0.2307159314F, 0.2311325937F, |
0.2315495297F, 0.2319667388F, 0.2323842207F, 0.2328019749F, |
0.2332200011F, 0.2336382988F, 0.2340568675F, 0.2344757070F, |
0.2348948166F, 0.2353141961F, 0.2357338450F, 0.2361537629F, |
0.2365739493F, 0.2369944038F, 0.2374151261F, 0.2378361156F, |
0.2382573720F, 0.2386788948F, 0.2391006836F, 0.2395227380F, |
0.2399450575F, 0.2403676417F, 0.2407904902F, 0.2412136026F, |
0.2416369783F, 0.2420606171F, 0.2424845185F, 0.2429086820F, |
0.2433331072F, 0.2437577936F, 0.2441827409F, 0.2446079486F, |
0.2450334163F, 0.2454591435F, 0.2458851298F, 0.2463113747F, |
0.2467378779F, 0.2471646389F, 0.2475916573F, 0.2480189325F, |
0.2484464643F, 0.2488742521F, 0.2493022955F, 0.2497305940F, |
0.2501591473F, 0.2505879549F, 0.2510170163F, 0.2514463311F, |
0.2518758989F, 0.2523057193F, 0.2527357916F, 0.2531661157F, |
0.2535966909F, 0.2540275169F, 0.2544585931F, 0.2548899193F, |
0.2553214948F, 0.2557533193F, 0.2561853924F, 0.2566177135F, |
0.2570502822F, 0.2574830981F, 0.2579161608F, 0.2583494697F, |
0.2587830245F, 0.2592168246F, 0.2596508697F, 0.2600851593F, |
0.2605196929F, 0.2609544701F, 0.2613894904F, 0.2618247534F, |
0.2622602586F, 0.2626960055F, 0.2631319938F, 0.2635682230F, |
0.2640046925F, 0.2644414021F, 0.2648783511F, 0.2653155391F, |
0.2657529657F, 0.2661906305F, 0.2666285329F, 0.2670666725F, |
0.2675050489F, 0.2679436616F, 0.2683825101F, 0.2688215940F, |
0.2692609127F, 0.2697004660F, 0.2701402532F, 0.2705802739F, |
0.2710205278F, 0.2714610142F, 0.2719017327F, 0.2723426830F, |
0.2727838644F, 0.2732252766F, 0.2736669191F, 0.2741087914F, |
0.2745508930F, 0.2749932235F, 0.2754357824F, 0.2758785693F, |
0.2763215837F, 0.2767648251F, 0.2772082930F, 0.2776519870F, |
0.2780959066F, 0.2785400513F, 0.2789844207F, 0.2794290143F, |
0.2798738316F, 0.2803188722F, 0.2807641355F, 0.2812096211F, |
0.2816553286F, 0.2821012574F, 0.2825474071F, 0.2829937773F, |
0.2834403673F, 0.2838871768F, 0.2843342053F, 0.2847814523F, |
0.2852289174F, 0.2856765999F, 0.2861244996F, 0.2865726159F, |
0.2870209482F, 0.2874694962F, 0.2879182594F, 0.2883672372F, |
0.2888164293F, 0.2892658350F, 0.2897154540F, 0.2901652858F, |
0.2906153298F, 0.2910655856F, 0.2915160527F, 0.2919667306F, |
0.2924176189F, 0.2928687171F, 0.2933200246F, 0.2937715409F, |
0.2942232657F, 0.2946751984F, 0.2951273386F, 0.2955796856F, |
0.2960322391F, 0.2964849986F, 0.2969379636F, 0.2973911335F, |
0.2978445080F, 0.2982980864F, 0.2987518684F, 0.2992058534F, |
0.2996600409F, 0.3001144305F, 0.3005690217F, 0.3010238139F, |
0.3014788067F, 0.3019339995F, 0.3023893920F, 0.3028449835F, |
0.3033007736F, 0.3037567618F, 0.3042129477F, 0.3046693306F, |
0.3051259102F, 0.3055826859F, 0.3060396572F, 0.3064968236F, |
0.3069541847F, 0.3074117399F, 0.3078694887F, 0.3083274307F, |
0.3087855653F, 0.3092438920F, 0.3097024104F, 0.3101611199F, |
0.3106200200F, 0.3110791103F, 0.3115383902F, 0.3119978592F, |
0.3124575169F, 0.3129173627F, 0.3133773961F, 0.3138376166F, |
0.3142980238F, 0.3147586170F, 0.3152193959F, 0.3156803598F, |
0.3161415084F, 0.3166028410F, 0.3170643573F, 0.3175260566F, |
0.3179879384F, 0.3184500023F, 0.3189122478F, 0.3193746743F, |
0.3198372814F, 0.3203000685F, 0.3207630351F, 0.3212261807F, |
0.3216895048F, 0.3221530069F, 0.3226166865F, 0.3230805430F, |
0.3235445760F, 0.3240087849F, 0.3244731693F, 0.3249377285F, |
0.3254024622F, 0.3258673698F, 0.3263324507F, 0.3267977045F, |
0.3272631306F, 0.3277287286F, 0.3281944978F, 0.3286604379F, |
0.3291265482F, 0.3295928284F, 0.3300592777F, 0.3305258958F, |
0.3309926821F, 0.3314596361F, 0.3319267573F, 0.3323940451F, |
0.3328614990F, 0.3333291186F, 0.3337969033F, 0.3342648525F, |
0.3347329658F, 0.3352012427F, 0.3356696825F, 0.3361382849F, |
0.3366070492F, 0.3370759749F, 0.3375450616F, 0.3380143087F, |
0.3384837156F, 0.3389532819F, 0.3394230071F, 0.3398928905F, |
0.3403629317F, 0.3408331302F, 0.3413034854F, 0.3417739967F, |
0.3422446638F, 0.3427154860F, 0.3431864628F, 0.3436575938F, |
0.3441288782F, 0.3446003158F, 0.3450719058F, 0.3455436478F, |
0.3460155412F, 0.3464875856F, 0.3469597804F, 0.3474321250F, |
0.3479046189F, 0.3483772617F, 0.3488500527F, 0.3493229914F, |
0.3497960774F, 0.3502693100F, 0.3507426887F, 0.3512162131F, |
0.3516898825F, 0.3521636965F, 0.3526376545F, 0.3531117559F, |
0.3535860003F, 0.3540603870F, 0.3545349157F, 0.3550095856F, |
0.3554843964F, 0.3559593474F, 0.3564344381F, 0.3569096680F, |
0.3573850366F, 0.3578605432F, 0.3583361875F, 0.3588119687F, |
0.3592878865F, 0.3597639402F, 0.3602401293F, 0.3607164533F, |
0.3611929117F, 0.3616695038F, 0.3621462292F, 0.3626230873F, |
0.3631000776F, 0.3635771995F, 0.3640544525F, 0.3645318360F, |
0.3650093496F, 0.3654869926F, 0.3659647645F, 0.3664426648F, |
0.3669206930F, 0.3673988484F, 0.3678771306F, 0.3683555390F, |
0.3688340731F, 0.3693127322F, 0.3697915160F, 0.3702704237F, |
0.3707494549F, 0.3712286091F, 0.3717078857F, 0.3721872840F, |
0.3726668037F, 0.3731464441F, 0.3736262047F, 0.3741060850F, |
0.3745860843F, 0.3750662023F, 0.3755464382F, 0.3760267915F, |
0.3765072618F, 0.3769878484F, 0.3774685509F, 0.3779493686F, |
0.3784303010F, 0.3789113475F, 0.3793925076F, 0.3798737809F, |
0.3803551666F, 0.3808366642F, 0.3813182733F, 0.3817999932F, |
0.3822818234F, 0.3827637633F, 0.3832458124F, 0.3837279702F, |
0.3842102360F, 0.3846926093F, 0.3851750897F, 0.3856576764F, |
0.3861403690F, 0.3866231670F, 0.3871060696F, 0.3875890765F, |
0.3880721870F, 0.3885554007F, 0.3890387168F, 0.3895221349F, |
0.3900056544F, 0.3904892748F, 0.3909729955F, 0.3914568160F, |
0.3919407356F, 0.3924247539F, 0.3929088702F, 0.3933930841F, |
0.3938773949F, 0.3943618021F, 0.3948463052F, 0.3953309035F, |
0.3958155966F, 0.3963003838F, 0.3967852646F, 0.3972702385F, |
0.3977553048F, 0.3982404631F, 0.3987257127F, 0.3992110531F, |
0.3996964838F, 0.4001820041F, 0.4006676136F, 0.4011533116F, |
0.4016390976F, 0.4021249710F, 0.4026109313F, 0.4030969779F, |
0.4035831102F, 0.4040693277F, 0.4045556299F, 0.4050420160F, |
0.4055284857F, 0.4060150383F, 0.4065016732F, 0.4069883899F, |
0.4074751879F, 0.4079620665F, 0.4084490252F, 0.4089360635F, |
0.4094231807F, 0.4099103763F, 0.4103976498F, 0.4108850005F, |
0.4113724280F, 0.4118599315F, 0.4123475107F, 0.4128351648F, |
0.4133228934F, 0.4138106959F, 0.4142985716F, 0.4147865201F, |
0.4152745408F, 0.4157626330F, 0.4162507963F, 0.4167390301F, |
0.4172273337F, 0.4177157067F, 0.4182041484F, 0.4186926583F, |
0.4191812359F, 0.4196698805F, 0.4201585915F, 0.4206473685F, |
0.4211362108F, 0.4216251179F, 0.4221140892F, 0.4226031241F, |
0.4230922221F, 0.4235813826F, 0.4240706050F, 0.4245598887F, |
0.4250492332F, 0.4255386379F, 0.4260281022F, 0.4265176256F, |
0.4270072075F, 0.4274968473F, 0.4279865445F, 0.4284762984F, |
0.4289661086F, 0.4294559743F, 0.4299458951F, 0.4304358704F, |
0.4309258996F, 0.4314159822F, 0.4319061175F, 0.4323963050F, |
0.4328865441F, 0.4333768342F, 0.4338671749F, 0.4343575654F, |
0.4348480052F, 0.4353384938F, 0.4358290306F, 0.4363196149F, |
0.4368102463F, 0.4373009241F, 0.4377916478F, 0.4382824168F, |
0.4387732305F, 0.4392640884F, 0.4397549899F, 0.4402459343F, |
0.4407369212F, 0.4412279499F, 0.4417190198F, 0.4422101305F, |
0.4427012813F, 0.4431924717F, 0.4436837010F, 0.4441749686F, |
0.4446662742F, 0.4451576169F, 0.4456489963F, 0.4461404118F, |
0.4466318628F, 0.4471233487F, 0.4476148690F, 0.4481064230F, |
0.4485980103F, 0.4490896302F, 0.4495812821F, 0.4500729654F, |
0.4505646797F, 0.4510564243F, 0.4515481986F, 0.4520400021F, |
0.4525318341F, 0.4530236942F, 0.4535155816F, 0.4540074959F, |
0.4544994365F, 0.4549914028F, 0.4554833941F, 0.4559754100F, |
0.4564674499F, 0.4569595131F, 0.4574515991F, 0.4579437074F, |
0.4584358372F, 0.4589279881F, 0.4594201595F, 0.4599123508F, |
0.4604045615F, 0.4608967908F, 0.4613890383F, 0.4618813034F, |
0.4623735855F, 0.4628658841F, 0.4633581984F, 0.4638505281F, |
0.4643428724F, 0.4648352308F, 0.4653276028F, 0.4658199877F, |
0.4663123849F, 0.4668047940F, 0.4672972143F, 0.4677896451F, |
0.4682820861F, 0.4687745365F, 0.4692669958F, 0.4697594634F, |
0.4702519387F, 0.4707444211F, 0.4712369102F, 0.4717294052F, |
0.4722219056F, 0.4727144109F, 0.4732069204F, 0.4736994336F, |
0.4741919498F, 0.4746844686F, 0.4751769893F, 0.4756695113F, |
0.4761620341F, 0.4766545571F, 0.4771470797F, 0.4776396013F, |
0.4781321213F, 0.4786246392F, 0.4791171544F, 0.4796096663F, |
0.4801021744F, 0.4805946779F, 0.4810871765F, 0.4815796694F, |
0.4820721561F, 0.4825646360F, 0.4830571086F, 0.4835495732F, |
0.4840420293F, 0.4845344763F, 0.4850269136F, 0.4855193407F, |
0.4860117569F, 0.4865041617F, 0.4869965545F, 0.4874889347F, |
0.4879813018F, 0.4884736551F, 0.4889659941F, 0.4894583182F, |
0.4899506268F, 0.4904429193F, 0.4909351952F, 0.4914274538F, |
0.4919196947F, 0.4924119172F, 0.4929041207F, 0.4933963046F, |
0.4938884685F, 0.4943806116F, 0.4948727335F, 0.4953648335F, |
0.4958569110F, 0.4963489656F, 0.4968409965F, 0.4973330032F, |
0.4978249852F, 0.4983169419F, 0.4988088726F, 0.4993007768F, |
0.4997926539F, 0.5002845034F, 0.5007763247F, 0.5012681171F, |
0.5017598801F, 0.5022516132F, 0.5027433157F, 0.5032349871F, |
0.5037266268F, 0.5042182341F, 0.5047098086F, 0.5052013497F, |
0.5056928567F, 0.5061843292F, 0.5066757664F, 0.5071671679F, |
0.5076585330F, 0.5081498613F, 0.5086411520F, 0.5091324047F, |
0.5096236187F, 0.5101147934F, 0.5106059284F, 0.5110970230F, |
0.5115880766F, 0.5120790887F, 0.5125700587F, 0.5130609860F, |
0.5135518700F, 0.5140427102F, 0.5145335059F, 0.5150242566F, |
0.5155149618F, 0.5160056208F, 0.5164962331F, 0.5169867980F, |
0.5174773151F, 0.5179677837F, 0.5184582033F, 0.5189485733F, |
0.5194388931F, 0.5199291621F, 0.5204193798F, 0.5209095455F, |
0.5213996588F, 0.5218897190F, 0.5223797256F, 0.5228696779F, |
0.5233595755F, 0.5238494177F, 0.5243392039F, 0.5248289337F, |
0.5253186063F, 0.5258082213F, 0.5262977781F, 0.5267872760F, |
0.5272767146F, 0.5277660932F, 0.5282554112F, 0.5287446682F, |
0.5292338635F, 0.5297229965F, 0.5302120667F, 0.5307010736F, |
0.5311900164F, 0.5316788947F, 0.5321677079F, 0.5326564554F, |
0.5331451366F, 0.5336337511F, 0.5341222981F, 0.5346107771F, |
0.5350991876F, 0.5355875290F, 0.5360758007F, 0.5365640021F, |
0.5370521327F, 0.5375401920F, 0.5380281792F, 0.5385160939F, |
0.5390039355F, 0.5394917034F, 0.5399793971F, 0.5404670159F, |
0.5409545594F, 0.5414420269F, 0.5419294179F, 0.5424167318F, |
0.5429039680F, 0.5433911261F, 0.5438782053F, 0.5443652051F, |
0.5448521250F, 0.5453389644F, 0.5458257228F, 0.5463123995F, |
0.5467989940F, 0.5472855057F, 0.5477719341F, 0.5482582786F, |
0.5487445387F, 0.5492307137F, 0.5497168031F, 0.5502028063F, |
0.5506887228F, 0.5511745520F, 0.5516602934F, 0.5521459463F, |
0.5526315103F, 0.5531169847F, 0.5536023690F, 0.5540876626F, |
0.5545728649F, 0.5550579755F, 0.5555429937F, 0.5560279189F, |
0.5565127507F, 0.5569974884F, 0.5574821315F, 0.5579666794F, |
0.5584511316F, 0.5589354875F, 0.5594197465F, 0.5599039080F, |
0.5603879716F, 0.5608719367F, 0.5613558026F, 0.5618395689F, |
0.5623232350F, 0.5628068002F, 0.5632902642F, 0.5637736262F, |
0.5642568858F, 0.5647400423F, 0.5652230953F, 0.5657060442F, |
0.5661888883F, 0.5666716272F, 0.5671542603F, 0.5676367870F, |
0.5681192069F, 0.5686015192F, 0.5690837235F, 0.5695658192F, |
0.5700478058F, 0.5705296827F, 0.5710114494F, 0.5714931052F, |
0.5719746497F, 0.5724560822F, 0.5729374023F, 0.5734186094F, |
0.5738997029F, 0.5743806823F, 0.5748615470F, 0.5753422965F, |
0.5758229301F, 0.5763034475F, 0.5767838480F, 0.5772641310F, |
0.5777442960F, 0.5782243426F, 0.5787042700F, 0.5791840778F, |
0.5796637654F, 0.5801433322F, 0.5806227778F, 0.5811021016F, |
0.5815813029F, 0.5820603814F, 0.5825393363F, 0.5830181673F, |
0.5834968737F, 0.5839754549F, 0.5844539105F, 0.5849322399F, |
0.5854104425F, 0.5858885179F, 0.5863664653F, 0.5868442844F, |
0.5873219746F, 0.5877995353F, 0.5882769660F, 0.5887542661F, |
0.5892314351F, 0.5897084724F, 0.5901853776F, 0.5906621500F, |
0.5911387892F, 0.5916152945F, 0.5920916655F, 0.5925679016F, |
0.5930440022F, 0.5935199669F, 0.5939957950F, 0.5944714861F, |
0.5949470396F, 0.5954224550F, 0.5958977317F, 0.5963728692F, |
0.5968478669F, 0.5973227244F, 0.5977974411F, 0.5982720163F, |
0.5987464497F, 0.5992207407F, 0.5996948887F, 0.6001688932F, |
0.6006427537F, 0.6011164696F, 0.6015900405F, 0.6020634657F, |
0.6025367447F, 0.6030098770F, 0.6034828621F, 0.6039556995F, |
0.6044283885F, 0.6049009288F, 0.6053733196F, 0.6058455606F, |
0.6063176512F, 0.6067895909F, 0.6072613790F, 0.6077330152F, |
0.6082044989F, 0.6086758295F, 0.6091470065F, 0.6096180294F, |
0.6100888977F, 0.6105596108F, 0.6110301682F, 0.6115005694F, |
0.6119708139F, 0.6124409011F, 0.6129108305F, 0.6133806017F, |
0.6138502139F, 0.6143196669F, 0.6147889599F, 0.6152580926F, |
0.6157270643F, 0.6161958746F, 0.6166645230F, 0.6171330088F, |
0.6176013317F, 0.6180694910F, 0.6185374863F, 0.6190053171F, |
0.6194729827F, 0.6199404828F, 0.6204078167F, 0.6208749841F, |
0.6213419842F, 0.6218088168F, 0.6222754811F, 0.6227419768F, |
0.6232083032F, 0.6236744600F, 0.6241404465F, 0.6246062622F, |
0.6250719067F, 0.6255373795F, 0.6260026799F, 0.6264678076F, |
0.6269327619F, 0.6273975425F, 0.6278621487F, 0.6283265800F, |
0.6287908361F, 0.6292549163F, 0.6297188201F, 0.6301825471F, |
0.6306460966F, 0.6311094683F, 0.6315726617F, 0.6320356761F, |
0.6324985111F, 0.6329611662F, 0.6334236410F, 0.6338859348F, |
0.6343480472F, 0.6348099777F, 0.6352717257F, 0.6357332909F, |
0.6361946726F, 0.6366558704F, 0.6371168837F, 0.6375777122F, |
0.6380383552F, 0.6384988123F, 0.6389590830F, 0.6394191668F, |
0.6398790631F, 0.6403387716F, 0.6407982916F, 0.6412576228F, |
0.6417167645F, 0.6421757163F, 0.6426344778F, 0.6430930483F, |
0.6435514275F, 0.6440096149F, 0.6444676098F, 0.6449254119F, |
0.6453830207F, 0.6458404356F, 0.6462976562F, 0.6467546820F, |
0.6472115125F, 0.6476681472F, 0.6481245856F, 0.6485808273F, |
0.6490368717F, 0.6494927183F, 0.6499483667F, 0.6504038164F, |
0.6508590670F, 0.6513141178F, 0.6517689684F, 0.6522236185F, |
0.6526780673F, 0.6531323146F, 0.6535863598F, 0.6540402024F, |
0.6544938419F, 0.6549472779F, 0.6554005099F, 0.6558535373F, |
0.6563063598F, 0.6567589769F, 0.6572113880F, 0.6576635927F, |
0.6581155906F, 0.6585673810F, 0.6590189637F, 0.6594703380F, |
0.6599215035F, 0.6603724598F, 0.6608232064F, 0.6612737427F, |
0.6617240684F, 0.6621741829F, 0.6626240859F, 0.6630737767F, |
0.6635232550F, 0.6639725202F, 0.6644215720F, 0.6648704098F, |
0.6653190332F, 0.6657674417F, 0.6662156348F, 0.6666636121F, |
0.6671113731F, 0.6675589174F, 0.6680062445F, 0.6684533538F, |
0.6689002450F, 0.6693469177F, 0.6697933712F, 0.6702396052F, |
0.6706856193F, 0.6711314129F, 0.6715769855F, 0.6720223369F, |
0.6724674664F, 0.6729123736F, 0.6733570581F, 0.6738015194F, |
0.6742457570F, 0.6746897706F, 0.6751335596F, 0.6755771236F, |
0.6760204621F, 0.6764635747F, 0.6769064609F, 0.6773491204F, |
0.6777915525F, 0.6782337570F, 0.6786757332F, 0.6791174809F, |
0.6795589995F, 0.6800002886F, 0.6804413477F, 0.6808821765F, |
0.6813227743F, 0.6817631409F, 0.6822032758F, 0.6826431785F, |
0.6830828485F, 0.6835222855F, 0.6839614890F, 0.6844004585F, |
0.6848391936F, 0.6852776939F, 0.6857159589F, 0.6861539883F, |
0.6865917815F, 0.6870293381F, 0.6874666576F, 0.6879037398F, |
0.6883405840F, 0.6887771899F, 0.6892135571F, 0.6896496850F, |
0.6900855733F, 0.6905212216F, 0.6909566294F, 0.6913917963F, |
0.6918267218F, 0.6922614055F, 0.6926958471F, 0.6931300459F, |
0.6935640018F, 0.6939977141F, 0.6944311825F, 0.6948644066F, |
0.6952973859F, 0.6957301200F, 0.6961626085F, 0.6965948510F, |
0.6970268470F, 0.6974585961F, 0.6978900980F, 0.6983213521F, |
0.6987523580F, 0.6991831154F, 0.6996136238F, 0.7000438828F, |
0.7004738921F, 0.7009036510F, 0.7013331594F, 0.7017624166F, |
0.7021914224F, 0.7026201763F, 0.7030486779F, 0.7034769268F, |
0.7039049226F, 0.7043326648F, 0.7047601531F, 0.7051873870F, |
0.7056143662F, 0.7060410902F, 0.7064675586F, 0.7068937711F, |
0.7073197271F, 0.7077454264F, 0.7081708684F, 0.7085960529F, |
0.7090209793F, 0.7094456474F, 0.7098700566F, 0.7102942066F, |
0.7107180970F, 0.7111417274F, 0.7115650974F, 0.7119882066F, |
0.7124110545F, 0.7128336409F, 0.7132559653F, 0.7136780272F, |
0.7140998264F, 0.7145213624F, 0.7149426348F, 0.7153636433F, |
0.7157843874F, 0.7162048668F, 0.7166250810F, 0.7170450296F, |
0.7174647124F, 0.7178841289F, 0.7183032786F, 0.7187221613F, |
0.7191407765F, 0.7195591239F, 0.7199772030F, 0.7203950135F, |
0.7208125550F, 0.7212298271F, 0.7216468294F, 0.7220635616F, |
0.7224800233F, 0.7228962140F, 0.7233121335F, 0.7237277813F, |
0.7241431571F, 0.7245582604F, 0.7249730910F, 0.7253876484F, |
0.7258019322F, 0.7262159422F, 0.7266296778F, 0.7270431388F, |
0.7274563247F, 0.7278692353F, 0.7282818700F, 0.7286942287F, |
0.7291063108F, 0.7295181160F, 0.7299296440F, 0.7303408944F, |
0.7307518669F, 0.7311625609F, 0.7315729763F, 0.7319831126F, |
0.7323929695F, 0.7328025466F, 0.7332118435F, 0.7336208600F, |
0.7340295955F, 0.7344380499F, 0.7348462226F, 0.7352541134F, |
0.7356617220F, 0.7360690478F, 0.7364760907F, 0.7368828502F, |
0.7372893259F, 0.7376955176F, 0.7381014249F, 0.7385070475F, |
0.7389123849F, 0.7393174368F, 0.7397222029F, 0.7401266829F, |
0.7405308763F, 0.7409347829F, 0.7413384023F, 0.7417417341F, |
0.7421447780F, 0.7425475338F, 0.7429500009F, 0.7433521791F, |
0.7437540681F, 0.7441556674F, 0.7445569769F, 0.7449579960F, |
0.7453587245F, 0.7457591621F, 0.7461593084F, 0.7465591631F, |
0.7469587259F, 0.7473579963F, 0.7477569741F, 0.7481556590F, |
0.7485540506F, 0.7489521486F, 0.7493499526F, 0.7497474623F, |
0.7501446775F, 0.7505415977F, 0.7509382227F, 0.7513345521F, |
0.7517305856F, 0.7521263229F, 0.7525217636F, 0.7529169074F, |
0.7533117541F, 0.7537063032F, 0.7541005545F, 0.7544945076F, |
0.7548881623F, 0.7552815182F, 0.7556745749F, 0.7560673323F, |
0.7564597899F, 0.7568519474F, 0.7572438046F, 0.7576353611F, |
0.7580266166F, 0.7584175708F, 0.7588082235F, 0.7591985741F, |
0.7595886226F, 0.7599783685F, 0.7603678116F, 0.7607569515F, |
0.7611457879F, 0.7615343206F, 0.7619225493F, 0.7623104735F, |
0.7626980931F, 0.7630854078F, 0.7634724171F, 0.7638591209F, |
0.7642455188F, 0.7646316106F, 0.7650173959F, 0.7654028744F, |
0.7657880459F, 0.7661729100F, 0.7665574664F, 0.7669417150F, |
0.7673256553F, 0.7677092871F, 0.7680926100F, 0.7684756239F, |
0.7688583284F, 0.7692407232F, 0.7696228080F, 0.7700045826F, |
0.7703860467F, 0.7707671999F, 0.7711480420F, 0.7715285728F, |
0.7719087918F, 0.7722886989F, 0.7726682938F, 0.7730475762F, |
0.7734265458F, 0.7738052023F, 0.7741835454F, 0.7745615750F, |
0.7749392906F, 0.7753166921F, 0.7756937791F, 0.7760705514F, |
0.7764470087F, 0.7768231508F, 0.7771989773F, 0.7775744880F, |
0.7779496827F, 0.7783245610F, 0.7786991227F, 0.7790733676F, |
0.7794472953F, 0.7798209056F, 0.7801941982F, 0.7805671729F, |
0.7809398294F, 0.7813121675F, 0.7816841869F, 0.7820558873F, |
0.7824272684F, 0.7827983301F, 0.7831690720F, 0.7835394940F, |
0.7839095957F, 0.7842793768F, 0.7846488373F, 0.7850179767F, |
0.7853867948F, 0.7857552914F, 0.7861234663F, 0.7864913191F, |
0.7868588497F, 0.7872260578F, 0.7875929431F, 0.7879595055F, |
0.7883257445F, 0.7886916601F, 0.7890572520F, 0.7894225198F, |
0.7897874635F, 0.7901520827F, 0.7905163772F, 0.7908803468F, |
0.7912439912F, 0.7916073102F, 0.7919703035F, 0.7923329710F, |
0.7926953124F, 0.7930573274F, 0.7934190158F, 0.7937803774F, |
0.7941414120F, 0.7945021193F, 0.7948624991F, 0.7952225511F, |
0.7955822752F, 0.7959416711F, 0.7963007387F, 0.7966594775F, |
0.7970178875F, 0.7973759685F, 0.7977337201F, 0.7980911422F, |
0.7984482346F, 0.7988049970F, 0.7991614292F, 0.7995175310F, |
0.7998733022F, 0.8002287426F, 0.8005838519F, 0.8009386299F, |
0.8012930765F, 0.8016471914F, 0.8020009744F, 0.8023544253F, |
0.8027075438F, 0.8030603298F, 0.8034127831F, 0.8037649035F, |
0.8041166906F, 0.8044681445F, 0.8048192647F, 0.8051700512F, |
0.8055205038F, 0.8058706222F, 0.8062204062F, 0.8065698556F, |
0.8069189702F, 0.8072677499F, 0.8076161944F, 0.8079643036F, |
0.8083120772F, 0.8086595151F, 0.8090066170F, 0.8093533827F, |
0.8096998122F, 0.8100459051F, 0.8103916613F, 0.8107370806F, |
0.8110821628F, 0.8114269077F, 0.8117713151F, 0.8121153849F, |
0.8124591169F, 0.8128025108F, 0.8131455666F, 0.8134882839F, |
0.8138306627F, 0.8141727027F, 0.8145144038F, 0.8148557658F, |
0.8151967886F, 0.8155374718F, 0.8158778154F, 0.8162178192F, |
0.8165574830F, 0.8168968067F, 0.8172357900F, 0.8175744328F, |
0.8179127349F, 0.8182506962F, 0.8185883164F, 0.8189255955F, |
0.8192625332F, 0.8195991295F, 0.8199353840F, 0.8202712967F, |
0.8206068673F, 0.8209420958F, 0.8212769820F, 0.8216115256F, |
0.8219457266F, 0.8222795848F, 0.8226131000F, 0.8229462721F, |
0.8232791009F, 0.8236115863F, 0.8239437280F, 0.8242755260F, |
0.8246069801F, 0.8249380901F, 0.8252688559F, 0.8255992774F, |
0.8259293544F, 0.8262590867F, 0.8265884741F, 0.8269175167F, |
0.8272462141F, 0.8275745663F, 0.8279025732F, 0.8282302344F, |
0.8285575501F, 0.8288845199F, 0.8292111437F, 0.8295374215F, |
0.8298633530F, 0.8301889382F, 0.8305141768F, 0.8308390688F, |
0.8311636141F, 0.8314878124F, 0.8318116637F, 0.8321351678F, |
0.8324583246F, 0.8327811340F, 0.8331035957F, 0.8334257098F, |
0.8337474761F, 0.8340688944F, 0.8343899647F, 0.8347106867F, |
0.8350310605F, 0.8353510857F, 0.8356707624F, 0.8359900904F, |
0.8363090696F, 0.8366276999F, 0.8369459811F, 0.8372639131F, |
0.8375814958F, 0.8378987292F, 0.8382156130F, 0.8385321472F, |
0.8388483316F, 0.8391641662F, 0.8394796508F, 0.8397947853F, |
0.8401095697F, 0.8404240037F, 0.8407380873F, 0.8410518204F, |
0.8413652029F, 0.8416782347F, 0.8419909156F, 0.8423032456F, |
0.8426152245F, 0.8429268523F, 0.8432381289F, 0.8435490541F, |
0.8438596279F, 0.8441698502F, 0.8444797208F, 0.8447892396F, |
0.8450984067F, 0.8454072218F, 0.8457156849F, 0.8460237959F, |
0.8463315547F, 0.8466389612F, 0.8469460154F, 0.8472527170F, |
0.8475590661F, 0.8478650625F, 0.8481707063F, 0.8484759971F, |
0.8487809351F, 0.8490855201F, 0.8493897521F, 0.8496936308F, |
0.8499971564F, 0.8503003286F, 0.8506031474F, 0.8509056128F, |
0.8512077246F, 0.8515094828F, 0.8518108872F, 0.8521119379F, |
0.8524126348F, 0.8527129777F, 0.8530129666F, 0.8533126015F, |
0.8536118822F, 0.8539108087F, 0.8542093809F, 0.8545075988F, |
0.8548054623F, 0.8551029712F, 0.8554001257F, 0.8556969255F, |
0.8559933707F, 0.8562894611F, 0.8565851968F, 0.8568805775F, |
0.8571756034F, 0.8574702743F, 0.8577645902F, 0.8580585509F, |
0.8583521566F, 0.8586454070F, 0.8589383021F, 0.8592308420F, |
0.8595230265F, 0.8598148556F, 0.8601063292F, 0.8603974473F, |
0.8606882098F, 0.8609786167F, 0.8612686680F, 0.8615583636F, |
0.8618477034F, 0.8621366874F, 0.8624253156F, 0.8627135878F, |
0.8630015042F, 0.8632890646F, 0.8635762690F, 0.8638631173F, |
0.8641496096F, 0.8644357457F, 0.8647215257F, 0.8650069495F, |
0.8652920171F, 0.8655767283F, 0.8658610833F, 0.8661450820F, |
0.8664287243F, 0.8667120102F, 0.8669949397F, 0.8672775127F, |
0.8675597293F, 0.8678415894F, 0.8681230929F, 0.8684042398F, |
0.8686850302F, 0.8689654640F, 0.8692455412F, 0.8695252617F, |
0.8698046255F, 0.8700836327F, 0.8703622831F, 0.8706405768F, |
0.8709185138F, 0.8711960940F, 0.8714733174F, 0.8717501840F, |
0.8720266939F, 0.8723028469F, 0.8725786430F, 0.8728540824F, |
0.8731291648F, 0.8734038905F, 0.8736782592F, 0.8739522711F, |
0.8742259261F, 0.8744992242F, 0.8747721653F, 0.8750447496F, |
0.8753169770F, 0.8755888475F, 0.8758603611F, 0.8761315177F, |
0.8764023175F, 0.8766727603F, 0.8769428462F, 0.8772125752F, |
0.8774819474F, 0.8777509626F, 0.8780196209F, 0.8782879224F, |
0.8785558669F, 0.8788234546F, 0.8790906854F, 0.8793575594F, |
0.8796240765F, 0.8798902368F, 0.8801560403F, 0.8804214870F, |
0.8806865768F, 0.8809513099F, 0.8812156863F, 0.8814797059F, |
0.8817433687F, 0.8820066749F, 0.8822696243F, 0.8825322171F, |
0.8827944532F, 0.8830563327F, 0.8833178556F, 0.8835790219F, |
0.8838398316F, 0.8841002848F, 0.8843603815F, 0.8846201217F, |
0.8848795054F, 0.8851385327F, 0.8853972036F, 0.8856555182F, |
0.8859134764F, 0.8861710783F, 0.8864283239F, 0.8866852133F, |
0.8869417464F, 0.8871979234F, 0.8874537443F, 0.8877092090F, |
0.8879643177F, 0.8882190704F, 0.8884734671F, 0.8887275078F, |
0.8889811927F, 0.8892345216F, 0.8894874948F, 0.8897401122F, |
0.8899923738F, 0.8902442798F, 0.8904958301F, 0.8907470248F, |
0.8909978640F, 0.8912483477F, 0.8914984759F, 0.8917482487F, |
0.8919976662F, 0.8922467284F, 0.8924954353F, 0.8927437871F, |
0.8929917837F, 0.8932394252F, 0.8934867118F, 0.8937336433F, |
0.8939802199F, 0.8942264417F, 0.8944723087F, 0.8947178210F, |
0.8949629785F, 0.8952077815F, 0.8954522299F, 0.8956963239F, |
0.8959400634F, 0.8961834486F, 0.8964264795F, 0.8966691561F, |
0.8969114786F, 0.8971534470F, 0.8973950614F, 0.8976363219F, |
0.8978772284F, 0.8981177812F, 0.8983579802F, 0.8985978256F, |
0.8988373174F, 0.8990764556F, 0.8993152405F, 0.8995536720F, |
0.8997917502F, 0.9000294751F, 0.9002668470F, 0.9005038658F, |
0.9007405317F, 0.9009768446F, 0.9012128048F, 0.9014484123F, |
0.9016836671F, 0.9019185693F, 0.9021531191F, 0.9023873165F, |
0.9026211616F, 0.9028546546F, 0.9030877954F, 0.9033205841F, |
0.9035530210F, 0.9037851059F, 0.9040168392F, 0.9042482207F, |
0.9044792507F, 0.9047099293F, 0.9049402564F, 0.9051702323F, |
0.9053998569F, 0.9056291305F, 0.9058580531F, 0.9060866248F, |
0.9063148457F, 0.9065427159F, 0.9067702355F, 0.9069974046F, |
0.9072242233F, 0.9074506917F, 0.9076768100F, 0.9079025782F, |
0.9081279964F, 0.9083530647F, 0.9085777833F, 0.9088021523F, |
0.9090261717F, 0.9092498417F, 0.9094731623F, 0.9096961338F, |
0.9099187561F, 0.9101410295F, 0.9103629540F, 0.9105845297F, |
0.9108057568F, 0.9110266354F, 0.9112471656F, 0.9114673475F, |
0.9116871812F, 0.9119066668F, 0.9121258046F, 0.9123445945F, |
0.9125630367F, 0.9127811314F, 0.9129988786F, 0.9132162785F, |
0.9134333312F, 0.9136500368F, 0.9138663954F, 0.9140824073F, |
0.9142980724F, 0.9145133910F, 0.9147283632F, 0.9149429890F, |
0.9151572687F, 0.9153712023F, 0.9155847900F, 0.9157980319F, |
0.9160109282F, 0.9162234790F, 0.9164356844F, 0.9166475445F, |
0.9168590595F, 0.9170702296F, 0.9172810548F, 0.9174915354F, |
0.9177016714F, 0.9179114629F, 0.9181209102F, 0.9183300134F, |
0.9185387726F, 0.9187471879F, 0.9189552595F, 0.9191629876F, |
0.9193703723F, 0.9195774136F, 0.9197841119F, 0.9199904672F, |
0.9201964797F, 0.9204021495F, 0.9206074767F, 0.9208124616F, |
0.9210171043F, 0.9212214049F, 0.9214253636F, 0.9216289805F, |
0.9218322558F, 0.9220351896F, 0.9222377821F, 0.9224400335F, |
0.9226419439F, 0.9228435134F, 0.9230447423F, 0.9232456307F, |
0.9234461787F, 0.9236463865F, 0.9238462543F, 0.9240457822F, |
0.9242449704F, 0.9244438190F, 0.9246423282F, 0.9248404983F, |
0.9250383293F, 0.9252358214F, 0.9254329747F, 0.9256297896F, |
0.9258262660F, 0.9260224042F, 0.9262182044F, 0.9264136667F, |
0.9266087913F, 0.9268035783F, 0.9269980280F, 0.9271921405F, |
0.9273859160F, 0.9275793546F, 0.9277724566F, 0.9279652221F, |
0.9281576513F, 0.9283497443F, 0.9285415014F, 0.9287329227F, |
0.9289240084F, 0.9291147586F, 0.9293051737F, 0.9294952536F, |
0.9296849987F, 0.9298744091F, 0.9300634850F, 0.9302522266F, |
0.9304406340F, 0.9306287074F, 0.9308164471F, 0.9310038532F, |
0.9311909259F, 0.9313776654F, 0.9315640719F, 0.9317501455F, |
0.9319358865F, 0.9321212951F, 0.9323063713F, 0.9324911155F, |
0.9326755279F, 0.9328596085F, 0.9330433577F, 0.9332267756F, |
0.9334098623F, 0.9335926182F, 0.9337750434F, 0.9339571380F, |
0.9341389023F, 0.9343203366F, 0.9345014409F, 0.9346822155F, |
0.9348626606F, 0.9350427763F, 0.9352225630F, 0.9354020207F, |
0.9355811498F, 0.9357599503F, 0.9359384226F, 0.9361165667F, |
0.9362943830F, 0.9364718716F, 0.9366490327F, 0.9368258666F, |
0.9370023733F, 0.9371785533F, 0.9373544066F, 0.9375299335F, |
0.9377051341F, 0.9378800087F, 0.9380545576F, 0.9382287809F, |
0.9384026787F, 0.9385762515F, 0.9387494993F, 0.9389224223F, |
0.9390950209F, 0.9392672951F, 0.9394392453F, 0.9396108716F, |
0.9397821743F, 0.9399531536F, 0.9401238096F, 0.9402941427F, |
0.9404641530F, 0.9406338407F, 0.9408032061F, 0.9409722495F, |
0.9411409709F, 0.9413093707F, 0.9414774491F, 0.9416452062F, |
0.9418126424F, 0.9419797579F, 0.9421465528F, 0.9423130274F, |
0.9424791819F, 0.9426450166F, 0.9428105317F, 0.9429757274F, |
0.9431406039F, 0.9433051616F, 0.9434694005F, 0.9436333209F, |
0.9437969232F, 0.9439602074F, 0.9441231739F, 0.9442858229F, |
0.9444481545F, 0.9446101691F, 0.9447718669F, 0.9449332481F, |
0.9450943129F, 0.9452550617F, 0.9454154945F, 0.9455756118F, |
0.9457354136F, 0.9458949003F, 0.9460540721F, 0.9462129292F, |
0.9463714719F, 0.9465297003F, 0.9466876149F, 0.9468452157F, |
0.9470025031F, 0.9471594772F, 0.9473161384F, 0.9474724869F, |
0.9476285229F, 0.9477842466F, 0.9479396584F, 0.9480947585F, |
0.9482495470F, 0.9484040243F, 0.9485581906F, 0.9487120462F, |
0.9488655913F, 0.9490188262F, 0.9491717511F, 0.9493243662F, |
0.9494766718F, 0.9496286683F, 0.9497803557F, 0.9499317345F, |
0.9500828047F, 0.9502335668F, 0.9503840209F, 0.9505341673F, |
0.9506840062F, 0.9508335380F, 0.9509827629F, 0.9511316810F, |
0.9512802928F, 0.9514285984F, 0.9515765982F, 0.9517242923F, |
0.9518716810F, 0.9520187646F, 0.9521655434F, 0.9523120176F, |
0.9524581875F, 0.9526040534F, 0.9527496154F, 0.9528948739F, |
0.9530398292F, 0.9531844814F, 0.9533288310F, 0.9534728780F, |
0.9536166229F, 0.9537600659F, 0.9539032071F, 0.9540460470F, |
0.9541885858F, 0.9543308237F, 0.9544727611F, 0.9546143981F, |
0.9547557351F, 0.9548967723F, 0.9550375100F, 0.9551779485F, |
0.9553180881F, 0.9554579290F, 0.9555974714F, 0.9557367158F, |
0.9558756623F, 0.9560143112F, 0.9561526628F, 0.9562907174F, |
0.9564284752F, 0.9565659366F, 0.9567031017F, 0.9568399710F, |
0.9569765446F, 0.9571128229F, 0.9572488061F, 0.9573844944F, |
0.9575198883F, 0.9576549879F, 0.9577897936F, 0.9579243056F, |
0.9580585242F, 0.9581924497F, 0.9583260824F, 0.9584594226F, |
0.9585924705F, 0.9587252264F, 0.9588576906F, 0.9589898634F, |
0.9591217452F, 0.9592533360F, 0.9593846364F, 0.9595156465F, |
0.9596463666F, 0.9597767971F, 0.9599069382F, 0.9600367901F, |
0.9601663533F, 0.9602956279F, 0.9604246143F, 0.9605533128F, |
0.9606817236F, 0.9608098471F, 0.9609376835F, 0.9610652332F, |
0.9611924963F, 0.9613194733F, 0.9614461644F, 0.9615725699F, |
0.9616986901F, 0.9618245253F, 0.9619500757F, 0.9620753418F, |
0.9622003238F, 0.9623250219F, 0.9624494365F, 0.9625735679F, |
0.9626974163F, 0.9628209821F, 0.9629442656F, 0.9630672671F, |
0.9631899868F, 0.9633124251F, 0.9634345822F, 0.9635564585F, |
0.9636780543F, 0.9637993699F, 0.9639204056F, 0.9640411616F, |
0.9641616383F, 0.9642818359F, 0.9644017549F, 0.9645213955F, |
0.9646407579F, 0.9647598426F, 0.9648786497F, 0.9649971797F, |
0.9651154328F, 0.9652334092F, 0.9653511095F, 0.9654685337F, |
0.9655856823F, 0.9657025556F, 0.9658191538F, 0.9659354773F, |
0.9660515263F, 0.9661673013F, 0.9662828024F, 0.9663980300F, |
0.9665129845F, 0.9666276660F, 0.9667420750F, 0.9668562118F, |
0.9669700766F, 0.9670836698F, 0.9671969917F, 0.9673100425F, |
0.9674228227F, 0.9675353325F, 0.9676475722F, 0.9677595422F, |
0.9678712428F, 0.9679826742F, 0.9680938368F, 0.9682047309F, |
0.9683153569F, 0.9684257150F, 0.9685358056F, 0.9686456289F, |
0.9687551853F, 0.9688644752F, 0.9689734987F, 0.9690822564F, |
0.9691907483F, 0.9692989750F, 0.9694069367F, 0.9695146337F, |
0.9696220663F, 0.9697292349F, 0.9698361398F, 0.9699427813F, |
0.9700491597F, 0.9701552754F, 0.9702611286F, 0.9703667197F, |
0.9704720490F, 0.9705771169F, 0.9706819236F, 0.9707864695F, |
0.9708907549F, 0.9709947802F, 0.9710985456F, 0.9712020514F, |
0.9713052981F, 0.9714082859F, 0.9715110151F, 0.9716134862F, |
0.9717156993F, 0.9718176549F, 0.9719193532F, 0.9720207946F, |
0.9721219794F, 0.9722229080F, 0.9723235806F, 0.9724239976F, |
0.9725241593F, 0.9726240661F, 0.9727237183F, 0.9728231161F, |
0.9729222601F, 0.9730211503F, 0.9731197873F, 0.9732181713F, |
0.9733163027F, 0.9734141817F, 0.9735118088F, 0.9736091842F, |
0.9737063083F, 0.9738031814F, 0.9738998039F, 0.9739961760F, |
0.9740922981F, 0.9741881706F, 0.9742837938F, 0.9743791680F, |
0.9744742935F, 0.9745691707F, 0.9746637999F, 0.9747581814F, |
0.9748523157F, 0.9749462029F, 0.9750398435F, 0.9751332378F, |
0.9752263861F, 0.9753192887F, 0.9754119461F, 0.9755043585F, |
0.9755965262F, 0.9756884496F, 0.9757801291F, 0.9758715650F, |
0.9759627575F, 0.9760537071F, 0.9761444141F, 0.9762348789F, |
0.9763251016F, 0.9764150828F, 0.9765048228F, 0.9765943218F, |
0.9766835802F, 0.9767725984F, 0.9768613767F, 0.9769499154F, |
0.9770382149F, 0.9771262755F, 0.9772140976F, 0.9773016815F, |
0.9773890275F, 0.9774761360F, 0.9775630073F, 0.9776496418F, |
0.9777360398F, 0.9778222016F, 0.9779081277F, 0.9779938182F, |
0.9780792736F, 0.9781644943F, 0.9782494805F, 0.9783342326F, |
0.9784187509F, 0.9785030359F, 0.9785870877F, 0.9786709069F, |
0.9787544936F, 0.9788378484F, 0.9789209714F, 0.9790038631F, |
0.9790865238F, 0.9791689538F, 0.9792511535F, 0.9793331232F, |
0.9794148633F, 0.9794963742F, 0.9795776561F, 0.9796587094F, |
0.9797395345F, 0.9798201316F, 0.9799005013F, 0.9799806437F, |
0.9800605593F, 0.9801402483F, 0.9802197112F, 0.9802989483F, |
0.9803779600F, 0.9804567465F, 0.9805353082F, 0.9806136455F, |
0.9806917587F, 0.9807696482F, 0.9808473143F, 0.9809247574F, |
0.9810019778F, 0.9810789759F, 0.9811557519F, 0.9812323064F, |
0.9813086395F, 0.9813847517F, 0.9814606433F, 0.9815363147F, |
0.9816117662F, 0.9816869981F, 0.9817620108F, 0.9818368047F, |
0.9819113801F, 0.9819857374F, 0.9820598769F, 0.9821337989F, |
0.9822075038F, 0.9822809920F, 0.9823542638F, 0.9824273195F, |
0.9825001596F, 0.9825727843F, 0.9826451940F, 0.9827173891F, |
0.9827893700F, 0.9828611368F, 0.9829326901F, 0.9830040302F, |
0.9830751574F, 0.9831460720F, 0.9832167745F, 0.9832872652F, |
0.9833575444F, 0.9834276124F, 0.9834974697F, 0.9835671166F, |
0.9836365535F, 0.9837057806F, 0.9837747983F, 0.9838436071F, |
0.9839122072F, 0.9839805990F, 0.9840487829F, 0.9841167591F, |
0.9841845282F, 0.9842520903F, 0.9843194459F, 0.9843865953F, |
0.9844535389F, 0.9845202771F, 0.9845868101F, 0.9846531383F, |
0.9847192622F, 0.9847851820F, 0.9848508980F, 0.9849164108F, |
0.9849817205F, 0.9850468276F, 0.9851117324F, 0.9851764352F, |
0.9852409365F, 0.9853052366F, 0.9853693358F, 0.9854332344F, |
0.9854969330F, 0.9855604317F, 0.9856237309F, 0.9856868310F, |
0.9857497325F, 0.9858124355F, 0.9858749404F, 0.9859372477F, |
0.9859993577F, 0.9860612707F, 0.9861229871F, 0.9861845072F, |
0.9862458315F, 0.9863069601F, 0.9863678936F, 0.9864286322F, |
0.9864891764F, 0.9865495264F, 0.9866096826F, 0.9866696454F, |
0.9867294152F, 0.9867889922F, 0.9868483769F, 0.9869075695F, |
0.9869665706F, 0.9870253803F, 0.9870839991F, 0.9871424273F, |
0.9872006653F, 0.9872587135F, 0.9873165721F, 0.9873742415F, |
0.9874317222F, 0.9874890144F, 0.9875461185F, 0.9876030348F, |
0.9876597638F, 0.9877163057F, 0.9877726610F, 0.9878288300F, |
0.9878848130F, 0.9879406104F, 0.9879962225F, 0.9880516497F, |
0.9881068924F, 0.9881619509F, 0.9882168256F, 0.9882715168F, |
0.9883260249F, 0.9883803502F, 0.9884344931F, 0.9884884539F, |
0.9885422331F, 0.9885958309F, 0.9886492477F, 0.9887024838F, |
0.9887555397F, 0.9888084157F, 0.9888611120F, 0.9889136292F, |
0.9889659675F, 0.9890181273F, 0.9890701089F, 0.9891219128F, |
0.9891735392F, 0.9892249885F, 0.9892762610F, 0.9893273572F, |
0.9893782774F, 0.9894290219F, 0.9894795911F, 0.9895299853F, |
0.9895802049F, 0.9896302502F, 0.9896801217F, 0.9897298196F, |
0.9897793443F, 0.9898286961F, 0.9898778755F, 0.9899268828F, |
0.9899757183F, 0.9900243823F, 0.9900728753F, 0.9901211976F, |
0.9901693495F, 0.9902173314F, 0.9902651436F, 0.9903127865F, |
0.9903602605F, 0.9904075659F, 0.9904547031F, 0.9905016723F, |
0.9905484740F, 0.9905951086F, 0.9906415763F, 0.9906878775F, |
0.9907340126F, 0.9907799819F, 0.9908257858F, 0.9908714247F, |
0.9909168988F, 0.9909622086F, 0.9910073543F, 0.9910523364F, |
0.9910971552F, 0.9911418110F, 0.9911863042F, 0.9912306351F, |
0.9912748042F, 0.9913188117F, 0.9913626580F, 0.9914063435F, |
0.9914498684F, 0.9914932333F, 0.9915364383F, 0.9915794839F, |
0.9916223703F, 0.9916650981F, 0.9917076674F, 0.9917500787F, |
0.9917923323F, 0.9918344286F, 0.9918763679F, 0.9919181505F, |
0.9919597769F, 0.9920012473F, 0.9920425621F, 0.9920837217F, |
0.9921247263F, 0.9921655765F, 0.9922062724F, 0.9922468145F, |
0.9922872030F, 0.9923274385F, 0.9923675211F, 0.9924074513F, |
0.9924472294F, 0.9924868557F, 0.9925263306F, 0.9925656544F, |
0.9926048275F, 0.9926438503F, 0.9926827230F, 0.9927214461F, |
0.9927600199F, 0.9927984446F, 0.9928367208F, 0.9928748486F, |
0.9929128285F, 0.9929506608F, 0.9929883459F, 0.9930258841F, |
0.9930632757F, 0.9931005211F, 0.9931376207F, 0.9931745747F, |
0.9932113836F, 0.9932480476F, 0.9932845671F, 0.9933209425F, |
0.9933571742F, 0.9933932623F, 0.9934292074F, 0.9934650097F, |
0.9935006696F, 0.9935361874F, 0.9935715635F, 0.9936067982F, |
0.9936418919F, 0.9936768448F, 0.9937116574F, 0.9937463300F, |
0.9937808629F, 0.9938152565F, 0.9938495111F, 0.9938836271F, |
0.9939176047F, 0.9939514444F, 0.9939851465F, 0.9940187112F, |
0.9940521391F, 0.9940854303F, 0.9941185853F, 0.9941516044F, |
0.9941844879F, 0.9942172361F, 0.9942498495F, 0.9942823283F, |
0.9943146729F, 0.9943468836F, 0.9943789608F, 0.9944109047F, |
0.9944427158F, 0.9944743944F, 0.9945059408F, 0.9945373553F, |
0.9945686384F, 0.9945997902F, 0.9946308112F, 0.9946617017F, |
0.9946924621F, 0.9947230926F, 0.9947535937F, 0.9947839656F, |
0.9948142086F, 0.9948443232F, 0.9948743097F, 0.9949041683F, |
0.9949338995F, 0.9949635035F, 0.9949929807F, 0.9950223315F, |
0.9950515561F, 0.9950806549F, 0.9951096282F, 0.9951384764F, |
0.9951671998F, 0.9951957987F, 0.9952242735F, 0.9952526245F, |
0.9952808520F, 0.9953089564F, 0.9953369380F, 0.9953647971F, |
0.9953925340F, 0.9954201491F, 0.9954476428F, 0.9954750153F, |
0.9955022670F, 0.9955293981F, 0.9955564092F, 0.9955833003F, |
0.9956100720F, 0.9956367245F, 0.9956632582F, 0.9956896733F, |
0.9957159703F, 0.9957421494F, 0.9957682110F, 0.9957941553F, |
0.9958199828F, 0.9958456937F, 0.9958712884F, 0.9958967672F, |
0.9959221305F, 0.9959473784F, 0.9959725115F, 0.9959975300F, |
0.9960224342F, 0.9960472244F, 0.9960719011F, 0.9960964644F, |
0.9961209148F, 0.9961452525F, 0.9961694779F, 0.9961935913F, |
0.9962175930F, 0.9962414834F, 0.9962652627F, 0.9962889313F, |
0.9963124895F, 0.9963359377F, 0.9963592761F, 0.9963825051F, |
0.9964056250F, 0.9964286361F, 0.9964515387F, 0.9964743332F, |
0.9964970198F, 0.9965195990F, 0.9965420709F, 0.9965644360F, |
0.9965866946F, 0.9966088469F, 0.9966308932F, 0.9966528340F, |
0.9966746695F, 0.9966964001F, 0.9967180260F, 0.9967395475F, |
0.9967609651F, 0.9967822789F, 0.9968034894F, 0.9968245968F, |
0.9968456014F, 0.9968665036F, 0.9968873037F, 0.9969080019F, |
0.9969285987F, 0.9969490942F, 0.9969694889F, 0.9969897830F, |
0.9970099769F, 0.9970300708F, 0.9970500651F, 0.9970699601F, |
0.9970897561F, 0.9971094533F, 0.9971290522F, 0.9971485531F, |
0.9971679561F, 0.9971872617F, 0.9972064702F, 0.9972255818F, |
0.9972445968F, 0.9972635157F, 0.9972823386F, 0.9973010659F, |
0.9973196980F, 0.9973382350F, 0.9973566773F, 0.9973750253F, |
0.9973932791F, 0.9974114392F, 0.9974295059F, 0.9974474793F, |
0.9974653599F, 0.9974831480F, 0.9975008438F, 0.9975184476F, |
0.9975359598F, 0.9975533806F, 0.9975707104F, 0.9975879495F, |
0.9976050981F, 0.9976221566F, 0.9976391252F, 0.9976560043F, |
0.9976727941F, 0.9976894950F, 0.9977061073F, 0.9977226312F, |
0.9977390671F, 0.9977554152F, 0.9977716759F, 0.9977878495F, |
0.9978039361F, 0.9978199363F, 0.9978358501F, 0.9978516780F, |
0.9978674202F, 0.9978830771F, 0.9978986488F, 0.9979141358F, |
0.9979295383F, 0.9979448566F, 0.9979600909F, 0.9979752417F, |
0.9979903091F, 0.9980052936F, 0.9980201952F, 0.9980350145F, |
0.9980497515F, 0.9980644067F, 0.9980789804F, 0.9980934727F, |
0.9981078841F, 0.9981222147F, 0.9981364649F, 0.9981506350F, |
0.9981647253F, 0.9981787360F, 0.9981926674F, 0.9982065199F, |
0.9982202936F, 0.9982339890F, 0.9982476062F, 0.9982611456F, |
0.9982746074F, 0.9982879920F, 0.9983012996F, 0.9983145304F, |
0.9983276849F, 0.9983407632F, 0.9983537657F, 0.9983666926F, |
0.9983795442F, 0.9983923208F, 0.9984050226F, 0.9984176501F, |
0.9984302033F, 0.9984426827F, 0.9984550884F, 0.9984674208F, |
0.9984796802F, 0.9984918667F, 0.9985039808F, 0.9985160227F, |
0.9985279926F, 0.9985398909F, 0.9985517177F, 0.9985634734F, |
0.9985751583F, 0.9985867727F, 0.9985983167F, 0.9986097907F, |
0.9986211949F, 0.9986325297F, 0.9986437953F, 0.9986549919F, |
0.9986661199F, 0.9986771795F, 0.9986881710F, 0.9986990946F, |
0.9987099507F, 0.9987207394F, 0.9987314611F, 0.9987421161F, |
0.9987527045F, 0.9987632267F, 0.9987736829F, 0.9987840734F, |
0.9987943985F, 0.9988046584F, 0.9988148534F, 0.9988249838F, |
0.9988350498F, 0.9988450516F, 0.9988549897F, 0.9988648641F, |
0.9988746753F, 0.9988844233F, 0.9988941086F, 0.9989037313F, |
0.9989132918F, 0.9989227902F, 0.9989322269F, 0.9989416021F, |
0.9989509160F, 0.9989601690F, 0.9989693613F, 0.9989784931F, |
0.9989875647F, 0.9989965763F, 0.9990055283F, 0.9990144208F, |
0.9990232541F, 0.9990320286F, 0.9990407443F, 0.9990494016F, |
0.9990580008F, 0.9990665421F, 0.9990750257F, 0.9990834519F, |
0.9990918209F, 0.9991001331F, 0.9991083886F, 0.9991165877F, |
0.9991247307F, 0.9991328177F, 0.9991408491F, 0.9991488251F, |
0.9991567460F, 0.9991646119F, 0.9991724232F, 0.9991801801F, |
0.9991878828F, 0.9991955316F, 0.9992031267F, 0.9992106684F, |
0.9992181569F, 0.9992255925F, 0.9992329753F, 0.9992403057F, |
0.9992475839F, 0.9992548101F, 0.9992619846F, 0.9992691076F, |
0.9992761793F, 0.9992832001F, 0.9992901701F, 0.9992970895F, |
0.9993039587F, 0.9993107777F, 0.9993175470F, 0.9993242667F, |
0.9993309371F, 0.9993375583F, 0.9993441307F, 0.9993506545F, |
0.9993571298F, 0.9993635570F, 0.9993699362F, 0.9993762678F, |
0.9993825519F, 0.9993887887F, 0.9993949785F, 0.9994011216F, |
0.9994072181F, 0.9994132683F, 0.9994192725F, 0.9994252307F, |
0.9994311434F, 0.9994370107F, 0.9994428327F, 0.9994486099F, |
0.9994543423F, 0.9994600303F, 0.9994656739F, 0.9994712736F, |
0.9994768294F, 0.9994823417F, 0.9994878105F, 0.9994932363F, |
0.9994986191F, 0.9995039592F, 0.9995092568F, 0.9995145122F, |
0.9995197256F, 0.9995248971F, 0.9995300270F, 0.9995351156F, |
0.9995401630F, 0.9995451695F, 0.9995501352F, 0.9995550604F, |
0.9995599454F, 0.9995647903F, 0.9995695953F, 0.9995743607F, |
0.9995790866F, 0.9995837734F, 0.9995884211F, 0.9995930300F, |
0.9995976004F, 0.9996021324F, 0.9996066263F, 0.9996110822F, |
0.9996155004F, 0.9996198810F, 0.9996242244F, 0.9996285306F, |
0.9996327999F, 0.9996370326F, 0.9996412287F, 0.9996453886F, |
0.9996495125F, 0.9996536004F, 0.9996576527F, 0.9996616696F, |
0.9996656512F, 0.9996695977F, 0.9996735094F, 0.9996773865F, |
0.9996812291F, 0.9996850374F, 0.9996888118F, 0.9996925523F, |
0.9996962591F, 0.9996999325F, 0.9997035727F, 0.9997071798F, |
0.9997107541F, 0.9997142957F, 0.9997178049F, 0.9997212818F, |
0.9997247266F, 0.9997281396F, 0.9997315209F, 0.9997348708F, |
0.9997381893F, 0.9997414767F, 0.9997447333F, 0.9997479591F, |
0.9997511544F, 0.9997543194F, 0.9997574542F, 0.9997605591F, |
0.9997636342F, 0.9997666797F, 0.9997696958F, 0.9997726828F, |
0.9997756407F, 0.9997785698F, 0.9997814703F, 0.9997843423F, |
0.9997871860F, 0.9997900016F, 0.9997927894F, 0.9997955494F, |
0.9997982818F, 0.9998009869F, 0.9998036648F, 0.9998063157F, |
0.9998089398F, 0.9998115373F, 0.9998141082F, 0.9998166529F, |
0.9998191715F, 0.9998216642F, 0.9998241311F, 0.9998265724F, |
0.9998289884F, 0.9998313790F, 0.9998337447F, 0.9998360854F, |
0.9998384015F, 0.9998406930F, 0.9998429602F, 0.9998452031F, |
0.9998474221F, 0.9998496171F, 0.9998517885F, 0.9998539364F, |
0.9998560610F, 0.9998581624F, 0.9998602407F, 0.9998622962F, |
0.9998643291F, 0.9998663394F, 0.9998683274F, 0.9998702932F, |
0.9998722370F, 0.9998741589F, 0.9998760591F, 0.9998779378F, |
0.9998797952F, 0.9998816313F, 0.9998834464F, 0.9998852406F, |
0.9998870141F, 0.9998887670F, 0.9998904995F, 0.9998922117F, |
0.9998939039F, 0.9998955761F, 0.9998972285F, 0.9998988613F, |
0.9999004746F, 0.9999020686F, 0.9999036434F, 0.9999051992F, |
0.9999067362F, 0.9999082544F, 0.9999097541F, 0.9999112354F, |
0.9999126984F, 0.9999141433F, 0.9999155703F, 0.9999169794F, |
0.9999183709F, 0.9999197449F, 0.9999211014F, 0.9999224408F, |
0.9999237631F, 0.9999250684F, 0.9999263570F, 0.9999276289F, |
0.9999288843F, 0.9999301233F, 0.9999313461F, 0.9999325529F, |
0.9999337437F, 0.9999349187F, 0.9999360780F, 0.9999372218F, |
0.9999383503F, 0.9999394635F, 0.9999405616F, 0.9999416447F, |
0.9999427129F, 0.9999437665F, 0.9999448055F, 0.9999458301F, |
0.9999468404F, 0.9999478365F, 0.9999488185F, 0.9999497867F, |
0.9999507411F, 0.9999516819F, 0.9999526091F, 0.9999535230F, |
0.9999544236F, 0.9999553111F, 0.9999561856F, 0.9999570472F, |
0.9999578960F, 0.9999587323F, 0.9999595560F, 0.9999603674F, |
0.9999611666F, 0.9999619536F, 0.9999627286F, 0.9999634917F, |
0.9999642431F, 0.9999649828F, 0.9999657110F, 0.9999664278F, |
0.9999671334F, 0.9999678278F, 0.9999685111F, 0.9999691835F, |
0.9999698451F, 0.9999704960F, 0.9999711364F, 0.9999717662F, |
0.9999723858F, 0.9999729950F, 0.9999735942F, 0.9999741834F, |
0.9999747626F, 0.9999753321F, 0.9999758919F, 0.9999764421F, |
0.9999769828F, 0.9999775143F, 0.9999780364F, 0.9999785495F, |
0.9999790535F, 0.9999795485F, 0.9999800348F, 0.9999805124F, |
0.9999809813F, 0.9999814417F, 0.9999818938F, 0.9999823375F, |
0.9999827731F, 0.9999832005F, 0.9999836200F, 0.9999840316F, |
0.9999844353F, 0.9999848314F, 0.9999852199F, 0.9999856008F, |
0.9999859744F, 0.9999863407F, 0.9999866997F, 0.9999870516F, |
0.9999873965F, 0.9999877345F, 0.9999880656F, 0.9999883900F, |
0.9999887078F, 0.9999890190F, 0.9999893237F, 0.9999896220F, |
0.9999899140F, 0.9999901999F, 0.9999904796F, 0.9999907533F, |
0.9999910211F, 0.9999912830F, 0.9999915391F, 0.9999917896F, |
0.9999920345F, 0.9999922738F, 0.9999925077F, 0.9999927363F, |
0.9999929596F, 0.9999931777F, 0.9999933907F, 0.9999935987F, |
0.9999938018F, 0.9999940000F, 0.9999941934F, 0.9999943820F, |
0.9999945661F, 0.9999947456F, 0.9999949206F, 0.9999950912F, |
0.9999952575F, 0.9999954195F, 0.9999955773F, 0.9999957311F, |
0.9999958807F, 0.9999960265F, 0.9999961683F, 0.9999963063F, |
0.9999964405F, 0.9999965710F, 0.9999966979F, 0.9999968213F, |
0.9999969412F, 0.9999970576F, 0.9999971707F, 0.9999972805F, |
0.9999973871F, 0.9999974905F, 0.9999975909F, 0.9999976881F, |
0.9999977824F, 0.9999978738F, 0.9999979624F, 0.9999980481F, |
0.9999981311F, 0.9999982115F, 0.9999982892F, 0.9999983644F, |
0.9999984370F, 0.9999985072F, 0.9999985750F, 0.9999986405F, |
0.9999987037F, 0.9999987647F, 0.9999988235F, 0.9999988802F, |
0.9999989348F, 0.9999989873F, 0.9999990379F, 0.9999990866F, |
0.9999991334F, 0.9999991784F, 0.9999992217F, 0.9999992632F, |
0.9999993030F, 0.9999993411F, 0.9999993777F, 0.9999994128F, |
0.9999994463F, 0.9999994784F, 0.9999995091F, 0.9999995384F, |
0.9999995663F, 0.9999995930F, 0.9999996184F, 0.9999996426F, |
0.9999996657F, 0.9999996876F, 0.9999997084F, 0.9999997282F, |
0.9999997469F, 0.9999997647F, 0.9999997815F, 0.9999997973F, |
0.9999998123F, 0.9999998265F, 0.9999998398F, 0.9999998524F, |
0.9999998642F, 0.9999998753F, 0.9999998857F, 0.9999998954F, |
0.9999999045F, 0.9999999130F, 0.9999999209F, 0.9999999282F, |
0.9999999351F, 0.9999999414F, 0.9999999472F, 0.9999999526F, |
0.9999999576F, 0.9999999622F, 0.9999999664F, 0.9999999702F, |
0.9999999737F, 0.9999999769F, 0.9999999798F, 0.9999999824F, |
0.9999999847F, 0.9999999868F, 0.9999999887F, 0.9999999904F, |
0.9999999919F, 0.9999999932F, 0.9999999943F, 0.9999999953F, |
0.9999999961F, 0.9999999969F, 0.9999999975F, 0.9999999980F, |
0.9999999985F, 0.9999999988F, 0.9999999991F, 0.9999999993F, |
0.9999999995F, 0.9999999997F, 0.9999999998F, 0.9999999999F, |
0.9999999999F, 1.0000000000F, 1.0000000000F, 1.0000000000F, |
1.0000000000F, 1.0000000000F, 1.0000000000F, 1.0000000000F, |
}; |
static const float *const vwin[8] = { |
vwin64, |
vwin128, |
vwin256, |
vwin512, |
vwin1024, |
vwin2048, |
vwin4096, |
vwin8192, |
}; |
const float *_vorbis_window_get(int n){ |
return vwin[n]; |
} |
void _vorbis_apply_window(float *d,int *winno,long *blocksizes, |
int lW,int W,int nW){ |
lW=(W?lW:0); |
nW=(W?nW:0); |
{ |
const float *windowLW=vwin[winno[lW]]; |
const float *windowNW=vwin[winno[nW]]; |
long n=blocksizes[W]; |
long ln=blocksizes[lW]; |
long rn=blocksizes[nW]; |
long leftbegin=n/4-ln/4; |
long leftend=leftbegin+ln/2; |
long rightbegin=n/2+n/4-rn/4; |
long rightend=rightbegin+rn/2; |
int i,p; |
for(i=0;i<leftbegin;i++) |
d[i]=0.f; |
for(p=0;i<leftend;i++,p++) |
d[i]*=windowLW[p]; |
for(i=rightbegin,p=rn/2-1;i<rightend;i++,p--) |
d[i]*=windowNW[p]; |
for(;i<n;i++) |
d[i]=0.f; |
} |
} |
/contrib/sdk/sources/libvorbis-1.3.7/lib/window.h |
---|
0,0 → 1,25 |
/******************************************************************** |
* * |
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * |
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
* * |
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * |
* by the Xiph.Org Foundation https://xiph.org/ * |
* * |
******************************************************************** |
function: window functions |
********************************************************************/ |
#ifndef _V_WINDOW_ |
#define _V_WINDOW_ |
extern const float *_vorbis_window_get(int n); |
extern void _vorbis_apply_window(float *d,int *winno,long *blocksizes, |
int lW,int W,int nW); |
#endif |