Hacker News Digest

Тег: #bayer-filter

Постов: 2

Optimizing a 6502 image decoder, from 70 minutes to 1 minute (colino.net)

Изначальный алгоритм декодирования изображений с камеры Quicktake 150 на процессоре 6502 работал 70 минут. Основная проблема — сложный формат сжатия на основе кодирования Хаффмана и 16-битной математикой, что крайне неэффективно для 8-битного процессора.

Оптимизация началась с отказа от декодирования цвета, поскольку итоговое изображение было монохромным. Это сократило обработку только до зелёных пикселей матрицы Байера. Далее удалили ненужные буферы и промежуточные шаги, включая интерполяцию, что уменьшило размер вывода до 320×240. В итоге остался лишь один используемый буфер из трёх. Эти изменения сократили количество инструкций с 301 млн до 25 млн, а время декодирования — до минуты. Ключевой вывод: алгоритмическая оптимизация даёт больший выигрыш, чем низкоуровневая оптимизация кода.

by davikr • 29 сентября 2025 г. в 10:11 • 181 points

ОригиналHN

#6502#image-decoding#huffman-coding#algorithm-optimization#low-level-programming#bayer-filter#performance-optimization

Комментарии (28)

  • Обсуждение визуального парадокса: изображение с чередующимися черными пикселями кажется более четким, чем изображение без них, несмотря на одинаковый объем информации.
  • Ностальгия по низкоуровневому программированию и работе с аппаратными ограничениями (память, скорость) как к refreshing практике для инженеров.
  • Технические гипотезы о причинах визуальных артефактов (масштабирование браузером, адаптивная подсветка, HDR-режим).
  • Критика современного ПО: несмотря на миллионократный рост мощности hardware, воспринимаемая скорость и отзывчивость интерфейсов часто снизились.
  • Идея о необходимости целенаправленной оптимизации кода для повышения эффективности, возможно, с использованием ИИ.

Line scan camera image processing for train photography (daniel.lawrence.lu) 🔥 Горячее

  • Камера – Alkeria Necta N4K2-7C, 4096×2 Bayer, 16-бит raw.
  • ROI – энергия ∂I/∂x / (0.1·max(I)+|∇I|); 99-й перцентиль по блокам, порог 1.5× минимума.
  • Скорость – сравниваем два зелёных канала Bayer-сдвигами ±7 px, подпиксельный пик методом итеративного Гаусса.
  • Ресэмплинг – интерполяция по скорости, чтобы не растянуть/сжать объект.
  • Демозаик – bilinear + коррекция полос.
  • Полосы – вычитаем медиану по строкам.
  • Шум – Gaussian + bilateral фильтр.
  • Косой кадр – Hough-прямые → угол → поворот.
  • Цвет – калибровка по чекеру X-Rite.
  • Код – Python + NumPy + OpenCV, «vibe-coding» в Cursor.

by dllu • 23 августа 2025 г. в 16:09 • 413 points

ОригиналHN

#python#numpy#opencv#image-processing#computer-vision#line-scan-camera#bayer-filter#gaussian-filter#bilinear-interpolation#hough-transform

Комментарии (66)

  • Пользователи делятся опытом: кто-то пробовал сканировать деревья дроном, кто-то делает slit-scan-анимации вручную, а кто-то вспоминает сканеры и старые цифровые спины.
  • Обсуждаются промышленные применения: сортировка продуктов на конвейере, фото-финиш, спутники и даже медицинская ОКТ.
  • Рассказывают, как почти любую камеру можно превратить в line-scan, выставив только одну строку пикселей и получив 60 000 FPS.
  • Показывают примеры снимков из окна поезда и спорят, насколько реально «отсканировать» часовую поездку целиком.
  • Отмечают художественный эффект: поезд застыл между полосами цвета, а движущиеся части искажаются, как у спортсменов на фото-финиша.