Как стать автором
Обновить

Поддержка NVENC.AV1 для видеокарт NVIDIA 4000 серии в OBS Studio и релиз SDK Optical Flow 4.0

Блог компании ITSumma Работа с видео *Видеокарты Видеотехника Игры и игровые консоли
Разработчики софта для потокового вещания и записи видео из источников на ПК, Open Boardcast Software, представили новую версию своего ПО — OBS Studio 28.1. Релиз примечателен для сообщества и энтузиастов тем, что теперь самый популярный софт для стриминга, записи видео с экрана и прочих источников, имеет поддержку записи видео в формате AV1, используя мощности видеокарты и технологии NVENC. Также была представлена новая SDK Optical Flow 4.0, которая кроме прочего, предлагает новые подходы к интерполяции кадров на рендере видео и в пользовательских приложениях.


Читать дальше →
Всего голосов 1: ↑1 и ↓0 +1
Просмотры 958
Комментарии 3

Apple интерполирует видеоклипы с 320×240 до 640×480

Чулан
Компанию Apple обвиняют в том, что она осуществляет интерполяцию некоторых видеоклипов, увеличивая программными методами их разрешение с 320×240 до 640×480 пикселов.

Тщательный анализ скриншотов дает возможность точно определить, что видео увеличенного размера — не более, чем интерполяция. Качество совершенно одинаковое, отличается только размер видеофайлов (примерно в три раза).

Применение этих нечестных методов связано с открытием обновленного магазина видеофайлов iTunes Store, одновременно с которым компания анонсировала, что все фильмы в магазине будут иметь разрешение 640×480.

Качество интерполяции Apple довольно плохое. Вы на своем компьютере добились бы лучших результатов. Пусть бы компания Apple давала скачивать видеоролики маленького размера 320×240, но нет. Вместо этого они, заложники собственного маркетинга, увеличивают размер файлов примерно в три раза и продают, фактически, тот же самый материал как «видео высокого разрешения».
Рейтинг 0
Просмотры 639
Комментарии 1

Горожан в мире стало больше, чем сельских жителей

Чулан
Недавно, а именно 23 мая, урбанизация охватила более половины населения планеты. Впервые в истории число жителей городов (3303992253 человека) превысило число жителей сельской местности (3303866404 человека).

Точно, конечно, никто не считал. Однако именно такая условная дата «перелома» получилась у демографов Государственного университета Северной Каролины и Университета Джорджии. Такая дата получается исходя из оценок ООН по уровню урбанизации к 2010 году.
Всего голосов 5: ↑1 и ↓4 -3
Просмотры 551
Комментарии 0

Бикубическая интерполяция, теория и практическая реализация

PHP *
Из песочницы
Возникла задача визуализировать результаты некоторых замеров на 2-мерной карте, были известны результаты в узловых точках на равномерной сетке, соответственно, задача свелась к интерполяции полученных данных. Основное требование было — качество полученной картинки и минимальное количество артефактов интерполяции, поэтому выбор пал на бикубическую интерполяцию. Статьи в Вики мне показались суховатыми (по крайней мере для человека, который математикой не занимался со школьной скамьи), но там же нашлась ссылка на потрясающую статью, детально описывающую алгоритм. Здесь мы рассмотрим практическое применение данного алгоритма и разберем статью.
Далее
Всего голосов 79: ↑68 и ↓11 +57
Просмотры 40K
Комментарии 34

Генерация аналитических поверхностей на примере карт

Алгоритмы *

Введение


Возникла однажды интересная задача: организовать возможность работы программы с трехмерными изображениями земной поверхности больших размеров. После изучения множества литературы и различных источников, стало ясно, что эффективных подходов в общем доступе не найти.
Читать дальше →
Всего голосов 36: ↑33 и ↓3 +30
Просмотры 5.4K
Комментарии 13

Генерация аналитических поверхностей на примере карт. Часть 3

Алгоритмы *

Введение


Точное физическое моделирование требует высокополигональных карт. Чем выше точность карты, тем больший объем памяти она занимает и тем больше приходится обрабатывать данных, чтобы получить высоту. Сплайновая интерполяция позволяет получить сетку любого разрешения, с любым, удобным в данный момент, шагом по широте и долготе.
Читать дальше →
Всего голосов 20: ↑19 и ↓1 +18
Просмотры 2.9K
Комментарии 0

Интерполяция: рисуем гладкие графики средствами PHP и GD

