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

📄 huffman.cpp

📁 完整的RTP RTSP代码库
💻 CPP
📖 第 1 页 / 共 3 页
字号:
	m_pentrencDCT = new CHuffmanEncoder (bitStream, g_rgVlcDCT);	m_pentrencDCTIntra = new CHuffmanEncoder (bitStream, g_rgVlcDCTIntra); 	//	Added for data partitioning mode By Toshiba(1998-1-16:DP+RVLC) 	m_pentrencDCTRVLC = new CHuffmanEncoder (bitStream, g_rgVlcDCTRVLC); 	m_pentrencDCTIntraRVLC = new CHuffmanEncoder (bitStream, g_rgVlcDCTIntraRVLC); 	//	End Toshiba(1998-1-16:DP+RVLC)	m_pentrencMV = new CHuffmanEncoder (bitStream, g_rgVlcMV);	m_pentrencMCBPCintra = new CHuffmanEncoder (bitStream, g_rgVlcMCBPCintra);	m_pentrencMCBPCinter = new CHuffmanEncoder (bitStream, g_rgVlcMCBPCinter);	m_pentrencCBPY = new CHuffmanEncoder (bitStream, g_rgVlcCBPY);	m_pentrencCBPY1 = new CHuffmanEncoder (bitStream, g_rgVlcCBPY1);	m_pentrencCBPY2 = new CHuffmanEncoder (bitStream, g_rgVlcCBPY2);	m_pentrencCBPY3 = new CHuffmanEncoder (bitStream, g_rgVlcCBPY3);	m_pentrencIntraDCy = new CHuffmanEncoder (bitStream, g_rgVlcIntraDCy);	m_pentrencIntraDCc = new CHuffmanEncoder (bitStream, g_rgVlcIntraDCc);	m_pentrencMbTypeBVOP = new CHuffmanEncoder (bitStream, g_rgVlcMbTypeBVOP); 	m_pentrencWrpPnt = new CHuffmanEncoder (bitStream, g_rgVlcWrpPnt);	m_ppentrencShapeMode [0] = new CHuffmanEncoder (bitStream, g_rgVlcShapeMode0);	m_ppentrencShapeMode [1] = new CHuffmanEncoder (bitStream, g_rgVlcShapeMode1);	m_ppentrencShapeMode [2] = new CHuffmanEncoder (bitStream, g_rgVlcShapeMode2);	m_ppentrencShapeMode [3] = new CHuffmanEncoder (bitStream, g_rgVlcShapeMode3);	m_ppentrencShapeMode [4] = new CHuffmanEncoder (bitStream, g_rgVlcShapeMode4);	m_ppentrencShapeMode [5] = new CHuffmanEncoder (bitStream, g_rgVlcShapeMode5);	m_ppentrencShapeMode [6] = new CHuffmanEncoder (bitStream, g_rgVlcShapeMode6);//OBSS_SAIT_991015	m_ppentrencShapeSSModeInter [0] = new CHuffmanEncoder (bitStream, g_rgVlcShapeSSModeInter0);		m_ppentrencShapeSSModeInter [1] = new CHuffmanEncoder (bitStream, g_rgVlcShapeSSModeInter1);		m_ppentrencShapeSSModeInter [2] = new CHuffmanEncoder (bitStream, g_rgVlcShapeSSModeInter2);		m_ppentrencShapeSSModeInter [3] = new CHuffmanEncoder (bitStream, g_rgVlcShapeSSModeInter3);		m_ppentrencShapeSSModeIntra [0] = new CHuffmanEncoder (bitStream, g_rgVlcShapeSSModeIntra0);		m_ppentrencShapeSSModeIntra [1] = new CHuffmanEncoder (bitStream, g_rgVlcShapeSSModeIntra1);	//~OBSS_SAIT_991015	m_pentrencShapeMV1 = new CHuffmanEncoder (bitStream, g_rgVlcShapeMV1);	m_pentrencShapeMV2 = new CHuffmanEncoder (bitStream, g_rgVlcShapeMV2);		/*ifstream istrmTableDCT;	ifstream istrmTableDCTintra;	ifstream istrmTableMV;	ifstream istrmTableMCBPCintra;	ifstream istrmTableMCBPCinter;	ifstream istrmTableCBPY;	ifstream istrmTableCBPY2;	ifstream istrmTableCBPY3;//	Added for data partitioning mode By Toshiba(1998-1-16:DP+RVLC)	ifstream istrmTableCBPY1DP;	ifstream istrmTableCBPY2DP;	ifstream istrmTableCBPY3DP;// End Toshiba(1998-1-16:DP+RVLC)	ifstream istrmTableIntraDCy;	ifstream istrmTableIntraDCc;	ifstream istrmMbTypeBVOP;	ifstream istrmWrpPnt;	ifstream istrmShapeMode [7];	ifstream istrmShapeMv1;	ifstream istrmShapeMv2; 	//	Added for data partitioning mode By Toshiba(1998-1-16:DP+RVLC) 	ifstream istrmTableDCTRVLC; 	ifstream istrmTableDCTIntraRVLC; 	//	End Toshiba(1998-1-16:DP+RVLC)	// get the vm_home value	Char *rgchVmHome = getenv ( "VM_HOME" );	assert (rgchVmHome != NULL );	Char rgchFile [100];	strcpy (rgchFile, rgchVmHome);	Int iLength = strlen (rgchFile);	Char* pch = rgchFile + iLength;	FULLNAME (sys, vlcdct.txt);	istrmTableDCT.open (rgchFile);	FULLNAME (sys, dctin.txt);	istrmTableDCTintra.open (rgchFile);	FULLNAME (sys, vlcmvd.txt);	istrmTableMV.open (rgchFile);	FULLNAME (sys, mcbpc1.txt);	istrmTableMCBPCintra.open (rgchFile);	FULLNAME (sys, mcbpc2.txt);	istrmTableMCBPCinter.open (rgchFile);	FULLNAME (sys, cbpy.txt);	istrmTableCBPY.open (rgchFile);	FULLNAME (sys, cbpy2.txt);	istrmTableCBPY2.open (rgchFile);	FULLNAME (sys, cbpy3.txt);	istrmTableCBPY3.open (rgchFile);//	Added for data partitioning mode By Toshiba(1998-1-16:DP+RVLC)	FULLNAME (sys, cbpy1dp.txt);	istrmTableCBPY1DP.open (rgchFile);	FULLNAME (sys, cbpy2dp.txt);	istrmTableCBPY2DP.open (rgchFile);	FULLNAME (sys, cbpy3dp.txt);	istrmTableCBPY3DP.open (rgchFile);// End Toshiba(1998-1-16:DP+RVLC)	FULLNAME (sys, dcszy.txt);	istrmTableIntraDCy.open (rgchFile);	FULLNAME (sys, dcszc.txt);	istrmTableIntraDCc.open (rgchFile);	FULLNAME (sys, mbtyp.txt);	istrmMbTypeBVOP.open (rgchFile);	FULLNAME (sys, wrppnt.txt);	istrmWrpPnt.open (rgchFile);	FULLNAME (sys, shpmd0.txt);	istrmShapeMode[0].open (rgchFile);	FULLNAME (sys, shpmd1.txt);	istrmShapeMode[1].open (rgchFile);	FULLNAME (sys, shpmd2.txt);	istrmShapeMode[2].open (rgchFile);	FULLNAME (sys, shpmd3.txt);	istrmShapeMode[3].open (rgchFile);	FULLNAME (sys, shpmd4.txt);	istrmShapeMode[4].open (rgchFile);	FULLNAME (sys, shpmd5.txt);	istrmShapeMode[5].open (rgchFile);	FULLNAME (sys, shpmd6.txt);	istrmShapeMode[6].open (rgchFile);	FULLNAME (sys, shpmv1.txt);	istrmShapeMv1.open (rgchFile);	FULLNAME (sys, shpmv2.txt);	istrmShapeMv2.open (rgchFile); 	//	Added for data partitioning mode By Toshiba(1998-1-16:DP+RVLC) 	FULLNAME (sys, rvlcdct.txt); 	istrmTableDCTRVLC.open (rgchFile);	 	FULLNAME (sys, rvlcin.txt); 	istrmTableDCTIntraRVLC.open (rgchFile); 	//	End Toshiba(1998-1-16:DP+RVLC)	m_pentrencDCT -> loadTable (istrmTableDCT);	m_pentrencDCTIntra -> loadTable (istrmTableDCTintra);    m_pentrencMV -> loadTable (istrmTableMV);    m_pentrencMCBPCintra -> loadTable (istrmTableMCBPCintra);    m_pentrencMCBPCinter -> loadTable (istrmTableMCBPCinter);    m_pentrencCBPY -> loadTable (istrmTableCBPY);    m_pentrencCBPY2 -> loadTable (istrmTableCBPY2);    m_pentrencCBPY3 -> loadTable (istrmTableCBPY3);	//	Added for data partitioning mode By Toshiba(1998-1-16:DP+RVLC)    m_pentrencCBPY1DP -> loadTable (istrmTableCBPY1DP);	    m_pentrencCBPY2DP -> loadTable (istrmTableCBPY2DP);    m_pentrencCBPY3DP -> loadTable (istrmTableCBPY3DP);	// End Toshiba(1998-1-16:DP+RVLC)    m_pentrencIntraDCy -> loadTable (istrmTableIntraDCy);    m_pentrencIntraDCc -> loadTable (istrmTableIntraDCc);    m_pentrencMbTypeBVOP->loadTable (istrmMbTypeBVOP);    m_pentrencWrpPnt->loadTable (istrmWrpPnt);	for (iShapeMd = 0; iShapeMd < 7; iShapeMd++)		m_ppentrencShapeMode [iShapeMd]->loadTable (istrmShapeMode [iShapeMd]);	m_pentrencShapeMV1->loadTable (istrmShapeMv1);	m_pentrencShapeMV2->loadTable (istrmShapeMv2); 	//	Added for data partitioning mode By Toshiba(1998-1-16:DP+RVLC) 	m_pentrencDCTRVLC -> loadTable (istrmTableDCTRVLC); 	m_pentrencDCTIntraRVLC -> loadTable (istrmTableDCTIntraRVLC); 	//	End Toshiba(1998-1-16:DP+RVLC)	*/}CEntropyEncoderSet::~CEntropyEncoderSet(){	delete m_pentrencDCT;	delete m_pentrencDCTIntra;	delete m_pentrencMV;	delete m_pentrencMCBPCintra;	delete m_pentrencMCBPCinter;	delete m_pentrencCBPY;	delete m_pentrencCBPY2;	delete m_pentrencCBPY3;	delete m_pentrencIntraDCy;	delete m_pentrencIntraDCc;	delete m_pentrencMbTypeBVOP;	delete m_pentrencWrpPnt;	for (UInt iShapeMd = 0; iShapeMd < 7; iShapeMd++)		delete m_ppentrencShapeMode [iShapeMd];//OBSS_SAIT_991015	for (UInt iShapeSSMdInter = 0; iShapeSSMdInter < 4; iShapeSSMdInter++)		delete m_ppentrencShapeSSModeInter [iShapeSSMdInter];	for (UInt iShapeSSMdIntra = 0; iShapeSSMdIntra < 2; iShapeSSMdIntra++)		delete m_ppentrencShapeSSModeIntra [iShapeSSMdIntra];//~OBSS_SAIT_991015	delete m_pentrencShapeMV1;	delete m_pentrencShapeMV2; 	//	Added for data partitioning mode By Toshiba(1998-1-16:DP+RVLC) 	delete m_pentrencDCTRVLC; 	delete m_pentrencDCTIntraRVLC; 	//	End Toshiba(1998-1-16:DP+RVLC)}CEntropyDecoderSet::CEntropyDecoderSet (CInBitStream *bitStream){	m_pentrdecDCT = new CHuffmanDecoder (bitStream, g_rgVlcDCT);	m_pentrdecDCTIntra = new CHuffmanDecoder (bitStream, g_rgVlcDCTIntra); 	//	Added for data partitioning mode By Toshiba(1998-1-16:DP+RVLC) 	m_pentrdecDCTRVLC = new CHuffmanDecoder (bitStream, g_rgVlcDCTRVLC); 	m_pentrdecDCTIntraRVLC = new CHuffmanDecoder (bitStream, g_rgVlcDCTIntraRVLC); 	//	End Toshiba(1998-1-16:DP+RVLC)	m_pentrdecMV = new CHuffmanDecoder (bitStream, g_rgVlcMV);	m_pentrdecMCBPCintra = new CHuffmanDecoder (bitStream, g_rgVlcMCBPCintra);	m_pentrdecMCBPCinter = new CHuffmanDecoder (bitStream, g_rgVlcMCBPCinter);	m_pentrdecCBPY = new CHuffmanDecoder (bitStream, g_rgVlcCBPY);	m_pentrdecCBPY1 = new CHuffmanDecoder (bitStream, g_rgVlcCBPY1);	m_pentrdecCBPY2 = new CHuffmanDecoder (bitStream, g_rgVlcCBPY2);	m_pentrdecCBPY3 = new CHuffmanDecoder (bitStream, g_rgVlcCBPY3);	m_pentrdecIntraDCy = new CHuffmanDecoder (bitStream, g_rgVlcIntraDCy);	m_pentrdecIntraDCc = new CHuffmanDecoder (bitStream, g_rgVlcIntraDCc);	m_pentrdecMbTypeBVOP = new CHuffmanDecoder (bitStream, g_rgVlcMbTypeBVOP); 	m_pentrdecWrpPnt = new CHuffmanDecoder (bitStream, g_rgVlcWrpPnt);	m_ppentrdecShapeMode [0] = new CHuffmanDecoder (bitStream, g_rgVlcShapeMode0);	m_ppentrdecShapeMode [1] = new CHuffmanDecoder (bitStream, g_rgVlcShapeMode1);	m_ppentrdecShapeMode [2] = new CHuffmanDecoder (bitStream, g_rgVlcShapeMode2);	m_ppentrdecShapeMode [3] = new CHuffmanDecoder (bitStream, g_rgVlcShapeMode3);	m_ppentrdecShapeMode [4] = new CHuffmanDecoder (bitStream, g_rgVlcShapeMode4);	m_ppentrdecShapeMode [5] = new CHuffmanDecoder (bitStream, g_rgVlcShapeMode5);	m_ppentrdecShapeMode [6] = new CHuffmanDecoder (bitStream, g_rgVlcShapeMode6);//OBSS_SAIT_991015	m_ppentrdecShapeSSModeInter [0] = new CHuffmanDecoder (bitStream, g_rgVlcShapeSSModeInter0);	m_ppentrdecShapeSSModeInter [1] = new CHuffmanDecoder (bitStream, g_rgVlcShapeSSModeInter1);	m_ppentrdecShapeSSModeInter [2] = new CHuffmanDecoder (bitStream, g_rgVlcShapeSSModeInter2);	m_ppentrdecShapeSSModeInter [3] = new CHuffmanDecoder (bitStream, g_rgVlcShapeSSModeInter3);	m_ppentrdecShapeSSModeIntra [0] = new CHuffmanDecoder (bitStream, g_rgVlcShapeSSModeIntra0);	m_ppentrdecShapeSSModeIntra [1] = new CHuffmanDecoder (bitStream, g_rgVlcShapeSSModeIntra1);//~OBSS_SAIT_991015	m_pentrdecShapeMV1 = new CHuffmanDecoder (bitStream, g_rgVlcShapeMV1);	m_pentrdecShapeMV2 = new CHuffmanDecoder (bitStream, g_rgVlcShapeMV2);/*	ifstream istrmTableDCT;	ifstream istrmTableDCTIntra;	ifstream istrmTableMV;	ifstream istrmTableMCBPCintra;	ifstream istrmTableMCBPCinter;	ifstream istrmTableCBPY;	ifstream istrmTableCBPY2;	ifstream istrmTableCBPY3;//	Added for data partitioning mode By Toshiba(1998-1-16:DP+RVLC)	ifstream istrmTableCBPY1DP;	ifstream istrmTableCBPY2DP;	ifstream istrmTableCBPY3DP;// End Toshiba(1998-1-16:DP+RVLC)	ifstream istrmTableIntraDCy;	ifstream istrmTableIntraDCc;	ifstream istrmMbTypeBVOP;	ifstream istrmWrpPnt;	ifstream istrmShapeMode [7];	ifstream istrmShapeMv1;	ifstream istrmShapeMv2; 	//	Added for data partitioning mode By Toshiba(1998-1-16:DP+RVLC) 	ifstream istrmTableDCTRVLC; 	ifstream istrmTableDCTIntraRVLC; 	//	End Toshiba(1998-1-16:DP+RVLC)	// get the vm_home value	Char *rgchVmHome = getenv ( "VM_HOME" );	assert (rgchVmHome != NULL );	Char rgchFile [100];	strcpy (rgchFile, rgchVmHome);	Int iLength = strlen (rgchFile);	Char* pch = rgchFile + iLength;		FULLNAME (sys, vlcdct.txt);	istrmTableDCT.open (rgchFile);		FULLNAME (sys, dctin.txt);	istrmTableDCTIntra.open (rgchFile);	FULLNAME (sys, vlcmvd.txt);	istrmTableMV.open (rgchFile);		FULLNAME (sys, mcbpc1.txt);	istrmTableMCBPCintra.open (rgchFile);		FULLNAME (sys, mcbpc2.txt);	istrmTableMCBPCinter.open (rgchFile);		FULLNAME (sys, cbpy.txt);	istrmTableCBPY.open (rgchFile);		FULLNAME (sys, cbpy2.txt);	istrmTableCBPY2.open (rgchFile);		FULLNAME (sys, cbpy3.txt);	istrmTableCBPY3.open (rgchFile);	//	Added for data partitioning mode By Toshiba(1998-1-16:DP+RVLC)	FULLNAME (sys, cbpy1dp.txt);	istrmTableCBPY1DP.open (rgchFile);	FULLNAME (sys, cbpy2dp.txt);	istrmTableCBPY2DP.open (rgchFile);	FULLNAME (sys, cbpy3dp.txt);	istrmTableCBPY3DP.open (rgchFile);// End Toshiba(1998-1-16:DP+RVLC)	FULLNAME (sys, dcszy.txt);	istrmTableIntraDCy.open (rgchFile);		FULLNAME (sys, dcszc.txt);	istrmTableIntraDCc.open (rgchFile);		FULLNAME (sys, mbtyp.txt);	istrmMbTypeBVOP.open (rgchFile);			FULLNAME (sys, wrppnt.txt);	istrmWrpPnt.open (rgchFile);		FULLNAME (sys, shpmd0.txt);	istrmShapeMode[0].open (rgchFile);		FULLNAME (sys, shpmd1.txt);	istrmShapeMode[1].open (rgchFile);		FULLNAME (sys, shpmd2.txt);	istrmShapeMode[2].open (rgchFile);		FULLNAME (sys, shpmd3.txt);	istrmShapeMode[3].open (rgchFile);		FULLNAME (sys, shpmd4.txt);	istrmShapeMode[4].open (rgchFile);		FULLNAME (sys, shpmd5.txt);	istrmShapeMode[5].open (rgchFile);		FULLNAME (sys, shpmd6.txt);	istrmShapeMode[6].open (rgchFile);		FULLNAME (sys, shpmv1.txt);	istrmShapeMv1.open (rgchFile);		FULLNAME (sys, shpmv2.txt);	istrmShapeMv2.open (rgchFile); 	//	Added for data partitioning mode By Toshiba(1998-1-16:DP+RVLC) 	FULLNAME (sys, rvlcdct.txt); 	istrmTableDCTRVLC.open (rgchFile);	 	FULLNAME (sys, rvlcin.txt); 	istrmTableDCTIntraRVLC.open (rgchFile); 	//	End Toshiba(1998-1-16:DP+RVLC)	m_pentrdecDCT -> loadTable (istrmTableDCT);	m_pentrdecDCTIntra -> loadTable (istrmTableDCTIntra);    m_pentrdecMV -> loadTable (istrmTableMV);    m_pentrdecMCBPCintra -> loadTable (istrmTableMCBPCintra);    m_pentrdecMCBPCinter -> loadTable (istrmTableMCBPCinter);    m_pentrdecCBPY -> loadTable (istrmTableCBPY);    m_pentrdecCBPY2 -> loadTable (istrmTableCBPY2);    m_pentrdecCBPY3 -> loadTable (istrmTableCBPY3);	//	Added for data partitioning mode By Toshiba(1998-1-16:DP+RVLC)    m_pentrdecCBPY1DP -> loadTable (istrmTableCBPY1DP);	    m_pentrdecCBPY2DP -> loadTable (istrmTableCBPY2DP);    m_pentrdecCBPY3DP -> loadTable (istrmTableCBPY3DP);	// End Toshiba(1998-1-16:DP+RVLC)    m_pentrdecIntraDCy -> loadTable (istrmTableIntraDCy);    m_pentrdecIntraDCc -> loadTable (istrmTableIntraDCc);    m_pentrdecMbTypeBVOP -> loadTable (istrmMbTypeBVOP);	m_pentrdecWrpPnt  -> loadTable (istrmWrpPnt);	for (iShapeMd = 0; iShapeMd < 7; iShapeMd++)		m_ppentrdecShapeMode [iShapeMd]->loadTable (istrmShapeMode[iShapeMd]);	m_pentrdecShapeMV1->loadTable (istrmShapeMv1);	m_pentrdecShapeMV2->loadTable (istrmShapeMv2); 	//	Added for data partitioning mode By Toshiba(1998-1-16:DP+RVLC) 	m_pentrdecDCTRVLC -> loadTable (istrmTableDCTRVLC); 	m_pentrdecDCTIntraRVLC -> loadTable (istrmTableDCTIntraRVLC); 	//	End Toshiba(1998-1-16:DP+RVLC)	*/}CEntropyDecoderSet::~CEntropyDecoderSet(){	delete m_pentrdecDCT;	delete m_pentrdecDCTIntra;	delete m_pentrdecMV;	delete m_pentrdecMCBPCintra;	delete m_pentrdecMCBPCinter;	delete m_pentrdecCBPY;	delete m_pentrdecCBPY1;	delete m_pentrdecCBPY2;	delete m_pentrdecCBPY3;	delete m_pentrdecIntraDCy;	delete m_pentrdecIntraDCc;	delete m_pentrdecMbTypeBVOP;	delete m_pentrdecWrpPnt ;	for (UInt iShapeMd = 0; iShapeMd < 7; iShapeMd++)		delete m_ppentrdecShapeMode [iShapeMd];//OBSS_SAIT_991015	for (UInt iShapeSSMdInter = 0; iShapeSSMdInter < 4; iShapeSSMdInter++)		delete m_ppentrdecShapeSSModeInter [iShapeSSMdInter];	for (UInt iShapeSSMdIntra = 0; iShapeSSMdIntra < 2; iShapeSSMdIntra++)		delete m_ppentrdecShapeSSModeIntra [iShapeSSMdIntra];//~OBSS_SAIT_991015	delete m_pentrdecShapeMV1;	delete m_pentrdecShapeMV2; 	//	Added for data partitioning mode By Toshiba(1998-1-16:DP+RVLC) 	delete m_pentrdecDCTRVLC; 	delete m_pentrdecDCTIntraRVLC; 	//	End Toshiba(1998-1-16:DP+RVLC)}

⌨️ 快捷键说明

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