MPEG-1 and MPEG-2

This section contains functions for encoding and decoding of video data according to MPEG-1([ISO11172]) and MPEG-2([ISO13818]) standards.

The use of some functions described in this section is demonstrated in Intel® IPP Samples downloadable from http://www.intel.com/cd/software/products/asmo-na/eng/220046.htm .

Structures and Enumerations

The enumeration IPPVC_MV_TYPE indicates motion vector types (FIELD, FRAME).

typedef enum _IPPVC_MV_TYPE{
		    IPPVC_MV_FIELD =	 					0x0,
		    IPPVC_MV_FRAME =							0x1,
	}IPPVC_MV_TYPE;
MPEG-1 and MPEG-2 Video Decoding Functions 
Function Short Name Description

Variable Length Decoding

HuffmanTableInitAlloc

Allocates memory and initializes a table that contains codes for macroblock address increment, macroblock type, macroblock pattern, or motion vectors.

HuffmanRunLevelTableInitAlloc

Allocates memory and initializes a table that contains codes for DCT coefficients, that is, Run-Level codes.

DecodeHuffmanOne

Decodes a code from the bitstream using a specified table.

DecodeHuffmanPair

Decodes one code using specified table and gets two decoded values.

ReconstructDCTBlock_MPEG1

Decodes 8X8 non-intra block using table of Run-Level codes for standard MPEG1, rearranges and performs inverse quantization.

ReconstructDCTBlockIntra_MPEG1

Decodes 8X8 intra block using table of Run-Level codes for standard MPEG1, rearranges and performs inverse quantization.

ReconstructDCTBlock_MPEG2

Decodes 8X8 non-intra block using table of Run-Level codes for standard MPEG2, rearranges and performs inverse quantization.

ReconstructDCTBlockIntra_MPEG2

Decodes 8X8 intra block using table of Run-Level codes for standard MPEG2, rearranges and performs inverse quantization.

HuffmanTableFree

Frees memory allocated for VLC table.

Inverse Quantization

QuantInvIntra_MPEG2

Performs inverse quantization for intra frames according to MPEG-2 standard.

QuantInv_MPEG2

Performs inverse quantization for non-intra frames according to MPEG-2 standard.

Inverse Discrete Cosine Transformation

DCT8x8Inv_AANTransposed_16s_C1R

Performs inverse DCT on pre-transposed block.

DCT8x8Inv_AANTransposed_16s8u_C1R

Performs inverse DCT on pre-transposed block and converts output to unsigned char format.

DCT8x8Inv_AANTransposed_16s_P2C2R

Performs inverse DCT on pre-transposed data of two input chroma blocks and joins the output data into one array.

DCT8x8Inv_AANTransposed_16s8u_P2C2R

Performs inverse DCT on pre-transposed data of two input chroma blocks and joins the output data into one unsigned char array.

DCT8x8InvOrSet

Performs inverse DCT on an 8x8 block.

Motion Compensation

MC16x16

Performs motion compensation for a predicted 16X16 block.

MC16x8

Performs motion compensation for a predicted 16X8 block.

MC8x16

Performs motion compensation for a predicted 8X16 block.

MC8x8

Performs motion compensation for a predicted 8X8 block.

MC8x4

Performs motion compensation for a predicted 8X4 block.

MC4x8

Performs motion compensation for a predicted 4X8 block.

MC16x4

Performs motion compensation for predicted UV 16X4 block.

MC16x8UV

Performs motion compensation for predicted UV 16X8 block.

MC16x16B

Performs motion compensation for a bi-predicted 16X16 block.

MC16x8B

Performs motion compensation for a bi-predicted 16X8 block.

MC8x16B

Performs motion compensation for a bi-predicted 8X16 block.

MC8x8B

Performs motion compensation for a bi-predicted 8X8 block.

MC8x4B

Performs motion compensation for a bi-predicted 8X4 block.

MC4x8B

Performs motion compensation for bi-predicted UV 16X4 block.

MC16x8UV

Performs motion compensation for bi-predicted UV 16X8 block.
MPEG-1 and MPEG-2 Video Encoding Functions 
Function Short Name Description

Motion Estimation

GetDiff16x16

Evaluates difference between current predicted and reference blocks of 16x16 elements.

GetDiff16x8

Evaluates difference between current predicted and reference blocks of 16x8 elements.

GetDiff8x8

Evaluates difference between current predicted and reference blocks of 8x8 elements.

GetDiff8x16

Evaluates difference between current predicted and reference blocks of 8x16 elements.

GetDiff8x4

Evaluates difference between current predicted and reference blocks of 8x4 elements.

GetDiff16x16B

Evaluates difference between current bi-predicted and mean of two reference blocks of 16x16 elements.

GetDiff16x8B

Evaluates difference between current bi-predicted and mean of two reference blocks of 16x8 elements.

GetDiff8x8B

Evaluates difference between current bi-predicted and mean of two reference blocks of 8x8 elements.

GetDiff8x16B

Evaluates difference between current bi-predicted and mean of two reference blocks of 8x16 elements.

GetDiff8x4B

Evaluates difference between current bi-predicted and mean of two reference blocks of 8x4 elements.

SqrDiff16x16

Evaluates sum of squares of differences between current and reference blocks.

SqrDiff16x16B

Evaluates the sum of squares of differences between the current bi-predicted block and the mean of two reference blocks.

VarMean8x8

Evaluates variance and mean of 8X8 block.

VarMeanDiff16x16

Evaluates variances and means of four 8x8 blocks of difference between two 16x16 blocks.

VarMeanDiff16x8

Evaluates variances and means of four 8x8 blocks of difference between two 16x8 blocks.

SAD16x16

Evaluates sum of absolute difference between current and reference blocks.

Quantization

QuantIntra_MPEG2

Performs quantization on DCT coefficients for intra blocks in-place with specified quantization matrix according to MPEG-2 standard.

Quant_MPEG2

Performs quantization on DCT coefficients for non-intra blocks in-place with specified quantization matrix according to MPEG-2 standard.

Forward Discrete Cosine Transformation

DCT8x8Fwd

Performs forward DCT on an 8x8 block of a chrominance part of NV12 plane.

Huffman Encoding

CreateRLEncodeTable

Creates Run-Level Encode Table.

PutIntraBlock

Encodes, rearranges and puts intra block into the bit stream.

PutNonIntraBlock

Encodes, rearranges and puts non-intra block into the bit stream.

Submit feedback on this help topic

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