Encoder
Version: 01.00.04
For low latency, I am using the encoder in sub frame synchronization mode for input and output. Out put data synchronization is based on slices. I am configuring the encoder with
outputDataMode = IVIDEO_SLICEMODE;
sliceMode = IH264_SLICEMODE_MBUNIT;
sliceUnitSize = 1020;
I have seen that , if the encoded number of bytes for a slice is very small (< 1024 bytes) it combines the output with next slices and give out together. Hence we need to wait for the already encoded slice to get out, till the next few slices are encoded . Encoded slices are not given out individually. This leads to increase in latency.
Questions:
- Is there any later version of encoder where this issue is addressed?
- Is this limitation coming from the encoder implementation only or based on some other limitation posed by hardware?
Decoder:
Version: 01.00.00
In sub-frame synchronization mode (for input), H264 decoder has been configured with
inputDataMode = IVIDEO_SLICEMODE;
and for output decoder has been configured with
outputDataMode = IVIDEO_NUMROWS;
numOutputDataUnits = 17;
My observation is that for slice input, if any slice size if less than 1024 bytes, decoder treats that as end of frame. To avoid that I need to combine multiple slices together and provide to the decoder which increases the latency of the system.
For sub frame output when the decoder is configured with numOutputDataUnits = 17, it gives out decoded output in multiple of numOutputDataUnits (17, 34, 51 MB rows etc). It does not give out slices individually most of the time and hence latency increases.
Questions:
- Is there any later version of decoder where these issues are addressed?
- Are these limitations coming from the decoder implementation only or based on some other limitation posed by hardware?
Regards,
Swapan