Где кодировать и декодировать?
Вообще есть такая вещь, как мультипоточность, мы можете разбить программу на несколько потоков, которые будут обрабатываться разными ядрами и в них отдельно кодировать и декодировать QR-коды, почитайте ещё про асинхронность.
По идее ещё можно SIMD-инструкции процессора использовать, использовать 128 или даже 512-битные регистры, с ними работать и ускорять расчёты - вот тут можете почитать
https://habr.com/ru/post/308696/