MMAPI NvJPEGEncoder quality parameter

Hello,

I am working with a Jetson TX2 development board, encoding H.264, H.265 and JPEG data from frames captured via the built-in camera, and streaming the encoded data out over RTP.

I notice that the JPEG encoder does not support a user-specified quality level. In addition to that, I can’t see the quality level documented anywhere, and I’m guessing it uses whatever default is specified in libjpeg. For us, the bottom line is that the quality must at least match the quality value we send out over RTP, in order for the client to properly reconstruct the image. We would also like to be able to change the quality value so our users can make the trade-off between quality and frame size.

Would NVIDIA consider enhancing NvJPEGEncoder so the quality could be specified externally and changed on the fly?

Thanks,

Chris Richardson

Please refer to https://devtalk.nvidia.com/default/topic/1018988/jetson-tx2/missing-header-file-in-building-hardware-accelerated-gstjpeg-from-source/post/5188588/#5188588

Hi Dane,

Thank you for the response and information. I did hack in some changes to NvJPEGEncoder to set the quality parameter. However, this does seem like a common enough thing to want to do that it could easily be supported in the base NVIDIA sources. Otherwise I (and anyone else who wants to do this) will have to carry this patch forward each time I upgrade to a new version of JetPack.

Thanks,

Chris

Hi Chris,
Actually most implementations are based on headers in include/libjpeg-8b/ such as gstreamer and Android. Should not be an issue. Also NvJpegEncoder class is open source.

but it can be better to have sample demonstrating this function. We will check it.

Hi Dane,

Thanks for the information. I am glad I am able to at least make the necessary changes since I have the source. I’ll continue to check future MMAPI releases to see if I can remove my local patch eventually.

Thanks,

Chris Richardson