颜色空间转换:libjpg中从RGB到YCbCr的转换过程

本文详细介绍了在libjpg库中将RGB颜色空间转换为YCbCr颜色空间的过程,包括转换公式、查找表初始化以及一行数据的转换步骤。转换过程中无需额外的范围限制操作,确保了输出在0..MAXJSAMPLE范围内。
摘要由CSDN通过智能技术生成

转换公式:

Y   = Kr * R + (1 - Kr - Kb) * G + Kb * B
Cb = 0.5 * (B - Y) / (1 - Kb)
Cr = 0.5 * (R - Y) / (1 - Kr)

其中:

Kr=0.299 , Kb=0.114

Y  =  0.299 * R + 0.587 * G + 0.114 * B
Cb = -0.168735892 * R - 0.331264108 * G + 0.5 * B + 128
Cr =  0.5 * R - 0.418687589 * G - 0.081312411 * B + 128

#define SCALEBITS    16    /* speediest right-shift on some machines */
#define CBCR_OFFSET    ((INT32) CENTERJSAMPLE << SCALEBITS)
#define ONE_HALF    ((INT32) 1 << (SCALEBITS-1))
#define FIX(x)        ((INT32) ((x) * (1L<<SCALEBITS) + 0.5))

#define R_Y_OFF        0            /* offset to R => Y section */
#define G_Y_OFF        (1*(MAXJSAMPLE+1))    /* offset to G => Y section */
#define B_Y_OFF        (2*(MAXJSAMPLE+1))    /* etc. */
#define R_CB_OFF    (3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值