图像/视频编码中变换系数的熵编码方法

文档序号:7885504阅读:239来源:国知局
专利名称:图像/视频编码中变换系数的熵编码方法
技术领域
本发明属于信号处理中的图像/视频编解码领域,特别涉及图像/视频信号编码中对扫描后的系数的熵编码。
背景技术
现有的图像/视频编码方法中,视频序列的一幅图象一般划分为若干个块进行编码,所说的块为图象中作为编码基本单位的象素集合,是象素个数大于等于1的正方形、长方形或任意形状边界的象素集合。编码的步骤一般又包括预测、变换、量化、扫描和熵编码。其中,熵编码方法通常是将变换系数按一定规则扫描成一个系数串后,再对该系数串进行变长编码。
在国际视频编码标准MPEG-2中采纳的熵编码方法是先将扫描后的系数串组合成一个个run和level的二维组合对(run,level),其中run是指一个非零系数之前的连续0的个数(简称零的游程),level是指非零系数的正负及绝对值,再对这些二维组合对进行变长编码,即将每一个(run,level)二维组合对都根据标准中预先设定的二维码表映射成为一个由若干个0和若干个1组成的唯一可译的码字,并在一个块的变换系数结束时用一个特定的EOB码字来表明该块系数的结束。MPEG-2中使用的(run,level)二维组合对中的run可以看成是非零系数的位置信息,而level可以看成是非零系数的值的信息。这里所说的位置信息是指在扫描后的系数串中非零系数所处的位置以及何时系数串结束,值的信息是指非零系数的绝对值和正负号。MPEG-2是将位置信息和值的信息结合在一起进行编码的。
在最新国际视频编码标准H.264/AVC中的变换系数的熵编码方法主要有基于上下文的自适应变长编码(CAVLC)和基于上下文的自适应二进制算术编码(CABAC)两种。CAVLC和CABAC相比有较低的复杂度,因此在H.264/AVC的基本框架(baseline profile)中只采用了CAVLC。CAVLC把扫描后的系数串中非零系数的个数和末尾的连续几个1或者-1的个数结合成coeff_token进行基于相邻块信息的变长编码,把除末尾的若干个1以外的非零系数的值以level_prefix和level_suffix表示,并进行变长编码,把剩下的0以total_zeros和run_before为基本语法元素进行基于上下文的变长编码。CAVLC比之前的熵编码方法更好的利用了上下文信息,所以取得了比以往视频压缩标准更好的性能。
尽管如此,变换系数内还存在很多统计特性CAVLC没有充分利用,尤其是各个非零系数的位置信息内的相关性,还有各个非零系数的值的信息之间的相关性。因此,现有的熵编码方法还不算是尽善尽美。

