こんばんは、川合です。
Hidemi KAWAI は 2004/11/04 01:32:19 の「bim2bin4q, sartol0h.」で
書きました:
> 今後の予定としては、明日くらいに後回しにした説明をして、それで
>今週中にOSASKにASKA版のtek5展開ルーチンとI.Tak.さんの拡張を組み
>込んでリリースしたいです。
という予定だったのですが、bim2bin4qのリリース直後にバグ報告が
あり、bim2binをバージョンアップすることにしました。
http://k.hideyosi.com/bim2bin4r.lzh (204KB)
修正されたのは次のとおりです。
・ファイルサイズ0バイトのファイルをosacmpすると、無限ループに
陥るバグを修正。
・ファイルサイズ1バイトのファイルをosacmpすると、例外で落ちる
バグを修正(stk5/tek5で発生していた)。
・ファイルサイズ1バイトのファイルをrestoreすると、例外で落ちる
バグを修正(stk5/tek5で発生していた)。
・ソースをコンパイルするといっぱい警告が出ていましたが、恥ずか
しくなってきたので少し直しました。
・展開ライブラリが、将来の拡張フォーマットを誤認してしまう可能
性があったので修正。
・展開ライブラリも、1バイトのデータの展開に失敗していたので修
正。
・展開ライブラリのtek5の展開速度の改良(ASKA版のみ)。
展開ライブラリを修正したので、sartolもリリースしなおす予定です
(ついでに、ソースレベルではI.Tak.さんのLinux対応を組み込んでし
まおうと思っています)。
---
さて、bim2bin4qで追加された自動最適化機能について説明します。
これはもちろんbim2bin4rでも有効です。
bim2binで-tek5を選択したとき(註、圧縮フォーマットタイプを特に
指定しない場合、デフォルトでは-tek5を選択したのと同じになります
)、eoptとeprmというパラメータで、圧縮率をコントロールすることが
可能でした。この機能は今でも有効ですが、相変わらず指定できるパラ
メータの組合せがあまりに多く、はっきりいって限られたごく一部の人
にしか使いこなせませんでした。
bim2bin4q以降では、「eopt:@」とすることで、かなり時間をかけて
最善なオプションを自動で見つけます。しかし通常の圧縮時間の100倍
〜500倍の時間がかかります。速いマシンを持っていて処理能力の使い
道に困っていた人はちょうどいいかもしれませんが、普通の人は、512
コンテストに出すときの、しかもデバッグが終わった最後にだけ、や
ってみるのがいいと思います。
これで出力されるオプションをメモしておけば、同じデータをもう一
度圧縮するのは速くできます。なお、「eopt:@@」にすると現在どんな
パラメータの組み合わせを試しているのかが分かります。
eprmは、tek5において、stk5コンパチにするかどうかや、tek5のどの
フォーマットでいくかを細かくコントロールするためのものです。stk5
がほしいときはz0にすればいいので問題ないですが、tek5のなかで(も
ちろんstk5モードも含めて)、一番圧縮率がよいものを利用したいと思
うことがあります。そういう時は、「eprm:@」とします。eoptと同様に
最適なオプションを自動で探します。
eprmは最善の組み合わせを探すのがそれほど大変ではないので、圧縮
時間は2〜3倍くらいにしかなりません。だからこれはどこまで小さくな
るか見たいなんてときに、たまに使ってもいいと思います。eprmは時間
が掛からないので@@モードはありません。
しかし悲しいかな、eoptを最適なものにするほうが、はるかに効果が
あります。まあ効果があるといっても、eprmよりも効果があるというだ
けであって、劇的に変わるわけではありませんが。
例:
bim2bin -osacmp -tek5 eprm:z0 in:ファイル名 out:ファイル名
bim2bin -osacmp -tek5 eopt:@ eprm:z0 in:ファイル名 out:ファイル名
bim2bin -osacmp -tek5 eopt:@ eprm:@ in:ファイル名 out:ファイル名
---
sartolの拡張機能の説明については、sartol0iのリリース時にまとめ
てやってしまう予定です。
それでは。
--
川合 秀実(KAWAI Hidemi)
OSASK計画代表 / システム設計開発担当
E-mail:kawai !Atmark! osask.jp
Homepage http://osask.jp/