ENGINEER_GUIDANCE: ランレングス法
ランレングス法(連長圧縮)とは、同じデータが連続する回数を数えて記録する、非常にシンプルな可逆圧縮アルゴリズムです。
1. 基本原理: 連続を数える
データが同じ値で長く続いている場合、「値そのもの」を並べるのではなく、「値 + 連続回数」のペアで記録します。
例: RRRRR (5byte) → R5 (2byte) となり、劇的にサイズを削れます。
2. 実務での使い分け
- 得意: 単純なロゴ、白黒のFAX文書、アイコン等。
- 苦手: 写真や複雑なグラデーション。隣り合う色がバラバラだと、逆にサイズが増大する「マイナス圧縮」が起きます。
3. なぜ「3つ以上」で圧縮するのか?
このゲームの「圧縮記録」プロトコルは3つ以上から有効です。理由は「値1文字」+「数1文字」=合計2文字を消費するため、2文字以下の連続を圧縮してもサイズが変わらない(あるいは増える)からです。エンジニアは常に「メタデータのオーバーヘッド」を意識する必要があります。
4. 計算量の視点
1回のスキャンで処理が完結するため、時間計算量は O(n)。極めて高速なため、ストリーミング配信のリアルタイム圧縮などの初期段階で使われることもあります。