PHP *
Распространенной задачей для программиста является рисование графиков. Входными данными является массив точек (xi;yi). Как правило, мы знаем только некоторые значения — в определенных точках графика. Чтобы построить непрерывный график кривой необходимо прибегнуть к интерполяции или аппроксимации.



Интерполяция — построение кривой, проходящей через заданные точки.
Аппроксимация — приближение кривой к исходной, но не обязательно проходящей через заданные точки.

В этом топике я хочу продемонстрировать свою библиотеку для PHP, которая производит интерполяцию с помощью многочлена Лагранжа, C-сплайна и сплайна Акимы, а также аппроксимацию кривой Безье. Дополнительно в ней реализована отрисовка отрезка со сглаживанием (антиалиасингом).

Кратко рассмотрим методы интерполяция и аппроксимации.
Читать дальше →
Всего голосов 80: ↑77 и ↓3 +74
Просмотры 56K
Комментарии 23

Рисование сеточных графиков трехмерных функций и изолиний к ним

Программирование *Алгоритмы *
Из песочницы

Статья представляет собой нечто вроде “практического руководства” для построения весьма интересных трехмерных графиков функций вида z=f(x,y), с примером реализации на C#.
Читать дальше →
Всего голосов 40: ↑38 и ↓2 +36
Просмотры 23K
Комментарии 3

Super-resolution из единственной фотографии

Алгоритмы *Обработка изображений *
В обработке изображений существует класс методов Super-resolution (SR), которые позволяют качественно увеличить разрешение исходного изображения, при этом происходит преодоление оптического предела объектива и/или физического разрешения цифрового сенсора, который записал изображение.

Алгоритмы SR используют два подхода для вычисления результирующего изображения: 1) на базе множества кадров одного объекта; 2) самообучающаяся система с базой образцов.


Читать дальше →
Всего голосов 83: ↑79 и ↓4 +75
Просмотры 33K
Комментарии 64

Интерполяция + (линейная | логарифмическая) шкала + С++

Программирование *C++ *Алгоритмы *
Понадобилось мне как-то сделать интерфейс для загрузки в микроконтроллер график функции «сопротивление -> температура» (график решили задавать по нескольким точкам, а потом их интерполировать). По ходу дела выяснилось, что график будет оч-чень нелинейным (180 Ом -> 100o, 6 000 Ом -> 0o, 30 000 Ом -> -30o). Поэтому пришлось мне погрузиться в тему логарифмических шкал… и сразу вынырнуть, так как я не нашел того, что мне нужно. А нужно-то мне было всего лишь понять математику (и реализацию на С++) таких дел. ЧуднО — вроде такая нужная тема, а не расписано! Ну да ладно — мозги заскрипели и вспомнили высшую математику из университета, и программа была написана. Решил описать я свои мытарства тут — может, кому пригодится.

В этой статье я распишу теорию (а также базовые виртуальные классы), в следующей возьмусь за конкретные реализации средствами Qt.

Осторожно: в тексте много графики!
Читать дальше →
Всего голосов 45: ↑38 и ↓7 +31
Просмотры 72K
Комментарии 22

Строковая интерполяция. Сказка-быль

JavaScript *Программирование *

Постановка задачи


Совершенно случайно я превратился из питониста в JS-разработчика, и на мою хрупкую детскую психику обрушился непосильный груз вещей, которых в JS нет. Например, нет удобного форматирования строк. На питоне можно написать:
'hello, %(thing)s' % {'thing': 'world'}

Или вот так:
'hello, {thing}'.format(**{'thing': 'world'})


Читать дальше, там интересно
Всего голосов 62: ↑50 и ↓12 +38
Просмотры 29K
Комментарии 48

Идентификация быстрых термических процессов

Open source *Математика *
Недавно мне удалось завершить часть работы по очень интересному проекту в ФТИ им. Иоффе и получить достаточное количество экспериментальных данных, для того чтобы поделиться с Вами.
Физики из СПб ФТИ им. Иоффе занимаются выращиванием нитрид галлиевых полупроводниковых структур, которые обладают неплохими показателями скорости носителей заряда при переходе и большим коэффициентом теплопроводности. Процесс роста такой структуры проходит при температуре 1000 С (1273 К) и атмосферном давлении. Все происходит в специальной камере, находящейся в герметичной зоне. При выращивании структуры весь объем реактора и герметичной зоны заполняется азотом. В процессе роста структуры подложкодержатель вращается с частотой один раз в секунду. Такие операции относятся к быстрым термическим процессам, скорость изменения температуры в которых варьируется от нескольких единиц до сотен градусов в секунду.

