一种视频编解码方法、设备和存储介质与流程

专利2022-05-09  2


本发明涉及计算机及通信
技术领域
,具体涉及一种视频编解码方法、设备和存储介质。
背景技术
:视频编解码作为较为常用的视频压缩方法近年来发展十分迅速,视频编解码标准不断更新,算法复杂度提高,计算量大,增加了计算耗时。随着科技进步,各学科的交叉研究也得到较为广泛的关注,采用深度学习等后处理方法对编解码压缩后的视频序列做后处理增强也取得了一定成果。但是当前视频解码和后处理联合技术的整体复杂度较高,计算时间过长,无法满足实时应用的需求,因而不能在业界得到推广。例如,对于当前使用h.265/hevc标准编解码器hm,其标准较新,算法本身复杂度较高,限制了深度学习等后处理技术的联合应用。同时,h.265/hevc编解码的环内滤波流程dbf和sao包含了去方块效应和振铃效应质量提升功能,当前很多压缩视频后处理增强技术,如stdf(spatio-temporaldeformablefusion,时空(可)变形融合),都会包含针对图像质量的滤波等增强算法,所以编解码和后处理会存在较多的重复提升质量的算法,计算复杂度大,耗时长。技术实现要素:本发明旨在至少解决现有技术中存在的技术问题之一,提出一种视频编解码方法,能够降低视频编解码的时间,减少计算复杂度,有利于视频解码与后处理技术的联合应用,便于推广使用。根据本发明的第一方面实施例的一种视频编解码方法,包括:在编码端应用dbf滤波和/或sao滤波,对于所述dbf滤波,根据编码单位的深度,对所述深度小于深度阈值的编码单位,跳过其dbf滤波;对于所述sao滤波,根据编码单位的原始图像数据与做sao之前的重构数据的差值,对差值小于差值阈值的编码单位,不进行sao滤波;在解码端进行解码和后处理。利用编码单位信息和残差数据,在编码时对dbf和/或sao滤波进行早期跳过处理,减少编码计算量,同时对解码端的重复工作进行了跳过优化,有效降低了计算量。在解码时利用后处理进行质量增强,可以弥补因为快速算法造成的质量损失,在保证解码质量的同时有效降低编解码复杂度,减少编解码时间。根据本发明的一些实施方式,所述编码单位为ctu。该方法适用于h.265/hevc编码标准或者基于h.265编码框架的更新一代的编码标准,例如h.266/vvc。示例的,对于sao滤波,所述差值可选择亮度残差和,以及两个色度cb、cr的残差和,例如ctu原始像素与做sao之前重构像素的亮度残差和、以及ctu原始像素与做sao之前重构像素在色度cb和cr上的残差和的平均值。根据本发明的一些实施方式,所述后处理为基于深度学习的后处理。示例地,深度学习模型包括但不限于深度神经网络模型,例如stdf(spatio-temporaldeformablefusion,时空(可)变形融合)等。根据本发明的第二方面实施例的一种视频编解码设备,包括:至少一个存储器,用于存储计算机程序;以及至少一个处理器,用于运行所述至少一个存储器中存储的计算机程序以实现上述的视频编解码方法。根据本发明的一些实施方式,还包括视频采集终端。根据本发明的第三方面实施例的一种计算机可读存储介质,其上存储有计算机程序,其特征在于,当所述计算机程序被处理执行时,实现上述的视频编解码方法。本发明的一种或多种实施方式至少具有以下有益效果:在保证解码视频质量损失较小的情况下,大大缩减了计算时间,有效降低了编解码的计算复杂度。实验表明,在h.265/hevc编解码中的dbf和sao环节进行早期跳过,基于stdf进行视频后处理增强,仅就解码算法而言,相比于原始h.265/hevc即可降低8%以上的计算复杂度,同时只损失了0.03%的客观质量。附图说明图1展示了h.265/hevc编码器对一帧图的cu划分结构;图2具体实施例中早期跳过dbf的算法流程;图3展示了具体实施例的早期跳过dbf的算法在不同avgdepth阈值下的测试结果;图4是具体实施例的早期跳过sao算法流程图;图5是具体实施例中一个测试序列的所有ctu的disty和distc分布情况;图6是本发明一个实施例的设备框图。具体实施方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。本发明实施例提供一种视频编解码方法,在编码端对dbf滤波和/或sao滤波进行早期跳过优化,其中:对于dbf滤波,根据编码单位的深度,对深度小于深度阈值的编码单位,跳过其dbf滤波;对于sao滤波,根据编码单位的原始图像数据与做sao之前的重构数据的差值,对差值小于差值阈值的编码单位,不进行sao滤波;在解码端进行解码和后处理。该方法中,深度阈值用于判断哪些编码单位可以跳过dbf,即深度阈值的取值一般不高于编码单位的最大深度;差值阈值用于判断哪些编码单位可以跳过sao,同理,差值阈值的取值一般不高于编码单位的原始图像数据与做sao之前的重构数据的最大差值。对于编码单位在滤波环节的跳过优化很少被现有编码方法所考虑,以避免影响视频解码质量。随着编码规则的不断更新及编码方法的复杂化,视频编解码的计算量也在增加,滤波操作对于编码和解码操作的计算效率和处理时间会产生不利影响。针对这一问题,发明人发现,对于环内滤波dbf和sao两个部分,作用于不同的编码单元,滤波效益的差别较大,存在一些无用或滤波效益较低的任务量,通过设置相应的阈值跳过这些低效的工作,可以减少编码计算量及编解码端的重复工作。配合在解码端进行后处理,在深度神经网络等视频编解码后处理增强效果下,能够完成视频图像的滤波,对比度相对增强等效果,恢复补偿视频图像中丢失的运动细节。利用后处理来进一步恢复视频图像利于弥补因快速算法造成的质量损失,在基本保证客观质量的基础上,降低解码复杂度,减少解码时间。可以理解的是,阈值越大,跳过滤波的编码单位越多,可能会在一定程度上增加质量损失,在实际应用中,根据后处理方式及客观质量要求的不同,通常在编码单位的深度范围、差值范围内取值作为阈值点,以更好地平衡解码效率与解码质量。下面以当前广泛使用的h.265/hevc的标准参考编码器hm16.9为例,基于stdf深度学习神经网络进行视频后处理增强,对上述方法的应用进行说明。本实例应用的设备平台为pc端,使用ubuntu18.04的操作系统,gpu型号为geforcertx2080,8g显存。采用anaconda3.5第三方依赖库管理工具构造虚拟的python3.7开发环境,实验的深度学习框架是在学术界广泛受欢迎的pytorch框架。由于整个实验是需要在gpu上面做训练,还安装了cuda的驱动程序,及其他的依赖库,包括tqdm,lmdb,pyyaml,opencv-python,scikit-image等。视频编解码器使用h.265/hevc视频编码标准的参考编解码器hm16.9(hevctestmodel)。表1展示了整体设备配置信息。表1(1)早期跳过dbf滤波h.265/hevc编码器为了寻找最优的cu深度,对编码单元(cu)采用四叉树(qt)划分的方式,递归的划分遍历cu深度,包括64*64,32*32,16*16,8*8的cu块(共4层深度),64*64的cu块深度为0,8*8的cu块深度为3。针对编码器对于cu的深度选择方面,如图1所示,展示了一帧图中cu的划分情况,对于平滑的,纹理信息简单的区域,编码器更容易选择大块的cu作为最优的编码块,即更浅的深度/更小的深度值;而对于纹理信息丰富的区域,编码器更倾向于选择更小块的,更精细的cu编码,即更大的深度值。h.265/hevc中ctu(codingtreeunit,编码树单元)属于四叉树(qt)划分的根节点,即64*64的cu块。解码器dbf的内部实现基于ctu级别,因此计算ctu深度作为编码单位深度。编解码器中将ctu分成16*16(256)个4*4的最小块,并存储每个4*4小块的深度值,可通过计算256个4*4小块的平均深度(avgdepth)作为ctu深度,如公式(1)所示,其中blockdepth(i)表示第i个4*4小块的深度值。dbf对ctu的“滤波效益”可采用计算较简单的平均sad(sumofabsolutedifferences)衡量,表示滤波前后ctu的变化大小。“滤波效益”较高是指经过dbf滤波后,ctu变化较大,否则“滤波效益”低。平均sad(avgsad)的计算如公式(2)所示,其中p(x,y)和p′(x,y)分别代表dbf滤波前后的ctu在(x,y)处的像素值。avgsad=∑(x,y)∈ctu|p′(x,y)-p(x,y)|/256公式(2)在hm16.9上采用low_delay_p的配置,测试5个视频序列(如表2所示),每个序列测5帧,共37640个ctu。将0~3的深度值范围以0.5为区间步长,分为6个区间,统计每个区间上面dbf“滤波效率”,即avgsad的分布,统计结果如表3所示。表2视频序列分辨率basketballdrill832x480basketballdrive1920x1080basketballpass416x240kristenandsara1280x720traffic2560x1600表3从表3中可以发现,平均深度avgdepth在0~0.5区间的ctu中,几乎所有(97.79%)的ctu的avgsad小于3.0,说明avgdepth为0~0.5区间的ctu的dbf滤波效率相对不高,可以考虑跳过。根据后续试验结果发现,还可以进一步调整ctu深度阈值,提高跳过ctu的占比,平衡质量与效率,实现实际速度的较大提升。为了寻找速度和质量折衷的avgdepth区间,在表4的11个不同分辨率的hevc标准测试序列上,用不同的avgdepth阈值(0.5,1.0,1.5,2.0,2.5,3.0)测试提出的早期跳过ctu层次dbf的算法的性能。表4早期跳过ctu层次dbf的算法是遍历当前视频帧里所有的ctu,逐一对ctu做如下处理,如图2所示:s101.根据公式(1)计算当前ctu的平均深度(avgdepth),如果avgdepth<avgdepth阈值,则执行步骤103,否则执行步骤102;s102.对当前ctu做dbf滤波;s103.跳过当前ctu的dbf滤波。图3为早期跳过ctu的dbf算法在不同avgdepth阈值下的测试结果。图中,计算耗时(time,单位为秒)和psnr取所有视频序列的平均值,横坐标“原始”对应未跳过dbf,psnr_enhanced为解码加后处理增强质量效果,psnr_origin为不加后处理图像质量。可以观察到,后处理能有效弥补因跳过滤波过程带来的质量损失。与原始编解码器相比,在bitrate(码率)和time方面,avgdepth为1.5处的码率正处在码率上升的前中期阶段,码率上升不算太大,但是与原始相比,time下降处于中后期阶段,并且经过后处理质量增强后,基本上可以弥补因为快速算法造成的质量损失。后续实验表明,选择1.5为avgdepth阈值,整体效果较好。(2)早期跳过sao滤波sao是用来去除视频中的振铃效应,主要模式分为三种,即off模式(不进行补偿)、eo或bo模式(根据ctu像素特点进行eo补偿或bo补偿)和merge模式(使用上方ctu或左侧ctu的sao参数进行补偿)。振铃效应是指在块的边缘会产生波纹现象,会影响视频的主观质量,其产生的根本原因是在变换和量化的过程中导致的高频信息的丢失。sao以ctu为处理单位,对波纹曲线部分的像素进行操作,在波峰处添加负值、波谷处添加正值,从而达到去除振铃效应的目的。考虑到sao的目的是为了去除在变换和量化中损失高频信息所导致的振铃效应,可以选择在损失高频信息较少的块中跳过环路滤波的sao阶段,只对损失高频信息较多的块进行sao,从而实现在视频质量损失较低的情况下尽可能地跳过sao,以达到减少解码时间的目的。为此,可选择ctu原始像素与做sao之前重构像素在亮度上的残差和,以及在色度cb、cr上的残差和来体现高频信息的丢失程度。具体地,可以是ctu原始像素与做sao之前重构像素的亮度残差和、以及ctu原始像素与做sao之前重构像素在色度cb和cr上的残差和的平均值,相应地,就色度与亮度两个分量,分别设置阈值。图4显示了早期跳过ctu的sao的算法流程,以当前ctu为例,具体如下:s201.统计做sao之前ctu重建像素和ctu原始像素在亮度上的残差和disty;s202.统计做sao之前ctu重建像素和ctu原始像素在色度cb和cr上的残差和的平均值distc;s203.当disty小于disty阈值时,跳过ctu亮度的sao,否则对ctu做亮度的sao;s204.当distc小于distc阈值时,跳过ctu色度的sao,否则对ctu色度做sao。disty和distc的计算公式分别为:其中,heighty和widthy分别为ctu在亮度上像素的高度和宽度,heightc和widthc分别为ctu在色度上像素的高度和宽度。ctuori,y(x,y)和cturec,y(x,y)分别是原始ctu和重建ctu的亮度分量在点(x,y)处的值,ctuori,cb、cturec,cb、ctuori,cr和cturec,cr(x,y)以此类推。为了选取最合适的disty阈值和distc阈值,对一个测试序列的每一个ctu的disty和distc进行了追踪分析,如图5所示,图中横坐标为ctu数量。可以看到,做sao之前,绝大部分ctu的distc处于2000以下,且比较平稳。而当distc超过2000后,其变化情况十分剧烈。disty的变化情况从12000后开始变得剧烈,disty小于12000的ctu涵盖了80%。可以考虑将disty和distc的阈值分别取为12000和2000。后续实验测得,disty和distc阈值分别取12000和2000时,整体效果最好。此时,可以节省2.35%的解码时间,同时对图像质量和码率的影响可以忽略不计,解码后的视频经过后处理对视频进行质量增强后,可以达到与原始编码器编码的码流经解码和后处理后相同的图像质量。选取合适的阈值后,对11个视频编码联合组(jointcollaborativeteamonvideocoding)给出的未压缩的h.265标准测试序列进行了测试,如表4所示。在hm16.9上采用low_delay_p的配置,量化参数(qp)为37,对11个测试序列做视频编解码,在编码同时进行dbf和/或sao的早期跳过优化算法,得到编码码流,并对码流进行解码和使用jianingdeng等人在论文“spatio-temporaldeformableconvolutionforcompressedvideoqualityenhancement”提出的stdf时空可变融合方案进行后处理增强。采用峰值信噪比psnr值作为视频图像客观质量的评估指标,并将优化前峰值信噪比psnro和优化后峰值信噪比psnr′进行比较,并使用δpsnr来衡量质量变化的情况。如果δpsnr变化较小,证明本方法早期跳过算法性能较好。psnr峰值信噪比的计算方式如公式(5),δpsnr计算方式如公式(6),并使用ps来表示早期跳过优化后解码客观质量相对于未进行早期跳过优化时客观质量变化程度,ps计算公式如公式(7)δpsnr=psnro-psnr′公式(6)对于时间性能评价指标,分别统计早期跳过优化后解码总体时间topt和未进行早期跳过优化时解码总体时间tori,并使用ts来表示早期跳过优化前后解码时间缩减程度。ts计算公式如公式(8)所示。表5和表6展示了早期跳过dbf滤波优化前后的对比结果。从平均意义上来讲,早期跳过dbf相比于未优化的解码算法在只损失了0.03%客观质量(0.009db)的情况下,可以降低5.96%的计算复杂度。表5表6表7和表8展示了早期跳过sao前后的对比结果。从平均意义上来讲,早期跳过sao滤波相比于未优化的解码算法,基本上在保证客观质量变化不大的情况下,有效降低了解码的计算复杂度,经过大量数据测试,平均可以减少1.39%的解码时间。表7表8表9和表10展示了同时进行早期跳过dbf和早期跳过sao优化(简称联合优化)前后的对比结果。从平均意义上来讲,联合优化后的算法相比于为优化的解码算法在只损失了0.03%客观质量(0.009db)的情况下,可以降低8%以上的计算复杂度。现有h.265标准的参考编码器hm等编解码器和基于深度神经网络等后处理技术目前还未能较好的结合在一起。一方面因为h.265/hevc标准较新,算法复杂度较高,而且深度学习网络模型巨大,计算量庞大,并且当前深度学习后处理网络和h.265/hevc解码流程相对独立,在解码端进行解码时,存在提升质量的环内滤波等流程,用以去除方块效应、振铃效应、颜色偏差以及图像模糊等质量损失。在深度学习网络后处理中,也存在类似滤波等质量增强算法,两者存在了部分较为冗余的重复质量增强工作,这就增加了无用的任务量,从而导致整体算法复杂度偏高,浪费了计算资源,增加计算耗时。本方法在编码端对dbf和/或sao滤波进行早期跳过处理,有效降低编解码及后处理计算量,且利用后处理进行质量增强弥补因为快速算法造成的质量损失,在保证解码质量的同时有效降低编解码复杂度,减少编解码时间。值得注意的是,以上示例中使用h.265编码标准,编码单位为ctu,但是本方法并不局限于上述编码规则,例如,对于h.264及其他宏块模式的编码标准,以宏块为编码单位。本方法对后处理方式没有特别限定,除了示例的基于stdf的后处理增强以外,还可采用其他的深度学习后处理或传统后处理方法。例如,针对去噪、锐化、提高帧率等方面的视频处理功能的优化,提出了效率较高的bm3d去噪等方法。也有研究者提出,依靠视频帧的一致性,利用周围区域信息来提高当前图像区域质量(borkowskid,jakubowskia,kjańczak-borkowska.feynman-kacformulaandrestorationofhighisoimages[c]//internationalconferenceoncomputervisionandgraphics.springerinternationalpublishing,2014.)。dong等人在2015年提出了一种四层卷积神经网络增强视频图像质量,命名为ar-cnn方法(c.dong,y.deng,c.changeloy,andx.tang,“compressionartifactsreductionbyadeepconvolutionalnetwork,”inproceedingsoftheieeeinternationalconferenceoncomputervision(iccv),2015,pp.576–584.)。杨等人在2019年首次提出了基于深度学习的多帧质量增强方法mfqe(reny,maix,wangz,etal.multi-framequalityenhancementforcompressedvideo[c]//2018ieee/cvfconferenceoncomputervisionandpatternrecognition(cvpr).ieee,2018.),以其中质量较高的一帧作为关键帧,即作为其他相对质量较低帧的参考帧,并随着研究深入,进一步提出了另一种新的多帧卷积神经网络(mf-cnn),能够聚合关键帧和相邻质量较低的相关信息,从而更加有效的提升的相关视频帧的质量mfqe2.0(guanz,xingq,maix,etal.mfqe2.0:anewapproachformulti-framequalityenhancementoncompressedvideo[j].ieeetransactionsonpatternanalysisandmachineintelligence,2019,pp(99):1-1.)。本发明实施例还提供一种视频编解码设备,包括:至少一个存储器,用于存储计算机程序;以及至少一个处理器,用于运行至少一个存储器中存储的计算机程序以实现上述的视频编解码方法。该设备可以是计算机或服务器,设备配置可参考上述的实施例。图6以一个处理器100和一个存储器200为例,在存储器200中存储有软件程序、指令、数据集等信息,处理器100通过运行存储在存储器200中的数据,从而执行前述的视频编解码方法。在一种可能的实施方式中,该设备还包括与其通信连接的视频采集终端,用于采集待编码视频,视频采集终端可以是配置有摄像头的智能手机、平板电脑、个人计算机,或者监控设备等,不仅可以处理已有视频数据,还能实现在网络直播、视频点播、线上课堂等的实时应用。本发明一个实施例提供的一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,该计算机程序被一个或多个处理器执行,例如,被图6中的一个处理器100执行,可使得上述一个或多个处理器执行上述方法实施例中的视频编解码方法。以上实施例是对本发明的解释,但是,本发明并不局限于上述实施方式中的具体细节,本领域的技术人员在本发明的技术构思范围内进行的多种等同替代或简单变型方式,均应属于本发明的保护范围。当前第1页12
转载请注明原文地址: https://doc.8miu.com/read-150038.html

最新回复(0)