如题!

解决方案 »

  1.   

    YUV图象存储机制:Y:U:V=8:4:4
    Y: 占用1个字节(8bit)
    U,V: 每2个象素占用1个字节(8bit),及每个象素占4bitY:U:V=8:2:2
    Y: 占用1个字节(8bit)
    U,V: 每4个象素占用1个字节(8bit),及每个象素占2bit用解码器对该文件(clock.mpg)解压后产生的"YUV"目标码文件的说明:
    Y文件的长度为:84,480 BYTE
    U,V文件的长度分别为:21,120 BYTE
    84480/21120=4
    对该组YUV文件可得出结论:Y:U:V=8:2:2
    RGB图象存储机制:
    R:表示红色信息,占用1个字节(8bit)
    G:表示绿色信息,占用1个字节(8bit)
    B:表示蓝色信息,占用1个字节(8bit)
    R:G:B = 8:8:8 
    YUV与RGB图象之间的变换关系:
    Y= 0.2990R+0.5870G+0.1140B
    U=-0.1687R-0.3313G+0.5000B + 128
    V= 0.5000R-0.4187G-0.0813B + 128
    反变换关系:
    R= 1.0Y + 0       +1.402  (V-128)
    G= 1.0Y - 0.34413(U-128)-0.71414(V-128)
    B= 1.0Y + 1.772  (U-128)+0另一种变换关系:
    Y = <(R + 2G + B)/4>
    U = R - G
    V = B - G
    反变换:
    G = Y - <(U +V)/4>
    R = U + G
    B = V + G
    说明:式中<W>表示<=W的最大整数
    以前曾见看过这类的文章,
    下面是他们的转换公式。
      Y = 0.299 R + 0.587 G + 0.114 B
      U = - 0.1687 R - 0.3313 G + 0.5 B + 128
      V = 0.5 R - 0.4187 G - 0.0813 B + 128  R = Y + 1.402 (V - 128)
      G = Y - 0.34414 (U - 128) - 0.71414 (V - 128)
      B = Y + 1.772 (U - 128)YUV的颜色空间和RGB的颜色空间范围有些差异,而且YUV色系的颜色不是线性变化的,实际处理上有很多麻烦的地方。对于很大的图或者视频流用上面的转换公式速度会很慢,我没有分析过解霸,但是他曾经说过每个bit是2个时钟周期,我想他利用的一定是查表法。
    不然当年的486下不可能那么流畅。由于在"Y文件"中,一个象素占一个BYTE,所以一帧数据应该是:352*240=84480 BYTE
    在"U,V"文件中,每四个象素占一个BYTE,所以一帧数据的长度因该是:352*240/4=21120 BYTE