CN117579820B - 编码参数确定方法、装置、电子设备以及存储介质 - Google Patents
编码参数确定方法、装置、电子设备以及存储介质 Download PDFInfo
- Publication number
- CN117579820B CN117579820B CN202410052407.2A CN202410052407A CN117579820B CN 117579820 B CN117579820 B CN 117579820B CN 202410052407 A CN202410052407 A CN 202410052407A CN 117579820 B CN117579820 B CN 117579820B
- Authority
- CN
- China
- Prior art keywords
- decoding
- parameter
- parameters
- determining
- encoding
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 112
- 230000033001 locomotion Effects 0.000 claims description 101
- 238000004364 calculation method Methods 0.000 claims description 50
- 238000005192 partition Methods 0.000 claims description 50
- 238000013139 quantization Methods 0.000 claims description 42
- 239000013598 vector Substances 0.000 claims description 40
- 238000004458 analytical method Methods 0.000 claims description 29
- 238000011156 evaluation Methods 0.000 claims description 15
- 238000013441 quality evaluation Methods 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 13
- 230000008569 process Effects 0.000 description 48
- 238000012545 processing Methods 0.000 description 25
- 230000006835 compression Effects 0.000 description 24
- 238000007906 compression Methods 0.000 description 24
- 238000004422 calculation algorithm Methods 0.000 description 23
- 238000010586 diagram Methods 0.000 description 20
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 18
- 230000000694 effects Effects 0.000 description 15
- 230000009466 transformation Effects 0.000 description 14
- 238000001514 detection method Methods 0.000 description 13
- 238000001914 filtration Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 12
- 238000004891 communication Methods 0.000 description 10
- 238000005070 sampling Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 5
- 238000005457 optimization Methods 0.000 description 5
- 238000009877 rendering Methods 0.000 description 5
- 230000001131 transforming effect Effects 0.000 description 5
- 239000011159 matrix material Substances 0.000 description 4
- 238000007781 pre-processing Methods 0.000 description 4
- 238000001303 quality assessment method Methods 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 229910003460 diamond Inorganic materials 0.000 description 2
- 239000010432 diamond Substances 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 101150114515 CTBS gene Proteins 0.000 description 1
- 241000023320 Luma <angiosperm> Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000012854 evaluation process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000013138 pruning Methods 0.000 description 1
- 238000012958 reprocessing Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000009966 trimming 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/134—Methods 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
-
- 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/134—Methods 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/156—Availability of hardware or computational resources, e.g. encoding based on power-saving criteria
-
- 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/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请实施例提供了一种编码参数确定方法、装置、电子设备以及存储介质,该方法涉及视频编解码技术领域,该方法包括:解析码流以获取待解码图像和解码信息;利用该解码信息对该待解码图像进行解码,得到重建图像;基于该解码信息中的解码参数,确定用于对该重建图像重新进行编码的编码参数。该方法能够提升编码内核的输出帧的稳定性以及降低服务器的部署成本。
Description
技术领域
本申请涉及编解码技术领域,并且更具体地,涉及一种编码参数确定方法、装置、电子设备以及存储介质。
背景技术
直播、实时通信(Real-Time Communication,RTC)、云渲染、云桌面等场景对视频编码内核的输出帧的稳定性都有比较高要求。
通常情况下,视频编码内核消耗的计算资源跟视频画面的复杂性相关。
例如,静态、运动纹理变化小的画面比较容易压缩,消耗的计算资源相对比较少;而对于运动纹理比较复杂的画面压缩,其消耗计算资源比较大,如果压缩视频的画面纹理比较复杂,场景切换比较频繁,则视频编码压缩消耗的计算资源会产生比较大的波动。
然而,计算资源波动比较大时,会导致服务器的中央处理器(Central ProcessingUnit,CPU)的消耗波动比较大,而CPU消耗波动比较大时,不仅会影响输出帧的稳定性,尤其是对于直播、RTC、云渲染、云桌面这类场景,还会增加服务器的部署成本,其原因在于:在计算资源编排调度方面就要预留比较多的计算资源作为缓冲(buffer)空间以应对视频画面场景切换时的计算资源波动,比如一台服务器同时跑10路直播视频编码流,调度时CPU就要尽量控制在50%以内,防止这10路视频编码流的画面同时切换到纹理复杂场景时由于计算资源消耗同时向上波动出现服务器计算资源过载的情况,以保证视频编码的输出帧的稳定性。
因此,如何减小计算资源的消耗波动,进而提升编码内核的输出帧的稳定性以及降低服务器的部署成本是本领域亟需解决的技术问题。
发明内容
本申请实施例提供了一种编码参数确定方法、装置、电子设备以及存储介质,能够提升编码内核的输出帧的稳定性以及降低服务器的部署成本。
第一方面,本申请实施例提供了一种编码参数确定方法,包括:
解析码流以获取待解码图像和解码信息;
利用该解码信息对该待解码图像进行解码,得到重建图像;
基于该解码信息中的解码参数,确定用于对该重建图像重新进行编码的编码参数。
第二方面,本申请实施例提供了一种编码参数确定装置,包括:
解析单元,用于解析码流以获取待解码图像和解码信息;
解码单元,用于利用该解码信息对该待解码图像进行解码,得到重建图像;
确定单元,用于基于该解码信息中的解码参数,确定用于对该重建图像重新进行编码的编码参数。
第三方面,本申请实施例提供了一种电子设备,包括:
处理器,适于实现计算机指令;以及,
计算机可读存储介质,计算机可读存储介质存储有计算机指令,计算机指令适于由处理器加载并执行上文涉及的第一方面的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机指令,该计算机指令被计算机设备的处理器读取并执行时,使得计算机设备执行上文涉及的第一方面的方法。
第五方面,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上文涉及的第一方面的方法。
第六方面,本申请实施例提供了一种码流,该码流如上文涉及的第一方面所述的方法生成的码流。
对于本申请提供的编码参数确定方法,该方法包括:解析码流以获取待解码图像和解码信息;利用该解码信息对该待解码图像进行解码,得到重建图像;基于该解码信息中的解码参数,确定用于对该重建图像重新进行编码的编码参数。相当于,确定该重建图像的编码参数时,通过复用该解码信息中的解码参数,能够降低该编码参数的计算复杂度,进而能够提升编码内核的输出帧的稳定性以及降低服务器的部署成本。
值得注意的是,通常情况下,编码器在应用时会设定好编码相关的一些处理算法和配置(如编码复杂度、码率大小、编码成本估算(lookahead)的参考帧个数、关键图像组(KEY GOP)大小、是否开启B帧、编码码控方式(即控制编码器输出码流的大小的方式)、运动估计的相关算法、运动补偿的相关算法、是否启用预估计中的相关算法等)。这些编码内核参数设置好以后,后面视频源输入编码时,编码相关的一些处理算法和配置就不会自适应改变,这就相当于,计算资源消耗较高的用于确定编码参数的流程(例如编码单元划分、运动估计、运动补偿、变换、预处理等流程)等也会是固定的流程。本实施例中,通过解码信息中的解码参数确定编码参数,避免了采用计算资源消耗较高的算法和配置确定编码参数,由此,能够降低该编码参数的计算复杂度,进而能够提升编码内核的输出帧的稳定性以及降低服务器的部署成本。
需要说明的是,在其他可替代实施例中,针对该重建图像,也可以基于预分析过程中的分析结果(例如,画面场景纹理复杂性的分析结果或画面场景分析的分析结果)或检测结果(例如画面场景切换检测的检测结果或画面纹理检测的检测结果),将计算资源消耗比较大的用于确定编码参数的流程(例如编码单元划分、运动估计、运动补偿、变换、预处理等流程)自适应裁剪,以在损失一定DB-rate的情况下降低视频编码压缩消耗的计算资源。
但是,这类解决方案有一个很大的不足就是没有复用重建图像的解码信息,一方面,由于预分析是利用已编码图像进行的分析,其分析结果或检测结果不够及时,会存在几个图像组(group of pictures,GOP)的延迟,降低了参考效果,另一方面,如果确定编码参数的流程自适应裁剪的过多,会对视频画面的画质产生比较大的影响,画面效果不是非常稳定,降低了编码性能。本实施例中,通过考虑复用该解码信息中的解码参数,能够降低该编码参数的计算复杂度,进而能够提升编码内核的输出帧的稳定性以及降低服务器的部署成本。此外,由于该解码信息是用于解码该重建图像的实时信息,可以保证该解码参数的参考效果。另外,由于可以基于实际需求,自适应确定是否复用该解码信息中的解码参数来确定该编码参数,不仅有利于控制以视频编码压缩消耗的计算资源的波动幅度,还能够兼顾和平衡计算资源的消耗以及编码效果,进而提升了编码器的编码性能。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例涉及的一种视频编解码系统的示意性框图。
图2是本申请实施例涉及的视频编码器的示意性框图。
图3是本申请提供的编码树单元和编码单元的关系的示意性结构图。
图4是本申请实施例涉及的视频解码器的示意性框图。
图5是本申请实施例涉及的PU与TU的分割模式的示意图。
图6是本申请实施例涉及的运动估计的原理示意图。
图7是本申请实施例涉及的运动补偿的原理示意图。
图8是本申请实施例提供的编码参数确定方法的示意性流程图。
图9是本申请实施例提供的编码参数确定方法的另一示意性流程图。
图10是本申请实施例提供的在编码内核中使用解码参数的示意图。
图11是本申请实施例提供的编码参数确定装置的示意性框图。
图12是本申请实施例提供的电子设备的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请提供的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请提供的方案涉及数字压缩技术领域。
其中,数字视频压缩技术主要是将庞大的数字影像视频数据进行压缩,以便于传输以及存储等。
本申请提供的方案可应用数字视频编码技术领域。
其中,数字视频编码技术领域包括但不限于以下中的至少一项:图像编解码领域、视频编解码领域、硬件视频编解码领域、专用电路视频编解码领域以及实时视频编解码领域。此外,本申请提供的方案可结合到以下标准:音视频编码标准(Audio Video codingStandard,AVS)、第二代AVS标准(AVS2)或第三代AVS标准(AVS3)。例如,包括但不限于:H.264/音视频编码(Audio Video coding,AVC)标准、H.265/高效视频编码(HighEfficiency Video Coding,HEVC)标准以及H.266/多功能视频编码(Versatile VideoCoding,VVC)标准。另外,本申请提供的方案可以用于对图像进行有损压缩(lossycompression),也可以用于对图像进行无损压缩(lossless compression)。其中,该无损压缩可以是视觉无损压缩(visually lossless compression),也可以是数学无损压缩(mathematically lossless compression)。
为便于理解本申请提供的技术方案,下面对相关术语进行说明。
立即解码刷新(Instantaneous Decoding Refresh,IDR)帧:在视频编码算法中,图像以序列为单位进行组织。一个序列的第一个图像叫做IDR帧,IDR图像都是I帧。IDR帧也称为IDR图像。
I帧:IDR帧会导致参考帧列表(Decoded Picture Buffer,DPB)清空,而I帧不会。IDR图像一定是I帧,但I帧不一定是IDR帧。一个序列中可以有很多的I帧,I帧之后的帧可以引用I帧之间的帧做运动参考。
P帧:前向预测编码帧。P帧表示的是这一帧跟之前的一个关键帧(或P帧)的差别,解码时需要用之前缓存的画面叠加上本帧定义的差别,生成最终画面。
B帧:双向预测内插编码帧。B帧是双向差别帧,也就是B帧记录的是本帧与前后帧的差别,B帧可以作其它B帧的参考帧,也可以不作为其它B帧参考帧。
量化参数(Quantization Parameter,QP):码率控制算法主要是通过调整离散余弦变换的量化参数大小输出目标码率。实际上量化参数(QP)反映了空间细节压缩情况,如QP小,大部分的细节都会被保留;QP增大,一些细节丢失,码率降低,图像失真加强和质量下降。也就是说,QP和码率成反比的关系,而且随着视频源复杂度的提高,这种反比关系会更明显。
帧内预测:预测块是基于已编码重建块和当前块形成的块。
帧间预测:主要包括运动估计(运动搜索方法、运动估计准则、亚像素插值和运动矢量估计)和运动补偿,是图像组(Group Of Pictures,GOP)粒度时序上的参考和预测插值补偿。
绝对差和(Sum of Absolute Difference,SAD):即绝对差值的和。
绝对误差和(Sum of Absolute Error,SAE):即绝对误差的和。
绝对变换差异之和(Sum of Absolute Transformed Difference,SATD):例如哈达玛(hadamard)变换后再绝对值求和。
运动补偿(Motion Compensation,MC):通过预测图像中物体的运动轨迹并补偿其位移,使得连续图像之间的数据量得以减少。
运动估计(Motion Estimation,ME):通过寻找相邻图像之间的相关性以及计算块之间的运动矢量,去除时间维度的冗余信息,进一步提高压缩效率。
预分析(Lookahead):作用是对尚未分析的图像进行编码成本估算,在当前图像前缓存一定配置长度的已经编码完的重建图像,给当前图像做帧间预测参考评估。换言之,在正式编码图像数据之前,提前分析一定数量的图像,应用预分析数据来指导随后的编码过程。
BD-rate:评价视频编码算法性能的主要参数之一,表示新算法编码的视频相对于原来的算法在码率和峰值信噪比(Peak Signal-to-Noise Ratio,PSNR)上的变化情况
图像组(group of pictures,GOP):两个I帧之间的间隔。
最小图像组(mini-GOP):在一个GOP内,两个P帧之间会有一定数据B帧,两个P帧之间的间隔即一个mini-GOP。
率失真优化( Rate Distortion Optimation,RDO):编码过程中有许多的模式可以选择,有些模式的图像失真较小,但是码率却很大;有些模式的图像失真较大,但是码率却很小。基于此可以在不超过某最大码率的情况下,失真达到最小。在视频编码的率失真优化中,可以将最大码率作为约束条件,失真作为优化目标,然后使用拉格朗日乘子法来寻找最优的编码参数。
宏块:编码的基本单位,一个图像首先要划分成宏块才能进行处理。例如,可以按照一定的大小为单位(H.264中按照16×16的大小)将图像划分为宏块,编码过程以块(例如宏块或对宏块划分得到的块)为单位进行编码。
参考图像:在视频编解码中,一种作为其他图像的参考数据,用于其他图像在编码/解码过程中获取图像间的参考数据的重建图像。
运动矢量(Motion Vector,MV):一个二维向量,用于描述编码器中一个编码块从其所在位置运动到另一个位置时,所发生的位置偏移。
运动搜索(Motion Search,MS):为当前编码块在参考图像中按照某种算法寻找最优匹配块的过程。
预测运动矢量(Motion Vector Prediction,MVP):根据已有的信息,对当前MV按照一定的算法进行的预测。
需要说明的是,本申请的实施方式部分使用的术语仅用于对本申请的实施例进行解释,而非旨在限定本申请。
例如,本文中的术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。术语“至少一项”,仅仅是一种描述列举对象的组合关系,表示可以存在一项或多项,例如,以下中的至少一项:A、B、C,可以表示以下几种组合情况:单独存在A,单独存在B,单独存在C,同时存在A和B,同时存在A和C,同时存在B和C,同时存在A、B以及C。术语“多个”是指两个或两个以上。字符“/”,一般表示前后关联对象是一种“或”的关系。
再如,术语“对应”可表示两者之间具有直接对应或间接对应的关系,也可以表示两者之间具有关联关系,也可以是指示与被指示、配置与被配置等关系。术语“指示”可以是直接指示,也可以是间接指示,还可以是表示具有关联关系。举例说明,A指示B,可以表示A直接指示B,例如B可以通过A获取;也可以表示A间接指示B,例如A指示C,B可以通过C获取;还可以表示A和B之间具有关联关系。术语“预定义”或“预配置”可以在设备中预先保存相应的代码、表格或其他可用于指示的相关信息,也可以是指由协议约定。“协议”可以指本领域的标准协议。术语“在……时”可以被解释成为“如果”或“若”或“当……时”或“响应于”等类似描述。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”等类似描述。术语“第一”、“第二”、“第三”、“第四”、“第A”、“第B”等是用于区别不同对象,而不是用于描述特定顺序。术语“包括”和“具有”以及它们任何变形,意图在于覆盖不(或非)排他的包含。其中,数字视频压缩技术主要是将庞大的数字影像视频数据进行压缩,以便于传输以及存储等。
为了便于理解,首先结合图1对本申请实施例涉及的视频编解码系统进行介绍。
图1为本申请实施例涉及的一种视频编解码系统的示意性框图。
如图1所示,该视频编解码系统100包含编码设备110和解码设备120。
其中,编码设备110用于对视频数据进行编码(可以理解成压缩)产生码流,并将码流传输给解码设备120。解码设备120对编码设备110编码产生的码流进行解码,得到解码后的视频数据。
编码设备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可以包含调制器/解调器(调制解调器)和/或发射器。视频编码器112经由输出接口113将编码后的视频数据直接传输到解码设备120。编码后的视频数据还可存储于存储介质或存储服务器上,以供解码设备120后续读取。
编码设备110除了包括视频编码器112和输入接口113外,还可以包括视频源111。
视频源111可包含视频采集装置(例如,视频相机)、视频存档、视频输入接口、计算机图形系统中的至少一个,其中,视频输入接口用于从视频内容提供者处接收视频数据,计算机图形系统用于产生视频数据。视频编码器112对来自视频源111的视频数据进行编码,产生码流。视频数据可包括一个或多个图像(picture)或图像序列(sequence ofpictures)。码流以比特流的形式包含了图像或图像序列的编码信息。编码信息可以包含编码图像数据及相关联数据。相关联数据可包含序列参数集(sequence parameter set,SPS)、图像参数集(picture parameter set,PPS)及其它语法结构。SPS可含有应用于一个或多个序列的参数。PPS可含有应用于一个或多个图像的参数。语法结构是指:码流中以指定次序排列的零个或多个语法元素的集合。
解码设备120包含输入接口121和视频解码器122。输入接口121可包含接收器及/或调制解调器。
解码设备120除包括输入接口121和视频解码器122外,还可以包括显示装置123。
其中,输入接口121可通过信道130接收编码后的视频数据。视频解码器122用于对编码后的视频数据进行解码,得到解码后的视频数据,并将解码后的视频数据传输到显示装置123。显示装置123显示解码后的视频数据。显示装置123可与解码设备120整合或在解码设备120外部。显示装置123可包括多种显示装置,例如液晶显示器(LCD)、等离子体显示器、有机发光二极管(OLED)显示器或其它类型的显示装置。
应当理解,图1仅为本申请的示例,不应理解为对本申请的显示,也即是说,本申请实施例的技术方案不限于图1所示的系统框架,例如本申请的技术还可以应用于单侧的视频编码或者单侧的视频解码。
下面对本申请实施例涉及的视频编码框架进行介绍。
图2是本申请实施例涉及的视频编码器200的示意性框图。
应当理解,该视频编码器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)。当然,也可以应用于红绿蓝(Red-Green-Blue,RGB)格式的图像数据,本申请对此不作具体限定。
视频编码器200读取视频流后,针对视频流中的每帧图像,可将其划分成若干个编码树单元(coding tree unit,CTU)。在一些例子中,CTU可被称作树块、最大编码单元(Largest Coding unit,LCU)、或编码树区块(coding tree block,CTB)。一个CTU大小例如可以为128×128、64×64、32×32等。
图3是本申请提供的编码树单元和编码单元的关系的示意性结构图。
如图3所示,一个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大小以用于帧内(intra)预测,且支持2N×2N、2N×N、N×2N、N×N或类似大小的对称PU以用于帧间(inter)预测。视频编码器及视频解码器还可支持2N×nU、2N×nD、nL×2N及nR×2N的不对称PU以用于帧间(inter)预测。
如图2所示,该视频编码器200可包括:预测单元210、残差单元220、变换/量化单元230、反变换/量化单元240、重建单元250、环路滤波单元260、解码图像缓存270和熵编码单元280。需要说明的是,视频编码器200可包含更多、更少或不同的功能组件。在本申请中,当前块(current block)可以称为当前编码单元(CU)或当前预测单元(PU)等。预测块也可称为预测图像块或图像预测块,重建图像块也可称为重建块或图像重建图像块。
预测单元210包括帧间(inter)预测单元211、帧内(intra)预测单元212。由于视频中一个图像中的相邻像素之间存在很强的相关性,在视频编解码技术中,使用intra预测的方法消除相邻像素之间的空间冗余。由于视频中的相邻图像之间存在着很强的相似性,使用inter预测方法消除相邻图像之间的时间冗余,从而提高编码效率。
inter预测单元211可用于inter预测,其可以包括运动估计(motion estimation)和运动补偿(motion compensation),可以参考不同帧的图像信息,inter预测使用运动信息,从参考帧中,找到参考块,根据参考块生成预测块,用于消除时间冗余;该参考帧可以为P帧和/或B帧,P帧指:向前预测帧,B帧指:双向预测帧。inter预测使用运动信息找到参考块后,根据参考块生成预测块。运动信息包括参考帧所属的帧列表、帧索引以及运动矢量。运动矢量可以是整像素的或者是分像素的,如果运动矢量是分像素的,那么需要在参考帧中,使用插值滤波做出所需的分像素的块,参考块就是根据运动矢量找到的整像素或者分像素的块。有的技术会直接把参考块作为预测块,有的技术会在参考块的基础上再处理生成预测块。在参考块的基础上再处理生成预测块也可以理解为把参考块作为预测块然后再在预测块的基础上处理生成新的预测块。
intra预测单元212只参考同一帧图像的信息,预测当前码图像块内的像素信息,用于消除空间冗余。intra预测所使用的参考帧可以为I帧。
intra预测有多种预测模式,可借助角度预测模式与非角度(Non-angle)预测模式对待编码图像块进行预测,以得到预测块,根据预测块与待编码图像块,计算得到的率失真信息,筛选出待编码图像块最优的预测模式,并将该预测模式写入码流以传输到解码端。解码端解析出预测模式,预测得到目标解码块的预测块并叠加基于码流而获取的时域残差块,可得到重建块。
以国际数字视频编码标准H系列为例,H.264/AVC标准有8种角度预测模式和1种非角度(Non-angle)预测模式,H.265/HEVC扩展到33种角度预测模式和2种非角度(Non-angle)预测模式。HEVC使用的intra预测模式有平面模式(Planar)、直流(DC)和33种角度模式,共35种预测模式。VVC使用的帧内模式有Planar、DC和65种角度模式,共67种预测模式,其包括传统预测模式和非传统的预测模式,非传统的预测模式可以包括矩阵加权intra预测(Matrix weighted intra-frame prediction,MIP)模式。传统预测模式包括:模式编号0的平面(planar)模式、模式编号1的DC 模式和模式编号2到模式编号66的角度预测模式。需要说明的是,随着角度模式的增加,intra预测的预测结果将会更加精确,也更加符合对高清以及超高清的数字视频发展的需求,上述intra预测模式仅为本申请的示例,不应对本申请产生限定。
残差单元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包括:去块(DeBlocking)滤波(DeBlocking Filter,DBF)单元和样点自适应补偿/自适应环路滤波(SAO/ALF)单元,其中,DBF单元用于去方块效应,SAO/ALF单元用于去除振铃效应。
解码图像缓存270可存储重建后的像素块。
其中,inter预测单元211可使用解码图像缓存270中含有重建后的像素块的参考图像来对其它图像的PU执行inter预测。另外,intra预测单元212可使用解码图像缓存270中的重建后的像素块来对在与CU相同的图像中的其它PU执行intra预测。
熵编码单元280可接收来自变换/量化单元230的量化后的变换系数。熵编码单元280可对量化后的变换系数执行一个或多个熵编码操作以产生熵编码后的数据。
图4是本申请实施例涉及的视频解码器的示意性框图。
如图4所示,视频解码器300包含:熵(entropy)解码单元310、预测单元320、反量化/变换单元330、重建单元340、环路滤波单元350及解码图像缓存360。需要说明的是,视频解码器300可包含更多、更少或不同的功能组件。
视频解码器300可接收码流。熵(entropy)解码单元310可解析码流以从码流提取语法元素。作为解析码流的一部分,熵解码单元310可解析码流中的经熵编码后的语法元素。预测单元320、反量化/变换单元330、重建单元340及环路滤波单元350可根据从码流中提取的语法元素来解码视频数据,即产生解码后的视频数据。
预测单元320包括:帧内(intra)预测单元322、帧间(inter)预测单元321。
intra预测单元322可执行intra预测以产生PU的预测块。intra预测单元322可使用intra预测模式以基于空间相邻PU的像素块来产生PU的预测块。intra预测单元322还可根据从码流解析的一个或多个语法元素来确定PU的intra预测模式。
inter预测单元321可根据从码流解析的语法元素来构造第一参考图像列表(列表0)及第二参考图像列表(列表1)。此外,如果PU使用inter预测编码,则熵解码单元310可解析PU的运动信息。inter预测单元321可根据PU的运动信息来确定PU的一个或多个参考块。inter预测单元321可根据PU的一个或多个参考块来产生PU的预测块。
反量化/变换单元330可逆量化(即,解量化)与TU相关联的变换系数。反量化/变换单元330可使用与TU的CU相关联的QP值来确定量化程度。在逆量化变换系数之后,反量化/变换单元330可将一个或多个逆变换应用于逆量化变换系数,以便产生与TU相关联的残差块。
重建单元340使用与CU的TU相关联的残差块及CU的PU的预测块以重建CU的像素块。例如,重建单元340可将残差块的采样加到预测块的对应采样以重建CU的像素块,得到重建图像块。
环路滤波单元350可执行消块滤波操作以减少与CU相关联的像素块的块效应。
视频解码器300可将CU的重建图像存储于解码图像缓存360中。视频解码器300可将解码图像缓存360中的重建图像作为参考图像用于后续预测,或者,将重建图像传输给显示装置呈现。
结合图2和图4来说,视频编解码的基本流程如下:
在编码端,将一帧图像划分成图像块,针对当前块,预测单元210使用intra预测或inter预测,预测当前块(即待编码块)的预测块。残差单元220可基于预测块与当前块(即待编码块)的原始块,计算残差块,即预测块和原始块的差值,该残差块也可称为残差信息。该残差块经由变换/量化单元230变换与量化等过程,可以去除人眼不敏感的信息,以消除视觉冗余。可选的,经过变换/量化单元230变换与量化之前的残差块可称为时域残差块,经过变换/量化单元230变换与量化之后的时域残差块可称为频率残差块或频域残差块。熵编码单元280接收到变化量化单元230输出的量化后的变化系数,可对该量化后的变化系数进行熵编码,输出码流。例如,熵编码单元280可根据目标上下文模型以及二进制码流的概率信息消除字符冗余。
在解码端,熵解码单元310可解析码流得到当前块(即待解码块)的预测信息、量化系数矩阵等,预测单元320基于预测信息,使用intra预测或inter预测,预测当前块(即待解码块)的预测块。反量化/变换单元330使用从码流得到的量化系数矩阵,对量化系数矩阵进行反量化、反变换得到残差块。重建单元340将预测块和残差块相加得到重建块。重建块组成重建图像,环路滤波单元350基于图像或基于块对重建图像进行环路滤波,得到解码图像。值得注意的是,编码端同样需要采用和解码器类似的操作获得解码图像。该解码图像也可以称为重建图像,重建图像可以为后续图像,作为进行inter预测的参考图像。
此外,编码器确定的块划分信息,以及预测、变换、量化、熵编码、环路滤波等模式信息或者参数信息等在必要时携带在码流中。解码端通过解析码流及根据已有信息进行分析确定与编码端相同的块划分信息,预测、变换、量化、熵编码、环路滤波等模式信息或者参数信息,从而保证编码器获得的解码图像和解码器获得的解码图像相同。
需要说明的是,由于并行处理的需要,图像可以被划分成片(slice)等,同一个图像中的片可以并行处理,也就是说它们之间没有数据依赖。术语“帧”可以理解为图像或slice等。上述是基于块的编解码框架下的视频编解码器的基本流程,随着技术的发展,该框架或流程的一些模块或步骤可能会被优化,即本申请不限于该框架及流程。
为便于理解本申请提供的技术方案,下面对相关内容进行说明。
(1)、编码单元划分。
一帧图像送入到编码器,先按照64×64块大小分割成一个个编码树单元(CodingTree Unit,CTU),经过深度划分得到编码单元(Coding Unit,CU),每个CU包含预测单元(Predict Unit,PU)和变换单元(Transform Unit,TU)。对每个PU进行预测,得到预测值,预测值与输入数据相减,得到残差,然后进行DCT变换和量化,得到残差系数,然后送入熵编码模块输出码流,同时,残差系数经反量化、反变换之后,得到重构图像的残差值,再和预测值相加,从而得到了重构图像,重构图像经环内滤波之后,进入参考图像队列,作为下一帧的参考图像,从而依次向后编码。
具体预测时,从最大编码单元(LCU,Largest Code Unit)开始,每层按照四叉树,逐层向下划分,做递归计算。首先,由上向下划分。从depth=0,64×64块先分割为4个32×32的子CUs。然后其中一个32×32的子CU,再继续分割为4个16×16的子CUs,以此类推,直到depth=3,CU大小为8×8。然后,由下往上进行修剪。对4个8×8的CUs的RDcost求和(记为cost1)作当前级别的RDcost,与对应上一级别(即16×16的CU)的RDcost(记为cost2)比较,若cost1小于cost2则保留8×8的CU分割,否则继续往上修剪,逐层比较。最后,找出最优的CU深度划分情况。
PU预测分为帧内模式和帧间模式,先在相同预测模式内,不同PU间进行比较,找到最优的分割模式,再在帧内模式和帧间模式比较,找到当前CU下的最优的预测模式;同时对CU进行基于四叉树结构的自适应变换(Residual Quad-tree Transform,RQT),找出最优的TU模式。最后将一帧图像分成一个个CU及CU对应下的PU与TU。
图5是本申请实施例涉及的PU与TU的分割模式的示意图。
如图5所示,PU共有8种分割模式。例如,假设当前CU的大小为2N×2N,则PU的分割模式包括以下8种分割模式:不划分、划分为N×N、划分为2N×N、划分为N×2N、划分为2N×nU、划分为2N×nD、划分为nL×N以及划分为nR×N。TU只有划分或不划分2种分割模式。
需要说明的是,上面是编码内核基本框架和复杂度最大的是编码单元划分选择以及CU、PU、TU划分选择基本过程,其它还有比较大的计算资源处理流程如:运动估计(Motionestimation,ME)和运动补偿(Motion compensation,MC)。
(2)运动估计。
运动估计可分为全像素运动预测方式和亚像素运动预测方式。运动估计可以使用不同的搜索模式或算法,该搜索模式包括但不限于:菱形(diamond,DIA)、六角形(hexagon,hex)、非偶多六角形(uneven multi-hex,umh)、穷举 (exhaustive,esa)、改进的穷举(transformed exhaustive,tesa)等搜索模式。merange是以像素为单位控制最大运动搜索范围的参数。subme是用于表征亚像素估计复杂度(0-10)的参数,其值越大搜索复杂度越高。
图6是本申请实施例涉及的运动估计的原理示意图。
如图6所示,运动估计为当前图像的某个区域A(例如当前块)在参考图像中寻找一个合适的匹配区域B(例如最佳匹配块)。其中,参考图像可以是前面的图像,也可以是后面的图像。
(3)运动补偿。
运动补偿是基于运动估计的结果进行的,使用估计得到的运动矢量,运动补偿可以预测和补偿图像序列中的下一个图像,从而减少视频数据的冗余。简言之,运动补偿利用先前的局部图像来预测、补偿当前的局部图像,有助于减少图像序列中的冗余信息。
图7是本申请实施例涉及的运动补偿的原理示意图。
如图7所示,基于运动估计的结果,运动补偿可以用于找到(或者说确定)区域A和区域B之间的不同(或者说差异)。
通过运动估计和运动补偿会得到一些运动矢量和残差。运动矢量就是某些区域针对参考图像的运动轨迹,而残差就是这些区域运动后产生的预测图像和当前图像之间的不同或差异。
值得注意的是,计算比较复杂度的还有残差计算(例如SAD或SSD),这个基本上都是跟编码单元划分和MC、ME一起的,通过控制编码单元划分、ME、MC的算法复杂度以及搜索区域(即merange)就可以控制残差计算所消耗的计算资源。
(4)、变换操作。
变换操作是视频编码器的原子操作中最复杂的。
H.265编码器的TU大小可以从32×32到4×4共四个深度,由于过程中有大量的矩阵乘法运算,因此即使使用汇编加速,复杂度依然很高。因此,可以通过控制参数,来控制变换操作的计算复杂度。例如可以通过以下方式控制变换操作的计算复杂度:
1、预测失真较小(例如很小)时跳过变换和量化。
2、如当前变换块的率失真和残差编码结果是较小(例如很小)的,那么进行更深TU划分的收益将会很小,即可以控制TU划分深度。
3、变换和量化两个模块往往是连在一起操作的,如果变换系数分布很少,可以跳过量化直接强制为0。
4、可以根据相邻TU的信息,自适应决定当前CU的最大TU深度。
下面对本申请要解决的技术问题进行说明。
近几年视频行业飞速发展,视频的应用正朝着高清晰度、高(High)帧率(Framesper second,FPS)方向快速升级,随着短视频、电商直播、实时“云”渲染等视频业务的快速发展,视频处理的需求越来越多,而视频编码作为视频处理的基础,优异的编码能力能够为产品提供高清、流畅的播放体验,对于体验质量(Quality of Experience,QoE)/服务质量(Quality of Service,QoS)提升有重要作用。
直播、实时通信(Real-Time Communication,RTC)、云渲染、云桌面等场景对视频编码内核的输出帧的稳定性都有比较高要求。
通常情况下,视频编码内核消耗的计算资源跟视频画面的复杂性相关。
例如,静态、运动纹理变化小的画面比较容易压缩,消耗的计算资源相对比较少;而对于运动纹理比较复杂的画面压缩,其消耗计算资源比较大,如果压缩视频的画面纹理比较复杂,场景切换比较频繁,则视频编码压缩消耗的计算资源会产生比较大的波动。
然而,计算资源波动比较大时,会导致服务器的中央处理器(Central ProcessingUnit,CPU)的消耗波动比较大,而CPU消耗波动比较大时,不仅会影响输出帧的稳定性,尤其是对于直播、RTC、云渲染、云桌面这类场景,还会增加服务器的部署成本,其原因在于:在计算资源编排调度方面就要预留比较多的计算资源作为缓冲(buffer)空间以应对视频画面场景切换时的计算资源波动,比如一台服务器同时跑10路直播视频编码流,调度时CPU就要尽量控制在50%以内,防止这10路视频编码流的画面同时切换到纹理复杂场景时由于计算资源消耗同时向上波动出现服务器计算资源过载的情况,以保证视频编码的输出帧的稳定性。
有鉴于此,本申请实施例提供了一种编码参数确定方法、装置、电子设备以及存储介质,能够提升编码内核的输出帧的稳定性以及降低服务器的部署成本。
下面对本申请提供的编码参数确定方法进行说明。
图8是本申请实施例提供的编码参数确定方法400的示意性流程图。
应理解,该方法400可由任意一种具有数据处理能力的设备执行。例如该方法400可由图1所示的编码设备110执行。再如该方法400可由图2所示视频编码器200执行。为便于描述,下面以编码参数确定装置为例进行说明。
如图8所示,该方法400可包括以下中的部分或全部:
S410,编码参数确定装置解析码流以获取待解码图像和解码信息。
示例性地,编码参数确定装置解析视频或图像码流,以提取出待解码图像以及相关的解码信息。这个解码信息可能包括一些用于解码图像的特定参数。
在一些实施例中,该解码信息包括以下中的至少一项:图像类型、分割类型、宏块的类型、运动矢量、宏块的大小、码率、量化参数、宏块在码流中占据的比特数。
示例性地,图像类型也称为帧类型,帧类型指的是帧的种类,如I帧、P帧、B帧等。其中,I帧是关键帧,它不参考任何其他帧。P帧:前向预测编码帧。P帧表示的是这一帧跟之前的一个关键帧(或P帧)的差别,解码时需要用之前缓存的画面叠加上本帧定义的差别,生成最终画面。B帧:双向预测内插编码帧。B帧是双向差别帧,也就是B帧记录的是本帧与前后帧的差别,B帧可以作其它B帧的参考帧,也可以不作为其它B帧参考帧。
示例性地,分割类型也可称为分割方式、划分模式、划分方式等,其可以是宏块的分割类型。当然,在其他可替代实施例中,也可以是CU、PU或TU的分割类型。例如,分割类型可以包括但不限于:128×128、64×64、32×32、16×16、16×8、8×16、8×8、4×4等。
示例性地,宏块的类型可以是帧内(intra)宏块、帧间(inter)宏块、跳跃(skip)宏块:在视频编码中,宏块是基本的编码单位。当然,在其他可替代实施例中,宏块的类型也可以替代为CU、PU或TU的类型。
示例性地,运动矢量是用来表示像素在相邻帧之间移动的矢量,其可以用于预测和编码运动物体的移动轨迹。
示例性地,宏块的大小指宏块经过划分后的大小。例如,宏块的大小可以包括但不限于:128×128、64×64、32×32、16×16、16×8、8×16、8×8、4×4等。当然,在其他可替代实施例中,宏块的大小也可替换为CU、PU或TU的大小。
示例性地,码率是指在给定的时间内需要传输的数据量。在视频编码中,码率通常用来衡量压缩的效率。较低的码率意味着更少的传输数据量,但可能会损失一些图像质量。
示例性地,量化参数是用来控制图像质量损失的重要参数。较低的量化参数意味着较好的图像质量,但较大的数据量;较高的量化参数意味着较少的图像质量损失,但较小的数据量。
示例性地,宏块在码流中占据的比特数指在压缩后的视频码流中宏块所占用的比特数(bits),其取决于多种因素,如宏块的类型、分割类型、运动矢量等。
当然,在其他可替代实施例中,该解码信息也可包括其他信息,例如该解码信息可包括帧大小,其通常是指一帧图像的大小,如1920×1080的大小等。再如,该解码信息可包括参考帧,其用于解码和预测其他帧的基准帧,在视频编码中,为了减少数据量,编码器通常会参考前面的帧(即参考帧)来编码当前帧。
S420,编码参数确定装置利用该解码信息对该待解码图像进行解码,得到重建图像。
示例性地,编码参数确定装置利用解码信息来解码待解码图像,得到重建图像。例如,编码参数确定装置可以利用该解码信息得到预测图像和残差图像,然后对这两个图像求和得到该重建图像,也可以对这两个图像求和得到的图像进行逆量化以及逆变换等处理,得到该重建图像。
示例性地,编码参数确定装置利用该解码信息对该待解码图像进行解码,得到重建图像后,还可以对该解码信息进行存储。例如,该编码参数确定装置可以将该解码信息随同该重建图像一起进行存储。例如,该编码参数确定装置可以将该解码信息随同该重建图像的数据(例如YUV信息)一起进行存储。
S430,编码参数确定装置基于该解码信息中的解码参数,确定用于对该重建图像重新进行编码的编码参数。
示例性地,编码参数确定装置在对该重建图像中的重建图像块进行重新编码时,可以利用一定的策略或通过考虑一些影响因素确定是否使用该解码信息中的解码参数,并在确定使用的情况下,基于该解码信息中的解码参数,确定用于对该重建图像重新进行编码的编码参数。例如,编码参数确定装置在对该重建图像中的重建图像块进行重新编码时,可以基于该重建图像的图像质量、编码器的空间计算资源、业务场景等因素,确定是否使用该解码信息中的解码参数。
示例性地,如果确定使用解码信息中的解码参数来确定重建图像的编码参数,那么编码参数确定装置可以将解码信息中与编码参数匹配的参数确定为该编码参数。该解码参数可以是用于为该编码参数确定装置确定该编码参数时提供参考的信息。换言之,该解码参数用于为该编码参数确定装置确定该编码参数提供参考。
示例性地,编码参数确定装置将该解码参数直接复用为该编码参数,也可以对该解码参数进行处理得到该编码参数,还可以基于该解码参数对该编码参数的默认的计算模式进行简化得到该编码参数,本申请对此不作具体限定。
本实施例中,该编码参数确定装置先解析码流以获取待解码图像和解码信息;然后,利用该解码信息对该待解码图像进行解码,得到重建图像;基于该解码信息中的解码参数,确定用于对该重建图像重新进行编码的编码参数。相当于,该编码参数确定装置确定该重建图像的编码参数时,可以通过考虑复用该解码信息中的解码参数来确定该编码参数,以降低该编码参数的计算复杂度,进而能够提升编码内核的输出帧的稳定性以及降低服务器的部署成本。
值得注意的是,通常情况下,编码器在应用时会设定好编码相关的一些处理算法和配置(如编码复杂度、码率大小、编码成本估算(lookahead)的参考帧个数、关键图像组(KEY GOP)大小、是否开启B帧、编码码控方式(即控制编码器输出码流的大小的方式)、运动估计的相关算法、运动补偿的相关算法、是否启用预估计中的相关算法等)。这些编码内核参数设置好以后,后面视频源输入编码时,编码相关的一些处理算法和配置就不会自适应改变,这就相当于,计算资源消耗较高的用于确定编码参数的流程(例如编码单元划分、运动估计、运动补偿、变换、预处理等流程)等也会是固定的流程。本实施例中,通过解码信息中的解码参数确定编码参数时,避免了采用计算资源消耗较高的算法和配置确定编码参数,由此,能够降低该编码参数的计算复杂度,进而能够提升编码内核的输出帧的稳定性以及降低服务器的部署成本。
需要说明的是,在其他可替代实施例中,针对该重建图像,也可以基于预分析过程中的分析结果(例如,画面场景纹理复杂性的分析结果或画面场景分析的分析结果)或检测结果(例如画面场景切换检测的检测结果或画面纹理检测的检测结果),将计算资源消耗比较大的用于确定编码参数的流程(例如编码单元划分、运动估计、运动补偿、变换、预处理等流程)自适应裁剪,以在损失一定DB-rate的情况下降低视频编码压缩消耗的计算资源。
但是,这类解决方案有一个很大的不足就是没有复用重建图像的解码信息,一方面,由于预分析是利用已编码图像进行的分析,其分析结果或检测结果不够及时,会存在几个图像组(group of pictures,GOP)的延迟,降低了参考效果,另一方面,如果确定编码参数的流程自适应裁剪的过多,会对视频画面的画质产生比较大的影响,画面效果不是非常稳定,降低了编码性能。本实施例中,通过考虑复用该解码信息中的解码参数来确定该编码参数,以降低该编码参数的计算复杂度,进而能够提升编码内核的输出帧的稳定性以及降低服务器的部署成本。此外,由于该解码信息是用于解码该重建图像的实时信息,可以保证该解码参数的参考效果。另外,由于可以基于实际需求,自适应确定是否复用该解码信息中的解码参数来确定该编码参数,不仅有利于控制以视频编码压缩消耗的计算资源的波动幅度,还能够兼顾和平衡计算资源的消耗以及编码效果,进而提升了编码器的编码性能。
图9是本申请实施例提供的编码参数确定方法的另一示意性流程图。
如图9所示,编码参数确定装置不仅可以具有解码功能,还可以具有编码功能。具体的,参数确定装置收到码流后,对其进行解码,在解码过程中,会得到图像类型、分割类型、宏块的类型、运动矢量、宏块的大小、码率、量化参数、宏块在码流中占据的比特数等解码信息。基于此,编码参数确定装置在对该重建图像中的重建图像块进行重新编码时,确定是否使用该解码信息确定该重建图像的编码参数;若确定使用该解码信息确定该重建图像的编码参数,则确定该解码信息中与该编码参数匹配的参数;基于该匹配的参数,确定该编码参数。即本申请提供的方案适用于确定经过编码和解码的视频,例如经过H.264/VP8/VP9/H.265/H.266/AV1/AVS3等视频压缩算法压缩以及解压缩过的视频,而不是原始采集的YUV或RGB、NV12等视频。
在一些实施例中,该S430之前,该方法400还可包括:
编码参数确定装置将该解码信息中参数类型与该编码参数的参数类型相同的参数,确定为该解码参数。
示例性地,在确定解码参数时,编码参数确定装置会查找解码信息中与编码参数类型相同的参数作为该解码参数。例如,如果编码参数是量化参数(QP),那么解码参数应该是解码信息中的QP。如果编码参数是运动矢量(MV),那么解码参数应该是解码信息中的MV。
本实施例中,编码参数确定装置使用相同类型的参数作为解码参数,可以保证该解码参数的参考效果,进而提升该编码参数的编码效果。
当然,在其他可替代实施例中,该编码参数确定装置也可以将该解码信息中参数类型与该编码参数的计算过程中使用的参数相同的参数确定为该解码参数,本申请对此不作具体限定。
在一些实施例中,该S430可包括:
编码参数确定装置将该解码参数,确定为该编码参数。
示例性地,在确定解码参数时,编码参数确定装置会查找解码信息中与编码参数类型相同的参数作为该解码参数。例如,如果编码参数确定装置需要确定QP,那么该编码参数确定装置可以直接将解码信息中的QP。再如,如果编码参数确定装置需要确定MV,那么该编码参数确定装置可以直接将解码信息中的MV。
本实施例中,编码参数确定装置将该解码参数,确定为该编码参数,可以最大程度的简化确定该编码参数时的计算复杂度。
在一些实施例中,该S430可包括:
编码参数确定装置基于该解码参数,利用与该编码参数匹配的参数计算模式,确定该编码参数。
示例性地,如果该编码参数包括第一运动矢量且该解码参数包括与该第一运动矢量匹配的第二运动矢量;该编码参数确定装置可以以该第二运动矢量为起始搜索点,确定该第一运动矢量。或者,如果该编码参数包括第一运动矢量且该解码参数包括与该第一运动矢量匹配的第二运动矢量;该编码参数确定装置可以将比该第二运动数量的精度更高的运动矢量,确定为该第一运动矢量。或者,如果该编码参数包括第一运动矢量且该解码参数包括与该第一运动矢量匹配的第二运动矢量;该编码参数确定装置可以采用第一搜索范围,确定该第一运动矢量。该第一搜索范围可以是小于运动矢量的默认计算模式使用的搜索范围的范围。
本实施例中,编码参数确定装置基于该解码参数,利用与该编码参数匹配的参数计算模式,确定该编码参数,可以降低该编码参数的计算复杂度并提高编码效率。
在一些实施例中,该S430可包括:
编码参数确定装置基于该解码参数,确定该编码参数的候选参数集;通过遍历该候选参数集中的参数,将该候选参数集中的最优参数确定为该编码参数。
示例性地,如果该编码参数包括第一分割类型且该解码参数包括与该第一分割类型匹配的第二分割类型;该编码参数确定装置可以确定该第二分割类型的所属层级,将该第二分割类型、该所属层级的上一层级的分割类型、该所属层级的下一层级的分割类型,确定为该候选参数集合;即该编码参数确定装置可以通过遍历候选参数集合中的分割类型,将该参数集合中的最优分割类型,确定为该第一分割类型。
例如,假设该第二分割类型为16×16,则该编码参数确定装置可以确定该第二分割类型的所属层级为16,这种情况下,该编码参数确定装置可以将该第二分割类型(即16×16)、该所属层级的上一层级的分割类型(即32×32)、该所属层级的下一层级的分割类型(即8×8),确定为该候选参数集合;即该编码参数确定装置可以通过遍历候选参数集合中的分割类型,将16×16、32×32以及8×8中的最优分割类型,确定为该第一分割类型。
当然,在其他实施例中,该所属层级的上一层级的分割类型也可包括32×32、16×32、32×16中的至少一项,该所属层级的下一层级的分割类型也可包括8×8、16×8、8×16中的至少一项,本申请对此不作具体限定。甚至该候选参数集还可以包括该下一层级的下一层级的分割类型、或该上一层级的上一层级的分割类型。
需要注意的是,该第一分割类型和该第二分割类型也可以替换为其他数据格式为a×b的参数,本申请对此不作具体限定。例如,该第一分割类型可以替换为第一帧大小。该第二分割类型也可以替换为第二帧大小。例如,该第一分割类型可以替换为第一宏块大小。该第二分割类型也可以替换为第二宏块大小。
示例性地,如果该编码参数包括第一数值且该解码参数包括与该第一数值匹配的第二数值;该编码参数确定装置可以基于预设阈值,将该预设阈值作为该第二数值所属的取值范围的上限值与下限值之间的差(可以是预设的数值),确定该第二数值所属的取值范围,该第二数值所属的取值范围为该第二数值的最大取值范围的子集;在第二数值所属的取值范围内进行采样,并将采样得到的多个采样取值确定为该候选参数集;即该编码参数确定装置可以通过遍历该多个候选参数中的多个采样取值,并将该多个采样取值中最优数值确定为该第一数值。当然,该编码参数确定装置也可以通过遍历该第二数值和该多个采样取值,并将该第二数值和该多个采样取值中最优数值确定为该第一数值。
例如,假设该第二数值为16且该第二数值的取值范围的上限值与下限值之间的差为3,则该编码参数确定装置可以确定该第二数值所属的取值范围为[15,17];这种情况下,该编码参数确定装置可以在[15,17]内进行采样,并将采样得到的多个采样取值(假设为15和15.5)确定为该候选参数集;即该编码参数确定装置可以通过遍历15和15.5,并将15和15.5中最优取值确定为该第一数值。当然,该编码参数确定装置也可以通过遍历16、15和15.5,并将16、15和15.5中最优取值确定为该第一数值。
示例性地,如果该编码参数包括第一数值且该解码参数包括与该第一数值匹配的第二数值;该编码参数确定装置可以基于多个阈值对该第二参数进行调整,得到多个调整取值,并将该多个调整取值中最优数值确定为该第一数值。当然,该编码参数确定装置也可以通过遍历该第二数值和该多个调整取值,并将该第二数值和该多个调整取值中最优数值确定为该第一数值。
例如,假设该第二数值为16且该多个阈值包括-1和1,则该编码参数确定装置可以确定该多个调整取值为15和17;这种情况下,该编码参数确定装置可以通过遍历15和17,并将15和17中最优取值确定为该第一数值。当然,该编码参数确定装置也可以通过遍历16、15和17,并将16、15和17中最优取值确定为该第一数值。
值得注意的是,该第一数值和该第二数值可以是任意一种取值为数值格式的参数的取值,本申请对此不作具体限定。例如,该第一数值可以是该重建图像的量化参数的取值,该第二数值可以是该解码信息中的量化参数的取值。或者,该第一数值可以是该重建图像的码率的取值,该第二数值可以是该解码信息中的码率的取值。或者,该第一数值可以是该重建图像的宏块在码流中占据的比特数的取值,该第二数值可以是该解码信息中的宏块在码流中占据的比特数的取值。或者,该第一数值可以是该重建图像的运动矢量的取值,该第二数值可以是该解码信息中的运动矢量的取值。
本实施例中,编码参数确定装置基于该解码参数,确定该编码参数的候选参数集;通过遍历该候选参数集中的参数,将该候选参数集中的最优参数确定为该编码参数,不仅可以降低该编码参数的计算复杂度并提高编码效率,还可以保证编码参数的准确性以及其编码效果。
在一些实施例中,该S430之前,该方法400还可包括:
编码参数确定装置确定是否使用该解码参数确定该编码参数。
示例性地,编码参数确定装置确定使用该解码参数确定该编码参数的情况下,基于该解码参数确定该编码参数。
在一些实施例中,编码参数确定装置确定是否使用该解码参数确定该编码参数,可实施为:
编码参数确定装置对该重建图像的质量进行评估,得到质量评估值;若该质量评估值大于或等于预设评估值,则确定使用该解码信息确定该编码参数;若该质量评估值小于该预设评估值,则确定不使用该解码信息确定该编码参数。
示例性地,编码参数确定装置在确定重建图像的编码参数之前,可以对重建图像的质量进行评估。这个评估过程可以基于各种质量评估指标,如峰值信噪比(PSNR)、结构相似性指数(SSIM)等。通过评估,装置可以得到一个质量评估值,用以衡量重建图像的质量。接下来,装置会对比该质量评估值和预设的评估值。预设的评估值可以是一个阈值,或者是基于特定应用场景或数据类型所设定的值。如果质量评估值大于或等于预设评估值,那么装置会认为该解码信息是有效的,可以用于确定编码参数。如果质量评估值小于预设评估值,那么装置会认为该解码信息不足以确定高质量的编码参数。在这种情况下,装置可以选择不使用该解码信息来确定编码参数,或者尝试采用默认的计算模式或算法确定该编码参数。
本实施例中,通过该质量评估值确定是否使用该解码信息确定该编码参数,这种评估机制有助于确保所确定的编码参数能够产生高质量的重建图像,同时避免低质量解码信息对编码参数的不利影响。在实际应用中,可以根据具体需求和场景来选择适当的评估指标和预设评估值。
在一些实施例中,编码参数确定装置确定是否使用该解码参数确定该编码参数,可实施为:
编码参数确定装置获取第一计算能力,该第一计算能力为编码器利用默认的参数计算方式计算该编码参数时消耗的计算能力;基于该第一计算能力,确定是否使用该解码信息确定该编码参数。
示例性地,编码参数确定装置在确定重建图像的编码参数之前,可以考虑计算能力的因素。在某些情况下,特定的编码参数采用默认的参数计算模式时可能需要消耗大量的计算能力。因此,编码参数确定装置可以先获取第一计算能力,该第一计算能力为编码器利用默认的参数计算方式计算该编码参数时消耗的计算能力,然后基于该第一计算能力,编码参数确定装置可以评估使用该解码信息确定编码参数的可行性。例如,编码参数确定装置可以基于计算能力的消耗和编码参数的编码性能的平衡性,确定是否使用该解码信息确定编码参数。
本实施例中,通过该第一计算能力确定是否使用该解码信息确定该编码参数,这种考虑计算能力的方式有助于平衡该编码参数的准确性和消耗的计算能力。在某些应用场景中,可能需要在有限的计算资源下尽可能准确地确定编码参数。通过评估第一计算能力,编码参数确定装置可以更好地权衡不同因素并做出是否使用该解码信息确定该编码参数的决策。
在一些实施例中,基于该第一计算能力,确定是否使用该解码信息确定该编码参数,可实施为:
若该第一计算能力大于或等于该编码器的空闲计算资源提供的计算能力,则确定使用该解码信息确定该编码参数;若该第一计算能力小于该空闲计算资源提供的计算能力,则确定不使用该解码信息确定该编码参数。
在某些情况下,编码参数确定装置可能会受到计算能力的限制。在这种情况下,编码参数确定装置可以获取该编码器的空闲计算资源提供的计算能力作为参考。如果第一计算能力大于或等于该空闲计算资源提供的计算能力,说明编码参数采用默认的参数计算模式时需要消耗大量的计算能力。在这种情况下,解码信息对编码参数的计算可能不会超过可用的计算资源,从而保证了计算的顺利进行。然而,如果第一计算能力小于该空闲计算资源提供的计算能力,那么编码参数确定装置采用默认的参数计算模式计算编码参数,不仅未超出空闲计算资源的提供能力,还能够保证编码参数的准确性,即确定不使用该解码信息确定该编码参数。
本实施例中,通过比较第一计算能力和空闲计算资源的提供能力,编码参数确定装置可以更好地评估使用特定解码信息确定编码参数的可行性,这有助于在有限的计算资源下平衡解码信息的准确性和计算能力的消耗,以适应不同场景和需求。
在一些实施例中,基于该第一计算能力,确定是否使用该解码信息确定该编码参数,可实施为:
获取该编码器的第一资源使用率;将该第一计算能力转换为该编码器的已使用的计算资源,并基于该已使用的计算资源对该第一资源使用率进行调整,得到第二资源使用率;若该第二资源使用率大于或等于预设的资源使用率,则确定使用该解码信息确定该编码参数;若该第二资源使用率小于该预设的资源使用率,则确定不使用该解码信息确定该编码参数。
示例性地,编码参数确定装置获取编码器的第一资源使用率:该第一资源使用率表示编码器在执行编码操作时的资源占用情况。这可以包括CPU使用率、内存占用率、磁盘I/O等。然后,编码参数确定装置将第一计算能力转换为编码器已使用的计算资源。这可以通过将第一计算能力与编码器的总的计算能力进行比较来实现。例如,如果第一计算能力为30%,则可以认为编码器已使用了30%的计算资源。接下来,编码参数确定装置基于已使用的计算资源调整第一资源使用率:基于已使用的计算资源,对第一资源使用率进行调整,得到第二资源使用率。这可以是通过将已使用的计算资源与第一资源使用率相加来得到第二资源使用率。例如,如果已使用了30%的计算资源,且第一资源使用率为50%,则第二资源使用率为80%。由此,编码参数确定装置就可以将第二资源使用率与预设的资源使用率进行比较。如果第二资源使用率大于或等于预设的资源使用率,则可以认为如果采用默认的计算模式计算该编码参数,会导致编码器的资源使用率过高,即确定不采用默认的计算模式计算该编码参数,换句话说,编码参数确定装置确定使用该解码信息确定该编码参数。
如果第二资源使用率小于预设的资源使用率,则可以认为如果采用默认的计算模式计算该编码参数,不仅不会导致编码器的资源使用率过高,还能够保证编码参数的准确性,即可以采用默认的计算模式计算该编码参数,换句话说,编码参数确定装置不确定使用该解码信息确定该编码参数。
本实施例中,通过获取编码器的第一资源使用率,并将第一计算能力转换为已使用的计算资源,并对第一资源使用率进行调整,可以得到更准确的第二资源使用率。这有助于更好地评估在假设使用默认的参数计算方式计算该编码参数时,该编码器的资源使用情况,进而可以有效的对是否使用该解码信息确定该编码参数做出决策。
在一些实施例中,编码参数确定装置确定是否使用该解码参数确定该编码参数,可实施为:
获取第一性能参数,该第一性能参数为编码器利用默认的参数计算方式计算该编码参数时该编码器的性能参数;若该第一性能参数满足业务场景要求的性能参数,则确定使用该解码信息确定该编码参数;若该第一性能参数不满足该业务场景要求的性能参数,则确定不使用该解码信息确定该编码参数。
示例性地,该业务场景可以包括以下中的任意一种:低延时高(出帧)稳定性要求的场景(例如,RTC场景)、低延时要求的场景(例如,Web RTC)、成本和(出帧)稳定性综合考虑的场景(例如,HLS/DASH直播)、成本优先的场景(点播场景)等。
示例性地,编码参数确定装置可以获取第一性能参数,该第一性能参数表示编码器利用默认的参数计算方式计算该编码参数时的性能表现。性能参数可以包括延迟、输出图像的稳定性、资源成本等指标。接下来,编码参数确定装置会对比该第一性能参数和业务场景要求的性能参数。业务场景要求的性能参数可以根据实际应用的需求来确定,例如延迟、输出图像的稳定性、资源成本等指标。业务场景要求的性能参数和该第一性能参数的参数类型可以相同,也可以不同,在不同时需要将其映射到同一映射空间进行比较。如果第一性能参数满足业务场景要求的性能参数,即编码器的性能表现达到了实际应用的需求,那么编码参数确定装置会认为使用该解码信息确定编码参数是可行的。然而,如果第一性能参数不满足业务场景要求的性能参数,即编码器的性能表现未达到实际应用的需求,那么编码参数确定装置会认为使用该解码信息确定编码参数不可行或者不划算。这种情况下,即使解码信息对降低编码参数的计算复杂度有帮助,但可能无法满足实际应用的性能要求,因此不值得使用。
本实施例中,通过评估第一性能参数和业务场景要求的性能参数的匹配程度,编码参数确定装置可以更好地平衡编码参数的计算复杂度和实际应用的性能需求,以适应不同场景和需求。
需要注意的是,上文涉及的质量评估值、第一计算能力以及第一性能参数可以仅考虑其中的一个因素,也可以考虑其中的多个映射,具体的实现方式可能因应用场景和需求而异,甚至可以考虑其他因素,本申请对此不作具体限定。
例如,编码参数确定装置获取解码信息和重建图像的数据,例如亮度色度(YCbCr,YUV)信息后,可以根据重建图像的画质情况、编码器的计算资源的空闲情况以及计算成本、控制是否复用解码信息中的解码参数来确定该重建图像的编码参数,以平滑控制编码参数的编码性能和资源消耗,由此,可以在损失一定视频DB-rate情况下,能够保证计算资源消耗有比较平滑的控制,例如,经过测试可以提升编码器的计算资源负载5-10个点,节省了视频媒体处理转码成本,帮助视频用户媒体处理转码降本增效,尤其是针对视频媒体处理和直播等场景。
再如,在其他可替代实施例中,可能还需要考虑其他因素确定是否采用解码信息确定重建图像的编码参数,如解码信息的可靠性、实时性要求等。
图10是本申请实施例提供的在编码内核中使用解码参数的示意图。
如图10所示,编码参数确定装置获取解码图像的数据和解码信息后,可将该解码信息中的信息应用到编码内核执行的预分析过程和编码过程中的过程中需要确定的编码参数。
其中,该解码信息可包括以下信息:①帧类型,②分割类型,③宏块的类型,④运动矢量,⑤宏块的大小,⑥码率,⑦量化参数。
对于预分析过程,其可以包括:获取解码帧并缓冲一定的数量解码帧,然后生成½×½下采样帧,以MxN位块为单位对下采样帧进行帧内/帧间分析(例如,CU、PU、TU的分割类型以及相应的预测模式);接着统计整帧的帧内/帧间计算代价,并确定帧类型;接着计算帧的模糊复杂度,计算帧级QP以及分配码率。
其中,预分析过程中最消耗计算资源的过程包括:以MxN位块为单位对下采样帧进行帧内/帧间分析的过程,其确定的编码参数包括分割类型、运动矢量等参数,在确定这些编码参数时可以参考解码信息中的②~⑤等。例如,可以根据应用场景对延时和计算资源消耗的要求,确定是否参考②~⑤中的信息。例如,参考④时,可以将作为搜索过程的起始搜索点,可以大大的加速搜索过程,并将搜索到的最优MV作为用于对当前解码图像进行编码时使用的MV,以提高转码速度与码率控制的准确度。
此外,对于预分析过程中的确定帧类型的过程,考虑到I帧/P帧/B帧决策时计算资源的消耗比较大,例如通过编码为B帧的代价(cost)与编码为P帧的代价决策B/P。并且,由于正常需要对逐帧往前推进,其消耗的计算资源几乎是成倍数增加的,本实施例中,可以根据应用场景延时和计算资源消耗综合评估,确定是否可以参考①,来确定用于对当前解码帧进行编码时使用的帧类型,以减小消耗的计算资源。对于预分析过程中计算帧级QP以及分配码率的过程,可以根据应用场景延时和计算资源消耗综合评估,确定是否参考⑤~⑦,来确定用于对当前解码帧进行编码时使用的码率以及帧级QP,以减小消耗的计算资源。
对于编码过程,其可以包括:对原始解码帧进行帧内/帧间分析(例如,CU、PU、TU的分割类型以及相应的预测模式),然后进行帧内预测/帧间搜索,接着进行模式判决/率失真优化,最后进行变换、量化、熵编码、码控更新以及码流输出。其中,对于可以在编码过程中的参考的信息,其与预分析过程类似,具体的,帧内/帧间分析的过程可以考虑是否参考②~⑤,帧内预测/帧间搜索的过程可以考虑是否参考④,模式判决/率失真优化的过程可以考虑是否参考⑤~⑦。来确定用于对当前解码帧进行编码时使用的码率以及帧级QP,以减小消耗的计算资源。
本实施例中,通过在预分析过程和编码过程中计算资源消耗较大的过程中参考解码信息,可以在损失一定视频DB-rate情况下,能够保证计算资源消耗有比较平滑的控制,例如,经过测试可以提升编码器的计算资源负载5-10个点,节省了视频媒体处理转码成本,帮助视频用户媒体处理转码降本增效,尤其是针对视频媒体处理和直播等场景。
以上结合附图详细描述了本申请的优选实施方式,但是,本申请并不限于上文涉及的实施方式中的具体细节,在本申请的技术构思范围内,可以对本申请的技术方案进行多种简单变型,这些简单变型均属于本申请的保护范围。例如,在上文涉及的具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本申请对各种可能的组合方式不再另行说明。又例如,本申请的各种不同的实施方式之间也可以进行任意组合,只要其不违背本申请的思想,其同样应当视为本申请所公开的内容。
还应理解,在本申请的各种方法实施例中,上文涉及的各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
下文结合图11至图12详细描述本申请的装置实施例。
图11是本申请提供的编码参数确定装置500的示意性框图。
如图11所示,该编码参数确定装置500可包括:
解析单元510,用于解析码流以获取待解码图像和解码信息;
解码单元520,用于利用该解码信息对该待解码图像进行解码,得到重建图像;
确定单元530,用于基于该解码信息中的解码参数,确定用于对该重建图像重新进行编码的编码参数。
在一些实施例中,该确定单元530确定用于对该重建图像重新进行编码的编码参数之前,还用于:
将该解码信息中参数类型与该编码参数的参数类型相同的参数,确定为该解码参数。
在一些实施例中,该确定单元530具体用于:
将该解码参数,确定为该编码参数。
在一些实施例中,该确定单元530具体用于:
基于该解码参数,利用与该编码参数匹配的参数计算模式,确定该编码参数。
在一些实施例中,该确定单元530具体用于:
基于该解码参数,确定该编码参数的候选参数集;
通过遍历该候选参数集中的参数,将该候选参数集中的最优参数确定为该编码参数。
在一些实施例中,该确定单元530确定用于对该重建图像重新进行编码的编码参数之前,还用于:
确定是否使用该解码参数确定该编码参数。
在一些实施例中,该确定单元530具体用于:
对该重建图像的质量进行评估,得到质量评估值;
若该质量评估值大于或等于预设评估值,则确定使用该解码参数确定该编码参数;
若该质量评估值小于该预设评估值,则确定不使用该解码参数确定该编码参数。
在一些实施例中,该确定单元530具体用于:
获取第一计算能力,该第一计算能力为编码器利用默认的参数计算方式计算该编码参数时消耗的计算能力;
基于该第一计算能力,确定是否使用该解码参数确定该编码参数。
在一些实施例中,该确定单元530具体用于:
若该第一计算能力大于或等于该编码器的空闲计算资源提供的计算能力,则确定使用该解码参数确定该编码参数;
若该第一计算能力小于该空闲计算资源提供的计算能力,则确定不使用该解码参数确定该编码参数。
在一些实施例中,该确定单元530具体用于:
获取该编码器的第一资源使用率;
将该第一计算能力转换为该编码器的已使用的计算资源,并基于该已使用的计算资源对该第一资源使用率进行调整,得到第二资源使用率;
若该第二资源使用率大于或等于预设的资源使用率,则确定使用该解码参数确定该编码参数;
若该第二资源使用率小于该预设的资源使用率,则确定不使用该解码参数确定该编码参数。
在一些实施例中,该确定单元530具体用于:
获取第一性能参数,该第一性能参数为编码器利用默认的参数计算方式计算该编码参数时该编码器的性能参数;
若该第一性能参数满足业务场景要求的性能参数,则确定使用该解码参数确定该编码参数;
若该第一性能参数不满足该业务场景要求的性能参数,则确定不使用该解码参数确定该编码参数。
在一些实施例中,该解码信息包括以下中的至少一项:图像类型、分割类型、宏块的类型、运动矢量、宏块的大小、码率、量化参数、宏块在码流中占据的比特数。
应理解,装置实施例与方法实施例可以相互对应,类似的描述可以参照方法实施例。为避免重复,此处不再赘述。具体地,图11所示的装置500可以对应于执行本申请实施例的方法400中的相应主体,并且装置500中的各个单元的前述和其它操作和/或功能分别为了实现方法400中的相应流程。
还应理解,本申请实施例涉及的装置500中的各个单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现,甚至,这些功能也可以由一个或多个其它单元协助实现。例如,装置500中的部分或全部合并为一个或若干个另外的单元。再如,装置500中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。再如,该装置500也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
根据本申请的另一个实施例,可以通过在包括例如中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的通用计算机的通用计算设备上运行能够执行相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造本申请实施例涉及的装置500,以及来实现本申请实施例的编码参数确定方法。该计算机程序可以记载于例如计算机可读存储介质上,并通过计算机可读存储介质装载于电子设备中,由此该计算机程序在电子设备中运行时执行本申请实施例的相应方法。
换言之,上文涉及的单元可以通过硬件形式实现,也可以通过软件形式的指令实现,还可以通过软硬件结合的形式实现。
具体地,本申请实施例中的方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路和/或软件形式的指令完成,结合本申请实施例公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件组合执行完成。可选地,软件可以位于随机存储器,闪存、只读存储器、可编程只读存储器、电可擦写可编程存储器、寄存器等本领域的成熟的存储介质中。处理器读取存储介质中的信息,结合其硬件完成上文涉及的方法实施例中的步骤。
图12是本申请提供的电子设备600的示意结构图。
如图12所示,该电子设备600至少包括处理器610以及计算机可读存储介质620。其中,处理器610以及计算机可读存储介质620可通过总线或者其它方式连接。计算机可读存储介质620用于存储计算机程序621,计算机程序621包括计算机指令,处理器610用于执行计算机可读存储介质620存储的计算机指令。处理器610是电子设备600的计算核心以及控制核心,其适于实现一条或多条计算机指令,具体适于加载并执行一条或多条计算机指令从而实现相应方法流程或相应功能。
示例性地,处理器610也可称为中央处理器(Central Processing Unit,CPU)。处理器610可以包括但不限于:通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、分立硬件组件等等。
示例性地,计算机可读存储介质620可以是高速RAM存储器,也可以是非不稳定的存储器(Non-VolatileMemory),例如至少一个磁盘存储器;可选的,还可以是至少一个位于远离前述处理器610的计算机可读存储介质。具体而言,计算机可读存储介质620包括但不限于:易失性存储器和/或非易失性存储器。其中,非易失性存储器可以是只读存储器(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 DataRate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)。
如图12所示,该电子设备600还可以包括收发器630。
其中,处理器610可以控制该收发器630与其他设备进行通信,具体地,可以向其他设备发送信息或数据,或接收其他设备发送的信息或数据。收发器630可以包括发射机和接收机。收发器630还可以进一步包括天线,天线的数量可以为一个或多个。
示例性地,该电子设备600可以是本申请实施例涉及的编码参数确定装置;该计算机可读存储介质620中存储有计算机指令;由处理器610加载并执行计算机可读存储介质620中存放的计算机指令,以实现本申请提供的编码参数确定方法中的相应步骤;换言之,计算机可读存储介质620中的计算机指令由处理器610加载并执行相应步骤,为避免重复,此处不再赘述。
例如,本申请实施例涉及的编码参数确定装置可以是编码器。
根据本申请的另一方面,本申请还提供了一种编解码系统,包括上文涉及的编码器和解码器。
根据本申请的另一方面,本申请还提供了一种计算机可读存储介质(Memory),该计算机可读存储介质存储有计算机指令,该计算机指令被计算机设备的处理器读取并执行时,使得计算机设备执行上文涉及的编码参数确定方法。
其中,该计算机可读存储介质是解码器或编码器中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机可读存储介质既可以包括电子设备中的内置存储介质,当然也可以包括电子设备所支持的扩展存储介质。该计算机可读存储介质可以用于提供存储空间,该存储空间可以存储有电子设备的操作系统。此外,在该存储空间中还存放了适于被处理器加载并执行的一条或多条的计算机指令,例如,存放了用于执行上文涉及的编码参数确定方法的一条或多条的计算机指令,这些计算机指令可以是一个或多个的计算机程序(包括程序代码)。
根据本申请的另一方面,本申请还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机执行上文涉及的各种可选方式中提供的编码参数确定方法。
应当理解,本申请涉及的计算机设备可以是任意一种能够进行数据处理的设备或装置,例如,其包括但不限于:通用计算机、专用计算机、计算机网络、或者其他可编程装置。此外,本申请涉及的计算机指令可以存储在计算机可读存储介质中,也可以在一个计算机可读存储介质和另一个计算机可读存储介质之间进行传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心传输。
根据本申请的另一方面,本申请还提供了一种码流,该码流可以是利用本申请提供的编码参数确定方法生成的码流。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元以及流程步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
最后需要说明的是,以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (9)
1.一种编码参数确定方法,其特征在于,包括:
解析码流以获取待解码图像和解码信息;
利用所述解码信息对所述待解码图像进行解码,得到重建图像;
基于所述解码信息中的解码参数,确定用于对所述重建图像重新进行编码的编码参数;
所述确定用于对所述重建图像重新进行编码的编码参数之前,所述方法还包括:
确定是否使用所述解码参数确定所述编码参数;
其中:
所述确定是否使用所述解码参数确定所述编码参数,包括:
对所述重建图像的质量进行评估,得到质量评估值;若所述质量评估值大于或等于预设评估值,则确定使用所述解码参数确定所述编码参数;若所述质量评估值小于所述预设评估值,则确定不使用所述解码参数确定所述编码参数;
或者,所述确定是否使用所述解码参数确定所述编码参数,包括:
获取第一计算能力,所述第一计算能力为编码器利用默认的参数计算方式计算所述编码参数时消耗的计算能力;基于所述第一计算能力,确定是否使用所述解码参数确定所述编码参数;
或者,所述确定是否使用所述解码参数确定所述编码参数,包括:
获取第一性能参数,所述第一性能参数为编码器利用默认的参数计算方式计算所述编码参数时所述编码器的性能参数;若所述第一性能参数满足业务场景要求的性能参数,则确定使用所述解码参数确定所述编码参数;若所述第一性能参数不满足所述业务场景要求的性能参数,则确定不使用所述解码参数确定所述编码参数;
其中:
所述基于所述第一计算能力,确定是否使用所述解码参数确定所述编码参数,包括:
若所述第一计算能力大于或等于所述编码器的空闲计算资源提供的计算能力,则确定使用所述解码参数确定所述编码参数;若所述第一计算能力小于所述空闲计算资源提供的计算能力,则确定不使用所述解码参数确定所述编码参数;
或者,所述基于所述第一计算能力,确定是否使用所述解码参数确定所述编码参数,包括:
获取所述编码器的第一资源使用率;将所述第一计算能力转换为所述编码器的已使用的计算资源,并基于所述已使用的计算资源对所述第一资源使用率进行调整,得到第二资源使用率;若所述第二资源使用率大于或等于预设的资源使用率,则确定使用所述解码参数确定所述编码参数;若所述第二资源使用率小于所述预设的资源使用率,则确定不使用所述解码参数确定所述编码参数。
2.根据权利要求1所述的方法,其特征在于,所述确定用于对所述重建图像重新进行编码的编码参数之前,所述方法还包括:
将所述解码信息中参数类型与所述编码参数的参数类型相同的参数,确定为所述解码参数。
3.根据权利要求1所述的方法,其特征在于,所述基于所述解码信息中的解码参数,确定用于对所述重建图像重新进行编码的编码参数,包括:
将所述解码参数,确定为所述编码参数。
4.根据权利要求1所述的方法,其特征在于,所述基于所述解码信息中的解码参数,确定用于对所述重建图像重新进行编码的编码参数,包括:
基于所述解码参数,利用与所述编码参数匹配的参数计算模式,确定所述编码参数。
5.根据权利要求1所述的方法,其特征在于,所述基于所述解码信息中的解码参数,确定用于对所述重建图像重新进行编码的编码参数,包括:
基于所述解码参数,确定所述编码参数的候选参数集;
通过遍历所述候选参数集中的参数,将所述候选参数集中的最优参数确定为所述编码参数。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述解码信息包括以下中的至少一项:图像类型、分割类型、宏块的类型、运动矢量、宏块的大小、码率、量化参数、宏块在码流中占据的比特数。
7.一种编码参数确定装置,其特征在于,包括:
解析单元,用于解析码流以获取待解码图像和解码信息;
解码单元,用于利用所述解码信息对所述待解码图像进行解码,得到重建图像;
确定单元,用于基于所述解码信息中的解码参数,确定用于对所述重建图像重新进行编码的编码参数;
所述确定单元确定用于对所述重建图像重新进行编码的编码参数之前,还用于:
确定是否使用所述解码参数确定所述编码参数;
其中:
所述确定单元具体用于:
对所述重建图像的质量进行评估,得到质量评估值;若所述质量评估值大于或等于预设评估值,则确定使用所述解码参数确定所述编码参数;若所述质量评估值小于所述预设评估值,则确定不使用所述解码参数确定所述编码参数;
或者,所述确定单元具体用于:
获取第一计算能力,所述第一计算能力为编码器利用默认的参数计算方式计算所述编码参数时消耗的计算能力;基于所述第一计算能力,确定是否使用所述解码参数确定所述编码参数;
或者,所述确定单元具体用于:
获取第一性能参数,所述第一性能参数为编码器利用默认的参数计算方式计算所述编码参数时所述编码器的性能参数;若所述第一性能参数满足业务场景要求的性能参数,则确定使用所述解码参数确定所述编码参数;若所述第一性能参数不满足所述业务场景要求的性能参数,则确定不使用所述解码参数确定所述编码参数;
其中:
所述确定单元具体用于:
若所述第一计算能力大于或等于所述编码器的空闲计算资源提供的计算能力,则确定使用所述解码参数确定所述编码参数;若所述第一计算能力小于所述空闲计算资源提供的计算能力,则确定不使用所述解码参数确定所述编码参数;
或者,所述确定单元具体用于:
获取所述编码器的第一资源使用率;将所述第一计算能力转换为所述编码器的已使用的计算资源,并基于所述已使用的计算资源对所述第一资源使用率进行调整,得到第二资源使用率;若所述第二资源使用率大于或等于预设的资源使用率,则确定使用所述解码参数确定所述编码参数;若所述第二资源使用率小于所述预设的资源使用率,则确定不使用所述解码参数确定所述编码参数。
8.一种电子设备,其特征在于,包括:
处理器,适于执行计算机程序;
计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被所述处理器执行时,实现根据权利要求1至6中任一项所述的方法。
9.一种计算机可读存储介质,其特征在于,用于存储计算机程序,当所述计算机程序在计算机上运行时,使得计算机执行根据权利要求1至6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410052407.2A CN117579820B (zh) | 2024-01-15 | 2024-01-15 | 编码参数确定方法、装置、电子设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410052407.2A CN117579820B (zh) | 2024-01-15 | 2024-01-15 | 编码参数确定方法、装置、电子设备以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117579820A CN117579820A (zh) | 2024-02-20 |
CN117579820B true CN117579820B (zh) | 2024-05-10 |
Family
ID=89886495
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410052407.2A Active CN117579820B (zh) | 2024-01-15 | 2024-01-15 | 编码参数确定方法、装置、电子设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117579820B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118368423B (zh) * | 2024-06-19 | 2024-10-15 | 摩尔线程智能科技(北京)有限责任公司 | 一种视频编码方法及视频编码器、电子设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111787319A (zh) * | 2020-07-22 | 2020-10-16 | 腾讯科技(深圳)有限公司 | 一种视频信息处理方法、多媒体信息处理方法及、装置 |
CN113014926A (zh) * | 2021-04-30 | 2021-06-22 | 北京汇钧科技有限公司 | 视频的转码方法、装置、电子设备及存储介质 |
CN114339316A (zh) * | 2022-01-11 | 2022-04-12 | 北京易智时代数字科技有限公司 | 一种基于视频直播的视频流编码处理方法 |
CN116567256A (zh) * | 2022-01-27 | 2023-08-08 | 腾讯科技(深圳)有限公司 | 分层编码方法、装置、设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116648918A (zh) * | 2020-12-23 | 2023-08-25 | 抖音视界有限公司 | 视频解码器初始化信息 |
-
2024
- 2024-01-15 CN CN202410052407.2A patent/CN117579820B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111787319A (zh) * | 2020-07-22 | 2020-10-16 | 腾讯科技(深圳)有限公司 | 一种视频信息处理方法、多媒体信息处理方法及、装置 |
CN113014926A (zh) * | 2021-04-30 | 2021-06-22 | 北京汇钧科技有限公司 | 视频的转码方法、装置、电子设备及存储介质 |
CN114339316A (zh) * | 2022-01-11 | 2022-04-12 | 北京易智时代数字科技有限公司 | 一种基于视频直播的视频流编码处理方法 |
CN116567256A (zh) * | 2022-01-27 | 2023-08-08 | 腾讯科技(深圳)有限公司 | 分层编码方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117579820A (zh) | 2024-02-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11218694B2 (en) | Adaptive multiple transform coding | |
KR102288109B1 (ko) | 비디오 압축에서의 양방향 예측 | |
US9762904B2 (en) | Performing motion vector prediction for video coding | |
US9432696B2 (en) | Systems and methods for low complexity forward transforms using zeroed-out coefficients | |
KR102427065B1 (ko) | 인코딩된 비트 스트림에서의 움직임 벡터 표현 | |
CN107005698B (zh) | 支持尽力服务解码的元数据提示 | |
KR102653856B1 (ko) | 비디오 코딩에서 조건적 디코더측 모션 벡터 정제를 위한 장치 및 방법 | |
KR20210072064A (ko) | 인터 예측 방법 및 장치 | |
KR20240152970A (ko) | 비디오 인코더, 비디오 디코더 및 대응하는 인코딩 및 디코딩 방법 | |
JP2017511620A (ja) | オーバーラップエリア内の再構成されたサンプル値のブロックベクトル予測及び推定におけるイノベーション | |
US9924182B2 (en) | Method for predicting disparity vector based on blocks for apparatus and method for inter-layer encoding and decoding video | |
KR20130045785A (ko) | 메모리 관리 방법 및 그를 이용한 복호화 장치 | |
CN111200735B (zh) | 一种帧间预测的方法及装置 | |
CN117579820B (zh) | 编码参数确定方法、装置、电子设备以及存储介质 | |
CN107079159B (zh) | 基于多核系统的并行视频解码的方法和设备 | |
US11601667B2 (en) | Inter prediction method and related apparatus | |
CN111758255A (zh) | 用于视频编解码的位置相关空间变化变换 | |
US9967585B2 (en) | Method for encoding and decoding images, device for encoding and decoding images and corresponding computer programs | |
CN116527942B (zh) | 一种图像编解码方法及装置 | |
CN110876057B (zh) | 一种帧间预测的方法及装置 | |
CN116918326A (zh) | 视频编解码方法与系统、及视频编码器与视频解码器 | |
RU2819065C2 (ru) | Видеокодер, видеодекодер и соответствующий способ | |
US20240223760A1 (en) | Adaptive bilateral filtering for video coding | |
US20240357128A1 (en) | Systems and methods for adaptive extrapolation filter based intra prediction mode | |
WO2022155922A1 (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |