[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]
[OSASK 2427] Re: pokon0 の改良.
- Subject: [OSASK 2427] Re: pokon0 の改良.
- From: Hidemi KAWAI <kawai !Atmark! imasy.org>
- Date: Sun, 11 Nov 2001 05:18:33 -0000
こんにちは、川合です。
Koyanagi Masaaki さんは 2001/11/11 11:25:35 の「[OSASK 2423] pok
on0 の改良(Re: pokon0b).」で書きました:
>pokon0 のソース
>http://homepage1.nifty.com/dreaming/osask/pokon0.lzh
早速みてみました。かなり改良されています。バイナリーもコンパク
トになっていそうです(すみません、まだバイナリーはダウンロードし
ていません)。
>・アルファベットの「大文字」(CAPS LOCK していない状態で Shift +
>A-Z か CAPS LOCK している状態で A-Z)を入力すると、
>その文字で始まるファイル名に移動します(サーチ機能)。
これについてですが、294行目の
> { 'A' /* Insert */, 'Z'-'A', SIGNAL_ALPHABET },
を
> { 'A' | 0x00701000, 'Z'-'A', SIGNAL_ALPHABET },
に変更すれば、大文字小文字の区別をなくせます。・・・と思ったので
すが、もしかしたら小柳さんは、将来OSASKが小文字のファイル名に対
応することも考えて、わざと「大文字」にしたのかもしれません。そう
であれば、この変更はその意志に反するので無視してください。
---
ついでに少し宣伝です(笑)。
ここしばらくGendibal/MozaSPについての発言をしてきませんでした
が、もちろん開発はしています。
実は、フォントファイルがあまりにも大きいのが実にくやしくて、こ
れをどうにかできないものかと考えていたのです。・・・OSASK本体が
とても小さくて、しかもバンドルアプリも100バイト単位でサイズにこ
だわるような指摘をしてきたのに、フォントファイルがいきなり135.79
KBもあったんじゃあ、「なんだかなあ」って感じです。・・・いや、も
しかしたらそう思うのは僕だけかもしれませんが(笑)。
元になったjpn16$.binですが、これらを各種の圧縮ツールで圧縮する
とこうなるんです。
jpn16$.bin 無圧縮 249856バイト(100.00%)
jpn16$.fnt l2d3 139052バイト( 55.65%)
jpn16$.lzh LHA 127838バイト( 51.16%)
jpn16$.gz gzip -9 121388バイト( 48.58%)
これをみると、l2d3による圧縮は全然たいしたことありません。まあそ
れもそのはずで、LHAやgzipはおそらくスライド辞書法とハフマン圧縮
を組み合わせているのに対し、l2d3ではスライド辞書法しか使っていま
せん。これは、展開ルーチンが複雑になるのを避けているせいです。
しかしそれでもlzhとの差は11KB近くもあり、これだけの差を埋める
ためにならOS側がハフマン圧縮展開サポートのせいで数KB大きくなって
も採算が取れるかもしれません。・・・と一時はハフマンを使おうと考
えたのですが、展開ルーチンをASKAで書くのを想像したら気が遠くなり
とりあえずやめました(Cで書けば簡単ですが、多分かなり大きくなっ
てしまいます)。
l2d3を決めた時は、徹底的に符号化方法を研究したわけではありませ
んでした。それで、まずはそれを1週間くらい研究してみようと思いま
した。・・・そうして昨日、ようやくスライド辞書法のみとしてはかな
りの完成度であろうと思われる「tek0」ができました。まずは、こいつ
の圧縮効率を見てください。
jpn16$.tek bim2bin1 -tek0 123713バイト( 49.51%)
数字を見れば明白ですが、LHAに勝っています。ハフマン法を使ってい
ないので展開ルーチンはl2d3と大差ないサイズです(大きくても200バ
イト程度の予定)。gzipにはかないませんでしたが、まあそれはしょう
がないです。gzipとの差は2.27KBでしかなく、ハフマン法を展開ルーチ
ンに入れたらこれくらいはOS側が大きくなってしまうので、かえって妥
当だと思います。
なお例によって圧縮時間は長いです。いや、圧縮ツールとして本気で
作っているわけではないので、最長一致検索方法が馬鹿みたいなアルゴ
リズムのままになっているんです(笑)。でも、今までよりも遅いとい
うことはありません。同じくらい遅いというだけです。変わったのは符
号化方法だけですから。・・・展開速度は、l2d3とほとんど同じです。
このtek0は「データー」にはかなり強く、いくつかのテスト(OSASK
のソース圧縮とか)では、LHAを全面的に上回っています。しかし一方
実行ファイルには弱く、LHAに全部負けました。多分実行ファイルを圧
縮するにはハフマン法がかなり有効なのでしょう。
とにかく、l2d3に対して15KBもフォントファイルを小さくできるとい
う事実は重要です。フロッピーディスクでは、1シリンダーが18KBなの
で、シーク回数が1回減るくらいの効果があるはずです。
・・・うーん、なんだか宣伝の方が長くなってしまいました。これじ
ゃあ全然「ついでに少し宣伝」じゃないですね(笑)。
なお、フォントファイルフォーマットは予定していたとおり変更する
ので、このjpn16$.binが小さくなることそのものはそれほど重要ではあ
りません。上記は単なる一例です。
それでは。
--
川合 秀実(KAWAI Hidemi)
川合堂社長 / OSASK計画総指揮 / カーネル開発班
E-mail:kawai !Atmark! imasy.org
Homepage http://www.imasy.org/~kawai/