8 : 14 デジタル呪文でバグ退散!

← 8‒13 p↑ もくじ i 8‒15 n →

APEを用いたゲームCDの超高圧縮

2003年10月13日
記事ID d31013

CloneCD + RAR (従来の例) 489MB
APE+ZIP 403MB

ゲームCDをなるべく高圧縮でファイル化することを考える。 ただし、音楽部分の音質を犠牲にせず、 大した手間をかけずにすぐインストール、プレイできることを条件とする。 (2004年10月22日 追記: APE 3.99で再テスト、一部の数値を修正。)

初めに

ゲームCDではmix modeが使われることがある。 トラック1にゲーム自体のデータ(短い効果音を含む場合もある)、 トラック2以降に(長い)音楽データがある。 少し古い製品だが、手元にあった To Heart のCDで実際に調べると、 ゲーム本体にあたるトラック1がISOイメージで43.8MB、 トラック2~33の音楽データがWAVにして604MB、合計648MBであった。 また、KANONの場合、およそデータ部分が251MB、音楽部分が411MBだった。 いずれにしても、プログラム本体のデータに比べてBGMのデータがとても大きいことが普通だ。

これをCloneCDを用いてIMG+SUB+CCD形式で保存し、RARで圧縮しても、 例えば489MB(To Heartの例)とか465MB(Kanon+レカバリー1%)にしかならない。 CDイメージの形式、圧縮の設定でも微妙に変わるが、 圧縮率優先の方法を使って、おおざっぱに450~550MBだろう。

そこで音楽部分をAPEで可逆圧縮し、音楽データを劣化させることなく、 さらに圧縮率を高めることを考える。 To Heartの例でAPEを用いると、音楽部分が(無劣化で)361MBとなった。

データ量の大部分は音楽であるから、この勝負は実質的に「音声の可逆圧縮でAPEとRARが戦うこと」であり、 結果は目に見えている。

手順

  1. Mix ModeのCDをトラック単位で操作できるツールを使い、 ゲームCDのデータトラックをISO形式で、 音楽トラックをWAV形式で保存する。 ツールは何でも良い。 例えば、データ部分は WinISO、音楽部分は EAC などでも良いし、 まとめてできる日本語ソフトとして CD Manipulator がある(フリーだがデータトラックのセクターサイズが最適化されないため、 サイズは少し大きくなる)。
  2. WAVをAPEに変換する。
  3. 書庫にまとめる。 音楽をAPEにしたら全体をRARにする効果はあまりない。 TARなどの無圧縮アーカイブで十分だろう。RAR圧縮・解凍の手間も省ける。
  4. 実際にゲームをするときは、 インストール後、 (1) APEを置く場所を決めて _inmm.ini を作り、インストール先に置く。 (2) _inmmcnf.exe で拡張子APEをDirectShowに関連付ける。 (3) ゲームの実行ファイルにパッチをあて、_inmm を使うようにする。

注意

この方法は、昔よく使われたFCD+MP3の発想を元にしているが、 実際にはデータ部分にFCDを用いてはいけない。 ISOなどの互換性が高く、ブルースクリーンを出さない形式にしてほしい。

CDチェックがないタイトルなら、トラック1をISOイメージにする代わりに、 ZIP書庫などの通常のデータ形式にしてもかまわないだろう。

この方法の問題点

第一に、_inmm.dll非対応のゲームでは使えない。 また、_inmm.dllを使うことそれ自体、最近では一般向けとは言えない。 _inmm+apeでは、ほとんどの人が音の出し方が分からないだろう。 しかし、自分用に使う場合は、別に問題ないはずだ。

第二に、もともと音声データが Ogg Vorbis などで圧縮されているゲームでは、 この方法はまったく無意味だ。CD-DA採用作品 (mix mode)でのみ意味を持つ。

第三に、音楽データ部分が巨大でないと効果が少ない。

使用したバージョン

この組み合わせで、実際にHDからインストールして、音が鳴る状態でプレイできるのを確認しました。

歴史ノート

もともとFCD+MP3は、CD革命 Virtualがかつてmix modeに対応できなかったこと、 音楽を無圧縮WAVで扱うには帯域やウェブスペースが足らなかったことなどの、 前世紀的な消極的理由で考えられたのだろう。 しかし、そうした消極的な背景が動機であっても、結果として出現した _inmm.dll は実に素晴らしい。

この素晴らしいハックに、最近のAPEやAPE DirectShow Filter を組み合わせれば、 (MP3と違って)音質を一切損なうことなく、音楽部分だけを別圧縮し、利用できる。

