CN104104949B - 一种方向信息语法元素的熵编解码方法和装置 - Google Patents

一种方向信息语法元素的熵编解码方法和装置 Download PDF

Info

Publication number
CN104104949B
CN104104949B CN201310130271.4A CN201310130271A CN104104949B CN 104104949 B CN104104949 B CN 104104949B CN 201310130271 A CN201310130271 A CN 201310130271A CN 104104949 B CN104104949 B CN 104104949B
Authority
CN
China
Prior art keywords
bin
code
value
directional information
strings
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
Application number
CN201310130271.4A
Other languages
English (en)
Other versions
CN104104949A (zh
Inventor
虞露
吕鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CN201310130271.4A priority Critical patent/CN104104949B/zh
Publication of CN104104949A publication Critical patent/CN104104949A/zh
Application granted granted Critical
Publication of CN104104949B publication Critical patent/CN104104949B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了一种方向信息语法元素的编码方法、解码方法及其对应的装置。编码方法包括将方向信息语法元素表示的方向序号二值化为bin串,以及为所述二值化后的bin串的每一个bin,选择上下文模型并进行熵编码。解码方法包括:获取方向信息的最大数量,并为每一个bin选择上下文模型并进行熵解码得到1个bin串;将所述bin串反二值化,得到所述方向信息语法元素的值。本发明解决了现有技术中由于二值化后的bin概率不集中导致的编解码效率较低的技术问题,达到了提高编解码效率的效果。

Description

一种方向信息语法元素的熵编解码方法和装置
技术领域
本发明涉及一种方向信息的熵编码技术,尤其涉及一种基于上下文的自适应的方向信息语法元素的二进制算术编码方法和装置。
背景技术
以下是对于视频编码技术分层结构的介绍:
采用H.264/AVC以及最新的HEVC等编码标准时,一帧图像可以划分为多个条带(slice),对每个条带分别进行编码和解码。编码条带产生条带码流,条带码流中同时包含了这个条带的一些编码参数,如该条带所引用的参数集序号等。在H.264/AVC中的分层结构中,使用了图像参数集和序列参数集两级参数集来描述视频序列的一些参数。序列参数集可以被图像参数集引用,图像参数集可以被条带引用,通过此机制,条带可以根据其含有的图像参数集序号,找到对应序号的图像参数集,进而找到其对应的图像参数集对应的序列参数集,从图像参数集或者序列参数集中获取参数。例如,条带能够根据其含有的图像参数集序号,在对应序号的图像参数集中获取该条带的帧序号等信息;条带能够根据其对应的图像参数集所含有的序列参数集序号,在对应序号的序列参数集中获取该条带所使用的编码档次(Profile)和编码级别(Level)等参数。在HEVC编码标准中,新加入了视频参数集的概念,视频参数集可以被序列参数集引用,序列参数集可以被图像参数集引用,图像参数集可以被条带引用,通过此机制,条带可以根据其含有的图像参数集序号,逐层向上引用,从图像参数集、序列参数集或者视频参数集中获取参数。
以下是对于熵编码的介绍:
熵编码是用在视频编码的最后一个阶段的一种无损压缩方法,其输入是转变为一系列语法元素的视频数据。这些语法元素可以在解码端被解析出来并进一步重建出视频序列。语法元素大致分为两类:预测方法和预测误差。熵编码的作用是将这些语法元素无损的编码入码流中。
基于上下文的自适应二进制算术编码(CABAC)是一种广泛用于视频编码的熵编码方法,首次出现于H.264/AVC中,现在也在AVS1,AVS2,HEVC等标准中使用,其中包括三个主要功能单元,二值化、上下文建模和算术编码。二值化将语法元素映射为二进制符号,上下文建模为每个bin估计一个概率值。最后算术编码依据估计的概率值将bin压缩为bit。
二值化的方法有很多,常见的有一元码,截断一元码,指数哥伦布码和定长码等二值化方法。二值化指的是将每个非二进制的语法元素值映射成一个bin串,bin串由两种符号构成,一般可以表示成0和1,所有的bin串都不全相同。bin串中的每个bin都会按照其写入码流的顺序拥有一个从0开始的二进制序列序号。反二值化的过程即为一个查表的过程,每个bin串都唯一对应一个语法元素值,通过查二值化的表可以找出要解析的bin串对应的语法元素值。解析bin串的过程是一个寻找一个可以反二值化的bin串的过程,即如果当前已解析的bin串可以反二值化为一个语法元素,解析bin串完毕;否则,继续解析下一个bin,直到bin串可以反二值化为一个语法元素。
下面介绍一下截断一元码:截断一元码是相对简单的一种码字,其主要用于处理在值域有上限的数据。设值域上限为K,即截断值为K,待编码数据为S,其中S,K均为非负整数,且S=0,1,2…K,共有K+1个取值,如果S<K,则S的二进制化结果为S个前缀比特b0,然后以一个b1比特作为结束,其中b0、b1∈{0,1},且b0≠b1;如果S=K,则S的二进制化结果为K个前缀比特b0。这样的截断一元码称为截断值为K的截断一元码。例:对于截断值为5的截断一元码,0至5的编码结果为分别为b1,b0b1,b0b0b1,b0b0b0b1,b0b0b0b0b1,b0b0b0b0b0。
截断值为K的截断一元码的反二值化过程为:若bin串中的前K个bin中包含b1,则反二值化后的值为前K个bin中第一个b1之前的b0的数量,否则反二值化后的值为K。根据此规则,对于截断值为5的截断一元码,b1,b0b1,b0b0b1,b0b0b0b1,b0b0b0b0b1,b0b0b0b0b0分别被反二值化为0至5。截断一元码需要分析一定的bin才能完成反二值化的过程,需要分析的bin的数量至少为1个,至多为K个,当收到的bin的个数少于需要分析的bin的个数的时候,反二值化就无法完成:如对于截断值为5的截断一元码,若只收到了3个bin:b0b0b0,则无法根据反二值化规则确定反二值化的值,此时可以说这样的bin串不可以用截断值为5的截断一元码反二值化。同样是对于截断值为5的截断一元码,若收到的3个bin是:b0b1b0,则只需要分析前两个bin就可以得到反二值化结果1,此时可以说这样的bin串可以用被截断值为5的截断一元码反二值化。
上下文建模是为了提供比较精确的概率估计而建立一系列概率模型。有相似的概率分布的bin往往共用相同的上下文模型。上下文模型中存储两个值,一个是概率状态,一个是最有可能出现的bin的值(MPS),上下文模型的概率状态是依据已编码bin的值进行更新过的,每编完一个bin都会对所用的上下文模型中的概率状态和MPS造成影响。上下文模型的选择主要依据是每个bin的语法元素类型,在bin串中的位置,色度还是亮度,相邻信息等。
算术编码是基于迭代的区间划分的编码方法。解析bin的过程为:初值为0到1的区间根据bin的概率值,被划分为两子区间。编码的bit流提供了一个以二进制小数表示的偏移值,依据该偏移值可以从两个子区间中选择一个,该区间就代表解码出来的bin的值。在解析bin之后,区间的宽度值都被更新为所选的子区间的宽度,然后不断重复这个区间的划分过程。编码bin过程与之相反,区间根据bin的概率值,被划分为两子区间,在编码的bin所对应出的区间内找一个一个以二进制小数表示的偏移值作为编码的bin。在编码完一个bin后,区间的宽度值都被更新为所选的子区间的宽度,然后不断重复这个区间的划分过程。算术编码的概率估计可以用一个估计得到的概率值进行,一般称为上下文编码,也可以假设一个等概率值进行,一般称为旁路编码,旁路编码选择的上下文模型一般称为旁路模型。
以下是对于链码的介绍:
链码是一种描述由轮廓构成的二进制图像的有效手段,其被广泛应用到基于形状的模式识别、形状分析、轮廓及二进制图像的压缩与重建等领域,也可以被应用在视频编码中,用于轮廓表达等。链码的基本思想是识别和存储轮廓上每一个像素到其近邻像素的方向码,常用的链码有:Freeman链码、顶点链码、角度差Freeman链码、基于顶点链码及Huffman编码思想的压缩顶点链码等。
一般而言,链码由起始点和方向信息两部分构成,其中起始点表示该轮廓的起始位置,而方向信息则表示该轮廓自起始位置开始,轮廓中的下一个像素到其上一个像素的方向。该方向可以是绝对方向,也可以是相对方向。以经典的角度差Freeman链码为例,该链码包含八个码值,分别表示八个相对方向,自0-7分别表示0°、45°、-45°、90°、-90°、135°、-135°、180°,利用Freeman链码,可以无损表达任意轮廓信息。
在图像和视频压缩技术中,链码的起始点和方向信息都需要被编码入码流中,这给压缩效率带来了很大的挑战,尤其是方向信息,当轮廓很长的时候,需要很多方向信息才可以表达轮廓。一般而言,相对方向的概率更加集中,自然图像轮廓的相对方向概率分布一般是以0°为中心的对称分布,且相对方向越大,出现的概率越小,更容易压缩。因此,图像和视频压缩技术中较多使用相对方向链码。即使这样,如何更有效的压缩方向信息,依然是一个很值得研究的问题。
利用上文提到的熵编码技术来编码方向信息是一个提高方向信息压缩效率的方法,目前常见方向信息熵编码中,多使用一元码,截断一元码,指数哥伦布码等方法对方向信息进行二值化,进而选择相应的上下文模型进行熵编码。然而,使用以上二值化方法得到的bin串,其中的很多bin都存在着概率不集中的问题,即这个bin取值为0或者为1的概率相差不大,而在熵编码的过程中,bin取值的概率越集中,编码效率越高,因此以上方法都非常不利于发挥熵编码的特点,达到更好的压缩效率。
发明内容
针对现有技术的不足,本发明提出了一种方向信息语法元素的熵编解码方法及其装置。
本发明的主要思想是根据方向信息的特点,为方向信息设计新的二值化方式,使二值化之后的每个bin的概率分布最为集中,进而为其选择合适的上下文模型进行熵编解码。
本发明提出的方法和装置,可以适用于任意N(N=2K+1,K为大于1的正整数)方向信息语法元素的编码和解码,既可以是相对方向,也可以是绝对方向。
本发明的第一目的在于提供一种方向信息语法元素的熵编码方法,其包括以下步骤:
步骤1、将方向信息语法元素表示的方向序号S二值化为bin串,其中S=1,2,3…N,N=2K+1,K为大于1的正整数,且所述bin串具有以下特征:
(a)所述bin串由A和B两部分组成,其中A部分为值为floor(S/2)的截断值为K的截断一元码,若S=1,则B部分不存在,否则,B部分为长度为1的bin串,且若S为偶数,则B部分为c1,若S为奇数,则B部分为c0;
(b)当S>1时,若L≥Imax,则B部分是bin串的第Imax个bin,否则B部分是bin串的第L+1个bin,其中L为A部分的长度且L为正整数,Imax为事先约定好的正整数,且1<Imax≤K+1;
其中,b0、b1∈{0,1},且b0≠b1,c0、c1∈{0,1},且c0≠c1,floor(S/2)表示对S/2进行向下取整;
步骤2、为所述二值化后的bin串的每一个bin,选择上下文模型并进行熵编码。
进一步的,所述步骤2中,为所述bin串中的每一个bin选择上下文模型的方法为:若该bin属于所述A部分,则根据该bin在所述A部分的位置的不同,选择不同的上下文模型进行编码。
进一步的,所述步骤2中,为所述bin串中的每一个bin选择上下文模型的方法为:若该bin属于所述B部分,则使用旁路模型进行编码。
进一步的,表示方向信息的最大数量N的方法包括以下情况之一:
(1)N的值为事先约定好的一个正整数;
(2)在码流中传输N的信息。
本发明的第二目的在于提供一种方向信息语法元素的熵解码方法,其包括以下步骤:
步骤1、获取方向信息的最大数量N,并为每一个bin选择上下文模型并进行熵解码得到1个bin串,N=2K+1,K为大于1的正整数;
步骤2、将所述bin串按照如下规则反二值化,得到所述方向信息语法元素的值S,其中S=1,2,3…N:
(a)若所述bin串的前Imax-1个bin可以用截断值为K的截断一元码反二值化,且反二值化的值为0,则S=1;
(b)若所述bin串的前Imax-1个bin可以用截断值为K的截断一元码反二值化,且反二值化的值不为0,则S=2A+B,其中,A为所述截断一元码反二值化后的值,且A为正整数,若所述bin串的第L+1个bin为c1,则B=0,否则B=1,其中L为所述截断一元码的长度,L为正整数;
(c)若所述bin串的前Imax-1个bin不可以用截断值为K的截断一元码反二值化,则S=2C+D,其中,C为则将所述bin串的第Imax个取出后剩余的bin用截断值为K的截断一元码反二值化后的值,且C为正整数,若所述bin串的第Imax个bin为c1,则D=0,否则D=1。
其中,b0、b1∈{0,1},且b0≠b1,c0、c1∈{0,1},且c0≠c1,Imax为事先约定好的正整数,且1<Imax≤K+1。
进一步的,所述步骤1中,所述为每一个bin选择上下文模型的方法为:若该bin是所述bin串的截断值为K的截断一元码部分,则根据该bin在所述截断一元码bin串的位置的不同,选择不同的上下文模型进行解码。
进一步的,所述步骤1中,所述为每一个bin选择上下文上下文模型的方法为:若该bin不是所述bin串的截断值为K的截断一元码部分,则使用旁路模型进行解码。
进一步的,获取方向信息的最大数量N的方法包括以下情况之一:
(1)N的值为事先约定好的一个正整数;
(2)在码流中获取N的信息,由所述N的信息获取N的值。
本发明的第三目的在于提供一种含有方向信息语法元素的码流,其包括:
(1)方向信息语法元素表示的方向序号为S,其中S=1,2,3…N,N=2K+1,K为大于1的正整数,方向信息语法元素二值化之后的bin串具有以下特征:
(a)所述bin串由A和B两部分组成,其中A部分为值为floor(S/2)的截断值为K的截断一元码,若S=1,则B部分不存在,否则,B部分为长度为1的bin串,且若S为偶数,则B部分为c1,若S为奇数,则B部分为c0;
(b)当S>1时,若L≥Imax,则B部分是bin串的第Imax个bin,否则B部分是bin串的第L+1个bin,其中L为A部分的长度且L为正整数,Imax为事先约定好的正整数,且1<Imax≤K+1;
其中,b0、b1∈{0,1},且b0≠b1,c0、c1∈{0,1},且c0≠c1,floor(S/2)表示对S/2进行向下取整;
(2)所述bin串中的每一个bin均使用经过选择的上下文上下文模型进行熵编码。
进一步的,对于所述的bin串中的每一个bin,若该bin属于所述A部分,则根据该bin在所述A部分的位置的不同,选择不同的上下文模型进行编码。。
进一步的,对于所述的bin串中的每一个bin,若该bin属于所述B部分,则使用旁路模型进行编码。
进一步的,所述码流中还包括方向信息的最大数量N的信息。
本发明的第四目的在于提供一种方向信息语法元素的熵编码装置,其包括:
方向信息语法元素二值化模块:将方向信息语法元素表示的方向序号S二值化为bin串,其中S=1,2,3…N,N=2K+1,且所述bin串具有以下特征:
(a)所述bin串由A和B两部分组成,其中A部分为值为floor(S/2)的截断值为K的截断一元码,若S=1,则B部分不存在,否则,B部分为长度为1的bin串,且若S为偶数,则B部分为c1,若S为奇数,则B部分为c0;
(b)当S>1时,若L≥Imax,则B部分是bin串的第Imax个bin,否则B部分是bin串的第L+1个bin,其中L为A部分的长度且L为正整数,Imax为事先约定好的正整数,且1<Imax≤K+1;
其中,b0、b1∈{0,1},且b0≠b1,c0、c1∈{0,1},且c0≠c1,floor(S/2)表示对S/2进行向下取整;
模型选择模块:对于二值化后的bin串,为每一个bin选择一个上下文上下文模型并进行熵编码;
码流写入模块:将熵编码后的比特串写入码流。
进一步的,所述模型选择模块中为每一个bin选择上下文模型的实施方式为:若该bin属于所述A部分,则根据该bin在所述A部分的位置的不同,选择不同的上下文模型进行编码。
进一步的,所述模型选择模块中为每一个bin选择上下文模型的实施方式为:若该bin属于所述B部分,则使用旁路模型进行编码。
进一步的,所述码流写入模块的功能还包括将方向信息的最大数量N的信息写入码流。
本发明的第五目的在于提供一种方向信息语法元素的熵解码装置,其包括:
方向信息最大数量获取模块:获取方向信息的最大数量N的信息,N=2K+1,K为大于1的正整数;
模型选择模块:根据根据方向信息的最大数量N以及已经解码的bin,为每一个bin选择一个上下文模型进行熵解码,最终形成bin串;
反二值化模块:将所述bin串反二值化,得到所述方向信息语法元素的值S,其中S=1,2,3…N,且所述反二值化的实施方式为:
(a)若所述bin串的前Imax-1个bin可以用截断值为K的截断一元码反二值化,且反二值化的值为0,则S=1;
(b)若所述bin串的前Imax-1个bin可以用截断值为K的截断一元码反二值化,且反二值化的值不为0,则S=2A+B,其中,A为所述截断一元码反二值化后的值,且A为正整数,若所述bin串的第L+1个bin为c1,则B=0,否则B=1,其中L为所述截断一元码的长度,L为正整数;
(c)若所述bin串的前Imax-1个bin不可以用截断值为K的截断一元码反二值化,则S=2C+D,其中,C为则将所述bin串的第Imax个取出后剩余的bin用截断一元码反二值化后的值,且C为正整数,若所述bin串的第Imax个bin为c1,则D=0,否则D=1。
其中,b0、b1∈{0,1},且b0≠b1,c0、c1∈{0,1},且c0≠c1,Imax为事先约定好的正整数,且1<Imax≤K+1。
进一步的,所述模型选择模块中为每一个bin选择上下文模型的实施方式为:若该bin是所述bin串的截断值为K的截断一元码部分,则根据该bin在所述截断一元码bin串的位置的不同,选择不同的上下文模型进行解码。
进一步的,所述模型选择模块中为每一个bin选择上下文模型的实施方式为:若该bin不是所述bin串的截断值为K的截断一元码部分,则使用旁路模型进行解码。
进一步的,所述方向信息最大数量获取模块中,获取方向信息的最大值N的实施方式包括以下之一:
(1)将事先约定好的一个正整数作为N的值;
(2)在码流中获取N的信息,并根据所述N的信息获取方向信息的最大数量N的信息。
本发明的有益效果在于:通过本发明中的二值化方法,可以使得二值化之后的bin串中的bin的概率更加集中,通过为每个bin选择合适的模型,可以达到更好的熵编码效率,进而提高视频编码的效率。
附图说明
图1是本发明一种方向信息语法元素的熵编码装置实施例的结构框图;
图2是本发明另一种方向信息语法元素的熵编码装置实施例的结构框图;
图3是本发明一种方向信息语法元素的熵解码装置实施例的结构框图。
具体实施方式
本发明中所述的第S方向表示所有N个方向的中的第S个方向,其中S为小于等于N的正整数。也即是说,S是方向的标号,而不是方向表示的角度本身。例如在7方向码中,可以用序号1-7分别代表0°、45°、-45°、90°、-90°、135°、-135°,也可以分别代表0°、-135°、135°、-45°、45°、90°、-90°,序号和角度之间可以建立任意对应关系,所述对应关系可以在编解码端事先约定好,也可以在码流中进行传输,如在参数集或者条带头中进行传输。
为了叙述方便,在本发明的叙述中,将bin串中的两种符号分别表示为b0和b1,其中b0、b1∈{0,1},c0、c1∈{0,1},且c0≠c1,且b0≠b1。
下面根据附图和实施例详细描述本发明,本发明的目的和效果将变得更加明显。
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
实施例1
本发明实施例提供了一种优选的N方向信息语法元素的编码方法,N=2K+1,K为大于1的正整数。
本实施例中,N举例为5,且5个方向为相对方向0°、45°、-45°、90°、-90°。根据编解码端事先约定好的方法为5个相对方向指定序号,如可以使第1方向至第5方向分别为0°、45°、-45°、90°、-90°,也可以使用其他方法指定序号。本实施例中,K=2。
本发明实施例提供的5方向信息语法元素的编码方法包括以下步骤:
步骤1、将方向信息语法表示的方向序号S二值化为bin串,其中S=1,2,3…N,且所述bin串具有以下特征:
(a)所述bin串由A和B两部分组成,其中A部分为值为floor(S/2)的截断一元码,若S=1,则B部分不存在,否则,B部分为长度为1的bin串,且若S为偶数,则B部分为c1,若S为奇数,则B部分为c0;
(b)当S>1时,若L≥Imax,则B部分是bin串的第Imax个bin,否则B部分是bin串的第L+1个bin,其中L为A部分的长度且L为正整数,Imax为事先约定好的正整数,且1<Imax≤K+1。若S大于N-2且S为偶数,则二值化后的bin串由以下两部分拼接而成:floor(S/2)个b1,2个b0;
其中,b0、b1∈{0,1},且b0≠b1,c0、c1∈{0,1},且c0≠c1,floor(S/2)表示对S/2进行向下取整;
步骤2、为所述二值化后的bin串的每一个bin,选择上下文模型并进行熵编码。
经过以上步骤,各个方向首先会被二值化为bin串,根据事先约定的Imax的不同,二值化的结果也不同,本实施例中,K=2,根据1<Imax≤K+1的限制,Imax的取值范围为{2,3}。下表为Imax为不同数值的时候,各个方向的二值化结果,在”{}”内的bin为所述B部分,“{}”外的bin为所述A部分。
得到bin串之后,为所述bin串的每一个bin,选择上下文模型并进行熵编码。
优选的,在该实施例步骤2中,为所述bin串中的每一个bin选择上下文模型的方法为:若该bin属于所述A部分,则根据该bin在所述A部分的位置的不同,选择不同的上下文模型进行编码。本实施例中,当Imax=2时,对于第1方向、第2方向、第3方向、第4方向、第5方向二值化后的bin串的第一个bin,也即是A部分的第一个bin,选择同一个上下文模型进行编码,对于第2方向、第3方向、第4方向、第5方向二值化后的bin串的第三个bin,也即是A部分的第二个bin,选择另一个上下文模型进行编码。当Imax=3时,对于第1方向、第2方向、第3方向、第4方向、第5方向二值化后的bin串的第一个bin,也即是A部分的第一个bin,选择同一个上下文模型进行编码,对于第2方向、第3方向、第4方向、第5方向二值化后的bin串的第二个bin,也即是A部分的第二个bin,选择另一个上下文模型进行编码。
具体说来,假设该bin是A部分中的第I个bin,则该bin的物理含义为所述方向信息是否为第2I方向或者2I+1方向,其中I为非负整数,当I=0时,表示是否为第1方向,该bin为b0的概率为图像中第2I方向和第2I+1方向的数量占除了第1方向至第2I-1方向之外的所有方向的数量的比例。当I不同的时候,这个比例也不同,因此根据熵编码的理论,应当选择不同的上下文模型来进行编码,以达到更好的压缩效率。
在本实施例中,无论Imax的值为多少,对于所有方向二值化后的bin串,bin串中A部分的第一个bin均表示该方向是否为第1方向,该bin为b0的概率为图像中第1方向的数量占所有方向的数量的比例;对于第2方向、第3方向、第4方向、第5方向二值化后的bin串,bin串中A部分的第二个bin均表示该方向是否为第2方向或者第3方向,该bin为b0的概率为图像中第2方向和第3方向的数量占除1方向之外的所有方向的数量的比例。
各个上下文模型的初始概率均可由事先统计得到。例如,如果将1-5方向分别设置为相对方向0°、45°、-45°、90°、-90°,则根据对大量图像的统计,可以得到:相对方向0°在所有方向中出现的概率约在45%-80%之间,相对方向45°、-45°在除0°外所有方向中出现的概率均约在80%-99%之间,并且两者几乎相等,相对方向90°、-90°的出现概率几乎相等。根据以上统计数据,可以将bin串中A部分的第一个bin的初始概率设置为45%-80%范围中的某个数值,将bin串中A部分的第二个的bin概率设置为80%-99%之间的某个数值。
优选的,在该实施例步骤2中,为所述bin串中的每一个bin选择上下文模型的方法为:若该bin属于所述B部分,则使用旁路模型进行编码。
具体说来,若该bin属于所述B部分,则有以下两种情况:情况一:该bin不是所述bin串的最后一个bin,假设所述bin串中在该bin之前的b0的个数为P(P为正整数),则该bin的物理含义为所述方向信息是第2P方向至第N方向中的序号为奇数的方向还是序号为偶数的方向,所述bin为c1的概率为图像中第2P方向至第N方向中的序号为奇数的方向的数量占第2P方向至第N方向的数量和的比例。情况二:该bin不是所述bin串的最后一个bin,假设所述bin串中在该bin之前的b0的个数为P(P为正整数),则该bin的物理含义为所述方向信息是第2P方向还是第2P+1方向,所述bin为c1的概率为图像中第2P方向的数量占第2P方向和第2P+1方向的数量和的比例。无论何种情况下,一般而言,这个比例接近50%,则可以使用旁路模型进行编码;在少数情况下,这个比例可能在40%以下或者60%以上,则可以使用单独的上下文模型来进行编码。
在本实施例中,当Imax=2时,对于第2方向、第3方向、第4方向、第5方向二值化后的bin串,bin串的第二个bin表示该方向的是第2方向或者第4方向还是第3方向或者第5方向,该bin为c1的概率为图像中第2方向和第4方向的数量占第2方向至第5方向的数量和的比例。当Imax=3时,对于第2方向、第3方向二值化后的bin串,bin串的最后一个bin表示该方向是第2方向还是第3方向,该bin为b1的概率为图像中第2方向的数量第2方向和第3方向的数量和的比例;对于第4方向、第5方向二值化后的bin串,bin串的最后一个bin表示该方向是第4方向还是第5方向,该bin为b1的概率为图像中第4方向的数量第4方向和第5方向的数量和的比例。
在本实施例中,,如果将1-5方向分别设置为相对方向0°、45°、-45°、90°、-90°,则根据对大量图像的统计,可以得到:相对方向45°、-45°出现的概率几乎相等,相对方向90°、-90°出现的概率几乎相等。根据以上统计数据,可以使用旁路模型对于二值化后的bin串中的属于B部分的bin进行编码。
优选的,本实施例中表示方向信息的最大数量N的方法包括以下之一:
(1)N的值为事先约定好的一个正整数,如事先约定好N=5,则不需要在码流中进行传输;
(2)在码流中传输N的信息,即将N的信息写入码流中,可以将N的信息写入码流中的如下结构中:
(a)视频参数集;
(b)序列参数集;
(c)图像参数集;
(d)条带头;
(e)条带内容。
优选的,可以根据每个方向出现的概率方向,按照概率从高到低的顺序为每个方向指定序号。例如,该实施例中,根据对于图像的大量统计,相对方向0°在所有方向中出现的概率约在45%-80%之间,为出现概率最高的方向,则设置第1方向为0°;相对方向45°、-45°在所有方向中出现的概率均约在10%-30%之间,并且两者几乎相等,因此可以将第2方向设置为45°,将第3方向设置为-45°,也可以将第2方向设置为-45°,将第3方向设置为45°;相对方向90°、-90°在所有方向中出现的概率均约在0.01%-3%之间,并且两者几乎相等,因此可以将第4方向设置为90°,将第5方向设置为-90,也可以将第4方向设置为-90°,将第5方向设置为90°。
值得注意的是,本实施例描述的N方向信息语法元素的编码方法中的二值化过程还可以通过其他等效的方法实现,如可以根据本实施例描述的方法,构造一张方向信息与bin串的对应表,通过查表法实现;再比如可以通过计算机程序实现等。
通过本实施例,方向信息被二值化为bin串,由于bin串中的多数bin的概率分布比较集中,因此熵编码的编码效率得到了提高,进而达到了更好的压缩效率。
实施例2
本发明实施例提供了一种优选的N方向信息语法元素的解码方法,N=2K+1,K为大于1的正整数。
本实施例中,N举例为7,且7个方向为相对方向0°、45°、-45°、90°、-90°、135°、-135°。本实施例中,K=3。
本发明实施例提供的7方向信息语法元素的解码方法包括以下步骤:
步骤1、获取方向信息的最大数量N,并为每一个bin选择上下文模型并进行熵解码得到1个bin串;
步骤2、将所述bin串按照如下规则反二值化,得到所述方向信息语法元素的值S,其中S=1,2,3…N:
(a)若所述bin串的前Imax-1个bin可以用截断一元码反二值化,且反二值化的值为0,则S=1;
(b)若所述bin串的前Imax-1个bin可以用截断一元码反二值化,且反二值化的值不为0,则S=2A+B,其中,A为所述截断一元码反二值化后的值,且A为正整数,若所述bin串的第L+1个bin为c1,则B=0,否则B=1,其中L为所述截断一元码的长度,L为正整数;
(c)若所述bin串的前Imax-1个bin不可以用截断一元码反二值化,则S=2C+D,其中,C为则将所述bin串的第Imax个取出后剩余的bin用截断一元码反二值化后的值,且C为正整数,若所述bin串的第Imax个bin为c1,则D=0,否则D=1。
其中,b0、b1∈{0,1},且b0≠b1,c0、c1∈{0,1},且c0≠c1,Imax为事先约定好的正整数,且1<Imax≤K+1。
经过以上步骤,即可以解析出bin串,进而反二值化所述bin串确定该方向信息语法元素表示的方向。
本实施例中,K=3,Imax的取值范围为{2,3,4}。根据以上描述的步骤,可以在Imax为不同值的时候,对bin串进行反二值化,得到方向序号,反二值化结果如下表所示,在”{}”外的bin为所述截断一元码部分。
下面再通过几个例子对于反二值化过程进行说明,下述例子中,K=3,Imax=3:
例(a):假设收到的码流是b1b0b1b1,由于Imax-1=2,则取其前2个bin,即b1b0,根据背景技术中描述的截断一元码反二值化技术,前2个bin可以用截断值为3的截断一元码反二值化为0,则S=1。值得注意的时,在使用截断值为3的截断一元码反二值化时,只处理第一个bin,即b1就可以得到反二值化结果,此时截断一元码的长度为1,b1后面的bin可能是其他语法元素的bin。
例(b):假设收到的码流是b0b1c1,由于Imax-1=2,则取其前2个bin,即b0b1,根据背景技术中描述的截断一元码反二值化技术,前2个bin可以用截断值为3的截断一元码反二值化为1,即A=1,且截断一元码的长度为L=2。由于L+1=3,此时需要根据码流中的第3个bin,来判断B的值,由于第3个bin的为c1,所以B=0。根据S=2A+B,得到S=2。
例(c):假设收到的码流是b0b0c0b0,由于Imax-1=2,则取其前2个bin,即b0b0,根据背景技术中描述的截断一元码反二值化技术,前2个bin不可以用截断值为3的截断一元码反二值化,由于Imax=3,则需要把bin串中的第3个bin取出,将剩余bin用截断值为3的截断一元码反二值化,即将b0b0b0用截断值为3的截断一元码反二值化,得到反二值化的结果为3,即C=3。由于Imax=3,此时需要根据码流中的第3个bin,来判断B的值,由于第3个bin的为c0,所以D=1。根据S=2C+D,得到S=7。
优选的,在该实施例步骤1中,所述为每一个bin选择上下文模型的方法为:若该bin是所述bin串的截断一元码部分,则根据该bin在所述截断一元码bin串的位置的不同,选择不同的上下文模型进行解码。
具体说来,假设该bin是截断一元码部分中的第I个bin,则该bin的物理含义为所述方向信息是否为第2I方向或者2I+1方向,其中I为非负整数,当I=0时,表示是否为第1方向,该bin为b0的概率为图像中第2I方向和第2I+1方向的数量占除了第1方向至第2I-1方向之外的所有方向的数量的比例。当I不同的时候,这个比例也不同,因此根据熵编码的理论,应当选择不同的上下文模型来进行编码,以达到更好的压缩效率。
优选的,在该实施例步骤1中,所述为每一个bin选择上下文模型的方法为:若该bin不是所述bin串的截断一元码部分,则使用旁路模型进行解码。具体说来,若该bin不是所述bin串的截断一元码部分,则有以下两种情况:情况一:该bin不是所述bin串的最后一个bin,假设所述bin串中在该bin之前的b0的个数为P(P为正整数),则该bin的物理含义为所述方向信息是第2P方向至第N方向中的序号为奇数的方向还是序号为偶数的方向,所述bin为c1的概率为图像中第2P方向至第N方向中的序号为奇数的方向的数量占第2P方向至第N方向的数量和的比例。情况二:该bin不是所述bin串的最后一个bin,假设所述bin串中在该bin之前的b0的个数为P(P为正整数),则该bin的物理含义为所述方向信息是第2P方向还是第2P+1方向,所述bin为c1的概率为图像中第2P方向的数量占第2P方向和第2P+1方向的数量和的比例。无论何种情况下,一般而言,这个比例接近50%,根据编解码端的事先约定,应当使用旁路模型进行编码;在少数情况下,这个比例可能在40%以下或者60%以上,根据编解码端的事先约定,可以使用单独的上下文模型来进行编码。
优选的,本实施例中获取方向信息的最大数量N的方法包括以下之一:
(1)N的值为事先约定好的一个正整数,如事先约定好N=4;
(2)在码流中获取N的信息,可以在码流中的如下结构中获取:
(a)视频参数集;
(b)序列参数集;
(c)图像参数集;
(d)条带头;
(e)条带内容。
优选的,以上步骤中,各个上下文模型的初始概率均可利用上文的统计方法事先统计得到。
值得注意的是,本实施例描述的N方向信息语法元素的编码方法中的反二值化过程还可以通过其他等效的方法实现,如可以根据本实施例描述的方法,构造一张方向信息与bin串的对应表,通过查表法实现;再比如可以通过计算机程序实现等。所有利用本实施例思想得到相同反二值化结果的反二值化过程,均在本专利的保护范围之内。
实施例3
本发明实施例提供了一种优选的含有方向信息语法元素的码流,其中方向信息语法元素表示的方向序号为S,其中S=1,2,3…N,N=2K+1,K为大于1的正整数。
本发明实施例提供的N方向信息语法元素经过二值化后的bin串具有以下特征:
(a)所述bin串由A和B两部分组成,其中A部分为值为floor(S/2)的截断一元码,若S=1,则B部分不存在,否则,B部分为长度为1的bin串,且若S为偶数,则B部分为c1,若S为奇数,则B部分为c0;
(b)当S>1时,若L≥Imax,则B部分是bin串的第Imax个bin,否则B部分是bin串的第L+1个bin,其中L为A部分的长度且L为正整数,Imax为事先约定好的正整数,且1<Imax≤K+1;
其中,b0、b1∈{0,1},且b0≠b1,c0、c1∈{0,1},且c0≠c1,floor(S/2)表示对S/2进行向下取整;
并且,所述bin串中的每一个bin均使用经过选择的上下文模型进行熵编码。
优选的,bin串中的某个bin的所述经过选择的上下文模型为:若该bin不是所述bin串的最后一个bin或者该bin为所述bin串的第一个bin,则根据该bin在所述bin串的位置的不同,选择不同的上下文模型进行编码。
具体说来,假设该bin是A部分中的第I个bin,则该bin的物理含义为所述方向信息是否为第2I方向或者2I+1方向,其中I为非负整数,当I=0时,表示是否为第1方向,该bin为b0的概率为图像中第2I方向和第2I+1方向的数量占除了第1方向至第2I-1方向之外的所有方向的数量的比例。当I不同的时候,这个比例也不同,因此根据熵编码的理论,应当选择不同的上下文模型来进行编码,以达到更好的压缩效率。
优选的,bin串中的某个bin的所述经过选择的上下文模型为:若该bin属于所述B部分,则使用旁路模型进行编码。
具体说来,若该bin属于所述B部分,则有以下两种情况:情况一:该bin不是所述bin串的最后一个bin,假设所述bin串中在该bin之前的b0的个数为P(P为正整数),则该bin的物理含义为所述方向信息是第2P方向至第N方向中的序号为奇数的方向还是序号为偶数的方向,所述bin为c1的概率为图像中第2P方向至第N方向中的序号为奇数的方向的数量占第2P方向至第N方向的数量和的比例。情况二:该bin不是所述bin串的最后一个bin,假设所述bin串中在该bin之前的b0的个数为P(P为正整数),则该bin的物理含义为所述方向信息是第2P方向还是第2P+1方向,所述bin为c1的概率为图像中第2P方向的数量占第2P方向和第2P+1方向的数量和的比例。无论何种情况下,一般而言,这个比例接近50%,则可以使用旁路模型进行编码;在少数情况下,这个比例可能在40%以下或者60%以上,则可以使用单独的上下文模型来进行编码。
优选的,所述码流中还包括方向信息的最大数量N的信息,可以在码流中的如下结构中含有方向信息的最大数量N的信息:
(a)视频参数集;
(b)序列参数集;
(c)图像参数集;
(d)条带头;
(e)条带内容。
优选的,以上步骤中,各个上下文模型的初始概率均可利用上文的统计方法事先统计得到。
实施例4
本发明实施例提供了一种优选的一种N方向信息语法元素的熵编码装置,N=2K+1,K为大于1的正整数。图1为N方向信息语法元素的熵编码装置的一种优选结构示意图。该装置包括三个模块:1)方向信息语法元素二值化模块,作用为将方向信息语法元素二值化为bin串,2)模型选择模块,作用为对于二值化后的bin串,为每一个bin选择一个上下文模型并进行熵编码,以及3)码流写入模块,作用为将熵编码后的比特串写入码流。下面对这三个模块进行具体描述:
1)方向信息语法元素二值化模块,输入为上述方向信息以及方向信息的最大数量N,输出为二值化上述方向信息后产生的bin串,其完成的功能和实施方式与上述N方向信息语法元素的编码方法中将方向信息二值化为bin串的功能和实施方式相同。
2)模型选择模块,输入为上述的长度为M的bin串以及方向信息的最大数量N,输出为熵编码后的比特串,其完成的功能和实施方式与上述N方向信息语法元素的编码方法中为每一个bin选择上下文模型且进行熵编码的功能和实施方式相同。
3)码流写入模块,输入为熵编码后的比特串,输出为码流,其完成的功能为将熵编码后的比特串写入码流。
实施例5
本发明实施例提供了一种优选的一种N方向信息语法元素的熵编码装置,N=2K+1,K为大于1的正整数。图2为N方向信息语法元素的熵编码装置的一种优选结构示意图。该装置包括三个模块:1)方向信息语法元素二值化模块,作用为将方向信息语法元素二值化为bin串,2)模型选择模块,作用为对于二值化后的bin串,为每一个bin选择一个上下文模型并进行熵编码,以及3)码流写入模块,作用为将熵编码后的比特串和方向信息的最大数量N的信息写入码流。下面对这三个模块进行具体描述:
1)方向信息语法元素二值化模块,输入为上述方向信息以及方向信息的最大数量N,输出为二值化上述方向信息后产生的bin串,其完成的功能和实施方式与上述N方向信息语法元素的编码方法中将方向信息二值化为bin串的功能和实施方式相同。
2)模型选择模块,输入为上述的长度为M的bin串以及方向信息的最大数量N,输出为熵编码后的比特串,其完成的功能和实施方式与上述N方向信息语法元素的编码方法中为每一个bin选择上下文模型且进行熵编码的功能和实施方式相同。
3)码流写入模块,输入为熵编码后的比特串以及方向信息的最大数量N的信息,输出为码流,其完成的功能为将熵编码后的比特串以及方向信息的最大数量N的信息写入码流。
实施例6
本发明实施例提供了一种优选的一种N方向信息语法元素的熵解码装置,N=2K+1,K为大于1的正整数。图3为N方向信息语法元素的熵解码装置的一种优选结构示意图。该装置包括两个模块:1)方向信息最大数量获取模块,用于获取方向信息的最大值N,2)模型选择模块,根据方向信息的最大数量N已经解码的bin,为每一个bin选择一个上下文模型进行熵解码,最终形成bin串,以及3)反二值化模块,将所述bin串反二值化,得到所述方向信息语法元素的值。下面对这两个模块进行具体描述。
1)方向信息最大数量获取模块,输入为码流,输出为方向信息最大数量,其完成的功能和实施方式与上述N方向信息语法元素的解码方法中获取方向信息最大数量的功能和实施方式相同。
2)模型选择模块,输入为码流、方向信息最大数量以及已经解码的bin,输出解码得到的bin串,其完成的功能和实施方式与上述N方向信息语法元素的解码方法中为下一个bin选择上下文模型并形成bin串的功能和实施方式相同。
3)反二值化模块,输入为方向信息最大数量以及所述bin串,输出为方向信息语法元素的值,其完成的功能和实施方式与上述N方向信息语法元素的解码方法中将所述bin串反二值化,得到所述方向信息语法元素的值的功能和实施方式相同。
优选的,本实施例中方向信息最大数量获取模块的实施方式包括以下之一:
(1)将事先约定好的一个正整数作为N的值;
(2)在码流中获取N的信息,可以在码流中的如下结构中含有方向信息的最大数量N的信息:
(a)视频参数集
(b)序列参数集
(c)图像参数集
(d)条带头
(e)条带内容。
值得注意的是,上述的N方向信息语法元素编码装置和解码装置可以由多种方式实现,例如:
方法一:以电子计算机为硬件附加与所述N方向信息语法元素编码方法和解码方法功能相同的软件程序来实现。
方法二:以单片机为硬件附加与所述N方向信息语法元素编码方法和解码方法功能相同的软件程序来实现。
方法三:以数字信号处理器为硬件附加与所述N方向信息语法元素编码方法和解码方法功能相同的软件程序来实现。
方法四:设计与所述N方向信息语法元素编码方法和解码方法功能相同的电路来实现。
上述四种实现所述的N方向信息语法元素编码装置和解码装置的方法仅是作为优选的实施方式进行说明,本发明不限于此。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (16)

