一种视频转码方法及装置、电子设备及存储介质与流程

文档序号:35788002发布日期:2023-10-21 19:29阅读:22来源:国知局
一种视频转码方法及装置、电子设备及存储介质与流程

本技术实施例涉及广播电视,尤其涉及一种视频转码方法及装置、电子设备及存储介质。


背景技术:

1、在avs3视频转码行业中,超高清视频是目前音视频产业发展的趋势。与普通的高清视频(1920x1080)相比,4k超高清视频(3840x2160)分辨率是其4倍,8k(7680x4320)分辨率是高清视频的16倍。在时间采样率上,超高清视频普遍采用50或60fps帧率以实现更流畅的播放体验。总体而言,超高清视频全维度提升了分辨率、亮度、色彩、帧率、色深、采样率等指标。更高的技术指标,给观众带来更清晰和更有沉浸感的视频观影体验,但也使音视频数据量和处理复杂度成倍增加。

2、随着4k/8k等高新视频技术的发展,为了提高视频压缩效率,avs工作组从2018年3月开始制定新一代avs3视频编码标准。在压缩效率上,avs3视频编码比avs2提升了约一倍,且与国际同类视频编码标准vvc相当。因此,将avs3应用在超高清视频领域,可有效降低传输和存储成本,有利于超高清产业的快速发展。

3、参见图1,avs3与上一代视频编码标准avs2相比,提供了更灵活的块划分方式,编码复杂度大幅增加。具体而言,在编码块划分方式上,avs3采用了基于四叉、二叉(qtbt)和扩展四叉树(eqt)三种划分方式。qtbt及eqt的划分允许出现多种非方形编码单元,有利于更精确的匹配视频纹理。

4、参见图2,avs3增加了许多编码工具以提升帧内预测编码效率。在帧内预测角度上,对avs2中的33种帧内预测模式进行扩展,将角度预测模式增加到了62个,提高预测准确度。新增了帧内衍生模式(intra derived tree),进一步将cu划分为6种pu,以适应更复杂的图像纹理。

5、在帧间预测上,avs3采用了基于历史运动矢量的预测(hmvp)和高级运动矢量表达(umve)等技术。hmvp扩展了运动矢量候选个数,通过动态更新运动候选矢量列表,保留与当前块运动相关性最高的候选mv,使得跳过模式和直接模式的预测准确度更高。umve则对跳过模式和直接模式的候选运动矢量直接进行偏移,进一步扩充了候选运动矢量集合,因此也可以提高预测精度。

6、编码参数选择方面,avs3在random access配置中,通常采用gop16的配置,并且为了实现更高的预测效率,avs3采用了分层预测结构。参见图3,将图像序号0到16的帧,在时域上分为5层,赋值为temporal id,取值范围为0-4。在帧的参考关系上,只允许temporalid高的帧参考temporal id低的帧,反过来则不允许。这种分层预测结构本意是最大化提高双向预测的效率。对于运动相对不剧烈的场景,分层预测结构可大幅提高压缩效率;但对于运动较剧烈场景,这种结构则可能带来负增益。这是因为参考结构中,temporal id为0,1,2的帧参考距离过远,参考帧与当前帧的时域相关性不高,预测效果不好。因此,商用编码器普遍采用动态调整b帧数量以适配不同运动程度的场景。对于运动物体较多,运动幅度较大的场景,适当减少b帧数量,降低参考距离可提高编码效率;反之则增加b帧数量,提高预测效率来提高压缩率。商用编码器通常在预分析阶段自适应决定当前合适的b帧数量。图4为一种自适应b帧数量的编码结构示意图。0-4帧为运动特别剧烈场景,因此采用b帧=0的帧结构,每帧参考前一帧,参考距离最近。4-8帧为运动较为剧烈场景,采用b帧=3的帧结构,参考距离也较近,中间有3个b帧用双向预测。8-16帧为运动平缓场景,采用b帧=7的帧结构,参考距离适当放宽,更多的帧可以使用双向预测。

7、在avs3实时编码过程中,编码前通常会采用预编码获取编码基本信息。预编码也叫预分析,是指在编码当前帧前,先向后缓存n帧,对这些帧进行复杂度估算,从而合理决定帧类型和分配码率。具体而言,预分析是在输入的原始视频上进行初略的编码模式计算,包括每个块的帧内、帧间预测的satdcost,以此得到预分析队列中所有图像的初略编码复杂度信息。这些信息主要用于编码帧类型决策算法、比特分配算法和编码快速算法等。预分析帮助合理的确定帧类型,并且能有效控制码率波动,提高视频在给定码率下的主客观画质。不过,预分析会增加额外的计算量,给超高清实时转码带来挑战。

8、相关技术中,最常见的转码框架如图5所示。直播信号或者离线素材经解析模块提取为video packet队列和audio packet队列,video packet队列送入视频解码模块,解码后的yuv图像经图像处理模块后送入视频编码模块编码成压缩码流。此过程中,解码模块向编码模块传递的仅为yuv图像,没有其他的交互。采用此转码框架进行4k/8k超高清avs3转码,由于解码和编码的复杂度都很高,因此难以达到50甚至60fps的实时处理速度。

9、针对现有avs3视频转码的不足,我们需要设计一种转码优化方法,能够解决现有转码框架在进行超高清avs3实时转码时的性能不足问题,大幅提升avs3超高清转码速度,同时不损失编码质量。


技术实现思路

1、为了解决上述技术问题或者至少部分地解决上述技术问题,本技术实施例提供了一种视频转码方法及装置、电子设备及存储介质。

