有谁知道YUV420格式到YUV422的转换方法的源代码吗?如果可以直接转换到RGB则更好了。
我想用DDRAW来显示视频,可是我的源数据是YUV420格式的数据,好像DDRAW只可以装入RGB的?哪位高手有过类似的开发经验,介绍一下给我好吗?

解决方案 »

  1.   

    http://www.china-askpro.com/msg46/qa09.shtml
      

  2.   

    这个我知道,我要的是420->RGB,不是422->RGB呀!
      

  3.   

    如何建立一个YUV的离屏表面?  
    ---------------------------------------------------------------  
     
    DDPIXELFORMAT  ddPixelFormat;  
    ddPixelFormat.dwSize  =  sizeof(DDPIXELFORMAT);  
    g_lpDDSPrimary->GetPixelFormat(&ddPixelFormat);  
    ddPixelFormat.dwFlags  =  DDPF_FOURCC;  
    ddPixelFormat.dwFourCC  =  mmioFOURCC('Y','U','Y','2');  
     
    ZeroMemory(&g_ddsd,  sizeof(DDSURFACEDESC2));  
    g_ddsd.dwSize  =  sizeof(DDSURFACEDESC2);  
    g_ddsd.dwFlags  =  DDSD_CAPS    ¦  DDSD_WIDTH    ¦  DDSD_HEIGHT    ¦  DSD_PIXELFORMAT;  
    g_ddsd.ddsCaps.dwCaps  =  DDSCAPS_OVERLAY    ¦  DDSCAPS_VIDEOMEMORY;  
    g_ddsd.dwWidth  =  g_iWidth;  
    g_ddsd.dwHeight  =  g_iHeight;  
    g_ddsd.ddpfPixelFormat  =  ddPixelFormat;  
    g_lpDD7->CreateSurface(&g_ddsd,  &g_lpDDSBack,  NULL);  
    从我的程序中拷出来的变量没有定义,不过应该看得懂。建的是YUY2的Overlay
      

  4.   

    不好意思了,各位老大,我是个Directx的初学者,问些问题,不要见怪啦。
    创建了主表面以及后备表面后,可以通过LoadImage将一幅BMP图(文件)装入这个表面,然后通过FLIP函数即可以实现显示画面的转换。那么,如果我只有BMP的数据,总不至于需要将这些数据再转换成一个BMP文件,再通过loadImage来实现吧!我知道肯定不是的,可是我不知道方法。还有,如果我的数据是420格式的YUV数据,难道一定要进行转换吗?我总觉得应该不需要的。各位老大可以多说一些吗?
      

  5.   

    Yuy2不也是422吗?人家要的是420
      

  6.   

    用yuv直接显示不行吗?
    我前一阶段刚刚做了个类似的项目,有问题可以和我联系
    msn:    [email protected]
    Email:  [email protected]