CN101175210B - 用于视频预测残差系数解码的熵解码方法及熵解码装置 - Google Patents

用于视频预测残差系数解码的熵解码方法及熵解码装置 Download PDF

Info

Publication number
CN101175210B
CN101175210B CN 200610150390 CN200610150390A CN101175210B CN 101175210 B CN101175210 B CN 101175210B CN 200610150390 CN200610150390 CN 200610150390 CN 200610150390 A CN200610150390 A CN 200610150390A CN 101175210 B CN101175210 B CN 101175210B
Authority
CN
China
Prior art keywords
current
code table
code
type
exp
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
CN 200610150390
Other languages
English (en)
Other versions
CN101175210A (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.)
Institute of Computing Technology of CAS
Original Assignee
Institute of Computing Technology of CAS
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 Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN 200610150390 priority Critical patent/CN101175210B/zh
Publication of CN101175210A publication Critical patent/CN101175210A/zh
Application granted granted Critical
Publication of CN101175210B publication Critical patent/CN101175210B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明公开了一种用于视频预测残差系数解码的熵解码方法,解码端读取当前宏块的辅助信息,确定宏块类型和图像块类型,依次对当前宏块的全部非零图像块执行:根据宏块类型以及当前图像块类型选择用于解码当前图像块的码表类型,当前图像块的码表类型对应多个不同的码表;依次通过码表切换,解码当前图像块的Exp-Golomb码,获得当前图像块的每一(level,run)系数数对。本发明还公开了一种用于视频预测残差系数解码的熵解码装置,包括码流接收单元、码表提供单元和解码单元。通过本发明公开的方法和装置,充分考虑了视频块残差系数的上下文环境和统计规律,不影响计算实现复杂度;提高了编解码效率。

Description

