Can't work in JESTON AGX ORIN
Version
0.4.0
Describe the bug.
I run the sample code in But I got some error. I can see the first image, But I can't see the other. Could you give me some advice?
Minimum reproducible example
import os
import numpy as np
from matplotlib import pyplot as plt
from nvidia import nvimgcodec
resources_dir = './'
decoder = nvimgcodec.Decoder()
encoder = nvimgcodec.Encoder()
example_image = np.asarray(decoder.read(resources_dir + "cat-1046544_640.jp2").cpu())
plt.title(f"original image, size: {example_image.size // 1000}KB")
plt.imshow(example_image)
plt.show()
for extension in ["jpeg", "jpeg2k", "webp"]:
if extension == "jpeg2k":
# if Jpeg2kEncodeParams are ommited, reversible=False is assumed and target_psnr controls quality
encode_params = nvimgcodec.EncodeParams(target_psnr=27)
else:
# Other codecs use quality
encode_params = nvimgcodec.EncodeParams(quality=5)
encoded = encoder.encode(example_image, extension, encode_params)
decoded = np.asarray(decoder.decode(encoded).cpu())
plt.title(f"codec: {extension}, size: {len(encoded) // 1000}KB")
plt.imshow(decoded)
plt.show()
Environment details
jeston AGX Orin
L4T 36.4.3
Relevant log output
[ERROR] [nvjpeg2k_decoder] Could not decode jpeg2k code stream - nvjpeg2k error #6 (execution failed) when running nvjpeg2kDecodeImage(handle_, jpeg2k_state, t.nvjpeg2k_stream_, decode_params_raii.get(), &output_image, image_info.cuda_stream) at /home/jenkins/agent/workspace/nvimagecodec/helpers/release_v0.4.0/Release_12/build/extensions/nvjpeg2k/cuda_decoder.cpp:650
[ERROR] [nvjpeg_cuda_encoder] Could not encode jpeg code stream - nvjpeg error #6 (execution failed) when running nvjpegEncodeImage(handle_, state, encode_params.get(), &input_image, input_format, image_info.plane_info[0].width, image_info.plane_info[0].height, image_info.cuda_stream) at /home/jenkins/agent/workspace/nvimagecodec/helpers/release_v0.4.0/Release_12/build/extensions/nvjpeg/cuda_encoder.cpp:425
Fatal Python error: Segmentation fault
Thread 0x0000ffffa938f120 (most recent call first):
File "/usr/lib/python3.10/threading.py", line 324 in wait
File "/usr/lib/python3.10/threading.py", line 607 in wait
File "/root/.vscode-server/extensions/ms-python.debugpy-2024.14.0/bundled/libs/debugpy/_vendored/pydevd/pydevd.py", line 325 in _on_run
File "/root/.vscode-server/extensions/ms-python.debugpy-2024.14.0/bundled/libs/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_daemon_thread.py", line 53 in run
File "/usr/lib/python3.10/threading.py", line 1016 in _bootstrap_inner
File "/usr/lib/python3.10/threading.py", line 973 in _bootstrap
Thread 0x0000ffffa9b9f120 (most recent call first):
File "/usr/lib/python3.10/threading.py", line 324 in wait
File "/usr/lib/python3.10/threading.py", line 607 in wait
File "/root/.vscode-server/extensions/ms-python.debugpy-2024.14.0/bundled/libs/debugpy/_vendored/pydevd/pydevd.py", line 279 in _on_run
File "/root/.vscode-server/extensions/ms-python.debugpy-2024.14.0/bundled/libs/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_daemon_thread.py", line 53 in run
File "/usr/lib/python3.10/threading.py", line 1016 in _bootstrap_inner
File "/usr/lib/python3.10/threading.py", line 973 in _bootstrap
Thread 0x0000ffffaa3af120 (most recent call first):
File "/root/.vscode-server/extensions/ms-python.debugpy-2024.14.0/bundled/libs/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_comm.py", line 227 in _read_line
File "/root/.vscode-server/extensions/ms-python.debugpy-2024.14.0/bundled/libs/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_comm.py", line 245 in _on_run
File "/root/.vscode-server/extensions/ms-python.debugpy-2024.14.0/bundled/libs/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_daemon_thread.py", line 53 in run
File "/usr/lib/python3.10/threading.py", line 1016 in _bootstrap_inner
File "/usr/lib/python3.10/threading.py", line 973 in _bootstrap
Thread 0x0000ffffaabbf120 (most recent call first):
File "/usr/lib/python3.10/threading.py", line 324 in wait
File "/usr/lib/python3.10/queue.py", line 180 in get
File "/root/.vscode-server/extensions/ms-python.debugpy-2024.14.0/bundled/libs/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_comm.py", line 390 in _on_run
File "/root/.vscode-server/extensions/ms-python.debugpy-2024.14.0/bundled/libs/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_daemon_thread.py", line 53 in run
File "/usr/lib/python3.10/threading.py", line 1016 in _bootstrap_inner
File "/usr/lib/python3.10/threading.py", line 973 in _bootstrap
Current thread 0x0000ffffac441a60 (most recent call first):
File "/data/DeltaElect/ubuntu2204/sensors_plat_ws/src/debug.py", line 23 in <module>
File "/root/.vscode-server/extensions/ms-python.debugpy-2024.14.0/bundled/libs/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_runpy.py", line 118 in _run_code
File "/root/.vscode-server/extensions/ms-python.debugpy-2024.14.0/bundled/libs/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_runpy.py", line 127 in _run_module_code
File "/root/.vscode-server/extensions/ms-python.debugpy-2024.14.0/bundled/libs/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_runpy.py", line 310 in run_path
File "/root/.vscode-server/extensions/ms-python.debugpy-2024.14.0/bundled/libs/debugpy/adapter/../../debugpy/launcher/../../debugpy/../debugpy/server/cli.py", line 351 in run_file
File "/root/.vscode-server/extensions/ms-python.debugpy-2024.14.0/bundled/libs/debugpy/adapter/../../debugpy/launcher/../../debugpy/../debugpy/server/cli.py", line 501 in main
File "/root/.vscode-server/extensions/ms-python.debugpy-2024.14.0/bundled/libs/debugpy/adapter/../../debugpy/launcher/../../debugpy/__main__.py", line 71 in <module>
File "/usr/lib/python3.10/runpy.py", line 86 in _run_code
File "/usr/lib/python3.10/runpy.py", line 196 in _run_module_as_main
Other/Misc.
No response
Check for duplicates
- [x] I have searched the open bugs/issues and have found no duplicates for this bug report
Thank you for your reporting this. I'd like to ask, what nvjpeg2k version do you have installed? Can you share the output of
pip show nvidia-nvjpeg2k-tegra-cu12
?
Thank you for your reporting this. I'd like to ask, what nvjpeg2k version do you have installed? Can you share the output of
pip show nvidia-nvjpeg2k-tegra-cu12?
@jantonguirao Thank you for your help. I got this log:
Name: nvidia-nvjpeg2k-tegra-cu12 Version: 0.8.1.40 Summary: NVIDIA nvJPEG2000 native runtime libraries Home-page: https://developer.nvidia.com/nvjpeg Author: NVIDIA Corporation Author-email: [email protected] License: NVIDIA Proprietary Software Location: /usr/local/lib/python3.10/dist-packages Requires: Required-by:
By the way, if I just run these codes:
import os
import cv2
import numpy as np
from matplotlib import pyplot as plt
from nvidia import nvimgcodec
decoder = nvimgcodec.Decoder()
encoder = nvimgcodec.Encoder()
with open("tabby_tiger_cat.jpg", 'rb') as in_file:
data = in_file.read()
nv_img_cat = decoder.decode(data)
I got the error:
[ERROR] [nvjpeg_cuda_decoder] Could not decode jpeg code stream - nvjpeg error #6 (execution failed) when running nvjpegDecodeJpegDevice(handle_, decoder, state, &nvjpeg_image, image_info.cuda_stream) at /home/jenkins/agent/workspace/nvimagecodec/helpers/release_v0.4.0/Release_12/build/extensions/nvjpeg/cuda_decoder.cpp:568
Having errors both on nvjpeg and nvjpeg2k call perhaps suggests that there's something wrong with the CUDA environment. Can you give us more details on your CUDA environment (driver version?). You could also try this https://forums.developer.nvidia.com/t/cuda-runtime-on-jetson-orin-agx/260735/3
export PATH=/usr/local/cuda-12/bin:${PATH}
export LD_LIBRARY_PATH=/usr/local/cuda-12.0/compat
cd /usr/local/cuda/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery
Having errors both on nvjpeg and nvjpeg2k call perhaps suggests that there's something wrong with the CUDA environment. Can you give us more details on your CUDA environment (driver version?). You could also try this https://forums.developer.nvidia.com/t/cuda-runtime-on-jetson-orin-agx/260735/3
export PATH=/usr/local/cuda-12/bin:${PATH} export LD_LIBRARY_PATH=/usr/local/cuda-12.0/compat cd /usr/local/cuda/samples/1_Utilities/deviceQuery sudo make ./deviceQuery
This is my system environment!
Thank you. Are you able to run the deviceQuery program above?
Thank you. Are you able to run the deviceQuery program above?
I don't have this dir /usr/local/cuda/samples/1_Utilities/deviceQuery
cd /usr/local/cuda/samples/1_Utilities/deviceQuery
-bash: cd: /usr/local/cuda/samples/1_Utilities/deviceQuery: No such file or directory
In my cuda dir I have these file
bin compute-sanitizer doc DOCS EULA.txt extras gds include lib64 nvml nvvm README share targets tools version.json
Hi,
Please verify if nvjpeg is installed in your environment by running -
ls /usr/local/cuda-12.6/lib64
and checking if libnvjpeg.so is present
If you dont see libnvjpeg.so, you can install it by running these commands -
sudo apt update
sudo apt install libnvjpeg-dev-12-6
Relevant log output
[ERROR] [nvjpeg2k_decoder] Could not decode jpeg2k code stream - nvjpeg2k error #6 (execution failed) when running nvjpeg2kDecodeImage(handle_, jpeg2k_state, t.nvjpeg2k_stream_, decode_params_raii.get(), &output_image, image_info.cuda_stream) at /home/jenkins/agent/workspace/nvimagecodec/helpers/release_v0.4.0/Release_12/build/extensions/nvjpeg2k/cuda_decoder.cpp:650 [ERROR] [nvjpeg_cuda_encoder] Could not encode jpeg code stream - nvjpeg error #6 (execution failed) when running nvjpegEncodeImage(handle_, state, encode_params.get(), &input_image, input_format, image_info.plane_info[0].width, image_info.plane_info[0].height, image_info.cuda_stream) at /home/jenkins/agent/workspace/nvimagecodec/helpers/release_v0.4.0/Release_12/build/extensions/nvjpeg/cuda_encoder.cpp:425
I met the same error message when I ran examples on C++ on Jetson AGX Orin while I had all encoder/decoder libs.
SImilarly i cant run it using the hardware on an Orin NX. It always defaults back to software, and i can see no activity on the gpu or on the hw decoder/encoder. Im running in an L4T container r36.2 from Dusty.
Can you please do export PYNVIMGCODEC_VERBOSITY=5 and gather the logs?
using a newer L4T container 36.4.0 with the same results. dustynv/ros:humble-desktop-l4t-r36.4.0 base system is jetpack 6.2. container launched with privileged and runtime nvidia.
nvjpeg_test.py
import tempfile
from pathlib import Path
from PIL import Image, ImageDraw
from nvidia import nvimgcodec as nic
decoder = nic.Decoder(backends=[nic.Backend(nic.HW_GPU_ONLY, load_hint=0.5), nic.Backend(nic.GPU_ONLY, load_hint=0.5)])
def checker_jpeg(path, w, h):
jpg_path = Path(path) / "checker.jpg"
img = Image.new("RGB", (w, h), "white")
draw = ImageDraw.Draw(img)
for y in range(0, h, 40):
for x in range(0, w, 40):
if (x // 40 + y // 40) % 2:
draw.rectangle([x, y, x + 39, y + 39], fill="red")
img.save(jpg_path, format="JPEG", quality=85)
return jpg_path
tmpdir = tempfile.TemporaryDirectory()
checker_path = checker_jpeg(tmpdir.name, 1280, 720)
print(checker_path)
nv_img = decoder.read(str(checker_path))
assert nv_img is not None
image for reference
outputs
[INFO] [nvimgcodec] Registering extension nvimgcodec_builtin_parsers version:0.5.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/user/.local/lib/python3.10/site-packages/nvidia/nvimgcodec/extensions/libnvpnm_ext.so.0.5.0
[INFO] [nvimgcodec] Registering extension nvpnm_extension version:0.5.0
[INFO] [nvimgcodec] Framework is registering encoder (id:nvpnm_encoder codec:pnm)
[INFO] [nvimgcodec] Loading extension module: /home/user/.local/lib/python3.10/site-packages/nvidia/nvimgcodec/extensions/libopencv_ext.so.0.5.0
[INFO] [nvimgcodec] Registering extension opencv_extension version:0.5.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/user/.local/lib/python3.10/site-packages/nvidia/nvimgcodec/extensions/libjpeg_turbo_ext.so.0.5.0
[INFO] [nvimgcodec] Registering extension libjpeg_turbo_extension version:0.5.0
[INFO] [nvimgcodec] Framework is registering decoder (id:libjpeg_turbo_decoder codec:jpeg)
[INFO] [nvimgcodec] Loading extension module: /home/user/.local/lib/python3.10/site-packages/nvidia/nvimgcodec/extensions/libnvjpeg_ext.so.0.5.0
[INFO] [nvimgcodec] Registering extension nvjpeg_extension version:0.5.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/user/.local/lib/python3.10/site-packages/nvidia/nvimgcodec/extensions/libtiff_ext.so.0.5.0
[INFO] [nvimgcodec] Registering extension libtiff_extension version:0.5.0
[INFO] [nvimgcodec] Framework is registering decoder (id:libtiff_decoder codec:tiff)
[INFO] [nvimgcodec] Loading extension module: /home/user/.local/lib/python3.10/site-packages/nvidia/nvimgcodec/extensions/libnvbmp_ext.so.0.5.0
[INFO] [nvimgcodec] Registering extension nvbmp_extension version:0.5.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/user/.local/lib/python3.10/site-packages/nvidia/nvimgcodec/extensions/libnvjpeg2k_ext.so.0.5.0
[INFO] [nvimgcodec] Registering extension nvjpeg2k_extension version:0.5.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] Loading extension module: /home/user/.local/lib/python3.10/site-packages/nvidia/nvimgcodec/extensions/libnvtiff_ext.so.0.5.0
[INFO] [nvimgcodec] Registering extension nvtiff_extension version:0.5.0
[INFO] [nvimgcodec] Framework is registering decoder (id:nvtiff_cuda_decoder codec:tiff)
[INFO] [nvimgcodec] Requested num_threads=0, cpu_cores_count=8, selected num_threads=7
[INFO] [nvimgcodec] Setting num_threads_cuda = 4 (num_threads = 7)
[INFO] [nvimgcodec] nvjpeg2k_decoder: adjusting load hint to 1.0f (non-adaptive), as there's no fallback processor available
[INFO] [nvimgcodec] nvtiff_cuda_decoder: adjusting load hint to 1.0f (non-adaptive), as there's no fallback processor available
/tmp/tmphttcgk77/checker.jpg
[INFO] [nvimgcodec] ImageGenericDecoder::decode num_samples=1
[INFO] [nvimgcodec] decode num_samples=1
[INFO] [nvimgcodec] Sample #0 can't be processed
[WARNING] [pynvimgcodec] Something went wrong during decoding image #0 there will be None on corresponding output position
Traceback (most recent call last):
File "/home/user/cv-inference/nvjpeg_test.py", line 25, in <module>
assert nv_img is not None
AssertionError
[INFO] [nvimgcodec] Unregistering extension libjpeg_turbo_extension version:0.5.0
[INFO] [nvimgcodec] Framework is unregistering decoder (id:libjpeg_turbo_decoder codec:jpeg)
[INFO] [nvimgcodec] Unloading extension module:/home/user/.local/lib/python3.10/site-packages/nvidia/nvimgcodec/extensions/libjpeg_turbo_ext.so.0.5.0
[INFO] [nvimgcodec] Unregistering extension libtiff_extension version:0.5.0
[INFO] [nvimgcodec] Framework is unregistering decoder (id:libtiff_decoder codec:tiff)
[INFO] [nvimgcodec] Unloading extension module:/home/user/.local/lib/python3.10/site-packages/nvidia/nvimgcodec/extensions/libtiff_ext.so.0.5.0
[INFO] [nvimgcodec] Unregistering extension nvbmp_extension version:0.5.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/user/.local/lib/python3.10/site-packages/nvidia/nvimgcodec/extensions/libnvbmp_ext.so.0.5.0
[INFO] [nvimgcodec] Unregistering extension nvimgcodec_builtin_parsers version:0.5.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.5.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/user/.local/lib/python3.10/site-packages/nvidia/nvimgcodec/extensions/libnvjpeg2k_ext.so.0.5.0
[INFO] [nvimgcodec] Unregistering extension nvjpeg_extension version:0.5.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/user/.local/lib/python3.10/site-packages/nvidia/nvimgcodec/extensions/libnvjpeg_ext.so.0.5.0
[INFO] [nvimgcodec] Unregistering extension nvpnm_extension version:0.5.0
[INFO] [nvimgcodec] Framework is unregistering encoder (id:nvpnm_encoder codec:pnm)
[INFO] [nvimgcodec] Unloading extension module:/home/user/.local/lib/python3.10/site-packages/nvidia/nvimgcodec/extensions/libnvpnm_ext.so.0.5.0
[INFO] [nvimgcodec] Unregistering extension nvtiff_extension version:0.5.0
[INFO] [nvimgcodec] Framework is unregistering decoder (id:nvtiff_cuda_decoder codec:tiff)
[INFO] [nvimgcodec] Unloading extension module:/home/user/.local/lib/python3.10/site-packages/nvidia/nvimgcodec/extensions/libnvtiff_ext.so.0.5.0
[INFO] [nvimgcodec] Unregistering extension opencv_extension version:0.5.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/user/.local/lib/python3.10/site-packages/nvidia/nvimgcodec/extensions/libopencv_ext.so.0.5.0
There are Hardware and GPU only backends selected in line
decoder = nic.Decoder(backends=[nic.Backend(nic.HW_GPU_ONLY, load_hint=0.5), nic.Backend(nic.GPU_ONLY, load_hint=0.5)])
In log there is message
[INFO] [nvjpeg-ext] HW decoder not supported by this platform. Skip.
so looks hardware decoder could not be used for some reason.
It is likely that if it was run in container and there was not video capability passed to docker. Could you please try run it with NVIDIA_DRIVER_CAPABILITIES=all so call something like docker run --rm --runtime=nvidia -e NVIDIA_DRIVER_CAPABILITIES=all <container> ?
Fallback to CUDA implementation of jpeg decoding could not happen as nvJpeg CUDA implementation is actually HYBRID_CPU_GPU and GPU_ONLY was selected instead and no CPU backend. Could you please either add backend HYBRID_CPU_GPU (and CPU_ONLY if you would like to have fallback to CPU implementation as well) or leave default backends so nvImageCodec would decide which to use with priority?
Please let us know if this helped.
Unfortunately, HW jpeg decoder is not supported in nvjpeg on Orin so what remains to select are HYBRID_CPU_GPU and CPU_ONLY backends.
Well thats weird as Gstreamer is able to use the HW encoders and decoders, including the jpeg decoder.
When i write a dirty wrapper around gstreamer i can also get it to fire, but it's far from ideal or efficient to do it like that.
I can confirm that i have the runtime and capabilities set appropriately. When i benchmark this library with opencv decode its about 20x slower (5ms vs 90-100ms) and thats when i let it decide the priority (its the only wayit will run).
Unfortunately, HW jpeg decoder is not supported in nvjpeg on Orin so what remains to select are HYBRID_CPU_GPU and CPU_ONLY backends.
I am only able to use CPU_ONLY backend. When i use the script by @KhanMechAI with slight modification of backend, and setting backend to HYBRID_CPU_GPU, im getting.
[ERROR] [nvjpeg_cuda_decoder] Could not decode jpeg code stream - nvjpeg error #6 (execution failed) when running nvjpegDecodeJpegDevice(handle_, decoder, state, &nvjpeg_image, image_info.cuda_stream) at /home/jenkins/agent/workspace/nvimagecodec/helpers/release_v0.5.0/Release_12/build/extensions/nvjpeg/cuda_decoder.cpp:568