无损预测编码



嗨,我在实现以下内容时遇到问题:

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)所以我没有得到的是修改后的霍夫曼编码是在错误值上完成的吗?也可能是负数码本大小实际上意味着什么?您的帮助将不胜感激!

修改后的霍夫曼编码在传真机上用于将黑色图像编码为白色。您将有两个霍夫曼表,一个用于黑色游程,一个用于白色游程,这与均方误差无关。即使它可能与之相关,使用 MSE 的目的是消除负值,因此使用简单的误差指标(如减法)将不起作用。您可能已经注意到,黑色运行的比特率会降低,白色运行的比特率会更高。码字长度是指每个码向量的大小,另一方面,码本大小是指拓扑中的向量数。

最新更新