?

Log in

No account? Create an account
Andrey Yurin journal
 
[Most Recent Entries] [Calendar View] [Friends]

Below are the 20 most recent journal entries recorded in andrey_yurin's LiveJournal:

[ << Previous 20 ]
Tuesday, January 15th, 2019
10:57 pm
Немного копипасты.
Пrастити, паrни. Но я тут упоминал моллескин и не смог удержаться. Залез ажно на сам опер.сру и нашёл там то, что было нужно. Я понимаю, что боян лютейший и вообще фу и контент не уникальный. Но хай эта копипаста тут побудет. Ибо она охуенна, да.

КопипастаCollapse )

Твою же медь, а... А ведь я когда-то даже всё это читал. Тащемта возопим "ЯТЬ", потом крикнем "да пошло всё нахуй", поставим себе неуд в моллескин и отправимся на отбой. Ибо завтра опять кодопись набивать нужно.
10:17 pm
ПЛИСоводство. Эпизод N.
... Память? On_Chip? Да пошла ты нахуй память. Не буду я тебя экономить. У меня есть 308 блоков М10К! Тварь я дрожащая или право имею?...

Вот такая вот мысль проскочила только что. Это я с обеда фильтр Габора прикручиваю в пепяку. Пока только на этапе симуляции в МатЛаб (естественно максимально приближенным к боевым). Короче как вы помните, то пепяка должна перемножать. Много и обильно. И для этой цели предназначены 64 умножителя, работающие параллельно. Но вот беда - им нужно подсовывать данные. И данные можно подсовывать по разному.

Кодописное...Collapse )
8:24 am
Хроники загнивания.
С интересом слушаю новости из моего полубывшего, но родного КБ. Вот ей-ей оно мне стало как настопиздевшая баба от которой вовремя свалил, но с которой "остался друзьями" и иногда к ней захаживаешь на борщ и на пол шишечки.

Так вот КБ. Там сейчас творятся чудеса. Пара эпизодов.

Дирекция решила оплачивать переработки и сверхурочные в двойном размере. Кто там ноет в интернетах о том, что в КБ денег не платят? Платят! И по честному. Казалось бы вот оно! Давайте работать, сеять хлеб и добросовестно трудиться и поступательно прокачиваться в пепякостроении. Ну-ну. Знаете во что это вылилось по факту? А в то, что некоторые робяты стали в будни ходить с 12 до 18, а в выходные с 8 до 22. И в итоге заработали кучу бабла нихуя не делая. Выхлоп и добавочную стоимость можете посчитать сами. Дирекция посмотрела, почесала репу и прикрыла лавку к хуям.

Часть народа решила отпочковаться и запилить своё КБ с блэкджеком и шлюхами. Бизнес план при этом таков, что они просто заберут из текущего КБ всю рабочую документацию и перейдут в более новое. Хитрый, очень хитрвый план. Но нового КБ ещё нет, а в старом (вернее текущем) они уже работать перестали и ходят расщеперивая ебальники по коридорам. Делят должности, купаются в бабосах (пока виртуальных) и много пиздят. Стоит ли говорить, что до пепяк как таковых всем похуй. Все озабочены административными и организационными вопросами.

На этом фоне те немногие парни, которые действительно разработчики (а их оставшихся пересчитать по пальцам одной руки) сказали - насыпайте бабосы. И им таки насыпали. А куда деваться-то? В итоге некоторые отдельные пацаны-ребята имеют в Мухосранске доход 100+ рублей. Нихуёво так-то.

А знаете что, чуваки? А я по прежнему вообще не жалею, что свалил. Ибо вот такой карнавал меня дико смущает. Потому как куда-то в подкорку вбито понимание того, что бабло за просто так можно получать только если ты Лизонька Пескова. Тогда и Родину можно любить. На удалении. И всячески жизнью наслаждаться. Но если ты обычный хуй с района, то тогда Родина любит. Тебя. Извращённо и по разному.

Вообщем если на тебя из зеркала глядит какой-то хуй и упырь смурной, то когда всё идёт как по маслу - вот тогда оно сразу настораживает. Ибо что-то тут не то и значит скоро оно ёбнется. Вот как не крути, а жизнь подсказывает, что не бывает так, что бы на шиномонтажку приехала Ева Грин и отсосала всем там присутствующим. А вот когда пробиваешься через бурелом с ебухами, синяками и больками - вот значит тогда это против тебя естественный отбор работает и значит всё правильно. Ну может и не правильно, но без наебалова. И значит судьба твоей жопы по большей части в твоих руках, а не на воле случая. А поэтому погнал я далее выгребать ошибки из схематика, а ближе к обеду начну фильтр Габора с интерполятором скрещивать. Всем чмоки!
Monday, January 14th, 2019
11:40 pm
И ещё раз фильтр Габора.
А вот, пацаны, фильтр Габора ещё раз.



Вот это - результат моделирования конвейера ПЛИС в Матлаб. Т.е. если раньше я всё считал в уютненьких floating point, то теперь 9-битный хардкор. 9 бит потому, что умножитель аппаратный именно что 9-битный. Больше не нужно, меньше тоже. Видите какой он морщинистый и неровный? Но несмотря на его внешнюю неказистость теперь этот парень принципиально переносится на конвейер вычислителя. Ага. Безо всяких внешних таблиц и прочей ереси. Немного кэша на вычисление тригонометрии, немного вспомогательных действий и понятно как писать кодопись, что бы внутрях получать поток требуемой цифири.

Теперь нужно допилить интерполятор (а он заткнулся как раз из-за фильтра. Потому как во floating point оно понятно как выглядит, а вот целочисленные операции накладывают ряд ограничений. Причём вид интерполятора при использовании внешних таблиц и при использовании внутреннего вычислителя принципиально разный. И пока не решена эта проблема интерполятор мне было не запилить) и можно натравливать его на базу изображений. Скорее всего там всё будет тоже не сильно гладко, но мы поработаем и над этим. Куда он, нахер, денется?
8:05 pm
Ошибка округления.
А вот так, пацаны, выглядит исходная таблица экспонент, которая эталонно посчитана и засунута в on-chip кэш.



Почти как упругие, подтянутые и спортивные сисята. Помацать такие - одно удовольствие... Ммммм....

А вот так оно выглядит после того, как целочисленный конвейер прожевал все данные и выполнил требуемые операции.


Так-то оно, конечно, на 200 МГц работает, но мацать такое уже не хочется. Хорошо, что всё это запаковано внутрь бездушного кристалла, залито компаундом и убрано нахуй с глаз долой.
Sunday, January 13th, 2019
10:35 pm
ПЛИСоводство. Эпизод N.
Продолжаю переносить пепяку на конвейер FPGA. В предыдущем эпизоде я пришёл к тому, что нужно пользовать внешнюю ПЗУ и таблицы. Но в пятницу я поехал штукатурить очередной пролёт стены и ощутил лёгкий дискомфорт. Можно бы было предположить, что каша перловая с мясом кур которую я купил в Пятёрочке что-бы что-то захавать была не очень свежая, но нет. В отсутствие поступлений алкоголя в организм пришлось заменить его кефиром, а через это там расплодилась ебейшая колония крайне полезных пищеварительных бацилл. Поэтому перловка прошла (а потом и вышла) на ура, а дискомфорт был связан с другим. А именно с идеей табличной реализации. Немного подумав я понял в чём дело.

Кодопись...Collapse )
Friday, January 11th, 2019
11:54 am
Перегруженный чердак.
Не, ну вот парни, какого хуя, а. Сидим сейчас в уютненьком КБ. Пиздим и том о сём. Зашёл разговор про мёд и было произнесено слово пасека. И все, блядь, 6 рыл как один моментально вспомнили вот эту вот хуйню:


Ёб медь. Ну вот как так? Я это всего один раз в жизни и видел-то по MTV году так в 98-99 шоле в пидараче "12 злобных зрителей". А подиж ты - куда-то в память загрузилось моментально. Ну вот как так, а? Всякое говно и срань кешируется и высекается в граните (похабный матерный стишок про Адама и Еву с третьего класса средней школы номер 29 я помню по сей день). А вот что-то полезное и нужное - заебёшься зубрить пока запомнишь. Ну как так-то, а?
9:52 am
Художественное.
А чо, парни. Я вот сегодня понял, какие ассоциации у меня вызывают картины Пикассо. Вот, например, такие:



