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

 
 
> MJPEG на ПЛИС, Прошу пнуть меня в нужном направлении.
BSACPLD
сообщение Mar 14 2015, 09:47
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 371
Регистрация: 24-07-05
Из: Москва
Пользователь №: 7 056



Всем привет!

Недавно у меня появилась задача реализовать MJPEG на ПЛИС.
Поскольку раньше видеообработкой я не занимался, возникло множество вопросов.
Так что прошу пнуть меня в нужном направлении. sm.gif
1) Есть ли нормальные проверенные IP Core для MJPEG?
Можно даже коммерческие, если их можно "скачать" или если у них адекватная цена (< 5000$).
2) Правильно ли я понимаю, что MJPEG это просто поток JPEG картинок передаваемый по Ethernet?
Стало быть, для начала нужно реализовать JPEG декодер.
Поиском нашёл тут вот такой декодер:
http://electronix.ru/forum/index.php?showt...119&hl=JPEG
Кто-нибудь его использовал?
3) Где можно почитать более менее внятное описание, что из себя этот MJPEG представляет?
4) Как правильно отлаживать подобные алгоритмы?
Пока решил делать вот таким образом:
1. Bitmap File -> Ethernet -> DDR2 -> HDMI
Проверяем, что несжатое видео выводится нормально.
2. JPEG File -> Ethernet -> JPEG Decoder -> DDR2 -> HDMI
Проверяем правильность работы декодера.
3. MJPEG -> Ethernet -> JPEG picture -> JPEG Decoder -> DDR2 -> HDMI
Проверяем правильность работы MJPEG.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
x736C
сообщение Mar 14 2015, 12:43
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1 273
Регистрация: 3-03-06
Пользователь №: 14 942



Цитата(BSACPLD @ Mar 14 2015, 12:47) *
1) Есть ли нормальные проверенные IP Core для MJPEG?
Скорее всего видели: http://opencores.org/project,mjpeg-decoder

Цитата(BSACPLD @ Mar 14 2015, 12:47) *
2) Правильно ли я понимаю, что MJPEG это просто поток JPEG картинок передаваемый по Ethernet?
Стало быть, для начала нужно реализовать JPEG декодер.
MJPEG — последовательность JPEG кадров, снабженная заголовком со служебной информацией. Где каждый кадр JPEG начинается с идентификатора потока и длинны кадра. Это если очень кратко и упрощенно. Смена битрейта, конечно, возможна.
Рекомендую программу riffpad
Скачайте пару роликов, например, отсюда https://archive.org/details/SecretGardenParty
И посмотрите их структуру с помощью riffpad.
По своему опыту, будет намного нагляднее, чем брать для понимания структуру из документации (см. далее).

Цитата(BSACPLD @ Mar 14 2015, 12:47) *
3) Где можно почитать более менее внятное описание, что из себя этот MJPEG представляет?
Google search:
QuickTime File Format Specification
QuickTime-JPEGSpec
OpenDML AVI File Format Extensions
Development and Implementation of an MotionJPEG Capable JPEG Decoder in Hardware

Цитата(BSACPLD @ Mar 14 2015, 12:47) *
4) Как правильно отлаживать подобные алгоритмы?
Пока решил делать вот таким образом:
Думается, порочная практика.
Я бы делал так:
Отработать структуру на матлаб-модели, используя готовый jpeg-декодер.
Потом написать декодер с обвязкой (testbench) для преобразования avi-mjpeg — raw (bmp).
Только после этого переходить к железу.
Это если идти по пути создания своего декодера, допустим, с привлечением готового jpeg-декодера.
Собственно, я так и делал, только кодер, а не декодер.
Go to the top of the page
 
+Quote Post
BSACPLD
сообщение Mar 14 2015, 13:15
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 371
Регистрация: 24-07-05
Из: Москва
Пользователь №: 7 056



Цитата(x736C @ Mar 14 2015, 16:43) *
Скорее всего видели: http://opencores.org/project,mjpeg-decoder

Видел.
Смутило то что это Beta версия.
К тому же хотелось бы на verilog.
Цитата(x736C @ Mar 14 2015, 16:43) *
QuickTime File Format Specification
QuickTime-JPEGSpec
OpenDML AVI File Format Extensions
Development and Implementation of an MotionJPEG Capable JPEG Decoder in Hardware

Спасибо. Посмотрю.
Цитата(x736C @ Mar 14 2015, 16:43) *
Думается, порочная практика.
Я бы делал так:
Отработать структуру на матлаб-модели, используя готовый jpeg-декодер.
Потом написать декодер с обвязкой (testbench) для преобразования avi-mjpeg — raw (bmp).
Только после этого переходить к железу.

