CN106254868B - 视频编码码率控制方法、装置及系统 - Google Patents
视频编码码率控制方法、装置及系统 Download PDFInfo
- Publication number
- CN106254868B CN106254868B CN201610703935.5A CN201610703935A CN106254868B CN 106254868 B CN106254868 B CN 106254868B CN 201610703935 A CN201610703935 A CN 201610703935A CN 106254868 B CN106254868 B CN 106254868B
- Authority
- CN
- China
- Prior art keywords
- frame
- video
- coding
- motion
- value
- 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
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/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/114—Adapting the group of pictures [GOP] structure, e.g. number of B-frames between two anchor frames
-
- 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/146—Data rate or code amount at the encoder output
-
- 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/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
-
- 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/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/18—Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明提供一种视频编码码率控制方法、装置及系统,预测帧编码时,基于运动检测将当前预测帧与前一帧作比较,得到当前预测帧的运动物体区域及当前预测帧像素点的运动矢量;在运动矢量坐标系下,统计当前预测帧像素点的运动矢量,得到当前预测帧中编码质量需要保证的运动物体区域;结合预设的关键帧QP初始值、预设的预测帧QP初始值、当前预测帧像素点的运动矢量,计算出当前预测帧像素点的QP预测值;通过对宏块内的当前预测帧像素点的QP预测值均值取整,得到当前预测帧内宏块的编码QP值,生成当前预测帧的QPMAP配置表;采用当前预测帧的QPMAP配置表对当前预测帧进行压缩编码。本发明既能有效降低视频流编码码率又能保证视频图像质量。
Description
技术领域
本发明涉及图像处理技术领域,具体涉及一种视频编码码率控制方法、装置及系统。
背景技术
随着视频图像处理技术的发展,基于网络通信技术的视频应用,例如视频监控、视频会议、视频教育培训、视频直播,已经成为人们学习、工作、生活娱乐中的一部分。
视频图像格式数字化、高清化,全面提升了视频图像的清晰度,带来更好的用户体验。经过多年发展,视频图像格式已从垂直分辨率576的标清格式过渡到1080的全高清格式,目前,视频图像格式又开始向5M,8M甚至12M分辨率的超高清格式演进。网络基础设施的更新建设受限于前期投资回收情况、后期投资预算规模及整体网络应用需要。目前网络基础设施的带宽升级速度远低于视频图像格式高清化、超高清化的发展速度。
在有限的网络传输带宽条件下如何实现更高分辨率的视频流传输,一直是本领域的研究人员致力解决的技术问题。
发明内容
本发明的目的在于提供一种既能有效降低视频流编码码率又能保证视频图像质量的视频编码码率控制方法、装置及系统,以利于通过现有网络带宽满足高分辨率视频图像应用的需要。
为了实现上述目的,本发明采用的技术方案如下:
第一方面,本发明提供了一种视频编码码率控制方法,该方法以GOP为编码结构单位对视频帧序列进行顺次压缩编码,GOP包括起始位置的关键帧和关键帧后面的预测帧;该方法包括:
预测帧编码时,基于运动检测将当前预测帧与前一帧作比较,得到当前预测帧的运动物体区域及当前预测帧像素点的运动矢量;
在运动矢量坐标系下,统计当前预测帧像素点的运动矢量,得到当前预测帧中编码质量需要保证的运动物体区域;结合预设的关键帧QP初始值、预设的预测帧QP初始值、当前预测帧像素点的运动矢量,得出当前预测帧中编码质量需要保证的运动物体区域的像素点水平方向QP调整值和垂直方向QP调整值,及计算出当前预测帧像素点的QP预测值;
通过对宏块内的当前预测帧像素点的QP预测值均值取整,得到当前预测帧内宏块的编码QP值,生成当前预测帧的QPMAP配置表;
采用当前预测帧的QPMAP配置表对当前预测帧进行压缩编码。
第二方面,本发明还提供了一种视频编码码率控制装置,该装置以GOP为编码结构单位对视频帧序列进行顺次压缩编码,GOP包括起始位置的关键帧和关键帧后面的预测帧;该装置包括:
运动检测单元,用于预测帧编码时,基于运动检测将当前预测帧与前一帧作比较,得到当前预测帧的运动物体区域及当前预测帧像素点的运动矢量;
像素点的QP预测值获取单元,用于在运动矢量坐标系下,统计当前预测帧像素点的运动矢量,得到当前预测帧中编码质量需要保证的运动物体区域;结合预设的关键帧QP初始值、预设的预测帧QP初始值、当前预测帧像素点的运动矢量,得出当前预测帧中编码质量需要保证的运动物体区域的像素点水平方向QP调整值和垂直方向QP调整值,及计算出当前预测帧像素点的QP预测值;
QPMAP配置表获取单元,用于通过对宏块内的当前预测帧像素点的QP预测值均值取整,得到当前预测帧内宏块的编码QP值,生成当前预测帧的QPMAP配置表;
预测帧压缩编码单元,用于采用当前预测帧的QPMAP配置表对当前预测帧进行压缩编码。
第三方面,本发明还提供了一种视频编码码率控制系统,该系统包括总线、存储器、存储控制器、处理器,与处理器相配合的视频编码器,存储器、存储控制器、处理器通过总线连接,处理器通过存储控制器控制存储器;
该系统还包括视频编码码率控制装置,视频编码码率控制装置与视频编码器相关联;
视频编码码率控制装置安装于存储器中并包括一个或多个由处理器执行的软件功能模块。
本发明提供的视频编码码率控制方法、装置及系统,在预测帧编码时,基于预设运动矢量阈值将视频帧图像区域分成运动矢量大于预设运动矢量阈值的像素点构成的编码质量需要保证的运动物体区域,及运动矢量小于预设运动矢量阈值的像素点构成的普通编码区域。预测帧编码时,普通编码区域,采用能保证解码后的视频图像播放时具有良好流畅性的最小有效编码码率范围所对应的预设的预测帧QP初始值,控制该区域编码的量化精度;编码质量需要保证的运动物体区域,采用最小有效编码码率范围所对应的预设的预测帧QP初始值基于像素点的运动矢量调整后的预测帧QP值,控制该区域编码的量化精度。无论是普通编码区域,还是编码质量需要保证的运动物体区域均是以最小有效编码码率范围为基础进行编码,因此,预测帧的编码码率可控制在较低的水平,同时该较低编码码率又能保证解码后的视频图像播放时具有良好流畅性及较好的视频图像画面质量。
由于仅仅对编码质量需要保证的运动物体区域的像素点的QP值进行调整,因此能有效缩短当前预测帧像素点的QP预测值计算的时间周期,提高预测帧编码码率控制的实用性和可行性。
与现有技术的矩形块状分区方法相比,本发明涉及的区域划分方法没有明显的区域界线,分成的普通编码区域和编码质量需要保证的运动物体区域相互咬合,基于编码质量需要保证的运动物体区域的像素点的运动矢量得到的前预测帧像素点的QP预测值更能反映前预测帧像素点的编码时的量化需要,得到预测帧残差系数在分布上更合理,没有局部呈块状聚集的特点。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
图1示出了本发明实施例应用环境的结构示意图。
图2示出了针对目标场景相对固定的情况下获得的视频帧序列进行编码本发明实施例提供的一种视频编码码率控制方法的流程图。
图3示出了一个时间周期内视频监控目标场景运动量与时间的关系曲线。
图4示出了针对视频监控系统的前端摄像装置获得的视频帧序列进行编码本发明实施例提供的一种视频编码码率控制方法的流程图。
图5示出了IPPP编码结构下调整后的GOP画面组的编码方式。
图6示出了监控视频帧图像中循环类运动区域和边界触碰类运动区域的分布示意图。
图7示出了本发明实施例提供的一种视频编码码率控制系统的结构示意图。
图8示出了视频编码码率控制装置的结构示意图。
图9示出了视频编码码率控制装置的待编码视频帧GOP调整单元的结构示意图。
图10示出了视频编码码率控制装置的待编码视频帧输入帧率获取单元的结构示意图。
图11示出了视频编码码率控制装置的预测帧编码单元的结构示意图。
图12示出了预测帧编码单元的像素点的QP预测值获取单元的结构示意图。
图13示出了预测帧编码单元的像素点的QPMAP配置表获取单元的结构示意图。
其中,附图标记与部件名称之间的对应关系如下:
处理器100,视频编码器200,存储器300,存储控制器400,视频编码码率控制装置500,QP初始值设置单元510,待编码视频帧GOP调整单元520,待编码视频帧GOP长度计算单元521,GOP参考帧调整单元522,编码视频帧输入帧率获取单元530,时间区段获取单元531,待编码视频帧输入帧率确定单元532,关键帧编码单元540,预测帧编码单元550,运动检测单元551,像素点的QP预测值获取单元552,编码质量需要保证的运动物体区域获取单元5521,当前预测帧像素点的QP预测值计算单元5522,QPMAP配置表获取单元553,宏块的编码QP值计算单元5531,宏块的编码QP值调整单元5532,QPMAP配置表生成单元5533,当前预测帧时间区段处理单元554,循环类运动区域处理单元555,预测帧压缩编码单元556,接口电路600,输入输出单元700,循环类运动区域800,边界触碰类运动区域900。
具体实施方式
视频帧序列,以GOP为编码结构单位进行编码。每个GOP编码结构单位包括关键帧和预测帧,视频编码时,关键帧采用全帧压缩编码,预测帧基于参考帧进行帧间差值压缩编码。
术语“GOP”,英文全称Group of Pictures,中文译名为画面组,其包括一起始的关键帧和关键帧后面的至少一帧预测帧。在GOP中关键帧为I帧,预测帧为B帧、P帧中的至少一种。GOP Size,GOP长度,是指GOP所包含的视频帧的帧数。GOP Size可以用来表征视频帧序列中多少视频帧里面出现一次关键帧。
术语“关键帧”,是指视频帧序列中表示关键状态的帧,其是GOP中的起始帧。关键帧是帧内压缩编码帧,解码时仅用本帧的编码数据就可重构完整视频图像。从理论上讲,预定长度的视频帧序列中的关键帧数量越多,解码后的视频图像质量越好,但视频编码码率会越大。
术语“预测帧”,是基于参考帧来压缩本帧数据的编码帧。本帧数据编码时,只记录本帧与参考帧之间的差值数据,解码时,在参考帧的基础上叠加本帧与参考帧之间的差值数据获得完整的本帧视频图像。参考帧,可以是本帧的前一帧,也可以将本帧的前一帧和后一帧同时作为参考帧。在GOP编码结构中,关键帧是预测帧编解码过程中最重要的参考帧。
术语“I帧”,为GOP编码结构中的关键帧,其采用全帧压缩编码,视频帧序列中的I帧数量直接关系到GOP Size的大小。
术语“P帧”,为前向预测编码帧,其采用本帧的前一I帧或P帧作为参考帧,编码时,只记录本帧与参考帧之间的差值数据,解码时,在参考帧的基础上叠加本帧与参考帧之间的差值数据获得完整的P帧视频图像。
术语“B帧”,为双向预测编码帧,其采用本帧的前一帧和后一帧作为参考帧,编码时,只记录本帧与参考帧之间的差值数据,解码时,在前一帧和后一帧的基础上叠加本帧与前一帧和后一帧的差值数据获得完整的B帧视频图像。
视频帧序列压缩编码的过程是视频帧量化采样的过程,其中量化参数QP及与其对应的量化步长是反映视频帧量化采样精度的两个重要参数。
术语“量化参数”(Quantization Parameter,QP),是量化步长Qstep的序号,其取值范围为0~51,量化参数取最小值0时,表示量化最精细,量化参数取最大值51时,表示量化是最粗糙,量化参数取越小,编码后解码获得的视频图像的质量越好,但编码码率越高。对于亮度编码,量化参数的最大值为51,对于色度编码,量化参数的最大值为39。量化步长随着量化参数的增加而增加,量化参数每增加6,量化步长增加一倍。
现有视频编码方法,主要采用动态码率(Variable Bit Rate,VBR)控制方法来控制视频流的编码码率。动态码率控制方法,是基于上一视频帧的码率调节当前预测帧的量化参数,通过量化参数值的变化控制当前预测帧生成的残差系数大小,降低后续熵编码的码率。相较于现有的固定码率(Constant BitRate,CBR)控制方法,现有的动态码率控制方法能在降低视频编码码率的同时提高运动视频帧图像的画面质量。
现有的动态码率控制方法,在处理标清格式或高清格式的视频帧序列编码方面,能做到既保证解码后的视频图像具有较高质量,又能降低视频编码码率。但在处理全高清格式或者5M,8M甚至12M分辨率的超高清格式时,现有的动态码率控制方法,很难做到既保证解码后的视频图像具有较高质量,又降低视频编码码率,以便能通过现有传输网络传送编码后的视频流数据。
发明人在实现本发明的过程中发现,现有的动态码率控制方法,之所以处理全高清格式或者5M,8M甚至12M分辨率的超高清格式时,无法做到既保证解码后的视频图像具有较高质量,又能降低视频编码码率,并非由于1080以上分辨率的视频帧无法实现通过较低的视频编码码率获得高还原质量的视频图像,真实原因是,现有的动态码率控制方法在进一步降低编码码率时,会造成解码后的视频图像整体画面存在块状分层,过渡不自然的技术问题。
发明人在实现本发明的过程中发现,之所以解码后的视频图像整体画面存在块状分层,过渡不自然的技术问题,并非由于基于上一视频帧的码率调节当前预测帧的量化参数的方法,已经无法满足1080以上分辨率的视频帧的编码需要,真实原因是,现有的进一步降低视频编码码率的方法,是基于矩形分界对待编码的当前预测帧中的运动物体区域进行细分,基于矩形分界细分运动物体区域并进行量化参数控制,势必造成码流中的残差系数呈块状分布,解码还原出来的视频图像必然存在块状分层,过渡不自然的技术问题。
从理论上讲,如果用于预测帧编码的残差系数与预测帧的图像区域能对应,编码后解码还原出来的视频图像就能具有较高的画面质量。
发明人基于上述认识,提供一种视频编码码率控制方法、装置及系统。该方法、装置及系统,预测帧编码时,基于运动检测将当前预测帧与前一帧作比较,得到当前预测帧的运动物体区域及像素点的运动矢量;对当前预测帧的前一帧进行运动矢量分析,得到当前预测帧中编码质量需要保证的运动物体区域,及该区域的的像素点QP调整值,计算出当前预测帧像素点的QP预测值,及得到每个宏块的编码QP预测值,生成用于当前预测帧压缩编码处理的当前预测帧QPMAP配置表。
图1示出了本发明实施例应用环境的结构示意图。本发明实施例提供的一种视频编码码率控制方法、装置可应用于该应用环境,本发明实施例提供的一种视频编码码率控制系统可以是该应用环境,也可以是包含该应用环境的系统。
请参阅图1,该应用环境为视频编码装置或系统。该视频编码装置或系统包括视频编码器200,及与视频编码器200相配合的处理器100。
于本发明实施例中,视频编码器200,用于对视频帧序列进行压缩编码形成视频流数据。视频编码器200可以是视频编码芯片、视频编码硬件装置、视频编码软件模块中的一种。就实现形式而言,视频编码器200既可以是单独的芯片、装置、软件模块,也可以是和视频解码器集成在一起的芯片、装置、软件模块。
于本发明实施例中,处理器100,为具有信号处理能力的集成电路芯片。其通过自身拥有的集成逻辑电路或者软件形式的指令来同视频编码器200配合,完成视频帧的压缩编码。就集成电路芯片的类型而言,处理器100可以是中央处理器(Central ProcessingUnit,简称CPU),也可以是数字信号处理器(Digital Singnal Processor,DSP)、现场可编程门阵列(Field Programmable Gate Array,FPGA)、专用集成电路(ASIC),还可以是其他可编程逻辑器件,例如CPLD;就处理器100所能应用到的设备而言。处理器100,可以是计算机系统的处理器,也可以是嵌入式装置的处理器,还可以是前端视频摄像装置的处理器。
于本发明实施例中,视频编码装置,可以是前端摄像装置,也可以是嵌入式硬盘录像机(Digital Video Recorder,DVR),当然还可以是前端摄像装置或者嵌入式硬盘录像机中涉及视频编码的硬件电路结构。
上述前端摄像装置,为录制现场视频图像的装置,其可以是监控摄像机、网络摄像头、民用级摄像机、专业级摄像机中的一种。
于本发明实施例中,视频编码系统,可以是能对视频模拟信号进行采样和压缩编码处理的系统。该系统可以是PC式硬盘录像机、具有视频采集卡的计算机设备中的一种,也可以是PC式硬盘录像机或具有视频采集卡的计算机设备中涉及视频编码的硬件部分与软件模块的结合体。
于本发明实施例中,视频编码系统,还可以是能对视频流数据进行解码再进行编码的计算机设备,例如视频服务器、网络视频录像机(Network Video Record,NVR)、图形工作站、PC机、笔记本电脑中的一种。
当应用环境为视频编码系统时,视频编码器200可以内置于视频编码系统,也可以外置于视频编码系统,于本发明实施例中,不对视频编码系统的设置方式作具体限定。
于本发明实施例中,图1所示的本发明实施例应用环境,可用于对现场视频录像获得的视频帧序列进行压缩编码处理,也可用于对视频影像资料进行数字化编码处理,还可以用于对编码后的视频数据文件先解码再编码成新的码流的视频流数据或者视频数据文件。
当然本发明实施例提供的视频编码码率控制方法、装置实施时,该应用环境还可包括存储器、存储控制器、接口电路、输入输出单元,其中,处理器100、存储器、存储控制器、接口电路通过总线连接,视频编码器200与处理器100相配合。
下面将结合实际应用,参照本发明实施例附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例,仅仅是本发明实施例的一部分,而不是全部。
第一实施例
所述第一实施例以目标场景相对固定的情况下,前端摄像装置捕获的视频帧序列编码为例,对本发明的视频编码码率控制方法进行说明。
目标场景相对固定,是指摄像过程中,前端摄像装置在确定的摄像机位,以较少变化的视角进行现场摄像。其中,前端摄像装置在确定的摄像机位,是指摄像过程中,前端摄像装置被设置在预定的位置,即使前端摄像装置的设置发生调整,调整后前端摄像装置的设置位置保持较长时间不变。以较少变化的视角进行现场摄像,是指前端摄像装置视角内的目标场景在较长一段时间内,例如10分钟,保持固定,即使视角发生调整,调整后,前端摄像装置视角内的目标场景也在较长一段时间内保持固定。
在目标场景相对固定的情况下,所获得的视频帧画面中,保持不动的背景区域占据较大的画面区域,可通过运动检测将运动物体区域和背景区域分离。同时,一个时间周期内,目标场景中的运动物体的种类保持相对的稳定,例如目标场景为楼宇监控的目标场景时,目标场景中的运动物体主要是行人和进出车辆;目标场景为交通道路时,目标场景中的运动物体主要车辆。
在日常工作、生活中,视频监控、视频会议、视频直播、视频教育培训、视频交互通信均属于目标场景相对固定的情况。实施上述视频应用通常需要具有网络功能的前端摄像装置,该前端摄像装置将捕获的视频帧序列编码成视频流数据,并通过有线或者无线网络传输给相对方。其中视频监控对应的前端摄像装置是监控摄像机,视频会议对应的前端摄像装置是摄像头,视频直播对应的前端摄像装置是专业摄像机或者民用摄像机,视频交互通信对应的前端摄像装置可以是手机、平板电脑、具有即时通信工具的计算机设备中的一种。
对目标场景相对固定的情况下获得的视频帧序列,主要用于工业级应用,例如视频监控,因此视频编码时,既要考虑视频编码码率与传输网路带宽相适应,也要考虑解码后还原出来的视频图像质量具有较高质量。
图2示出了对目标场景相对固定的情况下获得的视频帧序列进行编码本发明实施例提供的一种视频编码码率控制方法的流程图。该方法以GOP为编码结构单位对视频帧序列进行顺次压缩编码,GOP包括起始位置的关键帧和关键帧后面的预测帧;参阅图2所示,该方法包括:
S110,预设GOP编码结构的关键帧QP初始值和预测帧QP初始值;
在本发明第一实施例中,视频编码时所采用的GOP编码结构,可以是视频编码技术领域中的任意一种GOP编码结构。
在本发明第一实施例中,GOP编码结构的关键帧QP初始值和预测帧QP初始值,是基于待编码视频帧序列的编码质量要求,及待编码视频帧中运动物体区域和背景区域的特点确定。
在目标场景相对固定的情况下,前端摄像装置捕获的视频帧画面中保持不动的背景区域通常占据视频帧画面的较大部分,且基本确定,视频帧画面中的运动物体区域在时间域上具有规律性。因此,关键帧编码时,编码QP值可以长时间保持一致,如果预设的关键帧QP初始值比较合理,那么关键帧QP初始值可以作为编码QP值。预测帧编码时,编码QP值是以预设的预测帧QP初始值为基础进行动态调整。
编码视频帧序列中的关键帧数量、关键帧编码码率直接关系生成的视频流的编码码率,同时,关键帧在编码和解码时均作为重要参考帧,其对解码后重构得到的视频图像画面质量影响较大。
在满足人眼对解码播放的视频图像画质视觉要求的情况下,为了有效降低关键帧的编码码率,优选的方案是,预设的关键帧QP初始值为24、25、26中的一个。
如果预设的关键帧QP初始值小于24,关键帧的编码码率会随着关键帧QP初始值的减小而增大,但在解码播放时人眼根本感觉不到视频图像画质的提高,如果预设的关键帧QP初始值大于26,关键帧的编码码率会随着关键帧QP初始值的增大而减小,但在解码播放时人眼会感觉到视频图像画质的变劣。
编码视频帧序列中的预测帧,其编码QP值不仅关系到编码码率的大小,还关系到解码后的视频帧序列播放的流畅度。
在满足人眼对解码播放的视频图像画面流畅度要求的情况下,为了有效降低预测帧的编码码率,优选的方案是,预设的预测帧QP初始值为34、35、36中的一个。
如果预设的预测帧QP初始值小于33,预测帧的编码码率会随着预测帧QP初始值的减小而增大,但在解码播放时人眼根本感觉不到视频图像画面播放流畅度的提升,如果预设的预测帧QP初始值小于37,预测帧的编码码率会随着预测帧QP初始值的增大而减小,但在解码播放时人眼会感觉到视频图像画面播放流畅度的下降。
基于34、35、36中的一个作为预测帧QP初始值,既能缩小预测帧编码QP值的调整范围,也能在降低预测帧编码码率的同时,保证解码后的视频图像播放时具有良好的流畅性。
在GOP编码结构下,关键帧为I帧,关键帧QP初始值为I帧QP初始值,预测帧可以是P帧,也可以是B帧,如果GOP编码结构中预测帧只有P帧,那么预测帧QP初始值为P帧QP初始值,如果GOP编码结构中预测帧只有B帧,那么预测帧QP初始值为B帧QP初始值,如果GOP编码结构中预测帧包括P帧和B帧,那么对应的预测帧QP初始值包括P帧QP初始值和B帧QP初始值。
S120,关键帧编码时,基于预设的关键帧QP初始值控制关键帧编码码率;
在本发明第一实施例中,关键帧编码时,既可以直接采用基于关键帧QP初始值生成的关键帧QPMAP配置表对关键帧进行压缩编码,也可以采用在关键帧QP初始值的基础上基于帧内预测得到每一个宏块编码QP值,生成基于帧内预测调整后的关键帧QPMAP配置表,采用该关键帧QPMAP配置表对关键帧进行压缩编码。
在本发明第一实施例中,由于视频帧画面中的背景区域基本确定,且视频帧画面中的运动物体区域在时间域上具有规律性。因此,关键帧编码时,基于关键帧QP初始值控制关键帧编码码率的步骤,优选的方案是,关键帧编码时,采用预设的关键帧QP初始值生成的关键帧QPMAP配置表对关键帧进行压缩编码,其中,预设的关键帧QP初始值为24、25、26中的一个。
采用上述关键帧编码码率控制方案,既能确保解码后的视频图像具有良好的画面质量,也能有效降低关键帧编码码率,还能提高关键帧编码效率。
术语“宏块”,为视频编码的基本单位,每个宏块包括一个亮度像素块和附加的两个色度像素块组成,通常亮度像素块为16x16大小的像素块,色度像素块大小依据视频帧的采样格式而定。
术语“QPMAP配置表”,视频编码时,以宏块为单位将视频帧分割成多个行列布置的宏块,每个宏块都有自己的编码QP值,基于宏块在视频帧中的行列位置及宏块的编码QP值就组成一个表,也即视频帧的QPMAP配置表。
视频编码时,视频帧被分成多个行列布置的宏块,每个宏块有对应的编码QP值,通过宏块的编码QP值生成视频帧QPMAP配置表,基于视频帧QPMAP配置表控制视频帧编码的量化精度。当视频帧为关键帧时,视频帧QPMAP配置表为关键帧QPMAP配置表,当视频帧为预测帧时,视频帧QPMAP配置表为预测帧QPMAP配置表。
S130,预测帧编码时,基于运动检测将当前预测帧与前一帧作比较,得到当前预测帧的运动物体区域及当前预测帧像素点的运动矢量;
在本发明第一实施例中,基于运动检测将当前预测帧与前一帧作比较,得到当前预测帧的运动物体区域及当前预测帧像素点的运动矢量,通过运动检测还可得到当前预测帧的背景区域。将像素点的运动矢量记作MV,当前预测帧的运动物体区域为由运动矢量大于零的像素点组成的区域。
将像素点的运动矢量记作MV,通过运动检测还可得到当前预测帧的背景区域。
需要说明的是,在GOP编码结构下,不论当前预测帧是P帧,还是B帧,本步骤均是将当前预测帧与前一帧作比较,得到当前预测帧的运动物体区域、当前预测帧像素点的运动矢量、及当前预测帧的背景区域。
S140,在运动矢量坐标系下,统计当前预测帧像素点的运动矢量,得到当前预测帧中编码质量需要保证的运动物体区域;结合预设的关键帧QP初始值、预设的预测帧QP初始值、当前预测帧像素点的运动矢量,得出当前预测帧中编码质量需要保证的运动物体区域的像素点水平方向QP调整值和垂直方向QP调整值,及计算出当前预测帧像素点的QP预测值;
本发明第一实施例中,在运动矢量坐标系下,统计当前预测帧像素点的运动矢量,得到当前预测帧中编码质量需要保证的运动物体区域的步骤为:
在运动矢量坐标系下,将当前预测帧像素点的运动矢量分解为水平运动矢量和垂直运动矢量,统计像素点的水平运动矢量得到当前预测帧的水平运动矢量分布图,统计像素点的垂直运动矢量得到当前预测帧的垂直运动矢量分布图;
剔除当前预测帧的水平运动矢量分布图和垂直运动矢量分布图中的背景区域,将运动矢量大于预设运动矢量阈值的像素点构成的区域定义为当前预测帧中编码质量需要保证的运动物体区域。
在将当前预测帧像素点的运动矢量分解为水平运动矢量和垂直运动矢量的过程中,像素点的运动矢量MV被分解为水平运动矢量MVx和垂直运动矢量MVy,统计当前预测帧像素点的MVx得到当前预测帧的水平运动矢量分布图,统计当前预测帧像素点的MVy得到当前预测帧的垂直运动矢量分布图。
在本发明第一实施例中,在当前预测帧的水平运动矢量分布图和垂直运动矢量分布图中,运动矢量为零的像素点构成的区域为背景区域,运动矢量大于零的像素点构成的区域为运动物体区域,运动矢量大于预设运动矢量阈值的像素点构成的区域为编码质量需要保证的运动物体区域。
本发明第一实施例中,得出当前预测帧中编码质量需要保证的运动物体区域的像素点水平方向QP调整值和垂直方向QP调整值的步骤,包括得出当前预测帧中编码质量需要保证的运动物体区域的像素点水平方向QP调整值,和得出当前预测帧中编码质量需要保证的运动物体区域的像素点垂直方向QP调整值。其中,
当前预测帧中编码质量需要保证的运动物体区域的像素点水平方向QP调整值的计算公式为:
其中,ΔQPx为当前预测帧中编码质量需要保证的运动物体区域的像素点水平方向QP调整值,MVx为当前预测帧像素点的水平运动矢量,MVxmax为当前预测帧像素点的水平运动矢量的最大值,MVxmin为当前预测帧像素点的水平运动矢量的最小值,QPkeyf为关键帧QP初始值,QPpref为预测帧QP初始值。
当前预测帧中编码质量需要保证的运动物体区域的像素点垂直方向QP调整值的计算公式为:
其中,ΔQPy为当前预测帧中编码质量需要保证的运动物体区域的像素点垂直方向QP调整值,MVy为当前预测帧像素点的垂直运动矢量,MVymax为当前预测帧像素点的垂直运动矢量的最大值,MVymin为当前预测帧像素点的垂直运动矢量的最小值,QPkeyf为关键帧QP初始值,QPpref为预测帧QP初始值。
在此基础上,当前预测帧像素点的QP预测值的计算公式为:
其中,QPxy为当前预测帧像素点的QP预测值,ΔQPx为当前预测帧中编码质量需要保证的运动物体区域的像素点水平方向QP调整值,ΔQPy为当前预测帧中编码质量需要保证的运动物体区域的像素点垂直方向QP调整值,QPpref为预测帧QP初始值。
本发明第一实施例中,不论当前预测帧是P帧还是B帧,当前预测帧像素点的QP预测值的计算是基于当前预测帧中编码质量需要保证的运动物体区域的像素点的运动矢量得到,与当前预测帧的后一帧无关。
本发明第一实施例中,基于预设运动矢量阈值将视频帧图像区域分成运动矢量大于预设运动矢量阈值的像素点构成的编码质量需要保证的运动物体区域,及运动矢量小于预设运动矢量阈值的像素点构成的普通编码区域。与现有技术的矩形块状分区方法相比,本发明涉及的区域划分方法没有明显的区域界线,分成的普通编码区域和编码质量需要保证的运动物体区域相互咬合,基于编码质量需要保证的运动物体区域的像素点的运动矢量得到的前预测帧像素点的QP预测值更能反映前预测帧像素点的编码时的量化需要,得到预测帧残差系数在分布上更合理,没有局部呈块状聚集的特点。
预测帧编码时,普通编码区域,采用能保证解码后的视频图像播放时具有良好流畅性的最小有效编码码率范围所对应的预设的预测帧QP初始值,控制该区域编码的量化精度;编码质量需要保证的运动物体区域,采用最小有效编码码率范围所对应的预设的预测帧QP初始值基于像素点的运动矢量调整后的预测帧QP值,控制该区域编码的量化精度。
无论是普通编码区域,还是编码质量需要保证的运动物体区域均是以最小有效编码码率范围为基础进行编码,因此,预测帧的编码码率可控制在较低的水平,同时该较低编码码率又能保证解码后的视频图像播放时具有良好流畅性及较好的视频图像画面质量。
由于仅仅对编码质量需要保证的运动物体区域的像素点的QP值进行调整,因此能有效缩短当前预测帧像素点的QP预测值计算的时间周期,提高预测帧编码码率控制的实用性和可行性。
S150,通过对宏块内的当前预测帧像素点的QP预测值均值取整,得到当前预测帧内宏块的编码QP值,生成当前预测帧的QPMAP配置表;
在本发明第一实施例中,基于步骤S140得到的及计算出当前预测帧像素点的QP预测值QPxy,对每个宏块的当前预测帧像素点的QP预测值进行均值取整,得到当前预测帧内每个宏块的编码QP值,生成当前预测帧的QPMAP配置表;其中,每个宏块的编码QP值是介于QPkeyf与QPpref之间的整数。
发明人在实现本发明的过程中发现,基于上述步骤得到的当前预测帧的QPMAP配置表对当前预测帧进行帧间压缩编码得到的视频流数据,解码后重构得到的视频图像可能会出现局部区域过渡不自然的技术问题。
发明人经过研究发现,之所以产生局部区域过渡不自然的技术问题,是由于编码所采用的当前预测帧的QPMAP配置表中相邻两个宏块之间的编码QP值差异较大。
为了将当前预测帧的QPMAP配置表中相邻两个宏块的编码QP值之差控制在预定范围内,进一步的方案是,在得到当前预测帧内宏块的编码QP值的步骤之后,生成当前预测帧的QPMAP配置表的步骤之前,该方法还包括:
将当前预测帧内的每一宏块顺次作为当前宏块,将当前宏块的编码QP值与相邻宏块的编码QP值进行比较,在当前宏块的编码QP值与相邻宏块的编码QP之差大于6时,调整当前宏块的编码QP值,使当前宏块的编码QP值与相邻宏块的编码QP值之差小于或者等于6。
通过将两个相邻宏块的量化精度控制在一个量化步长内,编码时个相邻宏块之间的采样精度差异较小,解码后重构得到的视频图像中相邻两个宏块对应的画面区域之间的过渡就比较自然,从而进一步提高解码后重构得到的视频图像的画面质量。
S160,采用当前预测帧的QPMAP配置表对当前预测帧进行压缩编码。
在本发明第一实施例中,当前预测帧编码时,如果GOP编码结构中的预测帧仅为P帧,例如IPPP编码结构,当前预测帧的参考帧为前一I帧或者P帧;如果GOP编码结构中的预测帧仅为B帧,当前预测帧的参考帧为当前预测帧的前一帧和后一帧;如果GOP编码结构中的预测帧包括B帧、P帧,则当前预测帧为P帧时,参考帧为前一I帧或者P帧,当前预测帧为B帧时,参考帧为当前预测帧的前一帧和后一帧。当然,可以按照自定的编码规则确定当前预测帧的参考帧。
在本发明第一实施例中,当前预测帧编码的过程为:基于当前预测帧与编码参考帧的差值生成残差系数,通过当前预测帧的QPMAP配置表控制残差系数的大小,以此控制熵编码的码率。
基于目标场景相对固定的共性,本发明第一实施例提供的视频编码码率控制方法,不局限于对前端摄像装置实时捕获的视频帧序列进行编码,也适用于将已经编码后的视频流或者视频文件进行解码后的再编码;基于背景区域长时间固定,本发明第一实施例提供的视频编码码率控制方法,不局限于对前端摄像装置获得视频帧序列进行编码码率控制,还适用于PPT类型教育培训视频、动画视频编码码率控制。
就应用范围而言,本发明第一实施例提供的视频编码码率控制方法,适用于视频监控系统、视频会议系统、视频直播系统、视频教育培训系统、视频交互通信系统,及适用于上述系统的前端摄像装置。
第二实施例
所述第二实施例以视频监控系统的前端摄像装置获得的视频帧序列编码为例,对本发明的视频编码码率控制方法进行说明。
视频监控系统的前端摄像装置获得的视频帧序列,属于本发明第一实施例目标场景相对固定的情况下前端摄像装置捕获的视频帧序列。
用于视频监控系统的前端摄像装置,7X24小时采集固定目标场景的现场图像,对捕获的视频帧序列进行编码形成视频流数据。视频流数据经网络传递给监控管理中心的网络视频录像机或视频服务器,监控中心的工作人员基于人眼观看或者视频分析提供分析,发现目标场景中的异常运动物体。
运动物体在视频监控目标场景中的活动具有一定的时间周期特性。通常我们用运动物体区域来表征运动物体的活动区域,用运动量来表征运动物体活跃度,用运动高峰期(Peak Exercise,PE)来表征运动物体活跃度高的时间区段,用运动空闲期(IdleExercise,IE)来表征运动物体活跃度低的时间区段。
图3示出了一个时间周期内视频监控目标场景运动量与时间的关系曲线。
参阅图3所示,图3中的纵坐标为目标场景运动量,横坐标为时间,其中,运动量表示目标场景中运动物体的活跃度。
从图3中可以看出,目标场景运动量在三个时间区段处于波峰,其他时间区段的目标场景运动量很小,在一个时间周期内,将运动量波峰区对应的时间区段定义为运动高峰期,将运动高峰期以外的时间区段定义为运动空闲期。相应地,前端摄像装置在运动高峰期获得的目标场景视频帧为运动高峰期视频帧,前端摄像装置在运动空闲期获得的目标场景视频帧为运动空闲期视频帧。
在视频监控应用场景或者与视频监控应用场景相近的应用场景中,目标场景在运动高峰期、运动空闲期具有以下特性:
总体上看,在运动高峰期,目标场景中的运动物体数量较多,运动物体的活跃度较高。例如办公楼宇进出口目标场景,在上下班时间段、中午就餐时间段进出人员较多,进出人员的活跃度较高。又例如库房进出口目标场景,在物流运输设备集中进出时间段进出运输设备较多。不过,运动高峰期中也包含运动物体数量较少的局部时间段。
要通过视频监控获得的视频帧数据,及时发现运动高峰期目标场景中的异常运动物体,那么一方面需要有足够数量的视频帧序列用于分析异常运动物体,另一方面这些视频帧的图像画面质量要能保证从众多运动物体中找出异常运动物体。
总体上看,在运动空闲期,目标场景中的运动物体数量较少,运动物体的活跃度较低。不过,运动空闲期中也包含运动物体数量较多的局部时间段。
要通过视频监控获得的视频帧数据,及时发现运动空闲期目标场景中的异常运动物体,仅需要较少数量的视频帧序列用于分析异常运动物体,但需要消除一些正常运动物体的干扰。
用于视频监控系统的前端摄像装置被设置在固定的位置,视频监控过程中,摄像机位基本不变,同时以相对确定的摄像视角采集固定的目标场景的现场视频图像。前端摄像装置获得的视频帧中,背景区域占据视频图像画面的绝大部分区域,且基本不变。
图4示出了针对视频监控系统的前端摄像装置获得的视频帧序列本发明实施例提供的一种视频编码码率控制方法的流程图。该方法以GOP为编码结构单位对视频帧序列进行顺次压缩编码,GOP包括起始位置的关键帧和关键帧后面的预测帧。
需要说明的是,在本发明第二实施例中,视频编码时所采用的GOP编码结构,可以是视频编码技术领域中的任意一种GOP编码结构。
但为了便于清楚阐述本发明第二实施例提供的一种视频编码码率控制方法,降低技术方案的理解难度,在本发明第二实施例中,基于GOP编码结构为固定场景摄像中常采用的IPPP编码结构的假定,对本发明的技术方案进行示例性说明,需要说明的是,上述假定对不产生具体限定。
在IPPP编码结构下关键帧为I帧,其采用全帧压缩编码,预测帧为P帧,其采用前一I帧或P帧作为参考帧进行帧间压缩编码。
参阅图4所示,该方法包括:
S210,预设GOP编码结构的关键帧QP初始值和预测帧QP初始值;
具体实现过程请参照本发明第一实施例的步骤S110。
S220,通过至少一个时间周期的目标场景运动量统计,获得目标场景一个时间周期内的运动高峰期时间区段和运动空闲期时间区段;运动高峰期时间区段目标场景所对应的视频帧为运动高峰期视频帧,运动空闲期时间区段目标场景所对应的视频帧为运动空闲期视频帧;
在本发明第二实施例中,通过至少一个时间周期的目标场景运动量统计,获得目标场景一个时间周期内的运动高峰期时间区段和运动空闲期时间区段的步骤,
可以是在至少一个时间周期内对目标场景中的运动物体数量及运动物体运动量进行统计,获得目标场景一个时间周期内的运动高峰期时间区段和运动空闲期时间区段;
也可以通过对至少一个时间周期的视频帧序列的运动总量进行统计,获得目标场景一个时间周期内的运动高峰期时间区段和运动空闲期时间区段;
上述视频帧序列,可以是前端摄像装置采集的视频帧序列,也可以是已经编码视频数据文件中的视频帧序列。
上述视频帧序列的运动总量进行统计,可以是单独采用视频帧序列进行统计,也可以是前端摄像装置边进行编码边统计。
上述一个时间周期,对于视频监控来说,通常是一天,当然也可以是多天,对于视频会议、视频直播、视频教育培训、视频交互通信,通常是一次任务的时间。
在本发明第二实施例中,对至少一个时间周期的视频帧序列的运动总量进行统计的步骤为:通过运动检测获得视频帧像素点的运动矢量,基于空间域统计视频帧的运动总量,基于帧率统计每秒视频帧的运动总量,基于至少一个时间周期统计预定时间内的视频帧的运动总量。
术语“空间域”,是指由图像像素组成的空间,在图像空间中以距离为自变量对像素值进行处理称为空间域处理。
基于空间域统计视频帧的运动总量统计公式为:
其中,SumMV为视频帧的运动总量,MV为像素点的运动矢量,W为视频帧宽度方向的像素点数,h为视频帧高度方向的像素点数。
基于帧率统计每秒视频帧的运动总量的统计公式为:
其中,SecMV为每秒视频帧的运动总量,SumMV为视频帧的运动总量,FPS为视频帧的输入帧率。
统计预定时间内的视频帧的运动总量的统计公式为:
其中,hotMV为预定时间的视频帧的运动总量,SecMV为每秒视频帧的运动总量,t为预定时间。
将时间区段运动总量大于或者等于预设时间区段运动总量阈值的时间区段定义为运动高峰期时间区段,将运动高峰期时间区段以外的其他时间区段定义为运动空闲期时间区段,这样就获得了一个时间周期内的运动高峰期时间区段和运动空闲期时间区段。
这样,前端摄像装置捕获的视频帧,运动高峰期时间区段目标场景所对应的视频帧为运动高峰期视频帧,运动空闲期时间区段目标场景所对应的视频帧为运动空闲期视频帧。
S230,通过运动检测获得待编码视频帧像素点的运动矢量,基于空间域统计待编码视频帧的运动总量,结合待编码视频帧所对应的时间区段,将待编码视频帧的运动总量与预设的视频帧运动总量阈值作比较,确定待编码视频帧输入帧率;
在本发明第二实施例中,通过运动检测获得待编码视频帧像素点的运动矢量,基于空间域统计待编码视频帧的运动总量的步骤请参照步骤S220中的相关说明。
在本发明第二实施例中,结合待编码视频帧所对应的时间区段,将待编码视频帧的运动总量与预设的视频帧运动总量阈值作比较,确定待编码视频帧输入帧率。其中,待编码视频帧输入帧率是通过如下方式确定:
其中,CUR_FPS为待编码视频帧输入帧率,SumMV为待编码视频帧的运动总量,SumMVthr为视频帧运动总量阈值,FPSSET为待编码视频帧的运动总量大于视频帧运动总量阈值时的待编码视频帧输入帧率,FPSMID为运动高峰期时间区段内待编码视频帧的运动总量小于视频帧运动总量阈值时的待编码视频帧输入帧率,FPSMIN为运动空闲期时间区段内待编码视频帧的运动总量小于视频帧运动总量阈值时的待编码视频帧输入帧率,in PeakExercise是指待编码视频帧为运动高峰期视频帧,in Idle Exercise是指待编码视频帧为运动空闲期视频帧。
其中,FPSMID的数值大于FPSMIN的数值。
如果提供待编码视频帧的帧源为前端摄像装置,FPSSET为前端摄像装置默认的视频帧采集帧率,如果提供待编码视频帧的帧源为视频解码器,FPSSET为视频解码器默认的视频帧输出帧率,该视频解码器可以是软件解码器,也可以是硬件解码器。
上述视频帧运动总量阈值SumMVthr,根据目标场景中的运动物体的运动特性,及目标场景中的异常运动物体的运动特性确定。不同的目标场景监控需求采用不同的视频帧运动总量阈值,例如对交通道路监控所采集的视频帧序列进行编码所采用的视频帧运动总量阈值SumMVthr,与对办公楼宇控所采集的视频帧序列进行编码所采用的视频帧运动总量阈值SumMVthr完全不一样。
本发明第二实施例,将待编码视频帧的运动总量与待编码视频帧所对应的时间区段结合起来,确定待编码视频帧输入帧率,在确保能通过解码后的视频图像画面质量的情况下,有效降低待编码视频帧的数量,达到对视频编码码率的控制。
S240,关键帧编码时,基于预设的关键帧QP初始值控制关键帧编码码率;
具体实现过程请参照本发明第一实施例的步骤S120。
S250,预测帧编码时,基于运动检测将当前预测帧与前一帧作比较,得到当前预测帧的运动物体区域及当前预测帧像素点的运动矢量;
具体实现过程请参照本发明第一实施例的步骤S130。
S260,在运动矢量坐标系下,统计当前预测帧像素点的运动矢量,得到当前预测帧中编码质量需要保证的运动物体区域;结合预设的关键帧QP初始值、预设的预测帧QP初始值、当前预测帧像素点的运动矢量,得出当前预测帧中编码质量需要保证的运动物体区域的像素点水平方向QP调整值和垂直方向QP调整值,及计算出当前预测帧像素点的QP预测值;
具体实现过程请参照本发明第一实施例的步骤S140。
S270,通过对宏块内的当前预测帧像素点的QP预测值均值取整,得到当前预测帧内宏块的编码QP值,生成当前预测帧的QPMAP配置表;
具体实现过程请参照本发明第一实施例的步骤S150。
S280,采用当前预测帧的QPMAP配置表对当前预测帧进行压缩编码。
具体实现过程请参照本发明第一实施例的步骤S160。
本发明第二实施例所提供的视频编码码率控制方法,基于要在运动高峰期视频帧中发现目标场景中的异常运动物体需要较多的视频帧,要在运动空闲期视频帧中发现目标场景中的异常运动物体需要较少的视频帧的技术事实;通过运动量统计获得目标场景一个时间周期内的运动高峰期时间区段和运动空闲期时间区段,在待编码视频帧的运动总量的基础上结合待编码视频帧所对应的时间区段,确定待编码视频帧输入帧率,从而在确保能通过解码后的视频图像画面及时发现目标场景中的异常运动物体的情况下,降低运动空闲期时间区段绝大部分时间段和运动高峰期时间区段的局部时段待编码视频帧输入帧率,有效降低待编码视频帧的数量,达到对视频编码码率的有效控制。
I帧为全帧压缩帧,视频帧序列中的I帧间隔越小,GOP长度越小,视频编码的码率越大。
为了从编码结构上有效降低视频编码码率,本发明第二实施例提供的视频编码码率控制方法,进一步的方案是,该方法还包括
基于待编码视频帧的运动总量、GOP长度的最大值和最小值、一个时间周期内视频帧的运动总量的最大值和最小值,计算待编码视频帧GOP长度;基于待编码视频帧GOP长度调整GOP,在调整后的GOP中间隔选择至少一帧预测帧作为参考预测帧,将GOP中参考预测帧以外的其他预测帧作为普通预测帧,参考预测帧将GOP分成至少两个普通预测帧编码段;其中,参考预测帧为预测帧编码时参考起始I帧编码的预测帧,普通预测帧为在普通预测帧编码段内进行预测编码的预测帧。
在本发明第二实施例中,待编码视频帧GOP长度的计算公式为:
其中,GOPSIZEcur为待编码视频帧GOP长度,GOPSIZEmax为GOP长度的最大值,GOPSIZEmin为GOP长度的最小值,SumMVcur为待编码视频帧的运动总量,SumMVmin为一个时间周期内视频帧的运动总量最小值,SumMVmax为一个时间周期内视频帧的运动总量最大值。
图5示出了IPPP编码结构下调整后的GOP的编码方式。
参阅图5所示,图5中的GOP的第一帧为I帧,1b、2b、……、Nb为参考预测帧,1e、2e、……、Me为普通预测帧。图5中的箭头线代表视频帧编码参考关系。
GOP编码时,参考预测帧参考起始I帧编码,参考预测帧后的普通预测帧逐帧参考编码,起始I帧用于保证参考预测帧丢失后的视频图像恢复,参考预测帧用于保证普通预测帧丢失后的视频图像恢复,从而在保证解码后的视频图像质量的情况下,将GOP长度增大多倍,有效降低视频编码的码率。
本发明第二实施例所提供的视频编码码率控制方法,基于待编码视频帧的运动总量有针对地调整GOP长度,有效降低视频编码码率。
宏块为视频编码的基本单位,基于宏块的编码QP值生成的
宏块为视频编码的基本单位,基于宏块的编码QP值生成的当前预测帧的QPMAP配置表是否符合当前预测帧量化编码的需要,直接关系到当前预测帧的编码码率及解码重构出来的视频图像质量。
运动总量不同的视频帧,编码时对量化参数的控制存在较大的差异,也即运动高峰期视频帧和运动空闲期视频帧所对应的当前预测帧的QPMAP配置表存在较大差异。
为了使当前预测帧的QPMAP配置表符合当前预测帧量化编码的需要,进一步的方案是,
在生成当前预测帧的QPMAP配置表的步骤之后,该方法还包括:
基于当前预测帧所对应的时间区段,调整当前预测帧的QPMAP配置表中的宏块的编码QP值,得到基于时间区段的当前预测帧的QPMAP配置表。
在本发明第二实施例中,上述步骤是:
对运动空闲期当前预测帧,基于空间域进行图像滤波,滤除当前预测帧中的部分高频分量,调低运动物体区域所对应的宏块的编码QP值,得到基于运动空闲期的当前预测帧的QPMAP配置表;
对运动高峰期当前预测帧,将运动高峰期内运动总量为零的宏块标识为skip宏块,得到基于运动高峰期的当前预测帧的QPMAP配置表。
术语“高频分量”,是指视频图像中图像强度变化剧烈的像素点区域,其是对图像边缘和轮廓的度量。图像强度是指图像的亮度或者灰度。
术语“skip宏块”,是指编码时,不将该宏块的像素残差和运动矢量残差写入码流,只对该宏块进行SKIP宏块标识,解码时采用近似替代的恢复办法通过参考帧恢复本帧本宏块的像素点。对于P帧,skip宏块为P-skip宏块,对于B帧,skip宏块为B-skip宏块。
在本发明第二实施例中,要获得宏块在运动高峰期内的运动总量,首先需要获得宏块的运动总量,基于帧率统计获得宏块每秒的运动总量,最后基于时间统计获得运动高峰期内的宏块的运动总量。
宏块的运动总量的统计公式为:
其中,MBMV(i,j)为视频帧中第i行第j列的宏块的运动总量,MV为像素点的运动矢量,s为宏块的像素点数。
宏块每秒的运动总量的统计公式为:
其中,SecMBMV(i,j)为视频帧中第i行第j列的宏块每秒的运动总量,MBMV(i,j)为视频帧中第i行第j列的宏块的运动总量,FPS为待编码视频帧的编码输入帧率。
宏块预定时间内的运动总量的统计公式为:
其中,hotMBMV(i,j)为视频帧中第i行第j列的宏块预定时间内的运动总量,SecMBMV(i,j)为视频帧中第i行第j列的宏块每秒的运动总量,t为预定时间。
如果预定时间t为运动高峰期时间,那么统计得到的是宏块在运动高峰期内的运动总量。
当前预测帧编码时,采用基于时间区段的当前预测帧的QPMAP配置表对当前预测帧进行帧间压缩编码。
在本发明第二实施例中,对运动空闲期当前预测帧,基于空间域进行图像滤波,滤除当前预测帧中的部分高频分量,可有效减小当前预测帧生成的残差系数降低当前预测帧的编码码率;调低运动物体区域所对应的宏块的编码QP值,可有效提高当前预测帧编码时的量化采样精度;从整体上实现在提升解码后的视频图像画面质量的情况下,进一步降低当前预测帧编码码率。
对运动高峰期的当前预测帧,将运动高峰期内运动总量为零的宏块标识为skip宏块,在该当前预测帧编码时,不将宏块的像素残差和运动矢量残差写入码流,从而进一步降低当前预测帧编码码率。
视频帧中的运动物体区域包括与视频帧图像边界不连通的循环类运动区域,和与视频帧图像边界连通的边界触碰类运动区域。
图6示出了监控视频帧图像中循环类运动区域和边界触碰类运动区域的分布示意图。参阅图6所示,图6中树的运动区域为循环类运动区域800,人和车的运动区域为边界触碰类运动区域900。
视频监控的目的是及时发现目标场景中的异常运动物体。视频帧图像中的循环类运动区域800,是正常运动物体的运动区域,不属于视频监控需要考虑的区域,同时其还是及时发现异常运动物体的干扰区域,需要消除其影响。视频帧图像中的边界触碰类运动区域900,是异常运动物体可能出现的区域,属于视频监控需要重点考虑的区域。
在确保能从视频帧图像中发现异常运动物体的情况下,为了降低当前预测帧的编码码率,进一步的方案是,在生成当前预测帧的QPMAP配置表的步骤之后,该方法还包括:
基于连通性分析,将当前预测帧中的运动物体区域分成循环类运动区域800和边界触碰类运动区域900;
基于空间域和时间域进行图像滤波,滤除当前预测帧中的循环类运动区域800的高频分量;
调高当前预测帧的QPMAP配置表中循环类运动区域800所对应宏块的编码QP值,生成降低循环类运动区域800影响的当前预测帧的QPMAP配置表。
在本发明第二实施例中,基于空间域和时间域进行图像滤波,滤除当前预测帧中的循环类运动区域800的高频分量,可有效减小当前预测帧生成的残差系数降低当前预测帧的编码码率;调高当前预测帧的QPMAP配置表中循环类运动区域800所对应宏块的编码QP值,可有效降低循环类运动区域800编码时的量化采样精度,降低当前预测帧的编码码率。
当前预测帧编码时,采用降低循环类运动区域800影响的当前预测帧的QPMAP配置表进行帧间压缩编码。
基于目标场景相同,本发明第二实施例提供的视频编码码率控制方法,不局限于对前端摄像装置实时捕获的视频帧序列进行编码,也适用于将已经编码后的视频流或者视频文件进行解码后的再编码;基于背景区域长时间固定,本发明第二实施例提供的视频编码码率控制方法,不局限于对前端摄像装置获得视频帧序列进行编码码率控制,还适用于PPT类型教育培训视频、动画视频编码码率控制。
就应用范围而言,本发明第二实施例提供的视频编码码率控制方法,适用于视频监控系统、视频会议系统、视频直播系统、视频教育培训系统、视频交互通信系统,及适用于上述系统的前端摄像装置。
第三实施例
所述第三实施例提供一种视频编码码率控制系统。该系统可以是第一实施例、第二实施例中的应用环境。
本发明第三实施例提供的视频编码码率控制系统的视频编码码率控制装置,其技术构思、实现原理、产生的技术效果、所能解决的技术问题和前述方法实施例相同,所属领域的技术人员可参照本发明前述方法实施例中的对应方法步骤的具体描述,理解本发明第三实施例提供的视频编码码率控制系统的视频编码码率控制装置。
图7示出了本发明实施例提供的一种视频编码码率控制系统的结构示意图。该系统可用于对实时捕获的视频帧序列进行编码和/或用于将已经编码后的视频流或者视频文件进行解码后的再编码。
如图7所示,该系统包括总线、存储器300、存储控制器400、处理器100、与处理器100相配合的视频编码器200、与视频编码器200关联的视频编码码率控制装置500,其中,存储器300、存储控制器400、处理器100通过总线连接,处理器100通过存储控制器400控制存储器300的读写操作,处理器100可用于执行存储器300中存储的可执行模块,例如计算机程序。
在需要同外围设备进行数据通信时,该系统还包括接口电路600、输入输出单元700。其中,接口电路600与存储器300、存储控制器400、处理器100通过总线连接,输入输出单元700电连接接口电路600。
在本发明第三实施例中,处理器100为能处理视频信号和/或视频数据的集成电路;视频编码器200为能对视频信号和/或视频数据进行编码的软件模块或者硬件电路及装置。处理器100、视频编码器200可参考前述应用环境的相关说明,在此不再赘述。
在本发明第三实施例中,存储控制器400、存储器300、总线、接口电路600、输入输出单元700为计算机设备或者视频图像处理设备所采用的存储控制器400、存储器300、总线、接口电路600、及输入输出单元700。
图8示出了视频编码码率控制装置的结构示意图。该装置用于对视频编码码率进行控制。请参照图8所示,
该装置包括QP初始值设置单元510、关键帧编码单元540、预测帧编码单元550。其中,
QP初始值设置单元510,用于预设GOP编码结构的关键帧QP初始值和预测帧QP初始值;
关键帧编码单元540,用于关键帧编码时,基于预设的关键帧QP初始值控制关键帧编码码率;
预测帧编码单元550,用于预测帧编码时,控制预测帧编码码率;
在确保解码后的视频图像具有良好的画面质量的情况下,为了降低关键帧编码码率,进一步的方案是,关键帧编码单元540,用于关键帧编码时,采用预设的关键帧QP初始值生成的关键帧QPMAP配置表对关键帧进行压缩编码,其中,预设的关键帧QP初始值为24、25、26中的一个。
为了从编码结构上有效降低视频编码码率,进一步的方案是,该装置还包括待编码视频帧GOP调整单元520。
待编码视频帧GOP调整单元520,参照图9所示,其包括待编码视频帧GOP长度计算单元521、GOP参考帧调整单元522;其中,
待编码视频帧GOP长度计算单元521,用于基于待编码视频帧的运动总量、GOP长度的最大值和最小值、一个时间周期内视频帧的运动总量的最大值和最小值,计算待编码视频帧GOP长度;
GOP参考帧调整单元522,用于基于待编码视频帧GOP长度调整GOP,在调整后的GOP中间隔选择至少一帧预测帧作为参考预测帧,将GOP中参考预测帧以外的其他预测帧作为普通预测帧,参考预测帧将GOP分成至少两个普通预测帧编码段;其中,参考预测帧为预测帧编码时参考起始I帧编码的预测帧,普通预测帧为在普通预测帧编码段内进行预测编码的预测帧。
其中,待编码视频帧GOP长度计算单元521,具体用于通过如下公式调整后的GOP长度:
其中,GOPSIZEcur为待编码视频帧GOP长度,GOPSIZEmax为GOP长度的最大值,GOPSIZEmin为GOP长度的最小值,SumMVcur为待编码视频帧的运动总量,SumMVmin为一个时间周期内视频帧的运动总量最小值,SumMVmax为一个时间周期内视频帧的运动总量最大值。
请继续参阅图8所示
为了使视频编码码率控制装置500能更好地应用于视频监控,进一步的方案是,该装置还包括待编码视频帧输入帧率获取单元530;
待编码视频帧输入帧率获取单元530,参照图10所示,其包括时间区段获取单元531、待编码视频帧输入帧率确定单元532;其中,
时间区段获取单元531,用于通过至少一个时间周期的目标场景运动量统计,获得目标场景一个时间周期内的运动高峰期时间区段和运动空闲期时间区段;运动高峰期时间区段目标场景所对应的视频帧为运动高峰期视频帧,运动空闲期时间区段目标场景所对应的视频帧为运动空闲期视频帧;
待编码视频帧输入帧率确定单元532,用于通过运动检测获得待编码视频帧像素点的运动矢量,基于空间域统计待编码视频帧的运动总量,结合待编码视频帧所对应的时间区段,将待编码视频帧的运动总量与预设的视频帧运动总量阈值作比较,确定待编码视频帧输入帧率。
其中,待编码视频帧输入帧率确定单元532,具体用于通过如下方式确定待编码视频帧输入帧率:
其中,CUR_FPS为待编码视频帧输入帧率,SumMV为待编码视频帧的运动总量,SumMVthr为视频帧运动总量阈值,FPSSET为待编码视频帧的运动总量大于视频帧运动总量阈值时的待编码视频帧输入帧率,FPSMID为运动高峰期时间区段内待编码视频帧的运动总量小于视频帧运动总量阈值时的待编码视频帧输入帧率,FPSMIN为运动空闲期时间区段内待编码视频帧的运动总量小于视频帧运动总量阈值时的待编码视频帧输入帧率,in PeakExercise是指待编码视频帧为运动高峰期视频帧,in Idle Exercise是指待编码视频帧为运动空闲期视频帧。
图11示出了视频编码码率控制装置的预测帧编码单元的结构示意图。
参照图11所示,预测帧编码单元550包括运动检测单元551、像素点的QP预测值获取单元552、QPMAP配置表获取单元553、预测帧压缩编码单元556。其中,
运动检测单元551,用于预测帧编码时,基于运动检测将当前预测帧与前一帧作比较,得到当前预测帧的运动物体区域及当前预测帧像素点的运动矢量;
像素点的QP预测值获取单元552,用于获得当前预测帧像素点的QP预测值;
QPMAP配置表获取单元553,用于获得当前预测帧的QPMAP配置表;
预测帧压缩编码单元556,用于采用当前预测帧的QPMAP配置表对当前预测帧进行压缩编码。
图12示出了预测帧编码单元的像素点的QP预测值获取单元的结构示意图。
参照图12所示,像素点的QP预测值获取单元552,包括编码质量需要保证的运动物体区域获取单元5521、当前预测帧像素点的QP预测值计算单元5522;其中,
编码质量需要保证的运动物体区域获取单元5521,用于在运动矢量坐标系下,将当前预测帧像素点的运动矢量分解为水平运动矢量和垂直运动矢量,统计像素点的水平运动矢量得到当前预测帧的水平运动矢量分布图,统计像素点的垂直运动矢量得到当前预测帧的垂直运动矢量分布图;及用于
剔除当前预测帧的水平运动矢量分布图和垂直运动矢量分布图中的背景区域,将运动矢量大于预设运动矢量阈值的像素点构成的区域定义为当前预测帧中编码质量需要保证的运动物体区域。
当前预测帧像素点的QP预测值计算单元5522,结合预设的关键帧QP初始值、预设的预测帧QP初始值、当前预测帧像素点的运动矢量,得出当前预测帧中编码质量需要保证的运动物体区域的像素点水平方向QP调整值和垂直方向QP调整值,及计算出当前预测帧像素点的QP预测值。
图13示出了预测帧编码单元的像素点的QPMAP配置表获取单元的结构示意图。
参照图13所示,QPMAP配置表获取单元553,包括宏块的编码QP值计算单元5531、QPMAP配置表生成单元5533。其中,
宏块的编码QP值计算单元5531,用于通过对宏块内的当前预测帧像素点的QP预测值均值取整,得到当前预测帧内宏块的编码QP值;
QPMAP配置表生成单元5533,用于生成当前预测帧的QPMAP配置表。
为了将当前预测帧的QPMAP配置表中相邻两个宏块的编码QP值之差控制在预定范围内,进一步的方案是,QPMAP配置表获取单元553还包括宏块的编码QP值调整单元5532。
宏块的编码QP值调整单元5532,用于在得到当前预测帧内宏块的编码QP值之后,生成当前预测帧的QPMAP配置表之前,将当前预测帧内的每一宏块顺次作为当前宏块,将当前宏块的编码QP值与相邻宏块的编码QP值进行比较,在当前宏块的编码QP值与相邻宏块的编码QP之差大于6时,调整当前宏块的编码QP值,使当前宏块的编码QP值与相邻宏块的编码QP值之差小于或者等于6。
请继续参阅图11所示
为了使当前预测帧的QPMAP配置表符合当前预测帧量化编码的需要,进一步的方案是,预测帧编码单元550还包括当前预测帧时间区段处理单元554;
当前预测帧时间区段处理单元554,用于在生成当前预测帧的QPMAP配置表后,对运动空闲期当前预测帧,基于空间域进行图像滤波,滤除当前预测帧中的部分高频分量,调低运动物体区域所对应的宏块的编码QP值,得到基于运动空闲期的当前预测帧的QPMAP配置表;及用于
对运动高峰期当前预测帧,将运动高峰期内运动总量为零的宏块标识为skip宏块,得到基于运动高峰期的当前预测帧的QPMAP配置表。
为了降低循环类运动区域的干扰同时降低当前预测帧的编码码率,进一步的方案是,预测帧编码单元550还包括循环类运动区域处理单元555;
循环类运动区域处理单元555,用于在生成当前预测帧的QPMAP配置表后,基于连通性分析,将当前预测帧中的运动物体区域分成循环类运动区域和边界触碰类运动区域;及用于
基于空间域和时间域进行图像滤波,滤除当前预测帧中的循环类运动区域的高频分量;还用于
调高当前预测帧的QPMAP配置表中循环类运动区域所对应宏块的编码QP值,生成降低循环类运动区域影响的当前预测帧的QPMAP配置表。
在本发明第三实施例中,视频编码码率控制装置,可以是虚拟装置,这时,其为前述本发明实施例任一实施例揭示的过程定义的装置,视频编码码率控制装置所涉及的各单元模块由软件代码实现,视频编码码率控制装置为安装于存储器中并包括一个或多个由处理器执行的软件功能模块,存储器用于存储程序,处理器通过连接存储器的总线调用存储在存储器中的程序,执行本发明实施例任一实施例揭示的过程所执行的方法。视频编码码率控制装置所执行的方法可以应用于视频编码器或处理器中,或者由视频编码器或处理器实现。
在本发明第三实施例中,视频编码码率控制装置,可以是硬件实体装置,这时,其为逻辑集成电路。其可以是单独的电子器件,也可以是视频编码器或者处理器电路的一部分。在实现过程中,本发明实施例任一实施例揭示的视频编码码率控制方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。
以上所描述的视频编码码率控制系统及其组件视频编码码率控制装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
需要说明的是,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
本发明实施例所提供的视频编码码率控制方法,以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。这时,本发明实施例所提供的视频编码码率控制方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
综上所述,本发明实施例提供的视频编码码率控制方法、装置及系统,不局限于对前端摄像装置实时捕获的视频帧序列进行编码,也适用于将已经编码后的视频流或者视频文件进行解码后的再编码;不局限于对前端摄像装置获得视频帧序列进行编码码率控制,还适用于PPT类型教育培训视频、动画视频编码码率控制;不局限于应用到前端摄像装置中,还可应用于视频监控系统、视频会议系统、视频直播系统、视频教育培训系统、视频交互通信系统中。
本发明实施例提供的视频编码码率控制方法、装置及系统,当前预测帧编码时基于运动矢量阈值得到当前预测帧编码质量需要保证的运动物体区域的像素点的运动矢量,获得当前预测帧像素点的QP预测值,再得到宏块的编码QP值,及生成当前预测帧的QPMAP配置表,以此控制当前预测帧生成的残差系数大小,实现视频编码码率控制。由于编码质量需要保证的运动物体区域和视频帧中的其他区域相互融合交错,不存在矩形分区的问题,也就没有解码后重构的视频图像存在块状分层的技术问题;由于当前预测帧编码时,仅对编码质量需要保证的运动物体区域进行提高量化精度,其他区域采用能保证解码后重构的视频图像具有较好视觉感受的最低码率范围编码,因此能有效控制当前预测帧的编码码率,提高编码效率。
在此基础上可通过关键帧QP值控制降低关键帧的编码码率,及通过预测帧的QPMAP配置表的宏块的编码QP值调整,提高预测帧解码后重构的视频图像的质量。
在此基础上,可在待编码视频帧的运动总量的基础上结合待编码视频帧所对应的时间区段,确定待编码视频帧输入帧率,降低运动空闲期时间区段绝大部分时间段和运动高峰期时间区段的局部时段待编码视频帧输入帧率,有效降低待编码视频帧的数量,达到对视频编码码率的有效控制;可基于待编码视频帧的运动总量有针对地调整GOP长度,有效降低视频编码码率;基于当前预测帧所处的时间区段,有针对地消除没有必要编码的部分视频帧区域,有效降低视频编码码率;基于运动区域对发现异常物体的贡献,滤除当前预测帧中的循环类运动区域的高频分量,可有效减小当前预测帧生成的残差系数降低当前预测帧的编码码率。
如此,本发明实施例提供的视频编码码率控制方法、装置及系统,在保证视频监控视频图像画面质量要求的情况下,大幅降低视频编码码率,使编码后的视频流数据能更好地适应传输网络带宽。
Claims (12)
1.视频编码码率控制方法,所述方法以GOP为编码结构单位对视频帧序列进行顺次压缩编码,所述GOP包括起始位置的关键帧和所述关键帧后面的预测帧;其特征在于,所述方法包括:
所述预测帧编码时,基于运动检测将当前预测帧与前一帧作比较,得到所述当前预测帧像素点的运动矢量;
在运动矢量坐标系下,统计所述当前预测帧像素点的运动矢量,得到所述当前预测帧中编码质量需要保证的运动物体区域;结合预设的关键帧QP初始值、预设的预测帧QP初始值、当前预测帧像素点的运动矢量,得出所述当前预测帧中编码质量需要保证的运动物体区域的像素点水平方向QP调整值和垂直方向QP调整值,及计算出所述当前预测帧像素点的QP预测值,其中,所述当前预测帧中除编码质量需要保证的运动物体区域以外的普通编码区域,采用能保证解码后的视频图像播放时具有良好流畅性的最小有效编码码率范围所对应的预设的预测帧QP初始值,作为所述当前预测值像素点的QP预测值;
通过对宏块内的所述当前预测帧像素点的QP预测值均值取整,得到所述当前预测帧内宏块的编码QP值,生成所述当前预测帧的QPMAP配置表;
采用所述当前预测帧的QPMAP配置表对所述当前预测帧进行压缩编码。
2.根据权利要求1所述的视频编码码率控制方法,其特征在于,
在得到所述当前预测帧内宏块的编码QP值的步骤之后,生成所述当前预测帧的QPMAP配置表的步骤之前,所述方法还包括:
将所述当前预测帧内的每一宏块顺次作为当前宏块,将所述当前宏块的编码QP值与相邻宏块的编码QP值进行比较,在所述当前宏块的编码QP值与所述相邻宏块的编码QP之差大于6时,调整所述当前宏块的编码QP值,使所述当前宏块的编码QP值与所述相邻宏块的编码QP值之差小于或者等于6。
3.根据权利要求1或2所述的视频编码码率控制方法,其特征在于,所述方法还包括:
通过至少一个时间周期的目标场景运动量统计,获得所述目标场景一个时间周期内的运动高峰期时间区段和运动空闲期时间区段;所述运动高峰期时间区段目标场景所对应的视频帧为运动高峰期视频帧,所述运动空闲期时间区段目标场景所对应的视频帧为运动空闲期视频帧;
通过运动检测获得待编码视频帧像素点的运动矢量,基于空间域统计所述待编码视频帧的运动总量,结合所述待编码视频帧所对应的时间区段,将所述待编码视频帧的运动总量与预设的视频帧运动总量阈值作比较,确定所述待编码视频帧输入帧率。
4.根据权利要求3所述的视频编码码率控制方法,其特征在于,
在生成所述当前预测帧的QPMAP配置表的步骤之后,所述方法还包括:
对所述运动空闲期当前预测帧,基于空间域进行图像滤波,滤除所述当前预测帧中的部分高频分量,调低运动物体区域所对应的宏块的编码QP值,得到基于运动空闲期的所述当前预测帧的QPMAP配置表;
对所述运动高峰期当前预测帧,将运动高峰期内运动总量为零的宏块标识为skip宏块,得到基于运动高峰期的所述当前预测帧的QPMAP配置表。
5.根据权利要求1或2所述的视频编码码率控制方法,其特征在于,
在生成所述当前预测帧的QPMAP配置表的步骤之后,所述方法还包括:
基于运动检测将当前预测帧与前一帧作比较,得到所述当前预测帧的运动物体区域;
基于连通性分析,将所述当前预测帧中的运动物体区域分成循环类运动区域和边界触碰类运动区域;
基于空间域和时间域进行图像滤波,滤除所述当前预测帧中的所述循环类运动区域的高频分量;
调高所述当前预测帧的QPMAP配置表中所述循环类运动区域所对应宏块的编码QP值,生成降低循环类运动区域影响的所述当前预测帧的QPMAP配置表。
6.视频编码码率控制装置,所述装置以GOP为编码结构单位对视频帧序列进行顺次压缩编码,所述GOP包括起始位置的关键帧和所述关键帧后面的预测帧;其特征在于,所述装置包括:
运动检测单元,用于预测帧编码时,基于运动检测将当前预测帧与前一帧作比较,得到所述当前预测帧像素点的运动矢量;
像素点的QP预测值获取单元,用于在运动矢量坐标系下,统计所述当前预测帧像素点的运动矢量,得到所述当前预测帧中编码质量需要保证的运动物体区域;结合预设的关键帧QP初始值、预设的预测帧QP初始值、所述当前预测帧像素点的运动矢量,得出所述当前预测帧中编码质量需要保证的运动物体区域的像素点水平方向QP调整值和垂直方向QP调整值,及计算出所述当前预测帧像素点的QP预测值,其中,所述当前预测帧中除编码质量需要保证的运动物体区域以外的普通编码区域,采用能保证解码后的视频图像播放时具有良好流畅性的最小有效编码码率范围所对应的预设的预测帧QP初始值,作为所述当前预测值像素点的QP预测值;
QPMAP配置表获取单元,用于通过对宏块内的所述当前预测帧像素点的QP预测值均值取整,得到所述当前预测帧内宏块的编码QP值,生成所述当前预测帧的QPMAP配置表;
预测帧压缩编码单元,用于采用所述当前预测帧的QPMAP配置表对所述当前预测帧进行压缩编码。
7.根据权利要求6所述的视频编码码率控制装置,其特征在于,
所述装置还包括宏块的编码QP值调整单元;
所述宏块的编码QP值调整单元,用于在得到所述当前预测帧内宏块的编码QP值之后,生成所述当前预测帧的QPMAP配置表之前,将所述当前预测帧内的每一宏块顺次作为当前宏块,将所述当前宏块的编码QP值与相邻宏块的编码QP值进行比较,在所述当前宏块的编码QP值与所述相邻宏块的编码QP之差大于6时,调整所述当前宏块的编码QP值,使所述当前宏块的编码QP值与所述相邻宏块的编码QP值之差小于或者等于6。
8.根据权利要求6或7所述的视频编码码率控制装置,其特征在于,
所述装置还包括待编码视频帧输入帧率获取单元,所述待编码视频帧输入帧率获取单元包括时间区段获取单元、待编码视频帧输入帧率确定单元;
所述时间区段获取单元,用于通过至少一个时间周期的目标场景运动量统计,获得所述目标场景一个时间周期内的运动高峰期时间区段和运动空闲期时间区段;所述运动高峰期时间区段目标场景所对应的视频帧为运动高峰期视频帧,所述运动空闲期时间区段目标场景所对应的视频帧为运动空闲期视频帧;
所述待编码视频帧输入帧率确定单元,用于通过运动检测获得所述待编码视频帧像素点的运动矢量,基于空间域统计所述待编码视频帧的运动总量,结合所述待编码视频帧所对应的时间区段,将所述待编码视频帧的运动总量与预设的视频帧运动总量阈值作比较,确定所述待编码视频帧输入帧率。
9.根据权利要求8所述的视频编码码率控制装置,其特征在于,
所述装置还包括待编码视频帧GOP调整单元,所述待编码视频帧GOP调整单元包括待编码视频帧GOP长度计算单元、GOP参考帧调整单元;
所述待编码视频帧GOP长度计算单元,用于基于所述待编码视频帧的运动总量、GOP长度的最大值和最小值、一个时间周期内视频帧的运动总量的最大值和最小值,计算待编码视频帧GOP长度;
所述GOP参考帧调整单元,用于基于待编码视频帧GOP长度调整GOP,在调整后的GOP中间隔选择至少一帧预测帧作为参考预测帧,将GOP中参考预测帧以外的其他预测帧作为普通预测帧,所述参考预测帧将GOP分成至少两个普通预测帧编码段;其中,所述参考预测帧为预测帧编码时参考起始I帧编码的预测帧,所述普通预测帧为在所述普通预测帧编码段内进行预测编码的预测帧。
10.根据权利要求8所述的视频编码码率控制装置,其特征在于,
所述装置还包括当前预测帧时间区段处理单元;
所述当前预测帧时间区段处理单元,用于在生成所述当前预测帧的QPMAP配置表后,对所述运动空闲期当前预测帧,基于空间域进行图像滤波,滤除所述当前预测帧中的部分高频分量,调低运动物体区域所对应的宏块的编码QP值,得到基于运动空闲期的所述当前预测帧的QPMAP配置表;及用于
对所述运动高峰期当前预测帧,将运动高峰期内运动总量为零的宏块标识为skip宏块,得到基于运动高峰期的所述当前预测帧的QPMAP配置表。
11.根据权利要求6或7所述的视频编码码率控制装置,其特征在于,
所述运动检测单元还用于,基于运动检测将当前预测帧与前一帧作比较,得到所述当前预测帧的运动物体区域;
所述装置还包括循环类运动区域处理单元;
所述循环类运动区域处理单元,用于在生成所述当前预测帧的QPMAP配置表后,基于连通性分析,将所述当前预测帧中的运动物体区域分成循环类运动区域和边界触碰类运动区域;及用于
基于空间域和时间域进行图像滤波,滤除所述当前预测帧中的所述循环类运动区域的高频分量;还用于
调高所述当前预测帧的QPMAP配置表中所述循环类运动区域所对应宏块的编码QP值,生成降低循环类运动区域影响的所述当前预测帧的QPMAP配置表。
12.视频编码码率控制系统,所述系统包括总线、存储器、存储控制器、处理器、与处理器相配合的视频编码器,所述存储器、存储控制器、处理器通过总线连接,所述处理器通过存储控制器控制存储器;
其特征在于,还包括6至11任意一项所述的视频编码码率控制装置,所述视频编码码率控制装置与视频编码器相关联;
所述视频编码码率控制装置安装于所述存储器中并包括一个或多个由所述处理器执行的软件功能模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610703935.5A CN106254868B (zh) | 2016-08-19 | 2016-08-19 | 视频编码码率控制方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610703935.5A CN106254868B (zh) | 2016-08-19 | 2016-08-19 | 视频编码码率控制方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106254868A CN106254868A (zh) | 2016-12-21 |
CN106254868B true CN106254868B (zh) | 2019-08-27 |
Family
ID=57596481
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610703935.5A Active CN106254868B (zh) | 2016-08-19 | 2016-08-19 | 视频编码码率控制方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106254868B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108259904B (zh) * | 2016-12-29 | 2022-04-05 | 法法汽车(中国)有限公司 | 用于图像数据编码的方法、编码器和电子设备 |
EP3396961A1 (en) * | 2017-04-24 | 2018-10-31 | Axis AB | Method and rate controller for controlling output bitrate of a video encoder |
CN109819263B (zh) * | 2017-11-22 | 2022-08-19 | 腾讯科技(深圳)有限公司 | 视频编码方法、装置、计算机设备及存储介质 |
CN108600863A (zh) | 2018-03-28 | 2018-09-28 | 腾讯科技(深圳)有限公司 | 多媒体文件处理方法和装置、存储介质及电子装置 |
CN109862315B (zh) * | 2019-01-24 | 2021-02-09 | 华为技术有限公司 | 视频处理方法、相关设备及计算机存储介质 |
CN110446045B (zh) * | 2019-07-09 | 2021-07-06 | 中移(杭州)信息技术有限公司 | 视频编码方法、装置、网络设备及存储介质 |
CN111770335B (zh) * | 2020-07-08 | 2024-04-02 | 西安万像电子科技有限公司 | 数据编码方法及装置 |
CN112165619A (zh) * | 2020-09-24 | 2021-01-01 | 杭州当虹科技股份有限公司 | 一种面向监控视频压缩存储的方法 |
CN115484470A (zh) * | 2021-06-15 | 2022-12-16 | 武汉斗鱼鱼乐网络科技有限公司 | 用于提高直播画面质量的方法、装置、介质及计算机设备 |
CN114554287B (zh) * | 2022-01-28 | 2024-01-09 | 浙江航视智能科技有限公司 | 一种视频流花屏及卡顿的快速检测方法 |
CN115580723B (zh) * | 2022-12-09 | 2023-06-09 | 中南大学 | 一种屏幕内容图像的编码优化方法、系统、设备及介质 |
CN118153597B (zh) * | 2024-01-25 | 2024-12-17 | 像航(上海)科技有限公司 | 一种卡片以及条码识别方法、装置、电子设备及存储介质 |
CN118972582B (zh) * | 2024-10-11 | 2025-01-07 | 浙江大华技术股份有限公司 | 一种视频编码方法、装置、设备、介质和计算机程序产品 |
CN118972584B (zh) * | 2024-10-16 | 2025-03-25 | 支付宝(杭州)信息技术有限公司 | 一种视频压缩方法、装置、设备及介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1713729A (zh) * | 2004-06-24 | 2005-12-28 | 华为技术有限公司 | 一种视频压缩方法 |
CN101171842A (zh) * | 2005-03-10 | 2008-04-30 | 高通股份有限公司 | 多媒体数据的改进的编码 |
CN101184221A (zh) * | 2007-12-06 | 2008-05-21 | 上海大学 | 基于视觉关注度的视频编码方法 |
JP2008283401A (ja) * | 2007-05-09 | 2008-11-20 | Canon Inc | 画像処理装置およびその方法 |
CN101516028A (zh) * | 2008-02-18 | 2009-08-26 | 昊迪移通(北京)技术有限公司 | 一种针对移动网视频通话应用的高效视频编码技术 |
CN101827267A (zh) * | 2010-04-20 | 2010-09-08 | 上海大学 | 基于视频图像分割技术的码率控制方法 |
CN103079063A (zh) * | 2012-12-19 | 2013-05-01 | 华南理工大学 | 一种低码率下视觉关注区域的视频编码方法 |
CN103167290A (zh) * | 2013-04-01 | 2013-06-19 | 深圳市云宙多媒体技术有限公司 | 一种视频编码运动强度量化方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040146108A1 (en) * | 2003-01-23 | 2004-07-29 | Shih-Chang Hsia | MPEG-II video encoder chip design |
JP3846488B2 (ja) * | 2004-05-10 | 2006-11-15 | セイコーエプソン株式会社 | 画像データ圧縮装置、エンコーダ、電子機器及び画像データ圧縮方法 |
-
2016
- 2016-08-19 CN CN201610703935.5A patent/CN106254868B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1713729A (zh) * | 2004-06-24 | 2005-12-28 | 华为技术有限公司 | 一种视频压缩方法 |
CN101171842A (zh) * | 2005-03-10 | 2008-04-30 | 高通股份有限公司 | 多媒体数据的改进的编码 |
JP2008283401A (ja) * | 2007-05-09 | 2008-11-20 | Canon Inc | 画像処理装置およびその方法 |
CN101184221A (zh) * | 2007-12-06 | 2008-05-21 | 上海大学 | 基于视觉关注度的视频编码方法 |
CN101516028A (zh) * | 2008-02-18 | 2009-08-26 | 昊迪移通(北京)技术有限公司 | 一种针对移动网视频通话应用的高效视频编码技术 |
CN101827267A (zh) * | 2010-04-20 | 2010-09-08 | 上海大学 | 基于视频图像分割技术的码率控制方法 |
CN103079063A (zh) * | 2012-12-19 | 2013-05-01 | 华南理工大学 | 一种低码率下视觉关注区域的视频编码方法 |
CN103167290A (zh) * | 2013-04-01 | 2013-06-19 | 深圳市云宙多媒体技术有限公司 | 一种视频编码运动强度量化方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106254868A (zh) | 2016-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106254868B (zh) | 视频编码码率控制方法、装置及系统 | |
WO2021244341A1 (zh) | 图像编码方法及装置、电子设备及计算机可读存储介质 | |
US12125171B2 (en) | Video denoising method and apparatus, and storage medium | |
US11838507B2 (en) | Video encoding method and apparatus, electronic device, and computer-readable storage medium | |
RU2682859C1 (ru) | Выбор точности вектора движения | |
CN103179394B (zh) | 一种基于区域视频质量平稳的i帧码率控制方法 | |
Gao et al. | The IEEE 1857 standard: Empowering smart video surveillance systems | |
US11743475B2 (en) | Advanced video coding method, system, apparatus, and storage medium | |
US7162096B1 (en) | System and method for dynamic perceptual coding of macroblocks in a video frame | |
JP7015183B2 (ja) | 画像符号化装置及びその制御方法及びプログラム | |
GB2504068A (en) | Independently Decodable Enhancement Layers in Block-Based Scalable Video Coding Based on RoI Base Layer Blocks | |
Xu et al. | Consistent visual quality control in video coding | |
US8780988B2 (en) | Hierarchical video analysis-based real-time perceptual video coding | |
KR102424258B1 (ko) | 비디오를 인코딩하기 위한 방법 및 인코더 시스템 | |
US20070269120A1 (en) | Video image compression using model plus difference image | |
CN116708933B (zh) | 一种视频编码方法及装置 | |
CN116939170B (zh) | 一种视频监控方法、视频监控服务器及编码器设备 | |
Choe et al. | An effective temporal error concealment in H. 264 video sequences based on scene change detection-PCA model | |
US10735773B2 (en) | Video coding techniques for high quality coding of low motion content | |
US10742979B2 (en) | Nonlinear local activity for adaptive quantization | |
US20140362927A1 (en) | Video codec flashing effect reduction | |
CN117676266A (zh) | 视频流的处理方法及装置、存储介质、电子设备 | |
CN117616751A (zh) | 动态图像组的视频编解码 | |
Singam | Computational complexity of human visualization characteristics based on well known metric | |
CN103155566B (zh) | 动态图像编码方法以及动态图像编码装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |