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

📄 sactbls.h

📁 基于H.263的图像压缩编解码的C源码
💻 H
字号:
/************************************************************************
 *
 *  sactbls.h, part of tmn (TMN encoder)
 *  
 ************************************************************************/


/*********************************************************************
 *
 * SAC tables
 * Algorithm as specified in H263 (Annex E)
 *
 *********************************************************************/

int cumf_COD[3]={16383, 6849, 0};

int cumf_MCBPC[22]={
    16383, 4105, 3088, 2367, 1988, 1621, 1612, 1609, 1608, 496,
      353,  195,   77,   22,   17,   12,    5,    4,    3,   2,
        1,    0};

int cumf_MCBPC_intra[10]={
    16383, 7410, 6549, 5188, 442, 182, 181, 141, 1, 0};

int cumf_MODB[4]={16383, 6062, 2130, 0};

int cumf_YCBPB[3]={16383,6062,0};

int cumf_UVCBPB[3]={16383,491,0};

int cumf_CBPY[17]={
    16383, 14481, 13869, 13196, 12568, 11931, 11185,10814, 9796, 9150,
     8781,  7933,  6860,  6116,  4873,  3538,     0};

int cumf_CBPY_intra[17]={
    16383, 13619, 13211, 12933, 12562, 12395,11913, 11783, 11004, 10782,
    10689,  9928,  9353,  8945,  8407,  7795,    0};

int cumf_DQUANT[5]={16383, 12287, 8192, 4095, 0};

int cumf_MVD[65]={
    16383, 16380, 16369, 16365, 16361, 16357, 16350, 16343, 16339, 16333,
    16326, 16318, 16311, 16306, 16298, 16291, 16283, 16272, 16261, 16249,
    16235, 16222, 16207, 16175, 16141, 16094, 16044, 15936, 15764, 15463,
    14956, 13924, 11491,  4621,  2264,  1315,   854,   583,   420,   326,
      273,   229,   196,   166,   148,   137,   123,   114,   101,    91,
       82,    76,    66,    59,    53,    46,    36,    30,    26,    24,
       18,    14,    10,     5,     0};

int cumf_INTRADC[255]={
    16383, 16380, 16379, 16378, 16377, 16376, 16370, 16361, 16360, 16359,
    16358, 16357, 16356, 16355, 16343, 16238, 16237, 16236, 16230, 16221,
    16220, 16205, 16190, 16169, 16151, 16130, 16109, 16094, 16070, 16037,
    16007, 15962, 15938, 15899, 15854, 15815, 15788, 15743, 15689, 15656,
    15617, 15560, 15473, 15404, 15296, 15178, 15106, 14992, 14868, 14738,
    14593, 14438, 14283, 14169, 14064, 14004, 13914, 13824, 13752, 13671,
    13590, 13515, 13458, 13380, 13305, 13230, 13143, 13025, 12935, 12878,
    12794, 12743, 12656, 12596, 12521, 12443, 12359, 12278, 12200, 12131,
    12047, 12002, 11948, 11891, 11828, 11744, 11663, 11588, 11495, 11402,
    11288, 11204, 11126, 11039, 10961, 10883, 10787, 10679, 10583, 10481,
    10360, 10227, 10113,  9961,  9828,  9717,  9584,  9485,  9324,  9112,
     9019,  8908,  8766,  8584,  8426,  8211,  7920,  7663,  7406,  7152,
     6904,  6677,  6453,  6265,  6101,  5904,  5716,  5489,  5307,  5056,
     4850,  4569,  4284,  3966,  3712,  3518,  3342,  3206,  3048,  2909,
     2773,  2668,  2596,  2512,  2370,  2295,  2232,  2166,  2103,  2022,
     1956,  1887,  1830,  1803,  1770,  1728,  1674,  1635,  1599,  1557,
     1500,  1482,  1434,  1389,  1356,  1317,  1284,  1245,  1200,  1179,
     1140,  1110,  1092,  1062,  1044,  1035,  1014,  1008,   993,   981,
      954,   936,   912,   894,   876,   864,   849,   828,   816,   801,
      792,   777,   756,   732,   690,   660,   642,   615,   597,   576,
      555,   522,   489,   459,   435,   411,   405,   396,   387,   375,
      360,   354,   345,   344,   329,   314,   293,   278,   251,   236,
      230,   224,   215,   214,   208,   199,   193,   184,   178,   169,
      154,   127,   100,    94,    73,    37,    36,    35,    34,    33,
       32,    31,    30,    29,    28,    27,    26,    20,    19,    18,
       17,    16,    15,     9,     0};