А ассоциация проста, как пять копеек и звучит так: "опять, блядь,адресный указатель памяти распидорасило". Потому как вот такое вот - это вот прям один_в_один изображения с пепяк, когда не отлажен интерфейс передачи в/из памяти и изображение косожопит.

А ну-как всётаки это я не рукожоп, а охуенно творческий чувак?
Thursday, January 10th, 2019
4:15 pm
ПЛИСоводство. Эпизод N.
А вот, парни, задача улучшайзинга. Казалось бы всё просто. Берём исходное поле, оцениваем его параметры (а таких параметров три - угол тета, верхний и нижний полупериоды), а потом делаем фильтрацию согласованным фильтром. Просто же всё. А теперь немного посчитаем.

Вот у меня исходное изображение 1280х960. Параметры оптики выбраны таким образом, что три гребня на пальце попадают в квадрат 64х64 пикселя (это в среднем, само собой. Т.к. у каждого частота гребней на узоре отпечатка разная и в окне 64х64 их может быть чуть больше или чуть меньше. Но учитывая, что я обычный среднестатистический хуй коих миллионы, то 64х64). Почему три? А потому как что бы фильтр Габора дал улучшайзинг (т.е. увеличение соотношения сигнал/шум) ему как раз минимум три гребня и надо.

Ок. Фильтрация у нас это свёртка исходного изображения с частотной характеристикой фильтра. Переводя на кодописный это значит, что для каждого пикселя изображения нужно взять окрестность 64х64, взять АЧХ фильтра (массив цифири 64х64), перемножить одно на другое и сложить. Сдвинуть на пиксель, повторить. Таким образом получается, что при формате изображения 1280 х 960 х 30fps пиксели следуют с частотой 36.9 МГц. Если брать окно формата 64х64, то требуется 4096 умножений. Если умножения проводить последовательно, то получаем частоту работы умножителя 151142 МГц. Бред. Значит что? Значит:

1. Ставим умножители в параллель

Допустим, ставим их в параллель 64 штуки. Получаем рабочу частоту 2361 МГц. Тоже дохуя. А значит что?

2. Режем осетра и урезаемся по разрешению изображения вдвое. Теперь пикселей у нас 640*480*30fps = 9.22 МГц. И вместе с этим урезаем и окно оценки вдвое (т.к. три гребня у нас теперь лезут в окно вдвое меньшее) и получаем 32х32 умножений. И если теперь у нас в параллель работают 64 умножителя, то тактовая частота умножителя составит:

9.22 * (32*32)/64 = 147.6 МГц. О. Теперь ништяк! Влезем (для справки - максимальная частота работы умножителя для программируемой логики что-то порядка 300 МГц).

Казалось бы заебись, да? Но нет. Пичяль в том, что 64 умножителя требуют подгрузки за такт 64 пикселей. А пиксели у нас лежат где? В памяти. Поэтому разрастание количества умножителей приводит к росту пропускной способности канала памяти. Немного прикидываем мозгами (на самом деле дня так три, потому как конвейер можно по разному раскладывать) и получаем, что для формата изображения 640х480 данные нужно подгружать на скорости 273 МБ/с. Норм. ДДР вытащит. Но...

Но это только данные. Т.е. пиксели. А нужно ещё подгружать коэффициенты. Окно согласованного фильтра плавно меняется в пределах кадра. Как быстро? В идеале, конечно, оно уникально для каждого пикселя. Но тогда на каждый пиксель изображения нужно подгружать в конвейер 32х32=1024 байта. 640х480х30х1024=9000 МБ/с. Не успеем. Поэтому нужно и здесь осетра резать. Допустим, что окно у нас постоянно в некоторой малой области 16х16 пикселей. Соответственно получаем скорость подгрузки 527 МБ/с. Уже лучше. Но в поделке стоит всего одна ДДР. Её пропускная способность:

