一种基于上下文的自适应熵编/解码方法技术

技术编号:3601949 阅读:222 留言:0更新日期:2012-04-11 18:40
一种基于上下文的自适应熵编/解码方法,编码时:扫描当前变换块中已被量化的DCT系数,由此形成(level,run)数对序列;然后按扫描的逆向顺序对数对序列中每一数对进行熵编码,在编码中,利用已被编码块中已完成编码的数对的值动态自适应构造上下文统计模型,同时,也提出一个上下文模型加权融合技术来进一步提高模型的压缩性能;用上一步骤所获得的上下文统计模型来驱动熵编码。基于上下文的自适应熵解码方法是编码方法的逆。本发明专利技术实现了利用不多的上下文状态数刻画长记忆马尔可夫模型,具有较高的压缩性能。

【技术实现步骤摘要】

本专利技术涉及的
是多媒体(图像,视频,音频)压缩及传输,特别是一种基于上下文建模的用于信号压缩的DCT系数自适应熵编/解码方法。本专利技术的目的在于改进DCT系数自适应熵编码时统计上下文模型的质量。在所有数据压缩技术和系统中,自适应熵编码起至关重要的作用,而自适应熵编码必须由统计上下文模型所驱动。统计上下文模型的好坏将最终决定整个系统的压缩性能。
技术介绍
离散余弦变换(Discrete Cosine Transform,简称DCT)被广泛地应用于视频/图像/音频信号的压缩中。经过DCT变换,信号的统计和主观冗余性可以更好地被理解、利用和去除。因此,变换后的信号也更适于压缩。当前大多数的国际、国内信号压缩标准(如JPEG、MPEG、H.264、中国音频/视频标准(Audio video standard,简称AVS))均采用了在DCT变换域中进行编码的方式,这充分体现了DCT变换的有效性。然而DCT变换自身并不会产生任何数据量的减少,这是因为变换后系数的数目与信号原采样数是相同的。真正实现压缩效果的是DCT系数的熵编码过程。任何DCT系数的熵编码方法,如哈夫曼(Huffman)码、算术码,都必须利用对DCT系数概率分布的估计。在一个实用的基于DCT的信号压缩系统中,DCT系数将按照某种约定的扫描顺序依次进行熵编码。最流行的扫描顺序之一是JPEG和MPEG标准中所采用的zigzag扫描。本专利技术中的方法具有通用性,可以适用于任何DCT系数的扫描顺序。如果用x1,x2,…,xn代表扫描后的DCT系数序列,其中N反映DCT变换所采用的块的大小,那么编码该序列所需的最小码长为Lmin=-log2Πi=1NP(xi|xi-1).]]>其中,xi-1代表当前系数xi之前所有系数构成的序列{xi-1,xi-1,…x1}。如果条件概率P(xi|xi-1)已知,自适应算术编码可以趋近理想最小码长Lmin。在条件概率估计 下,算术编码可以实现编码长度 问题的关键在于如何进行概率估计以使 成为条件概率P(xi|xi-1)的良好估计。 表示序列xi-1中对当前系数xi的统计特性有重要意义的某个子序列,称为模型上下文(Context)。所估计的条件概率 用作信源的统计模型。以概率估计形式为体现的统计上下文模型是所有信号压缩系统的核心。模型质量即概率估计的精确度将最终决定压缩性能。诺基亚(Nokia)于2001年针对H264标准参考模型TML85提出了一个对DCT系数块的(run,level)(level是非零残差系数,run代表当前非零系数与前一个非零系数之间的零系数个数)数对序列进行自适应二值算术编码的方法。该方法按照与数对扫描生成时“相同”的顺序依次对各数对进行编码,编码时仅用本系数块中最临近的level值构造上下文(一阶Markov模型)。针对该方法的公开号为US2004112683的专利公布了一种编码变换系数的方法,通过正、反两次扫描完成对DCT系数块的编码。在首次正向扫描中根据系数的物理频率位置构造上下文对系数的第一位面(即Significant Map)进行编码。在二次逆扫描中完成对非零系数其它位面的编码。但此方法没有刻画长记忆马尔可夫(Markov)模型,压缩性能相对较低。
技术实现思路
本专利技术的目的在于针对上述现有编码技术存在的不足,提供一种基于上下文建模的用于信号压缩的DCT系数自适应熵编/解码方法,改进了现有DCT系数熵编/解码技术,为中国AVS提供一个高性能熵编码模块,使得中国AVS系统的整体性能达到甚至超过当前世界最先进视频压缩技术的水平。为实现上述目的,本专利技术采用了一种基于上下文建模的用于信号压缩的DCT系数自适应熵编/解码方法,其中,编码时,执行以下步骤步骤1、扫描当前经过DCT变换和量化后的系数块,形成(level,run)数对序列,得到非零系数的个数值;初始化所述系数块的上下文模型;步骤2、如果所述非零系数的个数值为零,则得到EOB信息(EOB为块结束标记End of Block),即一个(0,0)数对;如果所述非零系数的个数值不为零,则在扫描结果中查找所述非零系数个数位置上的(level,run)数对;步骤3、如果对第一个系数编码,则根据空序列构造第一上下文;否则,根据所述系数块中已完成编码的所有数对构造第一上下文,并利用上下文加权方式,对当前level的绝对值进行熵编码;步骤4、如果所述非零系数的个数为零则编码结束;否则,根据所述系数块中已完成编码的所有数对以及步骤3中所述已编码的level的绝对值,对level的符号位进行编码;步骤5、根据所述系数块中已完成编码的所有数对以及步骤3与4中所述已编码的当前level的绝对值与符号位构造第二上下文,对run进行熵编码;步骤6、对所述非零系数的数量值进行减1操作,执行步骤2。解码时,执行以下步骤步骤1、初始化上下文模型;步骤2、逆序扫描第一个(Level,Run)数对中Level幅值,根据上下文模型解码得到第一个Level幅值;步骤3、如果所得到的Level幅值为零,则得到EOB信息,即一个(0,0)数对,执行步骤7;否则,执行步骤4;步骤4、解码得到level的符号位;步骤5、根据已完成解码的所有数对以及步骤2与3中刚解码的当前level的值构造上下文,解码得到Run;步骤6、根据已完成解码的所有数对构造上下文,并利用上下文加权技术,解码得到下一个(Level,Run)数对中level的绝对值;执行步骤3;步骤7、根据所述解码得到的(Level,Run)数对序列恢复所述系数块。考虑到实用性和兼容性,本专利技术的技术细节向适于中国AVS基准版本的方向进行了细致调节,对现行中国AVS系统做出了自然而重大的改进扩展。(1)本专利技术按照与数对扫描生成时“相反”的顺序依次对各数对进行编码,这一逆扫描序的编码顺序明显提高了上下文模型的有效性。(2)同时,编码时利用本系数块中所有已完成编码的(level,run)数对构造上下文(高阶Markov模型),并创新性使用了上下文加权技术,该方法可以通过将多个上下文模型融合为一体来改进压缩性能。(3)本专利技术采用了一种创新的上下文量化方法,实现了利用不多的上下文状态数刻画长记忆马尔可夫模型,从而避免在刻画高阶马尔可夫模型时遭受上下文稀释问题的不良影响。本专利技术在实现上述目的时相对现有技术并没有增加计算复杂度,适合实时应用,并且与中国AVS基准视频编解码框架具有兼容性。下面结合附图和实施例,对本专利技术的技术方案做进一步的详细描述。附图说明图1是本专利技术的编码流程图;图2是本专利技术的解码流程图;图3是zig-zag扫描示例;图4是本专利技术对块系数的编码顺序。具体实施例方式如图1、2所示为本专利技术的实施例一,具体编码步骤为步骤101、扫描当前经过DCT变换和量化后的系数块,形成(level,run)数对序列,得到非零系数的个数值;初始化所述系数块的上下文模型;步骤102、如果所述非零系数的个数值为零,则得到EOB信息,即一个(0,0)数对;如果所述非零系数的个数值不为零,则在扫描结果中查找所述非零系数个数位置上的(level,run)数对;步骤103、如果对第一个系数编码,则根据空序列构造第一上下文;否则,根据本文档来自技高网
...

【技术保护点】
一种基于上下文的自适应熵编码方法,其中,执行以下步骤:    步骤1、扫描当前经过DCT变换和量化后的系数块,形成“level,run”数对序列,得到非零系数的个数值;初始化所述系数块的上下文模型;    步骤2、如果所述非零系数的个数值为零,则得到EOB信息;如果所述非零系数的个数值不为零,则在扫描结果中查找所述非零系数个数位置上的“level,run”数对;    步骤3、如果对第一个系数编码,则根据空序列构造第一上下文;否则,根据所述系数块中已完成编码的所有数对构造第一上下文,并利用上下文加权方式,对当前level的绝对值进行熵编码;    步骤4、如果所述非零系数的个数为零则编码结束;否则,根据所述系数块中已完成编码的所有数对以及步骤3中所述已编码的level的绝对值,对level的符号位进行编码;    步骤5、根据所述系数块中已完成编码的所有数对以及步骤3与4中所述已编码的当前level的绝对值与符号位构造第二上下文,对run进行熵编码;    步骤6、对所述非零系数的数量值进行减1操作,执行步骤2。

【技术特征摘要】

【专利技术属性】
技术研发人员:高文张宁武筱林
申请(专利权)人:联合信源数字音视频技术北京有限公司
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1