int cumf_TCOEF1[104]={
    16383, 13455, 12458, 12079, 11885, 11800, 11738, 11700, 11681, 11661,
    11651, 11645, 11641, 10572, 10403, 10361, 10346, 10339, 10335,  9554,
     9445,  9427,  9419,  9006,  8968,  8964,  8643,  8627,  8624,  8369,
     8354,  8352,  8200,  8192,  8191,  8039,  8036,  7920,  7917,  7800,
     7793,  7730,  7727,  7674,  7613,  7564,  7513,  7484,  7466,  7439,
     7411,  7389,  7373,  7369,  7359,  7348,  7321,  7302,  7294,  5013,
     4819,  4789,  4096,  4073,  3373,  3064,  2674,  2357,  2177,  1975,
     1798,  1618,  1517,  1421,  1303,  1194,  1087,  1027,   960,   890,
      819,   758,   707,   680,   656,   613,   566,   534,   505,   475,
      465,   449,   430,   395,   358,   335,   324,   303,   295,   286,
      272,   233,   215,     0};

int cumf_TCOEF2[104]={
    16383, 13582, 12709, 12402, 12262, 12188, 12150, 12131, 12125, 12117,
    12113, 12108, 12104, 10567, 10180, 10070, 10019,  9998,  9987,  9158,
     9037,  9010,  9005,  8404,  8323,  8312,  7813,  7743,  7726,  7394,
     7366,  7364,  7076,  7062,  7060,  6810,  6797,  6614,  6602,  6459,
     6454,  6304,  6303,  6200,  6121,  6059,  6012,  5973,  5928,  5893,
     5871,  5847,  5823,  5809,  5796,  5781,  5771,  5763,  5752,  4754,
     4654,  4631,  3934,  3873,  3477,  3095,  2758,  2502,  2257,  2054,
     1869,  1715,  1599,  1431,  1305,  1174,  1059,   983,   901,   839,
      777,   733,   683,   658,   606,   565,   526,   488,   456,   434,
      408,   380,   361,   327,   310,   296,   267,   259,   249,   239,
      230,   221,   214,     0};

int cumf_TCOEF3[104]={
    16383, 13532, 12677, 12342, 12195, 12112, 12059, 12034, 12020, 12008,
    12003, 12002, 12001, 10586, 10297, 10224, 10202, 10195, 10191,  9223,
     9046,  8999,  8987,  8275,  8148,  8113,  7552,  7483,  7468,  7066,
     7003,  6989,  6671,  6642,  6631,  6359,  6327,  6114,  6103,  5929,
     5918,  5792,  5785,  5672,  5580,  5507,  5461,  5414,  5382,  5354,
     5330,  5312,  5288,  5273,  5261,  5247,  5235,  5227,  5219,  4357,
     4277,  4272,  3847,  3819,  3455,  3119,  2829,  2550,  2313,  2104,
     1881,  1711,  1565,  1366,  1219,  1068,   932,   866,   799,   750,
      701,   662,   605,   559,   513,   471,   432,   403,   365,   336,
      312,   290,   276,   266,   254,   240,   228,   223,   216,   206,
      199,   192,   189,     0};

int cumf_TCOEFr[104]={
    16383, 13216, 12233, 11931, 11822, 11776, 11758, 11748, 11743, 11742,
    11741, 11740, 11739, 10203,  9822,  9725,  9691,  9677,  9674,  8759,
     8609,  8576,  8566,  7901,  7787,  7770,  7257,  7185,  7168,  6716,
     6653,  6639,  6276,  6229,  6220,  5888,  5845,  5600,  5567,  5348,
     5327,  5160,  5142,  5004,  4900,  4798,  4743,  4708,  4685,  4658,
     4641,  4622,  4610,  4598,  4589,  4582,  4578,  4570,  4566,  3824,
     3757,  3748,  3360,  3338,  3068,  2835,  2592,  2359,  2179,  1984,
     1804,  1614,  1445,  1234,  1068,   870,   739,   668,   616,   566,
      532,   489,   453,   426,   385,   357,   335,   316,   297,   283,
      274,   266,   259,   251,   241,   233,   226,   222,   217,   214,
      211,   209,   208,     0};

int cumf_TCOEF1_intra[104]={
    16383, 13383, 11498, 10201, 9207, 8528, 8099, 7768, 7546, 7368,
     7167,  6994,  6869,  6005, 5474, 5220, 5084, 4964, 4862, 4672,
     4591,  4570,  4543,  4397, 4337, 4326, 4272, 4240, 4239, 4212,
     4196,  4185,  4158,  4157, 4156, 4140, 4139, 4138, 4137, 4136,
     4125,  4124,  4123,  4112, 4111, 4110, 4109, 4108, 4107, 4106,
     4105,  4104,  4103,  4102, 4101, 4100, 4099, 4098, 4097, 3043,
     2897,  2843,  1974,  1790, 1677, 1552, 1416, 1379, 1331, 1288,
     1251,  1250,  1249,  1248, 1247, 1236, 1225, 1224, 1223, 1212,
     1201,  1200,  1199,  1198, 1197, 1196, 1195, 1194, 1193, 1192,
     1191,  1190,  1189,  1188, 1187, 1186, 1185, 1184, 1183, 1182,
     1181,  1180,  1179,  0};