ただし、Daemon Tool がフリーである現代において、 もはや CD革命 Virtual を使わないでほしい。 環境の相性さえ良ければFCDも重宝だろうが、 環境によっては激しくクラッシュし、 OSを巻き込んで落ちることも珍しくない。 フリーで Daemon Tool が使える時代に、こんな危なっかしいものをわざわざ有料で使う意味は少ない。 しかも、日本ローカルの非標準の形式のため、 イメージ操作系の他のいろいろな便利なツールで、 FCDだと読み込めないことが多い(特に圧縮ありで作成したFCD)。 有料、互換性なし、OSを死なせる、とFCDにはあまりいいことがないのだ。

FCD+MP3の発想だけ見習って、実質はISO+APE/MPC/AAC/Oggなどで行くのがいいだろう。

実際に用いた_inmm.iniの例(_inmmcnf.exeにて生成)
S:\To Heart\Monkey's Audio\TOHEART_02.ape
S:\To Heart\Monkey's Audio\TOHEART_03.ape
S:\To Heart\Monkey's Audio\TOHEART_04.ape
以下略

この記事のURL


デジタル呪文でバグ退散!

2003年10月13日
記事ID d31013a

チベット仏教によれば、 Om Mani Padme Hum というマントラ(真言、おまじない)を唱えることで幸運が訪れるという(音声)。 また、このマントラをつづった文字を回転させることでも、同様の効果があるという。 その効果はマントラがたくさんあればあるほど大きく、 回転が速ければ速いほど強力だ。

そこでご紹介するのが、このデジタル呪符。

梵字に似た謎めいた文字の画像

ダウンロードしてHDに保存するだけで、 霊験あらたかな「オム・マニ・ペメ・フム」の文字が毎分7200回*1の高速回転(*1 回転数はHDの機種により多少異なる場合がございます) コンピュータのユーザなら誰でも持っているHD、 いつでもくるくる回っているその余剰エネルギーを人類平和に利用する、地球に優しい商品です。 あなたのHDの悪霊もたちまち退散、バグ退散、生産能率・前年比平均1000パーミルの驚異のデータが実証されております。

今回は配布元がGIFのところ、初回限定特典として透過PNGでご提供。 パテント・アレルギー、GNU信者、魔法使い見習いのかたなどにも安心してご利用いただけます。 今すぐHDにファイルを保存して、HD上でマントラデータを回転させてください。

なお、ファイル名を om-mani-padma-hum とすることにより、パワーが倍増します(説明書より)。 考えにつまった。これは魔法でもなければもう駄目だ。そんなときは、 大きく深呼吸して「オム・マニ・ペメ・フム レリーズ!

きっと何かが起こります。

利用者の声 — 変数名をfoo, bar から hum, mani にしただけで、コンパイルが通りました。奇跡です!

利用者の声 — HDに保存したところ、 Windows 98 が10時間連続稼働しました! ありがとうございます!

利用者の声 — 夜中に考えがつまるたびにオーム! マニー!と太い声で唱えていたら、 なぜか公安調査庁にしょっぴかれ仕事もくび。おかげで納品の〆切がなくなり人間らしい生活を取り戻せました!

詳しい説明や他の呪符についてお知りになりたいかたは……
http://www.dharma-haven.org/tibetan/digital-wheels.htm

使用上の注意

  1. 体質、霊質に合わない場合は使用を中止し、医師、霊媒師にご相談ください。
  2. 瓶詰妖精、なぞなぞケータイ、ミンキーステッキなどとの併用はできません。巫女との併用もお避けください。ベルダンディーとの併用は可能です。
  3. 未成仏者の使用には守護霊の同意が必要です。

この記事のURL


VirtualDubModを使ったOGM→AVI変換

2003年10月17日
記事ID d31017

OGM形式の動画を、音声部分がMP3のAVI形式に変換。

まず音声部分がOgg Vorbisである典型例を詳しく説明し、 次にAC3とAACの場合とSRT字幕がある場合を簡単に説明します。

GraphEdit を使ったより高度な方法については、別記事「OGG/OGM動画の再編集、OGM→AVI変換」をごらんください。

VDMにロード

変換元のOGMファイルを、VirtualDubModに読み込みます。このツールについてご存じないかたは、 DVD・TV→AVI・OGM・MKV入門のステップ4を見てください。 ノーマル版のVirtualDubではなく、OGMを処理できるMod版を使います。

