Zero latency VPU h264 encoder with periodic intra frame support?

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

Zero latency VPU h264 encoder with periodic intra frame support?

跳至解决方案
3,397 次查看
moire59
Contributor II

The documentation is vague about it and there are no previous questions I could find.

Is this encoder profile supported from the imx6 platform?

Thank you.

标签 (2)
标记 (1)
1 解答
3,010 次查看
jamesbone
NXP TechSupport
NXP TechSupport

Giovanni,

You are correct the intraRefresh parameter  is the latency and  you can control the I-frames and P-frames in the EncOpenParam structure, modifing the Gobsize

typedef struct {

CodStd bitstreamFormat;

PhysicalAddress bitstreamBuffer;

Uint32 bitstreamBufferSize;

Uint8 *virt_bitstreamBuffer;

int streamBufResetEnable;

int picWidth;

int picHeight;

Uint32 frameRateInfo;

int bitRate;

int initialDelay;

int vbvBufferSize;

int enableAutoSkip;

int gopSize;

int sliceMode;

int sliceSizeMode;

int sliceSize;

int intraRefresh;

int sliceReport;

int mbReport;

int mbQpReport;

union {

EncMp4Param mp4Param;

EncH263Param h263Param;

EncAvcParam avcParam;

} EncStdParam;

} EncOpenParam;

Gobsize

0 – Only first picture is I, 1 – all I pictures, 2 – IPIP…, 3 – IPPIPP…

The maximum value is limited by 60.

在原帖中查看解决方案

0 项奖励
回复
4 回复数
3,010 次查看
gavingreenwalt
Contributor III

If you find a solution please let me know.

0 项奖励
回复
3,010 次查看
moire59
Contributor II

Well, from this question: https://community.freescale.com/thread/311299

and this quote from the manual:

intraRefresh where 0 = Intra MB refresh is not used. Otherwise = At least N MB's in every P-frame are encoded as intra MB's.

It should be possible to have intra refresh P frames, while having maybe 1 I frame every few hours? Depending on how that number is declared? Even if it's a 16 bit one it should still be quite a lot of frames before an I one.


But maybe my understanding of it is completely wrong.

0 项奖励
回复
3,011 次查看
jamesbone
NXP TechSupport
NXP TechSupport

Giovanni,

You are correct the intraRefresh parameter  is the latency and  you can control the I-frames and P-frames in the EncOpenParam structure, modifing the Gobsize

typedef struct {

CodStd bitstreamFormat;

PhysicalAddress bitstreamBuffer;

Uint32 bitstreamBufferSize;

Uint8 *virt_bitstreamBuffer;

int streamBufResetEnable;

int picWidth;

int picHeight;

Uint32 frameRateInfo;

int bitRate;

int initialDelay;

int vbvBufferSize;

int enableAutoSkip;

int gopSize;

int sliceMode;

int sliceSizeMode;

int sliceSize;

int intraRefresh;

int sliceReport;

int mbReport;

int mbQpReport;

union {

EncMp4Param mp4Param;

EncH263Param h263Param;

EncAvcParam avcParam;

} EncStdParam;

} EncOpenParam;

Gobsize

0 – Only first picture is I, 1 – all I pictures, 2 – IPIP…, 3 – IPPIPP…

The maximum value is limited by 60.

0 项奖励
回复
3,010 次查看
moire59
Contributor II

Hi, and thank you for the answer.

Can you also confirm that the encoder doesn't support slice based encoding (or rather it does, but it can't output/input slices instead of full frames, so I need to wait for the full frame during the encoding and during the decoding, and I add 2 frames of latency to my application without considering anything else?

Thank you.