フレッチャーのチェックサムを使用している。テストで0xFFのXORをとっているがそれの破損を検知できずに焦る。255の剰余だから1バイトで0xFFを足すと区別できないんだな…。不安はあるが、検出精度は折り紙つきではあるので採用。
デコード速度は向上したが、エンコード速度が遅くなることを確認している。謎。何か意図しない修正を入れた可能性がある。
いろいろなコーデックのフレームサイズを見ている.Monkey's Audioは(APECompressCreate.cpp)
// initialize (creates the base classes)
m_nBlocksPerFrame = 73728;
if (nCompressionLevel == MAC_COMPRESSION_LEVEL_EXTRA_HIGH)
m_nBlocksPerFrame *= 4;
else if (nCompressionLevel == MAC_COMPRESSION_LEVEL_INSANE)
m_nBlocksPerFrame *= 16;
なのででかい。TTA(tta.c)は
smp_size = (wave_hdr.num_channels * ((wave_hdr.bits_per_sample + 7) / 8));
info.nch = wave_hdr.num_channels;
info.bps = wave_hdr.bits_per_sample;
info.sps = wave_hdr.sample_rate;
info.format = format;
でinfo.spsの値をほぼそのままフレームサイズとするので1秒。でかい。WavPack(pack_utils.c)は
int divisor = (wpc->config.flags & CONFIG_HIGH_FLAG) ? 2 : 4;
while (wpc->config.sample_rate % divisor)
divisor--;
wpc->block_samples = wpc->config.sample_rate / divisor;
while (wpc->block_samples > 12000 && (int64_t) wpc->block_samples * wpc->config.num_channels > 75000)
wpc->block_samples /= 2;
while ((int64_t) wpc->block_samples * wpc->config.num_channels < 20000)
wpc->block_samples *= 2;
なのでステレオならば1チャンネル当たり10000サンプル以上となる。でかい。