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

📄 init_uvlc.cpp

📁 DPCM编码的联合信源信道译码
💻 CPP
字号:
#include "UVLC.h"
#include "init_UVLC.h"
#include "init_system.h"
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

Str_sys_UVLC sys_UVLC;

void Init_UVLC()
{

//	sys_UVLC.alphabet_size = 16;
//	sys_UVLC.maxin = 9;
//	sys_UVLC.BESTC = 16;
	

	sys_UVLC.alphabet_size = 4;
	sys_UVLC.maxin = 2;
	sys_UVLC.BESTC = 1;


	int i,j,k;

	sys_UVLC.bpl = ivector(0,256-1);
	
	sys_UVLC.code = imatrix(0,sys_UVLC.alphabet_size,0,sys_UVLC.maxin);   //alphabet_size=16,maxin=9

	sys_UVLC.word=ivector(0,sys_UVLC.maxin-1);
	
	sys_UVLC.hist1=matrix(0,sys_UVLC.alphabet_size-1,0,sys_UVLC.alphabet_size-1); 
	
	sys_UVLC.used_bits_old=imatrix(0,sys_UVLC.alphabet_size-1,0,sys_UVLC.BESTC-1);
	
	sys_UVLC.used_bits_new=imatrix(0,sys_UVLC.alphabet_size-1,0,sys_UVLC.BESTC-1);
	
	sys_UVLC.cost_t=dmatrix(0,sys_UVLC.alphabet_size-1,0,sys_UVLC.BESTC-1);
	
	sys_UVLC.cost_o=dmatrix(0,sys_UVLC.alphabet_size-1,0,sys_UVLC.BESTC-1);
	
	sys_UVLC.cost_n=dmatrix(0,sys_UVLC.alphabet_size-1,0,sys_UVLC.BESTC-1);
	
//	sys_UVLC.received=dvector(0,768-1);
	sys_UVLC.received=ivector(0,sys_spt.message_bits-1);

	sys_UVLC.decoded_out = ivector(0,sys_spt.message_bits*2-1);

	sys_UVLC.encoded = ivector(0,256*2-1);
	
	sys_UVLC.decoded = ivector(0,256*2-1);
	
	sys_UVLC.dpcmsym = ivector(0,256-1);

	sys_UVLC.history=(int ****)malloc(sys_UVLC.alphabet_size*sizeof(int ***));	// history[sys_UVLC.alphabet_size][128][BESTC][2]

	for(i=0;i<sys_UVLC.alphabet_size;i++)
    {
		sys_UVLC.history[i]=(int ***)malloc(256*sizeof(int **));
    }

	for(i=0;i<sys_UVLC.alphabet_size;i++)
		for(j=0;j<256;j++)
		{
			sys_UVLC.history[i][j]=(int **)malloc(sys_UVLC.BESTC*sizeof(int *));
		}
		
	for(i=0;i<sys_UVLC.alphabet_size;i++)
		for(j=0;j<256;j++)
			for(k=0;k<sys_UVLC.BESTC;k++) 
			{
				sys_UVLC.history[i][j][k]=(int *)malloc(2*sizeof(int));
			}

	FILE *fi_prob;
	fi_prob=fopen("prob.bin","rb");

	for(i=0;i<sys_UVLC.alphabet_size;++i)
		for(j=0;j<sys_UVLC.alphabet_size;++j)
		{
			fread(&sys_UVLC.hist1[i][j],sizeof(float),1,fi_prob);
			if(sys_UVLC.hist1[i][j]!=0.) 
				sys_UVLC.hist1[i][j]=-log10(sys_UVLC.hist1[i][j]);
			else
				sys_UVLC.hist1[i][j]=60000.;
		}
	
}

⌨️ 快捷键说明

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