Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Аппаратные кодеки
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
alexnsk
Добрый день,
Подскажите существуют ли цифровые аппаратные кодеки, выполненные в виде интегральных микросхем? Задача сжимать HD видео-поток с камеры или с нескольких камер и записывать его на внешний жесткий диск через микроконтроллер. Программными средствами обрабатывать такой поток/потоки кажется нереально. Если кто-нибудь ставил перед собой такую задачу или хотя бы пытался ее реализовать, поделитесь опытом, какими средствами это реализуется и какие затраты на это потребуются.
aaarrr
Цитата(alexnsk @ Nov 6 2011, 16:44) *
Подскажите существуют ли цифровые аппаратные кодеки, выполненные в виде интегральных микросхем?

Существуют. Но чаще встречаются не в виде микросхем, а в виде аппаратных ускорителей в составе SoC. Посмотрите, например, у Freescale и TI.
Hoodwin
Бывают еще ядра для FPGA. Когда-то я принимал участие в переносе некоторой части алгоритмов на ПЛИС. Вот, кстати, их сайт:
http://www.vsofts.com/products/ipcores-fpga-asic.html
des00
есть же специальный подфорум для таких вопросов и темы про аппаратные кодеки.


ЗЫ. чисто на плис делать замучаетесь %)
Hoodwin
Ну так сделали уже, не замучились sm.gif Правда я сам лично занимался только упаковкой потока в битстрим с помощью CABAC/CAVLC. Решение этой подзадачина ПЛИС где-то в 30-40 раз быстрее DSP C64x от TI при равных тактовых частотах. Но и с учетом преимущества процессора по частоте получалось где-то в 6-8 раз быстрее уже в железе. Так что задача имеет смысл. Практика внедрений показала, что заказчикам порой нужны очень разнообразные фичи от стандарта, от простых до сложных. Охватить это одним чипом ASIC может быть нелегко в смысле эффективности. А в ПЛИС это все конфигурируется на этапе сборки проекта под конкретные требования к качеству, скорости обработки, скорости канала и т.п. В общем как-то так.
des00
Цитата(Hoodwin @ Nov 6 2011, 13:20) *
Ну так сделали уже, не замучились sm.gif Правда я сам лично занимался только упаковкой потока в битстрим с помощью CABAC/CAVLC.

декодер с полной поддержкой в пределах профайла ? без какого либо проца?

З.Ы. тут человек есть, который ищет где купить корку кабака ХДешного, можете продать.
des00
Еще уточнение, 642 техас тянет кодирование дивана 264 го в базовом профайле со структурой гопа IPB с VBR (если мне память не изменяет). Вы жали ХД? или разжимали ХД?
blackfin
Цитата(Hoodwin @ Nov 6 2011, 22:20) *
Решение этой подзадачи на ПЛИС где-то в 30-40 раз быстрее DSP C64x от TI при равных тактовых частотах. Но и с учетом преимущества процессора по частоте получалось где-то в 6-8 раз быстрее уже в железе. Так что задача имеет смысл.

И какова конечная цена этого решения на ПЛИС (и в какую ПЛИС это влезло), если не секрет?
des00
Цитата(blackfin @ Nov 6 2011, 23:29) *
И какова конечная цена этого решения на ПЛИС (и в какую ПЛИС это влезло), если не секрет?

да, это тоже интересно, если учесть появление у техаса чипов с аппратными ускорителями кодерных фич CAVLC/CABAC(?), Deblocking и т.д.
Hoodwin
Да, мы только HD и занимались, по существу, так как для обычного разрешения и так полно всяких процов было. А на HD был спрос именно на профессиональное качество, где потоки получаются весьма большие. Я сам конкретно занимался CABAC кодером вначале, потом возник спрос и на декодер в FPGA.

Если кого интересует по поводу цен, то я выше ссылку приводил на фирму, для которой это все делалось. Там, в общем-то, наши люди работают, разработчики так и вовсе в России сидят sm.gif

