Disassembles intra luma macroblocks.
IppStatus ippiDisassembleLumaIntra_AVS_16s8u_C1R(const Ipp8u* pSrcPlane, Ipp32s srcStep, Ipp8u* pDstPlane, Ipp32s dstStep, Ipp16s** ppDstCoeff, const IppIntra8x8PredMode_AVS* pPredModes, Ipp32u* pLumaCBP, Ipp32u QP, Ipp32u edgeType);
pSrcPlane |
Pointer to the source macroblock that is being coded in Y-plane. |
srcStep |
Source Y-plane step. |
pDstPlane |
Pointer to the current macroblock that is reconstructed in Y-plane. |
dstStep |
Destination Y-plane step. |
ppDstCoeff |
Pointer to the order of 8x8 blocks of residual coefficients for the macroblock. The pointer is updated by the function and points to free space for the blocks for the next macroblock. |
pPredModes |
Array of Intra_8x8 luma prediction modes for each subblock. |
pLumaCBP |
Pointer to the variable to store a coded block pattern. This value is calculated by the function. |
QP |
Quantization parameter (CurrentQP in [AVS] ), must be in the range [0;63]. |
edgeType |
Flag that specifies the availability of the macroblocks used for prediction. If the upper macroblock is not available for 8x8 intra prediction, edgeType&IPPVC_TOP_EDGE must be non-zero. If the left macroblock is not available for 8x8 intra prediction, edgeType&IPPVC_LEFT_EDGE must be non-zero. If the upper-left macroblock is not available for 8x8Intra prediction, edgeType&IPPVC_TOP_LEFT_EDGE must be non-zero. If the upper-right macroblock is not available for 8x8Intra prediction, edgeType&IPPVC_TOP_RIGHT_EDGE must be non-zero. |
The function ippiDisassembleLumaIntra_AVS_16s8u_C1R is declared in the ippvc.h file. This function disassembles intra luma macroblocks. The residual coefficients are taken as a result of intra-prediction, forward transforming, and forward quantization (8x8 luminance intra blocks, if the block is not zero-filled) in the same order as is shown in Figure 6-7 of [AVS]. The process for the 8x8 blocks is described below:
The function calculates the best prediction mode for each subblock, trying to save as much of visual information as possible. pPredModes [i] is defined in the same order as the coded subblocks go.
If *pLumaCBP & (1<<(1+i)) is not equal to 0 (0 ≤ i < 4), i-th 8x8 AC luma block is not zero-filled and it exists in ppDstCoeff.
ippStsNoErr |
Indicates no error. |
ippStsNullPtrErr |
Indicates an error condition if at least one of the specified pointers is NULL. |
ippStsOutOfRangeErr |
QP is less than 0 or greater than 63. |
Copyright © 2000 - 2011, Intel Corporation. All rights reserved.