音声をWAVで保存

Streams | Stream List を開き、使用したい音声トラックの上で右クリック Full processing mode を選択します。 (もし音声がMP3であれば、何もしないでDirect stream copyでAVI化できますが、 ここでは音声がOgg Vorbisと仮定しています。)

もう一度右クリック、Compression を選び、<No compression (PCM)> が選択されていることを確認します。

Select Audio CompressionダイアログをOKで閉じ、 Save Wavボタンをクリックして、名前を付けてWAV形式で保存します。

音声の準備

保存したWAVファイルに、必要ならノーマライズやノイズ除去の加工を行うこともできます。 また外部ツールでMP3に変換することもできます。

Remux

同じSteam Listで、既にWAV保存したVorbis音声トラックを選択して、Disableをクリックします。

選択されたトラックに斜線が入り、そのトラックは無視されます。

Addボタンをクリックして、さきほど保存した音声成分を読み込みます。

もし外部ツールでMP3化してある場合には、そのまま映像と合体させて終了です。

そうでなくて抜き出したWAVのまま読み込んだときは、そのWAVトラックの上で右クリックして、 そのトラックをFull processing modeにします。 もう一度右クリック、Compression を選び、MPEG Layer-3 を選択します(Fraunhofer [FhG] IIS 、またはLame ACM CBR)。 Vorbis→MP3は劣化変換で、どんなにしても音質が多少犠牲になります。 ビットレートが元と同じくらいでも、音質は劣化します。 少しでもマシにしたければ、元より高めに(96Kbps Vorbis→128Kbps MP3、160Kbps Vorbis→192Kbps MP3など)。 ただ、どんなに高くしても、変換元よりは向上しようがありません。

Stream Listを閉じ、メインのメニューで Video を Direct stream copy にします。

[F7] を押して、AVI形式で保存します。

結果を確認して、問題がなければ、中間で使ったWAVファイルは削除してかまいません。

補足

Compressionの設定ダイアログでMP3が56Kbpsまでしか選択できない場合

MPEG2(DVD・TV)→AVIでMP3を簡単に使う方法」参照。

MP3を作成する外部ツールは何がいいか?

自分の使いやすいものが既にあれば、それでかまいませんが、 AVI動画の音声だったらCBRにすることをおすすめします。 どうしてもVBRにしたい場合は、VBRのMP3を使うにはを見てください。

外部エンコーダを特に使ったことがない場合、LAMEのフロントエンドになっているものが良いでしょう。 このサイト(faireal.net)では2003年10月現在、 foobar2000を標準で使っていますが、 これはAC3、AAC、HE-AAC、MP4、MPC、Vorbis、APE、Flacなど含めて、 最高精度でいろいろな直接変換が必要だからです。

WAVからMP3にする変換しか使わないなら、もっとシンプルで使いやすいツールもあるかもしれませんが、 例えばDVDのバックアップなどでAC3を(16ビットWAV経由で劣化させずに)直接MP3やVorbisにしたいこともあるはずです。いろいろできるほうが何かのときに便利なので、この機会にfoobar2000に挑戦してみるのもいいかも……。

lame.exeを直接コマンドラインで操作する方法を含めて、基礎から本格的に覚えたい場合は、 「MP3・Vorbis・AAC―動画音声の話」が多少、参考になるかもしれません。

音声トラックがAC3やAACの場合のAVI変換

AC3はそのままAVIにDirect stream copyできます。

AACの場合、2003年10月17日時点では、簡単な方法が不明ですが、 Grapheditでwavdest.axを使うか、 または直接MP3化すれば可能です。GrapheditからはMP3の細かい設定ができない(または面倒)なので、 AAC音声をWAV化するところだけGrapheditでやってあとはVDMでAVIにすると良いでしょう。

音声トラックが複数ある場合のAVI変換

VDMを使ってそのままマルチオーディオのAVIを作ることができます。 不要な音声をdisableして音声トラックを減らしたり、一つにすることもできます。

SRT字幕がトラックにある場合のAVI変換

ハードサブに変更できますが、映像の画質が劣化します。 方法としてはVDMでSRTをDemuxし、Textsubを使います。 再圧縮の時間がかかるうえ画質が落ちるので、 SRTは外部ファイルをMPCやVobSubで開く形で我慢するほうが良いかもしれません。

字幕が不要ならば、何もする必要ありません。 AVIにすれば勝手に字幕トラックは消滅します。

この記事のURL



メールアドレス(画像)