We are developing a product which uses the iMX8M Mini to encode 1080p30 video, captured from its camera interface.
We have a requirement that when the input is static (or almost static), the bandwidth of the encoded video stream needs to be <100kbps. This should be achievable with an efficient H.264 encoder, and we already have a solution developed which achieves this using the iMX6DL.
However when we test the iMX8MM we find that for some static inputs the bandwidth of encoded video is >5Mbbps. This doesn't make sense to us, since there is no change in the input from frame to frame, and therefore the output encoded video bandwidth should be low, meeting our requirement.
Has anyone else noticed behaviour like this for whilst using the iMX8MM encoder? Is there anyone at NXP who can help us with this?
Here is the test command we have used, showing the set of encoder parameters we use. road_30s.bgr0 is 900 frames of raw video, where every frame is an identical image of a road. out.h264 is the output encoded video, which had a bitrate of ~6Mbps. This seems at least an order of magnitude higher than it should be.
/unit_tests/VPU/hantro/h264_testenc \
--input /tmp/road_30s.bgr0 \
--output /tmp/out.h264 \
--firstPic 1 \
--lastPic 900 \
--outputRateNumer 30 \
--outputRateDenom 1 \
--inputRateNumer 30 \
--inputRateDenom 1 \
--lumWidthSrc 1920 \
--lumHeightSrc 1080 \
--inputFormat 11 \
--colorConversion 1 \
--viewMode 0 \
--level 42 \
--byteStream 1 \
--quarterPixelMv 0 \
--enableCabac 0 \
--bitPerSecond 10000000 \
--picRc 1 \
--mbRc 1 \
--gopLength 30 \
--intraPicRate 0 \
--intraQpDelta 0 \
--fixedIntraQp 51 \
--refFrameAmount 1 \
--longTermPicRate 15