立即注册
查看: 962|回复: 8

[资料] RGB转YCbCr算法之Matlab&FPGA实现介绍

已绑定手机
发表于 2021-8-23 11:35:38 | 显示全部楼层 |阅读模式 来自 广东省深圳市
1.引言
虽然现在RGB是计算机视觉最基本的三原色组成结构,但是YCbCr也有非常重要的角色,甚至却之不可,理由如下:
1)很多机器视觉,图像处理/检测识别算法,不关注色彩,只需要在灰度域处理即可;
2)包括HDMI接口,UVC协议,BT656/709/1120等,都有采用YCbCr格式进行传输,保证了相互转换的一致性,同时采用YCbCr422/420有效降低了传输带宽;
3)不管实H.264还是AVS,JPEG,MJPEG等都采用YUV格式进行编码压缩;
RGB转YCbCr虽然很基础,但是很重要(YCbCr转RGB雷同),怎样做更快也是一门学位。在本书开篇“图像处理硬件加速引擎”中,笔者引用conquer的《让你的软件飞起来》,从最初的计算机浮点运算120S,通过定点化、查找表等方式加速到了0.5S,提升了240倍,接着毕设介绍了硬件并行加速的思维,再次将计算时间缩短到了1ms左右,有一次提升了500倍,前后将近10万倍的加速,足以见得,硬件加速的重要性与意义。那么,废话少说,我们从新再梳理一遍。

2.YCbCr原理介绍:
YCbCr 则是在世界数字组织视频标准研制过程中作为ITU - R BT.601 建议的一部分,其实是YUV经过缩放和偏移的翻版。YCbCr其由Y(Luminance)、Cb(Chrominance-Blue)和Cr(Chrominance-Red)组成,其中Y表示颜色的明亮度和浓度,而Cb和Cr则分别表示颜色的蓝色浓度偏移量和红色浓度偏移量。
医学研究证明,人的肉眼对视频的Y分量更敏感,因此在通过对色度分量进行子采样来减少色度分量后,肉眼将察觉不到的图像质量的变化。如果只有Y信号分量而没有U、V分量,那么这样表示的图像就是黑白灰度图像。彩色电视采用YUV空间正是为了用亮度信号Y解决彩色电视机与黑白电视机的兼容问题,使黑白电视机也能接收彩色电视信号。我们通常把YUV和YCbCr概念混在一起,但其实这两者还是有挺大的区别。
首先,YUV是一种模拟信号,其色彩模型源于RGB模型,即亮度与色度分离,适合图像算法的处理,常应用于在模拟广播电视中,其中Y∈ [0,1]   U,V∈[-0.5,0.5] 。
而YCbCr是一种数字信号,其色彩模型源于YUV模型,它其实YUV压缩和偏移的版本(所谓偏移就是从[-0.5,0.5] 偏移到[0,1 ],因此计算时候会加128),在数字视频领域应用广泛,是计算机中应用最多的格式,包括JPEG,MPEG,H.264/5, AVS等都采用YCbCr格式,我们通常广义的讲的YUV,严格的讲应该就是YCbCr。

YCbCr继续细分,有2种格式:tv range与full range,主要区别如下:
1)tv range:Y∈[16,235]   Cb∈[16-240]   Cr∈[16-240] ,主要是广播电视采用的数字标准;
2)full range:Y、Cb、Cr∈[0-255] ,主要是PC端采用的标准,所以也称pc range

关于为何tv range要量化到16-235,主要是由于YUV最终在模拟域传输,因此为了防止数模转换时引起过冲现象,于是将数字域限定在16-235。至于为什么选择16/235,可自行了解Gibbs Phenomenon吉布斯现象,这里不再继续展开。
所以RGB转YCbCr,得明确转tv range还是pc range;反之也可以通过像素值范围,去判断是tv range,还是pc range,甚至还得明确是什么格式范围,否则会导致偏色。如下图所示,为BT.601标准中YUV的的UV坐标模型(U越大越蓝,V越大越红):
1.jpg

3.RGB转YCbCr硬件思维推导
约定,我们采用上一节中full range的YCbCr转RGB的公式进行推导。
由于Y或者CbCr的计算类似,这里仅以Y为例进行推演,最原始的公式如下:
Y0 = R*0.299 + G*0.587 + B*0.114
首当其冲的是干掉浮点,那么进行256倍扩大后,如下(防止溢出,得取不大于本身的最大整数,即直接*256后直接舍去小数)
Y1 = R*76 + G*150 + B*29        
由于扩大了256倍即2的8次方,那么对上述结果再右移8bit,得到最后的结果,如下(其中76+150+29=255<1024,不会溢出):
Y2 = (R*76 + G*150 + B*29)>>8      
其实在PC中,采用查找表理论上会比乘法器更快,但由于FPGA中,本身就有乘法器资源,因此可以直接快速计算;但如果用查找表,则需要768*18bit的RAM缓存,反而代价更大,因此综合评估,乘法器最优。

更多详细介绍请下载附件查看
游客,如果您要查看本帖隐藏内容请回复
已绑定手机
发表于 2021-8-23 12:43:46 | 显示全部楼层 来自 浙江省杭州市
谢谢分享知识
已绑定手机
原厂PM
张工137 2421 2401
发表于 2021-8-31 09:55:43 | 显示全部楼层 来自 广东省深圳市
谢谢分享,学习中……
已绑定手机
发表于 2021-10-12 18:15:08 | 显示全部楼层 来自 广东省深圳市
他汉克斯
已绑定手机
发表于 2021-10-20 09:13:00 | 显示全部楼层 来自 广东省深圳市
谢谢分享FPGA相关的资料 学习下
已绑定手机
发表于 2022-4-22 13:40:02 | 显示全部楼层 来自 浙江省宁波市
000000000000000000
发表于 2022-5-23 16:40:58 | 显示全部楼层 来自 广东省深圳市
谢谢谢谢谢
已绑定手机
发表于 2022-9-1 09:57:43 | 显示全部楼层 来自 陕西省西安市
介绍请下载附件查看
已绑定手机
发表于 2022-9-16 11:42:36 | 显示全部楼层 来自 湖北省武汉市
好好学习,天天向上
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

合作/建议

TEL: 19168984579

工作时间:
周一到周五 9:00-11:30 13:30-19:30
  • 扫一扫关注公众号
  • 扫一扫打开小程序
Copyright © 2013-2024 一牛网 版权所有 All Rights Reserved. 帮助中心|隐私声明|联系我们|手机版|粤ICP备13053961号|营业执照|EDI证
在本版发帖搜索
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表