Проектирование высокоскоростных аудио- и видеоинтерфейсов для минимальной задержки
Понимание задержки в аудио и видео интерфейсах
Задержка, часто называемая задержкой или задержкой, - это разница во времени между событием и его восприятием или воспроизведением на выходе. В аудио / видео системах могут стать заметными даже задержки в 20 миллисекунд, что вызывает проблемы синхронизации между звуком и картинкой или препятствует интерактивности в реальном времени в прямом эфире, видеоконференциях и онлайн-играх. Чтобы понять, как минимизировать задержку, сначала нужно понять основные факторы: задержки передачи, задержки обработки и накладные расходы на буферизацию.
Задержка передачи
Время перемещения данных по кабелю или беспроводной среде регулируется скоростью распространения сигнала (обычно около 60-70% скорости света для меди) и скоростью передачи битов интерфейса. Высокоскоростные протоколы, такие как Thunderbolt 4 (до 40 Гбит/с) или USB4 (также 40 Гбит/с), сокращают время, необходимое для передачи данного объема данных по сравнению с более старыми стандартами, такими как USB 2.0 (480 Мбит/с). Например, потоковая передача несжатого видео 1080p60 при 3 Гбит/с займет значительно больше времени по линии USB 2.0, потому что сырая скорость передачи битов почти в шесть раз медленнее. В практическом дизайне системы выбор самой высокой доступной скорости передачи данных для требуемой полосы пропускания является первым шагом в сохранении задержки передачи на низком уровне.
Задержки обработки
Каждый этап обработки цифрового сигнала - от аналого-цифрового преобразования (ADC) и сжатия/декомпрессии (codec) до масштабирования, преобразования цветового пространства и преобразования формата - добавляет задержку. Высокопроизводительные кодеки, такие как кодеки на основе JPEG XS или семейства SMPTE VC-2 (Dirac), предназначены для сжатия без потерь визуально с чрезвычайно низкой задержкой (часто одной линией или несколькими микросекундами). И наоборот, более тяжелые кодеки, такие как H.265 / HEVC, могут вводить десятки миллисекунд задержки из-за сложного прогнозирования и кодирования энтропии. В аудио, аналоговые устройства SHARC DSP или FPGA-ориентированная фильтрация FIR может обрабатывать образцы в течение микросекунды на образец, но любая повторная выборка или асинхронное преобразование частоты выборки (ASRC) может увеличить задержку, если не реализовано тщательно.
Буфер и очереди
Буферы необходимы для поглощения джиттера и обеспечения того, чтобы данные не терялись, когда приемник не готов. Однако каждая буферная стадия добавляет задержку, равную размеру буфера, деленному на скорость передачи данных. Многие потребительские аудиоинтерфейсы используют буфер 256-образцов на 48 кГц, что приводит к примерно 5,3 мс добавленной задержки. Профессиональные системы AOIP (Audio over IP), такие как Dante или AVB, могут работать с буферными размерами, такими как 32 образца (0,67 мс) на специальном оборудовании. Видеосистемы часто требуют нескольких буферов кадра для деинтерлаксации, масштабирования или генлока; дизайнеры должны стремиться к буферам одного кадра (например, 16,7 мс для 60 Гц), где это возможно, и где не требуется точное переключение кадра, меньшие буферы на основе строк могут снизить задержку до нескольких микросекунд.
Для точного измерения задержки требуются специализированные инструменты, такие как осциллограф высокой полосы пропускания для электрических сигналов или генератор видеопаттернов с известной задержкой . Общие методы испытаний включают измерения обратной петли и анализ секундомера на эталонном дисплее.
Основные принципы проектирования для минимальной задержки
Уменьшение задержки является проблемой оптимизации на системном уровне. Следующие принципы определяют дизайн высокоскоростных аудио- и видеоинтерфейсов, которые достигают задержки в оба конца всего за несколько миллисекунд или меньше.
1. Выберите высокоскоростные, детерминированные протоколы передачи данных
Протоколы, такие как PCI Express (PCIe) 4.0/5.0, Thunderbolt 4, USB 3.2 Gen 2×2 и DisplayPort 2.0, обеспечивают детерминированные, низкочастотные пути передачи данных. PCIe, например, использует топологию «точка-точка» с выделенными полосами и минимальными накладными расходами протокола, что делает его идеальным для захвата видеокадров непосредственно в память GPU с субмикросекундной задержкой. Туннели Thunderbolt 3/4 PCIe, DisplayPort и USB 3.x по одному кабелю, что позволяет осуществлять цепь с малыми задержками периферийных устройств.
- USB 3.2 Gen 2×2 (20 Гбит/с)) использует изохронные конечные точки с программируемыми размерами буфера. Для аудиоинтерфейсов многие профессиональные реализации USB достигают задержки в оба конца ниже 2 мс при частоте выборки 96 кГц с 32-образными буферами.
- Thunderbolt 4 поддерживает DMA (прямой доступ к памяти) двигатели, которые позволяют аудио / видео данные полностью обойти процессор, резко снижая задержки обработки.
- SDI (Serial Digital Interface) остаётся основным продуктом в живом производстве, поскольку он переносит несжатое видео с детерминированной задержкой — обычно ниже 0,2 мс на коробку конвертера. Стандарты SMPTE ST 2081/2082 определяют 3G/6G/12G-SDI для 4K при 60 fps.
2. Проектирование аппаратного обеспечения для минимального сигнального пути
Каждый преобразователь (ADC, DAC, HDMI приемник, SDI приемопередатчик) добавляет задержку распространения. Выберите компоненты с наименьшей заданной задержкой. Например, передатчик HDMI Texas Instruments TFP410 имеет типичную задержку 0,5 нс, в то время как высокопроизводительные видео DAC могут располагаться менее чем в 10 нс. Конструкции на основе FPGA могут интегрировать несколько блоков обработки внутри одного чипа, устраняя задержки вне чипа. Используйте параллельные конвейеры обработки (например, линейная обработка видео) вместо буферов кадра, где это возможно.
3. Эффективные стратегии буферизации
Размер буфера — это компромисс между задержкой и надежностью против джиттера. Для аудио используйте двойное буферное с небольшим буфером (например, 32 или 64 образца) и сложным обработчиком прерываний, который минимизирует время, проведенное в ядре. Для видео рассмотрите возможность использования режима «сквозного» в видеопереключателях, которые пересылают строку, как только требуемый заголовок декодируется, а не ждет весь кадр. Преобразователи HDMI на основе FPGA для SDI часто используют линейные буферы всего в несколько килобайт вместо полных буферов кадра, уменьшая задержку от уровня кадра (16,7 мс) до уровня строки (около 15 мкс).
4. Операционная система реального времени (RTOS) и настройка ядра
На стороне хоста универсальная ОС, такая как Windows или Linux, может вводить задержку планирования. Используйте ядро в реальном времени (например, PREEMPT RT для Linux) и назначайте выделенные ядра процессора для аудио/видео потоков. В Windows используйте службу планирования мультимедийного класса (MMCSS) для предотвращения прерывания других процессов высокоприоритетных аудиопотоков. Многие профессиональные аудиоинтерфейсы предоставляют свои собственные драйверы уровня ядра, которые обходят стандартный аудио стек (например, ASIO или WASAPI эксклюзивный режим) для достижения задержки туда и обратно 2-3 мс.
5. Минимальные этапы обработки сигналов
Каждое преобразование — будь то преобразование цветового пространства, масштабирование или преобразование скорости воспроизведения аудио — увеличивает время обработки каждого образца. Там, где это возможно, комбинируйте этапы обработки (например, выполняйте преобразование цвета и масштабирование в одном слитом ядре на GPU или FPGA). Используйте целочисленную арифметику с таблицами поиска, чтобы избежать накладных расходов с плавающей точкой. Для аудио избегайте повторных преобразований формата: сохраняйте образцы в одной глубине бита и частоте выборки от захвата до вывода.
Технологии, обеспечивающие интерфейсы с низкой задержкой
Современные аппаратные и программные технологии во многих профессиональных контекстах раздвинули границы задержки до диапазонов менее миллисекунд.
Thunderbolt и USB 3.2/4
Технология Thunderbolt, первоначально разработанная Intel и теперь интегрированная в USB4, предлагает унифицированное соединение с высокой пропускной способностью и низкой задержкой. С выделенными двигателями DMA и изохронными каналами она является основой многих профессиональных аудиоинтерфейсов (например, Universal Audio Apollo, Focusrite Clarett) и устройств захвата видео (например, Blackmagic UltraStudio). USB 3.2 Gen 2×2 при 20 Гбит/с все чаще встречается в потребительском и про-потребительском аудиоустройстве, обеспечивая достаточную пропускную способность для 32-канального аудио 96 кГц с низкими задержками.
SDI (серийный цифровой интерфейс)
В производстве трансляций и живых событий SDI остается золотым стандартом для детерминированного видеотранспорта с низкой задержкой. Аудиоинженерное общество (AES) также определяет AES3 (сбалансированный цифровой аудио) и AES67 (сетевой аудио) с жесткими требованиями к задержке. Однопроводная, самозамкнутая природа SDI устраняет задержки пакетирования и повторной сборки, обнаруженные в системах на основе IP. Последний стандарт 12G-SDI поддерживает 4Kp60 без сжатия, а задержка через чипсет 12G-SDI (передатчик + приемник) обычно составляет менее 2 мкс.
Аудио через IP (AoIP) - Dante, AVB, AES67
Сетевое аудио может вводить задержки пакетирования и буферизацию, но современные протоколы AoIP предназначены для сверхнизкой задержки. Dante, разработанный Audinate, предлагает варианты задержки от 0,25 мс до 5 мс, выбираемые в конфигурации программного обеспечения. Audio Video Bridging (AVB), ратифицированный как IEEE 802.1BA, использует синхронизированную по времени сеть с гарантированной пропускной способностью, достигая детерминированной задержки менее 2 мс в сети 7-хоп. AES67 обеспечивает совместимость между различными стандартами AoIP, позволяя многоадресные потоки с задержкой до 1 мс. Для использования в широковещательной передаче пакет SMPTE ST 2110 расширяется на AES67, добавляя отдельные потоки для видео, аудио и вспомогательных данных - каждый может обрабатываться с задержками субкадра в аппаратном обеспечении.
Обработка на основе FPGA
Полевые программируемые затворные массивы (FPGA) от Xilinx (теперь AMD) и Intel (ранее Altera) являются ключевыми активаторами для обработки сверхнизких задержк. Их параллельная архитектура позволяет одновременно обрабатывать несколько аудиоканалов или видеопикселей без последовательной накладной платы процессора или графического процессора. Например, FPGA может реализовать переключатель видеопотоков с задержкой всего в несколько тактовых циклов - менее 100 нс. Многие современные преобразователи вещания (например, AJA, Blackmagic) используют FPGA для преобразования формата, масштабирования и цветовой градации с полной задержкой под одной видеолинией. В аудиодомене FPGA могут выполнять сложное смешивание, выравнивание и динамическую обработку полностью в аппаратном обеспечении, с детерминированными задержками, которые не зависят от нагрузки процессора.
Продвинутые кодеки для низкой задержки
Сжатие часто необходимо для передачи видео высокого разрешения по ограниченной полосе пропускания, но типичные кодеки с длинным разрешением (H.264, H.265) вводят несколько задержек кадров. Для низкой задержки используйте кодеки на основе всего кадра (только I-кадр) или кодеки на основе вейвлетов, такие как TICO (intoPIX) или JPEG XS. JPEG XS - это легкий, визуально без потерь стандарт кодека (ISO / IEC 21122), предназначенный для задержки субкадра (< 1 строка задержки) и простой аппаратной реализации. Аналогично, кодеки AAC-LD (Low Delay) и Opus позволяют кодеку аудио с задержкой менее 5 мс для потоковой передачи.
Лучшие практики для реализации
Перевод принципов проектирования в рабочий продукт требует тщательного внимания к физическому уровню, программному обеспечению и системной интеграции.
Используйте высококачественные кабели, коннекторы и PCB-разметку
Высокоскоростные цифровые сигналы (например, 12 Гбит/с SDI, PCIe Gen 4) чувствительны к несоответствиям импеданса, перекрестным и диэлектрическим потерям. Используйте Бельденский коаксиальный кабель с низкими потерями для SDI; для USB 3.2 и Thunderbolt сертифицированные кабели с 24 проводами AWG обеспечивают целостность сигнала при более длительных прогонах. На PCB следуйте рекомендациям производителя для маршрутизации дифференциальных пар, сохраняйте следы, соответствующие длине, и используйте управляемые стеки импеданса. Неправильные длины кабеля или плохие разъемы могут вводить дрожь, которая приводит в действие большие буферы, увеличивая задержку.
Оптимизация драйверов программного обеспечения и прошивки
Даже при самом быстром оборудовании плохо написанный драйвер может добавлять сотни микросекунд. Используйте опросы или прерывания таймера с высоким разрешением (HPET, TSC) вместо периодических системных тиков. В аудио реализуйте доступы к памяти с нулевой копией и комбинированием записей, чтобы избежать ненужных копий данных. Для захвата видео используйте I/O с картой памяти и DMA для перемещения данных непосредственно из интерфейса в буфер пользовательского пространства. Многие профессиональные поставщики (например, Blackmagic, AJA) предоставляют драйверы уровня источника, которые позволяют разработчикам настраивать поведение задержки.
Реализовать мониторинг и калибровку в режиме реального времени
После того, как система построена, измеряйте сквозную задержку с использованием метода, который впрыскивает известный импульс синхронного импульса (например, генератор синхронизирующего импульса) и наблюдает выход. Инструменты, такие как клип Dr. Latency VideoToolShed, обеспечивают простое визуальное измерение для видео. Для аудио, используйте тест обратной связи RME с плагином задержки. Регулярно перекалибруйте систему, чтобы компенсировать дрейф часов (например, корректировки PLL в генлоке) и старение компонентов.
Интеграция и тестирование системного уровня
Разработать комплексный план испытаний, включающий наихудшие сценарии: максимальные скорости передачи данных, одновременные аудио/видеопотоки и комбинации с другими периферийными устройствами. Используйте формальные инструменты проверки для конструкций FPGA для обеспечения закрытия времени на требуемой тактовой частоте. Для сетевых систем реализуйте сетевую изоляцию (VLAN, выделенный коммутатор) для предотвращения перегрузок, которые могут увеличить джиттер и рост буфера силы. Документируйте ожидаемый бюджет задержки для каждого этапа и проверьте измерения.
Заключение
Проектирование высокоскоростных аудио- и видеоинтерфейсов, которые последовательно обеспечивают минимальную задержку, является междисциплинарной задачей. Это требует глубокого понимания передачи физического уровня, выбора компонентов, управления буфером и нюансов операционной системы в реальном времени. Приоритетируя детерминированные протоколы, такие как Thunderbolt, SDI и PCIe; используя параллельную мощность FPGA; и тщательно настраивая каждый этап буфера и обработки, инженеры могут достичь достаточно низких задержек в оба конца для даже самых требовательных живых производств, телеприсутствия и профессиональных аудиоприложений. Ключ заключается в том, чтобы с самого начала итерировать задержку как первоклассное ограничение проектирования, а не последующую мысль.