声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1758|回复: 0

[人工智能] dct变换后 huffman dc ac编码 疑问?

[复制链接]
发表于 2008-5-8 23:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
Ir = imread('Car.bmp') ; %读取内存中bmp 格式图像文件
II=rgb2ycbcr(Ir); %将RGB颜色空间转换到YCBCR颜色空间

采样

%DCT变换
for k=1:ti1
     for j=1:ti2
           Dy{k,j}=dct2(Y((1+(k-1)*8):k*8,(1+(j-1)*8):j*8));%I1  (1+(k-1)*8):k*8,(1+(j-1)*8):j*8);
           Dcb{k,j}=dct2(Cb((1+(k-1)*8):k*8,(1+(j-1)*8):j*8));%I2
           Dcr{k,j}=dct2(Cr((1+(k-1)*8):k*8,(1+(j-1)*8):j*8));%I3
     end
end
量化
for k=1:ti1
     for j=1:ti2
         I1((1+(k-1)*8):k*8,(1+(j-1)*8):j*8)=round(Dy{k,j}./my);
         I2((1+(k-1)*8):k*8,(1+(j-1)*8):j*8)=round(Dcb{k,j}./miq);
         I3((1+(k-1)*8):k*8,(1+(j-1)*8):j*8)=round(Dcr{k,j}./miq);
     end
end

%对量化后的图像进行huffman编码
data1=uint8(I1);% 读入数据,并将数据限制为unit8型
[zipped1,info1] = norm2huff(data1);

[Words,Simbols] = huffcodes2bin(info1.huffcodes);


%DC编码

%AC编码

JPEG 的作者指出连续块的 DC 率之间有很紧密的联系,  因此他们决定对 8x8 块的DC 值的差别进行编码. (Y, Cb, Cr 分别有自己的 DC)

Diff = DC(i)  - DC(i-1)

所以这一块的 DC(i) 就是:  DC(i)  = DC(i-1)  + Diff
JPG 从 0 开始对 DC 编码, 所以 DC(0)=0. 然后再将当前 Diff 值加在上一个值上得到当前值.
这里连续块怎么理解,对于8X8的分块,是以行为连续呢还是以列为连续(如 :一行8X8矩阵数完了再下一行 开始8X8矩阵,)
这个DC编码与huffman编码有什么关系呢?一直没有弄懂 。很多关于AC的解说又是一笔带过,希望达人能给个DC编码、AC编码?我急用,谢谢解答。


[ 本帖最后由 eight 于 2008-5-9 11:00 编辑 ]
回复
分享到:

使用道具 举报

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-23 23:13 , Processed in 0.082360 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表