jc

jc

0个粉丝

3

问答

0

专栏

0

资料

jc  发布于  2024-01-16 20:59:11
采纳率 0%
3个问答
1726

关于海思接入usb摄像头解码帧率的问题

悬赏E币 5 个
已结题
 

最近在做usb摄像头接入Hi3521av100然后hdmi输出的功能,是仿照别人产品做的,用linux的v4l2框架,用mjpeg格式,30帧1080p输入正常输出延时100毫秒,但是60帧1080p输入时输出延时到差不多300毫秒,原本是差不多2秒的延时,cat别人产品的参数一直改才改到了差不多300毫秒的延时,因为别人的产品用的是3520dv400而且60帧1080pusb摄像头输入稳定延时60毫秒,性能看了眼手册应该不比3521好,现在问题卡在cat vdec和vpss的时候帧率一直是50,cat别人产品的vdec和vpss的帧率是稳定60,调了好久还是不知道为什么帧率少了10,而且用HI_MPI_VDEC_SendStream向视频解码通道发送码流数据时,用的是不阻塞方式,但是用不阻塞方式发送会一直报一个错就是0xa005800f,也就是缓存区中数据满,但是图像视频是有的,延时也是300毫秒,调了很久实在是不清楚是哪里的问题,然后换了性能更好的3536,vdec和vpss的帧率是上去了大概在60左右但是浮动挺大,有时候会掉到55,而且依然看得出有明显延时大概在150毫秒以上,用的也是不阻塞方式向解码通道发送数据,也是会报错0xa005800f,主要还是很疑惑3521在cat vdec和vpss的帧率一直是50帧还有0xa005800f报错的问题,更疑惑的还是既然一直报错图片视频能正常运行,希望路过的大佬能指点一下小弟,十分感谢!!!下面是我cat vb和vdec和vpss还有vo时的数据
vb:
[VB] Version: [Hi3521A_MPP_V1.0.5.0 B030 Release], Build Time[Jan 13 2017, 18:19:33]

——-VB PUB CONFIG——————————————————————————————-
Max Count of Pools: 256

——-VB SUPPLEMENT ATTR————————————————————————————
Supplement Config: 0
Supplement Size: 0
Vb Total Cnt: 35

——-COMMON POOL CONFIG————————————————————————————
PoolId 0
Size 4147200
Count 15

——-MODULE COMMON POOL CONFIG of VB_UID <4> ————————————————-
PoolId 0
Size 3133440
Count 5


PoolId PhysAddr VirtAddr IsComm Owner BlkSz BlkCnt Free MinFree
0 0x90b93000 0x 0 1 -1 4147200 15 12(12) 11
BLK VIU VOU VGS VENC VDEC VDA H264E JPEGE MPEGE H264D JPEGD MPEGD VPSS GRP MPI PCIV AI AENC RC VFMW USER H265E
5 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
7 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0
Sum 0 2 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0


PoolId PhysAddr VirtAddr IsComm Owner BlkSz BlkCnt Free MinFree
1 0x94722000 0x 0 1 4 3133440 5 3(3) 3
BLK VIU VOU VGS VENC VDEC VDA H264E JPEGE MPEGE H264D JPEGD MPEGD VPSS GRP MPI PCIV AI AENC RC VFMW USER H265E
1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0
2 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0
Sum 0 0 0 0 2 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0


PoolId PhysAddr VirtAddr IsComm Owner BlkSz BlkCnt Free MinFree
2 0x9618f000 0x 0 0 -2 3110400 15 11(11) 11
BLK VIU VOU VGS VENC VDEC VDA H264E JPEGE MPEGE H264D JPEGD MPEGD VPSS GRP MPI PCIV AI AENC RC VFMW USER H265E
0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
2 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
3 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Sum 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

vdec:
[VDEC] Version: [Hi3521A_MPP_V1.0.5.0 B030 Release], Build Time[Jan 13 2017, 18:19:33]

——-MODULE PARAM———————————————————————————————
obey_minCR MiniBufMode VBSource
0 0 0