发明内容
本发明的目的是为了提高现有图像/视频压缩编码的性能,提出了一种新的针对变换系数的熵编码方法,它对扫描后的系数串中的非零系数的位置信息和值的信息分别进行变长编码,并且更加深入的利用了位置信息和非零系数的值的信息内的统计特性,如连续零的个数和连续非零系数的个数的组合特性,以及系数绝对值是否为全1的统计特性,等等,从而取得了比已有熵编码方法更为优越的压缩性能。
本发明提出的技术方案实现方法之一为将变换系数按一定规则扫描成一个系数串后,对该系数串进行变长编码,其特征在于从该系数串中提取非零系数的位置信息和非零系数的值的信息,再对该两种信息分别进行变长编码,在对该非零系数的位置信息进行编码时,将连续的零和连续的非零系数组合成零的游程和非零系数的游程的二维组合对,对所述的二维组合对进行变长编码。
本发明提出的技术方案实现方法之二为将变换系数按一定规则扫描成一个系数串后,对该系数串进行变长编码,其特征在于从该系数串中提取非零系数的位置信息和非零系数的值的信息,再对该两种信息分别进行变长编码,在对该非零系数的值的信息进行编码时,将连续的1或-1和紧随其后的绝对值大于1的系数的值或绝对值组合成±1的游程和绝对值大于1的系数的值或绝对值的二维组合对,对所述的二维组合对进行变长编码。
本发明提出的技术方案实现方法之三为将变换系数按一定规则扫描成一个系数串后,对该系数串进行变长编码,其特征在于从该系数串中提取非零系数的位置信息和非零系数的值的信息,再对该两种信息分别进行变长编码,在对该非零系数的值的信息进行编码时,用1个比特标明该串非零系数的绝对值是否全是1。
对上述各技术方案的二维组合对进行变长编码时,可根据已经编码过的信息自适应的选择相应的码表进行变长编码。
本发明的特点及良好效果本发明提出的图像/视频压缩编码中的熵编码方法,它把扫描后的系数串中的非零系数的位置信息和非零系数的值的信息分别进行编码,把各种游程信息和各种值的信息进行了更好的优化组合,更有利于变长编码和提高压缩性能。
本发明比已有图象/视频压缩编码方法中的熵编码更为深入的利用了位置信息和非零系数的值的信息内的统计特性,更为有效的编码了±1,从而取得了比已有熵编码方法更为优越的压缩性能。
具体实施例方式
本发明的图像/视频编码中变换系数的熵编码方法实施例详细说明如下实施例一设视频编码中某个块的变换量化扫描之后的系数串为-1-1-3 3-110-40002-100-20001-210000011001从该系数串中分别提取非零系数的位置信息和非零系数的值的信息,再对该两种信息分别进行变长编码
1)位置信息将其分割为若干个零的游程(连续的零的个数)和非零系数的游程(连续的非零系数的个数)的组合对,并从该系数串的最后往前按逆序排列如下(2,1)(5,2)(3,3)(2,1)(3,2)(1,1)(0,6)其中,每个括号表示一个组合对,括号中的第一个数字表示零的游程,第二个数字表示零后面的非零系数的游程。例如,系数串的最后是001,它只有一个连续的非零系数,其之前有两个连续的0,因此第一个组合对为(2,1);再往前数,系数串是0000011,共5个连续的0和2个连续的非零系数,因此组合对为(5,2)。以此类推,直到系数串的最前面-1-1-33-11,共0个零,6个连续的非零系数,因此最后一个组合对是(0,6)。
获得了零的游程和非零系数的游程的组合对之后,还需确定该串系数的位置信息何时结束。在变长编码中,通常有两种指示编码结束的方法一种是预先编码零的游程和非零系数的游程的二维组合对的个数,另一种是在所有零的游程和非零系数的游程的二维组合对编码完毕之后,往码流中写入一个唯一可译的结束码字,来标识位置信息的编码结束。除这两种方法之外还可以有其他方法。在本实施例中,采用第一种方法,即通过编码传输零的游程和非零系数的游程的二维组合对的数目来指示何时组合对编码完毕。本实施例中组合对的数目是7。这样,先对组合对的个数7进行变长编码,例如在本实施例中7编码为010。
之后依次对上述各个组合对进行变长编码。在视频压缩标准中预先设立一张或多张码表,编码组合对时可以根据已经编码过的信息来自适应的选择相应的码表并编码成为相应的唯一可译的码字。这里所说的已经编码过的信息可以是已经编码过的组合对中的非零系数的游程,或者是已经编码过的所有组合对中的零的游程和非零系数的游程之和,还可以是其它可以从已经编码过的内容中获得的信息。
在本实施例中,视频压缩标准中预先设有四张供位置信息编码的码表,并在标准中规定第一个组合对采用第一张码表,之后若刚刚编码的组合对中零的游程小于等于6,则使用第二张码表,否则使用第三张码表;最后一个组合对使用第四张码表。这样,第一个组合对(2,1)使用第一张码表编码为110,之后因为刚编码的组合对中零的游程小于6,所以(5,2)自适应的使用第二张码表编码为001010;以此类推,(3,3)也使用第二张码表编码为00001,(2,1)也使用第二张码表编码为01,(3,2)也使用第二张码表编码为00010,(1,1)也使用第二张码表编码为10,最后一个组合对(0,6)使用第四张码表编码为000111。
这样,整个系数串的非零系数的位置信息便编码成为010 110 001010 00001 0100010 10 0001112)值的信息将原系数串-1-1-33-110-40002-100-20001-210000011001中的非零系数单独提取出来组成一列,即-1-1-33-11-42-1-21-21111将该非零系数串中最末尾的连续的±1都除去,并且其划分为±1的游程(连续的1或者-1的个数)和紧随其后的绝对值大于1的系数的绝对值的组合对,即按照如下所述的组合(-1-1-3)(3)(-11-4)(2)(-1-2)(1-2)将上述组合从后向前的排列成一个个±1的游程和绝对值大于1的系数的绝对值的组合对,如下(1,2)(1,2)(0,2)(2,4)(0,3)(2,3)这里,每个括号表示一个组合对,括号中的第一个数字表示±1的游程,第二个数字表示紧随其后的绝对值大于1的系数的绝对值。例如在提取出的非零系数串中,最后一个绝对值大于1的非零系数是-2,其前面只有1个连续的±1,所以第一个组合对是(1,2)。依此往前类推,直到该非零系数串的最前面-1-1-3,即两个连续的±1,其后的-3绝对值是3,因此组合对是(2,3)。
依次对这些组合对进行变长编码。在视频压缩标准中预先设立一张或多张码表,编码这些值的信息的组合对时可以根据已经编码过的信息来自适应的选择相应的码表并编码成为相应的唯一可译的码字。这里所说的已经编码过的信息可以是已经编码过的组合对中的绝对值大于1的系数的值的信息,也可以是已经编码过的组合对中±1的游程之和,还可以是其它可以从已经编码过的内容中获得的信息。另外在最后加入一个唯一可译的结束码字来表明何时组合对编码结束。
在本实施例中,视频压缩标准中预先设有三张供上述值的信息编码的码表,并在标准中规定第一个组合对采用第一张码表,之后若刚刚编码的组合对中绝对值大于1的系数的绝对值大于6,则使用第二张码表,否则使用第三张码表。这样,第一个组合对(1,2)使用第一张码表编码为010,由于刚刚编码过的组合对中绝对值大于1的系数的绝对值小于6,因此(1,2)采用第三张码表编码为010,以次类推,(0,2)采用第三张码表编码为10,(2,4)采用第三张码表编码为00101,(0,3)采用第三张码表编码为011,(2,3)也采用第三张码表编码为00010。最后添加一个结束码字11,以表示组合对编码结束。
另外该系数串中非零系数的正负号编码为1110101011010000(1代表负,0代表正)。
这样,整个系数串的非零系数的值的信息便编码成为010 010 10 00101 01100010 11 1110101011010000将非零系数的位置信息编码出的比特和值的信息编码出的比特连接在一起,从而得到整个系数串的编码结果就是010 110 001010 00001 01 00010 10 000111 010010 10 00101 011 00010 11 1110101011010000解码方法是上述编码方法的逆过程。解码时,此比特串依次可以唯一解码出位置信息组合对的个数7,以及7个位置信息的二维组合对(2,1)(5,2)(3,3)(2,1)(3,2)(1,1)(0,6),然后是值的信息的二维组合对(1,2)(1,2)(0,2)(2,4)(0,3)(2,3)以及各个非零系数的正负号---+-+-+--+-++++。根据本实施例中的熵编码方法,便可以将这些信息恢复出与编码前一致的原始系数串-1-1-33-110-40002-100-20001-210000011001。
实施例二设图像编码中某个块的变换量化扫描之后的系数串为0-1100000010000010000000000-1从该系数串中分别提取非零系数的位置信息和非零系数的值的信息,再对该两种信息分别进行变长编码1)位置信息。
实施例二中的非零系数的位置信息的编码方法和实施例一中的位置信息的编码方法完全相同。(本实施例也可以采用不同与实施例一中的其他已有方法来编码位置信息。)具体来说先将其分割为若干个零的游程和非零系数的游程的组合对,并从系数串的最后往前按逆序排列如下(10,1)(5,1)(6,1)(1,2)其中,每个括号表示一个组合对,括号中的第一个数字表示零的游程,第二个数字表示零后面的非零系数的游程。例如,系数串的最后是连续的10个0和1个非零的系数-1,因此第一个组合对为(10,1);再往前数,系数串是连续的5个0和1个非零的系数1,因此组合对为(5,1)。以此类推,直到系数串的最前面0-11,共1个0,2个连续的非零系数,因此最后一个组合对是(1,2)。
为了确定该串系数的位置信息何时结束,可以数出共有多少个零的游程和非零系数的游程的二维组合对,在本实施例中共有4个组合对。
这样,先对组合对的个数4进行变长编码,例如本实施例编码为011,然后依次变长编码各个组合对,即将每一个组合对根据图像压缩标准中设立的相应的码表编码成一个唯一可译的码字,在编码后面的组合对时可以根据已经编码过的组合对的信息,来按照标准中规定的法则选择相应的码表。
例如本实施例中在压缩标准中设有两个编码位置信息的码表,刚开始采用第一个码表,当上一个编码的零的游程小于5时,或者已经编码的所有的零的游程和非零系数的游程之和大于20时,采用第二个码表,否则仍旧采用第一个码表。这样,(10,1)采用第一个码表编码为00000110,(5,1)依然采用第一个码表编码为001010,(6,1)也采用第一个码表编码为00011,此时已经编码的所有的零的游程和非零系数的游程之和为10+1+5+1+6+1=24,大于20,从而(1,2)采用第二个码表编码为01。
这样,整个系数串的非零系数的位置信息便编码成为011 00000110 00101000011 012)值的信息。
本实施例中,值的信息采用和实施例一中不同的编码方法。即先采用一个比特来编码表示非零系数是否全是±1。若该比特为1,则表示非零系数全是±1.若该比特为0,则表示存在绝对值大于1的非零系数,之后仍采用实施例一的值的信息编码方法或者其他方法对值的信息进行编码。
在本实施例中,非零系数全是±1,用一个比特“1”来表示。
之后编码各个±1的符号,用1表示负,用0表示正,即10001这样,整个系数串的非零系数的值的信息便编码成为110001将非零系数的位置信息编码出的比特和值的信息编码出的比特连接在一起,从而得到整个系数串的编码结果就是011 00000110 001010 00011 01 1 10001在本实施例中,编码值的信息也可以采用与实施例一相同的方法,或者在标准中规定在某条件下采用实施例一中的方法,而在其他条件下采用本实施例中的方法。这里所述的判定条件可以是所有非零系数的个数,或者是已经编码的零的游程和非零系数的游程的组合对的个数,或者是相邻块中±1的个数,或者其他法则。但无论使用何种判定条件,都要预先具体规定。例如预先规定当所有非零系数的个数小于等于6时,采用1个比特表示这些非零系数的绝对值是否全是1,若全是1,则用1表示,否则用0表示;当所有非零系数的个数大于6时,采用实施例一中的值的信息的编码方法。这样,本实施例中,从位置信息的各个二维组合对中的非零系数的游程可以求和得到整个系数串中的非零系数的个数是1+1+1+2=5,小于6,且非零系数的绝对值全是1,因此还是采用一个比特“1”来编码表示非零系数全是±1。
解码方法是编码方法的逆过程。在解码时,本实施例中编码出的比特串依次可以唯一解码出位置信息组合对的个数4,以及4个位置信息的二维组合对(10,1)(5,1)(6,1)(1,2),然后解码出一个比特“1”,得知所有非零系数的绝对值全是1。之后,再解码出各个±1的符号-+++-。根据本实施例中的熵编码方法,便可以将这些信息恢复出与编码前一致的原始系数串0-1100000010000010000000000-1。
本发明的上述实施例只用于说明本发明的内容,但不限制权利要求所保护的内容。本发明所应用的领域并不限于图像或视频编解码领域,还可以推广至其他压缩编码或信号处理的应用中。
权利要求
1.一种图像/视频压缩编码中的熵编码方法,将变换系数按一定规则扫描成一个系数串后,对该系数串进行变长编码,其特征在于从该系数串中提取非零系数的位置信息和非零系数的值的信息,再对该两种信息分别进行变长编码,在对该非零系数的位置信息进行编码时,将连续的零和连续的非零系数组合成零的游程和非零系数的游程的二维组合对,对所述的二维组合对进行变长编码。
2.如权利要求1所述的一种图像/视频压缩编码中的熵编码方法,其特征在于对所述的二维组合对进行变长编码时,根据已经编码过的信息自适应的选择相应的码表进行变长编码。
3.一种图像/视频压缩编码中的熵编码方法,将变换系数按一定规则扫描成一个系数串后,对该系数串进行变长编码,其特征在于从该系数串中提取非零系数的位置信息和非零系数的值的信息,再对该两种信息分别进行变长编码,在对该非零系数的值的信息进行编码时,将连续的1或-1和紧随其后的绝对值大于1的系数的值或绝对值组合成±1的游程和绝对值大于1的系数的值或绝对值的二维组合对,对所述的二维组合对进行变长编码。
4.如权利要求3所述的一种图像/视频压缩编码中的熵编码方法,其特征在于在对所述的二维组合对进行变长编码时,根据已经编码过的信息自适应的选择相应的码表进行变长编码。
5.一种图像/视频压缩编码中的熵编码方法,将变换系数按一定规则扫描成一个系数串后,对该系数串进行变长编码,其特征在于从该系数串中提取非零系数的位置信息和非零系数的值的信息,再对该两种信息分别进行变长编码,在对该非零系数的值的信息进行编码时,用1个比特标明该串非零系数的绝对值是否全是1。
全文摘要
本发明属于信号处理中的图像/视频编解码领域,涉及图像/视频编码中变换系数的熵编码方法。本发明对扫描后的一串系数分别提取非零系数的位置信息和非零系数的值的信息进行变长编码,在对位置信息编码时,将连续的零和连续的非零系数组合成零的游程和非零系数的游程的二维组合对,并对其进行变长编码。在对值的信息编码时,将连续的±1和其后的绝对值大于1的系数的值或绝对值组合成±1的游程和绝对值大于1的系数的值或绝对值的二维组合对,并对其进行变长编码,或者用1个比特来标明该串非零系数的绝对值是否全是1。本发明更深入的利用了位置信息和非零系数的值的信息内的统计特性,从而取得了比已有熵编码方法更为优越的压缩性能。
文档编号H04N7/26GK1665303SQ200510055289
公开日2005年9月7日 申请日期2005年3月18日 优先权日2005年3月18日
发明者何芸, 陈衢清 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1