Открыть список
Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

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

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

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

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

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

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

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

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

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

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

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

Алгоритмы

Введение


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

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

Алгоритмы

Введение


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

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

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



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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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


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

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


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

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

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

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

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

АлгоритмыLabVIEW
image

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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


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


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


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

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

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

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

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

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

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

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

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

Движение объекта к точке в Unity3D

Разработка игрUnity
Из песочницы

Введение


Предположим, что у нас есть объект, который должен двигаться к точке. Задачка-то простенькая, использовать интерполяцию, например. Но что, если наш объект может поворачиваться на случайный угол? Как тогда задать точку для интерполирования? Ведь наверняка наша условная вагонетка должна двигаться только по направлению своих колес. Соответственно либо тыльной, либо фронтальной стороной. С этой задачей нам поможет справиться векторная алгебра.
Читать дальше →
Всего голосов 12: ↑8 и ↓4 +4
Просмотры21.9K
Комментарии 6
1