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

📄 skl_bmasks.cpp

📁 mpeg4编解码器
💻 CPP
字号:
/******************************************************** * Some code. Copyright (C) 2003 by Pascal Massimino.   * * All Rights Reserved.      (http://skal.planet-d.net) * * For Educational/Academic use ONLY. See 'LICENSE.TXT'.* ********************************************************//* * skl_bmasks.cpp * *  Useful bit masks ********************************************************/#include "skl.h"#include "skl_syst/skl_bits.h"//////////////////////////////////////////////////////////const SKL_UINT32 SKL_BMASKS::And[33] =    // And[n] = (1<<n)-1{  0x00000000,   0x00000001, 0x00000003, 0x00000007, 0x0000000f,  0x0000001f, 0x0000003f, 0x0000007f, 0x000000ff,  0x000001ff, 0x000003ff, 0x000007ff, 0x00000fff,  0x00001fff, 0x00003fff, 0x00007fff, 0x0000ffff,  0x0001ffff, 0x0003ffff, 0x0007ffff, 0x000fffff,  0x001fffff, 0x003fffff, 0x007fffff, 0x00ffffff,  0x01ffffff, 0x03ffffff, 0x07ffffff, 0x0fffffff,  0x1fffffff, 0x3fffffff, 0x7fffffff, 0xffffffff}; const SKL_UINT32 SKL_BMASKS::Or[33] =     // Or[n] = 1<<(n-1){  0x00000000,  0x00000001, 0x00000002, 0x00000004, 0x00000008,  0x00000010, 0x00000020, 0x00000040, 0x00000080,  0x00000100, 0x00000200, 0x00000400, 0x00000800,  0x00001000, 0x00002000, 0x00004000, 0x00008000,  0x00010000, 0x00020000, 0x00040000, 0x00080000,  0x00100000, 0x00200000, 0x00400000, 0x00800000,  0x01000000, 0x02000000, 0x04000000, 0x08000000,  0x10000000, 0x20000000, 0x40000000, 0x80000000};//////////////////////////////////////////////////////////const SKL_BYTE SKL_BMASKS::Bit_Sizes[256] = {   0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4,  5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,  6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,  6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,  7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,  7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,  7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,  7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,  8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,  8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,  8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,  8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,  8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,  8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,  8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,  8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8};const SKL_BYTE SKL_BMASKS::First_Bit_Set[256] = {  8, 7, 6, 6, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4,  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 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, 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, 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, 0, 0, 0, 0, 0, 0, 0};//////////////////////////////////////////////////////////// SKL_FBB tablesconst SKL_UINT16 SKL_FBB::UEG_Tab[256][2] = {    // Code, Length   {  1, 1}, {  2, 3}, {  3, 3}, {  4, 5}, {  5, 5}, {  6, 5}, {  7, 5}, {  8, 7},  {  9, 7}, { 10, 7}, { 11, 7}, { 12, 7}, { 13, 7}, { 14, 7}, { 15, 7}, { 16, 9},  { 17, 9}, { 18, 9}, { 19, 9}, { 20, 9}, { 21, 9}, { 22, 9}, { 23, 9}, { 24, 9},  { 25, 9}, { 26, 9}, { 27, 9}, { 28, 9}, { 29, 9}, { 30, 9}, { 31, 9}, { 32,11},  { 33,11}, { 34,11}, { 35,11}, { 36,11}, { 37,11}, { 38,11}, { 39,11}, { 40,11},  { 41,11}, { 42,11}, { 43,11}, { 44,11}, { 45,11}, { 46,11}, { 47,11}, { 48,11},  { 49,11}, { 50,11}, { 51,11}, { 52,11}, { 53,11}, { 54,11}, { 55,11}, { 56,11},  { 57,11}, { 58,11}, { 59,11}, { 60,11}, { 61,11}, { 62,11}, { 63,11}, { 64,13},  { 65,13}, { 66,13}, { 67,13}, { 68,13}, { 69,13}, { 70,13}, { 71,13}, { 72,13},  { 73,13}, { 74,13}, { 75,13}, { 76,13}, { 77,13}, { 78,13}, { 79,13}, { 80,13},  { 81,13}, { 82,13}, { 83,13}, { 84,13}, { 85,13}, { 86,13}, { 87,13}, { 88,13},  { 89,13}, { 90,13}, { 91,13}, { 92,13}, { 93,13}, { 94,13}, { 95,13}, { 96,13},  { 97,13}, { 98,13}, { 99,13}, {100,13}, {101,13}, {102,13}, {103,13}, {104,13},  {105,13}, {106,13}, {107,13}, {108,13}, {109,13}, {110,13}, {111,13}, {112,13},  {113,13}, {114,13}, {115,13}, {116,13}, {117,13}, {118,13}, {119,13}, {120,13},  {121,13}, {122,13}, {123,13}, {124,13}, {125,13}, {126,13}, {127,13}, {128,15},  {129,15}, {130,15}, {131,15}, {132,15}, {133,15}, {134,15}, {135,15}, {136,15},  {137,15}, {138,15}, {139,15}, {140,15}, {141,15}, {142,15}, {143,15}, {144,15},  {145,15}, {146,15}, {147,15}, {148,15}, {149,15}, {150,15}, {151,15}, {152,15},  {153,15}, {154,15}, {155,15}, {156,15}, {157,15}, {158,15}, {159,15}, {160,15},  {161,15}, {162,15}, {163,15}, {164,15}, {165,15}, {166,15}, {167,15}, {168,15},  {169,15}, {170,15}, {171,15}, {172,15}, {173,15}, {174,15}, {175,15}, {176,15},  {177,15}, {178,15}, {179,15}, {180,15}, {181,15}, {182,15}, {183,15}, {184,15},  {185,15}, {186,15}, {187,15}, {188,15}, {189,15}, {190,15}, {191,15}, {192,15},  {193,15}, {194,15}, {195,15}, {196,15}, {197,15}, {198,15}, {199,15}, {200,15},  {201,15}, {202,15}, {203,15}, {204,15}, {205,15}, {206,15}, {207,15}, {208,15},  {209,15}, {210,15}, {211,15}, {212,15}, {213,15}, {214,15}, {215,15}, {216,15},  {217,15}, {218,15}, {219,15}, {220,15}, {221,15}, {222,15}, {223,15}, {224,15},  {225,15}, {226,15}, {227,15}, {228,15}, {229,15}, {230,15}, {231,15}, {232,15},  {233,15}, {234,15}, {235,15}, {236,15}, {237,15}, {238,15}, {239,15}, {240,15},  {241,15}, {242,15}, {243,15}, {244,15}, {245,15}, {246,15}, {247,15}, {248,15},  {249,15}, {250,15}, {251,15}, {252,15}, {253,15}, {254,15}, {255,15}, {256,17}};const SKL_UINT16 SKL_FBB::SEG_Tab[256][2] = {    // Code, Length   {257,17}, {255,15}, {253,15}, {251,15}, {249,15}, {247,15}, {245,15}, {243,15},  {241,15}, {239,15}, {237,15}, {235,15}, {233,15}, {231,15}, {229,15}, {227,15},  {225,15}, {223,15}, {221,15}, {219,15}, {217,15}, {215,15}, {213,15}, {211,15},  {209,15}, {207,15}, {205,15}, {203,15}, {201,15}, {199,15}, {197,15}, {195,15},  {193,15}, {191,15}, {189,15}, {187,15}, {185,15}, {183,15}, {181,15}, {179,15},  {177,15}, {175,15}, {173,15}, {171,15}, {169,15}, {167,15}, {165,15}, {163,15},  {161,15}, {159,15}, {157,15}, {155,15}, {153,15}, {151,15}, {149,15}, {147,15},  {145,15}, {143,15}, {141,15}, {139,15}, {137,15}, {135,15}, {133,15}, {131,15},  {129,15}, {127,13}, {125,13}, {123,13}, {121,13}, {119,13}, {117,13}, {115,13},  {113,13}, {111,13}, {109,13}, {107,13}, {105,13}, {103,13}, {101,13}, { 99,13},  { 97,13}, { 95,13}, { 93,13}, { 91,13}, { 89,13}, { 87,13}, { 85,13}, { 83,13},  { 81,13}, { 79,13}, { 77,13}, { 75,13}, { 73,13}, { 71,13}, { 69,13}, { 67,13},  { 65,13}, { 63,11}, { 61,11}, { 59,11}, { 57,11}, { 55,11}, { 53,11}, { 51,11},  { 49,11}, { 47,11}, { 45,11}, { 43,11}, { 41,11}, { 39,11}, { 37,11}, { 35,11},  { 33,11}, { 31, 9}, { 29, 9}, { 27, 9}, { 25, 9}, { 23, 9}, { 21, 9}, { 19, 9},  { 17, 9}, { 15, 7}, { 13, 7}, { 11, 7}, {  9, 7}, {  7, 5}, {  5, 5}, {  3, 3} ,  {  1, 1}, {  2, 3}, {  4, 5}, {  6, 5}, {  8, 7}, { 10, 7}, { 12, 7}, { 14, 7},  { 16, 9}, { 18, 9}, { 20, 9}, { 22, 9}, { 24, 9}, { 26, 9}, { 28, 9}, { 30, 9},  { 32,11}, { 34,11}, { 36,11}, { 38,11}, { 40,11}, { 42,11}, { 44,11}, { 46,11},  { 48,11}, { 50,11}, { 52,11}, { 54,11}, { 56,11}, { 58,11}, { 60,11}, { 62,11},  { 64,13}, { 66,13}, { 68,13}, { 70,13}, { 72,13}, { 74,13}, { 76,13}, { 78,13},  { 80,13}, { 82,13}, { 84,13}, { 86,13}, { 88,13}, { 90,13}, { 92,13}, { 94,13},  { 96,13}, { 98,13}, {100,13}, {102,13}, {104,13}, {106,13}, {108,13}, {110,13},  {112,13}, {114,13}, {116,13}, {118,13}, {120,13}, {122,13}, {124,13}, {126,13},  {128,15}, {130,15}, {132,15}, {134,15}, {136,15}, {138,15}, {140,15}, {142,15},  {144,15}, {146,15}, {148,15}, {150,15}, {152,15}, {154,15}, {156,15}, {158,15},  {160,15}, {162,15}, {164,15}, {166,15}, {168,15}, {170,15}, {172,15}, {174,15},  {176,15}, {178,15}, {180,15}, {182,15}, {184,15}, {186,15}, {188,15}, {190,15},  {192,15}, {194,15}, {196,15}, {198,15}, {200,15}, {202,15}, {204,15}, {206,15},  {208,15}, {210,15}, {212,15}, {214,15}, {216,15}, {218,15}, {220,15}, {222,15},  {224,15}, {226,15}, {228,15}, {230,15}, {232,15}, {234,15}, {236,15}, {238,15},  {240,15}, {242,15}, {244,15}, {246,15}, {248,15}, {250,15}, {252,15}, {254,15}};//////////////////////////////////////////////////////////const SKL_BYTE SKL_FBB::EG_Len[512-16] = {                                  9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,  7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,  5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,  5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,  3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,  3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,  3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,  3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,  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,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,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,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,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,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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};const SKL_UINT8 SKL_FBB::UEG_Val[512-16] = {                                                15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9,10,10,10,10,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,14, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 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, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 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, 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, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};const SKL_INT8 SKL_FBB::SEG_Val[512-16] = {                                                                  8, -8,  9, -9, 10,-10, 11,-11, 12,-12, 13,-13, 14,-14, 15,-15,  4,  4,  4,  4, -4, -4, -4, -4,  5,  5,  5,  5, -5, -5, -5, -5,  6,  6,  6,  6, -6, -6, -6, -6,  7,  7,  7,  7, -7, -7, -7, -7,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3,  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,  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, -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, -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,  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,  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,  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,  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,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};SKL_UINT32 SKL_FBB::UEG()              // unsigned{  Check_Bits(24);  SKL_UINT32 B = Bits;  if (B>=(1U<<27)) {    B >>= 32-9;    Discard_Safe(EG_Len[B-16]);    return UEG_Val[B-16];  }  int Len = 5;  B <<= 5;  while( !(B & 0xff000000) )  {    B <<= 8;    Len += 8;  }  Len += SKL_BMASKS::Get_First_Bit_Set_8(B>>24);  Discard_Safe(Len);  return Get_Bits(Len+1) - 1;}SKL_INT32 SKL_FBB::SEG()               // signed{  Check_Bits(24);  SKL_UINT32 B = Bits;  if (B>=(1U<<27)) {    B >>= 32-9;    Discard_Safe(EG_Len[B-16]);    return SEG_Val[B-16];  }  int Len = 5;  B <<= 5;  while( !(B & 0xff000000) )  {    B <<= 8;    Len += 8;  }  Len += SKL_BMASKS::Get_First_Bit_Set_8(B>>24);  Discard_Safe(Len);  const SKL_INT32 Val = Get_Bits(Len+1);  return (Val&1) ? -(Val>>1) : (Val>>1);}//////////////////////////////////////////////////////////void SKL_FBB::Put_UEG(SKL_UINT32 v)              // unsigned{  if (!(v&~255)) Put_Bits(UEG_Tab[v][0],UEG_Tab[v][1]);  else {    v += 1;    const int Len = SKL_BMASKS::Log2(v);    //  Put_Bits(v, 2*Len-1);   <- this could overflow if 2*Len-1>24    Put_Bits(0, Len-1);    Put_Bits(v, Len  );  }}void SKL_FBB::Put_SEG(SKL_INT32 v)               // signed{  if (!((v+128)&~255)) Put_Bits(SEG_Tab[v+128][0],SEG_Tab[v+128][1]);  else {    v = (v<0) ? 1-2*v : 2*v;    const int Len = SKL_BMASKS::Log2(v);    //  Put_Bits(v, 2*Len-1);   <- this could overflow if 2*Len-1>24    Put_Bits(0, Len-1);    Put_Bits(v, Len  );  }}//////////////////////////////////////////////////////////

⌨️ 快捷键说明

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