2、第一方面,本技术实施例提供了一种视频转码方法,包括:

3、对获取的视频包队列进行解码,得到多帧源图像数据以及每帧源图像数据的解码信息;

4、对每帧源图像数据进行图像处理,得到每帧目标图像数据;

5、根据每帧源图像数据的解码信息对每帧目标图像数据进行预分析,得到每帧目标图像数据的帧类型和帧复杂度信息;

6、按照每帧目标图像数据的帧类型和帧复杂度信息,对每帧目标图像数据进行编码,得到编码后码流;

7、基于编码后码流与获取的音频包队列,封装目标视频文件。

8、在一种可能的实施方式中,每帧源图像数据的解码信息包括当前帧类型、时间id值及当前帧所有编码块的解码信息,其中,每一编码块的解码信息包括编码块的位置和块大小、预测模式、运动信息和帧内预测角度。

9、在一种可能的实施方式中,所述根据每帧源图像数据的解码信息对每帧目标图像数据进行预分析,得到每帧目标图像数据的帧类型,包括:

10、响应于当前帧源图像数据的解码信息中的帧类型为i帧,当前帧目标图像数据的帧类型为i帧;

11、响应于当前帧源图像数据的解码信息中的帧类型不是i帧,根据预分析队列中各帧帧内预测像素点所占比例确定b帧个数,其中,预分析队列为以当前帧为始向后缓存预设帧数的帧队列。

12、在一种可能的实施方式中,所述源图像数据中b帧数为15,所述根据预分析队列中各帧帧内预测像素点所占比例确定b帧个数,包括:

13、获取当前预分析队列中,时间id为0和1的非i帧的每一帧帧内预测像素点所占比例的第一平均值;

14、响应于所述第一平均值小于第一预设阈值,当前的b帧个数等于15;

15、响应于所述第一平均值大于或等于第一预设阈值,获取当前预分析队列中,时间id为2和3的帧的每一帧帧内预测像素点所占比例的第二平均值;

16、响应于所述第二平均值小于第二预设阈值,当前的b帧个数等于7;

17、响应于所述第二平均值大于或等于第二预设阈值,当前的b帧个数等于3。

18、在一种可能的实施方式中,所述每一帧帧内预测像素点所占比例通过以下表达式计算得到:

19、

20、其中,intra_pixel_ratio为每一帧帧内预测像素点所占比例,intra_pixel_number为当前帧所有帧内预测块包含的像素点个数,inter_pixel_number为当前帧所有帧间预测块包含的像素点个数。

21、在一种可能的实施方式中,所述根据每帧源图像数据的解码信息对每帧目标图像数据进行预分析,得到每帧目标图像数据的帧复杂度信息,包括:

22、对于当前帧目标图像数据中的每一编码块,根据当前帧源图像数据的解码信息中的块位置和大小,从当前帧解码信息内存中检索对应块是否存在;

23、响应于当前帧解码信息内存中对应块存在,且该对应块的预测模式为帧内预测,将解码信息中对应块的帧内预测方向作为当前块的预测方向;

24、响应于当前帧解码信息内存中对应块存在,且该对应块的预测模式为帧间预测,根据解码信息中对应块的运动信息计算当前帧目标图像数据对应块的运动矢量。

25、在一种可能的实施方式中,通过以下表达式,根据解码信息中对应块的运动信息计算当前帧目标图像数据对应块的运动矢量:

26、

27、其中,mvdec为解码信息中对应块的运动矢量,poccur为当前帧目标图像数据的图像序号,enc_pocref为当前帧目标图像数据的参考帧图像序号,dec_pocref为当前帧源图像数据的参考帧图像序号,mvenc为当前帧目标图像数据对应块的运动矢量。

28、第二方面,本技术实施例提供了一种视频转码装置,包括:

29、解码模块,用于对获取的视频包队列进行解码,得到多帧源图像数据以及每帧源图像数据的解码信息;

30、图像处理模块,用于对每帧源图像数据进行图像处理,得到每帧目标图像数据;

31、预分析模块,用于根据每帧源图像数据的解码信息对每帧目标图像数据进行预分析,得到每帧目标图像数据的帧类型和帧复杂度信息;

32、编码模块,用于按照每帧目标图像数据的帧类型和帧复杂度信息,对每帧目标图像数据进行编码,得到编码后码流;

33、封装模块,用于基于编码后码流与获取的音频包队列,封装目标视频文件。

34、第三方面,本技术实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;

35、存储器,用于存放计算机程序;

36、处理器,用于执行存储器上所存放的程序时,实现上述的视频转码方法。

37、第四方面,本技术实施例提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述的视频转码方法。

38、本技术实施例提供的上述技术方案与现有技术相比至少具有如下优点的部分或全部:

39、本技术实施例所述的视频转码方法,对获取的视频包队列进行解码,得到多帧源图像数据以及每帧源图像数据的解码信息;对每帧源图像数据进行图像处理,得到每帧目标图像数据;根据每帧源图像数据的解码信息对每帧目标图像数据进行预分析,得到每帧目标图像数据的帧类型和帧复杂度信息;按照每帧目标图像数据的帧类型和帧复杂度信息,对每帧目标图像数据进行编码,得到编码后码流;基于编码后码流与获取的音频包队列,封装目标视频文件,将解码图像及其解码信息一起用于编码,在编码过程中使用每帧图像的解码信息辅助编码决策,加速转码过程,大幅度降低预编码计算量,4k/8k等超高清视频的转码速度综合提升幅度达15%左右,并且编码质量基本没有损失。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1