用于视频预测残差系数解码的熵解码方法及熵解码装置
技术领域
本发明涉及一种图像/视频编解码技术,特别是一种用于在图像/视频压缩、数字音视频编解码技术中,针对用于视频预测残差系数编码的熵编码方法,提供的一种用于视频预测残差系数解码的熵解码方法和熵解码装置,属于数字媒体处理技术领域。
背景技术
视频编解码技术是数字媒体存储与传输等应用的关键技术之一。为了实现高效率的视频编解码,现有编码技术中采用了帧内预测、帧间预测、变换、量化和熵编码等技术,其中帧间预测使用基于块的运动矢量来消除图像间的冗余,帧内预测使用空间预测模式来消除图像内的冗余,通过对预测残差进行变换和量化消除图像内的视觉冗余,并通过熵编码对运动矢量、预测模式、量化参数和变换系数等进行编码以去除数据冗余;相应的,采用了熵解码、反量化和反变换来实现解码,保证存储或者传输后的正常观看。
专利号为ZL03157189.1的中国专利“用于视频预测残差系数编码的熵编码方法”公开了一种视频编码技术中熵编码的方法,在2D-VLC(VariableLength Coding)编码器中引入了自适应机制,为不同类型宏块和不同level值区域设定了不同的局部统计分布最优的码表,编码时通过码表切换,找到最匹配当前局部概率特性的码表进行编码,充分考虑了视频块残差系数的上下文环境和统计规律,同时对计算实现复杂度没有影响,进一步提高了编码效率。
但是如何针对该用于视频预测残差系数编码的熵编码方法进行有效、准确的熵解码,现有技术中并未提供相应的技术方案。
发明内容
本发明的目的是针对视频预测残差系数编码的熵编码方法,利用多码表切换确定(level,run)数对,实现针对性的并且有效的熵解码方法和熵解码装置。
为实现上述目的,本发明提供了一种用于视频预测残差系数解码的熵解码方法,解码端读取当前宏块的辅助信息,确定宏块类型和图像块类型,依次对所述当前宏块的全部非零图像块执行以下步骤:
步骤1、根据所述宏块类型以及当前图像块类型选择用于解码当前图像块的码表类型,其中,所述当前图像块的码表类型对应多个不同的码表;
步骤2、依次通过码表切换,解码当前图像块的Exp-Golomb码,获得当前图像块的每一(level,run)系数数对。
其中,所述步骤2可具体为:
步骤21、根据当前码表类型,选择预设的固定码表作为当前码表;
步骤22、根据所述当前码表,截取码流中的当前Exp-Golomb码并进行解码操作,获得码字;
步骤23、判断所述码字是否为EOB,是则结束当前图像块解码,否则执行步骤24;
步骤24、根据所述码字获取(level,run)数对;
步骤25、根据所述解码获得的系数数对的level值,进行码表切换,所述切换后的码表用于对码流中后续的Exp-Golomb码进行解码,并将切换后的码表作为当前码表,重复执行步骤22。
步骤22可具体为:
步骤221、根据所述当前码表确定码流中待解码的当前Exp-Golomb码阶数;
步骤222、根据所述阶数,截取码流中当前Exp-Golomb码的信息比特,计算码字。
其中,截取码流中当前Exp-Golomb码的信息比特具体为:
从码流当前位置起寻找第一个非零比特,并记录找到的零比特个数;
根据所述阶数以及零比特个数,计算并截取码流中当前Exp-Golomb码的信息比特。
所述步骤24包括:
步骤241、检查所述码字是否为溢出码,不是则执行步骤242,是则执行步骤243;
步骤242、在所述当前码表中,根据所述码字查找码表中的对应项,得到一(level,run)系数数对,步骤24结束;
步骤243、根据所述当前宏块类型,分别确定level和run的Exp-Golomb码阶数;
步骤244、根据所述level的阶数,截取码流中当前Exp-Golomb码的信息比特,计算码字;
步骤245、根据所述码字确定当前的level系数;
步骤246、根据所述run的阶数,截取码流中当前Exp-Golomb码的信息比特,计算码字;
步骤247、根据所述码字确定当前的run系数;
步骤248、将所述level、run的系数组合为当前的(level,run)系数数对,步骤24结束。
本发明还提供了一种用于视频预测残差系数解码的熵解码装置,包括码流接收单元、码表提供单元和解码单元;其中
所述码流接收单元,用于接收并转发Exp-Golomb码流,同时确定并发送每一宏块类型及所述宏块中图像块类型;
所述码表提供单元,用于根据从所述码流接收单元接收到的宏块类型和图像块类型,确定当前码表类型,其中,所述当前图像块的码表类型对应多个不同的码表;还用于根据解码单元的反馈指令进行码表切换,对当前码表进行确定;
所述解码单元,用于接收所述码流接收模块发送的Exp-Golomb码流和码表提供单元的当前码表,解码当前非零图像块的Exp-Golomb码,并根据解码结果向所述码表提供单元反馈指令。
所述码表提供单元可包括切换模块及存储模块;
所述切换模块用于确定当前码表类型及进行码表切换;所述存储模块用于存储码表类型及对应的码表,所述码表类型包括:
用于解码内部型宏块的亮度块的内部型码表;
用于解码外部型宏块的亮度块或者色度块的外部型码表;
用于解码色度块的色度块自身的码表;
任一码表类型对应多个不同的码表,包括预设的固定码表。
所述解码单元可包括码字截取模块和码字解码模块,其中:
所述码字截取模块用于接收所述码流接收单元发送的Exp-Golomb码流和码表提供单元指示的当前码表,根据Exp-Golomb码流第一个非零比特之前的零比特个数以及当前码表所确定的当前Exp-Golomb码阶数来截取当前Exp-Golomb码;还用于接收所述码字解码模块发送的溢出指令分别进行level系数和run系数的截取调整;
所述码字解码模块,用于根据接收到的当前Exp-Golomb码和当前码表查找当前码字;对于当前码字为EOB的情况,结束当前图像块的解码,对于当前码字为非溢出码的情况,直接获取对应的(level,run)系数数对,对于当前码字为溢出码的情况,指令所述码字截取模块分别进行level系数和run系数的截取调整;还用于向所述码表提供单元发送level系数作为反馈指令。
由上述技术方案可知,本发明通过码表切换,采用选择不同的局部统计分布最优的码表分别为不同类型宏块和不同level值区域的码流进行解码,具有以下有益效果:
1、充分考虑了视频块残差系数的上下文环境和统计规律,不影响计算实现复杂度;
2、提高了编解码效率。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
图1为本发明相应的熵编码实施例中进行扫描的结构示意图;
图2为对图1所示扫描结构进行编码的示意图;
图3A为本发明中4:2:0宏块格式的一个实施例的示意图;
图3B为本发明中4:2:2宏块格式的一个实施例的示意图;
图3C为本发明中4:4:4宏块格式的一个实施例的示意图;
图4为本发明提供的一个完整宏块的熵解码方法的流程图;
图5为本发明提供的依次通过码表切换解码的实施例的流程图;
图6为本发明提供的熵解码装置的原理结构示意图;
图7为本发明提供的熵解码装置的一个实施例的结构示意图。
具体实施方式
本发明所提供的用于视频预测残差系数解码的熵解码方法,是为匹配专利号为ZL03157189.1的中国专利“用于视频预测残差系数编码的熵编码方法”所提供的,在对图像的宏块进行视频预测残差解码后,对熵解码之后获得的数据再依次进行反量化和反变换,从而保证用户的正常收看。
为了更好的理解本发明所提供的用于视频预测残差系数解码的熵解码方法,首先通过一个编码的实施例来加以说明,参见图1和图2,以4*4图像块为例。
在该编码方案中,为了提高编码效率,针对不同的类型建立不同类型的码表,使得每种类型下,被编码符号的码字长度和被编码符号的出现概率能够更好的匹配,从而取得更好的编码效果。在图1中,通过zig-zag扫描(“之”字扫描),从左上到右下,依次得到(level,run)数对;然后采用逆序的方式从后向前对(level,run)进行编码,如图2所示。
相应的,由于对其进行解码时,是根据其码流的排列顺序依次解码,因此,对于某一个图像块而言,同样是逆序的方式进行解码。但为了描述方便,以其在码流中的顺序加以描述,比如,“下一待解码(level,run)系数数对”所指为码流中当前系数数对之后读取的数据,虽然从图像块本身而言,其对应的熵编码之前的顺序为先。
为了配合上述用于视频预测残差系数编码的熵编码方法,本发明提供了一种用于视频预测残差系数解码的熵解码方法,解码端读取当前宏块的辅助信息,确定宏块类型和图像块类型;其中,辅助信息包括图像头信息(picture_code_type)和宏块信息,该宏块信息包括MB_code_type字段以及宏块编码模板(cbp)字段;其中,图像头信息在读取本帧内各个宏块之前读取,而宏块信息则是在读取各个宏块的同时分别读取。对于不同的帧,所需读取的辅助信息也不相同;比如,对于I帧来说,由于采用帧内预测,因此一帧内的宏块类型相同,仅需读取图像头信息即可确定该帧内的宏块类型,图像块类型以及亮度块和色度块是否包含编码数据等信息由cbp字段确定;而对于P帧和B帧来说,由于同时采用帧内预测和帧间预测,因此必须再读取宏块信息中的MB_code_type字段来确定宏块类型。以一个图像头的解码过程为例,如果当前图像起始码是0x00001B3,并且picture_code_type等于‘00’则表示图像是I帧;如果当前图像起始码是0x00001B6,并且picture_code_type等于‘01’,则表示图像是P帧;如果当前图像起始码是0x00001B6,并且picture_code_type等于‘10’,则表示图像是B帧;则对于P帧和B帧来说,每一宏块还需要读取MB_code_type字段的值,确定宏块采用的是帧内预测还是帧间预测;然后,对于每一宏块读取cbp字段,按照该cbp解析得到的比特位确定对应比特位的图像块是否含有编码数据即非零系数,从而确定当前解码的非零图像块是亮度块还是色度块。对于不包含编码数据的情况,该图像块为零,无需继续进行解码。
确定了宏块类型和图像块类型后,依次对所述当前宏块的全部非零图像块执行以下步骤:
步骤1、根据所述宏块类型以及当前图像块类型选择用于解码当前图像块的码表类型,其中,所述当前图像块的码表类型对应多个不同的码表;
步骤2、依次通过码表切换,解码当前图像块的Exp-Golomb码,获得当前图像块的每一(level,run)系数数对。
由于在视频图像编码中,宏块是编码的基本单位,所以对视频图像的解码能够分解为对每一宏块的解码。具体到每一个宏块,又存在着格式、大小、类型的诸多不同。
格式大小不同,比如,在4:2:0格式下,一个宏块包括4个8*8亮度块(Y)和2个8*8色度块(1个Cb,1个Cr),如图3A所示;在4:2:2格式下,一个宏块包括4个8*8亮度块(Y)和4个8*8色度块(2个Cb,2个Cr),如图3B所示;在4:4:4格式下,一个宏块包括4个8*8亮度块(Y)和8个8*8色度块(4个Cb,4个Cr),如图3C所示。在图3A-3C中,还标示了三种宏块中图像块的顺序号,该顺序号代表了宏块划分后运动矢量和参考索引在码流中的顺序。
在对预测残差系数的熵编/解码中,图像块的每一点为一个系数,这个系数表示经过熵编码之前的编码步骤,包括变换、量化之后得到的视频预测残差,亦即为熵解码之后所得到的数据。
类型不同。宏块类型分为两种,一种是intra(内部)型,采用帧内相邻的图像块对待编码图像块进行帧内预测的方法进行编码;另一种是inter(外部)型,采用相邻帧的图像块对待编码图像块进行帧间预测的方法进行编码。这两种不同的预测编码方法使得所得到的块残差系数的特性不同,在扫描后形成的相同(level,run)数对出现的概率不同。比如某一(level,run)数对(3,0),可能在所有intra型图像块中出现的概率为10%,而在所有inter型图像块中出现的概率只有7%。
为了区分识别宏块的结构类型,以便实现有效的解码,解码端从比特流中读取当前宏块的辅助信息,确定宏块类型和图像块类型,依次对所述当前宏块的全部非零图像块执行熵解码获得视频预测残差。图4为一个完整宏块进行熵解码的实施例的流程图。
在获得视频预测残差后,采用与编码相应的反量化、反变换,从而实现视频的完全解码。全部宏块的解码完成后,即可实现用户的正常收看。
依次对所述当前宏块的全部非零图像块执行熵解码的过程进行具体分析。
步骤1中根据所述宏块类型以及当前图像块的类型选择用于解码当前图像块的码表类型具体为:
当前宏块类型为intra型且当前图像块类型为亮度块时,选择intra型码表解码当前图像块的Exp-Golomb码;
当前宏块类型为inter型且当前图像块类型为亮度块时,选择inter型码表解码当前图像块的Exp-Golomb码;
当前图像块类型为色度块时,选择inter型码表或者色度块自身的码表解码当前图像块Exp-Golomb码。
对于色度块而言,选择inter型码表还是色度块自身的码表进行解码取决于编码所采用的码表,由于inter型码表编解码色度块的效果基本可以满足要求,因此也可不采用色度块自己单独的码表。
对于步骤2,由于本发明所对应的编码过程中,对于确定的图像块,采用了多个不同的码表来分配Exp-Golomb码码字,每一个码表都是根据码表本身的level值对下一个将要编码的(level,run)数对的出现概率进行统计后制成的,按下一个将要编码的(level,run)数对的出现概率由高到低分配由小到大的码字,充分的利用了上下文环境和统计规律,比只有一个统一的码表,不考虑上下文环境,只考虑总的统计规律效率提高了很多,因此,必然要求解码过程中进行相应的切换码表操作,以实现准确解码。
由于本发明主要配合基于上下文的2D-VLC编码器进行解码,因此,所举实施例中的码表为2D-VLC结构,包括(level,run)数对以及EOB与Exp-Golomb码码字的映射关系。表1给出了编解码Inter型亮度图像块所用的Exp-Golomb码码字分配码表VLC0_Inter及VLC1_Inter示例。VLC0_Inter作为预设码表编解码第一个(level,run)数对。VLC1_Inter表示Inter型亮度图像块level为1的码表,用来对MaxAbsLevel为1时的(level,run)数对编解码,其中MaxAbsLevel表示已经编解码的(level,run)数对中所出现的最大level绝对值(MaxAbsLevel的初始值为0)。其他的码表结构与这两个码表类似。其中,本实施例中的inter型亮度图像块相应于编解码,共对应7个码表,其中的固定码表用于第一个(level,run)系数数对的编解码,其余6个码表将level的可能取值分成了6个区域,1、2、3、4-6、7-9和9以上,这6个码表分别用于MaxAbsLevel为1、2、3、4-6、7-9和9以上时(level,run)系数数对的编解码。本领域技术人员可以根据实际情况,灵活划分。
表1:
Figure S061F0390620061102D000091
Figure S061F0390620061102D000101
参见图5,依次通过码表切换解码的一个具体实施例为:
步骤21、根据当前码表类型选择预设的固定码表作为当前码表;
在本实施例中,当前码表类型为inter型时,选择VLC0_inter码表;当前码表类型为intra型时,选择VLC0_intra码表;当前码表类型为色度块自身码表时,选择VLC0_chroma码表。
步骤22、根据所述当前码表,截取码流中的当前Exp-Golomb码并进行解码操作,获得码字;
步骤23、判断所述码字是否为EOB,是则结束当前图像块解码,否则执行步骤24;
在本实施例中,EOB表示一个图像块的解码结束。
步骤24、根据所述码字获取(level,run)数对;
步骤25、根据所述解码获得的系数数对的level值,进行码表切换,所述切换后的码表用于对码流中后续的Exp-Golomb码进行解码,并将切换后的码表作为当前码表,重复执行步骤22。
在本实施例中,用所述解码获得的系数数对的level值对MaxAbsLevel进行更新,之后根据MaxAbsLevel选择相应码表确定为当前码表。
在本实施例中,步骤22通过计算非零比特位来实现对当前Exp-Golomb码的长度的计算,下面对该方法进行具体说明:
所述步骤22具体的解码过程为:
步骤221、根据当前码表确定码流中待解码的当前Exp-Golomb码阶数;
比如,对于非色度块自身的码表,判断当前码表是否为VLC0_Inter,是则确定码流中待解码的当前Exp-Golomb码为3阶;否则确定码流中待解码的当前Exp-Golomb码为2阶。对于色度块自身的码表,则无需进行判断。
步骤222a、从码流当前位置起寻找第一个非零比特,并记录找到的零比特个数;在本实施例中,找到的零比特个数记为leadingZeroBits;
步骤222b、根据所述阶数以及零比特个数,计算并截取码流中当前Exp-Golomb码的信息比特,计算码字。
其中,Exp-Golomb码由前缀和后缀组成,前缀码为leadingZeroBits个0以及一个1构成的比特串,后缀码为leadingZeroBits+阶数个信息比特构成。本发明所提供的计算码字的方法有如下两种:
第一,从Exp-Golomb码表中读取。参见表2,为Exp-Golomb码表的一种简写形式,表中的Xi为0或1。所述的INFO,是一个信息量,用如下公式计算: INFO = Σ i = 0 N x i · 2 i .
表2
Figure S061F0390620061102D000112
Figure S061F0390620061102D000121
根据表2中提供的公式,可以计算得出Exp-Golomb码对应的码字。比如,Exp-Golomb码00111依据上面公式进行计算,INFO=3,L=5,则L/2=2(取整数部分),依据码字公式,获得码字为6。
通过计算容易得出,Exp-Golomb码表中每一阶的码字,都是从0开始递增,参见表3,为0阶、1阶、2阶和3阶Exp-Golomb码的计算结果实例,其中,k代表阶数,CodeNum代表码字。
表3
Figure S061F0390620061102D000131
第二,根据leadingZeroBits直接计算码字,其记算方法也可以用按伪代码描述如下:
leadingZeroBits=-1;
for(b=0;!b;leadingZeroBits++)
b=read_bits(1)
CodeNum=21eadingZeroBits+k—2k+read_bits(leadingZeroBits+k)。
这样,即使不采用Exp-Golomb码表,同样能够获取视频残差系数的码字。
所述步骤24具体包括:
步骤241、检查所述码字是否为溢出码,不是则执行步骤242,是则执行步骤243;
这是由于统计预测的结果一般集中在一个区域,这是图像的渐进变化所决定的,所以设计码表时,码表中不包括那些出现几率非常小的,超出设定的区域的(level,run)数对。从码表VLC0_Inter及VLC1_Inter就可以看到,码表只包含了部分(level,run)数对的码字,因此需要对超出码表范围的(level,run)数对,进行例外的处理,即编码时根据当前码表,即超出范围的码表,确定此码表所采用的Exp-Golomb码的阶数,然后,编码一个escape_code,再将超出码表的level和run分别转换成Exp-Golomb码。因此,解码时就分成了直接求取(level,run)系数数对,以及分别求取level和run合成(level,run)系数数对两种情况。
步骤242、在所述当前码表中,根据所述码字查找码表中的对应项,得到一(level,run)系数数对,步骤24结束;
步骤243、根据所述当前宏块类型,分别确定level和run的Exp-Golomb码阶数;
其中,当前宏块为inter型时,确定level系数的Exp-Golomb码为2阶,run系数的Exp-Golomb码为3阶;
当前宏块为intra型时,确定level系数和run系数的Exp-Golomb码皆为3阶。
步骤244a、从码流当前位置起寻找第一个非零比特,并记录找到的零比特个数;
步骤244b、根据所述level的阶数以及零比特个数,计算并截取码流中当前Exp-Golomb码的信息比特,计算码字;
步骤245、根据所述码字确定当前的level系数;
具体的,码字和level系数存在着一一对应的关系,由于码字的取值范围是0到无穷,而level的取值范围是正负整数,因此可以采用一定的规则对应解码获得。比如,对于level的取值是-N到N,则统一设置码字0~N-1对应于level系数的1-N,设置码字N对应level值的-1,依次类推。
但由于level系数值越小,其出现机率越大,因此,较佳的技术方案是码字0对应level值1,码字1对应level值的-1,码字2对应level值2,码字3对应level值的-2,依次类推。
步骤246a、从码流当前位置起寻找第一个非零比特,并记录找到的零比特个数;
步骤246b、根据所述run的阶数以及零比特个数,计算并截取码流中当前Exp-Golomb码的信息比特,计算码字;
步骤247、根据所述码字确定当前的run系数;
类似的,码字和run系数也存在着一一对应的关系,由于码字的取值范围是0到无穷,而run的取值范围是0到N,因此可以采用一一对应的规则对应解码获得。比如,对于8*8图像块,run的取值是0-63,则统一设置码字0-63对应于rμn系数的0-63即可。
步骤248、将所述level、run的系数组合为当前的(level,run)系数数对,步骤24结束。
上述步骤也可采用以固定的数据位为寻址地址查表获知码流中当前Exp-Golomb码的长度来实现截取,则步骤222a与步骤222b,步骤244a与步骤244b,步骤246a与步骤246b都替换为读取固定的数据位,获得当前Exp-Golomb码并截取进行解码操作的步骤。这种替换不影响本发明的整体技术方案。
本发明还提供了一种用于视频预测残差系数解码的熵解码装置,参见图6,为原理结构示意图,包括码流接收单元A、码表提供单元B和解码单元C;其中
码流接收单元A,用于接收并转发Exp-Golomb码流,通过解析图像头信息及宏块信息,确定每一宏块类型及所述宏块中图像块类型,并将该类型信息发送给解码单元C;
码表提供单元B,用于根据从所述码流接收单元A接收到的宏块类型和图像块类型,确定当前码表类型,其中,所述当前图像块的码表类型对应多个不同的码表;还用于根据解码单元C发送的反馈指令进行码表切换,确定当前码表,用于提供给解码单元C;
所述解码单元C,用于接收所述码流接收模块A发送的Exp-Golomb码流和码表提供单元C的当前码表,解码当前非零图像块的Exp-Golomb码,并根据解码结果向所述码表提供单元B反馈指令。
参见图7,为本发明所提供熵解码装置的一个实施例的结构图,具体为所述码表提供单元B包括切换模块B1及存储模块B2;
所述切换模块B1用于根据从所述码流接收单元A接收到的宏块类型和图像块类型,确定当前码表类型,以及根据解码单元C发送的反馈指令进行码表切换,确定当前码表,并告知解码单元C当前码表已更新;
所述存储模块B2用于存储码表类型及对应的码表,并提供给切换模块B1。所述码表类型包括:
用于解码intra型宏块的亮度块的intra型码表;用于解码inter型宏块的亮度块或者色度块的inter型码表;用于解码色度块的色度块自身的码表;
任一码表类型对应多个不同的码表,包括预设的固定码表。
解码单元C包括码字截取模块C1和码字解码模块C2,其中:
码字截取模块C1用于接收所述码流接收单元A发送的Exp-Golomb码流和码表提供单元B指示的当前码表,根据Exp-Golomb码流第一个非零比特之前的零比特个数及当前码表,确定当前Exp-Golomb码阶数并截取当前Exp-Golomb码;还用于接收所述码字解码模块C2发送的溢出指令分别进行level系数和run系数的截取;
可以看出,码字截取模块C1需要设置缓存(图中未示),将接收到的Exp-Golomb码流分批提供给码字解码模块C2进行解码操作。
码字解码模块C2,从码字截取模块C1接收当前Exp-Golomb码,从码表提供单元B得知当前码表,并根据当前码表进行当前Exp-Golomb码的解码,获取码字;对于当前码字为EOB的情况,结束当前图像块的解码,对于当前码字为非溢出码的情况,根据当前码表直接获取对应的(level,run)系数数对,对于当前码字为溢出码的情况,指令所述码字截取模块C1分别进行level系数和run系数的截取;还用于向所述码表提供单元发送level系数作为反馈指令。
最后应说明的是:以上实施例仅用以说明本发明的技术方案而非对其进行限制,尽管参照较佳实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对本发明的技术方案进行修改或者等同替换,而这些修改或者等同替换亦不能使修改后的技术方案脱离本发明技术方案的精神和范围。

