CN118202653A - 编解码方法、码流、编码器、解码器以及存储介质 - Google Patents
编解码方法、码流、编码器、解码器以及存储介质 Download PDFInfo
- Publication number
- CN118202653A CN118202653A CN202180103838.1A CN202180103838A CN118202653A CN 118202653 A CN118202653 A CN 118202653A CN 202180103838 A CN202180103838 A CN 202180103838A CN 118202653 A CN118202653 A CN 118202653A
- Authority
- CN
- China
- Prior art keywords
- current block
- value
- determining
- last coefficient
- symbol
- 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 157
- 230000009466 transformation Effects 0.000 claims description 129
- 238000004590 computer program Methods 0.000 claims description 22
- 238000005516 engineering process Methods 0.000 abstract description 18
- 238000004364 calculation method Methods 0.000 description 98
- 238000010586 diagram Methods 0.000 description 31
- 238000012216 screening Methods 0.000 description 22
- 238000001914 filtration Methods 0.000 description 21
- 230000008569 process Effects 0.000 description 20
- 238000013139 quantization Methods 0.000 description 20
- 238000012545 processing Methods 0.000 description 13
- 238000005457 optimization Methods 0.000 description 10
- 230000011218 segmentation Effects 0.000 description 10
- 238000012360 testing method Methods 0.000 description 10
- 230000008859 change Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 6
- 230000003044 adaptive effect Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 6
- 230000003139 buffering effect Effects 0.000 description 4
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000006872 improvement Effects 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 235000019800 disodium phosphate Nutrition 0.000 description 3
- 238000013507 mapping 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
- 230000007547 defect Effects 0.000 description 2
- 238000012812 general test 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
- 238000005192 partition Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- NAWXUBYGYWOOIX-SFHVURJKSA-N (2s)-2-[[4-[2-(2,4-diaminoquinazolin-6-yl)ethyl]benzoyl]amino]-4-methylidenepentanedioic acid Chemical compound C1=CC2=NC(N)=NC(N)=C2C=C1CCC1=CC=C(C(=O)N[C@@H](CC(=C)C(O)=O)C(O)=O)C=C1 NAWXUBYGYWOOIX-SFHVURJKSA-N 0.000 description 1
- 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
- 238000013459 approach Methods 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
- 238000004549 pulsed laser deposition Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000002123 temporal effect Effects 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/48—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using compressed domain processing techniques other than decoding, e.g. modification of transform coefficients, variable length coding [VLC] data or run-length data
-
- 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/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Abstract
本申请实施例公开了一种编解码方法、码流、编码器、解码器以及存储介质,该方法包括:解析码流,确定当前块的重建系数绝对值;按照预设扫描顺序对当前块的重建系数绝对值进行扫描,确定当前块在预设扫描顺序上的最后一个系数组;对最后一个系数组进行符号预测,确定最后一个系数组的符号预测值。这样,不仅能够拓展符号预测技术的适用范围,还能够提高正负号的符号预测准确度。
Description
本申请实施例涉及视频编解码技术领域,尤其涉及一种编解码方法、码流、编码器、解码器以及存储介质。
随着人们对视频显示质量要求的提高,计算机视觉相关领域得到了越来越多的关注。近年来,图像处理技术在各行各业都取得了成功地应用。对于视频图像的编解码过程而言,在编码端,针对待编码的图像数据,在经过变换和量化处理之后将通过熵编码单元进行压缩编码,而熵编码处理后所生成的码流将传输到解码端;然后解析码流,再经过反量化和逆变换处理之后,可以恢复出原始输入的图像数据。
然而,对于一个经过变换和量化处理得到的非零量化系数,这些非零量化系数可以是正值也可以是负值,目前可以使用符号预测技术对这些系数的正负号进行预测。但是对于图像边缘和块边缘的非零量化系数的符号预测,由于相关技术的不完善性,导致在符号预测时可能存在变换块尺寸受限、代价计算不合理等缺陷,导致符号预测结果的准确度低。
发明内容
本申请实施例提供一种编解码方法、码流、编码器、解码器以及存储介质,不仅能够拓展符号预测技术的适用范围,还能够提高正负号的符号预测准确度。
本申请实施例的技术方案可以如下实现:
第一方面,本申请实施例提供了一种解码方法,应用于解码器,该方法包括:
解析码流,确定当前块的重建系数绝对值;
按照预设扫描顺序对当前块的重建系数绝对值进行扫描,确定当前块在预设扫描顺序上的最后一个系数组;
对最后一个系数组进行符号预测,确定最后一个系数组的符号预测值。
第二方面,本申请实施例提供了一种编码方法,应用于编码器,该方法包括:
确定当前块的变换系数;
按照预设扫描顺序对当前块的变换系数进行扫描,确定当前块在预设扫描顺序上的最后一个系数组;
对最后一个系数组进行符号预测,确定最后一个系数组的符号预测值。
第三方面,本申请实施例提供了一种码流,该码流是根据待编码信息进行比特编码生成的;其中,待编码信息包括下述至少之一:重建系数绝对值和符号残差值。
第四方面,本申请实施例提供了一种编码器,包括第一确定单元和第一预测单元;其中,
第一确定单元,配置为确定当前块的变换系数;
第一确定单元,还配置为按照预设扫描顺序对当前块的变换系数进行扫描,确定当前块在预设扫描顺序上的最后一个系数组;
第一预测单元,配置为对最后一个系数组进行符号预测,确定最后一个系数组的符号预测值。
第五方面,本申请实施例提供了一种编码器,该编码器包括第一存储器和第一处理器;其中,
第一存储器,用于存储能够在第一处理器上运行的计算机程序;
第一处理器,用于在运行计算机程序时,执行如第二方面所述的方法。
第六方面,本申请实施例提供了一种解码器,包括解码单元、第二确定单元和第二预测单元;其中,
解码单元,配置为解析码流,确定当前块的重建系数绝对值;
第二确定单元,配置为按照预设扫描顺序对当前块的重建系数绝对值进行扫描,确定当前块在预设扫描顺序上的最后一个系数组;
第一预测单元,配置为对最后一个系数组进行符号预测,确定最后一个系数组的符号预测值。
第七方面,本申请实施例提供了一种解码器,该解码器包括第二存储器和第二处理器;其中,
第二存储器,用于存储能够在第二处理器上运行的计算机程序;
第二处理器,用于在运行计算机程序时,执行如第一方面所述的方法。
第八方面,本申请实施例提供了一种计算机存储介质,该计算机存储介质存储有计算机程序,计算机程序被执行时实现如第一方面所述的方法、或者实现如第二方面所述的方法。。
本申请实施例提供了一种编解码方法、码流、编码器、解码器以及存储介质,在编码端,确定当前块的变换系数;按照预设扫描顺序对当前块的变换系数进行扫描,确定当前块在预设扫描顺序上的最后一个系数组;对最后一个系数组进行符号预测,确定最后一个系数组的符号预测值。在解码端,解析码流,确定当前块的重建系数绝对值;按照预设扫描顺序对当前块的重建系数绝对值进行扫描,确定当前块在预设扫描顺序上的最后一个系数组;对最后一个系数组进行符号预测,确定最后一个系数组的符号预测值。这样,无论是编码端还是解码端,都可以按照预设扫描顺序对当前块的变换系数进行扫描,然后确定出当前块在预设扫描顺序上的最后一个系数组,以便对最后一个系数组进行符号预测,如此不仅能够允许更多形状更多大小的块可以进行符号预测,拓展了符号预测技术的适用范围;而且在符号预测过程中,针对当前块处于图像或者编码树单元的上边界或左边界的情况,还对代价计算的方式进行优化,同时针对筛选待预测正负的变换系数的能量计算方式也进行适应性调整,从而还降低了计算复杂度,提高了正负号的符号预测准确度。
图1为一种混合编码框架的组成示意图;
图2为一种包含非零量化系数的块示意图;
图3为一种待反变换的系数块示意图;
图4为一种反变换的系数块示意图;
图5为一种归一化模板示意图;
图6为一种反变换的归一化模板示意图;
图7为一种根据假设重建值计算代价的应用示意图;
图8A为本申请实施例提供的一种编码器的系统组成框图示意图;
图8B为本申请实施例提供的一种解码器的系统组成框图示意图;
图9为本申请实施例提供的一种解码方法的流程示意图一;
图10为本申请实施例提供的一种对小于4×4的块使用符号预测的测试结果示意图;
图11为本申请实施例提供的一种当前块处于编码树单元边界的位置示意图;
图12为本申请实施例提供的一种当前块处于编码树单元边界使用符号预测的测试结果示意图;
图13为本申请实施例提供的一种当前块处于图像边界的位置示意图;
图14为本申请实施例提供的一种当前块处于图像边界使用符号预测的测试结果示意图;
图15为本申请实施例提供的一种当前块处于图像左上角的位置示意图;
图16为本申请实施例提供的一种当前块处于图像左上角不使用符号预测的测试结果示意图;
图17为本申请实施例提供的一种解码方法的流程示意图二;
图18为本申请实施例提供的一种编码方法的流程示意图一;
图19为本申请实施例提供的一种编码方法的流程示意图二;
图20为本申请实施例提供的一种编码方法的流程示意图三;
图21为本申请实施例提供的一种编码器的组成结构示意图;
图22为本申请实施例提供的一种编码器的具体硬件结构示意图;
图23为本申请实施例提供的一种解码器的组成结构示意图;
图24为本申请实施例提供的一种解码器的具体硬件结构示意图;
图25为本申请实施例提供的一种编解码系统的组成结构示意图。
为了能够更加详尽地了解本申请实施例的特点与技术内容,下面结合附图对本申请实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本申请实施例。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。还需要指出,本申请实施例所涉及的术语“第一\第二\第三”仅是用于区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
对本申请实施例进行进一步详细说明之前,先对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释:
新一代视频编码标准H.266/多功能视频编码(Versatile Video Coding,VVC)
编码单元(Coding Unit,CU)
编码树单元(Coding Tree Unit,CTU)
最大编码单元(Largest Coding Unit,LCU)
预测单元(Prediction Unit,PU)
变换单元(Transform Unit,TU)
离散余弦变换(Discrete Cosine Transform,DCT)
VVC的参考软件测试模型(VVC Test Model,VTM)
符号预测(Sign Prediction,SP):非零变换系数正负的预测技术
增强压缩模型(Enhanced Compression Model,ECM):基于VTM-10.0,集成各类新工具,能够进一步挖掘VVC性能的参考模型
可以理解,目前通用的视频编解码标准(如VVC)都采用基于块的混合编码框架。视频图像中的每一帧被分割成相同大小(如128×128,64×64等)正方形的LCU,每个LCU还可以根据规则划分成矩形的CU;而且CU可能还会划分成更小的PU、TU等。具体地,如图1所示,混合编码框架可以包括有预测(Prediction)、变换(Transform)、量化(Quantization)、熵编码(Entropy Coding)、环路滤波(In Loop Filter)等步骤。其中,预测又可以分为帧内预测(Intra Prediction)和帧间预测(Inter Prediction),帧间预测可以包括运动估计(Motion Estimation)和运动补偿(Motion Compensation)。由于视频图像的一个帧内相邻像素之间存在很强的相关性,在视频编解码技术中使用帧内预测方式能够消除相邻像素之间的空间冗余;但是由于视频图像中的相邻帧之间也存在着很强的相似性,在视频编解码技术中使用帧间预测方式消除相邻帧之间的时间冗余,从而能够提高编解码效率。
视频编解码器的基本流程如下:在编码器中,将一帧图像划分成块,对当前块使用帧内预测或帧间预测产生当前块的预测块,当前块的原始块减去预测块得到残差块,对残差块进行变换、量化得到量化系数矩阵,对量化系数矩阵进行熵编码输出到码流中。在解码器中,对当前块使用帧内预测或帧间预测产生当前块的预测块,另一方面解码码流得到量化系数矩阵,对量化系数矩阵进行反量化、逆变换得到残差块,将预测块和残差块相加得到重建块。重建块组成重建图像,基于图像或基于块对重建图像进行环路滤波得到解码图像。编码器同样需要和解码器类似的操作获得解码图像。解码图像可以为后续的帧作为帧间预测的参考帧。编码器确定的块划分信息,预测、变换、量化、熵编码、环路滤波等模式信息或者参数信息如果有必要需要输出到码流中;然后解码器通过解析及根据已有信息进行分析确定与编码器相同的块划分信息,预测、变换、量化、熵编码、环路滤波等模式信息或者参数信息,从而保证编码器获得的解码图像和解码器获得的解码图像相同。编码器获得的解码图像通常也叫做重建图像。在预测时可以将当前块划分成预测单元,在变换时可以将当前块划分成变换单元,预测单元和变换单元的划分可以不同。上述是基于块的混合编码框架下的视频编码器和解码器的基本流程,随着技术的发展,该框架或流程的一些模块或步骤可能会被优化,本申请实施例适用于该基于块的混合编码框架下的视频编解码器的基本流程,但不限于该框架及流程。
在本申请实施例中,当前块(Current Block)可以是当前编码单元(CU)、当前预测单元(PU)、或者当前变换块(TU)等。
需要说明的是,与许多编解码器类似,VVC中的编码器对当前块的原始值与预测值做差得到残差块,该残差块经过变换得到变换后的残差,然后对变换后的残差进行量化得到量化系数,再将量化系数编码到码流中。对于一个经过变换和量化处理后得到的非零量化系数,由于该非零量化系数的正负出现的概率随机,在VVC等标准中采用等概率编码正负(其中,正和负的概率都为50%)。
示例性地,图2示出了一种包含非零量化系数的块示意图。其中,非零量化系数为5,-1,-2和1。 它们的正负号分别为+、-、-、+。正负可以使用一个二元码(binary code)表示,例如1表示+,0表示-。使用Sign Prediction技术可以对这个块中的非零量化系数的正负做出预测,假设预测出的正负为+、-、-、-。那么按照上述内容,正确的正负值为1、0、0、1;预测值为1、0、0、0。预测正确与否可称为“残差”,每一个“残差”也同样可以用一个二元码表示,例如正确为0,错误为1。此时“残差”为0、0、0、1。不难看出,当预测越准确时,“残差”中0出现的概率就会高于1出现的概率,对于这样有明显不均匀分布的二元码,使用上下文模型编码可以大大降低码字。而Sign prediction技术就是使用当前块与邻近块之间的信息,对当前块中非零量化系数的正负号进行准确的预测,从而使得正负号的“残差”编码代价降低。
还可以理解,变换系数具有可拆分性。其中,图像/视频压缩中使用的变换为线性变换,以最常用的DCT-II变换为例,假定当前块的变换系数如图3所示,这里示出了一种待反变换的系数块,可以用块A表示。
当使用DCT-II变换对图3的块A进行反变换处理后,可以得到图4的结果(每个值为×64后四舍五入的结果),这里示出了一种反变换的系数块示意图,可以用InvA表示。
而由于变换是线性的,本申请实施例可以对上述反变换进行拆分,具体可以使用图5所示的两个归一化的模板,包括模板B和模板C。然后分别对模板B和模板C进行DCT-II的反变换,可以得到图6的结果(每个值为×64后四舍五入的结果),这里示出了反变换后的两个模板,包括模板InvB和模板InvC。
根据图3~图6可以得到,A=2×B-C,InvA=2×InvB–InvC。由此可见,通过构建反变换后的模板,能够按照比例累加反变换后的模板来得到任意反变换后的残差。
还可以理解,变换系数的正负号可以预测。其中,预测变换系数的正负号首先要建立在量化系数的绝对值和当前块使用的变换模式已知(已解码)基础之上。
在ECM中,Sign prediction只预测变换单元左上N×N区域中的非零变换系数的正负号,且预测的正负号的个数需少于或等于K个。例如,N=4,K=8。
在一种具体的实施例中,对于一个含有L个待预测正负号的变换系数,预测过程分为如下几步骤:
步骤一:构建各个变换类型各个变换块可能大小的反变换后的模板,其中反变换后的模板仅需使用到最上一行和最左一列的值,所以只保存这些值。
步骤二:计算反量化后系数绝对值,若L大于K,则按照一定规律选择出其中的K个系数来预测正负号。2
K种可能的正负组合,根据预先计算的模板,计算出2
K种变换块在第一行和第一列的假设的反变换残差值。
步骤三:利用变换块的这2
K种假设的反变换残差值和预测值,能够得到2
K种假设重建值(hypothesis reconstruction),从2
K种假设重建值选出一种与周围已重建的块之间代价最小的假设重建值;其中,假设重建值等于反变换残差值加上当前变换块的预测值。在这里,如图7所示,当前块的已重建相邻像素值可以包括当前变换块的上侧两行和左侧两列,其中上侧两行分别用p
x,-1、p
x,-2表示,左侧两列分别用p
-1,y、p
-2,y表示,x的范围为0,1,…,w-1,y的范围为0,1,…,h-1,w表示当前变换块的宽度,h表示当前变换块的高度;这时候根据假设重建值进行代价值计算,具体如下所示,
步骤四:代价值(用cost表示)最小的反变换残差值所使用的一组正负即Sign Prediction做出的正负号预测。
步骤五:对于所选出的这一组预测的正负值,具体而言,编码端当前变换块通过率失真优化选出的当前模式下最优的量化系数的正负值作为真实的正负值,然后根据真实的正负值与预测的正负值确定正负值的残差。后续编码过程中使用上下文模型编码正负值的残差。这样,解码端从上下文模型中解码正负值的残差。后续过程中还可以根据正负值的残差与预测的正负值得到真实的正负值,将真实的正负值直接赋值给变换系数之后进一步完成解码后续操作(例如反变换、重建等等)。
在ECM的实现中,式(1)可进一步简化,如下所示,
由于当前块的预测值(用pred表示),周围的相邻像素重建值对于当前块来说是固定的,即(2×p
x,-1-p
x,-2-pred
x,0)和(2×p
-1,y-p
-2,y-pred
0,y)值是固定的,仅假设的反变换残差(用resi表示)会因为符号组合的不同而不同,使用c
x代表(2×p
x,-1-p
x,-2-pred
x,0),c
y代表(2×p
-1,y-p
-2,y-pred
0,y),这时候代价值(用cost表示)可写为如下公式,
然而,为了控制变换系数正负号预测的复杂度,预测技术存在有两个主要的限制:
(1)预测只作用在每个大于或等于4×4变换块上的左上角位置的4×4区域。原因是变换块的左上角为低频系数集中的地方,这些系数数值的变化会对整个变换块有更大的影响,所以相对于其它位置上的系数,这些系数更容易预测。
(2)在上述区域中,只预测小于或等于8个非零变换系数的正负号,当4×4区域中有多于8个非零变换系数时,那么只预测前8个光栅扫描顺序上的非零变换系数的正负。原因是为了控制复杂度,预测K个系数就需要从2
K种反变换后的系数中找到边界代价最小的一种,其中,K越大,复杂度越高;而K越小,复杂度越低。
进一步地,在实现中,对于左上角4×4区域中可能出现超过8个非零变换系数的情况,这里还提出了按照一定的准则选择8个非零变换系数进行正负号预测。而且在超过8个非零变换系数的寻找过程中,能够对在假设反变换时对块边界造成较大影响的位置上的非零变换系数更容易预测。一种实现方式是直接从8个非零变换系数中选取绝对值大的非零系数;另一种实现方式是排序4×4区域中非零变换系数反变换后在变换单元边缘上反映出的能量大小,将能量最大的8个非零系数确定为待预测正负的变换系数。其中,能量值计算如下,
在这里,tc
i,j为4×4的左上角区域中的变换系数(i,j代表坐标),T
i,j(k)为在(i,j)位置处的变换系数为1时,在当前变换块左侧边缘和上侧边缘中的第k个反变换值,w和h表示当前变换块的宽度和高度。
简单来说,对于一个经过变换和量化处理得到的非零量化系数,这些非零量化系数可以是正值也可以是负值,目前可以使用等概率编码,也可以使用符号预测技术对这些系数的正负号进行预测。但是对于图像边缘和块边缘的非零量化系数的符号预测,由于相关技术的不完善性,从而导致在符号预测时可能存在变换块尺寸受限、代价计算不合理等缺陷,导致符号预测结果的准确度低。
这样,本申请实施例提供了一种解码方法,通过解析码流,确定当前块的重建系数绝对值;按照预设扫描顺序对当前块的重建系数绝对值进行扫描,确定当前块在预设扫描顺序上的最后一个系数组;对最后一个系数组进行符号预测,确定最后一个系数组的符号预测值。
本申请实施例还提供了一种编码方法,通过确定当前块的变换系数;按照预设扫描顺序对当前块的变换系数进行扫描,确定当前块在预设扫描顺序上的最后一个系数组;对最后一个系数组进行符号预测,确定最后一个系数组的符号预测值。
这样,无论是编码端还是解码端,都可以按照预设扫描顺序对当前块的变换系数进行扫描,然后确定出当前块在预设扫描顺序上的最后一个系数组,以便对最后一个系数组进行符号预测,如此不仅能够允许更多形状更多大小的块可以进行符号预测,拓展了符号预测技术的适用范围;而且在 符号预测过程中,针对当前块处于图像或者编码树单元的上边界或左边界的情况,还对代价计算的方式进行优化,同时针对筛选待预测正负的变换系数的能量计算方式也进行适应性调整,从而还降低了计算复杂度,提高了正负号的符号预测准确度。
下面将结合附图对本申请各实施例进行清楚、完整的描述。
参见图8A,其示出了本申请实施例提供的一种编码器的系统组成框图示意图。如图8A所示,编码器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还可以是具有一个或多个芯片的计算设备。在芯片上实现为集成电路的这些单元具有与图8A中相应单元类似的连接和数据交换功能。
参见图8B,其示出了本申请实施例提供的一种解码器的系统组成框图示意图。如图8B所示,该解码器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还可以是具有一个或多个芯片的计算设备。在芯片上实现为集成电路的这些单元具有与图8B中相应单元类似的连接和数据交换功能。
还需要说明的是,当本申请实施例应用于编码器100时,“当前块”具体是指视频图像中的当前待编码的块;当本申请实施例应用于解码器200时,“当前块”具体是指视频图像中的当前待解码的块。另外,这里的当前块可以是当前编码单元、当前预测单元、或者当前变换块等等,本申请实施例并不作任何限定。
本申请的一实施例中,参见图9,其示出了本申请实施例提供的一种解码方法的流程示意图。如图9所示,该方法可以包括:
S901:解析码流,确定当前块的重建系数绝对值。
需要说明的是,本申请实施例的解码方法应用于解码器,具体可以是一种符号预测方法,这里主要是针对当前块中的重建系数绝对值的正负号进行预测。
还需要说明的是,基于图8B所示解码器200的组成结构,本申请实施例的解码方法则是应用于解码器200中的“解析单元201”部分,针对该解析单元201,可以通过解码码流获得当前块的重建系数绝对值,以便后续根据这些重建系数绝对值来选取需要进行符号预测的重建系数绝对值,然后对这些重建系数的正负号进行预测。
可以理解,在ECM的实现中,对于当前块而言,块尺寸通常为大于或等于4×4。对于小于4×4的当前块,由于此时左上角位置不存在4×4区域供符号预测(Sign Prediction)使用,所以这样的当前块是禁止使用符号预测。同时,对于大于32×32的帧内块和大于128×128的帧间块,也禁止使用符号预测。然而,在本申请实施例中,可以通过确定在预设扫描顺序上的最后一个系数组(Coefficient Group,CG),然后对最后一个系数组使用符号预测,使得符号预测能够应用于更多形状更多尺寸的块,拓展了符号预测技术的适用范围。
S902:按照预设扫描顺序对当前块的重建系数绝对值进行扫描,确定当前块在预设扫描顺序上 的最后一个系数组。
S903:对最后一个系数组进行符号预测,确定最后一个系数组的符号预测值。
需要说明的是,在本申请实施例中,可以允许在预设扫描顺序上最后一个系数组中选取非零变换系数来使用符号预测。这样,首先可以按照预设扫描顺序对当前块的重建系数绝对值进行扫描,确定当前块在预设扫描顺序上的最后一个系数组;然后对最后一个系数组进行符号预测,确定最后一个系数组的符号预测值,从而能够允许更多形状更多大小的块可以进行符号预测,拓展了符号预测技术的适用范围。
还需要说明的是,在本申请实施例中,预设扫描顺序可以是对角线、Zigzag、水平、垂直、4×4子块扫描或者任何其它扫描顺序,这里不作任何限定。
还需要说明的是,不同尺寸的当前块,可以划分为不同数量的系数组。因此,对于系数组的划分,在一些实施例中,该方法还可以包括:
若当前块的尺寸为1×N,N为大于或等于16的整数,则确定当前块的重建系数绝对值可划分为(N/16)个系数组,且系数组的尺寸为1×16;
若当前块的尺寸为N×1,N为大于或等于16的整数,则确定当前块的重建系数绝对值可划分为(N/16)个系数组,且系数组的尺寸为16×1;
若当前块的尺寸为2×N,N为大于或等于8的整数,则确定当前块的重建系数绝对值可划分为(N/8)个系数组,且系数组的尺寸为2×8;
若当前块的尺寸为N×2,N为大于或等于8的整数,则确定当前块的重建系数绝对值可划分为(N/8)个系数组,且系数组的尺寸为8×2;
若当前块的尺寸为M×N,M和N均为大于或等于4的整数,则确定当前块的重建系数绝对值可划分为(M×N/16)个系数组,且系数组的尺寸为4×4。
需要说明的是,针对当前块的尺寸来说,还可能出现1×N、2×N的块,这些块的形状以及对应的系数组大小如表1所示。
表1
块尺寸 | 系数组的尺寸 |
1×N,N≥16 | 1×16 |
N×1,N≥16 | 16×1 |
2×N,N≥8 | 2×8 |
N×2,N≥8 | 8×2 |
其它形状的当前块 | 4×4 |
在相关技术中,对于某一侧的长度小于4,ECM中目前是不允许这样的块使用符号预测。而在本申请实施例中,可以允许对块中的所有区域或者部分区域(例如,同ECM中的对左上角位置的4×4区域)中非零系数使用符号预测。
示例性地,ECM中目前对大于4×4的当前块,左上角位置的4×4区域(左上角位置的系数组)中非零系数允许使用符号预测;同理,对于小于4×4的当前块,也可以允许在预设扫描顺序上最后一个系数组中选取非零系数使用符号预测。
参见图10,其示出了本申请实施例提供的一种对小于4×4的块使用符号预测的测试结果示意图。如图10所示,这里提供了对小于4×4的块允许其在预设扫描顺序上最后一个系数组使用符号预测时在对比ECM参考软件在全帧内编码下带来的编码效果提升,其中,在YUV颜色空间下的Y分量、U分量和V分量等三个分量下分别带来了0.02%、0.1%、0.07%的性能提升,而且编码时间(用EncT表示)和解码时间(用DecT表示)变化不大。
另外,在实际应用中,越靠近左上角位置,在预设扫描顺序上越靠后,即最后一个系数组即是处于当前块的左上角位置。因此,本申请实施例也可以取消使用符号预测技术的块最大尺寸的限制。
示例性地,在ECM中目前大于32×32的帧内块和大于128×128的帧间块不可以使用符号预测,而实际上目前允许最大尺寸的块为256×256。所以取消块最大尺寸的限制意味着允许最多到256×256的变换块中部分(例如,同ECM中的对左上角位置的4×4区域)或所有区域中的非零系数正负号的符号预测。
进一步地,在当前块的尺寸为M×N,M和N均为大于或等于4的整数情况下,这时候系数组的尺寸为4×4。在一些实施例中,该方法还可以包括:
确定当前块中处于左上角位置的第一区域;
根据第一区域内的重建系数绝对值确定最后一个系数组;其中,最后一个系数组中的重建系数 绝对值个数为2
L个,且L为大于或等于零的个数。
需要说明的是,通常情况下,如果当前块的尺寸大于或等于4×4,那么可以直接将左上角位置的4×4区域作为最后一个系数组。另外,考虑到符号预测所使用非零系数的个数通常为K个,如果4×4区域中的非零系数小于K个,这时候还可以适当扩大左上角区域,例如将左上角位置的8×8区域、16×16区域等作为最后一个系数组,以使得最后一个系数组中的重建系数绝对值个数为2
L个。在本申请实施例中,第一区域可以为4×4区域,但是这里不作具体限定。
还需要说明的是,K为大于零的整数。示例性地,对于一次变换,K的取值可以为8;对于二次变换,K的取值可以为4,但是并不作具体限定。
这样,可以将可以使用变换系数正负号预测的当前块的使用范围进行拓展,允许更多形状更多大小的块使用符号预测技术。具体地,例如小于4×4的块和帧内大于32×32,帧间大于128×128的块,都可以使用此符号预测技术。
还可以理解,如图11所示,(a)示出了当前块处于编码树单元的上边界,(b)示出了当前块处于编码树单元的左边界。这时候在ECM的实现中,如果当前块处于编码树单元边缘时,那么c
x和c
y的计算会使用到邻近的编码树单元中的重建值,详见前述的图7和式(1)所示。具体地,当处于编码树单元第一行的当前块,需要使用到上方另一个编码树单元中的重建值时会给硬件带来更多实现复杂度。
如此,为了减少复杂度以及保证正负号的预测准确度,对于编码树单元第一行的变换单元,代价的计算方式可以进行合理的简化。
在一种可能的实现方式中,所述对最后一个系数组进行符号预测,确定最后一个系数组的符号预测值,可以包括:
若当前块处于所属对象的上边界,则根据当前块的左侧边对应的第一相邻像素值,计算最后一个系数组在多种候选符号组合下的代价值;
根据多种候选符号组合下的代价值,确定最后一个系数组对应的符号预测值。
在这里,第一相邻像素值可以是由当前块的左侧边相邻两列的参考像素值组成的。
在另一种可能的实现方式中,所述对最后一个系数组进行符号预测,确定最后一个系数组的符号预测值,可以包括:
若当前块处于所属对象的左边界,则根据当前块的上侧边对应的第二相邻像素值,计算最后一个系数组在多种候选符号组合下的代价值;
根据多种候选符号组合下的代价值,确定最后一个系数组对应的符号预测值。
在这里,第二相邻像素值可以是由当前块的上侧边相邻两行的参考像素值组成的。
需要说明的是,在本申请实施例中,所属对象可以包括下述至少之一:图像和编码树单元。也就是说,当前块无论是处于图像的上边界还是编码树单元的上边界,这时候都可以根据当前块的左侧边对应的第一相邻像素值,计算最后一个系数组在多种候选符号组合下的代价值;或者,当前块无论是处于图像的左边界还是编码树单元的左边界,这时候都可以根据当前块的上侧边对应的第二相邻像素值,计算最后一个系数组在多种候选符号组合下的代价值。需要注意的是,这里的多种候选符号组合可以是基于不同的符号预测模式确定的。
还需要说明的是,在本申请实施例中,本申请实施例的技术方案实现的前提是满足以下的一些限定:
(1)当前序列允许使用符号预测技术;
(2)符号预测作用于当前块中的某一块区域,例如左上角位置的N×M区域,M和N为正整数。
具体而言,对于处于编码树单元第一行的当前块,当前块需要使用到上方编码树单元中的重建值。为了减少行缓存,可以省去上侧代价的计算;类似于处理图像边缘的代价一样,省去取上方编码树单元中的重建值计算,具体如下所示,
对于处于编码树单元第一列的当前块,当前块需要使用到左侧编码树单元中的重建值。为了减少列缓存,也可以省去左侧代价的计算;类似于处理图像边缘的代价一样,省去取左侧编码树单元中的重建值计算,具体如下所示,
这样,以当前块处于编码树单元的上边界为例,在通用测试条件下使用全帧内编码配置进行测试,该方法(跳过上方的代价计算)后编解码性能变化如图12所示。根据图12可以得到,在这样的简化下,对编解码性能造成的影响不明显。
进一步地,在ECM的实现中,符号预测需要参考上方和左侧的两行两列的重建值,而在上述的实施例中提出了对于编码树单元第一行的当前块可以采用只参考左侧的方式,能够减少复杂度。另外,这里还提出一个可以替代的方案,即将使用上方两行修改为只使用上方一行,而左侧仍然使用两列。
因此,在一些实施例中,所述对最后一个系数组进行符号预测,确定最后一个系数组的符号预测值,可以包括:
若当前块处于所属对象的上边界,则根据当前块的左侧边对应的第一相邻像素值和当前块的上侧边对应的第二相邻像素值,计算最后一个系数组在多种候选符号组合下的代价值;
根据多种候选符号组合下的代价值,确定最后一个系数组对应的符号预测值。
需要说明的是,第一相邻像素值可以是由当前块的左侧边相邻两列的参考像素值组成的,第二相邻像素值可以是由当前块的上侧边相邻一行的参考像素值组成的。在这种情况下,代价计算如下所示,
还需要说明的是,如果当前块处于所属对象的左边界,那么也可以是参考上方两行以及左侧一列。因此,在一些实施例中,所述对最后一个系数组进行符号预测,确定最后一个系数组的符号预测值,可以包括:
若当前块处于所属对象的左边界,则根据当前块的左侧边对应的第一相邻像素值和当前块的上侧边对应的第二相邻像素值,计算最后一个系数组在多种候选符号组合下的代价值;
根据多种候选符号组合下的代价值,确定最后一个系数组对应的符号预测值。
需要说明的是,第一相邻像素值可以是由当前块的左侧边相邻一列的参考像素值组成的,第二相邻像素值可以是由当前块的上侧边相邻两行的参考像素值组成的。在这种情况下,代价计算如下所示,
还需要说明的是,在本申请实施例中,所属对象可以包括下述至少之一:图像和编码树单元。另外,对于当前块处于图像或者编码树单元的左边界或者上边界,本申请实施例甚至还可以使用当前块的左侧边相邻一列的参考像素值和当前块的上侧边相邻一行的参考像素值进行代价值计算,这里对此不作具体限定。
还需要说明的是,在确定出多种候选符号组合下的代价值之后,所述根据多种候选符号组合下的代价值,确定最后一个系数组对应的符号预测值,可以包括:
从多种候选符号组合下的代价值中确定最小代价值;
根据最小代价值对应的候选符号组合,确定最后一个系数组对应的符号预测值。
也就是说,假设从最后一个系数组选择出其中的K个系数来预测正负号,能够得到2
K种可能的正负组合;然后根据预先计算的模板,计算出2
K种变换块在第一行和第一列的假设的反变换残差值;再利用变换块的这2
K种假设的反变换残差值和预测值,能够得到2
K种假设重建值,从2
K种假设重建值选出一种与周围已重建的块之间代价最小的假设重建值;最后,代价值最小的反变换残差值所使用的一组正负号即为正负号预测得到的符号预测值。
这样,对于变换系数正负号的符号预测,如果当前块处于编码树单元上边界,那么需要对代价计算的方式进行调整,例如对上侧代价计算进行限制,减少跨编码树单元来取重建值的情况,尤其是取上方编码树单元中的重建值。本申请实施例提出了简化的解决方案:直接跳过上侧代价计算或 只考虑使用一行。
还可以理解,对于图像边缘来说,在ECM的实现中,代价计算始终跳过了没有重建值的那一侧,例如,如图13所示,(a)示出了当前块处于图像的上边界,(b)示出了当前块处于图像的左边界。如果当前块处于图像的第一行(即上边界),那么代价计算跳过上侧只算左侧,同上述的式(5)所示;如果当前块处于图像的第一列(即左边界),那么代价计算跳过左侧只算上侧,同上述的式(6)所示。
而对于只算一侧代价的情况,在一种实现方式中仍然是考虑上侧和左侧总共的能量变化,所以对于基于能量大小选择非零变换系数来预测正负号的方法,计算没有重建值那一侧的能量没有意义。
基于此,本申请实施例提出另一种实现方式。首先,基于当前块上侧和左侧能量的的大小来选择待预测正负号的变换系数。这种选择系数的方式需满足以下限定:
(1)符号预测允许最多预测该区域中不大于K个非零系数的正负号,例如在ECM中,对于一次变换K=8个,二次变换K=4个。
(2)当当前区域中非零系数超过最大限制时,可以采用定义的筛选方法筛选出K个待预测正负号的系数。
具体地,在一些实施例中,所述对所述最后一个系数组进行符号预测,确定所述最后一个系数组的符号预测值,可以包括:
若最后一个系数组中非零重建系数绝对值的个数大于K,则从最后一个系数组中选取K个非零重建系数绝对值;其中,K为大于零的整数;
利用K个非零重建系数绝对值进行符号预测,确定K个非零重建系数绝对值的符号预测值。
进一步地,在一些实施例中,所述从最后一个系数组中选取K个非零重建系数绝对值,可以包括:
利用光栅扫描顺序对最后一个系数组进行扫描,将最先扫描到的K个非零重建系数绝对值确定为选取的K个非零重建系数绝对值;
或者,
确定最后一个系数组中非零重建系数的绝对值;
从非零重建系数的绝对值中确定最大的K个绝对值,根据K个绝对值确定选取的K个非零重建系数绝对值;
或者,
确定最后一个系数组中非零重建系数的能量值;
从非零重建系数的能量值中确定最大的K个能量值,根据K个能量值确定选取的K个非零重建系数绝对值。
也就是说,针对用于正负号预测的非零系数的筛选,可以是按照ECM中的光栅扫描顺序,将最先扫描到的K个值确定为选取的K个非零重建系数绝对值;或者,也可以是根据绝对值大小确定最大的K个绝对值,然后根据这K个绝对值确定选取的K个非零重建系数绝对值;或者,也可以是根据能量值大小确定最大的K个能量值,然后根据这K个能量值确定选取的K个非零重建系数绝对值,本申请实施例并不作具体限定。
进一步地,在能量值的计算过程中,对于处于编码树单元边界或者图像边界的当前块,可以参考代价的计算,仅使用某一侧能量计算跳过的解决方案。具体地,在一些实施例中,所述确定最后一个系数组中非零重建系数的能量值,可以包括:
确定最后一个系数组中非零重建系数在当前块的左侧边的反变换值和在当前块的上侧边的反变换值;
若当前块处于所属对象的上边界,则根据非零重建系数在当前块的左侧边的反变换值,计算非零重建系数的能量值;
若当前块处于所属对象的左边界,则根据非零重建系数在当前块的上侧边的反变换值,计算非零重建系数的能量值。
需要说明的是,针对用于正负号预测的非零系数的筛选,当使用能量计算时,在ECM中对于处于图像边界的当前块,代价只计算了有邻近重建块的一侧,对于超出图像边界一侧的代价实施跳过。对于这样的情况,计算超过图像边界一侧的能量没有意义,也应当跳过。同理,对于其它潜在的筛选方法,应当去除筛选方法中对超过图像边界一侧的计算。
示例性地,当前块处于图像上边界时,上侧代价计算跳过,这时候仅利用左侧进行能量计算,该能量计算如下所示,
当前块处于图像左边界时,左侧代价计算跳过,这时候仅利用上侧进行能量计算,该能量计算如下所示,
其中,tc
i,j为4×4的左上角区域中的变换系数(i,j代表坐标),T
i,j(k)为在(i,j)位置处的变换系数为1时,在当前变换块左侧边缘和上侧边缘中的第k个反变换值,w和h表示当前变换块的宽度和高度。
考虑到在ECM后续的实施中,有可能存在对处于编码树单元第一行的当前块的代价计算进行限制,例如,对于这一行的当前块,不再同时计算上侧和左侧总共的代价而是只计算左侧跳过上侧,筛选能量的标准也可以只参考左侧不参考上侧。因此,在编码树单元边界的情况下,能量计算也应该跳过某侧能量,如上述的式(9)和式(10)所示。
也就是说,对于使用某一侧代价计算跳过的解决方案时,筛选待预测正负号的变换系数的标准也需做出相应优化,例如,代价的计算只参考某一侧时,能量的计算也只应参考那一侧。
这样,以将上述优化应用于图像边界的当前块能量计算为例,与优化之前的能量计算方案相比,在全帧内编码配置进行测试,编解码性能变化如图14所示。根据图14可以得到,此优化在对图像边界的能量计算进行简化的同时,还能够提供0.01%的编码性能增益。
还可以理解,在ECM的实现中对于图像左上角位置的当前块,如图15所示,这时候的代价计算公式如下所示,
其中,default为初始值,当像素比特深度为n时,default=2
n-1。然而对于处于边缘的当前块,由于没有附近块的重建值,这样的代价计算是不合理的。
在本申请实施例中,该方法还可以包括:若当前块处于所属对象的左上角位置,则确定当前块的重建系数绝对值不进行符号预测。
也就是说,由于将左上角位置没有邻近块的当前块参考重建值设为默认值不合理,那么本申请实施例可以直接跳过对这个块进行变换系数的正负号预测。与设置默认值的方案相比,在全帧内编码配置进行测试,编解码性能变化如图16所示。根据图16可以得到,如果跳过左上方没有邻近参考块的变换块,那么也能够提供一定的编码性能增益。
进一步地,在一些实施例中,在确定出最后一个系数组的符号预测值之后,如图17所示,该方法还可以包括:
S1701:解析码流,确定最后一个系数组的符号残差值。
S1702:根据最后一个系数组的符号预测值和最后一个系数组的符号残差值,确定最后一个系数组的符号原始值。
S1703:根据最后一个系数组的符号原始值,确定当前块的重建系数。
需要说明的是,在本申请实施例中,可以基于上下文模型解码出最后一个系数组的符号残差值。
还需要说明的是,在一种具体的实施例中,对于S1702来说,所述根据最后一个系数组的符号预测值和最后一个系数组的符号残差值,确定最后一个系数组的符号原始值,可以包括:对根据最后一个系数组的符号预测值和最后一个系数组的符号残差值进行异或运算,确定最后一个系数组的符号原始值。
在另一种具体的实施例中,对于S1702来说,所述根据最后一个系数组的符号预测值和最后一个系数组的符号残差值,确定最后一个系数组的符号原始值,可以包括:对根据最后一个系数组的符号预测值和最后一个系数组的符号残差值进行加法运算,确定最后一个系数组的符号原始值。
也就是说,解码器从上下文模型中解码出正负号的符号残差值,然后根据符号残差值与符号预测值可以得到最后一个系数组的符号原始值(即真实的正负号),将真实的正负号直接赋值给重建系 数,然后在进一步完成解码后续操作(例如,反变换、重建等等)。
本申请实施例提供了一种解码方法,通过解析码流,确定当前块的重建系数绝对值;按照预设扫描顺序对当前块的重建系数绝对值进行扫描,确定当前块在预设扫描顺序上的最后一个系数组;对最后一个系数组进行符号预测,确定最后一个系数组的符号预测值。这样,按照预设扫描顺序对当前块的变换系数进行扫描,然后确定出当前块在预设扫描顺序上的最后一个系数组,以便对最后一个系数组进行符号预测,如此不仅能够允许更多形状更多大小的块可以进行符号预测,拓展了符号预测技术的适用范围;而且在符号预测过程中,针对当前块处于图像或者编码树单元的上边界或左边界的情况,还对代价计算的方式进行优化,同时针对筛选待预测正负的变换系数的能量计算方式也进行适应性调整,从而还降低了计算复杂度,提高了正负号的符号预测准确度。
本申请的另一实施例中,参见图18,其示出了本申请实施例提供的一种编码方法的流程示意图一。如图18所示,该方法可以包括:
S1801:确定当前块的变换系数。
需要说明的是,本申请实施例的编码方法应用于编码器,具体可以是一种符号预测方法,这里主要是针对当前块中的变换系数的正负号进行预测。
还需要说明的是,基于图8A所示编码器100的组成结构,本申请实施例的编码方法则是应用于编码器100中的“熵编码单元115”部分,针对该熵编码单元115,可以采用基于上下文模型的自适应二进制算术编码模式对符号残差值进行熵编码,然后写入码流。其中,符号残差值是基于符号原始值和符号预测值确定的。
可以理解,在ECM的实现中,对于当前块而言,块尺寸通常为大于或等于4×4。对于小于4×4的当前块,由于此时左上角位置不存在4×4区域供符号预测(Sign Prediction)使用,所以这样的当前块是禁止使用符号预测。同时,对于大于32×32的帧内块和大于128×128的帧间块,也禁止使用符号预测。然而,在本申请实施例中,可以通过确定在预设扫描顺序上的最后一个系数组,然后对最后一个系数组使用符号预测,使得符号预测能够应用于更多形状更多尺寸的块,拓展了符号预测技术的适用范围。
S1802:按照预设扫描顺序对当前块的变换系数进行扫描,确定当前块在预设扫描顺序上的最后一个系数组。
S1803:对最后一个系数组进行符号预测,确定最后一个系数组的符号预测值。
需要说明的是,在本申请实施例中,可以允许在预设扫描顺序上最后一个系数组中选取非零变换系数来使用符号预测。这样,首先可以按照预设扫描顺序对当前块的变换系数进行扫描,确定当前块在预设扫描顺序上的最后一个系数组;然后对最后一个系数组进行符号预测,确定最后一个系数组的符号预测值,从而能够允许更多形状更多大小的块可以进行符号预测,拓展了符号预测技术的适用范围。
还需要说明的是,在本申请实施例中,预设扫描顺序可以是对角线、Zigzag、水平、垂直、4×4子块扫描或者任何其它扫描顺序,这里不作任何限定。
还需要说明的是,不同尺寸的当前块,可以划分为不同数量的系数组。因此,对于系数组的划分,在一些实施例中,该方法还可以包括:
若当前块的尺寸为1×N,N为大于或等于16的整数,则确定当前块的变换系数可划分为(N/16)个系数组,且系数组的尺寸为1×16;
若当前块的尺寸为N×1,N为大于或等于16的整数,则确定当前块的变换系数可划分为(N/16)个系数组,且系数组的尺寸为16×1;
若当前块的尺寸为2×N,N为大于或等于8的整数,则确定当前块的变换系数可划分为(N/8)个系数组,且系数组的尺寸为2×8;
若当前块的尺寸为N×2,N为大于或等于8的整数,则确定当前块的变换系数可划分为(N/8)个系数组,且系数组的尺寸为8×2;
若当前块的尺寸为M×N,M和N均为大于或等于4的整数,则确定当前块的变换系数可划分为(M×N/16)个系数组,且系数组的尺寸为4×4。
需要说明的是,针对当前块的尺寸来说,还可能出现1×N、2×N的块,这些块的形状以及对应的系数组大小如上述的表1所示。
在相关技术中,对于某一侧的长度小于4,ECM中目前是不允许这样的块使用符号预测。而在本申请实施例中,可以允许对块中的所有区域或者部分区域(例如,同ECM中的对左上角位置的4 ×4区域)中非零变换系数使用符号预测。
示例性地,ECM中目前对大于4×4的当前块,左上角位置的4×4区域(左上角位置的系数组)中非零变换系数允许使用符号预测;同理,对于小于4×4的当前块,也可以允许在预设扫描顺序上最后一个系数组中选取非零变换系数使用符号预测。图10示出了本申请实施例提供的对小于4×4的块允许其在预设扫描顺序上最后一个系数组使用符号预测时在对比ECM参考软件在全帧内编码下带来的编码效果提升示意。其中,在YUV颜色空间下的Y分量、U分量和V分量等三个分量下分别带来了0.02%、0.1%、0.07%的性能提升,而且编码时间(用EncT表示)和解码时间(用DecT表示)变化不大。
另外,在实际应用中,越靠近左上角位置,在预设扫描顺序上越靠后,即最后一个系数组即是处于当前块的左上角位置。因此,本申请实施例也可以取消使用符号预测技术的块最大尺寸的限制。示例性地,在ECM中目前大于32×32的帧内块和大于128×128的帧间块不可以使用符号预测,而实际上目前允许最大尺寸的块为256×256。所以取消块最大尺寸的限制意味着允许最多到256×256的变换块中部分(例如,同ECM中的对左上角位置的4×4区域)或所有区域中的非零系数正负号的符号预测。
进一步地,在当前块的尺寸为M×N,M和N均为大于或等于4的整数情况下,这时候系数组的尺寸为4×4。在一些实施例中,该方法还可以包括:
确定当前块中处于左上角位置的第一区域;
根据第一区域内的变换系数确定最后一个系数组;其中,最后一个系数组中的变换系数个数为2
L个,且L为大于或等于零的个数。
需要说明的是,通常情况下,如果当前块的尺寸大于或等于4×4,那么可以直接将左上角位置的4×4区域作为最后一个系数组。另外,考虑到符号预测所使用非零变换系数的个数通常为K个,如果4×4区域中的非零变换系数小于K个,这时候还可以适当扩大左上角区域,例如将左上角位置的8×8区域、16×16区域等作为最后一个系数组,以使得最后一个系数组中的变换系数个数为2
L个。在本申请实施例中,第一区域可以为4×4区域,但是这里不作具体限定。
还需要说明的是,K为大于零的整数。示例性地,对于一次变换,K的取值可以为8;对于二次变换,K的取值可以为4,但是并不作具体限定。
这样,可以将可以使用变换系数正负号预测的当前块的使用范围进行拓展,允许更多形状更多大小的块使用符号预测技术。具体地,例如小于4×4的块和帧内大于32×32,帧间大于128×128的块,都可以使用此符号预测技术。
还可以理解,为了减少复杂度以及保证正负号的预测准确度,对于编码树单元第一行的变换单元,代价的计算方式可以进行合理的简化。在一种可能的实现方式中,如图19所示,对于S1803来说,该步骤可以包括:
S1901:若当前块处于所属对象的上边界,则根据当前块的左侧边对应的第一相邻像素值,计算最后一个系数组在多种候选符号组合下的代价值。
S1902:从多种候选符号组合下的代价值中确定最小代价值。
S1903:根据最小代价值对应的候选符号组合,确定最后一个系数组对应的符号预测值。
在本申请实施例中,第一相邻像素值可以是由当前块的左侧边相邻两列的参考像素值组成的。
也就是说,如果当前块处于所属对象的上边界,那么根据当前块的左侧边对应的第一相邻像素值,计算最后一个系数组在多种候选符号组合下的代价值;根据多种候选符号组合下的代价值,确定最后一个系数组对应的符号预测值。在这里,第一相邻像素值可以是由当前块的左侧边相邻两列的参考像素值组成的。
在另一种可能的实现方式中,所述对最后一个系数组进行符号预测,确定最后一个系数组的符号预测值,可以包括:
若当前块处于所属对象的左边界,则根据当前块的上侧边对应的第二相邻像素值,计算最后一个系数组在多种候选符号组合下的代价值;
根据多种候选符号组合下的代价值,确定最后一个系数组对应的符号预测值。
在这里,第二相邻像素值可以是由当前块的上侧边相邻两行的参考像素值组成的。
需要说明的是,在本申请实施例中,所属对象可以包括下述至少之一:图像和编码树单元。也就是说,当前块无论是处于图像的上边界还是编码树单元的上边界,这时候都可以根据当前块的左侧边对应的第一相邻像素值,计算最后一个系数组在多种候选符号组合下的代价值;或者,当前块无论是处于图像的左边界还是编码树单元的左边界,这时候都可以根据当前块的上侧边对应的第二 相邻像素值,计算最后一个系数组在多种候选符号组合下的代价值。需要注意的是,这里的多种候选符号组合可以是基于不同的符号预测模式确定的。
还需要说明的是,本申请实施例的技术方案实现的前提是满足以下的一些限定:(1)当前序列允许使用符号预测技术;(2)符号预测作用于当前块中的某一块区域,例如左上角位置的N×M区域,M和N为正整数。
具体而言,对于处于编码树单元第一行的当前块,当前块需要使用到上方编码树单元中的重建值。为了减少行缓存,可以省去上侧代价的计算;类似于处理图像边缘的代价一样,省去取上方编码树单元中的重建值计算,具体如上述的式(5)所示。对于处于编码树单元第一列的当前块,当前块需要使用到左侧编码树单元中的重建值。为了减少列缓存,也可以省去左侧代价的计算;类似于处理图像边缘的代价一样,省去取左侧编码树单元中的重建值计算,具体如上述的式(6)所示。
这样,以当前块处于编码树单元的上边界为例,在通用测试条件下使用全帧内编码配置进行测试,该方法(跳过上侧的代价计算)后编解码性能变化如图12所示。由此可以得到,在这样的简化下,对编解码性能造成的影响并不明显。
进一步地,在ECM的实现中,符号预测需要参考上方和左侧的两行两列的重建值,在上述的实施例中提出了对于编码树单元第一行的当前块可以采用只参考左侧的方式来减少复杂度。一个可以替代的方法为将使用上方两行改为只使用上方一行,而左侧仍然使用两列。
在又一种可能的实现方式中,所述对最后一个系数组进行符号预测,确定最后一个系数组的符号预测值,可以包括:
若当前块处于所属对象的上边界,则根据当前块的左侧边对应的第一相邻像素值和当前块的上侧边对应的第二相邻像素值,计算最后一个系数组在多种候选符号组合下的代价值;
根据多种候选符号组合下的代价值,确定最后一个系数组对应的符号预测值。
在这里,第一相邻像素值可以是由当前块的左侧边相邻两列的参考像素值组成的,第二相邻像素值可以是由当前块的上侧边相邻一行的参考像素值组成的。在这种情况下,代价计算如上述的式(7)所示.
还需要说明的是,如果当前块处于所属对象的左边界,那么也可以是参考上方两行以及左侧一列。因此,在再一种可能的实现方式中,所述对最后一个系数组进行符号预测,确定最后一个系数组的符号预测值,可以包括:
若当前块处于所属对象的左边界,则根据当前块的左侧边对应的第一相邻像素值和当前块的上侧边对应的第二相邻像素值,计算最后一个系数组在多种候选符号组合下的代价值;
根据多种候选符号组合下的代价值,确定最后一个系数组对应的符号预测值。
在这里,第一相邻像素值可以是由当前块的左侧边相邻一列的参考像素值组成的,第二相邻像素值可以是由当前块的上侧边相邻两行的参考像素值组成的。在这种情况下,代价计算如上述的式(8)所示。
还需要说明的是,在本申请实施例中,所属对象可以包括下述至少之一:图像和编码树单元。另外,对于当前块处于图像或者编码树单元的左边界或者上边界,本申请实施例甚至还可以使用当前块的左侧边相邻一列的参考像素值和当前块的上侧边相邻一行的参考像素值进行代价值计算,这里对此不作具体限定。
还需要说明的是,在确定出多种候选符号组合下的代价值之后,所述根据多种候选符号组合下的代价值,确定最后一个系数组对应的符号预测值,可以包括:
从多种候选符号组合下的代价值中确定最小代价值;
根据最小代价值对应的候选符号组合,确定最后一个系数组对应的符号预测值。
也就是说,假设从最后一个系数组选择出其中的K个变换系数来预测正负号,能够得到2
K种可能的正负组合;然后计算2
K种变换块在第一行和第一列的假设的反变换残差值,再利用变换块的这2
K种假设的反变换残差值和预测值,能够得到2
K种假设重建值,从2
K种假设重建值选出一种与周围已重建的块之间代价最小的假设重建值;最后,代价值最小的反变换残差值所使用的一组正负号即为正负号预测得到的符号预测值。
这样,对于变换系数正负号的符号预测,如果当前块处于编码树单元上边界,那么需要对代价计算的方式进行调整,例如对上侧代价计算进行限制,减少跨编码树单元来取重建值的情况,尤其是取上方编码树单元中的重建值。本申请实施例提出了简化的解决方案:直接跳过上侧代价计算或只考虑使用一行。
还可以理解,对于图像边缘来说,在ECM的实现中,代价计算始终跳过了没有重建值的那一侧。 而对于只算一侧代价的情况,在一种实现方式中仍然是考虑上侧和左侧总共的能量变化,所以对于基于能量大小选择非零变换系数来预测正负号的方法,计算没有重建值那一侧的能量没有意义。
基于此,本申请实施例提出另一种实现方式。首先,基于当前块上侧和左侧能量的的大小来选择待预测正负号的变换系数。这种选择系数的方式需满足以下限定:(1)符号预测允许最多预测该区域中不大于K个非零系数的正负号,例如在ECM中,对于一次变换K=8个,二次变换K=4个。(2)当当前区域中非零系数超过最大限制时,可以采用定义的筛选方法筛选出K个待预测正负号的系数。
具体地,在一些实施例中,所述对最后一个系数组进行符号预测,确定最后一个系数组的符号预测值,可以包括:
若最后一个系数组中非零变换系数的个数大于K,则从最后一个系数组中选取K个非零变换系数;其中,K为大于零的整数;
利用K个非零变换系数进行符号预测,确定K个非零变换系数的符号预测值。
进一步地,在一些实施例中,所述从最后一个系数组中选取K个非零变换系数,可以包括:
利用光栅扫描顺序对最后一个系数组进行扫描,将最先扫描到的K个非零变换系数确定为选取的K个非零变换系数;
或者,
确定最后一个系数组中非零变换系数的绝对值;
从非零变换系数的绝对值中确定最大的K个绝对值,根据K个绝对值确定选取的K个非零变换系数;
或者,
确定最后一个系数组中非零变换系数的能量值;
从非零变换系数的能量值中确定最大的K个能量值,根据K个能量值确定选取的K个非零变换系数。
也就是说,针对用于正负号预测的非零变换系数的筛选,可以是按照ECM中的光栅扫描顺序,将最先扫描到的K个值确定为选取的K个非零变换系数;或者,也可以是根据绝对值大小确定最大的K个绝对值,然后根据这K个绝对值确定选取的K个非零变换系数;或者,也可以是根据能量值大小确定最大的K个能量值,然后根据这K个能量值确定选取的K个非零变换系数,本申请实施例并不作具体限定。
进一步地,在能量值的计算过程中,对于处于编码树单元边界或者图像边界的当前块,可以参考代价的计算,仅使用某一侧能量计算跳过的解决方案。具体地,在一些实施例中,所述确定最后一个系数组中非零变换系数的能量值,可以包括:
确定最后一个系数组中非零变换系数在当前块的左侧边的反变换值和在当前块的上侧边的反变换值;
若当前块处于所属对象的上边界,则根据非零变换系数在当前块的左侧边的反变换值,计算非零变换系数的能量值;
若当前块处于所属对象的左边界,则根据非零变换系数在当前块的上侧边的反变换值,计算非零变换系数的能量值。
需要说明的是,针对用于正负号预测的非零系数的筛选,当使用能量计算时,在ECM中对于处于图像边界的当前块,代价只计算了有邻近重建块的一侧,对于超出图像边界一侧的代价实施跳过。对于这样的情况,计算超过图像边界一侧的能量没有意义,也应当跳过。同理,对于其它潜在的筛选方法,应当去除筛选方法中对超过图像边界一侧的计算。
示例性地,当前块处于图像上边界时,上侧代价计算跳过,这时候仅利用左侧进行能量计算,该能量计算如上述的式(9)所示。当前块处于图像左边界时,左侧代价计算跳过,这时候仅利用上侧进行能量计算,该能量计算如上述的式(10)所示。
考虑到在ECM后续的实施中,有可能存在对处于编码树单元第一行的当前块的代价计算进行限制,例如,对于这一行的当前块,不再同时计算上侧和左侧总共的代价而是只计算左侧跳过上侧,筛选能量的标准也可以只参考左侧不参考上侧。因此,在编码树单元边界的情况下,能量计算也应该跳过某侧能量,如上述的式(9)和式(10)所示。也就是说,对于使用某一侧代价计算跳过的解决方案时,筛选待预测正负号的变换系数的标准也需做出相应优化,例如,代价的计算只参考某一侧时,能量的计算也只应参考那一侧。
这样,以将上述优化应用于图像边界的当前块能量计算为例,与优化之前的能量计算方案相比, 在全帧内编码配置进行测试,编解码性能变化如图14所示。由此可以得到,此优化在对图像边界的能量计算进行简化的同时,还能够提供0.01%的编码性能增益。
除此之外,在一些实施例中,该方法还可以包括:若当前块处于所属对象的左上角位置,则确定当前块的变换系数不进行符号预测。
也就是说,在ECM的实现中对于图像左上角位置的当前块(如图15所示),由于将左上角位置没有邻近块的当前块参考重建值,将其设置为默认值是不合理的,那么本申请实施例可以直接跳过对这个块进行变换系数的正负号预测。与设置默认值的方案相比,在全帧内编码配置进行测试,编解码性能变化如图16所示。由此可以得到,如果跳过左上方没有邻近参考块的变换块,那么也能够提供一定的编码性能增益。
进一步地,在一些实施例中,在确定出最后一个系数组的符号预测值之后,如图20所示,该方法还可以包括:
S2001:根据最后一个系数组的符号预测值,确定最后一个系数组的符号残差值。
S2002:对符号残差值进行编码,将所得到的编码比特写入码流。
需要说明的是,在一些实施例中,所述根据最后一个系数组的符号预测值,确定最后一个系数组的符号残差值,可以包括:
根据当前块的变换系数,确定最后一个系数组的符号原始值;
根据最后一个系数组的符号原始值和最后一个系数组的符号预测值,确定最后一个系数组的符号残差值。
在一种具体的实施例中,所述根据最后一个系数组的符号原始值和最后一个系数组的符号预测值,确定最后一个系数组的符号残差值,可以包括:对最后一个系数组的符号原始值和最后一个系数组的符号预测值进行异或运算,确定最后一个系数组的符号残差值。
在另一种具体的实施例中,所述根据最后一个系数组的符号原始值和最后一个系数组的符号预测值,确定最后一个系数组的符号残差值,可以包括:对最后一个系数组的符号原始值和最后一个系数组的符号预测值进行减法运算,确定最后一个系数组的符号残差值。
还需要说明的是,在本申请实施例中,对符号残差值进行编码,可以是基于上下文模型进行编码的。
也就是说,在编码器中,首先当前块通过率失真优化选出的当前模式下最优的量化系数的正负值作为符号原始值,然后根据符号原始值与所得到的符号预测值可以确定出正负号的符号残差值,再使用上下文模型编码正负号的符号残差值。
简言之,在本申请实施例中,一方面,可以将使用变换系数正负号预测的变换块的使用范围进行拓展,允许更多形状更多大小的块使用此技术,具体的,例如小于4×4的变换块,帧内大于32×32,帧间大于128x128的变换块,都可以使用此技术。另一方面,对于已有变换系数正负号预测的方案,当变换块处于编码树单元上边界时,应对代价计算的方式进行调整,例如对上侧代价计算进行限制,减少跨编码树单元来取重建值的情况,尤其是获取上方编码树单元中的重建值;这里提出了简化的解决方案:直接跳过上侧代价计算或只考虑使用上侧一行。又一方面,对于使用某一侧代价计算跳过的解决方案时,筛选待预测正负号的变换系数的方案也需要做出相应调整,例如代价的计算只参考某一侧时,能量的计算也只应参考那一侧等等。
本申请实施例还提供了一种编码方法,通过确定当前块的变换系数;按照预设扫描顺序对当前块的变换系数进行扫描,确定当前块在预设扫描顺序上的最后一个系数组;对最后一个系数组进行符号预测,确定最后一个系数组的符号预测值。这样,按照预设扫描顺序对当前块的变换系数进行扫描,然后确定出当前块在预设扫描顺序上的最后一个系数组,以便对最后一个系数组进行符号预测,如此不仅能够允许更多形状更多大小的块可以进行符号预测,拓展了符号预测技术的适用范围;而且在符号预测过程中,针对当前块处于图像或者编码树单元的上边界或左边界的情况,还对代价计算的方式进行优化,同时针对筛选待预测正负的变换系数的能量计算方式也进行适应性调整,从而还降低了计算复杂度,提高了正负号的符号预测准确度。
本申请的又一实施例中,本申请实施例提供了一种码流,该码流是根据待编码信息进行比特编码生成的;其中,待编码信息可以包括下述至少之一:重建系数绝对值和符号残差值。
这样,在本申请实施例中,编码器可以通过码流将重建系数绝对值和符号残差值传输给解码器,然后在解码器中按照预设扫描顺序对当前块的重建系数绝对值进行扫描,然后确定出当前块在预设扫描顺序上的最后一个系数组,以便对最后一个系数组进行符号预测,如此不仅能够允许更多形状 更多大小的块可以进行符号预测,拓展了符号预测技术的适用范围;而且在符号预测过程中,针对当前块处于图像或者编码树单元的上边界或左边界的情况,还对代价计算的方式进行优化,同时针对筛选待预测正负的变换系数的能量计算方式也进行适应性调整,从而还降低了计算复杂度,提高了正负号的符号预测准确度。
本申请的再一实施例中,基于前述实施例相同的发明构思,参见图21,其示出了本申请实施例提供的一种编码器210的组成结构示意图。如图21所示,该编码器210可以包括:第一确定单元2101和第一预测单元2102;其中,
第一确定单元2101,配置为确定当前块的变换系数;
第一确定单元2101,还配置为按照预设扫描顺序对当前块的变换系数进行扫描,确定当前块在预设扫描顺序上的最后一个系数组;
第一预测单元2102,配置为对最后一个系数组进行符号预测,确定最后一个系数组的符号预测值。
在一些实施例中,参见图21,编码器210还可以包括编码单元2103;
第一确定单元2101,还配置为根据所述最后一个系数组的符号预测值,确定所述最后一个系数组的符号残差值;
编码单元2103,配置为对所述符号残差值进行编码,将所得到的编码比特写入码流。
在一些实施例中,第一确定单元2101,还配置为根据所述当前块的变换系数,确定所述最后一个系数组的符号原始值;以及根据所述最后一个系数组的符号原始值和所述最后一个系数组的符号预测值,确定所述最后一个系数组的符号残差值。
在一些实施例中,第一确定单元2101,还配置为对最后一个系数组的符号原始值和最后一个系数组的符号预测值进行异或运算,确定最后一个系数组的符号残差值。
在一些实施例中,若当前块的尺寸为1×N,N为大于或等于16的整数,则确定当前块的变换系数可划分为(N/16)个系数组,且系数组的尺寸为1×16;若当前块的尺寸为N×1,N为大于或等于16的整数,则确定当前块的变换系数可划分为(N/16)个系数组,且系数组的尺寸为16×1;若当前块的尺寸为2×N,N为大于或等于8的整数,则确定当前块的变换系数可划分为(N/8)个系数组,且系数组的尺寸为2×8;若当前块的尺寸为N×2,N为大于或等于8的整数,则确定当前块的变换系数可划分为(N/8)个系数组,且系数组的尺寸为8×2;若当前块的尺寸为M×N,M和N均为大于或等于4的整数,则确定当前块的变换系数可划分为(M×N/16)个系数组,且系数组的尺寸为4×4。
在一些实施例中,在当前块的尺寸为M×N,M和N均为大于或等于4的整数情况下,第一确定单元2101,还配置为确定当前块中处于左上角位置的第一区域;以及根据第一区域内的变换系数确定最后一个系数组;其中,最后一个系数组中的变换系数个数为2
L个,L为大于或等于零的个数。
在一些实施例中,第一预测单元2102,还配置为若当前块处于所属对象的上边界,则根据当前块的左侧边对应的第一相邻像素值,计算最后一个系数组在多种候选符号组合下的代价值;以及根据多种候选符号组合下的代价值,确定最后一个系数组对应的符号预测值;其中,第一相邻像素值是由当前块的左侧边相邻两列的参考像素值组成的。
在一些实施例中,第一预测单元2102,还配置为若当前块处于所属对象的左边界,则根据当前块的上侧边对应的第二相邻像素值,计算最后一个系数组在多种候选符号组合下的代价值;以及根据多种候选符号组合下的代价值,确定最后一个系数组对应的符号预测值;其中,第二相邻像素值是由当前块的上侧边相邻两行的参考像素值组成的。
在一些实施例中,第一预测单元2102,还配置为若当前块处于所属对象的上边界,则根据当前块的左侧边对应的第一相邻像素值和当前块的上侧边对应的第二相邻像素值,计算最后一个系数组在多种候选符号组合下的代价值;以及根据多种候选符号组合下的代价值,确定最后一个系数组对应的符号预测值;其中,第一相邻像素值是由当前块的左侧边相邻两列的参考像素值组成的,第二相邻像素值是由当前块的上侧边相邻一行的参考像素值组成的。
在一些实施例中,所属对象包括下述至少之一:图像和编码树单元。
在一些实施例中,第一确定单元2101,还配置为从多种候选符号组合下的代价值中确定最小代价值;以及根据最小代价值对应的候选符号组合,确定最后一个系数组对应的符号预测值。
在一些实施例中,第一预测单元2102,还配置为若最后一个系数组中非零变换系数的个数大于K,则从最后一个系数组中选取K个非零变换系数;其中,K为大于零的整数;以及利用K个非零 变换系数进行符号预测,确定K个非零变换系数的符号预测值。
在一些实施例中,第一确定单元2101,还配置为利用光栅扫描顺序对最后一个系数组进行扫描,将最先扫描到的K个非零变换系数确定为K个非零变换系数;或者,确定最后一个系数组中非零变换系数的绝对值,从非零变换系数的绝对值中确定最大的K个绝对值,根据K个绝对值确定K个非零变换系数;或者,确定最后一个系数组中非零变换系数的能量值,从非零变换系数的能量值中确定最大的K个能量值,根据K个能量值确定K个非零变换系数。
在一些实施例中,第一确定单元2101,还配置为确定最后一个系数组中非零变换系数在当前块的左侧边的反变换值和在当前块的上侧边的反变换值;以及若当前块处于所属对象的上边界,则根据非零变换系数在当前块的左侧边的反变换值,计算非零变换系数的能量值;若当前块处于所属对象的左边界,则根据非零变换系数在当前块的上侧边的反变换值,计算非零变换系数的能量值。
在一些实施例中,第一确定单元2101,还配置为若当前块处于所属对象的左上角位置,则确定当前块的变换系数不进行符号预测。
可以理解地,在本申请实施例中,“单元”可以是部分电路、部分处理器、部分程序或软件等等,当然也可以是模块,还可以是非模块化的。而且在本实施例中的各组成部分可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
因此,本申请实施例提供了一种计算机存储介质,应用于编码器210,该计算机存储介质存储有计算机程序,所述计算机程序被第一处理器执行时实现前述实施例中任一项所述的方法。
基于上述编码器210的组成以及计算机存储介质,参见图22,其示出了本申请实施例提供的编码器210的具体硬件结构示意图。如图22所示,编码器210可以包括:第一通信接口2201、第一存储器2202和第一处理器2203;各个组件通过第一总线系统2204耦合在一起。可理解,第一总线系统2204用于实现这些组件之间的连接通信。第一总线系统2204除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图22中将各种总线都标为第一总线系统2204。其中,
第一通信接口2201,用于在与其他外部网元之间进行收发信息过程中,信号的接收和发送;
第一存储器2202,用于存储能够在第一处理器2203上运行的计算机程序;
第一处理器2203,用于在运行所述计算机程序时,执行:
确定当前块的变换系数;
按照预设扫描顺序对所述当前块的变换系数进行扫描,确定所述当前块在所述预设扫描顺序上的最后一个系数组;
对所述最后一个系数组进行符号预测,确定所述最后一个系数组的符号预测值。
可以理解,本申请实施例中的第一存储器2202可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(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)。本申请描述的系统和方法的第一存储器2202旨在包括但不限于这些和任意其它适合类型的存储器。
而第一处理器2203可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过第一处理器2203中的硬件的集成逻辑电路或者软件形式的指令完成。上述的第一 处理器2203可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于第一存储器2202,第一处理器2203读取第一存储器2202中的信息,结合其硬件完成上述方法的步骤。
可以理解的是,本申请描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(Application Specific Integrated Circuits,ASIC)、数字信号处理器(Digital Signal Processing,DSP)、数字信号处理设备(DSP Device,DSPD)、可编程逻辑设备(Programmable Logic Device,PLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。对于软件实现,可通过执行本申请所述功能的模块(例如过程、函数等)来实现本申请所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
可选地,作为另一个实施例,第一处理器2203还配置为在运行所述计算机程序时,执行前述实施例中任一项所述的方法。
本实施例提供了一种编码器,该编码器可以包括第一确定单元和第一预测单元。这样,按照预设扫描顺序对当前块的变换系数进行扫描,确定出当前块在预设扫描顺序上的最后一个系数组,以便对最后一个系数组进行符号预测,如此不仅能够允许更多形状更多大小的块可以进行符号预测,拓展了符号预测技术的适用范围;而且在符号预测过程中,针对当前块处于图像或者编码树单元的上边界或左边界的情况,还对代价计算的方式进行优化,同时针对筛选待预测正负的变换系数的能量计算方式也进行适应性调整,从而还降低了计算复杂度,提高了正负号的符号预测准确度。
本申请的再一实施例中,基于前述实施例相同的发明构思,参见图23,其示出了本申请实施例提供的一种解码器230的组成结构示意图。如图23所示,该解码器230可以包括:解码单元2301、第二确定单元2302和第二预测单元2303;其中,
解码单元2301,配置为解析码流,确定当前块的重建系数绝对值;
第二确定单元2302,配置为按照预设扫描顺序对当前块的重建系数绝对值进行扫描,确定当前块在预设扫描顺序上的最后一个系数组;
第二预测单元2303,配置为对最后一个系数组进行符号预测,确定最后一个系数组的符号预测值。
在一些实施例中,解码单元2301,还配置为解析码流,确定最后一个系数组的符号残差值;以及根据最后一个系数组的符号预测值和最后一个系数组的符号残差值,确定最后一个系数组的符号原始值;以及根据最后一个系数组的符号原始值,确定当前块的重建系数。
在一些实施例中,第二确定单元2302,还配置为对根据最后一个系数组的符号预测值和最后一个系数组的符号残差值进行异或运算,确定最后一个系数组的符号原始值。
在一些实施例中,第二确定单元2302,还配置为若当前块的尺寸为1×N,N为大于或等于16的整数,则确定当前块的重建系数绝对值可划分为(N/16)个系数组,且系数组的尺寸为1×16;若当前块的尺寸为N×1,N为大于或等于16的整数,则确定当前块的重建系数绝对值可划分为(N/16)个系数组,且系数组的尺寸为16×1;若当前块的尺寸为2×N,N为大于或等于8的整数,则确定当前块的重建系数绝对值可划分为(N/8)个系数组,且系数组的尺寸为2×8;若当前块的尺寸为N×2,N为大于或等于8的整数,则确定当前块的重建系数绝对值可划分为(N/8)个系数组,且系数组的尺寸为8×2;若当前块的尺寸为M×N,M和N均为大于或等于4的整数,则确定当前块的重建系数绝对值可划分为(M×N/16)个系数组,且系数组的尺寸为4×4。
在一些实施例中,在当前块的尺寸为M×N,M和N均为大于或等于4的整数情况下,第二确定单元2302,还配置为确定当前块中处于左上角位置的第一区域;以及根据第一区域内的重建系数绝对值确定最后一个系数组;其中,最后一个系数组中的重建系数绝对值个数为2
L个,且L为大于或等于零的数。
在一些实施例中,第二预测单元2303,还配置为若当前块处于所属对象的上边界,则根据当前块的左侧边对应的第一相邻像素值,计算最后一个系数组在多种候选符号组合下的代价值;以及根据多种候选符号组合下的代价值,确定最后一个系数组对应的符号预测值;其中,第一相邻像素值是由当前块的左侧边相邻两列的参考像素值组成的。
在一些实施例中,第二预测单元2303,还配置为若当前块处于所属对象的左边界,则根据当前块的上侧边对应的第二相邻像素值,计算最后一个系数组在多种候选符号组合下的代价值;以及根据多种候选符号组合下的代价值,确定最后一个系数组对应的符号预测值;其中,第二相邻像素值是由当前块的上侧边相邻两行的参考像素值组成的。
在一些实施例中,第二预测单元2303,还配置为若当前块处于所属对象的上边界,则根据当前块的左侧边对应的第一相邻像素值和当前块的上侧边对应的第二相邻像素值,计算最后一个系数组在多种候选符号组合下的代价值;以及根据多种候选符号组合下的代价值,确定最后一个系数组对应的符号预测值;其中,第一相邻像素值是由当前块的左侧边相邻两列的参考像素值组成的,第二相邻像素值是由当前块的上侧边相邻一行的参考像素值组成的。
在一些实施例中,所属对象包括下述至少之一:图像和编码树单元。
在一些实施例中,第二确定单元2302,还配置为从多种候选符号组合下的代价值中确定最小代价值;以及根据最小代价值对应的候选符号组合,确定最后一个系数组对应的符号预测值。
在一些实施例中,第二预测单元2303,还配置为若最后一个系数组中非零重建系数绝对值的个数大于K,则从最后一个系数组中选取K个非零重建系数绝对值;其中,K为大于零的整数;以及利用K个非零重建系数绝对值进行符号预测,确定K个非零重建系数绝对值的符号预测值。
在一些实施例中,第二确定单元2302,还配置为利用光栅扫描顺序对最后一个系数组进行扫描,将最先扫描到的K个非零重建系数绝对值确定为K个非零重建系数绝对值;或者,确定最后一个系数组中非零重建系数的绝对值;从非零重建系数的绝对值中确定最大的K个绝对值,根据K个绝对值确定K个非零重建系数绝对值;或者,确定最后一个系数组中非零重建系数的能量值,从非零重建系数的能量值中确定最大的K个能量值,根据K个能量值确定K个非零重建系数绝对值。
在一些实施例中,第二确定单元2302,还配置为确定最后一个系数组中非零重建系数在当前块的左侧边的反变换值和在当前块的上侧边的反变换值;以及若当前块处于所属对象的上边界,则根据非零重建系数在当前块的左侧边的反变换值,计算非零重建系数的能量值;若当前块处于所属对象的左边界,则根据非零重建系数在当前块的上侧边的反变换值,计算非零重建系数的能量值。
在一些实施例中,第二确定单元2302,还配置为若当前块处于所属对象的左上角位置,则确定当前块的重建系数绝对值不进行符号预测。
可以理解地,在本实施例中,“单元”可以是部分电路、部分处理器、部分程序或软件等等,当然也可以是模块,还可以是非模块化的。而且在本实施例中的各组成部分可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本实施例提供了一种计算机存储介质,应用于解码器230,该计算机存储介质存储有计算机程序,所述计算机程序被第二处理器执行时实现前述实施例中任一项所述的方法。
基于上述解码器230的组成以及计算机存储介质,参见图24,其示出了本申请实施例提供的解码器230的具体硬件结构示意图。如图24所示,解码器230可以包括:第二通信接口2401、第二存储器2402和第二处理器2403;各个组件通过第二总线系统2404耦合在一起。可理解,第二总线系统2404用于实现这些组件之间的连接通信。第二总线系统2404除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图24中将各种总线都标为第二总线系统2404。其中,
第二通信接口2401,用于在与其他外部网元之间进行收发信息过程中,信号的接收和发送;
第二存储器2402,用于存储能够在第二处理器2403上运行的计算机程序;
第二处理器2403,用于在运行所述计算机程序时,执行:
解析码流,确定当前块的重建系数绝对值;
按照预设扫描顺序对当前块的重建系数绝对值进行扫描,确定当前块在预设扫描顺序上的最后一个系数组;
对最后一个系数组进行符号预测,确定最后一个系数组的符号预测值。
可选地,作为另一个实施例,第二处理器2403还配置为在运行所述计算机程序时,执行前述实施例中任一项所述的方法。
可以理解,第二存储器2402与第一存储器2202的硬件功能类似,第二处理器2403与第一处理器2203的硬件功能类似;这里不再详述。
本实施例提供了一种解码器,该解码器可以包括解码单元、第二确定单元和第二预测单元。这样,按照预设扫描顺序对当前块的变换系数进行扫描,确定出当前块在预设扫描顺序上的最后一个系数组,以便对最后一个系数组进行符号预测,如此不仅能够允许更多形状更多大小的块可以进行符号预测,拓展了符号预测技术的适用范围;而且在符号预测过程中,针对当前块处于图像或者编码树单元的上边界或左边界的情况,还对代价计算的方式进行优化,同时针对筛选待预测正负的变换系数的能量计算方式也进行适应性调整,从而还降低了计算复杂度,提高了正负号的符号预测准确度。
在本申请的再一实施例中,参见图25,其示出了本申请实施例提供的一种编解码系统的组成结构示意图。如图25所示,编解码系统250可以包括编码设备2501和解码设备2502。其中,编码设备2501可以为前述实施例中任一项所述的编码器,解码设备2502可以为前述实施例中任一项所述的解码器。
在本申请实施例中,该编解码系统250可以按照预设扫描顺序对当前块的变换系数进行扫描,然后确定出当前块在预设扫描顺序上的最后一个系数组,以便对最后一个系数组进行符号预测,如此不仅能够允许更多形状更多大小的块可以进行符号预测,拓展了符号预测技术的适用范围;而且在符号预测过程中,针对当前块处于图像或者编码树单元的上边界或左边界的情况,还对代价计算的方式进行优化,同时针对筛选待预测正负的变换系数的能量计算方式也进行适应性调整,从而还降低了计算复杂度,提高了正负号的符号预测准确度。
需要说明的是,在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
本申请所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
本申请实施例中,在编码端,确定当前块的变换系数;按照预设扫描顺序对当前块的变换系数进行扫描,确定当前块在预设扫描顺序上的最后一个系数组;对最后一个系数组进行符号预测,确定最后一个系数组的符号预测值。在解码端,解析码流,确定当前块的重建系数绝对值;按照预设扫描顺序对当前块的重建系数绝对值进行扫描,确定当前块在预设扫描顺序上的最后一个系数组;对最后一个系数组进行符号预测,确定最后一个系数组的符号预测值。这样,无论是编码端还是解码端,都可以按照预设扫描顺序对当前块的变换系数进行扫描,然后确定出当前块在预设扫描顺序上的最后一个系数组,以便对最后一个系数组进行符号预测,如此不仅能够允许更多形状更多大小的块可以进行符号预测,拓展了符号预测技术的适用范围;而且在符号预测过程中,针对当前块处于图像或者编码树单元的上边界或左边界的情况,还对代价计算的方式进行优化,同时针对筛选待预测正负的变换系数的能量计算方式也进行适应性调整,从而还降低了计算复杂度,提高了正负号的符号预测准确度。
Claims (35)
- 一种解码方法,应用于解码器,所述方法包括:解析码流,确定当前块的重建系数绝对值;按照预设扫描顺序对所述当前块的重建系数绝对值进行扫描,确定所述当前块在所述预设扫描顺序上的最后一个系数组;对所述最后一个系数组进行符号预测,确定所述最后一个系数组的符号预测值。
- 根据权利要求1所述的方法,其中,所述方法还包括:解析码流,确定所述最后一个系数组的符号残差值;根据所述最后一个系数组的符号预测值和所述最后一个系数组的符号残差值,确定所述最后一个系数组的符号原始值;根据所述最后一个系数组的符号原始值,确定所述当前块的重建系数。
- 根据权利要求2所述的方法,其中,所述根据所述最后一个系数组的符号预测值和所述最后一个系数组的符号残差值,确定所述最后一个系数组的符号原始值,包括:对根据所述最后一个系数组的符号预测值和所述最后一个系数组的符号残差值进行异或运算,确定所述最后一个系数组的符号原始值。
- 根据权利要求1所述的方法,其中,所述方法还包括:若所述当前块的尺寸为1×N,N为大于或等于16的整数,则确定所述当前块的重建系数绝对值可划分为(N/16)个系数组,且所述系数组的尺寸为1×16;若所述当前块的尺寸为N×1,N为大于或等于16的整数,则确定所述当前块的重建系数绝对值可划分为(N/16)个系数组,且所述系数组的尺寸为16×1;若所述当前块的尺寸为2×N,N为大于或等于8的整数,则确定所述当前块的重建系数绝对值可划分为(N/8)个系数组,且所述系数组的尺寸为2×8;若所述当前块的尺寸为N×2,N为大于或等于8的整数,则确定所述当前块的重建系数绝对值可划分为(N/8)个系数组,且所述系数组的尺寸为8×2;若所述当前块的尺寸为M×N,M和N均为大于或等于4的整数,则确定所述当前块的重建系数绝对值可划分为(M×N/16)个系数组,且所述系数组的尺寸为4×4。
- 根据权利要求4所述的方法,其中,在所述当前块的尺寸为M×N,M和N均为大于或等于4的整数情况下,所述方法还包括:确定所述当前块中处于左上角位置的第一区域;根据所述第一区域内的重建系数绝对值确定所述最后一个系数组;其中,所述最后一个系数组中的重建系数绝对值个数为2L个,且L为大于或等于零的数。
- 根据权利要求1所述的方法,其中,所述对所述最后一个系数组进行符号预测,确定所述最后一个系数组的符号预测值,包括:若所述当前块处于所属对象的上边界,则根据所述当前块的左侧边对应的第一相邻像素值,计算所述最后一个系数组在多种候选符号组合下的代价值;根据所述多种候选符号组合下的代价值,确定所述最后一个系数组对应的符号预测值;其中,所述第一相邻像素值是由所述当前块的左侧边相邻两列的参考像素值组成的。
- 根据权利要求1所述的方法,其中,所述对所述最后一个系数组进行符号预测,确定所述最后一个系数组的符号预测值,包括:若所述当前块处于所属对象的左边界,则根据所述当前块的上侧边对应的第二相邻像素值,计算所述最后一个系数组在多种候选符号组合下的代价值;根据所述多种候选符号组合下的代价值,确定所述最后一个系数组对应的符号预测值;其中,所述第二相邻像素值是由所述当前块的上侧边相邻两行的参考像素值组成的。
- 根据权利要求1所述的方法,其中,所述对所述最后一个系数组进行符号预测,确定所述最后一个系数组的符号预测值,包括:若所述当前块处于所属对象的上边界,则根据所述当前块的左侧边对应的第一相邻像素值和所述当前块的上侧边对应的第二相邻像素值,计算所述最后一个系数组在多种候选符号组合下的代价值;根据所述多种候选符号组合下的代价值,确定所述最后一个系数组对应的符号预测值;其中,所述第一相邻像素值是由所述当前块的左侧边相邻两列的参考像素值组成的,所述第二相邻像素值是由所述当前块的上侧边相邻一行的参考像素值组成的。
- 根据权利要求6至8任一项所述的方法,其中,所述所属对象包括下述至少之一:图像和编码树单元。
- 根据权利要求6至8任一项所述的方法,其中,所述根据所述多种候选符号组合下的代价值,确定所述最后一个系数组对应的符号预测值,包括:从所述多种候选符号组合下的代价值中确定最小代价值;根据所述最小代价值对应的候选符号组合,确定所述最后一个系数组对应的符号预测值。
- 根据权利要求1所述的方法,其中,所述对所述最后一个系数组进行符号预测,确定所述最后一个系数组的符号预测值,包括:若所述最后一个系数组中非零重建系数绝对值的个数大于K,则从所述最后一个系数组中选取K个非零重建系数绝对值;其中,K为大于零的整数;利用所述K个非零重建系数绝对值进行符号预测,确定所述K个非零重建系数绝对值的符号预测值。
- 根据权利要求11所述的方法,其中,所述从所述最后一个系数组中选取K个非零重建系数绝对值,包括:利用光栅扫描顺序对所述最后一个系数组进行扫描,将最先扫描到的K个非零重建系数绝对值确定为所述K个非零重建系数绝对值;或者,确定所述最后一个系数组中非零重建系数的绝对值;从所述非零重建系数的绝对值中确定最大的K个绝对值,根据所述K个绝对值确定所述K个非零重建系数绝对值;或者,确定所述最后一个系数组中非零重建系数的能量值;从所述非零重建系数的能量值中确定最大的K个能量值,根据所述K个能量值确定所述K个非零重建系数绝对值。
- 根据权利要求12所述的方法,其中,所述确定所述最后一个系数组中非零重建系数的能量值,包括:确定所述最后一个系数组中非零重建系数在所述当前块的左侧边的反变换值和在所述当前块的上侧边的反变换值;若所述当前块处于所属对象的上边界,则根据所述非零重建系数在所述当前块的左侧边的反变换值,计算所述非零重建系数的能量值;若所述当前块处于所属对象的左边界,则根据所述非零重建系数在所述当前块的上侧边的反变换值,计算所述非零重建系数的能量值。
- 根据权利要求1所述的方法,其中,所述方法还包括:若所述当前块处于所属对象的左上角位置,则确定所述当前块的重建系数绝对值不进行符号预测。
- 一种编码方法,应用于编码器,所述方法包括:确定当前块的变换系数;按照预设扫描顺序对所述当前块的变换系数进行扫描,确定所述当前块在所述预设扫描顺序上的最后一个系数组;对所述最后一个系数组进行符号预测,确定所述最后一个系数组的符号预测值。
- 根据权利要求15所述的方法,其中,所述方法还包括:根据所述最后一个系数组的符号预测值,确定所述最后一个系数组的符号残差值;对所述符号残差值进行编码,将所得到的编码比特写入码流。
- 根据权利要求16所述的方法,其中,所述根据所述最后一个系数组的符号预测值,确定所述最后一个系数组的符号残差值,包括:根据所述当前块的变换系数,确定所述最后一个系数组的符号原始值;根据所述最后一个系数组的符号原始值和所述最后一个系数组的符号预测值,确定所述最后一个系数组的符号残差值。
- 根据权利要求17所述的方法,其中,所述根据所述最后一个系数组的符号原始值和所述最后一个系数组的符号预测值,确定所述最后一个系数组的符号残差值,包括:对所述最后一个系数组的符号原始值和所述最后一个系数组的符号预测值进行异或运算,确定所述最后一个系数组的符号残差值。
- 根据权利要求15所述的方法,其中,所述方法还包括:若所述当前块的尺寸为1×N,N为大于或等于16的整数,则确定所述当前块的变换系数可划分为(N/16)个系数组,且所述系数组的尺寸为1×16;若所述当前块的尺寸为N×1,N为大于或等于16的整数,则确定所述当前块的变换系数可划分为(N/16)个系数组,且所述系数组的尺寸为16×1;若所述当前块的尺寸为2×N,N为大于或等于8的整数,则确定所述当前块的变换系数可划分为(N/8)个系数组,且所述系数组的尺寸为2×8;若所述当前块的尺寸为N×2,N为大于或等于8的整数,则确定所述当前块的变换系数可划分为(N/8)个系数组,且所述系数组的尺寸为8×2;若所述当前块的尺寸为M×N,M和N均为大于或等于4的整数,则确定所述当前块的变换系数可划分为(M×N/16)个系数组,且所述系数组的尺寸为4×4。
- 根据权利要求19所述的方法,其中,在所述当前块的尺寸为M×N,M和N均为大于或等于4的整数情况下,所述方法还包括:确定所述当前块中处于左上角位置的第一区域;根据所述第一区域内的变换系数确定所述最后一个系数组;其中,所述最后一个系数组中的变换系数个数为2 L个,且L为大于或等于零的个数。
- 根据权利要求15所述的方法,其中,所述对所述最后一个系数组进行符号预测,确定所述最后一个系数组的符号预测值,包括:若所述当前块处于所属对象的上边界,则根据所述当前块的左侧边对应的第一相邻像素值,计算所述最后一个系数组在多种候选符号组合下的代价值;根据所述多种候选符号组合下的代价值,确定所述最后一个系数组对应的符号预测值;其中,所述第一相邻像素值是由所述当前块的左侧边相邻两列的参考像素值组成的。
- 根据权利要求15所述的方法,其中,所述对所述最后一个系数组进行符号预测,确定所述最后一个系数组的符号预测值,包括:若所述当前块处于所属对象的左边界,则根据所述当前块的上侧边对应的第二相邻像素值,计算所述最后一个系数组在多种候选符号组合下的代价值;根据所述多种候选符号组合下的代价值,确定所述最后一个系数组对应的符号预测值;其中,所述第二相邻像素值是由所述当前块的上侧边相邻两行的参考像素值组成的。
- 根据权利要求15所述的方法,其中,所述对所述最后一个系数组进行符号预测,确定所述最后一个系数组的符号预测值,包括:若所述当前块处于所属对象的上边界,则根据所述当前块的左侧边对应的第一相邻像素值和所述当前块的上侧边对应的第二相邻像素值,计算所述最后一个系数组在多种候选符号组合下的代价值;根据所述多种候选符号组合下的代价值,确定所述最后一个系数组对应的符号预测值;其中,所述第一相邻像素值是由所述当前块的左侧边相邻两列的参考像素值组成的,所述第二相邻像素值是由所述当前块的上侧边相邻一行的参考像素值组成的。
- 根据权利要求21至23任一项所述的方法,其中,所述所属对象包括下述至少之一:图像和编码树单元。
- 根据权利要求21至23任一项所述的方法,其中,所述根据所述多种候选符号组合下的代价值,确定所述最后一个系数组对应的符号预测值,包括:从所述多种候选符号组合下的代价值中确定最小代价值;根据所述最小代价值对应的候选符号组合,确定所述最后一个系数组对应的符号预测值。
- 根据权利要求1所述的方法,其中,所述对所述最后一个系数组进行符号预测,确定所述最后一个系数组的符号预测值,包括:若所述最后一个系数组中非零变换系数的个数大于K,则从所述最后一个系数组中选取K个非零变换系数;其中,K为大于零的整数;利用所述K个非零变换系数进行符号预测,确定所述K个非零变换系数的符号预测值。
- 根据权利要求26所述的方法,其中,所述从所述最后一个系数组中选取K个非零变换系数,包括:利用光栅扫描顺序对所述最后一个系数组进行扫描,将最先扫描到的K个非零变换系数确定为所述K个非零变换系数;或者,确定所述最后一个系数组中非零变换系数的绝对值;从所述非零变换系数的绝对值中确定最大的K个绝对值,根据所述K个绝对值确定所述K个非零变换系数;或者,确定所述最后一个系数组中非零变换系数的能量值;从所述非零变换系数的能量值中确定最大的K个能量值,根据所述K个能量值确定所述K个非零变换系数。
- 根据权利要求27所述的方法,其中,所述确定所述最后一个系数组中非零变换系数的能量值,包括:确定所述最后一个系数组中非零变换系数在所述当前块的左侧边的反变换值和在所述当前块的上侧边的反变换值;若所述当前块处于所属对象的上边界,则根据所述非零变换系数在所述当前块的左侧边的反变换值,计算所述非零变换系数的能量值;若所述当前块处于所属对象的左边界,则根据所述非零变换系数在所述当前块的上侧边的反变换值,计算所述非零变换系数的能量值。
- 根据权利要求15所述的方法,其中,所述方法还包括:若所述当前块处于所属对象的左上角位置,则确定所述当前块的变换系数不进行符号预测。
- 一种码流,所述码流是根据待编码信息进行比特编码生成的;其中,所述待编码信息包括下述至少之一:重建系数绝对值和符号残差值。
- 一种编码器,包括第一确定单元和第一预测单元;其中,所述第一确定单元,配置为确定当前块的变换系数;所述第一确定单元,还配置为按照预设扫描顺序对所述当前块的变换系数进行扫描,确定所述当前块在所述预设扫描顺序上的最后一个系数组;所述第一预测单元,配置为对所述最后一个系数组进行符号预测,确定所述最后一个系数组的符号预测值。
- 一种编码器,所述编码器包括第一存储器和第一处理器;其中,所述第一存储器,用于存储能够在所述第一处理器上运行的计算机程序;所述第一处理器,用于在运行所述计算机程序时,执行如权利要求15至29任一项所述的方法。
- 一种解码器,包括解码单元、第二确定单元和第二预测单元;其中,所述解码单元,配置为解析码流,确定当前块的重建系数绝对值;所述第二确定单元,配置为按照预设扫描顺序对所述当前块的重建系数绝对值进行扫描,确定所述当前块在所述预设扫描顺序上的最后一个系数组;所述第一预测单元,配置为对所述最后一个系数组进行符号预测,确定所述最后一个系数组的符号预测值。
- 一种解码器,所述解码器包括第二存储器和第二处理器;其中,所述第二存储器,用于存储能够在所述第二处理器上运行的计算机程序;所述第二处理器,用于在运行所述计算机程序时,执行如权利要求1至14任一项所述的方法。
- 一种计算机存储介质,其中,所述计算机存储介质存储有计算机程序,所述计算机程序被执行时实现如权利要求1至14任一项所述的方法、或者实现如权利要求15至29任一项所述的方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2021/143688 WO2023123358A1 (zh) | 2021-12-31 | 2021-12-31 | 编解码方法、码流、编码器、解码器以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118202653A true CN118202653A (zh) | 2024-06-14 |
Family
ID=86997251
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180103838.1A Pending CN118202653A (zh) | 2021-12-31 | 2021-12-31 | 编解码方法、码流、编码器、解码器以及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN118202653A (zh) |
WO (1) | WO2023123358A1 (zh) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190208225A1 (en) * | 2018-01-02 | 2019-07-04 | Qualcomm Incorporated | Sign prediction in video coding |
EP3738311A1 (en) * | 2018-03-07 | 2020-11-18 | Huawei Technologies Co., Ltd. | Method and apparatus for residual sign prediction in transform domain |
-
2021
- 2021-12-31 WO PCT/CN2021/143688 patent/WO2023123358A1/zh unknown
- 2021-12-31 CN CN202180103838.1A patent/CN118202653A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2023123358A1 (zh) | 2023-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11973954B2 (en) | CCLM-based intra-prediction method and device | |
CN110024392B (zh) | 用于视频译码的低复杂度符号预测 | |
US20230379489A1 (en) | Method and apparatus for inter prediction in video coding system | |
US10728571B2 (en) | Inter prediction method and device in video coding system | |
RU2683165C1 (ru) | Внутреннее предсказание блочного копирования с асимметричными разделами и схемами поиска на стороне кодера, диапазоны поиска и подходы к разделению | |
EP3367681B1 (en) | Modeling-based image decoding method and device in image coding system | |
US10009615B2 (en) | Method and apparatus for vector encoding in video coding and decoding | |
US11805244B2 (en) | CCLM-based intra-prediction method and apparatus therefor | |
CN111869216B (zh) | 用于视频编解码系统的语法处理的方法和装置 | |
US20160073107A1 (en) | Method and apparatus for video encoding/decoding using intra prediction | |
US20240056605A1 (en) | Encoding method and apparatus therefor, and decoding method and apparatus therefor | |
KR20210045387A (ko) | 변형 행렬 선택의 계수에 따른 코딩 | |
WO2015052273A1 (en) | Method and apparatus for displacement vector component prediction in video coding and decoding | |
US20150350674A1 (en) | Method and apparatus for block encoding in video coding and decoding | |
EP3094091A1 (en) | Coding and decoding method and device | |
US11323696B2 (en) | Image coding method based on affine motion prediction, and device for same | |
KR20180044943A (ko) | 영상 코딩 시스템에서 인트라 예측 방법 및 장치 | |
MX2012013263A (es) | Metodos y aparatos para intracodificar un bloque que tiene pixeles asignados a grupos. | |
CN111448798A (zh) | 基于块形状的视频编码和解码的方法和装置 | |
CN116472707A (zh) | 图像预测方法、编码器、解码器以及计算机存储介质 | |
WO2023123358A1 (zh) | 编解码方法、码流、编码器、解码器以及存储介质 | |
KR101688085B1 (ko) | 고속 인트라 예측을 위한 영상 부호화 방법 및 장치 | |
CN112970252A (zh) | 视频编解码的方法和装置 | |
CN112204986A (zh) | 视频编解码的方法和装置 | |
CN112136329A (zh) | 视频编解码的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |