CN117956158A - 一种视频处理方法及相关装置 - Google Patents

一种视频处理方法及相关装置 Download PDF

Info

Publication number
CN117956158A
CN117956158A CN202211282417.2A CN202211282417A CN117956158A CN 117956158 A CN117956158 A CN 117956158A CN 202211282417 A CN202211282417 A CN 202211282417A CN 117956158 A CN117956158 A CN 117956158A
Authority
CN
China
Prior art keywords
video frame
video
frame sequence
image
ith
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
CN202211282417.2A
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.)
Tencent Technology Beijing Co Ltd
Original Assignee
Tencent Technology Beijing 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 Tencent Technology Beijing Co Ltd filed Critical Tencent Technology Beijing Co Ltd
Priority to CN202211282417.2A priority Critical patent/CN117956158A/zh
Priority to PCT/CN2023/123349 priority patent/WO2024082971A1/zh
Publication of CN117956158A publication Critical patent/CN117956158A/zh
Pending legal-status Critical Current

Links

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/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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • 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/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • 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/142Detection of scene cut or scene change
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/523Motion estimation or motion compensation with sub-pixel accuracy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression

Landscapes

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

Abstract

本申请提供了一种视频处理方法以及相关装置。本申请实施例可应用于云计算领域。其方法包括:将对目标视频的编码任务分解为对组成目标视频的N个视频帧序列分别进行批量处理,在对当前的视频帧序列进行编码时,根据前一个的视频帧序列消耗的服务器算力、当前的视频帧序列的第一视频帧图像的第一图像属性及前一个的视频帧序列的第二视频帧图像的第二图像属性,适应性调整当前的视频帧序列的视频编码参数,使得调整后的编码参数可以满足对当前的视频帧序列的编码需求,提高出帧稳定性,且降低服务器部署成本。

Description

