Looking for JPEG2000 encoder and decoder.

Hi there,

I am looking for encoders which can compress video into JPEG2000 and VC-2 format with Gstreamer on TX1, so it seem libav provide “avenc_jpeg2000” plugin while NVidia also provide hardware accelerated based plugin “nvjpegenc”, so my question is what is the different between “avenc_jpeg2000” with the “nvjpegenc”, do “nvjpegenc” also compress the video into JPEG2000?

So for VC-2, it seems less promising, since so few people talking about this “avenc_vc2” plugin, do anyone familiar with this SMPTE VC-2, since I never successfully working with this encoder, thank you.

Kevin

Hi Kevin,
There is not HW engine of JPEG2000 and VC-2 on TX1(and also TK1), so you have to use SW plugins.

We are not familiar with VC-2 avenc_vc2 plugin. Wish other users can share experience. Thanks.

Hi guys!

Please, I need you help. I really noob with Gstreamer.

I’m trying to transcode a DCP video file codified with Jpeg2000 in the Jetson TX2, but until now I was not successful.

As ‘usaarizona’ said, Gstreamer has the libraries (SW) for that


nvidia@tegra-ubuntu:~/Downloads/testvideo$ gst-inspect-1.0 | grep jpeg2000
libav: avenc_jpeg2000: libav JPEG 2000 encoder
libav: avdec_jpeg2000: libav JPEG 2000 decoder

If I execute a Gstreamer trying to transcode to h264 (using HW acceleration), It’s like a Gstreamer needs other parameters to complete the work (Only this character ‘>’ appear below the command)


gst-launch-1.0 filesrc location=j2k.mxf ! qtdemux name=demux demux.video_0 ! queue ! avdec_jpeg2000 ! nvvidconv ! 'video/xraw(memory:NVMM), format=(string)I420’ ! omxh264enc ! qtmux name=mux ! filesink location=resj2k.mp4 demux.audio_0 ! queue ! aacparse ! mux.audio_0 -e


I also tried removing the parameters about audio (the file only has video), and the result is the same.

Finally, the metadata of the file is:

Video
Count : 332
Count of stream of this kind : 1
Kind of stream : Video
Kind of stream : Video
Stream identifier : 0
ID : 2
ID : 2
Format : JPEG 2000
Format/Url : http://www.morgan-multimedia.com/JPEG 2000/
Commercial name : JPEG 2000
Format profile : D-Cinema 2k
Format settings, wrapping mode : Frame
Internet media type : image/jp2
Codec ID : 0D010301020C0100-0401020203010103
Codec : JPEG 2000
Codec : JPEG 2000
Duration : 55000
Duration : 55s 0ms
Duration : 55s 0ms
Duration : 55s 0ms
Duration : 00:00:55.000
Duration : 00:00:55:00
Duration : 00:00:55.000 (00:00:55:00)
Bit rate : 99524528
Bit rate : 99.5 Mbps
Width : 1998
Width : 1 998 pixels
Height : 1080
Height : 1 080 pixels
Sampled_Width : 1998
Sampled_Height : 1080
Pixel aspect ratio : 1.000
Display aspect ratio : 1.850
Display aspect ratio : 1.85:1
Frame rate : 24.000
Frame rate : 24.000 fps
Frame count : 1320
Resolution : 12
Resolution : 12 bits
Color space : XYZ
Chroma subsampling : 4:4:4
Bit depth : 12
Bit depth : 12 bits
Scan type : Progressive
Scan type : Progressive
Bits/(Pixel*Frame) : 1.922
Delay : 3600000
Delay : 1h 0mn
Delay : 1h 0mn 0s 0ms
Delay : 1h 0mn
Delay : 01:00:00.000
Delay_DropFrame : No
Delay, origin : Container
Delay, origin : Container
Stream size : 684231130
Stream size : 653 MiB (100%)
Stream size : 653 MiB
Stream size : 653 MiB
Stream size : 653 MiB
Stream size : 652.5 MiB
Stream size : 653 MiB (100%)
Proportion of this stream : 0.99998
Title : Picture Track

I know that this transcode is heavey if we use a SW coder, but in this case, real-time transcoding is not necessary.

Best regards!
Abel

Probably you should use mxfdemux https://www.freedesktop.org/software/gstreamer-sdk/data/docs/2012.5/gst-plugins-bad-plugins-0.10/gst-plugins-bad-plugins-mxfdemux.html

In the Fastvideo SDK which is compatible with Tegra X1 you can find both JPEG2000 encoder and decoder.
More info about that SDK you can see at
https://www.fastcompression.com/products/sdk.htm

These are benchmarks for that SDK on desktop/server GPUs:
JPEG2000 Encoding
https://www.fastcompression.com/benchmarks/benchmarks-j2k.htm
JPEG2000 Decoding:
https://www.fastcompression.com/benchmarks/decoder-benchmarks-j2k.htm

https://docs.nvidia.com/cuda/nvjpeg2000/userguide.html

Nvidia did it.