登录 免费注册 首页 | 行业黑名单 | 帮助
维库电子市场网
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统
驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe

向压缩字库,大家给点建议

作者:艾森豪威尔 栏目:单片机
向压缩字库,大家给点建议
因为FLASH空间不足,我想把570多K的24*24点阵字库压缩一下。但是手头现有的压缩算法太耗内存,也受不了。哪位仁兄能给俺想个办法?

2楼: >>参与讨论
Bingoes
不可能巴
每个字的点阵信息都是定长的,这样才好寻址。
如果你把字库压缩了,你势必又要做一个很长
的表才能查找到单个汉字的点阵信息,这样做
得不偿失啊

3楼: >>参与讨论
艾森豪威尔
哪位大侠有办法?
 
4楼: >>参与讨论
yan211
要么换个小的字型
 我做过12*12的去掉了其中的一些空白区域。可以放进128KFLASH


5楼: >>参与讨论
李冬发
艾森豪威尔,你是用串行FLASH?要是用串行FLASH换个大的
1MByte的FLASH也就20来块,要比这样整来行方便。
哈哈,我怎么尽是提些没有技术含量的主意。

6楼: >>参与讨论
Bingoes
用12*12的字库
然后在显示的时候,一个点连put 4次,相当于放大1倍
不就成了24*24的点阵了?不过这样出来的字可能很难看
的说,呵呵...

7楼: >>参与讨论
艾森豪威尔
必须是24*24的,因为是在电视上显示
我试过16*16的,都已经很不清晰了,12*12更不用说了
以前听人说c51bbs上有个字库压缩算法,可我上去也没查到,不知谁晓得,能否指点一下?

8楼: >>参与讨论
Bingoes
我觉得如果是12*12的可以这样压缩
一行12个点的话就要占用两个字节(其中有4个bit是
浪费的),那么12行就是2*12=24字节;如果把这空出来
的4个bit也用上,那么存储两行的点阵信息就只需要
3个字节(8*3=24点),比原来4个字节少了1/4,那么从
总体上讲,体积也减少了1/4,可以说也不少了;不过
24*24的点阵就不行了,按照以上的方法,没有可压缩
的空间

9楼: >>参与讨论
杨工
单片机很难还原
字库无损压缩很难,即使有压缩算法,单片机也很难还原,算法占内存太大。
比较现实的方法是用一片040,8*64K=512K,基本够用了。AM29F040商业级好像才8元。

10楼: >>参与讨论
艾森豪威尔
谢谢各位了
我倒是有些办法,其一,每个字可以少存几行(上四下三);其二,可以把除汉字和Ascii码之外的其余字符全部砍掉,这样字库能砍到345K左右。
哪位大侠还有其他更好办法?
不怕复杂,只要不耗内存,压缩效果好就行。

11楼: >>参与讨论
good02xaut
有很多压缩算法啊
行程编码
霍夫曼编码
很多无损压缩算法都可以用。
压缩效果好就是压缩比大,但是往往和解压时间是矛盾的。

不过有很多问题的:
1。压缩的字体需要解压,虽然可以节约FLASH,但是运行的时候必须提供大容量的RAM。如果把字库看作一个整体,需要的RAM最大。如果分段处理,会浪费很多时间。
2。浪费CPU时间,有些算法需浮点运算的。


12楼: >>参与讨论
李冬发
要是不怕复杂,那我认为还是加个8Mbit的串行FLASH
 
13楼: >>参与讨论
艾森豪威尔
前提
1.flash不能再扩,字的大小必须是24*24
2.压缩方法不怕复杂,只要不耗内存,压缩效果好就行。
我在网上搜到一个好东东,那家伙只用一个240K左右的字库,可以实现32*32点阵以下的汉字显示。可惜我管他要代码(付费),他不给,哎!看来那家伙还想申请专利呢!
有兴趣的可以看看,把扩展名改成rar

14楼: >>参与讨论
艾森豪威尔
呵呵,不知道怎么上传文件阿?
 
15楼: >>参与讨论
李冬发
这个时候你要用链接,不能只用个“图片”
 
16楼: >>参与讨论
艾森豪威尔
试一试
 

viewfont.rar

参与讨论
昵称:
讨论内容:
 
 
相关帖子
如何检测一块at89s51的单片机是好的还是坏的。
C51有比long型更大的数据类型吗?
奇怪的C51简化结果:
STARTUP.A51究竟是干吗用的?
麻烦帮我看一个模拟串行输出的程序
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入


Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号