350МГц * 2 (ДДР) * 2(байта) = 1400 МБ/с. Но это нужно умножить где-то на 0.7, ибо данные зело разбросаны по памяти и много времени будет уходить на открытие/закрытие банков. Итого получаем 980 МБ/с.

273 + 527 = 800 МБ/с. Мда. А ещё ведь будут и другие потоки. Поэтому для верности задействуем SRAM. Хотя, конечно, тянул я с этим до последнего.

Почему не хранить ядра фильтра в on-chip? считаем. Ядро 32х32х8бит=8192бит. Память ПЛИС орагнизована блоками М10К по 10 кбит. Итого одно ядро - один блок. А сколько надо блоков? Т.к. функция Габора считается через синус и экспоненту, то высчитывать это в реал-тайм - да ну нахер. Нужно держать всё в ПЗУ. Поэтому считаем все возможные реализации. В параметры фильтра входит три параметра (угол и два полупериода). Варьируя каждый хотя-бы по 32 реализации получаем

32х32х32=32768 блоков. Ну или 32 МБ. Не. Не влезем в on-chip. А ещё и ПЗУ-шки у меня такой нет и придётся подгружаться с компьютера по UART при инициализации.

Кнопка GENERATE HDL в MatLAB, говорите? Ну-ну. Но теперь реальная структура вычислителя понятна. Сегодня-завтра это всё в Матлабе отмодулирую и посмотрю чо да как. И - если чо - пасьянс сошёлся где-то так с 4 или 5 итерации. Да, блджад. Это ПЛИСоводство. По другому тут никак, либо я чего-то не понимаю.
Wednesday, January 9th, 2019
8:35 pm
Ещё раз про бухло.
А вот, пацаны, такая штука, как бухло. Тащемта не знаю кто как, а я пить не умею. Нет у меня стопов на это дело. Это вот в американских фильмах уставший Джон или Брюс приходят домой, начисляют 50 грамм вискаря, кидают туда лёд и расплываются по дивану. А в моей реальности всё не так. По факту часто получается так, что я синячу до тех пор, пока всё не выхлебаю. Но однако вместе с тем иногда я могу и спокойно посидеть, выпить 150 грамм коньячишка и спокойно закончить на этом. И кажется я понял в чём всё дело.

Вообще я по натуре само миролюбие так-то. И если накатил, то для меня все кругом друзья и милейшие люди (ну, вернее, почти все. Те, на кого я уже по жизни повесил ярык "гандон" таковыми и остаются. Но таких всего пара человек). И если ничего не происходит, то всё так спокойно и заканчивается. Но стоит только кому-то возопить "Ять" и добавить "Эгегегей" - всё. Пиздец. Возопили Ять? Где? Кто? Почему без меня? А тут ещё и ЭГЕГЕГЕЙ? А ну ка, ну ка... Что тут у вас происходит? И начинает прорываться наружу удаль молодецкая...

Короче в крайний раз у меня триггер сорвало вот от этой вот композиции:



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

Что со всем этим делать? Да ничего. Просто принудительно перестать употреблять. Вообще. Даже затравку не давать. Ибо в лавинном диоде достаточно всего одно электрона, что бы всё завертелось и унеслось в пробой. А поэтому я уже пару недель вот вообще как не и чётко намерен продержаться так веь 2019 год. А удаль молодецкую направить в кодопись. Благо сегодня, вроде как, с реализацией практической фильтра Габора разобрался и систему досчитал. Завтра в Матлабике просимулирую и если всё ок, то останется совсем немного.
Monday, January 7th, 2019
1:47 pm
Пичалька.
До трёх утра просидел морща лоб над проблемой. Походу осетра таки придётся урезать. Проблема пришла при реализации фильтра Габора в железе. Всётаки окно фильтра 64х64 при решении "в лоб" требует 4096 умножителей. Вот как не крути. Хоть вправо, хоть влево Хоть вкривь, хоть вкось. А 4096 умножителей вынь да положь. И памяти on-chip под хранение результатов надо. Логики-то в запасе хоть ведром черпай, а вот с умножителями напряг.