Claims (11)

1.一种用于视频预测残差系数解码的熵解码方法,其特征在于解码端读取当前宏块的辅助信息,确定宏块类型和图像块类型,依次对所述当前宏块的全部非零图像块执行以下步骤:
步骤1、根据所述宏块类型以及当前图像块类型选择用于解码当前图像块的码表类型,其中,所述当前图像块的码表类型对应多个不同的码表;根据所述宏块类型以及当前图像块的类型选择用于解码当前图像块的码表类型具体为:
当前宏块类型为内部型时且当前图像块类型为亮度块时,选择内部型码表解码当前图像块的Exp-Golomb码;
当前宏块类型为外部型且当前图像块类型为亮度块时,选择外部型码表解码当前图像块的Exp-Golomb码;
当前图像块类型为色度块时,选择外部型码表或者色度块自身的码表解码当前图像块的Exp-Golomb码;
步骤2、依次通过码表切换,解码当前图像块的Exp-Golomb码,获得当前图像块的每一(level,run)系数数对;
其中,所述码表为2D-VLC结构,包括(level,run)数对以及EOB与Exp-Golomb码码字的映射关系。
2.根据权利要求1所述的方法,其特征在于所述步骤2具体为:
步骤21、根据当前码表类型,选择预设的固定码表作为当前码表;
步骤22、根据所述当前码表,截取码流中的当前Exp-Golomb码并进行解码操作,获得码字;
步骤23、判断所述码字是否为EOB,是则结束当前图像块解码,否则执行步骤24;
步骤24、根据所述码字获取(level,run)数对;
步骤25、根据所述解码获得的系数数对的level值,进行码表切换,所述切换后的码表用于对码流中后续的Exp-Golomb码进行解码,并将切换后的码表作为当前码表,重复执行步骤22。
3.根据权利要求2所述的方法,其特征在于所述步骤21中根据所述当前码表类型选择预设的固定码表具体为:
当前码表类型为外部型时,选择VLC0_inter码表;
当前码表类型为内部型时,选择VLC0_intra码表;
当前码表类型为色度块自身码表时,选择VLC0_chroma码表。
4.根据权利要求2所述的方法,其特征在于所述步骤22具体为:
步骤221、根据所述当前码表确定码流中待解码的当前Exp-Golomb码阶数;
步骤222、根据所述阶数,截取码流中当前Exp-Golomb码的信息比特,计算码字。
5.根据权利要求4所述的方法,其特征在于所述步骤221具体为:对于非色度块自身的码表,判断当前码表是否为VLC0_Inter,是则确定码流中待解码的当前Exp-Golomb码为3阶;否则确定码流中待解码的当前Exp-Golomb码为2阶。
6.根据权利要求4所述的方法,其特征在于截取码流中当前Exp-Golomb码的信息比特具体为:
从码流当前位置起寻找第一个非零比特,并记录找到的零比特个数;
根据所述阶数以及零比特个数,计算并截取码流中当前Exp-Golomb码的信息比特。
7.根据权利要求2所述的方法,其特征在于所述步骤24包括:
步骤241、检查所述码字是否为溢出码,不是则执行步骤242,是则执行步骤243;
步骤242、在所述当前码表中,根据所述码字查找码表中的对应项,得到一(level,run)系数数对,步骤24结束;
步骤243、根据所述当前宏块类型,分别确定level和run的Exp-Golomb码阶数;
步骤244、根据所述level的阶数,截取码流中当前Exp-Golomb码的信息比特,计算码字;
步骤245、根据所述码字确定当前的level系数;
步骤246、根据所述run的阶数,截取码流中当前Exp-Golomb码的信息比特,计算码字;
步骤247、根据所述码字确定当前的run系数;
步骤248、将所述level、run的系数组合为当前的(level,run)系数数对,步骤24结束。
8.根据权利要求7所述的方法,其特征在于所述步骤243具体为:
当前宏块为外部型时,确定level系数的Exp-Golomb码为2阶,run系数的Exp-Golomb码为3阶;
当前宏块为内部型时,确定level系数和run系数的Exp-Golomb码皆为3阶。
9.一种用于视频预测残差系数解码的熵解码装置,其特征在于包括码流接收单元、码表提供单元和解码单元;其中
所述码流接收单元,用于接收并转发Exp-Golomb码流,同时确定并发送每一宏块类型及所述宏块中图像块类型;
所述码表提供单元,用于根据从所述码流接收单元接收到的宏块类型和图像块类型,确定当前码表类型,其中,所述当前图像块的码表类型对应多个不同的码表;还用于根据解码单元的反馈指令进行码表切换,对当前码表进行确定;所述码表类型包括:
用于解码内部型宏块的亮度块的内部型码表;
用于解码外部型宏块的亮度块或者色度块的外部型码表;
用于解码色度块的色度块自身的码表;
任一码表类型对应多个不同的码表,包括预设的固定码表;
其中,所述码表为2D-VLC结构,包括(level,run)数对以及EOB与Exp-Golomb码码字的映射关系;
所述解码单元,用于接收所述码流接收模块发送的Exp-Golomb码流和码表提供单元的当前码表,解码当前非零图像块的Exp-Golomb码,并根据解码结果向所述码表提供单元反馈指令。
10.根据权利要求9所述的熵解码装置,其特征在于所述码表提供单元包括切换模块及存储模块;
所述切换模块用于确定当前码表类型及进行码表切换;
所述存储模块用于存储码表类型及对应的码表。
11.根据权利要求9所述的熵解码装置,其特征在于所述解码单元包括码字截取模块和码字解码模块,其中:
所述码字截取模块用于接收所述码流接收单元发送的Exp-Golomb码流和码表提供单元指示的当前码表,根据Exp-Golomb码流第一个非零比特之前的零比特个数以及当前码表所确定的当前Exp-Golomb码阶数来截取当前Exp-Golomb码;还用于接收所述码字解码模块发送的溢出指令分别进行level系数和run系数的截取调整;
所述码字解码模块,用于根据接收到的当前Exp-Golomb码和当前码表查找当前码字;对于当前码字为EOB的情况,结束当前图像块的解码,对于当前码字为非溢出码的情况,直接获取对应的(level,run)系数数对,对于当前码字为溢出码的情况,指令所述码字截取模块分别进行level系数和run系数的截取调整;还用于向所述码表提供单元发送level系数作为反馈指令。
CN 200610150390 2006-10-30 2006-10-30 用于视频预测残差系数解码的熵解码方法及熵解码装置 Active CN101175210B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200610150390 CN101175210B (zh) 2006-10-30 2006-10-30 用于视频预测残差系数解码的熵解码方法及熵解码装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200610150390 CN101175210B (zh) 2006-10-30 2006-10-30 用于视频预测残差系数解码的熵解码方法及熵解码装置

