Низкая производительность декодирования больших изображений с помощью Core Image.IOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Низкая производительность декодирования больших изображений с помощью Core Image.

Сообщение Anonymous »

Я создаю приложение для камеры, которое выполняет некоторую постобработку после того, как фотография была сделана. При разрешении 12 МП обработка довольно хорошая, но изображения большего размера (24 МП) работают очень медленно.
Я создал очень простой пример, чтобы продемонстрировать проблему, которая заключается в загрузке изображения и его рендеринге в данные.

Код: Выделить всё

let context = CIContext()

let imageUrl = Bundle.main.url(forResource: "12mp", withExtension: "jpg")!
let data = try! Data(contentsOf: imageUrl)

let ciImage = CIImage(data: data)!

let start = CFAbsoluteTimeGetCurrent()

let data = context.jpegRepresentation(of: ciImage, colorSpace: context.workingColorSpace!)

print(data?.count)
print("Resize Completed: " + String(CFAbsoluteTimeGetCurrent() - start))
Выполнение этого кода на iPhone 16 Pro с разными изображениями дает следующие результаты:
  • 12MP
    strong> => 0,03 с
  • 24 МП => 1,22 с
  • 48 МП => 2,98 сек.
Я понимаю, что время обработки будет увеличиваться с увеличением разрешения, но это не кажется линейным. Я пробовал устанавливать различные параметры CiContext, такие как .useSoftwareRenderer: false, но это не дало никаких результатов.
Из профилирования процесса видно, что декодирование JPEG является узким местом. Это для изображения с разрешением 48 МП:
Изображение

Можно ли как-нибудь это улучшить?
Любая помощь приветствуется!

Подробнее здесь: https://stackoverflow.com/questions/793 ... core-image
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «IOS»