Искал способ обойти эту проблему каким-нибудь хитрожопым способом - не получается. Думал всё перевести в двумерное БПФ и работать уже там. Так-то да, но нет. Потому как потом один хрен эти же умножители понадобятся, что бы АЧХ фильтра на спектр перемножить. Да ещё и с прямым и обратным преобразованиями нужно запариваться.

Поэтому как я не старался, но лио исходные 1280х960 придётся урезать, либо fps уменьшать, либо и то и то резать. Во сколько раз? Ну пока надеюсь, что всего лишь вдвое. Но это нужно систему просчитывать. А что бы её просчитать нужно знать её реализацию. Вот и получается, что процесс разработки он итерационный как не крути. И с первого раза сделать правильно невозможно даже на бумаге. И что итераций так 5...6 надо сложить, что бы компромисс найти.

Быстрее бы на работу, что ли. Там и офисок поуютнее и компьютер помощнее. Жаль, что только рабочего времени всего 8 часов. Хотелось бы часов так 12. А лучше 16. Вот тогда бы я дааа....
Sunday, January 6th, 2019
10:43 pm
Антикризисный план.
Привет, парни!

А я вот сегодня с утра хотел поехать на штукатурку, но не поехал. А вместо этого поехал к пацанам. Они пепяку ковыряли зело дорогую, а в пепяке IP-ядро есть особое. Ну и вот все пути просто ведут к тому, что такое IP-ядро нужно поиметь своё. А из этого следует, что понятен план моих фактических работ на ближайшие эдак пол-года в родном КБ. Ну вот я и поехал на ладе-калине смотреть что да как.

А потом поехал штукатурить. Забодяжил в тазике штукатурки и начал накидывать на стену. Правда произошла пичяль и Мановар сломался :( Т.е. наебнулся старый нетбучек с которого всё работало. Пришлось упарываться радиом. Бляяя. Пацаны, расскажите, как вы это слушаете-то? Да там же, блядь, почти всё про любовь, морковь и помидоры. Сочные тёлки страдают, что их не любят. Дяди поют, что им разбили сердце и довели до слёзок. А потом мотивчик разухабистый "труляля труляля мы теперь вместе".

Но похуй. Шлёп-шлёп-шлёп. Это штукатурка на стену липнет. Потом ровнилкой разгладил и правилом излишек срезал - и красотааа.... И так антилописто виляя тузом только бегаешь на замес жижи в тазике и потом в обнимку с корытом вверх на леса. Физкультура, едри её мать. А потом смотришь на результат - а ровненько так. Чётенько. Ништячок.

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

Так вот план антикризисный. Знаете, как я готовлюсь к пиздецу? Да очень просто. Произношу заклинание "да ебись оно всё в рот" и дальше рассматриваю что будет, ежели в буфер перед фурье-анализом нулей докинуть. Не, ну в самом деле. А что ещё остаётся? Повторять мантру "намскоропиздец_намскоропиздец_намскоропиздец_намскоропиздец"? Ну и чего она поменят? Ровным счётом нихуя. А нервы свои потратишь, время своё потратишь и в унылость впадёшь. А жизнь мимо пройдёт. Запасать тушняк, делать схрон, копить баксы, а потом над ними чахнуть? В пизду. Есть бабло? Вольём в домейко. Есть свободное бабло? Купим параплан, мотор, возьмём самопляс и сигару и полетим обозревать окрестности. Включать трактор? Не вариант.

И вот реально после фразы "да пошло оно всё нахуй и будь что будет" жизнь начинает сверкать красками. Всё, что от меня зависит я сделаю. А то, что от меня не зависит - чего об этом переживать-то? Так что сейчас я в семейных трусах сижу на кухне, хлебаю из кружки нескафе и под записи ВИА "Арея" обмазываюсь ЦОС-ом. И знаете чо? Да мне ништяк и заебись, вот что! Чего всем и желаю!
Saturday, January 5th, 2019
8:47 pm
Лытдыбр.
Сегоня в лиловознамённой кодописной мануфактуре выходной. А что делает кодопис в выходной? Правильно! Едет в домейко.

Read more...Collapse )
Friday, January 4th, 2019
10:18 pm
...
А вот, парни, делал я как-то однажды в университете лабораторную работу по дисциплине "Дискретные Электронные Устройства". И преподавал дисциплину эту старой совдеповской закалки дiд ПалИваныч Тихомиров. Преподавал так, что аж ахуй. Если взять всех чётких пацанов с района, поставить в один ряд и измерить коэффициент чёткости, то это не дотянет и до одной стотысячной того, насколько чётко был организован процесс обучения. Сначала теория. Потом лаба по пройденной теории. А потом защита. Жопу на защите ПалИваныч развальцовывал похлеще, чем пневматический отбойный молоток крушит асфальт. Не помогали ни свинцовые трусы, ни сковородка, ни пыж. Избежать анальных кар можно было лишь одним способом - безупречно знать матчасть. Отмазы на защите типа "а я не понял" не ебали совсем. Сразу же следовала отсылка к пункту 2.1 методических указаний, который гласил "подготовиться к лабораторной работе". А если не понял, то спрашивать надо ДО того, но не ПОСЛЕ того. А значит пункт 2.1 не выполнялся.

