YUV介绍
- Y: 标识明亮度,
- U: 蓝色色度分量,占8bit(1字节)
- V: 红色色度分量,占8bit(1字节)
YUV格式分析
YUA 4:4:4
也就是每个像素里都有Y,U,V数据,一个像素为3byte,和rgb一致
YUV 4:2:2
体积为rgb的四分之三
YUV 4:2:0 最常用的标准格式
体积为rgb的一半
YUV存储介绍
这样兼容黑白终端,可以分开读取Y层数据
YUV与RGB的关系
转化关系
Y = 0.257R + 0.504G + 0.098B + 16
U = -0.148R - 0.291G + 0.439B + 128
V = 0.439R - 0.368G - 0.071B + 128
R = 1.164(Y - 16) + 2.018(U - 128)
G = 1.164(Y - 16) - 0.813(V - 128) - 0.391(U - 128)
B = 1.164(Y - 16) + 1.596(V - 128)
两者有确定的转化关系,YUV可以通过RGB直接转化而来。
ffmpeg提取yuv文件
ffmpeg -i 1.mp4 -an -c:v rawvideo -pix_fmt yuv420p 1out.yuv
-i 入口文件 -an 不需要音频(audio null) -c:v 视频解码器 -pix_fmt 指定yuv的格式
可以看到,两者的体积差距有100:1, h264的压缩能力还是非常强大的。