⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 umc_h264_tables.h

📁 这是在PCA下的基于IPP库示例代码例子,在网上下了IPP的库之后,设置相关参数就可以编译该代码.
💻 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) 2004 - 2005 Intel Corporation. All Rights Reserved.//#ifndef TTABLES_H__#define TTABLES_H__#include "umc_h264_pub.h"namespace UMC_H264_ENCODER{/////////////////////////////////////////////////////////// offsets for 4x4 blocksextern  const Ipp8u xoff[16];extern  const Ipp8u yoff[16];extern  const Ipp8s xyoff[16][2];// Offset for 8x8 blocksextern  const Ipp8u xoff8[4];extern  const Ipp8u yoff8[4];// Offset for 16x16 blockextern  const Ipp8u yoff16[1];//////////////////////////////////////////////////////////// scan matrices//extern  const Ipp8u single_scan[16];//extern  const Ipp8u dec_single_scan[16];// bit index mask used in RLEextern  const Ipp16u bit_index_mask[16];//////////////////////////////////////////////////////////// Mapping from luma QP to chroma QPextern  const Ipp8u QPtoChromaQP[52];///////////////////////////////////////// Tables for decoding CBPextern  const Ipp8u dec_cbp_intra[48];extern  const Ipp8u dec_cbp_inter[48];extern  const Ipp32u CBP4x4Mask[24];// CBP4x4 bits to map 8x8 block to corresponding luma 4x4 blocks#define CBP4x4_FROM8x8_0    0x000f  // luma 0,1,2,3#define CBP4x4_FROM8x8_1    0x00f0  // luma 4,5,6,7#define CBP4x4_FROM8x8_2    0x0f00  // luma 8,9,10,11#define CBP4x4_FROM8x8_3    0xf000  // luma 12,13,14,15////////////////////////////////////////////////////////// Mappings from block number in loop to 8x8 block numberextern  const Ipp8u subblock_block_ss[24];extern  const Ipp8u subblock_block_ds[32];// Mapping from 8x8 block number to 4x4 block numberextern  const Ipp8u block_subblock_mapping[16];// Mapping from block number in loop to 8x8 block numberextern  const Ipp8u subblock_block_mapping[16];// chroma block re-mappingextern  const Ipp8u subblock_block_chroma[8];// Mapping from chroma block number to luma block number where the vector// to be used for chroma can be foundextern  const Ipp8u chroma_block_address[4];// Encoder tables for coefficient encodingextern  const Ipp8u enc_levrun_inter[16];extern  const Ipp8u enc_levrun_intra[8];extern  const Ipp8u enc_ntab_inter[10][4];extern  const Ipp8u enc_ntab_intra[5][9];extern  const Ipp8u enc_ntab_cDC[2][2];extern  const Ipp8u enc_levrun_cDC[4];////////////////////////////////////////////////////////////////////// Translation from block number in chroma loop to// actual chroma block numberextern  const Ipp8u block_trans[8];/////////////////////////////////////////////////////////////////////// RD multiplier (Lagrange factor)extern  Ipp16u rd_quant[52];extern  Ipp16u rd_quant_intra[52];extern  Ipp16u rd_quant_intra_min[52];#ifdef _TEST_PARM_extern  Ipp16u uTestValue;#endif// used for SSE2 AIModeSelectextern  Ipp16u uSADTable[11];// Table used to prevent single or 'expensive' coefficients are codedextern  const Ipp8u coeff_importance[16];extern  const Ipp32s COEFF_BLOCK_THRESHOLD;extern  const Ipp32s COEFF_MB_THRESHOLD ;// Tables used for finding if a block is on the edge// of a macroblockextern  const Ipp8u left_edge_tab4[4];extern  const Ipp8u top_edge_tab4[4];extern  const Ipp8u right_edge_tab4[4];extern  const Ipp8u left_edge_tab16[16];extern  const Ipp8u top_edge_tab16[16];extern  const Ipp8u right_edge_tab16[16];extern  const Ipp8u left_edge_tab16_8x4[16];extern  const Ipp8u top_edge_tab16_8x4[16];extern  const Ipp8u right_edge_tab16_8x4[16];extern  const Ipp8u left_edge_tab16_4x8[16];extern  const Ipp8u top_edge_tab16_4x8[16];extern  const Ipp8u right_edge_tab16_4x8[16];extern  const Ipp8u above_right_avail_8x4[16];extern  const Ipp8u above_right_avail_4x8[16];extern  const Ipp8u above_right_avail_4x4[16];extern  const Ipp8u intra4x4_below_left_avail[16];// chroma vector mappingextern  const Ipp8u c2x2m[4][4];// empty threshold tableextern Ipp32u EmptyThreshold[52];// encode Shortcut thresh tablesextern  Ipp32u DirectBSkipMEThres[52];extern  Ipp32u PSkipMEThres[52];extern  Ipp32s BestOf5EarlyExitThres[52];// gc_Zeroes is a constant array of zeroes.  It is useful for the decoder's// reconstruction functions, to quickly emulate a non-coded block or subblock.// The "gc_" prefix indicates this is a global, constant table.// Because it's constant, you can use it in contexts expecting other// than an Ipp32s, via an appropriate cast.extern  const Ipp32s gc_Zeroes[8*8];// MB part widths and heights according to mb_type.extern const Ipp8u MbPartWidth[UMC::NUMBER_OF_MBTYPES];extern const Ipp8u MbPartHeight[UMC::NUMBER_OF_MBTYPES];extern  Ipp32u C1MV_offset[16];extern  Ipp8u C1MVtable[2048];extern  IppiSize size16x16;extern  IppiSize size16x8;extern  IppiSize size8x16;extern  IppiSize size8x8;extern  IppiSize size8x4;extern  IppiSize size4x8;extern  IppiSize size4x4;extern  IppiSize size4x2;extern  IppiSize size2x4;extern  IppiSize size2x2;} //namespace UMC#endif // TTABLES_H__

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -