📄 umc_h264_dec_deblocking.h
字号:
/*//// INTEL CORPORATION PROPRIETARY INFORMATION// This software is supplied under the terms of a license agreement or// nondisclosure agreement with Intel Corporation and may not be copied// or disclosed except in accordance with the terms of that agreement.// Copyright (c) 2003-2005 Intel Corporation. All Rights Reserved.////*/#ifndef __UMC_H264_DEC_DEBLOCKING_H#define __UMC_H264_DEC_DEBLOCKING_H// declare proposals to IPP librarynamespace UMC{#if defined(_MSC_VER) && !defined(_WIN32_WCE)#define __align(value) __declspec(align(value))#else // !defined(_MSC_VER)#define __align(value)#endif // defined(_MSC_VER)#define IClip(Min, Max, Val) (((Val) < (Min)) ? (Min) : (((Val) > (Max)) ? (Max) : (Val)))#define SetEdgeStrength(edge, strength) \ *((Ipp32u *) (edge)) = (((((strength) * 256) + strength) * 256 + strength) * 256 + strength)#define CopyEdgeStrength(dst_edge, src_edge) \ *((Ipp32u *) (dst_edge)) = (*((Ipp32u *) (src_edge)))#define CompareEdgeStrength(strength, edge) \ ((((((strength) * 256) + strength) * 256 + strength) * 256 + strength) == *((Ipp32u *) (edge)))// declare used types and constantsenum{ VERTICAL_DEBLOCKING = 0, HORIZONTAL_DEBLOCKING = 1, NUMBER_OF_DIRECTION = 2};enum{ CURRENT_BLOCK = 0, NEIGHBOUR_BLOCK = 1};// alpha tableexternIpp8u ALPHA_TABLE[52];// beta tableexternIpp8u BETA_TABLE[52];// clipping tableexternIpp8u CLIP_TAB[52][5];// chroma scaling QP tableexternIpp8u QP_SCALE_CR[52];// masks for external blocks pair "coded bits"externIpp32u EXTERNAL_BLOCK_MASK[NUMBER_OF_DIRECTION][2][4];// masks for internal blocks pair "coded bits"externIpp32u INTERNAL_BLOCKS_MASK[NUMBER_OF_DIRECTION][12];#pragma pack(16)typedef struct H264VideoDecoder::DeblockingParameters{ Ipp8u Strength[NUMBER_OF_DIRECTION][16]; // (Ipp8u [][]) arrays of deblocking sthrengths Ipp32u DeblockingFlag[NUMBER_OF_DIRECTION]; // (Ipp32u []) flags to do deblocking Ipp32u ExternalEdgeFlag[NUMBER_OF_DIRECTION]; // (Ipp32u []) flags to do deblocking on external edges Ipp32u nMBAddr; // (Ipp32u) macroblock number Ipp32u nMaxMVector; // (Ipp32u) maximum vertical motion vector Ipp32u nNeighbour[NUMBER_OF_DIRECTION]; // (Ipp32u) neighbour macroblock addres Ipp32u MBFieldCoded; // (Ipp32u) flag means macroblock is field coded (picture may not) Ipp32s nAlphaC0Offset; // (Ipp32s) alpha c0 offset Ipp32s nBetaOffset; // (Ipp32s) beta offset Ipp8u *pY; // (Ipp8u *) pointer to Y data Ipp8u *pU; // (Ipp8u *) pointer to U data Ipp8u *pV; // (Ipp8u *) pointer to V data Ipp32s pitch; // (Ipp32s) working pitch} DeblockingParameters;typedef struct H264VideoDecoder::DeblockingParametersMBAFF : public DeblockingParameters{ Ipp8u StrengthComplex[16]; // (Ipp8u) arrays of deblocking sthrengths Ipp8u StrengthExtra[16]; // (Ipp8u) arrays of deblocking sthrengths Ipp32u UseComplexVerticalDeblocking; // (Ipp32u) flag to do complex deblocking on external vertical edge Ipp32u ExtraHorizontalEdge; // (Ipp32u) flag to do deblocking on extra horizontal edge Ipp32u nLeft[2]; // (Ipp32u []) left couple macroblock numbers} DeblockingParametersMBAFF;#pragma pack()} // namespace UMC#endif // __UMC_H264_DEC_DEBLOCKING_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -