1 /******************************************************************** 2 * * 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. * 7 * * 8 * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * 9 * by the Xiph.Org Foundation http://www.xiph.org/ * 10 * * 11 ******************************************************************** 12 13 function: key floor settings 14 last mod: $Id: floor_all.h 17050 2010-03-26 01:34:42Z xiphmont $ 15 16 ********************************************************************/ 17 18 #include "vorbis/codec.h" 19 #include "backends.h" 20 #include "books/floor/floor_books.h" 21 22 static const static_codebook*const _floor_128x4_books[]={ 23 &_huff_book_line_128x4_class0, 24 &_huff_book_line_128x4_0sub0, 25 &_huff_book_line_128x4_0sub1, 26 &_huff_book_line_128x4_0sub2, 27 &_huff_book_line_128x4_0sub3, 28 }; 29 static const static_codebook*const _floor_256x4_books[]={ 30 &_huff_book_line_256x4_class0, 31 &_huff_book_line_256x4_0sub0, 32 &_huff_book_line_256x4_0sub1, 33 &_huff_book_line_256x4_0sub2, 34 &_huff_book_line_256x4_0sub3, 35 }; 36 static const static_codebook*const _floor_128x7_books[]={ 37 &_huff_book_line_128x7_class0, 38 &_huff_book_line_128x7_class1, 39 40 &_huff_book_line_128x7_0sub1, 41 &_huff_book_line_128x7_0sub2, 42 &_huff_book_line_128x7_0sub3, 43 &_huff_book_line_128x7_1sub1, 44 &_huff_book_line_128x7_1sub2, 45 &_huff_book_line_128x7_1sub3, 46 }; 47 static const static_codebook*const _floor_256x7_books[]={ 48 &_huff_book_line_256x7_class0, 49 &_huff_book_line_256x7_class1, 50 51 &_huff_book_line_256x7_0sub1, 52 &_huff_book_line_256x7_0sub2, 53 &_huff_book_line_256x7_0sub3, 54 &_huff_book_line_256x7_1sub1, 55 &_huff_book_line_256x7_1sub2, 56 &_huff_book_line_256x7_1sub3, 57 }; 58 static const static_codebook*const _floor_128x11_books[]={ 59 &_huff_book_line_128x11_class1, 60 &_huff_book_line_128x11_class2, 61 &_huff_book_line_128x11_class3, 62 63 &_huff_book_line_128x11_0sub0, 64 &_huff_book_line_128x11_1sub0, 65 &_huff_book_line_128x11_1sub1, 66 &_huff_book_line_128x11_2sub1, 67 &_huff_book_line_128x11_2sub2, 68 &_huff_book_line_128x11_2sub3, 69 &_huff_book_line_128x11_3sub1, 70 &_huff_book_line_128x11_3sub2, 71 &_huff_book_line_128x11_3sub3, 72 }; 73 static const static_codebook*const _floor_128x17_books[]={ 74 &_huff_book_line_128x17_class1, 75 &_huff_book_line_128x17_class2, 76 &_huff_book_line_128x17_class3, 77 78 &_huff_book_line_128x17_0sub0, 79 &_huff_book_line_128x17_1sub0, 80 &_huff_book_line_128x17_1sub1, 81 &_huff_book_line_128x17_2sub1, 82 &_huff_book_line_128x17_2sub2, 83 &_huff_book_line_128x17_2sub3, 84 &_huff_book_line_128x17_3sub1, 85 &_huff_book_line_128x17_3sub2, 86 &_huff_book_line_128x17_3sub3, 87 }; 88 static const static_codebook*const _floor_256x4low_books[]={ 89 &_huff_book_line_256x4low_class0, 90 &_huff_book_line_256x4low_0sub0, 91 &_huff_book_line_256x4low_0sub1, 92 &_huff_book_line_256x4low_0sub2, 93 &_huff_book_line_256x4low_0sub3, 94 }; 95 static const static_codebook*const _floor_1024x27_books[]={ 96 &_huff_book_line_1024x27_class1, 97 &_huff_book_line_1024x27_class2, 98 &_huff_book_line_1024x27_class3, 99 &_huff_book_line_1024x27_class4, 100 101 &_huff_book_line_1024x27_0sub0, 102 &_huff_book_line_1024x27_1sub0, 103 &_huff_book_line_1024x27_1sub1, 104 &_huff_book_line_1024x27_2sub0, 105 &_huff_book_line_1024x27_2sub1, 106 &_huff_book_line_1024x27_3sub1, 107 &_huff_book_line_1024x27_3sub2, 108 &_huff_book_line_1024x27_3sub3, 109 &_huff_book_line_1024x27_4sub1, 110 &_huff_book_line_1024x27_4sub2, 111 &_huff_book_line_1024x27_4sub3, 112 }; 113 static const static_codebook*const _floor_2048x27_books[]={ 114 &_huff_book_line_2048x27_class1, 115 &_huff_book_line_2048x27_class2, 116 &_huff_book_line_2048x27_class3, 117 &_huff_book_line_2048x27_class4, 118 119 &_huff_book_line_2048x27_0sub0, 120 &_huff_book_line_2048x27_1sub0, 121 &_huff_book_line_2048x27_1sub1, 122 &_huff_book_line_2048x27_2sub0, 123 &_huff_book_line_2048x27_2sub1, 124 &_huff_book_line_2048x27_3sub1, 125 &_huff_book_line_2048x27_3sub2, 126 &_huff_book_line_2048x27_3sub3, 127 &_huff_book_line_2048x27_4sub1, 128 &_huff_book_line_2048x27_4sub2, 129 &_huff_book_line_2048x27_4sub3, 130 }; 131 132 static const static_codebook*const _floor_512x17_books[]={ 133 &_huff_book_line_512x17_class1, 134 &_huff_book_line_512x17_class2, 135 &_huff_book_line_512x17_class3, 136 137 &_huff_book_line_512x17_0sub0, 138 &_huff_book_line_512x17_1sub0, 139 &_huff_book_line_512x17_1sub1, 140 &_huff_book_line_512x17_2sub1, 141 &_huff_book_line_512x17_2sub2, 142 &_huff_book_line_512x17_2sub3, 143 &_huff_book_line_512x17_3sub1, 144 &_huff_book_line_512x17_3sub2, 145 &_huff_book_line_512x17_3sub3, 146 }; 147 148 static const static_codebook*const _floor_Xx0_books[]={ 149 0 150 }; 151 152 static const static_codebook*const *const _floor_books[11]={ 153 _floor_128x4_books, 154 _floor_256x4_books, 155 _floor_128x7_books, 156 _floor_256x7_books, 157 _floor_128x11_books, 158 _floor_128x17_books, 159 _floor_256x4low_books, 160 _floor_1024x27_books, 161 _floor_2048x27_books, 162 _floor_512x17_books, 163 _floor_Xx0_books, 164 }; 165 166 static const vorbis_info_floor1 _floor[11]={ 167 /* 0: 128 x 4 */ 168 { 169 1,{0},{4},{2},{0}, 170 {{1,2,3,4}}, 171 4,{0,128, 33,8,16,70}, 172 173 60,30,500, 1.,18., 128 174 }, 175 /* 1: 256 x 4 */ 176 { 177 1,{0},{4},{2},{0}, 178 {{1,2,3,4}}, 179 4,{0,256, 66,16,32,140}, 180 181 60,30,500, 1.,18., 256 182 }, 183 /* 2: 128 x 7 */ 184 { 185 2,{0,1},{3,4},{2,2},{0,1}, 186 {{-1,2,3,4},{-1,5,6,7}}, 187 4,{0,128, 14,4,58, 2,8,28,90}, 188 189 60,30,500, 1.,18., 128 190 }, 191 /* 3: 256 x 7 */ 192 { 193 2,{0,1},{3,4},{2,2},{0,1}, 194 {{-1,2,3,4},{-1,5,6,7}}, 195 4,{0,256, 28,8,116, 4,16,56,180}, 196 197 60,30,500, 1.,18., 256 198 }, 199 /* 4: 128 x 11 */ 200 { 201 4,{0,1,2,3},{2,3,3,3},{0,1,2,2},{-1,0,1,2}, 202 {{3},{4,5},{-1,6,7,8},{-1,9,10,11}}, 203 204 2,{0,128, 8,33, 4,16,70, 2,6,12, 23,46,90}, 205 206 60,30,500, 1,18., 128 207 }, 208 /* 5: 128 x 17 */ 209 { 210 6,{0,1,1,2,3,3},{2,3,3,3},{0,1,2,2},{-1,0,1,2}, 211 {{3},{4,5},{-1,6,7,8},{-1,9,10,11}}, 212 2,{0,128, 12,46, 4,8,16, 23,33,70, 2,6,10, 14,19,28, 39,58,90}, 213 214 60,30,500, 1,18., 128 215 }, 216 /* 6: 256 x 4 (low bitrate version) */ 217 { 218 1,{0},{4},{2},{0}, 219 {{1,2,3,4}}, 220 4,{0,256, 66,16,32,140}, 221 222 60,30,500, 1.,18., 256 223 }, 224 /* 7: 1024 x 27 */ 225 { 226 8,{0,1,2,2,3,3,4,4},{3,4,3,4,3},{0,1,1,2,2},{-1,0,1,2,3}, 227 {{4},{5,6},{7,8},{-1,9,10,11},{-1,12,13,14}}, 228 2,{0,1024, 93,23,372, 6,46,186,750, 14,33,65, 130,260,556, 229 3,10,18,28, 39,55,79,111, 158,220,312, 464,650,850}, 230 231 60,30,500, 3,18., 1024 232 }, 233 /* 8: 2048 x 27 */ 234 { 235 8,{0,1,2,2,3,3,4,4},{3,4,3,4,3},{0,1,1,2,2},{-1,0,1,2,3}, 236 {{4},{5,6},{7,8},{-1,9,10,11},{-1,12,13,14}}, 237 2,{0,2048, 186,46,744, 12,92,372,1500, 28,66,130, 260,520,1112, 238 6,20,36,56, 78,110,158,222, 316,440,624, 928,1300,1700}, 239 240 60,30,500, 3,18., 2048 241 }, 242 /* 9: 512 x 17 */ 243 { 244 6,{0,1,1,2,3,3},{2,3,3,3},{0,1,2,2},{-1,0,1,2}, 245 {{3},{4,5},{-1,6,7,8},{-1,9,10,11}}, 246 2,{0,512, 46,186, 16,33,65, 93,130,278, 247 7,23,39, 55,79,110, 156,232,360}, 248 249 60,30,500, 1,18., 512 250 }, 251 252 /* 10: X x 0 (LFE floor; edge posts only) */ 253 { 254 0,{0}, {0},{0},{-1}, 255 {{-1}}, 256 2,{0,12}, 257 60,30,500, 1.,18., 10 258 }, 259 260 }; 261