37 #define BITSTREAM_READER_LE
43 -0.8472560048, 0.7224709988,
45 -1.5247479677,-0.4531480074, 0.3753609955, 1.4717899561,
47 -1.9822579622,-1.1929379702,-0.5829370022,-0.0693780035, 0.3909569979, 0.9069200158, 1.4862740040, 2.2215409279,
49 -2.3887870312,-1.8067539930,-1.4105420113,-1.0773609877,-0.7995010018,-0.5558109879,-0.3334020078,-0.1324490011,
50 0.0568020009, 0.2548770010, 0.4773550034, 0.7386850119, 1.0443060398, 1.3954459429, 1.8098750114, 2.3918759823,
52 -2.3893830776,-1.9884680510,-1.7514040470,-1.5643119812,-1.3922129869,-1.2164649963,-1.0469499826,-0.8905100226,
53 -0.7645580173,-0.6454579830,-0.5259280205,-0.4059549868,-0.3029719889,-0.2096900046,-0.1239869967,-0.0479229987,
54 0.0257730000, 0.1001340002, 0.1737180054, 0.2585540116, 0.3522900045, 0.4569880068, 0.5767750144, 0.7003160119,
55 0.8425520062, 1.0093879700, 1.1821349859, 1.3534560204, 1.5320819616, 1.7332619429, 1.9722349644, 2.3978140354,
57 -2.5756309032,-2.0573320389,-1.8984919786,-1.7727810144,-1.6662600040,-1.5742180347,-1.4993319511,-1.4316639900,
58 -1.3652280569,-1.3000990152,-1.2280930281,-1.1588579416,-1.0921250582,-1.0135740042,-0.9202849865,-0.8287050128,
59 -0.7374889851,-0.6447759867,-0.5590940118,-0.4857139885,-0.4110319912,-0.3459700048,-0.2851159871,-0.2341620028,
60 -0.1870580018,-0.1442500055,-0.1107169986,-0.0739680007,-0.0365610011,-0.0073290002, 0.0203610007, 0.0479039997,
61 0.0751969963, 0.0980999991, 0.1220389977, 0.1458999962, 0.1694349945, 0.1970459968, 0.2252430022, 0.2556869984,
62 0.2870100141, 0.3197099864, 0.3525829911, 0.3889069855, 0.4334920049, 0.4769459963, 0.5204820037, 0.5644530058,
63 0.6122040153, 0.6685929894, 0.7341650128, 0.8032159805, 0.8784040213, 0.9566209912, 1.0397069454, 1.1293770075,
64 1.2211159468, 1.3080279827, 1.4024800062, 1.5056819916, 1.6227730513, 1.7724959850, 1.9430880547, 2.2903931141
68 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 4, 4, 5, 6, 6, 7, 8, 9, 10, 12, 14, 15
72 3134, 5342, 6870, 7792, 8569, 9185, 9744, 10191, 10631, 11061, 11434, 11770,
73 12116, 12513, 12925, 13300, 13674, 14027, 14352, 14716, 15117, 15477, 15824,
74 16157, 16513, 16804, 17090, 17401, 17679, 17948, 18238, 18520, 18764, 19078,
75 19381, 19640, 19921, 20205, 20500, 20813, 21162, 21465, 21794, 22137, 22453,
76 22756, 23067, 23350, 23636, 23926, 24227, 24521, 24819, 25107, 25414, 25730,
77 26120, 26497, 26895, 27344, 27877, 28463, 29426, 31355
81 -11725, -9420, -7910, -6801, -5948, -5233, -4599, -4039, -3507, -3030, -2596,
82 -2170, -1774, -1383, -1016, -660, -329, -1, 337, 696, 1085, 1512, 1962, 2433,
83 2968, 3569, 4314, 5279, 6622, 8154, 10076, 12975
98 b = ((b>>(shift-1))+1)>>1;
121 int bitsum = 0, last_bitsum, small_bitsum, big_bitsum;
122 short shift, shift_saved;
123 int max, sum, last_off, tmp;
124 int big_off, small_off;
129 max =
FFMAX(max, buf[i]);
137 sbuf[i] = (3*sbuf[i])>>2;
150 bitsum =
sum_bits(sbuf, shift_saved, small_off);
155 for(shift=0;
FFABS(off) <= 16383; shift++)
163 for (j = 1; j < 20; j++) {
164 last_off = small_off;
166 last_bitsum = bitsum;
168 bitsum =
sum_bits(sbuf, shift_saved, small_off);
170 if ((bitsum-NELLY_DETAIL_BITS) * (last_bitsum-NELLY_DETAIL_BITS) <= 0)
174 if (bitsum > NELLY_DETAIL_BITS) {
176 small_off = last_off;
178 small_bitsum=last_bitsum;
181 big_bitsum=last_bitsum;
185 while (bitsum != NELLY_DETAIL_BITS && j <= 19) {
186 off = (big_off+small_off)>>1;
187 bitsum =
sum_bits(sbuf, shift_saved, off);
188 if (bitsum > NELLY_DETAIL_BITS) {
198 if (abs(big_bitsum-NELLY_DETAIL_BITS) >=
199 abs(small_bitsum-NELLY_DETAIL_BITS)) {
200 bitsum = small_bitsum;
208 tmp = sbuf[i]-small_off;
209 tmp = ((tmp>>(shift_saved-1))+1)>>1;
static int signed_shift(int i, int shift)
static int shift(int a, int b)
const float ff_nelly_dequantization_table[127]
static int sum_bits(short *buf, short shift, short off)
#define NELLY_DETAIL_BITS
const uint16_t ff_nelly_init_table[64]
static int headroom(int *la)
bitstream reader API header.
const uint8_t ff_nelly_band_sizes_table[NELLY_BANDS]
#define FFABS(a)
Absolute value, Note, INT_MIN / INT64_MIN result in undefined behavior as they are not representable ...
Libavcodec external API header.
const int16_t ff_nelly_delta_table[32]
void ff_nelly_get_sample_bits(const float *buf, int *bits)
The 3 alphanumeric copyright notices are md5summed they are from the original implementors.