A Mac OS X framework that serves as a container for several other frameworks related to optimization and high performance.
(I want to get a concrete definition for this. I’ve had trouble
A channel dedicated to representing how opaque a given pixel is. Unlike the red, green, and blue channels, which specify the intensity of their respective colors, the alpha channel specifies the opacity of the entire pixel. For example, if a pixel was defined using float
values ranging from 0.0 to 1.0, an alpha channel intensity of 1.0 would indicate 100% opacity, while an intensity of 0.0 would indicate 0% opacity, or transparent.
A common image processing technique that changes the intensities of a pixel to reflect the intensities of the surrounding pixels. Using convolution, you can get image effects like blur, emboss, and sharpen.
A special type of memory that is substantially faster than typical main memory (RAM). When a program asks the CPU to read or write data in memory, it first checks to see if this data is stored in cache memory (since it will be a lot faster to retrieve or write). Cache sizes are usually quite small though, (under 2 MB) so in order to make use of it, the data must be small enough to fit in the cache.
The number that is multiplied to each of the factors in a polynomial equation. For example, in the equation x2 + 2x + 1, the coefficients are 1, 2, and 1.
An effect that takes each bright pixel in the source image and expands it into the shape of the kernel, flipped horizontally and vertically. The contribution of the source pixel to the kernel-shaped region depends on two things: the brightness of the source pixel (brighter pixels contribute more) and the values of the kernel pixels (pixels that are dark, relative to the center of the kernel, contribute more to their locations in the kernel-shaped region than pixels that are bright).
A morphological operation that is similar to dilation. It takes dark pixels in an image and spreads them around, causing them to “eat away” (or erode) objects in an image.
A histogram operation that makes the resultant image conform to a uniform histogram, ensuring an equal frequency of pixel intensities.
An image process that when applied to an image causes its appearance to change. Many filters use kernel convolution to achieve their effect. Emboss, blur, smooth, and edge detect are all examples of common image filters that use convolution kernels.
an operation that changes color intensity values to correct for the nonlinear response of the eye or of a display.
A diagram that shows the frequency of occurrences within a data set. In the graphics domain, histograms can be used to plot the frequencies of certain pixel intensities.
A type of geometric operation that reflects an image about its y-axis.
A filter that shifts pixels along the x-axis to create an effect that’s similar to physical shearing.
An image encoding standard that specifies the number of color channels and number of bits per channel.
A format that encodes each color (and alpha) channel, one after the other, for every pixel. In contrast to planar image formats which encode an entire image using one color at a time, interleaved image formats alternate through each channel, encoding data for all channels simultaneously within each pixel. For example, an interleaved image would encode an image in a RGBRGBRGB fashion, where as a planar image would encode the same image as RRRGGGBBB.
A grid of numbers used in both convolution and morphological operations (such as dilation and erosion). It is typically represented as a square grid (or matrix) whose height and width are both odd, such as a 3 x 3 grid. Each cell in the grid contains a number. An image process that uses a kernel typically takes these numbers within the kernel and applies them to the image by undergoing a series of arithmetic operations between the kernel values and the image pixel intensity values.
A commonly used math routine for resampling values in a data set. vImage uses this as a default technique for determining new pixels that did not previously exist in the input image.
A data structure used to quickly make computations or retrievals of certain values. In image processing it is used to store precalculated values of an equation instead of calculating the value each time it is requested. For example, if the equation is y = 2x, and you know that there are at most n distinct values, then you can create an array of size n (one for each input), that stores the precalculated value of the equation for the corresponding input (e.g. [0] = 0, [1] = 2, [2] = 4, ... [n] = 2n
).
A collection of numbers arranged in a grid. It can be thought of as the mathematical equivalent of a two-dimesional array. Much like two-dimensional arrays, matrices are composed of rows and columns with their elements referred to as cells.
A technique for processing the alpha channel of a pixel. Instead of performing the alpha blend for each pixel, the alpha value is premultiplied to each of the other color channel values for that pixel. The pixel can then be interpreted as is from then on since all of the color channel values have been appropriately changed to reflect the alpha component.
A group of bright, high-intensity pixels in an image, as opposed to the darker pixels, which are considered part of the background.
The maximum number of factors in an equation. For example, the equation x2 + x + 1 has an order of 3 because there are three distinct factors in the equation (x2, x, and x0).
A format that encodes a color channel. Planar images tend to be faster to operate on than nonplanar images because operations do not need to be repeated for each color channel. A grayscale image is an example of a planar image since it encodes only one (black and white) channel.
An equation commonly used for transforming pixel intensities in an image that is a summation of n factors and coefficients in the form of axn + bxn—1 + ... cx0.
A pixel that already has its intensity levels appropriately multiplied by the alpha value.
The 2D graphics technology used throughout Mac OS X and in most Cocoa applications.
The portion of an image data buffer that is being operated upon by a function. It is not uncommon to allocate a large pixel buffer to hold several images and then process only the smaller regions of interest when need be.
An operation that changes the dimensions of an image.
A function used to determine new pixel values for an image that has its dimensions changed somehow.
An operation to rotate an image by a certain number of degrees.
To shrink or enlarge an image by a certain percent.
A programming paradigm in which values are operated upon individually. Scalar programming is more common than vector code.
Single Instruction, Multiple Data. A computing technique used to achieve data level parallelism. Commonly employed in vector processors, this technique allows for multiple data elements to be processed in a single CPU instruction.
Streaming SIMD Extensions. Intel’s SIMD instruction set.
A grouped series of numbers. Commonly represented either as a row of numbers [1, 2, 3, 4] or a column of numbers. It is analogous to an array.
A processor that can perform arithmetic on several pairs of numbers simultaneously. Also called an array processor.
Code makes use of available on-board vector processors. vImage uses vector code.
A type of geometric operation that reflects an image about its x-axis.
A filter that shifts pixels along the y-axis to create an effect that’s similar to physical shearing.
© 2008 Apple Inc. All Rights Reserved. (Last updated: 2008-10-15)