CN114531595B - cabac二进制化和上下文模型产生的编码方法和装置 - Google Patents

cabac二进制化和上下文模型产生的编码方法和装置 Download PDF

Info

Publication number
CN114531595B
CN114531595B CN202210432743.0A CN202210432743A CN114531595B CN 114531595 B CN114531595 B CN 114531595B CN 202210432743 A CN202210432743 A CN 202210432743A CN 114531595 B CN114531595 B CN 114531595B
Authority
CN
China
Prior art keywords
block
binarization
flag
last
mode
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
CN202210432743.0A
Other languages
English (en)
Other versions
CN114531595A (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 Xinsheng Electronic Technology Co Ltd
Original Assignee
Zhejiang Xinsheng Electronic Technology Co Ltd
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 Xinsheng Electronic Technology Co Ltd filed Critical Zhejiang Xinsheng Electronic Technology Co Ltd
Priority to CN202210432743.0A priority Critical patent/CN114531595B/zh
Publication of CN114531595A publication Critical patent/CN114531595A/zh
Application granted granted Critical
Publication of CN114531595B publication Critical patent/CN114531595B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component

Abstract

本发明提供一种cabac二进制化和上下文产生的编码方法,提出了更优的并行处理16个系数的语法元素重要系数和最后重要系数的二进制化产生方法,及其上下文模型的产生方法。由于可于一个时钟周期并行处理16个系数的语法元素,一方面减少了每个宏块处理重要系数和最后重要系数的时间,另一方面减小了16个系数的语法元素并行二进制化和上下文模型产生的复杂度。

Description

cabac二进制化和上下文模型产生的编码方法和装置
技术领域
本发明涉及视频编码领域,具体而言涉及一种cabac二进制化和上下文模型产生的编码方法和装置。
背景技术
在集成电路设计,基于上下文的自适应二进制算术编码(Context-basedadaptive binary arithmetic coding,CABAC)是已经广泛用于诸如AVC(H.264),HEVC(H.265)的高级视频编码中的高效熵编码工具。举例来说,HEVC标准的各种语法元素是以CABAC 模式来编码,其中基于与基础语法元素相关的上下文,来自适应地将熵编码应用于二进制化语法元素。由于CABAC引擎中的算术编码器只能对二进制符号值(binary symbolvalue)进行编码,因此 CABAC过程需要使用二进制化器来将语法元素的值转换为二进制字符串(binary string)。转换过程通常被称为二进制化。在编码过程中,从用于不同上下文的编码符号逐渐建立概率模型。CABAC在做算术编码之前需要将相关语法元素进行二进制化(或称为二值化)处理成bin(在算术编码前单个位),以及产生每个bin所对应的上下文模型。即如图1为CABAC过程的示例性框图所示,编码程序包括四部分,先将欲编码之数据交叉扫描S100,将将相关语法元素进行二进制化S200,上下文产生S300再进行算术编码S400。在芯片设计实现时,高性能的编码器需要面积小速度快的语法元素二进制化的方法和上下文模型产生方法,尤其是在重要系数标志significant_coef_flag和最后重要系数标志last_significant_coef_flag的二进制化和上下文模型产生多半很复杂,或者耗时长影响性能。
例如参照图2,描述AVC中的语法元素。其中需要先对所有的significant_coef_flag和last_significant_coef_flag编码再进入到残差的level系数值编码,这样对于会影响到编码性能,而且语法元素二进制化对应的bin和上下文模型的产生因为不同的情况和不同值的不同bin会有不同的计算方式,情况复杂效率低。
目前在cabac基础上改进二进制化和上下文模型产生的编码方法和装置有以下几种:
1.中国专利CN106416246B “视频编码中的语法的二进制化和上下文自适应编码的方法和装置”其设计要点是:首先确定当前符号值的最高有效位索引和任何精细位。通过使用一元码或截断一元码来对与当前符号值的最高有效位索引相关的前缀部分进行二进制化,来生成第一二进制字符串。此外,如果存在任何精细位,则通过使用固定长度码或截断二进制码来对与当前符号值的一个或多个精细位相对应的后缀部分进行二进制化,来生成第二二进制字符串。使用上下文自适应二进制算术编码对第一二进制字符串进行编码,并且如果第二二进制字符串存在,则也使用上下文自适应二进制算术编码对第二二进制字符串进行编码。
2.中国专利CN103222269B “用于较高吞吐量的最后位置的二值化” 其涉及用于较高吞吐量的最后位置的二值化,设计要点是:利用上下文自适应二进制算术编码(CABAC)以给定扫描次序对变换系数的最后位置(x, y) 编码,为了提高吞吐量,利用 x 和 y 的一元代码对二值化排序,继之以 x和 y的固定二进制代码。
然而,现有技术所提出的方法都过于复杂,处理能力低。因此,本发明提出一种cabac二进制化和上下文模型产生的编码方法和装置,提高语法元素的二进制化和上下文模型产生速度,复杂度低且吞吐率高。
发明内容
为了解决上述技术问题,本发明提供一种cabac二进制化和上下文模型产生的编码方法和装置,尤其是重要系数标志significant_coef_flag和最后重要系数标志last_significant_coef_flag的二进制化和上下文模型产生,提高语法元素的二进制化和上下文模型产生速度,复杂度低且吞吐率高。
为了实现上述发明目的,本发明中提供一种cabac二进制化和上下文产生的编码方法,所述编码方法包括:将4x4块内的16位像素按照交叉扫描的模式产生扫描后顺序的残差数据所对应的重要系数标志和最后重要系数标志,把重要系数标志和最后重要系数标志两者组合后的值,根据该值是非零值的标志组合成4组非零标志位模式;对第0组的重要系数标志和最后重要系数标志依照第二解析表进行解析,其有效位长度为4至8位;对第1、2、3组的重要系数标志和最后重要系数标志依照第一解析表进行解析,其有效位长度为3至6位;该组的重要系数标志和最后重要系数标志的解析结果包含1或0浮动值的最后重要系数标志时,以其他组的非0标志位模式决定该浮动值以产生第0至3组的二进制化bin序列bin0~31;决定当前块类型,取得对应的重要系数标志和最后重要系数标志的上下文模型的基本偏移量,依照该bin序列的扫描位置和该组模式查表取得上下文模型的补充偏移量,将基本偏移量和补充偏移量相加得出各bin序列的上下文模型;将解析后的bin序列及其对应的上下文模型输出进行合并处理,得到最终的二进制化数据和对应的上下文。
优选地,其中所述4组非零标志位模式存入分组重要系数模式缓存,而扫描后的level系数和符号位依照与扫描顺序相反的顺序存入残差数据缓存中。
优选地,其中更包括将第0组的16x16预测模式的亮度dc块,色度dc_u块, 色度dc_v块,4x4预测模式下的亮度块数据依照所述第一解析表进行解析。
优选地,其中更包括将第0组的16x16预测模式的亮度ac块,色度ac_u块, 色度ac_v块数据依照所述第二解析表进行解析。
优选地,其中该组为第3组时,该浮动值设为1。
优选地,其中该组为第2组时,该浮动值不等于该第3组模式。
优选地,其中更包括将解析后的bin序列及其对应的上下文模型输出,将第0组数据归为第一部分,第1, 2, 3组数据按照各组有效长度高位在左对齐合并为第二部分合并处理。
优选地,其中更包括语法元素mvd_I0_x,mvd_I0_y的二进制化采用截断一元码及3阶哥伦布编码,完成TU(9),EGK3,以及对于mvd符号位的FL(1)方法的二进制化。
优选地,其中更包括语法元素coef_abs_coef_minus1的二进制化采用截断一元码及0阶哥伦布编码,完成TU(14),EGK0,以及对于level系数的符号位的FL(1)方法的二进制化。
本发明还提供一种cabac二进制化和上下文产生的编码装置,所述编码装置包括:交叉扫描模块,将4x4块内的16位像素按照交叉扫描的模式产生扫描后顺序的残差数据所对应的重要系数标志和最后重要系数标志,把重要系数标志和最后重要系数标志两者组合后的值,根据该值是非零值的标志组合成4组非零标志位模式,所述4组非零标志位模式存入分组重要系数模式缓存,而扫描后的level系数和符号位依照与扫描顺序相反的顺序存入残差数据缓存中;语法元素、类型、二进制化方法、上下文偏移量产生模块,对第0组的重要系数标志和最后重要系数标志依照第二解析表进行解析,其有效位长度为4至8位;对第1、2、3组的重要系数标志和最后重要系数标志依照第一解析表进行解析,其有效位长度为3至6位;该组的解析结果包含1或0浮动值的最后重要系数标志时,以其他组的非0标志位模式决定该浮动值以产生第0至3组的二进制化bin序列bin0~31;上下文模型产生模块,决定当前块类型,取得对应的重要系数标志和最后重要系数标志的上下文模型的基本偏移量,依照该bin的扫描位置和该组模式查表取得上下文模型的补充偏移量,将所述基本偏移量和所述补充偏移量相加得出各bin的上下文模型;上下文模型组合输出模块,将解析后的bin序列及其对应的上下文模型输出进行合并处理,得到最终的二进制化数据和对应的上下文。
附图说明
图1是CABAC的示意图。
图2是习知技术中残差块CABAC语法的说明。
图3是对4x4块内16个像素数据交叉(zigzag)扫描的示意图。
图4是根据本发明实施例分组重要系数模式和残差数据的示意图。
图5是根据本发明实施例将语法元素二进制化及产生上下文模型的架构图。
图6是根据本发明实施例产生上下文模型及bin和上下文模型组合输出的流程示意图。
图7是根据本发明实施例分组bin和上下文模型组合输出的资料结构示意图。
具体实施方式
以下描述为本发明的较佳实施例。以下实施例仅用来举例阐释本发明的技术特征,并非用以限定本发明。本发明的保护范围当视权利要求书所界定为准。
图3是对4x4块内16个像素数据交叉扫描的示意图。对4x4块内16个像素数据在交叉扫描模块100进行扫描的同时,把扫描后顺序的残差数据对应的重要系数标志sig_coef_flag和最后重要系数标志last_sig_coef_flag,两者组合后的模式按照4个组分类,每个4x4块内16个像素按照交叉扫描的模式的产生,根据该值是非零值的标志组合成4组模式:group0_mode[3:0],group1_mode[3:0],group2_mode[3:0],group3_mode[3:0],共16位。各位分别对应zigzag扫描后数据的非零标志。各像素点位置如图3所示,group0_mode[3]表示图中位置0的点的非零标志,group3_mode[0]表示图中位置15的点的非零标志。
参照图4,交叉扫描后产生的group0_mode~group3_mode存入分组重要系数模式缓存102,而交叉扫描后的残差数据的level系数按照逆交叉的方式存储在残差数据缓存101中。
参照图4及图5,语法元素和类型和二进制方法和上下文偏移量产生模块103读入分组重要系数模式缓存102所存储的group0_mode~group3_mode,并以逆交叉顺序读入level系数和符号位。语法元素和类型和二进制方法和上下文偏移量产生模块103将按照标准规定的条件和顺序依次对要处理的数据产生不同的语法元素,并将数据进行归类,按下表1设置二进制化方法bin_method,将要处理的数据所产生的各语法元素依照所对应的二进制化方法,在对应的二值化处理模块进行二值化处理。如表1所示,包括mb_qp_delta,coded_block_pattern, intra_chroma_pred_mode, mb_skip_flag,coded_block_flag,coef_sign_flag,end_of_slice_flag, coded_block_pattern等语法元素对应UTUFL二进制化模块104进行所有的U,TU,FL方式的编码。语法元素coef_abs_coef_minus1对应UEGK0二进制化模块105对进行二进制化编码。语法元素mvd_I0_x, mvd_I0_y对应UEGK3二进制化模块106进行二进制化编码。语法元素mb_type, sub_mb_type对应LUT二进制化模块107进行二进制化编码。
于本发明中,二值化方法U是指一元码(Unary),TU是指截断一元码(TU,TruncatedUnary),FL是指定长编码(FL,Fixed-Length), EGk是指k阶指数哥伦布编码(kth orderExp-Golomb,EGk),LUT是指查表(lookup table)。
Figure DEST_PATH_IMAGE001
按编码顺序输入各类语法元素,每个时钟产生一个语法元素(或者一组可被同时处理的语法元素),输入有二进制化方法bin_mthd,语法元素值synval,该语法元素对应的上下文偏移量ctx_offset。特别地,将变换量化后的系数resi_data,符号标志coef_signed_flag放在一起输入{signed_flag,resi_data}进行二进制化处理。除了sig_coef_flag和last_sig_coef_flag(或称重要系数标志significant_coef_flag和最后重要系数标志last_significant_coef_flag)以外的各类语法元素二值化后的结果,即各语法元素的二进制化bin串分别输入选择器110,在其后的bin和上下文模型组合输出模块111与其对应的上下文模型组合输出。
其中,针对sig_coef_flag和last_sig_coef_flag(或称重要系数标志significant_coef_flag和最后重要系数标志last_significant_coef_flag)的语法元素,本实施例中以重要系数和最后重要系数和推断预测模式二进制化模块(SIG_LASTSIG_PIPM_RIPM)108实现sig_coef_flag和last_sig_coef_flag二进制化并且复用prev_intra4x4_mode_flag和rem_intra4x4_pred_mode的二进制化。首先,从分组重要系数模式缓存102中全部取出16位的4组组模式sig_group_mode,根据表2,依照不同组别用不同的解析方式,查找第一解析表(表3)和第二解析表(表4)分别对第0至3组的组模式sig_group_mode同时解析重要系数标志sig_coef_flag和最后重要系数标志last_sig_coef_flag。输出分2部分:group0作为第一部分的bin输出,group1, group2, group3作为第二部分的bin输出。
由于不同预测模式和不同变换模式下的块大小不一样,对于16x16预测模式下的4x4亮度ac块(block),或者色度预测模式下的ac块,group0(第0组)的sig_coef_flag和last_sig_coef_flag的数据和有效位长度按照表4进行解析,对于其它模式的块(16x16预测模式下的4x4亮度dc块, 4x4预测模式下的4x4亮度块,色度dc_u块,dc_v块),group0(第0组)的数据和有效位长度参照参照表3的方法解析结果。group1, group2, group3(第1、2、3组)的sig_coef_flag和last_sig_coef_flag数据和有效位长度参照表3的方法解析。特别的,如果当前块是色度dc_u,dc_v块的时候仅有group0有数据。
Figure DEST_PATH_IMAGE002
Figure DEST_PATH_IMAGE003
Figure DEST_PATH_IMAGE004
表4中浮动值x表示last_sig_coef_flag可能为1或者0,取决于其它几组的非零标志位模式:x的计算方法如下:
sig_group0组中的x=!sig_group1_mode&&! sig_group2_mode &&! sig_group3_mode
sig_group1组中的x=! sig_group2_mode &&! sig_group3_mode
sig_group2组中的x=! sig_group3_mode
sig_group3组中的x=1
举例说明,假设一个4x4预测的亮度块,输入两组组模式,sig_group0_mode为3,sig_group1_mode为3,得到group0、group1的sig_coef_flag分别为3’b011,4’b0011。对group0的4x4预测的亮度块通过查表4模式为3得到输出bin序列为“0101x”,由于sig_group2_mode和sig_group3_mode为0且sig_group1_mode不为0,计算得到x的值为0。sig_group1_mode查表1可得到“00101x”,通过上述x的计算公式计算x的值为1。
last_sig_coef_flag的值仅当非零标志sig_coef_flag为1的时候存在,且当最后一个为1的非零标志时取1,若不是最后一个为1的非零标志时取0,则last_sig_coef_flag和最终输出的bin符号序列进行融合拼接,以及每个bin符号选择标志位sig_last_sel(0表示sig_coef_flag,1表示last_sig_coef_flag)如下表5所示。
Figure DEST_PATH_IMAGE005
如此,将sig_coef_flag,last_sig_coef_flag二值化组合输出。
又,sig_coef_flag,last_sig_coef_flag上下文模型的补充偏移量产生方法如下表所示,依照sig_group_mode0~15和bin0~31pos对应的值决定补充偏移量。
Figure DEST_PATH_IMAGE006
Figure DEST_PATH_IMAGE007
Figure DEST_PATH_IMAGE008
Figure DEST_PATH_IMAGE009
表中,像素位置pixel_pos以bin0_pos~bin31_pos显示,表示当前bin在4x4块中的交叉扫描的位置,在不同组模式(sig_group_mode)下,不同位置输出符号对应不同的值,在blk_cat块类型取[0,4]范围内的值时,依照标准规定对应的significant_coef_flag上下文模型的基本偏移量ctx_offset为(105,120,134,149,152),对应的last_significant_coef_flag上下文模型的基本偏移量为(166,181,195,210,213),再加上表中每个bin的位置对应的补充偏移量即可得出每个符号各自的上下文模型的值。在实现中,将4x4块经过交叉扫描后,分别针对每个位置(共16个位置),依块类型[0:4]分别计算其为significant_coef_flag时的5种可能取值,并分别计算其为last_significant_coef_flag时的5种可能取值,通过块类型分别选择得到最终结果。
如此,每个4x4块经过解析后得到4组按照significant_coef_flag和last_significant_coef_flag顺序排列好的数据,对于16个位置的significant_coef_flag和last_significant_coef_flag,4组之和总共最多为32bin的数据。然后针对每一个bin分别计算其上下文,每一bin根据表6-1~6-4分别根据其所属组模式(sig_group_mode)选择相应的上下文模型。
例如对于bin9(从0开始的第9个bin),bin9属于第1组(表6-2),该组组模式sig_group1_mode0~15所对应的偏移值为4~7间,因此列出significant_flag和last_significant_flag的上下文模型的基本偏移值如下表7所示:
Figure DEST_PATH_IMAGE010
当块类型blk_cat确定了后pos4~7sig, pos4~7lstsig等值已确定。而根据表6-2,bin9_pos的sig_group_mode在组模式取值为3时选择pos4sig的值,其余依照bin9的组模式取值为0,1,2,4,5,6,7时及[8,15]是选择pos5sig的值。
同理,bin0~31可以并行计算,依照上述方法查表得到上下文模型的偏移值。所有bin分为4组,在分别将解析后的bin序列、各bin对应的上下文模型,以及每组bin的有效长度输出到后续的cabac_bin_ctx模块进行合并处理即得到最终的二进制化数据和对应的上下文。
所以,通过上面的方法可以同时得到4x4块内所有sig_coef_flag和last_sig_coef_flag的语法元素的所有二进制化的结果和上下文模型(包括基本偏移值和增量偏移值得到最终的上下文模型)。
对于prev_intra4x4_mode_flag和rem_intra4x4_pred_mode的二进制化,只需要将4x4块所有的flag同时获取到,并通过FL(7)+FL(1)同时二进制化以及产生相应的上下文。
此外,语法元素mvd_I0_x,mvd_I0_y的二进制化采用UEGK3二进制化模块106,完成UEGK3的功能(mvd相关语法元素),即完成TU(9),EGK3,以及对于mvd符号位的FL(1)方法的二进制化。第一部分为TU(9),第二部分为EGK3,即3阶指数哥伦布编码,若mvd绝对值大于9则存在,否则该部分不存在。
语法元素coef_abs_coef_minus1的二进制化采用UEGK0二进制化模块105,完成TU(14),EGK0,以及对于level系数的符号位的FL(1)方法的二进制化。第一部分为TU(14),第二部分,EGK0即0阶指数哥伦布编码,若残差绝对值减1大于14则存在,否则该部分不存在。
以上各语法元素依照表述方法进行二进制化后依据各语法元素产生的bin串、每个bin对应的上下文模型以及对应的bin串的长度输入bin和上下文模型组合输出模块(bin_ctx_merge_align)111。继续参照图6,bin和上下文模型组合输出模块111产生所有语法元素的上下文增量和最终的上下文模型。对于每个输入的语法元素或语法元素组合,输入进来的是基本偏移量,该模块针对不同的bin根据标准规定并行产生所有bin需要的上下文模型增量,最终产生所有bin的对应的上下文模型。特别的,对于sig_coef_flag,last_sig_coef_flag和prev_intra4x4_mode_flag和rem_intra4x4_pred_mode的上下文模型由于已在上下文模型产生时依照块类型、像素位置等进行修正,因此进行bin和上下文模型组合输出时,只需要他们4组上下文模型合并,合并的方式如图7所示,第0组归为第一部分,第1,2,3组按照各组有效长度高位在左对齐合并为第二部分。对于需要用到相邻块的参数或标志来决定当前使用的上下文增量的语法元素,输入的相邻块的信息全部由Mvd和其他相邻信息缓存(cabac_mvd_mbinfo_ram)113提供输入,并按照编码标准规定的方式产生所有语法元素的相应的上下文信息。
Mvd和其他相邻信息缓存113是用以存放上一行宏块和左边宏块的mvd值和其它宏块信息,用于后续宏块产生上下文模型索引增量, 在读信号来的时候输出上一行宏块底部2个8x8块的mvd值,并将本宏块的底部2个8x8块的mvd值更新到RAM中。在读信号来的时候输出左边宏块右边2个8x8块的mvd值,并将本宏块相应块的mvd值更新到寄存器中。在读信号来的时候输出当前的宏块的第0,第1,第2个8x8块mvd值,供当前宏块中每个8x8块使用。本模块同时复用mbinfo(宏块相邻信息)的存储和读取,存储数据时和mvd一起打包在一起,接口时序一致。在读信号来的时候输出上一行宏块和左边宏块的mbinfo值,并将本宏块的mbinfo值更新到RAM和寄存器中。
如此,对应各语法元素产生二进制化后的bin串和相对应的上下文模型,此两部分数据(包括bin和上下文模型)通过所有语法元素分类可以得到二进制化后的bin串、每个bin对应的上下文模型以及对应的bin串的长度,以上数据可以依组别分为如图7所示的两个部分存在第一部分缓存和第一部分缓存中,对两部分的分类方式是将重要系数和最后重要系数和推断预测模式二进制化模块108的group0,UEGK3的前9位,UEGK0的前14位以及其它语法元素的二进制化和上下文结果归入第一部分,存在第一部分缓存中,并将重要系数和最后重要系数和推断预测模式二进制化模块(sig_lstsig_PIPM_RIPM)108的剩余部分,UEGK3的剩余部分,UEGK0的剩余部分归入第二部分,存在第二部分缓存中。bin和上下文模型组合输出模块(bin_ctx_merge_align)111最后再把两部分的bin和对应的上下文模型合并成最终的bin序列和上下文模型, 对输入的两部分数据(包括bin和上下文模型)进行合并对齐,并且按照对齐的16组二进制化bin+上下文模型的方式输出。对齐的16组二进制化bin及上下文模型,也就是合并好的最终bin序列和上下文模型会打包对齐好输出到bin和上下文模型缓存模块112中。特别地,bin和上下文模型组合输出模块111若是遇到宏块结束或是片结束,则无论是否对齐都将结果输出。
这样语法元素的吞吐率可以达到最高40bin/clk的UEGK0类语法元素二进制化,和最高26bin/clk的UEGK3语法元素二进制化,以及最高32bin/clk的sig_coef_flag, last_sig_coef_flag和prev_intra4x4_mode_flag和rem_intra4x4_pred_mode的语法元素的二进制化,而语法元素的上下文模型亦可以用与二进制化吞吐率同样吞吐率产生。
本发明还提供一种cabac二进制化和上下文产生的编码装置,包括:交叉扫描模块100,语法元素、类型、二进制化方法、上下文偏移量产生模块103,上下文模型产生模块109,及上下文模型组合输出模块111。
交叉扫描模100块将4x4块内的16位像素按照交叉扫描的模式产生扫描后顺序的残差数据所对应的重要系数标志和最后重要系数标志,把重要系数标志和最后重要系数标志两者组合后的值,根据该值是非零值的标志组合成4组非零标志位模式,所述4组非零标志位模式存入分组重要系数模式缓存,而扫描后的level系数和符号位依照与扫描顺序相反的顺序存入残差数据缓存中。
语法元素、类型、二进制化方法、上下文偏移量产生模块103对第0组的重要系数标志和最后重要系数标志依照第二解析表进行解析,其有效位长度为4至8位;对第1、2、3组的重要系数标志和最后重要系数标志依照第一解析表进行解析,其有效位长度为3至6位;该组的解析结果包含1或0浮动值的最后重要系数标志时,以其他组的非0标志位模式决定该浮动值以产生第0至3组的二进制化bin序列bin0~31。
上下文模型产生模块(cabac_bin_ctx_inc)109决定当前块类型,取得对应的重要系数标志和最后重要系数标志的上下文模型的基本偏移量,且依照该bin的扫描位置和该组模式查表取得上下文模型的补充偏移量,将基本偏移量和补充偏移量相加得出各bin的上下文模型。
上下文模型组合输出模块111将解析后的bin序列及其对应的上下文模型输出进行合并处理,得到最终的二进制化数据和对应的上下文。
综上所述,本发明提供的cabac二进制化和上下文产生的编码方法提出了更优的并行处理16个系数的语法元素重要系数和最后重要系数SIG_LASTSIG的二进制化产生方法,及其上下文模型的产生方法。由于可于一个时钟周期并行处理16个系数的语法元素SIG(significant flag),LAST_SIG(last significant flag),一方面减少了每个宏块处理重要系数和最后重要系数的时间,另一方面减小了16个系数的语法元素重要系数和最后重要系数并行二进制化和上下文模型产生的复杂度。二进制化和上下文模型的吞吐率可以达到16bin/clk。此外,本发明的编码方法还可以达到最高40bin/clk的UEGK0类语法元素二进制化,最高26bin/clk的UEGK3语法元素二进制化,以及最高32bin/clk的sig_coef_flag,last_sig_coef_flag和prev_intra4x4_mode_flag和rem_intra4x4_pred_mode的语法元素的二进制化,以及同样吞吐率的所有语法元素的上下文模型产生。
以上所述仅是本发明的优选实施例而已,并非对本发明做任何形式上的限制,虽然本发明已以优选实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案的范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本实用发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。

Claims (10)

1.一种cabac二进制化和上下文产生的编码方法,其特征在于,所述编码方法包括:
将4x4块内的16位像素按照交叉扫描的模式产生扫描后顺序的残差数据所对应的重要系数标志和最后重要系数标志,把重要系数标志和最后重要系数标志两者组合后的值,根据该值是非零值的标志组合成4组非零标志位模式;
对第0组的重要系数标志和最后重要系数标志依照第二解析表进行解析,其有效位长度为4至8位;
对第1、2、3组的重要系数标志和最后重要系数标志依照第一解析表进行解析,其有效位长度为3至6位;
该组的重要系数标志和最后重要系数标志的解析结果包含1或0浮动值的最后重要系数标志时,以其他组的非0标志位模式决定该浮动值以产生第0至3组的二进制化bin序列bin0~31;
决定当前块类型,取得对应的重要系数标志和最后重要系数标志的上下文模型的基本偏移量,依照该bin序列的扫描位置和该组模式查表取得上下文模型的补充偏移量,将基本偏移量和补充偏移量相加得出各bin序列的上下文模型,所述块类型包括16x16预测模式的4x4亮度dc块、16x16预测模式的4x4亮度ac块、4x4预测模式的4x4亮度块、色度ac_u块、色度ac_v块、色度dc_u块、色度dc_v块中的一种或多种;
将解析后的bin序列及其对应的上下文模型输出进行合并处理,得到最终的二进制化数据和对应的上下文。
2.如权利要求1所述的编码方法,其中所述4组非零标志位模式存入分组重要系数模式缓存,而扫描后的level系数和符号位依照与扫描顺序相反的顺序存入残差数据缓存中。
3. 如权利要求1所述的编码方法,其中更包括将第0组的16x16预测模式的亮度dc块,色度dc_u块, 色度dc_v块,4x4预测模式下的亮度块数据依照所述第一解析表进行解析。
4. 如权利要求3所述的编码方法,其中更包括将第0组的16x16预测模式的亮度ac块,色度ac_u块, 色度ac_v块数据依照所述第二解析表进行解析。
5.如权利要求1所述的编码方法,其中该组为第3组时,该浮动值设为1。
6.如权利要求1所述的编码方法,其中该组为第2组时,该浮动值不等于该第3组模式对应的值,若所述第三组模式对应的值为非零值,则所述浮动值设为0,若所述第三组模式对应的值为0,则所述浮动值设为1。
7. 如权利要求1所述的编码方法,其中更包括将解析后的bin序列及其对应的上下文模型输出,将第0组数据归为第一部分,第1, 2, 3组数据按照各组有效长度高位在左对齐合并为第二部分合并处理。
8.如权利要求1所述的编码方法,其中更包括语法元素mvd_I0_x,mvd_I0_y的二进制化采用截断一元码及3阶哥伦布编码,完成TU(9),EGK3,以及对于mvd符号位的FL(1)方法的二进制化,所述FL(1)方法是指长度为1的定长编码方法;所述TU为截断一元码,所述EGK3为所述3阶哥伦布编码,若mvd绝对值小于9则采用截断一元码进行二进制化,若mvd绝对值大于9则采用3阶哥伦布编码进行二进制化。
9.如权利要求1所述的编码方法,其中更包括语法元素coef_abs_coef_minus1的二进制化采用截断一元码及0阶哥伦布编码,完成TU(14),EGK0,以及对于level系数的符号位的FL(1)方法的二进制化,所述FL(1)方法是指长度为1的定长编码方法;所述TU为截断一元码,所述EGK0为所述0阶哥伦布编码,若残差绝对值减1小于或者等于14,则采用截断一元码进行二进制化;若残差绝对值减1大于14则采用0阶哥伦布编码进行二进制化。
10.一种cabac二进制化和上下文产生的编码装置,其特征在于,所述编码装置包括:
交叉扫描模块,将4x4块内的16位像素按照交叉扫描的模式产生扫描后顺序的残差数据所对应的重要系数标志和最后重要系数标志,把重要系数标志和最后重要系数标志两者组合后的值,根据该值是非零值的标志组合成4组非零标志位模式,所述4组非零标志位模式存入分组重要系数模式缓存,而扫描后的level系数和符号位依照与扫描顺序相反的顺序存入残差数据缓存中;
语法元素、类型、二进制化方法、上下文偏移量产生模块,对第0组的重要系数标志和最后重要系数标志依照第二解析表进行解析,其有效位长度为4至8位;对第1、2、3组的重要系数标志和最后重要系数标志依照第一解析表进行解析,其有效位长度为3至6位;该组的解析结果包含1或0浮动值的最后重要系数标志时,以其他组的非0标志位模式决定该浮动值以产生第0至3组的二进制化bin序列bin0~31;
上下文模型产生模块,决定当前块类型,取得对应的重要系数标志和最后重要系数标志的上下文模型的基本偏移量,依照该bin的扫描位置和该组模式查表取得上下文模型的补充偏移量,将所述基本偏移量和所述补充偏移量相加得出各bin的上下文模型,所述块类型包括16x16预测模式的4x4亮度dc块、16x16预测模式的4x4亮度ac块、4x4预测模式的4x4亮度块、色度ac_u块、色度ac_v块、色度dc_u块、色度dc_v块中的一种或多种;
上下文模型组合输出模块,将解析后的bin序列及其对应的上下文模型输出进行合并处理,得到最终的二进制化数据和对应的上下文。
CN202210432743.0A 2022-04-24 2022-04-24 cabac二进制化和上下文模型产生的编码方法和装置 Active CN114531595B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210432743.0A CN114531595B (zh) 2022-04-24 2022-04-24 cabac二进制化和上下文模型产生的编码方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210432743.0A CN114531595B (zh) 2022-04-24 2022-04-24 cabac二进制化和上下文模型产生的编码方法和装置

Publications (2)

Publication Number Publication Date
CN114531595A CN114531595A (zh) 2022-05-24
CN114531595B true CN114531595B (zh) 2022-08-09

Family

ID=81627768

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210432743.0A Active CN114531595B (zh) 2022-04-24 2022-04-24 cabac二进制化和上下文模型产生的编码方法和装置

Country Status (1)

Country Link
CN (1) CN114531595B (zh)

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100612015B1 (ko) * 2004-07-22 2006-08-11 삼성전자주식회사 컨텍스트 적응형 이진 산술 부호화 방법 및 그 장치
US8098735B2 (en) * 2006-12-21 2012-01-17 Lsi Corporation Efficient 8×8 CABAC residual block decode
MX347473B (es) * 2012-07-02 2017-04-27 Samsung Electronics Co Ltd Metodo y aparato para codificar video por entropia, y metodo y aparato para decodificar video por entropia.
KR101983441B1 (ko) * 2014-05-28 2019-08-28 애리스 엔터프라이지즈 엘엘씨 비디오 코덱들에서의 콘텍스트 적응형 이진 산술 코딩(cabac)의 가속화
KR101642092B1 (ko) * 2014-10-06 2016-07-22 성균관대학교산학협력단 영상의 부호화/복호화 방법 및 이를 이용하는 장치
CN104581154B (zh) * 2014-12-31 2016-03-02 湖南国科微电子股份有限公司 一种熵编码方法和熵编码器电路
CN107071494B (zh) * 2017-05-09 2019-10-11 珠海市杰理科技股份有限公司 视频图像帧的二进制语法元素的生成方法和系统
CN108965878B (zh) * 2017-05-27 2019-11-15 深圳市中兴微电子技术有限公司 一种熵解码方法及装置
CN112369025A (zh) * 2018-07-02 2021-02-12 交互数字Vc控股公司 基于上下文的二进制算术编码和解码
CN112913246B (zh) * 2018-10-05 2023-09-15 Lg电子株式会社 用于编码变换系数的方法及其装置
CN110365346B (zh) * 2019-07-22 2021-07-06 浙江大华技术股份有限公司 一种算术熵编码方法及系统
US11375196B2 (en) * 2019-09-19 2022-06-28 Tencent America LLC Method of context modeling for entropy coding of transform coefficient flags with transform skip, and coding method with the same
CN113038140A (zh) * 2019-12-24 2021-06-25 扬智电子科技(中国)有限公司 视频解码方法与视频解码装置

Also Published As

Publication number Publication date
CN114531595A (zh) 2022-05-24

Similar Documents

Publication Publication Date Title
US11082695B2 (en) Method and apparatus of binarization and context-adaptive coding for syntax in video coding
KR102060871B1 (ko) 비디오 코딩에서의 팔레트 모드 콘텍스트 코딩 및 이진화를 위한 방법
US10893273B2 (en) Data encoding and decoding
JP6140850B2 (ja) ビデオ復号化方法及びビデオ復号化装置
US7486211B2 (en) Method and system for entropy coding
US6900748B2 (en) Method and apparatus for binarization and arithmetic coding of a data value
US20080219578A1 (en) Method and apparatus for context adaptive binary arithmetic coding and decoding
US7496143B2 (en) Method and arrangement for coding transform coefficients in picture and/or video coders and decoders and a corresponding computer program and a corresponding computer-readable storage medium
US7564384B2 (en) Binarizing method and device thereof
TWI435611B (zh) 利用適應性地更新之對照表來進行編碼/解碼的方法及其處理電路
CN107465934B (zh) 确定上下文模型的方法
US20070200737A1 (en) Entropy Coding Method For Coding Video Prediction Residual Coefficients
US20070133890A1 (en) Extension of two-dimensional variable length coding for image compression
US10298956B2 (en) Method and apparatus for block-based significance map and significance group flag context selection
WO2013068731A1 (en) Data encoding and decoding
Marpe et al. Context-based adaptive binary arithmetic coding in JVT/H. 26L
CN114531595B (zh) cabac二进制化和上下文模型产生的编码方法和装置
US20220217418A1 (en) Coding concept for a sequence of information values

Legal Events

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