Страница 1 из 1

[статья]Перенос нагрузки с CPU на GPU при декодировании

СообщениеДобавлено: Пт май 19, 2006 2:50 pm
VicoNT
На самом деле, этот материал начинал писаться совсем для другого, и в другом ключе... Но времени закончить его в свое время не было, а когда я к нему вернулся, то он стал получаться уже иным. И я было решил совсем забросить его подальше, но (почти случайно :) ) показал его парочке знакомых. Реакция людей заставила задуматься.
Итак, бета-версия статьи об использовании видеокарты для декодирования видеопотока.
Пока не знаю, вырастет ли она во что-то большее, или обрастет парой примеров и останется одностраничной. Но - пока вот такая она есть...
Очень настаиваю на том, чтобы Форумные мэтры прочли ее и высказали свое мнение о материале прежде, чем она пойдет на обсуждение в общий раздел.

СообщениеДобавлено: Пт май 19, 2006 7:07 pm
RBF
VicoNT
А об очепятках сообщать? :)

А ты haali-renderer не пробовал? Видимо он что-то делает лучше, чем WMR9, иначе зачем было его писать?
Вот, например, позволяет буферы регулировать...

СообщениеДобавлено: Сб май 20, 2006 12:44 am
VicoNT
RBF
конечно, как всегда :)
А ты haali-renderer не пробовал?

На AMD64 он периодически уходил в бесконечный цикл... Надо пробовать заново.

СообщениеДобавлено: Сб май 20, 2006 4:20 pm
VicoNT
RBF
Скачал последнюю версию haali-renderer. В нуль-цикл не уходит, но и шейдеры не работают... Кстати, и не должны, похоже

СообщениеДобавлено: Пн май 22, 2006 5:01 am
SCIF
http://mediatory.ru/article31_article_49_1.phtml писал(а):имеющая бесплатная версия x.264 - весьма неплохой вариант

Тогда уже "имеющаяся" или "имеется".

PS. Пипец. Очень просто писать :oops: Мало чего понял. Ладно буду читать и пытаться умнеть. А вообще написано нормально. Придирок не имею, кроме описанной выше.

СообщениеДобавлено: Пн май 22, 2006 8:16 am
VicoNT
SCIF
спасибо за опечатку...
Очень просто писать

Шейдерный язык высокого уровня весьма прост. Могу выложить краткую справку от Майкрософта. Могу и не краткую (учебник Рона Фоснера, на английском), но - в ПМ.
Приводить больше примеров не стал - недоступность предыдущего кадра, к сожалению, очень сильно ограничивает. Как только появится возможность дергать значения из него - напишу темпоральный фильтр, да и продвинутый деблокинг/"дерингинг" (ИМХО, лучше, чем в FFDSHOW/xVid - мощь у GPU, на самом деле, охрененная. Видели бы Вы, как видюха матрицы обращает!) тоже можно будет организовать...

СообщениеДобавлено: Пн май 22, 2006 10:52 am
RBF
VicoNT
Опечатки:
Отнесем к ним сомн кодеков
Для всех вышеперечисленных формат
_____________________________________

К сожалению, пока в MPC нет возможности обращаться к предыдущему кадру
А от разработчика MPC ли это зависит? Есть ли другие проги которые при использовании шейдерных функций при обработки видео могут обращаться к предыдущему кадру?

Постепенно на плечи GPU переложили 4 из 5 стадий декодирования MPEG-1/2 (о возможности выполнения всех пяти стадий - в одной из следующих статей
Еще в драйверах ATI разными ключами в реестре можно включить деблокинг для нескольких форматов и еще несколько функций работы с видео, об этих возможностях тоже расскажешь в следующей статье?

СообщениеДобавлено: Пн май 22, 2006 11:48 am
VicoNT
RBF
А от разработчика MPC ли это зависит? Есть ли другие проги которые при использовании шейдерных функций при обработки видео могут обращаться к предыдущему кадру?

Программных или аппаратных ограничений, как таковых, нет - необходимо завести буфер и транслировать его в память в виде текстуры.
Насчет реализации в самой программе - я общался с Gabestом на эту тему, - оптимизма по поводу появления предыдущего кадра в ближайшей версии плеера не испытываю. Но он, вроде бы, заинтересовался идеей.

Еще в драйверах ATI разными ключами в реестре можно включить деблокинг для нескольких форматов и еще несколько функций работы с видео, об этих возможностях тоже расскажешь в следующей статье?

Скажем так, сейчас дописывается материал по кодированию с помощью AVIVO - если Catalyst 6.5 не принесет ничего сногшибающего в этом плане, то я "релизну" ее и засяду за дописывание материала по ТаймШифту на Авере, и еще обещал выложить свои лекции по MPEG-2 кое-кому :) А еще в планах - наконец-то доделать последнюю версию QSD (с поддержкой GPU или без) и отрелизить. Это о планах.
По ключам: поддерживается деблокинг для DivXPlayer (именно так, а не DivX), RealMedia и WMV, а также MPEG-1/2. Для последних карточек начинают включать h.264. Ключи в реестре (которые существуют) можно видеть в ATT (и по умолчанию они, как правило, включены в драйверах). В ближайшее время появится продвинутая настройка постпроцессинга (скорее всего, только в CCC, но, надеюсь, ATT ею тоже обзаведется).

СообщениеДобавлено: Вт май 23, 2006 11:01 am
RBF
VicoNT
Отнесем к ним сомн кодеков
Для всех вышеперечисленных форматов
Так и не исправлено. Или может я не знаю, что такое сомн?

Скачал последнюю версию haali-renderer. В нуль-цикл не уходит, но и шейдеры не работают... Кстати, и не должны, похоже

У меня тоже не работают. Странно, почему тогда для этого рендерера обязательно наличие в карте PS 2.0, без них он просто ничего не показывает.

СообщениеДобавлено: Вт май 23, 2006 11:12 am
VicoNT
RBF
Бррр... Вчера исправил... У тебя часом не кэшируются страницы? :)
Странно, почему тогда для этого рендерера обязательно наличие в карте PS 2.0

Сейчас проверю на старой карте + похимичу с 3DAnalyze.

СообщениеДобавлено: Вт май 23, 2006 2:28 pm
RBF
VicoNT
В сетке кэшируются, но при обновлении вроде не глючат :). Пробовал разными браузерами и даже специально подключился по модему. Что же теперь я не смогу видеть обновления статьи :cry:

СообщениеДобавлено: Пт май 26, 2006 12:56 pm
VicoNT
RBF
Результаты проверки: Haali renderer действительно нуждается в PS 2.0, т.к. bicubic resize он делает именно с их использованием, в отличие от VMR9, которому достаточно 1.1/1.3 в минимальном варианте и 2.0 - в варианте с текстурированием (как в MPC).
Но HVR в отличие от VMR9 не поддерживает шейдеры HLSL и, похоже, не будет в дальнейшем ...

СообщениеДобавлено: Пт май 26, 2006 6:32 pm
Виталя
Маленькая поправочка. Для этих опытов не годятся карточки GF4200.

СообщениеДобавлено: Пт май 26, 2006 7:07 pm
VicoNT
Виталя
почему? Они же спокойно держат PS 1.3... Что не работает именно?

СообщениеДобавлено: Сб май 27, 2006 2:29 am
Виталя
Обновил директора до апрельской версии, теперь "работает". В кавычках, потому что кроме режима ЧБ и инвертирования цвета не срабатывает ни один скрипт. В т. ч. из статьи. Поэтому, мне кажется надо там (в статье) уточнить, что для нормальной работы нужна не карта с шейдерами, а карта именно со вторыми (или выше) шейдерами.