Ну и во тащемта делал я лабораторку. То-ли триггера, то-ли мультиплексоры, то ли диаграммы Вейча. Да не суть. Сходил на лекцию, тщательно всё законспектировал, прочитал методу, сделал лабу, заебашил отчёт и пошёл на защиту. Ответил на все вопросы из методы и уже расслабил булки приготовившись почивать на лаврах. Но лаврового венка не последовало. А вместо него последовали доп.вопросы, которых в методичке не было. И на лекции не было. Ну и само собой я охуел и выдал фразу "так этого же в лабораторке не было и на лекциях этого не было". И на это я получил фантастический по силе ответ. Что, мол, Юрин. Ты охуел! Ты, блядь, отличник группы. И вот что ты думаешь - вот ты выполнил всё по методичке и всё что ли? Если идёшь в первых рядах, так и планку поднимай выше. Это чувакам, которым до пизды вся радиотехника можно зачёт просто так поставить. И что если уж ты пришёл учиться на этот злоебучий радиотехнический факультет и предметом интересуешься, то явно не только для того, что бы делать всё по методичке и говорить, что хватит. Давай мозги включай и мысли дальше. Вообщем допами меня выебали по полной и поставили отметку "хорошо".

К чему я это всё? Да к тому, что если сельский Алёша соберёт мультивибратор на ардуине - это мимими. Потому как у Алёши это хобби, блядь. И даже если он сделает не правильно - да и похуй. А если такое же сделаю я и даже если правильно и отлично, то это пиздец днище. И вот может чуваки я наивен, но я тащемта ожидаю по жизни, что строитель умеет строить пизже, чем я. Доктор в больничке лечит пизже, чем я. А ветеринар обстригает когти мохнатым друзьям человечества пизже, чем я.

И вот потому сегодня, блядь, выписал пиздюлей более молодым коллегам-схемотехникам. Это они, блядь, схему исследуют на полевом транзисторе и не могут понять почему не работает и всё разогревается. А что такое эффект Миллера не знают. Схемотехники, блядь!
Thursday, January 3rd, 2019
11:36 pm
Киносеанс-2.
Привет ещё раз, парни. Видел все ваши комменты - сорян кому не ответил. Весь вечер искал ошибку чо за херня происходит. Почему в одном прототипе всё норм, а во втором который под ПЛИС заточен нет. 5 часов как с куста. Но в итоге нашёл. Матлаб, сучонок, тригонометрические функции в радианах считает, а я ему градусы подсовывал. Ну вот и... Но я про другое.

А вот, например, совдеповский фильм "Гений" с Абдуловым. Тащемта образ бравого распиздяя-инженера-радиотехника знаком многим. И вот эпизод, в котором у данного персонажа сортир обклеен авторскими свидетельствами. Ну и решил я присмотреться повнимательнее. А то вдруг и мне стоит уже заявку отправлять и обои в сортир заказывать.

Read more...Collapse )
Читаем: "Термостат для активации какой-то там хуйни".
Заявитель: "Ленинградское производственное обувное объединение "СКОРОХОД".
1 июля 1982 года
Ну и чисто для галочки - номера свидетельств одинаковые и оканчиваются на 41.