一种视频处理方法及相关装置
技术领域
本申请涉及云计算技术领域,尤其涉及一种视频处理方法及相关装置。
背景技术
随着视频行业飞速发展,视频的应用正朝着高清晰度、高帧率方向快速升级,对视频处理的需求也越来越多,而视频编码作为视频处理的基础,优异的编码能力能够为产品提供高清、流畅的播放体验。
目前,视频编码内核在应用时设置固定的编码参数,对输入的视频源采用相同的编码参数进行视频编码。视频编码参数影响视频编码内核的出帧稳定性,视频编码参数越多且越复杂,视频出帧稳定性越高,相应的需要的视频编码内核算力也越多。直播、实时视频通信、云渲染、云桌面等场景对视频编码内核的出帧稳定性具有较高要求。静态、运动纹理变化小的画面消耗的编码算力相对较少,而运动纹理比较复杂、场景切换比较频繁的画面消耗的编码算力相对比较多。若同一视频中同时包含静态、运动纹理变化小的画面和运动纹理比较复杂、场景切换比较频繁的画面,对该视频均采用相同的编码参数,若编码参数设置较多较复杂,则对于静态、运动纹理变化小的画面会导致较高的服务器部署成本,若编码参数设置较少较简单,对于运动纹理比较复杂、场景切换比较频繁的画面,会导致视频编码压缩的算力不足,使得视频编码内核的出帧稳定性较差。
发明内容
本申请实施例提供了一种视频处理方法以及相关装置,将对目标视频的编码任务分解为对构成目标视频的N个视频帧序列分别进行编码,且对每个视频帧序列进行编码时适应性调整视频编码参数,使得调整后的编码参数可以满足对视频帧序列的编码需求,提高出帧稳定性,且降低服务器部署成本。
本申请的一方面提供一种视频处理方法,包括:
获取目标视频,对目标视频进行分割,得到N个视频帧序列,其中,每个视频帧序列包括至少一个视频帧图像,N为大于1的整数;
从N个视频帧序列中,获取第i个视频帧序列及第i-1个视频帧序列,其中,第i个视频帧序列与第i-1个视频帧序列为相邻且连续的序列,i为大于1的整数;
从第i个视频帧序列中获取第一视频帧图像,从第i-1个视频帧序列中获取第二视频帧图像,其中,第一视频帧图像携带第一图像属性,第二视频帧图像携带第二图像属性,图像属性用于表征视频帧图像的纹理复杂度信息及场景复杂度信息;
获取第i-1个视频帧序列的视频编码的第一算力,其中,第一算力用于表征对第i-1个视频帧序列进行视频编码的服务器算力;
根据第i-1个视频帧序列的视频编码的第一算力、第一图像属性及第二图像属性,确定第i个视频帧序列的视频编码参数;
根据第i个视频帧序列的视频编码参数对第i个视频帧序列进行编码,得到第i个编码视频段。
本申请的另一方面提供了一种视频处理装置,包括:
视频帧序列生成模块,用于获取目标视频,对目标视频进行分割,得到N个视频帧序列,其中,每个视频帧序列包括至少一个视频帧图像,N为大于1的整数;
视频帧序列提取模块,用于从N个视频帧序列中,获取第i个视频帧序列及第i-1个视频帧序列,其中,第i个视频帧序列与第i-1个视频帧序列为相邻且连续的序列,i为大于1的整数;
视频帧图像获取模块,用于从第i个视频帧序列中获取第一视频帧图像,从第i-1个视频帧序列中获取第二视频帧图像,其中,第一视频帧图像携带第一图像属性,第二视频帧图像携带第二图像属性,图像属性用于表征视频帧图像的纹理复杂度信息及场景复杂度信息;
算力获取模块,用于获取第i-1个视频帧序列的视频编码的第一算力,其中,第一算力用于表征对第i-1个视频帧序列进行视频编码的服务器算力;
视频编码参数确定模块,用于根据第i-1个视频帧序列的视频编码的第一算力、第一图像属性及第二图像属性,确定第i个视频帧序列的视频编码参数;
视频帧序列编码模块,用于根据第i个视频帧序列的视频编码参数对第i个视频帧序列进行编码,得到第i个编码视频段。
在本申请实施例的另一种实现方式中,视频编码参数包括编码单元划分深度;视频编码参数确定模块包括编码单元划分深度调整子模块,编码单元划分深度调整子模块用于:
获取第i-1个视频帧序列的第二编码单元划分深度;
若第一算力大于第一算力阈值,或者若第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级大于第二图像属性的属性等级,则根据第二编码单元划分深度,调整第i个视频帧序列的第一编码单元划分深度。其中,第一算力阈值大于第二算力阈值,第一编码单元划分深度低于第二编码单元划分深度。
若第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级等于第二图像属性的属性等级,则保持第i个视频帧序列的第一编码单元划分深度与第i-1个视频帧序列的第二编码单元划分深度相等。
若第一算力小于第二算力阈值,或者若第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级小于第二图像属性的属性等级,则根据第二编码单元划分深度,调整第i个视频帧序列的第一编码单元划分深度。其中,第一算力阈值大于第二算力阈值,第一编码单元划分深度高于第二编码单元划分深度。
在本申请实施例的另一种实现方式中,视频编码参数包括预测单元划分深度;视频编码参数确定模块包括预测单元划分深度调整子模块,预测单元划分深度调整子模块用于:
获取第i-1个视频帧序列的第二预测单元划分深度。
若第一算力大于第一算力阈值,或者若第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级大于第二图像属性的属性等级,则根据第二预测单元划分深度,调整第i个视频帧序列的第一预测单元划分深度,其中,第一预测单元划分深度低于第二预测单元划分深度。
若第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级等于第二图像属性的属性等级,则保持第i个视频帧序列的第一预测单元划分深度与第i-1个视频帧序列的第二预测单元划分深度相等。
若第一算力小于第二算力阈值,或者若第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级小于第二图像属性的属性等级,则根据第二预测单元划分深度,调整第i个视频帧序列的第一预测单元划分深度,其中,第一预测单元划分深度高于第二预测单元划分深度。
在本申请实施例的另一种实现方式中,视频编码参数包括运动估计方式及运动补偿方式;视频编码参数确定模块包括运动估计参数及运动补偿参数调整子模块,运动估计参数及运动补偿参数调整子模块用于:
获取第i-1个视频帧序列的第二运动估计参数及第二运动补偿参数。
若第一算力大于第一算力阈值,或者若第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级大于第二图像属性的属性等级,则根据第二运动估计参数调整第i个视频帧序列的第一运动估计参数,根据第二运动补偿参数调整第i个视频帧序列的第一运动补偿参数。
其中,第一运动估计参数通过控制运动搜索的第一最大像素范围及第一亚像素估计复杂度确定,第二运动估计参数通过控制运动搜索的第二最大像素范围及第二亚像素估计复杂度确定;第一最大像素范围小于第二最大像素范围,第一亚像素估计复杂度小于第二亚像素估计复杂度。第一运动补偿参数通过第一搜索范围确定,第二运动补偿参数通过第二搜索范围确定;第一搜索范围小于第二搜索范围。
若第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级等于第二图像属性的属性等级,则保持第i个视频帧序列的第一运动估计参数与第i-1个视频帧序列的第二运动估计参数相等,以及保持第i个视频帧序列的第一运动补偿参数与第i-1个视频帧序列的第二运动补偿参数相等。
其中,第一运动估计参数通过控制运动搜索的第一最大像素范围及第一亚像素估计复杂度确定,第二运动估计参数通过控制运动搜索的第二最大像素范围及第二亚像素估计复杂度确定;第一最大像素范围等于第二最大像素范围,第一亚像素估计复杂度等于第二亚像素估计复杂度。第一运动补偿参数通过第一搜索范围确定,第二运动补偿参数通过第二搜索范围确定;第一搜索范围等于第二搜索范围。
若第一算力小于第二算力阈值,或者若第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级小于第二图像属性的属性等级,则根据第二运动估计参数调整第i个视频帧序列的第一运动估计参数,以及根据第二运动补偿参数调整第i个视频帧序列的第一运动补偿参数。
其中,第一运动估计参数通过控制运动搜索的第一最大像素范围及第一亚像素估计复杂度确定,第二运动估计参数通过控制运动搜索的第二最大像素范围及第二亚像素估计复杂度确定;第一最大像素范围大于第二最大像素范围,第一亚像素估计复杂度大于第二亚像素估计复杂度。第一运动补偿参数通过第一搜索范围确定,第二运动补偿参数通过第二搜索范围确定;第一搜索范围大于第二搜索范围。
在本申请实施例的另一种实现方式中,视频编码参数包括变换单元划分深度;视频编码参数确定模块包括变换单元划分深度调整子模块,变换单元划分深度调整子模块用于:
获取第i-1个视频帧序列的第二变换单元划分深度。
若第一算力大于第一算力阈值,或者若第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级大于第二图像属性的属性等级,则根据第二变换单元划分深度,调整第i个视频帧序列的第一变换单元划分深度,其中,第一变换单元划分深度低于第二变换单元划分深度。
若第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级等于第二图像属性的属性等级,则保持第i个视频帧序列的第一变换单元划分深度与第i-1个视频帧序列的第二变换单元划分深度相等。
若第一算力小于第二算力阈值,或者若第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级小于第二图像属性的属性等级,则根据第二变换单元划分深度,调整第i个视频帧序列的第一变换单元划分深度,其中,第一变换单元划分深度高于第二变换单元划分深度。
在本申请实施例的另一种实现方式中,第i个视频帧序列的视频编码参数包括第一编码单元划分深度、第一预测单元划分深度、第一变换单元划分深度、第一最大像素范围、第一亚像素估计复杂度及第一搜索范围;视频帧序列编码模块还用于:
从第i个视频帧序列获取目标视频帧图像及目标视频帧图像的目标参考图像,其中,目标参考图像为目标视频帧图像的前一视频帧图像经过编码后得到的;
根据第一编码单元划分深度对目标视频帧图像进行编码单元深度划分,得到K个第一编码单元,其中,K为大于等于1的整数;
根据第一预测单元划分深度对K个第一编码单元进行预测单元深度划分,得到K×L个第一预测单元,其中,L为大于等于1的整数;
根据第一编码单元划分深度对目标参考图像进行编码单元深度划分,得到K个参考编码单元,其中,K个第一编码单元与K个参考编码单元具有对应关系;
根据第一预测单元划分深度对K个参考编码单元进行预测单元深度划分,得到K×L个参考预测单元,其中,K×L个第一预测单元与K×L个参考预测单元具有对应关系;
根据第一最大像素范围及第一亚像素估计复杂度,对K×L个第一预测单元及K×L个参考预测单元进行运动估计处理,生成K×L个第一运动估计单元;
根据第一搜索范围对K×L个第一运动估计单元及K×L个参考预测单元进行运动补偿处理,生成目标帧间预测图像;
根据目标视频帧图像及目标帧间预测图像,生成残差图像;
根据第一变换单元划分深度对残差图像进行变换单元划分,生成变换图像;
对变换图像进行量化,生成残差系数;
将残差系数进行熵编码,生成目标视频帧图像的编码值。
在本申请实施例的另一种实现方式中,视频帧序列编码模块还用于:
对残差系数进行反量化及反变换,生成重构图像残差系数;
通过重构图像残差系数及目标帧间预测图像,生成重构图像;
通过去块滤波器对重构图像进行处理,生成第一滤波图像,其中,去块滤波器用于对重构图像中的垂直边缘进行水平滤波及对重构图像中的水平边缘进行垂直滤波;
通过采样自适应偏移滤波器对第一滤波图像进行处理,生成目标视频帧图像对应的参考图像,其中,参考图像用于对目标视频帧图像的下一帧图像进行编码,采样自适应偏移滤波器用于对第一滤波图像进行带偏移和边缘偏移。
在本申请实施例的另一种实现方式中,视频编码参数确定模块包括处理取消消息子模块,处理取消消息子模块用于:
若第一算力大于第一算力阈值,或者若第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级大于第二图像属性的属性等级,则根据处理取消消息,取消对第i个视频帧序列的去噪处理、锐化处理及时域滤波处理中的一种或多种。
在本申请实施例的另一种实现方式中,视频帧图像获取模块还用于:
分别将第一视频帧图像及第二视频帧图像作为画面场景分类模型的输入,通过画面场景分类模型输出第一视频帧图像的第一场景复杂度信息及第二视频帧图像的第二场景复杂度信息;
分别将第一视频帧图像及第二视频帧图像作为画面纹理分类模型的输入,通过画面纹理分类模型输出第一视频帧图像的第一纹理复杂度信息及第二视频帧图像的第二纹理复杂度信息;
根据第一场景复杂度信息及第一纹理复杂度信息生成第一图像属性,根据第二场景复杂度信息及第二纹理复杂度信息生成第二图像属性。
在本申请实施例的另一种实现方式中,视频帧序列编码模块,还用于:
计算对第i个视频帧序列进行编码时消耗的服务器算力,得到第二算力;
从N个视频帧序列中,获取第i+1个视频帧序列,其中,第i个视频帧序列与第i+1个视频帧序列为相邻且连续的序列;
从第i+1个视频帧序列中获取第三视频帧图像,其中,第三视频帧图像携带第三图像属性;
根据第二算力、第一图像属性及第三图像属性,确定第i+1个视频帧序列的视频编码参数;
根据第i+1个视频帧序列的视频编码参数对第i+1个视频帧序列进行编码,得到第i+1个编码视频段。
在本申请实施例的另一种实现方式中,视频帧序列生成模块还用于:
获取目标视频;
根据场景识别模型,对目标视频进行场景识别,得到N个场景,其中,场景识别模型用于对目标视频中出现的场景进行识别;
根据N个画面场景对目标视频进行分割,得到N个视频片段。
本申请的另一方面提供了一种计算机设备,包括:
存储器、收发器、处理器以及总线系统;
其中,存储器用于存储程序;
处理器用于执行存储器中的程序,包括执行上述各方面的方法;
总线系统用于连接存储器以及处理器,以使存储器以及处理器进行通信。
本申请的另一方面提供了一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面的方法。
本申请的另一方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方面所提供的方法。
从以上技术方案可以看出,本申请实施例具有以下优点:
本申请提供了一种视频处理方法以及相关装置,其方法包括:首先,获取目标视频,对目标视频进行分割,得到N个视频帧序列,其中,每个视频帧序列包括至少一个视频帧图像;其次,从N个视频帧序列中,获取第i个视频帧序列及第i-1个视频帧序列,其中,第i个视频帧序列与第i-1个视频帧序列为相邻且连续的序列;再次,从第i个视频帧序列中获取第一视频帧图像,从第i-1个视频帧序列中获取第二视频帧图像,其中,第一视频帧图像携带第一图像属性,第二视频帧图像携带第二图像属性,图像属性用于表征视频帧图像的纹理复杂度信息及场景复杂度信息;接着,获取第i-1个视频帧序列的视频编码的第一算力,其中,第一算力用于表征对第i-1个视频帧序列进行视频编码的服务器算力;然后,根据第i-1个视频帧序列的视频编码的第一算力、第一图像属性及第二图像属性,确定第i个视频帧序列的视频编码参数;最后,根据第i个视频帧序列的视频编码参数对第i个视频帧序列进行编码,得到第i个编码视频段。本申请实施例提供的视频处理方法,将对目标视频的编码任务分解为对构成目标视频的N个视频帧序列分别进行编码,对当前的视频帧序列进行编码时,根据前一个的视频帧序列消耗的服务器算力、当前的视频帧序列的第一视频帧图像的第一图像属性及前一个的视频帧序列的第二视频帧图像的第二图像属性,适应性调整当前的视频帧序列的视频编码参数,使得调整后的编码参数可以满足对当前的视频帧序列的编码需求,提高出帧稳定性,且降低服务器部署成本。
附图说明
图1为本申请某一实施例提供的视频处理系统的一个架构示意图;
图2为本申请某一实施例提供的视频处理方法的流程图;
图3为本申请另一实施例提供的视频处理方法的流程图;
图4为本申请某一实施例提供的编码单元深度划分的示意图;
图5为本申请另一实施例提供的视频处理方法的流程图;
图6为本申请某一实施例提供的预测单元深度划分的示意图;
图7为本申请另一实施例提供的视频处理方法的流程图;
图8为本申请某一实施例提供的运动估计的示意图;
图9为本申请某一实施例提供的运动补偿的示意图;
图10为本申请另一实施例提供的视频处理方法的流程图;
图11为本申请某一实施例提供的变换单元深度划分的示意图;
图12为本申请另一实施例提供的视频处理方法的流程图;
图13为本申请某一实施例提供的对目标视频帧图像进行编码的示意图;
图14为本申请另一实施例提供的视频处理方法的流程图;
图15为本申请某一实施例提供的编码框架的示意图;
图16为本申请另一实施例提供的视频处理方法的流程图;
图17为本申请另一实施例提供的视频处理方法的流程图;
图18为本申请另一实施例提供的视频处理方法的流程图;
图19为本申请又一实施例提供的视频处理方法的流程图;
图20为本申请某一实施例提供的视频处理装置的结构示意图;
图21为本申请另一实施例提供的视频处理装置的结构示意图;
图22为本申请另一实施例提供的视频处理装置的结构示意图;
图23为本申请另一实施例提供的视频处理装置的结构示意图;
图24为本申请另一实施例提供的视频处理装置的结构示意图;
图25为本申请又一实施例提供的视频处理装置的结构示意图;
图26为本申请某一实施例提供的服务器结构示意图。
具体实施方式
本申请实施例提供了一种视频处理方法以及相关装置,将对目标视频的编码任务分解为对构成目标视频的N个视频帧序列分别进行编码,且对每个视频帧序列进行编码时适应性调整视频编码参数,使得调整后的编码参数可以满足对视频帧序列的编码需求,提高出帧稳定性,且降低服务器部署成本。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“对应于”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
云技术(Cloud technology)基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
云计算(cloud computing)是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。
作为云计算的基础能力提供商,会建立云计算资源池(简称云平台,一般称为IaaS(Infrastructure as a Service,基础设施即服务)平台,在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作系统)、存储设备、网络设备。
按照逻辑功能划分,在IaaS(Infrastructure as a Service,基础设施即服务)层上可以部署PaaS(Platform as a Service,平台即服务)层,PaaS层之上再部署SaaS(Software as a Service,软件即服务)层,也可以直接将SaaS部署在IaaS上。PaaS为软件运行的平台,如数据库、web容器等。SaaS为各式各样的业务软件,如web门户网站、短信群发器等。一般来说,SaaS和PaaS相对于IaaS是上层。
为便于理解本申请实施例提供的技术方案,这里先对本申请实施例使用的一些关键名词进行解释:
视频编码(Video Encoding):指通过压缩技术,将原始视频格式的文件转换成另一种视频格式文件的方式。视频流传输中最为重要的编解码标准有国际电联的H.261、H.263、H.264。
H.264是新一代的编码标准,以高压缩高质量和支持多种网络的流媒体传输著称。在H.264协议里定义了三种帧,完整编码的帧叫I帧,参考之前的I帧生成的只包含差异部分编码的帧叫P帧,还有一种参考前后的帧编码的帧叫B帧。H.264采用的核心算法是帧内压缩和帧间压缩,帧内压缩是生成I帧的算法,帧间压缩是生成B帧和P帧的算法。
在H.264中图像以序列为单位进行组织,一个序列是一段图像编码后的数据流,以I帧开始,到下一个I帧结束。一个序列的第一个图像叫做IDR图像(立即刷新图像),IDR图像都是I帧图像。H.264引入IDR图像是为了解码的重同步,当解码器解码到IDR图像时,立即将参考帧队列清空,将已解码的数据全部输出或抛弃,重新查找参数集,开始一个新的序列。这样,如果前一个序列出现重大错误,在这里可以获得重新同步的机会。IDR图像之后的图像永远不会使用IDR之前的图像的数据来解码。一个序列就是一段内容差异不太大的图像编码后生成的一串数据流。当运动变化比较少时,一个序列可以很长,因为运动变化少就代表图像画面的内容变动很小,所以就可以编一个I帧,然后一直P帧、B帧了。当运动变化多时,可能一个序列就比较短了,比如就包含一个I帧和3、4个P帧。
IDR帧:在视频编码中(H.264/H.265/H.266/AV1等),图像以序列为单位进行组织。一个序列的第一个图像叫做IDR图像(立即刷新图像),IDR图像都是I帧图像。
I帧:帧内编码帧,I帧表示关键帧,可以理解为这一帧画面的完整保留;解码时只需要本帧数据就可以完成(因为包含完整画面)。
IDR会导致参考帧列表(Decoded Picture Buffer,DPB)清空,而I帧不会。IDR帧图像一定是I帧图像,但I帧图像不一定是IDR帧图像。一个序列中可以有很多的I帧图像,I帧图像之后的图像可以引用I帧图像之间的图像做运动参考。一个序列中可以有很多的I帧图像,I帧图像之后的图像可以引用I帧图像之间的图像做运动参考。
P帧:前向预测编码帧。P帧表示的是这一帧跟之前的一个关键帧(或P帧)的差别,解码时需要用之前缓存的画面叠加上本帧定义的差别,生成最终画面。
P帧的预测与重构:P帧是以I帧为参考帧,在I帧中找出P帧“某点”的预测值和运动矢量,取预测差值和运动矢量一起传送。在接收端根据运动矢量从I帧中找出P帧“某点”的预测值并与差值相加以得到P帧“某点”样值,从而可得到完整的P帧。
B帧:双向预测内插编码帧。B帧是双向差别帧,也就是B帧记录的是本帧与前后帧的差别,B帧可以作其它B帧的参考帧,也可以不作为其它B帧参考帧。要解码B帧,不仅要取得之前的缓存画面,还要解码之后的画面,通过前后画面的与本帧数据的叠加取得最终的画面。B帧压缩率高,但是解码时CPU消耗较高。
B帧的预测与重构:B帧以前面的I或P帧和后面的P帧为参考帧,“找出”B帧“某点”的预测值和两个运动矢量,并取预测差值和运动矢量传送。接收端根据运动矢量在两个参考帧中“找出(算出)”预测值并与差值求和,得到B帧“某点”样值,从而可得到完整的B帧。
宏块:编码的基本单位,一个编码图像首先要划分成多个块才能进行处理。
帧内预测:预测块是基于已编码重建块和当前块形成的块。
帧内(Intraframe)压缩也称为空间压缩(Spatial compression)。当压缩一帧图像时,仅考虑本帧的数据而不考虑相邻帧之间的冗余信息,这实际上与静态图像压缩类似。帧内一般采用有损压缩算法,由于帧内压缩是编码一个完整的图像,所以可以独立的解码、显示。帧内压缩一般达不到很高的压缩,跟编码jpeg差不多。
帧间预测:主要包括运动估计(运动搜索方法、运动估计准则、亚像素插值和运动矢量估计)和运动补偿,是GOP粒度时序上的参考和预测插值补偿。
帧间(Interframe)压缩的原理是:相邻几帧的数据有很大的相关性,或者说前后两帧信息变化很小的特点。也即连续的视频其相邻帧之间具有冗余信息,根据这一特性,压缩相邻帧之间的冗余量就可以进一步提高压缩量,减小压缩比。帧间压缩也称为时间压缩(Temporal compression),它通过比较时间轴上不同帧之间的数据进行压缩。
帧间压缩一般是无损的。帧差值(Frame differencing)算法是一种典型的时间压缩法,它通过比较本帧与相邻帧之间的差异,仅记录本帧与其相邻帧的差值,这样可以大大减少数据量。
SAD:Sum of Absolute Differenc=SAE(Sum of Absolute Error)即绝对误差和。
SATD:SATD(Sum of Absolute Transformed Difference)即哈达玛积矩阵运算(hadamard product)变换后再绝对值求和。
MC:运动补偿(Motion Compensation,MC)。
ME:运动估计(Motion Estimation,ME)。
Lookahead:作用是对主编码器模块尚未分析的帧进行编码成本估算,在当前编码评估帧前缓存一定配置长度的已经编码完的重建帧,给当前编码帧做帧间预测参考评估。
bd-rate:评价视频编码算法性能的主要参数之一,表示新算法编码的视频相对于原来的算法在码率和PSNR上的变化情况。
GOP:group of pictures两个I帧之间的间隔。
minigop:在一个GOP内,两个P帧之间会有一定数据B帧,两个P帧之间的间隔即一个minigop。
率失真优化(Rate Distortion Optimation,RDO):编码过程中有许多的模式可以选择,有些模式的图像失真较小,但是码率却很大;有些模式的图像失真较大,但是码率却很小。人们就想了,有没有一种方法使得在不超过某最大码率的情况下,失真达到最小(条件极值=>拉格朗日乘子法)。
近几年视频行业飞速发展,视频的应用正朝着高清晰度、高帧率方向快速升级,随着短视频、电商直播、实时云渲染等视频业务的快速发展,视频处理的需求越来越多,而视频编码作为视频处理的基础,优异的编码能力能够为产品提供高清、流畅的播放体验,对于体验质量(Quality of Experience,QoE)及服务质量(Quality of Service,QoS)提升有重要作用。
直播、RTC、云渲染、云桌面等场景对视频编码内核的出帧稳定性都有比较高要求。视频编码内核算力跟视频画面的复杂性相关,静态、运动纹理变化小的画面比较容易压缩,消耗的编码算力相对比较少,而对于运动纹理比较复杂的画面压缩编码算力消耗比较大,如果压缩视频的画面纹理比较复杂,场景切换比较频繁,这样对于视频编码压缩消耗的算力就会比较不均匀,算力波动比较大导致编码处理的服务器CPU消耗波动比较大,CPU消耗波动比较大,一方面对于直播、实时通讯(Real Time Communication,RTC)、云渲染、云桌面这类场景稳定出帧有比较大影响,另一方面对于服务器部署成本也会比较大,比如编码视频算力波动比较大,这样在算力编排调度方面就要留比较多算力buffer空间(缓冲区)防止视频画面场景切换时的算力波动,比如一台服务器同时跑10路直播视频编码流,调度时CPU就要尽量控制在50%以内,防止这10台视频流如果同时出现画面切换到纹理复杂场景对编码算力消耗同时一下向上波动导致服务器算力过载,视频编码出帧不稳定。
现有的视频编码内核在应用时设定好相关的编码参数(如编码复杂度、码率大小、lookahead参考帧个数、KEY GOP大小、是否开启B帧、编码码控方式、ME、MC相关算法、预处理是否启用相关算法等)。这些编码参数设置好以后,后面视频源输入编码时,编码相关的一些处理算法和配置就不会自适应改变,就固定下来了,比如高算力的编码单元划分、MC、ME、变换、预处理、lookahead等等。若编码参数设置较多较复杂,则对于静态、运动纹理变化小的视频源会导致较高的服务器部署成本,若编码参数设置较少较简单,对于运动纹理比较复杂、场景切换比较频繁的视频源,会导致视频编码压缩的算力不足,使得视频编码内核的出帧稳定性较差。若同一视频中同时包含静态、运动纹理变化小的画面和运动纹理比较复杂、场景切换比较频繁的画面,对该视频均采用相同的编码参数,若编码参数设置较多较复杂,则对于静态、运动纹理变化小的画面会导致较高的服务器部署成本,若编码参数设置较少较简单,对于运动纹理比较复杂、场景切换比较频繁的画面,会导致视频编码压缩的算力不足,使得视频编码内核的出帧稳定性较差。
本申请实施例提供的视频处理方法,将对目标视频的编码任务分解为对构成目标视频的N个视频帧序列分别进行编码,对当前的视频帧序列进行编码时,根据前一个的视频帧序列消耗的服务器算力、当前的视频帧序列的第一视频帧图像的第一图像属性及前一个的视频帧序列的第二视频帧图像的第二图像属性,适应性调整当前的视频帧序列的视频编码参数,使得调整后的编码参数可以满足对当前的视频帧序列的编码需求,提高出帧稳定性,且降低服务器部署成本。
为了便于理解,请参阅图1,图1为本申请实施例中视频处理方法的应用环境图,如图1所示,本申请实施例中视频处理方法应用于视频处理系统。视频处理系统包括:服务器和终端设备;其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端和服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例在此不做限制。
服务器首先获取目标视频,对目标视频进行分割,得到N个视频帧序列,其中,每个视频帧序列包括至少一个视频帧图像;其次,服务器从N个视频帧序列中,获取第i个视频帧序列及第i-1个视频帧序列,其中,第i个视频帧序列与第i-1个视频帧序列为相邻且连续的序列;再次,服务器从第i个视频帧序列中获取第一视频帧图像,从第i-1个视频帧序列中获取第二视频帧图像,其中,第一视频帧图像携带第一图像属性,第二视频帧图像携带第二图像属性,图像属性用于表征视频帧图像的纹理复杂度信息及场景复杂度信息;接着,服务器获取第i-1个视频帧序列的视频编码的第一算力,其中,第一算力用于表征对第i-1个视频帧序列进行视频编码的服务器算力;然后,服务器根据第i-1个视频帧序列的视频编码的第一算力、第一图像属性及第二图像属性,确定第i个视频帧序列的视频编码参数;最后,服务器根据第i个视频帧序列的视频编码参数对第i个视频帧序列进行编码,得到第i个编码视频段。
下面将从服务器的角度,对本申请中视频处理方法进行介绍。请参阅图2,本申请实施例提供的视频处理方法包括:步骤S110至步骤S160。具体的:
S110、获取目标视频,对目标视频进行分割,得到N个视频帧序列。
其中,每个视频帧序列包括至少一个视频帧图像,N为大于1的整数。
可以理解的是,目标视频为待处理的视频或者是待视频编码的视频。
对目标视频进行分割可以是通过场景识别模型对目标视频进行分割,也可以是设置固定时间或者帧数对目标视频进行分割,还可以是人工对目标视频进行分割,本申请实施例在此不作限制。
通过场景识别模型对目标视频进行分割是指,通过训练好的场景识别模型,识别出目标视频中的N个场景,以场景切换作为视频分割点对目标视频进行切分,得到N个子视频段,将子视频段以视频帧序列的方式进行表示,每个视频帧序列包括该视频段中的全部帧图像。场景识别模型可以是基于深度学习和神经网络的特征提取分类模型,常用的算法有CNN、决策树,随机森林等。以深度学习为例,利用深度学习CNN、CNN+RNN等算法框架对视频帧生成图片,用视频帧生成的图片做深度学习相关模型训练样本。
通过设置固定时间或者帧数对目标视频进行分割是指,通过预先设定视频分割时间或视频分割帧数,以设定值对目标视频进行分割,从而得到分割后的若干子视频段,将子视频段以视频帧序列的方式进行表示,每个视频帧序列包括该视频段中的全部帧图像。
通过人工对目标视频进行分割是指,由人工在视频中的场景切换作为视频分割点对目标视频进行切分,得到N个子视频段,将子视频段以视频帧序列的方式进行表示,每个视频帧序列包括该视频段中的全部帧图像。
举例说明,目标视频中包含3个场景:会议场景、剧场场景及游泳场景,其中,会议场景的场景复杂度为简单,剧场场景的场景复杂度为中等,游泳场景的场景复杂度为复杂。通过场景识别模型对目标视频进行分割的方式为:将目标视频作为训练好的场景识别模型的输入,场景识别模型识别出该目标视频包含3个场景,输出3个场景对应的3个子视频段,并将每个子视频段以视频帧序列的方式进行表示。通过设置固定时间或者帧数对目标视频进行分割方式为:设置以每15秒为视频分割间隔,对目标视频进行分割,得到若干子视频,使得每个子视频的时间均为15秒或少于15秒(如目标视频的最后一个子视频的时长不足15秒)。通过人工对目标视频进行分割是指,由人工在视频中的场景切换作为视频分割点对目标视频进行切分,在每个场景切换时,进行视频分割,将一个目标视频段分割为3个子视频段,并将每个子视频段以视频帧序列的方式进行表示。
S120、从N个视频帧序列中,获取第i个视频帧序列及第i-1个视频帧序列。
其中,第i个视频帧序列与第i-1个视频帧序列为相邻且连续的序列,i为大于1的整数。
可以理解的是,从N个视频帧序列中,获取两个时域连续的视频帧序列,将时域靠前的视频帧序列作为第i-1个视频帧序列,将时域靠后的的视频帧序列作为第i个视频帧序列。举例说明,将目标视频分割为5个视频帧序列,获取第一视频帧序列和第二视频帧序列,或者获取第二视频帧序列和第三视频帧序列,或者获取第三视频帧序列和第四视频帧序列,或者获取第四视频帧序列和第五视频帧序列。
S130、从第i个视频帧序列中获取第一视频帧图像,从第i-1个视频帧序列中获取第二视频帧图像。
其中,第一视频帧图像携带第一图像属性,第二视频帧图像携带第二图像属性,图像属性用于表征视频帧图像的纹理复杂度信息及场景复杂度信息。
可以理解的是,第一视频帧图为第i个视频帧序列中的IDR帧,第二视频帧图像为第i-1个视频帧序列中IDR帧。每个视频帧图像均携带图像属性,图像属性用于表征视频帧图像的纹理复杂度信息及场景复杂度信息。
纹理复杂度信息包括简单纹理、一般纹理、中等纹理及复杂纹理。对于简单纹理的视频帧图像进行编码时,可以采用较少较简单的编码参数进行编码,且消耗的算力较少;对于复杂纹理的视频帧图像进行编码时,为保证编码质量(较高的出帧稳定性)需采用较多较复杂的编码参数进行编码,且消耗的算力较多。
纹理复杂度信息分析方法有:欧几里得距离、统计直方图、LBP检测算法以及CNN特征提取分类等算法,基于边缘特征的画面复杂度估计方法,常用的算法有canny、sobel、robert等边缘检测算子算法等,本申请在此不做限制。
以LBP检测算法为例:LBP(Local Binary Pattern)指局部二值模式,是一种用来描述图像局部特征的算子,LBP特征具有灰度不变性和旋转不变性等显著优点。原始的LBP算子定义为在3×3的窗口内,以窗口中心像素为阈值,将相邻的8个像素的灰度值与其进行比较,若周围像素值大于中心像素值,则该像素点的位置被标记为1,否则为0。这样,3×3邻域内的8个点经比较可产生8位二进制数(通常转换为十进制数即LBP码,共256种),即得到该窗口中心像素点的LBP值,并用这个值来反映该区域的纹理信息,检测时可以根据视频画面分辨率和算力大小自动调整检测区域或通过下采样调整画面分辨率大小。综合画面检测的区域LBP值汇总计算,如LBP值80%都集中50以下的为简单纹理,50-100的为一般纹理,100-150的为中等纹理,大于150的为复杂纹理。
场景复杂度信息包括简单场景、一般场景、中等场景及复杂场景。对于简单场景视频帧图像进行编码时,可以采用较少较简单的编码参数进行编码,且消耗的算力较少;对于复杂场景的视频帧图像进行编码时,为保证编码质量(较高的出帧稳定性)需采用较多较复杂的编码参数进行编码,且消耗的算力较多。例如,简单场景包括桌面场景、会议场景等,一般场景包括秀场、电视剧场景等,中等场景包括动漫场景、户外场景等,复杂场景包括游戏场景、游泳场景等。
场景复杂度信息分析方法可以是基于深度学习和神经网络的特征提取分类网络,可以对场景复杂度进行分类,得到简单场景、一般场景、中等场景及复杂场景四类,常用的算法有CNN、决策树,随机森林等。
以深度学习为例,利用深度学习CNN、CNN+RNN等算法框架对视频帧图像进行识别,用视频帧图像做深度学习相关模型训练样本,当训练样本足够情况下,画面特征比较明显的场景(例如游戏场景、足球场景、蓝球场景、动漫场景等),通过纯CNN网络(卷积层、过滤、池化层等处理)模型进行场景识别的准确率可达到99%以上;画面特征比较分散的场景(例如电视剧场景、户外运动场景、美食场景、旅游场景等),通过CNN结合RNN+LSTM做时域+频域分析进行场景识别的准确率可达到90%左右。
S140、获取第i-1个视频帧序列的视频编码的第一算力。
其中,第一算力用于表征对第i-1个视频帧序列进行视频编码的服务器算力。
可以理解的是,本申请实施例目的在于对i个视频帧序列进行视频编码,在对i个视频帧序列进行视频编码之前,已经完成了对第i-1个视频帧序列进行视频编码的任务,并在对第i-1个视频帧序列进行视频编码的任务结束后,计算第i-1个视频帧序列进行视频编码的服务器消耗值(视频编码时占用的服务器计算量),将计算得到的服务器消耗值作为第i-1个视频帧序列的视频编码的第一算力。同样的在对i个视频帧序列进行视频编码后,需计算对i个视频帧序列进行视频编码的第二算力,该第二算力会作为第i+1个视频帧序列的视频编码参数进行调整的考虑因素。
S150、根据第i-1个视频帧序列的视频编码的第一算力、第一图像属性及第二图像属性,确定第i个视频帧序列的视频编码参数。
可以理解的是,基于第i-1个视频帧序列的视频编码的第一算力、第一图像属性及第二图像属性,在第i-1个视频帧序列的视频编码参数基础上调整确定第i个视频帧序列的视频编码参数。
若第一算力大于第一算力阈值,则下调第i个视频帧序列的视频编码参数。第一算力阈值是指服务器为视频编码提供的算力阈值。例如,服务器为视频编码提供的算力阈值为1000,即第一算力阈值为1000,而第i-1个视频帧序列的视频编码的第一算力超过1000,则在对第i个视频帧序列进行视频编码时需要降低算力,为降低第i个视频帧序列进行视频编码时的算力,则需要下调第i个视频帧序列的视频编码参数。
若第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级大于第二图像属性的属性等级,则下调第i个视频帧序列的视频编码参数,其中,第一算力阈值大于第二算力阈值。第一算力阈值和第二算力阈值是指服务器为视频编码提供的算力阈值。例如,服务器为视频编码提供的算力区间为800至1000,即第一算力阈值为1000,第二算力阈值为800,第i-1个视频帧序列的视频编码的第一算力为900,第一算力大于第二算力阈值且小于第一算力阈值。由于属性等级越大(纹理复杂度越高和/或场景复杂度越高),需要的算力越高。第一图像属性的属性等级大于第二图像属性的属性等级表示,对第i个视频帧序列进行视频编码时的需要的算力会大于第i-1个视频帧序列进行视频编码时的的算力,而需要降低对第i个视频帧序列进行视频编码时的算力,为降低第i个视频帧序列进行视频编码时的算力,则需要下调第i个视频帧序列的视频编码参数。
若第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级等于第二图像属性的属性等级,则保持第i个视频帧序列的视频编码参数与第i-1个视频帧序列的视频编码参数相同。第一算力阈值和第二算力阈值是指服务器为视频编码提供的算力阈值。例如,服务器为视频编码提供的算力区间为800至1000,即第一算力阈值为1000,第二算力阈值为800,第i-1个视频帧序列的视频编码的第一算力为900,第一算力大于第二算力阈值且小于第一算力阈值。由于属性等级越大(纹理复杂度越高和/或场景复杂度越高),需要的算力越高。第一图像属性的属性等级等于第二图像属性的属性等级表示对第i个视频帧序列进行视频编码时的需要的算力会等于或接近第i-1个视频帧序列进行视频编码时的的算力,而无需调整第i个视频帧序列的视频编码参数。
若第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级小于第二图像属性的属性等级,则上调第i个视频帧序列的视频编码参数。第一算力阈值和第二算力阈值是指服务器为视频编码提供的算力阈值。例如,服务器为视频编码提供的算力区间为800至1000,即第一算力阈值为1000,第二算力阈值为800,第i-1个视频帧序列的视频编码的第一算力为900,第一算力大于第二算力阈值且小于第一算力阈值。由于属性等级越大(纹理复杂度越高和/或场景复杂度越高),需要的算力越高。第一图像属性的属性等级小于第二图像属性的属性等级表示,对第i个视频帧序列进行视频编码时的需要的算力会小于第i-1个视频帧序列进行视频编码时的的算力,为提高编码质量,可以上调第i个视频帧序列的视频编码参数。
若第一算力小于第二算力阈值,则上调第i个视频帧序列的视频编码参数。第二算力阈值是指服务器为视频编码提供的算力阈值。例如,服务器为视频编码提供的算力阈值为800,即第二算力阈值为800,第i-1个视频帧序列的视频编码的第一算力为700,第一算力小于第二算力阈值。为提高编码质量,可以上调第i个视频帧序列的视频编码参数。
S160、根据第i个视频帧序列的视频编码参数对第i个视频帧序列进行编码,得到第i个编码视频段。
可以理解的是,根据第i个视频帧序列的视频编码参数对第i个视频帧序列进行编码具体是指,根据第i个视频帧序列的视频编码参数对第i个视频帧序列中的全部视频帧图像进行编码,得到每个视频帧图像的编码图像,由全部的编码图像构成第i个编码视频段。
本申请实施例提供的视频处理方法,对目标视频进行视频编码时,若目标视频中的场景唯一且固定,则根据该场景匹配视频编码参数,通过匹配的视频编码参数对该目标视频进行编码,使得该编码参数可以满足对当前的视频帧序列的编码需求,提高出帧稳定性,且降低服务器部署成本。若目标视频中包括多个场景,则根据场景变化将目标视频进行切分得到N个视频帧序列,将对目标视频的编码任务分解为对构成目标视频的N个视频帧序列分别进行编码,对当前的视频帧序列进行编码时,根据前一个的视频帧序列消耗的服务器算力、当前的视频帧序列的第一视频帧图像的第一图像属性及前一个的视频帧序列的第二视频帧图像的第二图像属性,适应性调整当前的视频帧序列的视频编码参数,使得调整后的编码参数可以满足对当前的视频帧序列的编码需求,提高出帧稳定性,且降低服务器部署成本。
在本申请的图2对应的实施例提供的视频处理方法的一个可选实施例中,请参阅图3,视频编码参数包括编码单元划分深度;步骤S150包括子步骤S1511至子步骤S1514。具体的:
S1511、获取第i-1个视频帧序列的第二编码单元划分深度。
S1512、若第一算力大于第一算力阈值,或者若第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级大于第二图像属性的属性等级,则根据第二编码单元划分深度,调整第i个视频帧序列的第一编码单元划分深度。其中,第一算力阈值大于第二算力阈值,第一编码单元划分深度低于第二编码单元划分深度。
S1513、若第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级等于第二图像属性的属性等级,则保持第i个视频帧序列的第一编码单元划分深度与第i-1个视频帧序列的第二编码单元划分深度相等。
S1514、若第一算力小于第二算力阈值,或者若第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级小于第二图像属性的属性等级,则根据第二编码单元划分深度,调整第i个视频帧序列的第一编码单元划分深度。其中,第一算力阈值大于第二算力阈值,第一编码单元划分深度高于第二编码单元划分深度。
可以理解的是,请参阅图4,图4是本申请实施例提供的编码单元深度划分的示意图。对视频帧序列中的视频帧图像进行编码时,将视频帧图像送入编码器,先按照64×64块大小分割成一个个编码树单元(Coding Tree Uint,CTU),然后对每个CTU进行深度划分,得到编码单元(Coding Uint,CU)。对每个CTU进行深度划分采用由上向下的划分规则,如表1所示,深度为0时,即depth=0,保持CU块大小为64×64,即此时1个CTU包括1个64×64的CU块;深度为1时,即depth=1,将64×64的CU块划分为4个32×32的CU块,即此时1个CTU包括4个32×32的CU块;深度为2时,即depth=2,将每个32×32的CU块划分为4个16×16的CU块,即此时1个CTU包括16个16×16的CU块;深度为3时,即depth=3,将每个16×16的CU块划分为4个8×8的CU块,即此时1个CTU包括64个8×8的CU块。由于编码单元划分深度越大,则对图像进行编码时需要的算力就越大,当需要降低算力时,可以降低编码单元的划分深度。
表1
编码单元的划分深度 1个CTU中CU块的数量 CU块大小
depth=0 1 64×64
depth=1 4 32×32
depth=2 16 16×16
depth=3 64 8×8
当满足条件一或条件二之一时,需要降低第i个视频帧序列进行视频编码时的算力。条件一:第一算力大于第一算力阈值。条件二:第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级大于第二图像属性的属性等级。通过减少编码单元的划分深度,实现降低第i个视频帧序列进行视频编码时的算力。
举例说明,对第i-1个视频帧序列进行视频编码时的编码单元的划分深度为depth=3,即将每个CTU划分为64个8×8的CU块,此时第i-1个视频帧序列进行视频编码的第一算力超过第一算力阈值,需降低第i个视频帧序列的视频编码的算力。为降低第i个视频帧序列的视频编码的算力,则将第i个视频帧序列进行视频编码时的编码单元的划分深度为depth=2,即将每个CTU划分为16个16×16的CU块,满足降低第i个视频帧序列的视频编码的算力的要求。第i个视频帧序列进行视频编码时的编码单元的划分深度(第一编码单元划分深度depth=2)低于第i-1个视频帧序列进行视频编码时的编码单元的划分深度(第二编码单元划分深度depth=3)。
对第i-1个视频帧序列进行视频编码时的编码单元的划分深度为depth=3,即将每个CTU划分为64个8×8的CU块,此时第i-1个视频帧序列进行视频编码的第一算力大于第二算力阈值且小于第一算力阈值。而第i-1个视频帧序列中的第二视频帧图像的属性等级小于第i个视频帧序列中的第一视频帧图像的属性等级(第一视频帧图像的纹理复杂度信息及场景复杂度信息相对于第二视频帧图像的纹理复杂度信息及场景复杂度信息升高),需降低第i个视频帧序列的视频编码的算力。为降低第i个视频帧序列的视频编码的算力,则将第i个视频帧序列进行视频编码时的编码单元的划分深度为depth=2,即将每个CTU划分为16个16×16的CU块,满足降低第i个视频帧序列的视频编码的算力的要求。第i个视频帧序列进行视频编码时的编码单元的划分深度(第一编码单元划分深度depth=2)低于第i-1个视频帧序列进行视频编码时的编码单元的划分深度(第二编码单元划分深度depth=3)。
当满足条件三时,无需调整第i个视频帧序列进行视频编码时的算力。条件三:第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级等于第二图像属性的属性等级。由于无需调整第i个视频帧序列进行视频编码时的算力,所以可以保持第i个视频帧序列的第一编码单元划分深度与第i-1个视频帧序列的第二编码单元划分深度相等。
举例说明,对第i-1个视频帧序列进行视频编码时的编码单元的划分深度为depth=2,即将每个CTU划分为16个16×16的CU块,此时第i-1个视频帧序列进行视频编码的第一算力大于第二算力阈值且小于第一算力阈值。而第i-1个视频帧序列中的第二视频帧图像的属性等级等于于第i个视频帧序列中的第一视频帧图像的属性等级(第一视频帧图像的纹理复杂度信息及场景复杂度信息相对于第二视频帧图像的纹理复杂度信息及场景复杂度信息无变化),无需调整第i个视频帧序列的视频编码的算力。可以保持第i个视频帧序列的第一编码单元划分深度与第i-1个视频帧序列的第二编码单元划分深度相等。即第i个视频帧序列进行视频编码时的编码单元的划分深度为depth=2,即将每个CTU划分为16个16×16的CU块。
当满足条件四或条件五之一时,为提高出帧稳定性,可提高第i个视频帧序列进行视频编码时的算力。条件四:第一算力小于第二算力阈值。条件五:第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级小于第二图像属性的属性等级。通过增加编码单元的划分深度,实现增加第i个视频帧序列进行视频编码时的算力。
举例说明,对第i-1个视频帧序列进行视频编码时的编码单元的划分深度为depth=2,即将每个CTU划分为16个16×16的CU块,此时第i-1个视频帧序列进行视频编码的第一算力小于第二算力阈值,为提高出帧稳定性,可提高第i个视频帧序列进行视频编码时的算力。为提高第i个视频帧序列进行视频编码时的算力,则将第i个视频帧序列进行视频编码时的编码单元的划分深度为depth=3,即将每个CTU划分为64个8×8的CU块,满足提高第i个视频帧序列的视频编码的算力的要求。第i个视频帧序列进行视频编码时的编码单元的划分深度(第一编码单元划分深度depth=3)高于第i-1个视频帧序列进行视频编码时的编码单元的划分深度(第二编码单元划分深度depth=2)。
对第i-1个视频帧序列进行视频编码时的编码单元的划分深度为depth=2,即将每个CTU划分为16个16×16的CU块,此时第i-1个视频帧序列进行视频编码的第一算力大于第二算力阈值且小于第一算力阈值。而第i-1个视频帧序列中的第二视频帧图像的属性等级大于第i个视频帧序列中的第一视频帧图像的属性等级(第一视频帧图像的纹理复杂度信息及场景复杂度信息相对于第二视频帧图像的纹理复杂度信息及场景复杂度信息降低),为提高出帧稳定性,可提高第i个视频帧序列进行视频编码时的算力,则将第i个视频帧序列进行视频编码时的编码单元的划分深度为depth=3,即将每个CTU划分为64个8×8的CU块,满足提高第i个视频帧序列的视频编码的算力的要求。第i个视频帧序列进行视频编码时的编码单元的划分深度(第一编码单元划分深度depth=3)高于第i-1个视频帧序列进行视频编码时的编码单元的划分深度(第二编码单元划分深度depth=2)。
本申请实施例提供的方法,对当前的视频帧序列进行编码时,根据前一个的视频帧序列消耗的服务器算力、当前的视频帧序列的第一视频帧图像的第一图像属性及前一个的视频帧序列的第二视频帧图像的第二图像属性,适应性调整当前的视频帧序列的编码单元的划分深度,从而使得调整后的编码单元的划分深度可以满足对当前的视频帧序列的编码需求,提高出帧稳定性,且降低服务器部署成本。
在本申请的图2对应的实施例提供的视频处理方法的一个可选实施例中,请参阅图5,视频编码参数包括预测单元划分深度;步骤S150包括子步骤S1521至子步骤S1524。具体的:
S1521、获取第i-1个视频帧序列的第二预测单元划分深度。
S1522、若第一算力大于第一算力阈值,或者若第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级大于第二图像属性的属性等级,则根据第二预测单元划分深度,调整第i个视频帧序列的第一预测单元划分深度,其中,第一预测单元划分深度低于第二预测单元划分深度。
S1523、若第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级等于第二图像属性的属性等级,则保持第i个视频帧序列的第一预测单元划分深度与第i-1个视频帧序列的第二预测单元划分深度相等。
S1524、若第一算力小于第二算力阈值,或者若第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级小于第二图像属性的属性等级,则根据第二预测单元划分深度,调整第i个视频帧序列的第一预测单元划分深度,其中,第一预测单元划分深度高于第二预测单元划分深度。
可以理解的是,请参阅图6,图6是本申请实施例提供的预测单元深度划分的示意图。对视频帧序列中的视频帧图像进行编码时,将视频帧图像送入编码器,先按照64×64块大小分割成一个个编码树单元(Coding Tree Uint,CTU),然后对每个CTU进行深度划分,得到编码单元(Coding Uint,CU)。每个编码单元CU包括预测单元(Predict Unit,PU)和变换单元(TransformUnit,TU)。
对每个CU进行深度划分采用由上向下的划分规则,深度为0时,即depth=0,保持每个CU中预测单元PU的大小与CU的大小相等,例如CU块大小为64×64,则PU的大小也是64×64;CU块大小为32×32,则PU的大小也是32×32;CU块大小为16×16,则PU的大小也是16×16;CU块大小为8×8,则PU的大小也是8×8;深度为1时,即depth=1,将CU块划分为2个PU块,此时划分方式包括2种均匀划分和4中不均匀划分:例如CU块大小为64×64,若均匀划分,则两个PU的大小均为是64×32,或者两个PU的大小均为是32×64,若不均匀划分,则两个PU的大小分别是64×16和64×48,或者两个PU的大小分别是64×48和64×16,或者两个PU的大小分别是16×64和48×64,或者两个PU的大小分别是48×64和16×64;深度为2时,即depth=2,将CU块划分为4个PU块,例如CU块大小为64×64,则PU的大小是32×32;CU块大小为32×32,则PU的大小是16×16;CU块大小为16×16,则PU的大小是8×16;CU块大小为8×8,则PU的大小是4×4。由于预测单元的划分深度越大,则对图像进行编码时需要的算力就越大,当需要降低算力时,可以降低预测单元的划分深度。
当满足条件一或条件二之一时,需要降低第i个视频帧序列进行视频编码时的算力。条件一:第一算力大于第一算力阈值。条件二:第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级大于第二图像属性的属性等级。通过减少预测单元的划分深度,实现降低第i个视频帧序列进行视频编码时的算力。
举例说明,对第i-1个视频帧序列进行视频编码时的预测单元的划分深度为depth=2,即将每个CU划分为4个PU块,此时第i-1个视频帧序列进行视频编码的第一算力超过第一算力阈值,需降低第i个视频帧序列的视频编码的算力。为降低第i个视频帧序列的视频编码的算力,则将第i个视频帧序列进行视频编码时的预测单元的划分深度为depth=1,即将每个CU划分为2个PU块,满足降低第i个视频帧序列的视频编码的算力的要求。第i个视频帧序列进行视频编码时的预测单元的划分深度(第一预测单元划分深度depth=1)低于第i-1个视频帧序列进行视频编码时的预测单元的划分深度(第二预测单元划分深度depth=2)。
对第i-1个视频帧序列进行视频编码时的预测单元的划分深度为depth=2,即将每个CU划分为4个PU块,此时第i-1个视频帧序列进行视频编码的第一算力大于第二算力阈值且小于第一算力阈值。而第i-1个视频帧序列中的第二视频帧图像的属性等级小于第i个视频帧序列中的第一视频帧图像的属性等级(第一视频帧图像的纹理复杂度信息及场景复杂度信息相对于第二视频帧图像的纹理复杂度信息及场景复杂度信息升高),需降低第i个视频帧序列的视频编码的算力。为降低第i个视频帧序列的视频编码的算力,则将第i个视频帧序列进行视频编码时的预测单元的划分深度为depth=1,即将每个CU划分为2个PU块,满足降低第i个视频帧序列的视频编码的算力的要求。第i个视频帧序列进行视频编码时的预测单元的划分深度(第一预测单元划分深度depth=1)低于第i-1个视频帧序列进行视频编码时的预测单元的划分深度(第二预测单元划分深度depth=2)。
当满足条件三时,无需调整第i个视频帧序列进行视频编码时的算力。条件三:第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级等于第二图像属性的属性等级。由于无需调整第i个视频帧序列进行视频编码时的算力,所以可以保持第i个视频帧序列的第一预测单元划分深度与第i-1个视频帧序列的第二预测单元划分深度相等。
举例说明,对第i-1个视频帧序列进行视频编码时的预测单元的划分深度为depth=1,即将每个CU划分为2个PU块,此时第i-1个视频帧序列进行视频编码的第一算力大于第二算力阈值且小于第一算力阈值。而第i-1个视频帧序列中的第二视频帧图像的属性等级等于于第i个视频帧序列中的第一视频帧图像的属性等级(第一视频帧图像的纹理复杂度信息及场景复杂度信息相对于第二视频帧图像的纹理复杂度信息及场景复杂度信息无变化),无需调整第i个视频帧序列的视频编码的算力。可以保持第i个视频帧序列的第一预测单元划分深度与第i-1个视频帧序列的第二预测单元划分深度相等。即第i个视频帧序列进行视频编码时的预测单元的划分深度为depth=1,即将每个CU划分为2个PU块。
当满足条件四或条件五之一时,为提高出帧稳定性,可提高第i个视频帧序列进行视频编码时的算力。条件四:第一算力小于第二算力阈值。条件五:第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级小于第二图像属性的属性等级。通过增加预测单元的划分深度,实现增加第i个视频帧序列进行视频编码时的算力。
举例说明,对第i-1个视频帧序列进行视频编码时的预测单元的划分深度为depth=0,即将每个CU划分为1个PU块,此时第i-1个视频帧序列进行视频编码的第一算力小于第二算力阈值,为提高出帧稳定性,可提高第i个视频帧序列进行视频编码时的算力。为提高第i个视频帧序列进行视频编码时的算力,则将第i个视频帧序列进行视频编码时的预测单元的划分深度为depth=1,即将每个CU划分为2个PU块,满足提高第i个视频帧序列的视频编码的算力的要求。第i个视频帧序列进行视频编码时的预测单元的划分深度(第一预测单元划分深度depth=1)高于第i-1个视频帧序列进行视频编码时的预测单元的划分深度(第二预测单元划分深度depth=0)。
对第i-1个视频帧序列进行视频编码时的预测单元的划分深度为depth=0,即将每个CU划分为1个PU块,此时第i-1个视频帧序列进行视频编码的第一算力大于第二算力阈值且小于第一算力阈值。而第i-1个视频帧序列中的第二视频帧图像的属性等级大于第i个视频帧序列中的第一视频帧图像的属性等级(第一视频帧图像的纹理复杂度信息及场景复杂度信息相对于第二视频帧图像的纹理复杂度信息及场景复杂度信息降低),为提高出帧稳定性,可提高第i个视频帧序列进行视频编码时的算力,则将第i个视频帧序列进行视频编码时的预测单元的划分深度为depth=1,即将每个CU划分为2个PU块,满足提高第i个视频帧序列的视频编码的算力的要求。第i个视频帧序列进行视频编码时的预测单元的划分深度(第一预测单元划分深度depth=1)高于第i-1个视频帧序列进行视频编码时的预测单元的划分深度(第二预测单元划分深度depth=0)。
本申请实施例提供的方法,对当前的视频帧序列进行编码时,根据前一个的视频帧序列消耗的服务器算力、当前的视频帧序列的第一视频帧图像的第一图像属性及前一个的视频帧序列的第二视频帧图像的第二图像属性,适应性调整当前的视频帧序列的预测单元的划分深度,从而使得调整后的预测单元的划分深度可以满足对当前的视频帧序列的编码需求,提高出帧稳定性,且降低服务器部署成本。
在本申请的图2对应的实施例提供的视频处理方法的一个可选实施例中,请参阅图7,视频编码参数包括运动估计参数及运动补偿参数;步骤S150包括子步骤S1531至S1532。具体的:
S1531、获取第i-1个视频帧序列的第二运动估计参数及第二运动补偿参数。
S1532、若第一算力大于第一算力阈值,或者若第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级大于第二图像属性的属性等级,则根据第二运动估计参数调整第i个视频帧序列的第一运动估计参数,根据第二运动补偿参数调整第i个视频帧序列的第一运动补偿参数。
其中,第一运动估计参数通过控制运动搜索的第一最大像素范围及第一亚像素估计复杂度确定,第二运动估计参数通过控制运动搜索的第二最大像素范围及第二亚像素估计复杂度确定;第一最大像素范围小于第二最大像素范围,第一亚像素估计复杂度小于第二亚像素估计复杂度。第一运动补偿参数通过第一搜索范围确定,第二运动补偿参数通过第二搜索范围确定;第一搜索范围小于第二搜索范围。
S1533、若第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级等于第二图像属性的属性等级,则保持第i个视频帧序列的第一运动估计参数与第i-1个视频帧序列的第二运动估计参数相等,以及保持第i个视频帧序列的第一运动补偿参数与第i-1个视频帧序列的第二运动补偿参数相等。
其中,第一运动估计参数通过控制运动搜索的第一最大像素范围及第一亚像素估计复杂度确定,第二运动估计参数通过控制运动搜索的第二最大像素范围及第二亚像素估计复杂度确定;第一最大像素范围等于第二最大像素范围,第一亚像素估计复杂度等于第二亚像素估计复杂度。第一运动补偿参数通过第一搜索范围确定,第二运动补偿参数通过第二搜索范围确定;第一搜索范围等于第二搜索范围。
S1534、若第一算力小于第二算力阈值,或者若第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级小于第二图像属性的属性等级,则根据第二运动估计参数调整第i个视频帧序列的第一运动估计参数,以及根据第二运动补偿参数调整第i个视频帧序列的第一运动补偿参数。
其中,第一运动估计参数通过控制运动搜索的第一最大像素范围及第一亚像素估计复杂度确定,第二运动估计参数通过控制运动搜索的第二最大像素范围及第二亚像素估计复杂度确定;第一最大像素范围大于第二最大像素范围,第一亚像素估计复杂度大于第二亚像素估计复杂度。第一运动补偿参数通过第一搜索范围确定,第二运动补偿参数通过第二搜索范围确定;第一搜索范围大于第二搜索范围。
可以理解的是,请参阅图8,图8是本申请实施例提供的运动估计示意图。运动估计为当前帧的某个区域(A)在参考帧中寻找一个合适的匹配区域(B)。(参考帧可以是当前帧之前的帧,也可以是当前帧后面的帧)。运动估计参数包括通过控制运动搜索的最大像素范围和亚像素估计复杂度。通过控制运动搜索的最大像素参数以像素为单位的控制最大运动搜索范围,包括:DIA(diamond菱形)、hex(hexagon六角形)、umh(uneven multi-hex非偶多六角形)、esa(exhaustive穷举)、tesa(transformed exhaustive改进的穷举);其中,从DIA、hex、umh、esa到tesa所需要的算力依次增加,例如DIA消耗的算力最小,tesa消耗的算力最大。亚像素估计复杂度分为0-10共11个等级,复杂度越高消耗的算力越大,例如亚像素估计复杂度10消耗的算力大于亚像素估计复杂度0消耗的算力。
请参阅图9,图9是本申请实施例提供的运动补偿的示意图。运动补偿的目的在于找到区域A和区域B的不同。运动补偿参数包括搜索范围,搜索范围越大消耗的算力越大。通过运动补偿和运动估计预测性编码会产生一些运动矢量和残差。运动矢量就是某些区域针对参考帧的运动轨迹,而残差就是这些区域运动后产生的预测帧和当前帧之间的不同。
当满足条件一或条件二之一时,需要降低第i个视频帧序列进行视频编码时的算力。条件一:第一算力大于第一算力阈值。条件二:第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级大于第二图像属性的属性等级。通过降低第i个视频帧序列的第一运动估计参数及第一运动补偿参数,实现降低第i个视频帧序列进行视频编码时的算力。
举例说明,对第i-1个视频帧序列进行视频编码时的采用的第二运动估计参数包括通过控制运动搜索的第二最大像素范围为tesa,第二亚像素估计复杂度为10级,此时第i-1个视频帧序列进行视频编码的第一算力超过第一算力阈值,需降低第i个视频帧序列的视频编码的算力。为降低第i个视频帧序列的视频编码的算力,则将第i个视频帧序列进行视频编码时的采用的第一运动估计参数调整为通过控制运动搜索的第以最大像素范围为umh,第二亚像素估计复杂度为8级,满足降低第i个视频帧序列的视频编码的算力的要求。第一最大像素范围(umh)小于第二最大像素范围(tesa),第一亚像素估计复杂度(8级)小于第二亚像素估计复杂度(10级)。同时,降低第i个视频帧序列的视频编码时的采用的第一运动补偿参数,使得第一运动补偿参数中的第一搜索范围小于对第i-1个视频帧序列进行视频编码时的采用的第二运动补偿参数的第二搜索范围。
对第i-1个视频帧序列进行视频编码时的采用的第二运动估计参数包括通过控制运动搜索的第二最大像素范围为tesa,第二亚像素估计复杂度为10级,此时第i-1个视频帧序列进行视频编码的第一算力大于第二算力阈值且小于第一算力阈值。而第i-1个视频帧序列中的第二视频帧图像的属性等级小于第i个视频帧序列中的第一视频帧图像的属性等级(第一视频帧图像的纹理复杂度信息及场景复杂度信息相对于第二视频帧图像的纹理复杂度信息及场景复杂度信息升高),需降低第i个视频帧序列的视频编码的算力。为降低第i个视频帧序列的视频编码的算力,则将第i个视频帧序列进行视频编码时的采用的第一运动估计参数调整为通过控制运动搜索的第以最大像素范围为umh,第二亚像素估计复杂度为8级,满足降低第i个视频帧序列的视频编码的算力的要求。第一最大像素范围(umh)小于第二最大像素范围(tesa),第一亚像素估计复杂度(8级)小于第二亚像素估计复杂度(10级)。同时,降低第i个视频帧序列的视频编码时的采用的第一运动补偿参数,使得第一运动补偿参数中的第一搜索范围小于对第i-1个视频帧序列进行视频编码时的采用的第二运动补偿参数的第二搜索范围。
当满足条件三时,无需调整第i个视频帧序列进行视频编码时的算力。条件三:第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级等于第二图像属性的属性等级。由于无需调整第i个视频帧序列进行视频编码时的算力,所以可以保持第i个视频帧序列的第一运动估计参数与第i-1个视频帧序列的第二运动估计参数相等,以及保持第i个视频帧序列的第一运动补偿参数与第i-1个视频帧序列的第二运动补偿参数相等。
举例说明,对第i-1个视频帧序列进行视频编码时的采用的第二运动估计参数包括通过控制运动搜索的第二最大像素范围为esa,第二亚像素估计复杂度为9级,此时第i-1个视频帧序列进行视频编码的第一算力大于第二算力阈值且小于第一算力阈值。而第i-1个视频帧序列中的第二视频帧图像的属性等级等于于第i个视频帧序列中的第一视频帧图像的属性等级(第一视频帧图像的纹理复杂度信息及场景复杂度信息相对于第二视频帧图像的纹理复杂度信息及场景复杂度信息无变化),无需调整第i个视频帧序列的视频编码的算力。可以保持第i个视频帧序列的第一运动估计参数与第i-1个视频帧序列的第二运动估计参数相等,以及保持第i个视频帧序列的第一运动补偿参数与第i-1个视频帧序列的第二运动补偿参数相等;即第i个视频帧序列进行视频编码时的采用的第一运动估计参数包括通过控制运动搜索的第一最大像素范围为esa,第一亚像素估计复杂度为9级。同时,保持第一运动补偿参数中的第一搜索范围等于对第i-1个视频帧序列进行视频编码时的采用的第二运动补偿参数的第二搜索范围。
当满足条件四或条件五之一时,为提高出帧稳定性,可提高第i个视频帧序列进行视频编码时的算力。条件四:第一算力小于第二算力阈值。条件五:第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级小于第二图像属性的属性等级。通过提高第i个视频帧序列的第一运动估计参数及第一运动补偿参数,实现提高第i个视频帧序列进行视频编码时的算力。
举例说明,对第i-1个视频帧序列进行视频编码时的采用的第二运动估计参数包括通过控制运动搜索的第二最大像素范围为umh,第二亚像素估计复杂度为8级,此时第i-1个视频帧序列进行视频编码的第一算力小于第二算力阈值,为提高出帧稳定性,可提高第i个视频帧序列进行视频编码时的算力。为提高第i个视频帧序列进行视频编码时的算力,则将第i个视频帧序列进行视频编码时的采用的第一运动估计参数调整为通过控制运动搜索的第以最大像素范围为esa,第二亚像素估计复杂度为9级,满足提高第i个视频帧序列的视频编码的算力的要求。第一最大像素范围(esa)大于第二最大像素范围(umh),第一亚像素估计复杂度(9级)大于第二亚像素估计复杂度(8级)。同时,提高第i个视频帧序列的视频编码时的采用的第一运动补偿参数,使得第一运动补偿参数中的第一搜索范围大于对第i-1个视频帧序列进行视频编码时的采用的第二运动补偿参数的第二搜索范围。
对第i-1个视频帧序列进行视频编码时的采用的第二运动估计参数包括通过控制运动搜索的第二最大像素范围为umh,第二亚像素估计复杂度为8级,此时第i-1个视频帧序列进行视频编码的第一算力小于第二算力阈值,为提高出帧稳定性,可提高第i个视频帧序列进行视频编码时的算力。为提高第i个视频帧序列进行视频编码时的算力,则将第i个视频帧序列进行视频编码时的采用的第一运动估计参数调整为通过控制运动搜索的第以最大像素范围为esa,第二亚像素估计复杂度为9级,满足提高第i个视频帧序列的视频编码的算力的要求。第一最大像素范围(esa)大于第二最大像素范围(umh),第一亚像素估计复杂度(9级)大于第二亚像素估计复杂度(8级)。同时,提高第i个视频帧序列的视频编码时的采用的第一运动补偿参数,使得第一运动补偿参数中的第一搜索范围大于对第i-1个视频帧序列进行视频编码时的采用的第二运动补偿参数的第二搜索范围。
本申请实施例提供的方法,对当前的视频帧序列进行编码时,根据前一个的视频帧序列消耗的服务器算力、当前的视频帧序列的第一视频帧图像的第一图像属性及前一个的视频帧序列的第二视频帧图像的第二图像属性,适应性调整当前的视频帧序列的运动估计参数及运动补偿参数,从而使得调整后的运动估计参数及运动补偿参数可以满足对当前的视频帧序列的编码需求,提高出帧稳定性,且降低服务器部署成本。
在本申请的图2对应的实施例提供的视频处理方法的一个可选实施例中,请参阅图10,视频编码参数包括变换单元划分深度;步骤S150包括子步骤S1541至子步骤S1544。具体的:
S1541、获取第i-1个视频帧序列的第二变换单元划分深度。
S1542、若第一算力大于第一算力阈值,或者若第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级大于第二图像属性的属性等级,则根据第二变换单元划分深度,调整第i个视频帧序列的第一变换单元划分深度,其中,第一变换单元划分深度低于第二变换单元划分深度。
S1543、若第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级等于第二图像属性的属性等级,则保持第i个视频帧序列的第一变换单元划分深度与第i-1个视频帧序列的第二变换单元划分深度相等。
S1544、若第一算力小于第二算力阈值,或者若第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级小于第二图像属性的属性等级,则根据第二变换单元划分深度,调整第i个视频帧序列的第一变换单元划分深度,其中,第一变换单元划分深度高于第二变换单元划分深度。
可以理解的是,请参阅图11,图11是本申请实施例提供的变换单元深度划分的示意图。对视频帧序列中的视频帧图像进行编码时,将视频帧图像送入编码器,先按照64×64块大小分割成一个个编码树单元(Coding Tree Uint,CTU),然后对每个CTU进行深度划分,得到编码单元(Coding Uint,CU)。每个编码单元CU包括预测单元(Predict Unit,PU)和变换单元(TransformUnit,TU)。对每个CU进行深度划分采用由上向下的划分规则,深度为0时,即depth=0,保持每个CU中变换单元TU的大小与CU的大小相等,例如CU块大小为64×64,则TU的大小也是64×64;CU块大小为32×32,则TU的大小也是32×32;CU块大小为16×16,则TU的大小也是16×16;CU块大小为8×8,则TU的大小也是8×8;深度为1时,即depth=1,将CU块划分为4个TU块,例如CU块大小为64×64,则一个TU的大小是32×32;CU块大小为32×32,则TU的大小是16×16;CU块大小为16×16,则TU的大小是8×8;CU块大小为8×8,则TU的大小是4×4。由于变换单元的划分深度越大,则对图像进行编码时需要的算力就越大,当需要降低算力时,可以降低变换单元的划分深度。
当满足条件一或条件二之一时,需要降低第i个视频帧序列进行视频编码时的算力。条件一:第一算力大于第一算力阈值。条件二:第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级大于第二图像属性的属性等级。通过减少变换单元的划分深度,实现降低第i个视频帧序列进行视频编码时的算力。
举例说明,对第i-1个视频帧序列进行视频编码时的变换单元的划分深度为depth=1,即将每个CU划分为4个TU块,此时第i-1个视频帧序列进行视频编码的第一算力超过第一算力阈值,需降低第i个视频帧序列的视频编码的算力。为降低第i个视频帧序列的视频编码的算力,则将第i个视频帧序列进行视频编码时的变换单元的划分深度为depth=0,即将每个CU划分为1个TU块,满足降低第i个视频帧序列的视频编码的算力的要求。第i个视频帧序列进行视频编码时的变换单元的划分深度(第一变换单元划分深度depth=0)低于第i-1个视频帧序列进行视频编码时的变换单元的划分深度(第二变换单元划分深度depth=1)。
对第i-1个视频帧序列进行视频编码时的变换单元的划分深度为depth=1,即将每个CU划分为4个TU块,此时第i-1个视频帧序列进行视频编码的第一算力大于第二算力阈值且小于第一算力阈值。而第i-1个视频帧序列中的第二视频帧图像的属性等级小于第i个视频帧序列中的第一视频帧图像的属性等级(第一视频帧图像的纹理复杂度信息及场景复杂度信息相对于第二视频帧图像的纹理复杂度信息及场景复杂度信息升高),需降低第i个视频帧序列的视频编码的算力。为降低第i个视频帧序列的视频编码的算力,则将第i个视频帧序列进行视频编码时的变换单元的划分深度为depth=0,即将每个CU划分为1个TU块,满足降低第i个视频帧序列的视频编码的算力的要求。第i个视频帧序列进行视频编码时的变换单元的划分深度(第一变换单元划分深度depth=0)低于第i-1个视频帧序列进行视频编码时的变换单元的划分深度(第二变换单元划分深度depth=1)。
当满足条件三时,无需调整第i个视频帧序列进行视频编码时的算力。条件三:第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级等于第二图像属性的属性等级。由于无需调整第i个视频帧序列进行视频编码时的算力,所以可以保持第i个视频帧序列的第一变换单元划分深度与第i-1个视频帧序列的第二变换单元划分深度相等。
举例说明,对第i-1个视频帧序列进行视频编码时的变换单元的划分深度为depth=1,即将每个CU划分为4个TU块,此时第i-1个视频帧序列进行视频编码的第一算力大于第二算力阈值且小于第一算力阈值。而第i-1个视频帧序列中的第二视频帧图像的属性等级等于于第i个视频帧序列中的第一视频帧图像的属性等级(第一视频帧图像的纹理复杂度信息及场景复杂度信息相对于第二视频帧图像的纹理复杂度信息及场景复杂度信息无变化),无需调整第i个视频帧序列的视频编码的算力。可以保持第i个视频帧序列的第一变换单元划分深度与第i-1个视频帧序列的第二变换单元划分深度相等。即第i个视频帧序列进行视频编码时的变换单元的划分深度为depth=1,即将每个CU划分为4个TU块。
当满足条件四或条件五之一时,为提高出帧稳定性,可提高第i个视频帧序列进行视频编码时的算力。条件四:第一算力小于第二算力阈值。条件五:第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级小于第二图像属性的属性等级。通过增加变换单元的划分深度,实现增加第i个视频帧序列进行视频编码时的算力。
举例说明,对第i-1个视频帧序列进行视频编码时的变换单元的划分深度为depth=0,即将每个CU划分为1个TU块,此时第i-1个视频帧序列进行视频编码的第一算力小于第二算力阈值,为提高出帧稳定性,可提高第i个视频帧序列进行视频编码时的算力。为提高第i个视频帧序列进行视频编码时的算力,则将第i个视频帧序列进行视频编码时的变换单元的划分深度为depth=1,即将每个CU划分为4个TU块,满足提高第i个视频帧序列的视频编码的算力的要求。第i个视频帧序列进行视频编码时的变换单元的划分深度(第一变换单元划分深度depth=1)高于第i-1个视频帧序列进行视频编码时的变换单元的划分深度(第二变换单元划分深度depth=0)。
对第i-1个视频帧序列进行视频编码时的变换单元的划分深度为depth=0,即将每个CU划分为1个TU块,此时第i-1个视频帧序列进行视频编码的第一算力大于第二算力阈值且小于第一算力阈值。而第i-1个视频帧序列中的第二视频帧图像的属性等级大于第i个视频帧序列中的第一视频帧图像的属性等级(第一视频帧图像的纹理复杂度信息及场景复杂度信息相对于第二视频帧图像的纹理复杂度信息及场景复杂度信息降低),为提高出帧稳定性,可提高第i个视频帧序列进行视频编码时的算力,则将第i个视频帧序列进行视频编码时的变换单元的划分深度为depth=1,即将每个CU划分为4个TU块,满足提高第i个视频帧序列的视频编码的算力的要求。第i个视频帧序列进行视频编码时的变换单元的划分深度(第一变换单元划分深度depth=1)高于第i-1个视频帧序列进行视频编码时的变换单元的划分深度(第二变换单元划分深度depth=0)。
本申请实施例提供的方法,对当前的视频帧序列进行编码时,根据前一个的视频帧序列消耗的服务器算力、当前的视频帧序列的第一视频帧图像的第一图像属性及前一个的视频帧序列的第二视频帧图像的第二图像属性,适应性调整当前的视频帧序列的变换单元的划分深度,从而使得调整后的变换单元的划分深度可以满足对当前的视频帧序列的编码需求,提高出帧稳定性,且降低服务器部署成本。
在本申请的图2对应的实施例提供的视频处理方法的一个可选实施例中,请参阅图12,第i个视频帧序列的视频编码参数包括第一编码单元划分深度、第一预测单元划分深度、第一变换单元划分深度、第一最大像素范围、第一亚像素估计复杂度及第一搜索范围。步骤S160包括子步骤S1611至子步骤S1619。具体的:
S1611、从第i个视频帧序列获取目标视频帧图像及目标视频帧图像的目标参考图像。
其中,目标参考图像为目标视频帧图像的前一视频帧图像经过编码后得到的。
S1612、根据第一编码单元划分深度对目标视频帧图像进行编码单元深度划分,得到K个第一编码单元;根据第一预测单元划分深度对K个第一编码单元进行预测单元深度划分,得到K×L个第一预测单元。
其中,K及L均为大于等于1的整数。
S1613、根据第一编码单元划分深度对目标参考图像进行编码单元深度划分,得到K个参考编码单元;根据第一预测单元划分深度对K个参考编码单元进行预测单元深度划分,得到K×L个参考预测单元。
其中,K个第一编码单元与K个参考编码单元具有对应关系,K×L个第一预测单元与K×L个参考预测单元具有对应关系。
S1614、根据第一最大像素范围及第一亚像素估计复杂度,对K×L个第一预测单元及K×L个参考预测单元进行运动估计处理,生成K×L个第一运动估计单元。
S1615、根据第一搜索范围对K×L个第一运动估计单元及K×L个参考预测单元进行运动补偿处理,生成目标帧间预测图像。
其中,目标帧间预测图像包括K×L个目标帧间预测单元。
S1616、根据目标视频帧图像及目标帧间预测图像,生成残差图像。
S1617、根据第一变换单元划分深度对残差图像进行变换单元划分,生成变换图像。
S1618、对变换图像进行量化,生成残差系数。
S1619、将残差系数进行熵编码,生成目标视频帧图像的编码值。
可以理解的是,对第i个视频帧序列进行视频编码需要对第i个视频帧序列中的全部视频帧图像进行编码,本申请实施例以对第i个视频帧序列中的任意一张视频帧图像进行编码为例进行说明。请参阅图13,图13是本申请实施例提供的对目标视频帧图像进行编码的示意图。从第i个视频帧序列中任意获取一张视频帧图像作为目标视频帧图像,并将目标视频帧图像的前一视频帧图像经过编码后得到的图像作为目标视频帧图像的目标参考图像。将目标视频帧图像送入到编码器,根据第一编码单元划分深度对目标视频帧图像进行编码单元深度划分,得到至少一个第一编码单元;根据第一预测单元划分深度对每个第一编码单元进行预测单元深度划分,得到至少一个第一预测单元。同样的,将目标参考图像送入到编码器,根据第一编码单元划分深度对目标参考图像进行编码单元深度划分,得到至少一个参考编码单元;根据第一预测单元划分深度对每个参考编码单元进行预测单元深度划分,得到至少一个参考预测单元;参考编码单元与第一编码单元具有对应关系,参考预测单元与第一预测单元具有对应关系。根据第一最大像素范围及第一亚像素估计复杂度,对K×L个第一预测单元及K×L个参考预测单元进行运动估计处理(帧间预测),生成由K×L个第一运动估计单元组成的第一运动估计图像。将第一运动估计图像(包括K×L个第一运动估计单元)与目标视频帧图像(包括K×L个第一预测单元)进行相减,得到残差图像。根据第一变换单元划分深度对残差图像进行变换单元划分,生成变换图像。对变换图像进行量化,生成残差系数。将残差系数输入熵编码模块进行熵编码,生成目标视频帧图像的编码值。编码值用于表示经过编码后的目标视频帧图像。
本申请实施例提供的方法,根据调整后得到的视频编码参数(包括第一编码单元划分深度、第一预测单元划分深度、第一变换单元划分深度、第一最大像素范围、第一亚像素估计复杂度及第一搜索范围)对第i个视频帧序列中的每个视频帧图像进行编码,得到每个视频帧图像对应的编码值,实现了对第i个视频帧序列的视频编码过程,进而对目标视频进行视频编码得到编码视频,在对编码视频进行传输时,可以降低存储空间,提高传输效率,并且在对编码视频进行解码时,提高出帧稳定性。
在本申请的图10对应的实施例提供的视频处理方法的一个可选实施例中,请参阅图14,子步骤S1618之后还包括子步骤S1621至子步骤S1624。具体的:
S1621、对残差系数进行反量化及反变换,生成重构图像残差系数。
S1622、通过重构图像残差系数及目标帧间预测图像,生成重构图像。
S1623、通过去块滤波器对重构图像进行处理,生成第一滤波图像。
其中,去块滤波器用于对重构图像中的垂直边缘进行水平滤波及对重构图像中的水平边缘进行垂直滤波。
S1624、通过采样自适应偏移滤波器对第一滤波图像进行处理,生成目标视频帧图像对应的参考图像。
其中,参考图像用于对目标视频帧图像的下一帧图像进行编码,采样自适应偏移滤波器用于对第一滤波图像进行带偏移和边缘偏移。
可以理解的是,对目标视频帧图像进行编码时的参考图像为目标视频帧图像前一视频帧图像经过编码后得到的图像,对目标视频帧图像的后一帧视频帧图像进行编码时的参考图像为目标视频帧经过编码后得到的图像。请参阅图15,图15为本申请实施例提供的编码框架的示意图。残差系数经过反量化及反变换后,生成重构图像残差系数。将重构图像残差系数与目标帧间预测图像相加,得到重构图像。重构图像依次经过去块滤波器及采样自适应偏移滤波器(环内滤波)后,生成目标视频帧图像对应的参考图像。目标视频帧图像对应的参考图像进入参考帧队列,作为下一帧的参考图像,从而依次向后编码。
对目标视频帧图像进行编码时,还包括对目标视频帧图像进行帧内预测的过程。根据目标视频帧图像及重构图像进行帧内预测选择,生成帧内预测选择图像;根据帧内预测选择图像及重构图像进行帧内预测,得到帧内预测图像。
本申请实施例提供的方法,根据目标视频帧图像生成的参考图像作为下一帧的编码过程中的参考图像,完善了对第i个视频帧序列的视频编码过程,提高出帧稳定性。
在本申请的图2对应的实施例提供的视频处理方法的一个可选实施例中,视频编码参数包括处理取消消息;步骤S150进一步包括子步骤S1551。具体的:
S1551、若第一算力大于第一算力阈值,或者若第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级大于第二图像属性的属性等级,则根据处理取消消息,取消对第i个视频帧序列的去噪处理、锐化处理及时域滤波处理中的一种或多种。
可以理解的是,在进行视频编码时还包括编码其他处理过程,包括前处理过程及后处理过程,其中,前处理包括去噪处理、锐化处理及时域滤波处理等,后处理包括环路滤波及胶片颗粒(AV1 Film Grain)等等,环路滤波包括自适应补偿滤波(Deblocking,DB)、自适应环路滤波(Adaptive loop filter,ALF)、取样自适应偏移(Sample Adaptive Offset,SAO)等等。这些处理会造成一定的服务器算力消耗。
当满足条件一或条件二之一时,需要降低第i个视频帧序列进行视频编码时的算力。条件一:第一算力大于第一算力阈值。条件二:第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级大于第二图像属性的属性等级。通过减少前处理过程和/或后处理过程,实现降低第i个视频帧序列进行视频编码时的算力。具体可以通过取消去噪处理、锐化处理及时域滤波处理中的一种或多种实现。
本申请实施例提供的方法,对当前的视频帧序列进行编码时,根据前一个的视频帧序列消耗的服务器算力、当前的视频帧序列的第一视频帧图像的第一图像属性及前一个的视频帧序列的第二视频帧图像的第二图像属性,适应性调整当前的视频帧序列的处理过程,从而使得调整后的编码单元的划分深度可以满足对当前的视频帧序列的编码需求,提高出帧稳定性,且降低服务器部署成本。
在本申请的图2对应的实施例提供的视频处理方法的一个可选实施例中,请参阅图16,步骤S120之后还包括步骤S121至步骤S123。具体的:
S121、分别将第一视频帧图像及第二视频帧图像作为画面场景分类模型的输入,通过画面场景分类模型输出第一视频帧图像的第一场景复杂度信息及第二视频帧图像的第二场景复杂度信息。
可以理解的是,画面场景分类模型为基于深度学习和神经网络的特征提取分类模型,对画面场景进行识别及分类,将画面场景分为简单场景、一般场景、中等场景及复杂场景。模型中的算法包括CNN、决策树,随机森林等。
以深度学习为例,利用深度学习CNN、CNN+RNN等算法框架对视频帧图像进行识别,用视频帧图像做深度学习相关模型训练样本,当训练样本足够情况下,画面特征比较明显的场景(例如游戏场景、足球场景、蓝球场景、动漫场景等),通过纯CNN网络(卷积层、过滤、池化层等处理)模型进行场景识别的准确率可达到99%以上;画面特征比较分散的场景(例如电视剧场景、户外运动场景、美食场景、旅游场景等),通过CNN结合RNN+LSTM做时域+频域分析进行场景识别的准确率可达到90%左右。
S122、分别将第一视频帧图像及第二视频帧图像作为画面纹理分类模型的输入,通过画面纹理分类模型输出第一视频帧图像的第一纹理复杂度信息及第二视频帧图像的第二纹理复杂度信息。
可以理解的是,纹理复杂度信息包括简单纹理、一般纹理、中等纹理及复杂纹理。纹理复杂度信息分析方法有:欧几里得距离、统计直方图、LBP检测算法以及CNN特征提取分类等算法,基于边缘特征的画面复杂度估计方法,常用的算法有canny、sobel、robert等边缘检测算子算法等,本申请在此不做限制。
以LBP检测算法为例:LBP(Local Binary Pattern)指局部二值模式,是一种用来描述图像局部特征的算子,LBP特征具有灰度不变性和旋转不变性等显著优点。原始的LBP算子定义为在3×3的窗口内,以窗口中心像素为阈值,将相邻的8个像素的灰度值与其进行比较,若周围像素值大于中心像素值,则该像素点的位置被标记为1,否则为0。这样,3×3邻域内的8个点经比较可产生8位二进制数(通常转换为十进制数即LBP码,共256种),即得到该窗口中心像素点的LBP值,并用这个值来反映该区域的纹理信息,检测时可以根据视频画面分辨率和算力大小自动调整检测区域或通过下采样调整画面分辨率大小。综合画面检测的区域LBP值汇总计算,如LBP值80%都集中50以下的为简单纹理,50-100的为一般纹理,100-150的为中等纹理,大于150的为复杂纹理。
S123、根据第一场景复杂度信息及第一纹理复杂度信息生成第一图像属性,根据第二场景复杂度信息及第二纹理复杂度信息生成第二图像属性。
可以理解的是,将场景复杂度信息及纹理复杂度信息作为图像属性,通过图像属性表征视频帧图像的复杂情况,以匹配编码参数。
本申请实施例提供的方法,通过当前的视频帧序列的第一视频帧图像的第一图像属性及前一个的视频帧序列的第二视频帧图像的第二图像属性,适应性调整当前的视频帧序列的视频编码参数,使得调整后的编码参数可以满足对当前的视频帧序列的编码需求,提高出帧稳定性,且降低服务器部署成本。
在本申请的图2对应的实施例提供的视频处理方法的一个可选实施例中,请参阅图17,步骤S160之后还包括步骤S161至步骤S165。具体的:
S161、计算对第i个视频帧序列进行编码时消耗的服务器算力,得到第二算力。
S162、从N个视频帧序列中,获取第i+1个视频帧序列。
其中,第i个视频帧序列与第i+1个视频帧序列为相邻且连续的序列。
S163、从第i+1个视频帧序列中获取第三视频帧图像。
其中,第三视频帧图像携带第三图像属性。
S164、根据第二算力、第一图像属性及第三图像属性,确定第i+1个视频帧序列的视频编码参数。
S165、根据第i+1个视频帧序列的视频编码参数对第i+1个视频帧序列进行编码,得到第i+1个编码视频段。
可以理解的是,上述步骤S161至步骤S165为对第i+1个视频帧序列进行编码的过程。在完成第i个视频帧序列的编码后,计算出第i个视频帧序列进行编码消耗的算力。获取第i+1个视频帧序列中的第三视频帧图像,第三视频帧图像为第i+1个视频帧序列中的IDR帧,第三视频帧图像携带图像属性,图像属性用于表征视频帧图像的纹理复杂度信息及场景复杂度信息。基于第i个视频帧序列进行编码消耗的第二算力、第一图像属性及第三图像属性,在第i个视频帧序列的视频编码参数基础上调整确定第i+1个视频帧序列的视频编码参数。根据第i+1个视频帧序列的视频编码参数对第i+1个视频帧序列进行编码具体是指,根据第i+1个视频帧序列的视频编码参数对第i+1个视频帧序列中的全部视频帧图像进行编码,得到每个视频帧图像的编码图像,由全部的编码图像构成第i+1个编码视频段。
本申请实施例提供的视频处理方法,对目标视频进行视频编码时,若目标视频中的场景唯一且固定,则根据该场景匹配视频编码参数,通过匹配的视频编码参数对该目标视频进行编码,使得该编码参数可以满足对当前的视频帧序列的编码需求,提高出帧稳定性,且降低服务器部署成本。若目标视频中包括多个场景,则根据场景变化将目标视频进行切分得到N个视频帧序列,将对目标视频的编码任务分解为对构成目标视频的N个视频帧序列分别进行编码,对当前的视频帧序列进行编码时,根据前一个的视频帧序列消耗的服务器算力、当前的视频帧序列的第一视频帧图像的第一图像属性及前一个的视频帧序列的第二视频帧图像的第二图像属性,适应性调整当前的视频帧序列的视频编码参数,使得调整后的编码参数可以满足对当前的视频帧序列的编码需求,提高出帧稳定性,且降低服务器部署成本。
在本申请的图2对应的实施例提供的视频处理方法的一个可选实施例中,请参阅图18,步骤S110包括子步骤S1101至子步骤S1103。具体的:
S1101、获取目标视频。
S1102、根据场景识别模型,对目标视频进行场景识别,得到N个场景。
其中,场景识别模型用于对目标视频中出现的场景进行识别。
S1103、根据N个画面场景对目标视频进行分割,得到N个视频片段。
可以理解的是,通过训练好的场景识别模型,识别出目标视频中的N个场景,以场景切换作为视频分割点对目标视频进行切分,得到N个子视频段,将子视频段以视频帧序列的方式进行表示,每个视频帧序列包括该视频段中的全部帧图像。场景识别模型可以是基于深度学习和神经网络的特征提取分类模型,常用的算法有CNN、决策树,随机森林等。以深度学习为例,利用深度学习CNN、CNN+RNN等算法框架对视频帧生成图片,用视频帧生成的图片做深度学习相关模型训练样本。
举例说明,目标视频中包含3个场景:会议场景、剧场场景及游泳场景,其中,会议场景的场景复杂度为简单,剧场场景的场景复杂度为中等,游泳场景的场景复杂度为复杂。通过场景识别模型对目标视频进行分割的方式为:将目标视频作为训练好的场景识别模型的输入,场景识别模型识别出该目标视频包含3个场景,输出3个场景对应的3个子视频段,并将每个子视频段以视频帧序列的方式进行表示。
本申请实施例提供的视频处理方法,对目标视频进行视频编码时,若目标视频中的场景唯一且固定,则根据该场景匹配视频编码参数,通过匹配的视频编码参数对该目标视频进行编码,使得该编码参数可以满足对当前的视频帧序列的编码需求,提高出帧稳定性,且降低服务器部署成本。若目标视频中包括多个场景,则根据场景变化将目标视频进行切分得到N个视频帧序列,将对目标视频的编码任务分解为对构成目标视频的N个视频帧序列分别进行编码,对当前的视频帧序列进行编码时,根据前一个的视频帧序列消耗的服务器算力、当前的视频帧序列的第一视频帧图像的第一图像属性及前一个的视频帧序列的第二视频帧图像的第二图像属性,适应性调整当前的视频帧序列的视频编码参数,使得调整后的编码参数可以满足对当前的视频帧序列的编码需求,提高出帧稳定性,且降低服务器部署成本。
了便于理解,下面将结合图19介绍一种视频处理方法。图19为本申请实施例提供的视频处理方法流程示意图。
首先,对目标视频进行编码时,根据目标视频中的场景变化,将目标视频进行切分得到N个视频帧序列(GOP),以GOP为最小粒度,调整每个GOP的编码参数。
其次,从N个视频帧序列中,获取第i个视频帧序列及第i-1个视频帧序列。其中,第i个视频帧序列与第i-1个视频帧序列为相邻且连续的序列。
再次,从第i个视频帧序列中获取第一视频帧图像,从第i-1个视频帧序列中获取第二视频帧图像。其中,第一视频帧图像携带第一图像属性,第二视频帧图像携带第二图像属性,图像属性用于表征视频帧图像的纹理复杂度信息及场景复杂度信息。第一视频帧图为第i个视频帧序列中的IDR帧,第二视频帧图像为第i-1个视频帧序列中IDR帧。每个视频帧图像均携带图像属性,图像属性用于表征视频帧图像的纹理复杂度信息及场景复杂度信息。
接着,获取第i-1个视频帧序列的视频编码的第一算力。其中,第一算力用于表征对第i-1个视频帧序列进行视频编码的服务器算力。
然后,基于第i-1个视频帧序列的视频编码的第一算力、第一图像属性及第二图像属性,在第i-1个视频帧序列的视频编码参数基础上调整第i个视频帧序列的视频编码参数:
若第一算力大于第一算力阈值,则下调第i个视频帧序列的视频编码参数。第一算力阈值是指服务器为视频编码提供的算力阈值。例如,服务器为视频编码提供的算力阈值为1000,即第一算力阈值为1000,而第i-1个视频帧序列的视频编码的第一算力超过1000,则在对第i个视频帧序列进行视频编码时需要降低算力,为降低第i个视频帧序列进行视频编码时的算力,则需要下调第i个视频帧序列的视频编码参数。
若第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级大于第二图像属性的属性等级,则下调第i个视频帧序列的视频编码参数,其中,第一算力阈值大于第二算力阈值。第一算力阈值和第二算力阈值是指服务器为视频编码提供的算力阈值。例如,服务器为视频编码提供的算力区间为800至1000,即第一算力阈值为1000,第二算力阈值为800,第i-1个视频帧序列的视频编码的第一算力为900,第一算力大于第二算力阈值且小于第一算力阈值。由于属性等级越大(纹理复杂度越高和/或场景复杂度越高),需要的算力越高。第一图像属性的属性等级大于第二图像属性的属性等级表示,对第i个视频帧序列进行视频编码时的需要的算力会大于第i-1个视频帧序列进行视频编码时的的算力,而需要降低对第i个视频帧序列进行视频编码时的算力,为降低第i个视频帧序列进行视频编码时的算力,则需要下调第i个视频帧序列的视频编码参数。
若第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级等于第二图像属性的属性等级,则保持第i个视频帧序列的视频编码参数与第i-1个视频帧序列的视频编码参数相同。第一算力阈值和第二算力阈值是指服务器为视频编码提供的算力阈值。例如,服务器为视频编码提供的算力区间为800至1000,即第一算力阈值为1000,第二算力阈值为800,第i-1个视频帧序列的视频编码的第一算力为900,第一算力大于第二算力阈值且小于第一算力阈值。由于属性等级越大(纹理复杂度越高和/或场景复杂度越高),需要的算力越高。第一图像属性的属性等级等于第二图像属性的属性等级表示对第i个视频帧序列进行视频编码时的需要的算力会等于或接近第i-1个视频帧序列进行视频编码时的的算力,而无需调整第i个视频帧序列的视频编码参数。
若第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级小于第二图像属性的属性等级,则上调第i个视频帧序列的视频编码参数。第一算力阈值和第二算力阈值是指服务器为视频编码提供的算力阈值。例如,服务器为视频编码提供的算力区间为800至1000,即第一算力阈值为1000,第二算力阈值为800,第i-1个视频帧序列的视频编码的第一算力为900,第一算力大于第二算力阈值且小于第一算力阈值。由于属性等级越大(纹理复杂度越高和/或场景复杂度越高),需要的算力越高。第一图像属性的属性等级小于第二图像属性的属性等级表示,对第i个视频帧序列进行视频编码时的需要的算力会小于第i-1个视频帧序列进行视频编码时的的算力,为提高编码质量,可以上调第i个视频帧序列的视频编码参数。
若第一算力小于第二算力阈值,则上调第i个视频帧序列的视频编码参数。第二算力阈值是指服务器为视频编码提供的算力阈值。例如,服务器为视频编码提供的算力阈值为800,即第二算力阈值为800,第i-1个视频帧序列的视频编码的第一算力为700,第一算力小于第二算力阈值。为提高编码质量,可以上调第i个视频帧序列的视频编码参数。
最后,根据第i个视频帧序列的视频编码参数对第i个视频帧序列中的全部视频帧图像进行编码,得到每个视频帧图像的编码图像,由全部的编码图像构成第i个编码视频段。
调整第i个视频帧序列的视频编码参数的顺序为:
1)调整编码单元划分深度。
获取第i-1个视频帧序列的第二编码单元划分深度。
若第一算力大于第一算力阈值,或者若第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级大于第二图像属性的属性等级,则根据第二编码单元划分深度,调整第i个视频帧序列的第一编码单元划分深度。其中,第一算力阈值大于第二算力阈值,第一编码单元划分深度低于第二编码单元划分深度。
若第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级等于第二图像属性的属性等级,则保持第i个视频帧序列的第一编码单元划分深度与第i-1个视频帧序列的第二编码单元划分深度相等。
若第一算力小于第二算力阈值,或者若第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级小于第二图像属性的属性等级,则根据第二编码单元划分深度,调整第i个视频帧序列的第一编码单元划分深度。其中,第一算力阈值大于第二算力阈值,第一编码单元划分深度高于第二编码单元划分深度。
2)调整运动估计参数及运动补偿参数。
获取第i-1个视频帧序列的第二运动估计参数及第二运动补偿参数。
若第一算力大于第一算力阈值,或者若第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级大于第二图像属性的属性等级,则根据第二运动估计参数调整第i个视频帧序列的第一运动估计参数,根据第二运动补偿参数调整第i个视频帧序列的第一运动补偿参数。其中,第一运动估计参数通过控制运动搜索的第一最大像素范围及第一亚像素估计复杂度确定,第二运动估计参数通过控制运动搜索的第二最大像素范围及第二亚像素估计复杂度确定;第一最大像素范围小于第二最大像素范围,第一亚像素估计复杂度小于第二亚像素估计复杂度。第一运动补偿参数通过第一搜索范围确定,第二运动补偿参数通过第二搜索范围确定;第一搜索范围小于第二搜索范围。
若第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级等于第二图像属性的属性等级,则保持第i个视频帧序列的第一运动估计参数与第i-1个视频帧序列的第二运动估计参数相等,以及保持第i个视频帧序列的第一运动补偿参数与第i-1个视频帧序列的第二运动补偿参数相等。其中,第一运动估计参数通过控制运动搜索的第一最大像素范围及第一亚像素估计复杂度确定,第二运动估计参数通过控制运动搜索的第二最大像素范围及第二亚像素估计复杂度确定;第一最大像素范围等于第二最大像素范围,第一亚像素估计复杂度等于第二亚像素估计复杂度。第一运动补偿参数通过第一搜索范围确定,第二运动补偿参数通过第二搜索范围确定;第一搜索范围等于第二搜索范围。
若第一算力小于第二算力阈值,或者若第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级小于第二图像属性的属性等级,则根据第二运动估计参数调整第i个视频帧序列的第一运动估计参数,以及根据第二运动补偿参数调整第i个视频帧序列的第一运动补偿参数。其中,第一运动估计参数通过控制运动搜索的第一最大像素范围及第一亚像素估计复杂度确定,第二运动估计参数通过控制运动搜索的第二最大像素范围及第二亚像素估计复杂度确定;第一最大像素范围大于第二最大像素范围,第一亚像素估计复杂度大于第二亚像素估计复杂度。第一运动补偿参数通过第一搜索范围确定,第二运动补偿参数通过第二搜索范围确定;第一搜索范围大于第二搜索范围。
3)调整变换单元划分深度。
获取第i-1个视频帧序列的第二变换单元划分深度。
若第一算力大于第一算力阈值,或者若第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级大于第二图像属性的属性等级,则根据第二变换单元划分深度,调整第i个视频帧序列的第一变换单元划分深度,其中,第一变换单元划分深度低于第二变换单元划分深度。
若第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级等于第二图像属性的属性等级,则保持第i个视频帧序列的第一变换单元划分深度与第i-1个视频帧序列的第二变换单元划分深度相等。
若第一算力小于第二算力阈值,或者若第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级小于第二图像属性的属性等级,则根据第二变换单元划分深度,调整第i个视频帧序列的第一变换单元划分深度,其中,第一变换单元划分深度高于第二变换单元划分深度。
4)调整预测单元划分深度。
获取第i-1个视频帧序列的第二预测单元划分深度。
若第一算力大于第一算力阈值,或者若第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级大于第二图像属性的属性等级,则根据第二预测单元划分深度,调整第i个视频帧序列的第一预测单元划分深度,其中,第一预测单元划分深度低于第二预测单元划分深度。
若第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级等于第二图像属性的属性等级,则保持第i个视频帧序列的第一预测单元划分深度与第i-1个视频帧序列的第二预测单元划分深度相等。
若第一算力小于第二算力阈值,或者若第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级小于第二图像属性的属性等级,则根据第二预测单元划分深度,调整第i个视频帧序列的第一预测单元划分深度,其中,第一预测单元划分深度高于第二预测单元划分深度。
5)调整视频编码中的其他过程。
若第一算力大于第一算力阈值,或者若第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级大于第二图像属性的属性等级,则根据第二预测单元划分深度,取消去噪处理、锐化处理及时域滤波处理中的一种或多种。
本申请实施例提供的方案通过在视频编码预分析过程中自动分析视频画面场景纹理复杂性和画面场景分类,根据视频编码画面场景切换检测,以及视频画面纹理以及画面场景分类评估,把编码单元划分、MC、ME、变换、预处理、lookahead等算力消耗比较大的流程自适应裁剪,在损失一定视频画面bd-rate的情况下保持视频编码算力均衡的一种编码内核算力消耗平滑解决方案。通过该解决方案在控制损失一定视频bd-rate情况下,服务器算力有比较平滑的控制,提升了服务器机器算力负载5-10个点,很好的节省了视频云媒体处理转码成本,帮助视频云用户媒体处理转码降本增效。
下面对本申请中的视频处理装置进行详细描述,请参阅图20。图20为本申请实施例中视频处理装置10的一个实施例示意图,视频处理装置10包括:
视频帧序列生成模块110,用于获取目标视频,对目标视频进行分割,得到N个视频帧序列。
其中,每个视频帧序列包括至少一个视频帧图像,N为大于1的整数。
视频帧序列提取模块120,用于从N个视频帧序列中,获取第i个视频帧序列及第i-1个视频帧序列。
其中,第i个视频帧序列与第i-1个视频帧序列为相邻且连续的序列,i为大于1的整数。
视频帧图像获取模块130,用于从第i个视频帧序列中获取第一视频帧图像,从第i-1个视频帧序列中获取第二视频帧图像。
其中,第一视频帧图像携带第一图像属性,第二视频帧图像携带第二图像属性,图像属性用于表征视频帧图像的纹理复杂度信息及场景复杂度信息。
算力获取模块140,用于获取第i-1个视频帧序列的视频编码的第一算力。
其中,第一算力用于表征对第i-1个视频帧序列进行视频编码的服务器算力。
视频编码参数确定模块150,用于根据第i-1个视频帧序列的视频编码的第一算力、第一图像属性及第二图像属性,确定第i个视频帧序列的视频编码参数。
视频帧序列编码模块160,用于根据第i个视频帧序列的视频编码参数对第i个视频帧序列进行编码,得到第i个编码视频段。
本申请实施例提供的视频处理装置,对目标视频进行视频编码时,若目标视频中的场景唯一且固定,则根据该场景匹配视频编码参数,通过匹配的视频编码参数对该目标视频进行编码,使得该编码参数可以满足对当前的视频帧序列的编码需求,提高出帧稳定性,且降低服务器部署成本。若目标视频中包括多个场景,则根据场景变化将目标视频进行切分得到N个视频帧序列,将对目标视频的编码任务分解为对构成目标视频的N个视频帧序列分别进行编码,对当前的视频帧序列进行编码时,根据前一个的视频帧序列消耗的服务器算力、当前的视频帧序列的第一视频帧图像的第一图像属性及前一个的视频帧序列的第二视频帧图像的第二图像属性,适应性调整当前的视频帧序列的视频编码参数,使得调整后的编码参数可以满足对当前的视频帧序列的编码需求,提高出帧稳定性,且降低服务器部署成本。
在本申请的图20对应的实施例提供的视频处理装置的一个可选实施例中,请参阅图21,视频编码参数包括编码单元划分深度。视频编码参数确定模块150包括编码单元划分深度调整子模块151,编码单元划分深度调整子模块151用于:
获取第i-1个视频帧序列的第二编码单元划分深度;
若第一算力大于第一算力阈值,或者若第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级大于第二图像属性的属性等级,则根据第二编码单元划分深度,调整第i个视频帧序列的第一编码单元划分深度。其中,第一算力阈值大于第二算力阈值,第一编码单元划分深度低于第二编码单元划分深度。
若第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级等于第二图像属性的属性等级,则保持第i个视频帧序列的第一编码单元划分深度与第i-1个视频帧序列的第二编码单元划分深度相等。
若第一算力小于第二算力阈值,或者若第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级小于第二图像属性的属性等级,则根据第二编码单元划分深度,调整第i个视频帧序列的第一编码单元划分深度。其中,第一算力阈值大于第二算力阈值,第一编码单元划分深度高于第二编码单元划分深度。
本申请实施例提供的装置,对当前的视频帧序列进行编码时,根据前一个的视频帧序列消耗的服务器算力、当前的视频帧序列的第一视频帧图像的第一图像属性及前一个的视频帧序列的第二视频帧图像的第二图像属性,适应性调整当前的视频帧序列的编码单元的划分深度,从而使得调整后的编码单元的划分深度可以满足对当前的视频帧序列的编码需求,提高出帧稳定性,且降低服务器部署成本。
在本申请的图20对应的实施例提供的视频处理装置的一个可选实施例中,请参阅图22,视频编码参数包括预测单元划分深度。视频编码参数确定模块150包括预测单元划分深度调整子模块152,预测单元划分深度调整子模块152用于:
获取第i-1个视频帧序列的第二预测单元划分深度。
若第一算力大于第一算力阈值,或者若第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级大于第二图像属性的属性等级,则根据第二预测单元划分深度,调整第i个视频帧序列的第一预测单元划分深度,其中,第一预测单元划分深度低于第二预测单元划分深度。
若第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级等于第二图像属性的属性等级,则保持第i个视频帧序列的第一预测单元划分深度与第i-1个视频帧序列的第二预测单元划分深度相等。
若第一算力小于第二算力阈值,或者若第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级小于第二图像属性的属性等级,则根据第二预测单元划分深度,调整第i个视频帧序列的第一预测单元划分深度,其中,第一预测单元划分深度高于第二预测单元划分深度。
本申请实施例提供的装置,对当前的视频帧序列进行编码时,根据前一个的视频帧序列消耗的服务器算力、当前的视频帧序列的第一视频帧图像的第一图像属性及前一个的视频帧序列的第二视频帧图像的第二图像属性,适应性调整当前的视频帧序列的预测单元的划分深度,从而使得调整后的预测单元的划分深度可以满足对当前的视频帧序列的编码需求,提高出帧稳定性,且降低服务器部署成本。
在本申请的图20对应的实施例提供的视频处理装置的一个可选实施例中,请参阅图23,视频编码参数包括运动估计方式及运动补偿方式。视频编码参数确定模块150包括运动估计参数及运动补偿参数调整子模块153,运动估计参数及运动补偿参数调整子模块153用于:
获取第i-1个视频帧序列的第二运动估计参数及第二运动补偿参数。
若第一算力大于第一算力阈值,或者若第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级大于第二图像属性的属性等级,则根据第二运动估计参数调整第i个视频帧序列的第一运动估计参数,根据第二运动补偿参数调整第i个视频帧序列的第一运动补偿参数。
其中,第一运动估计参数通过控制运动搜索的第一最大像素范围及第一亚像素估计复杂度确定,第二运动估计参数通过控制运动搜索的第二最大像素范围及第二亚像素估计复杂度确定;第一最大像素范围小于第二最大像素范围,第一亚像素估计复杂度小于第二亚像素估计复杂度。第一运动补偿参数通过第一搜索范围确定,第二运动补偿参数通过第二搜索范围确定;第一搜索范围小于第二搜索范围。
若第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级等于第二图像属性的属性等级,则保持第i个视频帧序列的第一运动估计参数与第i-1个视频帧序列的第二运动估计参数相等,以及保持第i个视频帧序列的第一运动补偿参数与第i-1个视频帧序列的第二运动补偿参数相等。
其中,第一运动估计参数通过控制运动搜索的第一最大像素范围及第一亚像素估计复杂度确定,第二运动估计参数通过控制运动搜索的第二最大像素范围及第二亚像素估计复杂度确定;第一最大像素范围等于第二最大像素范围,第一亚像素估计复杂度等于第二亚像素估计复杂度。第一运动补偿参数通过第一搜索范围确定,第二运动补偿参数通过第二搜索范围确定;第一搜索范围等于第二搜索范围。
若第一算力小于第二算力阈值,或者若第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级小于第二图像属性的属性等级,则根据第二运动估计参数调整第i个视频帧序列的第一运动估计参数,以及根据第二运动补偿参数调整第i个视频帧序列的第一运动补偿参数。
其中,第一运动估计参数通过控制运动搜索的第一最大像素范围及第一亚像素估计复杂度确定,第二运动估计参数通过控制运动搜索的第二最大像素范围及第二亚像素估计复杂度确定;第一最大像素范围大于第二最大像素范围,第一亚像素估计复杂度大于第二亚像素估计复杂度。第一运动补偿参数通过第一搜索范围确定,第二运动补偿参数通过第二搜索范围确定;第一搜索范围大于第二搜索范围。
本申请实施例提供的装置,对当前的视频帧序列进行编码时,根据前一个的视频帧序列消耗的服务器算力、当前的视频帧序列的第一视频帧图像的第一图像属性及前一个的视频帧序列的第二视频帧图像的第二图像属性,适应性调整当前的视频帧序列的运动估计参数及运动补偿参数,从而使得调整后的运动估计参数及运动补偿参数可以满足对当前的视频帧序列的编码需求,提高出帧稳定性,且降低服务器部署成本。
本申请的图20对应的实施例提供的视频处理装置的一个可选实施例中,请参阅图24,视频编码参数包括变换单元划分深度;视频编码参数确定模块150包括变换单元划分深度调整子模块154,变换单元划分深度调整子模块154用于:
获取第i-1个视频帧序列的第二变换单元划分深度。
若第一算力大于第一算力阈值,或者若第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级大于第二图像属性的属性等级,则根据第二变换单元划分深度,调整第i个视频帧序列的第一变换单元划分深度,其中,第一变换单元划分深度低于第二变换单元划分深度。
若第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级等于第二图像属性的属性等级,则保持第i个视频帧序列的第一变换单元划分深度与第i-1个视频帧序列的第二变换单元划分深度相等。
若第一算力小于第二算力阈值,或者若第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级小于第二图像属性的属性等级,则根据第二变换单元划分深度,调整第i个视频帧序列的第一变换单元划分深度,其中,第一变换单元划分深度高于第二变换单元划分深度。
本申请实施例提供的装置,对当前的视频帧序列进行编码时,根据前一个的视频帧序列消耗的服务器算力、当前的视频帧序列的第一视频帧图像的第一图像属性及前一个的视频帧序列的第二视频帧图像的第二图像属性,适应性调整当前的视频帧序列的变换单元的划分深度,从而使得调整后的变换单元的划分深度可以满足对当前的视频帧序列的编码需求,提高出帧稳定性,且降低服务器部署成本。
在本申请的图20对应的实施例提供的视频处理装置的一个可选实施例中,第i个视频帧序列的视频编码参数包括第一编码单元划分深度、第一预测单元划分深度、第一变换单元划分深度、第一最大像素范围、第一亚像素估计复杂度及第一搜索范围;视频帧序列编码模块160还用于:
从第i个视频帧序列获取目标视频帧图像及目标视频帧图像的目标参考图像,其中,目标参考图像为目标视频帧图像的前一视频帧图像经过编码后得到的;
根据第一编码单元划分深度对目标视频帧图像进行编码单元深度划分,得到K个第一编码单元,其中,K为大于等于1的整数;
根据第一预测单元划分深度对K个第一编码单元进行预测单元深度划分,得到K×L个第一预测单元,其中,L为大于等于1的整数;
根据第一编码单元划分深度对目标参考图像进行编码单元深度划分,得到K个参考编码单元,其中,K个第一编码单元与K个参考编码单元具有对应关系;
根据第一预测单元划分深度对K个参考编码单元进行预测单元深度划分,得到K×L个参考预测单元,其中,K×L个第一预测单元与K×L个参考预测单元具有对应关系;
根据第一最大像素范围及第一亚像素估计复杂度,对K×L个第一预测单元及K×L个参考预测单元进行运动估计处理,生成K×L个第一运动估计单元;
根据第一搜索范围对K×L个第一运动估计单元及K×L个参考预测单元进行运动补偿处理,生成目标帧间预测图像;
根据目标视频帧图像及目标帧间预测图像,生成残差图像;
根据第一变换单元划分深度对残差图像进行变换单元划分,生成变换图像;
对变换图像进行量化,生成残差系数;
将残差系数进行熵编码,生成目标视频帧图像的编码值。
本申请实施例提供的装置,根据调整后得到的视频编码参数(包括第一编码单元划分深度、第一预测单元划分深度、第一变换单元划分深度、第一最大像素范围、第一亚像素估计复杂度及第一搜索范围)对第i个视频帧序列中的每个视频帧图像进行编码,得到每个视频帧图像对应的编码值,实现了对第i个视频帧序列的视频编码过程,进而对目标视频进行视频编码得到编码视频,在对编码视频进行传输时,可以降低存储空间,提高传输效率,并且在对编码视频进行解码时,提高出帧稳定性。
在本申请的图20对应的实施例提供的视频处理装置的一个可选实施例中,视频帧序列编码模块160还用于:
对残差系数进行反量化及反变换,生成重构图像残差系数;
通过重构图像残差系数及目标帧间预测图像,生成重构图像;
通过去块滤波器对重构图像进行处理,生成第一滤波图像,其中,去块滤波器用于对重构图像中的垂直边缘进行水平滤波及对重构图像中的水平边缘进行垂直滤波;
通过采样自适应偏移滤波器对第一滤波图像进行处理,生成目标视频帧图像对应的参考图像,其中,参考图像用于对目标视频帧图像的下一帧图像进行编码,采样自适应偏移滤波器用于对第一滤波图像进行带偏移和边缘偏移。
本申请实施例提供的装置,根据目标视频帧图像生成的参考图像作为下一帧的编码过程中的参考图像,完善了对第i个视频帧序列的视频编码过程,提高出帧稳定性。
在本申请的图20对应的实施例提供的视频处理装置的一个可选实施例中,请参阅图25,视频编码参数确定模块150包括处理取消消息子模块155,处理取消消息子模块155用于:
若第一算力大于第一算力阈值,或者若第一算力大于第二算力阈值且小于第一算力阈值,且第一图像属性的属性等级大于第二图像属性的属性等级,则根据处理取消消息,取消对第i个视频帧序列的去噪处理、锐化处理及时域滤波处理中的一种或多种。
本申请实施例提供的装置,对当前的视频帧序列进行编码时,根据前一个的视频帧序列消耗的服务器算力、当前的视频帧序列的第一视频帧图像的第一图像属性及前一个的视频帧序列的第二视频帧图像的第二图像属性,适应性调整当前的视频帧序列的处理过程,从而使得调整后的编码单元的划分深度可以满足对当前的视频帧序列的编码需求,提高出帧稳定性,且降低服务器部署成本。
在本申请的图20对应的实施例提供的视频处理装置的一个可选实施例中,视频帧图像获取模块120还用于:
分别将第一视频帧图像及第二视频帧图像作为画面场景分类模型的输入,通过画面场景分类模型输出第一视频帧图像的第一场景复杂度信息及第二视频帧图像的第二场景复杂度信息;
分别将第一视频帧图像及第二视频帧图像作为画面纹理分类模型的输入,通过画面纹理分类模型输出第一视频帧图像的第一纹理复杂度信息及第二视频帧图像的第二纹理复杂度信息;
根据第一场景复杂度信息及第一纹理复杂度信息生成第一图像属性,根据第二场景复杂度信息及第二纹理复杂度信息生成第二图像属性。
本申请实施例提供的装置,通过当前的视频帧序列的第一视频帧图像的第一图像属性及前一个的视频帧序列的第二视频帧图像的第二图像属性,适应性调整当前的视频帧序列的视频编码参数,使得调整后的编码参数可以满足对当前的视频帧序列的编码需求,提高出帧稳定性,且降低服务器部署成本。
在本申请的图18对应的实施例提供的视频处理装置的一个可选实施例中,视频帧序列编码模块160,还用于:
计算对第i个视频帧序列进行编码时消耗的服务器算力,得到第二算力;
从N个视频帧序列中,获取第i+1个视频帧序列,其中,第i个视频帧序列与第i+1个视频帧序列为相邻且连续的序列;
从第i+1个视频帧序列中获取第三视频帧图像,其中,第三视频帧图像携带第三图像属性;
根据第二算力、第一图像属性及第三图像属性,确定第i+1个视频帧序列的视频编码参数;
根据第i+1个视频帧序列的视频编码参数对第i+1个视频帧序列进行编码,得到第i+1个编码视频段。
本申请实施例提供的视频处理装置,对目标视频进行视频编码时,若目标视频中的场景唯一且固定,则根据该场景匹配视频编码参数,通过匹配的视频编码参数对该目标视频进行编码,使得该编码参数可以满足对当前的视频帧序列的编码需求,提高出帧稳定性,且降低服务器部署成本。若目标视频中包括多个场景,则根据场景变化将目标视频进行切分得到N个视频帧序列,将对目标视频的编码任务分解为对构成目标视频的N个视频帧序列分别进行编码,对当前的视频帧序列进行编码时,根据前一个的视频帧序列消耗的服务器算力、当前的视频帧序列的第一视频帧图像的第一图像属性及前一个的视频帧序列的第二视频帧图像的第二图像属性,适应性调整当前的视频帧序列的视频编码参数,使得调整后的编码参数可以满足对当前的视频帧序列的编码需求,提高出帧稳定性,且降低服务器部署成本。
在本申请的图20对应的实施例提供的视频处理装置的一个可选实施例中,视频帧序列生成模块110还用于:
获取目标视频;
根据场景识别模型,对目标视频进行场景识别,得到N个场景,其中,场景识别模型用于对目标视频中出现的场景进行识别;
根据N个画面场景对目标视频进行分割,得到N个视频片段。
本申请实施例提供的视频处理装置,对目标视频进行视频编码时,若目标视频中的场景唯一且固定,则根据该场景匹配视频编码参数,通过匹配的视频编码参数对该目标视频进行编码,使得该编码参数可以满足对当前的视频帧序列的编码需求,提高出帧稳定性,且降低服务器部署成本。若目标视频中包括多个场景,则根据场景变化将目标视频进行切分得到N个视频帧序列,将对目标视频的编码任务分解为对构成目标视频的N个视频帧序列分别进行编码,对当前的视频帧序列进行编码时,根据前一个的视频帧序列消耗的服务器算力、当前的视频帧序列的第一视频帧图像的第一图像属性及前一个的视频帧序列的第二视频帧图像的第二图像属性,适应性调整当前的视频帧序列的视频编码参数,使得调整后的编码参数可以满足对当前的视频帧序列的编码需求,提高出帧稳定性,且降低服务器部署成本。
图26是本申请实施例提供的一种服务器结构示意图,该服务器300可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processingunits,CPU)322(例如,一个或一个以上处理器)和存储器332,一个或一个以上存储应用程序342或数据344的存储介质330(例如一个或一个以上海量存储设备)。其中,存储器332和存储介质330可以是短暂存储或持久存储。存储在存储介质330的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储介质330通信,在服务器300上执行存储介质330中的一系列指令操作。
服务器300还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述实施例中由服务器所执行的步骤可以基于该图26所示的服务器结构。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (20)

1.一种视频处理方法,其特征在于,包括:
获取目标视频,对所述目标视频进行分割,得到N个视频帧序列,其中,每个所述视频帧序列包括至少一个视频帧图像,N为大于1的整数;
从所述N个视频帧序列中,获取第i个视频帧序列及第i-1个视频帧序列,其中,所述第i个视频帧序列与所述第i-1个视频帧序列为相邻且连续的序列,i为大于1的整数;
从所述第i个视频帧序列中获取第一视频帧图像,从所述第i-1个视频帧序列中获取第二视频帧图像,其中,所述第一视频帧图像携带第一图像属性,所述第二视频帧图像携带第二图像属性,所述图像属性用于表征视频帧图像的纹理复杂度信息及场景复杂度信息;
获取所述第i-1个视频帧序列的视频编码的第一算力,其中,所述第一算力用于表征对所述第i-1个视频帧序列进行视频编码的服务器算力;
根据所述第i-1个视频帧序列的视频编码的第一算力、所述第一图像属性及所述第二图像属性,确定所述第i个视频帧序列的视频编码参数;
根据所述第i个视频帧序列的视频编码参数对所述第i个视频帧序列进行编码,得到第i个编码视频段。
2.如权利要求1所述的视频处理方法,其特征在于,所述视频编码参数包括编码单元划分深度;
所述根据所述第i-1个视频帧序列的视频编码的第一算力、所述第一图像属性及所述第二图像属性,确定所述第i个视频帧序列的视频编码参数,包括:
获取第i-1个视频帧序列的第二编码单元划分深度;
若所述第一算力大于第一算力阈值,或者若所述第一算力大于第二算力阈值且小于所述第一算力阈值,且第一图像属性的属性等级大于所述第二图像属性的属性等级,则根据所述第二编码单元划分深度,调整所述第i个视频帧序列的第一编码单元划分深度,其中,所述第一算力阈值大于所述第二算力阈值,所述第一编码单元划分深度低于所述第二编码单元划分深度。
3.如权利要求1所述的视频处理方法,其特征在于,视频编码参数包括预测单元划分深度;
所述根据所述第i-1个视频帧序列的视频编码的第一算力、所述第一图像属性及所述第二图像属性,确定所述第i个视频帧序列的视频编码参数,包括:
获取第i-1个视频帧序列的第二预测单元划分深度;
若所述第一算力大于第一算力阈值,或者若所述第一算力大于第二算力阈值且小于所述第一算力阈值,且第一图像属性的属性等级大于所述第二图像属性的属性等级,则根据所述第二预测单元划分深度,调整所述第i个视频帧序列的第一预测单元划分深度,其中,所述第一预测单元划分深度低于所述第二预测单元划分深度。
4.如权利要求1所述的视频处理方法,其特征在于,所述视频编码参数包括运动估计参数及运动补偿参数;
所述根据所述第i-1个视频帧序列的视频编码的第一算力、所述第一图像属性及所述第二图像属性,确定所述第i个视频帧序列的视频编码参数,包括:
获取第i-1个视频帧序列的第二运动估计参数及第二运动补偿参数;
若所述第一算力大于第一算力阈值,或者若所述第一算力大于第二算力阈值且小于所述第一算力阈值,且第一图像属性的属性等级大于所述第二图像属性的属性等级,则根据所述第二运动估计参数调整所述第i个视频帧序列的第一运动估计参数,根据所述第二运动补偿参数调整所述第i个视频帧序列的第一运动补偿参数;
其中,所述第一运动估计参数通过控制运动搜索的第一最大像素范围及第一亚像素估计复杂度确定,所述第二运动估计参数通过控制运动搜索的第二最大像素范围及第二亚像素估计复杂度确定,所述第一最大像素范围小于所述第二最大像素范围,所述第一亚像素估计复杂度小于所述第二亚像素估计复杂度,所述第一运动补偿参数通过第一搜索范围确定,所述第二运动补偿参数通过第二搜索范围确定,所述第一搜索范围小于所述第二搜索范围。
5.如权利要求1所述的视频处理方法,其特征在于,视频编码参数包括变换单元划分深度;
所述根据所述第i-1个视频帧序列的视频编码的第一算力、所述第一图像属性及所述第二图像属性,确定所述第i个视频帧序列的视频编码参数,包括:
获取第i-1个视频帧序列的第二变换单元划分深度;
若所述第一算力大于第一算力阈值,或者若所述第一算力大于第二算力阈值且小于所述第一算力阈值,且第一图像属性的属性等级大于所述第二图像属性的属性等级,则根据所述第二变换单元划分深度,调整所述第i个视频帧序列的第一变换单元划分深度,其中,所述第一变换单元划分深度低于所述第二变换单元划分深度。
6.如权利要求1所述的视频处理方法,其特征在于,所述根据所述第i-1个视频帧序列的视频编码的第一算力、所述第一图像属性及所述第二图像属性,确定所述第i个视频帧序列的视频编码参数,包括:
若所述第一算力大于第二算力阈值且小于所述第一算力阈值,且第一图像属性的属性等级等于所述第二图像属性的属性等级,则保持所述第i个视频帧序列的视频编码参数与所述第i-1个视频帧序列的视频编码参数相同。
7.如权利要求1所述的视频处理方法,其特征在于,所述视频编码参数包括编码单元划分深度;
所述根据所述第i-1个视频帧序列的视频编码的第一算力、所述第一图像属性及所述第二图像属性,确定所述第i个视频帧序列的视频编码参数,包括:
获取第i-1个视频帧序列的第二编码单元划分深度;
若所述第一算力小于第二算力阈值,或者若所述第一算力大于第二算力阈值且小于所述第一算力阈值,且第一图像属性的属性等级小于所述第二图像属性的属性等级,则根据所述第二编码单元划分深度,调整所述第i个视频帧序列的第一编码单元划分深度,其中,所述第一算力阈值大于所述第二算力阈值,所述第一编码单元划分深度高于所述第二编码单元划分深度。
8.如权利要求1所述的视频处理方法,其特征在于,视频编码参数包括预测单元划分深度;
所述根据所述第i-1个视频帧序列的视频编码的第一算力、所述第一图像属性及所述第二图像属性,确定所述第i个视频帧序列的视频编码参数,包括:
获取第i-1个视频帧序列的第二预测单元划分深度;
若所述第一算力小于第二算力阈值,或者若所述第一算力大于第二算力阈值且小于所述第一算力阈值,且第一图像属性的属性等级小于所述第二图像属性的属性等级,则根据所述第二预测单元划分深度,调整所述第i个视频帧序列的第一预测单元划分深度,其中,所述第一预测单元划分深度高于所述第二预测单元划分深度。
9.如权利要求1所述的视频处理方法,其特征在于,所述视频编码参数包括运动估计参数及运动补偿参数;
所述根据所述第i-1个视频帧序列的视频编码的第一算力、所述第一图像属性及所述第二图像属性,确定所述第i个视频帧序列的视频编码参数,包括:
获取第i-1个视频帧序列的第二运动估计参数及第二运动补偿参数;
若所述第一算力小于第二算力阈值,或者若所述第一算力大于第二算力阈值且小于所述第一算力阈值,且第一图像属性的属性等级小于所述第二图像属性的属性等级,则根据所述第二运动估计参数调整所述第i个视频帧序列的第一运动估计参数,以及根据所述第二运动补偿参数调整所述第i个视频帧序列的第一运动补偿参数;
其中,所述第一运动估计参数通过控制运动搜索的第一最大像素范围及第一亚像素估计复杂度确定,所述第二运动估计参数通过控制运动搜索的第二最大像素范围及第二亚像素估计复杂度确定,所述第一最大像素范围大于所述第二最大像素范围,所述第一亚像素估计复杂度大于所述第二亚像素估计复杂度,所述第一运动补偿参数通过第一搜索范围确定,所述第二运动补偿参数通过第二搜索范围确定,所述第一搜索范围大于所述第二搜索范围。
10.如权利要求1所述的视频处理方法,其特征在于,视频编码参数包括变换单元划分深度;
所述根据所述第i-1个视频帧序列的视频编码的第一算力、所述第一图像属性及所述第二图像属性,确定所述第i个视频帧序列的视频编码参数,包括:
获取第i-1个视频帧序列的第二变换单元划分深度;
若所述第一算力小于第二算力阈值,或者若所述第一算力大于第二算力阈值且小于所述第一算力阈值,且第一图像属性的属性等级小于所述第二图像属性的属性等级,则根据所述第二变换单元划分深度,调整所述第i个视频帧序列的第一变换单元划分深度,其中,所述第一变换单元划分深度高于所述第二变换单元划分深度。
11.如权利要求1所述的视频处理方法,其特征在于,所述第i个视频帧序列的视频编码参数包括第一编码单元划分深度、第一预测单元划分深度、第一变换单元划分深度、第一最大像素范围、第一亚像素估计复杂度及第一搜索范围;
所述根据所述第i个视频帧序列的视频编码参数对所述第i个视频帧序列进行编码,包括:
从所述第i个视频帧序列获取目标视频帧图像及所述目标视频帧图像的目标参考图像,其中,所述目标参考图像为所述目标视频帧图像的前一视频帧图像经过编码后得到的;
根据所述第一编码单元划分深度对所述目标视频帧图像进行编码单元深度划分,得到K个第一编码单元,其中,K为大于等于1的整数;
根据所述第一预测单元划分深度对K个所述第一编码单元进行预测单元深度划分,得到K×L个第一预测单元,其中,L为大于等于1的整数;
根据所述第一编码单元划分深度对所述目标参考图像进行编码单元深度划分,得到K个参考编码单元,其中,所述K个第一编码单元与所述K个参考编码单元具有对应关系;
根据所述第一预测单元划分深度对K个所述参考编码单元进行预测单元深度划分,得到K×L个参考预测单元,其中,所述K×L个第一预测单元与所述K×L个参考预测单元具有对应关系;
根据所述第一最大像素范围及所述第一亚像素估计复杂度,对所述K×L个第一预测单元及所述K×L个参考预测单元进行运动估计处理,生成K×L个第一运动估计单元;
根据所述第一搜索范围对所述K×L个第一运动估计单元及所述K×L个参考预测单元进行运动补偿处理,生成目标帧间预测图像;
根据所述目标视频帧图像及所述目标帧间预测图像,生成残差图像;
根据所述第一变换单元划分深度对所述残差图像进行变换单元划分,生成变换图像;
对所述变换图像进行量化,生成残差系数;
将所述残差系数进行熵编码,生成所述目标视频帧图像的编码值。
12.如权利要求11所述的视频处理方法,其特征在于,所述生成残差系数之后,还包括:
对所述残差系数进行反量化及反变换,生成重构图像残差系数;
通过所述重构图像残差系数及所述目标帧间预测图像,生成重构图像;
通过去块滤波器对所述重构图像进行处理,生成第一滤波图像,其中,所述去块滤波器用于对所述重构图像中的垂直边缘进行水平滤波及对所述重构图像中的水平边缘进行垂直滤波;
通过采样自适应偏移滤波器对所述第一滤波图像进行处理,生成目标视频帧图像对应的参考图像,其中,所述参考图像用于对所述目标视频帧图像的下一帧图像进行编码,所述采样自适应偏移滤波器用于对第一滤波图像进行带偏移和边缘偏移。
13.如权利要求1所述的视频处理方法,其特征在于,视频编码参数包括处理取消消息;
所述根据所述第i-1个视频帧序列的视频编码的第一算力、所述第一图像属性及所述第二图像属性,确定所述第i个视频帧序列的视频编码参数,包括:
若所述第一算力大于第一算力阈值,或者若所述第一算力大于第二算力阈值且小于所述第一算力阈值,且第一图像属性的属性等级大于所述第二图像属性的属性等级,则根据所述处理取消消息,取消对所述第i个视频帧序列的去噪处理、锐化处理及时域滤波处理中的一种或多种。
14.如权利要求1所述的视频处理方法,其特征在于,所述从所述第i个视频帧序列中获取第一视频帧图像,从所述第i-1个视频帧序列中获取第二视频帧图像之后,还包括:
分别将所述第一视频帧图像及所述第二视频帧图像作为画面场景分类模型的输入,通过所述画面场景分类模型输出所述第一视频帧图像的第一场景复杂度信息及所述第二视频帧图像的第二场景复杂度信息;
分别将所述第一视频帧图像及所述第二视频帧图像作为画面纹理分类模型的输入,通过所述画面纹理分类模型输出所述第一视频帧图像的第一纹理复杂度信息及所述第二视频帧图像的第二纹理复杂度信息;
根据所述第一场景复杂度信息及所述第一纹理复杂度信息生成所述第一图像属性,根据所述第二场景复杂度信息及所述第二纹理复杂度信息生成所述第二图像属性。
15.如权利要求1所述的视频处理方法,其特征在于,所述得到第i个编码视频段之后,还包括:
计算对所述第i个视频帧序列进行编码时消耗的服务器算力,得到第二算力;
从所述N个视频帧序列中,获取第i+1个视频帧序列,其中,所述第i个视频帧序列与所述第i+1个视频帧序列为相邻且连续的序列;
从所述第i+1个视频帧序列中获取第三视频帧图像,其中,所述第三视频帧图像携带第三图像属性;
根据所述第二算力、所述第一图像属性及所述第三图像属性,确定所述第i+1个视频帧序列的视频编码参数;
根据所述第i+1个视频帧序列的视频编码参数对所述第i+1个视频帧序列进行编码,得到第i+1个编码视频段。
16.如权利要求1所述的视频处理方法,其特征在于,所述获取目标视频,对所述目标视频进行分割,得到N个视频片段,包括:
获取目标视频;
根据场景识别模型,对所述目标视频进行场景识别,得到N个场景,其中,所述场景识别模型用于对所述目标视频中出现的场景进行识别;
根据所述N个画面场景对所述目标视频进行分割,得到所述N个视频片段。
17.一种视频处理装置,其特征在于,包括:
视频帧序列生成模块,用于获取目标视频,对所述目标视频进行分割,得到N个视频帧序列,其中,每个所述视频帧序列包括至少一个视频帧图像,N为大于1的整数;
视频帧序列提取模块,用于从所述N个视频帧序列中,获取第i个视频帧序列及第i-1个视频帧序列,其中,所述第i个视频帧序列与所述第i-1个视频帧序列为相邻且连续的序列,i为大于1的整数;
视频帧图像获取模块,用于从所述第i个视频帧序列中获取第一视频帧图像,从所述第i-1个视频帧序列中获取第二视频帧图像,其中,所述第一视频帧图像携带第一图像属性,所述第二视频帧图像携带第二图像属性,所述图像属性用于表征视频帧图像的纹理复杂度信息及场景复杂度信息;
算力获取模块,用于获取所述第i-1个视频帧序列的视频编码的第一算力,其中,所述第一算力用于表征对所述第i-1个视频帧序列进行视频编码的服务器算力;
视频编码参数确定模块,用于根据所述第i-1个视频帧序列的视频编码的第一算力、所述第一图像属性及所述第二图像属性,确定所述第i个视频帧序列的视频编码参数;
视频帧序列编码模块,用于根据所述第i个视频帧序列的视频编码参数对所述第i个视频帧序列进行编码,得到第i个编码视频段。
18.一种计算机设备,其特征在于,包括:存储器、收发器、处理器以及总线系统;
其中,所述存储器用于存储程序;
所述处理器用于执行所述存储器中的程序,包括执行如权利要求1至17中任一项所述的视频处理方法;
所述总线系统用于连接所述存储器以及所述处理器,以使所述存储器以及所述处理器进行通信。
19.一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1至17中任一项所述的视频处理方法。
20.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行如权利要求1至17中任一项所述的视频处理方法。
CN202211282417.2A 2022-10-19 2022-10-19 一种视频处理方法及相关装置 Pending CN117956158A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202211282417.2A CN117956158A (zh) 2022-10-19 2022-10-19 一种视频处理方法及相关装置
PCT/CN2023/123349 WO2024082971A1 (zh) 2022-10-19 2023-10-08 一种视频处理方法及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211282417.2A CN117956158A (zh) 2022-10-19 2022-10-19 一种视频处理方法及相关装置

