Zero latency VPU h264 encoder with periodic intra frame support?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Zero latency VPU h264 encoder with periodic intra frame support?

Jump to solution
1,751 Views
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.

Labels (2)
Tags (1)
1 Solution
1,364 Views
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.

View solution in original post

0 Kudos
4 Replies
1,364 Views
gavingreenwalt
Contributor III

If you find a solution please let me know.

0 Kudos
1,364 Views
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 Kudos
1,365 Views
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 Kudos
1,364 Views
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.