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

tvp5158四路视频解析

我在做一个tvp5158的项目,要求将四路视频接入并显示,但是我对其中四路视频的解析不是很明白,有这方面的例程吗?如果有请发一份wwzhutou123@126.com.万分感谢

Wei Jiang:

先ITU656采集到内存,然后DMA按行进行分析和转移.

先看看手册中的行采集模式

wei wang:

回复 Wei Jiang:

那采集进来后如何确定每行的首地址呢?如果这个确定错了的话,那接下来的解析也就无意义了

Wei Jiang:

回复 wei wang:

手册描述很清楚~

Coolen Xue:

回复 wei wang:

你可以参考tvp5158的datasheet中如下章节:

3.8.3.4 Metadata Insertion for Line-Interleaved Mode

简单的说,tvp5158在每一行的SAV之后插入了四字节的metadata,其中包含了该行的顶场底场与行号的信息,据此进行四路视频的解析。

wei wang:

回复 Coolen Xue:

现在的情况是我进来的数据只查到第一路的前四个字节有metadata,而且好像还不全,其余几路均没有发现metadata,这是什么原因??

Coolen Xue:

回复 wei wang:

你是怎么定位metadata的?

你可以取几帧,把整个superframe存下来,然后查看它的二进制数据,在里面根据数据特征去找。

我觉得,不会存在你说的那种情况,可能是你寻找metadata的方法不对。

shuai zhou:

回复 Coolen Xue:

dm8168 dvr里面的demo例子就有tvp8158+hdmi输出的实例,还可以做多路转码。

wei wang:

回复 shuai zhou:

我的memory中的视频数据如下

地址:0x84000000        数据:0x606080800x80807070

地址:0x840002E0 数据:0xCE801480 0xDF80E180

地址:0x840005A0 数据:0xE07EE080 0xDF7EE080

地址:0x840008A0 数据:0x60608080 0x80805E5E

我的视频是CIF格式,每行数据长度为2E0,由上面四个地址的首八个数据可以看出,只要00处跟8A0处的起始数据时正确的,而且首字节为0x80,即全部都是第一路的数据。

我怀疑是vpfe的问题,这是我vpfe的设置:

 width   = 364;

   height  = 1052; //263*4

   acHeight = 960;//240*4

   offsetH = (width * 2 +31) & 0xffffffe0;

   VPFE_CCDC_SYN_MODE  = 0x00032F84;   // interlaced, with VD pority as negative

   VPFE_CCDC_HD_VD_WID = 0;

   VPFE_CCDC_PIX_LINES = ((width-1) << 17) | (height >> 1);

   VPFE_CCDC_HORZ_INFO = width << 1;   // Horizontal lines

   VPFE_CCDC_HSIZE_OFF = ch_info->offsetH;   // Horizontal line offset

   VPFE_CCDC_VERT_START = 0;           // Vertical start line

VPFE_CCDC_VDINT = 0;

   VPFE_CCDC_VERT_LINES = acHeight >> 1; // Vertical lines

   VPFE_CCDC_CULLING   = 0xFFFF00FF;   // Disable cullng

   /*

    *  Interleave the two fields

    */

   VPFE_CCDC_SDOFST    = 0x00000249;

   VPFE_CCDC_SDR_ADDR  = video_buffer;

   VPFE_CCDC_CLAMP     = 0;

   VPFE_CCDC_DCSUB     = 0;

   VPFE_CCDC_COLPTN    = 0xEE44EE44;

   VPFE_CCDC_BLKCMP    = 0;

   VPFE_CCDC_FPC_ADDR  = 0x86800000;

   VPFE_CCDC_FPC       = 0;

   VPFE_CCDC_VDINT     = 0;

   VPFE_CCDC_ALAW      = 0;

   VPFE_CCDC_REC656IF  = 0x00000003;

   /*

    *  Input format is Cb:Y:Cr:Y, w/ Y in odd-pixel position

    */

   VPFE_CCDC_CCDCFG    = 0x00000800;

   VPFE_CCDC_FMTCFG    = 0;

   VPFE_CCDC_FMT_HORZ  = width;

   VPFE_CCDC_FMT_VERT  = acHeight;

   VPFE_CCDC_FMT_ADDR0 = 0;

   VPFE_CCDC_FMT_ADDR1 = 0;

   VPFE_CCDC_FMT_ADDR2 = 0;

   VPFE_CCDC_FMT_ADDR3 = 0;

   VPFE_CCDC_FMT_ADDR4 = 0;

   VPFE_CCDC_FMT_ADDR5 = 0;

   VPFE_CCDC_FMT_ADDR6 = 0;

   VPFE_CCDC_FMT_ADDR7 = 0;

   VPFE_CCDC_PRGEVEN_0 = 0;

   VPFE_CCDC_PRGEVEN_1 = 0;

   VPFE_CCDC_PRGODD_0  = 0;

   VPFE_CCDC_PRGODD_1  = 0;

   VPFE_CCDC_VP_OUT    = ((acHeight-1) << 17) | (ch_info->width << 4);

   VPFE_CCDC_PCR       = 0x00000001;   // Enable CCDC

这样设置有问题吗??

Shane Huang:

回复 wei wang:

4路CIF每行长度应该是848字节

赞(0)
未经允许不得转载:TI中文支持网 » tvp5158四路视频解析
分享到: 更多 (0)