——-CHN ATTR & PARAMS———————————————————————————-
ID TYPE Prior MaxW MaxH Width Height StrmInputMode Compress STATE
0 JPEG 255 1920 1080 1920 1080 FRAME/NOBLOCK N START
ID VfmwID RefNum MvpEnable DispNum BufSize MaxSlice MaxSPS MaxPPS MaxVPS DisplayMode
0 -1 0 N/A 2 3110400 0 0 0 0 Preview
ID ErrThr StrmThr DecMode OutMode SetUserPic Rotate PicPoolId PmvPoolId PriVbCnt
0 30 0 IP Dec N 0 -1 -1 -1

——-CHN STATE————————————————————————————————-
ID PrtclErr StrmUnSP StrmError RefNumErr PicSizeErr fmterror PicBufSizeErr StrmNotRls Notify
0 0 0 0 0 0 0 0 0 0
ID fps TimerCnt BufFLen DataLen UsrFLen UsrLen ptsBufF ptsBufU StreamEnd
0 50 4947 258513 3890703 4064 0 12 27 0

——- Detail Stream STATE —————————————————————————————-
ID MpiSndNum MpiSndLen VdecNum VdecLen FmGetNum FmGetLen FmRlsNum FmRlsLen FmLstGet FmRlsFail
0 2495 359389802 2495 37425 2553 355536524 2553 355536524 144333 0

——- Detail FrameStore STATE —————————————————————————————-
ID FmNewPic GetFromFm Discard UsrSnd KerSnd KerRls MeetEnd FrmInVdec CurPicPts RedDiff MaxRedDiff DecDiff MaxDecDiff
0 2468 2468 0 0 2468 2466 2468 27 0 541776 546194 0 0
ID FreeNode VfmwNode VgsNode VgsWorkingNode BusyNode UserNode RefNum IsAvalible VbCnt MaxVbCnt GetPicVbFail GetMvpVbFail
0 38 0 0 0 0 2 0 0 2 3 0 0

——- Detail UserData STATE —————————————————————————————-
ID MpiGet MpiGetLen MpiRls MpiRlsLen Discard DiscardLen GetFromFm GetFromFmLen UsrFLen UsrLen
0 0 0 0 0 0 0 0 0 4064 0

vpss:
[VPSS] Version: [Hi3521A_MPP_V1.0.5.0 B030 Release], Build Time[Jan 13 2017, 18:19:35]

————————————-MODULE PARAM—————————————————-
vpss_vb_source
0

————————————-VPSS GRP ATTR—————————————————-
GrpID MaxW MaxH PixFmt DieMode DciEn NrEn IeEn HistEn EsEn preMode
0 1920 1080 SP420 auto 0 0 0 0 0 VPSS

———————————-VPSS GRP FRAME CONTROL INFO————————————-
GrpID bFilter Width Height SrcFRate DstFRate bUserCtrl
0 0 0 0 -1 -1 Y

————————————-VPSS GRP PARAM—————————————————-
GrpID Cont IeStr SfStr TfStr CfStr CTfStr CvbsStr mdz HtfRe edz WtfRe DeMotion DieStr
0 8 0 24 12 12 16 24 6 52 63 36 0 0

————————————-VPSS CHN PARAM————————————————-
GrpID ChnID ChnSp
0 0 40

———————————-VPSS GRP PRESCALE INFO————————————-
GrpID bPreScl Width Height

————————————-VPSS CHN ATTR—————————————————-
GrpId PhyChnId Enable SpEn UVInvert FrmWkEn LW RW TW BW Color OverlayMask
0 0 1 0 0 0 0 0 0 0 0 ff

————————————-VPSS CROP INFO—————————————————-
GrpId CropEn CoorType CoorX CoorY Width Height OriW OriH TrimWid TrimHgt
0 0 RIT 0 0 0 0 1920 1080 1920 1080

————————————-VPSS GRP PIC QUEUE————————————-
GrpID FreeLen BusyLen Delay Backup
0 6 0 0 1

———————————-VPSS GRP WORK STATUS————————————-
GrpID RecvPic ViLost VdecLost NewDo OldDo NewUnDo OldUnDo StartFl bStart
0 2778 0 0 2778 0 0 8331 0 1

