mlib_ImageFilteredSubsample_Fp man page on SunOS

Man page or keyword search:  
man Server   20652 pages
apropos Keyword Search (all sections)
Output format
SunOS logo
[printable version]

mlib_ImageFilteredSubsamplmediaLib Library Fmlib_ImageFilteredSubsample(3MLIB)

NAME
       mlib_ImageFilteredSubsample, mlib_ImageFilteredSubsample_Fp - antialias
       filters and subsamples an image

SYNOPSIS
       cc [ flag... ] file... -lmlib [ library... ]
       #include <mlib.h>

       mlib_status mlib_ImageFilteredSubsample(mlib_image *dst,
	   const mlib_image *src, mlib_s32 scaleX, mlib_s32 scaleY,
	   mlib_s32 transX, mlib_s32 transY,
	   const mlib_d64 *hKernel, const mlib_d64 *vKernel, mlib_s32 hSize,
	   mlib_s32 vSize, mlib_s32 hParity, mlib_s32 vParity, mlib_edge edge);

       mlib_status mlib_ImageFilteredSubsample_Fp(mlib_image *dst,
	   const mlib_image *src, mlib_s32 scaleX, mlib_s32 scaleY,
	   mlib_s32 transX, mlib_s32 transY,
	   const mlib_d64 *hKernel, const mlib_d64 *vKernel, mlib_s32 hSize,
	   mlib_s32 vSize, mlib_s32 hParity, mlib_s32 vParity, mlib_edge edge);

DESCRIPTION
       Each of the functions antialias filters and subsamples an image.

       The effect of one of the functions on an image is  equivalent  to  per‐
       forming convolution (filter) followed by subsampling (zoom out).

       The   functions	 are  similar  to  the	mlib_ImageZoomTranslate()  and
       mlib_ImageZoomTranslate_Fp() functions. But they have different defini‐
       tions on scale factors and translations, hence use different coordinate
       mapping equations. The scaleX and scaleY used by mlib_ImageFilteredSub‐
       sample()	 and  mlib_ImageFilteredSubsample_Fp()	are the reciprocals of
       the zoomx and zoomy, respectively,  used	 by  mlib_ImageZoomTranslate()
       and mlib_ImageZoomTranslate_Fp().

       The functions use the following equations for coordinate mapping:

	 xS = xD*scaleX + transX
	 yS = yD*scaleY + transY

       where,  a point (xD, yD) in the destination image is backward mapped to
       a point (xS, yS) in the source image. The arguments transX  and	transY
       are provided to support tiling.

       The  subsample  terms,  i.e.,  the scale factors scaleX and scaleY, are
       restricted to positive integral values. Geometrically, one  destination
       pixel  maps  to scaleX by scaleY source pixels. With odd scale factors,
       destination pixel centers map directly onto source pixel centers.  With
       even  scale  factors,  destination  pixel  centers map squarely between
       source pixel centers. Below are examples of even, odd, and  combination
       cases.

	   s   s   s   s   s   s	   s   s   s   s   s   s
	    d	    d	    d
	  s   s	  s   s	  s   s		  s   d	  s   s	  d   s

	  s   s	  s   s	  s   s		  s   s	  s   s	  s   s
	    d	    d	    d
	  s   s	  s   s	  s   s		  s   s	  s   s	  s   s

	  s   s	  s   s	  s   s		  s   d	  s   s	  d   s
	    d	    d	    d
	  s   s	  s   s	  s   s		  s   s	  s   s	  s   s

	  Even scaleX/Y factors		  Odd scaleX/Y factors

	  s   s	  s   s	  s   s		  s   s	  s   s	  s   s
	      d		  d
	  s   s	  s   s	  s   s		  s d s	  s d s	  s d s

	  s   s	  s   s	  s   s		  s   s	  s   s	  s   s
	      d		  d
	  s   s	  s   s	  s   s		  s   s	  s   s	  s   s

	  s   s	  s   s	  s   s		  s d s	  s d s	  s d s
	      d		  d
	  s   s	  s   s	  s   s		  s   s	  s   s	  s   s

	  Odd/even scaleX/Y factors	  Even/odd scaleX/Y factors

       where

	   s = source pixel centers
	  d = destination pixel centers mapped to source

       The  applied filter is quadrant symmetric (typically antialias + resam‐
       ple). The filter	 is  product-separable,	 quadrant  symmetric,  and  is
       defined by half of its span. Parity is used to signify whether the sym‐
       metric kernel has a double center (even	parity)	 or  a	single	center
       value  (odd parity).  For example, if hParity == 0 (even), the horizon‐
       tal kernel is defined as:

	 hKernel[hSize-1], ..., hKernel[0], hKernel[0], ...,
	 hKernel[hSize-1]

       Otherwise, if hParity == 1 (odd), the horizontal kernel is defined as:

	 hKernel[hSize-1], ..., hKernel[0], ...,
	 hKernel[hSize-1]

       Horizontal and vertical kernels representing convolved resample	(i.e.,
       the combined separable kernels) can be computed from a convolution fil‐
       ter (with odd parity), a resample filter,  and  because	the  subsample
       factors affect resample weights, the subsample scale factors. It is the
       user's responsibility to provide meaningful combined kernels.

       To compute the value of a pixel centered at point (xD, yD) in the  des‐
       tination image, apply the combined kernel to the source image by align‐
       ing the kernel's geometric center to the backward mapped point (xS, yS)
       in  the source image. In the cases that it can not be exactly on top of
       point (xS, yS), the kernel's center should be half-pixel	 right	and/or
       below  that point. When this is done in a separable manner, the centers
       of horizontal and vertical kernels should align with xS and yS, respec‐
       tively.

       The  combination	 of subsampling and filtering has performance benefits
       over sequential fucntion usage in part due to the symmetry  constraints
       imposed by only allowing integer parameters for scaling and only allow‐
       ing separable symmetric filters.

PARAMETERS
       The function takes the following arguments:

       dst	  Pointer to destination image.

       src	  Pointer to source image.

       scaleX	  The x scale factor of subsampling.

       scaleY	  The y scale factor of subsampling.

       transX	  The x translation.

       transY	  The y translation.

       hKernel	  Pointer to the compact form of horizontal kernel.

       vKernel	  Pointer to the compact form of vertical kernel.

       hSize	  Size of array hKernel.

       vSize	  Size of array vKernel.

       hParity	  Parity of horizontal kernel (0: even, 1: odd).

       vParity	  Parity of vertical kernel (0: even, 1: odd).

       edge	  Type of edge condition. It can be one of the following:

		    MLIB_EDGE_DST_NO_WRITE

RETURN VALUES
       The function returns MLIB_SUCCESS if successful. Otherwise  it  returns
       MLIB_FAILURE.

ATTRIBUTES
       See attributes(5) for descriptions of the following attributes:

       ┌─────────────────────────────┬─────────────────────────────┐
       │      ATTRIBUTE TYPE	     │	    ATTRIBUTE VALUE	   │
       ├─────────────────────────────┼─────────────────────────────┤
       │Interface Stability	     │Committed			   │
       ├─────────────────────────────┼─────────────────────────────┤
       │MT-Level		     │MT-Safe			   │
       └─────────────────────────────┴─────────────────────────────┘

SEE ALSO
       mlib_ImageSubsampleAverage(3MLIB),      mlib_ImageZoomTranslate(3MLIB),
       mlib_ImageZoomTranslate_Fp(3MLIB), attributes(5)

SunOS 5.10			  2 Mar 2007mlib_ImageFilteredSubsample(3MLIB)
[top]

List of man pages available for SunOS

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net