1 /********************************************************************
3 * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
4 * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
5 * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
6 * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
8 * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
9 * by the XIPHOPHORUS Company http://www.xiph.org/ *
11 ********************************************************************
13 function: predefined encoding modes
14 last mod: $Id: mode_E.h,v 1.15 2001/08/13 01:37:14 xiphmont Exp $
16 ********************************************************************/
22 #include "vorbis/codec.h"
25 #include "books/line0_class1.vqh"
26 #include "books/line0_class2.vqh"
27 #include "books/line1_class0.vqh"
28 #include "books/line1_class1.vqh"
29 #include "books/line1_class2.vqh"
30 #include "books/line1_class3.vqh"
32 #include "books/line0_0sub0.vqh"
33 #include "books/line0_1sub1.vqh"
34 #include "books/line0_1sub2.vqh"
35 #include "books/line0_1sub3.vqh"
36 #include "books/line0_2sub1.vqh"
37 #include "books/line0_2sub2.vqh"
38 #include "books/line0_2sub3.vqh"
40 #include "books/line1_0sub0.vqh"
41 #include "books/line1_0sub1.vqh"
42 #include "books/line1_1sub0.vqh"
43 #include "books/line1_1sub1.vqh"
44 #include "books/line1_2sub1.vqh"
45 #include "books/line1_2sub2.vqh"
46 #include "books/line1_2sub3.vqh"
47 #include "books/line1_3sub1.vqh"
48 #include "books/line1_3sub2.vqh"
49 #include "books/line1_3sub3.vqh"
51 #include "books/res0_128_128aux.vqh"
52 #include "books/res0_128_1024aux.vqh"
54 #include "books/res0_128_1024_1.vqh"
55 #include "books/res0_128_1024_2.vqh"
56 #include "books/res0_128_1024_3.vqh"
57 #include "books/res0_128_1024_4.vqh"
58 #include "books/res0_128_1024_5.vqh"
59 #include "books/res0_128_1024_6.vqh"
60 #include "books/res0_128_1024_7.vqh"
61 #include "books/res0_128_1024_8.vqh"
62 #include "books/res0_128_1024_8a.vqh"
63 #include "books/res0_128_1024_9.vqh"
64 #include "books/res0_128_1024_9a.vqh"
65 #include "books/res0_128_1024_9b.vqh"
68 static vorbis_info_psy_global _psy_set_EG={
70 8, /* lines per eighth octave */
72 /* thresh sample period, preecho clamp trigger threshhold, range, minenergy */
73 256, {26.f,26.f,26.f,30.f}, {-90.f,-90.f,-90.f,-90.f}, -90.f,
79 static struct vp_couple_pass _psy_passE[]={
81 {{9999, 0,0, 0,0, 0,0}}
85 static vp_attenblock _vp_tonemask_E={
86 {{-40.f,-40.f,-40.f,-45.f,-55.f,-65.f,-75.f,-85.f,-95.f,-105.f,-115.f}, /*63*/
87 {-40.f,-40.f,-40.f,-45.f,-55.f,-65.f,-75.f,-85.f,-95.f,-105.f,-115.f}, /*88*/
88 {-40.f,-40.f,-40.f,-45.f,-55.f,-65.f,-75.f,-85.f,-95.f,-105.f,-115.f}, /*125*/
89 {-40.f,-40.f,-40.f,-45.f,-55.f,-65.f,-75.f,-85.f,-95.f,-105.f,-115.f}, /*175*/
90 {-40.f,-40.f,-40.f,-45.f,-55.f,-65.f,-75.f,-85.f,-95.f,-105.f,-115.f}, /*250*/
91 {-40.f,-40.f,-40.f,-45.f,-55.f,-65.f,-75.f,-85.f,-95.f,-105.f,-115.f}, /*350*/
92 {-40.f,-40.f,-40.f,-45.f,-55.f,-65.f,-75.f,-85.f,-95.f,-105.f,-115.f}, /*500*/
93 {-40.f,-40.f,-40.f,-45.f,-55.f,-65.f,-75.f,-85.f,-95.f,-105.f,-115.f}, /*700*/
95 {-40.f,-40.f,-40.f,-45.f,-55.f,-65.f,-75.f,-85.f,-95.f,-105.f,-115.f}, /*1k*/
96 {-40.f,-40.f,-40.f,-45.f,-55.f,-65.f,-75.f,-85.f,-95.f,-105.f,-115.f},
97 {-9e9f,-9e9f,-9e9f,-9e9f,-9e9f,-9e9f,-9e9f,-9e9f,-9e9f,-9e9f,-9e9f}, /*2k*/
98 {-9e9f,-9e9f,-9e9f,-9e9f,-9e9f,-9e9f,-9e9f,-9e9f,-9e9f,-9e9f,-9e9f},
99 {-9e9f,-9e9f,-9e9f,-9e9f,-9e9f,-9e9f,-9e9f,-9e9f,-9e9f,-9e9f,-9e9f}, /*4k*/
100 {-9e9f,-9e9f,-9e9f,-9e9f,-9e9f,-9e9f,-9e9f,-9e9f,-9e9f,-9e9f,-9e9f}, /*8000*/
102 {-9e9f,-9e9f,-9e9f,-9e9f,-9e9f,-9e9f,-9e9f,-9e9f,-9e9f,-9e9f,-9e9f}, /*8000*/
103 {-9e9f,-9e9f,-9e9f,-9e9f,-9e9f,-9e9f,-9e9f,-9e9f,-9e9f,-9e9f,-9e9f},
104 {-9e9f,-9e9f,-9e9f,-9e9f,-9e9f,-9e9f,-9e9f,-9e9f,-9e9f,-9e9f,-9e9f},
107 static vp_attenblock _vp_peakatt_E={
109 {-14.f,-20.f,-24.f,-26.f,-32.f,-34.f,-36.f,-38.f,-40.f,-40.f,-40.f},/*63*/
110 {-14.f,-20.f,-24.f,-26.f,-32.f,-34.f,-36.f,-38.f,-40.f,-40.f,-40.f},
111 {-14.f,-20.f,-24.f,-26.f,-32.f,-34.f,-36.f,-38.f,-40.f,-40.f,-40.f},/*125*/
112 {-14.f,-20.f,-24.f,-26.f,-32.f,-34.f,-36.f,-38.f,-40.f,-40.f,-40.f},
113 {-14.f,-20.f,-24.f,-26.f,-32.f,-34.f,-36.f,-38.f,-40.f,-40.f,-40.f},/*250*/
114 {-14.f,-20.f,-24.f,-26.f,-32.f,-34.f,-36.f,-38.f,-40.f,-40.f,-40.f},
115 {-14.f,-20.f,-24.f,-26.f,-32.f,-34.f,-36.f,-38.f,-40.f,-40.f,-40.f},/*500*/
116 {-14.f,-20.f,-24.f,-26.f,-32.f,-34.f,-36.f,-38.f,-40.f,-40.f,-40.f},
117 {-14.f,-20.f,-24.f,-26.f,-32.f,-34.f,-36.f,-38.f,-40.f,-40.f,-40.f},/*1k*/
118 {-14.f,-20.f,-24.f,-26.f,-32.f,-34.f,-36.f,-38.f,-40.f,-40.f,-40.f},
119 {-14.f,-20.f,-24.f,-26.f,-32.f,-34.f,-36.f,-38.f,-40.f,-40.f,-40.f},/*2k*/
120 {-14.f,-20.f,-24.f,-26.f,-32.f,-34.f,-36.f,-38.f,-40.f,-40.f,-40.f},
121 {-14.f,-20.f,-24.f,-26.f,-32.f,-34.f,-36.f,-38.f,-40.f,-40.f,-40.f},/*4k*/
122 {-14.f,-20.f,-24.f,-26.f,-32.f,-34.f,-36.f,-38.f,-40.f,-40.f,-40.f},
123 {-14.f,-20.f,-24.f,-26.f,-32.f,-34.f,-36.f,-38.f,-40.f,-40.f,-40.f},/*8k*/
124 {-14.f,-20.f,-24.f,-26.f,-32.f,-34.f,-36.f,-38.f,-40.f,-40.f,-40.f},
125 {-14.f,-20.f,-24.f,-26.f,-32.f,-34.f,-36.f,-38.f,-40.f,-40.f,-40.f},/*16k*/
128 static vorbis_info_psy _psy_set_E0={
129 ATH_Bark_dB_lineconservative,
135 -6.f, -50.f, &_vp_tonemask_E,
141 1,-30.f, /* suppress any noise curve over maxspec+n */
142 .6f, .6f, /* low/high window */
145 /*63 125 250 500 1k 2k 4k 8k 16k*/
146 {-30,-30,-30,-30,-30,-30,-20,-10,-10,-10,-10,-10,-6,-6,-6,-6,-6},
147 {.5f,.5f,.5f,.5f,.5f,.5f,.5f,.5f,.5f,.5f,.4f,.4f,.5f,.5f,.5f,.5f,.6f},
149 105.f, /* even decade + 5 is important; saves an rint() later in a
155 static vorbis_info_psy _psy_set_E={
156 ATH_Bark_dB_lineconservative,
162 -6.f,-50.f,&_vp_tonemask_E,
167 1, -30.f, /* suppress any noise curve over maxspec+n */
168 .4f,.4f, /* low/high window */
171 /*63 125 250 500 1k 2k 4k 8k 16k*/
172 {-30,-30,-30,-30,-30,-30,-30,-20,-10,-12,-16,-16, -10, -6, -6, -6, -6},
173 {.5f,.5f,.5f,.5f,.5f,.5f,.5f,.5f,.5f,.4f,.4f,.4f,.4f,.4f,.5f,.5f,.6f},
175 105.f, /* even decade + 5 is important; saves an rint() later in a
180 /* with GNUisms, this could be short and readable. Oh well */
181 static vorbis_info_time0 _time_set0E={0};
182 /*static vorbis_info_floor0 _floor_set0B={9, 44100, 64, 10,130, 2, {0,1},
184 /*static vorbis_info_floor0 _floor_set1B={30, 44100, 256, 12,150, 2, {2,3},
187 static vorbis_info_floor1 _floor_set0E={6,
193 {{2},{-1,3,4,5},{-1,6,7,8}},
201 2,1,4, 11,8,14, 23,20,26,
202 41,35,48, 84,69,103},
209 static vorbis_info_floor1 _floor_set1E={10,
210 {0,1,2,2,2,2,2, 3,3,3},
228 6,3,10, 22,18,26, 41,36,47,
229 69,61,78, 112,99,126, 185,162,211,
230 329,282,387, 672,553,825
238 static vorbis_info_residue0 _residue_set0E={0,256,16,10,23,
239 {0,1,1,1,1,1,1,1,3,7},
273 static vorbis_info_residue0 _residue_set1E={0,2048, 32,10,24,
274 {0,1,1,1,1,1,1,1,3,7},
308 static vorbis_info_mapping0 _mapping_set0E={1, {0,0}, {0}, {0}, {0}, {0,0},
310 static vorbis_info_mapping0 _mapping_set1E={1, {0,0}, {0}, {1}, {1}, {1,1},
312 static vorbis_info_mode _mode_set0E={0,0,0,0};
313 static vorbis_info_mode _mode_set1E={1,0,0,1};
315 /* CD quality stereo, losslesschannel coupling */
316 codec_setup_info info_E={
318 /* smallblock, largeblock */
320 /* modes,maps,times,floors,residues,books,psys */
321 2, 2, 1, 2, 2, 37, 2,
323 {&_mode_set0E,&_mode_set1E},
325 {0,0},{&_mapping_set0E,&_mapping_set1E},
327 {0,0},{&_time_set0E},
329 {1,1},{&_floor_set0E,&_floor_set1E},
331 {2,2},{&_residue_set0E,&_residue_set1E},
335 &_huff_book_line0_class1,
336 &_huff_book_line0_class2, /* 1 */
338 &_huff_book_line0_0sub0, /* 2 */
339 &_huff_book_line0_1sub1, /* 3 */
340 &_huff_book_line0_1sub2,
341 &_huff_book_line0_1sub3, /* 5 */
342 &_huff_book_line0_2sub1,
343 &_huff_book_line0_2sub2, /* 7 */
344 &_huff_book_line0_2sub3,
346 &_huff_book_line1_class0,
347 &_huff_book_line1_class1, /* 10 */
348 &_huff_book_line1_class2,
349 &_huff_book_line1_class3, /* 12 */
351 &_huff_book_line1_0sub0,
352 &_huff_book_line1_0sub1, /* 14 */
353 &_huff_book_line1_1sub0,
354 &_huff_book_line1_1sub1,
355 &_huff_book_line1_2sub1,
356 &_huff_book_line1_2sub2, /* 18 */
357 &_huff_book_line1_2sub3,
358 &_huff_book_line1_3sub1,
359 &_huff_book_line1_3sub2,
360 &_huff_book_line1_3sub3, /* 22 */
362 &_huff_book_res0_128_128aux,
363 &_huff_book_res0_128_1024aux,
365 &_vq_book_res0_128_1024_1,
366 &_vq_book_res0_128_1024_2,
367 &_vq_book_res0_128_1024_3,
368 &_vq_book_res0_128_1024_4,
369 &_vq_book_res0_128_1024_5,
370 &_vq_book_res0_128_1024_6,
371 &_vq_book_res0_128_1024_7,
372 &_vq_book_res0_128_1024_8,
373 &_vq_book_res0_128_1024_8a,
374 &_vq_book_res0_128_1024_9,
375 &_vq_book_res0_128_1024_9a,
376 &_vq_book_res0_128_1024_9b,
380 {&_psy_set_E0,&_psy_set_E},