| Следующая версия | Предыдущая версия |
| spu [2026/10/15 20:20] – создано gecko | spu [2026/10/16 11:39] (текущий) – gecko |
|---|
| ====== SPU ====== | ====== SPU ====== |
| |
| У PSX имеется 16-битный звуковой процессор (SPU) с 24 ADPCM-каналами (или голосами - voice) и звуковой памятью в 512 кб. Каналы используются как источники звуков или как частотные модуляторы для других каналов. Каждый канал имеет собственную программируемую ADSR-огибающую. Для того, чтобы воспроизвести звук, нужно передать его в звуковую память, привязать к одному из каналов и включить этот канал. | У PlayStation имеется 16-битный звуковой процессор с 24 ADPCM-каналами (или голосами - voice) и звуковой памятью в 512 кб. Каналы используются как источники звуков или как частотные модуляторы для других каналов. Каждый канал имеет собственную программируемую ADSR-огибающую. Для того, чтобы воспроизвести звук, нужно передать его в звуковую память, привязать к одному из каналов и включить этот канал. |
| |
| ===== ADPCM ===== | ===== ADPCM ===== |
| |
| PSX для хранения звука использует не привычное PCM-кодирование (то есть, амплитуды сигнала, оцифрованные через заданные промежутки времени), а ADPCM - продвинутую разновидность PCM, где используется переменная частота дискретизации, а сигнал, к тому же, кодируется в виде разности между текущим и предыдущим значениями амплитуды. | PSX для хранения звука использует не обычное PCM-кодирование (то есть, амплитуды сигнала, оцифрованные через фиксированные промежутки времени), а ADPCM, где используется переменная частота дискретизации, а сигнал, к тому же, кодируется в виде разности между текущим и предыдущим значениями амплитуды. Это обеспечивает сжатие примерно 3.5:1 по отношению к PCM. |
| | |
| | Для хранения ADPCM-данных обычно используется формат [[VAG]]. |
| | |
| | ===== Загрузка данных ===== |
| | |
| | Данные в памяти SPU размещаются с выравниванием по 8 байт, в связи с чем адреса задаются не в байтовых смещениях, а в блоках по 8 байт. Например, SPU-адрес 0x1000 означает смещение 0x8000 в байтах. Адреса 16-битные. Безопасное начальное смещение - адрес 0x0200. |
| | |
| | Для загрузки ADPCM-данных используется 4-й канал [[DMA]]. |
| |