CN116982312A - 视频编解码方法与系统、及视频编解码器 - Google Patents
视频编解码方法与系统、及视频编解码器 Download PDFInfo
- Publication number
- CN116982312A CN116982312A CN202180095554.2A CN202180095554A CN116982312A CN 116982312 A CN116982312 A CN 116982312A CN 202180095554 A CN202180095554 A CN 202180095554A CN 116982312 A CN116982312 A CN 116982312A
- Authority
- CN
- China
- Prior art keywords
- coefficient
- absolute value
- flag
- decoding
- round
- 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 181
- 238000013139 quantization Methods 0.000 claims description 167
- 230000009466 transformation Effects 0.000 claims description 54
- 230000008569 process Effects 0.000 claims description 27
- 238000004590 computer program Methods 0.000 claims description 23
- 238000012545 processing Methods 0.000 claims description 14
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 26
- 238000010586 diagram Methods 0.000 description 24
- 238000001914 filtration Methods 0.000 description 17
- 230000006835 compression Effects 0.000 description 12
- 238000007906 compression Methods 0.000 description 12
- 230000007704 transition Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 230000003044 adaptive effect Effects 0.000 description 7
- 230000009977 dual effect Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 7
- 230000001419 dependent effect Effects 0.000 description 6
- 239000011159 matrix material Substances 0.000 description 6
- 230000001131 transforming effect Effects 0.000 description 4
- 241000023320 Luma <angiosperm> Species 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 101150114515 CTBS gene Proteins 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 108091026890 Coding region Proteins 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011056 performance test Methods 0.000 description 1
- 238000012958 reprocessing Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012546 transfer 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/124—Quantisation
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请实施例提供一种视频编解码方法与系统、及视频编解码器,本申请在DQ量化方式基础上,对系数的语法元素中的系数绝对值大于i标志的数量进行拓展,以提高编解码性能。另外,本申请还提出了对拓展后的系数的语法元素的编解码方式,实现对拓展后的系数的语法元素进行准确编解码,进一步提高了编解码性能。
Description
本申请要求于2021年03月17日提交中国专利局、申请号为2021102879437、申请名称为“视频编解码方法与系统、及视频编解码器”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
本申请涉及视频编解码技术领域,尤其涉及一种视频编解码方法与系统、及视频编解码器。
数字视频技术可以并入多种视频装置中,例如数字电视、智能手机、计算机、电子阅读器或视频播放器等。随着视频技术的发展,视频数据所包括的数据量较大,为了便于视频数据的传输,视频装置执行视频压缩技术,以使视频数据更加有效的传输或存储。
在视频压缩过程中为了便于编码,对变换系数进行量化,例如使用对偶量化(也称为依赖性量化)对变换系数进行量化,对偶量化共包含了两个量化器,这两个量化器虽然有着相同的量化步长,但与变换系数的匹配却是交错的。对偶量化使得大步长的量化器能够完成更精细的量化,达到减小了重建的变换系数与原始变换系数之间的损失,从而提高编码效率。
但是,现有的对偶量化方式的编解码效率低。
发明内容
本申请实施例提供了一种视频编解码方法与系统、及视频编解码器,以提高对偶量化方式的编解码效率。
第一方面,本申请提供了一种视频编码方法,包括:
获取待编码块;
对所述待编码块进行处理,得到所述待编码块的变换块;
针对所述变换块中一待编码系数,从N个量化器中确定一个目标量化器对所述待编码系数进行量化,得到当前量化系数,所述N个量化器为依赖性量化DQ方式对应的量化器,所述N为大于或等于2的正整数;
对所述当前量化系数的语法元素进行编码,形成码流,其中,所述语法元素包括:系数非零标志、系数绝对值大于1标志、系数绝对值大于2标志、至少一个系数绝对值大 于i标志、系数绝对值剩余值标志和符号标志,所述i为从3取到M的正整数,所述M为大于3的正整数。
第二方面,本申请实施例提供一种视频解码方法,包括:
解码码流,得到待解码块;
对所述当前块中一待解码系数的语法元素进行解码,所述待解码系数经过N个量化器中的一个量化器量化得到,所述N个量化器为DQ量化方式对应的量化器,所述N为大于或等于2的正整数,所述语法元素包括:系数非零标志、系数绝对值大于1标志、系数绝对值大于2标志、至少一个系数绝对值大于i标志、系数绝对值剩余值标志和符号标志,所述i为从3取到M的正整数,所述M为大于或等于3的正整数;
根据解码得到的语法元素,得到所述待解码系数的值;
根据所述待解码系数的值,得到待解码块的重建块。
第三方面,本申请提供了一种视频编码器,用于执行上述第一方面或其各实现方式中的方法。具体地,该编码器包括用于执行上述第一方面或其各实现方式中的方法的功能单元。
第四方面,本申请提供了一种视频解码器,用于执行上述第二方面或其各实现方式中的方法。具体地,该解码器包括用于执行上述第二方面或其各实现方式中的方法的功能单元。
第五方面,提供了一种视频编码器,包括处理器和存储器。该存储器用于存储计算机程序,该处理器用于调用并运行该存储器中存储的计算机程序,以执行上述第一方面或其各实现方式中的方法。
第六方面,提供了一种视频解码器,包括处理器和存储器。该存储器用于存储计算机程序,该处理器用于调用并运行该存储器中存储的计算机程序,以执行上述第二方面或其各实现方式中的方法。
第七方面,提供了一种视频编解码系统,包括视频编码器和视频解码器。视频编码器用于执行上述第一方面或其各实现方式中的方法,视频解码器用于执行上述第二方面或其各实现方式中的方法。
第八方面,提供了一种芯片,用于实现上述第一方面至第二方面中的任一方面或其各实现方式中的方法。具体地,该芯片包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有该芯片的设备执行如上述第一方面至第二方面中的任一方面或其各实现方式中的方法。
第九方面,提供了一种计算机可读存储介质,用于存储计算机程序,该计算机程序使得计算机执行上述第一方面至第二方面中的任一方面或其各实现方式中的方法。
第十方面,提供了一种计算机程序产品,包括计算机程序指令,该计算机程序指令使得计算机执行上述第一方面至第二方面中的任一方面或其各实现方式中的方法。
第十一方面,提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面至第二方面中的任一方面或其各实现方式中的方法。
第十一方面,提供了一种码流,该码流是根据上述第一方面的方法生成的,其中码流中包括如下语法元素:系数非零标志、系数绝对值大于1标志、系数绝对值大于2标志、至少一个系数绝对值大于i标志、系数绝对值剩余值标志和符号标志,所述i为从3取到M的正整数,所述M为大于或等于3的正整数。
基于以上技术方案,在DQ量化方式基础上,对系数的语法元素中的系数绝对值大于x标志的数量进行拓展,以提高编解码性能。另外,本申请还提出了对拓展后的系数的语法元素的编解码方式,实现对拓展后的系数的语法元素进行准确编解码,进一步提高了编解码性能。
图1为本申请实施例涉及的一种视频编解码系统100的示意性框图;
图2是本申请实施例提供的视频编码器200的示意性框图;
图3是本申请实施例提供的解码框架300的示意性框图;
图4为两种量化器Q0和Q1进行量化的示意图;
图5为决定变换系数所使用量化器的状态转移示意图;
图6为网格结构表示状态与变换系数级别的依赖性示意图;
图7为Q0和Q1的候选变换系数级别示意图;
图8为本申请实施例提供的一种视频编码方法的流程示意图;
图9为原有DQ技术的Q0,Q1的量化器示意图;
图10为本申请涉及的Q0,Q1的量化器示意图;
图11为本申请实施例提供的另一种视频编码方法的流程示意图;
图12为本申请实施例提供的视频解码方法的一种流程示意图;
图13是本申请实施例提供的视频编码器的示意性框图;
图14是本申请实施例提供的视频解码器的示意性框图;
图15是本申请实施例提供的电子设备的示意性框图;
图16是本申请实施例提供的视频编解码系统的示意性框图。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
本申请可应用于图像编解码领域、视频编解码领域、硬件视频编解码领域、专用电路视频编解码领域、实时视频编解码领域等。例如,本申请的方案可结合至音视频编码标准(audio video coding standard,简称AVS),例如,H.264/音视频编码(audio video coding,简称AVC)标准,H.265/高效视频编码(high efficiency video coding,简称HEVC)标准以及H.266/多功能视频编码(versatile video coding,简称VVC)标准。或者,本申请的方案可结合至其它专属或行业标准而操作,所述标准包含ITU-TH.261、ISO/IECMPEG-1Visual、ITU-TH.262或ISO/IECMPEG-2Visual、ITU-TH.263、ISO/IECMPEG-4Visual,ITU-TH.264(还称为ISO/IECMPEG-4AVC),包含可分级视频编解码(SVC)及多视图视频编解码(MVC)扩展。应理解,本申请的技术不限于任何特定编解码标准或技术。
为了便于理解,首先结合图1对本申请实施例涉及的视频编解码系统进行介绍。
图1为本申请实施例涉及的一种视频编解码系统100的示意性框图。需要说明的是,图1只是一种示例,本申请实施例的视频编解码系统包括但不限于图1所示。如图1所示,该视频编解码系统100包含编码设备110和解码设备120。其中编码设备用于对视频数据进行编码(可以理解成压缩)产生码流,并将码流传输给解码设备。解码设备对编码设备编码产生的码流进行解码,得到解码后的视频数据。
本申请实施例的编码设备110可以理解为具有视频编码功能的设备,解码设备120可以理解为具有视频解码功能的设备,即本申请实施例对编码设备110和解码设备120包括更广泛的装置,例如包含智能手机、台式计算机、移动计算装置、笔记本(例如,膝上型)计算机、平板计算机、机顶盒、电视、相机、显示装置、数字媒体播放器、视频游戏控制台、车载计算机等。
在一些实施例中,编码设备110可以经由信道130将编码后的视频数据(如码流)传输给解码设备120。信道130可以包括能够将编码后的视频数据从编码设备110传输到解码设备120的一个或多个媒体和/或装置。
在一个实例中,信道130包括使编码设备110能够实时地将编码后的视频数据直接发射到解码设备120的一个或多个通信媒体。在此实例中,编码设备110可根据通信标准来调制编码后的视频数据,且将调制后的视频数据发射到解码设备120。其中通信媒体 包含无线通信媒体,例如射频频谱,可选的,通信媒体还可以包含有线通信媒体,例如一根或多根物理传输线。
在另一实例中,信道130包括存储介质,该存储介质可以存储编码设备110编码后的视频数据。存储介质包含多种本地存取式数据存储介质,例如光盘、DVD、快闪存储器等。在该实例中,解码设备120可从该存储介质中获取编码后的视频数据。
在另一实例中,信道130可包含存储服务器,该存储服务器可以存储编码设备110编码后的视频数据。在此实例中,解码设备120可以从该存储服务器中下载存储的编码后的视频数据。可选的,该存储服务器可以存储编码后的视频数据且可以将该编码后的视频数据发射到解码设备120,例如web服务器(例如,用于网站)、文件传送协议(FTP)服务器等。
一些实施例中,编码设备110包含视频编码器112及输出接口113。其中,输出接口113可以包含调制器/解调器(调制解调器)和/或发射器。
在一些实施例中,编码设备110除了包括视频编码器112和输入接口113外,还可以包括视频源111。
视频源111可包含视频采集装置(例如,视频相机)、视频存档、视频输入接口、计算机图形系统中的至少一个,其中,视频输入接口用于从视频内容提供者处接收视频数据,计算机图形系统用于产生视频数据。
视频编码器112对来自视频源111的视频数据进行编码,产生码流。视频数据可包括一个或多个图像(picture)或图像序列(sequence of pictures)。码流以比特流的形式包含了图像或图像序列的编码信息。编码信息可以包含编码图像数据及相关联数据。相关联数据可包含序列参数集(sequence parameter set,简称SPS)、图像参数集(picture parameter set,简称PPS)及其它语法结构。SPS可含有应用于一个或多个序列的参数。PPS可含有应用于一个或多个图像的参数。语法结构是指码流中以指定次序排列的零个或多个语法元素的集合。
视频编码器112经由输出接口113将编码后的视频数据直接传输到解码设备120。编码后的视频数据还可存储于存储介质或存储服务器上,以供解码设备120后续读取。
在一些实施例中,解码设备120包含输入接口121和视频解码器122。
在一些实施例中,解码设备120除包括输入接口121和视频解码器122外,还可以包括显示装置123。
其中,输入接口121包含接收器及/或调制解调器。输入接口121可通过信道130接 收编码后的视频数据。
视频解码器122用于对编码后的视频数据进行解码,得到解码后的视频数据,并将解码后的视频数据传输至显示装置123。
显示装置123显示解码后的视频数据。显示装置123可与解码设备120整合或在解码设备120外部。显示装置123可包括多种显示装置,例如液晶显示器(LCD)、等离子体显示器、有机发光二极管(OLED)显示器或其它类型的显示装置。
此外,图1仅为实例,本申请实施例的技术方案不限于图1,例如本申请的技术还可以应用于单侧的视频编码或单侧的视频解码。
下面对本申请实施例涉及的视频编码框架进行介绍。
图2是本申请实施例提供的视频编码器200的示意性框图。应理解,该视频编码器200可用于对图像进行有损压缩(lossy compression),也可用于对图像进行无损压缩(lossless compression)。该无损压缩可以是视觉无损压缩(visually lossless compression),也可以是数学无损压缩(mathematically lossless compression)。
该视频编码器200可应用于亮度色度(YCbCr,YUV)格式的图像数据上。例如,YUV比例可以为4:2:0、4:2:2或者4:4:4,Y表示明亮度(Luma),Cb(U)表示蓝色色度,Cr(V)表示红色色度,U和V表示为色度(Chroma)用于描述色彩及饱和度。例如,在颜色格式上,4:2:0表示每4个像素有4个亮度分量,2个色度分量(YYYYCbCr),4:2:2表示每4个像素有4个亮度分量,4个色度分量(YYYYCbCrCbCr),4:4:4表示全像素显示(YYYYCbCrCbCrCbCrCbCr)。
例如,该视频编码器200读取视频数据,针对视频数据中的每帧图像,将一帧图像划分成若干个编码树单元(coding tree unit,CTU),在一些例子中,CTB可被称作“树型块”、“最大编码单元”(Largest Coding unit,简称LCU)或“编码树型块”(coding tree block,简称CTB)。每一个CTU可以与图像内的具有相等大小的像素块相关联。每一像素可对应一个亮度(luminance或luma)采样及两个色度(chrominance或chroma)采样。因此,每一个CTU可与一个亮度采样块及两个色度采样块相关联。一个CTU大小例如为128×128、64×64、32×32等。一个CTU又可以继续被划分成若干个编码单元(Coding Unit,CU)进行编码,CU可以为矩形块也可以为方形块。CU可以进一步划分为预测单元(prediction Unit,简称PU)和变换单元(transform unit,简称TU),进而使得编码、预测、变换分离,处理的时候更灵活。在一种示例中,CTU以四叉树方式划分为CU,CU以四叉树方式划分为 TU、PU。
视频编码器及视频解码器可支持各种PU大小。假定特定CU的大小为2N×2N,视频编码器及视频解码器可支持2N×2N或N×N的PU大小以用于帧内预测,且支持2N×2N、2N×N、N×2N、N×N或类似大小的对称PU以用于帧间预测。视频编码器及视频解码器还可支持2N×nU、2N×nD、nL×2N及nR×2N的不对称PU以用于帧间预测。
在一些实施例中,如图2所示,该视频编码器200可包括:预测单元210、残差单元220、变换/量化单元230、反变换/量化单元240、重建单元250、环路滤波单元260、解码图像缓存270和熵编码单元280。需要说明的是,视频编码器200可包含更多、更少或不同的功能组件。
可选的,在本申请中,当前块(current block)可以称为当前编码单元(CU)或当前预测单元(PU)等。预测块也可称为预测图像块或图像预测块,重建图像块也可称为重建块或图像重建图像块。
在一些实施例中,预测单元210包括帧间预测单元211和帧内预测单元212。由于视频的一个帧中的相邻像素之间存在很强的相关性,在视频编解码技术中使用帧内预测的方法消除相邻像素之间的空间冗余。由于视频中的相邻帧之间存在着很强的相似性,在视频编解码技术中使用帧间预测方法消除相邻帧之间的时间冗余,从而提高编码效率。
帧间预测单元211可用于帧间预测,帧间预测可以参考不同帧的图像信息,帧间预测使用运动信息从参考帧中找到参考块,根据参考块生成预测块,用于消除时间冗余;帧间预测所使用的帧可以为P帧和/或B帧,P帧指的是向前预测帧,B帧指的是双向预测帧。运动信息包括参考帧所在的参考帧列表,参考帧索引,以及运动矢量。运动矢量可以是整像素的或者是分像素的,如果运动矢量是分像素的,那么需要再参考帧中使用插值滤波做出所需的分像素的块,这里把根据运动矢量找到的参考帧中的整像素或者分像素的块叫参考块。有的技术会直接把参考块作为预测块,有的技术会在参考块的基础上再处理生成预测块。在参考块的基础上再处理生成预测块也可以理解为把参考块作为预测块然后再在预测块的基础上处理生成新的预测块。
帧内预测单元212只参考同一帧图像的信息,预测当前码图像块内的像素信息,用于消除空间冗余。帧内预测所使用的帧可以为I帧。例如图5所示,白色的4×4块是当前块,当前块左边一行和上面一列的灰色的像素为当前块的参考像素,帧内预测使用这些参考像素对当前块进行预测。这些参考像素可能已经全部可得,即全部已经编解码。也可能有部分不可得,比如当前块是整帧的最左侧,那么当前块的左边的参考像素不可 得。或者编解码当前块时,当前块左下方的部分还没有编解码,那么左下方的参考像素也不可得。对于参考像素不可得的情况,可以使用可得的参考像素或某些值或某些方法进行填充,或者不进行填充。
在一些实施例中,帧内预测方法还包括多参考行帧内预测方法(multiple reference line,MRL),MRL可以使用更多的参考像素从而提高编码效率。
帧内预测有多种预测模式,H.264中对4×4的块进行帧内预测的9种模式。其中模式0是将当前块上面的像素按竖直方向复制到当前块作为预测值;模式1是将左边的参考像素按水平方向复制到当前块作为预测值;模式2(DC)是将A~D和I~L这8个点的平均值作为所有点的预测值,模式3至模式8是分别按某一个角度将参考像素复制到当前块的对应位置。因为当前块某些位置不能正好对应到参考像素,可能需要使用参考像素的加权平均值,或者说是插值的参考像素的分像素。
需要说明的是,随着角度模式的增加,帧内预测将会更加精确,也更加符合对高清以及超高清数字视频发展的需求。
残差单元220可基于CU的像素块及CU的PU的预测块来产生CU的残差块。举例来说,残差单元220可产生CU的残差块,使得残差块中的每一采样具有等于以下两者之间的差的值:CU的像素块中的采样,及CU的PU的预测块中的对应采样。
变换/量化单元230可量化变换系数。变换/量化单元230可基于与CU相关联的量化参数(QP)值来量化与CU的TU相关联的变换系数。视频编码器200可通过调整与CU相关联的QP值来调整应用于与CU相关联的变换系数的量化程度。
反变换/量化单元240可分别将逆量化及逆变换应用于量化后的变换系数,以从量化后的变换系数重建残差块。
重建单元250可将重建后的残差块的采样加到预测单元210产生的一个或多个预测块的对应采样,以产生与TU相关联的重建图像块。通过此方式重建CU的每一个TU的采样块,视频编码器200可重建CU的像素块。
环路滤波单元260可执行消块滤波操作以减少与CU相关联的像素块的块效应。
在一些实施例中,环路滤波单元260包括去块滤波单元、样点自适应补偿SAO单元、自适应环路滤波ALF单元。
解码图像缓存270可存储重建后的像素块。帧间预测单元211可使用含有重建后的像素块的参考图像来对其它图像的PU执行帧间预测。另外,帧内预测单元212可使用解码图像缓存270中的重建后的像素块来对在与CU相同的图像中的其它PU执行帧内 预测。
熵编码单元280可接收来自变换/量化单元230的量化后的变换系数。熵编码单元280可对量化后的变换系数执行一个或多个熵编码操作以产生熵编码后的数据。
本申请涉及的视频编码的基本流程如下:在编码端,将当前图像划分成块,针对当前块,预测单元210使用帧内预测或帧间预测产生当前块的预测块。残差单元220可基于预测块与当前块的原始块计算残差块,即预测块和当前块的原始块的差值,该残差块也可称为残差信息。该残差块经由变换/量化单元230变换与量化等过程,可以去除人眼不敏感的信息,以消除视觉冗余。可选的,经过变换/量化单元230变换与量化之前的残差块可称为时域残差块,经过变换/量化单元230变换与量化之后的时域残差块可称为频率残差块或频域残差块。熵编码单元280接收到变换量化单元230输出的量化后的变换系数,可对该量化后的变换系数进行熵编码,输出码流。例如,熵编码单元280可根据目标上下文模型以及二进制码流的概率信息消除字符冗余。
另外,视频编码器对变换量化单元230输出的量化后的变换系数进行反量化和反变换,得到当前块的残差块,再将当前块的残差块与当前块的预测块进行相加,得到当前块的重建块。随着编码的进行,可以得到当前图像中其他图像块对应的重建块,这些重建块进行拼接,得到当前图像的重建图像。由于编码过程中引入误差,为了降低误差,对重建图像进行滤波,例如,使用ALF对重建图像进行滤波,以减小重建图像中像素点的像素值与当前图像中像素点的原始像素值之间差异。将滤波后的重建图像存放在解码图像缓存270中,可以为后续的帧作为帧间预测的参考帧。
需要说明的是,编码端确定的块划分信息,以及预测、变换、量化、熵编码、环路滤波等模式信息或者参数信息等在必要时携带在码流中。解码端通过解析码流及根据已有信息进行分析确定与编码端相同的块划分信息,预测、变换、量化、熵编码、环路滤波等模式信息或者参数信息,从而保证编码端获得的解码图像和解码端获得的解码图像相同。
图3是本申请实施例提供的解码框架300的示意性框图。
如图3所示,视频解码器300包含:熵解码单元310、预测单元320、反量化/变换单元330、重建单元340、环路滤波单元350及解码图像缓存360。需要说明的是,视频解码器300可包含更多、更少或不同的功能组件。
视频解码器300可接收码流。熵解码单元310可解析码流以从码流提取语法元素。作为解析码流的一部分,熵解码单元310可解析码流中的经熵编码后的语法元素。预测 单元320、反量化/变换单元330、重建单元340及环路滤波单元350可根据从码流中提取的语法元素来解码视频数据,即产生解码后的视频数据。
在一些实施例中,预测单元320包括帧内预测单元321和帧间预测单元322。
帧内预测单元321可执行帧内预测以产生PU的预测块。帧内预测单元321可使用帧内预测模式以基于空间相邻PU的像素块来产生PU的预测块。帧内预测单元321还可根据从码流解析的一个或多个语法元素来确定PU的帧内预测模式。
帧间预测单元322可根据从码流解析的语法元素来构造第一参考图像列表(列表0)及第二参考图像列表(列表1)。此外,如果PU使用帧间预测编码,则熵解码单元310可解析PU的运动信息。帧间预测单元322可根据PU的运动信息来确定PU的一个或多个参考块。帧间预测单元322可根据PU的一个或多个参考块来产生PU的预测块。
反量化/变换单元330可逆量化(即,解量化)与TU相关联的变换系数。反量化/变换单元330可使用与TU的CU相关联的QP值来确定量化程度。
在逆量化变换系数之后,反量化/变换单元330可将一个或多个逆变换应用于逆量化变换系数,以便产生与TU相关联的残差块。
重建单元340使用与CU的TU相关联的残差块及CU的PU的预测块以重建CU的像素块。例如,重建单元340可将残差块的采样加到预测块的对应采样以重建CU的像素块,得到重建图像块。
环路滤波单元350可执行消块滤波操作以减少与CU相关联的像素块的块效应。
在一些实施例中,环路滤波单元350包括去块滤波单元、样点自适应补偿SAO单元、自适应环路滤波ALF单元。
视频解码器300可将CU的重建图像存储于解码图像缓存360中。视频解码器300可将解码图像缓存360中的重建图像作为参考图像用于后续预测,或者,将重建图像传输给显示装置呈现。
本申请涉及的视频解码的基本流程如下:熵解码单元310可解析码流得到当前块的预测信息、量化系数矩阵等,预测单元320基于预测信息对当前块使用帧内预测或帧间预测产生当前块的预测块。反量化/变换单元330使用从码流得到的量化系数矩阵,对量化系数矩阵进行反量化、反变换得到残差块。重建单元340将预测块和残差块相加得到重建块。重建块组成重建图像,环路滤波单元350基于图像或基于块对重建图像进行环路滤波,得到解码图像。该解码图像也可以称为重建图像,该重建图像一方面可以被显示设备进行显示,另一方面可以存放在解码图像缓存360中,为后续的帧作为帧间预测 的参考帧。
上述是基于块的混合编码框架下的视频编解码器的基本流程,随着技术的发展,该框架或流程的一些模块或步骤可能会被优化,本申请适用于该基于块的混合编码框架下的视频编解码器的基本流程,但不限于该框架及流程。
下面对本申请涉及的对偶量化技术进行介绍。
在视频编码中,变换后的系数和非变换的系数可以统称为系数(coefficient)。量化通常被用于降低系数的动态范围,从而达到用更少的码字表达视频的目的。量化后的数值通常称为级别,重建级别或者重建电平(level)。量化的操作通常是用系数除以量化步长,量化步长由在码流传递的量化因子决定。反量化则是通过重建级别乘以量化步长来完成。对于一个NxM的块,所有系数的量化可以独立的完成,这一技术也被广泛地应用在很多国际视频压缩标准,例如H.264,HEVC中。
与此同时,特定的扫描顺序可以把一个二维的系数块变换成一维系数流。扫描顺序可以是Z型,水平,垂直或者其它任何一种顺序的扫描。量化操作可以利用系数间的相关性,利用已量化系数的特性来选择更优的量化方式,从而达到优化量化的目的。
依赖性量化(Dependent Quantization,DQ),也可以称为对偶量化,是一种量化方式。依赖性量化作用在变换后的块上,与传统的量化不同的是,依赖性量化共包含了两个量化器,这两个量化器虽然有着相同的量化步长(即2*Δ),但它们各自对应的重建变换系数却是交错的。图4是依赖性量化的量化器Q0和量化器Q1与它们各自对应的重建变换系数的示意图。
其中,量化器Q0对应了重建变换系数级别是偶数倍的Δ(注:两个量化器的量化步长均为2*Δ,依赖性量化器中Q0与Q1合并起来相当于量化步长为Δ)(即A,B点对应的数字),量化器Q1对应了重建变换系数级别是奇数倍的Δ(即C,D点对应的数字)。
依赖性量化通过引入两个交错的量化器,以及量化器之间跳转的原则,使得大步长的量化器组合起来能够完成更精细的量化,达到减小了重建的变换系数与原始变换系数之间的损失,从而提高编码效率。
对于每个变换系数,我们都可以选择使用图4中描述的两种量化器Q0,Q1中的一种进行量化,这两个量化器各自的量化的方式与传统的量化器(HEVC中的量化)相似。两个量化器的重建变换系数都可以用量化步长Δ的倍数表示,两个量化器的重建变换系数定义如下:
Q0:该量化器的重建变换系数级别为偶数倍(包括零倍)的量化步长Δ,当使用这个量化器时,重建的变换系数t′可根据如下公式计算,
t′=2·k·Δ (1)
其中,k表示图4中所述相关的变换系数级别。
Q1:该量化器的重建级别为奇数或零倍的量化步长Δ,当使用这个量化器时,重建的变换系数t′可根据如下公式(2)计算,
t′=(2·k-sgn(k))·Δ (2)
其中,sgn(·)代表符号函数,
其中,x是被量化的变换系数。
选择使用Q0或Q1进行量化并不会通过编码标志位来进行控制。取而代之的是,使用在系数扫描顺序上的上一个系数的变换系数级别(图4中所述的变换系数级别)的奇偶性来决定当前变换系数使用Q0或Q1。
图5为决定变换系数所使用量化器的状态转移示意图,(a)使用状态机决策量化器的使用,(b)状态转移表。在系数扫描顺序上,当前系数的重建值可以通过图5中所示的转移方法决定下一个系数的状态,状态共有四种,分别由0,1,2,3这四个值来表示。例如当前系数的状态为2且当前变换系数级别为5时,由于5是奇数,所以决定下一个系数的状态跳转为状态3。每一个变换块在扫描顺序上的第一个系数的状态被设定为初始状态0。状态的0,1,2,3也决定这当前的系数使用哪一个量化器,状态0,1对应着使用量化器Q0,状态2,3对应着使用量化器Q1。
编码器对对偶量化的决策
与rate-distortion optimized quantization(RDOQ)的实现方式相似,变换系数级别{q
k}的取值为最小化如下公式(3)拉格朗日率失真代价的一个过程,
J=D+λ·R=∑
k(t
k-t'
k(q
k|q
k-1,q
k-2,...))
2+λ·R
k(q
k|q
k-1,q
k-2,...) (3)
其中,t
k和q
k分别代表原始的表换系数和变换系数级别,t′
k(q
k|…)代表在当前变换系数级别q
k下重建出的变换系数值,R
k(q
k|…)代表估计出的编码q
k需要消耗的比特数。
图6为网格结构表示状态与变换系数级别的依赖性示意图,其编码顺序从左到右。如之前所介绍的状态机的转移,可以将量化器与变换系数级别之间的依赖性表示成如图6所示的网格图,每一列的四个状态表示当前量化系数的可能的四种状态,每个节点与编 码顺序上下一个系数的可能的两个状态节点相连。对于一个给定的当前状态和当前变换系数t
k,可以使用当前量化器量化出对应的变换系数级别,编码器可以选择使用奇数的变换系数级别也可以选择使用偶数的变换系数级别,奇数变换系数级别对应图6中B(Q0 with parity 1)和D(Q1 with parity 1),偶数变换系数级别对应A(Q0 with parity 0)和C(Q1 with parity 0)。当算出所有节点的代价J
k(q
k)=(t
k-t′
k(q
k|…))
2+λ·R
k(q
k|…)后,变换系数级别q
k就可以通过找到一条代价总和最小的路线来决定,而确定最小代价和可以通过维特比算法(Viterbi algorithm)来实现。
具体的实现由两步组成:
步骤1,找到4个与原始变换系数对应的4个分别来自Q0和Q1的候选变换系数级别如图7所示;
步骤2,使用维特比算法以估计出的rate-distortion总和(之前节点已确定的变换系数级别对应的代价综合)来确定一系列当前节点的变换系数级别q
k。
具体的实现由两步组成:
步骤1,找到4个与原始变换系数对应的4个分别来自Q0和Q1的候选变换系数级别如图7所示;
步骤2,使用维特比算法以估计出的rate-distortion总和(之前节点已确定的变换系数级别对应的代价综合)来确定一系列当前节点的变换系数级别q
k。
上文对DQ技术以及变换系数的变化系数级别的确定过程进行介绍,在此基础上,下面结合具体的实施例对本申请实施例提供的技术方案进行详细描述。
下面结合图8对编码端进行介绍。
图8为本申请实施例提供的一种视频编码方法的流程示意图,本申请实施例应用于图1和图2所示视频编码器。如图8所示,本申请实施例的方法包括:
S801、获取待编码块;
S802、对待编码块进行预测,得到待编码块的预测块;
S803、根据待编码块和预测块,得到待编码块的残差块;
S804、对残差块进行变换,得到变换块;
S805、针对变换块中一待编码系数,从N个量化器中确定一个目标量化器对待编码系数进行量化,得到当前量化系数,N个量化器为依赖性量化DQ方式对应的量化器,N为大于或等于2的正整数;
S806、对当前量化系数的语法元素进行编码,形成码流。
其中,语法元素包括:系数非零标志、系数绝对值大于1标志、系数绝对值大于2标志、至少一个系数绝对值大于i标志、系数绝对值剩余值标志和符号标志,i为从3取到M的正整数,M为大于或等于3的正整数。
在一些实施例中,本申请的当前量化系数也可以称为量化系数,或量化后的系数,或者当前系数,或者待编码的系数,或者变化系数级别、重建级别或重建电平等。
在视频编码过程中,视频编码器接收视频流,该视频流由一系列图像帧组成,针对视频流中的每一帧图像进行视频编码,为了便于描述,本申请将当前待编码的一帧图像记为当前图像。
具体的,参照图2所示,视频编码器将当前图像划分成一个或多个待编码块,针对每个待编码块,视频编码器中的预测单元210经由帧间预测、帧内预测产生待编码块的预测块之后,将预测块发送给残差单元220,该残差单元220可以理解为求和器,包括执行减法运算的一个或多个组件。残差单元220从待编码块中减去预测块形成残差块,并将残差块发送给变换量化单元230。变换量化单元230使用例如离散余弦变换(DCT)或者类似的变换将残差块进行变换处理,得到变换系数。变换量化单元230进一步对变换系数进行量化,得到量化后的变换系数,即量化系数。
由图2可知,一方面,变换量化单元230将量化后的变换系数转发给熵编码单元280。熵编码单元280对量化后的变换系数进行熵编码。举例来说,熵编码单元280可执行上下文自适应可变长度编码(CAVLC)、上下文自适应二进制算术编码(CABAC)、基于语法的上下文自适应二进制算术编码(SBAC)、概率区间分割熵(PIPE)编码等编码方法,对量化后的变换系数进行熵编码,得到码流。
本申请主要针对的是上述量化过程。
目前DQ的设计主要包含三个部分
1)两个交错的量化器Q0,Q1;
2)使用状态机控制状态转移;
3)变换系数级别的编码;
在一些实施例中,本申请提出量化器可以量化变换后的系数,即变换系数。
在一些实施例中,本申请还可以量化非变换的系数(transform skip coefficients)。
本申请涉及的N个量化器为DQ量化方式对应的量化器。
在一些实施例中,本申请可以采用已有的DO量化方式对应的量化器(即图4所示 的量化器)对系数进行量化。
在一些实施例中,上述N个量化器中至少有一个量化器为可以将变换系数均量化为非零量化系数的非零量化器,其中N为大于等于2的正整数。其中非零量化器也可以称为非零点量化器。
在一些实施例中,N个量化器中至少有一个量化器为可以将变换系数量化为零的零点量化器。
在一些实施例中,N个量化器包括一个零点量化器和一个非零量化器。
在一些实施例中,本申请提出量化器可以量化变换后的系数,即变换系数。
在一些实施例中,本申请可以量化非变换的系数(transform skip coefficients)。
本申请涉及的N个量化器为DQ量化方式对应的量化器。
在一些实施例中上述N个量化器中至少有一个量化器为可以将变换系数均量化为非零量化系数的非零量化器,其中N为大于等于2的正整数。其中非零量化器也可以称为非零点量化器
在一些实施例中,N个量化器中至少有一个量化器为可以将变换系数量化为零的零点量化器。
在一些实施例中,N个量化器包括一个零点量化器和一个非零量化器。
图9为原有DQ技术的Q0,Q1的量化器示意图,相对于图9,在一些实施例中,上述N=2,即本申请提出在两个量化器中,只有一个量化器有零点,即一个量化器可以把系数量化为零,这样的量化器称为零点量化器;另一个量化器不可以把系数量化为零,这样的量化器称为非零量化器。
在一些实施例中,如图10所示,N个量化器包括Q0量化器和Q1量化器。其中Q0量化器并未作出改变,Q1量化器则是去掉了量化为0的点,即Q1量化器只能将系数量化成非零系数,这里Q0是零点量化器,Q1是非零量化器。
在一些实施例中,非零量化器也可以是Q0,也就是说Q0量化器没有零点,但Q1量化器有零点。
在一些实施例中,两个量化器都没有零点,即Q0和Q1都是非零量化器。
可选的,量化器的个数也可以进一步扩展,可以是两个也可以是两个以上的量化器。对于两个以上量化器的情况,即N大于2时,N个量化器中零点量化器可以是其中任意一个,也可以是其中任意多个。
在一些实施例中,码流中还可以包括非零量化器标识,所述非零量化器标识用于标 识所述目标量化器是否为非零量化器。
本申请中,前一个量化系数可以理解为在量化顺序(或扫描顺序)中,位于待编码系数的前一个相邻的已量化的变换系数。
在一些实施例中,可以参照上述图5所示的已有技术,根据状态机的状态和待编码系数的系数级别,确定量化待编码系数的目标量化器,并使用该目标量化器对该待编码系数进行量化。
在一些实施例中,上述S805包括如下步骤S805-A至S805-C:
S805-A、获取所述当前量化系数的前一个量化系数的标志位信息;
S805-B、根据所述前一个量化系数的标志位信息,从所述N个量化器中确定一个目标量化器;
S805-C、使用所述目标量化器对所述待编码系数进行量化。
在一种示例中,前一个量化系数的标志位信息包括该前一个量化系数的Sig flag、gt1 flag、gt2 flag、gt3 flag、……、gtM flag,其中M大于或等于3。
在一些实施例中,上述S805-B包括:
S805-B1,获取前一个量化系数的状态;
S805-B2,根据前一个量化系数的标志位信息,以及前一个量化系数的状态,确定当前量化系数的状态;
S805-B3,根据当前量化系数的状态,从N个量化器中确定目标量化器。
在实际编码过程中,编码设备会根据状态机的当前状态判断当前量化过程中所使用的目标量化器,对非零量化器,在尝试量化的时候将不再能够把系数量化成零。
其中量化系数的状态可以理解为状态机的状态。
可选的,状态机的初始状态为0。
在一些实施例中,码流中包括状态机的初始状态。例如,状态机的初始状态为0,使得解码端的状态机的初始状态与编码端的一致,进而保证了解码端对系数的准确解码。
本申请中由于当前量化系数的前一个量化系数已编码,其状态已知,因此,编码设备可以获得该前一个量化系数的状态。
在一些实施例中,上述S805-B2中根据所述前一个量化系数的标志位信息,以及所述前一个量化系数的状态,确定所述当前量化系数的状态的方式包括但不限于如下方式:
方式一,若前一个量化系数的标志位信息中的Sig flag的值为0时,则根据前一个量化系数的状态,确定所述当前量化系数的状态,例如,前一个量化系数的状态为0时, 则确定当前量化系数的状态为0,若前一个量化系数的状态为1时,则确定当前量化系数的状态为2,若前一个量化系数的状态为2时,则确定当前量化系数的状态为1,若前一个量化系数的状态为3时,则确定当前量化系数的状态为3。
方式二,上述S805-B2包括如下步骤S805-B21和S805-B22:
S805-B21、根据前一个量化系数的标志位信息,确定状态跳转值;
S805-B22、根据前一个量化系数的状态和状态跳转值,确定当前量化系数的状态。
在一种示例中,前一个量化系数的标志位信息包括系数非零标志,若系数非零标志的值为0时,则确定状态跳转值为0。
在另一种示例中,前一个量化系数的标志位信息包括系数非零标志和系数绝对值大于1标志,此时,若系数非零标志的值和系数绝对值大于1标志的值满足如下公式(4),则确定状态跳转值为1;若系数非零标志的值和系数绝对值大于1标志的值不满足如下公式(4),则确定状态跳转值为0;
t=sigflag==1&>1==0 (4)
其中,t为状态跳转值,sigflag为系数非零标志的值,gt1为系数绝对值大于1标志(即gt1 flag)的值。
在另一种示例中,前一个量化系数的标志位信息包括系数非零标志、前M个系数绝对值大于x标志,x=1,2,3,…,M,M为大于或等于3的正整数,若系数非零标志的值为1,以及前M-1个系数绝对值大于x标志的值为1,且第M个系数绝对值大于x标志的值为0,则确定状态跳转值为1。假设M为4,则前一个量化系数的标志位信息包括:sigflag、gt1 flag、gt2 flag、gt3 flag和gt4 flag,若前一个量化系数的标志位信息满足如下公式(5),则确定状态跳转值t=1;若前一个量化系数的标志位信息不满足如下公式(5),则确定状态跳转值t=0:
t=sigflag==1&>1==1&>2==1&>3==1&>4==0 (5)
其中,gt2为系数绝对值大于2标志(即gt2 flag)的值,gt3为系数绝对值大于3标志(即gt3 flag)的值。
根据上述方式,确定出t后,根据t和前一个量化系数的状态,确定出当前量化系数的状态。
本申请可由如图11所示的状态机完成状态的转移,即如下表2中的stateTrans(状态转移表)。例如,如图11所示,当t=1,表示t为真,当t=0时,表示t为假。这样可以根据如上公式(4)或(5)确定出t的真假,并根据t的真假和前一个量化系数的状态, 确定出当前量化系数的状态,例如,当t为真,前一个量化系数的状态为2,则当前量化系数的状态为3。
在一些实施例中,根据当前量化系数的状态,更新状态机的状态。
本申请根据上述S805所述的量化方式对待编码系数进行量化,得到当前量化系数,接着执行S806,对当前量化系数的语法元素进行编码。
下面对上述S806中对当前量化系数的语法元素的编码过程进行介绍。
目前系数的语法元素包括如下标志位:系数非零标志sig_flag,sig_flag,系数非零标志位用于指示所述量化系数是否为零,在一些实施例中,若系数非零标志位的值为‘0’表示当前量化系数是‘0’;值为‘1’表示当前量化系数是非零系数。系数绝对值大于1标志coeff_abs_level_greater1_flag,coeff_abs_level_greater1_flag的值为‘0’表示当前量化系数的绝对值是‘1’;值为‘1’表示当前量化系数的绝对值大于1。系数绝对值大于2标志coeff_abs_level_greater2_flag,coeff_abs_level_greater2_flag的值为‘0’表示当前量化系数的绝对值是‘2’;值为‘1’表示当前量化系数的绝对值大于2。系数绝对值剩余值coeff_abs_level_remaining,如果当前量化系数有系数绝对值剩余值,当前量化系数的绝对值为3+coeff_abs_level_remaining。系数正负号标志(即符号标志)sign date,sign date的值为‘0’表示当前量化系数为负数;值为‘1’表示当前量化系数为正数。
在一些实施例中,系数非零标志也称为significant flag,表示当前位置上的系数是否存在,或意味当前位置上系数的绝对值是否大于0。
在一些实施例中,系数绝对值大于1标志也称为greater than 1 flag,表示当前位置上的系数的绝对值在已经大于0的基础上是否进一步大于1。
在一些实施例中,系数绝对值大于2标志也称为greater than 2 flag,表示当前位置上的系数的绝对值在已经大于1的基础上是否进一步大于2。
在一些实施例中,系数绝对值剩余值标志也称为remaining_abs_level,表示当前系数的绝对值在大于2时剩余的部分,例如若当前系数绝对值为4,则该flag等于1,若当前系数绝对值等于3,则该flag等于0。
在一些实施例中,significant flag有60个上下文模型(亮度51个,色度9个),例如greater than 1 flag和greater than 2 flag共同享有22个上下文模型,remaining_abs_level和sign date为旁路编码。
本申请对系数的语法元素进行了扩展,例如对语法元素中的系数绝对值大于x标志 (gt x flag)进行了扩展。
本申请的系数的语法元素包括:系数非零标志(sig flag)、系数绝对值大于1标志(gt1 flag)、系数绝对值大于2标志(gt2 flag)、至少一个系数绝对值大于i标志(gti flag)、系数绝对值剩余值标志(remaining)和符号标志(sign data),其中i为从3取到M的正整数,即i=3,4,…,M,M为大于或等于3的正整数。
例如,当i=3时,至少一个系数绝对值大于i标志包括:系数绝对值大于3标志;
例如,当i=3,4时,至少一个系数绝对值大于i标志包括:系数绝对值大于3标志和系数绝对值大于4标志;
例如,当i=3,4,5时,至少一个系数绝对值大于i标志包括:系数绝对值大于3标志、系数绝对值大于4标志和系数绝对值大于5标志;
例如,当i=3,4,5,…,M时,至少一个系数绝对值大于i标志包括:系数绝对值大于3标志、系数绝对值大于4标志、系数绝对值大于5标志、……、系数绝对值大于M标志。
由于gtx flag编解码基于上下文模型,remaining_abs_level以及sign data基于旁路编码,由于编码方式的差异,编码时将同类编码方式的标志放在一起编码对于硬件更加友好。另外,对于本申请的上述实施例涉及的DQ技术,在系数编码的过程中,无需逐个编出所有flag,仅需编至gtx flag即可得到量化器跳转时的条件。故可将gtx flag与remaining_abs_level与sign data分开。
在一些实施例中,上述S806中对所述当前量化系数的语法元素进行编码包括3轮编码,包括:
第一轮编码,对所述当前量化系数的系数非零标志、系数绝对值大于1标志、系数绝对值大于2标志和至少一个系数绝对值大于i标志进行编码;
第二轮编码,对所述当前量化系数的系数绝对值剩余值标志进行编码;
第三轮编码,对所述当前量化系数的符号标志进行编码。
在一些实施例中,还可以将基于上下文编码的flag进一步分解成多轮,即第一轮编码包括多伦编码:
在一种示例中,第一轮编码包括第一子轮编码,此时本申请的系数编码方式包括,在第一子轮编码中,对所述系数非零标志和所述系数绝对值大于1标志进行编码。即在该示例中,将系数非零标志(sig flag)和系数绝对值大于1标志(gt1 flag)放在一起编码。
在另一种示例中,在第一子轮编码中,还对所述系数绝对值大于2标志和/或所述至少一个系数绝对值大于i标志进行编码。例如,将sig flag、gt1 flag和gt2 flag放在同一 轮进行编码;或者,将sig flag、gt1 flag、gt2 flag,以及至少一个系数绝对值大于i标志中的一个或多个,放在同一轮进行编码;或者,将sig flag、gt1 flag,以及至少一个系数绝对值大于i标志中的一个或多个,放在同一轮进行编码等。
在另一种示例中,第一轮编码还包括第二子轮编码,此时,系数的编码方式为:在第一子轮编码中,对系数非零标志(sig flag)和系数绝对值大于1标志(gt1 flag)进行编码,在第二子轮编码中,对所述系数绝对值大于2标志和所述至少一个系数绝对值大于i标志中的一个或多个进行编码。
在另一种示例中,第一轮编码还包括第二子轮编码,此时,系数的编码方式为:在第一子轮编码中,对系数非零标志(sig flag)、系数绝对值大于1标志(gt1 flag)和系数绝对值大于2标志(gt2 flag)进行编码,在第二子轮编码中,对所述至少一个系数绝对值大于i标志进行编码。
在另一种示例中,第一轮编码包括第一子轮编码、第二子轮编码和第三子轮编码,编码方法还包括:在第一子轮编码中,对所述系数非零标志和所述系数绝对值大于1标志进行编码;在第二子轮编码中,对所述系数绝对值大于2标志进行编码;在第三子轮编码中,对所述至少一个系数绝对值大于i标志进行编码。
可选的,在对所述至少一个系数绝对值大于i标志进行编码时可以进一步分成多伦进行编码,例如对所述至少一个系数绝对值大于i标志中的每个标志分别进行编码。
下面以所述至少一个系数绝对值大于i标志包括系数绝对值大于3标志(gt3 flag)和系数绝对值大于4标志(gt4 flag)为例对本申请涉及的系数编码方法作进一步说明。
在本实施例中,当前量化系数的语法元素包括:sig flag、gt1 flag、gt2 flag、gt3 flag、gt4 flag、remaining和sign data。
在编码过程分为大的三轮编码:
在第一轮编码中,对sig flag、gt1 flag、gt2 flag、gt3 flag、gt4 flag进行编码;
在第二轮编码中,对remaining进行编码;
在第二轮编码中,对sign data进行编码。
上述第一轮编码中,将基于上下文编码的flag进一步分解成多轮。例如本申请的依赖量化基于量化值是否为1,在编解完gt1 flag后即可完成量化器的跳转。因此,第一轮编码过程可以包括如下方式:
a)可以将sig flag与gt1 flag放在一轮编码,剩余的gt2 flag,gt3 flag和gt4 flag放在另 一轮编码;
b)也可以将sig flag与gt1 flag放在一轮编码,gt2 flag放在一轮编码,gt3 flag放在一轮编码,gt4 flag放在一轮编码。
c)也可以将sig flag与gt1 flag放在同一轮,其它的gtx flag与前者是否放在同一轮编码或分开不做限定。
例如,第一轮编码包括第一子轮编码,在第一子轮编码中,对sig flag与gt1 flag进行编码。
在一种示例中,在第一子轮编码中,不仅对sig flag与gt1 flag进行编码,还对系数绝对值大于2标志(gt2 flag)、系数绝对值大于3标志(gt3 flag)、系数绝对值大于4标志(gt4 flag)中的一个或多个进行编码。
在另一种示例中,第一轮编码还包括第二子轮编码,
在第一子轮编码中,对sig flag与gt1 flag进行编码;
在第二子轮编码中,对系数绝对值大于2标志(gt2 flag),以及系数绝对值大于3标志(gt3 flag)和/或系数绝对值大于3标志(gt3 flag)进行编码。
在另一种示例中,第一轮编码还包括第一子轮编码和第二子轮编码,
在第一子轮编码中对sig flag与gt1 flag和gt2 flag进行编码;
在第二子轮编码中对系数绝对值大于3标志(gt3 flag)和系数绝对值大于3标志(gt3 flag)进行编码。
在另一种示例中,第一轮编码包括第一子轮编码、第二子轮编码和第三子轮编码,
在第一子轮编码中对sig flag与gt1 flag进行编码;
在第二子轮编码中对系数绝对值大于2标志(gt2 flag)进行编码;
在第三子轮编码中对系数绝对值大于3标志(gt3 flag)和系数绝对值大于4标志(gt4 flag)进行编码。
在另一种示例中,第一轮编码包括第一子轮编码、第二子轮编码、第三子轮编码和第四子轮编码,
在第一子轮编码中,对sig flag与gt1 flag进行编码;
在第二子轮编码中对系数绝对值大于2标志(gt2 flag)进行编码;
在第三子轮编码中对系数绝对值大于3标志(gt3 flag)进行编码;
在第三子轮编码中对系数绝对值大于4标志(gt4 flag)进行编码。
需要说明的是,本申请还可以包括上述flag的其他组合的量化方式,本申请对此不 做限制。
在一些实施例中,采用DQ量化方式对系数进行量化时,例如在执行上述S805之前,首先需要判断本申请的量化过程是否可以使用DQ量化方式,具体包括如下步骤:
步骤11,获取变换块所使用的变换工具标识,和/或变换块在亮度分量下的扫描区域的SRx或SRy、以及变换块在色度分量下的扫描区域的SRx或SRy;
步骤12,根据变换块所使用的变换工具标识,和/或变换块在亮度分量下的扫描区域的SRx或SRy、以及变换块在色度分量下的扫描区域的SRx或SRy,判断变换块是否满足预设条件;
步骤13,若变换块满足预设条件,则确定变换块可以采用DQ量化方式进行量化;
步骤14,在确定变换块可以采用DQ量化方式时,根据前一个量化系数的标志位信息,从N个量化器中确定一个目标量化器对待编码系数进行量化。
其中,上述预设条件包括如下任意一个条件:
条件1,在色度分量下;或者,变换块为非变换跳过块,且该变换块所使用的变换工具不是IST工具和/或SBT工具;
条件2,变换块在亮度分量下的扫描区域的SRx或SRy大于Q且在色度分量下的扫描区域的SRx或SRy大于P,且变换块为非变换跳过块,Q和P均为整数。
本申请对上述Q和P的取值不作限制.
例如,Q为6,P为0。
在一些实施例中,Q的值、P的值和DQ的使能标志位中的至少一个保存在序列头或图像头中,其中,DQ的使能标志位用于指示当前序列是否可以打开DQ量化方式。
例如,DQ的使能标志位编于序列头,指示当前序列可以打开DQ。如果基于扫描区域大小判断是否在当前变换块使用DQ时,扫描区域的大小限制Q(size_luma_dep_quant)和P(size_chroma_dep_quant)也可以编在序列头,例如下表1所示:
表1序列头定义
此时,上述步骤12包括:获取序列头中的DQ的使能标志位,根据DQ的使能标志位,在确定当前序列可以打开DQ量化方式时,根据变换块所使用的变换工具标识,或变换块在亮度分量下的扫描区域的SRx或SRy、以及变换块在色度分量下的扫描区域的SRx或SRy,判断变换块是否满足预设条件。在确定本申请可以采用DQ量化方式进行量化时,根据上述步骤,对待编码系数进行量化,得到当前量化系数。
接着,对当前量化系数的语法元素进行编码。具体参照上述S806的描述。
采用本申请实施例的编码方式对系数的语法元素进行编码,使得解码端在对系数解码时,首先解码出sig flag和gt1 flag,并基于sig flag和gt1 flag快速确定待解码的当前量化系数的状态,进而提高解码速度。
在一些实施例中,使用第一上下文模型,对系数非零标志sig flag进行编码。
示例性的,第一上下文模型与RDOQ量化方式编码系数非零标志时所使用的上下文模型相同。或者,第一上下文模型与RDOQ量化方式编码系数非零标志时所使用的上下文模型不同。
例如,参考AVS的高性能测试模型(High-Performance Model,HPM)因为仅有RDOQ量化方式,故仅有一套上下文模型。引入DQ后,可以使RDOQ和DQ的sig flag共用一套上下文模型,也可重新引入一套,各用各的。
在一些实施例中,使用第二上下文模型,对系数绝对值大于1标志、系数绝对值大于2标志、至少一个系数绝对值大于i标志,例如使用第二上下文模型对gt1 flag、gt2 flag、gt3 flag和gt4 flag进行编码。
示例性的,第二上下文模型与RDOQ量化方式编码系数绝对值大于i标志时所使用的上下文模型相同;或者,第二上下文模型与RDOQ量化方式编码系数绝对值大于i标志时所使用的上下文模型不同;或者,第二上下文模型包括非零量化器对应的上下文模型和零点量化器对应的上下文模型,非零量化器对应的上下文模型与RDOQ量化方式编码系数绝对值大于i标志时所使用的上下文模型不同,且零点量化器对应的上下文模型与RDOQ量化方式编码系数绝对值大于i标志时所使用的上下文模型相同;或者,非零量化器对应的上下文模型、零点量化器对应的上下文模型和RDOQ量化方式编码系数绝对值大于i标志时所使用的上下文模型均不同。
例如,参考HPM仅有RDOQ量化方式,并且gt1 flag、gt2 flag、gt3 flag和gt4 flag共用一套上下文模型。引入DQ后,1)可以使RDOQ和DQ的gt1 flag、gt2 flag、gt3 flag和 gt4 flag共用一套上下文模型,2)可以使RDOQ和DQ的零点量化器的gt1 flag、gt2 flag、gt3 flag和gt4 flag共用一套上下文模型,DQ的非零量化器的gt1 flag、gt2 flag、gt3 flag和gt4 flag公用另一套上下文模型,3)也可以是RDOQ、DQ的零点量化器和非零量化器的gt1 flag、gt2 flag、gt3 flag和gt4 flag各共通一套上下文模型。
本申请在DQ量化方式基础上,对系数的语法元素中的系数绝对值大于i标志的数量进行拓展,以提高编解码性能。另外,本申请还提出了对拓展后的系数的语法元素的编解码方式,实现对拓展后的系数的语法元素进行准确编解码,进一步提高了编解码性能。
另外,本申请将系数非零标志和系数绝对值大于1标志、系数绝对值大于2标志、至少一个系数绝对值大于i标志作为一个编码部分进行编码,相比于现有的4部编码,可以降低编码复杂度,进而提高编解码效率。
进一步,本申请将系数非零标志和系数绝对值大于1标志在同一轮编码,使得解码端在一次解码过程中得到系数非零标志和系数绝对值大于1标志,并根据系数非零标志和系数绝对值大于1标志快速确定出系数状态,进一步提高了编码效率。
在一些实施例中,在编码sig_flag时,有以下两种情况可跳过对其编码:
情况1,根据扫描顺序上的上一个量化系数的状态来获取当前量化系数的状态,进而确定目标量化器是否为非零量化器(例如状态为0或1时,确定目标量化器为零点量化器,例如当前量化系数的状态为2或3时,确定目标量化器为非零量化器),在确定目标量化器为非零量化器时,跳过对sig_flag的编码并默认其值为1。
情况2,当前扫描区域的最右一列仅右上角系数为非零或最下一行仅左下角系数为非零时,也可跳过对sig_flag的编码并默认其值为1。
即本申请对使用零点量化器量化后的系数编码时,因为编码器已知非零量化器量化的数据最小值的绝对值为1,也就是说所有非零量化器量化后的系数都是非零值,因此非零量化器量化后的系数不需要编码系数非零标志sig_flag,从而节省码字。
在一些实施例中,本方案对变换块语法结构的改变如表2所示。
表2变换块定义
在表2中,DqEnableFlag为打开序列中打开DQ的条件,其值等于序列头中编入的dep_quant_flag。
表2中是本申请在AVS3 spec中对于变换系数级别解码部分的改动,主要将基于上下文模型编解码的sigflag,gt1 flag和gt2 flag放在了一个部分,基于指数哥伦布编解码的remaining放在了另一部分。
本申请不限定每一个state的具体含义,state仅为状态的序号,在跳转原则不变的基础上更换state的序号。本申请中的一种状态转移表如图11所示,其中变量t的真假取决于在解码的过程中,上一个系数值是否为1。而是否为1可由sig_flag与coeff_abs_level_greater1_flag两个标志位的取值得到,无需全部重建出当前系数即可得到,t值的获取参照上述公式(4)。
本申请的技术方案,在对待编码系数进行量化时,获得待编码系数的前一个量化系数的标志位信息,并根据前一个量化系数的标志位信息,从N个量化器中确定待编码系数在量化时所使用的目标量化器。即本申请只需获得前一个量化系数的标志位信息,即可确定出目标量化器,而无需等待该当前量化系数的标志位信息完成解码,进而降低了编解码复杂度,提高编解码效率。另外,本申请在依赖性量化的基础上进一步拓展了gtx flag的数量从而提升了编码性能。
上文对本申请实施例涉及的视频编码方法进行了描述,在此基础上,下面针对解码端,对本申请涉及的视频解码方法进行描述。
图12为本申请实施例提供的视频解码方法的一种流程示意图,如图12所示,本申请实施例的方法包括:
S901、解码码流,得到待解码块;
S902、对待解码块中一待解码系数的语法元素进行解码,待解码系数经过N个量化器中的一个量化器量化得到,N个量化器为DQ量化方式对应的量化器,N为大于或等于2的正整数,语法元素包括:系数非零标志、系数绝对值大于1标志、系数绝对值大于2标志、至少一个系数绝对值大于i标志、系数绝对值剩余值标志和符号标志,i为从3取到M的正整数,M为大于或等于3的正整数;
S903、根据解码得到的语法元素,得到待解码系数的值;
S904、根据待解码系数的值,得到待解码块的重建块。
具体的,参照图3所示,解码器中的熵解码单元310可解析码流得到当前图像中待解码块的预测信息、量化系数矩阵等,预测单元320基于预测信息对待解码块使用帧内预测或帧间预测产生待解码块的预测块。反量化/变换单元330使用从码流得到的量化系数矩阵,对量化系数矩阵进行反量化、反变换得到残差块。重建单元340将预测块和残差块相加得到重建块。依次类推,可以得到当前图像中其他待解码块的重建块,各重建块组成重建图像。
在一些实施例中,上述N个量化器中至少有一个量化器为可以将变换系数均量化为非零量化系数的非零量化器。
在一些实施例中,所述N个量化器中至少有一个量化器为可以将变换系数量化为零的零点量化器。
在一些实施例中,所述N个量化器包括一个零点量化器和一个非零量化器。
在一些实施例中,按照扫描区域中的扫描顺序,前一个量化系数为扫描顺序中待解码系数的相邻的前一个已解码的量化系数。
在一些实施例中,上述S902中对待解码块中一待解码系数的语法元素进行解码包括如下3轮解码,包括:
第一轮解码,对待解码系数的系数非零标志、系数绝对值大于1标志、系数绝对值大于2标志和至少一个系数绝对值大于i标志进行解码;
第二轮解码,对待解码系数的系数绝对值剩余值标志进行解码;
第三轮解码,对待解码系数的符号标志进行解码。
在一些实施例中,上述第一轮解码包括多伦解码过程。
在一种示例中,第一轮解码包括第一子轮解码,此时上述S902包括:
在第一子轮解码中,对系数非零标志和系数绝对值大于1标志进行解码。
在另一种示例中,在第一子轮解码中,除了对系数非零标志和系数绝对值大于1标志进行解码外,还对系数绝对值大于2标志和/或至少一个系数绝对值大于i标志进行解码。
在另一种示例中,第一轮解码还包括第二子轮解码,此时,上述S902包括:在第一子轮解码中对系数非零标志和系数绝对值大于1标志进行解码,在第二子轮解码中对系数绝对值大于2标志和至少一个系数绝对值大于i标志中的一个或多个进行解码;或者,在第一子轮解码中除了对系数非零标志和系数绝对值大于1标志解码外,还对系数绝对值大于2标志进行解码,而在第二子轮解码中对至少一个系数绝对值大于i标志进行解码。
在另一种示例中,第一轮解码还包括第二子轮解码和第三子轮解码,此时,上述S902包括:在第一子轮解码中对系数非零标志和系数绝对值大于1标志进行解码,在第二子轮解码中对系数绝对值大于2标志进行解码;在第三子轮解码中对至少一个系数绝对值大于i标志进行解码。
在另一种示例中,对至少一个系数绝对值大于i标志中的每个标志分别进行解码。
下面以所述至少一个系数绝对值大于i标志包括系数绝对值大于3标志(gt3 flag)和系数绝对值大于4标志(gt4 flag)为例对本申请涉及的系数解码方法作进一步说明。
在本实施例中,待解码系数的语法元素包括:sig flag、gt1 flag、gt2 flag、gt3 flag、gt4 flag、remaining和sign data。
在解码过程分为大的三轮解码:
在第一轮解码中,对sig flag、gt1 flag、gt2 flag、gt3 flag、gt4 flag进行解码;
在第二轮解码中,对remaining进行解码;
在第二轮解码中,对sign data进行解码。
上述第一轮解码中,将基于上下文解码的flag进一步分解成多轮。例如本申请的依赖量化基于量化值是否为1,在编解完gt1 flag后即可完成量化器的跳转。因此,第一轮解码过程可以包括如下方式:
a)可以将sig flag与gt1 flag放在一轮解码,剩余的gt2 flag,gt3 flag和gt4 flag放在另一轮解码;
b)也可以将sig flag与gt1 flag放在一轮解码,gt2 flag放在一轮解码,gt3 flag放在一轮解码,gt4 flag放在一轮解码。
c)也可以将sig flag与gt1 flag放在同一轮,其它的gtx flag与前者是否放在同一轮解码或分开不做限定。
例如,第一轮解码包括第一子轮解码,在第一子轮解码中,对sig flag与gt1 flag进行解码。
在一种示例中,在第一子轮解码中,不仅对sig flag与gt1 flag进行解码,还对系数绝对值大于2标志(gt2 flag)、系数绝对值大于3标志(gt3 flag)、系数绝对值大于4标志(gt4 flag)中的一个或多个进行解码。
在另一种示例中,第一轮解码还包括第一子轮解码和第二子轮解码,
在第一子轮解码中,对sig flag与gt1 flag进行解码;
在第二子轮解码中,对系数绝对值大于2标志(gt2 flag),以及系数绝对值大于3标志(gt3 flag)和/或系数绝对值大于3标志(gt3 flag)进行解码。
在另一种示例中,第一轮解码还包括第一子轮解码和第二子轮解码,
在第一子轮解码中对sig flag与gt1 flag和gt2 flag进行解码;
在第二子轮解码中对系数绝对值大于3标志(gt3 flag)和系数绝对值大于3标志(gt3 flag)进行解码。
在另一种示例中,第一轮解码包括第一子轮解码、第二子轮解码和第三子轮解码,
在第一子轮解码中对sig flag与gt1 flag进行解码;
在第二子轮解码中对系数绝对值大于2标志(gt2 flag)进行解码;
在第三子轮解码中对系数绝对值大于3标志(gt3 flag)和系数绝对值大于4标志(gt4 flag)进行解码。
在另一种示例中,第一轮解码包括第一子轮解码、第二子轮解码、第三子轮解码和第四子轮解码:
在第一子轮解码中,对sig flag与gt1 flag进行解码;
在第二子轮解码中对系数绝对值大于2标志(gt2 flag)进行解码;
在第三子轮解码中对系数绝对值大于3标志(gt3 flag)进行解码;
在第三子轮解码中对系数绝对值大于4标志(gt4 flag)进行解码。
需要说明的是,本申请还可以包括上述flag的其他组合的量化方式,本申请对此不做限制。
在一种实施例中,上述S902中对待解码块中一待解码系数的语法元素进行解码,包括:
1、解码系数非零标志,当系数非零标志解码为0时,跳过系数绝对值大于1标志、系数绝对值大于2标志、系数绝对值大于3标志、系数绝对值大于4标志、系数绝对值剩余值标志和符号标志的解码;
2、当系数非零标志解码为1时,解码系数绝对值大于1标志,当系数绝对值大于1标志解码为0时,解码符号标志,且跳过系数绝对值大于2标志、系数绝对值大于3标志、系数绝对值大于4标志、系数绝对值剩余值标志的解码;
3、当系数绝对值大于1标志解码为1时,解码系数绝对值大于2标志,当系数绝对值大于2标志解码为0时,解码符号标志,且跳过系数绝对值大于3标志、系数绝对值大于4标志、系数绝对值剩余值标志的解码;
4、当系数绝对值大于2标志解码为1时,解码系数绝对值大于3标志,当系数绝对值大于3标志解码为0时,解码符号标志,且跳过系数绝对值大于4标志和系数绝对值剩余值标志的解码;
5、当系数绝对值大于3标志解码为1时,解码系数绝对值大于4标志,当系数绝对值大于4标志解码为0时,解码符号标志,且跳过系数绝对值剩余值标志的解码;
6、当系数绝对值大于4标志解码为1时,解码符号标志和系数绝对值剩余值标志。
在一些实施例中,上述S903中根据解码得到的语法元素,得到待解码系数的值,包括S903-A1和S903-A2:
S903-A1、将非零标志的解码值、系数绝对值大于1标志的解码值、系数绝对值大于2标志的解码值、系数绝对值大于3标志的解码值、系数绝对值大于4标志的解码值、系数绝对值剩余值标志的解码值相加的和值,作为待解码系数的绝对值;
S903-A2、根据待解码系数的绝对值和符号标志的解码值,得到待解码系数的值。
在一种示例中,根据如下公式,确定出待解码系数的绝对值:
|q
k|=sig+gt1+gt2++gt3+gt3+rem (6)
其中,|q
k|为待解码系数的绝对值,sig为sig_flag的解码值,gt1为gt1 flag的解码值,gt2为gt2 flag的解码值,gt3为gt3 flag的解码值,gt4为gt4 flag的解码值,rem为remaining的解码值,即解码出绝对值大于4的部分。
根据上述方法得到待解码系数的值后,执行S904,以根据待解码系数的值,得到重建块。
下面对S904的具体实现过程进行介绍。
在一些实施例中,上述S904包括:
S904-A、获取待解码系数的已解码的前一个量化系数的标志位信息;
S904-B、根据前一个量化系数的标志位信息,从N个量化器中确定量化该待解码系数所使用的目标量化器;
S904-C、根据目标量化器和待解码系数的值,得到当前变换系数;
S904-D、根据当前变换系数,得到重建块。
本申请中待解码系数的前一个量化系数已解码出,因此,解码设备可以获得该前一个量化系数的标志位信息。
在一种示例中,前一个量化系数的标志位信息包括该前一个量化系数的sig flag、gt1 flag、gt2 flag、gt3 flag、……、gtM flag,其中M大于或等于3。
在一些实施例中,上述S904-B包括如下步骤S904-B1至S904-B4:
S904-B1、获取前一个量化系数的状态;
S904-B2、根据前一个量化系数的标志位信息,以及前一个量化系数的状态,确定待解码系数的状态;
S904-B3、根据待解码系数的状态,从N个量化器中确定目标量化器。
其中量化系数的状态可以理解为状态机的状态。
在一些实施例中,可以将状态机的当前状态称为待解码系数的状态,或者称为待解 码系数的当前状态。
可选的,状态机的初始状态为0。
在一些实施例中,码流中包括状态机的初始状态。例如,状态机的初始状态为0。
本申请中由于前一个量化系数已解码,其状态已知,因此,解码设备可以获得该前一个量化系数的状态。
在一些实施例中,上述S904-B2的实现方式包括但不限于如下方式:
方式一,若前一个量化系数的标志位信息中的Sig flag的值为0时,则根据前一个量化系数的状态,确定所述待解码系数的状态,例如,前一个量化系数的状态为0时,则确定待解码系数的状态为0,若前一个量化系数的状态为1时,则确定待解码系数的状态为2,若前一个量化系数的状态为2时,则确定待解码系数的状态为1,若前一个量化系数的状态为3时,则确定待解码系数的状态为3。
方式二,上述S904-B2包括如下步骤S904-B21和S904-B22:
S904-B21、根据前一个量化系数的标志位信息,确定状态跳转值;
S904-B22、根据前一个量化系数的状态和状态跳转值,确定待解码系数的状态。
在一种示例中,若前一个量化系数的标志位信息包括系数非零标志,且系数非零标志的值为0时,则确定状态跳转值为0。
在另一种示例中,前一个量化系数的标志位信息包括系数非零标志和系数绝对值大于1标志,若系数非零标志的值和系数绝对值大于1标志的值满足如下公式(7),则确定状态跳转值为1;若系数非零标志的值和系数绝对值大于1标志的值不满足如下公式(7),则确定状态跳转值为0;
t=sigflag==1&>1==0 (7)
其中,t为状态跳转值,sigflag为系数非零标志的值,gt1为系数绝对值大于1标志的值。
该方式中,其中变量t的真假取决于在解码的过程中,上一个系数值是否为1。而是否为1可由sig_flag与coeff_abs_level_greater1_flag(gt1 flag)两个标志位的取值得到,无需全部重建出待解码系数即可得到,进而降低量化复杂性,提供解码效率。
在另一种示例中,前一个量化系数的标志位信息包括系数非零标志、前M个系数绝对值大于x标志,x=1,2,3,…,M,M为大于或等于3的正整数,若系数非零标志的值为1,以及前M-1个系数绝对值大于x标志的值为1,且第M个系数绝对值大于x标志的值为0,则确定状态跳转值为1。假设M为4,则前一个量化系数的标志位信息包括:sigflag、 gt1 flag、gt2 flag、gt3 flag、gt4 flag,若前一个量化系数的标志位信息满足如下公式(8),则确定状态跳转值t=1;若前一个量化系数的标志位信息不满足如下公式(8),则确定状态跳转值t=0:
t=sigflag==1&>1==1&>2==1&>3==1&>4==0 (8)
根据上述方式,确定出t后,根据t和前一个量化系数的状态,确定出待解码系数的状态。
本申请可由如图11所示的状态机完成状态的转移,即表1中的stateTrans(状态转移表)。例如,如图11所示,当t=1,表示t为真,当t=0时,表示t为假。这样可以根据如上公式(7)或(8)确定出t的真假,并根据t的真假和前一个量化系数的状态,确定出待解码系数的状态,例如,当t为真,前一个量化系数的状态为2,则待解码系数的状态为3。
在一些实施例中,根据待解码系数的状态,更新状态机的状态。
在一些实施例中,需要先判断编码端所使用的量化方式是否为DQ量化方式,即本申请还包括:
步骤21、解码码流,得到变换块所使用的变换工具标识,和/或变换块在亮度分量下的扫描区域的SRx或SRy、以及变换块在色度分量下的扫描区域的SRx或SRy;
步骤22、根据变换块所使用的变换工具标识,和/或变换块在亮度分量下的扫描区域的SRx或SRy、以及变换块在色度分量下的扫描区域的SRx或SRy,判断变换块是否满足预设条件。
在变换块满足所述预设条件,则根据前一个量化系数的标志位信息,从N个量化器中确定量化待解码系数所使用的目标量化器。
在一些实施例中,上述预设条件包括如下任意一个条件:
条件1,在色度分量下;或者,变换块为非变换跳过块,且该变换块所使用的变换工具不是IST工具和/或SBT工具;
条件2,变换块在亮度分量下的扫描区域的SRx或SRy大于Q且在色度分量下的扫描区域的SRx或SRy大于P,且变换块为非变换跳过块,Q和P均为整数。
可选的,M为6,P为0。
在一些实施例中,上述M、P为默认值。
在一些实施例中,M的值、P的值和DQ的使能标志位至少一个保存在序列头或图像头中,其中,DQ的使能标志位用于控制当前序列是否可以打开DQ量化方式。
在一些实施例中,序列头如表1所示,解码设备首先解码表1所示的序列头,得到M的值、P的值和DQ的使能标志位中的至少一个。首先DQ的使能标志位判断当前序列是否可以打开DQ量化方式。若判断当前序列可以打开DQ量化方式,则根据解码出的M和/或P执行上述条件2,判断变换块是否可以使用DQ量化方式。
在一些实施例中,根据DQ的使能标志位,在确定当前序列可以打开DQ量化方式时,根根据变换块所使用的变换工具标识,或变换块在亮度分量下的扫描区域的SRx或SRy、以及待解码块在色度分量下的扫描区域的SRx或SRy,判断变换块是否满足预设条件。
本申请的技术方案,在对待解码系数进行反量化时,获得待解码系数的前一个量化系数的标志位信息,并根据前一个量化系数的标志位信息,从N个量化器中确定当前变换系数在量化时所使用的目标量化器。即本申请只需获得前一个量化系数的标志位信息,即可确定出目标量化器,而无需等待该待解码系数解码完成,进而降低了编解码复杂度,提高编解码效率。另外,本申请在依赖性量化的基础上进一步拓展了gtx flag的数量从而提升了解码性能。
应理解,图8至图12仅为本申请的示例,不应理解为对本申请的限制。
以上结合附图详细描述了本申请的优选实施方式,但是,本申请并不限于上述实施方式中的具体细节,在本申请的技术构思范围内,可以对本申请的技术方案进行多种简单变型,这些简单变型均属于本申请的保护范围。例如,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本申请对各种可能的组合方式不再另行说明。又例如,本申请的各种不同的实施方式之间也可以进行任意组合,只要其不违背本申请的思想,其同样应当视为本申请所公开的内容。
还应理解,在本申请的各种方法实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。另外,本申请实施例中,术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。具体地,A和/或B可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
上文结合图8至图12,详细描述了本申请的方法实施例,下文结合图13至图15, 详细描述本申请的装置实施例。
图13是本申请实施例提供的视频编码器的示意性框图。
如图13所示,视频编码器10包括:
获取单元11,用于获取待编码块;
处理单元12,用于对所述待编码块进行处理,得到所述待编码块的变换块;
量化单元13,用于针对所述变换块中一待编码系数,从N个量化器中确定一个目标量化器对所述待编码系数进行量化,得到当前量化系数,所述N个量化器为依赖性量化DQ方式对应的量化器,所述N为大于或等于2的正整数;
编码单元14,用于对所述当前量化系数的语法元素进行编码,形成码流,其中,所述语法元素包括:系数非零标志、系数绝对值大于1标志、系数绝对值大于2标志、至少一个系数绝对值大于i标志、系数绝对值剩余值标志和符号标志,所述i为从3取到M的正整数,所述M为大于或等于3的正整数。
在一些实施例中,编码单元14,具体用于执行如下3轮编码,包括:
第一轮编码,对所述当前量化系数的系数非零标志、系数绝对值大于1标志、系数绝对值大于2标志和至少一个系数绝对值大于i标志进行编码;
第二轮编码,对所述当前量化系数的系数绝对值剩余值标志进行编码;
第三轮编码,对所述当前量化系数的符号标志进行编码。
在一些实施例中,所述第一轮编码包括第一子轮编码,编码单元14,具体用于在第一子轮编码中,对所述系数非零标志和所述系数绝对值大于1标志进行编码。
在一些实施例中,编码单元14,具体用于在第一子轮编码中,对所述系数绝对值大于2标志和/或所述至少一个系数绝对值大于i标志进行编码。
在一些实施例中,所述第一轮编码还包括第二子轮编码,编码单元14,具体用于在第二子轮编码中,对所述系数绝对值大于2标志和所述至少一个系数绝对值大于i标志中的一个或多个进行编码;或者,在第一子轮编码中,对系数绝对值大于2标志进行编码,在第二子轮编码中对所述至少一个系数绝对值大于i标志进行编码。
在一些实施例中,所述第一轮编码还包括第二子轮编码和第三子轮编码,编码单元14,具体用于在第二子轮编码中,对所述系数绝对值大于2标志进行编码;在第三子轮编码中,对所述至少一个系数绝对值大于i标志进行编码。
在一些实施例中,编码单元14,还具体用于,对所述至少一个系数绝对值大于i标志中的每个标志分别进行编码。
在一些实施例中,所述至少一个系数绝对值大于i标志包括系数绝对值大于3标志和系数绝对值大于4标志。
在一些实施例中,编码单元14,具体用于在第一子轮编码中,对所述系数绝对值大于2标志、所述系数绝对值大于3标志、所述系数绝对值大于4标志中的一个或多个进行编码。
在一些实施例中,所述第一轮编码还包括第二子轮编码,编码单元14,具体用于在第二子轮编码中,对所述系数绝对值大于2标志,以及所述系数绝对值大于3标志和/或所述系数绝对值大于4标志进行编码;或者,在第一子轮编码中,对系数绝对值大于2标志进行编码,在第二子轮编码中对所述系数绝对值大于3标志和所述系数绝对值大于4标志进行编码。
在一些实施例中,所述第一轮编码还包括第二子轮编码和第三子轮编码,编码单元14,具体用于在第二子轮编码中,对所述系数绝对值大于2标志进行编码;在第三子轮编码中,对所述系数绝对值大于3标志和所述系数绝对值大于4标志进行编码。
在一些实施例中,所述第一轮编码还包括第二子轮编码、第三子轮编码和第四子轮编码,编码单元14,具体用于在第二子轮编码中,对所述系数绝对值大于2标志进行编码;在第三子轮编码中,对所述系数绝对值大于3标志进行编码;在第四子轮编码中,对所述系数绝对值大于4标志进行编码。
在一些实施例中,所述N个量化器中至少有一个量化器为可以将变换系数均量化为非零量化系数的非零量化器。
在一些实施例中,所述N个量化器中至少有一个量化器为可以将变换系数量化为零的零点量化器。
在一些实施例中,所述N个量化器包括一个零点量化器和一个非零量化器。
在一些实施例中,量化单元13,具体用于获取所述当前量化系数的前一个量化系数的标志位信息;根据所述前一个量化系数的标志位信息,从所述N个量化器中确定一个目标量化器;使用所述目标量化器对所述待编码系数进行量化。
在一些实施例中,量化单元13,具体用于获取所述前一个量化系数的状态;根据所述前一个量化系数的标志位信息,以及所述前一个量化系数的状态,确定所述当前量化系数的状态;根据所述当前量化系数的状态,从所述N个量化器中确定所述目标量化器。
在一些实施例中,量化单元13,具体用于根据所述前一个量化系数的标志位信息,确定状态跳转值;根据所述前一个量化系数的状态和所述状态跳转值,确定所述当前量 化系数的状态。
在一些实施例中,若所述前一个量化系数的标志位信息包括系数非零标志和系数绝对值大于1标志,量化单元13,具体用于若所述系数非零标志的值和所述系数绝对值大于1标志的值满足如下公式,则确定所述状态跳转值为1;若所述系数非零标志的值和所述系数绝对值大于1标志的值不满足如下公式,则确定所述状态跳转值为0;
所述公式为:
t=sigflag==1&>1==0
其中,所述t为所述状态跳转值,所述sigflag为所述系数非零标志的值,所述gt1为所述系数绝对值大于1标志的值。
应理解,装置实施例与方法实施例可以相互对应,类似的描述可以参照方法实施例。为避免重复,此处不再赘述。具体地,图13所示的视频编码器10可以执行本申请实施例的方法,并且视频编码器10中的各个单元的前述和其它操作和/或功能分别为了实现方法等各个方法中的相应流程,为了简洁,在此不再赘述。
图14是本申请实施例提供的视频解码器的示意性框图。
如图14所示,该视频解码器20可包括:
第一解码单元21,用于解码码流,得到待解码码块;
第二解码单元22,用于对所述待解码块中一待解码系数的语法元素进行解码,所述待解码系数经过N个量化器中的一个量化器量化得到,所述N个量化器为DQ量化方式对应的量化器,所述N为大于或等于2的正整数,所述语法元素包括:系数非零标志、系数绝对值大于1标志、系数绝对值大于2标志、至少一个系数绝对值大于i标志、系数绝对值剩余值标志和符号标志,所述i为从3取到M的正整数,所述M为大于或等于3的正整数;
处理单元23,用于根据解码得到的语法元素,得到所述待解码系数的值,并根据所述待解码系数的值,得到所述待解码块的重建块。
在一些实施例中,第二解码单元22,具体用于执行如下3轮解码,包括:
第一轮解码,对所述待解码系数的系数非零标志、系数绝对值大于1标志、系数绝对值大于2标志和至少一个系数绝对值大于i标志进行解码;
第二轮解码,对所述待解码系数的系数绝对值剩余值标志进行解码;
第三轮解码,对所述待解码系数的符号标志进行解码。
在一些实施例中,所述第一轮解码包括第一子轮解码,第二解码单元22,具体用于在第一子轮解码中,对所述系数非零标志和所述系数绝对值大于1标志进行解码。
在一些实施例中,第二解码单元22,具体用于在第一子轮解码中,对所述系数绝对值大于2标志和/或所述至少一个系数绝对值大于i标志进行解码。
在一些实施例中,所述第一轮解码还包括第二子轮解码,第二解码单元22,具体用于
在第二子轮解码中,对所述系数绝对值大于2标志和所述至少一个系数绝对值大于i标志中的一个或多个进行解码;或者,
在第一子轮解码中,对系数绝对值大于2标志进行解码,在第二子轮解码中对所述至少一个系数绝对值大于i标志进行解码。
在一些实施例中,所述第一轮解码还包括第二子轮解码和第三子轮解码,第二解码单元22,具体用于在第二子轮解码中,对所述系数绝对值大于2标志进行解码;
在第三子轮解码中,对所述至少一个系数绝对值大于i标志进行解码。
在一些实施例中,第二解码单元22,具体用于对所述至少一个系数绝对值大于i标志中的每个标志分别进行解码。
在一些实施例中,所述至少一个系数绝对值大于i标志包括系数绝对值大于3标志和系数绝对值大于4标志。
在一些实施例中,第二解码单元22,具体用于在第一子轮解码中,对所述系数绝对值大于2标志、所述系数绝对值大于3标志、所述系数绝对值大于4标志中的一个或多个进行解码。
在一些实施例中,所述第一轮解码还包括第二子轮解码,第二解码单元22,具体用于在第二子轮解码中,对所述系数绝对值大于2标志,以及所述系数绝对值大于3标志和/或所述系数绝对值大于4标志进行解码;或者,
在第一子轮解码中,对系数绝对值大于2标志进行解码,在第二子轮解码中对所述系数绝对值大于3标志和所述系数绝对值大于4标志进行解码。
在一些实施例中,所述第一轮解码还包括第二子轮解码和第三子轮解码,第二解码单元22,具体用于在第二子轮解码中,对所述系数绝对值大于2标志进行解码;
在第三子轮解码中,对所述系数绝对值大于3标志和所述系数绝对值大于4标志进行解码。
在一些实施例中,所述第一轮解码还包括第二子轮解码、第三子轮解码和第四子轮 解码,第二解码单元22,具体用于在第二子轮解码中,对所述系数绝对值大于2标志进行解码;
在第三子轮解码中,对所述系数绝对值大于3标志进行解码;
在第四子轮解码中,对所述系数绝对值大于4标志进行解码。
在一些实施例中,第二解码单元22,具体用于解码系数非零标志,当系数非零标志解码为0时,跳过系数绝对值大于1标志、系数绝对值大于2标志、系数绝对值大于3标志、系数绝对值大于4标志、系数绝对值剩余值标志和符号标志的解码;
当系数非零标志解码为1时,解码系数绝对值大于1标志,当系数绝对值大于1标志解码为0时,解码符号标志,且跳过系数绝对值大于2标志、系数绝对值大于3标志、系数绝对值大于4标志、系数绝对值剩余值标志的解码;
当系数绝对值大于1标志解码为1时,解码系数绝对值大于2标志,当系数绝对值大于2标志解码为0时,解码符号标志,且跳过系数绝对值大于3标志、系数绝对值大于4标志、系数绝对值剩余值标志的解码;
当系数绝对值大于2标志解码为1时,解码系数绝对值大于3标志,当系数绝对值大于3标志解码为0时,解码符号标志,且跳过系数绝对值大于4标志和系数绝对值剩余值标志的解码;
当系数绝对值大于3标志解码为1时,解码系数绝对值大于4标志,当系数绝对值大于4标志解码为0时,解码符号标志,且跳过系数绝对值剩余值标志的解码;
当系数绝对值大于4标志解码为1时,解码符号标志和系数绝对值剩余值标志。
在一些实施例中,第二解码单元22,具体用于将非零标志的解码值、系数绝对值大于1标志的解码值、系数绝对值大于2标志的解码值、系数绝对值大于3标志的解码值、系数绝对值大于4标志的解码值、系数绝对值剩余值标志的解码值相加的和值,作为所述待解码系数的绝对值;
根据所述待解码系数的绝对值和符号标志的解码值,得到所述待解码系数的值。
在一些实施例中,所述N个量化器中至少有一个量化器为可以将变换系数均量化为非零量化系数的非零量化器。
在一些实施例中,所述N个量化器中至少有一个量化器为可以将变换系数量化为零的零点量化器。
在一些实施例中,所述N个量化器包括一个零点量化器和一个非零量化器。
在一些实施例中,处理单元23,具体用于获取所述待解码系数的已解码的前一个量 化系数的标志位信息;
根据所述前一个量化系数的标志位信息,从所述N个量化器中确定量化所述待解码系数所使用的目标量化器;
根据所述目标量化器和所述待解码系数的值,得到当前变换系数;
根据所述当前变换系数,得到重建块。
在一些实施例中,处理单元23,具体用于获取所述前一个量化系数的状态;
根据所述前一个量化系数的标志位信息,以及所述前一个量化系数的状态,确定所述待解码系数的状态;
根据所述待解码系数的状态,从所述N个量化器中确定所述目标量化器。
在一些实施例中,处理单元23,具体用于根据所述前一个量化系数的标志位信息,确定状态跳转值;
根据所述前一个量化系数的状态和所述状态跳转值,确定所述待解码系数的状态。
在一些实施例中,若所述前一个量化系数的标志位信息包括系数非零标志和系数绝对值大于1标志,处理单元23,具体用于若所述系数非零标志的值和所述系数绝对值大于1标志的值满足如下公式,则确定所述状态跳转值为1;
若所述系数非零标志的值和所述系数绝对值大于1标志的值不满足如下公式,则确定所述状态跳转值为0;
所述公式为:
t=sigflag==1&>1==0
其中,所述t为所述状态跳转值,所述sigflag为所述系数非零标志的值,所述gt1为所述系数绝对值大于1标志的值。
应理解,装置实施例与方法实施例可以相互对应,类似的描述可以参照方法实施例。为避免重复,此处不再赘述。具体地,图14所示的视频解码器20可以对应于执行本申请实施例的方法中的相应主体,并且视频解码器20中的各个单元的前述和其它操作和/或功能分别为了实现方法等各个方法中的相应流程,为了简洁,在此不再赘述。
上文中结合附图从功能单元的角度描述了本申请实施例的装置和系统。应理解,该功能单元可以通过硬件形式实现,也可以通过软件形式的指令实现,还可以通过硬件和软件单元组合实现。具体地,本申请实施例中的方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路和/或软件形式的指令完成,结合本申请实施例公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件单元组合 执行完成。可选地,软件单元可以位于随机存储器,闪存、只读存储器、可编程只读存储器、电可擦写可编程存储器、寄存器等本领域的成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法实施例中的步骤。
图15是本申请实施例提供的电子设备30的示意性框图。
如图15所示,该电子设备30可以为本申请实施例所述的视频编码器,或者视频解码器,该电子设备30可包括:
存储器33和处理器32,该存储器33用于存储计算机程序34,并将该程序代码34传输给该处理器32。换言之,该处理器32可以从存储器33中调用并运行计算机程序34,以实现本申请实施例中的方法。
例如,该处理器32可用于根据该计算机程序34中的指令执行上述方法中的步骤。
在本申请的一些实施例中,该处理器32可以包括但不限于:
通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等等。
在本申请的一些实施例中,该存储器33包括但不限于:
易失性存储器和/或非易失性存储器。其中,非易失性存储器可以是只读存储器(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,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)。
在本申请的一些实施例中,该计算机程序34可以被分割成一个或多个单元,该一个或者多个单元被存储在该存储器33中,并由该处理器32执行,以完成本申请提供的方法。该一个或多个单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段 用于描述该计算机程序34在该电子设备30中的执行过程。
如图15所示,该电子设备30还可包括:
收发器33,该收发器33可连接至该处理器32或存储器33。
其中,处理器32可以控制该收发器33与其他设备进行通信,具体地,可以向其他设备发送信息或数据,或接收其他设备发送的信息或数据。收发器33可以包括发射机和接收机。收发器33还可以进一步包括天线,天线的数量可以为一个或多个。
应当理解,该电子设备30中的各个组件通过总线系统相连,其中,总线系统除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。
图16是本申请实施例提供的视频编解码系统40的示意性框图。
如图16所示,该视频编解码系统40可包括:视频编码器41和视频解码器42,其中视频编码器41用于执行本申请实施例涉及的视频编码方法,视频解码器42用于执行本申请实施例涉及的视频解码方法。
本申请还提供了一种计算机存储介质,其上存储有计算机程序,该计算机程序被计算机执行时使得该计算机能够执行上述方法实施例的方法。
本申请实施例还提供一种包含指令的计算机程序产品,该指令被计算机执行时使得计算机执行上述方法实施例的方法。
本申请还提供了一种码流,该码流是根据上述实施例所述的视频编码方法生成的,其中码流中包括如下语法元素:系数非零标志、系数绝对值大于1标志、系数绝对值大于2标志、至少一个系数绝对值大于i标志、系数绝对值剩余值标志和符号标志,所述i为从3取到M的正整数,所述M为大于或等于3的正整数。
当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例该的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介 质(例如数字视频光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。例如,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
以上该,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变换或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以该权利要求的保护范围为准。
Claims (46)
- 一种视频编码方法,其特征在于,包括:获取待编码块;对所述待编码块进行处理,得到所述待编码块的变换块;针对所述变换块中一待编码系数,从N个量化器中确定一个目标量化器对所述待编码系数进行量化,得到当前量化系数,所述N个量化器为依赖性量化DQ方式对应的量化器,所述N为大于或等于2的正整数;对所述当前量化系数的语法元素进行编码,形成码流;其中,所述语法元素包括:系数非零标志、系数绝对值大于1标志、系数绝对值大于2标志、至少一个系数绝对值大于i标志、系数绝对值剩余值标志和符号标志,所述i为从3取到M的正整数,所述M为大于或等于3的正整数。
- 根据权利要求1所述的方法,其特征在于,所述对所述当前量化系数的语法元素进行编码包括如下3轮编码:第一轮编码,对所述当前量化系数的系数非零标志、系数绝对值大于1标志、系数绝对值大于2标志和至少一个系数绝对值大于i标志进行编码;第二轮编码,对所述当前量化系数的系数绝对值剩余值标志进行编码;第三轮编码,对所述当前量化系数的符号标志进行编码。
- 根据权利要求2所述的方法,其特征在于,所述第一轮编码包括第一子轮编码,所述方法还包括:在第一子轮编码中,对所述系数非零标志和所述系数绝对值大于1标志进行编码。
- 根据权利要求3所述的方法,其特征在于,所述方法还包括:在第一子轮编码中,对所述系数绝对值大于2标志和/或所述至少一个系数绝对值大于i标志进行编码。
- 根据权利要求3所述的方法,其特征在于,所述第一轮编码还包括第二子轮编码,所述方法还包括:在第二子轮编码中,对所述系数绝对值大于2标志和所述至少一个系数绝对值大于i标志中的一个或多个进行编码;或者,在第一子轮编码中,对系数绝对值大于2标志进行编码,在第二子轮编码中对所述至少一个系数绝对值大于i标志进行编码。
- 根据权利要求3所述的方法,其特征在于,所述第一轮编码还包括第二子轮编码和第三子轮编码,所述方法还包括:在第二子轮编码中,对所述系数绝对值大于2标志进行编码;在第三子轮编码中,对所述至少一个系数绝对值大于i标志进行编码。
- 根据权利要求3所述的方法,其特征在于,所述方法还包括:对所述至少一个系数绝对值大于i标志中的每个标志分别进行编码。
- 根据权利要求3所述的方法,其特征在于,所述至少一个系数绝对值大于i标志包括系数绝对值大于3标志和系数绝对值大于4标志。
- 根据权利要求8所述的方法,其特征在于,所述方法还包括:在第一子轮编码中,对所述系数绝对值大于2标志、所述系数绝对值大于3标志、所述系数绝对值大于4标志中的一个或多个进行编码。
- 根据权利要求8所述的方法,其特征在于,所述第一轮编码还包括第二子轮编码,所述方法还包括:在第二子轮编码中,对所述系数绝对值大于2标志,以及所述系数绝对值大于3标志和/或所述系数绝对值大于4标志进行编码;或者,在第一子轮编码中,对系数绝对值大于2标志进行编码,在第二子轮编码中对所述系数绝对值大于3标志和所述系数绝对值大于4标志进行编码。
- 根据权利要求8所述的方法,其特征在于,所述第一轮编码还包括第二子轮编码和第三子轮编码,所述方法还包括:在第二子轮编码中,对所述系数绝对值大于2标志进行编码;在第三子轮编码中,对所述系数绝对值大于3标志和所述系数绝对值大于4标志进行编码。
- 根据权利要求8所述的方法,其特征在于,所述第一轮编码还包括第二子轮编码、第三子轮编码和第四子轮编码,所述方法还包括:在第二子轮编码中,对所述系数绝对值大于2标志进行编码;在第三子轮编码中,对所述系数绝对值大于3标志进行编码;在第四子轮编码中,对所述系数绝对值大于4标志进行编码。
- 根据权利要求1所述的方法,其特征在于,所述N个量化器中至少有一个量化器为可以将变换系数均量化为非零量化系数的非零量化器。
- 根据权利要求13所述的方法,其特征在于,所述N个量化器中至少有一个量化器为可以将变换系数量化为零的零点量化器。
- 根据权利要求14所述的方法,其特征在于,所述N个量化器包括一个零点量化器和一个非零量化器。
- 根据权利要求1-15任一项所述的方法,其特征在于,所述从N个量化器中确定一个目标量化器对所述待编码系数进行量化,包括:获取所述当前量化系数的前一个量化系数的标志位信息;根据所述前一个量化系数的标志位信息,从所述N个量化器中确定一个目标量化器;使用所述目标量化器对所述待编码系数进行量化。
- 根据权利要求16所述的方法,其特征在于,所述根据所述前一个量化系数的标志位信息,从所述N个量化器中确定一个目标量化器,包括:获取所述前一个量化系数的状态;根据所述前一个量化系数的标志位信息,以及所述前一个量化系数的状态,确定所述当前量化系数的状态;根据所述当前量化系数的状态,从所述N个量化器中确定所述目标量化器。
- 根据权利要求17所述的方法,其特征在于,所述根据所述前一个量化系数的标志位信息,以及所述前一个量化系数的状态,确定所述当前量化系数的状态,包括:根据所述前一个量化系数的标志位信息,确定状态跳转值;根据所述前一个量化系数的状态和所述状态跳转值,确定所述当前量化系数的状态。
- 根据权利要求18所述的方法,其特征在于,若所述前一个量化系数的标志位信息包括系数非零标志和系数绝对值大于1标志,则所述根据所述前一个量化系数的标志位信息,确定状态跳转值,包括:若所述系数非零标志的值和所述系数绝对值大于1标志的值满足如下公式,则确定所述状态跳转值为1;若所述系数非零标志的值和所述系数绝对值大于1标志的值不满足如下公式,则确定所述状态跳转值为0;所述公式为:t=sigflag==1&>1==0其中,所述t为所述状态跳转值,所述sigflag为所述系数非零标志的值,所述gt1为所述系数绝对值大于1标志的值。
- 一种视频解码方法,其特征在于,包括:解码码流,得到待解码块;对所述待解码块中一待解码系数的语法元素进行解码,所述待解码系数经过N个量化器中的一个量化器量化得到,所述N个量化器为DQ量化方式对应的量化器,所述N为大于或等于2的正整数,所述语法元素包括:系数非零标志、系数绝对值大于1标志、系数绝对值大于2标志、至少一个系数绝对值大于i标志、系数绝对值剩余值标志和符号标志,所述i为从3取到M的正整数,所述M为大于或等于3的正整数;根据解码得到的语法元素,得到所述待解码系数的值;根据所述待解码系数的值,得到所述待解码块的重建块。
- 根据权利要求20所述的方法,其特征在于,所述对所述待解码块中一待解码系数的语法元素进行解码包括如下3轮解码,包括:第一轮解码,对所述待解码系数的系数非零标志、系数绝对值大于1标志、系数绝对值大于2标志和至少一个系数绝对值大于i标志进行解码;第二轮解码,对所述待解码系数的系数绝对值剩余值标志进行解码;第三轮解码,对所述待解码系数的符号标志进行解码。
- 根据权利要求21所述的方法,其特征在于,所述第一轮解码包括第一子轮解码,所述方法还包括:在第一子轮解码中,对所述系数非零标志和所述系数绝对值大于1标志进行解码。
- 根据权利要求22所述的方法,其特征在于,所述方法还包括:在第一子轮解码中,对所述系数绝对值大于2标志和/或所述至少一个系数绝对值大于i标志进行解码。
- 根据权利要求22所述的方法,其特征在于,所述第一轮解码还包括第二子轮解码,所述方法还包括:在第二子轮解码中,对所述系数绝对值大于2标志和所述至少一个系数绝对值大于i标志中的一个或多个进行解码;或者,在第一子轮解码中,对系数绝对值大于2标志进行解码,在第二子轮解码中对所述至少一个系数绝对值大于i标志进行解码。
- 根据权利要求22所述的方法,其特征在于,所述第一轮解码还包括第二子轮解码和第三子轮解码,所述方法还包括:在第二子轮解码中,对所述系数绝对值大于2标志进行解码;在第三子轮解码中,对所述至少一个系数绝对值大于i标志进行解码。
- 根据权利要求22所述的方法,其特征在于,所述方法还包括:对所述至少一个系数绝对值大于i标志中的每个标志分别进行解码。
- 根据权利要求22所述的方法,其特征在于,所述至少一个系数绝对值大于i标志包括系数绝对值大于3标志和系数绝对值大于4标志。
- 根据权利要求27所述的方法,其特征在于,所述方法还包括:在第一子轮解码中,对所述系数绝对值大于2标志、所述系数绝对值大于3标志、所述系数绝对值大于4标志中的一个或多个进行解码。
- 根据权利要求27所述的方法,其特征在于,所述第一轮解码还包括第二子轮解码,所述方法还包括:在第二子轮解码中,对所述系数绝对值大于2标志,以及所述系数绝对值大于3标志和/或所述系数绝对值大于4标志进行解码;或者,在第一子轮解码中,对系数绝对值大于2标志进行解码,在第二子轮解码中对所述系数绝对值大于3标志和所述系数绝对值大于4标志进行解码。
- 根据权利要求27所述的方法,其特征在于,所述第一轮解码还包括第二子轮解码和第三子轮解码,所述方法还包括:在第二子轮解码中,对所述系数绝对值大于2标志进行解码;在第三子轮解码中,对所述系数绝对值大于3标志和所述系数绝对值大于4标志进行解码。
- 根据权利要求27所述的方法,其特征在于,所述第一轮解码还包括第二子轮解码、第三子轮解码和第四子轮解码,所述方法还包括:在第二子轮解码中,对所述系数绝对值大于2标志进行解码;在第三子轮解码中,对所述系数绝对值大于3标志进行解码;在第四子轮解码中,对所述系数绝对值大于4标志进行解码。
- 根据权利要求27所述的方法,其特征在于,所述对所述待解码块中一待解码系数的语法元素进行解码,包括:解码所述系数非零标志,当所述系数非零标志解码为0时,跳过所述系数绝对值大于1标志、所述系数绝对值大于2标志、系数绝对值大于3标志、系数绝对值大于4标志、系数绝对值剩余值标志和符号标志的解码;当所述系数非零标志解码为1时,解码所述系数绝对值大于1标志,当系数绝对值大于1标志解码为0时,解码符号标志,且跳过系数绝对值大于2标志、系数绝对值大 于3标志、系数绝对值大于4标志、系数绝对值剩余值标志的解码;当系数绝对值大于1标志解码为1时,解码系数绝对值大于2标志,当系数绝对值大于2标志解码为0时,解码符号标志,且跳过系数绝对值大于3标志、系数绝对值大于4标志、系数绝对值剩余值标志的解码;当系数绝对值大于2标志解码为1时,解码系数绝对值大于3标志,当系数绝对值大于3标志解码为0时,解码符号标志,且跳过系数绝对值大于4标志和系数绝对值剩余值标志的解码;当系数绝对值大于3标志解码为1时,解码系数绝对值大于4标志,当系数绝对值大于4标志解码为0时,解码符号标志,且跳过系数绝对值剩余值标志的解码;当系数绝对值大于4标志解码为1时,解码符号标志和系数绝对值剩余值标志。
- 根据权利要求32所述的方法,其特征在于,所述根据解码得到的语法元素,得到所述待解码系数的值,包括:将非零标志的解码值、系数绝对值大于1标志的解码值、系数绝对值大于2标志的解码值、系数绝对值大于3标志的解码值、系数绝对值大于4标志的解码值、系数绝对值剩余值标志的解码值相加的和值,作为所述待解码系数的绝对值;根据所述待解码系数的绝对值和符号标志的解码值,得到所述待解码系数的值。
- 根据权利要求20所述的方法,其特征在于,所述N个量化器中至少有一个量化器为可以将变换系数均量化为非零量化系数的非零量化器。
- 根据权利要求34所述的方法,其特征在于,所述N个量化器中至少有一个量化器为可以将变换系数量化为零的零点量化器。
- 根据权利要求35所述的方法,其特征在于,所述N个量化器包括一个零点量化器和一个非零量化器。
- 根据权利要求20-36任一项所述的方法,其特征在于,所述根据所述待解码系数的值,得到所述待解码块的重建块,包括:获取在所述待解码系数之前已解码的前一个量化系数的标志位信息;根据所述前一个量化系数的标志位信息,从所述N个量化器中确定量化所述待解码系数所使用的目标量化器;根据所述目标量化器和所述待解码系数的值,得到当前变换系数;根据所述当前变换系数,得到重建块。
- 根据权利要求37所述的方法,其特征在于,所述根据所述前一个量化系数的标 志位信息,从所述N个量化器中确定量化所述待解码系数所使用的目标量化器,包括:获取所述前一个量化系数的状态;根据所述前一个量化系数的标志位信息,以及所述前一个量化系数的状态,确定所述待解码系数的状态;根据所述待解码系数的状态,从所述N个量化器中确定所述目标量化器。
- 根据权利要求38所述的方法,其特征在于,所述根据所述前一个量化系数的标志位信息,以及所述前一个量化系数的状态,确定所述待解码系数的状态,包括:根据所述前一个量化系数的标志位信息,确定状态跳转值;根据所述前一个量化系数的状态和所述状态跳转值,确定所述待解码系数的状态。
- 根据权利要求39所述的方法,其特征在于,若所述前一个量化系数的标志位信息包括系数非零标志和系数绝对值大于1标志,则所述根据所述前一个量化系数的标志位信息,确定状态跳转值,包括:若所述系数非零标志的值和所述系数绝对值大于1标志的值满足如下公式,则确定所述状态跳转值为1;若所述系数非零标志的值和所述系数绝对值大于1标志的值不满足如下公式,则确定所述状态跳转值为0;所述公式为:t=sigflag==1&>1==0其中,所述t为所述状态跳转值,所述sigflag为所述系数非零标志的值,所述gt1为所述系数绝对值大于1标志的值。
- 一种视频编码器,其特征在于,包括:获取单元,用于获取待编码块;处理单元,用于对所述待编码块进行处理,得到所述待编码块的变换块;量化单元,用于针对所述变换块中一待编码系数,从N个量化器中确定一个目标量化器对所述待编码系数进行量化,得到当前量化系数,所述N个量化器为依赖性量化DQ方式对应的量化器,所述N为大于或等于2的正整数;编码单元,用于对所述当前量化系数的语法元素进行编码,形成码流,其中,所述语法元素包括:系数非零标志、系数绝对值大于1标志、系数绝对值大于2标志、至少一个系数绝对值大于i标志、系数绝对值剩余值标志和符号标志,所述i为从3取到M的 正整数,所述M为大于或等于3的正整数。
- 一种视频解码器,其特征在于,包括:第一解码单元,用于解码码流,得到待解码块;第二解码单元,用于对所述待解码块中一待解码系数的语法元素进行解码,所述待解码系数经过N个量化器中的一个量化器量化得到,所述N个量化器为DQ量化方式对应的量化器,所述N为大于或等于2的正整数,所述语法元素包括:系数非零标志、系数绝对值大于1标志、系数绝对值大于2标志、至少一个系数绝对值大于i标志、系数绝对值剩余值标志和符号标志,所述i为从3取到M的正整数,所述M为大于或等于3的正整数;处理单元,用于根据解码得到的语法元素,得到所述待解码系数的值,并根据所述当待解码系数的值,得到所述待解码块的重建块。
- 一种视频编码器,其特征在于,包括:存储器,处理器;所述存储器,用于存储计算机程序;所述处理器,用于执行所述计算机程序以实现如上述权利要求1至19任一项所述方法。
- 一种视频解码器,其特征在于,包括:存储器,处理器;所述存储器,用于存储计算机程序;所述处理器,用于执行所述计算机程序以实现如上述权利要求20至40任一项所述方法。
- 一种视频编解码系统,其特征在于,包括:根据权利要求41或43所述的视频编码器;以及根据权利要求42或44所述的视频解码器。
- 一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至19或20至40任一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110287943 | 2021-03-17 | ||
CN2021102879437 | 2021-03-17 | ||
PCT/CN2021/087042 WO2022193389A1 (zh) | 2021-03-17 | 2021-04-13 | 视频编解码方法与系统、及视频编解码器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116982312A true CN116982312A (zh) | 2023-10-31 |
Family
ID=83321465
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180095554.2A Pending CN116982312A (zh) | 2021-03-17 | 2021-04-13 | 视频编解码方法与系统、及视频编解码器 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN116982312A (zh) |
WO (1) | WO2022193389A1 (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6197496B2 (ja) * | 2013-08-30 | 2017-09-20 | 富士通株式会社 | 量子化装置、量子化方法および量子化プログラム |
TWI813126B (zh) * | 2018-03-29 | 2023-08-21 | 弗勞恩霍夫爾協會 | 相依量化技術 |
US11381822B2 (en) * | 2018-09-21 | 2022-07-05 | Interdigital Vc Holdings, Inc. | Scalar quantizer decision scheme for dependent scalar quantization |
US11184642B2 (en) * | 2019-08-02 | 2021-11-23 | Mediatek Inc. | Methods and apparatus for simplification of coding residual blocks |
-
2021
- 2021-04-13 CN CN202180095554.2A patent/CN116982312A/zh active Pending
- 2021-04-13 WO PCT/CN2021/087042 patent/WO2022193389A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2022193389A1 (zh) | 2022-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106105207B (zh) | 用于编码/解码视频数据的方法和设备 | |
US9877029B2 (en) | Palette index binarization for palette-based video coding | |
EP3257246B1 (en) | Restriction on palette block size in video coding | |
CN112352429B (zh) | 对视频数据进行编解码的方法、设备和存储介质 | |
CN114650419A (zh) | 进行帧内预测的编码器、解码器和对应方法 | |
WO2013067436A1 (en) | Binarization of prediction residuals for lossless video coding | |
US11432013B2 (en) | Video signal processing method and apparatus using multiple transform kernel | |
CN112913236B (zh) | 编码器,解码器和使用压缩mv存储的对应方法 | |
CN113411612B (zh) | 对图像块进行视频译码的方法、解码设备和编/解码器 | |
CN117426088A (zh) | 视频编解码方法、设备、系统、及存储介质 | |
CN115086664A (zh) | 未匹配像素的解码方法、编码方法、解码器以及编码器 | |
CN117981307A (zh) | 视频编解码方法、设备、系统、及存储介质 | |
WO2022193389A1 (zh) | 视频编解码方法与系统、及视频编解码器 | |
WO2022193390A1 (zh) | 视频编解码方法与系统、及视频编解码器 | |
WO2022174475A1 (zh) | 视频编解码方法与系统、及视频编码器与视频解码器 | |
WO2022217447A1 (zh) | 视频编解码方法与系统、及视频编解码器 | |
WO2023236113A1 (zh) | 视频编解码方法、装置、设备、系统及存储介质 | |
CN113766227B (zh) | 用于图像编码和解码的量化和反量化方法及装置 | |
CN116746152A (zh) | 视频编解码方法与系统、及视频编码器与视频解码器 | |
CN116405701A (zh) | 图像滤波方法、装置、设备及存储介质 | |
KR20230111256A (ko) | 비디오 인코딩 및 디코딩 방법과 시스템, 비디오 인코더및 비디오 디코더 | |
CN114979628A (zh) | 图像块预测样本的确定方法及编解码设备 | |
CN114979629A (zh) | 图像块预测样本的确定方法及编解码设备 | |
CN117981320A (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 |