GSTables.cpp
上传用户:xjjlds
上传日期:2015-12-05
资源大小:22823k
文件大小:8k
源码类别:

多媒体编程

开发平台:

Visual C++

  1. /* 
  2.  * Copyright (C) 2003-2005 Gabest
  3.  * http://www.gabest.org
  4.  *
  5.  *  This Program is free software; you can redistribute it and/or modify
  6.  *  it under the terms of the GNU General Public License as published by
  7.  *  the Free Software Foundation; either version 2, or (at your option)
  8.  *  any later version.
  9.  *   
  10.  *  This Program is distributed in the hope that it will be useful,
  11.  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13.  *  GNU General Public License for more details.
  14.  *   
  15.  *  You should have received a copy of the GNU General Public License
  16.  *  along with GNU Make; see the file COPYING.  If not, write to
  17.  *  the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. 
  18.  *  http://www.gnu.org/copyleft/gpl.html
  19.  *
  20.  */
  21. #include "StdAfx.h"
  22. #include "gstables.h"
  23. DWORD blockTable32[4][8] = {
  24. {  0,  1,  4,  5, 16, 17, 20, 21},
  25. {  2,  3,  6,  7, 18, 19, 22, 23},
  26. {  8,  9, 12, 13, 24, 25, 28, 29},
  27. { 10, 11, 14, 15, 26, 27, 30, 31}
  28. };
  29. DWORD blockTable32Z[4][8] = {
  30. { 24, 25, 28, 29,  8,  9, 12, 13},
  31. { 26, 27, 30, 31, 10, 11, 14, 15},
  32. { 16, 17, 20, 21,  0,  1,  4,  5},
  33. { 18, 19, 22, 23,  2,  3,  6,  7}
  34. };
  35. DWORD blockTable16[8][4] = {
  36. {  0,  2,  8, 10 },
  37. {  1,  3,  9, 11 },
  38. {  4,  6, 12, 14 },
  39. {  5,  7, 13, 15 },
  40. { 16, 18, 24, 26 },
  41. { 17, 19, 25, 27 },
  42. { 20, 22, 28, 30 },
  43. { 21, 23, 29, 31 }
  44. };
  45. DWORD blockTable16S[8][4] = {
  46. {  0,  2, 16, 18 },
  47. {  1,  3, 17, 19 },
  48. {  8, 10, 24, 26 },
  49. {  9, 11, 25, 27 },
  50. {  4,  6, 20, 22 },
  51. {  5,  7, 21, 23 },
  52. { 12, 14, 28, 30 },
  53. { 13, 15, 29, 31 }
  54. };
  55. DWORD blockTable16Z[8][4] = {
  56. { 24, 26, 16, 18 },
  57. { 25, 27, 17, 19 },
  58. { 28, 30, 20, 22 },
  59. { 29, 31, 21, 23 },
  60. {  8, 10,  0,  2 },
  61. {  9, 11,  1,  3 },
  62. { 12, 14,  4,  6 },
  63. { 13, 15,  5,  7 }
  64. };
  65. DWORD blockTable16SZ[8][4] = {
  66. { 24, 26,  8, 10 },
  67. { 25, 27,  9, 11 },
  68. { 16, 18,  0,  2 },
  69. { 17, 19,  1,  3 },
  70. { 28, 30, 12, 14 },
  71. { 29, 31, 13, 15 },
  72. { 20, 22,  4,  6 },
  73. { 21, 23,  5,  7 }
  74. };
  75. DWORD blockTable8[4][8] = {
  76. {  0,  1,  4,  5, 16, 17, 20, 21},
  77. {  2,  3,  6,  7, 18, 19, 22, 23},
  78. {  8,  9, 12, 13, 24, 25, 28, 29},
  79. { 10, 11, 14, 15, 26, 27, 30, 31}
  80. };
  81. DWORD blockTable4[8][4] = {
  82. {  0,  2,  8, 10 },
  83. {  1,  3,  9, 11 },
  84. {  4,  6, 12, 14 },
  85. {  5,  7, 13, 15 },
  86. { 16, 18, 24, 26 },
  87. { 17, 19, 25, 27 },
  88. { 20, 22, 28, 30 },
  89. { 21, 23, 29, 31 }
  90. };
  91. DWORD columnTable32[8][8] = {
  92. {  0,  1,  4,  5,  8,  9, 12, 13 },
  93. {  2,  3,  6,  7, 10, 11, 14, 15 },
  94. { 16, 17, 20, 21, 24, 25, 28, 29 },
  95. { 18, 19, 22, 23, 26, 27, 30, 31 },
  96. { 32, 33, 36, 37, 40, 41, 44, 45 },
  97. { 34, 35, 38, 39, 42, 43, 46, 47 },
  98. { 48, 49, 52, 53, 56, 57, 60, 61 },
  99. { 50, 51, 54, 55, 58, 59, 62, 63 },
  100. };
  101. DWORD columnTable16[8][16] = {
  102. {   0,   2,   8,  10,  16,  18,  24,  26, 
  103.     1,   3,   9,  11,  17,  19,  25,  27 },
  104. {   4,   6,  12,  14,  20,  22,  28,  30, 
  105.     5,   7,  13,  15,  21,  23,  29,  31 },
  106. {  32,  34,  40,  42,  48,  50,  56,  58,
  107.    33,  35,  41,  43,  49,  51,  57,  59 },
  108. {  36,  38,  44,  46,  52,  54,  60,  62,
  109.    37,  39,  45,  47,  53,  55,  61,  63 },
  110. {  64,  66,  72,  74,  80,  82,  88,  90,
  111.    65,  67,  73,  75,  81,  83,  89,  91 },
  112. {  68,  70,  76,  78,  84,  86,  92,  94,
  113.    69,  71,  77,  79,  85,  87,  93,  95 },
  114. {  96,  98, 104, 106, 112, 114, 120, 122,
  115.    97,  99, 105, 107, 113, 115, 121, 123 },
  116. { 100, 102, 108, 110, 116, 118, 124, 126,
  117.   101, 103, 109, 111, 117, 119, 125, 127 },
  118. };
  119. DWORD columnTable8[16][16] = {
  120. {   0,   4,  16,  20,  32,  36,  48,  52, // column 0
  121.     2,   6,  18,  22,  34,  38,  50,  54 },
  122. {   8,  12,  24,  28,  40,  44,  56,  60,
  123.    10,  14,  26,  30,  42,  46,  58,  62 },
  124. {  33,  37,  49,  53,   1,   5,  17,  21,
  125.    35,  39,  51,  55,   3,   7,  19,  23 },
  126. {  41,  45,  57,  61,   9,  13,  25,  29,
  127.    43,  47,  59,  63,  11,  15,  27,  31 },
  128. {  96, 100, 112, 116,  64,  68,  80,  84,  // column 1
  129.    98, 102, 114, 118,  66,  70,  82,  86 },
  130. { 104, 108, 120, 124,  72,  76,  88,  92, 
  131.   106, 110, 122, 126,  74,  78,  90,  94 },
  132. {  65,  69,  81,  85,  97, 101, 113, 117,
  133.    67,  71,  83,  87,  99, 103, 115, 119 },
  134. {  73,  77,  89,  93, 105, 109, 121, 125,
  135.    75,  79,  91,  95, 107, 111, 123, 127 },
  136. { 128, 132, 144, 148, 160, 164, 176, 180, // column 2
  137.   130, 134, 146, 150, 162, 166, 178, 182 },
  138. { 136, 140, 152, 156, 168, 172, 184, 188,
  139.   138, 142, 154, 158, 170, 174, 186, 190 },
  140. { 161, 165, 177, 181, 129, 133, 145, 149,
  141.   163, 167, 179, 183, 131, 135, 147, 151 },
  142. { 169, 173, 185, 189, 137, 141, 153, 157,
  143.   171, 175, 187, 191, 139, 143, 155, 159 },
  144. { 224, 228, 240, 244, 192, 196, 208, 212, // column 3
  145.   226, 230, 242, 246, 194, 198, 210, 214 },
  146. { 232, 236, 248, 252, 200, 204, 216, 220,
  147.   234, 238, 250, 254, 202, 206, 218, 222 },
  148. { 193, 197, 209, 213, 225, 229, 241, 245,
  149.   195, 199, 211, 215, 227, 231, 243, 247 },
  150. { 201, 205, 217, 221, 233, 237, 249, 253,
  151.   203, 207, 219, 223, 235, 239, 251, 255 },
  152. };
  153. DWORD columnTable4[16][32] = {
  154. {   0,   8,  32,  40,  64,  72,  96, 104, // column 0
  155.     2,  10,  34,  42,  66,  74,  98, 106,
  156.     4,  12,  36,  44,  68,  76, 100, 108,
  157.     6,  14,  38,  46,  70,  78, 102, 110 },
  158. {  16,  24,  48,  56,  80,  88, 112, 120,
  159.    18,  26,  50,  58,  82,  90, 114, 122,
  160.    20,  28,  52,  60,  84,  92, 116, 124,
  161.    22,  30,  54,  62,  86,  94, 118, 126 },
  162. {  65,  73,  97, 105,   1,   9,  33,  41,
  163.    67,  75,  99, 107,   3,  11,  35,  43,
  164.    69,  77, 101, 109,   5,  13,  37,  45, 
  165.    71,  79, 103, 111,   7,  15,  39,  47 },
  166. {  81,  89, 113, 121,  17,  25,  49,  57,
  167.    83,  91, 115, 123,  19,  27,  51,  59,
  168.    85,  93, 117, 125,  21,  29,  53,  61,
  169.    87,  95, 119, 127,  23,  31,  55,  63 },
  170. { 192, 200, 224, 232, 128, 136, 160, 168, // column 1
  171.   194, 202, 226, 234, 130, 138, 162, 170,
  172.   196, 204, 228, 236, 132, 140, 164, 172,
  173.   198, 206, 230, 238, 134, 142, 166, 174 },
  174. { 208, 216, 240, 248, 144, 152, 176, 184,
  175.   210, 218, 242, 250, 146, 154, 178, 186,
  176.   212, 220, 244, 252, 148, 156, 180, 188,
  177.   214, 222, 246, 254, 150, 158, 182, 190 },
  178. { 129, 137, 161, 169, 193, 201, 225, 233,
  179.   131, 139, 163, 171, 195, 203, 227, 235,
  180.   133, 141, 165, 173, 197, 205, 229, 237, 
  181.   135, 143, 167, 175, 199, 207, 231, 239 },
  182. { 145, 153, 177, 185, 209, 217, 241, 249,
  183.   147, 155, 179, 187, 211, 219, 243, 251,
  184.   149, 157, 181, 189, 213, 221, 245, 253,
  185.   151, 159, 183, 191, 215, 223, 247, 255 },
  186. { 256, 264, 288, 296, 320, 328, 352, 360, // column 2
  187.   258, 266, 290, 298, 322, 330, 354, 362,
  188.   260, 268, 292, 300, 324, 332, 356, 364,
  189.   262, 270, 294, 302, 326, 334, 358, 366 },
  190. { 272, 280, 304, 312, 336, 344, 368, 376,
  191.   274, 282, 306, 314, 338, 346, 370, 378,
  192.   276, 284, 308, 316, 340, 348, 372, 380,
  193.   278, 286, 310, 318, 342, 350, 374, 382 },
  194. { 321, 329, 353, 361, 257, 265, 289, 297,
  195.   323, 331, 355, 363, 259, 267, 291, 299,
  196.   325, 333, 357, 365, 261, 269, 293, 301, 
  197.   327, 335, 359, 367, 263, 271, 295, 303 },
  198. { 337, 345, 369, 377, 273, 281, 305, 313,
  199.   339, 347, 371, 379, 275, 283, 307, 315,
  200.   341, 349, 373, 381, 277, 285, 309, 317,
  201.   343, 351, 375, 383, 279, 287, 311, 319 },
  202. { 448, 456, 480, 488, 384, 392, 416, 424, // column 3
  203.   450, 458, 482, 490, 386, 394, 418, 426,
  204.   452, 460, 484, 492, 388, 396, 420, 428,
  205.   454, 462, 486, 494, 390, 398, 422, 430 },
  206. { 464, 472, 496, 504, 400, 408, 432, 440,
  207.   466, 474, 498, 506, 402, 410, 434, 442,
  208.   468, 476, 500, 508, 404, 412, 436, 444,
  209.   470, 478, 502, 510, 406, 414, 438, 446 },
  210. { 385, 393, 417, 425, 449, 457, 481, 489,
  211.   387, 395, 419, 427, 451, 459, 483, 491,
  212.   389, 397, 421, 429, 453, 461, 485, 493, 
  213.   391, 399, 423, 431, 455, 463, 487, 495 },
  214. { 401, 409, 433, 441, 465, 473, 497, 505,
  215.   403, 411, 435, 443, 467, 475, 499, 507,
  216.   405, 413, 437, 445, 469, 477, 501, 509,
  217.   407, 415, 439, 447, 471, 479, 503, 511 },
  218. };