32KHz でサンプリングされた音は、BRR (ビット・レート・リダクション) の 処理をかけられ、16 ビットから 4 ビットにデータ圧縮されます。 4 ビットのデータは 16 個にまとめられ RF レジスタと共に、 9 byte で 1 ブロックを形成します。
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
RF | 粒度 |
フィルター 指定 |
Loop on/off |
END | ||||
---|---|---|---|---|---|---|---|---|
Da0 | Da0 H | Da0 L | ||||||
Db0 | Db0 H | Db0 L | ||||||
Da1 | Da1 H | Da1 L | ||||||
Db1 | Db1 H | Db1 L | ||||||
Da2 | Da2 H | Da2 L | ||||||
Db2 | Db2 H | Db2 L | ||||||
Da3 | Da3 H | Da3 L | ||||||
Db3 | Db3 H | Db3 L |
D7 ~ D2 は、BRR に関する情報です。 D1=1 のときはループありの Source であることを示し、 D0=1 のとき、ブロックがデータの最後のブロックであることを示します。
粒度は、そのブロックの量子化レベルを指す (0 ~ 12 の値)。 ここに大きい値を指定すると、BRR の各 4bit エントリの振幅値を 小さい値にシフトする。
BRRニブル (BRRの各4bitのエントリ) は、-8 から 7 の範囲で値を取る。
粒度の値 | 範囲 | 刻み |
00 | -00008 ~ 00007 | 0001 |
01 | -00016 ~ 00014 | 0002 |
02 | -00032 ~ 00028 | 0004 |
03 | -00064 ~ 00056 | 0008 |
04 | -00128 ~ 00112 | 0016 |
05 | -00256 ~ 00224 | 0032 |
06 | -00512 ~ 00448 | 0064 |
07 | -01024 ~ 00896 | 0128 |
08 | -02048 ~ 01792 | 0256 |
09 | -04096 ~ 03584 | 0512 |
10 | -08192 ~ 07168 | 1024 |
11 | -16384 ~ 14336 | 2048 |
12 | -32768 ~ 28672 | 4096 |
SPC は 16ビットの波形を使う。 32K の領域があり、上記の方法により、58,240 サンプル分を入れることができる。 これは、14.4 KHz の 4 秒分に相当する。 カートリッジには 24 MBits の領域がある。 ここには最大 550 万サンプルを入れることができる。 これは、モノラルの CD 音質で 6.5 分 分に相当する。
f : フィルター指定値 r : 粒度 n : ブロック内の 4 Bit のデータ s : デコードされた PCM サンプル (^ は、何乗かを表す)
s′ は最後の出力値を、s" は、さらに 1 つ前の出力値を指す。