Esempio n. 1
0
        public static Vector <int>[,] ApplyDct(BitmapSource bitmap, DctParameters dctParameters)
        {
            var map           = bitmap.GetMap();
            var mapInYCbCr    = ToYCbCr(map);
            var decimatedMap  = Decimate(mapInYCbCr, dctParameters.DecimationType);
            var blocks        = SplitToBlocks(decimatedMap, 8);
            var dct           = GetDctMatrix();
            var transposedDct = dct.Transpose();
            var appliedDct    = ApplyDct(blocks, dct, transposedDct);
            var quantizedDct  = QuantizeMatrices(appliedDct, dctParameters);

            return(Flatten(quantizedDct));
        }