Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Улучшение аппаратного алгоритма 4x4 luma prediction
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Kopart
Вопрос к тем кто реализовывал данный алгоритм. Кто как оптимизировал реализацию в ПЛИС этого алгоритма по критерию занимаемых ресурсов (LUT4).

Подскажите есть ли в интернет что почитать в плане оптимальной (Hardware) структуры в ПЛИС алгоритма 4x4 Intra prediction. Или может кто подскажет по своему опыту "куда смотреть".

*Задача возникла потому, что появилось предположение, что можно реализовать с более оптимальной по ресурсам структуре этот алгоритм.
В существующей реализации DC prediction mode - обрабатывается отдельно от остальных восьми режимов.
Соответсвенно предполагаю, что эти оставшиеся 8 режимов имеют "общие вычисления", которые и можно оптимизировать в двух тактном конвейере.

Подскажите (или направьте где почитать) в плане оптимальной (по ресурсам) реализации для оставшихся 8 режимов 4х4 prediction.
des00
Цитата(NiOS @ Feb 14 2008, 08:11) *
Вопрос к тем кто реализовывал данный алгоритм. Кто как оптимизировал реализацию в ПЛИС этого алгоритма по критерию занимаемых ресурсов (LUT4).

Подскажите есть ли в интернет что почитать в плане оптимальной (Hardware) структуры в ПЛИС алгоритма 4x4 Intra prediction. Или может кто подскажет по своему опыту "куда смотреть".

*Задача возникла потому, что появилось предположение, что можно реализовать с более оптимальной по ресурсам структуре этот алгоритм.
В существующей реализации DC prediction mode - обрабатывается отдельно от остальных восьми режимов.
Соответсвенно предполагаю, что эти оставшиеся 8 режимов имеют "общие вычисления", которые и можно оптимизировать в двух тактном конвейере.

Подскажите (или направьте где почитать) в плане оптимальной (по ресурсам) реализации для оставшихся 8 режимов 4х4 prediction.


ух ты. кто-то еще не бросил бессмысленную затею сделать нормальный h.264 и его клонов на фпга %)

Раскажите каких успехов добились ? smile.gif HD 1080 CABAC, IPBBB, MBAFF работает в реалтайме ?

По сабжу задача некорректно поставлена. 4x4 интра имеет 9 мод, которые определяются доступностью соседей и если соседи доступны их можно (предикторы) считать одновременно. Последовательный расчет предикторов затруднен, ибо там математика слишком разная (например поворот на 22 градуса (если правильно помню)).

Потом еще нужно посчитать разностные блочки и только затем SAD. вот это можно законвееризировать.

А самая большая Ж... для предсказания берутся востановленые соседи. Т.е. те что прошли Compensation -> DCT->Quant -> DeQuant -> IDCT -> DeCompensation.

Естественный способ ускорения алгоритма - диагональный проход по блочкам.

Вот такие наброски.


ЗЫ. Раскажите каких успехов то добились ? smile.gif

ЗЗЫ. А зачем вы реализуете геморойные моды на интра ? , куда уж лучше затащить партицирование на интер. это даст больше толку. Или у вас I frame only и CIF ? тогда смысла ФПГА ставить никакого.
Kopart
Цитата(des00 @ Feb 14 2008, 17:42) *
4x4 интра имеет 9 мод, которые определяются доступностью соседей и если соседи доступны их можно (предикторы) считать одновременно.

Видеокодинг для меня это новое - поэтому привести сравнительные результаты пока не могу.

Пока у меня стоит вполне определенная хардверно-оптимизаторская задача:
Её я и процитировал в Вашем ответе. Те нужно считать "одновременно". Но пока постановка, что считать надо только 8 мод (без DC) и есть конвеер на два стейджа для данных + еще один предварительный стейдж на подготовку mux'ров для текущей моды.

Те частная задача реализации 8 мод придикции (с оптимизацие по ресурсам) для 2 тактного конвейера.

Вот и спрашиваю - может кто реализовывал такое...
des00
Цитата(NiOS @ Feb 14 2008, 10:14) *
Видеокодинг для меня это новое - поэтому привести сравнительные результаты пока не могу.

Пока у меня стоит вполне определенная хардверно-оптимизаторская задача:
Её я и процитировал в Вашем ответе. Те нужно считать "одновременно". Но пока постановка, что считать надо только 8 мод (без DC) и есть конвеер на два стейджа для данных + еще один предварительный стейдж на подготовку mux'ров для текущей моды.

Те частная задача реализации 8 мод придикции (с оптимизацие по ресурсам) для 2 тактного конвейера.

Вот и спрашиваю - может кто реализовывал такое...


Все сильно похоже на "план путина" по реализации российского асика для h.264 видео %)

Когда я этим увлекался то моды 4х4 я не делал, т.к. при большом усложнении логики они дают маленький выигрыш по качеству, особенно на больших разрешениях.
Да и основной выигрыш дает подавление временной избыточности а не пространственной.

Что по сабжу. Мне не понятно следующее что вы понимаете под расчетом предикции ? Только расчет блока 4х4 - предиктора ? или расчет предиктора, разностного блока и SAD?

Предикторы можно расчитать сразу целиком блок 4х4, а можно и построчно 4х1.

Все это потом будет сильно завязано на схему SADов. ведь 1 SAD 16х1 по ресурсу это 4 SAD 4x1.

И в некоторых реализациях можно перебрать моды быстрее и с меньшим ресурсом, если поставить 4 SAD и 4 блока расчета предикторов + это может занять меньший объем, за счет упрощения логики расчета предикторов и принятия решений (с учетом латентности ест-но)

А если учесть что после выбора моды предсказания вы будете ждать пока пройдет полный цикл трансформа, то и тут можно, усложнив логику управления, предварительно расчитать часть доступных предикторов. Хотя лучше перейти к диагональному сканированию блоков в макроблоке.

В сети есть материалы (где то у меня были в запасниках, но надо искать) по оптимальной реализации IntraPrediction 4x4. Но в них была описана реализация алгоритма целиком. А не отдельного модуля.

Т.к. в случае интра предсказания 4х4 все сильно завязано на алгоритма перебора мод, выбора оптимальной моды с учетом веса битиков моды в потоке, перебора всех 16 ти блоков 4х4 и сравнение итогового результата Intra4x4 по макроблоку с результатами мод Intra 16x16, Inter16x16/16x8/8x16/8x8/8x4/4x8/4x4.

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


Вообще там много вариантов реализации. Если интересно более подробно то давайте через аську(пишите в личку) или канал #ru_embedded

http://www.microchip.ru/phorum/read.php?f=...947&t=87947


Желаю Удачи в этом сильно не легком деле!!!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.