Performs deblocking filtering on the vertical edges of a chroma macroblock.
IppStatus ippiFilterDeblockingChroma_VerEdge_H264_8u_C1IR(Ipp8u* pSrcDst, Ipp32s srcdstStep, const Ipp8u* pAlpha, const Ipp8u* pBeta, const Ipp8u* pThresholds, const Ipp8u* pBs);
IppStatus ippiFilterDeblockingChroma_VerEdge_H264_8u_C2IR(Ipp8u* pSrcDst, Ipp32s srcdstStep, const Ipp8u* pAlpha, const Ipp8u* pBeta, const Ipp8u* pThresholds, const Ipp8u* pBs);
IppStatus ippiFilterDeblockingChroma_VerEdge_H264_8u_C2I(const IppiFilterDeblock_8u* pDeblockInfo);
IppStatus ippiFilterDeblockingChroma_VerEdge_H264_16u_C1IR(const IppiFilterDeblock_16u* pDeblockInfo);
IppStatus ippiFilterDeblockingChroma422VerEdge_H264_8u_C1IR(const IppiFilterDeblock_8u* pDeblockInfo);
IppStatus ippiFilterDeblockingChroma422VerEdge_H264_16u_C1IR(const IppiFilterDeblock_16u* pDeblockInfo);
pSrcDst |
Pointer to the initial and resultant coefficients. For FilterDeblockingChroma_VerEdge_H264_8u_C2IR and FilterDeblockingChroma_VerEdge_H264_8u_C2I the coefficients are in the NV12 format:
|
srcdstStep |
Distance in items between starts of the consecutive lines in the array. |
pAlpha |
Array of size 2 of Alpha Thresholds (values for external and internal vertical edge). For FilterDeblockingChroma_VerEdge_H264_8u_C2I, array of size 4 of Alpha Thresholds (values for external and internal vertical edge: 2 for U plane - Alpha [0], Alpha [1] and 2 to V plane - Alpha [2], Alpha [3]). |
pBeta |
Array of size 2 of Beta Thresholds (values for external and internal vertical edge). For FilterDeblockingChroma_VerEdge_H264_8u_C2I, array of size 4 of Beta Thresholds (values for external and internal vertical edge: 2 for U plane - Beta [0], Beta[1] and 2 to V plane - Beta[2], Beta[3]). |
pThresholds |
Array of size 8 of Thresholds (Tc0) (values for the left edge of each 2x2 block). For FilterDeblockingChroma_VerEdge_H264_8u_C2I, array of size 16 of Thresholds (Tc0) (values for the left edge of each 8x2 - [0,7] for U plane and [8,15] for V plane). |
pBs |
Array of size 16 of BS parameters (values for the left edge of each 2x2 block).For FilterDeblockingChroma_VerEdge_H264_8u_C2I, array of size 16 of BS parameters (values for the left edge of each 8x2 block - the same for both U and V planes). |
pDeblockInfo |
Pointer to the IppiFilterDeblock_8u or IppiFilterDeblock_16u structure. |
The functions are declared in the ippvc.h file. These functions perform Deblocking Filtering on the vertical edge of an 8x8 (_C1IR) or 16x8 (_C2IR, _C2I) chroma macroblock in accordance with 8.7.2 of [JVTG050]. FilterDeblockingChroma_VerEdge_H264_8u_C2IR and FilterDeblockingChroma_VerEdge_H264_8u_C2I work with NV12 chroma macroblocks.
The functions use arrays pAlpha, pBeta, pBs, pThresholds as input arguments. pAlpha, pBeta, and pBs are the same arrays as in FilterDeblockingLuma_VerEdge_H264 function. pAlpha[0], pBeta[0] are values for the external vertical edge, and pAlpha[1], pBeta[1] are values for the internal vertical edge.
For the FilterDeblockingChroma_VerEdge_H264_8u_C2I function, pAlpha[0], pAlpha[2], pBeta[0], pBeta[2] are values for the external vertical edge, and pAlpha[1], pAlpha[3], pBeta[1], pBeta[3] are values for the internal vertical edge.
See Figure "Arrangement of pBs and pThresholds Array Elements for 4:2:0 format" for the arrangement of pBs and pThresholds array elements into an 8x8 chroma block of 4:2:0 format and Figure "Arrangement of pBs and pThresholds Array Elements for 4:2:2 format" for their arrangement into an 8x16 block of 4:2:2 format.
As two vertical edges are filtered for the chroma component, the function uses pBs array elements with indices [0,3] for the external edge and [8,11] for the internal edge.
Values of the arrays are calculated as follows:
{ Ipp8u pSrcDst[8*8] = { 0x78, 0x77, 0x76, 0x74, 0x73, 0x73, 0x74, 0x75, 0x78, 0x77, 0x76, 0x74, 0x73, 0x73, 0x75, 0x79, 0x76, 0x76, 0x76, 0x75, 0x75, 0x75, 0x7c, 0x7e, 0x75, 0x75, 0x75, 0x76, 0x76, 0x76, 0x7c, 0x7e, 0x78, 0x79, 0x7a, 0x7c, 0x7d, 0x7e, 0x81, 0x82, 0x78, 0x79, 0x7a, 0x7c, 0x7d, 0x7e, 0x81, 0x82, 0x7a, 0x7b, 0x7c, 0x7e, 0x7e, 0x7f, 0x81, 0x82, 0x7d, 0x7e, 0x7f, 0x81, 0x81, 0x82, 0x82, 0x82 }; Ipp8u pAlpha[2] = {25,25}; Ipp8u pBeta[2] = {8,8}; Ipp8u pThreshold[16] = {255,255,255,255,255,255,1,1,204,204,204,204,204,204,204,204}; Ipp8u pBs[16] = {0,0,0,0,0,0,0,2,0,0,1,2,0,0,0,0}; ippiFilterDeblockingChroma_VerEdge_H264_8u_C1IR (pSrcDst, 8, pAlpha, pBeta, pThreshold, pBs); }
These functions are used in the H.264 decoder and encoder included into Intel IPP Samples. See introduction to H.264.
ippStsNoErr |
Indicates no error. |
ippStsNullPtrErr |
Indicates an error condition if at least one of the specified pointers is NULL. |
Copyright © 2000 - 2010, Intel Corporation. All rights reserved.