Publications (2)

Publication Number Publication Date
CN101175210A CN101175210A (zh) 2008-05-07
CN101175210B true CN101175210B (zh) 2010-08-11

Family

ID=39423418

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200610150390 Active CN101175210B (zh) 2006-10-30 2006-10-30 用于视频预测残差系数解码的熵解码方法及熵解码装置

Country Status (1)

Country Link
CN (1) CN101175210B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8634456B2 (en) * 2008-10-03 2014-01-21 Qualcomm Incorporated Video coding with large macroblocks
US8503527B2 (en) 2008-10-03 2013-08-06 Qualcomm Incorporated Video coding with large macroblocks
US7825835B2 (en) * 2008-12-15 2010-11-02 Nvidia Corporation Method and system for encoded video compression
EP2579598A4 (en) * 2010-06-07 2014-07-23 Humax Co Ltd METHOD FOR ENCODING / DECODING A HIGH RESOLUTION IMAGE AND DEVICE IMPLEMENTING SAID METHOD
CN107087194B (zh) 2010-12-13 2020-02-11 韩国电子通信研究院 基于帧间预测对视频信号进行解码的方法
CN102355578B (zh) * 2011-05-25 2016-12-07 深圳市云宙多媒体技术有限公司 一种熵解码方法、装置
EP3402206B1 (en) * 2011-06-28 2020-05-20 Samsung Electronics Co., Ltd. Video encoding and decoding method using arithmetic coding with a two-dimensional signaling of the last significant coefficient
HUE061628T2 (hu) * 2011-11-07 2023-07-28 Tagivan Ii Llc Képdekódoló eljárás és képdekódoló eszköz
CN104244003B (zh) * 2014-08-18 2017-08-15 北京君正集成电路股份有限公司 一种确定运动矢量代价的方法及装置
CN105592313B (zh) * 2014-10-21 2018-11-13 广东中星电子有限公司 一种分组自适应熵编码压缩方法
US10440399B2 (en) * 2015-11-13 2019-10-08 Qualcomm Incorporated Coding sign information of video data
CN115379291B (zh) * 2022-07-19 2023-12-26 百果园技术(新加坡)有限公司 一种码表更新方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1117779A (zh) * 1993-12-16 1996-02-28 三星电子株式会社 图像数据的自适应可变长度编码和译码方法
CN1527610A (zh) * 2003-09-18 2004-09-08 �й���ѧԺ�����о��� 用于视频预测残差系数编码的熵编码方法
CN1568015A (zh) * 2003-06-27 2005-01-19 中国科学院计算技术研究所 多视角视频编解码预测补偿方法及装置
CN1589025A (zh) * 2004-07-30 2005-03-02 联合信源数字音视频技术(北京)有限公司 一种基于软硬件协同控制的视频解码器
CN1628466A (zh) * 2002-02-05 2005-06-15 西门子公司 视频数据流的上下文灵敏的编码和解码

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1117779A (zh) * 1993-12-16 1996-02-28 三星电子株式会社 图像数据的自适应可变长度编码和译码方法
CN1628466A (zh) * 2002-02-05 2005-06-15 西门子公司 视频数据流的上下文灵敏的编码和解码
CN1568015A (zh) * 2003-06-27 2005-01-19 中国科学院计算技术研究所 多视角视频编解码预测补偿方法及装置
CN1527610A (zh) * 2003-09-18 2004-09-08 �й���ѧԺ�����о��� 用于视频预测残差系数编码的熵编码方法
CN1589025A (zh) * 2004-07-30 2005-03-02 联合信源数字音视频技术(北京)有限公司 一种基于软硬件协同控制的视频解码器

