Я использовал sws_scale
для преобразования группы изображений RGB32 в формат YUV420. Каждое изображение очень похоже на предыдущее, и они отличаются только от области прямоугольника Q.FFmpeg sws_scale on changed area
Мой вопрос заключается в том, как использовать Q для ускорения процесса преобразования? Дополнительный параметр должен быть добавлен к функции sws_scale
.
sws_scale(ctx, in_plane, in_stride, sliceY, height, out_plane, out_stride, Q){
// parameter out_plane stores the YUV420 data of previous image
Instead of scanning the whole image, scan through rectangle Q{
Do conversion
}
}
Не создает ли новый контекст дорогостоящим с точки зрения ресурсов? Например, если область изменяется в каждом кадре произвольно? –
Это зависит от вашего определения стоимости. Его несколько небольших распределений памяти и некоторые вычисления; (возможно) дешевле инициализировать новый контекст для преобразования небольшого региона, чем для преобразования полного кадра с использованием одного статического контекста. –
Я предполагаю, что каждый раз буду купировать некоторый bechmarking по libyuv vs swscale с новым контекстом и посмотреть, как это выглядит. –