[16] | 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-2007 * |
---|
| 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 13293 2007-07-24 00:09:47Z xiphmont $ |
---|
| 15 | |
---|
| 16 | ********************************************************************/ |
---|
| 17 | |
---|
| 18 | #include "vorbis/codec.h" |
---|
| 19 | #include "backends.h" |
---|
| 20 | #include "books/floor/floor_books.h" |
---|
| 21 | |
---|
| 22 | static static_codebook *_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 static_codebook *_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 static_codebook *_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 static_codebook *_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 static_codebook *_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 static_codebook *_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 static_codebook *_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 static_codebook *_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 static_codebook *_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 static_codebook *_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 static_codebook **_floor_books[10]={ |
---|
| 149 | _floor_128x4_books, |
---|
| 150 | _floor_256x4_books, |
---|
| 151 | _floor_128x7_books, |
---|
| 152 | _floor_256x7_books, |
---|
| 153 | _floor_128x11_books, |
---|
| 154 | _floor_128x17_books, |
---|
| 155 | _floor_256x4low_books, |
---|
| 156 | _floor_1024x27_books, |
---|
| 157 | _floor_2048x27_books, |
---|
| 158 | _floor_512x17_books, |
---|
| 159 | }; |
---|
| 160 | |
---|
| 161 | static vorbis_info_floor1 _floor[10]={ |
---|
| 162 | /* 128 x 4 */ |
---|
| 163 | { |
---|
| 164 | 1,{0},{4},{2},{0}, |
---|
| 165 | {{1,2,3,4}}, |
---|
| 166 | 4,{0,128, 33,8,16,70}, |
---|
| 167 | |
---|
| 168 | 60,30,500, 1.,18., -1 |
---|
| 169 | }, |
---|
| 170 | /* 256 x 4 */ |
---|
| 171 | { |
---|
| 172 | 1,{0},{4},{2},{0}, |
---|
| 173 | {{1,2,3,4}}, |
---|
| 174 | 4,{0,256, 66,16,32,140}, |
---|
| 175 | |
---|
| 176 | 60,30,500, 1.,18., -1 |
---|
| 177 | }, |
---|
| 178 | /* 128 x 7 */ |
---|
| 179 | { |
---|
| 180 | 2,{0,1},{3,4},{2,2},{0,1}, |
---|
| 181 | {{-1,2,3,4},{-1,5,6,7}}, |
---|
| 182 | 4,{0,128, 14,4,58, 2,8,28,90}, |
---|
| 183 | |
---|
| 184 | 60,30,500, 1.,18., -1 |
---|
| 185 | }, |
---|
| 186 | /* 256 x 7 */ |
---|
| 187 | { |
---|
| 188 | 2,{0,1},{3,4},{2,2},{0,1}, |
---|
| 189 | {{-1,2,3,4},{-1,5,6,7}}, |
---|
| 190 | 4,{0,256, 28,8,116, 4,16,56,180}, |
---|
| 191 | |
---|
| 192 | 60,30,500, 1.,18., -1 |
---|
| 193 | }, |
---|
| 194 | /* 128 x 11 */ |
---|
| 195 | { |
---|
| 196 | 4,{0,1,2,3},{2,3,3,3},{0,1,2,2},{-1,0,1,2}, |
---|
| 197 | {{3},{4,5},{-1,6,7,8},{-1,9,10,11}}, |
---|
| 198 | |
---|
| 199 | 2,{0,128, 8,33, 4,16,70, 2,6,12, 23,46,90}, |
---|
| 200 | |
---|
| 201 | 60,30,500, 1,18., -1 |
---|
| 202 | }, |
---|
| 203 | /* 128 x 17 */ |
---|
| 204 | { |
---|
| 205 | 6,{0,1,1,2,3,3},{2,3,3,3},{0,1,2,2},{-1,0,1,2}, |
---|
| 206 | {{3},{4,5},{-1,6,7,8},{-1,9,10,11}}, |
---|
| 207 | 2,{0,128, 12,46, 4,8,16, 23,33,70, 2,6,10, 14,19,28, 39,58,90}, |
---|
| 208 | |
---|
| 209 | 60,30,500, 1,18., -1 |
---|
| 210 | }, |
---|
| 211 | /* 256 x 4 (low bitrate version) */ |
---|
| 212 | { |
---|
| 213 | 1,{0},{4},{2},{0}, |
---|
| 214 | {{1,2,3,4}}, |
---|
| 215 | 4,{0,256, 66,16,32,140}, |
---|
| 216 | |
---|
| 217 | 60,30,500, 1.,18., -1 |
---|
| 218 | }, |
---|
| 219 | /* 1024 x 27 */ |
---|
| 220 | { |
---|
| 221 | 8,{0,1,2,2,3,3,4,4},{3,4,3,4,3},{0,1,1,2,2},{-1,0,1,2,3}, |
---|
| 222 | {{4},{5,6},{7,8},{-1,9,10,11},{-1,12,13,14}}, |
---|
| 223 | 2,{0,1024, 93,23,372, 6,46,186,750, 14,33,65, 130,260,556, |
---|
| 224 | 3,10,18,28, 39,55,79,111, 158,220,312, 464,650,850}, |
---|
| 225 | |
---|
| 226 | 60,30,500, 3,18., -1 /* lowpass */ |
---|
| 227 | }, |
---|
| 228 | /* 2048 x 27 */ |
---|
| 229 | { |
---|
| 230 | 8,{0,1,2,2,3,3,4,4},{3,4,3,4,3},{0,1,1,2,2},{-1,0,1,2,3}, |
---|
| 231 | {{4},{5,6},{7,8},{-1,9,10,11},{-1,12,13,14}}, |
---|
| 232 | 2,{0,2048, 186,46,744, 12,92,372,1500, 28,66,130, 260,520,1112, |
---|
| 233 | 6,20,36,56, 78,110,158,222, 316,440,624, 928,1300,1700}, |
---|
| 234 | |
---|
| 235 | 60,30,500, 3,18., -1 /* lowpass */ |
---|
| 236 | }, |
---|
| 237 | /* 512 x 17 */ |
---|
| 238 | { |
---|
| 239 | 6,{0,1,1,2,3,3},{2,3,3,3},{0,1,2,2},{-1,0,1,2}, |
---|
| 240 | {{3},{4,5},{-1,6,7,8},{-1,9,10,11}}, |
---|
| 241 | 2,{0,512, 46,186, 16,33,65, 93,130,278, |
---|
| 242 | 7,23,39, 55,79,110, 156,232,360}, |
---|
| 243 | |
---|
| 244 | 60,30,500, 1,18., -1 /* lowpass! */ |
---|
| 245 | }, |
---|
| 246 | |
---|
| 247 | }; |
---|
| 248 | |
---|