6个版本 (破坏性更新)
0.4.0 | 2024年7月23日 |
---|---|
0.3.0 | 2024年4月30日 |
0.2.0 | 2024年3月11日 |
0.1.2 |
|
0.0.0 | 2023年11月7日 |
#256 在 图形API 中
每月152次下载
1.5MB
3K SLoC
这是一个使用WebGPU计算着色器解码JPEG图像的实验。该项目的主要目的是学习如何编写计算着色器。
在我的RX 6700 XT上运行得相当不错,在高速GPU时钟下解码4k测试图像时,GPU时间约为1ms(CPU预处理耗时2ms)。
这里使用的方法仅限于使用重启间隔进行大量处理的基线JPEG。这类JPEG通常由GPU、手机和数码相机的硬件编码器生成。
由于技术限制,仅支持使用4:2:2色度子采样功能的YUV JPEG。未来可能会放宽这一限制。
lib.rs
:
WebGPU计算着色器JPEG解码器。
用法
- 创建一个 [
Gpu
] 上下文(通过Gpu::open
自动创建或从现有的wgpu
上下文通过Gpu::from_wgpu
创建)。 - 通过
Decoder::new
创建一个Decoder
(或多个)。 - 对于您想要解码的每个JPEG图像,创建一个
ImageData
对象,并将其传递给Decoder::start_decode
。 - 通过
DecodeOp::texture
访问输出Texture
。
依赖项
~3–34MB
~516K SLoC