hanfei69882

hanfei69882

2个粉丝

26

问答

0

专栏

2

资料

hanfei69882  发布于  2016-11-04 18:42:03
采纳率 0%
26个问答
20227

【已解决】关于移动侦测sample理解

 
本帖最后由 hanfei69882 于 2016-11-19 09:42 编辑

看了移动侦测sample,有两个问题不理解:
1、支持选项vi/file,vi和file模式有啥区别?应用场景分别是?Motion detected,:0,vi,(VI_BT1120->IVE->VGS->VO_BT656);1,file,(FILE->VPSS->IVE->VGS->VO_BT656).


2、SAMPLE_COMM_IVE_BT1120_720P_PreView()函数参数包含多个模块使能:bOpenVi, bOpenViExt, bOpenVo, bOpenVenc, bOpenVpss,看代码只进行了初始化,不知道打开有什么区别


刚接触移动侦测,看了文档之后开始看sample,相关文档也推荐一下:handshake 先谢谢啦
我来回答
回答34个
时间排序
认可量排序

hanfei69882

2个粉丝

26

问答

0

专栏

2

资料

hanfei69882 2016-11-07 21:02:49
认可0
貌似越看问题越多:Q
3.如果使用vi模式,还需要一个扩展vi通道1,扩展通道的数据做移动侦测处理,使用扩展通道只是为了实现缩放么?
关键是扩展通道一直获取不到数据,log如下:

[code]# cat /proc/umap/vi

[VIU] Version: [Hi3518EV200_MPP_V1.0.3.0 B040 Release], Build Time: [May 20 2016, 12:01:03]

VI-VPSS is offline.

-----MODULE PARAM--------------------------------------------------------------
detect_err_frame  drop_err_frame  stop_int_level
         10              0              0

-----VI DEV ATTR---------------------------------------------------------------
Dev   IntfM  WkM  ComMsk0  ComMsk1 ScanM AD0 AD1 AD2 AD3   Seq   DPath DType DRev CapX CapY  CapW  CapH
   0      DC 1Mux   ff0000        0     P  -1  -1  -1  -1  YUYV     ISP   RGB    N    0    0   640   480

-----VI HIGH DEV ATTR---------------------------------------------------------------
Dev  InputM  WkM  ComMsk0  ComMsk1 ScanM AD0 AD1 AD2 AD3   Seq CombM CompM ClkM  Fix FldP   DPath DType DRev CapX CapY  CapW  CapH

-----VI PHYCHN ATTR------------------------------------------------------------
PhyChn CapX CapY  CapW  CapH  DstW  DstH CapSel Mirror Flip IntEn PixFom SrcRat DstRat   Comp
      0    0    0   640   480   640   480   both      N    N     Y  SP420     -1     -1      N

-----VI PHYCHN STATUS 1----------------------------------------------------------
PhyChn  Dev      IntCnt  VbFail  LosInt  TopLos  BotLos BufCnt  IntT  SendT  Field  Stride
      0    0           0       0       0       0       0      0     0      0 (null)       0

-----VI PHYCHN STATUS 2---------------------------------------------------------
PhyChn MaxIntT   IntGapT   MaxGapT LIntCnt  ThrCnt AutoDis CasAutD  TmgErr      ccErrN    IntRat
      0       0         0         0       0       0       0       0       0           0         0

-----VI OTHER ATTR------------------------------------------------------------
    LDC   Mode  Ratio  COffX  COffY Enable
     --    All      0      0      0      N

  Flash   Mode StartTime  DuraTime  InterVal CapIdx Enable  FlashedNum
     --   Once         0         0         0      0      N           0

    CSC   Type HueVal  ContrVal   LumaVal  StatuVal    TVMode
     --    709     50        50        50        50         N

    DCI     En BlackGain ContrGain LightGain
     --      Y        32        32        32

    DIS     En
     --      N

-----VI WDR ATTR---------------------------------------------------------------
    Mode  BufNum    DstW    DstH  PoolId   VcNum  DesNum   State  bCompress
    NONE       0     640     480      -1       0       0    Init      N

-----VI WDR DES STATUS----------------------------------------------------------
     Idx    IntGap    IntCnt  CcErrCnt

-----VI WDR SRC STATUS----------------------------------------------------------
     Idx    IntGap    IntCnt  CcErrCnt

-----VI WDR COMBINE STATUS--------------------------------------------------------
    IntGap    IntCnt  CcErrCnt
         0         0         0

