📄 huffsv7.cpp
字号:
#include "stdafx.h"voidMPC_decoder::Huffman_SV7_Decoder ( void ){ Huffman_SV7_Encoder (); Resort_HuffTables(10, &HuffHdr[0] , 5); Resort_HuffTables( 4, &HuffSCFI[0] , 0); Resort_HuffTables(16, &HuffDSCF[0] , 7); Resort_HuffTables(27, &HuffQ1[0][0] , 0); Resort_HuffTables(27, &HuffQ1[1][0] , 0); Resort_HuffTables(25, &HuffQ2[0][0] , 0); Resort_HuffTables(25, &HuffQ2[1][0] , 0); Resort_HuffTables( 7, &HuffQ3[0][0] , Dc[3]); Resort_HuffTables( 7, &HuffQ3[1][0] , Dc[3]); Resort_HuffTables( 9, &HuffQ4[0][0] , Dc[4]); Resort_HuffTables( 9, &HuffQ4[1][0] , Dc[4]); Resort_HuffTables(15, &HuffQ5[0][0] , Dc[5]); Resort_HuffTables(15, &HuffQ5[1][0] , Dc[5]); Resort_HuffTables(31, &HuffQ6[0][0] , Dc[6]); Resort_HuffTables(31, &HuffQ6[1][0] , Dc[6]); Resort_HuffTables(63, &HuffQ7[0][0] , Dc[7]); Resort_HuffTables(63, &HuffQ7[1][0] , Dc[7]);}voidMPC_decoder::Huffman_SV7_Encoder ( void ){ /***************************** SCFI *******************************/ HuffSCFI[0].Code = 2; HuffSCFI[0].Length = 3; HuffSCFI[1].Code = 1; HuffSCFI[1].Length = 1; HuffSCFI[2].Code = 3; HuffSCFI[2].Length = 3; HuffSCFI[3].Code = 0; HuffSCFI[3].Length = 2; /***************************** DSCF *******************************/ HuffDSCF[ 0].Code = 32; HuffDSCF[ 0].Length = 6; HuffDSCF[ 1].Code = 4; HuffDSCF[ 1].Length = 5; HuffDSCF[ 2].Code = 17; HuffDSCF[ 2].Length = 5; HuffDSCF[ 3].Code = 30; HuffDSCF[ 3].Length = 5; HuffDSCF[ 4].Code = 13; HuffDSCF[ 4].Length = 4; HuffDSCF[ 5].Code = 0; HuffDSCF[ 5].Length = 3; HuffDSCF[ 6].Code = 3; HuffDSCF[ 6].Length = 3; HuffDSCF[ 7].Code = 9; HuffDSCF[ 7].Length = 4; HuffDSCF[ 8].Code = 5; HuffDSCF[ 8].Length = 3; HuffDSCF[ 9].Code = 2; HuffDSCF[ 9].Length = 3; HuffDSCF[10].Code = 14; HuffDSCF[10].Length = 4; HuffDSCF[11].Code = 3; HuffDSCF[11].Length = 4; HuffDSCF[12].Code = 31; HuffDSCF[12].Length = 5; HuffDSCF[13].Code = 5; HuffDSCF[13].Length = 5; HuffDSCF[14].Code = 33; HuffDSCF[14].Length = 6; HuffDSCF[15].Code = 12; HuffDSCF[15].Length = 4; /************************* frame-header ***************************/ /***************** differential quantizer indizes *****************/ HuffHdr[0].Code = 92; HuffHdr[0].Length = 8; HuffHdr[1].Code = 47; HuffHdr[1].Length = 7; HuffHdr[2].Code = 10; HuffHdr[2].Length = 5; HuffHdr[3].Code = 4; HuffHdr[3].Length = 4; HuffHdr[4].Code = 0; HuffHdr[4].Length = 2; HuffHdr[5].Code = 1; HuffHdr[5].Length = 1; HuffHdr[6].Code = 3; HuffHdr[6].Length = 3; HuffHdr[7].Code = 22; HuffHdr[7].Length = 6; HuffHdr[8].Code = 187; HuffHdr[8].Length = 9; HuffHdr[9].Code = 186; HuffHdr[9].Length = 9; /********************** 3-step quantizer **************************/ /********************* 3 bundled samples **************************/ //less shaped, book 0 HuffQ1[0][ 0].Code = 54; HuffQ1[0][ 0].Length = 6; HuffQ1[0][ 1].Code = 9; HuffQ1[0][ 1].Length = 5; HuffQ1[0][ 2].Code = 32; HuffQ1[0][ 2].Length = 6; HuffQ1[0][ 3].Code = 5; HuffQ1[0][ 3].Length = 5; HuffQ1[0][ 4].Code = 10; HuffQ1[0][ 4].Length = 4; HuffQ1[0][ 5].Code = 7; HuffQ1[0][ 5].Length = 5; HuffQ1[0][ 6].Code = 52; HuffQ1[0][ 6].Length = 6; HuffQ1[0][ 7].Code = 0; HuffQ1[0][ 7].Length = 5; HuffQ1[0][ 8].Code = 35; HuffQ1[0][ 8].Length = 6; HuffQ1[0][ 9].Code = 10; HuffQ1[0][ 9].Length = 5; HuffQ1[0][10].Code = 6; HuffQ1[0][10].Length = 4; HuffQ1[0][11].Code = 4; HuffQ1[0][11].Length = 5; HuffQ1[0][12].Code = 11; HuffQ1[0][12].Length = 4; HuffQ1[0][13].Code = 7; HuffQ1[0][13].Length = 3; HuffQ1[0][14].Code = 12; HuffQ1[0][14].Length = 4; HuffQ1[0][15].Code = 3; HuffQ1[0][15].Length = 5; HuffQ1[0][16].Code = 7; HuffQ1[0][16].Length = 4; HuffQ1[0][17].Code = 11; HuffQ1[0][17].Length = 5; HuffQ1[0][18].Code = 34; HuffQ1[0][18].Length = 6; HuffQ1[0][19].Code = 1; HuffQ1[0][19].Length = 5; HuffQ1[0][20].Code = 53; HuffQ1[0][20].Length = 6; HuffQ1[0][21].Code = 6; HuffQ1[0][21].Length = 5; HuffQ1[0][22].Code = 9; HuffQ1[0][22].Length = 4; HuffQ1[0][23].Code = 2; HuffQ1[0][23].Length = 5; HuffQ1[0][24].Code = 33; HuffQ1[0][24].Length = 6; HuffQ1[0][25].Code = 8; HuffQ1[0][25].Length = 5; HuffQ1[0][26].Code = 55; HuffQ1[0][26].Length = 6; //more shaped, book 1 HuffQ1[1][ 0].Code = 103; HuffQ1[1][ 0].Length = 8; HuffQ1[1][ 1].Code = 62; HuffQ1[1][ 1].Length = 7; HuffQ1[1][ 2].Code = 225; HuffQ1[1][ 2].Length = 9; HuffQ1[1][ 3].Code = 55; HuffQ1[1][ 3].Length = 7; HuffQ1[1][ 4].Code = 3; HuffQ1[1][ 4].Length = 4; HuffQ1[1][ 5].Code = 52; HuffQ1[1][ 5].Length = 7; HuffQ1[1][ 6].Code = 101; HuffQ1[1][ 6].Length = 8; HuffQ1[1][ 7].Code = 60; HuffQ1[1][ 7].Length = 7; HuffQ1[1][ 8].Code = 227; HuffQ1[1][ 8].Length = 9; HuffQ1[1][ 9].Code = 24; HuffQ1[1][ 9].Length = 6; HuffQ1[1][10].Code = 0; HuffQ1[1][10].Length = 4; HuffQ1[1][11].Code = 61; HuffQ1[1][11].Length = 7; HuffQ1[1][12].Code = 4; HuffQ1[1][12].Length = 4; HuffQ1[1][13].Code = 1; HuffQ1[1][13].Length = 1; HuffQ1[1][14].Code = 5; HuffQ1[1][14].Length = 4; HuffQ1[1][15].Code = 63; HuffQ1[1][15].Length = 7; HuffQ1[1][16].Code = 1; HuffQ1[1][16].Length = 4; HuffQ1[1][17].Code = 59; HuffQ1[1][17].Length = 7; HuffQ1[1][18].Code = 226; HuffQ1[1][18].Length = 9; HuffQ1[1][19].Code = 57; HuffQ1[1][19].Length = 7; HuffQ1[1][20].Code = 100; HuffQ1[1][20].Length = 8; HuffQ1[1][21].Code = 53; HuffQ1[1][21].Length = 7; HuffQ1[1][22].Code = 2; HuffQ1[1][22].Length = 4; HuffQ1[1][23].Code = 54; HuffQ1[1][23].Length = 7; HuffQ1[1][24].Code = 224; HuffQ1[1][24].Length = 9; HuffQ1[1][25].Code = 58; HuffQ1[1][25].Length = 7; HuffQ1[1][26].Code = 102; HuffQ1[1][26].Length = 8; /********************** 5-step quantizer **************************/ /********************* 2 bundled samples **************************/ //less shaped, book 0 HuffQ2[0][ 0].Code = 89; HuffQ2[0][ 0].Length = 7; HuffQ2[0][ 1].Code = 47; HuffQ2[0][ 1].Length = 6; HuffQ2[0][ 2].Code = 15; HuffQ2[0][ 2].Length = 5; HuffQ2[0][ 3].Code = 0; HuffQ2[0][ 3].Length = 5; HuffQ2[0][ 4].Code = 91; HuffQ2[0][ 4].Length = 7; HuffQ2[0][ 5].Code = 4; HuffQ2[0][ 5].Length = 5; HuffQ2[0][ 6].Code = 6; HuffQ2[0][ 6].Length = 4; HuffQ2[0][ 7].Code = 13; HuffQ2[0][ 7].Length = 4; HuffQ2[0][ 8].Code = 4; HuffQ2[0][ 8].Length = 4; HuffQ2[0][ 9].Code = 5; HuffQ2[0][ 9].Length = 5; HuffQ2[0][10].Code = 20; HuffQ2[0][10].Length = 5; HuffQ2[0][11].Code = 12; HuffQ2[0][11].Length = 4; HuffQ2[0][12].Code = 4; HuffQ2[0][12].Length = 3; HuffQ2[0][13].Code = 15; HuffQ2[0][13].Length = 4; HuffQ2[0][14].Code = 14; HuffQ2[0][14].Length = 5; HuffQ2[0][15].Code = 3; HuffQ2[0][15].Length = 5; HuffQ2[0][16].Code = 3; HuffQ2[0][16].Length = 4; HuffQ2[0][17].Code = 14; HuffQ2[0][17].Length = 4; HuffQ2[0][18].Code = 5; HuffQ2[0][18].Length = 4; HuffQ2[0][19].Code = 1; HuffQ2[0][19].Length = 5; HuffQ2[0][20].Code = 90; HuffQ2[0][20].Length = 7; HuffQ2[0][21].Code = 2; HuffQ2[0][21].Length = 5; HuffQ2[0][22].Code = 21; HuffQ2[0][22].Length = 5; HuffQ2[0][23].Code = 46; HuffQ2[0][23].Length = 6; HuffQ2[0][24].Code = 88; HuffQ2[0][24].Length = 7; //more shaped, book 1 HuffQ2[1][ 0].Code = 921; HuffQ2[1][ 0].Length = 10; HuffQ2[1][ 1].Code = 113; HuffQ2[1][ 1].Length = 7; HuffQ2[1][ 2].Code = 51; HuffQ2[1][ 2].Length = 6; HuffQ2[1][ 3].Code = 231; HuffQ2[1][ 3].Length = 8; HuffQ2[1][ 4].Code = 922; HuffQ2[1][ 4].Length = 10; HuffQ2[1][ 5].Code = 104; HuffQ2[1][ 5].Length = 7; HuffQ2[1][ 6].Code = 30; HuffQ2[1][ 6].Length = 5; HuffQ2[1][ 7].Code = 0; HuffQ2[1][ 7].Length = 3; HuffQ2[1][ 8].Code = 29; HuffQ2[1][ 8].Length = 5; HuffQ2[1][ 9].Code = 105; HuffQ2[1][ 9].Length = 7; HuffQ2[1][10].Code = 50; HuffQ2[1][10].Length = 6; HuffQ2[1][11].Code = 1; HuffQ2[1][11].Length = 3; HuffQ2[1][12].Code = 2; HuffQ2[1][12].Length = 2; HuffQ2[1][13].Code = 3; HuffQ2[1][13].Length = 3; HuffQ2[1][14].Code = 49; HuffQ2[1][14].Length = 6; HuffQ2[1][15].Code = 107; HuffQ2[1][15].Length = 7; HuffQ2[1][16].Code = 27; HuffQ2[1][16].Length = 5; HuffQ2[1][17].Code = 2; HuffQ2[1][17].Length = 3; HuffQ2[1][18].Code = 31; HuffQ2[1][18].Length = 5; HuffQ2[1][19].Code = 112; HuffQ2[1][19].Length = 7; HuffQ2[1][20].Code = 920; HuffQ2[1][20].Length = 10; HuffQ2[1][21].Code = 106; HuffQ2[1][21].Length = 7; HuffQ2[1][22].Code = 48; HuffQ2[1][22].Length = 6; HuffQ2[1][23].Code = 114; HuffQ2[1][23].Length = 7; HuffQ2[1][24].Code = 923; HuffQ2[1][24].Length = 10; /********************** 7-step quantizer **************************/ /*********************** single samples ***************************/ //less shaped, book 0 HuffQ3[0][0].Code = 12; HuffQ3[0][0].Length = 4; HuffQ3[0][1].Code = 4; HuffQ3[0][1].Length = 3; HuffQ3[0][2].Code = 0; HuffQ3[0][2].Length = 2; HuffQ3[0][3].Code = 1; HuffQ3[0][3].Length = 2; HuffQ3[0][4].Code = 7; HuffQ3[0][4].Length = 3; HuffQ3[0][5].Code = 5; HuffQ3[0][5].Length = 3; HuffQ3[0][6].Code = 13; HuffQ3[0][6].Length = 4; //more shaped, book 1 HuffQ3[1][0].Code = 4; HuffQ3[1][0].Length = 5; HuffQ3[1][1].Code = 3; HuffQ3[1][1].Length = 4; HuffQ3[1][2].Code = 2; HuffQ3[1][2].Length = 2; HuffQ3[1][3].Code = 3; HuffQ3[1][3].Length = 2; HuffQ3[1][4].Code = 1; HuffQ3[1][4].Length = 2; HuffQ3[1][5].Code = 0; HuffQ3[1][5].Length = 3; HuffQ3[1][6].Code = 5; HuffQ3[1][6].Length = 5; /********************** 9-step quantizer **************************/ /*********************** single samples ***************************/ //less shaped, book 0 HuffQ4[0][0].Code = 5; HuffQ4[0][0].Length = 4; HuffQ4[0][1].Code = 0; HuffQ4[0][1].Length = 3; HuffQ4[0][2].Code = 4; HuffQ4[0][2].Length = 3; HuffQ4[0][3].Code = 6; HuffQ4[0][3].Length = 3; HuffQ4[0][4].Code = 7; HuffQ4[0][4].Length = 3; HuffQ4[0][5].Code = 5; HuffQ4[0][5].Length = 3; HuffQ4[0][6].Code = 3; HuffQ4[0][6].Length = 3; HuffQ4[0][7].Code = 1; HuffQ4[0][7].Length = 3; HuffQ4[0][8].Code = 4; HuffQ4[0][8].Length = 4; //more shaped, book 1 HuffQ4[1][0].Code = 9; HuffQ4[1][0].Length = 5; HuffQ4[1][1].Code = 12; HuffQ4[1][1].Length = 4; HuffQ4[1][2].Code = 3; HuffQ4[1][2].Length = 3; HuffQ4[1][3].Code = 0; HuffQ4[1][3].Length = 2; HuffQ4[1][4].Code = 2; HuffQ4[1][4].Length = 2; HuffQ4[1][5].Code = 7; HuffQ4[1][5].Length = 3; HuffQ4[1][6].Code = 13; HuffQ4[1][6].Length = 4; HuffQ4[1][7].Code = 5; HuffQ4[1][7].Length = 4; HuffQ4[1][8].Code = 8; HuffQ4[1][8].Length = 5; /********************* 15-step quantizer **************************/ /*********************** single samples ***************************/ //less shaped, book 0 HuffQ5[0][ 0].Code = 57; HuffQ5[0][ 0].Length = 6; HuffQ5[0][ 1].Code = 23; HuffQ5[0][ 1].Length = 5; HuffQ5[0][ 2].Code = 8; HuffQ5[0][ 2].Length = 4;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -