Синхронизация компонентов потока

 

Для временной увязки компонентов одной программы в транспортном потоке, а также для синхронизации работы декодера используются три временные метки. Это ссылка на программные часы PCR (Program Clock Reference), метка декодирования DTS (Decoding Time Stamp) и метка воспроизведения PTS (Presentation Time Stamp).

Отдельные метки для декодирования и для воспроизведения нужны для того, что последовательность декодирования кадров и их появления на экране может быть разной. При компрессировании некоторых кадров используется информация не только о предыдущих, но и о последующих кадрах. Поэтому иногда для декодирования более раннего кадра надо сначала восстановить более поздний, который сохраняется в буфере декодера, где ожидает момента воспроизведения на экране.

Что касается ссылок на программные часы, то они представляют собой значение счетчика, отсчитывающего периоды частоты 90 кГц, которые получаются делением частоты 27 МГц, формируемой опорным генератором. По стандарту они должны передаваться не реже чем раз в 0,7 с. Каждая программа пакета имеет собственные независимые программные часы, то есть количество PCR, передаваемых в мультиплексированном потоке, определяется количеством включенных в него программ. Использование единого счетчика, действующего в рамках программы, позволяет синхронизировать между собой все ее составляющие, а также обеспечивает синхронизацию декодера с передатчиком. В декодере имеется аналогичный генератор частоты 27 МГц, а его подстройка в соответствии с получаемыми ссылками осуществляется с помощью системы фазовой автоподстройки частоты (ФАПЧ). Постоянная корректировка тактовой частоты обеспечивает корректное прочтение меток PTS и DTS, то есть своевременное декодирование и воспроизведение видеокадров и аудиофрагментов. Если декодер перестраивается на другую программу, то в его счетчик заводится новое значение, соответствующее PCR новой программы.