JPEG Encoder problem on Jetson Orin NX

未關閉
#35 7 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視

還沒有人認領這個 Issue。

評估

難度
4/5
預估耗時
3-5 天
新手友好度
35/100
Issue 類型
缺陷
描述清晰度
需要釐清
活躍度
停滯
技術堆疊
cpp, python

研究方向

首先在搭載 JetPack 6.1 的 Jetson Orin NX 上執行 Python 最小可重現範例,然後檢查日誌中提到的 extensions/nvjpeg/cuda_encoder.cpp 第 279 行。比較 HW_GPU_ONLY 和預設後端的失敗情況,並驗證在 Jetson 平台上從 CuPy 影像進行 JPEG 編碼是否成功。

由索引模型根據 Issue 內容生成。

描述

bug
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
主要語言
Jupyter Notebook
星號
164
分支
26
平均合併
27 分鐘
30 天內合併 PR
1

環境準備

  • 沒有 Dockerfile 或 Docker Compose 檔案
  • 沒有 Pull Request 範本
  • 閱讀貢獻指南

從這裡開始

  1. 先讀完整個 Issue,再讀專案的貢獻指南。
  2. 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
  3. Fork 儲存庫,在一個分支上完成修改。
  4. 送出 Pull Request,並在描述裡引用這個 Issue 編號。

NVIDIA/nvImageCodec 的其他 Issue

查看 NVIDIA/nvImageCodec 的全部 Issue

相似的 Issue

更多 Computer Vision Issue

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。