您好我在实施以下方面遇到了问题:
DPCM----> Entropy Coding
My DPCM predictor is
AB
CX
X=0.75A-0.5B+0.75C
public static int[][] predictor(int[][] copy, int wt, int ht)
{
int[][] error=new int[ht][wt];
//error[0][0]=copy[0][0];
for(int i=0;i<ht;i++)
{
for(int j=0;j<wt;j++)
{
if(j==0&&i==0)
error[i][j]=copy[0][0];
else if (j==0&&i!=0)
error[i][j]=copy[i][j]-copy[i-1][j];
else if(i==0&&j!=0)
error[i][j]=copy[i][j]-copy[i][j-1];
else
error[i][j]=copy[i][j]-(int)(0.75*copy[i][j-1]-0.5*copy[i-1] [j]+0.75*copy[i-1][j-1]);
}
}
我实现了这个,并将错误存储在2d数组中。
在此之后我需要做修改后的霍夫曼编码(代码簿大小为128) 所以我得到的是修改后的霍夫曼编码是对错误值进行的吗?这也可能是消极的 实际上代码簿大小意味着什么? 非常感谢您的帮助!
答案 0 :(得分:0)
在传真机上使用改进的霍夫曼编码来对白色的黑色图像进行编码。你将有两个霍夫曼表,一个用于黑色运行,一个用于白色运行,这与均方误差无关。即使它可能与它有关,使用MSE的目的是消除负值,因此使用一个简单的错误减法等指标不起作用。您可能已经注意到,黑色运行的比特率较低,白色运行的比特率较高。代码字长度表示每个代码矢量的大小,另一方面,代码簿大小表示拓扑中的矢量数。