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 - 2011, Intel Corporation. All rights reserved.