📄 umc_h264_defs.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_DEFS_H__#define __UMC_H264_DEFS_H__#include "ippdefs.h"#include "ippvc.h"#include "ipps.h"namespace UMC{ typedef Ipp32s H264MBAddr; ///////////////// H.264 Structures struct H264MotionVector { Ipp16s mvx; Ipp16s mvy; };//4bytes struct H264MacroblockRefIdxs { Ipp8s RefIdxs[16]; // 16 bytes };//16bytes struct H264MacroblockMVFlags { Ipp8s MVFlags[16]; // 16 bytes };//16bytes struct H264MacroblockMVs { H264MotionVector MotionVectors[16]; //64 bytes };//64bytes struct H264MacroblockCoeffsInfo { Ipp8u numCoeff [24]; //24 bytes }; struct H264MacroblockGlobalInfo { Ipp8u sbtype[4]; Ipp16s slice_id; Ipp8u mbtype; Ipp8u mb_aux_fields; };//8 bytes struct H264MacroblockLocalInfo { Ipp32u cbp4x4; Ipp32u cbp_bits; Ipp8u sbdir[4]; Ipp8u cbp; Ipp8u mbtypeBS; Ipp8u intra_chroma_mode; Ipp8s QP; };//16 btytes struct H264BlockLocation { Ipp32s mb_num; Ipp32s block_num; };//8 bytes struct H264MacroblockNeighboursInfo { Ipp32s mb_A; Ipp32s mb_B; Ipp32s mb_C; Ipp32s mb_D; };//32 bytes struct H264BlockNeighboursInfo { H264BlockLocation mbs_left[4]; H264BlockLocation mb_above; H264BlockLocation mb_above_right; H264BlockLocation mb_above_left; H264BlockLocation mbs_left_chroma[2][2]; H264BlockLocation mb_above_chroma[2]; H264BlockLocation dummy[2]; };//128bytes //this structure is present in each frame struct H264GlobalMacroblocksDescriptor { H264MacroblockMVs *MV[2];//MotionVectors L0 L1 H264MacroblockRefIdxs *RefIdxs[2];//Reference Indices L0 l1 H264MacroblockGlobalInfo *mbs;//macroblocks }; //this structure is one for all struct H264LocalMacroblockDescriptor { H264MacroblockMVs *MVDeltas[2];//MotionVectors Deltas L0 and L1 H264MacroblockMVFlags *MVFlags[2];//MotionVectors Flags L0 and L1 H264MacroblockCoeffsInfo *MacroblockCoeffsInfo; //info about num_coeffs in each block in the current picture H264MacroblockLocalInfo *mbs;//reconstuction info H264MBAddr *active_next_mb_table; }; struct H264CurrentMacroblockDescriptor { H264MacroblockMVs *MVs[4];//MV L0,L1, MVDeltas 0,1 H264MacroblockMVFlags *MVFlags[2];//MVFlags L0, L1 H264MacroblockRefIdxs *RefIdxs[2];//RefIdx L0, L1 H264MacroblockCoeffsInfo *MacroblockCoeffsInfo; H264MacroblockNeighboursInfo CurrentMacroblockNeighbours;//mb neighbouring info H264BlockNeighboursInfo CurrentBlockNeighbours;//block neighbouring info (if mbaff turned off remained static) H264MacroblockGlobalInfo *GlobalMacroblockInfo; H264MacroblockGlobalInfo *GlobalMacroblockPairInfo; H264MacroblockLocalInfo *LocalMacroblockInfo; H264MacroblockLocalInfo *LocalMacroblockPairInfo; }; // The main decode loop over macroblocks is broken // into two loops in the interest of cache localization, // significantly improving performance on some systems. // This define indicates how many macroblocks to process per loop // iteration.} // end namespace UMC#endif // __UMC_H264_DEFS_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -