реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Как из потока DVB-ASI вытащить синхронизацию H,V,F ( в стиле стандарта ITU656 )?
FLTI
сообщение May 16 2016, 09:24
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 399
Регистрация: 8-06-05
Пользователь №: 5 832



Здравствуйте!

Как из потока DVB-ASI вытащить синхронизацию H,V,F ( в стиле стандарта ITU656 )?
DVB-ASI имеется уже в виде десериализированного 8-битного потока, который уже очищен от K28.5.
Go to the top of the page
 
+Quote Post
FLTI
сообщение May 17 2016, 09:41
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 399
Регистрация: 8-06-05
Пользователь №: 5 832



DVB-ASI в виде десериализированного 8-битного потока, который уже очищен от K28.5 - это фактически транспортный поток MPEG-2 TS?
Если так, то как из транспортного потока MPEG-2 TS вытащить синхронизацию видеопотока H,V,F?
Cинхронизация видеопотока H,V,F тоже закодирована в MPEG-2 или она идёт в незакодированном в MPEG-2 виде?
Go to the top of the page
 
+Quote Post
zxcv
сообщение May 18 2016, 11:43
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 69
Регистрация: 10-01-10
Пользователь №: 54 704



Цитата(FLTI @ May 17 2016, 12:41) *
DVB-ASI в виде десериализированного 8-битного потока, который уже очищен от K28.5 - это фактически транспортный поток MPEG-2 TS?

Да, это транспортный поток. Можно ещё найти синхронизацию по началу пакета (сигнал PS) и добавить сигнал валидности данных (DV) особенно если входной DVB-ASI поток в режиме с длиной транспортного пакета 204 байта. Правда есть ещё один вариант транспортного потока - 204 байта с кодированием Рида-Соломона, но его я встречал только в своём оборудовании.

Цитата(FLTI @ May 17 2016, 12:41) *
Если так, то как из транспортного потока MPEG-2 TS вытащить синхронизацию видеопотока H,V,F?
Cинхронизация видеопотока H,V,F тоже закодирована в MPEG-2 или она идёт в незакодированном в MPEG-2 виде?

Внутри транспортного потока передаётся таблица PAT с PID-ом 0x0000 в ней PID-ы таблиц PMT. В таблицах PMT передаются PID-ы транспортных пакетов с видео, звуком и т.п. В транспортных пакетах с видео передаются PES пакеты видео. В них элементарные потоки видео (как MPEG-2, так и MPEG-4). Декодировав их Вы получите видеокадр.
Частота 27 МГц с которой Вы будете вычитывать видеокадр из декодера видео (для разрешения SD) восстанавливается из полей PCR, передаваемых в транспортном потоке. Эти поля передаются в транспортных пакетах с PID-ом, указанным в поле PCR_PID в таблице PMT (обычно совпадает с PID-ом видео данной программы).

Если Вам нужны только H, V и F, то декодировать видео нет необходимости.
27 МГц Вы восстановите из PCR. Структуру полей видеопотока H, V и F внутри ITU-R BT.656 Вы знаете. Осталось только определиться с фазой кадра. Её можно получить из полей PTS и DTS PES пакетов видео.
Go to the top of the page
 
+Quote Post
FLTI
сообщение May 18 2016, 13:06
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 399
Регистрация: 8-06-05
Пользователь №: 5 832



Благодарю за разъяснения, буду разбираться.
Цитата(zxcv @ May 18 2016, 14:43) *
27 МГц Вы восстановите из PCR.

Забыл в самом начале сказать, что имеется DVB-ASI в виде десериализированного 8-битного потока + его несущая частота 27МГц.
Правильно ли я понимаю, что в этом случае 27 МГц из PCR восстанавливать не надо?
Цитата(zxcv @ May 18 2016, 14:43) *
Если Вам нужны только H, V и F, то декодировать видео нет необходимости.
Структуру полей видеопотока H, V и F внутри ITU-R BT.656 Вы знаете. Осталось только определиться с фазой кадра. Её можно получить из полей PTS и DTS PES пакетов видео.

Не понял, в каком смысле я знаю структуру полей видеопотока H, V и F внутри ITU-R BT.656?
Да, я знаю, какой должна быть структура полей видеопотока H, V и F согласно стандарту ITU-R BT.656, но как её всё-таки вытащить из транспортного потока MPEG-2 TS без декодирования видео?
Go to the top of the page
 
+Quote Post
zxcv
сообщение May 18 2016, 17:47
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 69
Регистрация: 10-01-10
Пользователь №: 54 704



Цитата(FLTI @ May 18 2016, 16:06) *
Забыл в самом начале сказать, что имеется DVB-ASI в виде десериализированного 8-битного потока + его несущая частота 27МГц.
Правильно ли я понимаю, что в этом случае 27 МГц из PCR восстанавливать не надо?

27 МГц DVB-ASI и системная частота 27 МГЦ восстановленная из PCR не равны между собой.
27 МГц восстановленные из PCR совпадают по частоте с частотой 27 МГц видеосигнала ITU-R BT.656 поданного на вход видеокодера данной программы. Что позволяет при после декодирования получить ту же частоту строк и кадров, что на передающей стороне и избежать пропуска / повторения кадров.
Кроме того, в DVB-ASI может передаваться несколько видеопрограмм, и их системные частоты 27 МГц восстановленные из их полей PCR не будут равны.
В пункте 2.4.2.1 System clock frequency стандарта ISO/IEC 13818-1 написано, что системная частота должна быть в допуске ±30ppm:
The value of the system clock frequency is measured in Hz and shall meet the following constraints:
27 000 000 − 810 ≤ system_clock_frequency ≤ 27 000 000 + 810

Представьте что одна программа видео была у Вас с частотой 27 МГц + 810 Гц, а вторая с частотой 27 МГц - 810 Гц, что не противоречит стандарту ISO/IEC 13818-1.
Цитата(FLTI @ May 18 2016, 16:06) *
Не понял, в каком смысле я знаю структуру полей видеопотока H, V и F внутри ITU-R BT.656?
Да, я знаю, какой должна быть структура полей видеопотока H, V и F согласно стандарту ITU-R BT.656, но как её всё-таки вытащить из транспортного потока MPEG-2 TS без декодирования видео?

Ну как же? Вы восстановили 27 МГц из поля PCR в точности равными 27 МГц на стороне кодера. Вы знаете что видео у Вас допустим PAL (формат видео передается в дескрипторах таблицы PMT программы) значит мы имеем 625 строк по 864*2 пикселя с частотой 25 кадров в секунду.
В стандарте ITU-R BT.656 написано в какой момент в строке сигнал строчной синхронизации H принимает значение 0, а в какой 1 (SAV / EAV). А также какой строке меняются сигналы кадровой синхронизации V и сигнал синхронизации полей F.
Если начать считать пиксели, строки и поля в произвольный момент времени, то максимум на что мы ошибёмся это ±0,5 кадра по сравнению с передающей стороной. И эта ошибка не будет меняться, т.к. частоты 27 МГц на передаче и приёме у нас равны.
Go to the top of the page
 
+Quote Post
FLTI
сообщение May 18 2016, 20:01
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 399
Регистрация: 8-06-05
Пользователь №: 5 832



Соответствуют ли стандарту ITU-R BT.656 видеокадры, полученные после декодирования из MPEG2 транспортного потока MPEG-2 TS?
Go to the top of the page
 
+Quote Post
zxcv
сообщение May 18 2016, 20:18
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 69
Регистрация: 10-01-10
Пользователь №: 54 704



Да, если на входе кодера было видео в соответствии с ITU-R BT.656 и если кодер и декодер в соответствии с ISO/IEC 13818-1 и ISO/IEC 13818-2.
Go to the top of the page
 
+Quote Post
FLTI
сообщение May 18 2016, 21:11
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 399
Регистрация: 8-06-05
Пользователь №: 5 832



А HD-потоки ( судя по всему в MPEG-4 ) также могут передаваться через DVB-ASI ?
Если да, то на какой тактовой частоте и какой стандарт описывает передачу HD через DVB-ASI?
Go to the top of the page
 
+Quote Post
zxcv
сообщение May 21 2016, 08:32
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 69
Регистрация: 10-01-10
Пользователь №: 54 704



Цитата
А HD-потоки ( судя по всему в MPEG-4 ) также могут передаваться через DVB-ASI ?
Могут.

Цитата
Если да, то на какой тактовой частоте и какой стандарт описывает передачу HD через DVB-ASI?
Всё тот же, ISO/IEC 13818-1.

Во всех стандартах MPEG-2 и производных от них стандартах DVB для синхронизации частот приёмной стороны с передающей используются метки времени передаваемые в поле PCR программы. Т.е. все частоты для одной программы (для звука, изображения, синхронных данных) на приёмной стороне получаются при помощи микросхем ФАПЧ (PLL) из восстановленной по меткам PCR частоты 27 МГц.

Для HD изображений для этих целей применяются микросхемы PLL наподобие MK2716 и её более навороченного собрата 664-03.

Для получения частот для звуковых ЦАП - MK2705.
Go to the top of the page
 
+Quote Post
FLTI
сообщение May 21 2016, 13:15
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 399
Регистрация: 8-06-05
Пользователь №: 5 832



