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