-----VI EXTCHN ATTR------------------------------------------------------------
ExtChn BindChn CropEn  CropX  CropY  CropW  CropH  DstW  DstH PixFom SrcRat DstRat  Depth   Comp
      1       0      N      0      0      0      0   352   288  SP420     -1     -1      4      N

-----VI CHN STATUS-------------------------------------------------------------
ViChn   bEnUsrP   FrmTime   FrmRate     SendCnt      SwLost    Rotate     Depth
     0         N         0         0           0           0      NONE         4
     1         N         0         0           0           0      NONE         4

-----VI CHN CALL VGS STATUS 1-------------------------------------------------
ViChn   UsrBgnNOk   UsrCancel    UsrEndOk     UsrCbOk   CovBgnNOk     CovCancel    CovEndOk    CovCbOk

-----VI CHN CALL VGS STATUS 2-------------------------------------------------
ViChn   OsdBgnNOk   OsdCancel    OsdEndOk     OsdCbOk      ScaleNOk   SclCancel    SclEndOk     SclCbOk

-----VI CHN CALL VGS STATUS 3-------------------------------------------------
ViChn   RotateNOk   RotCancel    RotEndOk     RotCbOk        LDCNOk   LDCCancel    LDCEndOk     LDCCbOk
[/code]

hanfei69882

2个粉丝

26

问答

0

专栏

2

资料

hanfei69882 2016-11-09 12:20:18
认可0
4.不需要把移动侦测结果输出到vo,只需要获取结果移动还是不移动如何处理?
自己尝试了处理HI_IVS_MD_Process参数pstSad,但是pstSad里面数据一直为0,处理方法如下:

[code]/*****************************************************************************
*   Prototype    : HI_IVS_MD_Process
*   Description  : Motion Detection(MD) process.
*   Parameters   : MD_CHN                                        MdChn            Md chn.
*                  IVE_SRC_IMAGE_S                *pstCur            Current image
*                                    IVE_SRC_IMAGE_S                *pstRef    Reference image
*                                    IVE_DST_IMAGE_S      *pstSad    Output result of sad value
*                                    IVE_DST_MEM_INFO_S        *pstBlob   Output blob
*   Return Value : HI_SUCCESS: Success;Error codes: Failure.
*
*****************************************************************************/
HI_S32 HI_IVS_MD_Process(MD_CHN MdChn,IVE_SRC_IMAGE_S *pstCur,IVE_SRC_IMAGE_S *pstRef,
                                                 IVE_DST_IMAGE_S  *pstSad,IVE_DST_MEM_INFO_S *pstBlob);[/code]

_nucong

1个粉丝

24

问答

0

专栏

4

资料

_nucong 2016-11-09 18:19:17
认可0
支持2种:
1. b_arg_online = 0 离线,data在vi那边取;
2. b_arg_online = 1, 在线模式, vi那边取帧失效啦,只能通过vpss那边取,那么多模块,实际上vi 真, 那么vpss就假啦

hanfei69882

2个粉丝

26

问答

0

专栏

2

资料

hanfei69882 2016-11-09 19:08:34
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=41035&ptid=13261]_nucong 发表于 2016-11-9 18:19[/url]
支持2种:
1. b_arg_online = 0 离线,data在vi那边取;
2. b_arg_online = 1, 在线模式, vi那边取帧失 ...[/quote]

谢谢指点,这个内容在手册哪个位置?
我这边只使用离线模式,测试了vpss读取文件处理ok,准备测试vi获取模式

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2016-11-10 08:53:32
认可0
1. vi/file 表示数据源的来源,vi是从vi来, file是从文件里读

2. 这些参数是不同流程的一些开关

3. 是为了取得320x240的图, 从vi log来看,vi通道没有中断过来,也就是说vi根本没有数据,因此扩展通道也不会有数据

4. 不输出结果到vo, 修改一下流程即可

5.  关于 calsad()  几个问题
    a. 虚拟地址是否可用?是否应该从物理地址通过HI_MPI_SYS_Mmap()得到?
    b. 双重循环中这样写法, 默认stride == width是否正确?
    c. 楼主的pstSad的来源是什么?是如何解释的

hanfei69882

2个粉丝

26

问答

0

专栏

2

资料

hanfei69882 2016-11-10 10:26:33
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=41053&ptid=13261]zhuangweiye 发表于 2016-11-10 08:53[/url]
1. vi/file 表示数据源的来源,vi是从vi来, file是从文件里读

2. 这些参数是不同流程的一些开关
[/quote]

