#image #qoi #pixel #color #pixel-format #codec #rgb565

无需std q565

基于QOI的RGB565图像编解码器

4个版本 (破坏性更新)

0.4.0 2023年7月10日
0.3.0 2023年5月17日
0.2.0 2023年5月12日
0.1.0 2023年4月4日

#701图像

Download history 69/week @ 2024-03-15 29/week @ 2024-03-22 47/week @ 2024-03-29 24/week @ 2024-04-05 31/week @ 2024-04-12 8/week @ 2024-04-19 18/week @ 2024-04-26 114/week @ 2024-05-03 56/week @ 2024-05-10 45/week @ 2024-05-17 29/week @ 2024-05-24 35/week @ 2024-05-31 58/week @ 2024-06-07 56/week @ 2024-06-14 68/week @ 2024-06-21 8/week @ 2024-06-28

每月199 次下载

MIT/Apache

45KB
954

Q565图像格式的参考实现。

Q565在QOI图像格式的基础上进行了大量修改,以支持16位RGB565像素格式(仅此格式)。

与QOI的区别

头部

  • 4字节魔数:q565
  • u16le宽度(非零)
  • u16le高度(非零)

颜色数组

与QOI相比,Q565使用了一个简化的颜色数组。将“散列”函数替换为仅将RGB565 u16的字节相加,并保留结果的最低6位。这导致图像平均尺寸更小,并且还具有消除解码器循环中最后一次乘法使用的额外好处,即使在没有快速乘法支持的微控制器上也能实现合理的速度。

此外,可以只用一个字节描述的像素不会添加到颜色数组中(Q565_OP_DIFF)。这有助于防止颜色数组被相似的颜色淹没。

Q565_OP_DIFF_INDEXED

由于我们每个通道只有5/6位,Q565_OP_LUMA被减少到只用5位来表示绿色通道的差异,而不是6位。节省的位现在用作标签的一部分,以区分新的Q565_OP_DIFF_INDEXEDQ565_OP_LUMA

Q565_OP_DIFF_INDEXEDQ565_OP_DIFF类似,但将差异应用于颜色数组中的颜色。这导致图像大小最多可减少5%,但编码器速度较慢(在最坏情况下需要计算多达64个颜色差异)。如果需要更快的编码器,可以省略此操作。

流格式

参见[consts]了解不同的操作类型。

依赖项

~2MB
~48K SLoC