CN102752592B - 视频变换系数的熵编码方法 - Google Patents
视频变换系数的熵编码方法 Download PDFInfo
- Publication number
- CN102752592B CN102752592B CN201210204673.XA CN201210204673A CN102752592B CN 102752592 B CN102752592 B CN 102752592B CN 201210204673 A CN201210204673 A CN 201210204673A CN 102752592 B CN102752592 B CN 102752592B
- Authority
- CN
- China
- Prior art keywords
- units chunk
- level
- run
- amplitude
- coding
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明涉及一种视频变换系数的熵编码方法,其中包括步骤:A、判断待编码宏块是否具有非零系数,如是则转到步骤B,否则停止对待编码宏块进行编码;B、对待编码宏块的单位块进行量化,根据相邻的单位块之间相关性,对单位块中的非零系数的幅值是否全为1进行编码,转到步骤C;C、根据单位块最后一个幅值非1的非零系数的位置,将单位块划分为前段和后段,对单位块的非零系数的总个数、单位块的后段的非零系数的个数、单位块的前段和单位块的后段进行编码。本发明的视频变换系数的熵编码方法可适用于不同大小的单位块,且熵编码性能更高,码率更低,避免了现有技术中的视频变换系数的熵编码方法对单位块大小的适应性不强或编码效果不佳的缺陷。
Description
技术领域
本发明涉及图像/视频编解码领域,更具体地说,涉及一种视频变换系数的熵编码方法。
背景技术
现有的图像/视频编码方法一般是将图像分为小块,对每一块的像素通过预测得到残差,再将该残差进行变换、量化后得到的矩阵,扫描成一维序列,再用游程编码得到run/level序列,最后对run/level序列进行熵编码。所谓run/level序列,run是指一维序列中,一个非零系数前连续0的个数,level是指该非零系数的幅值(即非零系数的正负及绝对值)。熵编码是视频压缩编码的重要技术,熵是随机变量不确定性的度量,也是平均意义上描述该随机变量的最短码长。
变长编码是现有标准中熵编码的主要技术,其原理是对出现概率大的符号用较短的码字表示,对出现概率小的符号用较长的表示,使编码所需的平均码长降至接近它的熵,从而实现压缩。进一步的,通过分析并去除符号间的相关性,减少符号间的信息冗余,能降低符号本身的熵,从而使编码码长进一步的降低。是否能较好去除符号间的相关性,是一个熵编码方法性能好坏的关键。
最新的国际编码标准H264采用的基于上下文的变长编码方法CAVLC(Context-based Adaptive Variable Length Coding),利用run和level之间的相关性,分别单独编码run和level。CAVLC把run/level序列中非零系数的个数和末尾的连续几个1或者-1的个数结合成coeff_token进行基于相邻块信息的变长编码,把除末尾的若干个1以外的非零系数的值以level_prefix和level_suffix进行变长编码,把剩下的0以total_zeros和run_before为基本语法元素进行基于上下文的变长编码。CAVLC充分利用了符号间存在的相关关系:编码coeff_token利用了相邻块间的数对个数相关关系进行编码;通过前后level的相关关系编码level值;以total_zeros和run_before的方式,利用run之间的相关关系进行编码;因为末尾level的幅值基本都是1,用编码末尾个数的方式,节省了末尾level的幅值的编码。因此CAVLC较好的去除了符号间的冗余。
基于国际标准的发展,中国也开发了其自有的编码标准AVS(Audio Videocoding Standard,音视频编码标准),力图实现码率和复杂度的兼顾。AVS采用2DVLC(2D-Variable Length Coding),联合编码run和level的信息。由于联合编码可以去除联合元素间的冗余信息,这样AVS也在一定程度上降低了码率。同时,AVS根据前一个数对level的幅值切换码表,编码后一个数对,从而利用了相邻数对的level幅值之间的相关关系,力图实现码率和复杂度的兼顾。
上面阐述了两种常用的变长编码方法CAVLC和AVS,其中CAVLC较好的利用了各个元素之间的相关性,但其对run和level单独编码,理论上较之于联合编码,编码效率降低。而且,CAVLC的末尾幅度为1的系数的个数最多只能三个,专门适用于4*4的变换单位块,如果对于非4*4的变换单位块(如8*8变换单位块或16*16变换单位块),其末尾幅度为1的系数很可能大大超过3个,CAVLC就无法得到很好的结果。也就是说,CAVLC的编码方式对单位块大小的适应性不强。当前,变换技术的趋势是自适应采用多种不同的尺寸,在这种情况下,CAVLC就难以满足需要。
而AVS恰恰相反,虽然用run和level的联合编码,但对数对之间的相关性的利用还很不足。对前后数对的run之间的相关性,对末尾level往往出现连续的幅值1,甚至序列的level幅值全为1这一明显的现象没有利用,对相邻单位块间的相关性也没有利用,从而导致了编码效果不佳。
故,有必要提供一种视频变换系数的熵编码方法,以解决现有技术所存在的问题。
发明内容
本发明要解决的技术问题在于,针对现有技术中的视频变换系数的熵编码方法对单位块大小的适应性不强或编码效果不佳的缺陷,提供一种可适用于不同大小的单位块,且熵编码性能更高,码率更低的视频变换系数的熵编码方法。
本发明解决其技术问题所采用的技术方案是:本发明涉及一种视频变换系数的熵编码方法,包括步骤:A、判断待编码宏块是否具有非零系数,如是则转到步骤B,否则停止对所述待编码宏块进行编码;B、对所述待编码宏块的单位块进行量化,根据相邻的所述单位块之间相关性,对所述单位块中的非零系数的幅值是否全为1进行编码,转到步骤C;C、根据所述单位块最后一个幅值非1的非零系数的位置,将所述单位块划分为前段和后段,对所述单位块的非零系数的总个数、所述单位块的后段的非零系数的个数、所述单位块的前段和所述单位块的后段进行编码,其中对所述单位块的前段进行前段编码,对所述单位块的后段进行后段编码;其中所述单位块包括亮度块和色度块。
在本发明所述的视频变换系数的熵编码方法中,所述步骤B中的根据相邻的所述单位块之间相关性,对所述单位块中非零系数的幅值是否全为1进行编码具体为:通过每个所述单位块中非零系数幅值是否全为1的判定值,与其前面的所述单位块中非零系数幅值是否全为1的判定值进行比较,对所述单位块中的非零系数是否全为1进行编码。
在本发明所述的视频变换系数的熵编码方法中,采用块间差值对所述单位块的非零系数的总个数和所述单位块的后段的非零系数的个数进行编码。
在本发明所述的视频变换系数的熵编码方法中,在所述步骤C中,当所述单位块的所有非零系数的幅值均不为1时,对所述单位块的非零系数的总个数、所述单位块的后段的非零系数的个数和所述单位块进行编码,其中对所述单位块进行前段编码。
在本发明所述的视频变换系数的熵编码方法中,在所述步骤C中,当所述单位块的所有非零系数的幅值均为1时,对所述单位块的非零系数的总个数和所述单位块进行编码,其中对所述单位块进行后段编码。
在本发明所述的视频变换系数的熵编码方法中,所述前段编码包括步骤:D、对待编码部分的单位块的run/level序列中run的幅值信息、level的符号信息以及level的幅值信息进行编码。
在本发明所述的视频变换系数的熵编码方法中,所述步骤D具体为:将run的幅值信息、level的符号信息以及level的幅值信息映射为一个十进制码字,再用指数哥伦布编码将所述十进制码字映射为二进制码流。
在本发明所述的视频变换系数的熵编码方法中,在所述待编码部分的单位块的run/level序列中最后一个level的幅值减一后,对待编码部分的单位块的run/level序列中run的幅值信息、level的符号信息以及level的幅值信息进行编码。
在本发明所述的视频变换系数的熵编码方法中,如所述待编码部分的单位块的run/level序列中的level的幅值均大于一,则在所述待编码部分的单位块的run/level序列中所有的level的幅值减一,同时创建并编码一指示元素,然后对待编码部分的单位块的run/level序列中run的幅值信息、level的符号信息以及level的幅值信息进行编码。
在本发明所述的视频变换系数的熵编码方法中,所述步骤D具体为:按照所述待编码部分的单位块的非零系数的总个数,确定码表系列;根据所述码表系列,对待编码部分的单位块的run/level序列中run的幅值信息、level的符号信息以及level的幅值信息进行编码。
在本发明所述的视频变换系数的熵编码方法中,如所述run/level序列中level的幅值信息超出了编码表的范围,则对所述run/level序列中的相应数对进行以下处理:
escape_code=code_max+run*2+(level<0?1:0);
level_diff=abs(level)-((run>maxrun)?1:maxlevel);
其中code_max为所述编码表中的最大码字加一,maxrun为所述编码表中run的最大可编码值,maxlevel为所述编码表中level的最大可编码值,再用指数哥伦布编码将escape_code和level_diff映射为二进制码流。
在本发明所述的视频变换系数的熵编码方法中,所述后段编码包括步骤:E、对待编码部分的单位块的run/level序列中run的幅值信息以及level的符号信息进行编码。
在本发明所述的视频变换系数的熵编码方法中,所述步骤E具体为:将run的幅值信息以及level的符号信息映射为一个十进制码字,再用指数哥伦布编码或霍夫曼编码将所述十进制码字映射为二进制码流。
在本发明所述的视频变换系数的熵编码方法中,所述步骤E具体为:按照所述待编码部分的单位块的非零系数的总个数,确定码表系列;根据所述码表系列,对待编码部分的单位块的run/level序列中run的幅值信息以及level的符号信息进行编码。
实施本发明的视频变换系数的熵编码方法,具有以下有益效果:可适用于不同大小的单位块,且熵编码性能更高,码率更低,避免了现有技术中的视频变换系数的熵编码方法对单位块大小的适应性不强或编码效果不佳的缺陷。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1为本发明的视频变换系数的熵编码方法的优选实施例的流程图;
图2为本发明的视频变换系数的熵编码方法的优选实施例的具体编码流程图;
图3为本发明的视频变换系数的熵编码方法的优选实施例的具体解码流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
请参照图1,图1为本发明的视频变换系数的熵编码方法的优选实施例的流程图,该视频变换系数的熵编码方法包括:
步骤101,判断待编码宏块是否具有非零系数,如是则转到步骤103,否则转到步骤102;
步骤102,停止对该待编码宏块进行编码;
步骤103,对待编码宏块的单位块进行量化,根据相邻的所述单位块之间相关性,对单位块中的非零系数的幅值是否全为1进行编码,随后转到步骤104;
步骤104,根据单位块最后一个幅值非1的非零系数的位置,将单位块划分为前段和后段,对单位块的非零系数的总个数、单位块的后段的非零系数的个数、单位块的前段和单位块的后段进行编码,其中对单位块的前段进行前段编码,对单位块的后段进行后段编码;
该视频变换系数的熵编码方法结束于步骤104。
图2为本发明的视频变换系数的熵编码方法的优选实施例的具体编码流程图,下面参照图2详细说明本发明的视频变换系数的熵编码方法的编码流程。
在步骤101中,根据语义元素cbp表示该待编码宏块是否具有非零系数,如果该待编码宏块具有非零系数,则转到步骤103,否则转到步骤102。
在步骤102中,根据上述的语义元素cbp确定该待编码宏块没有非零系数,停止对该待编码宏块进行编码。
随后对判断具有非零系数的待编码宏块进行编码,在步骤103中,对待编码宏块的单位块进行量化,根据相邻的单位块之间相关性,对单位块中的非零系数幅值全为1进行编码,具体为:继续编码语义元素AllOnes,表示待编码宏块的单位块量化后的非零系数的幅值是否全为1,不失一般性,假定待编码宏块具有六个单位块(四个亮度块和两个色度块),可按表1所示的表格进行编码:
表1
AllOnes表示六个单位块量化后的非零系数的幅值是否全为1,这里不使用单独的编码表示该单位块的非零系数幅值是否为1,而是根据相邻的单位块之间相关性,采用块间预测的方式进行编码,即编码该单位块的AllOnes的值与前面的单位块的AllOnes的值是否相同,由于六个单位块的AllOnes值往往一样,通过编码哪几个单位块的AllOnes值与前面的单位块不同,使六个单位块联合编码,进一步节省编码量。
在步骤104中,根据单位块最后一个幅值非1的非零系数的位置可以将单位块划分为三种类型进行分别的编码。
一、当单位块的所有非零系数的幅值均为1时,单位块将没有前段,这时只需要对单位块的非零系数的总个数和单位块进行编码,其中对单位块进行后段编码。
二、当单位块的所有非零系数的幅值均不为1时,单位块将没有后段,这时只需要对单位块的非零系数的总个数、单位块的后段的非零系数的个数(其值为零)和单位块进行编码,其中对单位块进行前段编码。
三、其他情况下,将单位块划分为前段和后段,对单位块的非零系数的总个数、单位块的后段的非零系数的个数、单位块的前段和单位块的后段进行编码,其中对单位块的前段进行前段编码,对单位块的后段进行后段编码。
下面具体论述如何对单位块的非零系数的总个数、单位块的后段的非零系数的个数、单位块的前段(前段编码)和单位块的后段(后段编码)进行编码的。
其中采用块间差值对单位块的非零系数的总个数和单位块的后段的非零系数的个数进行编码,具体可为:块间差值=(左单位块的非零系数的总个数和上单位块的非零系数的总个数的均值)-本单位块的非零系数的总个数。单位块的后段的非零系数的个数可使用该块间差值作为修正的方式进行编码,如编码值=[(左单位块的后段的非零系数的个数和上单位块的后段的非零系数的个数的均值)+块间差值/3]-本单位块的后段的非零系数的个数。
单位块的前段编码采用2DVLC的编码方式对待编码部分的单位块的run/level序列中run的幅值信息、level的符号信息以及level的幅值信息进行编码。具体为按run/level序列中的数对顺序,从后往前挨个编码。采用的编码方法为指数哥伦布编码的方法,先将run的幅值信息、level的符号信息以及level的幅值信息映射为一个十进制码字,再用指数哥伦布编码将该十进制码字映射为二进制码流。
由于单位块的前段的最后一个level的幅值一定大于1,所以将待编码部分的单位块的run/level序列中最后一个level的幅值减一后,对待编码部分的单位块的run/level序列中run的幅值信息、level的符号信息以及level的幅值信息再进行编码,以节省码率。
此外,如待编码部分的单位块前段的run/level序列中的level的幅值均大于一,则可将待编码部分的单位块的run/level序列中所有的level的幅值均减一,创建并编码一指示元素allBiggerThanOne进行指示,然后对待编码部分的单位块的run/level序列中run的幅值信息、level的符号信息以及level的幅值信息进行编码,以进一步节省码率。
在编码时,针对帧内编码和帧间编码采用不同的码表系列,按照待编码部分的单位块的非零系数的总个数,确定不同的码表系列,如非零系数的个数大于10和非零系数的个数小于10的单位块采用不同的码表系列。每个码表系列都具有多个编码表,从码表系列的第一个编码表VLC0码表开始编码第一个数对,然后自动切换编码表编码下一个数对。切换编码表的方式可为:根据前一个数对的level值的信息、前一个数对的在扫描后的位置信息(如该数对在扫描后的一维序列中的绝对位置,或者该数对是第几个非零系数),二者的联合信息作为编码表切换的依据,自动切换编码表。
如run/level序列中level的幅值信息超出了编码表的范围,则对run/level序列中的相应数对进行以下处理:
escape_code=code_max+run*2+(level<0?1:0);
level_diff=abs(level)-((run>maxrun)?1:maxlevel);
其中code_max为编码表中的最大码字加一,maxrun为编码表中run的最大可编码值,maxlevel为编码表中level的最大可编码值,
如前段的run/level序列的数对为(6,0)、(4,1)、(2,9),根据单位块的非零系数的总个数选择相应的编码表(如表2),将最后一个数对的level的幅值减一,变成(1,9),用码表系列的第一个编码表VLC0码表开始编码(1,9),再根据上述编码表切换的依据切换编码表,依次编码(4,1)和(6,0)。
表2
编码表的形式为2DVLC的形式,即一个数对对应一个码字,再将码字以指数哥伦布编码的方式映射为二进制码流。如:对于(6,0),已经超出了编码表的范围,则先编码escape_code=code_max+run*2+(level<0?1:0)=22+0+0=22;再编码level的信息,level_diff=abs(level)-((run>maxrun)?1:maxlevel)=6-((0>15)?1:4)=6-4=2。再用指数哥伦布编码将22(escape_code)和2(level_diff)分别映射为二进制码流,完成(6,0)的编码。
单位块的后段编码采用2DVLC的编码方式对待编码部分的单位块的run/level序列中run的幅值信息以及level的符号信息进行编码。因为单位块的后段中level的幅值全为1,故不必对level的幅值信息进行编码,从而节省了码率。具体为按run/level序列中的数对顺序,从前往后挨个编码。先将run的幅值信息以及level的符号信息映射为一个十进制码字,再用指数哥伦布编码或霍夫曼编码等变长编码方法将十进制码字映射为二进制码流。例如单位块的后段的run/level序列中的数对为(1,5)、(-1,3)、(1,1)、(-1,0)、(-1,4),则采用2DVLC的编码方式分别编码(+,5)、(-,3)、(+,1)、(-,0)、(-,4)。
在编码时,按照待编码部分的单位块的非零系数的总个数,确定不同的码表系列,如非零系数的个数大于10和非零系数的个数小于10的单位块采用不同的码表系列。每个码表系列都具有多个编码表,在依次编码每一个数对时,从码表系列的第一个编码表VLC0码表开始编码第一个数对,然后随着编码的进行,根据前一个非零系数在扫描后的一维序列中的绝对位置,自动切换编码表。例如,待编码部分的单位块的非零系数的总个数为11,首先按照非零系数的个数的大小选择码表系列,在对每个数对编码时,针对前一个数对的绝对位置在小于32的位置,32和48之间的位置,大于48的位置,分为三个编码表,进行编码表切换。具体的编码表可如表3所示。
表3
这样,即完成了本发明的视频变换系数的熵编码的整个过程。
图3为本发明的视频变换系数的熵编码方法的优选实施例的具体解码流程图,下面参照图3详细说明本发明的视频变换系数的熵编码方法的解码流程。
解码方法是编码方法的逆过程,在解码时,先解码已编码宏块的残差模式的cbp和AllOnes。如没有非零系数,则不需要做进一步的解码。
如非零系数的幅值全为1(对应编码中的第一种类型),则进一步解码单位块的非零系数的总个数,再用后段编码的编码表解码数对,当单位块的非零系数的总个数解码完成,该单位块的解码结束。
如非零系数的幅值均不为1(对应编码中的第二种类型),则进一步解码单位块的非零系数的总个数、后段非零系数的个数(为0),再用前段编码的编码表解码数对,当单位块的非零系数的总个数解码完成,该单位块的解码结束。
如非零系数的幅值不全为1(对应编码中的第三种类型),则进一步解码单位块的非零系数的总个数和单位块的后段的非零系数的个数,再用前段编码的编码表解码前段数对,后段编码的编码表解码后段数对,当单位块的非零系数的总个数解码完成,该单位块的解码结束。
对单位块的前段解码时,根据待编码部分的单位块的非零系数的总个数,确定不同的码表系列进行解码。单位块的前段第一个数使用第一个编码表VLC0码表编码,因此使用前段编码的第一个编码表VLC0码表解码第一个数对,然后将该数对的level的幅值加一作为解码值(如编码时对level的幅值进行了减一的操作)。然后根据上述编码表切换信息(OnesBefore)切换编码表,解码下一个数对,直至单位块的前段的所有码字解码完成。
对单位块的后段解码时,根据待编码部分的单位块的非零系数的总个数,确定不同的码表系列进行解码。根据单位块的前段的最后一个非零系数的绝对位置,选择相应的编码表解码单位块的后段的第一个数对,然后根据前一个非零系数的绝对位置,切换编码表依次解码单位块的后段的码字,直至单位块的所有码字解码完成。
本发明的视频变换系数的熵编码方法具有以下特点:
一、熵编码的时候,根据数对run/level序列中level幅值是否为1,分开前段和后段,并采用不同的方式编码。
二、用一个语义元素表示宏块的6个单位块的非零系数是否全为1,以及哪些单位块的非零系数为1。采用块间相关的方式编码该信息,编码本单位块的非零系数信息是否与相邻单位块的非零系数信息相同,节约了码率。
三、单位块的非零系数的总个数和单位块的后段的非零系数的个数,采用块间预测的方法编码。编码单位块的后段的非零系数的个数的时候,不但用块间预测,还用块间差值修正预测,从而最大限度去除相关,节约了码率。
四、对于单位块的后段的编码,考虑非零个数的多少以及前一个非零系数的绝对位置等综合因素进行编码表的切换。
五、对于单位块的前段的编码,考虑非零个数的多少、前一个非零系数的绝对位置以及前一个非零系数幅值等综合因素进行编码表的切换。
综上所述,本发明的视频变换系数的熵编码方法在2DVLC和CAVLC的编码方式的基础上,针对性的将单位块量化后得到的run/level序列分为前段和后段,前段和后段采用不同的编码方法,很好的利用了后段的非零系数的幅值为1的特点,提高了效率。后段的非零系数可以是任意个,从而对变换尺寸有更好的适应性,不会局限于4*4的变换矩阵。同时本发明的视频变换系数的熵编码方法既有2DVLC的优点,又充分利用了run/level序列中数对的相关关系,提高了码率。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (11)
1.一种视频变换系数的熵编码方法,其特征在于,包括步骤:
A、判断待编码宏块是否具有非零系数,如是则转到步骤B,否则停止对所述待编码宏块进行编码;
B、对所述待编码宏块的单位块进行量化,根据相邻的所述单位块之间相关性,对所述单位块中的非零系数的幅值是否全为1进行编码,转到步骤C;
C、根据所述单位块最后一个幅值非1的非零系数的位置,将所述单位块划分为前段和后段,对所述单位块的非零系数的总个数、所述单位块的后段的非零系数的个数、所述单位块的前段和所述单位块的后段进行编码,其中对所述单位块的前段进行前段编码,对所述单位块的后段进行后段编码;
其中所述单位块包括亮度块和色度块;
所述步骤B中的根据相邻的所述单位块之间相关性,对所述单位块中非零系数的幅值是否全为1进行编码,具体为:
通过每个所述单位块中非零系数幅值是否全为1的判定值,与其前面的所述单位块中非零系数幅值是否全为1的判定值进行比较,对所述单位块中的非零系数幅值是否全为1进行编码;
所述前段编码包括步骤:
D、对待编码部分的单位块的run/level序列中run的幅值信息、level的符号信息以及level的幅值信息进行编码;
所述后段编码包括步骤:
E、对待编码部分的单位块的run/level序列中run的幅值信息以及level的符号信息进行编码。
2.根据权利要求1所述的视频变换系数的熵编码方法,其特征在于,采用块间差值对所述单位块的非零系数的总个数和所述单位块的后段的非零系数的个数进行编码。
3.根据权利要求1所述的视频变换系数的熵编码方法,其特征在于,在所述步骤C中,当所述单位块的所有非零系数的幅值均不为1时,对所述单位块的非零系数的总个数、所述单位块的后段的非零系数的个数和所述单位块进行编码,其中对所述单位块进行前段编码。
4.根据权利要求1所述的视频变换系数的熵编码方法,其特征在于,在所述步骤C中,当所述单位块的所有非零系数的幅值均为1时,对所述单位块的非零系数的总个数和所述单位块进行编码,其中对所述单位块进行后段编码。
5.根据权利要求1所述的视频变换系数的熵编码方法,其特征在于,所述步骤D具体为:将run的幅值信息、level的符号信息以及level的幅值信息映射为一个十进制码字,再用指数哥伦布编码将所述十进制码字映射为二进制码流。
6.根据权利要求1所述的视频变换系数的熵编码方法,其特征在于,所述步骤D包括:在所述待编码部分的单位块的run/level序列中最后一个level的幅值减一后,对待编码部分的单位块的run/level序列中run的幅值信息、level的符号信息以及level的幅值信息进行编码。
7.根据权利要求1所述的视频变换系数的熵编码方法,其特征在于,所述步骤D包括:如所述待编码部分的单位块的run/level序列中的level的幅值均大于一,则在所述待编码部分的单位块的run/level序列中所有的level的幅值减一,同时创建并编码一指示元素,然后对待编码部分的单位块的run/level序列中run的幅值信息、level的符号信息以及level的幅值信息进行编码。
8.根据权利要求1所述的视频变换系数的熵编码方法,其特征在于,所述步骤D具体为:按照所述待编码部分的单位块的非零系数的总个数,确定码表系列;根据所述码表系列,对待编码部分的单位块的run/level序列中run的幅值信息、level的符号信息以及level的幅值信息进行编码。
9.根据权利要求8所述的视频变换系数的熵编码方法,其特征在于,所述码表系列具有多个编码表,如所述run/level序列中level的幅值信息超出了编码表的范围,则对所述run/level序列中的相应数对进行以下处理:
escape_code=code_max+run*2+(level<0?1:0);
level_diff=abs(level)-((run>maxrun)?1:maxlevel);
其中code_max为所述编码表中的最大码字加一,maxrun为所述编码表中run的最大可编码值,maxlevel为所述编码表中level的最大可编码值,
再用指数哥伦布编码将escape_code和level_diff映射为二进制码流。
10.根据权利要求1所述的视频变换系数的熵编码方法,其特征在于,所述步骤E具体为:将run的幅值信息以及level的符号信息映射为一个十进制码字,再用指数哥伦布编码或霍夫曼编码将所述十进制码字映射为二进制码流。
11.根据权利要求1所述的视频变换系数的熵编码方法,其特征在于,所述步骤E具体为:按照所述待编码部分的单位块的非零系数的总个数,确定码表系列;根据所述码表系列,对待编码部分的单位块的run/level序列中run的幅值信息以及level的符号信息进行编码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210204673.XA CN102752592B (zh) | 2012-06-20 | 2012-06-20 | 视频变换系数的熵编码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210204673.XA CN102752592B (zh) | 2012-06-20 | 2012-06-20 | 视频变换系数的熵编码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102752592A CN102752592A (zh) | 2012-10-24 |
CN102752592B true CN102752592B (zh) | 2015-02-11 |
Family
ID=47032468
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210204673.XA Active CN102752592B (zh) | 2012-06-20 | 2012-06-20 | 视频变换系数的熵编码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102752592B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017041271A1 (en) * | 2015-09-10 | 2017-03-16 | Mediatek Singapore Pte. Ltd. | Efficient context modeling for coding a block of data |
CN105898300B (zh) * | 2016-05-06 | 2019-03-26 | 西安电子科技大学 | 一种基于恢复变换系数的改进变换系数符号位隐藏方法 |
CN109788284B (zh) * | 2019-02-27 | 2020-07-28 | 北京大学深圳研究生院 | 一种量化块的解码方法、装置及电子设备 |
CN112449184B (zh) * | 2019-08-28 | 2022-01-25 | 腾讯科技(深圳)有限公司 | 变换系数优化方法、编解码方法、装置、介质及电子设备 |
CN112449201B (zh) * | 2019-08-30 | 2021-12-17 | 腾讯科技(深圳)有限公司 | 解码方法、编码方法、相应的装置、电子设备及存储介质 |
KR20240027581A (ko) * | 2021-06-29 | 2024-03-04 | 광동 오포 모바일 텔레커뮤니케이션즈 코포레이션 리미티드 | 인코딩 및 디코딩 방법, 비트 스트림, 인코더, 디코더 및 컴퓨터 저장 매체 |
CN116684003B (zh) * | 2023-07-27 | 2023-10-24 | 南京中科齐信科技有限公司 | 一种基于量子通信的铁路沿线空地综合监测方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1665303A (zh) * | 2005-03-18 | 2005-09-07 | 清华大学 | 图像/视频编码中变换系数的熵编码方法 |
CN101198054A (zh) * | 2006-12-05 | 2008-06-11 | 华为技术有限公司 | 变长编解码方法及其编解码器 |
CN101243611A (zh) * | 2005-08-12 | 2008-08-13 | 微软公司 | 变换块的高效编码和解码 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7620258B2 (en) * | 2004-08-18 | 2009-11-17 | Cisco Technology, Inc. | Extended amplitude coding for clustered transform coefficients |
US8204327B2 (en) * | 2007-10-01 | 2012-06-19 | Cisco Technology, Inc. | Context adaptive hybrid variable length coding |
-
2012
- 2012-06-20 CN CN201210204673.XA patent/CN102752592B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1665303A (zh) * | 2005-03-18 | 2005-09-07 | 清华大学 | 图像/视频编码中变换系数的熵编码方法 |
CN101243611A (zh) * | 2005-08-12 | 2008-08-13 | 微软公司 | 变换块的高效编码和解码 |
CN101198054A (zh) * | 2006-12-05 | 2008-06-11 | 华为技术有限公司 | 变长编解码方法及其编解码器 |
Also Published As
Publication number | Publication date |
---|---|
CN102752592A (zh) | 2012-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102752592B (zh) | 视频变换系数的熵编码方法 | |
JP7181126B2 (ja) | 改善されたエントロピー符号化および復号を行う方法および装置 | |
US11665348B2 (en) | Binarization of dQP using separate absolute value and sign (SAVS) in CABAC | |
CN1214649C (zh) | 用于视频预测残差系数编码的熵编码方法 | |
KR101571618B1 (ko) | 마지막 유효 계수의 위치를 코딩 및 디코딩하는 방법 및 장치 | |
WO2013000324A1 (en) | Method and apparatus of intra mode coding | |
TWI751633B (zh) | 在視訊編解碼系統中對與預測殘差相對應的變換係數進行編/解碼的方法及裝置 | |
TW202131681A (zh) | 脈絡適應性二進制算術寫碼用參數化體系決定技術 | |
WO2012097250A1 (en) | Method and apparatus for arithmetic coding and termination | |
WO2024022356A1 (zh) | 一种编解码方法、装置及其设备 | |
WO2012159295A1 (zh) | 一种熵解码方法、装置 | |
CN1327712C (zh) | 一种视频宏块模式编码方法 | |
US7203373B2 (en) | Image and video coding with redundant run-length-level-last codewords removed | |
US11245902B2 (en) | Binarization of DQP using separate absolute value and sign (SAVS) in CABAC | |
WO2022193386A1 (zh) | 系数编解码方法、编解码设备、终端及存储介质 | |
WO2023272533A1 (zh) | 编解码方法、编码器、解码器以及存储介质 | |
Dai et al. | Adaptive Binarization for Arithmetic Coding in Video Compression | |
KR20090113208A (ko) | 정수들의 시퀀스를 인코딩하기 위한 방법, 인코딩된 정수 시퀀스를 운반하는 저장 디바이스 및 신호, 그리고 정수들의 시퀀스를 디코딩하기 위한 방법 | |
Wang et al. | High efficient context-based variable length coding with parallel orientation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220523 Address after: 510530 No. 10, Nanxiang 2nd Road, Science City, Luogang District, Guangzhou, Guangdong Patentee after: Guangdong Guangsheng research and Development Institute Co.,Ltd. Address before: 518057 6th floor, software building, No. 9, Gaoxin Zhongyi Road, high tech Zone, Nanshan District, Shenzhen, Guangdong Province Patentee before: SHENZHEN RISING SOURCE TECHNOLOGY Co.,Ltd. |
|
TR01 | Transfer of patent right |