/// <summary> /// Returns the relative number of chroma (u or v) to luma (y) samples according to yuv format. /// </summary> /// <param name="format">the yuv format</param> /// <returns>relative number of samples (1, 0.5 or 0.25)</returns> public static float getLum2Chrom(YuvFormat format) { switch (format) { case YuvFormat.YUV444: return 1.0f; case YuvFormat.YUV422_UYVY: return 0.5f; case YuvFormat.YUV411_Y41P: return 0.25f; case YuvFormat.YUV420_IYUV: return 0.25f; default: throw new ArgumentException("Invalid YuvFormat set in VideoInfo."); } }
/// <summary> /// Gets the kind of <see cref="ChrominanceSubsampling"/> used by a given YuvFormat. /// </summary> /// <returns>The subsampling level.</returns> /// <param name="yuvFormat">The YuvFormat.</param> public static ChrominanceSubsampling GetSubsamplingLevel(this YuvFormat yuvFormat) { return(YUVSubsamp[(int)yuvFormat]); }