TI中文支持网
TI专业的中文技术问题搜集分享网站

dm6446中vpfe获得的视频数据

dm6446获取图像在vga显示器上显示。视频前端将YUV数据存入ddr2的buffer中,我想只显示其中的Y分量该怎么处理这些数据?

vpfe的配置如下:

VPFE_SYN_MODE   = 0x00032F87;   // interlaced, with VD pority as negative寄存器配置
    VPFE_HD_VD_WID  = 0;
    VPFE_PIX_LINES  = 0;  //linger 720×624?
    /*
     *  sph = 1, nph = 1440, according to page 32-33 of the CCDC spec
     *  for BT.656 mode, this setting captures only the 720×480 of the
     *  active NTSV video window
     */
    VPFE_HORZ_INFO  = width << 1;   // Horizontal lines10110100000
    VPFE_HSIZE_OFF  = width << 1;   // Horizontal line offset 每行需要的容量
    VPFE_VERT_START = 0;            // Vertical start line
    VPFE_VERT_LINES = height >> 1;  // Vertical lines
    VPFE_CULLING    = 0xFFFF00FF;   // Disable cullng

    /*
     *  Interleave the two fields     */
    VPFE_SDOFST     = 0x00000249;//ddr中数据 的排列方式,两个场连续排列
        VPFE_SDR_ADDR   = buffer;//ddr2的起始地址

    VPFE_CLAMP      = 0;
    VPFE_DCSUB      = 0;
    VPFE_COLPTN     = 0xEE44EE44;
    VPFE_BLKCMP     = 0;
    VPFE_FPC_ADDR   = 0x86800000;//校正表入口
    VPFE_FPC        = 0;//需要校正的像素个数
    VPFE_VDINT      = 0;//arm中断类型
    VPFE_ALAW       = 0;
    VPFE_REC656IF   = 0x00000003;
    /*
     *  Input format is Cb:Y:Cr:Y, w/ Y in odd-pixel position     */
    VPFE_CCDCFG     = 0x00008800;//不使用swap
    VPFE_FMTCFG     = 0x00008000;  //linger vpen=1  10位输入选6-15位
    VPFE_FMT_HORZ   = 0x000002D0;
    VPFE_FMT_VERT   = 0x00000240;//0x00000272;720*576
    VPFE_FMT_ADDR0  = 0;
    VPFE_FMT_ADDR1  = 0;
    VPFE_FMT_ADDR2  = 0;
    VPFE_FMT_ADDR3  = 0;
    VPFE_FMT_ADDR4  = 0;
    VPFE_FMT_ADDR5  = 0;
    VPFE_FMT_ADDR6  = 0;
    VPFE_FMT_ADDR7  = 0;
    VPFE_PRGEVEN_0  = 0;
    VPFE_PRGEVEN_1  = 0;
    VPFE_PRGODD_0   = 0;
    VPFE_PRGODD_1   = 0;
    VPFE_VP_OUT     = 0x04E22D00;//720*625
    VPFE_PCR        = 0x00000001;   // Enable CCD

Chris Meng:

DM6446的video window必须是YUV422的数据,由于你需要显示的只是Y,也就是黑白数据,而黑白数据的UV就是0x80,你可以将UV分量用0x80替换,可以使用EDMA或者CPU实现。

赞(0)
未经允许不得转载:TI中文支持网 » dm6446中vpfe获得的视频数据
分享到: 更多 (0)