您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> ADSP开源下载发布区 -> RGB565转YUV422代码
本帖共有1190个阅读者
发表帖子 发表投票 回复主题
RGB565转YUV422代码
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
RGB565转YUV422代码


RGB565ToYuv(int Width,int Hight,unsigned char* rgb565_dat,unsigned char* yuv422_data)
{
int i,j;
int Index;
int flag = 0;
unsigned char r_dat,g_dat,b_dat;
// unsigned short* image16
unsigned char y_dat,uv_dat;
unsigned short rgb_dat;
for(i=0;i<Hight;i++)
{
  for(j=0;j<Width;j++)
  {
     Index=i*Width+j;
    
     rgb_dat = rgb565_dat[2*Index];
     rgb_dat |= rgb565_dat[2*Index+1]<<8;
    
           b_dat = ((rgb_dat & 0x001F)<<3)&0xff;
           g_dat = ((rgb_dat& 0x07E0)>>3)&0xff;
           r_dat = ((rgb_dat& 0xf800)>>8)&0xff;
           if(flag == 0)
           {  
       y_dat=(unsigned char)((299*r_dat+587*g_dat+114*b_dat)/1000);
       uv_dat=(unsigned char)(((-169)*r_dat+(-331)*g_dat+500*b_dat+128000)/1000);
           }
           else
           {
             y_dat=(unsigned char)((299*r_dat+587*g_dat+114*b_dat)/1000);
          uv_dat=(unsigned char)((500*r_dat+(-419)*g_dat+(-82)*b_dat+128000)/1000);
           }
           yuv422_data[2*Index] = y_dat;
        yuv422_data[2*Index+1] = uv_dat;
           flag = ~flag;
      
  }
}
}


这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2013/2/28 12:13:36
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.154577 Call, 1 Queries, Processed in 0.015625 second(s),