首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

笔试题(有图):请教如何改进嵌入式系统的点阵字库算法,小弟我如何一点头绪都没有

2012-03-31 
笔试题(有图):请问怎么改进嵌入式系统的点阵字库算法,我怎么一点头绪都没有网上查了,没结果[解决办法]12X1

笔试题(有图):请问怎么改进嵌入式系统的点阵字库算法,我怎么一点头绪都没有

网上查了,没结果

[解决办法]
12X16,一个字符占24个字节必须的啊
如果1024个字符不重复,那不大能省空间了
[解决办法]

探讨
引用:
12X16,一个字符占24个字节必须的啊
如果1024个字符不重复,那不大能省空间了

通常一个字符占2个字节的啊

[解决办法]
把点阵图换成矢量图,定义一个矢量集,然后用这个矢量集中的矢量表示字符,应该会小些。或者对上面的点阵进行压缩存储。
[解决办法]
一个字节(byte)有8个2进制位(bit),那么12*16的2进制矩阵总共的空间为12*16=192(bit)=24(byte)。
[解决办法]
压缩的办法当然有,比方说将字模拦腰对半切开,分成2个12*8的组合体。然后每一列就是长度为一个字节的整数(即0~127)。一个字则可以用24个整数来表示。这样一来,1024个字可以用24k个整数来表示。自然的,里面有很多整数是重复的。用较短的编码来表示重复次数多的数字,就可以达到压缩的目的--譬如用熵编码。
[解决办法]
我觉得这个要看字符集的大小,如果是ascii,只需要256个,那么可以存储256个点阵,而图形则用索引(每个索引8bit)存储,这样1024个字符是
(12*16)*256 + 8*1024 = 24 byte * 256 + 1 byte * 1024 = 7 k

如果字符集较大(例如Unicode),那么这种存储方法就不合算了。可以考虑压缩存储,例如简单的,看A只占用中间的一块,那么就分别用4个4bit存储左上角和右下角的(x,y)坐标,再存储中间的bit。
0010 0010 1011 1000 // 坐标
接着存储中间A的所占用部分的那个编码。

[解决办法]
探讨

引用:
我觉得这个要看字符集的大小,如果是ascii,只需要256个,那么可以存储256个点阵,而图形则用索引(每个索引8bit)存储,这样1024个字符是
(12*16)*256 + 8*1024 = 24 byte * 256 + 1 byte * 1024 = 7 k

如果字符集较大(例如Unicode),那么这种存储方法就不合算了。可以考虑压……

热点排行