MXF Converter

We have implemented very fast MXF converter which is working on NVIDIA GPU. This is high performance JPEG2000 encoder and decoder. It could be used for fast JPEG2000 decompression and further video processing. Our MXF converter can process input MXF files or streams on GPU and then transform them into MP4 or alike. MXF converter could be a part of video transcoding pipeline.

mxf converter on gpu

Features of MXF Converter on CUDA

  • MXF decoding and encoding for grayscale and color images
  • Lossy (wavelet CDF 9/7) and lossless (wavelet CDF 5/3) image compression and decompression
  • Bit depth: 8-12 bits per channel (up to 24 bits per channel)
  • Color spaces: sRGB, Rec.709, Adobe RGB, ProPhoto RGB, DCI P3, XYZ, Linear
  • Number of decomposition levels from 1 to 7
  • Code-block size 16×16, 32×32 or 64×64
  • Option for arbitrary size of codeblock
  • Color sampling modes: 4:4:4, 4:2:2, 4:2:0
  • Image quality in the range of 1–100 (float value)
  • Modes of operation: Single image mode and Batch mode (multiple image streaming)
  • MXF input from HDD/RAID/SSD/CPU/GPU
  • Workflow for MXF converter on CPU and GPU:
    • MXF reading and frame extraction
    • Frame parsing
    • Tag Tree Decoding
    • Binary Decoding
    • Inverse Quantization
    • IDWT
    • Inverse Color Transform
    • Output formatting
    • Resize accoding to anticipated resolution
    • Encoding to destination format
  • Integration with OpenGL to ensure smooth playback during convertion
  • Options: zoom, rotation, etc.
  • MXF Converter is compatible with Windows-10 and Linux Ubuntu/CentOS

One can convert MXF files to different video or audio formats at the same time. Just choose output format from profile drop-down for each file respectively and then hit convert image button to finish all file conversions.

How to convert MXF files with FFmpeg?

Apart from our sample application from Fastvideo SDK which is intended for MXF encoding or decoding on GPU, we've also implemented a solution for FFmpeg to be able to convert and to transcode MXF (J2K) files or streams with FFmpeg.

In general, if we need to convert MXF files with FFmpeg, we have to create a codec which is capable of JPEG2000 decoding and to build FFmpeg with source codes of that codec. Most of users at the moment are doing JPEG2000 decoding at FFmpeg via OpenJPEG library, which is sofisticated, but very slow, because J2K algorithm is very complicated and CPU-based processing just can't give good performance even at multithreading, and this is vitally important for realtime applications.

Slow performance of FFmpeg with OpenJPEG was the reason why we've implemented FFmpeg J2K codec for MXF encoding or decoding on CUDA. That solution is fully based on our JPEG2000 codec from Fastvideo SDK and here you can see the benchmarks or J2K decoding on GPU.

ffmpeg jpeg2000 mxf converter

Current version of our FFmpeg J2K codec (which is called jp2k_cuda) is working with MXF (J2K) files to accomplish J2K decoding or transcoding on GPU. We've implemented on CUDA just J2K decoding part, all the rest is done by FFmpeg.

This is quite conventional task to convert MXF with J2K-encoded stream to H.264 or HEVC (H.265) via FFmpeg with maximum possible performance. CPU-based solutions are based on libx264 (libx265) and OpenJPEG are increadibly slow, though GPU-based transcoding solutions (jp2k_cuda + nvenc or jp2k_cuda + hevc) could work faster than real time.

Contact Form

This form collects your name and email. Check out our Privacy Policy on how we protect and manage your personal data.