Термин
ADST
Асимметричное преобразование, используемое рядом с DCT в AV1, лучше отражает residual, смещённые к одному краю блока.
ADST – Asymmetric Discrete Sine Transform – математический родственник DCT, который AV1 и VP9 применяют к специфическим блочным паттернам, плохо обрабатываемым обычным DCT. Где DCT предполагает, что residual (маленькие разности, оставшиеся после prediction) симметричен внутри блока, ADST предполагает, что одна сторона блока имеет бо́льшую ошибку, чем другая. Именно это и происходит на краю prediction-области: сторона, ближайшая к reference, хорошо предсказана, дальняя – хуже, и residual асимметричен.
Для таких блочных паттернов ADST сжимает residual компактнее, чем DCT – обычно на несколько процентов лучше, и это накапливается по всему кадру. AV1 фактически использует меню преобразований (DCT, ADST, flipped ADST, identity transform) и энкодер выбирает то, которое лучше сжимает каждый конкретный блок. Энкодер тратит дополнительные вычисления на оценку вариантов и экономит биты в bitstream. Это типичный compromise современных кодеков: больше сложности энкодера в обмен на меньшие файлы.
Для продуктовой команды ADST – невидимая сантехника, не появляющаяся ни в одной user-facing настройке. Это часть того, почему AV1 сжимает лучше HEVC, и почему референсные энкодеры AV1 (SVT-AV1, libaom) заметно медленнее HEVC-энкодеров на том же контенте: они выполняют больше transform-оценки на блок. Вывод: когда вендоры заявляют о приросте эффективности X процентов от «новых transform-инструментов», ADST – обычно то, что они имеют в виду. Математика существует с начала 2000-х, но только недавно стала практичной для развёртывания в масштабе.
Считаете параметры для своего продукта?
Поможем собрать энкодер-леддер и посчитать стоимость доставки – до старта разработки.