Ну testbench никто не отменял sm.gif
Я имел ввиду общий подход.
Цитата(x736C @ Mar 14 2015, 16:43) *
Это если идти по пути создания своего декодера, допустим, с привлечением готового jpeg-декодера.
Собственно, я так и делал, только кодер, а не декодер.

Насколько я понимаю декодер отличается от кодера тем, что преобразования делаются в обратном порядке.
В связи с этим ещё один вопрос. Можно ли взять за основу код кодера и попытаться сделать все в обратном порядке?
Go to the top of the page
 
+Quote Post
x736C
сообщение Mar 14 2015, 13:31
Сообщение #4


Профессионал
*****

Группа: Участник
Сообщений: 1 273
Регистрация: 3-03-06
Пользователь №: 14 942



Цитата(BSACPLD @ Mar 14 2015, 16:15) *
Насколько я понимаю декодер отличается от кодера тем, что преобразования делаются в обратном порядке.
В связи с этим ещё один вопрос. Можно ли взять за основу код кодера и попытаться сделать все в обратном порядке?

Странный вопрос. Да, декодер делает то же, что и кодер, только в обратном порядке.
Насколько можно взять за основу кодер.. Думаю, нельзя. Операции подобные, но обратные.
Кое-какие операции будут очень похожи, типа восстановления haffman-дерева по таблице.
Понимание того, как работает кодер, дает понимание, как работает декодер. Но не всегда наоборот.

Еще важно, насколько ваш декодер должен быть универсальным. Должен ли понимать DRI, таблицы Хаффмана стандартные или оптимальные и т.д.
Должен ли уметь перестраиваться на лету, или параметры сжатия определяются на этапе компиляции. Нюансов достаточно.

P.S. Это все актуально, если речь о самописном декодере. Если jpeg-декодер сторонний и удобный в настройке и параметризации, то всё очень просто.

Сообщение отредактировал x736C - Mar 14 2015, 13:36
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- BSACPLD   MJPEG на ПЛИС   Mar 14 2015, 09:47
- - _4afc_   Цитата(BSACPLD @ Mar 14 2015, 12:47) 2) П...   Mar 14 2015, 11:03
|- - BSACPLD   Цитата(_4afc_ @ Mar 14 2015, 15:03) Почем...   Mar 14 2015, 12:24
|- - iosifk   Цитата(BSACPLD @ Mar 14 2015, 15:24) Забы...   Mar 14 2015, 12:29
|- - BSACPLD   Цитата(iosifk @ Mar 14 2015, 16:29) я не ...   Mar 14 2015, 12:40
- - iosifk   Цитата(BSACPLD @ Mar 14 2015, 12:47) Можн...   Mar 14 2015, 11:42
- - yes   порекомендую compression.ru когда-то давно мне эт...   Mar 16 2015, 12:54
- - x736C   На очень сильных коэффициентах сжатия оптимальный ...   Mar 16 2015, 13:46
- - AlexKit   А почему Mjpeg? им давно никто не пользуется, луч...   Mar 17 2015, 17:56
|- - BSACPLD   Цитата(AlexKit @ Mar 17 2015, 21:56) А по...   Mar 17 2015, 19:15
||- - AlexKit   Цитата(BSACPLD @ Mar 17 2015, 22:15) Пото...   Mar 18 2015, 11:42
||- - BSACPLD   Цитата(AlexKit @ Mar 18 2015, 15:42) я се...   Mar 18 2015, 12:20
||- - AlexKit   Цитата(BSACPLD @ Mar 18 2015, 15:20) Гото...   Mar 18 2015, 14:56
||- - BSACPLD   Цитата(AlexKit @ Mar 18 2015, 18:56) Т.е....   Mar 18 2015, 15:43
||- - AlexKit   Цитата(BSACPLD @ Mar 18 2015, 18:43) Не с...   Mar 18 2015, 16:25
||- - BSACPLD   Цитата(AlexKit @ Mar 18 2015, 20:25) а за...   Mar 18 2015, 18:22
||- - AlexKit   Цитата(BSACPLD @ Mar 18 2015, 21:22) Нель...   Mar 18 2015, 18:48
||- - BSACPLD   Цитата(AlexKit @ Mar 18 2015, 22:48) есть...   Mar 18 2015, 19:03
||- - AlexKit   Цитата(BSACPLD @ Mar 18 2015, 22:03) Ну я...   Mar 18 2015, 19:17
|- - x736C   Цитата(AlexKit @ Mar 17 2015, 20:56) А по...   Mar 18 2015, 08:26
- - BSACPLD   В общем удалось мне запустить jpeg декодер о котор...   Apr 7 2015, 10:19
- - x736C   Хоть поздно, но отвечу. Цитата(BSACPLD @ Apr...   May 10 2015, 13:25


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

 


RSS Текстовая версия Сейчас: 31st July 2025 - 19:27
Рейтинг@Mail.ru


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