On Jan 19, 2015, at 04:02 , Kevin Meaney <k...@yvs.eu.com> wrote: > > What I'd like to be able to do is to compare profiles obtained this way with > what I think must be AVFoundation's equivalent e.g.: > > AVVideoColorPropertiesKey : [ > AVVideoColorPrimariesKey : AVVideoColorPrimaries_ITU_R_709_2, > AVVideoTransferFunctionKey : > AVVideoTransferFunction_ITU_R_709_2, > AVVideoYCbCrMatrixKey : AVVideoYCbCrMatrix_ITU_R_601_4 > ], > > But the documentation is so poor, I do not understand what things like > AVVideoColorPrimaries_ITU_R_709_2 mean, Apple docs don't help and my duck > duck go searches haven't helped.
Yes, this sucks, but it’s not quite Apple’s fault. This area (colorspaces) is a morass of disconnected information, and you have no real alternative to putting it together yourself. Each information source has different assumptions about your prior knowledge, your intentions and your workflow, and so doesn’t bother to connect its information to anything else. In many cases, you can’t even tell for sure which *direction* data is moving, let alone what’s happening to it. Wikipedia is a good place to start. “ITU_R_709_2” refers to ITU Rec. BT-709: http://en.wikipedia.org/wiki/Rec._709 <http://en.wikipedia.org/wiki/Rec._709> “ITU_R_601” is ITU Rec. BT-601: http://en.wikipedia.org/wiki/Rec._601 <http://en.wikipedia.org/wiki/Rec._601> These are broadcast TV standards, and therefore (of course) integral to movie-making, because … kittens. 709 is HD, 601 is SD. Color primaries are a way of describing a color space, so (in combination with information from another color space) can be used to derive a method of converting from one color space to another. Transfer functions and matrixes are each an entire method of converting HD or SD colors to RGB. (RGB in what colorspace? Beats me. Just RGB, because … fluffy kittens.) > When I get info about a movie file in Finder some will include a color > profile name e.g.: HD (1-1-1) > If I get info for an image file created from a movie using > AVAssetImageGenerator then the profile name is: Composite NTSC. But I have no > idea how to get this information in code. CGColorSpaceCopyName doesn't work > as it is only returns a string from a CGColorSpace created with > CGColorSpaceCreateWithName. > > What I'd like to know is, is the color profile of the image generated from an > imported movie the same as the color profile equivalent for the movie (see > AVFoundation color property keys above) I'm creating from individual frames? > It would be ideal if I could keep everything using the same profile color > space in my processing pipeline. Because different color space names may imply different underlying color space conversion technologies, about all a mere mortal can do is compare names. However, I’m not sure what “keep” means in that last sentence. If you have an input image file, it already has a color space (explicit or implied). Your output movie has a color space that you specified when you started. If they don’t match, there’s nothing you can do to “keep” them the same, you simply have to do a conversion. It’s the AVAssetWriter’s job to make the conversion for you. The point is you don’t *want* to deal with anything beyond that. “It’s kittens all the way down.” _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) 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: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com