Блок задач

12. Многопоточность

Сложность 6

Задача «Обработка изображений»

Разработать класс, позволяющий производить многопоточную обработку картинок. При последовательной обработке видео, часто возникают проблемы с производительностью. Особенно остро проблема возникает при обработке 4k видео (3840x2160 и более)

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

Реализовать базовый класс, позволяющий обрабатывать картинки с использованием пула потоков. Реализовать несколько простых эффектов (инвертирование цветов, взятие одной из компонент (r,g,b), размазывание, изменение яркости, изменение контраста...) За реализацию сложных эффектов возможно увеличение баллов. Произвести тестирование на скорость обработки.

Замечания

  1. Распределение на потоки обработки, должно происходить путём разбиения картинок (исходной и конечной) на горизонтальные полосы (слайсы) и передачей их (слайсов) на индивидуальную обработку.

  2. Необходимо предусмотреть многократное применение эффекта для одного экземпляра класса (для разных картинок).