MPSImageHistogram(3) MetalPerformanceShaders.framework MPSImageHistogram(3)
NAME
MPSImageHistogram
SYNOPSIS
#import <MPSImageHistogram.h>
Inherits MPSKernel.
Instance Methods
(nonnull instancetype) - initWithDevice:histogramInfo:
(nullable instancetype) - initWithCoder:device:
(void) - encodeToCommandBuffer:sourceTexture:histogram:histogramOffset:
(size_t) - histogramSizeForSourceFormat:
Properties
MTLRegion clipRectSource
BOOL zeroHistogram
vector_float4 minPixelThresholdValue
MPSImageHistogramInfo histogramInfo
Additional Inherited Members
Detailed Description
The MPSImageHistogram computes the histogram of an image.
Method Documentation
- (void) encodeToCommandBuffer: (nonnull id< MTLCommandBuffer >) commandBuffer(nonnull id< MTLTexture >) source(nonnull id< MTLBuffer >)
histogram(NSUInteger) histogramOffset
Encode the filter to a command buffer using a MTLComputeCommandEncoder. The filter will not begin to execute until after the command
buffer has been enqueued and committed.
Parameters:
commandBuffer A valid MTLCommandBuffer.
source A valid MTLTexture containing the source image for the filter
histogram A valid MTLBuffer to receive the histogram results.
histogramOffset Byte offset into histogram buffer at which to write the histogram results. Must be a multiple of 32 bytes. The
histogram results / channel are stored together. The number of channels for which histogram results are stored is determined by the
number of channels in the image. If histogramInfo.histogramForAlpha is false and the source image is RGBA then only histogram results
for RGB channels are stored.
The histogram results are stored in the histogram buffer as follows:
o histogram results for the R channel for all bins followed by
o histogram results for the G channel for all bins followed by
o histogram results for the B channel for all bins followed by
o histogram results for the A channel for all bins
- (size_t) histogramSizeForSourceFormat: (MTLPixelFormat) sourceFormat
The amount of space in the output MTLBuffer the histogram will take up. This convenience function calculates the minimum amount of space
needed in the output histogram for the results. The MTLBuffer should be at least this length, longer if histogramOffset is non-zero.
Parameters:
sourceFormat The MTLPixelFormat of the source image. This is the source parameter of -encodeToCommandBuffer:
sourceTexture:histogram:histogramOffset
Returns:
The number of bytes needed to store the result histograms.
- (nullable instancetype) initWithCoder: (NSCoder *__nonnull) aDecoder(nonnull id< MTLDevice >) device
NSSecureCoding compatability While the standard NSSecureCoding/NSCoding method -initWithCoder: should work, since the file can't know
which device your data is allocated on, we have to guess and may guess incorrectly. To avoid that problem, use initWithCoder:device
instead.
Parameters:
aDecoder The NSCoder subclass with your serialized MPSKernel
device The MTLDevice on which to make the MPSKernel
Returns:
A new MPSKernel object, or nil if failure.
Reimplemented from MPSKernel.
- (nonnull instancetype) initWithDevice: (nonnull id< MTLDevice >) device(const MPSImageHistogramInfo *__nonnull) histogramInfo
Specifies information to compute the histogram for channels of an image.
Parameters:
device The device the filter will run on
histogramInfo Pointer to the MPSHistogramInfo struct
Returns:
A valid MPSImageHistogram object or nil, if failure.
Property Documentation
- clipRectSource [read], [write], [nonatomic], [assign]
The source rectangle to use when reading data. A MTLRegion that indicates which part of the source to read. If the clipRectSource does not
lie completely within the source image, the intersection of the image bounds and clipRectSource will be used. The clipRectSource replaces
the MPSUnaryImageKernel offset parameter for this filter. The latter is ignored. Default: MPSRectNoClip, use the entire source texture.
- histogramInfo [read], [nonatomic], [assign]
Return a structure describing the histogram content Returns a MPSImageHistogramInfo structure describing the format of the histogram.
- minPixelThresholdValue [read], [write], [nonatomic], [assign]
The minimum pixel threshold value The histogram entries will be incremented only if pixel value is >= minPixelThresholdValue. The
minPixelThresholdValue is a floating-point value. For unsigned normalized textures, the minPixelThresholdValue should be a value between
0.0f and 1.0f (for eg. MTLPixelFormatRGBA8Unorm). For signed normalized textures, the minPixelThresholdValue should be a value between
-1.0f and 1.0f (for eg. MTLPixelFormatRGBA8Snorm). Default: vector_float4(0.0f).
- zeroHistogram [read], [write], [nonatomic], [assign]
Zero-initalize the histogram results Indicates that the memory region in which the histogram results are to be written in the histogram
buffer are to be zero-initialized or not. Default: YES.
Author
Generated automatically by Doxygen for MetalPerformanceShaders.framework from the source code.
Version MetalPerformanceShaders-100 Thu Feb 8 2018 MPSImageHistogram(3)