Я пытаюсь применить некоторые CIFilters
к последовательности CIImage
и хотел бы отображать их в реальном времени (не менее 20-30 кадров в секунду).
Изображения нарисованы на GLKView
через EAGL CIContext
Когда я рисую свои изображения с помощью этого кода (в методе обновления), я получаю ± 20 кадров в секунду (что уже немного жестко):
image = [image imageByApplyingTransform: CGAffineTransformMakeScale(@scale, @scale)];
[self.capture_controller.core_image_context drawImage:image atPoint: [0, 0] fromRect: image.extent];
Если я добавлю только один простой фильтр, прежде чем он упадет до 10-12 кадров в секунду (compo
- это фильтр CISourceOverCompositing
, для которого inputImage установлен раз и навсегда):
[self.compo setValue:image forKey: @"inputBackgroundImage"];
image = [self.compo outputImage];
Естьспособ получить лучшую производительность от CoreImage?Я думаю, что UIImageView может отображать последовательность быстрее, поэтому это должно быть возможно.