Методы сжатия данных
Годовой спецкурс ВМиК МГУ, 2003/04
     

Задание №4. Интерполяция байеровских паттернов

Начало: 28 февраля 2004 года.
Конец: 13 марта 2004 года

Цель задания

Необходимо написать программу, которая умеет получать по изображению, в котором оставлены только компоненты RGB в мозаике Bayer-pattern, восстановленное полноцветное изображение, используя рассмотренные на лекции алгоритмы (Bilinear, Cubic Convolution Interpolation, Smooth Hue Transition Interpolation, Edge Sensing Interpolation, Interpolation with Color Correction, Pattern Recognition Interpolation, New Edge-Directed Interpolation) и ваши собственные идеи.

Описание задания

Введение

Задача - достичь как можно большего качества.

Мерой потерь будет служить PSNR - метрика, обратно пропорциональная среднеквадратичному отклонению пикселов. Потери в цветовых компонентах будут учитываться в средневзвешенной оценке.

Замер будет проводиться в одной номинации.

Однако дополнительно будет оцениваться отсутствие визуальных артефактов. В первую очередь:

  • цветных пятен на серых и цветных изображениях;
  • минимальный муар;
  • качественные вертикальные, горизонтальные и диагональные границы.

Все результаты (с фамилиями авторов) будут сведены на двумерные графики - качество/тестовое_изображение.

Все тестовые картинки будут изображениями в формате RGB 24 бита на компоненту с размерами, кратными 2 по обоим измерениям. Выходное изображение должно иметь тот же размер и формат.

Формат входного файла можно посмотреть в тестовых изображениях. В архиве images_base.zip находятся основные изображения, а в архиве images_ext.zip - дополнительные.

Для подготовки своих изображений используйте фильтры к Photoshop: http://www.peter-cockerell.net:8080/Bayer/filters.zip (их надо распаковать в директорию "Program Files\Adobe\Photoshop ***\Plug-Ins\"). Этот же фильтр (довольно простой, см. http://www.peter-cockerell.net:8080/Bayer/bayer.html) можно использовать как планку для сравнения со своим алгоритмом.

Тестирование будет производится в том числе и на других изображениях, суммарный результат будет усредняться.

Желательна оптимизация по скорости.

За первое место (после собеседования по алгоритму) - большие дополнительные баллы.

За второе и третье место - дополнительные баллы.

Если выходной файл получается с артефактами (полосы, изменение средней яркости и т.п.), программа падает или работает более 3 минут - результат дисквалифицируется.

Для повышения качества в своем алгоритме рекомендуется использовать следующие методы:

  1. Использование более сложного алгоритма распознавания характера точки и выбор в зависимости от него варианта алгоритма интерполяции точки.
  2. Автоматическое определение ситуаций, когда выгоднее использовать раздельную интерполяцию по компонентам, а когда использование нескольких цветовых компонент.
  3. Автоматическое определение "зашумленных" участков и искусственное подавление цветового шума на них. (Самый простой метод - частичное усреднение цветовых компонент с весами на них.)

Общий рекомендуемый порядок действий такой - реализуйте несколько методов интерполяции. Посмотрите, на каких участках они дают хороший результат, а на каких плохой, и постройте усовершенствованный вариант Pattern Recognition, определяющий какой алгоритм использовать для отдельной точки.

Выполнение данного задания позволяет получить баллы, необходимые для получения высокой оценки за курс.

ВНИМАНИЕ! Баллов, набираемых на экзамене (письменном) по курсу будет недостаточно для положительной оценки. Т.е. необходимо выполнить УСПЕШНО хотя бы одно задание.

Обязательная часть

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

Чтобы вам не решать рутинные задачи по работе с BMP, по адресу bayer_prog.zip лежит архив с программой восстановления (работающей с ошибками, в частности берущей не те точки как R & B) - скачайте ее, поправьте алгоритм и доработайте до хорошего результата.

Программа должна быть консольным приложением и запускаться для изображений так:

     debayer image.bmp out_image.bmp
  

Т.е. тестовый файл test.bat вида:

     debayer image1.bmp out_image1.bmp
     debayer image2.bmp out_image2.bmp
     debayer image3.bmp out_image3.bmp
     debayer image4.bmp out_image4.bmp
     debayer image5.bmp out_image5.bmp
     debayer image6.bmp out_image6.bmp
     debayer image7.bmp out_image7.bmp
     debayer image8.bmp out_image8.bmp
  

должен восстанавливать 8 тестовых изображений (image1.bmp, ... image8.bmp) в качественные изображения такого же размера.

Для оценки качества будет использоваться разница между исходным и восстановленными изображениями.

Дополнительная часть

Также будет поощряться аккуратная реализация отдельных алгоритмов.

При этом ваша программа должна уметь выполнять тестовый файл test_.bat вида:

     debayer image1.bmp out_image1_1.bmp -n 1
     debayer image1.bmp out_image1_2.bmp -n 2
     debayer image1.bmp out_image1_3.bmp -n 3
     debayer image1.bmp out_image1_4.bmp -n 4
  

который будет восстанавливать изображение методами 1,2,3... Программа при запуске должна выдавать информацию, какой номер какому методу соответствует.

По умолчанию, т.е. без параметра -n должен выбираться оптимальный с вашей точки зрения метод.

Литература

  1. Описание методов можно найти в материалах лекций.
  2. Подборка статей по методам интерполяции доступна на
    http://library.graphicon.ru:8080/catalog/294
    http://library.graphicon.ru:8080/catalog/295
    Если вы найдете еще хорошие статьи - пожалуйста сообщайте, мы их добавим.
  3. Описание NEDI доступно на http://neuron2.net/library/nedi.pdf
  4. Фильтры к Photoshop: http://www.peter-cockerell.net:8080/Bayer/filters.zip

Требования к программе

Главное требование - выполнить обязательную часть задания.

Язык реализации - С или С++

Программа обязательно должна быть консольной (НИКАКОГО ИНТЕРФЕЙСА). Потерпите! :) Писать интерфейс вам потребуется совсем скоро при обработке видео.

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

Программа должна устойчиво работать с изображениями с размерами, кратными 2, в формате BMP и режиме RGB 24 бита на точку.

Внимательно изучите требования к сдаваемым работам на сайте. В частности 0 баллов ставится, если вы забудете исходные тексты.

Оформление работы

ZIP-архив с исходными текстами и исполняемыми файлами, названный по схеме GGG_Z_V_nnnnnnnn.zip (где G - трехзначный номер группы, Z - номер задания, V - номер версии задания, nnnnnnnn - номер студенческого билета) присылайте на

Например, студент 306 группы с номером студенческого билета 05015042, сдающий обновленную (вторую) версию программы по первому заданию, должен прислать архив с именем 306_1_2_05015042.zip.

Также смотрите здесь, какие файлы нам присылать и как их оформить

НЕ ЗАБУДЬТЕ ПОЛОЖИТЬ В АРХИВ файл readme.txt.

Главная | О курсе | Лекции | Библиотека | Задания | Оценки | FAQS
  (с) Лаборатория компьютерной графики, 1997-2003
Дизайн: Алексей Игнатенко