1.一种方向信息语法元素的熵编码方法,其特征在于,包括以下步骤:
步骤1、将方向信息语法元素表示的方向序号S二值化为bin串,其中S=1,2,3…N,N=2K+1,K为大于1的正整数,且所述bin串具有以下特征:
(a)所述bin串由A和B两部分组成,其中A部分为值为floor(S/2)的截断值为K的截断一元码,若S=1,则B部分不存在,否则,B部分为长度为1的bin串,且若S为偶数,则B部分为c1,若S为奇数,则B部分为c0;
(b)当S>1时,若L≥Imax,则B部分是bin串的第Imax个bin,否则B部分是bin串的第L+1个bin,其中L为A部分的长度且L为正整数,Imax为事先约定好的正整数,且1<Imax≤K+1;
其中,b0、b1∈{0,1},且b0≠b1,c0、c1∈{0,1},且c0≠c1,floor(S/2)表示对S/2进行向下取整;
步骤2、为所述二值化后的bin串的每一个bin,选择上下文模型并进行熵编码。
2.根据权利要求1所述的熵编码方法,其特征在于,所述步骤2中,为所述bin串中的每一个bin选择上下文模型的方法为:若该bin属于所述A部分,则根据该bin在所述A部分的位置的不同,选择不同的上下文模型进行编码。
3.根据权利要求1所述的熵编码方法,其特征在于,所述步骤2中,为所述bin串中的每一个bin选择上下文模型的方法为:若该bin属于所述B部分,则使用旁路模型进行编码。
4.根据权利要求1所述的熵编码方法,其特征在于,表示方向信息的最大数量N的方法包括以下情况之一:
(1)N的值为事先约定好的一个正整数;
(2)在码流中传输N的信息。
5.一种方向信息语法元素的熵解码方法,其特征在于,包括以下步骤:
步骤1、获取方向信息的最大数量N,并为每一个bin选择上下文模型并进行熵解码得到1个bin串,N=2K+1,K为大于1的正整数;
步骤2、将所述bin串按照如下规则反二值化,得到所述方向信息语法元素的值S,其中S=1,2,3…N:
(a)若所述bin串的前Imax-1个bin可以用截断值为K的截断一元码反二值化,且反二值化的值为0,则S=1;
(b)若所述bin串的前Imax-1个bin可以用截断值为K的截断一元码反二值化,且反二值化的值不为0,则S=2A+B,其中,A为所述截断一元码反二值化后的值,且A为正整数,若所述bin串的第L+1个bin为c1,则B=0,否则B=1,其中L为所述截断一元码的长度,L为正整数;
(c)若所述bin串的前Imax-1个bin不可以用截断值为K的截断一元码反二值化,则S=2C+D,其中,C为则将所述bin串的第Imax个取出后剩余的bin用截断值为K的截断一元码反二值化后的值,且C为正整数,若所述bin串的第Imax个bin为c1,则D=0,否则D=1;
其中,b0、b1∈{0,1},且b0≠b1,c0、c1∈{0,1},且c0≠c1,Imax为事先约定好的正整数,且1<Imax≤K+1。
6.根据权利要求5所述的熵解码方法,其特征在于,所述步骤1中,所述为每一个bin选择上下文模型的方法为:若该bin是所述bin串的截断值为K的截断一元码部分,则根据该bin在所述截断一元码bin串的位置的不同,选择不同的上下文模型进行解码。
7.根据权利要求5所述的熵解码方法,其特征在于,所述步骤1中,所述为每一个bin选择上下文模型的方法为:若该bin不是所述bin串的截断值为K的截断一元码部分,则使用旁路模型进行解码。
8.根据权利要求5所述的熵解码方法,其特征在于,获取方向信息的最大数量N的方法包括以下情况之一:
(1)N的值为事先约定好的一个正整数;
(2)在码流中获取N的信息,由所述N的信息获取N的值。
9.一种方向信息语法元素的熵编码装置,其特征在于,它包括:
方向信息语法元素二值化模块:将方向信息语法元素表示的方向序号S二值化为bin串,其中S=1,2,3…N,N=2K+1,且所述bin串具有以下特征:
(a)所述bin串由A和B两部分组成,其中A部分为值为floor(S/2)的截断值为K的截断一元码,若S=1,则B部分不存在,否则,B部分为长度为1的bin串,且若S为偶数,则B部分为c1,若S为奇数,则B部分为c0;
(b)当S>1时,若L≥Imax,则B部分是bin串的第Imax个bin,否则B部分是bin串的第L+1个bin,其中L为A部分的长度且L为正整数,Imax为事先约定好的正整数,且1<Imax≤K+1;
其中,b0、b1∈{0,1},且b0≠b1,c0、c1∈{0,1},且c0≠c1,floor(S/2)表示对S/2进行向下取整;
模型选择模块:对于二值化后的bin串,为每一个bin选择一个上下文模型并进行熵编码;
码流写入模块:将熵编码后的比特串写入码流。
10.根据权利要求9所述的熵编码装置,其特征在于,所述模型选择模块中为每一个bin选择上下文模型的实施方式为:若该bin属于所述A部分,则根据该bin在所述A部分的位置的不同,选择不同的上下文模型进行编码。
11.根据权利要求9所述的熵编码装置,其特征在于,所述模型选择模块中为每一个bin选择上下文模型的实施方式为:若该bin属于所述B部分,则使用旁路模型进行编码。
12.根据权利要求9所述的熵编码装置,其特征在于,所述码流写入模块的功能还包括将方向信息的最大数量N的信息写入码流。
13.一种方向信息语法元素的熵解码装置,其特征在于,它包括:
方向信息最大数量获取模块:获取方向信息的最大数量N的信息,N=2K+1,K为大于1的正整数;
模型选择模块:根据根据方向信息的最大数量N以及已经解码的bin,为每一个bin选择一个上下文模型进行熵解码,最终形成bin串;
反二值化模块:将所述bin串反二值化,得到所述方向信息语法元素的值S,其中S=1,2,3…N,且所述反二值化的实施方式为:
(a)若所述bin串的前Imax-1个bin可以用截断值为K的截断一元码反二值化,且反二值化的值为0,则S=1;
(b)若所述bin串的前Imax-1个bin可以用截断值为K的截断一元码反二值化,且反二值化的值不为0,则S=2A+B,其中,A为所述截断一元码反二值化后的值,且A为正整数,若所述bin串的第L+1个bin为c1,则B=0,否则B=1,其中L为所述截断一元码的长度,L为正整数;
(c)若所述bin串的前Imax-1个bin不可以用截断值为K的截断一元码反二值化,则S=2C+D,其中,C为则将所述bin串的第Imax个取出后剩余的bin用截断一元码反二值化后的值,且C为正整数,若所述bin串的第Imax个bin为c1,则D=0,否则D=1;
其中,b0、b1∈{0,1},且b0≠b1,c0、c1∈{0,1},且c0≠c1,Imax为事先约定好的正整数,且1<Imax≤K+1。
14.根据权利要求13所述的熵解码装置,其特征在于,所述模型选择模块中为每一个bin选择上下文模型的实施方式为:若该bin是所述bin串的截断值为K的截断一元码部分,则根据该bin在所述截断一元码bin串的位置的不同,选择不同的上下文模型进行解码。
15.根据权利要求13所述的熵解码装置,其特征在于,所述模型选择模块中为每一个bin选择上下文模型的实施方式为:若该bin不是所述bin串的截断值为K的截断一元码部分,则使用旁路模型进行解码。
16.根据权利要求13所述的熵解码装置,其特征在于,所述方向信息最大数量获取模块中,获取方向信息的最大值N的实施方式包括以下之一:
(1)将事先约定好的一个正整数作为N的值;
(2)在码流中获取N的信息,并根据所述N的信息获取方向信息的最大数量N的信息。
CN201310130271.4A 2013-04-12 2013-04-12 一种方向信息语法元素的熵编解码方法和装置 Active CN104104949B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310130271.4A CN104104949B (zh) 2013-04-12 2013-04-12 一种方向信息语法元素的熵编解码方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310130271.4A CN104104949B (zh) 2013-04-12 2013-04-12 一种方向信息语法元素的熵编解码方法和装置

Publications (2)

Publication Number Publication Date
CN104104949A CN104104949A (zh) 2014-10-15
CN104104949B true CN104104949B (zh) 2018-01-09

Family

ID=51672708

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310130271.4A Active CN104104949B (zh) 2013-04-12 2013-04-12 一种方向信息语法元素的熵编解码方法和装置

Country Status (1)

Country Link
CN (1) CN104104949B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107580224B (zh) * 2017-08-08 2019-11-22 西安理工大学 一种面向hevc熵编码的自适应扫描方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1949873A (zh) * 2005-10-12 2007-04-18 华为技术有限公司 Cabac解码系统及方法
WO2011128268A1 (en) * 2010-04-13 2011-10-20 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Probability interval partioning encoder and decoder
CN103024380A (zh) * 2012-12-10 2013-04-03 浙江大学 一种数据的熵编码方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120014433A1 (en) * 2010-07-15 2012-01-19 Qualcomm Incorporated Entropy coding of bins across bin groups using variable length codewords

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1949873A (zh) * 2005-10-12 2007-04-18 华为技术有限公司 Cabac解码系统及方法
WO2011128268A1 (en) * 2010-04-13 2011-10-20 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Probability interval partioning encoder and decoder
CN103024380A (zh) * 2012-12-10 2013-04-03 浙江大学 一种数据的熵编码方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
High Throughput CABAC Entropy Coding in HEVC;V. Sze,M. Budagavi;《IEEE Transactions on Circuits and Systems for Video Technology》;20121002;第22卷(第12期);第1778-1791页 *

