読み込み速度はISOファイルが最も早いです
これはメモリースティックの容量を気にしている人向けです
最もすぐれている圧縮フォーマットはCSOですが、ゲームの中には動作しないものもあったり、不具合が出ることもあります
メモリースティックはmicroSDカードを入れるものがあり、安価に大容量化できるので、それを用いた方がよいです
圧縮ISOフォーマットに関しては、新しいアルゴリズムはどれも同じで、同じスピードアップハックが適用される。
つまり、どのフォーマットを使用するかは、そのフォーマット自体の圧縮アルゴリズムに依存するということです。
経験則では、アルゴリズムが高速であればあるほど、圧縮されたデータは少なくなり、高圧縮アルゴリズムは最悪のパフォーマンスを提供します。
以下の表は、各フォーマットと圧縮、速度、その他の変数との関係を、解説とともに示しています。
フォーマット | 容量 | 圧縮比と解凍速度 | 解説 |
---|---|---|---|
CSO | サポートされているアルゴリズム DEFLATE 対応ブロックサイズ 任意(2Kが標準) | 大きな圧縮サイズ 遅い解凍速度 | DAXと同じ圧縮アルゴリズムを使用しているが、より軽量な構造になっている。 あらゆるブロックサイズをサポートするが、DAXの8Kに対し、標準は2K(公式のものを含む圧縮ツールで許される唯一のサイズでもある)であった。 これは従来、DAXの方がCSOよりも少ないブロックを処理する必要があるため高速であることを意味していたが、新しいリーダーではもはや当てはまらないため、ブロックサイズに関係なく両者のパフォーマンスは同じである。 しかしこれは、標準的な2K CSOはDAXより大きいが、DAXと同じ8Kブロックサイズを使用して圧縮されたCSOは、実際にはより小さな画像を生成することも意味する。 つまり、8K CSOはあらゆる点でDAXより優れているということです(M33ドライバは2K CSO以外をサポートしたことはありませんが、DAX自身がCSOを優先してDAXのサポートを中止した理由はこれかもしれません)。 |
DAX | サポートされているアルゴリズム DEFLATE 対応ブロックサイズ:8Kのみ | 大きな圧縮サイズ 遅い解凍速度 | CSOの競合フォーマットで、圧縮アルゴリズムは同じだが、わずかに異なる構造を使用している。 オリジナルのバージョンでは非圧縮セクタを使用できなかったが、バージョン1では複雑で非効率的な方法が追加された。 このフォーマットはCSOよりも高速であったが、これは単に古いドライバの最適化されていないIOアクセスによるものであった。 結局、このフォーマットのサポートはM33 CFWで中止された。 |
JSO | サポートされているアルゴリズム LZOまたはDEFLATE サポートされるブロックサイズ 任意 | 平均圧縮サイズ 高速解凍速度 | このフォーマットは、当時の最適化されていないcso/daxリーダーの遅い性質への対応として、かなり前に作られたもので、CSOとDAXの両方の技術的な側面を組み合わせると同時に、独自の機能も追加しています。 LZO de/compressionフォーマットのサポートを追加することでスピードの改善を試みたが、これらの古いドライバにおけるスピードの主な問題は最適化されていないIOコールにあったため、これは比較的悪い結果となった。 LZOかDEFLATEのどちらかをサポートしていたが、1つのファイルに対して両方を同時に使うことはできなかった。 |
ZSO | 対応アルゴリズム LZ4 対応ブロックサイズ 任意(2Kが標準) | 最悪の圧縮サイズ 最速の解凍速度 | このフォーマットは、圧縮されたISOの速度を改善するためのもう一つの遅い試みとして作成され、今回は信じられないほど高速なLZ4 de/圧縮アルゴリズムを使用した。 その後すぐに、CSOの速度に影響を与えるのは圧縮アルゴリズムだけでなく、主なボトルネックは、ゲームによるデータ要求ごとに行われる信じられないほど大量のIO呼び出しにあることが判明した(ISOではデータ要求ごとに1回のIO呼び出しであるのに対し)。 このため、現在では標準的なCSOでほとんどのケースで十分な性能を発揮している。 |
CSOv2 | 対応アルゴリズム LZ4およびDEFLATE 対応ブロックサイズ 任意(8Kが標準) | 優れた圧縮サイズ、優れた解凍速度 | CSOの優れた圧縮率とZSOの優れた伸長速度を組み合わせた試みであり、JSOの技術的な側面(複数アルゴリズムのサポートや非圧縮ブロックの検出など)も持っている。 このフォーマットでは、各ブロックはどちらかのアルゴリズムで圧縮され、ファイルを通して両方のアルゴリズムが同時に使用されることを意味します。 |
フォーマット戦争
最初のISOドライバがゲーム機に搭載された当時、メモリースティックは2GBより大きくなかったため、ISOファイルの圧縮フォーマットという形で容量を節約するメカニズムを実装する必要があった。
ISOをZIPファイルに圧縮するだけでは不十分で、ZIPファイルではランダムアクセスができないため、使用する前にファイル全体を解凍する必要がある。
これは、ファイル全体をRAMにロードできるほど小さいため、古典的なレトロコンソールのロムには有効ですが、最大1.8GBに達するUMDには、これでは無理でした。
その時、2つのフォーマットが登場した: BoosterのCSOフォーマットとDark_AlexのDAXフォーマットである。
これらのフォーマットでは、圧縮はファイル全体ではなく、セクタ単位(またはブロック単位)で行われるため、圧縮ファイルに対して直接ランダムアクセスが可能になる。
唯一の欠点は、ファイル全体ではなく小さなチャンクを圧縮すると、常に圧縮率が不利になることである。
この場合、CSOとDAXがZIPと同じ圧縮アルゴリズムを使用していても、ZIPファイルに圧縮されたISOの方がわずかに圧縮率が高くなる。
とはいえ、非圧縮データやダミーファイルを多用するゲーム(光学メディアではよくあること)では、これはそれほど悪いことではなく、圧縮率はかなり高かった。
各フォーマットにはそれぞれ利点があり、DAXの方が全体的に高速で圧縮率も高いと考えられていたが、CSOの方がはるかにシンプルで強力だった(「先進的な考え方」の素晴らしい瞬間として、CSOはDVDやBlurayのISOで実際に動作できたが、DAXはUMDとミニDVDに限られていた)。
また、CSOフォーマットは2Kブロックを持つように標準化されていましたが、どのようなブロックサイズでも使用できるように意図されていました。
つまり、もしDAXのように8Kブロックを使用していたら、CSOはDAXと同じくらい高速になり、さらに圧縮されていたでしょう(全体的によりスペース効率の高いフォーマットであるため)。
CSOとDAXの誕生から少しして、JSOという第三の競合が登場した。
より高速な解凍アルゴリズム(この場合はLZO)を使用して、フォーマットの速度を向上させることを目指していた。
しかし、これは決して普及せず、当時の多くのPCアプリがこのフォーマットへの変換を完全にサポートしていたにもかかわらず、このフォーマットは大きな人気を得ることはなかった。
その失敗の主な理由は、当時のドライバに存在したI/Oの最適化されていない使い方に関連しており、より高速な解凍機能によって得られたスピードアップを比較的目立たなくしています。
しかし、このフォーマットはARK-4の最適化されたInferno 2ドライバで復活を遂げました。
しばらくの間、ほとんどのISOドライバ(つまりSEとOE)は両方のフォーマットのサポートを実装していたが、最終的にDark_Alex(最も有名なPSP CFW開発者)は、M33 CFWが作成されると、彼自身のDAXフォーマットのサポートを中止した。
DAXは標準的なCSOファイルよりも高速で優れた圧縮率を提供した。
興味深いことに、ブロックサイズに関連するDAXとCSOの速度差は、適切にI/O最適化されたドライバによってすべて解消され、8Kブロックを使用して作成されたCSOファイルは、DAXよりも優れた圧縮率を提供します。
PRO時代が終わり、新しい第4のフォーマットが登場しました。
Codestationによって作成されたZSOフォーマットは、CSOと全く同じバイナリ構造を使用していますが、圧縮処理にはるかに高速なLZ4アルゴリズムを使用している点が異なります。LZ4アルゴリズムは、利用可能な最速のアルゴリズムですが、速度は圧縮率とトレードオフの関係にあり、異なるフォーマットの中で最悪です。
CSOを遅くするボトルネックであり主な問題は、圧縮アルゴリズムではなく、圧縮されたフォーマットを読み込む際に発行される膨大な量のI/Oコールである。
このボトルネックが解消されると、オリジナルのCSOフォーマットははるかに高速に使用できるようになったため、ほとんどの人はZSOに移行する代わりにCSOに固執することにした。
ZSOがより成功を収めたのは、PSPの姉妹機であるPS2だった。
現在、どのアルゴリズムを使うべきかは、ユースケースに大きく依存する。
スピードを優先するのであれば、ZSOやJSOが良い選択肢となり、容量を節約するのであれば、CSOやDAXを使用することができます。
フォーマットもゲームに依存することがあり、負荷の高いゲームほど、より高速な解凍の恩恵を受ける(GTAゲームのZSOなど)一方、他のゲームでは、解凍が遅くてもロード時間が少し長くなるだけで、ゲームプレイに違いはないため、CSO/DAXで問題ない(Minisの場合など)。
コメント
コメントを投稿