他的回复:
转化公式:RGB是计算机比较容易理解的红绿蓝,在两个公式里面取值范围都是0~255区别就在于YUV,“Y”表示明亮度(Luminance或Luma),也就是灰阶值,“U”和“V”表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。video_range ,NARROW是被量化的,Y~(16-235) U ~(16-240) V~(16-240)。full_range ,WIDE是未被量化的:Y/U/V ~(0-255)他们之间转化公式如下:1.小数形式,full rangeR = Y + 1.4075 * (V-128); G = Y - 0.3455 * (U-128) - 0.7169*(V-128); B = Y + 1.779 * (U-128); Y = 0.299*R + 0.587*G + 0.114*B;U = (B-Y)/1.772; (U~(-128-127))V = (R-Y)/1.402;或写为:Y = 0.299*R + 0.587*G + 0.114*B;U = -0.169*R - 0.331*G + 0.5 *B + 128; 注: +128 的含义是让UV的范围处于整数区间(0-255)V = 0.5 *R - 0.419*G - 0.081*B + 128;2.整数形式(减少计算量)full rangeR= Y + ((360 * (V - 128))>>8) ; G= Y - (( ( 88 * (U - 128) + 184 * (V - 128)) )>>8) ; B= Y +((455 * (U - 128))>>8) ;Y = (77*R + 150*G + 29*B)>>8;U = ((131*R - 110*G - 21*B)>>8) + 128 ;V = ((-44*R - 87*G - 131*B)>>8) + 128;3. 量化后的公式( Y~(16,235) U/V ~(16,240) ) Video rangeyuv --> rgbR = 1.155*Y + 1.605 * V - 224G = 1.168*Y - 0.393 * U - 0.823 * V+ 135.7B = 1.168*Y + 2.028 * U- 277.8 rgb --> yuv Y= ( 66*R + 128*G + 25*B)>>8 + 16U= (112*R - 94*G - 18*B)>>8 + 128V= (-38*R - 74*G + 112*B)>>8 +128