———————————-VPSS CHN WORK STATUS————————————-
GrpID ChnID WorkMode Depth SendOk bConfident SrcFRate DstFRate bDouble
0 0 USER 0 2777 1 -1 -1 —

———————————VPSS CHN OUTPUT RESOLUTION———————————-
GrpID ChnID Enable Width Height pixfmt cmpMode AspectRatio videoX videoY videoW videoH BgColor Rotation FrameRate
0 0 1 1920 1080 SP420 NONE NONE 0 0 1920 1080 0 0 50

————————————-DRV WORK STATUS—————————————————-
StartSuc0 LinkInt StartErr0 NodeIdErr0 BusErr
2778 2777 0 0 0

————————————-DRV NODE QUEUE—————————————————-
FreeNum WaitNum OrderWaitNum Busy00 Busy01 Sel0
456 0 0 0 1 1

———————————-INT WORK STATUS————————————-
CntPerSec MaxCntPerSec IntCostTm MostCostTm CostTmPerSec MCostTmPerSec
0 0 0 0 0 0
vo:

[VOU] Version: [Hi3521A_MPP_V1.0.5.0 B030 Release], Build Time[Jan 13 2017, 18:19:34]

——-DEV CONFIG————————————————————————————————
DevId DevEn Mux1 Mux2 Mux3 InfSync BkClr DevFrt
0 Y HDMI 1080P@60 ffff 60

——-MODULE PARAM———————————————————————————————
DevId detectCycle
ext_csc_en
0

——-DEV VDAC STATUS—————————————————————————————-
DevId VDAC
0 N

——-VIDEO LAYER STATUS————————————————————————————
LayerId VideoEn ClustMode PixFmt ImgW ImgH DispW DispH DispFrt DoubFrm Toleration Priority
0 Y N 420 1920 1080 1920 1080 60 N 10000000 0

——-VIDEO LAYER STATUS 2———————————————————————————
layerId VideoEn EnChNum Matrix Luma Cont Hue Satu
0 Y 1 0 50 50 50 50

——-VIDEO LAYER STATUS 3———————————————————————————
layerId DevId SetBeg SetEnd PartitionMode SupportCompress
0 0 N N Multi N

——-CHN BASE INFO ——————————————————————————————
LayerId ChnId ChnEn Prio DeFlk ChnX ChnY ChnW ChnH DispX DispY bSnap Field bCas CcPos bRcvMatch
0 0 Y 0 N 0 0 1920 1080 -1 -1 N both N 0 N

——-CHN PLAY INFO 1—————————————————————————————-
LayerId ChnId Batch Show Pause Step Revrs Refsh Thrshd ChnFrt ChnGap
0 0 N Y N N N N 3 60 16666

——-CHN PLAY INFO 2—————————————————————————————-
LayerId ChnId DisplayPts PrePts CurrPts ScalePts SetPts RecvCurPts
0 0 0 0 0 0 -1 0

——-ByMutli CHN STATUS1———————————————————————————-
LayerId ChnId QCnt NewDo OldDo LCnt SCnt ChRpt BusyN ShouD Dsped Area AreaT
0 0 0 0 0 0 3161 632 0 1 1 0 0

——-ByMutli CHN STATUS2———————————————————————————-
LayerId ChnId Buf1 Buf2 Buf3 Buf4 DBuf Stat1 Stat2 QNodeAddr SNodeAddr DispAddr ChnFreeNum ChnBusyNum
0 0 F F F F 1 end end 0 93320000 93320000 6 0

——-ByMutli CHN STATUS3————————————————————————————
LayerId ChnId AspectRatioMode X Y Width Height BgColor CompressMode
0 0 NONE 0 0 0 0 0 NONE

——-BySingle CHN STATUS 1——————————————————————————-
LayerId ChnId Job Task LCnt SCnt ChRpt DRpt CBusy DBusy ShouD Dsped b2Scl ChnAddr DispAddr

——-BySingle CHN STATUS 2——————————————————————————-
LayerId ChnId bBorder TopWidth BottomWidth LeftWidth RightWidth Color ChnFreeNum ChnBusyNum DisplayFreeNum DisplayBusyNum

——-BySingle CHN STATUS3———————————————————————————
LayerId ChnId AspectRatioMode X Y Width Height BgColor CompressMode

