Re: Best way to composite/tile multiple CGImages to one image
Re: Best way to composite/tile multiple CGImages to one image
- Subject: Re: Best way to composite/tile multiple CGImages to one image
- From: Jim Crate <email@hidden>
- Date: Wed, 12 Mar 2014 13:47:59 -0400
On Mar 8, 2014, at 9:17 AM, Trygve Inda <email@hidden> wrote:
>> On 08 Mar 2014, at 04:38, Trygve Inda <email@hidden> wrote:
>>> I need to composite/tile about 20 images in a 4x5 grid to one image.
>>
>> What for? Knowing that might help finding a way to speed it up. I.e. why are
>> the images separate, where are they supposed to go in the end? Display on
>> screen? Writing to a standard image file format? Something else?
>
> The images are coming from a video file at periodic intervals and are
> destined for a jpg file consisting of multiple thumbnails stitched together.
>
> The CGImages come from an AVAssetImageGenerator.
>
> Instruments says the time spent in
>
> [imageGenerator copyCGImageAtTime:targetTime actualTime:&actualTime
> error:&error];
>
> Is small, but the time in CGContextDrawImage is quite large. However, if I
> comment out the CGContextDrawImage line, then the time spent in
> copyCGImageAtTime it rather more significant.
>
> I imagine when I get the CGImageRef from copyCGImageAtTime, I am not
> actually getting any pixel data until it tries to draw in
> CGContextDrawImage.
I have an app that does some transformations on images and writes them back to jpegs, and it processes 25 images (1288×1936 pixels) per second on my 2011 MBP (2.2 i7), maxing all 8 cores. Almost 50% of the time is spent in CGContextDrawImage. I played with the code a bit to use CoreImage instead, and while it performed at roughly the same rate of 25 images per second, most of the CPU time was now spent reading and encoding the jpegs, and CPU time was cut in half. In my case, the spinning platter hard disk is likely the bottleneck, and the process is fast enough either way. Since you are writing 1 jpeg for every 20 images, using CoreImage will likely give you a noticeable performance boost.
Jim Crate
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden