你好,目前用6467解码1024*1024分辨率的H264,然后输出到显示器,发现延迟很大,大约延迟16帧,通过查看PDF,有个参数displayDelay默认恰好也是16,但是CE提供的VIDDEC2_Params没有包括这个变量,请问如何修改,谢谢,或者有没有其他方法可以缩短延迟
Chris Meng:
Jin,
请参考论坛讨论:https://e2e.ti.com/support/embedded/multimedia_software_codecs/f/356/t/129132。
jin xin:
回复 Chris Meng:
那个帖子我刚才看了一下,Vdec2_create(hEngine, args->codecName, ¶ms, &dynParams);其中params的结构体成员定义在xdais_6_25_02_11\packages\ti\xdais\dm\ividdec2.h中,params根本没有displaydelay这个成员变量,是不是要添加其他的头文件,是不是要添加ccs例程下的ih264vdec.h
Chris Meng:
回复 jin xin:
Jin Xin,
e2e的帖子里有提到他添加了IH264VDEC_Params extdecParams;等代码。displaydelay是h264的扩展参数,需要添加相关头文件。这个头文件在h264dec库的包里面。
jin xin:
回复 Chris Meng:
你好,目前测试了多次,displaydelay参数不能设置0,最低只能设置2,如果设置0,显示效果很差,一会有显示,一会无显示,交叉显示,难道这个参数不能设置0缓存吗
Chris Meng:
回复 jin xin:
你好,
请问修改了displaydelay后,现在最好的延时是多少ms?请问你的延时是如何测量的?
jin xin:
回复 Chris Meng:
大约200MS左右,测试方法:摄像机+显示屏+秒表+手机,摄像机对着秒表,显示器显示秒表,显示器中的秒表和实际的秒表用手机拍照,两个秒表的差值大约400ms,其中200MS是其他的板卡消耗的时间,剩余的200ms,是数据进入6467解码显示的时间
Chris Meng:
回复 jin xin:
你好,
请问在DM6467侧,你们是接收到一帧压缩数据后就立即解码,还是会缓存几帧后再解码?解码后是立即显示的么?
你看到修改displaydelay对减少延时的改善么?
jin xin:
回复 Chris Meng:
我是压缩之后马上开始解码,压缩和解压分别通过两块板子,通过网络通信,解码后调用DisPlayBuf = Vdec2_getDisplayBuf(hVe);发送到相应的显示程序,即hDisBuf = getDisplayBuffer(&display_fd);把解压的数据存入hDisBuf ,在调用putDisplayBuffer,displaydelay这个值修改确实有效果,如果没有修改前,大约有700ms,把displaydelay=2后,时间400ms
Chris Meng:
回复 jin xin:
你好,
你是否有测试过网传的时间有多少?
显示部分,请问putDisplayBuffer是否是解码buffer copy到显示驱动?如果是,这里也会增加延时,建议修改驱动,直接把解码的buffer指针送到显示驱动。
关于display设置为2的问题,你可以参考一下e2e的讨论:https://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/99/p/6017/22400#pi317334=1。