Ну чо, пацаны. Л.Рабинер и Б.Гоулд свою "Теорию и применение ЦОС" запилили в 1978 году, шоле. А тут ажно цельный термостат! Монументальнейше, да...
5:04 pm
...
Парни, а что за хуёвину починяет слесарь Георгий Иванович он же Гога, он же Гоша он же Юрий он же Гора он же Жора? А то я как этот фильм увижу - сразу этим вопросом задаюсь. Это, блядь, что?! А то может и мне оно надо, а я об этом и не знаю.



UPD: Ну и до кучи вопрос - а что за инструмент участвует в ремонте? С деревянной ручкой - вроде напильник. Слева хуёвина, похожая на паяльник ватт так на 150, но припоя не видать. И ещё какая-то лютая струбцина, шоле? Вообщем я зело озадачен.
Wednesday, January 2nd, 2019
11:12 pm
Здарова, парни!
Что, оливьё жрёте и бухлишком заливаетесь? А я вот MatLab дрючу. Ага, это я всё продолжаю упарываться отпечатком. Вот казалось бы - я научился в уютненьком матлабчике выделять линии отпечатка, утоньщать их и даже примерно проработал модель как фильтровать полученные безобразия. Казалось бы - всё. Вот оно счастье. Жми кнопку "компилировать" и запукай в продакшн.

А вот хрена с два. Может некоторые продвинутые чуваки сейчас закричат, что они таки бывали на всяких там осеминарах и видели в математических САПР стоимостью в половину нового Боинга кнопку "generate HDL". Ага. Есть такое. Но не работает оно. Почему? А потому, что даже если алгоритм отлажен в уютненьком математическом САПРе это вот ваще не факт, что он будет запилен в железе. Тащемта этим и отличаются математик и инженер-кодопис. Вот вам пример.

Вот, например, такая штука, как signature. Это когда вы вырезаете кусок изображения и делаете его проекцию на ось Х. Пока всё под углом 90 градусов - всё здорово. А если надо сделать проекцию под углом, скажем, в 10 градусов? Ну поверни квадратик и делов-то. На машинном языке это означает, что нужно пересчитать координаты исходного квадрата в координаты нового поля. И всё бы хорошо, но в изображении пиксели имеют целочисленные координаты. Т.е. пиксель с координатами (5,5) - он понятен. А вот что такое пиксель с координатами (5.7,6.9) - это науке пока неизвестно. А именно такие дробные координаты и получаются по тригонометрическим формулам поворота. Продвинутые пацаны спросят - ну и что? Сделай интерполяцию да не полощи мозг. И будут правы. Ибо именно с помощью интерполяции и делается поворот изображений. НО!

Вот у меня окно оценки 64х64 пикселя. Соответственно для оценки одного положения окна (без поворота) мне нужно 64х64=4096 запросов к памяти. Нужно оценить со сдвигом? Ещё 4096 запросов. Ещё со сдвигом? Ещё 4096 запросов. А так как угол неизвестен (именно его и нужно определить в конечном итоге), то нужно бы сделать хотя бы два десятка проекций с разными углами. Итого получаем разрастание канала в 20 раз. Если исходные данные идут со скоростью 35 МБ/с (1280х960*30fps*8bit), то к памяти нужно обращаться со скоростью в 20 раз большей. Т.е. 703 МБ/с.

Да не вопрос! Залупим DDR и всё. Для неё такие потоки - смех. Так-то да, но нет. Потому как DDR работает хорошо только при пактеном обращении, когда обращение идёт блоками, а данные расположены одно за одним. А вот когда данные разбросаны хаотично (а именно так и обстоит дело при повёрнутом изображении), то её скорость катастрофически проседает.

