2 RGB到YCrCb的转换 在ITU-R BT.601标准中给出了RGB与YCrCb的转换关系式如下: 式中:R’,G’,B’表示Garoma校正后的R,G,B值。该转换关系式是一个3×3乘法矩阵,电路实现时需要9个乘法器和9个加法器,在FPGA中直接实现时将会占用较多逻辑资源。 为了减少逻辑资源的使用,需要对该算法做进一步改进,简化运算过程,从而以较少的逻辑资源实现转换电路。首先对Cb,Cr做如下化简: Cb=0.148 2(B’-R’)+0.291 0(B’-G’)+128 Cr=0.367 8(R’-G’)-0.071 4(B’-R’)+128 对y的计算公式进行化简时,令Y’=0.256 8R’+0.501 4G’+0.097 9B’,Cb’ =-0.148 2R’-0.291 0G’+0.439 2B’,有0.577 2Y’+Cb’=0.495 7B’。为了计算方便,近似值为0.5B’。此时,有Y’=1.732 5(0.5B’-Cb’),与原式误差为△Y’=0.007 4B’,其范围为0~1.887。当以Y’表示Y时,需要对误差作补偿。计算公式可表示为: Y=1.732 5(0.5B’-Cb’)+offset 式中:offset=16-0.007 4B’,化简后的转换公式如下: Y=1.732 5(0.5B’-Cb’)+offset Cb=0.148 2(B’-R’)+0.291 0(B’-G’)+128 (2) Cr=0.367 8(R’-G’)-0.071 4(B’-R’)+128 式中:Cb’=0.148 2(B’-R’)+0.291 0(B’-G’), offset=16-0.007 4B’。 根据B’的取值不同,offset的取值取整后为14,15,16。在计算过程中,可以用一个数据选择器根据B’值的不同选择offset的值。0.5B’的计算可以用移位实现。化简后的转换算法,对Y,Cb,Cr的计算将比原来节省4个乘法器。在FPGA中,加法器、数据选择器和移位算法的实现比乘法器简单,该化简将利于减少逻辑资源的应用,简化实现电路,提高运算速度。 转换电路结构如图1所示。
|