/* values for the flags, the stuff on the command line is different */
#define SWS_FAST_BILINEAR 1
#define SWS_BILINEAR 2
#define SWS_BICUBIC 4
#define SWS_X 8
#define SWS_POINT 0x10
#define SWS_AREA 0x20
#define SWS_BICUBLIN 0x40
#define SWS_GAUSS 0x80
#define SWS_SINC 0x100
#define SWS_LANCZOS 0x200
#define SWS_SPLINE 0x400
Какой из них лучше для качества изображения? Каковы различия? Все ли они потеряны? Я пытаюсь преобразовать RGB24 в YUV420P.Какой флаг использовать для лучшего качества с помощью sws_scale?
Я готовлю кадры для кодирования, у меня есть кадры RGB24 и AFAIU. Мне нужно, чтобы они были преобразованы в YUV420p, прежде чем перейти в avcodec_encode_video2. Что касается масштабирования: размер не изменяется при масштабировании. Означает ли это, что я могу использовать 0 с флагом? – Sergey
Преобразование из RGB в YUV не требует масштабирования. Преобразование из YUV444 в YUV420 уменьшает разрешение цветных плоскостей и, следовательно, включает масштабирование. Вы должны попробовать разные значения и посмотреть, сможете ли вы увидеть разницу и что лучше всего подходит для ваших глаз. В противном случае я бы просто отправился на Бикубич или даже Билинейный. – Mathias
Но если никакого масштабирования не требуется, флаг не нужен (может быть равен нулю). Правильно? Я пробовал разные флаги, но я не видел различий. Хотя, быстрая билинейная работа работала быстрее (профилировала ее). Но если он работал быстрее с быстрым билинейным, тогда задействован флаг ... hmmm ... :) – Sergey