数据压缩原理实验1_彩色空间转换实验(yuv转rgb)

本文介绍数据压缩原理中的YUV到RGB彩色空间转换实验,详细阐述了转换公式,实验流程,关键代码分析,以及实验结果和可能出现的误差。通过实验,作者强调了数据类型转换和指针管理在算法实现中的重要性。

数据压缩原理实验1_彩色空间转换实验(yuv转rgb)

一、本实验涉及到的基本原理

(1)RGB转为YUV

Y  =   0.299*R + 0.587*G + 0.114*B

B-Y =  -0.299*R + 0.413*G - 0.114*B

R-Y =   0.701*R - 0.587*G - 0.114*B

为了使色差信号的动态范围控制在-0.5至0.5之间,需要进行归一化,所以对色差信号引入了压缩系数。

归一化后的色差信号为:

U = 0.492*(B- Y) =  -0.147*R - 0.289*G + 0.436*B

V = 0.877*(R- Y) =   0.615*R - 0.515*G - 0.100*B

色差信号经过归一化处理后,动态范围控制在-0.5—0.5,让色差零电平对应码电平128,色差信号总共占225个量化级。

256级上端留15级,下端留16级作为信号超越动态范围的保护带,因此真正在代码中所实现的UV转换公式如下:

U =  -0.1684*R - 0.3316*G + 0.5*B   + 128

V =     0.5*R - 0.4187*G - 0.0813*B + 128

(2)YUV转RGB

R = Y + 1.140*V

G = Y - 0.394*U - 0.581*V

B = Y + 2.032*U

同样经过归一化处理,使其动态范围控制在-0.5—0.5之间,并让零电平对应码电平128,因此在代码中真正的RGB转换公式如下:

R=Y+1.1402*(V-128)

G=Y-0.34414*(U-128)-0.71414*(V-128)

B=Y+1.772*(U-128)

(3)YUV文件和RGB文件

YUV420文件是指4:2:0格式即色差信号UV在水平方向和水平方向上的取样点数均为亮度信号Y的一半,因此UV的取样频率为Y取样频率的四分之一。

YUV文件在存储上按先把一帧图像中每个像素的Y先存储再存储UV信号,存储方式如下:


RGB文件中每个像素都是由红绿蓝三色混合所得,需要注意的是在文件存储中每个像素按BGR进行逐个存储,存储方式如下:



评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值