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:

•   histogram results for the R channel for all bins followed by

•   histogram results for the G channel for all bins followed by

•   histogram results for the B channel for all bins followed by

•   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.