Android RGB转YUV的算法

将 ARGB(Alpha-Red-Green-Blue)颜色空间转换为 YUV(亮度-色度)颜色空间的常用算法有以下几种:

矩阵转换法

使用预定义的转换矩阵将 RGB 值转换为 YUV 值。其中,Y 表示亮度,U 和 V 表示色度。这种算法是最基本且常见的 RGB 到 YUV 的转换方法,但结果可能不是最精确的。

Y = 0.299 * R + 0.587 * G + 0.114 * B
U = -0.14713 * R - 0.28886 * G + 0.436 * B
V = 0.615 * R - 0.51499 * G - 0.10001 * B

JPEG 标准法

根据 JPEG 图像压缩标准,使用以下公式将 RGB 值转换为 YUV 值。这种方法相对于矩阵转换法,对 U 和 V 分量进行了偏移和缩放,以适应 YUV 的取值范围。

Y = 0.299 * R + 0.587 * G + 0.114 * B
U = -0.168736 * R - 0.331264 * G + 0.5 * B + 128
V = 0.5 * R - 0.418688 * G - 0.081312 * B + 128

ITU-R BT.601 标准法

根据国际电联网(ITU-R)的 BT.601 标准,使用以下公式将 RGB 值转换为 YUV 值。这种方法与矩阵转换法类似,但对 U 和 V 分量进行了偏移。

Y = 0.299 * R + 0.587 * G + 0.114 * B
U = -0.168736 * R - 0.331264 * G + 0.5 * B + 128
V = 0.5 * R - 0.418688 * G - 0.081312 * B + 128

你可能感兴趣的:(android,YUV,ARGB)