Qualquer maneira de codificar um PNG mais rápido do que UIImagePNGRepresentation?

Estou gerando um monte de telhas paraCATiledLayer. Leva cerca de 11 segundos para gerar 120 blocos em 256 x 256 com 4 níveis de detalhes em um iPhone 4S. A imagem em si cabe em 2048 x 2048.

Meu gargalo éUIImagePNGRepresentation. Demora cerca de 0,10-0,15 segundos para gerar cada imagem de 256 x 256.

Eu tentei gerar vários ladrilhos em diferentes filas de fundo, mas isso só reduz para cerca de 9 a 10 segundos.

Eu também tentei usar o framework ImageIO com código como este:

- (void)writeCGImage:(CGImageRef)image toURL:(NSURL*)url andOptions:(CFDictionaryRef) options
{
    CGImageDestinationRef myImageDest = CGImageDestinationCreateWithURL((__bridge CFURLRef)url, (__bridge CFStringRef)@"public.png", 1, nil);
    CGImageDestinationAddImage(myImageDest, image, options);
    CGImageDestinationFinalize(myImageDest);
    CFRelease(myImageDest);
}

Enquanto isso produz arquivos PNG menores (win!), Leva cerca de 13 segundos, 2 segundos a mais que antes.

Existe alguma maneira de codificar uma imagem PNG deCGImage Mais rápido? Talvez uma biblioteca que faz uso deNEON Extensão ARM (iPhone 3GS +) comolibjpeg-turbo faz?

Existe talvez um formato melhor que o PNG para salvar blocos que não ocupam muito espaço?

A única opção viável que consegui criar é aumentar o tamanho do bloco para 512 x 512. Isso reduz o tempo de codificação pela metade. Não tenho certeza o que isso vai fazer para a minha visão de rolagem embora. O aplicativo é para iPad 2+ e suporta apenas iOS 6 (usando o iPhone 4S como linha de base).

questionAnswers(1)

yourAnswerToTheQuestion