Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

  1. В потоке main:
    1. Получает от процесса 1 сообщения (MQ) с командами на обработку.
    2. Читает входные данные из MMF от процесса 1.
    3. Для каждого запроса запускает рабочий поток на обработку (большие копирования данных здесь, мне кажется, не нужны; также см. статьи по структурам данных на стр. Неоднородная параллелизация).
      Примечание: запускать не более 4 рабочих потоков одновременно, остальные приходящие запросы ставить в очередь.
  2. i-ый рабочий поток:
    1. Сглаживает изображение маской Гаусса (см. примерпроект-заготовку ниже).
    2. Отправляет процессу 1 сообщения (MQ) о прогрессе внутри изображения и об окончании обработки.
    3. Организует передачу процессу 1 обработанного изображения через общую память (ShMem). Служебную информацию передавать сообщениями (MQ). Синхронизироваться с процессом 1 с помощью семафоров.

...

Поскольку процесс 1 передаёт изображение напрямую из файла, можно выбрать любой удобный формат файла изображения (или библиотеку, способную вычитывать форматы из памяти, не по имени файла; вообще Qt это умеет, как я помню).

Пример

<чуть позже...>Заготовка:  img.zip