Моей задачей было управление температурой графитового подложкодержателя при помощи индуктивного нагрева.
Технические характеристики установки выглядят следующим образом. Для измерения температуры используется лазерный пирометр, снимающий данные в центре графита. Частота съема информации 10 раз в секунду, шаг измерения 1 градус. Значение мощности передаваемой графиту полагается прямо пропорциональным мощности на индукторе. У генератора управляющего индуктором имеется цифровой выход, по которому передаются значения напряжения, тока и мощности.
Результаты экспериментального отжига
Всего голосов 60: ↑56 и ↓4 +52
Просмотры 20K
Комментарии 20

Обзор некоторых виртуальных приборов среды LabVIEW в помощь разработчику (+ исходники)

Алгоритмы *LabVIEW *
image

Добрый день, всем!

За последние годы работы в среде LabVIEW приходилось иметь дело с разными задачами, решение которых вытекало в создание простых и не очень простых виртуальных приборов(ВП). Специализация моей работы – это проектирование различных алгоритмов для анализа биомедицинских сигналов. И как у любого разработчика за несколько лет у меня накопилось большое количество кода разной сложности. Для всех виртуальных приборов, которые по той или иной причине мне жалко было удалять, я создал папку, куда и сохранял все. В данной статье мне хотелось бы привести некоторую выборки из моего LabVIEW-портфолио.

Выборка имеет достаточно эклектичный характер, и многие приборы опытные разработчики могут воспроизвести сами за несколько минут. Поэтому, полагаю данная статья может пригодится в основном для начинающих LabVIEW-разработчиков. Большинство представленного кода можно так или иначе найти на LabVIEW – форумах или в экземплах среды. Исходники прилагаю в конце статьи (версия 9.0).

В начале хотелось бы привести пару ВП, которые относятся к разряду очень простых, но возможно кому-то необходимых.
Читать дальше →
Всего голосов 15: ↑13 и ↓2 +11
Просмотры 29K
Комментарии 17

Интерполяция: рисуем плавные графики с помощью кривых Безье

JavaScript *Программирование *Алгоритмы *HTML *
Recovery mode
Доброго времени суток, харбачитатель.

В этой статье мне хотелось бы рассказать об одном придуманном когда-то алгоритме (или скорее всего — переизобретённом велосипеде) построения плавного графика по заданным точкам, используя кривые Безье. Статья была написана под влиянием вот этой статьи и очень полезного комментария товарища lany, за что им отдельное спасибо.

Постановка задачи
Есть массив Y-ков точек, расположенных равномерно по оси X. Нужно получить плавный график, который проходит через все заданные точки. Пример на рисунке ниже:



Всех, кому интересно, прошу под кат.
Читать дальше →
Всего голосов 24: ↑21 и ↓3 +18
Просмотры 38K
Комментарии 53

Интерполяция данных: соединяем точки так, чтобы было красиво

Математика *Визуализация данных *
Как построить график по n точкам? Самое простое — отметить их маркерами на координатной сетке. Однако для наглядности их хочется соединить, чтобы получить легко читаемую линию. Соединять точки проще всего отрезками прямых. Но график-ломаная читается довольно тяжело: взгляд цепляется за углы, а не скользит вдоль линии. Да и выглядят изломы не очень красиво. Получается, что кроме ломаных нужно уметь строить и кривые. Однако тут нужно быть осторожным, чтобы не получилось вот такого:

Читать дальше →
Всего голосов 65: ↑65 и ↓0 +65
Просмотры 146K
Комментарии 44

Борьба с мельницами — 1: интерполяционные сплайны

Ненормальное программирование *Алгоритмы *Математика *
В данной статье лирический герой бросает вызов оптимальной реализации классического полиномиального интерполятора Лагранжа (Фарроу), в процессе битвы случайно открывает и доказывает тривиальное никому не нужное математгическое заклинание, с помощью которого пытается потеснить противника, но по результатам всех раундов боя решением судей фиксируется ничья.

— Где вы видите великанов? — спросил Санчо Панса.
— Да вон они, с громадными руками, — отвечал его господин. — У некоторых из них длина рук достигает почти двух миль.
— Помилуйте, сеньор, — возразил Санчо, — то, что там виднеется, вовсе не великаны, а ветряные мельницы; то же, что вы принимаете за их руки, — это крылья: они кружатся от ветра и приводят в движение мельничные жернова.
— Сейчас видно неопытного искателя приключений, — заметил Дон Кихот, — это великаны. И если ты боишься, то отъезжай в сторону и помолись, а я тем временем вступлю с ними в жестокий и неравный бой…