По поводу производительности на сегодня лучше тоже у них уточнить. Сразу оговорюсь, что код писался на VHDL и был заточен только на использование стандартных IEEE паектов VHDL, поэтому собирается он под любое семейство ПЛИС. Из-за этого данные приводятся для разных семейств, какие были у конечных заказчиков. На 2007-2008 год были примерно такие данные, более новые данные на другом компьютере, с которым сейчас связи нет.

1. СABAC encoder:
1.1 Сборка для Xilinx Virtex5, xc5vlx30-2ff324 (total: 4800 SLICEs, 64 RAMB18, 32 DSP48E - в кристалле)
FMax: clk=125, outclk=230 Mhz
Resources: 1500 SLICEs, 8 RAMB18, 1 DSP48E (реально занято)
Average output bitrate: 60-70 Mbps (P-frames, I-frames)


2. CABAC decoder
2.1 Altera
32 Kbits BRAM for initial contexts (shared between all instances)
40 KBits BRAM for each CABAC instance
Cyclone2: <5000 LCells, 50 MHz
Stratix2: <5000 LCells, 85 MHz

Производительность примерно 1,5-2 такта на 1 бит входного битстрима, считается, что выход декодера идеальный, не тормозит.




des00
Цитата(Hoodwin @ Nov 7 2011, 02:28) *
Да, мы только HD и занимались

Вот и нужный ответ
Цитата
VSS AVC-I Encoding is intended as a highest quality video storage and archiving format. The 10-bit, I-frames only format allows video professionals to easily edit and re-purpose their premium content any number of times and for any application without loss of fidelity. This technology significantly outperforms the older HDV (MPEG2 based) and DVCPRO HD (DV based) formats, allowing the codec to maintain better quality in half the storage space.

только I фреймы, делается на одном проходе, просто строиться конвейер, не требует буфферизации и т.д. и т.п. Круто конечно, не спорю, но заявлять
Цитата
Ну так сделали уже, не замучились
без поясняющего контекста, я бы поостерегся, не поймут %)
Hoodwin
Это неправильный вывод. Дело в том, что в процессе продвижения разработки у нее на пути появлялись различные заказчики, которые покупали ее и поэтому просили реализовать определенное сочетание параметров кора в первую очередь. Один из заказчиков хотел реализацию с высоким качеством в 10 бит, форматом 444, низкой задержкой кодирования, поэтому возникла ветка AVC-I (но вообще я не в курсе брендовых наименований), которая оптимизирована только на I-фреймы. Но были и другие заказчики, которые хотели максимального качества при минимальном битрейте, которые были готовы и на 422 формат, и на B-фреймы, и на низкое число уровней квантования.

Еще хочу обратить внимание, что AVC Encoder и CABAC Encoder - это не одно и то же. CABAC - это лишь небольшой кусочек всего кодера, который отвечает за упаковку битстрима. Так вот, я делал CABAC, и сделал в нем поддержку всех фич, описанных в base profile и main profile, до full profile не доделал только фичи mbaff, pcm и преобразование 8х8. Или, может, даже pcm потом доделал, сейчас не вспомню, надо код посмотреть. Просто многих заказчиков кодера эти фичи не интересовали. Возможно, те люди, которые потом делали остальные части кодера, не все фичи оттестировали и включили в релиз, но сам по себе CABAC encoder вполне переваривал I, P и B-фреймы. В любом случае, о реальном статусе лучше спросить руководителей проекта, там вполне грамотные люди работают.
des00
Цитата(Hoodwin @ Nov 7 2011, 08:51) *
Это неправильный вывод.

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

Вот например ребята отсюда пишут честно что B фреймы есть, интересно как именно они сдеали мультиреференс B фреймы на 1080p 30 fps и с каким качеством.
Hoodwin
Ок, по линку действительно только AVC-I. По другим возможностям, вероятно, нет 100% ПЛИС-овского решения, есть гибриды DSP + ПЛИС.
des00
Цитата(Hoodwin @ Nov 7 2011, 09:07) *
есть гибриды DSP + ПЛИС.

beer.gif я же говорил
Цитата
ЗЫ. чисто на плис делать замучаетесь %)
cool.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.