数据压缩实验一——彩色空间转换

本文详细介绍了RGB与YUV彩色空间转换的实验原理,包括颜色空间的相互转换公式、码电平分配、色度格式以及4:2:0格式的处理。此外,还分析了实验流程,如数据读写、缓冲区管理和错误处理,并通过错误实例展示了正确计算RGB的方法。最后,实验结果显示虽然存在一定的误差,但在视觉上与原始文件无明显差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实验基本原理

     RGBYUV彩色空间的基础知识

 

(1).   YUVRGB空间的相互转换

 

由电视原理可知,每个像素的颜色由电视三原色RGB按不同比例合成决定,而亮度和色差信号YUV具有亮度信息和色彩信息分离的特点,RGB转亮度和色差信号公式如下:

Y = 0.2990R+0.5870G+0.1140B

R-Y = 0.7010R-0.5870G-0.1140B

B-Y = -0.2990R-0.5870G+0.8860B

 

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

U = 0.564 (B - Y) = -0.1684R-0.3316G+0.5B

V = 0.713 (R - Y) = 0.500R-0.4187G-0.0813B

 

为了以一字节无符号字符存储一个色差信号,须将归一化后范围为±0.5的色差信号调整到(0,1)之间,即量化后电平为0~255,得到最终的色差信号转换公式为:

U = (-0.1687R - 0.3313G + 0.500B) + 128

V = (0.500R - 0.4187G - 0.0813B) + 128

 

反过来,YUVRGB的公式如下:

R = Y + 1.402(V - 128)

G = Y – 0.3441(U - 128) – 0.7141(V - 128)

B = Y + 1.772(U - 128)

 

(2).   码电平分配及数字表达式

 

亮电平信号量化后码电平分配:

在对分量信号进行8比特均匀量化时,共分为256个等间隔的量化级。为了防止信号变动造成过载,在256级上端留20级,下端留16级作为信号超越动态范围的保护带。

 

色差信号量化后码电平分配:

色差信号经过归一化处理后,动态范围为-0.50.5,让色差零电平对应码电平128,色差信号总共占225个量化级。在256级上端留15级,下端留16级作为信号超越动态范围的保护带。

 

(3).   色度格式

 

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

 

RGBYUV时,逐帧输出UV信号,此时的色度格式为4:4:4,即每个像素分别有一个YUV分量,便需要进行对UV分量的下采样达到4:2:0格式。具体方法为每次对相邻四个像素的区域进行操作,计算此区域内四个像素UV分量的算术平均值,作为四个像素共有的UV分量,于是UV分量的个数分别为亮度信号Y1/4

 

YUVRGB时,由于每个UV分量对应相邻四个像素的RGB值的计算,应先将UV分量进行上采样,恢复与Y相同的个数,再逐像素进行YUVRGB的计算。

 

     数据类型的分析

RGB

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值