Exemple #1
0
        private void ReduceBitsPerSample24Ns2(ConvertParams args, DataSubChunk toDsc)
        {
            var ns = new NoiseShaper2[mFsc.numChannels];

            for (int ch = 0; ch < mFsc.numChannels; ++ch)
            {
                ns[ch] = new NoiseShaper2(args.order, args.filter, args.newQuantizationBitrate);
            }

            int bytesPerFrame = mFsc.numChannels * mFsc.bitsPerSample / 8;
            int numFrames     = toDsc.data.Length / bytesPerFrame;

            int readPos  = 0;
            int writePos = 0;

            for (int i = 0; i < numFrames; ++i)
            {
                for (int ch = 0; ch < mFsc.numChannels; ++ch)
                {
                    int sample = 0;

                    sample   = ns[ch].Filter24(ReadSampleValue24(toDsc, readPos));
                    readPos += mFsc.bitsPerSample / 8;

                    WriteSampleValue24(toDsc, writePos, sample);
                    writePos += mFsc.bitsPerSample / 8;
                }
            }
        }
        private void ReduceBitsPerSample24Ns2(ConvertParams args, DataSubChunk toDsc)
        {
            var ns = new NoiseShaper2[mFsc.numChannels];
            for (int ch=0; ch < mFsc.numChannels; ++ch) {
                ns[ch] = new NoiseShaper2(args.order, args.filter, args.newQuantizationBitrate);
            }

            int bytesPerFrame = mFsc.numChannels * mFsc.bitsPerSample / 8;
            int numFrames = toDsc.data.Length / bytesPerFrame;

            int readPos = 0;
            int writePos = 0;
            for (int i=0; i < numFrames; ++i) {
                for (int ch=0; ch < mFsc.numChannels; ++ch) {
                    int sample = 0;

                    sample = ns[ch].Filter24(ReadSampleValue24(toDsc, readPos));
                    readPos += mFsc.bitsPerSample / 8;

                    WriteSampleValue24(toDsc, writePos, sample);
                    writePos += mFsc.bitsPerSample / 8;
                }
            }
        }