Dict.CN 在线词典, 英语学习, 在线翻译

学海苦作舟,书山勤为径

留下点回忆

常用链接

统计

积分与排名

Denoise

English study

Web技术

数据压缩

一些连接

最新评论

MQ编码器

 

MQ编码器来自于无乘法的Q编码器算法;而另一来自Q编码器的算法是QM,这两个编码器的区别有:

1. QMLPS区间在上,MPS区间在下,而MQ正好相反,LPS区间在下,而MPS区间在上。

2. QM编码器采用的是全进位模式,而MQ的是位填充模式。

如图:

 

上图中发现MQ编码器的MPSLPS的区间位:

MPS区间: QeA

LPS区间:0Qe

 

MQ编码器的规则:

1. 如果遇到一个MPS

a)         首先将A A-Qe;这个是MPS的区间大小

b)        如果A大于0x8000的时候,说明不需要重定标;需要将MPS的下界放到输出符号C中,即:C = C+A

c)        如果A小于0x8000,说明需要重定标;这个时候需要比较一下AQe的大小,如果AQe小还需要交换区间

d)        如果AQe小,首先需要将Qe的值给A,也就是A Qe;这个时候不需要输出区间边界,因为交换之后的MPS区间的下界实际上是原来LPS区间的下界,其是0

e)         如果AQe大,这个过程同b,需要将MPS的区间下界Qe输出到C

f)         对于小于0X8000的情况需要重定标,也就是逐次加倍增加AC,直到A0x8000大;如果中间的C发生溢出,需要输出C的高位到输出字节。

2. 如果是LPS,那么重定标是肯定的,在完成所有操作后进行

a)         如果AQe小;这个时候实际上A仍然是MPS的区间,单由于遇到了一个LPS,最终的A应该是LPS区间,大MPS的区间(现在的A)比LPS的区间(Qe)小,所以取两者小的那个,所以A已经是值了。这实际上是一次区间交换。而交换后的LPS区间下界是交换前的MPS区间下界,也就是Qe,因此将Qe输出到C。那么C = C + Qe

b)        如果AQe大,说明这是一个不需要交换的区间,但这个时候需要将LPS的区间给A,而且将LPS的区间下界输出到C;对于LPS的区间是Qe,因此A = Qe;而LPS的区间下界是0,所以C没有变化。

完成上面步骤以后需要进行AC的重定标,直到A0X80000大为止。


对应QM编码器可以参见QM编码器


MQ编码器代码下载

posted on 2007-04-14 21:33 笨笨 阅读(2482) 评论(4)  编辑 收藏 引用 所属分类: 压缩算法

评论

# re: MQ编码器 2007-04-14 21:48 逆流的鱼

谢谢
下在看看:)  回复  更多评论   

# re: MQ编码器 2007-04-14 22:00

受教了,谢谢,呵呵  回复  更多评论   

# re: MQ编码器 2007-04-14 22:09

MQ的大体流程我也理解了(看了些介绍JPEG2000里MQ编码器的资料),但如果要求是不经过小波变换的二进制码流,那编码之前的概率建模部分好像就不能照JPEG2000里的EBCOT算法来了吧?它上下文索引的建立不是经过小波系数量化之后才能得到的吗?
  如果这样的话,应该往哪个方向去做?模型要怎么来建立?请高手指点……  回复  更多评论   

# re: MQ编码器 2007-11-27 10:45 j_gaorui

想问下,仁兄有没有做过MQ编码器压缩一副400多K二值图像,压缩时间是多少毫秒,有什么方法可以减少MQ编码器的压缩时间的(软件实现),或者好的建议文章也行,谢谢了  回复  更多评论   


只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理