Видеокодеры с открытым исходным кодом для встроенной системы - PullRequest
3 голосов
/ 31 мая 2011

Недавно я разработал видеосервер, совместимый с H.323 / SIP (по крайней мере в коде), полностью оснащенный API на основе сокетов, который будет использовать .NET SDK, ивеб-сервер, вы знаете ... все это.Во всяком случае, я решил использовать OPAL для своего стека вызовов и свободно основывал свою архитектуру на дизайне EKIGA.Я даже угнал последовательные порты для цифровых I / O с двумя выходами и тремя входами.

Все отлично работает на моем ПК с Linux.Я создал свой собственный дистрибутив Linux специально для новых плат с процессорами Intel Atom с 2 ГБ RAM .Эта проблема?Процессоры Atom не могут справиться с нагрузкой кодеров.Максимальная частота кадров, которую я когда-либо получаю, составляет около 7 кадров в секунду на NTSC .Это происходит независимо от битрейта.Я знаю, что у меня нет утечек памяти, однако нагрузка CPU возрастает примерно до 130% между двумя ядрами, так что на самом деле около 66%.Я действительно не хочу менять стеки, но я не знаю, что мне нужно делать.Существуют ли более легкие кодеры, которые я могу преобразовать в плагины PWLIB?

Проблема возникает независимо от видеокодера, H.261 , theora, H.263 + ,и т.д. ... Каким должен быть мой следующий план атаки?

Обновление:

ОК, поэтому я думаю, что следующим моим шагом будет поиск очень низкого профиля PCIe GPU , который OpenGL совместим;он должен лежать параллельно материнской плате.Как я могу это сделать?Кроме того, я лаю не на том дереве?Я всего лишь программист, поэтому прошу прощения за мое невежество.

Дополнительный вопрос:

Предполагается, что я получу еще одну плату с графическим процессором.Как мне убедиться, что кодирование выполняется на GPU, а не на CPU?Управляется ли это ОС и драйвером?Нужно ли писать специальный код для этого?Кроме того, мне кажется, что основная функция графического процессора заключается в рендеринге и выводе, он также управляет реальными преобразованиями и кодированием?Хорошая книжная рекомендация была бы хороша.

Дополнительная информация :

Теперь я подозреваю, что проблема не в GPU.Я думаю, что это может быть связано с временным пространственным компромиссом.Я установил вспышку на свой разогнанный i7 950 и у меня точно такая же проблема.Я обнаружил, что частота кадров падает при движении, но если нет движения, я могу сохранить высокую частоту кадров.Я также говорил с одним из архитекторов OPAL VoIP, и они также сомневаются, что проблема в GPU.В чем еще может быть проблема?

Ответы [ 2 ]

2 голосов
/ 31 мая 2011

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

1 голос
/ 31 мая 2011

Это время для микропитимизации: время внимательно посмотреть на свои внутренние петли.

Вам необходимо выяснить, какие внутренние петли имеют значение, а затем внимательно посмотреть, как вы можете добиться максимальной производительности. Вы также можете проверить работоспособность: действительно ли машина может делать то, что вы хотите? Например. если вам нужно сделать n операций с несколькими накоплениями и у вас n / 3 циклов, есть основная проблема, и вам нужно сделать что-то еще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...