Also Published As

Publication number Publication date
CN101175210A (zh) 2008-05-07

Similar Documents

Publication Publication Date Title
CN101175210B (zh) 用于视频预测残差系数解码的熵解码方法及熵解码装置
US7769088B2 (en) Context adaptive binary arithmetic code decoding engine
TWI658702B (zh) 資料編碼及解碼
KR100694098B1 (ko) 산술 복호 방법 및 그 장치
US5428396A (en) Variable length coding/decoding method for motion vectors
CN102939719B (zh) 用于在二进制熵编码和解码中减少源的方法和设备
CN102783035B (zh) 并行熵编码方法和设备
CN105556971A (zh) 针对帧内块复制预测中的块翻动和跳跃模式的编码器侧判定
CN111183647B (zh) 用于解码视频数据的方法、装置和计算机可读媒体
KR20010105629A (ko) 복수 매핑 테이블을 이용한 가변장 부호화 및 복호화방법과 그 장치
CN102783154B (zh) 采用双码集的编码和解码方法和设备
CN102868882A (zh) 在cabac中使用分离的绝对值和符号(savs)对dpq进行二元化
JP7398368B2 (ja) 符号化及び復号化方法並びに対応デバイス
JP2021520087A (ja) Cabacのニューラルネットワーク実装に基づくビデオの符号化及び復号のための方法及び機器
US20180220159A1 (en) Encoding device, decoding device, and encoding method and decoding method thereof
CN103597838A (zh) 对末位有效系数的位置进行编码和解码的方法和设备
CN101569203A (zh) 代码转换器、代码转换方法、解码器以及解码方法
US20230109113A1 (en) Method and apparatus for selecting transform selection in an encoder and decoder
EP3709657A1 (en) Reducing the number of regular coded bins
CN101729889A (zh) 数字媒体数据的编/译码方法及其比特流的处理方法
CN100551064C (zh) 变长编码方法及装置
JP2022523287A (ja) 通常コード化ビンの数の削減
CN101790096A (zh) 基于二重预测的编解码方法及装置
JP2008294669A (ja) 画像符号化装置
US20220150501A1 (en) Flexible allocation of regular bins in residual coding for video coding

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