Читать дальше →
Всего голосов 6: ↑5 и ↓1 +4
Просмотры 9.6K
Комментарии 5

Представление движений в 3D моделировании: интерполяция, аппроксимация и алгебры Ли

Блог компании Align Technology, R&D C++ *CAD/CAM *Математика *
В этой статье мне бы хотелось рассказать об одном интересном математическом приеме, который будучи весьма интересным и полезным мало известен широкому кругу людей, занимающихся компьютерной графикой.

Сколько существует разных способов представить обыкновенный поворот в трехмерном пространстве? Большинство людей, когда-либо занимавшихся 3D-графикой или 3D-моделированием, сходу назовут три основных широко распространенных варианта:

  • Матрица поворота 3x3;
  • Задание поворота через углы Эйлера;
  • Кватернионы.

Люди с богатым опытом добавят сюда почему-то не пользующийся популярностью четвертый пункт:
  • Ось поворота и угол.

Мне бы хотелось рассказать о пятом способе представления вращений, который симпатичен тем, что удобен для параметризации, позволяет эффективно строить полиномиальные аппроксимации этих параметризаций, проводить сферическую интерполяцию, и главное, универсален — с минимальными изменениями он работает для любых видов движений. Если вам когда-либо был нужен метод, который позволял бы легко сделать «аналог slerp, но не для чистых вращений, а для произвольных движений, да еще и с масштабированием», то читайте эту статью.
Читать дальше →
Всего голосов 54: ↑53 и ↓1 +52
Просмотры 27K
Комментарии 14

Интерполяция замкнутых кривых

.NET *Алгоритмы *C# *Математика *
Всем привет! Недавно возникла практическая необходимость использовать интерполяцию для замкнутых кривых. Проект разрабатывался под .Net на C#, а готовых реализаций алгоритма я не обнаружил, впрочем, как и для других языков и технологий. В результате пришлось самому изучить мат.часть существующих методов и написать свою библиотеку. Наработками и готовым решением готов поделиться с вами.


Читать дальше →
Всего голосов 45: ↑44 и ↓1 +43
Просмотры 16K
Комментарии 18

Создание забавных и привлекательных анимаций простыми функциями Spine (внутри тяжёлые gif)

Компьютерная анимация *Дизайн игр *
Перевод


(Прим. пер.: 1. Spine — это проприетарный кроссплатформенный пакет для создания двухмерных скелетных анимаций с поддержкой различных игровых тулкитов.
2. Осторожно, в посте есть около 38 МБ gif'ок, все они спрятаны под кат.)


Как создать плавное переключение или поворот спрайтов?


Создание плавного и естественного переключения и поворот спрайтов при работе со Spine или любым другим инструментом интерполяции анимации часто бывает трудной задачей. Оно может развалить порядок анимации и сделать окончательный результат дёргающимся или неуклюжим.

Я обычно использую следующий подход: маскирую момент поворота или переключения с помощью деформаций, например, добавляю эффект упругости к анимации в течение ключевых кадров (увеличивая и уменьшая масштаб спрайта), когда выполняется поворот ассета или переключается спрайт.
Читать дальше →
Всего голосов 28: ↑28 и ↓0 +28
Просмотры 17K
Комментарии 7

Теоретические основы сплайн-интерполяции или почему IQ тесты не имеют решения

Алгоритмы *C# *Математика *

Доброго времени, Хабр!

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

Начну с небольшой вводной. Будучи студентом 4-го, на тот момент, курса бакалавриата, я изучал курс «Компьютерная графика». Много там было разных интересных (и не очень) заданий, но одно прямо особо запало мне в душу: интерполяция кубическими сплайнами с заданными первыми производными на концах интервала. Пользователь должен был задавать значения первых производных, а программа — считать и выводить на экран интерполяционную кривую. Особенность и основная сложность задания заключена в том, что задаются именно первые производные, а не вторые, как в классической постановке сплайн-интерполяции.
Как я ее решал, и к чему оно в итоге пришло, я как раз и изложу в этой статье. И да, если по описанию задачи вы не поняли ни в чем ее смысл, ни в чем сложность, не переживайте, все это я также постараюсь раскрыть. Итак, поехали.

А, нет, погодите один момент. Вот вам два числовых ряда:
a) 2, 4, 6, 8, ?
b) 1, 3, ?, 7, 9

Какие числа должны стоять на месте вопросов и почему? Вы действительно уверены в своем ответе?
Читать дальше →
Всего голосов 37: ↑34 и ↓3 +31
Просмотры 73K
Комментарии 63
1