多谢庄工指点:handshake:handshake
3. vi没有中断是因为sensor没有打开,已OK
4. 不输出到vo采用方法是直接处理HI_IVS_MD_Process()函数的返回值参数,这个参数有两个:pstSad、pstBlob,代码里面的注释在3楼的代码里面,文档注释如下图:

5. a. 虚拟地址我自己的理解是虚拟地址跟物理地址是对应的,操作的是同一块地址,只是应用场景不同,物理地址给IVE算法使用,虚拟地址给应用程序使用,参考【帖子[url=http://www.ebaina.com/bbs/thread-11962-1-1.html][hi3531/hi3535] 小白求问!IVE如何读入图像?有什么API可以使用吗?[/url]7楼】您的回答[quote]物理地址是IVE使用的地址, 应用程序使用虚拟地址[/quote]
b. stride和width我自己理解是stride是图像为了对齐占用的存储空间(实际没有存满),width是实际图像宽度,所以计算时只计算width部分
c. psdSad来源是第4条里面的HI_IVS_MD_Process()函数,代码注释在3楼,文档注释在图片,SAD的计算式参考【帖子[url=http://www.ebaina.com/bbs/forum.php?mod=viewthread&tid=11240&highlight=%D2%C6%B6%AF][求助] 请教几个移动侦测相关的概念 宏块 宏块SAD输出位数 SAD阀值[/url]2楼】您的回答,HI_IVS_MD_Process()返回的psdSad是一个图像,自己理解是每个像素点做了差值,所以计算sad把所有像素点加起来

另外sample里面使用的是第二个参数pstBlob,处理函数是SAMPLE_COMM_IVE_BlobToRect(),参考【帖子[url=http://www.ebaina.com/bbs/thread-12686-1-1.html][求助] 3518EV200 IVS_process输出结果不对[/url]】添加打印有打印输出

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2016-11-10 10:57:22
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=41062&ptid=13261]hanfei69882 发表于 2016-11-10 10:26[/url]
多谢庄工指点
3. vi没有中断是因为sensor没有打开,已OK
4. 不输出到vo采用方法 ...[/quote]

1.关于地址的问题,是指到楼主在代码中并没有转换,所以有疑问, 如果楼主已经知道, 那就不是问题

2.一般情况下 图像处理的循环如下:

        pStart = ...;
        for(j = 0; j < height; j++)
        {
                pLineStart = pStart;
                for( i = 0; i < width; i++ )
                {
                        // process
                        pLineStart++;
                }

                pStart += stride;
        }

注意这里 pStart += stride, 而楼主得代码里面实际是pStart += width, 这个还需要楼主仔细体会一下区别, 这一点也是理解图像在内存中如何存放的一个要点

hanfei69882

2个粉丝

26

问答

0

专栏

2

资料

hanfei69882 2016-11-10 12:01:00
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=41072&ptid=13261]zhuangweiye 发表于 2016-11-10 10:57[/url]
1.关于地址的问题,是指到楼主在代码中并没有转换,所以有疑问, 如果楼主已经知道, 那就不是问题

2.一 ...[/quote]

看了庄工的指点,茅塞顿开:victory:,之前只是理解上有个大概,但是应用上还是没有概念,还有一些不明白的地方要麻烦庄工:P

移动侦测区域的划分

SAMPLE_COMM_IVE_BlobToRect()函数里面处理,循环了254次,处理是不是把一幅照片处理为多个区域,然后按区域处理,sample采用的分辨率是1080p,处理图片是352*288,分割成了1920*1080/(352*288)=20个区域?还是一张图片缩小成352*288处理?

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2016-11-10 12:32:32
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=41082&ptid=13261]hanfei69882 发表于 2016-11-10 12:01[/url]
看了庄工的指点,茅塞顿开,之前只是理解上有个大概,但是应用上还是没有概念,还有一些不明 ...[/quote]

没仔细看过代码, 不过一般来说MD不会使用大图(D1可能是上限)且帧率不高, MD处理时一般以宏块为单位

比如数据源是1080P@25fps, 那么送去做MD的可能是D1或CIF, 帧率为5fps, 这个一般可以通过数据源绑定vpss来实现缩放和降帧, 而MD的结果是以宏块为单位的, 比如16x16或8x8, 即是否是移动是指这个宏块

hanfei69882

2个粉丝

26

问答

0

专栏

2

资料

hanfei69882 2016-11-10 16:33:52
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=41083&ptid=13261]zhuangweiye 发表于 2016-11-10 12:32[/url]
没仔细看过代码, 不过一般来说MD不会使用大图(D1可能是上限)且帧率不高, MD处理时一般以宏块为单位

