public static DoubleColor Double(
            this AYUV yuv
            )
        {
            DoubleColor c = DoubleColor.Empty;

            c.R = (yuv.Y + 1.139837398373983740 * yuv.V) * 255.0;
            c.G = (yuv.Y - 0.3946517043589703515 * yuv.U - 0.5805986066674976801 * yuv.V) * 255.0;
            c.B = (yuv.Y + 2.032110091743119266 * yuv.U) * 255.0;
            c.A = yuv.A * 255.0;

            return(c);
        }
        public static AYUV ToAYUV(
            this DoubleColor c
            )
        {
            AYUV yuv = new AYUV();

            //
            // normalizes red, green, blue values
            //
            double r = (double)c.R / 255.0;
            double g = (double)c.G / 255.0;
            double b = (double)c.B / 255.0;

            yuv.Y = 0.299 * r + 0.587 * g + 0.114 * b;
            yuv.U = -0.14713 * r - 0.28886 * g + 0.436 * b;
            yuv.V = 0.615 * r - 0.51499 * g - 0.10001 * b;
            yuv.A = c.A / 255.0;

            return(yuv);
        }