residue_44p51.h (12081B)
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-2010 * 9 * by the Xiph.Org Foundation https://xiph.org/ * 10 * * 11 ******************************************************************** 12 13 function: toplevel residue templates for 32/44.1/48kHz uncoupled 14 15 ********************************************************************/ 16 17 #include "vorbis/codec.h" 18 #include "backends.h" 19 20 #include "books/coupled/res_books_51.h" 21 22 /***** residue backends *********************************************/ 23 24 static const vorbis_info_residue0 _residue_44p_lo={ 25 0,-1, -1, 7,-1,-1, 26 /* 0 1 2 3 4 5 6 7 8 */ 27 {0}, 28 {-1}, 29 { 0, 1, 2, 7, 17, 31}, 30 { 0, 0, 99, 7, 17, 31}, 31 }; 32 33 static const vorbis_info_residue0 _residue_44p={ 34 0,-1, -1, 8,-1,-1, 35 /* 0 1 2 3 4 5 6 7 8 */ 36 {0}, 37 {-1}, 38 { 0, 1, 1, 2, 7, 17, 31}, 39 { 0, 0, 99, 99, 7, 17, 31}, 40 }; 41 42 static const vorbis_info_residue0 _residue_44p_hi={ 43 0,-1, -1, 8,-1,-1, 44 /* 0 1 2 3 4 5 6 7 8 */ 45 {0}, 46 {-1}, 47 { 0, 1, 2, 4, 7, 17, 31}, 48 { 0, 1, 2, 4, 7, 17, 31}, 49 }; 50 51 static const vorbis_info_residue0 _residue_44p_lfe={ 52 0,-1, -1, 2,-1,-1, 53 /* 0 1 2 3 4 5 6 7 8 */ 54 {0}, 55 {-1}, 56 { 32}, 57 { -1} 58 }; 59 60 static const static_bookblock _resbook_44p_n1={ 61 { 62 {0}, 63 {0,&_44pn1_p1_0}, 64 65 {&_44pn1_p2_0,&_44pn1_p2_1,0}, 66 {&_44pn1_p3_0,&_44pn1_p3_1,0}, 67 {&_44pn1_p4_0,&_44pn1_p4_1,0}, 68 69 {&_44pn1_p5_0,&_44pn1_p5_1,&_44pn1_p4_1}, 70 {&_44pn1_p6_0,&_44pn1_p6_1,&_44pn1_p6_2}, 71 } 72 }; 73 74 static const static_bookblock _resbook_44p_0={ 75 { 76 {0}, 77 {0,&_44p0_p1_0}, 78 79 {&_44p0_p2_0,&_44p0_p2_1,0}, 80 {&_44p0_p3_0,&_44p0_p3_1,0}, 81 {&_44p0_p4_0,&_44p0_p4_1,0}, 82 83 {&_44p0_p5_0,&_44p0_p5_1,&_44p0_p4_1}, 84 {&_44p0_p6_0,&_44p0_p6_1,&_44p0_p6_2}, 85 } 86 }; 87 88 static const static_bookblock _resbook_44p_1={ 89 { 90 {0}, 91 {0,&_44p1_p1_0}, 92 93 {&_44p1_p2_0,&_44p1_p2_1,0}, 94 {&_44p1_p3_0,&_44p1_p3_1,0}, 95 {&_44p1_p4_0,&_44p1_p4_1,0}, 96 97 {&_44p1_p5_0,&_44p1_p5_1,&_44p1_p4_1}, 98 {&_44p1_p6_0,&_44p1_p6_1,&_44p1_p6_2}, 99 } 100 }; 101 102 static const static_bookblock _resbook_44p_2={ 103 { 104 {0}, 105 {0,0,&_44p2_p1_0}, 106 {0,&_44p2_p2_0,0}, 107 108 {&_44p2_p3_0,&_44p2_p3_1,0}, 109 {&_44p2_p4_0,&_44p2_p4_1,0}, 110 {&_44p2_p5_0,&_44p2_p5_1,0}, 111 112 {&_44p2_p6_0,&_44p2_p6_1,&_44p2_p5_1}, 113 {&_44p2_p7_0,&_44p2_p7_1,&_44p2_p7_2,&_44p2_p7_3} 114 } 115 }; 116 static const static_bookblock _resbook_44p_3={ 117 { 118 {0}, 119 {0,0,&_44p3_p1_0}, 120 {0,&_44p3_p2_0,0}, 121 122 {&_44p3_p3_0,&_44p3_p3_1,0}, 123 {&_44p3_p4_0,&_44p3_p4_1,0}, 124 {&_44p3_p5_0,&_44p3_p5_1,0}, 125 126 {&_44p3_p6_0,&_44p3_p6_1,&_44p3_p5_1}, 127 {&_44p3_p7_0,&_44p3_p7_1,&_44p3_p7_2,&_44p3_p7_3} 128 } 129 }; 130 static const static_bookblock _resbook_44p_4={ 131 { 132 {0}, 133 {0,0,&_44p4_p1_0}, 134 {0,&_44p4_p2_0,0}, 135 136 {&_44p4_p3_0,&_44p4_p3_1,0}, 137 {&_44p4_p4_0,&_44p4_p4_1,0}, 138 {&_44p4_p5_0,&_44p4_p5_1,0}, 139 140 {&_44p4_p6_0,&_44p4_p6_1,&_44p4_p5_1}, 141 {&_44p4_p7_0,&_44p4_p7_1,&_44p4_p7_2,&_44p4_p7_3} 142 } 143 }; 144 static const static_bookblock _resbook_44p_5={ 145 { 146 {0}, 147 {0,0,&_44p5_p1_0}, 148 {0,&_44p5_p2_0,0}, 149 150 {&_44p5_p3_0,&_44p5_p3_1,0}, 151 {&_44p5_p4_0,&_44p5_p4_1,0}, 152 {&_44p5_p5_0,&_44p5_p5_1,0}, 153 154 {&_44p5_p6_0,&_44p5_p6_1,&_44p5_p5_1}, 155 {&_44p5_p7_0,&_44p5_p7_1,&_44p5_p7_2,&_44p5_p7_3} 156 } 157 }; 158 static const static_bookblock _resbook_44p_6={ 159 { 160 {0}, 161 {0,0,&_44p6_p1_0}, 162 {0,&_44p6_p2_0,0}, 163 164 {&_44p6_p3_0,&_44p6_p3_1,0}, 165 {&_44p6_p4_0,&_44p6_p4_1,0}, 166 {&_44p6_p5_0,&_44p6_p5_1,0}, 167 168 {&_44p6_p6_0,&_44p6_p6_1,&_44p6_p5_1}, 169 {&_44p6_p7_0,&_44p6_p7_1,&_44p6_p7_2,&_44p6_p7_3} 170 } 171 }; 172 static const static_bookblock _resbook_44p_7={ 173 { 174 {0}, 175 {0,0,&_44p7_p1_0}, 176 {0,&_44p7_p2_0,0}, 177 178 {&_44p7_p3_0,&_44p7_p3_1,0}, 179 {&_44p7_p4_0,&_44p7_p4_1,0}, 180 {&_44p7_p5_0,&_44p7_p5_1,0}, 181 182 {&_44p7_p6_0,&_44p7_p6_1,&_44p7_p5_1}, 183 {&_44p7_p7_0,&_44p7_p7_1,&_44p7_p7_2,&_44p7_p7_3} 184 } 185 }; 186 static const static_bookblock _resbook_44p_8={ 187 { 188 {0}, 189 {0,0,&_44p8_p1_0}, 190 {0,&_44p8_p2_0,0}, 191 192 {&_44p8_p3_0,&_44p8_p3_1,0}, 193 {&_44p8_p4_0,&_44p8_p4_1,0}, 194 {&_44p8_p5_0,&_44p8_p5_1,0}, 195 196 {&_44p8_p6_0,&_44p8_p6_1,&_44p8_p5_1}, 197 {&_44p8_p7_0,&_44p8_p7_1,&_44p8_p7_2,&_44p8_p7_3} 198 } 199 }; 200 static const static_bookblock _resbook_44p_9={ 201 { 202 {0}, 203 {0,0,&_44p9_p1_0}, 204 {0,&_44p9_p2_0,0}, 205 206 {&_44p9_p3_0,&_44p9_p3_1,0}, 207 {&_44p9_p4_0,&_44p9_p4_1,0}, 208 {&_44p9_p5_0,&_44p9_p5_1,0}, 209 210 {&_44p9_p6_0,&_44p9_p6_1,&_44p9_p5_1}, 211 {&_44p9_p7_0,&_44p9_p7_1,&_44p9_p7_2,&_44p9_p7_3} 212 } 213 }; 214 215 static const static_bookblock _resbook_44p_ln1={ 216 { 217 {&_44pn1_l0_0,&_44pn1_l0_1,0}, 218 {&_44pn1_l1_0,&_44pn1_p6_1,&_44pn1_p6_2}, 219 } 220 }; 221 static const static_bookblock _resbook_44p_l0={ 222 { 223 {&_44p0_l0_0,&_44p0_l0_1,0}, 224 {&_44p0_l1_0,&_44p0_p6_1,&_44p0_p6_2}, 225 } 226 }; 227 static const static_bookblock _resbook_44p_l1={ 228 { 229 {&_44p1_l0_0,&_44p1_l0_1,0}, 230 {&_44p1_l1_0,&_44p1_p6_1,&_44p1_p6_2}, 231 } 232 }; 233 static const static_bookblock _resbook_44p_l2={ 234 { 235 {&_44p2_l0_0,&_44p2_l0_1,0}, 236 {&_44p2_l1_0,&_44p2_p7_2,&_44p2_p7_3}, 237 } 238 }; 239 static const static_bookblock _resbook_44p_l3={ 240 { 241 {&_44p3_l0_0,&_44p3_l0_1,0}, 242 {&_44p3_l1_0,&_44p3_p7_2,&_44p3_p7_3}, 243 } 244 }; 245 static const static_bookblock _resbook_44p_l4={ 246 { 247 {&_44p4_l0_0,&_44p4_l0_1,0}, 248 {&_44p4_l1_0,&_44p4_p7_2,&_44p4_p7_3}, 249 } 250 }; 251 static const static_bookblock _resbook_44p_l5={ 252 { 253 {&_44p5_l0_0,&_44p5_l0_1,0}, 254 {&_44p5_l1_0,&_44p5_p7_2,&_44p5_p7_3}, 255 } 256 }; 257 static const static_bookblock _resbook_44p_l6={ 258 { 259 {&_44p6_l0_0,&_44p6_l0_1,0}, 260 {&_44p6_l1_0,&_44p6_p7_2,&_44p6_p7_3}, 261 } 262 }; 263 static const static_bookblock _resbook_44p_l7={ 264 { 265 {&_44p7_l0_0,&_44p7_l0_1,0}, 266 {&_44p7_l1_0,&_44p7_p7_2,&_44p7_p7_3}, 267 } 268 }; 269 static const static_bookblock _resbook_44p_l8={ 270 { 271 {&_44p8_l0_0,&_44p8_l0_1,0}, 272 {&_44p8_l1_0,&_44p8_p7_2,&_44p8_p7_3}, 273 } 274 }; 275 static const static_bookblock _resbook_44p_l9={ 276 { 277 {&_44p9_l0_0,&_44p9_l0_1,0}, 278 {&_44p9_l1_0,&_44p9_p7_2,&_44p9_p7_3}, 279 } 280 }; 281 282 283 static const vorbis_info_mapping0 _map_nominal_51[2]={ 284 {2, {0,0,0,0,0,1}, {0,2}, {0,2}, 4,{0,3,0,0},{2,4,1,3}}, 285 {2, {0,0,0,0,0,1}, {1,2}, {1,2}, 4,{0,3,0,0},{2,4,1,3}} 286 }; 287 static const vorbis_info_mapping0 _map_nominal_51u[2]={ 288 {2, {0,0,0,0,0,1}, {0,2}, {0,2}, 0,{0},{0}}, 289 {2, {0,0,0,0,0,1}, {1,2}, {1,2}, 0,{0},{0}} 290 }; 291 292 static const vorbis_residue_template _res_44p51_n1[]={ 293 {2,0,30, &_residue_44p_lo, 294 &_huff_book__44pn1_short,&_huff_book__44pn1_short, 295 &_resbook_44p_n1,&_resbook_44p_n1}, 296 297 {2,0,30, &_residue_44p_lo, 298 &_huff_book__44pn1_long,&_huff_book__44pn1_long, 299 &_resbook_44p_n1,&_resbook_44p_n1}, 300 301 {1,2,6, &_residue_44p_lfe, 302 &_huff_book__44pn1_lfe,&_huff_book__44pn1_lfe, 303 &_resbook_44p_ln1,&_resbook_44p_ln1} 304 }; 305 static const vorbis_residue_template _res_44p51_0[]={ 306 {2,0,15, &_residue_44p_lo, 307 &_huff_book__44p0_short,&_huff_book__44p0_short, 308 &_resbook_44p_0,&_resbook_44p_0}, 309 310 {2,0,30, &_residue_44p_lo, 311 &_huff_book__44p0_long,&_huff_book__44p0_long, 312 &_resbook_44p_0,&_resbook_44p_0}, 313 314 {1,2,6, &_residue_44p_lfe, 315 &_huff_book__44p0_lfe,&_huff_book__44p0_lfe, 316 &_resbook_44p_l0,&_resbook_44p_l0} 317 }; 318 static const vorbis_residue_template _res_44p51_1[]={ 319 {2,0,15, &_residue_44p_lo, 320 &_huff_book__44p1_short,&_huff_book__44p1_short, 321 &_resbook_44p_1,&_resbook_44p_1}, 322 323 {2,0,30, &_residue_44p_lo, 324 &_huff_book__44p1_long,&_huff_book__44p1_long, 325 &_resbook_44p_1,&_resbook_44p_1}, 326 327 {1,2,6, &_residue_44p_lfe, 328 &_huff_book__44p1_lfe,&_huff_book__44p1_lfe, 329 &_resbook_44p_l1,&_resbook_44p_l1} 330 }; 331 static const vorbis_residue_template _res_44p51_2[]={ 332 {2,0,15, &_residue_44p, 333 &_huff_book__44p2_short,&_huff_book__44p2_short, 334 &_resbook_44p_2,&_resbook_44p_2}, 335 336 {2,0,30, &_residue_44p, 337 &_huff_book__44p2_long,&_huff_book__44p2_long, 338 &_resbook_44p_2,&_resbook_44p_2}, 339 340 {1,2,6, &_residue_44p_lfe, 341 &_huff_book__44p2_lfe,&_huff_book__44p2_lfe, 342 &_resbook_44p_l2,&_resbook_44p_l2} 343 }; 344 static const vorbis_residue_template _res_44p51_3[]={ 345 {2,0,15, &_residue_44p, 346 &_huff_book__44p3_short,&_huff_book__44p3_short, 347 &_resbook_44p_3,&_resbook_44p_3}, 348 349 {2,0,30, &_residue_44p, 350 &_huff_book__44p3_long,&_huff_book__44p3_long, 351 &_resbook_44p_3,&_resbook_44p_3}, 352 353 {1,2,6, &_residue_44p_lfe, 354 &_huff_book__44p3_lfe,&_huff_book__44p3_lfe, 355 &_resbook_44p_l3,&_resbook_44p_l3} 356 }; 357 static const vorbis_residue_template _res_44p51_4[]={ 358 {2,0,15, &_residue_44p, 359 &_huff_book__44p4_short,&_huff_book__44p4_short, 360 &_resbook_44p_4,&_resbook_44p_4}, 361 362 {2,0,30, &_residue_44p, 363 &_huff_book__44p4_long,&_huff_book__44p4_long, 364 &_resbook_44p_4,&_resbook_44p_4}, 365 366 {1,2,6, &_residue_44p_lfe, 367 &_huff_book__44p4_lfe,&_huff_book__44p4_lfe, 368 &_resbook_44p_l4,&_resbook_44p_l4} 369 }; 370 static const vorbis_residue_template _res_44p51_5[]={ 371 {2,0,15, &_residue_44p_hi, 372 &_huff_book__44p5_short,&_huff_book__44p5_short, 373 &_resbook_44p_5,&_resbook_44p_5}, 374 375 {2,0,30, &_residue_44p_hi, 376 &_huff_book__44p5_long,&_huff_book__44p5_long, 377 &_resbook_44p_5,&_resbook_44p_5}, 378 379 {1,2,6, &_residue_44p_lfe, 380 &_huff_book__44p5_lfe,&_huff_book__44p5_lfe, 381 &_resbook_44p_l5,&_resbook_44p_l5} 382 }; 383 static const vorbis_residue_template _res_44p51_6[]={ 384 {2,0,15, &_residue_44p_hi, 385 &_huff_book__44p6_short,&_huff_book__44p6_short, 386 &_resbook_44p_6,&_resbook_44p_6}, 387 388 {2,0,30, &_residue_44p_hi, 389 &_huff_book__44p6_long,&_huff_book__44p6_long, 390 &_resbook_44p_6,&_resbook_44p_6}, 391 392 {1,2,6, &_residue_44p_lfe, 393 &_huff_book__44p6_lfe,&_huff_book__44p6_lfe, 394 &_resbook_44p_l6,&_resbook_44p_l6} 395 }; 396 397 398 static const vorbis_residue_template _res_44p51_7[]={ 399 {2,0,15, &_residue_44p_hi, 400 &_huff_book__44p7_short,&_huff_book__44p7_short, 401 &_resbook_44p_7,&_resbook_44p_7}, 402 403 {2,0,30, &_residue_44p_hi, 404 &_huff_book__44p7_long,&_huff_book__44p7_long, 405 &_resbook_44p_7,&_resbook_44p_7}, 406 407 {1,2,6, &_residue_44p_lfe, 408 &_huff_book__44p6_lfe,&_huff_book__44p6_lfe, 409 &_resbook_44p_l6,&_resbook_44p_l6} 410 }; 411 static const vorbis_residue_template _res_44p51_8[]={ 412 {2,0,15, &_residue_44p_hi, 413 &_huff_book__44p8_short,&_huff_book__44p8_short, 414 &_resbook_44p_8,&_resbook_44p_8}, 415 416 {2,0,30, &_residue_44p_hi, 417 &_huff_book__44p8_long,&_huff_book__44p8_long, 418 &_resbook_44p_8,&_resbook_44p_8}, 419 420 {1,2,6, &_residue_44p_lfe, 421 &_huff_book__44p6_lfe,&_huff_book__44p6_lfe, 422 &_resbook_44p_l6,&_resbook_44p_l6} 423 }; 424 static const vorbis_residue_template _res_44p51_9[]={ 425 {2,0,15, &_residue_44p_hi, 426 &_huff_book__44p9_short,&_huff_book__44p9_short, 427 &_resbook_44p_9,&_resbook_44p_9}, 428 429 {2,0,30, &_residue_44p_hi, 430 &_huff_book__44p9_long,&_huff_book__44p9_long, 431 &_resbook_44p_9,&_resbook_44p_9}, 432 433 {1,2,6, &_residue_44p_lfe, 434 &_huff_book__44p6_lfe,&_huff_book__44p6_lfe, 435 &_resbook_44p_l6,&_resbook_44p_l6} 436 }; 437 438 static const vorbis_mapping_template _mapres_template_44_51[]={ 439 { _map_nominal_51, _res_44p51_n1 }, /* -1 */ 440 { _map_nominal_51, _res_44p51_0 }, /* 0 */ 441 { _map_nominal_51, _res_44p51_1 }, /* 1 */ 442 { _map_nominal_51, _res_44p51_2 }, /* 2 */ 443 { _map_nominal_51, _res_44p51_3 }, /* 3 */ 444 { _map_nominal_51, _res_44p51_4 }, /* 4 */ 445 { _map_nominal_51u, _res_44p51_5 }, /* 5 */ 446 { _map_nominal_51u, _res_44p51_6 }, /* 6 */ 447 { _map_nominal_51u, _res_44p51_7 }, /* 7 */ 448 { _map_nominal_51u, _res_44p51_8 }, /* 8 */ 449 { _map_nominal_51u, _res_44p51_9 }, /* 9 */ 450 };