This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CCS环境下 DM368 + MT9P031 采集到视频图像数据格式不对



大家好,我的vpfe设置如下:

width = 1280;
height = 720;

//IPIPEIF配置
IPIPEIF_CFG1 = 0x00000300; //数据源、时钟选择、模式设定
IPIPEIF_RSZ = 0x00000010; //调整大小,Ratio=16/RSZ=1
IPIPEIF_INIRSZ = 0x00002000;
IPIPEIF_CLKDIV = 0; //时钟配置
IPIPEIF_CFG2 = 0x00000009; //VD、HD极性、中断源选择等
IPIPEIF_ENABLE = 0x00000003;

//ISIF 配置
ISIF_SYNCEN = 0x0000; // Disable VPFE during setup
ISIF_MODESET = 0x1000; // Progressive, VD priority as positive, 16-bit YCbCr

ISIF_HDW = 10;//水平同步信号宽度
ISIF_VDW = 10; //垂直同步信号宽度

ISIF_PPLN = 2752; //一帧列数
ISIF_LPFR = 2004; //一帧行数

ISIF_SPH = 674-10; //起始列

ISIF_LNH = width-1; // 行数=LNH+1
ISIF_HSIZE = width >> 4; // Horizontal line offset

ISIF_SLV0 = 666-50; //奇偶场起始行
ISIF_SLV1 = 666-50;

ISIF_LNV = height-1; // 列数=LNH+1
ISIF_CULH = 0xffff; // Disable culling
ISIF_CULV = 0x00ff;

ISIF_VDINT0 = height; //VDINT 中断时间(行数)
ISIF_VDINT1 = 0;//height;
ISIF_VDINT2 = 0;//height;

ISIF_SDOFST = 0x0000;
ISIF_CADU = 0x0400; // ISIF视频数据输出到SDRAM的地址高位
ISIF_CADL = 0x0000; // ISIF视频数据输出到SDRAM的地址低位
ISIF_REC656IF = 0x0001; // REC656 enabled

/*
* Input format is Cb:Y:Cr:Y, w/ Y in odd-pixel position
*/
ISIF_CCDCFG = 0x0800; // CCD configuration
ISIF_FMTCFG = 0x0000; // Disable formatter
ISIF_SYNCEN = 0x0003; // Enable ISIF

在内存0x80000000上看到了视频数据:

用CCS的Image Analyzer 观察到以下图像

属性设置:

请问:出现这种现象的原因是什么?

  • 你好,

    9p031是12-bit有效数据,你CCS里面配置的是8-bit,这里有问题吧。同样component mask也需要做相应的修改。

  • 你好,
    我的9p031小板子上加了4位的信号线分别是0100,与12位的有效数据合起来作为16位的数据,所以内存中视频数据都是4XXX4XXX。我不明白为什么数据中间有那么多的40004000,而不符合我设置的1280X720.。还有就是CCS配置成16-bit的话,图像基调变成灰色一片,component mask 我不理解这是什么,该怎么填写?谢谢!
  • 你好,
    我的9p031小板子上加了4位的信号线分别是0100,与12位的有效数据合起来作为16位的数据,所以内存中视频数据都是4XXX4XXX。我不明白为什么数据中间有那么多的40004000,而不符合我设置的1280X720.。还有就是CCS配置成16-bit的话,图像基调变成灰色一片,component mask 我不理解这是什么,该怎么填写?谢谢!
  • 你好,

    你有参考过下面10bit有效数据的例子么?如果是12bit有效数据,component mask应该配置0x0FFF。就是采集的高4为会被清零。

    http://processors.wiki.ti.com/index.php/Image_Analyzer#Examlpes

    • Bayer File:Bayer.zip
      • bayer720480_8of16_prop.txt: size 720 x 480 pixels, even B lines, GR/BG order, 8 bits out of 16 bits
      • bayer720480_10of16_prop.txt: size 720 x 480 pixels, even B lines, GR/BG order, 10 bits out of 16 bits
  • 你好,

    谢谢你的帮助。我看了下配置,然后改了component  mask 为0x0fff。出来的图像是这样的。如同好几份被压缩的画面组成的,缺了好多信息。这是为什么?是不是我IPIPEIF部分的寄存器没有设置完全?还是其他原因?