Цитата(zxcv @ May 21 2016, 11:32) *
Во всех стандартах MPEG-2 и производных от них стандартах DVB для синхронизации частот приёмной стороны с передающей используются метки времени передаваемые в поле PCR программы. Т.е. все частоты для одной программы (для звука, изображения, синхронных данных) на приёмной стороне получаются при помощи микросхем ФАПЧ (PLL) из восстановленной по меткам PCR частоты 27 МГц.

Ответы на многие вопросы нашёл здесь: http://www.telesputnik.ru/archive/144/article/112.html

А как практически по меткам PCR восстановить частоту 27 МГц?
Может для этого есть готовый модуль на VHDL, чтобы в ПЛИС разместить?

P.S.
Может для моей задачи это и не потребуется?
Вот что мне надо: транспортный поток MPEG-2 TS ( 8 бит + 27МГц ) заводится в ПК, там программно декодируется до ITU-R BT.656, некоторая информация в нём заменяется и далее обратно из ITU-R BT.656 кодируется в MPEG-2 TS и выводится из ПК.
Нужно ли в такой схеме восстанавливать 27 МГц по меткам PCR или можно работать с той частотой 27МГц, которая идёт как несущая для входного транспортного потока MPEG-2 TS ( 8 бит + 27МГц )?
Go to the top of the page
 
+Quote Post
zxcv
сообщение May 21 2016, 14:14
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 69
Регистрация: 10-01-10
Пользователь №: 54 704



Цитата(FLTI @ May 21 2016, 16:15) *
А как практически по меткам PCR восстановить частоту 27 МГц?
Может для этого есть готовый модуль на VHDL, чтобы в ПЛИС разместить?
Про восстановление частоты из меток PCR написано в ISO/IEC 13818-1 D.0.3 System Time Clock recovery in the decoder.
Готового VHDL модуля не встречал. Писали сами. Там всё просто: вычитатель, ПИД фильтр, сигма-дельта ЦАП на одном выводе ПЛИС, ФНЧ и ГУН на 27 МГц.

Цитата(FLTI @ May 21 2016, 16:15) *
Может для моей задачи это и не потребуется?
Вот что мне надо: транспортный поток MPEG-2 TS ( 8 бит + 27МГц ) заводится в ПК, там программно декодируется до ITU-R BT.656, некоторая информация в нём заменяется и далее обратно из ITU-R BT.656 кодируется в MPEG-2 TS и выводится из ПК.
Нужно ли в такой схеме восстанавливать 27 МГц по меткам PCR или можно работать с той частотой 27МГц, которая идёт как несущая для входного транспортного потока MPEG-2 TS ( 8 бит + 27МГц )?
Может восстанавливать 27 МГц и не потребуется, но по другой причине, чем указано у Вас.
27 МГц DVB-ASI, как я уже писал, никак не связана с частотой видео. Это просто скорость передачи слов по асинхронному интерфейсу. А нас интересуют 27 МГц связанные с видео.

Что Вам надо - это правильно сформировать метки времени PCR в выходном потоке, чтобы декодер, установленный далее, правильно восстановил частоту 27 МГц.

Проще всего это сделать не изменяя скорости выходного транспортного потока по отношению ко входному. Просто копируя поля PCR из входного потока в выходной. (Можно вместо копирования добавлять/вычитать константу к значениям входных полей PCR.)
Также просто копировать значения полей PCR из входного ТП в выходной можно при кратном увеличении скорости выходного ТП.
В общем виде это следует из формулы 2-4 ISO/IEC 13818-1, связывающей скорость ТП с временем прихода полей PCR, системной частотой 27 МГц и расстоянием в байтах между полями PCR.

При не кратном входному изменении скорости выходного ТП значения полей PCR придётся пересчитывать (как и при изменении расстояния в байтах между соседними полями PCR).
Go to the top of the page
 
+Quote Post
FLTI
сообщение May 21 2016, 14:29
Сообщение #12


Местный
***

Группа: Свой
Сообщений: 399
Регистрация: 8-06-05
Пользователь №: 5 832



Цитата(zxcv @ May 21 2016, 17:14) *
Проще всего это сделать не изменяя скорости выходного транспортного потока по отношению ко входному. Просто копируя поля PCR из входного потока в выходной. (Можно вместо копирования добавлять/вычитать константу к значениям входных полей PCR.)
Также просто копировать значения полей PCR из входного ТП в выходной можно при кратном увеличении скорости выходного ТП.
В общем виде это следует из формулы 2-4 ISO/IEC 13818-1, связывающей скорость ТП с временем прихода полей PCR, системной частотой 27 МГц и расстоянием в байтах между полями PCR.