Also Published As

Publication number Publication date
CN104104949A (zh) 2014-10-15

Similar Documents

Publication Publication Date Title
CN103858433B (zh) 分层熵编码及解码
CN103733622B (zh) 熵编码中的上下文初始化
CN103227917B (zh) 解码方法和装置
CN109996071A (zh) 基于深度学习的可变码率图像编码、解码系统及方法
TW201306495A (zh) 位元流之編碼方法和裝置以及解碼方法和裝置
CN103067022A (zh) 一种整型数据无损压缩方法、解压缩方法及装置
CN116016606B (zh) 一种基于智慧云的污水处理运维数据高效管理系统
CN103974066B (zh) 视频编码方法和设备
US20150249841A1 (en) Method and device for encoding/decoding video bitstream
CN103702133A (zh) 一种图像压缩展示方法及其装置
CN100370828C (zh) 用于将参数值映像到码字索引的自适应方法和系统
CN101878651A (zh) 用于图像和视频压缩的系数族的可变长度编码
CN104378634B (zh) 输入符号二值化的方法以及从码字中产生索引值的方法
CN104104949B (zh) 一种方向信息语法元素的熵编解码方法和装置
CN107018426A (zh) 用于图像和视频编码的二进制化器选择
CN104980749B (zh) 算术编码的解码装置及方法
CN102547260A (zh) 基于上下文自适应的可变长编码的解码方法及系统
Hsieh et al. A concurrent memory-efficient VLC decoder for MPEG applications
CN103428502B (zh) 一种解码方法及解码系统
US10075186B2 (en) Trellis segment separation for low-complexity viterbi decoding of high-rate convolutional codes
CN101878646A (zh) 视频压缩的系数的联合幅度和位置编码
CN101093998B (zh) 解码方法及装置
CN104104950B (zh) 一种模式信息的编解码方法及装置
CN102651795B (zh) 游长缩减的二元序列压缩编码方法
CN114429200A (zh) 规范化哈夫曼编解码方法及神经网络计算芯片

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant