深入剖析YUV444 YUV422 YUV420
最编程
2024-08-15 16:38:49
...
为了兼容黑白电视机和彩色电视机,引入YUV格式代替RGB,其中Y表示亮度, U和V表示色差。 黑白电视机只用Y信号, 而彩色电视机可由YUV转换成RGB再显示颜色。
YUV 和 RGB 转换公式
Y Y = 0.299 x R + 0.587 x G + 0.114 x B + 0
U Cb = -0.169 x R - 0.331 x G + 0.499 x B + 128
V Cr = 0.499 x R - 0.418 x G - 0.0813 x B + 128
YUV4:4:4
同一行的相邻4个像素数据: Y0U0V0 Y1U1V1 Y2U2V2 Y3U3V3
存储时: Y0 U0 V0 Y1 U1 V1 Y2 U2 V2 Y3 U3 V3 //即每个像素YUV的数据都会存放起来
为什么叫4:4:4 , 意思就是4个像素里的数据有4个Y,4个U,4个V
YUV4:2:2
其实绝大部分相邻的两个像素,数据差异应不大。所以为了节点空间便于存储,丢失每个像素的部分数据。研究表明人对亮度比较敏感,而对色彩不敏感。所以每个像素的亮度Y数据是绝对不动,对色差数据可以进行丢弃。
同一行的相邻4个像素数据:Y0U0V0 Y1U1V1 Y2U2V2 Y3U3V3
存储时: Y0 U0 Y1 V1 Y2 U2 Y3 V3 // 每两个相邻的像素,一个丢弃V数据,一个丢弃U数据
为什么叫4:2:2,意思就是相邻的4个像素里有4个Y,2个U,2个V。 按上面存储的顺序也叫YUYV.
但还原成RGB数据必须需要YUV, 像第一个像素只有Y0U0是没法还原的,这时只能用下一像素的V1数据。还原时的YUV:[Y0U0V1] [Y1U0V1] [Y2U2V3] [Y3U2V3] ,理论上对图象的质量产生影响,但是肉眼很难看出来
YUV4:2:0
进一步研究表示,每一行的相邻两个像素与下一行同位置的两个像素数据差异不大,可以进一步的丢数据。
两行的像素数据:
Y00U00V00 Y01U01V01 Y02U02V02 Y03U03V03 ......
Y10U10V10 Y11U11V11 Y12U12V12 Y13U13V13 ....
存储时:
Y00U00 Y01 Y02U02 Y03 //每个像素的Y数据保留, 两个像素数据只保留一个U数据。这一行不保留V数据(YUV: 420)
Y10V10 Y11 Y12V12 Y13 //每个像素的Y数据保留, 两个像素数据只保留一个V数据, 这行不保留U数据(YUV: 402)
还原时只能相同位置的上下两行4个像素结合还原:
Y00U00V10 Y01U00V10 Y02U02V12 Y03U02V12
Y10U00V10 Y11U00V10 Y12U02V12 Y13U02V12
推荐阅读
-
介绍YUV格式:YUV444、YUV422和YUV420解析
-
了解YUV和RGB的不同之处及其对YUV444、YUV422、YUV411和YUV420的介绍
-
踞觑yuv422、yuv420和yuv444间的差异
-
深入剖析YUV444 YUV422 YUV420
-
详解YUV444、YUV422、YUV420的可视化解释
-
音视频编解码-YUV采样格式中的YUV444,YUV422,YUV420理解(转)-YUV4:4:4
-
深入解析YUV格式(I420/YUV420/NV12/NV12/YUV422)
-
图像原始格式 YUV444 YUV422 YUV420 详细解析
-
深入解析YUV图像格式(YUV444, YUV422, YUV420, YV12, NV12, NV21)
-
【音视频系列1】视频格式YUV444、YUV422,、YUV420详解