# 固定コードブック
適応コードブックで説明しきれない成分は、固定コードブックが符号化します。
構造化された集合から選ばれる、疎でほぼパルス状の波形です。フレーム内で最大の
項目であり、サブフレームあたり16ビット、パラメータ138ビット中64ビットを占め
ます。
## 1つの索引に6つの構造
16ビットの索引は平坦な表引きではありません。値域が6つのクラスに分割されており、
索引がどのクラスに落ちるかで残りの読み方が決まります。
| 0 | 0x0000 – 0x3FFF | 3 | 3トラック上の位置、基数 8 × 16 × 16 |
| 1 | 0x4000 – 0x7FFF | 3 | 同上、トラックと形状が異なる |
| 2 | 0x8000 – 0x98FF | 2 | 40 × 40 の位置 |
| 3 | 0x9900 – 0xB1FF | 2 | 40 × 40 の位置 |
| 4 | 0xB200 – 0xBF97 | 2 | 30 × 29 の位置 |
| 5 | 0xBF98 – 0xFF97 | 10 | 双子5パルスコードブック |
クラスは、索引が超えている下限のうち最大のものを探して選びます。0xFF98 以上の
索引は無効で、クランプされます。
検算(クラス0):8 × 16 × 16 = 2048 通りの位置組合せ × 2³ 通りの符号組合せ
= 16384 = そのクラスの範囲そのもの。どのクラスもぴったり埋まっています。
### クラス 0–4:マルチパルス
クラスの下限を引くと、下位ビットがパルス1つにつき1ビットの符号、残りが
**混合基数**の数——パルス位置索引を上位桁から並べたもの——になります。各位置
索引はそのトラックの位置表(パルススロットあたり40候補)から1つを選び、各パルス
は単一標本ではなく**20標本の形状**を、12種類の波形表から取って寄与します。
3パルスのクラスには3形状、それ以外には2形状ずつが割り当てられます。
単位インパルスではなく形状を使うことが、2〜3個のパルスで80標本のサブフレームを
説得力をもって覆える理由です。各パルスがクリック音ではなく短い波形を描きます。
### クラス 5:シェイプペア
索引空間の上位4分の1は別物を指します。128エントリのコードブック2本で、各
エントリは符号付き単位パルス位置5個。励振は両方から1エントリずつ取って構成
します。128 × 128 = 16384 で範囲と一致します。この構造は、強いパルス数個より
密で雑音的な励振を要するサブフレームに向いており、独自の基準で探索されて
サブフレームの候補の1つとして提示されます。
## 探索
サブフレームごとに65432通りすべてを試すのは論外です。探索は段階化されています。
**1 — モード判定。** 探索の前に、そのサブフレームをどう符号化すべきかを決めます。
適応コードブックだけで目標電力のおよそ3分の2を既に覆えていれば、周期的と見なし
モード0。そうでなく、目標が直前のサブフレームに対して急激に増大していれば
——立ち上がり——モード1とし、その後の3サブフレームも同じくモード1にして、
アタックが途中で切られないようにします。それ以外はモード2です。モードは候補を
比較する際の重みを選びます。
**2 — 候補の絞り込み。** トラックごとに全候補位置で目標との相関を計算し、上位
数個だけを残します。3パルスのクラスではトラックあたり3個または6個、2パルスの
クラスでは10個です。挿入により構築するので、常に順序が保たれます。
**3 — 事前計算。** 各パルス応答を重み付け合成フィルタに1回だけ通し、絞り込んだ
位置同士の相互電力を表にします。以降、組合せの評価はフィルタリングではなく
事前計算済みの数値に対する算術だけになります。
**4 — 組合せ評価。** 残った位置の組合せすべてを、ピッチ探索と同じ
`相関² / 電力` の比で採点し、交差乗算で比較します。
**5 — 重み付け比較。** 各クラスが勝者と得点を出し、得点を共通の指数に揃えて
モードごとの重みを掛け、全クラスの最良を選びます。パルスが目標の電力の実際の
位置から離れて着地したクラスにはペナルティが掛かります。位置は、サブフレームを
整流面積の等しい2つの半分に分ける点として測ります。
**6 — 詰め込み。** 勝った位置と符号を、上記の分解の逆演算で16ビット索引に
戻します。
## 復号
復号は安価な方向で探索は不要です。索引を分類し、位置と符号を取り出し、形状を
80標本のベクトルに配置します。符号ビットが0なら形状を減算、1なら加算します。
デコーダはその後**ピッチ強調**を掛けます。励振を、適応コードブックが使うのと
同じ分数遅延予測器に、前サブフレームから引き継いだ利得で通します。パルスだけ
では粗くなる周期性を補強するもので、デコーダ出力が手元のフレームではなく状態に
依存する箇所の1つです。