javazoom.jl.decoder.LayerIIIDecoder.antialias C# (CSharp) Метод

antialias() приватный Метод

*
private antialias ( int ch, int gr ) : void
ch int
gr int
Результат void
        private void antialias(int ch, int gr)
        {
            int sb18, ss, sb18lim;
            gr_info_s gr_info = (si.ch[ch].gr[gr]);
            // 31 alias-reduction operations between each pair of sub-bands
            // with 8 butterflies between each pair

            if ((gr_info.window_switching_flag != 0) && (gr_info.block_type == 2) && !(gr_info.mixed_block_flag != 0))
                return ;

            if ((gr_info.window_switching_flag != 0) && (gr_info.mixed_block_flag != 0) && (gr_info.block_type == 2))
            {
                sb18lim = 18;
            }
            else
            {
                sb18lim = 558;
            }

            for (sb18 = 0; sb18 < sb18lim; sb18 += 18)
            {
                for (ss = 0; ss < 8; ss++)
                {
                    int src_idx1 = sb18 + 17 - ss;
                    int src_idx2 = sb18 + 18 + ss;
                    float bu = out_1d[src_idx1];
                    float bd = out_1d[src_idx2];
                    out_1d[src_idx1] = (bu * cs[ss]) - (bd * ca[ss]);
                    out_1d[src_idx2] = (bd * cs[ss]) + (bu * ca[ss]);
                }
            }
        }