global.hpp
上传用户:sun1608
上传日期:2007-02-02
资源大小:6116k
文件大小:23k
源码类别:

流媒体/Mpeg4/MP4

开发平台:

Visual C++

  1. /*************************************************************************
  2. This software module was originally developed by 
  3. Ming-Chieh Lee (mingcl@microsoft.com), Microsoft Corporation
  4. Wei-ge Chen (wchen@microsoft.com), Microsoft Corporation
  5. Bruce Lin (blin@microsoft.com), Microsoft Corporation
  6. Chuang Gu (chuanggu@microsoft.com), Microsoft Corporation
  7. (date: March, 1996)
  8. and edited by
  9. Yoshihiro Kikuchi (TOSHIBA CORPORATION)
  10. Takeshi Nagai (TOSHIBA CORPORATION)
  11. Toshiaki Watanabe (TOSHIBA CORPORATION)
  12. Noboru Yamaguchi (TOSHIBA CORPORATION)
  13. in the course of development of the MPEG-4 Video (ISO/IEC 14496-2). 
  14. This software module is an implementation of a part of one or more MPEG-4 Video tools 
  15. as specified by the MPEG-4 Video. 
  16. ISO/IEC gives users of the MPEG-4 Video free license to this software module or modifications 
  17. thereof for use in hardware or software products claiming conformance to the MPEG-4 Video. 
  18. Those intending to use this software module in hardware or software products are advised that its use may infringe existing patents. 
  19. The original developer of this software module and his/her company, 
  20. the subsequent editors and their companies, 
  21. and ISO/IEC have no liability for use of this software module or modifications thereof in an implementation. 
  22. Copyright is not released for non MPEG-4 Video conforming products. 
  23. Microsoft retains full right to use the code for his/her own purpose, 
  24. assign or donate the code to a third party and to inhibit third parties from using the code for non <MPEG standard> conforming products. 
  25. This copyright notice must be included in all copies or derivative works. 
  26. Copyright (c) 1996, 1997.
  27. Revision History:
  28. *************************************************************************/
  29. #ifndef __GLOBAL_HPP_
  30. #define __GLOBAL_HPP_
  31. // global tables for overlap motion comp.
  32. // central block
  33. #ifdef __GLOBAL_VAR_
  34. UInt gWghtC[8][8] = {
  35. {4,5,5,5,5,5,5,4},
  36. {5,5,5,5,5,5,5,5},
  37. {5,5,6,6,6,6,5,5},
  38. {5,5,6,6,6,6,5,5},
  39. {5,5,6,6,6,6,5,5},
  40. {5,5,6,6,6,6,5,5},
  41. {5,5,5,5,5,5,5,5},
  42. {4,5,5,5,5,5,5,4},
  43. };
  44. // top block
  45. UInt gWghtT[8][8] = {
  46. {2,2,2,2,2,2,2,2},
  47. {1,1,2,2,2,2,1,1},
  48. {1,1,1,1,1,1,1,1},
  49. {1,1,1,1,1,1,1,1},
  50. {0,0,0,0,0,0,0,0},
  51. {0,0,0,0,0,0,0,0},
  52. {0,0,0,0,0,0,0,0},
  53. {0,0,0,0,0,0,0,0},
  54. };
  55. // bottom block
  56. UInt gWghtB[8][8] = {
  57. {0,0,0,0,0,0,0,0},
  58. {0,0,0,0,0,0,0,0},
  59. {0,0,0,0,0,0,0,0},
  60. {0,0,0,0,0,0,0,0},
  61. {1,1,1,1,1,1,1,1},
  62. {1,1,1,1,1,1,1,1},
  63. {1,1,2,2,2,2,1,1},
  64. {2,2,2,2,2,2,2,2},
  65. };
  66. // right block
  67. UInt gWghtR[8][8] = {
  68. {0,0,0,0,1,1,1,2},
  69. {0,0,0,0,1,1,2,2},
  70. {0,0,0,0,1,1,2,2},
  71. {0,0,0,0,1,1,2,2},
  72. {0,0,0,0,1,1,2,2},
  73. {0,0,0,0,1,1,2,2},
  74. {0,0,0,0,1,1,2,2},
  75. {0,0,0,0,1,1,1,2},
  76. };
  77. // left block
  78. UInt gWghtL[8][8] = {
  79. {2,1,1,1,0,0,0,0},
  80. {2,2,1,1,0,0,0,0},
  81. {2,2,1,1,0,0,0,0},
  82. {2,2,1,1,0,0,0,0},
  83. {2,2,1,1,0,0,0,0},
  84. {2,2,1,1,0,0,0,0},
  85. {2,2,1,1,0,0,0,0},
  86. {2,1,1,1,0,0,0,0},
  87. };
  88. // rounding table for Chrominace mv; see VM1.1/Table ?
  89. Int grgiMvRound16 [16] = {
  90. 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2,
  91. };
  92. Int grgiMvRound12 [12] = {
  93. 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 2, 2,
  94. };
  95. Int grgiMvRound8 [8] = {
  96. 0, 0, 1, 1, 1, 1, 1, 2,
  97. };
  98. Int grgiMvRound4 [4] ={
  99. 0, 1, 1, 1,
  100. };
  101. //index of candidate blocks for diffrential mv coding
  102. BlockNum gIndexOfCandBlk[5][3] = {
  103. {Y_BLOCK2, Y_BLOCK3, Y_BLOCK3}, 
  104. {Y_BLOCK2, Y_BLOCK3, Y_BLOCK3}, 
  105. {Y_BLOCK1, Y_BLOCK4, Y_BLOCK3},
  106. {Y_BLOCK4, Y_BLOCK1, Y_BLOCK2},
  107. {Y_BLOCK3, Y_BLOCK1, Y_BLOCK2}};
  108. //MPEG quantizer matrix
  109. Int rgiDefaultIntraQMatrix [BLOCK_SQUARE_SIZE] = {
  110. 8, 17, 18, 19, 21, 23, 25, 27,
  111. 17, 18, 19, 21, 23, 25, 27, 28,
  112. 20, 21, 22, 23, 24, 26, 28, 30,
  113. 21, 22, 23, 24, 26, 28, 30, 32,
  114. 22, 23, 24, 26, 28, 30, 32, 35,
  115. 23, 24, 26, 28, 30, 32, 35, 38,
  116. 25, 26, 28, 30, 32, 35, 38, 41,
  117. 27, 28, 30, 32, 35, 38, 41, 45
  118. };
  119. Int rgiDefaultInterQMatrix [BLOCK_SQUARE_SIZE] = {
  120. 16, 17, 18, 19, 20, 21, 22, 23,
  121. 17, 18, 19, 20, 21, 22, 23, 24,
  122. 18, 19, 20, 21, 22, 23, 24, 25,
  123. 19, 20, 21, 22, 23, 24, 26, 27,
  124. 20, 21, 22, 23, 25, 26, 27, 28,
  125. 21, 22, 23, 24, 26, 27, 28, 30,
  126. 22, 23, 24, 26, 27, 28, 30, 31,
  127. 23, 24, 25, 27, 28, 30, 31, 33
  128. };
  129. /*
  130. Int rgiDefaultIntraQMatrix [BLOCK_SQUARE_SIZE] = {
  131. 16, 16, 16, 16, 16, 16, 16, 16,
  132. 16, 16, 16, 16, 16, 16, 16, 16,
  133. 16, 16, 16, 16, 16, 16, 16, 16,
  134. 16, 16, 16, 16, 16, 16, 16, 16,
  135. 16, 16, 16, 16, 16, 16, 16, 16,
  136. 16, 16, 16, 16, 16, 16, 16, 16,
  137. 16, 16, 16, 16, 16, 16, 16, 16,
  138. 16, 16, 16, 16, 16, 16, 16, 16
  139. };
  140. Int rgiDefaultInterQMatrix [BLOCK_SQUARE_SIZE] = {
  141. 16, 16, 16, 16, 16, 16, 16, 16,
  142. 16, 16, 16, 16, 16, 16, 16, 16,
  143. 16, 16, 16, 16, 16, 16, 16, 16,
  144. 16, 16, 16, 16, 16, 16, 16, 16,
  145. 16, 16, 16, 16, 16, 16, 16, 16,
  146. 16, 16, 16, 16, 16, 16, 16, 16,
  147. 16, 16, 16, 16, 16, 16, 16, 16,
  148. 16, 16, 16, 16, 16, 16, 16, 16
  149. };
  150. */
  151. Int grgiStandardZigzag [BLOCK_SQUARE_SIZE] = {
  152. 0, 1, 8, 16, 9, 2, 3, 10, 
  153. 17, 24, 32, 25, 18, 11, 4, 5, 
  154. 12, 19, 26, 33, 40, 48, 41, 34, 
  155. 27, 20, 13, 6, 7, 14, 21, 28, 
  156. 35, 42, 49, 56, 57, 50, 43, 36, 
  157. 29, 22, 15, 23, 30, 37, 44, 51, 
  158. 58, 59, 52, 45, 38, 31, 39, 46, 
  159. 53, 60, 61, 54, 47, 55, 62, 63
  160. };
  161. Int grgiHorizontalZigzag [BLOCK_SQUARE_SIZE] = {
  162. 0, 1, 2, 3, 8, 9, 16, 17, 
  163. 10, 11, 4, 5, 6, 7, 15, 14, 
  164. 13, 12, 19, 18, 24, 25, 32, 33, 
  165. 26, 27, 20, 21, 22, 23, 28, 29, 
  166. 30, 31, 34, 35, 40, 41, 48, 49, 
  167. 42, 43, 36, 37, 38, 39, 44, 45, 
  168. 46, 47, 50, 51, 56, 57, 58, 59, 
  169. 52, 53, 54, 55, 60, 61, 62, 63
  170. };
  171. Int grgiVerticalZigzag [BLOCK_SQUARE_SIZE] = {
  172. 0, 8, 16, 24, 1, 9, 2, 10, 
  173. 17, 25, 32, 40, 48, 56, 57, 49, 
  174. 41, 33, 26, 18, 3, 11, 4, 12, 
  175. 19, 27, 34, 42, 50, 58, 35, 43, 
  176. 51, 59, 20, 28, 5, 13, 6, 14, 
  177. 21, 29, 36, 44, 52, 60, 37, 45, 
  178. 53, 61, 22, 30, 7, 15, 23, 31, 
  179. 38, 46, 54, 62, 39, 47, 55, 63
  180. };
  181. UInt grgIfNotLastNumOfLevelAtRun [27] = {
  182. 12, 6, 4, 3, 3, 3, 3, 2, 2, 2, 2, 
  183.  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  184.  1, 1, 1, 1, 1
  185. };
  186. UInt grgIfLastNumOfLevelAtRun [41] = {
  187.  3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  188.  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  189.  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  190.  1, 1, 1, 1, 1, 1, 1, 1
  191. };
  192. UInt grgiIntraYAVCLHashingTable [102] = {
  193. 1, 3, 6, 9, 10, 13, 14, 17, 18, 21,
  194. 22, 23, 2, 34, 11, 19, 24, 25, 33, 12,
  195. 20, 26, 4, 15, 39, 5, 130, 27, 65, 68,
  196. 41, 7, 100, 195, 8, 131, 97, 258, 129,
  197. 163, 35, 42, 66, 225, 36, 98, 16, 37,
  198. 38, 67, 99, 162, 194, 226, 40, 290, 69,
  199. 227, 1025, 353, 1030, 1057, 1031, 1089, 161, 
  200. 1026, 1185, 193, 1121, 1153, 1313, 257, 289,
  201. 321, 1027, 1217, 1249, 1281, 385, 1028, 1058,
  202. 1345, 1377, 1409, 1441, 1473, 417, 1029, 1059,
  203. 1090, 1122, 1154, 1505, 1537, 449, 1032, 1186,
  204. 1218, 1569, 1601, 1633, 1665};
  205. /* NBIT: change to a bigger number
  206. Int grgiDCSwitchingThreshold [8] = {32, 13, 15, 17, 19, 21, 23, 0};
  207. */
  208. Int grgiDCSwitchingThreshold [8] = {512, 13, 15, 17, 19, 21, 23, 0};
  209. Int g_rgiLMAXintra [128] ={27, 10, 5, 4, 3, 3, 3, 3, 2, 2, 1, 1, 1, 1, 1, 0, 
  210.     0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  211. 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  212. 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  213. 8,  3, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
  214. 1,  1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  215. 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  216. 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
  217. Int g_rgiRMAXintra [64]  = {0, 15,10, 8, 4, 3, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 
  218.     1,  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0,
  219.     0, 21, 7, 2, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0,
  220.     0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
  221. Int g_rgiLMAXinter [128] = {12, 6, 4, 3, 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 1, 
  222.  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
  223.  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  224.  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  225.  3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
  226.  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
  227.  1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0,
  228.  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
  229. Int g_rgiRMAXinter [64]  = {0, 27, 11, 7, 3, 2, 2, 1, 1, 1, 1, 1, 1, 0, 0, 0,
  230. 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  231.     0, 41,  2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  232. 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,};
  233. U16 gCAEintraProb [1024] = {
  234. 65267,16468,65003,17912,64573,8556,64252,5653,
  235. 40174,3932,29789,277,45152,1140,32768,2043,
  236. 4499,80,6554,1144,21065,465,32768,799,
  237. 5482,183,7282,264,5336,99,6554,563,
  238. 54784,30201,58254,9879,54613,3069,32768,58495,
  239. 32768,32768,32768,2849,58982,54613,32768,12892,
  240. 31006,1332,49152,3287,60075,350,32768,712,
  241. 39322,760,32768,354,52659,432,61854,150,
  242. 64999,28362,65323,42521,63572,32768,63677,18319,
  243. 4910,32768,64238,434,53248,32768,61865,13590,
  244. 16384,32768,13107,333,32768,32768,32768,32768,
  245. 32768,32768,1074,780,25058,5461,6697,233,
  246. 62949,30247,63702,24638,59578,32768,32768,42257,
  247. 32768,32768,49152,546,62557,32768,54613,19258,
  248. 62405,32569,64600,865,60495,10923,32768,898,
  249. 34193,24576,64111,341,47492,5231,55474,591,
  250. 65114,60075,64080,5334,65448,61882,64543,13209,
  251. 54906,16384,35289,4933,48645,9614,55351,7318,
  252. 49807,54613,32768,32768,50972,32768,32768,32768,
  253. 15159,1928,2048,171,3093,8,6096,74,
  254. 32768,60855,32768,32768,32768,32768,32768,32768,
  255. 32768,32768,32768,32768,32768,55454,32768,57672,
  256. 32768,16384,32768,21845,32768,32768,32768,32768,
  257. 32768,32768,32768,5041,28440,91,32768,45,
  258. 65124,10923,64874,5041,65429,57344,63435,48060,
  259. 61440,32768,63488,24887,59688,3277,63918,14021,
  260. 32768,32768,32768,32768,32768,32768,32768,32768,
  261. 690,32768,32768,1456,32768,32768,8192,728,
  262. 32768,32768,58982,17944,65237,54613,32768,2242,
  263. 32768,32768,32768,42130,49152,57344,58254,16740,
  264. 32768,10923,54613,182,32768,32768,32768,7282,
  265. 49152,32768,32768,5041,63295,1394,55188,77,
  266. 63672,6554,54613,49152,64558,32768,32768,5461,
  267. 64142,32768,32768,32768,62415,32768,32768,16384,
  268. 1481,438,19661,840,33654,3121,64425,6554,
  269. 4178,2048,32768,2260,5226,1680,32768,565,
  270. 60075,32768,32768,32768,32768,32768,32768,32768,
  271. 32768,32768,32768,32768,32768,32768,32768,32768,
  272. 16384,261,32768,412,16384,636,32768,4369,
  273. 23406,4328,32768,524,15604,560,32768,676,
  274. 49152,32768,49152,32768,32768,32768,64572,32768,
  275. 32768,32768,54613,32768,32768,32768,32768,32768,
  276. 4681,32768,5617,851,32768,32768,59578,32768,
  277. 32768,32768,3121,3121,49152,32768,6554,10923,
  278. 32768,32768,54613,14043,32768,32768,32768,3449,
  279. 32768,32768,32768,32768,32768,32768,32768,32768,
  280. 57344,32768,57344,3449,32768,32768,32768,3855,
  281. 58982,10923,32768,239,62259,32768,49152,85,
  282. 58778,23831,62888,20922,64311,8192,60075,575,
  283. 59714,32768,57344,40960,62107,4096,61943,3921,
  284. 39862,15338,32768,1524,45123,5958,32768,58982,
  285. 6669,930,1170,1043,7385,44,8813,5011,
  286. 59578,29789,54613,32768,32768,32768,32768,32768,
  287. 32768,32768,32768,32768,58254,56174,32768,32768,
  288. 64080,25891,49152,22528,32768,2731,32768,10923,
  289. 10923,3283,32768,1748,17827,77,32768,108,
  290. 62805,32768,62013,42612,32768,32768,61681,16384,
  291. 58982,60075,62313,58982,65279,58982,62694,62174,
  292. 32768,32768,10923,950,32768,32768,32768,32768,
  293. 5958,32768,38551,1092,11012,39322,13705,2072,
  294. 54613,32768,32768,11398,32768,32768,32768,145,
  295. 32768,32768,32768,29789,60855,32768,61681,54792,
  296. 32768,32768,32768,17348,32768,32768,32768,8192,
  297. 57344,16384,32768,3582,52581,580,24030,303,
  298. 62673,37266,65374,6197,62017,32768,49152,299,
  299. 54613,32768,32768,32768,35234,119,32768,3855,
  300. 31949,32768,32768,49152,16384,32768,32768,32768,
  301. 24576,32768,49152,32768,17476,32768,32768,57445,
  302. 51200,50864,54613,27949,60075,20480,32768,57344,
  303. 32768,32768,32768,32768,32768,45875,32768,32768,
  304. 11498,3244,24576,482,16384,1150,32768,16384,
  305. 7992,215,32768,1150,23593,927,32768,993,
  306. 65353,32768,65465,46741,41870,32768,64596,59578,
  307. 62087,32768,12619,23406,11833,32768,47720,17476,
  308. 32768,32768,2621,6554,32768,32768,32768,32768,
  309. 32768,32768,5041,32768,16384,32768,4096,2731,
  310. 63212,43526,65442,47124,65410,35747,60304,55858,
  311. 60855,58982,60075,19859,35747,63015,64470,25432,
  312. 58689,1118,64717,1339,24576,32768,32768,1257,
  313. 53297,1928,32768,33,52067,3511,62861,453,
  314. 64613,32768,32768,32768,64558,32768,32768,2731,
  315. 49152,32768,32768,32768,61534,32768,32768,35747,
  316. 32768,32768,32768,32768,13107,32768,32768,32768,
  317. 32768,32768,32768,32768,20480,32768,32768,32768,
  318. 32768,32768,32768,54613,40960,5041,32768,32768,
  319. 32768,32768,32768,3277,64263,57592,32768,3121,
  320. 32768,32768,32768,32768,32768,10923,32768,32768,
  321. 32768,8192,32768,32768,5461,6899,32768,1725,
  322. 63351,3855,63608,29127,62415,7282,64626,60855,
  323. 32768,32768,60075,5958,44961,32768,61866,53718,
  324. 32768,32768,32768,32768,32768,32768,6554,32768,
  325. 32768,32768,32768,32768,2521,978,32768,1489,
  326. 58254,32768,58982,61745,21845,32768,54613,58655,
  327. 60075,32768,49152,16274,50412,64344,61643,43987,
  328. 32768,32768,32768,1638,32768,32768,32768,24966,
  329. 54613,32768,32768,2427,46951,32768,17970,654,
  330. 65385,27307,60075,26472,64479,32768,32768,4681,
  331. 61895,32768,32768,16384,58254,32768,32768,6554,
  332. 37630,3277,54613,6554,4965,5958,4681,32768,
  333. 42765,16384,32768,21845,22827,16384,32768,6554,
  334. 65297,64769,60855,12743,63195,16384,32768,37942,
  335. 32768,32768,32768,32768,60075,32768,62087,54613,
  336. 41764,2161,21845,1836,17284,5424,10923,1680,
  337. 11019,555,32768,431,39819,907,32768,171,
  338. 65480,32768,64435,33803,2595,32768,57041,32768,
  339. 61167,32768,32768,32768,32768,32768,32768,1796,
  340. 60855,32768,17246,978,32768,32768,8192,32768,
  341. 32768,32768,14043,2849,32768,2979,6554,6554,
  342. 65507,62415,65384,61891,65273,58982,65461,55097,
  343. 32768,32768,32768,55606,32768,2979,3745,16913,
  344. 61885,13827,60893,12196,60855,53248,51493,11243,
  345. 56656,783,55563,143,63432,7106,52429,445,
  346. 65485,1031,65020,1380,65180,57344,65162,36536,
  347. 61154,6554,26569,2341,63593,3449,65102,533,
  348. 47827,2913,57344,3449,35688,1337,32768,22938,
  349. 25012,910,7944,1008,29319,607,64466,4202,
  350. 64549,57301,49152,20025,63351,61167,32768,45542,
  351. 58982,14564,32768,9362,61895,44840,32768,26385,
  352. 59664,17135,60855,13291,40050,12252,32768,7816,
  353. 25798,1850,60495,2662,18707,122,52538,231,
  354. 65332,32768,65210,21693,65113,6554,65141,39667,
  355. 62259,32768,22258,1337,63636,32768,64255,52429,
  356. 60362,32768,6780,819,16384,32768,16384,4681,
  357. 49152,32768,8985,2521,24410,683,21535,16585,
  358. 65416,46091,65292,58328,64626,32768,65016,39897,
  359. 62687,47332,62805,28948,64284,53620,52870,49567,
  360. 65032,31174,63022,28312,64299,46811,48009,31453,
  361. 61207,7077,50299,1514,60047,2634,46488,235
  362. };
  363. U16 gCAEinterProb [512] = {
  364. 65532,62970,65148,54613,62470,8192,62577,8937,
  365. 65480,64335,65195,53248,65322,62518,62891,38312,
  366. 65075,53405,63980,58982,32768,32768,54613,32768,
  367. 65238,60009,60075,32768,59294,19661,61203,13107,
  368. 63000,9830,62566,58982,11565,32768,25215,3277,
  369. 53620,50972,63109,43691,54613,32768,39671,17129,
  370. 59788,6068,43336,27913,6554,32768,12178,1771,
  371. 56174,49152,60075,43691,58254,16384,49152,9930,
  372. 23130,7282,40960,32768,10923,32768,32768,32768,
  373. 27307,32768,32768,32768,32768,32768,32768,32768,
  374. 36285,12511,10923,32768,45875,16384,32768,32768,
  375. 16384,23831,4369,32768,8192,10923,32768,32768,
  376. 10175,2979,18978,10923,54613,32768,6242,6554,
  377. 1820,10923,32768,32768,32768,32768,32768,5461,
  378. 28459,593,11886,2030,3121,4681,1292,112,
  379. 42130,23831,49152,29127,32768,6554,5461,2048,
  380. 65331,64600,63811,63314,42130,19661,49152,32768,
  381. 65417,64609,62415,64617,64276,44256,61068,36713,
  382. 64887,57525,53620,61375,32768,8192,57344,6554,
  383. 63608,49809,49152,62623,32768,15851,58982,34162,
  384. 55454,51739,64406,64047,32768,32768,7282,32768,
  385. 49152,58756,62805,64990,32768,14895,16384,19418,
  386. 57929,24966,58689,31832,32768,16384,10923,6554,
  387. 54613,42882,57344,64238,58982,10082,20165,20339,
  388. 62687,15061,32768,10923,32768,10923,32768,16384,
  389. 59578,34427,32768,16384,32768,7825,32768,7282,
  390. 58052,23400,32768,5041,32768,2849,32768,32768,
  391. 47663,15073,57344,4096,32768,1176,32768,1320,
  392. 24858,410,24576,923,32768,16384,16384,5461,
  393. 16384,1365,32768,5461,32768,5699,8192,13107,
  394. 46884,2361,23559,424,19661,712,655,182,
  395. 58637,2094,49152,9362,8192,85,32768,1228,
  396. 65486,49152,65186,49152,61320,32768,57088,25206,
  397. 65352,63047,62623,49152,64641,62165,58986,18304,
  398. 64171,16384,60855,54613,42130,32768,61335,32768,
  399. 58254,58982,49152,32768,60985,35289,64520,31554,
  400. 51067,32768,64074,32768,40330,32768,34526,4096,
  401. 60855,32768,63109,58254,57672,16384,31009,2567,
  402. 23406,32768,44620,10923,32768,32768,32099,10923,
  403. 49152,49152,54613,60075,63422,54613,46388,39719,
  404. 58982,32768,54613,32768,14247,32768,22938,5041,
  405. 32768,49152,32768,32768,25321,6144,29127,10999,
  406. 41263,32768,46811,32768,267,4096,426,16384,
  407. 32768,19275,49152,32768,1008,1437,5767,11275,
  408. 5595,5461,37493,6554,4681,32768,6147,1560,
  409. 38229,10923,32768,40960,35747,2521,5999,312,
  410. 17052,2521,18808,3641,213,2427,574,32,
  411. 51493,42130,42130,53053,11155,312,2069,106,
  412. 64406,45197,58982,32768,32768,16384,40960,36864,
  413. 65336,64244,60075,61681,65269,50748,60340,20515,
  414. 58982,23406,57344,32768,6554,16384,19661,61564,
  415. 60855,47480,32768,54613,46811,21701,54909,37826,
  416. 32768,58982,60855,60855,32768,32768,39322,49152,
  417. 57344,45875,60855,55706,32768,24576,62313,25038,
  418. 54613,8192,49152,10923,32768,32768,32768,32768,
  419. 32768,19661,16384,51493,32768,14043,40050,44651,
  420. 59578,5174,32768,6554,32768,5461,23593,5461,
  421. 63608,51825,32768,23831,58887,24032,57170,3298,
  422. 39322,12971,16384,49152,1872,618,13107,2114,
  423. 58982,25705,32768,60075,28913,949,18312,1815,
  424. 48188,114,51493,1542,5461,3855,11360,1163,
  425. 58982,7215,54613,21487,49152,4590,48430,1421,
  426. 28944,1319,6868,324,1456,232,820,7,
  427. 61681,1864,60855,9922,4369,315,6589,14
  428. };
  429. U8 grgchFirstShpCd [243] = {
  430. 0, 3, 2, 3, 2, 0, 2, 3, 0, 0, 3, 2, 0, 2, 3, 0, 2, 3, 
  431. 0, 3, 2, 0, 2, 3, 2, 3, 0, 3, 2, 0, 0, 2, 3, 0, 2, 3, 
  432. 3, 2, 0, 0, 2, 3, 2, 0, 3, 3, 2, 0, 0, 2, 3, 0, 2, 3, 
  433. 2, 3, 0, 0, 2, 3, 3, 2, 0, 2, 3, 0, 0, 2, 3, 3, 2, 0, 
  434. 2, 3, 0, 3, 2, 0, 3, 2, 0, 0, 2, 3, 0, 2, 3, 0, 2, 3, 
  435. 0, 2, 3, 0, 2, 3, 0, 2, 3, 0, 2, 3, 0, 2, 3, 3, 2, 0, 
  436. 0, 2, 3, 3, 2, 0, 3, 2, 0, 0, 2, 3, 3, 0, 2, 3, 2, 0, 
  437. 0, 2, 3, 3, 0, 2, 3, 2, 0, 0, 2, 3, 3, 2, 0, 2, 3, 0, 
  438. 0, 2, 3, 3, 2, 0, 2, 3, 0, 0, 3, 2, 3, 0, 2, 2, 3, 0, 
  439. 0, 3, 2, 2, 3, 0, 2, 3, 0, 0, 2, 3, 0, 2, 3, 0, 2, 3, 
  440. 0, 2, 3, 0, 2, 3, 2, 3, 0, 0, 2, 3, 3, 2, 0, 3, 2, 0, 
  441. 2, 3, 0, 3, 0, 2, 3, 0, 2, 2, 3, 0, 3, 0, 2, 3, 2, 0, 
  442. 0, 3, 2, 3, 2, 0, 2, 3, 0, 2, 3, 0, 3, 0, 2, 3, 2, 0, 
  443. 0, 3, 2, 3, 0, 2, 3, 2, 0 
  444. };
  445. // 10/11/97 Threshold for shape upsampling filter : added by dscho@dspsun.sait.samsung.co.kr
  446. U8 grgchInterpolationFilterTh [256] = {
  447.        3, 6, 6, 7,  4, 7, 7, 8,  6, 7, 5, 8,  7, 8, 8, 9,
  448.        6, 5, 5, 8,  5, 6, 8, 9,  7, 6, 8, 9,  8, 7, 9,10,
  449.        6, 7, 7, 8,  7, 8, 8, 9,  7,10, 8, 9,  8, 9, 9,10,
  450.        7, 8, 6, 9,  6, 9, 9,10,  8, 9, 9,10, 11,10,10,11,
  451.        6, 9, 5, 8,  5, 6, 8, 9,  7,10,10, 9,  8, 7, 9,10,
  452.        7, 6, 8, 9,  8, 7, 7,10,  8, 9, 9,10,  9, 8,10, 9,
  453.        7, 8, 8, 9,  6, 9, 9,10,  8, 9, 9,10,  9,10,10, 9,
  454.        8, 9,11,10,  7,10,10,11,  9,12,10,11, 10,11,11,12,
  455.        6, 7, 5, 8,  5, 6, 8, 9,  5, 6, 6, 9,  8, 9, 9,10,
  456.        5, 8, 8, 9,  6, 7, 9,10,  6, 7, 9,10,  9,10,10,11,
  457.        7, 8, 6, 9,  8, 9, 9,10,  8, 7, 9,10,  9,10,10,11,
  458.        8, 9, 7,10,  9,10, 8,11,  9,10,10,11, 10,11, 9,12,
  459.        7, 8, 6, 9,  8, 9, 9,10, 10, 9, 7,10,  9,10,10,11,
  460.        8, 7, 7,10,  7, 8, 8, 9,  9,10,10,11, 10,11,11,12,
  461.        8, 9, 9,10,  9,10,10, 9,  9,10,10,11, 10,11,11,12,
  462.        9,10,10,11, 10,11,11,12, 10,11,11,12, 11,12,12,13
  463. };
  464. // Added for error resilient mode by Toshiba(1997-11-14)
  465. Int g_iMaxHeading;
  466. Int g_iMaxMiddle;
  467. Int  g_iMaxTrailing;
  468. // End Toshiba(1997-11-14)
  469. // Added for error resilience mode By Toshiba(1998-1-16:DP+RVLC)
  470. UInt grgiInterRVLCYAVCLHashingTable [169] = {
  471.    1,   2,   3,   4,   5,   6,   7,   8,   9,  10,
  472.   11,  12,  13,  14,  15,  16,  17,  18,  19,  33,
  473.   34,  35,  36,  37,  38,  39,  40,  41,  42,  65,
  474.   66,  67,  68,  69,  70,  71,  97,  98,  99, 100,
  475.  101, 102, 103, 129, 130, 131, 132, 133, 161, 162,
  476.  163, 164, 193, 194, 195, 196, 225, 226, 227, 228,
  477.  257, 258, 259, 289, 290, 291, 321, 322, 353, 354,
  478.  385, 386, 417, 418, 449, 450, 481, 482, 513, 514,
  479.  545, 546, 577, 609, 641, 673, 705, 737, 769, 801,
  480.  833, 865, 897, 929, 961, 993,1025,1057,1089,1121,
  481. 1153,1185,1217,2049,2050,2051,2052,2053,2081,2082,
  482. 2083,2084,2085,2113,2114,2115,2145,2146,2177,2178,
  483. 2209,2210,2241,2242,2273,2274,2305,2306,2337,2338,
  484. 2369,2370,2401,2402,2433,2434,2465,2466,2497,2529,
  485. 2561,2593,2625,2657,2689,2721,2753,2785,2817,2849,
  486. 2881,2913,2945,2977,3009,3041,3073,3105,3137,3169,
  487. 3201,3233,3265,3297,3329,3361,3393,3425,3457
  488. };
  489. UInt grgiIntraRVLCYAVCLHashingTable [169] = {
  490.    1,   2,   3,   4,   5,   6,   7,   8,   9,  10,
  491.   11,  12,  13,  14,  15,  16,  17,  18,  19,  20,
  492.   21,  22,  23,  24,  25,  26,  27,  33,  34,  35,
  493.   36,  37,  38,  39,  40,  41,  42,  43,  44,  45,
  494.   65,  66,  67,  68,  69,  70,  71,  72,  73,  74,
  495.   75,  97,  98,  99, 100, 101, 102, 103, 104, 105,
  496.  129, 130, 131, 132, 133, 134, 161, 162, 163, 164,
  497.  165, 166, 193, 194, 195, 196, 197, 225, 226, 227,
  498.  228, 229, 257, 258, 259, 260, 289, 290, 291, 292,
  499.  321, 322, 353, 354, 385, 386, 417, 449, 481, 513,
  500.  545, 577, 609,2049,2050,2051,2052,2053,2081,2082,
  501. 2083,2084,2085,2113,2114,2115,2145,2146,2177,2178,
  502. 2209,2210,2241,2242,2273,2274,2305,2306,2337,2338,
  503. 2369,2370,2401,2402,2433,2434,2465,2466,2497,2529,
  504. 2561,2593,2625,2657,2689,2721,2753,2785,2817,2849,
  505. 2881,2913,2945,2977,3009,3041,3073,3105,3137,3169,
  506. 3201,3233,3265,3297,3329,3361,3393,3425,3457
  507. };
  508. UInt grgIfNotLastNumOfLevelAtRunInterRVLC [39] = {
  509. 19, 10, 7, 7, 5, 4, 4, 4, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2,
  510. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
  511. };
  512. UInt grgIfLastNumOfLevelAtRunInterRVLC [45] = {
  513. 5, 5, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 
  514. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  515.  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
  516. };
  517. UInt grgIfNotLastNumOfLevelAtRunIntraRVLC [20] = {
  518. 27, 13, 11, 9, 6, 6, 5, 5, 4, 4, 2, 2, 2, 
  519. 1, 1, 1, 1, 1, 1, 1
  520. };
  521. UInt grgIfLastNumOfLevelAtRunIntraRVLC [45] = {
  522. 5, 5, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 
  523. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  524.  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
  525. };
  526. // End Toshiba(1998-1-16:DP+RVLC)
  527. #else
  528. extern UInt gWghtC[8][8];
  529. extern UInt gWghtT[8][8];
  530. extern UInt gWghtB[8][8];
  531. extern UInt gWghtR[8][8];
  532. extern UInt gWghtL[8][8];
  533. extern Int grgiMvRound16 [16];
  534. extern Int grgiMvRound12 [12];
  535. extern Int grgiMvRound8 [8];
  536. extern Int grgiMvRound4 [4];
  537. extern BlockNum gIndexOfCandBlk[5][3];
  538. extern Int rgiDefaultIntraQMatrix [BLOCK_SQUARE_SIZE];
  539. extern Int rgiDefaultInterQMatrix [BLOCK_SQUARE_SIZE]; 
  540. extern Int grgiStandardZigzag [BLOCK_SQUARE_SIZE];
  541. extern Int grgiHorizontalZigzag [BLOCK_SQUARE_SIZE];
  542. extern Int grgiVerticalZigzag [BLOCK_SQUARE_SIZE];
  543. extern UInt grgIfNotLastNumOfLevelAtRun [27];
  544. extern UInt grgIfLastNumOfLevelAtRun [41];
  545. extern UInt grgiIntraYAVCLHashingTable [102];
  546. extern Int grgiDCSwitchingThreshold [8];
  547. extern Int g_rgiLMAXintra [128]; 
  548. extern Int g_rgiRMAXintra [32];
  549. extern Int g_rgiLMAXinter [128];
  550. extern Int g_rgiRMAXinter [32];
  551. extern U16 gCAEintraProb [1024];
  552. extern U16 gCAEinterProb [512];
  553. extern U8 grgchFirstShpCd [243];
  554. extern U8 grgchInterpolationFilterTh [256];
  555. // Added for error resilient mode by Toshiba(1997-11-14)
  556. extern Int g_iMaxHeading;
  557. extern Int g_iMaxMiddle;
  558. extern Int  g_iMaxTrailing;
  559. // End Toshiba(1997-11-14)
  560. // Added for error resilience mode By Toshiba(1998-1-16:DP+RVLC)
  561. extern UInt grgiIntraRVLCYAVCLHashingTable [169];
  562. extern UInt grgiInterRVLCYAVCLHashingTable [169];
  563. extern UInt grgIfNotLastNumOfLevelAtRunInterRVLC [39];
  564. extern UInt grgIfLastNumOfLevelAtRunInterRVLC [45];
  565. extern UInt grgIfNotLastNumOfLevelAtRunIntraRVLC [20];
  566. extern UInt grgIfLastNumOfLevelAtRunIntraRVLC [45];
  567. // End Toshiba(1998-1-16:DP+RVLC)
  568. #endif
  569. #ifdef __GLOBAL_VAR_
  570. #undef __GLOBAL_VAR_
  571. #endif
  572. #endif