比 ...[/quote]

去查了D1和CIF:$每次交流都有收获
宏块8x8意思是分成了64个区域么?还是每个宏块的大小是8x8?

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2016-11-10 16:48:02
认可0
本帖最后由 zhuangweiye 于 2016-11-10 16:49 编辑

[quote][url=forum.php?mod=redirect&goto=findpost&pid=41110&ptid=13261]hanfei69882 发表于 2016-11-10 16:33[/url]
去查了D1和CIF每次交流都有收获
宏块8x8意思是分成了64个区域么?还是每个宏块的大小是8x8?[/quote]


通常图像最基本的单位是像素, 比如720p, 按像素来说就是 1280x720 的一个平面

宏块 (macroblock, 缩写为MB ), 是图像编解码算法中常用术语, 通常为16(像素)x16(像素), 当然也可以扩展到8x8或者32x32等等, 这个要看上下文
宏块可以看成是大图上的一个小窗口
同样是720p的图, 按宏块来看就是 (1280/16) x (720/16) = 80(宏块) x 45(宏块) 的一个平面

hanfei69882

2个粉丝

26

问答

0

专栏

2

资料

hanfei69882 2016-11-10 18:38:16
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=41112&ptid=13261]zhuangweiye 发表于 2016-11-10 16:48[/url]
通常图像最基本的单位是像素, 比如720p, 按像素来说就是 1280x720 的一个平面

