特定のロスレス圧縮アルゴリズムを使用してファイルを圧縮する場合、実行時間や結果の圧縮率をどのように予測できますか? ローカル圧縮の時間と圧縮率がわかれば、現在利用可能なネットワーク スループットに基づいてネットワーク圧縮の時間を簡単に計算できるため、特にローカル圧縮に関心があります。
サイズ、冗長性、タイプなど、ファイルに関する情報があるとします (単純にするためにテキストと言えます)。おそらく、実際の以前の測定からの統計データがいくつかあります。実行時間や圧縮率の予測を実行するには、他に何が必要でしょうか (非常に大まかなものであっても)。
ローカル圧縮だけでは、ファイルのサイズが影響します。これは、ストレージ メディア (SD カード、ハード ドライブ) との間で実際にデータを読み書きすることが、実行全体のより多くの部分を占めるためです。
ほとんどの圧縮アルゴリズムはデータの小さなブロック (100kb 程度) を圧縮することで機能するため、実際の圧縮部分はおそらく冗長性/タイプに依存します。たとえば、大きな HTML/Javascript ファイルは冗長性が高いため、圧縮率が高くなります。
スケジュールの問題もあると思いますが、おおよその目安としては無視していいでしょう。
これは、私の頭の中にある静かな質問です。オーバーヘッドの少ないコード (サーバー上など) が、実際の圧縮を実行する前にファイルを圧縮するのにかかる時間を予測できるかどうか疑問に思っていましたか?