Думаю, мало кто из готовящихся к своему первому интервью, при приеме на первую работу в должности (pre)junior программиста, ответит на этот вопрос отрицательно. Или хотя бы усомнится в положительном ответе. Конечно, такая простая структура данных с прямым доступом по индексу — никаких подвохов! Нет, в некоторых языках типа JavaScript или PHP массивы, конечно, реализованы очень интересно и по сути являются много большим чем просто массив. Но речь не об этом, а о «традиционной» реализации массивов в виде «сплошного участка памяти». В этом случае на основании индексов и размера одного элемента просто вычисляется адрес и осуществляется доступ к соответствующему значению. Что тут сложного?
Виктор Пряничников @VIK52
Пользователь
Пространственно-временная обработка изображений на GPU
9 мин
28KНе так уж и давно стало популярным использовать видеокарты для вычислений. В один прекрасный день, несколько лет назад и я взглянул на новую, тогда, технологию CUDA. В руках была хорошая карточка по тем временам GTX8800, да и задачки для распараллеливания тоже были.
Кто работал с GPU, знает про объединение запросов, конфликт банков и как с этим бороться, а если не работал, то можно найти несколько полезных статей по основам программирования на CUDA[1]. Карта GTX8800, в некотором смысле, была хороша тем, что была одной из первых и поддерживала только первые версии CUDA, поэтому на ней было четко заметно, когда есть конфликты банков или запросы в глобальную память не объединяются, потому что время в этом случае увеличивалось в разы. Все это помогало лучше понять все правила работы с картой и писать нормальный код.
В новые модели добавляют все больше и больше функциональности, что облегчает и ускорят разработку. Появились атомарные операции, кеш, динамический параллелизм и т.д.
В посте я расскажу про пространственно-временную фильтрацию изображений и реализацию для compute capability = 1.0, и как можно ускорить получившийся результат за счет новых возможностей.
Временная фильтрация может пригодиться при наблюдении за спутниками или в прочих ситуациях фильтрации, когда требуется точное подавление фона.
![](https://habrastorage.org/getpro/habr/post_images/b0f/c4e/9bc/b0fc4e9bc6f2f4e8bd2388bd6c2363db.png)
Кто работал с GPU, знает про объединение запросов, конфликт банков и как с этим бороться, а если не работал, то можно найти несколько полезных статей по основам программирования на CUDA[1]. Карта GTX8800, в некотором смысле, была хороша тем, что была одной из первых и поддерживала только первые версии CUDA, поэтому на ней было четко заметно, когда есть конфликты банков или запросы в глобальную память не объединяются, потому что время в этом случае увеличивалось в разы. Все это помогало лучше понять все правила работы с картой и писать нормальный код.
В новые модели добавляют все больше и больше функциональности, что облегчает и ускорят разработку. Появились атомарные операции, кеш, динамический параллелизм и т.д.
В посте я расскажу про пространственно-временную фильтрацию изображений и реализацию для compute capability = 1.0, и как можно ускорить получившийся результат за счет новых возможностей.
Временная фильтрация может пригодиться при наблюдении за спутниками или в прочих ситуациях фильтрации, когда требуется точное подавление фона.
![](https://habrastorage.org/getpro/habr/post_images/b0f/c4e/9bc/b0fc4e9bc6f2f4e8bd2388bd6c2363db.png)
+80
NASA выложила в открытый доступ 17000 фотографий программы «Аполлон»
1 мин
119K![](https://habrastorage.org/getpro/habr/post_images/b19/193/3ff/b191933ffe0d9db19bbbc63bda78f151.jpg)
Судя по всему, у сторонников конспирологических теорий о
+91
Перевод и озвучка фильма дома — The Mars Underground
5 мин
75KЭто мой первый пост на Хабре, поэтому в хаб «Космонавтика» он пока не попал.
Я занимаюсь, вернее, пытаюсь заниматься переводом и озвучкой видеороликов уже полгода. Ещё весной я обнаружил, что в сети полно хороших видео, из серии таких, которые «обязательно должен посмотреть каждый», но большая часть из них на английском языке. А вот знакомых, хорошо знающих иностранные языки, у меня не так много. Поэтому начинал я с переводов именно для них. Затем заметил, что это становится интересно и другим людям, и завертелось. Поэтому когда ко мне обратился Zelenyikot с предложением озвучить фильм Роберта Зубрина о Марсе, я с радостью согласился. И, вооружившись статьей "Попытка перевода и озвучки видео в домашних условиях", словариком и гуглом, сразу приступил к работе.
Я занимаюсь, вернее, пытаюсь заниматься переводом и озвучкой видеороликов уже полгода. Ещё весной я обнаружил, что в сети полно хороших видео, из серии таких, которые «обязательно должен посмотреть каждый», но большая часть из них на английском языке. А вот знакомых, хорошо знающих иностранные языки, у меня не так много. Поэтому начинал я с переводов именно для них. Затем заметил, что это становится интересно и другим людям, и завертелось. Поэтому когда ко мне обратился Zelenyikot с предложением озвучить фильм Роберта Зубрина о Марсе, я с радостью согласился. И, вооружившись статьей "Попытка перевода и озвучки видео в домашних условиях", словариком и гуглом, сразу приступил к работе.
![](https://habrastorage.org/getpro/habr/post_images/284/13f/d14/28413fd14e14570677d5aa473e06baf9.png)
+157
В MIT разработали недорогую 3D-камеру, способную видеть сквозь полупрозрачные объекты
2 мин
14K![](https://habrastorage.org/getpro/habr/post_images/a4c/e2d/3ec/a4ce2d3ec91ed87e2a472fe2aac453aa.png)
Существующие сегодня 3D-сенсоры, основанные на измерении времени прохождения луча света, подобные Kinect, могут довольно неплохо составлять карту глубин изображения, если в сцене нет полупрозрачных и отражающих поверхностей, преломляющих и искажающих путь световых лучей. Дождь, струи воды, туман или предметы из стекла или прозрачного пластика просто заслоняют более далёкие объекты, так как сенсор распознаёт только самое первое отражение сигнала.
На конференции Siggraph Asia, которая прошла в Гонконге на прошлой неделе, учёные из MIT Media Lab представили новую разработку, основанную на том же принципе. В ней используется обычный лазерный диод и недорогой сенсор. Стоимость оборудования составила всего лишь порядка 500 долларов. Единственное существенное отличие прототипа от коммерческих аналогов, таких как Kinect, заключается в прошивке.
Вместо простой периодической модуляции импульсов инфракрасного лазера, прототип MIT использует специально подобранные последовательности импульсов, имеющие автокорреляционную функцию с очень узким единичным пиком (такие сигналы используются в эхолокации и телекоммуникациях для точного измерения времени задержки сигнала. Более подробно о них можно почитать в статье "Основные принципы цифровой беспроводной связи. Ликбез", в разделе «Автокорреляционная функция. Коды Баркера»). Камера хорошо различает первые отражения от поверхности прозрачного предмета и следующие за ними отражения от более далёких объектов. Она даже способна получить чёткое изображение надписи, закрытой матовым экраном.
+13
То, что вы хотели знать про оптический поток, но стеснялись спросить
13 мин
74K![](https://habrastorage.org/getpro/habr/post_images/6e7/202/488/6e7202488554327be02a3b211df4647a.jpg)
Оптический поток (Optical flow) – технология, использующаяся в различных областях computer vision для определения сдвигов, сегментации, выделения объектов, компрессии видео. Однако если мы захотим его по-быстрому реализовать в своем проекте, прочитав про него на википедии или где-нибудь еще, то, скорее всего, очень быстро наткнемся на то, что он работает очень плохо и сбоит при определении сдвигов уже порядка 1-2 пикселей (по крайней мере так было у меня). Тогда обратимся к готовым реализациям, например, в OpenCV. Там он реализован различными методами и совершенно непонятно, чем аббревиатура PyrLK лучше или хуже обозначения Farneback или чего-нибудь в этом роде, да и придется поразбираться со смыслом параметров, которых в некоторых реализациях очень много. Причем, что интересно, эти алгоритмы как-то работают, в отличие от того, что мы написали сами. В чем же секрет?
+74
Астрофотография в каждый дом
6 мин
125K![](https://habrastorage.org/getpro/habr/post_images/3da/05f/400/3da05f400703e66dbefe0abcedcab58e.png)
Однако суровая реальность вечно портит всю малину: в пределах города – все небо засвечено уличным освещением и турбулентность воздуха высокая. Это означает, что либо придется ограничится самыми крупными и яркими объектами (вроде Луны и Юпитера), либо возить телескоп далеко за город.
Возможное решение проблемы — удаленно-управляемые телескопы большого размера и расположенные в горах. Конечно, возможность видеть все своими глазами это не заменит — но астрофотографии полученные таким образом будет трудно превзойти. Именно на этом способе я и хочу остановиться в этой статье.
Пример того, что получилось: галактика Андромеда, M31 на телескопе Т20
![](https://habrastorage.org/getpro/habr/post_images/020/638/039/0206380397b432e421c3f91d87e5c86d.jpg)
+214
Простыми словами о преобразовании Фурье
Средний
14 мин
1.1MЯ полагаю что все в общих чертах знают о существовании такого замечательного математического инструмента как преобразование Фурье. Однако в ВУЗах его почему-то преподают настолько плохо, что понимают как это преобразование работает и как им правильно следует пользоваться сравнительно немного людей. Между тем математика данного преобразования на удивление красива, проста и изящна. Я предлагаю всем желающим узнать немного больше о преобразовании Фурье и близкой ему теме того как аналоговые сигналы удается эффективно превращать для вычислительной обработки в цифровые.
(с) xkcd
Без использования сложных формул и матлаба я постараюсь ответить на следующие вопросы:
Я буду исходить из предположения что читатель понимает что такое интеграл, комплексное число (а так же его модуль и аргумент), свертка функций, плюс хотя бы “на пальцах” представляет себе что такое дельта-функция Дирака. Не знаете — не беда, прочитайте вышеприведенные ссылки. Под “произведением функций” в данном тексте я везде буду понимать “поточечное умножение”
![image](https://habrastorage.org/getpro/habr/post_images/c2e/6c4/40f/c2e6c440f11f538840bf0c4931cb7b8b.jpg)
Без использования сложных формул и матлаба я постараюсь ответить на следующие вопросы:
- FT, DTF, DTFT — в чем отличия и как совершенно разные казалось бы формулы дают столь концептуально похожие результаты?
- Как правильно интерпретировать результаты быстрого преобразования Фурье (FFT)
- Что делать если дан сигнал из 179 сэмплов а БПФ требует на вход последовательность по длине равную степени двойки
- Почему при попытке получить с помощью Фурье спектр синусоиды вместо ожидаемой одиночной “палки” на графике вылезает странная загогулина и что с этим можно сделать
- Зачем перед АЦП и после ЦАП ставят аналоговые фильтры
- Можно ли оцифровать АЦП сигнал с частотой выше половины частоты дискретизации (школьный ответ неверен, правильный ответ — можно)
- Как по цифровой последовательности восстанавливают исходный сигнал
Я буду исходить из предположения что читатель понимает что такое интеграл, комплексное число (а так же его модуль и аргумент), свертка функций, плюс хотя бы “на пальцах” представляет себе что такое дельта-функция Дирака. Не знаете — не беда, прочитайте вышеприведенные ссылки. Под “произведением функций” в данном тексте я везде буду понимать “поточечное умножение”
+181
Хабр-форсайт: 6.000.000 тонн мокреньких котят в космосе
8 мин
56K«Воображение важнее, чем знания. Знания ограничены, тогда как воображение охватывает целый мир, стимулируя прогресс, порождая эволюцию.» А. Эйнштейн
![image](https://habrastorage.org/getpro/habr/post_images/933/ee2/1e1/933ee21e177497cf3c885d2556a9c33f.jpg)
«Лучший способ предсказать будущее – изобрести его.» Алан Кей, создатель ООП
По результатам статьи «Пусковая петля»:
— виртуально собрали денег 1.300.000 $,
— «продали» больше 1.000 «билетов» в космос,
— и обнаружили много много вопросов
Главное, что я заметил это то, что люди даже в мыслях ограничены, что существует огромное сопротивление, чтобы даже представить себе, как можно обеспечить СПРОС на объем запуска груза в космос в масштабе 6.000.000 тонн в год ? (при условии что стоимость запуска 1 кг груза будет стремиться к нулю)
Предлагаю всем людям творческим и не до конца творческим присоединиться кпоиску созданию ответов и наполнить будущее смыслами. Do It Yourself
“Твои стрелы не долетают до мишени, — заметил мастер, — потому что они не летят достаточно далеко мысленно”. Юджин Херригел, “Дзен и искусство стрельбы из лука”
![image](https://habrastorage.org/getpro/habr/post_images/933/ee2/1e1/933ee21e177497cf3c885d2556a9c33f.jpg)
«Лучший способ предсказать будущее – изобрести его.» Алан Кей, создатель ООП
По результатам статьи «Пусковая петля»:
— виртуально собрали денег 1.300.000 $,
— «продали» больше 1.000 «билетов» в космос,
— и обнаружили много много вопросов
Главное, что я заметил это то, что люди даже в мыслях ограничены, что существует огромное сопротивление, чтобы даже представить себе, как можно обеспечить СПРОС на объем запуска груза в космос в масштабе 6.000.000 тонн в год ? (при условии что стоимость запуска 1 кг груза будет стремиться к нулю)
Предлагаю всем людям творческим и не до конца творческим присоединиться к
“Твои стрелы не долетают до мишени, — заметил мастер, — потому что они не летят достаточно далеко мысленно”. Юджин Херригел, “Дзен и искусство стрельбы из лука”
+26
3D принтер воспроизводит точные копии картин (включая текстуру и «рельеф»)
1 мин
38K![image](https://habrastorage.org/getpro/habr/post_images/a40/c49/a1c/a40c49a1c50af8dd4b022ca32cee62ee.jpg)
В общем-то, тем, что сейчас существуют принтеры, которые способны печатать картины, при этом моделируя их текстуру, никого не удивишь. По-моему, уже давно мне кто-то говорил, что большая часть картин, выставленных у рыночных художников, создаются именно таким образом. Не знаю, насколько это правда, но так мне говорили. На днях появилась информация о 3D принтере, который на голову превосходит все эти технологические новшества рыночных торговцев картинами. Дело в том, что этот принтер способен воспроизводить любые картины, не только цвет, но и текстуру, все, до последнего мазка кисти.
+30
Изменения в структуре знания
4 мин
60KЯ пишу эти строки в надежде получить комментарии от участников сообщества – что-то может показаться всем читающим очевидным, однако при ближайшем рассмотрении изменения становятся крайне пугающими, и, не побоюсь этого слова, вызывающими.
Начало
Количество информации в мире постоянно растет. Если верить хотя бы исследованиям Университета Южной Калифорнии, то получается вот что: в 1986 году соотношение цифровой и аналоговой информации было 2,62 к 0,02 в пользу аналога. Где-то после 2001-2002 года цифровая информация сравнялась, ну а к 2007 уже повально лидировала с объемом 276,12 к 18,86.
И я ощутил эту разницу на себе, в гораздо более понятных цифрах. В 2000 году я млел от плеера Samsung Yepp с объемом памяти в 32 мегабайта, треки на который я закидывал при помощи LPT-кабеля. Ты мог либо закинуть несколько треков в хорошем качестве, либо пару альбомов в очень плохом.
А уже в 2009 году я пользовался iPod Classic объемом в 160 Гигабайт. Разница в 5 с лишним тысяч раз за 10 лет.
+48
Blind Deconvolution — автоматическое восстановление смазанных изображений
6 мин
147KСмазанные изображения — один из самых неприятных дефектов в фотографии, наравне с расфокусированными изображениями. Ранее я писал про алгоритмы деконволюции для восстановления смазанных и расфокусированных изображений. Эти, относительно простые, подходы позволяют восстановить исходное изображение, если известна точная траектория смаза (или форма пятна размытия).
В большинстве случаев траектория смаза предполагается прямой линией, параметры которой должен задавать сам пользователь — для этого требуется достаточно кропотливая работа по подбору ядра, кроме того, в реальных фотографиях траектория смаза далека от линии и представляет собой замысловатую кривую переменной плотности/яркости, форму которой крайне сложно подобрать вручную.
![](https://habrastorage.org/storage2/277/142/6a2/2771426a20287b876c97284abdb78010.jpg)
В последние несколько лет интенсивно развивается новое направлении в теории восстановления изображений — слепая обратная свертка (Blind Deconvolution). Появилось достаточно много работ по этой теме, и начинается активное коммерческое использование результатов.
Многие из вас помнят конференцию Adobe MAX 2011, на которой они как раз показали работу одного из алгоритмов Blind Deconvolution: Исправление смазанных фотографий в новой версии Photoshop
В этой статье я хочу подробнее рассказать — как же работает эта удивительная технология, а также показать практическую реализацию SmartDeblur, который теперь тоже имеет в своем распоряжении этот алгоритм.
Внимание, под катом много картинок!
В большинстве случаев траектория смаза предполагается прямой линией, параметры которой должен задавать сам пользователь — для этого требуется достаточно кропотливая работа по подбору ядра, кроме того, в реальных фотографиях траектория смаза далека от линии и представляет собой замысловатую кривую переменной плотности/яркости, форму которой крайне сложно подобрать вручную.
![](https://habrastorage.org/storage2/277/142/6a2/2771426a20287b876c97284abdb78010.jpg)
В последние несколько лет интенсивно развивается новое направлении в теории восстановления изображений — слепая обратная свертка (Blind Deconvolution). Появилось достаточно много работ по этой теме, и начинается активное коммерческое использование результатов.
Многие из вас помнят конференцию Adobe MAX 2011, на которой они как раз показали работу одного из алгоритмов Blind Deconvolution: Исправление смазанных фотографий в новой версии Photoshop
В этой статье я хочу подробнее рассказать — как же работает эта удивительная технология, а также показать практическую реализацию SmartDeblur, который теперь тоже имеет в своем распоряжении этот алгоритм.
Внимание, под катом много картинок!
+235
Оцифровка человека: мы не готовы
2 мин
150K![](https://habrastorage.org/storage2/9f1/7dd/959/9f17dd95991e44e784a6cc67e5f21d0b.jpg)
Идея информационной телепортации крайне проста: специальный сканер разбирает объект на атомы, одновременно считывая их полное состояние. Полученные данные передаются в пункт назначения, где 3D-принтер с атомарным разрешением печатает исходный объект. Просто, логично, понятно. Многократно показано в фантастике (например, в фильме «Трон»).
Какова же должна быть пропускная способность сети для комфортной телепортации? Хватит ли нам плохонького 3G от «большой тройки»?
+87
19 команд ffmpeg для любых нужд
3 мин
568KТуториал
Перевод
![](https://habrastorage.org/storage2/ac3/a0c/5a0/ac3a0c5a0a2d78bc97251b20ae4bede7.jpg)
Многие знают, что ffmpeg — это сила, но не все знают, какая именно. Он многогранен и безграничен, а его man объёмен и местами малопонятен, лишь немногие постигли дао профессиональной работы с ним. И тем не менее, этот инструмент может быть полезен почти всем, кто хоть иногда работает с видео и звуком, даже на бытовом уровне. О некоторых полезных консольных командах ffmpeg и пойдёт речь в статье. В некоторых местах я взял на себя смелость вставить ссылки на поясняющие статьи.
ffmpeg — это кроссплатформенная open-source библиотека для обработки видео- и аудиофайлов. Я собрал 19 полезных и удивительных команд, покрывающих почти все нужды: конвертация видео, извлечение звуковой дорожки, конвертирование для iPod или PSP, и многое другое.
1. Получение информации о видеофайле
ffmpeg -i video.avi
2. Превратить набор картинок в видео
ffmpeg -f image2 -i image%d.jpg video.mpg
Эта команда преобразует все картинки из текущей директории (названные image1.jpg, image2.jpg и т.д.) в видеофайл video.mpg
(примечание переводчика: мне больше нравится такой формат:
ffmpeg -r 12 -y -i "image_%010d.png" output.mpg
здесь задаётся frame rate (12) для видео, формат «image_%010d.png» означает, что картинки будут искаться в виде image_0000000001.png, image_0000000002.png и тд, то есть, в формате printf)
+206
Информация
- В рейтинге
- Не участвует
- Откуда
- Радужный (Владимирская обл.), Владимирская обл., Россия
- Дата рождения
- Зарегистрирован
- Активность