JPEG Encoder problem on Jetson Orin NX
Open
Nobody has claimed this yet.
bug
- Dominant language
- Jupyter Notebook
- Stars
- 159
- Forks
- 22
- PR merge metrics
- No merged PRs in 30d
Description
Version
0.6.0.32
Describe the bug.
Hello, dear developers.
Thank you for a solution that is very valuable for the Nvidia ecosystem.
I try to save a CuPy-allocated image with the Encoder. The same source code works just fine on dGPU.
Minimum reproducible example
from nvidia import nvimgcodec
import cupy as cp
codec = nvimgcodec.Encoder(backends=[nvimgcodec.Backend(nvimgcodec.BackendKind.HW_GPU_ONLY)])
encode_params = nvimgcodec.EncodeParams(
quality_type=nvimgcodec.QualityType.QUALITY, quality_value=95
)
cupy_image = cp.zeros((1280, 720, 3), dtype=cp.uint8)
codec.write(
f'screenshot.jpg',
nvimgcodec.as_image(cupy_image),
'jpeg',
params=encode_params
)
Environment details
JetPack 6.1
DeepStream 7.0 is working well with NVJPEG
Relevant log output
[INFO] [nvimgcodec] Registering extension nvimgcodec_builtin_parsers version:0.6.0
[INFO] [nvimgcodec] Framework is registering parser (id:bmp_parser codec:bmp)
[INFO] [nvimgcodec] Codec bmp not yet registered, registering for first time
[INFO] [nvimgcodec] Framework is registering parser (id:jpeg_parser codec:jpeg)
[INFO] [nvimgcodec] Codec jpeg not yet registered, registering for first time
[INFO] [nvimgcodec] Framework is registering parser (id:jpeg2k_parser codec:jpeg2k)
[INFO] [nvimgcodec] Codec jpeg2k not yet registered, registering for first time
[INFO] [nvimgcodec] Framework is registering parser (id:png_parser codec:png)
[INFO] [nvimgcodec] Codec png not yet registered, registering for first time
[INFO] [nvimgcodec] Framework is registering parser (id:pnm_parser codec:pnm)
[INFO] [nvimgcodec] Codec pnm not yet registered, registering for first time
[INFO] [nvimgcodec] Framework is registering parser (id:tiff_parser codec:tiff)
[INFO] [nvimgcodec] Codec tiff not yet registered, registering for first time
[INFO] [nvimgcodec] Framework is registering parser (id:webp_parser codec:webp)
[INFO] [nvimgcodec] Codec webp not yet registered, registering for first time
[INFO] [nvimgcodec] Loading extension module: /home/administrator/.local/lib/python3.10/site-packages/nvidia/nvimgcodec/extensions/libnvtiff_ext.so.0.6.0
[INFO] [nvimgcodec] Registering extension nvtiff_extension version:0.6.0
[INFO] [nvimgcodec] Framework is registering decoder (id:nvtiff_cuda_decoder codec:tiff)
[INFO] [nvimgcodec] Framework is registering encoder (id:nvtiff_cuda_encoder codec:tiff)
[INFO] [nvimgcodec] Loading extension module: /home/administrator/.local/lib/python3.10/site-packages/nvidia/nvimgcodec/extensions/libjpeg_turbo_ext.so.0.6.0
[INFO] [nvimgcodec] Registering extension libjpeg_turbo_extension version:0.6.0
[INFO] [nvimgcodec] Framework is registering decoder (id:libjpeg_turbo_decoder codec:jpeg)
[INFO] [nvimgcodec] Loading extension module: /home/administrator/.local/lib/python3.10/site-packages/nvidia/nvimgcodec/extensions/libnvjpeg_ext.so.0.6.0
[INFO] [nvimgcodec] Registering extension nvjpeg_extension version:0.6.0
[INFO] [nvimgcodec] Framework is registering encoder (id:nvjpeg_cuda_encoder codec:jpeg)
[INFO] [nvjpeg-ext] HW decoder not supported by this platform. Skip.
[INFO] [nvimgcodec] Framework is registering decoder (id:nvjpeg_cuda_decoder codec:jpeg)
[INFO] [nvimgcodec] Framework is registering decoder (id:nvjpeg_lossless_decoder codec:jpeg)
[INFO] [nvimgcodec] Loading extension module: /home/administrator/.local/lib/python3.10/site-packages/nvidia/nvimgcodec/extensions/libnvpnm_ext.so.0.6.0
[INFO] [nvimgcodec] Registering extension nvpnm_extension version:0.6.0
[INFO] [nvimgcodec] Framework is registering encoder (id:nvpnm_encoder codec:pnm)
[INFO] [nvimgcodec] Loading extension module: /home/administrator/.local/lib/python3.10/site-packages/nvidia/nvimgcodec/extensions/libtiff_ext.so.0.6.0
[INFO] [nvimgcodec] Registering extension libtiff_extension version:0.6.0
[INFO] [nvimgcodec] Framework is registering decoder (id:libtiff_decoder codec:tiff)
[INFO] [nvimgcodec] Loading extension module: /home/administrator/.local/lib/python3.10/site-packages/nvidia/nvimgcodec/extensions/libopencv_ext.so.0.6.0
[INFO] [nvimgcodec] Registering extension opencv_extension version:0.6.0
[INFO] [nvimgcodec] Framework is registering decoder (id:opencv_jpeg_decoder codec:jpeg)
[INFO] [nvimgcodec] Framework is registering decoder (id:opencv_jpeg2k_decoder codec:jpeg2k)
[INFO] [nvimgcodec] Framework is registering decoder (id:opencv_png_decoder codec:png)
[INFO] [nvimgcodec] Framework is registering decoder (id:opencv_bmp_decoder codec:bmp)
[INFO] [nvimgcodec] Framework is registering decoder (id:opencv_pnm_decoder codec:pnm)
[INFO] [nvimgcodec] Framework is registering decoder (id:opencv_tiff_decoder codec:tiff)
[INFO] [nvimgcodec] Framework is registering decoder (id:opencv_webp_decoder codec:webp)
[INFO] [nvimgcodec] Framework is registering encoder (id:opencv_jpeg_encoder codec:jpeg)
[INFO] [nvimgcodec] Framework is registering encoder (id:opencv_jpeg2k_encoder codec:jpeg2k)
[INFO] [nvimgcodec] Framework is registering encoder (id:opencv_png_encoder codec:png)
[INFO] [nvimgcodec] Framework is registering encoder (id:opencv_bmp_encoder codec:bmp)
[INFO] [nvimgcodec] Framework is registering encoder (id:opencv_pnm_encoder codec:pnm)
[INFO] [nvimgcodec] Framework is registering encoder (id:opencv_tiff_encoder codec:tiff)
[INFO] [nvimgcodec] Framework is registering encoder (id:opencv_webp_encoder codec:webp)
[INFO] [nvimgcodec] Loading extension module: /home/administrator/.local/lib/python3.10/site-packages/nvidia/nvimgcodec/extensions/libnvbmp_ext.so.0.6.0
[INFO] [nvimgcodec] Registering extension nvbmp_extension version:0.6.0
[INFO] [nvimgcodec] Framework is registering encoder (id:nvbmp_encoder codec:bmp)
[INFO] [nvimgcodec] Framework is registering decoder (id:nvbmp_decoder codec:bmp)
[INFO] [nvimgcodec] Loading extension module: /home/administrator/.local/lib/python3.10/site-packages/nvidia/nvimgcodec/extensions/libnvjpeg2k_ext.so.0.6.0
[INFO] [nvimgcodec] Registering extension nvjpeg2k_extension version:0.6.0
[INFO] [nvimgcodec] Framework is registering encoder (id:nvjpeg2k_encoder codec:jpeg2k)
[INFO] [nvimgcodec] Framework is registering decoder (id:nvjpeg2k_decoder codec:jpeg2k)
[INFO] [nvimgcodec] Requested num_threads=0, cpu_cores_count=8, selected num_threads=7
[INFO] [nvimgcodec] encode num_samples=1
[INFO] [nvimgcodec] Sample #0 can't be processed
[WARNING] [pynvimgcodec] Something went wrong during encoding image #0 there will be None on corresponding output position
[INFO] [nvimgcodec] Unregistering extension libjpeg_turbo_extension version:0.6.0
[INFO] [nvimgcodec] Framework is unregistering decoder (id:libjpeg_turbo_decoder codec:jpeg)
[INFO] [nvimgcodec] Unloading extension module:/home/administrator/.local/lib/python3.10/site-packages/nvidia/nvimgcodec/extensions/libjpeg_turbo_ext.so.0.6.0
[INFO] [nvimgcodec] Unregistering extension libtiff_extension version:0.6.0
[INFO] [nvimgcodec] Framework is unregistering decoder (id:libtiff_decoder codec:tiff)
[INFO] [nvimgcodec] Unloading extension module:/home/administrator/.local/lib/python3.10/site-packages/nvidia/nvimgcodec/extensions/libtiff_ext.so.0.6.0
[INFO] [nvimgcodec] Unregistering extension nvbmp_extension version:0.6.0
[INFO] [nvimgcodec] Framework is unregistering encoder (id:nvbmp_encoder codec:bmp)
[INFO] [nvimgcodec] Framework is unregistering decoder (id:nvbmp_decoder codec:bmp)
[INFO] [nvimgcodec] Unloading extension module:/home/administrator/.local/lib/python3.10/site-packages/nvidia/nvimgcodec/extensions/libnvbmp_ext.so.0.6.0
[INFO] [nvimgcodec] Unregistering extension nvimgcodec_builtin_parsers version:0.6.0
[INFO] [nvimgcodec] Framework is unregistering parser (id:bmp_parser codec:bmp)
[INFO] [nvimgcodec] Framework is unregistering parser (id:jpeg_parser codec:jpeg)
[INFO] [nvimgcodec] Framework is unregistering parser (id:jpeg2k_parser codec:jpeg2k)
[INFO] [nvimgcodec] Framework is unregistering parser (id:png_parser codec:png)
[INFO] [nvimgcodec] Framework is unregistering parser (id:pnm_parser codec:pnm)
[INFO] [nvimgcodec] Framework is unregistering parser (id:tiff_parser codec:tiff)
[INFO] [nvimgcodec] Framework is unregistering parser (id:webp_parser codec:webp)
[INFO] [nvimgcodec] Unregistering extension nvjpeg2k_extension version:0.6.0
[INFO] [nvimgcodec] Framework is unregistering encoder (id:nvjpeg2k_encoder codec:jpeg2k)
[INFO] [nvimgcodec] Framework is unregistering decoder (id:nvjpeg2k_decoder codec:jpeg2k)
[INFO] [nvimgcodec] Unloading extension module:/home/administrator/.local/lib/python3.10/site-packages/nvidia/nvimgcodec/extensions/libnvjpeg2k_ext.so.0.6.0
[INFO] [nvimgcodec] Unregistering extension nvjpeg_extension version:0.6.0
[INFO] [nvimgcodec] Framework is unregistering encoder (id:nvjpeg_cuda_encoder codec:jpeg)
[INFO] [nvimgcodec] Framework is unregistering decoder (id:nvjpeg_cuda_decoder codec:jpeg)
[INFO] [nvimgcodec] Framework is unregistering decoder (id:nvjpeg_lossless_decoder codec:jpeg)
[INFO] [nvimgcodec] Unloading extension module:/home/administrator/.local/lib/python3.10/site-packages/nvidia/nvimgcodec/extensions/libnvjpeg_ext.so.0.6.0
[INFO] [nvimgcodec] Unregistering extension nvpnm_extension version:0.6.0
[INFO] [nvimgcodec] Framework is unregistering encoder (id:nvpnm_encoder codec:pnm)
[INFO] [nvimgcodec] Unloading extension module:/home/administrator/.local/lib/python3.10/site-packages/nvidia/nvimgcodec/extensions/libnvpnm_ext.so.0.6.0
[INFO] [nvimgcodec] Unregistering extension nvtiff_extension version:0.6.0
[INFO] [nvimgcodec] Framework is unregistering decoder (id:nvtiff_cuda_decoder codec:tiff)
[INFO] [nvimgcodec] Framework is unregistering encoder (id:nvtiff_cuda_encoder codec:tiff)
[INFO] [nvimgcodec] Unloading extension module:/home/administrator/.local/lib/python3.10/site-packages/nvidia/nvimgcodec/extensions/libnvtiff_ext.so.0.6.0
[INFO] [nvimgcodec] Unregistering extension opencv_extension version:0.6.0
[INFO] [nvimgcodec] Framework is unregistering decoder (id:opencv_jpeg_decoder codec:jpeg)
[INFO] [nvimgcodec] Framework is unregistering decoder (id:opencv_jpeg2k_decoder codec:jpeg2k)
[INFO] [nvimgcodec] Framework is unregistering decoder (id:opencv_png_decoder codec:png)
[INFO] [nvimgcodec] Framework is unregistering decoder (id:opencv_bmp_decoder codec:bmp)
[INFO] [nvimgcodec] Framework is unregistering decoder (id:opencv_pnm_decoder codec:pnm)
[INFO] [nvimgcodec] Framework is unregistering decoder (id:opencv_tiff_decoder codec:tiff)
[INFO] [nvimgcodec] Framework is unregistering decoder (id:opencv_webp_decoder codec:webp)
[INFO] [nvimgcodec] Framework is unregistering encoder (id:opencv_jpeg_encoder codec:jpeg)
[INFO] [nvimgcodec] Framework is unregistering encoder (id:opencv_jpeg2k_encoder codec:jpeg2k)
[INFO] [nvimgcodec] Framework is unregistering encoder (id:opencv_png_encoder codec:png)
[INFO] [nvimgcodec] Framework is unregistering encoder (id:opencv_bmp_encoder codec:bmp)
[INFO] [nvimgcodec] Framework is unregistering encoder (id:opencv_pnm_encoder codec:pnm)
[INFO] [nvimgcodec] Framework is unregistering encoder (id:opencv_tiff_encoder codec:tiff)
[INFO] [nvimgcodec] Framework is unregistering encoder (id:opencv_webp_encoder codec:webp)
[INFO] [nvimgcodec] Unloading extension module:/home/administrator/.local/lib/python3.10/site-packages/nvidia/nvimgcodec/extensions/libopencv_ext.so.0.6.0
Other/Misc.
without specifying backend:
[ERROR] [nvjpeg_cuda_encoder] Could not create nvjpeg encoder - nvjpeg error #9 (implementation not supported) when running nvjpegCreateEx(NVJPEG_BACKEND_DEFAULT, nullptr, nullptr, 0, &handle_) at /home/jenkins/agent/workspace/nvimagecodec/helpers/release_v0.6.0/Release_12/build/extensions/nvjpeg/cuda_encoder.cpp:279
Check for duplicates
- I have searched the open bugs/issues and have found no duplicates for this bug report
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by running the Python minimum reproducible example on Jetson Orin NX with JetPack 6.1, then inspect extensions/nvjpeg/cuda_encoder.cpp at line 279, which is named in the log. Compare the HW_GPU_ONLY and default-backend failures and verify that JPEG encoding from a CuPy image succeeds on the Jetson platform.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, python
- Domain
- computer-vision
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100