Zig, благодарю за участие, особенно в выходной.
Цитата(Zig @ Mar 10 2018, 14:07)

Рассмотрим мультиплексор на вход которого поступает ТП с постоянной скоростью CBR (constant bit rate).
Согласен, уточнение важное, не отметил сразу. Пока речь идет именно о CBR.
Цитата(Zig @ Mar 10 2018, 14:07)

При приеме, на входе мультиплексора, пакета с полем PCR мы из этого поля вычитаем текущее значение счетчика системной частоты SCR...
...Таким образом физический смысл коррекции меток PCR путем вычитания, на входе буфера, и добавления, при чтении из буфера, текущих значений счетчика системной частоты, есть не что иное, как добавление к значению поля PCR задержки данного пакета в буфере, выраженного в тактах системной частоты.
Все реализовано так, просто в целях отладки пока сделал вычисление времени задержки (в количестве тактов SCR) при добавлении к выходному пакету.
Цитата(Zig @ Mar 10 2018, 14:07)

PCR accuracy error выходного потока будет зависеть от:
- PCR accuracy входного потока;
- соотношения между частотами системной частоты 27 МГц и 27 МГц из которых формировались метки PCR (чем больше разность между ними, тем больше будет PCR accuracy error);
- времени нахождения транспортного пакета в буфере (чем дольше находится пакет в буфере, тем больше PCR accuracy error).
При этом, если значение системной частоты точно равно частоте из которой формировались метки PCR, то PCR accuracy error не будет зависеть от времени нахождения пакета в буфере.
- PCR accuracy входного потока - 40нс. Выходной получается 500-600нс.
- 27МГц на моей плате отличаются от номинала (если верить поверенному частотомеру) герц на 20. Вроде не должно быть критично на интервале 1 пакета при битрейте выходного потока 50МБит/с и входного 24.9Мбит/с.
- Пакет не задерживается дольше, чем на время одного выходного пакета при выходном битрейте 50Мбит/с.
Цитата(Zig @ Mar 10 2018, 14:07)

...Любые флуктуации скорости приведут к дополнительной PCR accuracy error.
Для отработки схемы коррекции PCR можно временно отказаться от приема ТП из IP и подать его, например, через DVB-ASI.
Вместо этого просто задавал константой (исходя из скорости оригинального входного потока, взятого из файла) скорость чтения из большого буфера. Но уменьшить PCR accuracy ниже величин 500-600нс не получается.
Цитата(Zig @ Mar 10 2018, 14:07)

Для отработки схемы восстановления скорости ТП, принятого по IP можно вывести поток через DVB-ASI минуя мультиплексор и модулятор.
Согласен, но это судя по результатам, пока проблема меньшего масштаба. Уже добился результатов, когда восстановленное значение скорости потока и заданное константой дают равный результат для PCR accuracy.
Во всяком случае, выяснил, что понимаю алгоритм коррекции PCR правильно. Возможно стоит поискать проблемы и неточности в его реализации.