Transform8x8Fwd_VC1, Transform4x8Fwd_VC1, Transform8x4Fwd_VC1, Transform4x4Fwd_VC1

Perform forward transform of blocks of respective sizes according to VC-1 standard.

Syntax

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

Parameters

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.

Description

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.

ippiTransform8x8Fwd_VC1_16s_C1IR Usage

{
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
*/

}

ippiTransform8x8Fwd_VC1_16s_C1R Usage

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

ippiTransform4x8Fwd_VC1_16s_C1IR Usage

{
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
*/

}

ippiTransform4x8Fwd_VC1_16s_C1R Usage

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

ippiTransform8x4Fwd_VC1_16s_C1IR Usage

{
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
*/

}

ippiTransform8x4Fwd_VC1_16s_C1R Usage

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

ippiTransform4x4Fwd_VC1_16s_C1IR Usage

{
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
*/

}

ippiTransform4x4Fwd_VC1_16s_C1R Usage

{
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
*/

}

Return Values

ippStsNoErr

Indicates no error.

ippStsNullPtrErr

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


Submit feedback on this help topic

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