int cumf_TCOEF2_intra[104]={
    16383, 13242, 11417, 10134, 9254, 8507, 8012, 7556, 7273, 7062,
     6924,  6839,  6741,  6108, 5851, 5785, 5719, 5687, 5655, 5028,
     4917,  4864,  4845,  4416, 4159, 4074, 3903, 3871, 3870, 3765,
     3752,  3751,  3659,  3606, 3580, 3541, 3540, 3514, 3495, 3494,
     3493,  3474,  3473,  3441, 3440, 3439, 3438, 3425, 3424, 3423,
     3422,  3421,  3420,  3401, 3400, 3399, 3398, 3397, 3396, 2530,
     2419,  2360,  2241,  2228, 2017, 1687, 1576, 1478, 1320, 1281,
     1242,  1229,  1197,  1178, 1152, 1133, 1114, 1101, 1088, 1087,
     1086,  1085,  1072,  1071, 1070, 1069, 1068, 1067, 1066, 1065,
     1064,  1063,  1062,  1061, 1060, 1059, 1058, 1057, 1056, 1055,
     1054,  1053,  1052,  0};

int cumf_TCOEF3_intra[104]={
    16383, 12741, 10950, 10071, 9493, 9008, 8685, 8516, 8385, 8239,
     8209,  8179,  8141,  6628, 5980, 5634, 5503, 5396, 5327, 4857,
     4642,  4550,  4481,  4235, 4166, 4151, 3967, 3922, 3907, 3676,
     3500,  3324,  3247,  3246, 3245, 3183, 3168, 3084, 3069, 3031,
     3030,  3029,  3014,  3013, 2990, 2975, 2974, 2973, 2958, 2943,
     2928,  2927,  2926,  2925, 2924, 2923, 2922, 2921, 2920, 2397,
     2298,  2283,  1891,  1799, 1591, 1445, 1338, 1145, 1068, 1006,
      791,   768,   661,   631,  630,  615,  592,  577,  576,  561,
      546,   523,   508,   493,  492,  491,  476,  475,  474,  473,
      472,   471,   470,   469,  468,  453,  452,  451,  450,  449,
      448,   447,   446,   0};

int cumf_TCOEFr_intra[104]={
    16383, 12514, 10776, 9969, 9579, 9306, 9168, 9082, 9032, 9000,
     8981,  8962,  8952, 7630, 7212, 7053, 6992, 6961, 6940, 6195,
     5988,  5948,  5923, 5370, 5244, 5210, 4854, 4762, 4740, 4384,
     4300,  4288,  4020, 3968, 3964, 3752, 3668, 3511, 3483, 3354,
     3322,  3205,  3183, 3108, 3046, 2999, 2981, 2974, 2968, 2961,
     2955,  2949,  2943, 2942, 2939, 2935, 2934, 2933, 2929, 2270,
     2178,  2162,  1959, 1946, 1780, 1651, 1524, 1400, 1289, 1133,
     1037,   942,   849,  763,  711,  591,  521,  503,  496,  474,
      461,   449,   442,  436,  426,  417,  407,  394,  387,  377,
      373,   370,   367,  366,  365,  364,  363,  362,  358,  355,
      352,   351,   350,  0};

int cumf_SIGN[3]={16383, 8416, 0};

int cumf_LAST[3]={16383, 9469, 0};

int cumf_LAST_intra[3]={16383, 2820, 0};

int cumf_RUN[65]={
    16383, 15310, 14702, 13022, 11883, 11234, 10612, 10192, 9516, 9016,
     8623,  8366,  7595,  7068,  6730,  6487,  6379,  6285, 6177, 6150,
     6083,  5989,  5949,  5922,  5895,  5828,  5774,  5773, 5394, 5164,
     5016,  4569,  4366,  4136,  4015,  3867,  3773,  3692, 3611, 3476,
     3341,  3301,  2787,  2503,  2219,  1989,  1515,  1095,  934,  799,
      691,   583,   435,   300,   246,   206,   125,   124,   97,   57,
       30,     3,     2,     1,   0};

int cumf_RUN_intra[65]={
    16383, 10884, 8242, 7124, 5173, 4745, 4246, 3984, 3034, 2749, 2607,
     2298,   966,  681,  396,  349,  302,  255,  254,  253,  206,  159,
      158,   157,  156,  155,  154,  153,  106,   35,   34,   33,   32,
       31,    30,   29,   28,   27,   26,   25,   24,   23,   22,   21,
       20,    19,   18,   17,   16,   15,   14,   13,   12,   11,   10,
        9,     8,    7,    6,    5,    4,    3,    2,    1,   0};

int cumf_LEVEL[255]={
    16383, 16382, 16381, 16380, 16379, 16378, 16377, 16376, 16375, 16374,
    16373, 16372, 16371, 16370, 16369, 16368, 16367, 16366, 16365, 16364,
    16363, 16362, 16361, 16360, 16359, 16358, 16357, 16356, 16355, 16354,
    16353, 16352, 16351, 16350, 16349, 16348, 16347, 16346, 16345, 16344,
    16343, 16342, 16341, 16340, 16339, 16338, 16337, 16336, 16335, 16334,
    16333, 16332, 16331, 16330, 16329, 16328, 16327, 16326, 16325, 16324,
    16323, 16322, 16321, 16320, 16319, 16318, 16317, 16316, 16315, 16314,
    16313, 16312, 16311, 16310, 16309, 16308, 16307, 16306, 16305, 16304,
    16303, 16302, 16301, 16300, 16299, 16298, 16297, 16296, 16295, 16294,
    16293, 16292, 16291, 16290, 16289, 16288, 16287, 16286, 16285, 16284,
    16283, 16282, 16281, 16280, 16279, 16278, 16277, 16250, 16223, 16222,
    16195, 16154, 16153, 16071, 15989, 15880, 15879, 15878, 15824, 15756,
    15674, 15606, 15538, 15184, 14572, 13960, 10718,  7994,  5379,  2123,
     1537,   992,   693,   611,   516,   448,   421,   380,   353,   352,
      284,   257,   230,   203,   162,   161,   160,   133,   132,   105,
      104,   103,   102,   101,   100,    99,    98,    97,    96,    95,
       94,    93,    92,    91,    90,    89,    88,    87,    86,    85,
       84,    83,    82,    81,    80,    79,    78,    77,    76,    75,
       74,    73,    72,    71,    70,    69,    68,    67,    66,    65,
       64,    63,    62,    61,    60,    59,    58,    57,    56,    55,
       54,    53,    52,    51,    50,    49,    48,    47,    46,    45,
       44,    43,    42,    41,    40,    39,    38,    37,    36,    35,
       34,    33,    32,    31,    30,    29,    28,    27,    26,    25,
       24,    23,    22,    21,    20,    19,    18,    17,    16,    15,
       14,    13,    12,    11,    10,     9,     8,     7,     6,     5,
        4,     3,     2,     1,    0};

int cumf_LEVEL_intra[255]={
    16383, 16379, 16378, 16377, 16376, 16375, 16374, 16373, 16372, 16371,
    16370, 16369, 16368, 16367, 16366, 16365, 16364, 16363, 16362, 16361,
    16360, 16359, 16358, 16357, 16356, 16355, 16354, 16353, 16352, 16351,
    16350, 16349, 16348, 16347, 16346, 16345, 16344, 16343, 16342, 16341,
    16340, 16339, 16338, 16337, 16336, 16335, 16334, 16333, 16332, 16331,
    16330, 16329, 16328, 16327, 16326, 16325, 16324, 16323, 16322, 16321,
    16320, 16319, 16318, 16317, 16316, 16315, 16314, 16313, 16312, 16311,
    16268, 16267, 16224, 16223, 16180, 16179, 16136, 16135, 16134, 16133,
    16132, 16131, 16130, 16129, 16128, 16127, 16126, 16061, 16018, 16017,
    16016, 16015, 16014, 15971, 15970, 15969, 15968, 15925, 15837, 15794,
    15751, 15750, 15749, 15661, 15618, 15508, 15376, 15288, 15045, 14913,
    14781, 14384, 13965, 13502, 13083, 12509, 12289, 12135, 11892, 11738,
    11429, 11010, 10812, 10371,  9664,  9113,  8117,  8116,  8028,  6855,
     5883,  4710,  4401,  4203,  3740,  3453,  3343,  3189,  2946,  2881,
     2661,  2352,  2132,  1867,  1558,  1382,  1250,  1162,  1097,  1032,
      967,   835,   681,   549,   439,   351,   350,   307,   306,   305,
      304,   303,   302,   301,   300,   299,   298,   255,   212,   211,
      210,   167,   166,   165,   164,   163,   162,   161,   160,   159,
      158,   115,   114,   113,   112,   111,    68,    67,    66,    65,
       64,    63,    62,    61,    60,    59,    58,    57,    56,    55,
       54,    53,    52,    51,    50,    49,    48,    47,    46,    45,
       44,    43,    42,    41,    40,    39,    38,    37,    36,    35,
       34,    33,    32,    31,    30,    29,    28,    27,    26,    25,
       24,    23,    22,    21,    20,    19,    18,    17,    16,    15,
       14,    13,    12,    11,    10,     9,     8,     7,     6,     5,
         4,    3,     2,      1,   0};

⌨️ 快捷键说明

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