Matlab 如何使用哈夫曼编码对量化信道进行编码和解码?

Matlab 如何使用哈夫曼编码对量化信道进行编码和解码?,matlab,Matlab,我必须实现一个压缩方案。我使用以下命令对图像的3个通道进行了量化: yce = blockproc(y, [8 8], @(block_struct) round(round(block_struct.data) ./ q_y)); cbce = blockproc(cb, [8 8], @(block_struct) round(round(block_struct.data) ./ q_c)); crce = blockproc(cr, [8 8], @(block_struct) roun

我必须实现一个压缩方案。我使用以下命令对图像的3个通道进行了量化:

yce = blockproc(y, [8 8], @(block_struct) round(round(block_struct.data) ./ q_y));
cbce = blockproc(cb, [8 8], @(block_struct) round(round(block_struct.data) ./ q_c));
crce = blockproc(cr, [8 8], @(block_struct) round(round(block_struct.data) ./ q_c));
现在,我想使用哈夫曼编码对上面的每个元素进行编码,然后执行逆运算。这是我的代码:

Z = unique (yce); 

countElY=histc(yce,Z);

p = countElY/numel(yce);

[dict,avglen] = huffmandict(Z,p);

K=unique(cbce);

countelcb=histc(cbce,K);

p1=countelcb/numel(cbce);

[dict1,avglen1]=huffmandict(K,p1);

L=unique(crce);

countelcr=histc(crce,L);

p2=countelcr/numel(crce);

[dict2,avglen2]=huffmandict(L,p2);

comp= huffmanenco(yce,dict);

comp1=huffmanenco(cbce,dict1);

comp2=huffmanenco(crce,dict2);

huffman_code = (cat(3,comp,comp1,comp2));

Im1 = huffmandeco(comp,dict);

im2=huffmandeco(comp1,dict1);

im3=huffmandeco(comp2,dict2);
我得到以下错误:

The probability input must be a vector.

在这一步你能帮我吗?提前谢谢

你能编辑一下你的文章,使它的格式更好一点吗?你有自己的句子出现在一个代码块中,对于那些可能有帮助的人来说,这很难阅读。你能帮我吗?提前谢谢!恐怕不行,我对matlab一窍不通。我只是想建议你让你的问题更容易阅读和理解,以提高得到答案的机会。你能提供的细节越多越好:你什么时候看到错误?消息是否提供行号?也许可以提供完整的格式化代码?等等等等。