CN115022636A - 率失真优化量化方法及装置 - Google Patents

率失真优化量化方法及装置 Download PDF

Info

Publication number
CN115022636A
CN115022636A CN202210617816.3A CN202210617816A CN115022636A CN 115022636 A CN115022636 A CN 115022636A CN 202210617816 A CN202210617816 A CN 202210617816A CN 115022636 A CN115022636 A CN 115022636A
Authority
CN
China
Prior art keywords
quantization level
bit number
determining
context
mapping group
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
Application number
CN202210617816.3A
Other languages
English (en)
Inventor
李晓波
叶天晓
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Bilibili Technology Co Ltd
Original Assignee
Shanghai Bilibili Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Bilibili Technology Co Ltd filed Critical Shanghai Bilibili Technology Co Ltd
Priority to CN202210617816.3A priority Critical patent/CN115022636A/zh
Publication of CN115022636A publication Critical patent/CN115022636A/zh
Priority to PCT/CN2022/143806 priority patent/WO2023231414A1/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本申请公开了一种率失真优化量化方法,包括:确定超级块中的多个映射组,每个映射组包括上下文和初始量化等级,其中,所述超级块为待编码视频帧中的编码块单元,所述超级块包括多个元素,所述上下文用于表示与相应映射组关联的元素和多个相邻元素之间的相关性信息;确定每个映射组的编码比特数差值,编码比特数差值为相应映射组内的初始量化等级的编码比特数和所述相应映射组内的初始量化等级减一的编码比特数之间的差值;及基于所述每个映射组的编码比特数差值,确定所述超级块中每个元素的目标量化等级。本公开提供的技术方案,可以降低RDOQ技术的计算量,提高编码效率、避免计算资源浪费。

Description

