Рубрика «дизеринг»

Мои размышления про экранную клавиатуру для Flipper Zero под экранчик 128х64 пикселя - 1

Недавно я увидел пост с приглашением разработчиков в проект Flipper Zero и подал заявку. Меня добавили в репозиторий с прошивкой и я стал много думать над юзабилити устройства. Приснилось, что мне надо отсканировать кучу ключей-брелков от разных подъездов. Во сне были разные люди, квартиры, дождь, и почему-то мне дали целую горсть этих желтых кругляшей, отличающихся друг от друга только количеством грязи на них. И естественно, чтобы как-то совладать с этим беспорядком, я решил внести все эти ключи во Flipper Zero.
Прямо во сне, я заносил новые идентификаторы и все они добавлялись в менюшку как «Ключ», что делало действо еще бессмысленней. Получился большой список, состоящий только из слова «Ключ». Подумалось, что надо переписать прошивку. И тут как раз преимущество сна — все задуманное сбывается одномоментно. Ключи стали добавляться с рандомным суффиксом как «Ключ 74», а следом за ним мог добавиться «Ключ 22». Номер именно рандомный, не путать с контрольными суммами или хешами. В принципе, если есть хорошая память, то можно запомнить, что «Ключ 22» от Ленина 54, а «Ключ 74» от Пушкина 29. Подумалось, что неплохо бы как-то редактировать номера, прямо на Флиппере, прямо в списке ключей: у нас же свободны кнопки влево-вправо, пусть они инкрементируют/декрементируют номер! А длинное удержание вызовет вызов полноценной клавиатуры! Но стоп, какую клавиатуру рисовать? Стандартную Qwerty с переключением на Йцукен? Русифицированную Яверты? У нас же экран всего 128х64 пикселя, к тому же в него надо как-то запихнуть еще вывод набираемого! Как все это уместить? Неужели вводить текст Азбукой Морзе?

Читать полностью »

image

Введение

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

Блокнот Mathematica для воспроизведения результатов можно найти здесь, а pdf-версия находится здесь.

Что такое дизеринг?

Дизеринг (Dithering) можно описать как намеренное/осознанное внесение в сигнал шума для предотвращения ошибок большого масштаба/низкого разрешения, возникающих вследствие дискретизации или субдискретизации.

Если вы когда-нибудь работали с:

  • Аудиосигналами,
  • Палитровыми форматами изображений 90-х

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

Однако я обнаружил в Википедии довольно удивительный факт о том, как впервые был определён и использован дизеринг:Читать полностью »

Я хотел, чтобы в моей игре The Last Boundary была туманность. Они потрясающе выглядят и космос без них не космос, а просто разбросанные по фону белые пиксели. Но так как игру я делаю в стиле «пиксель-арт», то мне нужно было как-то заставить мою библиотеку шума генерировать пикселизированные изображения.

Вот несколько примеров:

Создание пиксельной туманности при помощи шума и Median Cut - 1

Создание пиксельной туманности при помощи шума и Median Cut - 2

Ещё примеры

Создание пиксельной туманности при помощи шума и Median Cut - 3

Создание пиксельной туманности при помощи шума и Median Cut - 4

Создание пиксельной туманности при помощи шума и Median Cut - 5

Создание пиксельной туманности при помощи шума и Median Cut - 6

В одноцветных примера используется 8 цветов, а в других — 16 цветов. В этой статье я расскажу, как создавал пикселизированную туманность для The Last Boundary.
Читать полностью »

image

Создатель Papers, Please Лукас Поуп работает над новым трёхмерным проектом Return of the Obra Dinn, в котором пытается с помощью эффекта дизеринга воссоздать в игре ощущение старинной книги.

Для начала краткое объяснение: Obra Dinn выполняет внутренний рендеринг всего в 8-битной палитре в градациях серого, а затем на этапе постобработки преобразует конечные выходные данные в 1-битные значения. Преобразование из 8-битного в 1-битный цвет выполняется сравнением каждого пикселя исходного изображения с соответствующей точкой в тайловом паттерне дизеринга. Если значение пикселя изображения больше значения точки паттерна дизеринга, то выходному биту присваивается значение 1, в противном случае оно равно 0. Выходные данные упрощаются до 1-битных значений, а глаз зрителя объединяет пиксели, аппроксимируя из них больше битов.
Читать полностью »

Псевдотонирование: обзор

Псевдотонирование изображений: одиннадцать алгоритмов и исходники - 1

Про сегодняшнюю тему для программирования графики — псевдотонирование (дизеринг) — я получаю много писем, что может показаться удивительным. Вы можете подумать, что псевдотонирование — это не то, чем программисты должны заниматься в 2012 году. Разве псевдотонирование — не артефакт история технологий, архаизм времён, когда дисплей с 16 миллионами цветов программистам и пользователям мог только сниться? Почему я пишу статью о псевдотонировании в эпоху, когда дешевые мобильные телефоны работают с великолепием 32-битной графики?

На самом деле псевдотонирование по-прежнему остаётся уникальным методом не только по практическим соображениям (например, подготовка полноцветного изображения для печати на чёрно-белом принтере), но и по художественным. Дизеринг также находит применение в веб-дизайне, где этот полезный метод используется для сокращения числа цветов изображения, что уменьшает размер файла (и трафик) без ущерба для качества. Он также используется при уменьшении цифровых фотографий в формате RAW в 48 или 64 бита на пиксель до RGB в 24 бита на пиксель для редактирования.

И это — применения лишь в области изображений. В звуке дизеринг тоже играет ключевую роль, но боюсь, обсуждать здесь дизеринг аудио я не буду. Только псевдотонирование изображений.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js