Experimental small-batch CUDA baseline JPEG decoding core
還沒有人認領這個 Issue。
評估
- 難度
- 5/5
- 預估耗時
- 一週以上
- 新手友好度
- 8/100
- Issue 類型
- 功能
- 描述清晰度
- 基本清楚
- 活躍度
- 活躍
研究方向
This is a proposal for an opt-in experimental CUDA baseline JPEG decoder core, and the author is asking whether the direction fits the project rather than asking for a specific change. Read the issue to see the planned split between Huffman decoding, IDCT, color conversion and host parsing, then wait for maintainer direction before touching any code. Done would mean the maintainers have answered the scope question and a draft review has been agreed.
由索引模型根據 Issue 內容生成。
描述
Proposal
Introduce an opt-in experimental native CUDA baseline JPEG decoding core as a
step toward a low-host-work decoder backend for small batches.
nvJPEG and nvImageCodec already provide GPU-assisted Huffman decoding. This
proposal concerns host work and small-batch scheduling, not missing JPEG support.
Existing implementation and evidence
The prototype moves entropy decoding onto CUDA using overlapping speculative
Huffman decoding, exact chunk-state reconciliation, coefficient decoding, and
DC prefix scans, followed by dequantization, IDCT, and color conversion.
Host work is marker/table parsing, lookup-table construction, input staging,
and stream submission.
On 2026-10-22, the original Torch-bound implementation was checked on an RTX 5090
with PyTorch 2.8.0+cu128 and torchvision 0.23.0+cu128: 5000/5000 decoded images and
5000/5000 preprocessing tensors were bit-identical to that reference. The corpus
contained 4990 baseline 4:4:4 images and 10 grayscale images. A 200-image sequential
load benchmark changed from 2335.05 to 425.75 microseconds/image, while GPU busy
time increased from 57.79 to 335.80 microseconds/image. These are historical
prototype/load-path measurements rather than current nvImageCodec or model
end-to-end performance claims.
Scope of the proposed draft
- Separate the algorithm from Torch into C++/CUDA parsing, kernels, resource
ownership, stream submission, and explicit completion/error checking. - Initial scope: baseline 8-bit, single scan, grayscale/YCbCr 4:4:4, no restart
intervals; caller-owned pitched planar RGB output. - Keep the component disabled by default, without changing codec selection.
- Retain NVIDIA CUDA samples attribution for the IDCT butterfly.
- Include malformed-header tests, sanitizer checks, and a GPU contract test.
I will submit the native core as a draft for architecture/kernel review. The
framework decoder adapter and matched current nvJPEG comparisons are separate
follow-up work. Is an optional backend with this initial scope a useful direction
for the project?
- 主要語言
- Jupyter Notebook
- 星號
- 164
- 分支
- 26
- 平均合併
- 27 分鐘
- 30 天內合併 PR
- 1
環境準備
- 沒有 Dockerfile 或 Docker Compose 檔案
- 沒有 Pull Request 範本
- 閱讀貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
NVIDIA/nvImageCodec 的其他 Issue
-
難度 2/5 1-3 小時 新手友好度 79/100
NVIDIA/nvImageCodec#65 · 1 則留言 ·
-
難度 3/5 1-2 天 新手友好度 72/100
NVIDIA/nvImageCodec#66 · 1 則留言 ·
-
難度 5/5 一週以上 新手友好度 38/100
NVIDIA/nvImageCodec#64 ·
-
nvjpeg2k error 3 (Bad jpeg) on valid JPEG 2000 aerial photos that OpenJPEG and ffmpeg decode identically可能已有人在做 @mkepa-nv 於 6 天前認領。 未關閉bug
NVIDIA/nvImageCodec#63 · 2 則留言 · 已指派 1 人 ·
-
enhancement
難度 5/5 一週以上 新手友好度 35/100
NVIDIA/nvImageCodec#59 ·
查看 NVIDIA/nvImageCodec 的全部 Issue
相似的 Issue
-
channels:add check:passed
難度 1/5 1-3 小時 新手友好度 67/100
維護者通常 1 天內回覆
-
難度 2/5 1-3 小時 新手友好度 76/100
inference-sim/inference-sim#2110 ·
維護者通常 1 天內回覆
-
approved check:passed streams:remove
難度 2/5 1-3 小時 新手友好度 63/100
維護者通常 1 天內回覆
-
難度 1/5 1 小時以內 新手友好度 71/100
PavelGrigoryevDS/awesome-data-analysis#126 ·
維護者通常 6 天內回覆
-
correction metadata
難度 1/5 1 小時以內 新手友好度 76/100
acl-org/acl-anthology#10866 · 1 則留言 ·
維護者通常 1 天內回覆