YUV知识点归纳

56 阅读1分钟

YUV介绍

  • Y: 标识明亮度,
  • U: 蓝色色度分量,占8bit(1字节)
  • V: 红色色度分量,占8bit(1字节)

YUV格式分析

YUA 4:4:4

image.png

也就是每个像素里都有Y,U,V数据,一个像素为3byte,和rgb一致

YUV 4:2:2

image.png 体积为rgb的四分之三

YUV 4:2:0 最常用的标准格式

image.png

体积为rgb的一半

YUV存储介绍

image.png

这样兼容黑白终端,可以分开读取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的格式

image.png

可以看到,两者的体积差距有100:1, h264的压缩能力还是非常强大的。