Reconstruct 4X4 inter luma macroblock for high profile.
IppStatus ippiReconstructLumaInter4x4MB_H264_16s8u_C1R(Ipp16s** ppSrcDstCoeff, Ipp8u* pSrcDstYPlane, Ipp32u srcDstYStep, Ipp32u cbp4x4, Ipp32s QP, const Ipp16s* pQuantTable, Ipp8u bypassFlag);
IppStatus ippiReconstructLumaInter4x4_H264High_32s16u_IP1R(const IppiReconstructHighMB_32s16u* pReconstructInfo);
ppSrcDstCoeff |
Pointer to the order of 4x4 blocks of residual coefficients for this macroblock, which are taken as a result of Huffman decoding (4x4 luma blocks, if the block is not zero-filled) in the same order as is shown in Figure 6‑10 of [ITUH264]. Pointer is updated by the function and points to the blocks for the next macroblock. |
pSrcDstYPlane |
Pointer to the current macroblock that is reconstructed in current Y-plane. This macroblock must contain inter prediction samples. |
srcDstStep |
Plane step. |
cbp4x4 |
Coded block pattern. If cbp4x4 & (1<<(1+i)) is not equal to 0 (0 ≤ i < 16), i-th 4x4 AC luma block is not zero-filled and it exists in ppSrcDstCoeff. |
QP |
Quantization parameter ( QPY in [ITUH264]). It must be within the range [0;51]. |
pQuantTable |
Pointer to the quantization table (LevelScale(qP%6, i, j) in [ITUH264]). |
bypassFlag |
Flag enabling lossless coding. |
pReconstructInfo |
Pointer to the IppiReconstructHighMB_32s16u structure. |
The functions ippiReconstructLumaInter4x4MB_H264_16s8u_C1R and ippiReconstructLumaInter4x4_H264High_32s16u_IP1R are declared in the ippvc.h file. These functions reconstruct a 4x4 inter luma macroblock for high profile:
See below for the usage example of ippiReconstructLumaInter4x4MB_H264_16s8u_C1R.
{ Ipp8u planeY[16*16] = { 0x9c, 0x92, 0x7f, 0x8b, 0x94, 0x22, 0x8a, 0xbc, 0xbb, 0x23, 0x60, 0xbb, 0x9a, 0xa9, 0x54, 0x48, 0x13, 0xa3, 0x29, 0x8a, 0xba, 0x73, 0x65, 0x14, 0x9a, 0xc6, 0x34, 0xae, 0x2e, 0x5e, 0xbb, 0x38, 0x70, 0x48, 0x5e, 0x68, 0xaf, 0x16, 0x22, 0x9a, 0x38, 0x6c, 0x54, 0x8f, 0x3e, 0x7f, 0x6a, 0x69, 0x3e, 0x5e, 0x11, 0x7e, 0x08, 0x01, 0xb9, 0x8c, 0x76, 0x7b, 0x16, 0x87, 0xa5, 0xa4, 0xc6, 0x78, 0xc3, 0x0a, 0x8a, 0x9d, 0x47, 0x0f, 0x9f, 0xa1, 0x90, 0x5f, 0x1d, 0x0b, 0x79, 0x36, 0x47, 0x79, 0x5a, 0x45, 0x28, 0x87, 0x28, 0x0f, 0x4a, 0xb3, 0x24, 0x83, 0x14, 0xa4, 0x56, 0x5c, 0x81, 0x0b, 0x29, 0x61, 0xc1, 0x4b, 0x96, 0x33, 0x65, 0xa3, 0x9f, 0x3b, 0x08, 0x25, 0xa9, 0x5c, 0x44, 0x97, 0x50, 0x2b, 0x77, 0x64, 0x59, 0x2c, 0xb6, 0x30, 0x24, 0x7b, 0x47, 0x6b, 0xaa, 0x85, 0xa3, 0xa2, 0x58, 0x66, 0x15, 0x31, 0x78, 0x7e, 0x3b, 0x20, 0x72, 0x25, 0xb3, 0x9a, 0x82, 0x13, 0x48, 0x53, 0x61, 0x4f, 0x45, 0x0c, 0x69, 0xa2, 0xa1, 0x01, 0x62, 0x0f, 0x0a, 0x94, 0x17, 0x4b, 0x77, 0x41, 0xa4, 0x59, 0x16, 0x17, 0x8e, 0x32, 0x61, 0x94, 0xbe, 0x1d, 0x22, 0x05, 0x11, 0x16, 0xb0, 0x4f, 0x31, 0x97, 0x3e, 0x61, 0x92, 0x36, 0x13, 0x9c, 0x07, 0x27, 0x1a, 0x05, 0x5d, 0x82, 0x9b, 0x4e, 0x94, 0x6f, 0x57, 0xc7, 0xb7, 0x99, 0x1e, 0x48, 0x33, 0x3f, 0x15, 0x9a, 0x30, 0x75, 0x03, 0x69, 0x09, 0x86, 0x86, 0xb6, 0x53, 0x9d, 0x9b, 0x03, 0x9c, 0x80, 0xbf, 0x3a, 0x81, 0x0b, 0x59, 0xb5, 0x6f, 0x81, 0x65, 0x29, 0xb7, 0x93, 0xb4, 0x2a, 0xbf, 0x05, 0x11, 0x53, 0x49, 0x92, 0x97, 0x3c, 0x0d, 0xac, 0x8f, 0x5d, 0x88, 0x25, 0x99, 0x9b, 0x5e, 0x53, 0x5c, 0x07, 0x0f, 0x0c, 0x41, 0xc2 }; Ipp32s stepY = 16; Ipp16s quantTable[16] = {22,12,34,50,34,33,46,21,18,19,34,28,28,31,15,3}; Ipp16s coef[16*16] = { 12,-4, 0, 0, 0,-7, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 4, -5, 1, 0,-4, 3, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 10, -2,-1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, -13, 2, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, -19, 6, 0, 0, 8,-4, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, -3,-2, 0, 0, 2,-1, 0,-2, 1, 0, 0, 0, 0, 0, 0, -3, 0, 1,-2,-1, 0, 0, 0,-1, 0, 0, 0, 0, 0, 0, 0, -1, -1, 1, 1, 2, 1,-2,-1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,-1,-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-1, 1, 0, 0, 0, 0, 0,-1, 0, 0, 0, 0, 0, 0, 0, 0,-1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; Ipp32u cbp4x4 = 0x0001fe00; Ipp32s QP = 22; Ipp8u bypass_flag = 0; IppStatus result; Ipp16s* pCoef; pCoef = coef; result = ippiReconstructLumaInter4x4MB_H264_16s8u_C1R(&pCoef, planeY, stepY, cbp4x4, QP, quantTable, bypass_flag); }
These functions are used in the H.264 decoder 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. |
ippStsOutOfRangeErr |
QP is less than 0 or greater than 51. |
Copyright © 2000 - 2011, Intel Corporation. All rights reserved.