Publications (1)

Publication Number Publication Date
CN117956158A true CN117956158A (zh) 2024-04-30

Family

ID=90736858

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211282417.2A Pending CN117956158A (zh) 2022-10-19 2022-10-19 一种视频处理方法及相关装置

Country Status (2)

Country Link
CN (1) CN117956158A (zh)
WO (1) WO2024082971A1 (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111182220A (zh) * 2020-01-09 2020-05-19 西安万像电子科技有限公司 图像处理装置、远端设备及通信系统
WO2021196087A1 (zh) * 2020-04-01 2021-10-07 华为技术有限公司 视频增强的方法及装置
CN111669589B (zh) * 2020-06-23 2021-03-16 腾讯科技(深圳)有限公司 图像编码方法、装置、计算机设备以及存储介质
CN111711859A (zh) * 2020-06-28 2020-09-25 北京奇艺世纪科技有限公司 一种视频图像处理方法、系统及终端设备
CN114173137A (zh) * 2020-09-10 2022-03-11 北京金山云网络技术有限公司 视频编码方法、装置及电子设备

Also Published As

Publication number Publication date
WO2024082971A1 (zh) 2024-04-25

Similar Documents

Publication Publication Date Title
US20230009360A1 (en) Method for image processing and apparatus for implementing the same
EP2441265B1 (en) Motion based dynamic resolution multiple bit rate video encoding
KR101644208B1 (ko) 이전에 계산된 모션 정보를 이용하는 비디오 인코딩
US9071841B2 (en) Video transcoding with dynamically modifiable spatial resolution
US6097757A (en) Real-time variable bit rate encoding of video sequence employing statistics
US20060188014A1 (en) Video coding and adaptation by semantics-driven resolution control for transport and storage
US11756233B2 (en) Method for image processing and apparatus for implementing the same
US10205953B2 (en) Object detection informed encoding
US7885341B2 (en) Spatial filtering for improving compression efficiency of motion compensated interframe coding
US20190104315A1 (en) Scene Based Rate Control for Video Compression and Video Streaming
US8396127B1 (en) Segmentation for video coding using predictive benefit
Abd Al-azeez et al. Optimal quality ultra high video streaming based H. 265
CN117956158A (zh) 一种视频处理方法及相关装置
EP3629580A1 (en) Method for image processing and apparatus for implementing the same
KR101247024B1 (ko) 루프 내 전처리 필터링을 이용한 움직임 추정 및 보상 방법
Tong et al. Human centered perceptual adaptation for video coding
KR102506115B1 (ko) 타겟 태스크별 양자화 테이블 생성 방법
US20220245449A1 (en) Method for training a single non-symmetric decoder for learning-based codecs
CN118158414A (zh) 视频编码方法、装置、电子设备及计算机存储介质
CN117478881A (zh) 视频信息处理方法、系统、设备和存储介质
WO2024002579A1 (en) A method, an apparatus and a computer program product for video coding
CN118020298A (zh) 基于后期分析和重构要求的自适应视频精简
CN116456086A (zh) 环路滤波方法、视频编解码方法、装置、介质及电子设备
Awaghad Integrated Framework for Multimedia Transcoding and Implementation in Cellular Networks

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