Автоматическая настройка основного изображения, слишком медленное рендеринг на процессоре - PullRequest
1 голос
/ 04 ноября 2011

Понятно, что при рендеринге на CPU, а не на GPU, рендеринг займет гораздо больше времени. Однако фотографии, сделанные с помощью камеры iPhone 4, слишком велики для визуализации с помощью графического процессора, поэтому они должны отображаться с помощью процессора. Это хорошо работает для фильтров Core Image, за исключением фильтров, возвращаемых из autoAdjustmentFiltersWithOptions: при рендеринге CIImage, модифицированного этими фильтрами, это занимает более 40 секунд, в отличие от доли секунды с графическим процессором.

Шаги для воспроизведения:

  1. Создание CIImage с изображением размером более 2048x2048 на iPhone 4 или 4096x4096 на iPhone 4S.
  2. Вызовите метод autoAdjustmentFiltersWithOptions: для CIImage.
  3. Применить возвращенные фильтры к CIImage.
  4. Визуализация CIImage для CGImageRef.

Ожидаемые результаты: Изображение занимает на несколько секунд больше времени, чем при использовании графического процессора для визуализации.

Фактические результаты: На рендеринг уходит до 40 секунд.

Примечания: Приложение «Фотографии» может улучшить большие фотографии намного быстрее, чем этот метод. Показывает, что аппаратное обеспечение iPhone 4 / 4S способно достичь этого, независимо от того, использует ли приложение Photos частные API или нет.

У кого-нибудь есть совет?

1 Ответ

1 голос
/ 04 ноября 2011

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

...