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: toplevel residue templates for 32/44.1/48kHz 14 last mod: $Id: residue_44.h 16227 2009-07-08 06:58:46Z xiphmont $ 15 16 ********************************************************************/ 17 18#include "vorbis/codec.h" 19#include "backends.h" 20#include "books/coupled/res_books_stereo.h" 21 22/***** residue backends *********************************************/ 23 24static const vorbis_info_residue0 _residue_44_low={ 25 0,-1, -1, 9,-1, 26 /* 0 1 2 3 4 5 6 7 */ 27 {0}, 28 {-1}, 29 { .5, 1.5, 2.5, 2.5, 4.5, 8.5, 16.5, 32.5}, 30 { .5, .5, .5, 999., 4.5, 8.5, 16.5, 32.5}, 31}; 32 33static const vorbis_info_residue0 _residue_44_mid={ 34 0,-1, -1, 10,-1, 35 /* 0 1 2 3 4 5 6 7 8 */ 36 {0}, 37 {-1}, 38 { .5, 1.5, 1.5, 2.5, 2.5, 4.5, 8.5, 16.5, 32.5}, 39 { .5, .5, 999., .5, 999., 4.5, 8.5, 16.5, 32.5}, 40}; 41 42static const vorbis_info_residue0 _residue_44_high={ 43 0,-1, -1, 10,-1, 44 /* 0 1 2 3 4 5 6 7 8 */ 45 {0}, 46 {-1}, 47 { .5, 1.5, 2.5, 4.5, 8.5, 16.5, 32.5, 71.5,157.5}, 48 { .5, 1.5, 2.5, 3.5, 4.5, 8.5, 16.5, 71.5,157.5}, 49}; 50 51static const static_bookblock _resbook_44s_n1={ 52 { 53 {0},{0,0,&_44cn1_s_p1_0},{0,0,&_44cn1_s_p2_0}, 54 {0,0,&_44cn1_s_p3_0},{0,0,&_44cn1_s_p4_0},{0,0,&_44cn1_s_p5_0}, 55 {&_44cn1_s_p6_0,&_44cn1_s_p6_1},{&_44cn1_s_p7_0,&_44cn1_s_p7_1}, 56 {&_44cn1_s_p8_0,&_44cn1_s_p8_1,&_44cn1_s_p8_2} 57 } 58}; 59static const static_bookblock _resbook_44sm_n1={ 60 { 61 {0},{0,0,&_44cn1_sm_p1_0},{0,0,&_44cn1_sm_p2_0}, 62 {0,0,&_44cn1_sm_p3_0},{0,0,&_44cn1_sm_p4_0},{0,0,&_44cn1_sm_p5_0}, 63 {&_44cn1_sm_p6_0,&_44cn1_sm_p6_1},{&_44cn1_sm_p7_0,&_44cn1_sm_p7_1}, 64 {&_44cn1_sm_p8_0,&_44cn1_sm_p8_1,&_44cn1_sm_p8_2} 65 } 66}; 67 68static const static_bookblock _resbook_44s_0={ 69 { 70 {0},{0,0,&_44c0_s_p1_0},{0,0,&_44c0_s_p2_0}, 71 {0,0,&_44c0_s_p3_0},{0,0,&_44c0_s_p4_0},{0,0,&_44c0_s_p5_0}, 72 {&_44c0_s_p6_0,&_44c0_s_p6_1},{&_44c0_s_p7_0,&_44c0_s_p7_1}, 73 {&_44c0_s_p8_0,&_44c0_s_p8_1,&_44c0_s_p8_2} 74 } 75}; 76static const static_bookblock _resbook_44sm_0={ 77 { 78 {0},{0,0,&_44c0_sm_p1_0},{0,0,&_44c0_sm_p2_0}, 79 {0,0,&_44c0_sm_p3_0},{0,0,&_44c0_sm_p4_0},{0,0,&_44c0_sm_p5_0}, 80 {&_44c0_sm_p6_0,&_44c0_sm_p6_1},{&_44c0_sm_p7_0,&_44c0_sm_p7_1}, 81 {&_44c0_sm_p8_0,&_44c0_sm_p8_1,&_44c0_sm_p8_2} 82 } 83}; 84 85static const static_bookblock _resbook_44s_1={ 86 { 87 {0},{0,0,&_44c1_s_p1_0},{0,0,&_44c1_s_p2_0}, 88 {0,0,&_44c1_s_p3_0},{0,0,&_44c1_s_p4_0},{0,0,&_44c1_s_p5_0}, 89 {&_44c1_s_p6_0,&_44c1_s_p6_1},{&_44c1_s_p7_0,&_44c1_s_p7_1}, 90 {&_44c1_s_p8_0,&_44c1_s_p8_1,&_44c1_s_p8_2} 91 } 92}; 93static const static_bookblock _resbook_44sm_1={ 94 { 95 {0},{0,0,&_44c1_sm_p1_0},{0,0,&_44c1_sm_p2_0}, 96 {0,0,&_44c1_sm_p3_0},{0,0,&_44c1_sm_p4_0},{0,0,&_44c1_sm_p5_0}, 97 {&_44c1_sm_p6_0,&_44c1_sm_p6_1},{&_44c1_sm_p7_0,&_44c1_sm_p7_1}, 98 {&_44c1_sm_p8_0,&_44c1_sm_p8_1,&_44c1_sm_p8_2} 99 } 100}; 101 102static const static_bookblock _resbook_44s_2={ 103 { 104 {0},{0,0,&_44c2_s_p1_0},{0,0,&_44c2_s_p2_0},{0,0,&_44c2_s_p3_0}, 105 {0,0,&_44c2_s_p4_0},{0,0,&_44c2_s_p5_0},{0,0,&_44c2_s_p6_0}, 106 {&_44c2_s_p7_0,&_44c2_s_p7_1},{&_44c2_s_p8_0,&_44c2_s_p8_1}, 107 {&_44c2_s_p9_0,&_44c2_s_p9_1,&_44c2_s_p9_2} 108 } 109}; 110static const static_bookblock _resbook_44s_3={ 111 { 112 {0},{0,0,&_44c3_s_p1_0},{0,0,&_44c3_s_p2_0},{0,0,&_44c3_s_p3_0}, 113 {0,0,&_44c3_s_p4_0},{0,0,&_44c3_s_p5_0},{0,0,&_44c3_s_p6_0}, 114 {&_44c3_s_p7_0,&_44c3_s_p7_1},{&_44c3_s_p8_0,&_44c3_s_p8_1}, 115 {&_44c3_s_p9_0,&_44c3_s_p9_1,&_44c3_s_p9_2} 116 } 117}; 118static const static_bookblock _resbook_44s_4={ 119 { 120 {0},{0,0,&_44c4_s_p1_0},{0,0,&_44c4_s_p2_0},{0,0,&_44c4_s_p3_0}, 121 {0,0,&_44c4_s_p4_0},{0,0,&_44c4_s_p5_0},{0,0,&_44c4_s_p6_0}, 122 {&_44c4_s_p7_0,&_44c4_s_p7_1},{&_44c4_s_p8_0,&_44c4_s_p8_1}, 123 {&_44c4_s_p9_0,&_44c4_s_p9_1,&_44c4_s_p9_2} 124 } 125}; 126static const static_bookblock _resbook_44s_5={ 127 { 128 {0},{0,0,&_44c5_s_p1_0},{0,0,&_44c5_s_p2_0},{0,0,&_44c5_s_p3_0}, 129 {0,0,&_44c5_s_p4_0},{0,0,&_44c5_s_p5_0},{0,0,&_44c5_s_p6_0}, 130 {&_44c5_s_p7_0,&_44c5_s_p7_1},{&_44c5_s_p8_0,&_44c5_s_p8_1}, 131 {&_44c5_s_p9_0,&_44c5_s_p9_1,&_44c5_s_p9_2} 132 } 133}; 134static const static_bookblock _resbook_44s_6={ 135 { 136 {0},{0,0,&_44c6_s_p1_0},{0,0,&_44c6_s_p2_0},{0,0,&_44c6_s_p3_0}, 137 {0,0,&_44c6_s_p4_0}, 138 {&_44c6_s_p5_0,&_44c6_s_p5_1}, 139 {&_44c6_s_p6_0,&_44c6_s_p6_1}, 140 {&_44c6_s_p7_0,&_44c6_s_p7_1}, 141 {&_44c6_s_p8_0,&_44c6_s_p8_1}, 142 {&_44c6_s_p9_0,&_44c6_s_p9_1,&_44c6_s_p9_2} 143 } 144}; 145static const static_bookblock _resbook_44s_7={ 146 { 147 {0},{0,0,&_44c7_s_p1_0},{0,0,&_44c7_s_p2_0},{0,0,&_44c7_s_p3_0}, 148 {0,0,&_44c7_s_p4_0}, 149 {&_44c7_s_p5_0,&_44c7_s_p5_1}, 150 {&_44c7_s_p6_0,&_44c7_s_p6_1}, 151 {&_44c7_s_p7_0,&_44c7_s_p7_1}, 152 {&_44c7_s_p8_0,&_44c7_s_p8_1}, 153 {&_44c7_s_p9_0,&_44c7_s_p9_1,&_44c7_s_p9_2} 154 } 155}; 156static const static_bookblock _resbook_44s_8={ 157 { 158 {0},{0,0,&_44c8_s_p1_0},{0,0,&_44c8_s_p2_0},{0,0,&_44c8_s_p3_0}, 159 {0,0,&_44c8_s_p4_0}, 160 {&_44c8_s_p5_0,&_44c8_s_p5_1}, 161 {&_44c8_s_p6_0,&_44c8_s_p6_1}, 162 {&_44c8_s_p7_0,&_44c8_s_p7_1}, 163 {&_44c8_s_p8_0,&_44c8_s_p8_1}, 164 {&_44c8_s_p9_0,&_44c8_s_p9_1,&_44c8_s_p9_2} 165 } 166}; 167static const static_bookblock _resbook_44s_9={ 168 { 169 {0},{0,0,&_44c9_s_p1_0},{0,0,&_44c9_s_p2_0},{0,0,&_44c9_s_p3_0}, 170 {0,0,&_44c9_s_p4_0}, 171 {&_44c9_s_p5_0,&_44c9_s_p5_1}, 172 {&_44c9_s_p6_0,&_44c9_s_p6_1}, 173 {&_44c9_s_p7_0,&_44c9_s_p7_1}, 174 {&_44c9_s_p8_0,&_44c9_s_p8_1}, 175 {&_44c9_s_p9_0,&_44c9_s_p9_1,&_44c9_s_p9_2} 176 } 177}; 178 179static const vorbis_residue_template _res_44s_n1[]={ 180 {2,0, &_residue_44_low, 181 &_huff_book__44cn1_s_short,&_huff_book__44cn1_sm_short, 182 &_resbook_44s_n1,&_resbook_44sm_n1}, 183 184 {2,0, &_residue_44_low, 185 &_huff_book__44cn1_s_long,&_huff_book__44cn1_sm_long, 186 &_resbook_44s_n1,&_resbook_44sm_n1} 187}; 188static const vorbis_residue_template _res_44s_0[]={ 189 {2,0, &_residue_44_low, 190 &_huff_book__44c0_s_short,&_huff_book__44c0_sm_short, 191 &_resbook_44s_0,&_resbook_44sm_0}, 192 193 {2,0, &_residue_44_low, 194 &_huff_book__44c0_s_long,&_huff_book__44c0_sm_long, 195 &_resbook_44s_0,&_resbook_44sm_0} 196}; 197static const vorbis_residue_template _res_44s_1[]={ 198 {2,0, &_residue_44_low, 199 &_huff_book__44c1_s_short,&_huff_book__44c1_sm_short, 200 &_resbook_44s_1,&_resbook_44sm_1}, 201 202 {2,0, &_residue_44_low, 203 &_huff_book__44c1_s_long,&_huff_book__44c1_sm_long, 204 &_resbook_44s_1,&_resbook_44sm_1} 205}; 206 207static const vorbis_residue_template _res_44s_2[]={ 208 {2,0, &_residue_44_mid, 209 &_huff_book__44c2_s_short,&_huff_book__44c2_s_short, 210 &_resbook_44s_2,&_resbook_44s_2}, 211 212 {2,0, &_residue_44_mid, 213 &_huff_book__44c2_s_long,&_huff_book__44c2_s_long, 214 &_resbook_44s_2,&_resbook_44s_2} 215}; 216static const vorbis_residue_template _res_44s_3[]={ 217 {2,0, &_residue_44_mid, 218 &_huff_book__44c3_s_short,&_huff_book__44c3_s_short, 219 &_resbook_44s_3,&_resbook_44s_3}, 220 221 {2,0, &_residue_44_mid, 222 &_huff_book__44c3_s_long,&_huff_book__44c3_s_long, 223 &_resbook_44s_3,&_resbook_44s_3} 224}; 225static const vorbis_residue_template _res_44s_4[]={ 226 {2,0, &_residue_44_mid, 227 &_huff_book__44c4_s_short,&_huff_book__44c4_s_short, 228 &_resbook_44s_4,&_resbook_44s_4}, 229 230 {2,0, &_residue_44_mid, 231 &_huff_book__44c4_s_long,&_huff_book__44c4_s_long, 232 &_resbook_44s_4,&_resbook_44s_4} 233}; 234static const vorbis_residue_template _res_44s_5[]={ 235 {2,0, &_residue_44_mid, 236 &_huff_book__44c5_s_short,&_huff_book__44c5_s_short, 237 &_resbook_44s_5,&_resbook_44s_5}, 238 239 {2,0, &_residue_44_mid, 240 &_huff_book__44c5_s_long,&_huff_book__44c5_s_long, 241 &_resbook_44s_5,&_resbook_44s_5} 242}; 243static const vorbis_residue_template _res_44s_6[]={ 244 {2,0, &_residue_44_high, 245 &_huff_book__44c6_s_short,&_huff_book__44c6_s_short, 246 &_resbook_44s_6,&_resbook_44s_6}, 247 248 {2,0, &_residue_44_high, 249 &_huff_book__44c6_s_long,&_huff_book__44c6_s_long, 250 &_resbook_44s_6,&_resbook_44s_6} 251}; 252static const vorbis_residue_template _res_44s_7[]={ 253 {2,0, &_residue_44_high, 254 &_huff_book__44c7_s_short,&_huff_book__44c7_s_short, 255 &_resbook_44s_7,&_resbook_44s_7}, 256 257 {2,0, &_residue_44_high, 258 &_huff_book__44c7_s_long,&_huff_book__44c7_s_long, 259 &_resbook_44s_7,&_resbook_44s_7} 260}; 261static const vorbis_residue_template _res_44s_8[]={ 262 {2,0, &_residue_44_high, 263 &_huff_book__44c8_s_short,&_huff_book__44c8_s_short, 264 &_resbook_44s_8,&_resbook_44s_8}, 265 266 {2,0, &_residue_44_high, 267 &_huff_book__44c8_s_long,&_huff_book__44c8_s_long, 268 &_resbook_44s_8,&_resbook_44s_8} 269}; 270static const vorbis_residue_template _res_44s_9[]={ 271 {2,0, &_residue_44_high, 272 &_huff_book__44c9_s_short,&_huff_book__44c9_s_short, 273 &_resbook_44s_9,&_resbook_44s_9}, 274 275 {2,0, &_residue_44_high, 276 &_huff_book__44c9_s_long,&_huff_book__44c9_s_long, 277 &_resbook_44s_9,&_resbook_44s_9} 278}; 279 280static const vorbis_mapping_template _mapres_template_44_stereo[]={ 281 { _map_nominal, _res_44s_n1 }, /* -1 */ 282 { _map_nominal, _res_44s_0 }, /* 0 */ 283 { _map_nominal, _res_44s_1 }, /* 1 */ 284 { _map_nominal, _res_44s_2 }, /* 2 */ 285 { _map_nominal, _res_44s_3 }, /* 3 */ 286 { _map_nominal, _res_44s_4 }, /* 4 */ 287 { _map_nominal, _res_44s_5 }, /* 5 */ 288 { _map_nominal, _res_44s_6 }, /* 6 */ 289 { _map_nominal, _res_44s_7 }, /* 7 */ 290 { _map_nominal, _res_44s_8 }, /* 8 */ 291 { _map_nominal, _res_44s_9 }, /* 9 */ 292}; 293