YUV 数据分析

2019-02-26  本文已影响13人  孤独的根号十二

简介:

YUV的原理是把亮度与色度分离,研究证明,人眼对亮度的敏感超过色度。利用这个原理,可以把色度信息减少一点,人眼也无法查觉这一点。YUV三个字母中,其中”Y”表示明亮度,也就是灰阶值;而”U”和”V”表示的则是色度,作用是描述影像色彩及饱和度,用于指定像素的颜色。用这个三个字母好象就是通道命令重点内容 ,咱们平时看到的YUV444、YUV422、YUV420,是指YUV所占的比例,色度信号分辨率最高的格式是4:4:4,也就是说,每4点Y采样,就有相对应的4点Cb和4点Cr。换句话说,在这种格式中,色度信号的分辨率和亮度信号的分辨率是相同的

YUV的操作

YUV的分离的分离与视频帧的宽高有关

YUV420P的分离

如果视频帧的宽和高分别为w和h,那么一帧YUV420P像素数据一共占用wh3/2 Byte的数据。其中前wh Byte存储Y,接着的wh1/4 Byte存储U,最后wh*1/4 Byte存储V

YUV444P的分离

如果视频帧的宽和高分别为w和h,那么一帧YUV444P像素数据一共占用wh3 Byte的数据。其中前wh Byte存储Y,接着的wh Byte存储U,最后w*h Byte存储V

YUV去除颜色原理

用memset()函数讲U和V的数据全部设置为128,这是因为U、V是图像中的经过偏置处理的色度分量。色度分量在偏置处理前的取值范围是-128至127,这时候的无色对应的是“0”值。经过偏置后色度分量取值变成了0至255,因而此时的无色对应的就是128了。

YUV420P像素数据的亮度减半

将图像的每个像素的Y值取出来分别进行除以2

PSNR

PSNR是最基本的视频质量评价方法,PSNR通常用于质量评价,就是计算受损图像与原始图像之间的差别,以此来评价受损图像的质量,PSNR取值通常情况下都在20-50的范围内,取值越高,代表两张图像越接近,反映出受损图像质量越好。


MSE计算公式.png
psnr计算公式.png

分离RGB24像素数据中的R、G、B分量

从代码可以看出,与YUV420P三个分量分开存储不同,RGB24格式的每个像素的三个分量是连续存储的。一帧宽高分别为w、h的RGB24图像一共占用wh3 Byte的存储空间。RGB24格式规定首先存储第一个像素的R、G、B,然后存储第二个像素的R、G、B…以此类推。类似于YUV420P的存储方式称为Planar方式,而类似于RGB24的存储方式称为Packed方式。

RGB24格式像素和BMP图像的关系

BMP图像内部实际上存储的就是RGB数据,BMP文件是由BITMAPFILEHEADER、BITMAPINFOHEADER、RGB像素数据共3个部分构成。

RGB24格式像素数据转换为YUV420P格式像素数据

公式:
Y= 0.299R+0.587G+0.114B
U=-0.147
R-0.289G+0.463B
V= 0.615R-0.515G-0.100*B

上一篇下一篇

猜你喜欢

热点阅读