Двухплоскостная обработка пикселей YUV 4:2:0 с помощью ускоренной структуры

#ios #swift #objective-c #accelerate-framework

Вопрос:

Есть ли какой-либо возможный способ напрямую управлять двухплоскостным видео YUV 4:2:0 с помощью Accelerate framework?

или мне нужно, например, выполнить приведенные ниже действия для операции переворота?

  1. vImageConvert_420Yp8_Cb8_Cr8ToARGB8888
  2. vImageHorizontalReflect_ARGB8888
  3. vImageConvert_ARGB8888To420Yp8_Cb8_Cr8

Ответ №1:

Если у вас есть три буфера для передачи vImageConvert_420Yp8_Cb8_Cr8ToARGB8888 , вы можете просто вызвать vImageHorizontalReflect_Planar8 каждый буфер.

Многие функции vImage фактически деинтерлируют буферы (см. Здесь), поэтому есть большая вероятность, что вызов функции planar reflect три раза может быть быстрее, чем вызов чередующегося варианта.