——-CHN OTHER INFO——————————————————————————————
LayerId ChnId bZoom ZmTyp ZoomX ZoomY ZoomW ZoomH SrcW SrcH
0 0 N 0 0 0 0 0 0 0

——-WBC INFO—————————————————————————————————
WbcId WbcW WbcH PixFmt FrmRat RealRat Mode SrcType SrcId Depth NotFin

——-GRAPHICS LAYER——————————————————————————————
Layer BindDev
HC0 0

——-LAYER CSC PARAM—————————————————————————————-
LAYERID Matrix Luma Cont Hue Satu
0 5 50 50 50 50
2 5 50 50 50 50

——-DEV VIDEO STATUS 3————————————————————————————
DevId bCasCfg bCasEn bCasSlv CasRgn CasMode CasPatn enCasDataTranMode Vtth
0 N N N 0 240

——-VGA PARAM————————————————————————————————-
DevId Matrix Luma Cont Hue Satu Gain SharpenStrength

——-HDMI PARAM————————————————————————————————
DevId Matrix Luma Cont Hue Satu
0 0 60 45 50 48

我来回答
回答8个
时间排序
认可量排序

紫晓龙吟

11个粉丝

8

问答

0

专栏

0

资料

紫晓龙吟 2024-01-17 09:19:18
认可0

大概看了下没啥问题,打印下v4l2采集jpg的时间,看看是不是1000/60fps=16.7ms

jc
jc   回复   紫晓龙吟  2024-01-17 12:11:32
0

v4l2的采集时间的话我看了一下好像没有这个接口函数,但是有获取当前帧率的接口函数,用这个函数获取到的是1/60,请问v4l2有其他关于图像采集时间的接口函数吗,还想请教一下关于0xa005800f的报错是因为我的解码缓存个数不够还是vb那边的问题

紫晓龙吟
紫晓龙吟   回复   jc  2024-01-17 15:03:59
0

v4l2获取的帧率可能和实际的不一样,所以需要在获取到图像的时候,打印一个时间,然后计算两帧的时间差,从而计算帧率;0xa005800f表示vdec的缓存区满,可能是vdec解码性能不够送入的比解码的多,也可能是后端vpss和vo限制,达不到速率,从vdec取数据不及时导致vdec缓存满;出现0xa005800f的原因比较多,需要从多个方向去排查

jc
jc   回复   紫晓龙吟  2024-01-17 19:54:45
0

用你的方法测了一下,浮动有点大,有时候能到12ms有时候能到20ms左右,平均的话是16ms左右的,vdec缓存区满的报错确实还得继续查,毕竟3536也会报这个错,多半哪里设置有问题

紫晓龙吟
紫晓龙吟   回复   jc  2024-01-18 08:57:07
0

12ms就是80fps,设置的60fps解码,按80fps送,一会就把vdec的缓存塞满了;所以,先稳定v4l2输出的帧率,基本不会这么大波动的

jc
jc   回复   紫晓龙吟  2024-01-18 09:28:00
0

在HI_MPI_VDEC_SendStream设置超时阻塞100ms发送的话倒是不会继续报缓存区满这个错,但是总感觉延时会大点,而且vdec和vpss帧率还是50没上去,主要cat别人产品的时候这里是用非阻塞发送

jc
jc   回复   紫晓龙吟  2024-01-18 14:37:52
0

想请教一下有什么办法可以降低v4l2的抓取图像的速率吗,因为我把摄像头设置成30帧时,不会报这个错,想着先从试试降低v4l2的抓取速率试试,我在v4l2设置帧率为30帧时发现没什么用,读到的时间也是16ms左右,虽然说用接口函数获取到的帧率是30帧,但是实际还是60帧的速率,感觉v4l2设置帧率这个接口函数没什么用

紫晓龙吟
紫晓龙吟   回复   jc  2024-01-19 08:58:24
0

抽帧呀,两帧丢一帧,60变30;具体点,定义一个累加数int count,if(count % 2 == 0) {vdec_send(data);}

或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

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

Markdown 语法

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

举报类型

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

详细说明

易百纳技术社区