static void extract_exponents(AC3EncodeContext *s)
{
    int blk, ch, i;

    for (ch = 0; ch < s->channels; ch++) {
        for (blk = 0; blk < AC3_MAX_BLOCKS; blk++) {
            AC3Block *block = &s->blocks[blk];
            uint8_t *exp   = block->exp[ch];
            int32_t *coef = block->fixed_coef[ch];
            for (i = 0; i < AC3_MAX_COEFS; i++) {
                int e;
                int v = abs(coef[i]);
                if (v == 0)
                    e = 24;
                else {
                    e = 23 - av_log2(v);
                    if (e >= 24) {
                        e = 24;
                        coef[i] = 0;
                    }
                    av_assert2(e >= 0);
                }
                exp[i] = e;
            }
        }
    }
}