こんばんは、川合です。 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/