Поэтому что? Поэтому алгоритм нужно видоизменять! И те 8 строчек из матлабика превращаются в таблицу перекодировки, HEX-файл, подгрузку/выгрузку этого из FLASH в DDR и из DDR в cache. Именно так приходится изворачиваться, что бы загнать алгоритм в железо и заставить работать его на требуемой скорости. Хотя это я вам ещё даже не всё рассказал. По факту я решаю задачу обратную (т.е. по текущему значению пиксела я вычисляю сразу все проекции), но тут вступает в дело такая паршивая штука, как целочисленная арифметика и ошибка округления. И именно она приводит к тому, что приходится довольно сильно перекраивать всю суть, что бы запихнуть всё в железо. И начинаются микроконвейеры и управление микроконвейером. И это всё настолько неоднозначно, что хуй какой САПР вам это в автомате сгенерит.

Ладно. Один хрен вы ничего не поняли, а я и объяснить не старался так-то. Один хрен вам пофиг. Так что бухайте дальше, парни, а я пойду поупарываюсь ещё децл. 
Friday, December 28th, 2018
12:49 pm
Thursday, December 27th, 2018
9:00 pm
Предновогоднее.
Хотел написать про итоги - но нахуй. Ограничусь лишь широкоизвестной фразой: "Господи, сколько всего не сделано! А сколько всего ещё предстоит не сделать!"

Зато я придумал себе отличный план. Первого числа я встану в 10 утра, почешу мудя, намою их водой лушистой, погружусь в автомашину марки "ТАЗ", возьму ноутбук и убуду на 8 дней в домейко. Там я буду жить не привязанный ни к кому, допиливать алгоритм, читать мануалы, намазывать штукатурку на стены, кодописить, совсем немного пьянствовать, варить картошку в мундире и выбираться в сельпо за жрачкой. Жаль, но поездка в Москву накрылась пиздой, судя по всему. Обидно, но предсказуемо.

А ещё я сниму со стены беговые лыжи и таки выйду на них в лес. Потому как на лыжах я последний раз стоял на втором курсе университета и всё. И надо с этим что-то делать.

А ещё на Новый Год мне дед Мороз обещал подарить валенки. Настоящие. С галошами! 45 размера!!! И ещё сапоги хромовые. Что бы кодопис был самым красивым, нарядным и румяным. А то хули он? И, пожалуй, это будет самый охуительный подарок за последние 15 лет.

За сим всё! Всем чмоки!
10:36 am
Будни ПЛИСоводства. Синус двух альфа.
А вот, парни, у вас уже поди сложилось впечатление, что ПЛИСоводство это долго, мозгоёбно и непонятно зачем вообще нужно. Тащемта в той части, что долго и мозгоёбно - впечатление абсолютно правильное. А почему так - рассмотрим на конкретном эпизоде. Рассмотрим всё на примере задачи распознавания отпечатка. Хотя я подчеркну, что данная задача просто является точкой приложения силы в данный момент времени. Основные принципы - они фундаментальны и простираются гораздо, гораздо шире.

Так вот в задаче распознавания используется бьютификатор. Одним из параметров бьютификатора является угол наклона линий отпечатка к горизонтальной оси. Само собой, что он изменяется в пределах отпечатка и разный в ращных частях кадра. Тащемта допустим, что у нас есть кадр размера 256х256. В реальной жизни для определения угла можно бы было взять транспортир и измерить угол, а при анализе изображений всё разбивается на квадраты и оценка производится внутри этого квадрата. Допустим, что мы разбили изображение на квадраты размером 32х32 и получили таким образом массив 8х8 в пределах которого и посчитали угол. Заебись? Да. Но дальше - больше.

Согласованная фильтрация выполняется аналогичным образом путём разбиения исходного изображения на квадраты. Но в данном случае квадратов уже побольше, а их размер поменьше. Это всё для того, что бы качество было попизже. Допустим, что применяем квадрат размером 4х4. И у нас уже поле 64х64. А параметры нужно брать из массива 8х8. Т.е. нужно интерполяцию сделать. А теперь смотрим что получится, если просто взять и интерполировать без изъёбств.

Read more...Collapse )
Зачем это всё? Да я хуй знает. А я-то сам зачем? Поэтому погнал я периодами пространственными упарываться и там смотреть где алгоритм запинается. А вопросы самокопания - да ну их нахуй.
[ << Previous 20 ]
About LiveJournal.com