CN116998149A - 系数的编解码方法、编码器、解码器及计算机存储介质 - Google Patents
系数的编解码方法、编码器、解码器及计算机存储介质 Download PDFInfo
- Publication number
- CN116998149A CN116998149A CN202180095284.5A CN202180095284A CN116998149A CN 116998149 A CN116998149 A CN 116998149A CN 202180095284 A CN202180095284 A CN 202180095284A CN 116998149 A CN116998149 A CN 116998149A
- Authority
- CN
- China
- Prior art keywords
- value
- identification information
- preset identification
- coefficient
- preset
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 185
- 238000013139 quantization Methods 0.000 claims abstract description 233
- 230000003044 adaptive effect Effects 0.000 claims description 40
- 238000004590 computer program Methods 0.000 claims description 22
- 238000004458 analytical method Methods 0.000 claims description 8
- 238000004364 calculation method Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 abstract description 33
- 230000009466 transformation Effects 0.000 description 32
- 238000012545 processing Methods 0.000 description 19
- 238000001914 filtration Methods 0.000 description 17
- 230000006835 compression Effects 0.000 description 16
- 238000007906 compression Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 16
- 230000009191 jumping Effects 0.000 description 10
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 239000011159 matrix material Substances 0.000 description 6
- 230000011218 segmentation Effects 0.000 description 5
- 238000005457 optimization Methods 0.000 description 4
- 108091026890 Coding region Proteins 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 241000023320 Luma <angiosperm> Species 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 239000011449 brick Substances 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000001131 transforming effect Effects 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- KLDZYURQCUYZBL-UHFFFAOYSA-N 2-[3-[(2-hydroxyphenyl)methylideneamino]propyliminomethyl]phenol Chemical compound OC1=CC=CC=C1C=NCCCN=CC1=CC=CC=C1O KLDZYURQCUYZBL-UHFFFAOYSA-N 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 201000001098 delayed sleep phase syndrome Diseases 0.000 description 1
- 208000033921 delayed sleep phase type circadian rhythm sleep disease Diseases 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011056 performance test Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000035755 proliferation Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
一种系数的编解码方法、编码器、解码器及计算机存储介质,该方法包括:基于待解码的量化系数位置,利用第一上下文模型的自适应二进制算术编码模式解析码流,获取非零标识信息的取值(S401);在非零标识信息的取值为第一值的情况下,利用第二上下文模型的自适应二进制算术编码模式解析码流,获取X个预设标识信息的取值;其中,X为大于零的自然数(S402);在第X预设标识信息的取值为第二值的情况下,根据所述非零标识信息的取值和所述X个预设标识信息的取值,确定所述量化系数位置对应的重建量化系数绝对值(S403)。该方法在编解码过程中能够更好的利用自适应编码特性,从而可以节省码率,进而提高编解码性能。
Description
相关申请的交叉引用
本申请要求在2021年03月12日提交中国专利局、申请号为202110272605.6、申请名称为“系数的编解码方法、编码器、解码器及计算机存储介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
本申请涉及视频编解码技术领域,尤其涉及一种系数的编解码方法、编码器、解码器及计算机存储介质。
随着人们对视频显示质量要求的提高,计算机视觉相关领域得到了越来越多的关注。近年来,图像处理技术在各行各业都取得了成功地应用。对于视频图像的编解码过程而言,在编码端,针对待编码的图像数据,在经过变换和量化处理之后将通过熵编码单元进行压缩编码,而熵编码处理后所生成的码流将传输到解码端;然后解析码流,再经过反量化和反变换处理之后,可以恢复出原始输入的图像数据。
在相关技术中,为了进一步压缩,编码端可以将残差数据从像素域变换到变换域,从而得到变换系数,这些系数可以按照系数扫描顺序由二维阵列量化后生成一维向量的量化系数,用于实现更多的压缩。然而,扫描线上各个位置的量化系数之间存在很多统计特性,但是目前的编码方式比较单一,并没有充分利用这些统计特性,导致编码性能较差。
发明内容
本申请提出一种系数的编解码方法、编码器、解码器及计算机存储介质,可以节省码率,从而能够提高编解码性能。
为达到上述目的,本申请的技术方案是这样实现的:
第一方面,本申请实施例提供了一种系数的解码方法,应用于解码器,该方法包括:
基于待解码的量化系数位置,利用第一上下文模型的自适应二进制算术编码模式解析码流,获取非零标识信息的取值;
在非零标识信息的取值为第一值的情况下,利用第二上下文模型的自适应二进制算术编码模式解析码流,获取X个预设标识信息的取值;其中,X为大于零的自然数;
在第X预设标识信息的取值为第二值的情况下,根据非零标识信息的取值和X个预设标识信息的取值,确定量化系数位置对应的重建量化系数绝对值。
第二方面,本申请实施例提供了一种系数的编码方法,应用于编码器,该方法包括:
确定待编码的量化系数;
根据量化系数确定非零标识信息的取值,并利用第一上下文模型的自适应二进制算术编码模式对非零标识信息的取值进行熵编码;
在非零标识信息的取值为第一值的情况下,根据量化系数确定X个预设标识信息的取值,并利用第二上下文模型的自适应二进制算术编码模式对X个预设标识信息的取值依次进行熵编码;其中,X为大于零的自然数;
在第X预设标识信息的取值为第二值的情况下,将编码后得到的比特信息写入码流。
第三方面,本申请实施例提供了一种编码器,该编码器包括第一确定单元和熵编码单元;其中,
第一确定单元,配置为确定待编码的量化系数;
熵编码单元,配置为根据量化系数确定非零标识信息的取值,并利用第一上下文模型的自适应二进制算术编码模式对非零标识信息的取值进行熵编码;以及在非零标识信息的取值为第一值的情况下,根 据量化系数确定X个预设标识信息的取值,并利用第二上下文模型的自适应二进制算术编码模式对X个预设标识信息的取值依次进行熵编码;其中,X为大于零的自然数;
熵编码单元,还配置为在第X预设标识信息的取值为第二值的情况下,将编码后得到的比特信息写入码流。
第四方面,本申请实施例提供了一种编码器,该编码器包括第一存储器和第一处理器;其中,
第一存储器,用于存储能够在所述第一处理器上运行的计算机程序;
第一处理器,用于在运行计算机程序时,执行如第二方面所述的方法。
第五方面,本申请实施例提供了一种解码器,该解码器包括解析单元和第二确定单元;其中,
解析单元,配置为基于待解码的量化系数位置,利用第一上下文模型的自适应二进制算术编码模式解析码流,获取非零标识信息的取值;
解析单元,还配置为在非零标识信息的取值为第一值的情况下,利用第二上下文模型的自适应二进制算术编码模式解析码流,获取X个预设标识信息的取值;其中,X为大于零的自然数;
第二确定单元,配置为在第X预设标识信息的取值为第二值的情况下,根据非零标识信息的取值和X个预设标识信息的取值,确定量化系数位置对应的重建量化系数绝对值。
第六方面,本申请实施例提供了一种解码器,该解码器包括第二存储器和第二处理器;其中,
第二存储器,用于存储能够在所述第二处理器上运行的计算机程序;
第二处理器,用于在运行计算机程序时,执行如第一方面所述的方法。
第七方面,本申请实施例提供了一种计算机存储介质,该计算机存储介质存储有计算机程序,所述计算机程序被执行时实现如第一方面所述的方法、或者实现如第二方面所述的方法。
本申请实施例所提供的一种系数的编解码方法、编码器、解码器及计算机存储介质,在编码器侧,确定待编码的量化系数;根据该量化系数确定非零标识信息的取值,并利用第一上下文模型的自适应二进制算术编码模式对非零标识信息的取值进行熵编码;在非零标识信息的取值为第一值的情况下,根据该量化系数确定X个预设标识信息的取值,并利用第二上下文模型的自适应二进制算术编码模式对X个预设标识信息的取值依次进行熵编码;其中,X为大于零的自然数;在第X预设标识信息的取值为第二值的情况下,将编码后得到的比特信息写入码流。在解码器侧,基于待解码的量化系数位置,利用第一上下文模型的自适应二进制算术编码模式解析码流,获取非零标识信息的取值;在非零标识信息的取值为第一值的情况下,利用第二上下文模型的自适应二进制算术编码模式解析码流,获取X个预设标识信息的取值;其中,X为大于零的自然数;在第X预设标识信息的取值为第二值的情况下,根据非零标识信息的取值和X个预设标识信息的取值,确定量化系数位置对应的重建量化系数绝对值。这样,由于充分利用了各个位置的量化系数之间的统计特性,而且通过上下文模型对新引入的预设标识信息进行熵编码,能够在编解码过程中更好的利用自适应编码特性,从而可以节省码率,进而提高编解码性能。
图1为相关技术提供的一种编码框架的应用示意图;
图2为本申请实施例提供的一种编码器的***组成示意图;
图3为本申请实施例提供的一种解码器的***组成示意图;
图4为本申请实施例提供的一种系数的解码方法的流程示意图;
图5为相关技术提供的一种系数扫描顺序的结构示意图;
图6为相关技术提供的另一种系数扫描顺序的结构示意图;
图7为本申请实施例提供的一种系数的编码方法的流程示意图;
图8为本申请实施例提供的一种编码器的组成结构示意图;
图9为本申请实施例提供的一种编码器的具体硬件结构示意图;
图10为本申请实施例提供的一种解码器的组成结构示意图;
图11为本申请实施例提供的一种解码器的具体硬件结构示意图。
为了能够更加详尽地了解本申请实施例的特点与技术内容,下面结合附图对本申请实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本申请实施例。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。还需要指出,本申请实施例所涉及的术语“第一\第二\第三”仅是用于区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
在视频图像中,一般采用第一图像分量、第二图像分量和第三图像分量来表征编码块(Coding Block,CB)。其中,这三个图像分量分别为一个亮度分量、一个蓝色色度分量和一个红色色度分量,具体地,亮度分量通常使用符号Y表示,蓝色色度分量通常使用符号Cb或者U表示,红色色度分量通常使用符号Cr或者V表示;这样,视频图像可以用YCbCr格式表示,也可以用YUV格式表示。
对本申请实施例进行进一步详细说明之前,先对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释:
动态图像专家组(Moving Picture Experts Group,MPEG)
国际标准化组织(International Standardization Organization,ISO)
国际电工委员会(International Electrotechnical Commission,IEC)
联合视频专家组(Joint Video Experts Team,JVET)
开放媒体联盟(Alliance for Open Media,AOM)
下一代视频编码标准H.266/多功能视频编码(Versatile Video Coding,VVC)
VVC的参考软件测试平台(VVC Test Model,VTM)
音视频编码标准(Audio Video Standard,AVS)
AVS的高性能测试模型(High-Performance Model,HPM)
变换系数(Transform coefficients)
量化参数(Quantization Parameter)
基于上下文的自适应变长编码(Context-based Adaptive Variable-Length code,CAVLC)
基于上下文的自适应二进制算术编码(Context-based Adaptive Binary Arithmetic Coding,CABAC)
基于扫描区域的系数编码(Scan Region based Coefficient Coding,SRCC)
可以理解,数字视频压缩技术主要是将庞大的数字影像视频数据进行压缩,以便于传输以及存储等。随着互联网视频的激增以及人们对视频清晰度的要求越来越高,尽管已有的数字视频压缩标准能够节省不少视频数据,但目前仍然需要追求更好的数字视频压缩技术,以减少数字视频传输的带宽和流量压力。
其中,视频压缩包括用于减少或取出视频内在冗余的帧内预测(空域)和/或帧间预测(时域),残差信息的变换/量化和反量化/逆变换,可以提高主客观重建质量的环路滤波和熵编码等多个步骤,具体如图1所示。主流的视频压缩标准基本上都描述的是以块为基础的压缩技术。一个视频片(slice),一帧图片或一系列图片会被划分成以编码树单元(Coding Tree Unit,CTU)的基本单元,以此为基础进一步被划分成以编码单元(Coding Unit,CU)为单位的块。帧内块通过块周边像素作为参考进行预测,帧间块则参考空间上的邻近块信息和其他帧里的参考信息。与预测信号相对,残差信息通过以块为单位的变换\量化和熵编码后生成码流。这些技术被描述在标准里并实施在的各种与视频压缩相关的领域。国际上,主流的标准有H.264/高级视频编码(Advanced Video Coding,AVC)标准,H.265/高效视频编码(High Efficiency Video Coding,HEVC)标准,H.266/多功能视频编码(Versatile Video Coding,VVC)标准以及这些标准的拓展等,视频设备可以通过实施这些技术来达到更高效的视频编解码和传输储存。
空间或时间预测得到待译码块的预测块。残差数据表示待译码的原始块与预测块之间的像素差。为了进一步压缩,可将残差数据从像素域变换到变换域,从而得到残差变换系数,所述系数随后可以按照系数扫描顺序对二维阵列布置的变换系数量化之后产生一维向量的量化系数,所述系数可应用熵编码以实现更多的压缩。这里,待译码块可以是指待编码的块,也可以是指待解码的块。
具体来说,在编码器侧,可以包括变换单元与量化单元。首先针对待译码块,比如预测残差(可以用residual表示)通过变换单元进行变换后,可以得到变换系数矩阵(或称为“变换块”),然后针对该变换系数矩阵通过量化单元进行量化处理,将最终的量化系数写入视频码流(bitstream)。
在解码器侧,可以包括反量化单元与逆变换单元。首先通过解析码流,可以获得变换系数矩阵对应的量化系数,通过反量化单元对该量化系数进行反量化处理(也可以称之为“缩放(Scaling)”),能够得到变换系数矩阵的重建值,进而得到系数矩阵;然后再通过逆变换单元对系数矩阵进行与编码器侧变换单元对应的反变换,最终得到residual的重构块。
在相关技术中,量化处理可以利用系数间的相关性,利用已量化系数的特性来选择更优的量化方式, 从而达到优化量化的目的。为方便形成视频码率,特定的扫描顺序可以把一个二维的系数块变换成一维系数流。其中,扫描顺序可以是Zigzag、水平、垂直或者其它任何一种扫描顺序。在已有的大多数视频编码标准中,非二值化的量化系数需要进一步二值化得到比特(bins),二值化的量化系数经基于模型的二值化算术编码生成最后的码流。然而,由于扫描线上各个位置的量化系数之间存在很多统计特性,但是目前的编码方式比较单一,基于上下文模型的自适应二进制算术编码并没有充分利用这些统计特性,导致编码性能较差。
本申请实施例提供了一种系数的编码方法,该方法的基本思想是:确定待编码的量化系数;根据所述量化系数确定非零标识信息的取值,并利用第一上下文模型的自适应二进制算术编码模式对所述非零标识信息的取值进行熵编码;在所述非零标识信息的取值为第一值的情况下,根据所述量化系数确定X个预设标识信息的取值,并利用第二上下文模型的自适应二进制算术编码模式对所述X个预设标识信息的取值依次进行熵编码;其中,X为大于零的自然数;在第X预设标识信息的取值为第二值的情况下,将编码后得到的比特信息写入码流。
本申请实施例还提供了一种系数的解码方法,该方法的基本思想是:基于待解码的量化系数位置,利用第一上下文模型的自适应二进制算术编码模式解析码流,获取非零标识信息的取值;在所述非零标识信息的取值为第一值的情况下,利用第二上下文模型的自适应二进制算术编码模式解析码流,获取X个预设标识信息的取值;其中,X为大于零的自然数;在第X预设标识信息的取值为第二值的情况下,根据所述非零标识信息的取值和所述X个预设标识信息的取值,确定所述量化系数位置对应的重建量化系数绝对值。
这样,由于充分利用了各个位置的量化系数之间的统计特性,而且通过上下文模型对新引入的预设标识信息进行熵编码,能够在编解码过程中更好的利用自适应编码特性,从而可以节省码率,进而提高编解码性能。
下面将结合附图对本申请各实施例进行详细阐述。
参见图2,其示出了本申请实施例提供的一种编码器的***组成框图示例。如图2所示,编码器100可以包括:分割单元101、预测单元102、第一加法器107、变换单元108、量化单元109、反量化单元110、逆变换单元111、第二加法器112、滤波单元113、解码图片缓存(Decoded Picture Buffer,DPB)单元114和熵编码单元115。这里,编码器100的输入可以是由一系列图片或者一张静态图片组成的视频,编码器100的输出可以是用于表示输入视频的压缩版本的比特流(也可以称为“码流”)。
其中,分割单元101将输入视频中的图片分割成一个或多个编码树单元(Coding Tree Units,CTUs)。分割单元101将图片分成多个图块(或称为瓦片,tiles),还可以进一步将一个tile分成一个或多个砖块(bricks),这里,一个tile或者一个brick中可以包括一个或多个完整的和/或部分的CTUs。另外,分割单元101可以形成一个或多个切片(slices),其中一个slice可以包括图片中按照栅格顺序排列的一个或多个tiles,或者覆盖图片中矩形区域的一个或多个tiles。分割单元101还可形成一个或多个子图片,其中,一个子图片可以包括一个或多个slices、tiles或bricks。
在编码器100的编码过程中,分割单元101将CTU传送到预测单元102。通常,预测单元102可以由块分割单元103、运动估计(Motion Estimation,ME)单元104、运动补偿(Motion Compensation,MC)单元105和帧内预测单元106组成。具体地,块分割单元103迭代地使用四叉树分割、二叉树分割和三叉树分割而进一步将输入CTU划分成更小的编码单元(Coding Units,CUs)。预测单元102可使用ME单元104和MC单元105获取CU的帧间预测块。帧内预测单元106可使用包括MIP模式的各种帧内预测模式获取CU的帧内预测块。在示例中,率失真优化的运动估计方式可被ME单元104和MC单元105调用以获取帧间预测块,以及率失真优化的模式确定方式可被帧内预测单元106调用以获取帧内预测块。
预测单元102输出CU的预测块,第一加法器107计算分割单元101的输出中的CU和CU的预测块之间的差值,即残差CU。变换单元108读取残差CU并对残差CU执行一个或多个变换操作以获取系数。量化单元109对系数进行量化并输出量化系数(即levels)。反量化单元110对量化系数执行缩放操作以输出重构系数。逆变换单元111执行对应于变换单元108中的变换的一个或多个逆变换并输出重构残差。第二加法器112通过使重构残差和来自预测单元102的CU的预测块相加而计算出重构CU。第二加法器112还将其输出发送到预测单元102以用作帧内预测参考。在图片或子图片中的所有CU被重构之后,滤波单元113对重构图片或子图片执行环路滤波。这里,滤波单元113包含一个或多个滤波器,例如去方块滤波器、采样自适应偏移(Sample Adaptive Offset,SAO)滤波器、自适应环路滤波器(Adaptive Loop Filter,ALF)、亮度映射和色度缩放(Luma Mapping with Chroma Scaling,LMCS)滤波器以及基于神经网络的滤波器等。或者,当滤波单元113确定CU不用作其它CU编码时的参考时,滤波单元113对CU中的一个或多个目标像素执行环路滤波。
滤波单元113的输出是解码图片或子图片,这些解码图片或子图片缓存至DPB单元114。DPB单元114根据时序和控制信息输出解码图片或子图片。这里,存储在DPB单元114中的图片还可用作预测单元102执行帧间预测或帧内预测的参考。最后熵编码单元115将来自编码器100中解码图片所必需的参数(比如控制参数和补充信息等)转换成二进制形式,并根据每个数据单元的语法结构将这样的二进制形式写入码流中,即编码器100最终输出码流。
进一步地,编码器100可以是具有第一处理器和记录计算机程序的第一存储器。当第一处理器读取并运行计算机程序时,编码器100读取输入视频并生成对应的码流。另外,编码器100还可以是具有一个或多个芯片的计算设备。在芯片上实现为集成电路的这些单元具有与图2中相应单元类似的连接和数据交换功能。
参见图3,其示出了本申请实施例提供的一种解码器的***组成框图示例。如图3所示,该解码器200可以包括:解析单元201、预测单元202、反量化单元205、逆变换单元206、加法器207、滤波单元208和解码图片缓存单元209。这里,解码器200的输入是用于表示视频或者一张静态图片的压缩版本的比特流,解码器200的输出可以是由一系列图片组成的解码视频或者一张解码的静态图片。
其中,解码器200的输入码流可以是编码器100所生成的码流。解析单元201对输入码流进行解析并从输入码流获取语法元素的值。解析单元201将语法元素的二进制表示转换成数字值并将数字值发送到解码器200中的单元以获取一个或多个解码图片。解析单元201还可从输入码流解析一个或多个语法元素以显示解码图片。
在解码器200的解码过程中,解析单元201将语法元素的值以及根据语法元素的值设置或确定的、用于获取一个或多个解码图片的一个或多个变量发送到解码器200中的单元。
预测单元202确定当前解码块(例如CU)的预测块。这里,预测单元202可以包括运动补偿单元203和帧内预测单元204。具体地,当指示帧间解码模式用于对当前解码块进行解码时,预测单元202将来自解析单元201的相关参数传递到运动补偿单元203以获取帧间预测块;当指示帧内预测模式(包括基于MIP模式索引值指示的MIP模式)用于对当前解码块进行解码时,预测单元202将来自解析单元201的相关参数传送到帧内预测单元204以获取帧内预测块。
反量化单元205具有与编码器100中的反量化单元110相同的功能。反量化单元205对来自解析单元201的量化系数(即levels)执行缩放操作以获取重构系数。
逆变换单元206具有与编码器100中的逆变换单元111相同的功能。逆变换单元206执行一个或多个变换操作(即通过编码器100中的逆变换单元111执行的一个或多个变换操作的反操作)以获取重构残差。
加法器207对其输入(来自预测单元202的预测块和来自逆变换单元206的重构残差)执行相加操作以获取当前解码块的重构块。重构块还发送到预测单元202以用作在帧内预测模式下编码的其它块的参考。
在图片或子图片中的所有CU被重构之后,滤波单元208对重构图片或子图片执行环路滤波。滤波单元208包含一个或多个滤波器,例如去方块滤波器、采样自适应补偿滤波器、自适应环路滤波器、亮度映射和色度缩放滤波器以及基于神经网络的滤波器等。或者,当滤波单元208确定重构块不用作对其它块解码时的参考时,滤波单元208对重构块中的一个或多个目标像素执行环路滤波。这里,滤波单元208的输出是解码图片或子图片,解码图片或子图片缓存至DPB单元209。DPB单元209根据时序和控制信息输出解码图片或子图片。存储在DPB单元209中的图片还可用作通过预测单元202执行帧间预测或帧内预测的参考。
进一步地,解码器200可以是具有第二处理器和记录计算机程序的第二存储器。当第一处理器读取并运行计算机程序时,解码器200读取输入码流并生成对应的解码视频。另外,解码器200还可以是具有一个或多个芯片的计算设备。在芯片上实现为集成电路的这些单元具有与图3中相应单元类似的连接和数据交换功能。
还需要说明的是,当本申请实施例应用于编码器100时,“当前块”具体是指视频图像中的当前待编码的块(也可以称为“编码块”);当本申请实施例应用于解码器200时,“当前块”具体是指视频图像中的当前待解码的块(也可以称为“解码块”)。
本申请的一实施例中,参见图4,其示出了本申请实施例提供的一种系数的解码方法的流程示意图。如图4所示,该方法可以包括:
S401:基于待解码的量化系数位置,利用第一上下文模型的自适应二进制算术编码模式解析码流,获取非零标识信息的取值。
S402:在所述非零标识信息的取值为第一值的情况下,利用第二上下文模型的自适应二进制算术编码模式解析码流,获取X个预设标识信息的取值;其中,X为大于零的自然数。
S403:在第X预设标识信息的取值为第二值的情况下,根据所述非零标识信息的取值和所述X个预设标识信息的取值,确定所述量化系数位置对应的重建量化系数绝对值。
需要说明的是,本申请实施例的解码方法主要应用于解码器。具体来说,基于图3所示的解码器200的组成结构,本申请实施例的解码方法应用于解码器200中的“解析单元201”部分,针对该解析单元201,可以采用基于上下文模型的自适应二进制算术编码模式解码得到重建量化系数。
具体来说,在本申请实施例中,视频信号经帧内或帧间预测处理后可以得到待译码块的残差,该残差信号可能进一步做变换得到变换系数(也可以简称为“系数”,coefficient)。为了方便描述,可以将未经变换的残差信号和经变换的残差信号统称为变换系数。为进行有效的压缩,还需要对变换系数进行量化处理。量化通常被用于降低变换系数的动态范围,从而达到用更少的码字表达视频的目的。量化后的数值可以称之为“量化系数”,通常也可以称为级别、量化级别或者量化电平(level)。量化的操作通常是用变换系数除以量化步长,而量化步长由在码流传递的量化因子确定的。其中,在编码器中,量化系数还需要进行熵编码以写入码流;如此在解码器中,则需要通过解析码流以得到重建量化系数。这样,反量化的操作则是通过重建量化系数乘以量化步长、得到重建变换系数来实现。对于一个N×M大小的块,所有变换系数的量化处理可以独立完成,这一技术也被广泛地应用在很多国际视频压缩标准,例如H.264、HEVC中。
可以理解,在最新的国际视频压缩标准中,量化操作可以利用变换系数间的相关性,利用已量化系数的特性来选择更优的量化方式,从而达到优化量化的目的。为方便形成视频码率,特定的扫描顺序可以把一个二维的系数块变换成一维系数流。扫描顺序可以是Zigzag、水平、垂直或者其它任何一种扫描顺序。在已有的大多数视频编码国际标准中,非二值化的级别进一步二值化得到bins,二值化的级别经基于模型的二值化算术编码器产生最后的码流。
在相关技术中,目前系数的熵编码方法主要包括有基于上下文的自适应变长编码(CAVLC)和基于上下文的自适应二进制算术编码(CABAC)两种。其中,CABAC是一种典型的熵编码技术,其当前在一些编码标准中受到支持。CABAC可以涉及若干阶段,包括二值化、上下文模型选择及二进制算术编码等阶段。在二值化中,将任何非二进制符号映射为二进制序列。在上下文模型中,将模型概率分布指派给正被编码的元素(也可称为“二元符号”)。接着,在后续二进制算术编码阶段中,使用所指派的概率分布模型来执行编码,以便产生形成根据所指派的模型概率分布而编码的元素的经编码表示的位序列。
对于CABAC编码过程而言,这时候使用CABAC对数据符号进行编码涉及以下步骤中的一项或者多项:
(1)二进制化:如果待编码的数据并非二进制值,那么需要将其映射到一连串所谓的“二进制数”。每一二进制数可具有为“0”或“1”的值,通常可以称为bin。
(2)上下文建模(确定上下文模型的索引序号):待编码的数据具有上下文相关性,利用已编码数据提供的上下文信息,为待编码的数据选择合适的概率模型,这就是上下文建模(即确定上下文模型)。通过对上下文模型的构建,基本概率模型能够适应随视频图像而改变的统计特性,降低数据之间的冗余度,并减少运算开支。通常有很多上下文模型,每个上下文模型均具有自己的上下文索引序号,用ctxIdx表示。每个不同的符号依据对应的上下文模型,来索引出自身的概率查找表。即收到符号后,先找到该符号对应的上下文模型的索引序号(ctxIdx),然后根据ctxIdx找到其对应的概率查找表。
(3)二进制数编码:通过上下文建模找到的概率模型的概率估计方法构成了一个自适应二进制算术编码器。该算术编码器需要将bin的值的概率(即二进制数的值等于“0”的概率和二进制数的值等于“1”的概率)作为输入。其原理与一般算术编码一样,不同的是,二进制算术编码序列只有“0”和“1”两种符号,所涉及的概率也只有P(0)和P(1)。
(4)状态更新:在算术编码的过程中,尽管是同一上下文模型,但是概率并不是固定的,每次输入一个新符号都会改变相应上下文模型的概率,也就是基于二进制数的实际编码值更新选定上下文的概率(例如,如果二进制数值是“1”,则增加“1”的概率)。
需要说明的是,对于近似均匀分布的语法元素,在编码和解码时选择旁路(bypass)模式,可以免除上下文建模,提高编解码的速度。
在一种具体的实施方式中,以VVC为例,在VVC中,一个变换块中的变换系数可以分成多组不重叠的系数组。系数组的大小取决于变换块的大小,一般包括1×16、2×8、8×2、2×4、4×2、16×1等。图5给出了相关技术提供的一种系数扫描顺序的结构示意图。如图5所示,其给出了一个VVC中按照对角扫描顺序对待译码块内的系数组以及系数组内的系数进行编码的示例。
在图5中,VVC系数编码从右下角第一个非零系数开始,沿预先确定的扫描顺序,直至最后左上角DC系数结束。对每一个位置的量化系数,下面几个可能的语法元素可能会写入码流来表示该量化系数,主要包括sig_coeff_flag、abs_level_gtx_flag[0]、par_level_flag、abs_level_gtx_flag[1]、abs_remainder和dec_abs_level、coeff_sign_flag等语法元素。其中,coeff_sign_flag表示量化系数是否非零,abs_level_gtx_flag[0]表示量化系数的绝对值是否大于1,par_level_flag表示量化系数是否是奇数还是偶数,abs_level_gtx_flag[1]表示量化系数的绝对值是否大于3,abs_remainder和dec_abs_level表示量化系数的绝对值中剩余待编码的值(这里,对于abs_remainder和dec_abs_level,两者是择其一使用;而且“量化系数的绝对值中剩余待编码的值”可以简称为“量化系数的绝对值剩余值”),coeff_sign_flag表示非零量化系数的正负。其具体的编码过程描述如下:
第一步,编码非零标志位sig_coeff_flag。若当前量化系数为0,则编0;若当前量化系数不为0,则编1。
第二步,若sig_coeff_flag为0,跳至下面第五步。若sig_coeff_flag为1,编码abs_level_gtx_flag[0];若当前量化系数的绝对值为1,则编0;若当前量化系数的绝对值不为1,则编1。
第三步,若abs_level_gtx_flag[0]为0,跳至下面第五步。若abs_level_gtx_flag[0]为1,编码par_level_flag;若当前量化系数为偶数,则编0;若当前量化系数为奇数,则编1。然后编码abs_level_gtx_flag[1];若当前量化系数的绝对值小于或等于3,则编0;若当前量化系数的绝对值大于3,则编1。
第四步,若abs_level_gtx_flag[1]为0,该位置的量化系数编码完成。若abs_level_gtx_flag[1]为1,编码当前量化系数的绝对值剩余值abs_remainder和dec_abs_level。
第五步,若sig_coeff_flag为0,该位置的量化系数编码完成。若sig_coeff_flag为1,根据当前量化系数的正负性,编码系数符号标志位coeff_sign_flag。若量化系数为正,则编0;若量化系数为负,则编1。
其中,各标志位(即语法元素)与量化系数的绝对值之间的对应关系如下表1所示。
表1
在表1中,|qk|表示量化系数的绝对值,sig表示非零标志位,用语法元素sig_coeff_flag表示;gt1表示量化系数的绝对值是否大于1,用语法元素abs_level_gtx_flag[0]表示;par(或者,parity_flag)表示量化系数是否是奇数还是偶数,用语法元素par_level_flag表示;gt3表示量化系数的绝对值是否大于3,用语法元素abs_level_gtx_flag[1]表示;rem表示量化系数的绝对值剩余值,用语法元素abs_remainder和dec_abs_level表示。
其中,量化系数的绝对值的计算方式为:|qk|=sig+gt1+par+2×gt3+2×rem。当某标志位不存在时,其取值按0处理。还需要注意的是,量化系数的绝对值剩余值(abs_remainder和dec_abs_level)以及符号标志位(coeff_sign_flag)使用旁路模式进行熵编码,除此之外的标志位均使用基于上下文模型的自适应编码方式进行熵编码。
在另一种具体的实施方式中,以AVS为例,在AVS3中,通常通过SRCC技术将需要编码的系数限定在一个范围内。系数扫描方式为以范围内的右下角为起点,按照反Zigzag的顺序进行扫描,直至最后左上角DC系数结束。基于该扫描区域的系数扫描顺序如图6所示。
对每一个位置的量化系数,下面几个可能的语法元素可能会写入码流来表示该量化系数,主要包括sig_flag、coeff_abs_level_greater1_flag、coeff_abs_level_greater2_flag、coeff_abs_level_remaining、coeff_sign等语法元素。其中,sig_flag表示量化系数是否非零,coeff_abs_level_greater1_flag表示量化系数的绝对值是否大于1,coeff_abs_level_greater2_flag表示量化系数的绝对值是否大于2,coeff_abs_level_remaining表示量化系数的绝对值大于2,其值是该量化系数的绝对值减3后的数值;coeff_sign表示非零量化系数的正负。其具体的编码过程描述如下:
第一步,编码非零标志位sig_flag。若当前量化系数为0,则编0;若当前量化系数不为0,则编1。
第二步,若sig_flag为0,跳至下面第五步。若sig_flag为1,编码coeff_abs_level_greater1_flag;若当前量化系数的绝对值为1,则编0;若当前量化系数的绝对值不为1,则编1。
第三步,若coeff_abs_level_greater1_flag为0,跳至下面第五步。若coeff_abs_level_greater1_flag 为1,编码coeff_abs_level_greater2_flag;若当前量化系数的绝对值为2,则编0;若当前量化系数的绝对值大于2,则编1。
第四步,若coeff_abs_level_greater2_flag为0,该位置的量化系数编码完成。若coeff_abs_level_greater2_flag为1,编码当前量化系数的绝对值剩余值coeff_abs_level_remaining。
第五步,若sig_flag为0,该位置的量化系数编码完成。若sig_flag为1,根据当前量化系数的正负性,编码系数符号标志位coeff_sign。若量化系数为正,则编0;若量化系数为负,则编1。
其中,各标志位(即语法元素)与量化系数的绝对值之间的对应关系如下表2所示。
表2
在表2中,|qk|表示量化系数的绝对值,sig表示非零标志位,用语法元素sig_flag表示;gt1表示量化系数的绝对值是否大于1,用语法元素coeff_abs_level_greater1_flag表示;gt2表示量化系数的绝对值是否大于2,用语法元素coeff_abs_level_greater2_flag表示;rem表示量化系数的绝对值剩余值,用语法元素coeff_abs_level_remaining表示。
其中,量化系数的绝对值的计算方式为:|qk|=sig+gt1+gt2+rem。当某标志位不存在时,其取值按0处理。还需要注意的是,量化系数的绝对值剩余值(coeff_abs_level_remaining)以及符号标志位(coeff_sign)使用旁路模式进行熵编码,除此之外的标志位均使用基于上下文模型的自适应二进制算数编码模式进行熵编码。
还需要说明的是,视频标准中通常所说的视频编码可以包括编码和解码两部分,因此,视频编码包括编码器侧的编码方法和解码器侧的解码方法。本申请实施例先针对解码器侧的解码方法进行描述。
在本申请实施例中,主要提出了一种对量化后得到的量化系数进行熵编码方式。这里,对量化系数的扫描方式并不做具体限制,例如对角线、Zigzag、水平、垂直、4×4子块扫描或任何其它扫描均为有效的扫描方式。
具体来说,针对当前待解码的量化系数位置,可以利用第一上下文模型的自适应二进制算术编码模式解析码流,获取非零标识信息的取值。在一些实施例中,在S401之后,该方法还可以包括:
在所述非零标识信息的取值为第二值的情况下,根据所述非零标识信息的取值,确定所述量化系数位置对应的重建量化系数。
需要说明的是,非零标识信息可以用语法元素sig_coeff_flag表示,也可以用语法元素sig_flag表示。一般而言,非零标识信息也可以简称为sig。
还需要说明的是,在一些实施例中,该方法还可以包括:若所述非零标识信息的取值为第一值,则确定所述重建量化系数为非零;若所述非零标识信息的取值为第二值,则确定所述重建量化系数为零。
在本申请实施例中,第一值可以为1,第二值可以为0。
需要说明的是,在另一具体的示例中,第一值还可以设置为true,第二值还可以设置为false。甚至在又一具体的示例中,第一值还可以设置为0,第二值还可以设置为1;或者,第一值还可以设置为false,第二值还可以设置为true。这里不作具体限定。
也就是说,以第一值可以为1,第二值为0为例,如果解码得到非零标识信息的取值为1,那么可以确定出重建量化系数为非零,这时候需要继续解析码流。如果解码得到非零标识信息的取值为0,那么可以确定出重建量化系数为零,这时候可以确定下一个待解码的量化系数位置。
还需要说明的是,第i预设标识信息可以用gti表示,而且第i预设标识信息用于指示重构量化系数绝对值是否大于i。在一些实施例中,该方法还可以包括:
若第i预设标识信息的取值为第一值,则确定重建量化系数绝对值大于i;
若第i预设标识信息的取值为第二值,则确定重建量化系数绝对值小于或等于i。其中,i为大于零且小于或等于X的自然数。
在这里,以第一值可以为1,第二值为0为例,如果解码得到第i预设标识信息的取值为1,那么可以确定出重建量化系数绝对值大于i,这时候需要继续解析码流以得到第i+1预设标识信息的取值。如果解码得到第i预设标识信息的取值为0,那么可以确定出重建量化系数绝对值小于或等于i,这时候可以根据解码结果确定出该量化系数位置对应的重建量化系数绝对值。
在本申请实施例中,一种具体的示例中,X的取值可以等于4。这样,所述四个预设标识信息可以包括:第一预设标识信息、第二预设标识信息、第三预设标识信息和第四预设标识;其中,
所述第一预设标识信息用于指示所述重建量化系数绝对值是否大于1;
所述第二预设标识信息用于指示所述重建量化系数绝对值是否大于2;
所述第三预设标识信息用于指示所述重建量化系数绝对值是否大于3;
所述第四预设标识信息用于指示所述重建量化系数绝对值是否大于4。
需要说明的是,第一预设标识信息可以用gt1表示,第二预设标识信息可以用gt2表示,第三预设标识信息可以用gt3表示,第四预设标识信息可以用gt4表示。这里,gt1、gt2、gt3、gt4可以使用同一套上下文模型,也可以是gt1和gt2共同使用一套上下文模型、gt3和gt4共同使用一套上下文模型;本申请实施例不作具体限定。
在一些实施例中,如果gt1、gt2、gt3、gt4可以使用同一套上下文模型(即第二上下文模型),那么在非零标识信息的取值为第一值的情况下,所述利用第二上下文模型的自适应二进制算术编码模式解析码流,获取X个预设标识信息的取值,可以包括:
利用第二上下文模型的自适应二进制算术编码模式解析码流,获取第一预设标识信息的取值;
若所述第一预设标识信息的取值为第一值,则利用第二上下文模型的自适应二进制算术编码模式解析码流,获取第二预设标识信息的取值;
若所述第二预设标识信息的取值为第一值,则利用第二上下文模型的自适应二进制算术编码模式解析码流,获取第三预设标识信息的取值;
若所述第三预设标识信息的取值为第一值,则利用第二上下文模型的自适应二进制算术编码模式解析码流,获取第四预设标识信息的取值。
在一些实施例中,第二上下文模型可以包括第二一上下文模型和第二二上下文模型。如果gt1和gt2共同使用一套上下文模型(即第二一上下文模型)、gt3和gt4共同使用一套上下文模型(即第二二上下文模型),那么在非零标识信息的取值为第一值的情况下,所述利用第二上下文模型的自适应二进制算术编码模式解析码流,获取X个预设标识信息的取值,可以包括:
利用第二一上下文模型的自适应二进制算术编码模式解析码流,获取第一预设标识信息的取值;
若所述第一预设标识信息的取值为第一值,则利用第二一上下文模型的自适应二进制算术编码模式解析码流,获取第二预设标识信息的取值;
若所述第二预设标识信息的取值为第一值,则利用第二二上下文模型的自适应二进制算术编码模式解析码流,获取第三预设标识信息的取值;
若所述第三预设标识信息的取值为第一值,则利用第二二上下文模型的自适应二进制算术编码模式解析码流,获取第四预设标识信息的取值。
也就是说,在一种具体的示例中,第一上下文模型、第二一上下文模型和第二二上下文模型是不同的。也就是说,非零标识信息可以使用一套上下文模型(即第一上下文模型),gt1和gt2共同使用一套上下文模型(即第二一上下文模型)、gt3和gt4共同使用一套上下文模型(即第二二上下文模型)。或者,在另一种具体的示例中,第二一上下文模型和第二二上下文模型是完全对应的,即gt1、gt2、gt3和gt4可以共同使用一套上下文模型(即第二上下文模型)。
特别注意的是,每一套上下文模型中的数量不作具体限定,而且确定上下文模型的索引序号的方式也不作具体限定。通常情况下,可以默认利用相关技术的已有方案确定上下文模型的索引序号。
进一步地,如果gt4的取值等于1,那么意味着重建量化系数绝对值大于4,这时候必然还存在重建量化系数绝对值的剩余值。在一些实施例中,该方法还可以包括:
在所述第四预设标识信息的取值为第一值的情况下,利用旁路模式解析码流,获取所述重建量化系数绝对值的剩余值;
根据所述非零标识信息的取值、所述四个预设标识信息的取值以及所述重建量化系数绝对值的剩余值,确定所述量化系数位置对应的重建量化系数绝对值。
在一种具体的示例中,所述根据所述非零标识信息的取值、所述四个预设标识信息的取值以及所述重建量化系数绝对值的剩余值,确定所述量化系数位置对应的重建量化系数绝对值,可以包括:
对所述非零标识信息的取值、所述第一预设标识信息的取值、所述第二预设标识信息的取值、所述第三预设标识信息的取值、所述第四预设标识信息的取值和所述重建量化系数绝对值的剩余值进行加法计算,得到所述量化系数位置对应的重建量化系数绝对值。
需要说明的是,旁路模式是指利用等概率模型进行熵解码。这样,在第四预设标识信息的取值为第一值的情况下,具体是指gt4的取值等于1,这时候利用旁路模式解析码流,可以获得重建量化系数绝对值的剩余值(用rem表示);然后对sig、gt1、gt2、gt3和gt4以及rem的取值进行加法计算,能够得到该量化系数位置对应的重建量化系数绝对值。
进一步地,在得到重建量化系数绝对值,还可以解码获得符号标识信息的取值,用于确定重建量化 系数的正负特性。在一些实施例中,该方法还可以包括:
利用旁路模式解析码流,获取符号标识信息的取值;
根据所述符号标识信息的取值和所述重建量化系数绝对值,确定所述量化系数位置对应的重建量化系数。
需要说明的是,对于重建量化系数的正负特性,在一些实施例中,该方法还可以包括:若所述符号标识信息的取值为第一值,则确定所述重建量化系数为负值;若所述符号标识信息的取值为第二值,则确定所述重建量化系数为正值。
在这里,以第一值可以为1,第二值为0为例,如果解码得到符号标识信息的取值为1,那么可以确定重建量化系数为负值;如果解码得到符号标识信息的取值为0,那么可以确定所述重建量化系数为正值。
进一步地,上述解码过程的顺序为相对顺序,实际情况可以根据具体标准进行调整。在一种可能的实施方式中,该方法还可以包括:
确定系数块以及所述系数块的预设扫描顺序;其中,所述系数块包括至少一个待解码的量化系数位置;
根据所述预设扫描顺序,通过解析码流依次获取所述至少一个待解码的量化系数位置对应的所述非零标识信息的取值和所述X个预设标识信息的取值;
根据所述预设扫描顺序,通过解析码流依次获取所述至少一个待解码的量化系数位置对应的重建量化系数绝对值的剩余值;
根据所述非零标识信息的取值、所述X个预设标识信息的取值和所述重建量化系数绝对值的剩余值,确定所述至少一个待解码的量化系数位置对应的重建量化系数绝对值。
需要说明的是,预设扫描顺序可以是对角线、Zigzag、水平、垂直、4×4子块扫描或者任何其它扫描顺序,本申请实施例不作具体限定。
还需要说明的是,该实施方式是以VVC标准为例。在VVC中,相关技术中的解码顺序为先按照预设扫描顺序依次解码每个重建量化系数绝对值的sig、gt1、par、gt3;然后按照预设扫描顺序再依次解码每个重建量化系数绝对值的rem。而在本申请实施例中,上述过程的解码顺序为先按照预设扫描顺序依次解码每个重建量化系数绝对值的sig、gt1、gt2、gt3、gt4;然后按照预设扫描顺序再依次解码每个重建量化系数绝对值的rem。
在另一种可能的实施方式中,该方法还可以包括:
确定系数块以及所述系数块的预设扫描顺序;其中,所述系数块包括至少一个待解码的量化系数位置;
根据所述预设扫描顺序,通过解析码流依次获取所述至少一个待解码的量化系数位置对应的所述非零标识信息的取值;
根据所述预设扫描顺序,通过解析码流依次获取所述至少一个待解码的量化系数位置对应的所述X个预设标识信息的取值;
根据所述预设扫描顺序,通过解析码流依次获取所述至少一个待解码的量化系数位置对应的重建量化系数绝对值的剩余值;
根据所述非零标识信息的取值、所述X个预设标识信息的取值和所述重建量化系数绝对值的剩余值,确定所述至少一个待解码的量化系数位置对应的重建量化系数绝对值。
需要说明的是,该实施方式是以AVS标准为例。在AVS中,解码顺序为先按照预设扫描顺序依次解码每个重建量化系数绝对值的sig,然后按照预设扫描顺序依次解码每个重建量化系数绝对值的gt1、gt2,最后按照预设扫描顺序再依次解码每个重建量化系数绝对值的rem。而在本申请实施例中,上述过程的解码顺序为先按照预设扫描顺序依次解码每个重建量化系数绝对值的sig,然后按照预设扫描顺序依次解码每个重建量化系数绝对值的gt1、gt2、gt3、gt4,最后按照预设扫描顺序再依次解码每个重建量化系数绝对值的rem。
除此之外,在一些实施例中,该方法还可以包括:
在对解码块的重建量化系数全部进行反量化处理后,根据所得到的重建变换系数确定重建变换块;
对所述重建变换块进行逆变换处理,得到重构残差块。
进一步地,在一些实施例中,该方法还可以包括:
解析码流,获取预测模式参数;
利用所述预测模式参数对所述当前块进行预测处理,得到所述解码块的预测块;
根据所述重构残差块和所述预测块,确定所述解码块的重构块。
需要说明的是,针对解码块的所有重建量化系数全部进行反量化处理后,可以将所得到的重建变换 系数组成重建变换块,其是尺寸参数为M
1×M
2。然后对该重建变换块进行逆变换处理,可以得到重构残差块。其中,对该重建变换块进行逆变换处理,该逆变换处理是编码器中变换处理的逆过程。需要注意的是,如果编码器在变换处理时某些系数没有进行变换处理,那么这些系数也不需要进行逆变换处理。
简言之,下面用级别称之量化系数,本申请实施例提供了一种新的量化后级别的熵编码方法,其具体改进了对量化后级别的编码方式。这里,对量化后级别的扫描方式并不做具体限定,对角线、Zigzag、水平、垂直、4×4子块扫描或任何其它扫描均为有效的扫描方式。
本申请实施例的级别编码主要包含以下4个部分:
第一部分为级别的非零标志(用sig表示),用于表明级别是否为非零系数。
第二部分为级别绝对值大于X标志(用gtx表示),用于表明级别是否大于X,X为大于0的自然数。此部分至少包含一个级别绝对值大于X标志;具体地,在本申请实施例中,可以包括:级别绝对值大于1标志(用gt1表示)、级别绝对值大于2标志(用gt2表示)、级别绝对值大于3标志(用gt3表示)、级别绝对值大于4标志(用gt4表示)。
第三部分为级别绝对值的剩余值(用rem表示),其所需编码的值按照已有方法(如旁路模式)完成剩余值的编码。
第四部分为级别的符号标志位(用coeff_sign表示),用于表明级别的正负性。
进一步地,在申请实施例中,级别绝对值的编码方式如表3所示。
表3
在表3中,|qk|表示级别绝对值,sig表示非零标志位,即非零标识信息;gt1表示级别绝对值是否大于1;gt2表示级别绝对值是否大于2;gt3表示级别绝对值是否大于3;gt4表示级别绝对值是否大于4;rem表示级别绝对值的剩余值。其中,级别绝对值的计算方式如下,
|q
k|=sig+gt1+gt2+gt3+gt4+rem (1)
在CABAC的过程中,sig可以单独使用一套上下文模型,即本申请实施例所述的第一上下文模型,gt1和gt2可以共同使用一套上下文模型,即本申请实施例所述的第二一上下文模型,gt3和gt4可以共同使用一套上下文模型,即本申请实施例所述的第二二上下文模型。其中,每套上下文模型的数目不做具体限定,确定上下文模型的索引序号的方式不做具体限定,本申请实施例默认按照相关技术的已有方案确定上下文模型的索引序号。
在一种具体的示例中,本申请实施例的方法在解码器中的实现如下:
首先,解码器获取码流信息,解析当前的解码块。按照预设扫描顺序来解析级别。其次,解码器确定出当前待解码的量化系数位置后,开始解码当前系数。具体过程如下:
第一步,首先解析级别的非零标志位sig。选择使用第一上下文模型进行解码,根据系数所在位置以及之前已解码系数信息确定上下文模型的索引序号。根据该索引序号确定上下文模型,然后按照CABAC模式解析码流。
第二步,若sig为1,跳至第三步;否则,跳至第十一步。
第三步,解析级别绝对值大于1标志位gt1。选择使用第二一上下文模型进行解码,根据系数所在位置以及之前已解码系数信息确定上下文模型的索引序号。根据该索引序号确定上下文模型,按照CABAC模式解析码流。
第四步,若gt1为1,跳至第五步;否则,跳至第十一步。
第五步,解析级别绝对值大于2标志位gt2。选择使用第二一上下文模型进行解码,根据系数所在位置以及之前已解码系数信息确定上下文模型的索引序号。根据该索引序号确定上下文模型,按照CABAC模式解析码流。
第六步,若gt2为1,跳至第五步;否则,跳至第十一步。
第七步,解析级别绝对值大于3标志位gt3。选择使用第二二上下文模型进行解码,根据系数所在位置以及之前已解码系数信息确定上下文模型的索引序号。根据该索引序号确定上下文模型,按照CABAC模式解析码流。
第八步,若gt3为1,跳至第五步;否则,跳至第十一步。
第九步,解析级别绝对值大于4标志位gt4。选择使用第二二上下文模型进行解码,根据系数所在位置以及之前已解码系数信息确定上下文模型的索引序号。根据该索引序号确定上下文模型,按照CABAC模式解析码流。
第十步,若gt4为1,解析级别绝对值的剩余值rem;否则,跳至第十一步。
第十一步,根据上述解码结果推导出级别绝对值。然后按照扫描顺序确定下一个待解码的量化系数位置。
特别说明的是,上述过程的顺序为相对顺序,实际情况根据具体标准调整。具体地,在VVC标准中,解码顺序为先按照扫描顺序依次解码每个级别绝对值的sig、gt1、par、gt3;然后按照扫描顺序依次解码每个级别绝对值的rem。这时候,本申请实施例的解码顺序为先按照扫描顺序依次解码每个级别绝对值的sig、gt1、gt2、gt3、gt4;然后按照扫描顺序依次解码每个级别绝对值的rem。在AVS标准中,解码顺序为先按照扫描顺序依次解码每个级别绝对值的sig,然后按照扫描顺序依次解码每个级别绝对值的gt1、gt2;最后按照扫描顺序依次解码每个级别绝对值的rem。这时候,本申请实施例的解码顺序为先按照扫描顺序依次解码每个级别绝对值的sig,然后按照扫描顺序依次解码每个级别绝对值的gt1、gt2、gt3、gt4;最后按照扫描顺序依次解码每个级别绝对值的rem。
还特别说明的是,上述gt3、gt4所使用的第二二上下文模型可以与gt1、gt2使用的第二一上下文模型完全对应。换言之,此时相当于,gt1、gt2、gt3、gt4共同使用第二上下文模型。
还需要说明的是,本申请实施例的系数熵编码并不具体针对某个特定的视频编码标准,而是一种普适化的系数熵编码方法。这样,由于本申请实施例提供的一种新的系数熵编码方法,其引入了gt3和gt4标识信息,并构建相应的上下文模型,从而改进了原有的变换系数熵编码方式。能够更好的利用自适应编码的特性,有效节省码率,能够提高编解码性能。
此外,本申请实施例的技术方案还可以扩展应用到其他标准,例如MPEG、AOM或任何自定义的系数熵编码方法中。
本申请实施例提供了一种系数的解码方法,应用于解码器。基于待解码的量化系数位置,利用第一上下文模型的自适应二进制算术编码模式解析码流,获取非零标识信息的取值;在所述非零标识信息的取值为第一值的情况下,利用第二上下文模型的自适应二进制算术编码模式解析码流,获取X个预设标识信息的取值;其中,X为大于零的自然数;在第X预设标识信息的取值为第二值的情况下,根据所述非零标识信息的取值和所述X个预设标识信息的取值,确定所述量化系数位置对应的重建量化系数绝对值。这样,由于充分利用了各个位置的量化系数之间的统计特性,而且通过上下文模型对新引入的预设标识信息进行熵编码,能够在编解码过程中更好的利用自适应编码特性,从而可以节省码率,进而提高编解码性能。
本申请的另一实施例中,参见图7,其示出了本申请实施例提供的一种系数的编码方法的流程示意图。如图7所示,该方法可以包括:
S701:确定待编码的量化系数;
S702:根据所述量化系数确定非零标识信息的取值,并利用第一上下文模型的自适应二进制算术编码模式对所述非零标识信息的取值进行熵编码;
S703:在所述非零标识信息的取值为第一值的情况下,根据所述量化系数确定X个预设标识信息的取值,并利用第二上下文模型的自适应二进制算术编码模式对所述X个预设标识信息的取值依次进行熵编码;其中,X为大于零的自然数;
S704:在第X预设标识信息的取值为第二值的情况下,将编码后得到的比特信息写入码流。
需要说明的是,本申请实施例的编码方法主要应用于编码器。具体来说,基于图2所示的编码器100的组成结构,本申请实施例的编码方法应用于编码器100中的“熵编码单元115”部分,针对该熵编码单元115,可以采用基于上下文模型的自适应二进制算术编码模式对量化系数进行熵编码。
还需要说明的是,视频标准中通常所说的视频编码可以包括编码和解码两部分,因此,视频编码包括编码器侧的编码方法和解码器侧的解码方法。本申请实施例则针对编码器侧的编码方法进行描述。
在本申请实施例中,主要提出了一种对量化后得到的量化系数进行熵编码方式。这里,对量化系数的扫描方式并不做具体限制,例如对角线、Zigzag、水平、垂直、4×4子块扫描或任何其它扫描均为有效的扫描方式。
具体来说,视频信号经帧内或帧间预测处理后可以得到待译码块的残差,该残差信号可能进一步做变换得到变换系数(也可以简称为“系数”,coefficient)。为了方便描述,可以将未经变换的残差信号和经变换的残差信号统称为变换系数。为进行有效的压缩,还需要对变换系数进行量化处理。量化通常被用于降低变换系数的动态范围,从而达到用更少的码字表达视频的目的。量化后的数值可以称之为“量 化系数”,通常也可以称为级别、量化级别或者量化电平(level)。量化的操作通常是用变换系数除以量化步长,而量化步长由在码流传递的量化因子确定的。
在一些实施例中,在确定出待编码的量化系数之后,该方法还可以包括:
若所述量化系数为非零,则确定所述非零标识信息的取值为第一值;
若所述量化系数为零,则确定所述非零标识信息的取值为第二值。
在本申请实施例中,第一值可以为1,第二值可以为0。
需要说明的是,在另一具体的示例中,第一值还可以设置为true,第二值还可以设置为false。甚至在又一具体的示例中,第一值还可以设置为0,第二值还可以设置为1;或者,第一值还可以设置为false,第二值还可以设置为true。这里不作具体限定。
进一步地,该方法还可以包括:在所述非零标识信息的取值为第二值的情况下,将编码后得到的比特信息写入码流。
也就是说,以第一值可以为1,第二值为0为例,如果量化系数为非零,那么可以确定出非零标识信息的取值为1,这时候需要继续确定其他标识信息(如X个预设标识信息的取值)。如果量化系数为零,那么可以确定出非零标识信息的取值为0,意味着该量化系数的编码完成,在将编码后得到的比特信息写入码流后,可以确定下一个待编码的量化系数。
还需要说明的是,第i预设标识信息可以用gti表示,而且第i预设标识信息用于指示量化系数的绝对值是否大于i。在一些实施例中,所述根据所述量化系数确定X个预设标识信息的取值,可以包括:
若所述量化系数的绝对值大于i,则确定第i预设标识信息的取值为第一值;
若所述量化系数的绝对值小于或等于i,则确定第i预设标识信息的取值为第二值。其中,i为大于零且小于或等于X的自然数。
在这里,以第一值可以为1,第二值为0为例,如果量化系数的绝对值大于i,那么可以确定出第i预设标识信息的取值为1,这时候需要继续确定第i+1预设标识信息的取值。如果量化系数的绝对值小于或等于i,那么可以确定出第i预设标识信息的取值为0,这时候将不再继续确定第i+1预设标识信息的取值。
在本申请实施例中,一种具体的示例中,X的取值可以等于4。这样,所述四个预设标识信息包括:第一预设标识信息、第二预设标识信息、第三预设标识信息和第四预设标识;其中,
所述第一预设标识信息用于指示所述量化系数的绝对值是否大于1;
所述第二预设标识信息用于指示所述量化系数的绝对值是否大于2;
所述第三预设标识信息用于指示所述量化系数的绝对值是否大于3;
所述第四预设标识信息用于指示所述量化系数的绝对值是否大于4。
在一种具体的示例中,所述根据所述量化系数确定X个预设标识信息的取值,可以包括:
若所述量化系数的绝对值大于1,则确定所述第一预设标识信息的取值为第一值;
若所述量化系数的绝对值小于或等于1,则确定所述第一预设标识信息的取值为第二值;以及
若所述量化系数的绝对值大于2,则确定所述第二预设标识信息的取值为第一值;
若所述量化系数的绝对值小于或等于2,则确定所述第二预设标识信息的取值为第二值;以及
若所述量化系数的绝对值大于3,则确定所述第三预设标识信息的取值为第一值;
若所述量化系数的绝对值小于或等于3,则所述确定第三预设标识信息的取值为第二值;以及
若所述量化系数的绝对值大于4,则确定所述第四预设标识信息的取值为第一值;
若所述量化系数的绝对值小于或等于4,则所述确定第四预设标识信息的取值为第二值。
需要说明的是,第一预设标识信息可以用gt1表示,第二预设标识信息可以用gt2表示,第三预设标识信息可以用gt3表示,第四预设标识信息可以用gt4表示。
还需要说明的是,gt1、gt2、gt3、gt4可以使用同一套上下文模型,也可以是gt1和gt2共同使用一套上下文模型、gt3和gt4共同使用一套上下文模型;本申请实施例不作具体限定。
在一些实施例中,如果gt1、gt2、gt3、gt4可以使用同一套上下文模型(即第二上下文模型),那么所述利用第二上下文模型的自适应二进制算术编码模式对所述X个预设标识信息的取值依次进行熵编码,可以包括:
利用第二上下文模型的自适应二进制算术编码模式对所述第一预设标识信息的取值、所述第二预设标识信息的取值、所述第三预设标识信息的取值和所述第四预设标识信息的取值依次进行熵编码。
在一些实施例中,第二上下文模型可以包括第二一上下文模型和第二二上下文模型。如果gt1和gt2共同使用一套上下文模型(即第二一上下文模型)、gt3和gt4共同使用一套上下文模型(即第二二上下文模型),那么所述利用第二上下文模型的自适应二进制算术编码模式对所述X个预设标识信息的取值依次进行熵编码,可以包括:
利用第二一上下文模型的自适应二进制算术编码模式对所述第一预设标识信息的取值和所述第二预设标识信息的取值依次进行熵编码;
利用第二二上下文模型的自适应二进制算术编码模式对所述第三预设标识信息的取值和所述第四预设标识信息的取值依次进行熵编码。
也就是说,在一种具体的示例中,第一上下文模型、第二一上下文模型和第二二上下文模型是不同的。也就是说,非零标识信息可以使用一套上下文模型(即第一上下文模型),gt1和gt2共同使用一套上下文模型(即第二一上下文模型)、gt3和gt4共同使用一套上下文模型(即第二二上下文模型)。或者,在另一种具体的示例中,第二一上下文模型和第二二上下文模型是完全对应的,即gt1、gt2、gt3和gt4可以共同使用一套上下文模型(即第二上下文模型)。
特别注意的是,每一套上下文模型中的数量不作具体限定,而且确定上下文模型的索引序号的方式也不作具体限定。通常情况下,可以默认利用相关技术的已有方案确定上下文模型的索引序号。
进一步地,如果量化系数的绝对值大于4,那么一方面可以确定gt4的取值等于1,另一方面可以确定这时候必然还存在量化系数的绝对值剩余值。在一些实施例中,该方法还可以包括:
在所述第四预设标识信息的取值为第一值的情况下,确定所述量化系数的绝对值剩余值;
利用旁路模式对所述量化系数的绝对值剩余值进行熵编码,并将编码后得到的比特信息写入码流。
在一种具体的示例中,所述确定所述量化系数的绝对值剩余值,可以包括:
利用所述量化系数的绝对值对所述非零标识信息的取值、所述第一预设标识信息的取值、所述第二预设标识信息的取值、所述第三预设标识信息的取值和所述第四预设标识信息的取值进行减法计算,得到所述量化系数的绝对值剩余值。
需要说明的是,旁路模式是指利用等概率模型进行熵编码。这样,在第四预设标识信息的取值为第一值的情况下,具体是指gt4的取值等于1,这时候根据量化系数的绝对值(用|q
k|表示),以及sig、gt1、gt2、gt3和gt4的取值,利用下述计算方式可以确定出量化系数的绝对值的剩余值(用rem表示),该计算方式如下,
rem=|q
k|-sig-gt1-gt2-gt3-gt4 (2)
进一步地,本申请实施例还可以根据量化系数确定符号标识信息的取值,用于确定量化系数的正负特性。在一些实施例中,该方法还可以包括:
根据所述量化系数,确定符号标识信息的取值;
利用旁路模式对所述量化系数的绝对值剩余值进行熵编码,并将编码后得到的比特信息写入码流。
在一种具体的示例中,所述根据所述量化系数,确定符号标识信息的取值,可以包括:
若所述量化系数为负值,则确定所述符号标识信息的取值为第一值;
若所述量化系数为正值,则确定所述符号标识信息的取值为第二值。
在这里,以第一值可以为1,第二值为0为例,如果量化系数为负值,那么可以确定出符号标识信息的取值为1,这时候对1进行熵编码;如果量化系数为正值,那么可以确定出符号标识信息的取值为0,这时候对0进行熵编码。
进一步地,上述编码过程的顺序为相对顺序,实际情况可以根据具体标准进行调整。在一种可能的实施方式中,该方法还可以包括:
确定系数块以及所述系数块的预设扫描顺序;其中,所述系数块包括至少一个待编码的量化系数;
根据所述预设扫描顺序,对所述至少一个待编码的量化系数对应的所述非零标识信息的取值和所述X个预设标识信息的取值依次进行熵编码;
根据所述预设扫描顺序,对所述至少一个待编码的量化系数对应的绝对值剩余值依次进行熵编码。
需要说明的是,该实施方式是以VVC标准为例。在VVC中,相关技术中的编码顺序为先按照预设扫描顺序对每个量化系数对应的sig、gt1、par、gt3依次进行熵编码;然后按照预设扫描顺序再对每个量化系数对应的rem依次进行熵编码。而在本申请实施例中,上述过程的编码顺序为先按照预设扫描顺序对每个量化系数对应的sig、gt1、gt2、gt3、gt4依次进行熵编码;然后按照预设扫描顺序再对每个量化系数对应的rem依次进行熵编码。
在另一种可能的实施方式中,该方法还可以包括:
确定系数块以及所述系数块的预设扫描顺序;其中,所述系数块包括至少一个待编码的量化系数;
根据所述预设扫描顺序,对所述至少一个待编码的量化系数对应的所述非零标识信息的取值依次进行熵编码;
根据所述预设扫描顺序,对所述至少一个待编码的量化系数对应的所述X个预设标识信息的取值依次进行熵编码;
根据所述预设扫描顺序,对所述至少一个待编码的量化系数对应的绝对值剩余值依次进行熵编码。
需要说明的是,该实施方式是以AVS标准为例。在AVS中,编码顺序为先按照预设扫描顺序对每个量化系数对应的sig依次进行熵编码,然后按照预设扫描顺序对每个量化系数对应的gt1、gt2依次进行熵编码,最后按照预设扫描顺序再对每个量化系数对应的rem依次进行熵编码。而在本申请实施例中,上述过程的编码顺序为先按照预设扫描顺序对每个量化系数对应的sig依次进行熵编码,然后按照预设扫描顺序对每个量化系数对应的gt1、gt2、gt3、gt4依次进行熵编码,最后按照预设扫描顺序再对每个量化系数对应的rem依次进行熵编码。
还需要说明的是,预设扫描顺序可以是对角线、Zigzag、水平、垂直、4×4子块扫描或者任何其它扫描顺序,本申请实施例不作具体限定。
本申请实施例中量化系数的编码主要包含以下4个部分:
第一部分为量化系数的非零标志(用sig表示),用于表明量化系数是否为非零系数。
第二部分为量化系数的绝对值大于X标志(用gtx表示),用于表明量化系数是否大于X,X为大于0的自然数。此部分至少包含一个量化系数的绝对值大于X标志;具体地,在本申请实施例中,可以包括:量化系数的绝对值大于1标志(用gt1表示)、量化系数的绝对值大于2标志(用gt2表示)、量化系数的绝对值大于3标志(用gt3表示)、量化系数的绝对值大于4标志(用gt4表示)。
第三部分为量化系数的绝对值剩余值(用rem表示),其所需编码的值按照已有方法(如旁路模式)完成绝对值剩余值的编码。
第四部分为量化系数的符号标志位(用coeff_sign表示),用于表明量化系数的正负性。
进一步地,在申请实施例中,量化系数的绝对值编码方式如上述的表3所示。还需要注意的是,量化系数的绝对值剩余值(rem)以及符号标志位(coeff_sign)使用旁路模式进行熵编码,除此之外的标志位(如sig、gt1、gt2、gt3、gt4等)均使用基于上下文模型的自适应二进制算数编码模式进行熵编码。
除此此外,在一些实施例中,在S701之前,该方法还可以包括:
确定视频图像中的编码块以及所述编码块的预测模式参数;
利用所述预测模式参数对所述编码块进行预测处理,确定所述编码块的预测块;
根据所述编码块和所述预测块,得到所述编码块的残差块;
对所述残差块进行变换和量化处理,得到所述编码块的系数块;其中,所述系数块包括至少一个量化系数。
在本申请实施例中,该方法还可以包括:将所述预测模式参数写入码流。
需要说明的是,这里的预测模式参数用于指示编码块采用的预测模式,而且不同的预测模式对应不同的预测模式参数。这里,针对预测模式参数的确定,可以根据失真值的大小进行确定,也可以根据率失真优化(Rate Distortion Optimization,RDO)的结果进行确定,本申请实施例不作任何限定。通常而言,可以采用RDO方式来确定编码块的预测模式参数。具体地,在一些实施例中,确定编码块的预测模式参数,可以包括:利用多种预测模式对所述编码块进行预编码处理,获取所述多种预测模式对应的率失真代价值;从所获取的多个率失真代价值中选择最优率失真代价值,将所述最优率失真代价值对应的预测模式确定为编码块的预测模式参数。
也就是说,在编码器中,可以采用多种预测模式分别对编码块进行预编码处理。这里,多种预测模式通常包括有帧间预测模式、传统帧内预测模式和非传统帧内预测模式。其中,传统帧内预测模式可以包括有直流(Direct Current,DC)模式、平面(PLANAR)模式和角度帧内预测模式等。非传统帧内预测模式可以包括有MIP模式、跨分量线性模型预测(Cross-component Linear Model Prediction,CCLM)模式、帧内块复制(Intra Block Copy,IBC)模式和PLT(Palette)模式等。而帧间预测模式可以包括有传统帧间预测模式和帧间几何划分预测(Geometrical partitioning for inter blocks,GEO)模式等。
示例性地,在利用多种预测模式分别对编码块进行预编码之后,可以得到所述多种预测模式对应的率失真代价值。然后从所得到的多个率失真代价值中选取最优率失真代价值(通常情况下,最小率失真代价值即为最优率失真代价值),并将该最优率失真代价值对应的预测模式确定为编码块的预测模式参数。如此,编码器使用该预测模式参数所指示的预测模式对编码块进行预测编码,可以使得预测残差较小,能够提高编码效率。需要注意的是,预测模式参数需要写入码流,以便解码器能够通过解析码流获得该预测模式参数,进而通过预测处理得到对应的预测块。
另外,针对编码块的变换块,可以是由当前块与利用预测模式参数所得到的预测块进行减法运算,确定出残差块之后,对残差块进行变换处理得到的。这里,针对残差块可以是全部进行二维变换,也可以部分进行二维变换,甚至也可以不进行二维变换,本申请实施例将该残差块变换后或者不经变换的块都统称为变换块。然后对变换块进行量化处理,即可得到编码块的系数块。
这样,在得到编码块的系数块之后,可以利用预设扫描顺序针对这至少一个量化系数进行熵编码,并将编码后得到的比特信息写入码流。
还需要说明的是,本申请实施例的系数熵编码并不具体针对某个特定的视频编码标准,而是一种普适化的系数熵编码方法。这样,由于本申请实施例提供的一种新的系数熵编码方法,其引入了gt3和gt4标识信息,并构建相应的上下文模型,从而改进了原有的变换系数熵编码方式。能够更好的利用自适应编码的特性,有效节省码率,能够提高编解码性能。
此外,本申请实施例的技术方案还可以扩展应用到其他标准,例如MPEG、AOM或任何自定义的系数熵编码方法中。
本申请实施例提供了一种系数的编码方法,应用于编码器。确定待编码的量化系数;根据所述量化系数确定非零标识信息的取值,并利用第一上下文模型的自适应二进制算术编码模式对所述非零标识信息的取值进行熵编码;在所述非零标识信息的取值为第一值的情况下,根据所述量化系数确定X个预设标识信息的取值,并利用第二上下文模型的自适应二进制算术编码模式对所述X个预设标识信息的取值依次进行熵编码;其中,X为大于零的自然数;在第X预设标识信息的取值为第二值的情况下,将编码后得到的比特信息写入码流。这样,由于充分利用了各个位置的量化系数之间的统计特性,而且通过上下文模型对新引入的预设标识信息进行熵编码,能够在编解码过程中更好的利用自适应编码特性,从而可以节省码率,进而提高编解码性能。
本申请的又一实施例中,基于前述实施例相同的发明构思,参见图8,其示出了本申请实施例提供的一种编码器80的组成结构示意图。如图8所示,编码器80可以包括:第一确定单元801和熵编码单元802;其中,
第一确定单元801,配置为确定待编码的量化系数;
熵编码单元802,配置为根据所述量化系数确定非零标识信息的取值,并利用第一上下文模型的自适应二进制算术编码模式对所述非零标识信息的取值进行熵编码;以及在所述非零标识信息的取值为第一值的情况下,根据所述量化系数确定X个预设标识信息的取值,并利用第二上下文模型的自适应二进制算术编码模式对所述X个预设标识信息的取值依次进行熵编码;其中,X为大于零的自然数;
熵编码单元802,还配置为在第X预设标识信息的取值为第二值的情况下,将编码后得到的比特信息写入码流。
在一些实施例中,第一确定单元801,还配置为若所述量化系数为非零,则确定所述非零标识信息的取值为第一值;若所述量化系数为零,则确定所述非零标识信息的取值为第二值。
在一些实施例中,熵编码单元802,还配置为在所述非零标识信息的取值为第二值的情况下,将编码后得到的比特信息写入码流。
在一些实施例中,第一确定单元801,还配置为若量化系数的绝对值大于X,则确定第X预设标识信息的取值为第一值;若量化系数的绝对值小于或等于X,则确定第X预设标识信息的取值为第二值。
在一些实施例中,X的取值等于4,所述四个预设标识信息包括:第一预设标识信息、第二预设标识信息、第三预设标识信息和第四预设标识;其中,所述第一预设标识信息用于指示所述量化系数的绝对值是否大于1;所述第二预设标识信息用于指示所述量化系数的绝对值是否大于2;所述第三预设标识信息用于指示所述量化系数的绝对值是否大于3;所述第四预设标识信息用于指示所述量化系数的绝对值是否大于4。
在一些实施例中,第一确定单元801,还配置为若所述量化系数的绝对值大于1,则确定所述第一预设标识信息的取值为第一值;若所述量化系数的绝对值小于或等于1,则确定所述第一预设标识信息的取值为第二值;以及若所述量化系数的绝对值大于2,则确定所述第二预设标识信息的取值为第一值;若所述量化系数的绝对值小于或等于2,则确定所述第二预设标识信息的取值为第二值;以及若所述量化系数的绝对值大于3,则确定所述第三预设标识信息的取值为第一值;若所述量化系数的绝对值小于或等于3,则所述确定第三预设标识信息的取值为第二值;以及若所述量化系数的绝对值大于4,则确定所述第四预设标识信息的取值为第一值;若所述量化系数的绝对值小于或等于4,则所述确定第四预设标识信息的取值为第二值。
在一些实施例中,熵编码单元802,还配置为利用第二上下文模型的自适应二进制算术编码模式对所述第一预设标识信息的取值、所述第二预设标识信息的取值、所述第三预设标识信息的取值和所述第四预设标识信息的取值依次进行熵编码。
在一些实施例中,所述第二上下文模型包括第二一上下文模型和第二二上下文模型;相应地,熵编码单元802,还配置为利用第二一上下文模型的自适应二进制算术编码模式对所述第一预设标识信息的取值和所述第二预设标识信息的取值依次进行熵编码;以及利用第二二上下文模型的自适应二进制算术编码模式对所述第三预设标识信息的取值和所述第四预设标识信息的取值依次进行熵编码。
在一些实施例中,第一确定单元801,还配置为在所述第四预设标识信息的取值为第一值的情况下, 确定所述量化系数的绝对值剩余值;
熵编码单元802,还配置为利用旁路模式对所述量化系数的绝对值剩余值进行熵编码,并将编码后得到的比特信息写入码流。
在一些实施例中,参见图8,编码器80还可以包括第一计算单元803,配置为利用量化系数的绝对值对非零标识信息的取值、第一预设标识信息的取值、第二预设标识信息的取值、第三预设标识信息的取值和第四预设标识信息的取值进行减法计算,得到所述量化系数的绝对值剩余值。
在一些实施例中,第一确定单元801,还配置为根据所述量化系数,确定符号标识信息的取值;
熵编码单元802,还配置为利用旁路模式对所述量化系数的绝对值剩余值进行熵编码,并将编码后得到的比特信息写入码流。
在一些实施例中,第一确定单元801,还配置为若所述量化系数为负值,则确定所述符号标识信息的取值为第一值;若所述量化系数为正值,则确定所述符号标识信息的取值为第二值。
在一些实施例中,所述第一值为1,所述第二值为0。
在一些实施例中,第一确定单元801,还配置为确定系数块以及所述系数块的预设扫描顺序;其中,所述系数块包括至少一个待编码的量化系数;
熵编码单元802,还配置为根据所述预设扫描顺序,对所述至少一个待编码的量化系数对应的所述非零标识信息的取值和所述X个预设标识信息的取值依次进行熵编码;以及根据所述预设扫描顺序,对所述至少一个待编码的量化系数对应的绝对值剩余值依次进行熵编码。
在一些实施例中,第一确定单元801,还配置为确定系数块以及所述系数块的预设扫描顺序;其中,所述系数块包括至少一个待编码的量化系数;
熵编码单元802,还配置为根据所述预设扫描顺序,对所述至少一个待编码的量化系数对应的所述非零标识信息的取值依次进行熵编码;以及根据所述预设扫描顺序,对所述至少一个待编码的量化系数对应的所述X个预设标识信息的取值依次进行熵编码;以及根据所述预设扫描顺序,对所述至少一个待编码的量化系数对应的绝对值剩余值依次进行熵编码。
可以理解地,在本申请实施例中,“单元”可以是部分电路、部分处理器、部分程序或软件等等,当然也可以是模块,还可以是非模块化的。而且在本实施例中的各组成部分可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
因此,本申请实施例提供了一种计算机存储介质,应用于编码器80,该计算机存储介质存储有计算机程序,所述计算机程序被第一处理器执行时实现前述实施例中任一项所述的方法。
基于上述编码器80的组成以及计算机存储介质,参见图9,其示出了本申请实施例提供的编码器80的具体硬件结构示意图。如图9所示,可以包括:第一通信接口901、第一存储器902和第一处理器903;各个组件通过第一总线***904耦合在一起。可理解,第一总线***904用于实现这些组件之间的连接通信。第一总线***904除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图9中将各种总线都标为第一总线***904。其中,
第一通信接口901,用于在与其他外部网元之间进行收发信息过程中,信号的接收和发送;
第一存储器902,用于存储能够在第一处理器903上运行的计算机程序;
第一处理器903,用于在运行所述计算机程序时,执行:
确定待编码的量化系数;
根据量化系数确定非零标识信息的取值,并利用第一上下文模型的自适应二进制算术编码模式对所述非零标识信息的取值进行熵编码;
在非零标识信息的取值为第一值的情况下,根据量化系数确定X个预设标识信息的取值,并利用第二上下文模型的自适应二进制算术编码模式对所述X个预设标识信息的取值依次进行熵编码;其中,X为大于零的自然数;
在第X预设标识信息的取值为第二值的情况下,将编码后得到的比特信息写入码流。
可以理解,本申请实施例中的第一存储器902可以是易失性存储器或非易失性存储器,或可包括易 失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DRRAM)。本申请描述的***和方法的第一存储器902旨在包括但不限于这些和任意其它适合类型的存储器。
而第一处理器903可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过第一处理器903中的硬件的集成逻辑电路或者软件形式的指令完成。上述的第一处理器903可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于第一存储器902,第一处理器903读取第一存储器902中的信息,结合其硬件完成上述方法的步骤。
可以理解的是,本申请描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(Application Specific Integrated Circuits,ASIC)、数字信号处理器(Digital Signal Processing,DSP)、数字信号处理设备(DSP Device,DSPD)、可编程逻辑设备(Programmable Logic Device,PLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。对于软件实现,可通过执行本申请所述功能的模块(例如过程、函数等)来实现本申请所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
可选地,作为另一个实施例,第一处理器903还配置为在运行所述计算机程序时,执行前述实施例中任一项所述的方法。
本实施例提供了一种编码器,该编码器可以包括第一确定单元和熵编码单元。这样,由于编码器充分利用了各个位置的量化系数之间的统计特性,而且通过上下文模型对新引入的预设标识信息进行熵编码,能够在编解码过程中更好的利用自适应编码特性,从而可以节省码率,进而提高编解码性能。
本申请的再一实施例中,基于前述实施例相同的发明构思,参见图10,其示出了本申请实施例提供的一种解码器100的组成结构示意图。如图10所示,该解码器100可以包括:解析单元1001和第二确定单元1002;其中,
解析单元1001,配置为基于待解码的量化系数位置,利用第一上下文模型的自适应二进制算术编码模式解析码流,获取非零标识信息的取值;
解析单元1001,还配置为在所述非零标识信息的取值为第一值的情况下,利用第二上下文模型的自适应二进制算术编码模式解析码流,获取X个预设标识信息的取值;其中,X为大于零的自然数;
第二确定单元1002,配置为在第X预设标识信息的取值为第二值的情况下,根据所述非零标识信息的取值和所述X个预设标识信息的取值,确定所述量化系数位置对应的重建量化系数绝对值。
在一些实施例中,所述第一值为1,所述第二值为0。
在一些实施例中,第二确定单元1002,还配置为在所述非零标识信息的取值为第二值的情况下,根据所述非零标识信息的取值,确定所述量化系数位置对应的重建量化系数。
在一些实施例中,X的取值等于4,所述四个预设标识信息包括:第一预设标识信息、第二预设标识信息、第三预设标识信息和第四预设标识;其中,
所述第一预设标识信息用于指示所述重建量化系数绝对值是否大于1;
所述第二预设标识信息用于指示所述重建量化系数绝对值是否大于2;
所述第三预设标识信息用于指示所述重建量化系数绝对值是否大于3;
所述第四预设标识信息用于指示所述重建量化系数绝对值是否大于4。
在一些实施例中,解析单元1001,还配置为利用第二上下文模型的自适应二进制算术编码模式解 析码流,获取第一预设标识信息的取值;以及若所述第一预设标识信息的取值为第一值,则利用第二上下文模型的自适应二进制算术编码模式解析码流,获取第二预设标识信息的取值;以及若所述第二预设标识信息的取值为第一值,则利用第二上下文模型的自适应二进制算术编码模式解析码流,获取第三预设标识信息的取值;以及若所述第三预设标识信息的取值为第一值,则利用第二上下文模型的自适应二进制算术编码模式解析码流,获取第四预设标识信息的取值。
在一些实施例中,所述第二上下文模型包括第二一上下文模型和第二二上下文模型,相应地,解析单元1001,还配置为利用第二一上下文模型的自适应二进制算术编码模式解析码流,获取第一预设标识信息的取值;以及若所述第一预设标识信息的取值为第一值,则利用第二一上下文模型的自适应二进制算术编码模式解析码流,获取第二预设标识信息的取值;以及若所述第二预设标识信息的取值为第一值,则利用第二二上下文模型的自适应二进制算术编码模式解析码流,获取第三预设标识信息的取值;以及若所述第三预设标识信息的取值为第一值,则利用第二二上下文模型的自适应二进制算术编码模式解析码流,获取第四预设标识信息的取值。
在一些实施例中,解析单元1001,还配置为在所述第四预设标识信息的取值为第一值的情况下,利用旁路模式解析码流,获取所述重建量化系数绝对值的剩余值;
第二确定单元1002,还配置为根据所述非零标识信息的取值、所述四个预设标识信息的取值以及所述重建量化系数绝对值的剩余值,确定所述量化系数位置对应的重建量化系数绝对值。
在一些实施例中,参见图10,解码器100还可以包括第二计算单元1003,配置为对所述非零标识信息的取值、所述第一预设标识信息的取值、所述第二预设标识信息的取值、所述第三预设标识信息的取值、所述第四预设标识信息的取值和所述重建量化系数绝对值的剩余值进行加法计算,得到所述量化系数位置对应的重建量化系数绝对值。
在一些实施例中,解析单元1001,还配置为利用旁路模式解析码流,获取符号标识信息的取值;
第二确定单元1002,还配置为根据所述符号标识信息的取值和所述重建量化系数绝对值,确定所述量化系数位置对应的重建量化系数。
在一些实施例中,第二确定单元1002,还配置为若所述符号标识信息的取值为第一值,则确定所述重建量化系数为负值;若所述符号标识信息的取值为第二值,则确定所述重建量化系数为正值。
在一些实施例中,第二确定单元1002,还配置为若第X预设标识信息的取值为第一值,则确定所述重建量化系数绝对值大于X;若第X预设标识信息的取值为第二值,则确定所述重建量化系数绝对值小于或等于X。
在一些实施例中,第二确定单元1002,还配置为确定系数块以及所述系数块的预设扫描顺序;其中,所述系数块包括至少一个待解码的量化系数位置;
解析单元1001,还配置为根据预设扫描顺序,通过解析码流依次获取所述至少一个待解码的量化系数位置对应的所述非零标识信息的取值和所述X个预设标识信息的取值;以及根据预设扫描顺序,通过解析码流依次获取所述至少一个待解码的量化系数位置对应的重建量化系数绝对值的剩余值;
第二确定单元1002,还配置为根据非零标识信息的取值、X个预设标识信息的取值和重建量化系数绝对值的剩余值,确定所述至少一个待解码的量化系数位置对应的重建量化系数绝对值。
在一些实施例中,第二确定单元1002,还配置为确定系数块以及所述系数块的预设扫描顺序;其中,所述系数块包括至少一个待解码的量化系数位置;
解析单元1001,还配置为根据所述预设扫描顺序,通过解析码流依次获取所述至少一个待解码的量化系数位置对应的所述非零标识信息的取值;以及根据所述预设扫描顺序,通过解析码流依次获取所述至少一个待解码的量化系数位置对应的所述X个预设标识信息的取值;以及根据所述预设扫描顺序,通过解析码流依次获取所述至少一个待解码的量化系数位置对应的重建量化系数绝对值的剩余值;
第二确定单元1002,还配置为根据非零标识信息的取值、X个预设标识信息的取值和重建量化系数绝对值的剩余值,确定所述至少一个待解码的量化系数位置对应的重建量化系数绝对值。
可以理解地,在本实施例中,“单元”可以是部分电路、部分处理器、部分程序或软件等等,当然也可以是模块,还可以是非模块化的。而且在本实施例中的各组成部分可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本实施例提供了一种计算机存储介质,应用于解码器100,该计算机存储介质存储有计算机程序,所述计算机程序被第二处理器执行时实现前述实施例中任一项所述的方法。
基于上述解码器100的组成以及计算机存储介质,参见图11,其示出了本申请实施例提供的解码 器100的具体硬件结构示意图。如图11所示,可以包括:第二通信接口1101、第二存储器1102和第二处理器1103;各个组件通过第二总线***1104耦合在一起。可理解,第二总线***1104用于实现这些组件之间的连接通信。第二总线***1104除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图11中将各种总线都标为第二总线***1104。其中,
第二通信接口1101,用于在与其他外部网元之间进行收发信息过程中,信号的接收和发送;
第二存储器1102,用于存储能够在第二处理器1103上运行的计算机程序;
第二处理器1103,用于在运行所述计算机程序时,执行:
基于待解码的量化系数位置,利用第一上下文模型的自适应二进制算术编码模式解析码流,获取非零标识信息的取值;
在非零标识信息的取值为第一值的情况下,利用第二上下文模型的自适应二进制算术编码模式解析码流,获取X个预设标识信息的取值;其中,X为大于零的自然数;
在第X预设标识信息的取值为第二值的情况下,根据所述非零标识信息的取值和所述X个预设标识信息的取值,确定所述量化系数位置对应的重建量化系数绝对值。
可选地,作为另一个实施例,第二处理器1103还配置为在运行所述计算机程序时,执行前述实施例中任一项所述的方法。
可以理解,第二存储器1102与第一存储器902的硬件功能类似,第二处理器1103与第一处理器903的硬件功能类似;这里不再详述。
本实施例提供了一种解码器,该解码器可以包括解析单元和第二确定单元。这样,由于解码器充分利用了各个位置的量化系数之间的统计特性,而且通过上下文模型对新引入的预设标识信息进行熵编码,能够在编解码过程中更好的利用自适应编码特性,从而可以节省码率,进而提高编解码性能。
需要说明的是,在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
本申请所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
本申请实施例中,在编码器侧,确定待编码的量化系数;根据该量化系数确定非零标识信息的取值,并利用第一上下文模型的自适应二进制算术编码模式对非零标识信息的取值进行熵编码;在非零标识信息的取值为第一值的情况下,根据该量化系数确定X个预设标识信息的取值,并利用第二上下文模型的自适应二进制算术编码模式对这X个预设标识信息的取值依次进行熵编码;其中,X为大于零的自然数;在第X预设标识信息的取值为第二值的情况下,将编码后得到的比特信息写入码流。在解码器侧,基于待解码的量化系数位置,利用第一上下文模型的自适应二进制算术编码模式解析码流,获取非零标识信息的取值;在非零标识信息的取值为第一值的情况下,利用第二上下文模型的自适应二进制算术编码模式解析码流,获取X个预设标识信息的取值;其中,X为大于零的自然数;在第X预设标识信息的取值为第二值的情况下,根据非零标识信息的取值和X个预设标识信息的取值,确定该量化系数位置对应的重建量化系数绝对值。这样,由于充分利用了各个位置的量化系数之间的统计特性,而且通过上下文模型对新引入的预设标识信息进行熵编码,能够在编解码过程中更好的利用自适应编码特性,从而可以节省码率,进而提高编解码性能。
Claims (33)
- 一种系数的解码方法,应用于解码器,所述方法包括:基于待解码的量化系数位置,利用第一上下文模型的自适应二进制算术编码模式解析码流,获取非零标识信息的取值;在所述非零标识信息的取值为第一值的情况下,利用第二上下文模型的自适应二进制算术编码模式解析码流,获取X个预设标识信息的取值;其中,X为大于零的自然数;在第X预设标识信息的取值为第二值的情况下,根据所述非零标识信息的取值和所述X个预设标识信息的取值,确定所述量化系数位置对应的重建量化系数绝对值。
- 根据权利要求1所述的方法,其中,所述第一值为1,所述第二值为0。
- 根据权利要求1所述的方法,其中,所述方法还包括:在所述非零标识信息的取值为第二值的情况下,根据所述非零标识信息的取值,确定所述量化系数位置对应的重建量化系数。
- 根据权利要求1所述的方法,其中,X的取值等于4,所述四个预设标识信息包括:第一预设标识信息、第二预设标识信息、第三预设标识信息和第四预设标识;其中,所述第一预设标识信息用于指示所述重建量化系数绝对值是否大于1;所述第二预设标识信息用于指示所述重建量化系数绝对值是否大于2;所述第三预设标识信息用于指示所述重建量化系数绝对值是否大于3;所述第四预设标识信息用于指示所述重建量化系数绝对值是否大于4。
- 根据权利要求4所述的方法,其中,所述利用第二上下文模型的自适应二进制算术编码模式解析码流,获取X个预设标识信息的取值,包括:利用第二上下文模型的自适应二进制算术编码模式解析码流,获取第一预设标识信息的取值;若所述第一预设标识信息的取值为第一值,则利用第二上下文模型的自适应二进制算术编码模式解析码流,获取第二预设标识信息的取值;若所述第二预设标识信息的取值为第一值,则利用第二上下文模型的自适应二进制算术编码模式解析码流,获取第三预设标识信息的取值;若所述第三预设标识信息的取值为第一值,则利用第二上下文模型的自适应二进制算术编码模式解析码流,获取第四预设标识信息的取值。
- 根据权利要求4所述的方法,其中,所述第二上下文模型包括第二一上下文模型和第二二上下文模型,所述利用第二上下文模型的自适应二进制算术编码模式解析码流,获取X个预设标识信息的取值,包括:利用第二一上下文模型的自适应二进制算术编码模式解析码流,获取第一预设标识信息的取值;若所述第一预设标识信息的取值为第一值,则利用第二一上下文模型的自适应二进制算术编码模式解析码流,获取第二预设标识信息的取值;若所述第二预设标识信息的取值为第一值,则利用第二二上下文模型的自适应二进制算术编码模式解析码流,获取第三预设标识信息的取值;若所述第三预设标识信息的取值为第一值,则利用第二二上下文模型的自适应二进制算术编码模式解析码流,获取第四预设标识信息的取值。
- 根据权利要求5或6所述的方法,其中,所述方法还包括:在所述第四预设标识信息的取值为第一值的情况下,利用旁路模式解析码流,获取所述重建量化系数绝对值的剩余值;根据所述非零标识信息的取值、所述四个预设标识信息的取值以及所述重建量化系数绝对值的剩余值,确定所述量化系数位置对应的重建量化系数绝对值。
- 根据权利要求7所述的方法,其中,所述根据所述非零标识信息的取值、所述四个预设标识信息的取值以及所述重建量化系数绝对值的剩余值,确定所述量化系数位置对应的重建量化系数绝对值,包括:对所述非零标识信息的取值、所述第一预设标识信息的取值、所述第二预设标识信息的取值、所述第三预设标识信息的取值、所述第四预设标识信息的取值和所述重建量化系数绝对值的剩余值进行加法计算,得到所述量化系数位置对应的重建量化系数绝对值。
- 根据权利要求1所述的方法,其中,所述方法还包括:利用旁路模式解析码流,获取符号标识信息的取值;根据所述符号标识信息的取值和所述重建量化系数绝对值,确定所述量化系数位置对应的重建量化系数。
- 根据权利要求9所述的方法,其中,所述方法还包括:若所述符号标识信息的取值为第一值,则确定所述重建量化系数为负值;若所述符号标识信息的取值为第二值,则确定所述重建量化系数为正值。
- 根据权利要求1所述的方法,其中,所述方法还包括:若第X预设标识信息的取值为第一值,则确定所述重建量化系数绝对值大于X;若第X预设标识信息的取值为第二值,则确定所述重建量化系数绝对值小于或等于X。
- 根据权利要求1至11任一项所述的方法,其中,所述方法还包括:确定系数块以及所述系数块的预设扫描顺序;其中,所述系数块包括至少一个待解码的量化系数位置;根据所述预设扫描顺序,通过解析码流依次获取所述至少一个待解码的量化系数位置对应的所述非零标识信息的取值和所述X个预设标识信息的取值;根据所述预设扫描顺序,通过解析码流依次获取所述至少一个待解码的量化系数位置对应的重建量化系数绝对值的剩余值;根据所述非零标识信息的取值、所述X个预设标识信息的取值和所述重建量化系数绝对值的剩余值,确定所述至少一个待解码的量化系数位置对应的重建量化系数绝对值。
- 根据权利要求1至11任一项所述的方法,其中,所述方法还包括:确定系数块以及所述系数块的预设扫描顺序;其中,所述系数块包括至少一个待解码的量化系数位置;根据所述预设扫描顺序,通过解析码流依次获取所述至少一个待解码的量化系数位置对应的所述非零标识信息的取值;根据所述预设扫描顺序,通过解析码流依次获取所述至少一个待解码的量化系数位置对应的所述X个预设标识信息的取值;根据所述预设扫描顺序,通过解析码流依次获取所述至少一个待解码的量化系数位置对应的重建量化系数绝对值的剩余值;根据所述非零标识信息的取值、所述X个预设标识信息的取值和所述重建量化系数绝对值的剩余值,确定所述至少一个待解码的量化系数位置对应的重建量化系数绝对值。
- 一种系数的编码方法,应用于编码器,所述方法包括:确定待编码的量化系数;根据所述量化系数确定非零标识信息的取值,并利用第一上下文模型的自适应二进制算术编码模式对所述非零标识信息的取值进行熵编码;在所述非零标识信息的取值为第一值的情况下,根据所述量化系数确定X个预设标识信息的取值,并利用第二上下文模型的自适应二进制算术编码模式对所述X个预设标识信息的取值依次进行熵编码;其中,X为大于零的自然数;在第X预设标识信息的取值为第二值的情况下,将编码后得到的比特信息写入码流。
- 根据权利要求14所述的方法,其中,所述方法还包括:若所述量化系数为非零,则确定所述非零标识信息的取值为第一值;若所述量化系数为零,则确定所述非零标识信息的取值为第二值。
- 根据权利要求14所述的方法,其中,所述方法还包括:在所述非零标识信息的取值为第二值的情况下,将编码后得到的比特信息写入码流。
- 根据权利要求14所述的方法,其中,所述根据所述量化系数确定X个预设标识信息的取值,包括:若所述量化系数的绝对值大于X,则确定第X预设标识信息的取值为第一值;若所述量化系数的绝对值小于或等于X,则确定第X预设标识信息的取值为第二值。
- 根据权利要求14所述的方法,其中,X的取值等于4,所述四个预设标识信息包括:第一预设标识信息、第二预设标识信息、第三预设标识信息和第四预设标识;其中,所述第一预设标识信息用于指示所述量化系数的绝对值是否大于1;所述第二预设标识信息用于指示所述量化系数的绝对值是否大于2;所述第三预设标识信息用于指示所述量化系数的绝对值是否大于3;所述第四预设标识信息用于指示所述量化系数的绝对值是否大于4。
- 根据权利要求18所述的方法,其中,所述根据所述量化系数确定X个预设标识信息的取值, 包括:若所述量化系数的绝对值大于1,则确定所述第一预设标识信息的取值为第一值;若所述量化系数的绝对值小于或等于1,则确定所述第一预设标识信息的取值为第二值;以及若所述量化系数的绝对值大于2,则确定所述第二预设标识信息的取值为第一值;若所述量化系数的绝对值小于或等于2,则确定所述第二预设标识信息的取值为第二值;以及若所述量化系数的绝对值大于3,则确定所述第三预设标识信息的取值为第一值;若所述量化系数的绝对值小于或等于3,则所述确定第三预设标识信息的取值为第二值;以及若所述量化系数的绝对值大于4,则确定所述第四预设标识信息的取值为第一值;若所述量化系数的绝对值小于或等于4,则所述确定第四预设标识信息的取值为第二值。
- 根据权利要求19所述的方法,其中,所述利用第二上下文模型的自适应二进制算术编码模式对所述X个预设标识信息的取值依次进行熵编码,包括:利用第二上下文模型的自适应二进制算术编码模式对所述第一预设标识信息的取值、所述第二预设标识信息的取值、所述第三预设标识信息的取值和所述第四预设标识信息的取值依次进行熵编码。
- 根据权利要求19所述的方法,其中,所述第二上下文模型包括第二一上下文模型和第二二上下文模型,所述利用第二上下文模型的自适应二进制算术编码模式对所述X个预设标识信息的取值依次进行熵编码,包括:利用第二一上下文模型的自适应二进制算术编码模式对所述第一预设标识信息的取值和所述第二预设标识信息的取值依次进行熵编码;利用第二二上下文模型的自适应二进制算术编码模式对所述第三预设标识信息的取值和所述第四预设标识信息的取值依次进行熵编码。
- 根据权利要求19至21任一项所述的方法,其中,所述方法还包括:在所述第四预设标识信息的取值为第一值的情况下,确定所述量化系数的绝对值剩余值;利用旁路模式对所述量化系数的绝对值剩余值进行熵编码,并将编码后得到的比特信息写入码流。
- 根据权利要求22所述的方法,其中,所述确定所述量化系数的绝对值剩余值,包括:利用所述量化系数的绝对值对所述非零标识信息的取值、所述第一预设标识信息的取值、所述第二预设标识信息的取值、所述第三预设标识信息的取值和所述第四预设标识信息的取值进行减法计算,得到所述量化系数的绝对值剩余值。
- 根据权利要求14所述的方法,其中,所述方法还包括:根据所述量化系数,确定符号标识信息的取值;利用旁路模式对所述量化系数的绝对值剩余值进行熵编码,并将编码后得到的比特信息写入码流。
- 根据权利要求24所述的方法,其中,所述根据所述量化系数,确定符号标识信息的取值,包括:若所述量化系数为负值,则确定所述符号标识信息的取值为第一值;若所述量化系数为正值,则确定所述符号标识信息的取值为第二值。
- 根据权利要求14至25任一项所述的方法,其中,所述第一值为1,所述第二值为0。
- 根据权利要求14至26任一项所述的方法,其中,所述方法还包括:确定系数块以及所述系数块的预设扫描顺序;其中,所述系数块包括至少一个待编码的量化系数;根据所述预设扫描顺序,对所述至少一个待编码的量化系数对应的所述非零标识信息的取值和所述X个预设标识信息的取值依次进行熵编码;根据所述预设扫描顺序,对所述至少一个待编码的量化系数对应的绝对值剩余值依次进行熵编码。
- 根据权利要求14至26任一项所述的方法,其中,所述方法还包括:确定系数块以及所述系数块的预设扫描顺序;其中,所述系数块包括至少一个待编码的量化系数;根据所述预设扫描顺序,对所述至少一个待编码的量化系数对应的所述非零标识信息的取值依次进行熵编码;根据所述预设扫描顺序,对所述至少一个待编码的量化系数对应的所述X个预设标识信息的取值依次进行熵编码;根据所述预设扫描顺序,对所述至少一个待编码的量化系数对应的绝对值剩余值依次进行熵编码。
- 一种编码器,所述编码器包括第一确定单元和熵编码单元;其中,所述第一确定单元,配置为确定待编码的量化系数;所述熵编码单元,配置为根据所述量化系数确定非零标识信息的取值,并利用第一上下文模型的自适应二进制算术编码模式对所述非零标识信息的取值进行熵编码;以及在所述非零标识信息的取值为第一值的情况下,根据所述量化系数确定X个预设标识信息的取值,并利用第二上下文模型的自适应二 进制算术编码模式对所述X个预设标识信息的取值依次进行熵编码;其中,X为大于零的自然数;所述熵编码单元,还配置为在第X预设标识信息的取值为第二值的情况下,将编码后得到的比特信息写入码流。
- 一种编码器,所述编码器包括第一存储器和第一处理器;其中,所述第一存储器,用于存储能够在所述第一处理器上运行的计算机程序;所述第一处理器,用于在运行所述计算机程序时,执行如权利要求14至28任一项所述的方法。
- 一种解码器,所述解码器包括解析单元和第二确定单元;其中,所述解析单元,配置为基于待解码的量化系数位置,利用第一上下文模型的自适应二进制算术编码模式解析码流,获取非零标识信息的取值;所述解析单元,还配置为在所述非零标识信息的取值为第一值的情况下,利用第二上下文模型的自适应二进制算术编码模式解析码流,获取X个预设标识信息的取值;其中,X为大于零的自然数;所述第二确定单元,配置为在第X预设标识信息的取值为第二值的情况下,根据所述非零标识信息的取值和所述X个预设标识信息的取值,确定所述量化系数位置对应的重建量化系数绝对值。
- 一种解码器,所述解码器包括第二存储器和第二处理器;其中,所述第二存储器,用于存储能够在所述第二处理器上运行的计算机程序;所述第二处理器,用于在运行所述计算机程序时,执行如权利要求1至13任一项所述的方法。
- 一种计算机存储介质,其中,所述计算机存储介质存储有计算机程序,所述计算机程序被执行时实现如权利要求1至13任一项所述的方法、或者实现如权利要求14至28任一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2021102726056 | 2021-03-12 | ||
CN202110272605 | 2021-03-12 | ||
PCT/CN2021/087922 WO2022188239A1 (zh) | 2021-03-12 | 2021-04-16 | 系数的编解码方法、编码器、解码器及计算机存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116998149A true CN116998149A (zh) | 2023-11-03 |
Family
ID=83227275
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180095284.5A Pending CN116998149A (zh) | 2021-03-12 | 2021-04-16 | 系数的编解码方法、编码器、解码器及计算机存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN116998149A (zh) |
WO (1) | WO2022188239A1 (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101375668B1 (ko) * | 2008-03-17 | 2014-03-18 | 삼성전자주식회사 | 변환 계수의 부호화, 복호화 방법 및 장치 |
CN102186087B (zh) * | 2011-06-24 | 2013-06-12 | 哈尔滨工业大学 | 用于二进制算术编码可并行的非零系数上下文建模方法 |
CN104581154B (zh) * | 2014-12-31 | 2016-03-02 | 湖南国科微电子股份有限公司 | 一种熵编码方法和熵编码器电路 |
US10523968B2 (en) * | 2017-09-18 | 2019-12-31 | Google Llc | Coding of last significant coefficient flags |
CN112449201B (zh) * | 2019-08-30 | 2021-12-17 | 腾讯科技(深圳)有限公司 | 解码方法、编码方法、相应的装置、电子设备及存储介质 |
-
2021
- 2021-04-16 CN CN202180095284.5A patent/CN116998149A/zh active Pending
- 2021-04-16 WO PCT/CN2021/087922 patent/WO2022188239A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2022188239A1 (zh) | 2022-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11677983B2 (en) | Methods and apparatus for improved entropy encoding and decoding | |
US11750841B2 (en) | Methods and apparatuses for coding transform blocks | |
JP6162150B2 (ja) | ビデオコーディング用の残差4分木(rqt)コーディング | |
JP7277616B2 (ja) | ビデオ・データを処理する方法、装置及び記憶媒体 | |
US11695962B2 (en) | Encoding and decoding methods and corresponding devices | |
WO2019125859A1 (en) | Method and apparatus for video encoding and decoding based on context switching | |
KR20230062630A (ko) | 비디오 코딩을 위한 잔차 및 계수 코딩 | |
CN114679917A (zh) | 视频数据的变换跳过残差编码 | |
JP2024502109A (ja) | ビデオコーディング用の残差および係数のコーディング | |
US20230042484A1 (en) | Decoding method and coding method for unmatched pixel, decoder, and encoder | |
CN116998149A (zh) | 系数的编解码方法、编码器、解码器及计算机存储介质 | |
CN116982317A (zh) | 系数的编解码方法、编码器、解码器及计算机存储介质 | |
RU2820669C1 (ru) | Кодирование коэффициентов и остатка для кодирования видео | |
WO2022037464A1 (zh) | 视频解码方法、视频编码方法、装置、设备及存储介质 | |
JP2024516358A (ja) | 係数符号化・復号化方法、符号器、復号器及びコンピュータ記憶媒体 | |
CN117581540A (zh) | 编解码方法、码流、编码器、解码器及计算机存储介质 | |
JP2024513551A (ja) | ビデオ符号化復号化のための残差及び係数符号化復号化 | |
CN116888960A (zh) | 编码方法、解码方法、编码器、解码器及存储介质 | |
CN117157979A (zh) | 编解码方法、编码器、解码器以及存储介质 |
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 |