宏块 (macroblock,  ...[/quote]

指点之后有新的问题,查资料,重新看了代码,主要是参考[url=http://blog.csdn.net/huangblog/article/details/8252527]Hi3515移动侦测技术的设计与实现[/url],指点之后资料理解就快很多:handshake
[quote]要获取宏块报警信息,宏块报警信息为侦测某个宏块(16*16以像素为单位)的结果:要么1,要么0,如果1的累加值超过阈值,就报警,当然这是相对简单的,如果想复杂点,比如同时可以通过相对静像的测试,判断出距离内报警信息等,是需要相对比较复杂的算法的[/quote]
再看HI_IVS_MD_Process()函数的话只是将图片对比结果:SAd值、区域信息保存下来,至于如何利用数据判断移动和相关优化还要自己再添加算法处理,而且3518里面只是得出数据,处理算法比较简单,像链接里面3515的去除光照相应、像素报警是没有的

刚明白了第4个问题pstSad值为零的情况,sad输出模式设置的是IVE_SAD_OUT_CTRL_THRESH:阈值化图输出模式,就是只有阈值化图输出,没有sad输出:victory:


问题:阈值化图不太理解,如何判断移动?

海思的阈值化图保存称为连通区域标记


海思vo输出对于阈值化图有一个处理,注:最多输出区域信息个数为 254,IVE_CCBLOB_S 的成员 u16CurAreaThr 是分块后的面积阈值信息。在这里输出的连通区域信息是连续储存
[code]HI_VOID SAMPLE_COMM_IVE_BlobToRect(IVE_CCBLOB_S *pstBlob, SAMPLE_RECT_ARRAY_S *pstRect,
                                            HI_U16 u16RectMaxNum,HI_U16 u16AreaThrStep,
                                            HI_U16 u16SrcWidth, HI_U16 u16SrcHeight,
                                            HI_U16 u16DstWidth,HI_U16 u16DstHeight)
{
    HI_U16 u16Num;
    HI_U16 i,j,k;
    HI_U16 u16Thr= 0;
        HI_BOOL bValid;
       
    if(pstBlob->u8RegionNum > u16RectMaxNum)
    {
     
                u16Thr = pstBlob->u16CurAreaThr;
                do
                {
                        u16Num = 0;
                        u16Thr += u16AreaThrStep;
                        for(i = 0;i < 254;i++)
                        {
                                if(pstBlob->astRegion.u32Area > u16Thr)
                                {
                                        u16Num++;
                                }
                        }          
                }while(u16Num > u16RectMaxNum);  

    }   

   u16Num = 0;
   
   for(i = 0;i < 254;i++)
    {
        if(pstBlob->astRegion.u32Area > u16Thr)
        {

            pstRect->astRect[u16Num].astPoint[0].s32X = (HI_U16)((HI_FLOAT)pstBlob->astRegion.u16Left / (HI_FLOAT)u16SrcWidth * (HI_FLOAT)u16DstWidth) & (~1) ;
                        pstRect->astRect[u16Num].astPoint[0].s32Y = (HI_U16)((HI_FLOAT)pstBlob->astRegion.u16Top / (HI_FLOAT)u16SrcHeight * (HI_FLOAT)u16DstHeight) & (~1);

                        pstRect->astRect[u16Num].astPoint[1].s32X = (HI_U16)((HI_FLOAT)pstBlob->astRegion.u16Right/ (HI_FLOAT)u16SrcWidth * (HI_FLOAT)u16DstWidth) & (~1);
                        pstRect->astRect[u16Num].astPoint[1].s32Y = (HI_U16)((HI_FLOAT)pstBlob->astRegion.u16Top / (HI_FLOAT)u16SrcHeight * (HI_FLOAT)u16DstHeight) & (~1);

                        pstRect->astRect[u16Num].astPoint[2].s32X = (HI_U16)((HI_FLOAT)pstBlob->astRegion.u16Right / (HI_FLOAT)u16SrcWidth * (HI_FLOAT)u16DstWidth) & (~1);
                        pstRect->astRect[u16Num].astPoint[2].s32Y = (HI_U16)((HI_FLOAT)pstBlob->astRegion.u16Bottom / (HI_FLOAT)u16SrcHeight * (HI_FLOAT)u16DstHeight) & (~1);

                        pstRect->astRect[u16Num].astPoint[3].s32X = (HI_U16)((HI_FLOAT)pstBlob->astRegion.u16Left / (HI_FLOAT)u16SrcWidth * (HI_FLOAT)u16DstWidth) & (~1);
                        pstRect->astRect[u16Num].astPoint[3].s32Y = (HI_U16)((HI_FLOAT)pstBlob->astRegion.u16Bottom / (HI_FLOAT)u16SrcHeight * (HI_FLOAT)u16DstHeight) & (~1);

                        bValid = HI_TRUE;
                        for(j = 0; j < 3;j++)
                        {
                          for (k = j + 1; k < 4;k++)
                          {
                                  if ((pstRect->astRect[u16Num].astPoint[j].s32X == pstRect->astRect[u16Num].astPoint[k].s32X)
                                           &&(pstRect->astRect[u16Num].astPoint[j].s32Y == pstRect->astRect[u16Num].astPoint[k].s32Y))
                                          {
                                              bValid = HI_FALSE;
                                                break;
                                     }

                          }
                        }
                        if (HI_TRUE == bValid)
                        {
                                u16Num++;
                        }
        }
    }

        pstRect->u16Num = u16Num;
}[/code]

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2016-11-11 08:08:00
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=41118&ptid=13261]hanfei69882 发表于 2016-11-10 18:38[/url]
指点之后有新的问题,查资料,重新看了代码,主要是参考Hi3515移动侦测技术的设计与实现,指点之后资料 ...[/quote]

IVE_REGION_S astRegion[IVE_MAX_REGION_NUM]; /*Valid regions with'u32Area>0' and 'label = ArrayIndex+1'*/

看后面的注释, 再看结构
typedef struct hiIVE_REGION_S
{
HI_U32 u32Area; /*Represented by the pixel number*/
HI_U16 u16Left; /*Circumscribed rectangle left border*/
HI_U16 u16Right; /*Circumscribed rectangle right border*/
HI_U16 u16Top; /*Circumscribed rectangle top border*/
HI_U16 u16Bottom; /*Circumscribed rectangle bottom border*/
}IVE_REGION_S;

也就是说
pstCcb->astRegion[index].u32Area > 0 表示区域index是移动的, 该区域的位置是由pstCcb->astRegion[index].u16Left/u16Right/u16Top/u16Bottom4个点构成的矩形

代码上可以这样写
for(index = 0; index < IVE_MAX_REGION_NUM; index++)
{
        if (pstCcb->astRegion[index].u32Area > 0)
        {
                // moving, copy info ...
                ...
        }
}

hanfei69882

2个粉丝

26

问答

0

专栏

2

资料

hanfei69882 2016-11-11 11:30:35
认可0
好的,其实之前有找到代码,但是不知道怎么用[url=http://www.ebaina.com/bbs/thread-12686-1-1.html][求助] 3518EV200 IVS_process输出结果不对[/url]
明白了好多,太感谢了:hug::hug:

hanfei69882

2个粉丝

26

问答

0

专栏

2

资料

hanfei69882 2016-11-16 20:29:00
认可0
本帖最后由 hanfei69882 于 2016-11-16 20:53 编辑

[quote][url=forum.php?mod=redirect&goto=findpost&pid=41135&ptid=13261]zhuangweiye 发表于 2016-11-11 08:08[/url]
IVE_REGION_S astRegion; /*Valid regions with'u32Area>0' and 'label = ArrayIndex+1'*/

看后面的注 ...[/quote]

庄工指点之后,sample已跑通,整个功能也了解了很多:handshake
在移植的时候有一个问题,还要麻烦庄工指点一下

移动侦测ISP功能是必须的不?

项目不需要isp,而且移动侦测代码也看出处理的时候只处理图像的Y通道,所以把isp初始化代码去掉了,没去掉之前,可以正常移动侦测,调节阈值也会有变化,
去掉ISP之后,移动侦测可获取到图像数据,但是对于移动没有反应,一直输出固定的几个值
[code]/******************************************
     step 2: configure sensor and ISP (include WDR mode).
     note: you can jump over this step, if you do not use Hi3516A interal isp.
    ******************************************/
    s32Ret = SAMPLE_COMM_ISP_Init(pstViConfig->enWDRMode);
    if (HI_SUCCESS != s32Ret)
    {
        SAMPLE_PRT("%s: Sensor init failed!\n", __FUNCTION__);
        return HI_FAILURE;
    }

    /******************************************
     step 3: run isp thread
     note: you can jump over this step, if you do not use Hi3516A interal isp.
    ******************************************/
    s32Ret = SAMPLE_COMM_ISP_Run();
    if (HI_SUCCESS != s32Ret)
    {
        SAMPLE_PRT("%s: ISP init failed!\n", __FUNCTION__);
            /* disable videv */
        return HI_FAILURE;
    }[/code]

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2016-11-17 07:58:33
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=41353&ptid=13261]hanfei69882 发表于 2016-11-16 20:29[/url]
庄工指点之后,sample已跑通,整个功能也了解了很多
在移植的时候有一个问题,还要麻烦庄工 ...[/quote]

当然不是必须的, 移动侦测只是处理图像

但是对于楼主的实际情况可能是不设isp就没有图像, 没有图像(或者说只有固定的图像, 比如黑图), 那么移动侦测只会输出一样的值

如果不用isp, 在无解码的芯片上可以考虑使用文件做为数据源的方式来测试, 如果在有解码的芯片上, 可以考虑用vdec做为数据源(码流还是文件的方式)来测试

hanfei69882

2个粉丝

26

问答

0

专栏

2

资料

hanfei69882 2016-11-17 11:21:33
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=41357&ptid=13261]zhuangweiye 发表于 2016-11-17 07:58[/url]
当然不是必须的, 移动侦测只是处理图像

但是对于楼主的实际情况可能是不设isp就没有图像, 没有图像(或 ...[/quote]

感谢庄工的回复,看了回复之后去验证了一下
1、无解码芯片、有解码芯片是?
2、验证的时候文件方式和vi方式都进行了验证,文件方式已ok,是打算用vi模式
3、采用vi_dump抓出来图片查看,下半部分正常,上半部分不正常(只看了Y图),通道1和通道0是一样的,只是进行了缩小


附件是sp420格式的文件
附件:vi_chn_0_1.zip

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2016-11-17 11:31:24
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=41373&ptid=13261]hanfei69882 发表于 2016-11-17 11:21[/url]
感谢庄工的回复,看了回复之后去验证了一下
1、无解码芯片、有解码芯片是?
2、验证的时候文件方式和vi ...[/quote]


无解码的芯片一般是指没有解码器(vdec模块)的芯片, 比如ipc系列
有解码的芯片一般是指有解码器的芯片, 比如XVR系列

zfqddd

0个粉丝

0

问答

0

专栏

0

资料

zfqddd 2016-11-26 11:53:06
认可0
学习学习这个东西

zhtao2012

0个粉丝

1

问答

0

专栏

0

资料

zhtao2012 2016-12-16 16:05:18
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=41021&ptid=13261]hanfei69882 发表于 2016-11-9 12:20[/url]
4.不需要把移动侦测结果输出到vo,只需要获取结果移动还是不移动如何处理?
自己尝试了处理HI_IVS_MD_Proc ...[/quote]

你好,想问下你HI_IVS_MD_Process参数pstSad这个结构体怎么处理的,我自己打印出来的值u16Width = 0, u16Height = 4096。哪怕是有移动侦测产生了,这两个值也一直不变。
我想像3516那样,可以输出18*22个区域格子的每个格子代表的是0或者1这样,需要怎么做?
加载中···
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
相关问答
无更多相似问答 去提问
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区