FilterDeblockingChroma_VerEdge_H264, FilterDeblockingChroma422VerEdge_H264

Performs deblocking filtering on the vertical edges of a chroma macroblock.

Syntax

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);

Parameters

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:

0 UVUVUVUVUVUVUVUV 1 UVUVUVUVUVUVUVUV ... 7 UVUVUVUVUVUVUVUV

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.

Description

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.

Arrangement of pBs and pThresholds Array Elements for 4:2:0 format



Arrangement of pBs and pThresholds Array Elements for 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:

pBs values are calculated as per 8.7.2.1 of [JVTG050] and may take the following values: 0 - if no edge is filtered; [1,3] - if filtering is weak; 4 - if filtering is strong. pAlpha values are calculated from the formulas 8-326, 8-327 and Table 8-14 of [JVTG050]. pBeta values are calculated from the formulas 8-326, 8-328 and Table 8-14 of [JVTG050]. pThresholds[i] values are calculated from the formulas 8-326, 8-327, values of pBs array and Table 8-15 of [JVTG050].

Usage of ippiFilterDeblockingChroma_VerEdge_H264_8u_C1IR

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

Return Values

ippStsNoErr

Indicates no error.

ippStsNullPtrErr

Indicates an error condition if at least one of the specified pointers is NULL.


Submit feedback on this help topic

Copyright © 2000 - 2010, Intel Corporation. All rights reserved.