При не кратном входному изменении скорости выходного ТП значения полей PCR придётся пересчитывать (как и при изменении расстояния в байтах между соседними полями PCR).

Я и не планировал менять скорость выходного транспортного потока по отношению ко входному.

Я не планировал трогать все служебные поля входного транспортного потока MPEG-2 TS при его прохождении через ПК.
Так действительно можно поступить для данной задачи и тогда тактовая частота 27МГц от входного транспортного потока MPEG-2 TS фактически и будет тактовой частотой 27МГц для выходного транспортного потока MPEG-2 TS?
Или какие-то служебные поля всё-таки придётся пересчитывать из-за того что при прохождении через ПК будут изменено содержание аудио-видеокадров?
Go to the top of the page
 
+Quote Post
zxcv
сообщение May 21 2016, 16:09
Сообщение #13


Участник
*

Группа: Участник
Сообщений: 69
Регистрация: 10-01-10
Пользователь №: 54 704



Цитата(FLTI @ May 21 2016, 17:29) *
Так действительно можно поступить для данной задачи и тогда тактовая частота 27МГц от входного транспортного потока MPEG-2 TS фактически и будет тактовой частотой 27МГц для выходного транспортного потока MPEG-2 TS?
Ещё раз повторюсь. Величина тактовой частоты 27 МГц ТП (как Вы её называете) не имеет никакого значения. Она может быть любой (в пределах ±100 ppm). На функционировании системы это не скажется, т.к. DVB-ASI асинхронный (по отношению к скорости ТП) интерфейс. И эта частота - просто частота переносчика. Важно лишь не изменять скорость транспортного потока (количество полезных байт, не K28.5, в секунду).

Цитата(FLTI @ May 21 2016, 17:29) *
Я не планировал трогать все служебные поля входного транспортного потока MPEG-2 TS при его прохождении через ПК.
Или какие-то служебные поля всё-таки придётся пересчитывать из-за того что при прохождении через ПК будут изменено содержание аудио-видеокадров?
Навскидку, мне кажется, придется менять поля PTS и DTS в PES пакете видео, чтобы они соответствовали передаваемому в текущий момент значению поля PCR. Иначе произойдёт переполнение буферов T-STD. Или, что равнозначно, увеличивать на время декодирования - кодирования значения полей PCR.

И, конечно, если Вы измените PID-ы, название программы, формат видео или что-нибудь ещё, то придётся изменить соответствующие поля в соответствующих таблицах системной информации.
Go to the top of the page
 
+Quote Post
FLTI
сообщение May 22 2016, 05:25
Сообщение #14


Местный
***

Группа: Свой
Сообщений: 399
Регистрация: 8-06-05
Пользователь №: 5 832



Цитата(zxcv @ May 21 2016, 19:09) *
Навскидку, мне кажется, придется менять поля PTS и DTS в PES пакете видео, чтобы они соответствовали передаваемому в текущий момент значению поля PCR. Иначе произойдёт переполнение буферов T-STD. Или, что равнозначно, увеличивать на время декодирования - кодирования значения полей PCR.

Получается что менять содержание полей PTS и DTS в PES или PCR придётся не из-за изменения содержания аудио-видеокадров, а из-за транспортной задержки, возникающей при декодировании - кодировании ?
Go to the top of the page
 
+Quote Post
zxcv
сообщение May 22 2016, 17:22
Сообщение #15


Участник
*

Группа: Участник
Сообщений: 69
Регистрация: 10-01-10
Пользователь №: 54 704



Да, это так.

В стандартах MPEG-2 и DVB механизм синхронизации звука, видео и данных для программы на приёмной стороне основан на использовании полей PTS и DTS.
Алгоритм работы декодера примерно таков. Восстанавливается системная частота 27 МГц по меткам PCR. От неё запускается счётчик системной частоты с начальным значением из метки PCR. Далее декодер разбирает транспортный поток до уровня PES пакетов, находит поле PTS запоминает его и начинает записывать payload PES пакета в буфер. Когда счётчик системной частоты досчитает до запомненного значения PTS, разрешается чтение из буфера с payload-ом PES пакетов. И так со всеми потоками программы.
При этом, если значение PTS слишком велико, по сравнению с проходящими в ТП значениями PCR, то ждать придётся долго и буфер переполнится. А если разница между PTS и PCR недостаточна, то данные начнут читаться слишком рано и декодеру элементарного потока их не хватит для декодирования кадра видео или пакета звука и он будет сбоить.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd November 2017 - 23:58
Рейтинг@Mail.ru


Страница сгенерированна за 0.0135 секунд с 7
ELECTRONIX ©2004-2016