gpt4 book ai didi

c - 字体压缩! RLE 或霍夫曼或什么都没有?

转载 作者:太空宇宙 更新时间:2023-11-04 02:07:33 25 4
gpt4 key购买 nike

我正在从事一个嵌入式项目 (ARM7)。在我的应用程序中,我必须存储大量汉字,这会浪费我大约 300k 的闪存。当前的字体编码是 Unicode,每个字符包含 22 个字节,因为每个字形都是 12*12 加上左侧和底部的一个行空间,这使它成为 169 像素(22 字节)(参见示例)。举个例子,这个汉字的Unicode enter image description here

如下: /* unicode5939*/ 0x40、0x44、0x4c、0x54、0x64、0xff、0xff、0x44、 0x54、0x4c、0x44、0x40、0x0、0x8、0x11、0x11、 0x0、0x8、0x82、0x20、0x4、0x0。

当前的 Unicode 是这样的:字形的前 8 行恰好等于 Unicode 的前 13 个字节(基于列而不是基于行,从右上角开始)。其余 9 个字节表示字形的底部 5 行(从左侧看右侧,逐列将 0 和 1 放入一个字节中,直到字节变满,依此类推)。

如果我们对这个 Unicode 进行 RLE 压缩(按位),结果需要超过 22 个字节来存储每次运行的重复次数(据我手工完成)。所以我想做另一种压缩。有什么线索吗?

最佳答案

如果不为每个字形存储空行,您将获得近 20% 的改进。

12x12 而不是 13x13 = 18 字节而不是 22。

关于c - 字体压缩! RLE 或霍夫曼或什么都没有?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19119018/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com