率失真优化量化方法及装置
技术领域
本申请涉及视频编码领域,尤其涉及一种率失真优化量化方法、装置、计算机设备和计算机可读存储介质。
背景技术
目前主流的视频编码标准均是基于混合视频编码框架,量化起着重要的作用,也是视频有损的来源。以RDOQ(Rate-Distortion Optimization Quantization,率失真优化量化)技术为例,其已经应用到HEVC(High Efficiency Video Coding,高效视频编码)、AV1等视频编码标准中,用于提高视频编码性能,节省码率。
然而,现有的RDOQ技术的计算量大,导致出现效率低下、计算资源浪费严重的问题。
发明内容
本申请实施例的目的是提供一种率失真优化量化方法、装置、计算机设备以及计算机可读存储介质,可以用于解决上文所述的问题。
本申请实施例的一个方面又提供了一种率失真优化量化方法,包括:
确定超级块中的多个映射组,每个映射组包括上下文和初始量化等级;其中,所述超级块为待编码视频帧中的编码块单元,所述超级块包括多个元素,所述上下文用于表示与相应映射组关联的元素和多个相邻元素之间的相关性信息;
确定每个映射组的编码比特数差值,编码比特数差值为相应映射组内的初始量化等级的编码比特数和所述相应映射组内的初始量化等级减一的编码比特数之间的差值;及
基于所述每个映射组的编码比特数差值,确定所述超级块中每个元素的目标量化等级。
可选的,还包括:
将所述每个映射组和对应的编码比特数差值之间的映射关系保存于比特数差值数组中,所述比特数差值数组包括第一比特数差值数组和第二比特数差值数组;其中:
所述第一比特数差值数组,对应于等级低于第一预设值的初始量化等级;
所述第二比特数差值数组,对应于等级在第二预设值和第三预设值之间的初始量化等级。
可选的,所述超级块对应多个变换单元;
所述基于所述每个映射组的编码比特数差值,确定所述超级块中每个元素的目标量化等级,包括:
确定变换单元中的各个元素的上下文;
以预设顺序扫描所述变换单元,当扫描到所述变换单元中的当前元素时,执行如下操作:
响应于所述当前元素的初始量化等级为非零值,获取所述当前元素的初始量化等级和目标上下文;其中,所述当前元素为所述变换单元中的其中一个元素;
根据所述当前元素的初始量化等级和所述目标上下文,从所述映射组中查询出目标映射组;及
根据所述目标映射组中的目标编码比特数差值,确定所述当前元素的目标量化等级。
可选的,所述方法还包括:将所述各个元素的位置和所述各个元素的上下文之间的映射关系保存于上下文数组中;
所述响应于所述当前元素的初始量化等级为非零值,获取所述当前元素的初始量化等级和目标上下文,包括:根据所述当前元素的位置,从所述上下文数组中查询所述目标上下文。
可选的,所述根据所述目标映射组中的目标编码比特数差值,确定所述当前元素的目标量化等级,包括:
响应于所述目标编码比特数差值不大于参考阈值,确定所述当前元素的初始量化等级为所述当前元素的目标量化等级;
响应于所述目标编码比特数差值大于所述参考阈值,确定所述当前元素的初始量化等级减一为所述当前元素的目标量化等级。
可选的,还包括确定所述参考阈值:
确定量化步长除于λ得到的第一数值,λ为固定值;
确定所述当前元素的两倍初始量化等级然后减一得到的第二数值;
确定所述第二数值与所述量化步长相乘得到的第三数值;
确定所述第三数值减去所述当前元素的两倍变换系数得到的第四数值;
确定所述第一数值和所述第四数值相乘得到的第五数值,并将所述第五数值的负数确定为所述参考阈值。
可选的,还包括:
响应于所述当前元素的初始量化等级为零值,跳过该当前元素,并扫描所述当前元素的下一个元素。
可选的,所述相应映射组内的初始量化等级的编码比特数根据所述相应映射组内的上下文和初始量化等级得到;
所述相应映射组内的初始量化等级减一的编码比特数根据所述相应映射组内的上下文和初始量化等级减一得到。
本申请实施例的一个方面又提供了一种率失真优化量化装置,包括:
第一确定模块,用于确定超级块中的多个映射组,每个映射组包括上下文和初始量化等级;其中,所述超级块为待编码视频帧中的编码块单元,所述超级块包括多个元素,所述上下文用于表示与相应映射组关联的元素和多个相邻元素之间的相关性信息;
第二确定模块,用于确定每个映射组的编码比特数差值,编码比特数差值为相应映射组内的初始量化等级的编码比特数和所述相应映射组内的初始量化等级减一的编码比特数之间的差值;及
第三确定模块,用于基于所述每个映射组的编码比特数差值,确定所述超级块中每个元素的目标量化等级。
本申请实施例的一个方面又提供了一种计算机设备,所述计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时用于实现如上述率失真优化量化方法的步骤。
本申请实施例的一个方面又提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行如上述率失真优化量化方法的步骤。
本申请实施例提供的率失真优化量化方法、装置、计算机设备以及计算机可读存储介质,包括如下优点:提前获取超级块的“初始量化等级、上下文和编码比特数差值”映射组,在确定某个元素时,不需要逐个计算这个元素的初始量化等级的编码比特数Rate和这个元素的初始量化等级减一对应的编码比特数Ratelow,只需要根据这个元素的上下文和初始量化等级获取编码比特数差值ΔRate,并根据编码比特数差值ΔRate来判断这个元素是否进行量化等级的调整,从而可以降低RDOQ的计算量,提高编码效率、避免计算资源浪费。
附图说明
图1示意性示出了根据本申请实施例的率失真优化量化方法的应用环境图;
图2示意性示出了根据本申请实施例一的率失真优化量化方法的流程图;
图3示意性示出了步骤S204的子流程图;
图4示意性示出了步骤S204的另一子流程图;
图5示意性示出了步骤S204的另一子流程图;
图6示意性示出了参考阈值的确定步骤;
图7示意性示出了根据本申请实施例二的率失真优化量化装置的框图;
图8示意性示出了根据本申请实施例三的适于实现率失真优化量化方法的计算机设备的硬件架构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,在本申请实施例中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
在本申请的描述中,需要理解的是,步骤前的数字标号并不标识执行步骤的前后顺序,仅用于方便描述本申请及区别每一步骤,因此不能理解为对本申请的限制。
以下为本申请的术语解释:
AV1:是由非营利行业联盟“开放媒体联盟(AOMedia)”开发的开源和免版税视频编解码器。根据使用情况,AV1可以实现比VP9和H.264更高的压缩效率。
上下文(下称,context),表示与相邻元素的关系,用于提供相邻元素的关联信息。
量化,是指将信号的连续取值(或大量可能的离散取值)映射为有限多个离散幅值的过程,是一种多对一的映射。在视频编码过程中,残差信号经过离散余弦变换(DCT)后,变换系数通常会具有较大的范围,因此对变换系数进行量化可以有效地减小信号取值空间,进而获得更好的比特率。但是由于多对一的映射性质,量化过程不可避免地会引入数据损失。量化是视频编码中视频失真的重要来源。
RDOQ(Rate Distortion Optimized Quantization,率失真优化量化):一种系数优化算法。具体的:在视频编码中,失真和比特率都是影响编码性能的因素。其中,失真度反映视频质量(量化是失真的重要来源),比特率反映压缩率。降低失真度一般会增加比特率;降低比特率一般会增加失真度。因此,为平衡失真度和比特率,视频编码需要平衡失真度与比特率,从而引入率失真优化量化(RDOQ)技术,该技术将量化过程与RDO(率失真优化)准则相结合,对于一个变换系数,给定多个可选的量化值,并用RDO准则选出最优的量化值(量化等级)。
为了方便本领域技术人员理解本申请实施例提供的技术方案,下面对相关技术进行说明:
AV1编码流程包括以下几个流程:单元划分、帧内预测、帧间预测、变换、量化等。
单元划分:将图像划分成多个单元,以单元为单位去解码图像。举例来说,可以将图像划分成128x128的单元,也就是最大编码单元(超级块)。超级块可以进一步划为四等份(SPLIT)或者二等份(HORZ、VERT)。四等份的子单元可以进一步划分。
帧内预测:去除帧内的空间冗余,得到像素值比编码单元小的残差单元。
帧间预测:去除帧间的时间冗余,得到像素值比编码单元小的残差单元。
变换:如通过DCT(离散余弦变换)将低频信息和高频信息分离,将残差单元变换为“变换单元(transform unit,TU)”。需要说明的是,也可以采用其他变换方式。
量化:基于量化步长,量化TU中的变换系数以得到量化等级,减少用于表示系数的数据量。
RDOQ:即在不影响视频质量的前提下,对量化得到的量化等级进行微调,节省比特率。
用于AV1编码的其中一种RDOQ流程如下所述:
步骤一:按照扫描顺序(Z字、水平或垂直扫描)依次扫描TU内的变换系数。假设当前扫描位置为scanPos,当前元素的比特数Rate=0,直到处理完该TU内所有元素。
步骤二:获取当前扫描位置scanPos的变换系数,得到初始量化等级level(绝对值),及符号位sign。
步骤三:如果level为0,则当前元素不需要调整,level=0即可,继续处理下一个元素即可。
步骤四:如果level<=2,得到编码BR需要的context(上下文),记为ctx_br,并根据ctx_br和level得到编码BR需要的比特数brrate,执行Rate+=brrate+512,其中512是编码sign需要的比特数。
步骤五:如果3<=level<=14,除了需要编码BR外,还需要得到编码LR的context,记为ctx_lr,并根据ctx_lr和level得到编码LR需要的比特数lrrate,执行Rate+=lrrate。
步骤六:如果level>=15,除了要编码前面的BR和LR以外,还需要根据level得到编码HR的比特数hrrate,执行Rate+=hrrate。
步骤七:得到编码当前元素为level带来的失真度Dist。
假设当前元素对应的变换系数为tqc,则level的反量化系数为dqc,则Dist=(tqc-dqc)*(tqc-dqc)。
步骤八:计算当前元素编码为level的率失真代价RD,RD=λ*Rate+Dist。
其中,λ是率失真优化中的拉格朗日参数,其取值与量化参数QP有对应的函数关系。
步骤九:重复执行上述步骤二至步骤八,假设当前需要被编码的元素为level-1,得到新的比特率Ratelow,新的失真度Distlow,以及新的率失真代价RDlow
步骤十:比较RD和RDlow的大小,如果RDlow<RD,说明将当前元素的绝对值编码为level-1更合适。
如上所述,确定每个元素的level过程中会存在以下问题,从而导致RDOQ的计算量大。
1.RDOQ算法会动态地调整每个元素的level,但计算brrate和lrrate的过程中需要根据相邻元素的最新的level计算context,从而导致RDOQ的计算量很大。
2.RDOQ算法在调整每个元素的level的过程中,需要计算level和level-1两种情况下比特率,也就是说每个scanPos位置都需要计算两次Rate,导致计算加倍。
鉴于以上问题,本申请旨在提供一种用于AV1的率失真优化量化方案,用于解决上述问题。具体的:1.针对超级块的所有元素,使用指令集优化的方式统一计算context,后续即使level更新,也不再计算context,由于使用了指令集优化,可以以此计算多个元素的context,节省时间;2.不再单独计算Rate和Ratelow,而是只需要根据context和level,得到编码比特数差值ΔRate,并比较其与-dequant/λ·((2level-1)·dequant-2tqc)的大小关系,来判断是否调整量化等级。各参数的解释详见后文。
下面提供本申请的示例性应用环境,例如,可以用于如图1所示的计算机设备10000中。
计算机设备10000可以被配置为访问服务器的内容(如,视频)和服务。
计算机设备10000可以包括携带或外接显示面板的电子设备,如移动设备、平板设备、膝上型计算机、工作站、虚拟现实设备,游戏设备、数字流媒体设备、车辆用户终端、智能电视、机顶盒等,也可以包括虚拟化的计算实例。虚拟化的计算实例可以包括虚拟机,如计算机系统,操作系统,服务器等的仿真。
计算机设备10000可以与一个或多个用户相关联。单个用户也可以使用计算机设备10000中的一个或多个来访问服务器。计算机设备10000可以旅行到各种位置并使用不同的网络来访问服务器。计算机设备10000可以包括多个客户端程序,如:视频编解码器,用于提供编码、解码服务。其中,该视频编解码器可以对视频或图像进行编码压缩,以便方便视频或图像的传输或存储。
下面,将在上述示例性应用环境下提供若干个实施例,来说明率失真优化量化方案。
实施例一
需要说明的是,本实施例的执行主体可以是计算机设备10000。
图2示意性示出了根据本申请实施例一的率失真优化量化方法的流程图。
如图2所示,该率失真优化量化方法可以包括步骤S200~S204,其中:
步骤S200,确定超级块中的多个映射组,每个映射组包括context和初始量化等级;其中,所述超级块为待编码视频帧中的编码块单元,所述超级块包括多个元素,所述context用于表示与相应映射组关联的元素和多个相邻元素之间的相关性信息。
超级块(Superblock),为AV1编码定义的编码块单元,其尺寸可以为128x128。一个待编码视频帧可以包括多个超级块。一个超级块可以划分为多个变换单元(TU,transformunit)。其中,每个TU包括多个元素,每个元素对应一个变换系数。示例性,若TU的尺寸为4x4,则对应有4x4个元素,即最多4x4个变换系数。
在示例性应用中,根据待编码视频帧划分多个超级块,每个超级块关联待编码视频帧中的相应区域。待编码视频帧经过单元划分、帧内/帧间预测、变换之后,得到超级块内各个元素的变换系数。然后进行变换系数的量化,以将变换系数转换为初始量化等级。
其一:元素的初始量化等级可以通过如下方式计算得到(以元素A为例):
level=floor(c/Qstep+f);其中:level表示元素A的初始量化等级,c表示元素A的变换系数,Qstep表示量化步长,floor为向下取整函数,f控制舍入关系。需要说明的是,上述计算方式仅是示例性的,还可以通过其他的计算方式得到。
其二:元素的context可以通过如下方式得到(继续以元素A为例):
由于元素A会与它的多个相邻元素具有相关性,因此:可以在TU中使用若干个个先前处理过的元素的量化等级构建context(上下文)。例如,可以根据扫描顺序(Z字、水平或垂直扫描)决定使用哪些元素的量化等级之和作为元素A的context。
需要说明的是,不同的初始量化等级level,编码方式不一样,context也不同。context的具体计算可参考AV1的技术规范,如:若level≤2,确定编码BR(base range,基本范围)需要的context(五个相邻元素的量化等级之和)。若3≤level≤14,确定编码LR(lowrange,低范围)需要的context(三个相邻元素的量化等级之和)。若level≥15,确定编码HR(high range,高范围)需要的context。
以上介绍了如何得到元素的context和初始量化等级。需要说明的是,将元素的变换系数变换为元素的初始量化等级,在一定程度上实现了对待编码视频帧的压缩,但为了进一步节省比特率,本实施例在得到各个元素的初始量化等级之后,还在不影响视频质量的前提下,通过RDOQ对元素的初始量化等级进行微调。
步骤S202,确定每个映射组的编码比特数差值,编码比特数差值为相应映射组内的初始量化等级的编码比特数和所述相应映射组内的初始量化等级减一的编码比特数之间的差值。
RDOQ是在失真和比特率取得平衡,在本实施例中,体现在是否对初始量化等级进行微调。
所述微调,即在一个元素“初始量化等级”和这个元素的“初始量化等级减一”之间进行选择。若用“初始量化等级减一”取代“初始量化等级”所需付出的率失真成本较大,则不进行取代。相反的,若率失真成本较小,则进行取代。
如步骤S202中所述,本实施例判断是否微调的依据为:编码比特数差值。
为得到准确编码比特数差值,所述相应映射组内的初始量化等级的编码比特数根据所述相应映射组内的context和初始量化等级得到,所述相应映射组内的初始量化等级减一的编码比特数根据所述相应映射组内的context和初始量化等级减一得到。
以下提供编码比特数差值的示例:
首先,基于上下文的编码算法,根据context和初始量化等级可以计算编码比特数,从而可以得到包括多组“context、量化等级、编码比特数”的查询表。
其次,以映射组X为例,其对应编码比特数差值△Rate的计算过程为:
(1)根据映射组X的context和初始量化等级(level),计算对应的编码比特数(Rate)。
①若level≤2,获取编码BR需要的context,根据该context和level从上述查询表得到编码比特数brrate。执行Rate+=brrate+512。512是sign(符号)需要的编码比特数。②若3≤level≤14,获取编码LR需要的context,根据该context和level从上述查询表得到编码比特数lrrate。执行Rate+=lrrate。③若level≥15,获取编码HR需要的context,根据该context和level获取编码比特数hrrate。执行Rate+=hrrate。
(2)计算初始量化等级减一(level-1)时的编码比特数(Ratelow)。计算过程可以参考上文。
(3)“初始量化等级”对应的Rate减去“初始量化等级减一”对应的Ratelow,得到△Rate。
基于上述示例性流程,可以得到各个映射组的编码比特数差值△Rate。由于提前计算了各个映射组的编码比特数差值△Rate,而不需要逐个元素的计算“初始量化等级”对应的Rate和“初始量化等级减一”对应的Ratelow,从而节省了计算资源。
作为可选的实施例,所述方法还包括:
将所述每个映射组和对应的编码比特数差值之间的映射关系保存于比特数差值数组中,所述比特数差值数组包括第一比特数差值数组和第二比特数差值数组;其中:
所述第一比特数差值数组,对应于等级低于第一预设值的初始量化等级;
所述第二比特数差值数组,对应于等级在第二预设值和第三预设值之间的初始量化等级。
低于第一预设值,为≤2。
在第二预设值和第三预设值之间,为在3(包括端点)至14(包括端点)之间。
上述实施例通过设置比特数差值数组,为后续的量化等级调整提供查询服务,提高效率。
步骤S204,基于所述每个映射组的编码比特数差值,确定所述超级块中每个元素的目标量化等级。
以元素A为例,用“初始量化等级减一”取代“初始量化等级”所需付出的率失真成本较大,则将元素A的“初始量化等级”作为目标量化成本。相反的,若率失真成本较小,则将元素A的“初始量化等级减一”作为目标量化成本。
本申请实施例提供的率失真优化量化方法,提前获取超级块的“初始量化等级、context和编码比特数差值”映射组,在确定某个元素时,不需要逐个计算这个元素的初始量化等级的编码比特数Rate和这个元素的初始量化等级减一对应的编码比特数Ratelow,只需要根据这个元素的context和初始量化等级获取编码比特数差值ΔRate,并根据编码比特数差值ΔRate来判断这个元素是否进行量化等级的调整,从而可以降低RDOQ的计算量,提高编码效率、避免计算资源浪费。
作为可选的实施例,所述超级块对应多个变换单元(TU)。
如图3所示,所述步骤S204可以通过如下步骤实现:步骤S300,确定变换单元中的各个元素的context;步骤S302,以预设顺序扫描(Z字、水平、垂直扫描)变换单元,当扫描到所述变换单元中的当前元素时,执行如步骤S3021-S3024的操作:步骤S3021,响应于所述当前元素的初始量化等级为非零值,获取所述当前元素的初始量化等级和目标context;其中,所述当前元素为所述变换单元中的其中一个元素;步骤S3022,根据所述当前元素的初始量化等级和所述目标context,从所述映射组中查询出目标映射组;及步骤S3023,根据所述目标映射组中的目标编码比特数差值,确定所述当前元素的目标量化等级。步骤S3024,响应于所述当前元素的初始量化等级为零值,跳过该当前元素,并扫描所述当前元素的下一个元素。该下一个元素作为当前元素重复执行步骤S3021-S3024。相对每扫描到一个元素时,均需要实时单独计算context,本实施例可以使用指令集优化的方式提前统一计算context,后续邻近元素的量化等级更新也不再计算context,由于使用指令集优化计算多个元素的context,节省时间。另外,在本实施例中,扫描到当前元素时,可以即时获取context,快速获取目标编码比特数差值,以便基于目标编码比特数差值判断是否调整量化等级。
在另一可选的实施例中,如图4所示,所述步骤S204可以通过如下步骤实现:步骤S400,确定变换单元中的各个元素的context;步骤S402,将所述各个元素的位置和所述各个元素的context之间的映射关系保存于context数组中;步骤S404,以预设顺序扫描所述变换单元,当扫描到所述变换单元中的当前元素时,执行如下操作:步骤S4041,响应于所述当前元素的初始量化等级为非零值,获取所述当前元素的初始量化等级,并根据所述当前元素的位置,从所述context数组中查询所述目标context;步骤S4042,根据所述当前元素的初始量化等级和所述目标context,从所述映射组中查询出目标映射组;及步骤S4043,根据所述目标映射组中的目标编码比特数差值,确定所述当前元素的目标量化等级。步骤S4044,响应于所述当前元素的初始量化等级为零值,跳过该当前元素,并扫描所述当前元素的下一个元素。该下一个元素作为当前元素重复执行步骤S4041-S4044。相对每扫描到一个元素时,均需要实时单独计算context,本实施例可以使用指令集优化的方式提前统一计算context,后续邻近元素的量化等级更新也不再计算context,由于使用指令集优化计算多个元素的context,节省时间。另外,在本实施例中,扫描到当前元素时,可以查询先前设置的context数组,快速查询出当前元素的context,快速获取目标编码比特数差值,以便基于目标编码比特数差值判断是否调整量化等级。
为了更加容易理解,以下提供一个示例性应用。
一个TU中分布有NxM个元素,N、M为自然数。
①确定TU中所有元素(NxM)的context,并将各元素的位置和context的关系存在context数组中。
扫描TU时,当扫描到当前元素(如元素A)时:
②获取元素A的变换系数qcoeff和初始量化等级level(绝对值)。
③判断元素A的level是否为0。
④若元素A的level为0,则元素A的量化等级不需要调整,继续处理下一个元素。
⑤若元素A的level不为0,则进一步判断:是否对元素A的量化等级进行调整。由于提前确定了各个映射组(context-初始量化等级)的编码比特数差值,因此根据元素A的level和元素A的context可以快速定位到元素A的编码比特数差值,进而根据元素A的编码比特数差值来判定是否进行量化等级的调整。
在可选的实施例中,如图5所示,所述步骤S204“基于所述每个映射组的编码比特数差值,确定所述超级块中每个元素的目标量化等级”可以包括:步骤S500,响应于所述目标编码比特数差值不大于参考阈值,确定所述当前元素的初始量化等级为所述当前元素的目标量化等级;步骤S502,响应于所述目标编码比特数差值大于所述参考阈值,确定所述当前元素的初始量化等级减一为所述当前元素的目标量化等级。由于不需针对每个元素单独计算Rate和Ratelow,而是只需要根据context和level,快速获取编码比特数差值ΔRate(如,目标编码比特数差值),根据目标编码比特数差值和参考阈值的比较即可确定是否调整量化等级,从而有效地降低了RDOQ的计算量,实现了资源节约。
在可选的实施例中,为了节省计算资源和保障判定是否调整量化等级的准确性,如图6所示,所述方法包括确定所述参考阈值的步骤:步骤S600,确定量化步长除于λ得到的第一数值,λ为固定值;步骤S602,确定所述当前元素的两倍初始量化等级然后减一得到的第二数值;步骤S604,确定所述第二数值与所述量化步长相乘得到的第三数值;步骤S606,确定所述第三数值减去所述当前元素的两倍变换系数得到的第四数值;步骤S608,确定所述第一数值和所述第四数值相乘得到的第五数值,并将所述第五数值的负数确定为所述参考阈值。
即,所述参考阈值为:-dequant/λ·(((2level)-1)·dequant-2tqc)。其中,dequant为量化步长,λ为拉格朗日参数,·为乘法,level为初始量化等级,tqc为当前元素的变换系数。
若目标编码比特数差值>-dequant/λ·(((2level)-1)·dequant-2tqc),目标量化等级为当前元素的初始量化等级减一。否则,目标量化等级为当前元素的初始量化等级。
以下为上述公式的推导过程:
RD=λ·Rate+Dist
RDlow=λ·Ratelow+Distlow
RDlow<RD
λ·Ratelow+Distlow<λ·Rate+Dist
λ·(Rate-Ratelow)>Distlow-Dist
λ·ΔRate>(tqc-dqlow)2-(tqc-dq)2
λ·ΔRate>(dqlow-dq)(dqlow+dq-2tqc)
∵dq=level·dequant,dqlow=(level-1)·dequant
∴λ·ΔRate>-dequant·((2level-1)·dequant-2tqc)
Figure BDA0003673968220000181
其中:
RD为当前元素的初始量化等级对应的率失真成本;
RDlow为当前元素的初始量化等级减一对应的率失真成本;
Rate为当前元素的初始量化等级对应的编码比特数;
Ratelow为当前元素的初始量化等级减一对应的编码比特数;
λ为拉格朗日参数;
Dist为当前元素的初始量化等级对应的失真度;
Distlow为当前元素的初始量化等级减一对应的失真度;
tqc为当前元素的变换系数;
dq为当前元素的初始量化等级对应的反量化系数;
dqlow为当前元素的初始量化等级减一对应的反量化系数;
level为当前元素的初始量化等级;
dequant为量化步长;
△Rate为比特数差值;
·为乘号;
∴表示“因为”;
∵表示“所以”。
以上提供了RDOQ level的调整细节和原理。实验证明,可以使得比特率在0.3%的损失的情况下,整体编码时间加速20%,大大降低直播点播的时间开销。
实施例二
图7示意性示出了根据本申请实施例二的率失真优化量化装置的框图。该率失真优化量化装置可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本申请实施例。本申请实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,以下描述将具体介绍本实施例中各程序模块的功能。如图7所示,该率失真优化量化装置700可以包括第一确定模块710、第二确定模块720、以及第三确定模块730,其中:
第一确定模块710,用于确定超级块中的多个映射组,每个映射组包括context和初始量化等级;其中,所述超级块为待编码视频帧中的编码块单元,所述超级块包括多个元素,所述上下文用于表示与相应映射组关联的元素和多个相邻元素之间的相关性信息;
第二确定模块720,用于确定每个映射组的编码比特数差值,编码比特数差值为相应映射组内的初始量化等级的编码比特数和所述相应映射组内的初始量化等级减一的编码比特数之间的差值;及
第三确定模块730,用于基于所述每个映射组的编码比特数差值,确定所述超级块中每个元素的目标量化等级。
作为可选的实施例,所述率失真优化量化装置700还包括第一保存模块(未标识),用于:
将所述每个映射组和对应的编码比特数差值之间的映射关系保存于比特数差值数组中,所述比特数差值数组包括第一比特数差值数组和第二比特数差值数组;其中:
所述第一比特数差值数组,对应于等级低于第一预设值的初始量化等级;
所述第二比特数差值数组,对应于等级在第二预设值和第三预设值之间的初始量化等级。
作为可选的实施例,所述超级块对应多个变换单元;
所述第三确定模块730,还用于:
确定变换单元中的各个元素的context;
以预设顺序扫描所述变换单元,当扫描到所述变换单元中的当前元素时,执行如下操作:
响应于所述当前元素的初始量化等级为非零值,获取所述当前元素的初始量化等级和目标context;其中,所述当前元素为所述变换单元中的其中一个元素;
根据所述当前元素的初始量化等级和所述目标context,从所述映射组中查询出目标映射组;及
根据所述目标映射组中的目标编码比特数差值,确定所述当前元素的目标量化等级。
作为可选的实施例,所述率失真优化量化装置700还包括第二保存模块(未标识),用于:
将所述各个元素的位置和所述各个元素的context之间的映射关系保存于context数组中;
所述第三确定模块730还用于:根据所述当前元素的位置,从所述context数组中查询所述目标context。
作为可选的实施例,所述第三确定模块730还用于:
响应于所述目标编码比特数差值不大于参考阈值,确定所述当前元素的初始量化等级为所述当前元素的目标量化等级;
响应于所述目标编码比特数差值大于所述参考阈值,确定所述当前元素的初始量化等级减一为所述当前元素的目标量化等级。
作为可选的实施例,所述率失真优化量化装置700还包括第四确定模块(未标识),用于:
确定量化步长除于λ得到的第一数值,λ为固定值;
确定所述当前元素的两倍初始量化等级然后减一得到的第二数值;
确定所述第二数值与所述量化步长相乘得到的第三数值;
确定所述第三数值减去所述当前元素的两倍变换系数得到的第四数值;
确定所述第一数值和所述第四数值相乘得到的第五数值,并将所述第五数值的负数确定为所述参考阈值。
作为可选的实施例,所述第三确定模块730还用于:
响应于所述当前元素的初始量化等级为零值,跳过该当前元素,并扫描所述当前元素的下一个元素。
作为可选的实施例,所述相应映射组内的初始量化等级的编码比特数根据所述相应映射组内的上下文和初始量化等级得到;所述相应映射组内的初始量化等级减一的编码比特数根据所述相应映射组内的上下文和初始量化等级减一得到。
实施例三
图8示意性示出了根据本申请实施例三的适于实现率失真优化量化方法的计算机设备10000的硬件架构示意图。计算机设备10000是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。例如,可以是智能手机、平板电脑、PC、虚拟现实设备等。如图8所示,计算机设备10000至少包括但不限于:可通过系统总线相互通信链接存储器10010、处理器10020、网络接口10030。其中:
存储器10010至少包括一种类型的计算机可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器10010可以是计算机设备10000的内部存储模块,例如该计算机设备10000的硬盘或内存。在另一些实施例中,存储器10010也可以是计算机设备10000的外部存储设备,例如该计算机设备10000上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,存储器10010还可以既包括计算机设备10000的内部存储模块也包括其外部存储设备。本实施例中,存储器10010通常用于存储安装于计算机设备10000的操作系统和各类应用软件,例如率失真优化量化方法的程序代码等。此外,存储器10010还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器10020在一些实施例中可以是中央处理器(Central Processing Unit,简称为CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器10020通常用于控制计算机设备10000的总体操作,例如执行与计算机设备10000进行数据交互或者通信相关的控制和处理等。本实施例中,处理器10020用于运行存储器10010中存储的程序代码或者处理数据。
网络接口10030可包括无线网络接口或有线网络接口,该网络接口10030通常用于在计算机设备10000与其他计算机设备之间建立通信链接。例如,网络接口10030用于通过网络将计算机设备10000与外部用户终端相连,在计算机设备10000与外部用户终端之间的建立数据传输通道和通信链接等。网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communication,简称为GSM)、宽带码分多址(Wideband Code Division Multiple Access,简称为WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要指出的是,图8仅示出了具有部件10010-10030的计算机设备,但是应该理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
在本实施例中,存储于存储器10010中的率失真优化量化方法还可以被分割为一个或者多个程序模块,并由一个或多个处理器(本实施例为处理器10020)所执行,以完成本申请实施例。
实施例四
本申请还提供一种计算机可读存储介质,计算机可读存储介质其上存储有计算机程序,计算机程序被处理器执行时实现实施例一、二或三中的率失真优化量化方法的步骤。
本实施例中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,计算机可读存储介质可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,计算机可读存储介质也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,计算机可读存储介质还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,计算机可读存储介质通常用于存储安装于计算机设备的操作系统和各类应用软件,例如实施例中率失真优化量化方法的程序代码等。此外,计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的各类数据。
显然,本领域的技术人员应该明白,上述的本申请实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请实施例不限制于任何特定的硬件和软件结合。
需要说明的是,以上仅为本申请的优选实施例,并非因此限制本申请的专利保护范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (11)

1.一种率失真优化量化方法,其特征在于,包括:
确定超级块中的多个映射组,每个映射组包括上下文和初始量化等级;其中,所述超级块为待编码视频帧中的编码块单元,所述超级块包括多个元素,所述上下文用于表示与相应映射组关联的元素和多个相邻元素之间的相关性信息;
确定每个映射组的编码比特数差值,编码比特数差值为相应映射组内的初始量化等级的编码比特数和所述相应映射组内的初始量化等级减一的编码比特数之间的差值;及
基于所述每个映射组的编码比特数差值,确定所述超级块中每个元素的目标量化等级。
2.根据权利要求1所述的率失真优化量化方法,其特征在于,还包括:
将所述每个映射组和对应的编码比特数差值之间的映射关系保存于比特数差值数组中,所述比特数差值数组包括第一比特数差值数组和第二比特数差值数组;其中:
所述第一比特数差值数组,对应于等级低于第一预设值的初始量化等级;
所述第二比特数差值数组,对应于等级在第二预设值和第三预设值之间的初始量化等级。
3.根据权利要求1或2所述的率失真优化量化方法,其特征在于,所述超级块对应多个变换单元;
所述基于所述每个映射组的编码比特数差值,确定所述超级块中每个元素的目标量化等级,包括:
确定变换单元中的各个元素的上下文;
以预设顺序扫描所述变换单元,当扫描到所述变换单元中的当前元素时,执行如下操作:
响应于所述当前元素的初始量化等级为非零值,获取所述当前元素的初始量化等级和目标上下文;其中,所述当前元素为所述变换单元中的其中一个元素;
根据所述当前元素的初始量化等级和所述目标上下文,从所述映射组中查询出目标映射组;及
根据所述目标映射组中的目标编码比特数差值,确定所述当前元素的目标量化等级。
4.根据权利要求3所述的率失真优化量化方法,其特征在于,所述方法还包括:将所述各个元素的位置和所述各个元素的上下文之间的映射关系保存于上下文数组中;
所述响应于所述当前元素的初始量化等级为非零值,获取所述当前元素的初始量化等级和目标上下文,包括:根据所述当前元素的位置,从所述上下文数组中查询所述目标上下文。
5.根据权利要求3所述的率失真优化量化方法,其特征在于,所述根据所述目标映射组中的目标编码比特数差值,确定所述当前元素的目标量化等级,包括:
响应于所述目标编码比特数差值不大于参考阈值,确定所述当前元素的初始量化等级为所述当前元素的目标量化等级;
响应于所述目标编码比特数差值大于所述参考阈值,确定所述当前元素的初始量化等级减一为所述当前元素的目标量化等级。
6.根据权利要求5所述的率失真优化量化方法,其特征在于,还包括确定所述参考阈值:
确定量化步长除于λ得到的第一数值,λ为固定值;
确定所述当前元素的两倍初始量化等级然后减一得到的第二数值;
确定所述第二数值与所述量化步长相乘得到的第三数值;
确定所述第三数值减去所述当前元素的两倍变换系数得到的第四数值;
确定所述第一数值和所述第四数值相乘得到的第五数值,并将所述第五数值的负数确定为所述参考阈值。
7.根据权利要求3所述的率失真优化量化方法,其特征在于,还包括:
响应于所述当前元素的初始量化等级为零值,跳过该当前元素,并扫描所述当前元素的下一个元素。
8.根据权利要求1至7任意一项所述的率失真优化量化方法,其特征在于:
所述相应映射组内的初始量化等级的编码比特数根据所述相应映射组内的上下文和初始量化等级得到;
所述相应映射组内的初始量化等级减一的编码比特数根据所述相应映射组内的上下文和初始量化等级减一得到。
9.一种率失真优化量化装置,其特征在于,包括:
第一确定模块,用于确定超级块中的多个映射组,每个映射组包括上下文和初始量化等级;其中,所述超级块为待编码视频帧中的编码块单元,所述超级块包括多个元素,所述上下文用于表示与相应映射组关联的元素和多个相邻元素之间的相关性信息;
第二确定模块,用于确定每个映射组的编码比特数差值,编码比特数差值为相应映射组内的初始量化等级的编码比特数和所述相应映射组内的初始量化等级减一的编码比特数之间的差值;及
第三确定模块,用于基于所述每个映射组的编码比特数差值,确定所述超级块中每个元素的目标量化等级。
10.一种计算机设备,所述计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时用于实现权利要求1至8中任意一项所述的率失真优化量化方法的步骤。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行权利要求1至8中任意一项所述的率失真优化量化方法的步骤。
CN202210617816.3A 2022-06-01 2022-06-01 率失真优化量化方法及装置 Pending CN115022636A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210617816.3A CN115022636A (zh) 2022-06-01 2022-06-01 率失真优化量化方法及装置
PCT/CN2022/143806 WO2023231414A1 (zh) 2022-06-01 2022-12-30 率失真优化量化方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210617816.3A CN115022636A (zh) 2022-06-01 2022-06-01 率失真优化量化方法及装置

Publications (1)

Publication Number Publication Date
CN115022636A true CN115022636A (zh) 2022-09-06

Family

ID=83073176

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210617816.3A Pending CN115022636A (zh) 2022-06-01 2022-06-01 率失真优化量化方法及装置

Country Status (2)

Country Link
CN (1) CN115022636A (zh)
WO (1) WO2023231414A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023231414A1 (zh) * 2022-06-01 2023-12-07 上海哔哩哔哩科技有限公司 率失真优化量化方法及装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2500583B2 (ja) * 1993-03-17 1996-05-29 日本電気株式会社 画像信号の量子化特性制御方法及び画像信号圧縮符号化装置
US10085024B2 (en) * 2012-04-13 2018-09-25 Qualcomm Incorporated Lookup table for rate distortion optimized quantization
US10666937B2 (en) * 2016-12-21 2020-05-26 Qualcomm Incorporated Low-complexity sign prediction for video coding
US10547839B2 (en) * 2017-07-17 2020-01-28 Intel Corporation Block level rate distortion optimized quantization
CN115022636A (zh) * 2022-06-01 2022-09-06 上海哔哩哔哩科技有限公司 率失真优化量化方法及装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023231414A1 (zh) * 2022-06-01 2023-12-07 上海哔哩哔哩科技有限公司 率失真优化量化方法及装置

Also Published As

Publication number Publication date
WO2023231414A1 (zh) 2023-12-07

Similar Documents

Publication Publication Date Title
CN101049025B (zh) 根据单个输入产生多个代码转换输出的一种方法和系统
US6587508B1 (en) Apparatus, method and computer program product for transcoding a coded moving picture sequence
US10757428B2 (en) Luma and chroma reshaping of HDR video encoding
US5768436A (en) Device and method for coding video pictures
US20230024834A1 (en) Video decoding method, video encoding method, and related apparatuses
CN112369025A (zh) 基于上下文的二进制算术编码和解码
CN111953966B (zh) 一种编码测试的方法、装置、服务器和存储介质
US20240080500A1 (en) Methods, systems, and apparatuses for processing video by adaptive rate distortion optimization
CN111556318A (zh) 数据传输方法及装置
EP3706421A1 (en) Method and apparatus for video encoding and decoding based on affine motion compensation
JP2008283402A (ja) 画像処理装置およびその方法
CN115022636A (zh) 率失真优化量化方法及装置
JP2018078409A (ja) イントラ予測器、画像符号化装置、画像復号装置およびプログラム
CN116489376A (zh) 用于视频编码的方法和装置及用于视频解码的方法和装置
US20230056211A1 (en) Video encoding method and apparatus, video decoding method and apparatus, computer program product, computer-readable storage medium, and electronic device
CN108805943B (zh) 图片转码方法和装置
JPH05227520A (ja) 画像圧縮符号化装置
CN112106365A (zh) 用于视频编码和解码中的自适应上下文建模的方法和设备
JP2002185966A (ja) 映像符号化装置
WO2021263251A1 (en) State transition for dependent quantization in video coding
JP2014003587A (ja) 画像符号化装置及びその方法
CN112422964B (zh) 一种渐进式编码方法及装置
US11736730B2 (en) Systems, methods, and apparatuses for video processing
CN102271247B (zh) 一种编码码率调整方法和装置
CN116471407A (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