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

RDK 从ENC link取编码数据的问题?

芯片为DM8148,使用DVR RDK4.1进行开发,做H.264编码,使用4D1的usecase,此usecase流程中,有编码后取出到A8核,再由A8写入到本地文件,在调试中发现,每次去enc中取编码数据时,有时候会一次返回两帧,从数据帧大小看,是一个I帧一个P帧。

请问:1,编码器一次编码一帧数据,为什么会取一次数据返回两帧数据?

2.是否可以通过参数设置,达到取一次数据只返回一帧的效果?

 

Ternence_Hsu:

你好;

       输出应当是每次获取是1帧数据,如果是 I 帧就会一次输出 sps、pps idr 的nal 单元;

       这个你可以再确认一下,会不会把sps 、pps 当成了P frame;

yang ran:

回复 Ternence_Hsu:

ENC link数据通过IpcBitInLinkHLOS_CreateParams 给到A8,A8取数据的时候是通过一个结构体,结构体返回本次取回几帧,以及数据地址,多数时候是1帧,有时候是2帧,而且两帧中小的是几k,打的是30或者40k,都有0x00000001的帧头,所以认为是I帧和P帧,请问这一处是因为取数据太慢造成的吗?或者是参数设置不当造成的吗?

Ternence_Hsu:

回复 yang ran:

你好;

        应当不是数据取得太慢的问题;

        你可以单独把每次取到的数据,单独保存为一个文件吗,贴出来,我帮你看一下;

yang ran:

回复 Ternence_Hsu:

首先感谢您的热心回答!只是数据太多,您跟我说下您的关注点,我再截取

Ternence_Hsu:

回复 yang ran:

数据应当是每次出来一帧,I帧的时候会带sps 和pps ,我想看一下数据,确定一下数据包里面到底是sps/pps 信息还是 P帧;

应当不会同时出多帧数据的;

Ternence_Hsu:

回复 Ternence_Hsu:

刚查了一下,应当不会出现你说的现象,有多个视频帧同时输出的;

这个问题,你可以再去确认一下数据;

yang ran:

回复 Ternence_Hsu:

您好,看来是我理解错了,rdk中ipcBitsInLink_tsk.c中有函数IpcBitsInLink_getFullBitBuf()中的循环可取回最多64帧,如果改成1帧即返回,数据延迟会很大,我是不是可以这样理解,enc每次编码一帧放入que,IpcBitsInLink_getFullBitBuf()取回则不一定每次取回一帧数据,视情况而定?我的程序中设置的编码后的bitRate为1Mbit/s,多数时候是IpcBitsInLink_getFullBitBuf()返回取回一帧数据,少数情况是返回一帧I帧和一帧P帧,I帧P帧顺序不一定。

赞(0)
未经允许不得转载:TI中文支持网 » RDK 从ENC link取编码数据的问题?
分享到: 更多 (0)