找回密码
 
» C & C++?
查看: 1924|回复: 2

[ASM]

[复制链接]
unsigned   char   *puc_y;
unsigned   char   *puc_u;
unsigned   char   *puc_v;
unsigned   char   *puc_out;
int   x,width_y;
  
void   calculate()
{
             for   (x=0;   x <width_y;   x++)
        {
                        signed   int   _r,_g,_b;   
                        signed   int   r,   g,   b;
                        signed   int   y,   u,   v;
  
                        y   =   puc_y[x]   -   16;
                        u   =   puc_u[x> > 1]   -   128;
                        v   =   puc_v[x> > 1]   -   128;
  
                        _r   =   (0x2568*(y)   +   0x3343*(u))   /0x2000;
                        _g   =   (0x2568*(y)   -   0x0c92*(v)   -   0x1a1e*(u))   /0x2000;
                        _b   =   (0x2568*(y)   +   0x40cf*(v))   /0x2000;
  
                        r   =   (_r)> 255   ?   255   :   (_r) <0   ?   0   :   (_r);
                        g   =(_g)> 255   ?   255   :   (_g) <0   ?   0   :   (_g);
                        b   =(_b)> 255   ?   255   :   (_b) <0   ?   0   :   (_b);
  
                        puc_out[0]   =   r;
                        puc_out[1]   =   g;
                        puc_out[2]   =   b;
                        puc_out[3]   =   0;
  
                        puc_out+=4;
                }
}      
************************

GMT,

Powered by Discuz!

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表