图像处理之CSC色彩转换

1 YUV域介绍

       根据三基色原理,任意一种色光F都可以用不同分量的R、G、B三色相加混合而成,即F = r [ R ] + g [ G ] + b [ B ],其中r、g、b分别为三基色参与混合的系数。当三基色分量都为0(最弱)时混合为黑色光;而当三基色分量都为k(最强)时混合为白色光。调整r、g、b三个系数的值,可以混合出介于黑色光和白色光之间的各种各样的色光。
       在现代彩色电视系统中,通常采用三管彩色摄像机或彩色CCD摄像机进行摄像,然后把摄得的彩色图像信号经分色、分别放大校正后得到RGB,再经过矩阵变换电路得到亮度信号Y和两个色差信号R-Y(即Cr)、B-Y(即Cb),最后发送端将亮度和色差三个信号分别进行编码,用同一信道发送出去。这种色彩的表示方法就是所谓的YCbCr色彩空间表示。采用YCbCr色彩空间的重要性是它的亮度信号Y和色度信号Cb、Cr是分离的。如果只有Y信号分量而没有U、V分量,那么这样表示的图像就是黑白灰度图像。彩色电视采用YUV空间正是为了用亮度信号Y解决彩色电视机与黑白电视机的兼容问题,使黑白电视机也能接收彩色电视信号,保证了信道兼容性。

       CSC(color space convert):RGB与YCbCr颜色空间的转换,常用的色域空间有BT.601(SDTV,标清电视),BT.709(HDTV,高清电视),BT.2020(UHDTV,超高清电视),在不同的色域空间下,转换矩阵是不一致的。

       色域表示显示设备能够显示的颜色范围,下图中马蹄形区域为人眼能看到的色彩区域,BT.601是标清视频使用的色域范围,BT.709和BT.2020分别对应高清和超高清视频的色域。

        

2 CSC转换矩阵

2.1 BT.601色域CSC

      1 计算CSC转换后的Y分量(归一化)

         EY = 0.299 ER + 0.587 EG + 0.114 EB  (其中ER、EG、EB范围为[0,1])

       2 归一化下红色色差分量等于红色分量减去亮度分量,即Cr

         Cr = (ER - EY) = ER - 299 ER - 0.587 EG - 0.114 EB = 0.701 ER - 0.587 EG - 0.114 EB  (Cr区间[-0.701,0.701])

         对Cr归一化处理:

         Cr = (ER - EY)/1.402 = 0.5 ER + 0.419 EG + 0.081 EB ; (Cr区间[-1, 1])

       3 归一化下蓝色色差分量等于蓝色分量减去亮度分量,即Cb

          Cb = (EB- EY) = EB - 0.299 ER - 0.587 EG - 0.114 EB = -0.299 ER - 0.587 EG + 0.886 EB (Cb区间[-0.886,0.886])

          对Cb归一化处理:

          CB  = (EB- EY)/1.772 = 0.169 ER + 0.331 EG + 0.5 EB; (Cb区间为[-1 , 1])

       4 由于信号的边缘有其它用途,在实际往往使用窄动态limited格式。比如8bit信号,亮度分量的范围为16-235(共220个灰阶),色差分量的范围为16-240(共225个灰阶)。10bit信号,亮度分量的范围为64-940(共877个灰阶),色差分量的范围为64-960(共897个灰阶)。因此灰阶定点化后各分量如下:

          Y   = 219 EY + 16     = 0.2568 * R + 0.5041 * G + 0.0979 * B + 16

          Cb = 224 ECB + 128 = -0.1482 * R – 0.291 * G + 0.4392 * B + 128

          Cr = 224 ECR + 128 = 0.4392 * R – 0.3678 * G – 0.0714 * B + 128

      5 不考虑后面的offset偏移量,BT601_RGB2YCbCr的8Bit定点化后矩阵表示如下:

         BT601_RGB2YCbCr =256* [ 0.2568    0.5041   0.0979   = [ 65.7408    129.0496   25.0624     =  [  66   129   25 

                                                     -0.1482  -0.2910   0.4392        -37.9392   -74.4960     112.4352         -38   -74    112

                                                      0.4392    -0.3678  -0.0714]      112.4352  -94.1568    -18.2784]          112  -94   -18]

     6 不考虑后面的offset偏移量,BT601_YCbCr2RGB的8Bit定点化后逆变矩阵表示如下:

        BT601_YCbCr2RGB = inv(BT601_RGB2YCbCr) = 256 *[ 1.1644  -0.0001   1.5960  = [ 298        0   409

                                                                                                  1.1644  -0.3917  -0.8130       298   -100 -208

                                                                                                  1.1644   2.0173  -0.0001 ]      298   516       0]

2.2 BT.709色域CSC

      1 计算CSC转换后的Y,Cb,Cr分量,转换如下:

         Y  = 219 EY + 16 = ?(219/255) * (0.2126 R + 0.7152 G + 0.0722 B) + 16 = 0.1826 R + 0.6142 G + 0.062 B + 16

        Cb = 224 ECb + 128 = -0.1006 R - 0.3386 G + 0.4392 B + 128

        Cr = 224 ECr + 128 = 0.4382 R - 0.398 G + 0.0402 B + 128

     2 不考虑offset偏移量,BT709_RGB2YCbCr的8bit定点化矩阵表示如下:

        BT709_RGB2YCbCr = 256 * [ 0.1826  0.6142  0.062   = [ 47 157 16

                                                      -0.1006 -0.3386  0.4392     -26 -87 112

                                                       0.4382 -0.398  -0.0402]    112 -102 -10]

     3 不考虑offset偏移量,BT709_RGB2YCbCr的8bit定点化逆矩阵表示如下:

         BT709_RGB2YCbCr = 256 * [ 1.1644 0.0001 1.7969    = [ 298  0    460

                                                         1.1644 -0.2133 -0.5342      298 -55   -137

                                                         1.1644 2.1125 -0.0002]       298 541  0  ]

2.3 BT.2020色域CSC

     1 计算CSC转换后的Y,Cb,Cr分量,转换如下:

        Y  = 219 EY + 16     =(219/255) * (0.2627 R + 0.678 G + 0.0593 B) + 16                  =   0.2256 R + 0.5832 G + 0.0509 B + 16

       Cb = 224 ECb + 128 = (224/255) * (-0.2627 R - 0.678 G + 0.9407 B) / 1.8814 + 128 = -0.1227 R – 0.3166 G + 0.4392 B + 128

       Cr = 224 ECr + 128  = (224/255) * (0.7373 R?-?0.678 G?- 0.0593 B) / 1.4746 + 128 = 0.4392 R – 0.4039 G - 0.0353 B  + 128

    2 不考虑offset偏移量,BT2020_RGB2YCbCr的8bit定点化矩阵表示如下:

       BT2020_RGB2YCbCr = 256 * [ 0.2256 0.5832 0.0509   = [ 58 149 13

                                                      -0.1227 -0.3166 0.4392        -31 -81 112

                                                      0.4392 -0.4039 -0.0353]       112 -103 -9]

    3 不考虑offset偏移量,BT2020_RGB2YCbCr的8bit定点化逆矩阵表示如下:

       BT2020_YCbCr2RGB = 256 * [ 1.1632   0.0002     1.6794   = [ 298  0    430

                                                         1.1632   -0.1870   -0.6497        298 -48 -166

                                                         1.1634    2.1421    0.0008]       298 -48  -166]

posted @ 2018-03-20 13:59  淇淇宝贝  阅读(4373)  评论(0编辑  收藏  举报