📄 global.h
字号:
/*************************************************************************This software module was originally developed by Ming-Chieh Lee (mingcl@microsoft.com), Microsoft Corporation Wei-ge Chen (wchen@microsoft.com), Microsoft Corporation Bruce Lin (blin@microsoft.com), Microsoft Corporation Chuang Gu (chuanggu@microsoft.com), Microsoft Corporation (date: March, 1996)and edited by Yoshihiro Kikuchi (TOSHIBA CORPORATION) Takeshi Nagai (TOSHIBA CORPORATION) Toshiaki Watanabe (TOSHIBA CORPORATION) Noboru Yamaguchi (TOSHIBA CORPORATION)and also edited by Mathias Wien (wien@ient.rwth-aachen.de) RWTH Aachen / Robert BOSCH GmbHand also edited by Hideaki Kimata (NTT)and also edited by Fujitsu Laboratories Ltd. (contact: Eishi Morimatsu) Sehoon Son (shson@unitel.co.kr) Samsung AITin the course of development of the MPEG-4 Video (ISO/IEC 14496-2). This software module is an implementation of a part of one or more MPEG-4 Video tools as specified by the MPEG-4 Video. ISO/IEC gives users of the MPEG-4 Video free license to this software module or modifications thereof for use in hardware or software products claiming conformance to the MPEG-4 Video. Those intending to use this software module in hardware or software products are advised that its use may infringe existing patents. The original developer of this software module and his/her company, the subsequent editors and their companies, and ISO/IEC have no liability for use of this software module or modifications thereof in an implementation. Copyright is not released for non MPEG-4 Video conforming products. Microsoft retains full right to use the code for his/her own purpose, assign or donate the code to a third party and to inhibit third parties from using the code for non <MPEG standard> conforming products. This copyright notice must be included in all copies or derivative works. Copyright (c) 1996, 1997.Revision History: Aug.24, 1999 : NEWPRED added by Hideaki Kimata (NTT) Sep.06 1999 : RRV added by Eishi Morimatsu (Fujitsu Laboratories Ltd.) *************************************************************************/#ifndef __GLOBAL_HPP_#define __GLOBAL_HPP_// global tables for overlap motion comp.// central block#ifdef __GLOBAL_VAR_// rounding table for Chrominace mv; see VM1.1/Table ?Int grgiMvRound16 [16] = { 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2,};Int grgiMvRound12 [12] = { 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 2, 2,};Int grgiMvRound8 [8] = { 0, 0, 1, 1, 1, 1, 1, 2,};Int grgiMvRound4 [4] ={ 0, 1, 1, 1,};//index of candidate blocks for diffrential mv codingBlockNum gIndexOfCandBlk[5][3] = { {Y_BLOCK2, Y_BLOCK3, Y_BLOCK3}, {Y_BLOCK2, Y_BLOCK3, Y_BLOCK3}, {Y_BLOCK1, Y_BLOCK4, Y_BLOCK3}, {Y_BLOCK4, Y_BLOCK1, Y_BLOCK2}, {Y_BLOCK3, Y_BLOCK1, Y_BLOCK2}};//MPEG quantizer matrixInt rgiDefaultIntraQMatrix [BLOCK_SQUARE_SIZE] = { 8, 17, 18, 19, 21, 23, 25, 27, 17, 18, 19, 21, 23, 25, 27, 28, 20, 21, 22, 23, 24, 26, 28, 30, 21, 22, 23, 24, 26, 28, 30, 32, 22, 23, 24, 26, 28, 30, 32, 35, 23, 24, 26, 28, 30, 32, 35, 38, 25, 26, 28, 30, 32, 35, 38, 41, 27, 28, 30, 32, 35, 38, 41, 45};Int rgiDefaultInterQMatrix [BLOCK_SQUARE_SIZE] = { 16, 17, 18, 19, 20, 21, 22, 23, 17, 18, 19, 20, 21, 22, 23, 24, 18, 19, 20, 21, 22, 23, 24, 25, 19, 20, 21, 22, 23, 24, 26, 27, 20, 21, 22, 23, 25, 26, 27, 28, 21, 22, 23, 24, 26, 27, 28, 30, 22, 23, 24, 26, 27, 28, 30, 31, 23, 24, 25, 27, 28, 30, 31, 33};//added by mwiInt rgiDefaultIntraQMatrixAlpha [BLOCK_SQUARE_SIZE] = { 8, 17, 18, 19, 21, 23, 25, 27, 17, 18, 19, 21, 23, 25, 27, 28, 20, 21, 22, 23, 24, 26, 28, 30, 21, 22, 23, 24, 26, 28, 30, 32, 22, 23, 24, 26, 28, 30, 32, 35, 23, 24, 26, 28, 30, 32, 35, 38, 25, 26, 28, 30, 32, 35, 38, 41, 27, 28, 30, 32, 35, 38, 41, 45};Int rgiDefaultInterQMatrixAlpha [BLOCK_SQUARE_SIZE] = { 16, 17, 18, 19, 20, 21, 22, 23, 17, 18, 19, 20, 21, 22, 23, 24, 18, 19, 20, 21, 22, 23, 24, 25, 19, 20, 21, 22, 23, 24, 26, 27, 20, 21, 22, 23, 25, 26, 27, 28, 21, 22, 23, 24, 26, 27, 28, 30, 22, 23, 24, 26, 27, 28, 30, 31, 23, 24, 25, 27, 28, 30, 31, 33};//~added by mwiInt grgiStandardZigzag [BLOCK_SQUARE_SIZE] = { 0, 1, 8, 16, 9, 2, 3, 10, 17, 24, 32, 25, 18, 11, 4, 5, 12, 19, 26, 33, 40, 48, 41, 34, 27, 20, 13, 6, 7, 14, 21, 28, 35, 42, 49, 56, 57, 50, 43, 36, 29, 22, 15, 23, 30, 37, 44, 51, 58, 59, 52, 45, 38, 31, 39, 46, 53, 60, 61, 54, 47, 55, 62, 63};Int grgiHorizontalZigzag [BLOCK_SQUARE_SIZE] = { 0, 1, 2, 3, 8, 9, 16, 17, 10, 11, 4, 5, 6, 7, 15, 14, 13, 12, 19, 18, 24, 25, 32, 33, 26, 27, 20, 21, 22, 23, 28, 29, 30, 31, 34, 35, 40, 41, 48, 49, 42, 43, 36, 37, 38, 39, 44, 45, 46, 47, 50, 51, 56, 57, 58, 59, 52, 53, 54, 55, 60, 61, 62, 63};Int grgiVerticalZigzag [BLOCK_SQUARE_SIZE] = { 0, 8, 16, 24, 1, 9, 2, 10, 17, 25, 32, 40, 48, 56, 57, 49, 41, 33, 26, 18, 3, 11, 4, 12, 19, 27, 34, 42, 50, 58, 35, 43, 51, 59, 20, 28, 5, 13, 6, 14, 21, 29, 36, 44, 52, 60, 37, 45, 53, 61, 22, 30, 7, 15, 23, 31, 38, 46, 54, 62, 39, 47, 55, 63};UInt grgIfNotLastNumOfLevelAtRun [27] = { 12, 6, 4, 3, 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};UInt grgIfLastNumOfLevelAtRun [41] = { 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};UInt grgiIntraYAVCLHashingTable [102] = {1, 3, 6, 9, 10, 13, 14, 17, 18, 21,22, 23, 2, 34, 11, 19, 24, 25, 33, 12,20, 26, 4, 15, 39, 5, 130, 27, 65, 68,41, 7, 100, 195, 8, 131, 97, 258, 129,163, 35, 42, 66, 225, 36, 98, 16, 37,38, 67, 99, 162, 194, 226, 40, 290, 69,227, 1025, 353, 1030, 1057, 1031, 1089, 161, 1026, 1185, 193, 1121, 1153, 1313, 257, 289,321, 1027, 1217, 1249, 1281, 385, 1028, 1058,1345, 1377, 1409, 1441, 1473, 417, 1029, 1059,1090, 1122, 1154, 1505, 1537, 449, 1032, 1186,1218, 1569, 1601, 1633, 1665};Int g_rgiLMAXintra [128] ={27, 10, 5, 4, 3, 3, 3, 3, 2, 2, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 3, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};Int g_rgiRMAXintra [64] = {0, 15,10, 8, 4, 3, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 21, 7, 2, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};Int g_rgiLMAXinter [128] = {12, 6, 4, 3, 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};Int g_rgiRMAXinter [64] = {0, 27, 11, 7, 3, 2, 2, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,};// Added for error resilient mode by Toshiba(1997-11-14)Int g_iMaxHeading;Int g_iMaxMiddle;Int g_iMaxTrailing;// End Toshiba(1997-11-14)// Added for error resilience mode By Toshiba(1998-1-16:DP+RVLC)UInt grgiInterRVLCYAVCLHashingTable [169] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 65, 66, 67, 68, 69, 70, 71, 97, 98, 99, 100, 101, 102, 103, 129, 130, 131, 132, 133, 161, 162, 163, 164, 193, 194, 195, 196, 225, 226, 227, 228, 257, 258, 259, 289, 290, 291, 321, 322, 353, 354, 385, 386, 417, 418, 449, 450, 481, 482, 513, 514, 545, 546, 577, 609, 641, 673, 705, 737, 769, 801, 833, 865, 897, 929, 961, 993,1025,1057,1089,1121,1153,1185,1217,2049,2050,2051,2052,2053,2081,2082,2083,2084,2085,2113,2114,2115,2145,2146,2177,2178,2209,2210,2241,2242,2273,2274,2305,2306,2337,2338,2369,2370,2401,2402,2433,2434,2465,2466,2497,2529,2561,2593,2625,2657,2689,2721,2753,2785,2817,2849,2881,2913,2945,2977,3009,3041,3073,3105,3137,3169,3201,3233,3265,3297,3329,3361,3393,3425,3457};UInt grgiIntraRVLCYAVCLHashingTable [169] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 97, 98, 99, 100, 101, 102, 103, 104, 105, 129, 130, 131, 132, 133, 134, 161, 162, 163, 164, 165, 166, 193, 194, 195, 196, 197, 225, 226, 227, 228, 229, 257, 258, 259, 260, 289, 290, 291, 292, 321, 322, 353, 354, 385, 386, 417, 449, 481, 513, 545, 577, 609,2049,2050,2051,2052,2053,2081,2082,2083,2084,2085,2113,2114,2115,2145,2146,2177,2178,2209,2210,2241,2242,2273,2274,2305,2306,2337,2338,2369,2370,2401,2402,2433,2434,2465,2466,2497,2529,2561,2593,2625,2657,2689,2721,2753,2785,2817,2849,2881,2913,2945,2977,3009,3041,3073,3105,3137,3169,3201,3233,3265,3297,3329,3361,3393,3425,3457};// End Toshiba(1998-1-16:DP+RVLC)#elseextern Int grgiMvRound16 [16];extern Int grgiMvRound12 [12];extern Int grgiMvRound8 [8];extern Int grgiMvRound4 [4];extern BlockNum gIndexOfCandBlk[5][3];extern Int rgiDefaultIntraQMatrix [BLOCK_SQUARE_SIZE];extern Int rgiDefaultInterQMatrix [BLOCK_SQUARE_SIZE]; extern Int rgiDefaultIntraQMatrixAlpha [BLOCK_SQUARE_SIZE]; // added by mwiextern Int rgiDefaultInterQMatrixAlpha [BLOCK_SQUARE_SIZE]; // added by mwiextern Int grgiStandardZigzag [BLOCK_SQUARE_SIZE];extern Int grgiHorizontalZigzag [BLOCK_SQUARE_SIZE];extern Int grgiVerticalZigzag [BLOCK_SQUARE_SIZE];extern UInt grgIfNotLastNumOfLevelAtRun [27];extern UInt grgIfLastNumOfLevelAtRun [41];extern UInt grgiIntraYAVCLHashingTable [102];extern Int g_rgiLMAXintra [128]; extern Int g_rgiRMAXintra [64];extern Int g_rgiLMAXinter [128];extern Int g_rgiRMAXinter [64];// Added for error resilient mode by Toshiba(1997-11-14)extern Int g_iMaxHeading;extern Int g_iMaxMiddle;extern Int g_iMaxTrailing;// End Toshiba(1997-11-14)// Added for error resilience mode By Toshiba(1998-1-16:DP+RVLC)extern UInt grgiIntraRVLCYAVCLHashingTable [169];extern UInt grgiInterRVLCYAVCLHashingTable [169];// End Toshiba(1998-1-16:DP+RVLC)#endif#ifdef __GLOBAL_VAR_#undef __GLOBAL_VAR_#endif#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -