从这篇文章开始,我们正式进入音视频技术的学习,本文主要给小伙伴们分享下音视频中编码前的图像格式,即YUV和RGB。
YUV,RGB,包括YcbCr是色彩空间的模型,而平常所说的BMP、PNG、JPEG是文件的存储形式。而YUV是音视频(编解码)最常用的格式。
1.YUV的数据格式是如何呢?
YUV有两种分类方式,即“空间-间”和“空间-内”。“空间-间”的划分方式主要体现在Y、U、V的比例不同;“空间-内”的划分方式主要体现在Y、U、V的比例一定,存储格式不同。
2.YUV“空间-间”的数据划分
YUV按照“空间-间”的划分方式,分为YUV444、YUV422、YUV420,如下所示,假设图像为1920*1080:
3.YUV“空间-内”的数据划分
YUV按照“空间-内”的划分方式,主要分为packet、planar、semi-planar三种:
◆ packet:打包格式,即先存储一个yuv,再存储下一个yuv;
◆ planar:平面格式,即先存储y平面,再存储u平面,再存储v平面;
◆ semi-planar:先存储y平面,再存储uv平面;
◆ YUV420各种存储格式如下:
针对上图中的NV12、NV21、NV16、NV61说明:
◆NV:NV系列都属于semi-plane系列,“12”、“16”代表先U后V,“21”、“61”代表先V后U
◆ 12、16:代表一个像素占的位数
4.YUV和RGB
RGB:即red,green,blue三色存储空间,因音视频主要用的是YUV的色彩空间,感兴趣的小伙伴可以拓展下RGB相关知识,本文不再详述。介绍下RGB和YUV的转换公式:
◆ RGB 转 YUV:
Y = 0.299R + 0.587G + 0.114B
U= -0.147R - 0.289G + 0.436B
V = 0.615R - 0.515G - 0.100B
◆ YUV 转 RGB:
R = Y + 1.14V
G = Y - 0.39U - 0.58V
B = Y + 2.03U
音视频入门系列文章已同步在微信公众号(可扫下方二维码关注):八小时码字员
音视频入门系列,同步录制了学习视频,已上传至bilibili(八小时码字员):音视频入门系列(图像、音频、字幕、视频封装格式,FFmpeg、ffplay源码分析,解码、编码、转码,流媒体协议,服务器部署)_哔哩哔哩_bilibili
音视频学习交流QQ群:693316541