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.

tvp5158 4路CIF数据提取的问题【请 Leon Yu 大侠进来指导】

Other Parts Discussed in Thread: TVP5158

在ARM平台进行tvp5158四路cif图像数据的提取,tvp5158的寄存器配置如下:

 {0xB2, 0x00},
 {0xE8, 0x60},
 {0xE9, 0x00},
 {0xEA, 0xB0},////
 {0xB0, 0xA3},
 {0xB1, 0x10},
 {0xB2, 0x25},
 {0xB3, 0xE4},//ch1:0xE4;ch2:0xE5;ch3:0xE6;ch4:0xE7
 {0xB4, 0xEB},
 {0xB5, 0x00},
 {0xB6, 0x1B},
 {0xB7, 0x04},
 {0xB8, 0x70},
 {0xB9, 0x10},
 {0xC3, 0xE0},
 {0xBA, 0x01},//Reset output format logic

 举例说明: {0xB2, 0x00},即向0xb2写入0x00;

看到网上一些人的说法,在SAV后面即跟着四个字节的metadata数据,但是我在mcvip_tvp5158的工程里的MCVIP_demuxRun函数里看到如下代码:

      metaData =  ( (Uint32)curAddr[7] << 0 ) |
          ( (Uint32)curAddr[5] << 8 ) |
          ( (Uint32)curAddr[3] << 16 ) |
          ( (Uint32)curAddr[1] << 24 )
          ; 

这里有点不太理解!请做过的高手指点指点。。。

  • 怎么没有人回复呢

  • 请看datasheet的表3-12.其实就是把4个byte拼成一个word,然后拿到后面去处理。你也可以直接按byte来处理,提取有效信息,比如line ID,Channel ID和F,V,H等信息。

  • 谢谢Leon Yu 的回复,我的平台不是DSP,是ARM平台,我现在采集到的数据,没有SAV和EAV,

  • 谢谢Leon Yu 的回复,我的平台不是DSP,是ARM平台,我现在采集到的数据,没有SAV和EAV,具体的数据如下图:

  • 我根据这4个byte能接解析出通道号,VDET,还有line count,但是我不知道扫描的这一行后面有多少数据

  • 顶起来啊!一直没有搞定!

  • 首先,我们要知道BT656的数据组成。以PAL为例,通常我们所说720*576指的是有效数据,其实还有一部分消隐数据,总共加起来是825*625,这部分消隐数据可以处理也可以不处理。再结合你的问题,TVP5158封装的super frame的组成:消隐数据+EAV+SAV+super frame,这里你可以理解super frame为BT656的有效数据。

    其次,super frame也是由行x列来组成的。一行的像素点(依然以D1为例)是720个+4个byte的metadata,即724个像素点。如果你的存储格式是16-bit 格式,那么有效数据是724个bytes,如果你是以8-bit格式存储,那么数据就是724*2=1448个bytes。要记住的是metadata都在前面。至于高度,你可以设置你想要的高度,也可以用缺省的,比如PAL其缺省高度为625*4=2500行。

    最后,我们为什么要插入metadata?因为在行复用的情况下,我们要区分出通道号(channelID),行ID,以及该行的具体位置,以F,V,H的一组逻辑关系来表达。

    希望上面的能有助于你的理解。

    从你的数据上看,你应该是CIF,至于是多少数据,想想看看。

  • 谢谢Leon Yu的回复!目前已经提取出4路数据,下一步就是验证数据的正确性!