| 首页 | 数码导购 | 
您现在的位置: 数码导购 >> 数码导购 >> Mp3随身听 >> MP3技巧 >> 文章正文
专 题 栏 目
相 关 文 章

MP3固件DIY 关于字库的替换和研究           
MP3固件DIY 关于字库的替换和研究
作者:imp3.net… 文章来源:不详 点击数: 更新时间:2007-2-4 11:18:21

1 2 3

  在网上花了一段时间搜集整理关于sigmatel芯片的MP3的字库的解决方案,有两个人对我的启示最大,一个是MP3diy的basicasm,他提供了修改替换字库的方法,一个是iAUDIO的dlwds,因为他汉化固件,所以也研究字库,在他的文章中得到不少启示。我在这里把我寻找和测试字库的过程和发现的问题汇总一下,供大家参考,也想借此和有相同爱好的朋友做个交流。文中可能有不对的地方,希望大家多指正。

  第一篇 理论

  很多MP3机器在对中文的支持上有是有问题,尤其是小品牌的韩产mp3以及国产大部分mp3,因为内置字库有限(通常是国标码的GB2312-80,6763个汉字),不支持中文或者只支持简体中文(繁体中文),歌曲的ID3信息就无法正常显示(通常表现是显示一个空白)。

  我看了很多的mp3的固件,发现字库有如下特点:

  1.韩系、日系mp3使用sigmatel芯片的机器不是很多,但是多数对多国语言支持的很好,一般的机器都可以同时支持简体/繁体中文、韩国语、日本语等等,基本上的可以显示的字符范围是CJK(中日韩大字符集编码,ISO/IEC 10646-1,共20902个中日韩汉字)的标准的字符。

  2.国内的mp3有两种情况:

  (1)只支持一种语言,优点:我们一般只使用GB2312-80的字符集的汉字,基本常用字为主,生僻字使用的较少,够用为原则。因为每多一种语言,就要使固件占用闪存增加一定的容量。那么我们存储歌曲的空间就会减少。缺点:对部分扩展集以外的汉字支持的不够好。比如,徐若瑄的"瑄"字就无法正常显示。以安耐克的机器为例,sf700/sf800/sf810就属于这种类型。

  (2)支持多国语言,优点:有多种语言设置可以选择,通常还分两种,分别是支持“英简繁”和“英简繁日韩欧等”的固件。适合用户经常使用不同语言操作系统的人使用。缺点:主要的是这些语言的显示都支持但是不能同时支持,比如在简体中文下,不能显示“愛”,在繁体中文下又不能显示“爱”,在国内下载的歌曲文件有时候会在id3中写入繁体的汉字,如果这样的歌曲文件比较多的话,用户就会懒得转换了,而“同时”支持多国语言的字库可以同时显示这两个字。但是对于大陆地区的使用简体中文操作系统的用户来说,不可以“同时”显示多国语言(如“爱”和“愛”)的字库,其中的英文和繁体等这些语言模式我们基本上不会使用,这就造成了其他语言字库长期占用闪存空间不被使用的情况。大家会发现一般支持一种语言的固件的resource.bin文件大小是1.5~2M左右,而三种语言的固件是2.5左右,而五六种甚至更多的的固件在4M以上。(这里提到的支持多种语言有两个含义:1.只用一个字库[一个299929数据段]就支持多国语言;2.用多个字库[多个299929数据段]分别支持每种语言,但是不能同时显示。我认为最好的是前者。)

  这里多提几句,我觉得国产的很多机器走的就是这个怪圈,说是支持很多种语言,可是就是不能同时显示,那有什么意义呢,我们要整天切换语言模式吗?还有就是如果想看日文的歌词,还必须得忍受英文或者日文的菜单吗??上面提到了,每多一种语言模式就等于剥夺了我们的闪存空间(因为多一个字库,固件要多占闪存空间的。),多一个299929数据段至少多占用0.5兆空间。

  安耐克的sf700a属于支持“英简繁”的,道勤的dq700属于支持“英简繁日韩欧等”的。

  现在以实际应用说明,我使用过两款机器,一个机器是安耐克的sf700a,一个是道勤的dq700(3502七彩背光版),还研究过其他机器固件的字库。说说这些机器的字库的结构吧。

  一般以sigmatel为解决方案的mp3的字库是以类型为299929(或者299922)的连续数据段。

  下面我把我修改过的研究和修改过的几款机器按上面的分类做个介绍:

  1.安耐克sf700/sf800/sf810,早期的3410芯片的机器,固件都是采用了单语言模式,即只有简体中文。固件中资源号为229~234的是字库。可以显示的字符范围是GB2312-80。

  2.安耐克sf700a/sf820/sf830以及所有c系列和d系列的机器,这些都是采用了35**芯片,固件中采用了三种语言,english/简体中文/繁体中文,不过不可以同时显示,简体部分可以显示的字符范围是GB2312-80,繁体部分可以显示的可能是big5,sf700a固件中资源号为588~611的是字库。其他的机器顺序类似。

  3.道勤的dq700,采用了3502芯片,固件支持english/简体中文/繁体中文/日语/韩国语/欧洲等多国语言,不过不可以同时显示,注意这里的一个用词是同时显示,上面提到了同时的含义。固件中资源为652~684的是字库。其中简体中文/繁体中文/日语/韩国语/欧洲,不过我发现,这款机器在简体中文下对日文也是支持的,其他语言就不行了。而之前的安耐克系列就不支持日文。

  提到了这么多,我们的目的就是替换字库,使我们用一个299929数据段,也就是一种语言模式下,支持尽可能多的汉字(字母/假名)的显示,我用了大概将近两个月的时间来研究字库的结构和各种品牌机器的字库的编码范围等等。最后把上面这几款机器的固件进行了修改,这期间我在网上找了日文,韩国语,俄文做了测试,因为其他语言我一窍不通,实际使用也很少,所以就不列入修改的范围了。修改后的固件都可以在一种语言模式下同时显示“英简繁日韩欧等”这些语言来实现id3和歌词同步显示,我同时还对显示不美观的个别汉字进行了修改,这个启示是iAUDIO的dlwds给我的。

: 与商家亲密接触 网购iRiver780
: 金星JXD839 试用小感

1 2 3

1 2 3

替换字库的方法比较简单。自己做一次就好了。

  修改字库一般采用替换法,就是从其他固件里导出字库,再导入目标固件。

  第一步:先确定字库数据段位置。用RESEDIT打开固件,列表中间的数字是数据类型,字库数据由类型为2和9的几个数据段组成,一般为299929(299922)。

[1] [2] [3] 下一页

文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  •   【字体:
    数码导购栏目导航
    网站频道导航