2012-05-14 1 views
1

Я разрабатываю приложение, которое распознает лица на Mac, и я использую QTCaptureSession с QTCaptureDecompressedVideoOutput. Я ограничиваю разрешение видео до 640x360, используя формат пикселей 32ARGB и устанавливая минимальный интервал видеофрагмента на 0, чтобы улучшить частоту кадров, но это действительно не помогло.Как мне получить больше 15FPS с QTCaptureSession?

QTCaptureDecompressedVideoOutput *output = [[QTCaptureDecompressedVideoOutput alloc] init]; 
[output setPixelBufferAttributes:[NSDictionary dictionaryWithObjectsAndKeys: 
            [NSNumber numberWithDouble:640], (id)kCVPixelBufferWidthKey, 
            [NSNumber numberWithDouble:360], (id)kCVPixelBufferHeightKey, 
            [NSNumber numberWithInt:kCVPixelFormatType_32ARGB], (id)kCVPixelBufferPixelFormatTypeKey,          
            nil]];  

output.minimumVideoFrameInterval = 0; 

Независимо от того, что я делаю, частота кадров составляет около 15-15,5 FPS. Это использует встроенную камеру на новейшем процессоре Core i7 от MacBook Pro 15 "/ 2,3 ГГц, работающем под управлением 10.7.3.

ответ

1

Обычно встроенная камера iSight создает огромные кадры. Указанный буферный формат не влияет на входной сигнал захвата, но только конкретный вывод захвата.Кроме того, поскольку исходные захваченные изображения не находятся в указанных пиксельных форматах, будет выполнено преобразование формата. Поэтому я предполагаю, что, указав другой формат буфера пикселей, вы только замедляете обработку вниз .

minimumVideoFrameInterval 0 по умолчанию, вам не нужно, чтобы изменить его, если вы ищете максимальную частоту кадров. фрейм скорость у вас есть максимально возможная в это время.

Старайтесь избегать указания пиксельного буфера и посмотреть, есть ли разница в FPS. Кроме того, я бы использовал другую внешнюю камеру с меньшим разрешением, что резко снизило бы нагрузку на систему.

+0

Thanks Davyd. Я изначально не устанавливал атрибуты буфера пикселов и все еще имел только 15 кадров в секунду. Я установил минимальный интервал кадра на всякий случай, но да, это по умолчанию 0. После прочтения документации кажется, что настройки по умолчанию оптимизированы для частоты кадров, но я все равно получаю только ~ 15 кадров в секунду. – yipe