Язык Си в примерах/Декодирование звукозаписи в формате ADX: различия между версиями

Содержимое удалено Содержимое добавлено
мНет описания правки
Строка 62:
|}
Поля, помеченные как «неизвестно» содержат либо неизвестные данные, либо просто зарезервированы (например, заполнены нулевыми байтами). Поля, помеченные «v3» или «v4», но не обеими версиями, равнозначны «неизвестным» в той версии, к которой они не относятся. Также следует обратить внимание на то, что этот заголовок может быть укорочен до 20 байт (0x14), что при задании авторских прав неявно удаляет поддержку цикла, так как эти поля не представлены («затираются»).
 
Поле «тип кодирования» должно содержать одно из значений:
* '''0x03''' для стандартного ADX
* '''0x04''' для ADX с экспоненциальной шкалой (масштабом)
* '''0x10''' или '''0x11''' дл AHX
Поле «версия» должно содержать одно из значений:
* '''0x02''' для одной из 'версии 3' с различными чётко указанными декодировщиками
* '''0x03''' для ADX 'версии 3'
* '''0x04''' для ADX 'версии 4'
* '''0x05''' для версии ADX 4 без внутренней поддержки цикла
 
При декодировании звукозаписи в формате AHX , считывание значения в поле «версия» не представлено и может быть безопасно пропущено.
 
=== Формат образца ===
Звукозапись, кодированная в ADX разбита на несколько последовательностей 'блоков', каждая из которых содержит данные только для одного канала. Блоки затем раскладываются в 'кадры', каждый из которых состоит из набора по одному блоку из каждого канала в порядке возрастания. Например, в стерео (2 канала) поток будет состоять из: кадра 1: блок левого канала, блок правого канала; кадра 2: левый канал, правый канал; и т.д. Обычный размер блока: 18 бит, содержащих образцы по 4 бита или других технически возможных размеров. Образец блока выглядит так:
{| class="wikitable" <!-- Audio block layout table -->
!0
!1
!2
!3
!4
!5
!6
!7
!8
!9
!10
!11
!12
!13
!14
!15
!16
!17
|-
|colspan="2"|Масштаб
|colspan="16"|32 4-битеых образца
|}
 
== Декодирование ADX ==