Perform forward transform of blocks of respective sizes according to VC-1 standard.
IppStatus ippiTransform8x8Fwd_VC1_16s_C1IR(Ipp16s* pSrcDst, Ipp32s srcDstStep);
IppStatus ippiTransform4x8Fwd_VC1_16s_C1IR(Ipp16s* pSrcDst, Ipp32s srcDstStep);
IppStatus ippiTransform8x4Fwd_VC1_16s_C1IR(Ipp16s* pSrcDst, Ipp32s srcDstStep);
IppStatus ippiTransform4x4Fwd_VC1_16s_C1IR(Ipp16s* pSrcDst, Ipp32s srcDstStep);
IppStatus ippiTransform8x8Fwd_VC1_16s_C1R(const Ipp16s* pSrc, Ipp32s srcStep, Ipp16s* pDst, Ipp32s dstStep);
IppStatus ippiTransform4x8Fwd_VC1_16s_C1R(const Ipp16s* pSrc, Ipp32s srcStep, Ipp16s* pDst, Ipp32s dstStep);
IppStatus ippiTransform8x4Fwd_VC1_16s_C1R(const Ipp16s* pSrc, Ipp32s srcStep, Ipp16s* pDst, Ipp32s dstStep);
IppStatus ippiTransform4x4Fwd_VC1_16s_C1R(const Ipp16s* pSrc, Ipp32s srcStep, Ipp16s* pDst, Ipp32s dstStep);
pSrcDst |
Pointer to the source and destination block. All samples of the source block should be in range [-512, 511). After transforming all samples of the destination block are in range [-2048; 2047). |
pSrc |
Pointer to the source block. All samples of the source block should be in range [-512, 511). |
pDst |
Pointer to the destination 8x8 block. After transforming all samples of the destination block are in range [-2048; 2047). |
srcStep |
Distance in bytes between starts of the consecutive lines in the source block. |
dstStep |
Distance in bytes between starts of the consecutive lines in the destination block. |
The functions ippiTransform8x8Fwd_VC1_16s, ippiTransform4x8Fwd_VC1_16s, ippiTransform8x4Fwd_VC1_16s, and ippiTransform4x4Fwd_VC1_16s are declared in the ippvc.h file. These functions perform forward transform in accordance with Annex A: Transform Specification of [SMPTE421M].
ippiTransform8x8Fwd_VC1_16s_C1IR and ippiTransform8x8Fwd_VC1_16s_C1R perform transform of 8x8 inter block with 8x8 transformation type or 8x8 intra block.
{ Ipp16s* pSrcDstData = pointer_on_source_and_destination_block; /* All samples of source block should be in the range [-255;255] After transforming all samples of destination block will be in the range [-2048; 2047) */ Ipp32s srcDstStep = source_and_destination_step; /* Step of the pointer pSrcDstData (source and destination array) in bytes */ IppStatus result; /* ippStsNoErr Indicates no error ippStsNullPtrErr Indicates an error when pSrcDstData is NULL */ result = ippiTransform8x8Fwd_VC1_16s_C1IR( pSrcDstData, srcDstStep ); /* Performs transform of 8x8 inter block with 8x8 transformation type or 8x8 intra block in accordance with Annex A "Transform Specification" of SMPTE 421M */ }
{ Ipp16s* pSrcData = pointer_on_source_block; /* All samples of source block should be in the range [-255;255] */ Ipp16s* pDstData = pointer_on_destination_block; /* After transforming all samples of destination block will be in the range [-2048; 2047) */ Ipp32s srcStep = source_step; /* Step of the pointer pSrcData (source array) in bytes */ Ipp32s dstStep = destination_step; /* Step of the pointer pDstData (destination array) in bytes */ IppStatus result; /* ippStsNoErr Indicates no error ippStsNullPtrErr Indicates an error when pSrcData or pDstData is NULL */ result = ippiTransform8x8Fwd_VC1_16s_C1R( pSrcData, srcStep, pDstData, dstStep ); /* Performs transform of 8x8 inter block with 8x8 transformation type or 8x8 intra block in accordance with Annex A "Transform Specification" of SMPTE 421M */ }
ippiTransform4x8Fwd_VC1_16s_C1IR and ippiTransform4x8Fwd_VC1_16s_C1R perform transform of 4x8 block into 8x8 inter block with 4x8 transformation type.
{ Ipp16s* pSrcDstData = pointer_on_source_and_destination_block; /* All samples of source block should be in the range [-255;255] After transforming all samples of destination block will be in the range [-2048; 2047) */ Ipp32s srcDstStep = source_and_destination_step; /* Step of the pointer pSrcDstData (source and destination array) in bytes */ IppStatus result; /* ippStsNoErr Indicates no error ippStsNullPtrErr Indicates an error when pSrcDstData is NULL */ result = ippiTransform4x8Fwd_VC1_16s_C1IR(pSrcDstData, srcDstStep); result = ippiTransform4x8Fwd_VC1_16s_C1IR(pSrcDstData+4, srcDstStep); /* Performs transform of 4x8 subblock in 8x8 inter block with 4x8 transformation type in accordance with Annex A "Transform Specification" of SMPTE 421M */ }
{ Ipp16s* pSrcData = pointer_on_source_block; /* All samples of source block should be in the range [-255;255] */ Ipp16s* pDstData = pointer_on_destination_block; /* After transforming all samples of destination block will be in the range [-2048; 2047) */ Ipp32s srcStep = source_step; /* Step of the pointer pSrcData (source array) in bytes */ Ipp32s dstStep = destination_step; /* Step of the pointer pDstData (destination array) in bytes */ IppStatus result; /* ippStsNoErr Indicates no error ippStsNullPtrErr Indicates an error when pSrcData or pDstData is NULL */ result = ippiTransform4x8Fwd_VC1_16s_C1R( pSrcData, srcStep, pDstData, dstStep ); result = ippiTransform4x8Fwd_VC1_16s_C1R( pSrcData+4, srcStep, pDstData+4, dstStep ); /* Performs transform of 4x8 subblock in 8x8 inter block with 4x8 transformation type in accordance with Annex A "Transform Specification" of SMPTE 421M */ }
ippiTransform8x4Fwd_VC1_16s_C1IR and ippiTransform8x4Fwd_VC1_16s_C1R perform transform of 8x4 subblock into 8x8 inter block with 8x4 transformation type.
{ Ipp16s* pSrcDstData = pointer_on_source_and_destination_block; /* All samples of source block should be in the range [-255;255] After transforming all samples of destination block will be in the range [-2048; 2047) */ Ipp32s srcDstStep = source_and_destination_step; /* Step of the pointer pSrcDstData (source and destination array) in bytes */ IppStatus result; /* ippStsNoErr Indicates no error ippStsNullPtrErr Indicates an error when pSrcDstData is NULL */ result = ippiTransform8x4Fwd_VC1_16s_C1IR( pSrcDstData, srcDstStep ); result = ippiTransform8x4Fwd_VC1_16s_C1IR( pSrcDstData+(srcDstStep*2), srcDstStep ); /* Performs transform of 8x4 subblock in 8x8 inter block with 8x4 transformation type in accordance with Annex A "Transform Specification" of SMPTE 421M */ }
{ Ipp16s* pSrcData = pointer_on_source_block; /* All samples of source block should be in the range [-255;255] */ Ipp16s* pDstData = pointer_on_destination_block; /* After transforming all samples of destination block will be in the range [-2048; 2047) */ Ipp32s srcStep = source_step; /* Step of the pointer pSrcData (source array) in bytes */ Ipp32s dstStep = destination_step; /* Step of the pointer pDstData (destination array) in bytes */ IppStatus result; /* ippStsNoErr Indicates no error ippStsNullPtrErr Indicates an error when pSrcData or pDstData is NULL */ result = ippiTransform8x4Fwd_VC1_16s_C1R( pSrcData, srcStep, pDstData, dstStep ); result = ippiTransform8x4Fwd_VC1_16s_C1R( pSrcData+(srcStep*2), srcStep, pDstData+(dstStep*2), dstStep ); /* Performs transform of 8x4 subblock in 8x8 inter block with 8x4 transformation type in accordance with Annex A "Transform Specification" of SMPTE 421M */ }
ippiTransform4x4Fwd_VC1_16s_C1IR and ippiTransform4x4Fwd_VC1_16s_C1R perform transform of 4x4 block into 8x8 inter block with 4x4 transformation type.
{ Ipp16s* pSrcDstData = pointer_on_source_and_destination_block; /* All samples of source block should be in the range [-255;255] After transforming all samples of destination block will be in the range [-2048; 2047) */ Ipp32s srcDstStep = source_and_destination_step; /* Step of the pointer pSrcDstData (source and destination array) in bytes */ IppStatus result; /* ippStsNoErr Indicates no error ippStsNullPtrErr Indicates an error when pSrcDstData is NULL */ result = ippiTransform4x4Fwd_VC1_16s_C1IR( pSrcDstData, srcDstStep ); result = ippiTransform4x4Fwd_VC1_16s_C1IR( pSrcDstData+4, srcDstStep ); result = ippiTransform4x4Fwd_VC1_16s_C1IR( pSrcDstData+(srcDstStep*2), srcDstStep ); result = ippiTransform4x4Fwd_VC1_16s_C1IR( pSrcDstData+(srcDstStep*2)+4, srcDstStep ); /* Performs transform of 4x4 subblock in 8x8 inter block with 4x4 transformation type in accordance with Annex A "Transform Specification" of SMPTE 421M */ }
{ Ipp16s* pSrcData = pointer_on_source_block; /* All samples of source block should be in the range [-255;255] */ Ipp16s* pDstData = pointer_on_destination_block; /* After transforming all samples of destination block will be in the range [-2048; 2047) */ Ipp32s srcStep = source_step; /* Step of the pointer pSrcData (source array) in bytes*/ Ipp32s dstStep = destination_step; /* Step of the pointer pDstData (destination array) in bytes*/ IppStatus result; /* ippStsNoErr Indicates no error ippStsNullPtrErr Indicates an error when pSrcData or pDstData is NULL */ result = ippiTransform4x4Fwd_VC1_16s_C1R( pSrcData, srcStep, pDstData, dstStep ); result = ippiTransform4x4Fwd_VC1_16s_C1R( pSrcData+4, srcStep, pDstData+4, dstStep ); result = ippiTransform4x4Fwd_VC1_16s_C1R( pSrcData+(srcStep*2), srcStep, pDstData+(dstStep*2), dstStep ); result = ippiTransform4x4Fwd_VC1_16s_C1R( pSrcData+(srcStep*2)+4, srcStep, pDstData+(dstStep*2)+4, dstStep ); /* Performs transform of 4x4 subblock in 8x8 inter block with 4x4 transformation type in accordance with Annex A "Transform Specification" of SMPTE 421M */ }
ippStsNoErr |
Indicates no error. |
ippStsNullPtrErr |
Indicates an error condition when at least one of the specified pointers is NULL. |
Copyright © 2000 - 2010, Intel Corporation. All rights reserved.