CN110213585B - 视频编码方法、装置、计算机可读存储介质和计算机设备 - Google Patents

视频编码方法、装置、计算机可读存储介质和计算机设备 Download PDF

Info

Publication number
CN110213585B
CN110213585B CN201811288530.5A CN201811288530A CN110213585B CN 110213585 B CN110213585 B CN 110213585B CN 201811288530 A CN201811288530 A CN 201811288530A CN 110213585 B CN110213585 B CN 110213585B
Authority
CN
China
Prior art keywords
code rate
time granularity
video frame
complexity
current
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
Application number
CN201811288530.5A
Other languages
English (en)
Other versions
CN110213585A (zh
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 Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201811288530.5A priority Critical patent/CN110213585B/zh
Publication of CN110213585A publication Critical patent/CN110213585A/zh
Priority to EP19880678.8A priority patent/EP3876535A4/en
Priority to PCT/CN2019/109976 priority patent/WO2020088200A1/zh
Priority to JP2020560329A priority patent/JP7123470B2/ja
Priority to US17/078,414 priority patent/US11317097B2/en
Application granted granted Critical
Publication of CN110213585B publication Critical patent/CN110213585B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/124Quantisation
    • 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/146Data rate or code amount at the encoder output
    • 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/172Methods 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 picture, frame or field
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • H04N19/197Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters including determination of the initial value of an encoding parameter

Abstract

本申请涉及一种视频编码方法、装置、计算机可读存储介质和计算机设备,所述方法包括:获取待编码的当前视频帧及初始量化参数;计算当前视频帧对应的粗时间粒度历史复杂度;获取当前的细时间粒度可用码率和当前的粗时间粒度可用码率;基于细时间粒度可用码率和粗时间粒度可用码率,并根据当前视频帧的复杂度和粗时间粒度历史复杂度,在细时间粒度可用码率和粗时间粒度可用码率间进行码率调整;根据调整后的细时间粒度可用码率更新初始量化参数,得到当前量化参数;根据当前量化参数对当前视频帧进行编码。本申请提供的方案可以实现在粗时间粒度上的码率控制,从而实现在更大时间范围内的码率分配,使得码率分配更均匀,大大地提高编码质量。

Description

视频编码方法、装置、计算机可读存储介质和计算机设备
技术领域
本申请涉及计算机技术领域,特别是涉及一种视频编码方法、装置、计算机可读存储介质和计算机设备。
背景技术
目前,H.264编码标准在互联网视频领域占据主导地位,由于带宽和存储资源相对有限,在直播等视频相关的技术领域往往会将视频源转码为多种不同的码率的视频流,以便于用户选择符合自己带宽和流量需求的码率档位来观看视频,既可以保证观看视频的流畅性,又可以为各个视频分发服务器节省带宽。
在视频编码的过程中,如何使码率稳定在用户设定的范围同时尽可能的提高视频质量,是每一个视频编码器的重点研究内容。目前的主流H264编码器,如x264等为了保证低延迟和码率的稳定性,只能在细时间粒度的范围内进行码率控制,码率控制范围较小,导致编码质量相对较差。
发明内容
基于此,有必要针对现有的编码方式只能在细时间粒度的范围内进行码率控制,导致编码质量相对较差的技术问题,提供一种视频编码方法、装置、计算机可读存储介质和计算机设备。
一种视频编码方法,包括:
获取待编码的当前视频帧及初始量化参数;
计算所述当前视频帧对应的粗时间粒度历史复杂度;
获取当前的细时间粒度可用码率和当前的粗时间粒度可用码率;
基于所述细时间粒度可用码率和所述粗时间粒度可用码率,并根据当前视频帧的复杂度和所述粗时间粒度历史复杂度,在所述细时间粒度可用码率和所述粗时间粒度可用码率间进行码率调整;
根据调整后的细时间粒度可用码率更新所述初始量化参数,得到当前量化参数;
根据所述当前量化参数对所述当前视频帧进行编码。
一种视频编码装置,包括:
视频帧获取模块,用于获取待编码的当前视频帧及初始量化参数;
历史复杂度计算模块,用于计算所述当前视频帧对应的粗时间粒度历史复杂度;
可用码率获取模块,用于获取当前的细时间粒度可用码率和当前的粗时间粒度可用码率;
码率调整模块,用于基于所述细时间粒度可用码率和所述粗时间粒度可用码率,并根据当前视频帧的复杂度和所述粗时间粒度历史复杂度,在所述细时间粒度可用码率和所述粗时间粒度可用码率间进行码率调整;
量化参数更新模块,用于根据调整后的细时间粒度可用码率更新所述初始量化参数,得到当前量化参数;
编码模块,用于根据所述当前量化参数对所述当前视频帧进行编码。
一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行上述视频编码方法的步骤。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行上述视频编码方法的步骤。
上述视频编码方法、装置、计算机可读存储介质和计算机设备,粗时间粒度可用码率能够表示在粗时间粒度上的可用码率的情况,将其与细时间粒度可用码率结合,能够实现在粗时间粒度上的码率控制,从而实现在更大时间范围内的码率分配,使得码率分配更均匀,大大地提高编码质量。在编码时,获取当前视频帧对应的粗时间粒度历史复杂度,并在此基础上,根据当前视频帧的复杂度、当前的细时间粒度可用码率和当前的粗时间粒度可用码率来预测当前视频帧在粗时间粒度上的编码复杂度,从而调整细时间粒度可用码率,就可以根据调整后的细时间粒度可用码率确定当前视频帧对应的当前量化参数,最后根据当前量化参数对当前视频帧进行编码。
附图说明
图1为一个实施例中视频编码方法的应用环境图;
图2为一个实施例中视频编码方法的流程示意图;
图3为一个实施例中计算当前视频帧对应的粗时间粒度历史复杂度的步骤的流程示意图;
图4为一个实施例中根据各视频帧的复杂度计算当前视频帧对应的粗时间粒度历史复杂度的步骤的流程示意图;
图5为一个实施例中在细时间粒度可用码率和粗时间粒度可用码率间进行码率调整的步骤的流程示意图;
图6为一个实施例中粗时间粒度可用码率与细时间粒度码可用码率之间的码率调整的示意图;
图7为一个实施例中当前视频帧前各个视频帧被编码时节省的码率添加至粗时间粒度可用码率的示意图;
图8为一个实施例中视频编码方法的流程框架图;
图9为一个实施例中视频编码装置的结构框图;
图10为一个实施例中计算机设备的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
图1为一个实施例中视频编码方法的应用环境图。参照图1,该视频编码方法应用于视频编码系统。该视频编码系统包括主播终端110、视频分发服务器120和用户终端130。主播终端110和视频分发服务器120通过网络连接,视频分发服务器120与用户终端130通过网络连接。主播终端110、用户终端130具体可以是台式终端或移动终端,移动终端具体可以手机、平板电脑、笔记本电脑等中的至少一种。视频分发服务器120可以用独立的服务器或者是多个服务器组成的服务器集群来实现,视频分发服务器120还可以是提供云服务器、云数据库、云存储和CDN等基础云计算服务的云服务器。视频分发服务器120中的视频编码器用于对主播终端110推送的视频流进行编码,将视频进行编码后得到的码流放入缓冲区进行缓冲后通过网络传输,视频分发服务器120中的码率控制器可用于调整视频编码器上的量化参数从而控制视频编码器进行后续的视频编码,防止缓冲区上溢或下溢。视频分发服务器120还可将得到的码流推送至用户终端130。
如图2所示,在一个实施例中,提供了一种视频编码方法。本实施例的视频编码方法可以应用于计算机设备中,计算机设备可以是上述图1中的视频分发服务器120,但并不局限于此。参照图2,该视频编码方法具体包括如下步骤:
S202,获取待编码的当前视频帧及初始量化参数。
具体地,视频流是由视频帧序列组成的。待编码的当前视频帧是指当前需要进行编码的视频帧。当要对视频进行编码时,将视频帧序列输入至视频编码器中,视频编码器根据预设的顺序获取待编码的视频帧进行编码。
量化参数是量化步长的序号,量化参数与量化步长是对应的,可以根据量化参数获取相应的量化步长,根据量化步长对当前视频帧进行量化编码。初始量化参数是预先设置的量化参数,可根据当前网络的带宽、平均编码码率等实际需求设置初始量化参数的大小。在对视频帧序列进行视频编码时,可以为视频帧序列中各个待进行编码的视频帧设置相同的初始量化参数。
S204,计算当前视频帧对应的粗时间粒度历史复杂度。
其中,时间粒度是时间被细化的单位,细时间粒度相对于粗时间粒度是更细化的时间单位。比如,秒相对于分钟是更细的时间粒度,而毫秒相对于秒是更细化的时间粒度。在一个实施例中,粗时间粒度是指以分钟为单位划分时间,细时间粒度是以秒为单位划分时间。
历史复杂度是当前视频帧对应的历史复杂度信息,可根据在当前视频帧之前多个视频帧对应的复杂度计算得到。粗时间粒度历史复杂度是在粗时间粒度上统计的当前视频帧对应的历史复杂度信息,可以用于预测当前视频帧在粗时间粒度上的复杂度,从而预测当前视频帧在粗时间粒度上进行码率控制后再进行视频编码所需的码率。粗时间粒度历史复杂度越大,说明在该粗粒度对应的时间范围内的视频帧的复杂度整体都较高、复杂度波动较大,当前视频帧只有具有更高的复杂度,才会被分配更多的码率对当前视频帧进行编码。
具体地,计算机设备可以获取视频帧序列中在当前视频帧之前、且与粗时间粒度对应的时间范围内的多个视频帧,根据获取的多个视频帧的复杂度统计当前视频帧对应的粗时间粒度历史复杂度。获取的多个视频帧的数量与在粗时间粒度上进行码率控制的时间范围有关。比如,假定帧率是30帧/秒,若在粗时间粒度上进行码率控制的时间范围是1分钟,也就是要对1分钟内的视频帧的视频编码进行码率控制,则获取视频帧序列中当前视频帧前的1分钟内对应的1800个视频帧;若在粗时间粒度上进行码率控制的范围是2分钟,也就是要对2分钟内的视频帧的视频编码进行码率控制,则获取视频帧序列中在当前视频帧之前2分钟内对应的3600个视频帧。
在一些实施例中,视频帧的复杂度可以根据视频帧的预测残差确定。可对视频帧的预测残差做hadamond变换并求绝对和得到SATD(Sum of Absolute TransformedDifference,残差变换绝对值和),可用SATD的值表示视频帧的复杂度。这样,计算机设备就可根据获取的在当前视频帧之前各个视频帧的SATD确定当前视频帧对应的粗时间粒度历史复杂度。还可以对视频帧的预测残差直接求绝对误差和得到SAD(Sum of AbsoluteDifference,绝对误差和),用SAD的值表示视频帧的复杂度。还可以对视频帧的预测残差直接求平方和得到SSD(Sum of Squared Difference,误差的平方和),用SSD的值表示视频帧的复杂度。
S206,获取当前的细时间粒度可用码率和当前的粗时间粒度可用码率。
其中,细时间粒度可用码率是指在细时间粒度上进行码率控制的细时间粒度码率控制缓存中的可用码率,细时间粒度码率控制缓存用于根据在当前视频帧之后的视频帧的复杂度,在细时间粒度的时间范围内控制当前视频帧编码所需要的码率;相应地,粗时间粒度可用码率是指在粗时间粒度上进行码率控制的粗时间粒度码率控制缓存中的可用码率,粗时间粒度码率控制缓存用于根据在当前视频帧之前的视频帧的复杂度,在粗时间粒度的时间范围内控制当前视频帧编码所需要的码率。
需要说明的是,本实施例并不限定粗时间粒度码率控制缓存和细时间粒度码率控制缓存具体对应的时间范围,粗时间粒度码率控制缓存具体对应的时间范围可以是0.5分钟至5分钟,为了避免该时间范围内各自视频帧编码所使用码率之间的波动太大,最好是1分钟至2分钟;细时间粒度码率控制缓存具体对应的时间范围可以是1秒至5秒,为了减少编码出帧的延迟,最好是1秒至2秒。
具体地,在视频编码的过程中,细时间粒度可用码率和粗时间粒度可用码率是一个动态变化的值,二者相互配合在视频编码过程中实现在更大时间范围内控制平均码率。对当前视频帧进行编码之前,在粗时间粒度可用码率与细时间粒度可用码率之间进行码率调整,当前视频帧编码结束后,根据当前视频帧被编码实际占用的码率继续更新调整后的细时间粒度可用码率,从而可以继续在调整后的粗时间粒度可用码率、更新后的细时间粒度可用码率的基础上对下一视频帧进行编码。因此,计算机设备获取的当前的细时间粒度可用码率和当前的粗时间粒度可用码率是对当前视频帧的上一帧完成编码后对应的值。
S208,基于细时间粒度可用码率和粗时间粒度可用码率,并根据当前视频帧的复杂度和粗时间粒度历史复杂度,在细时间粒度可用码率和粗时间粒度可用码率间进行码率调整。
其中,如前文所提及的,视频帧的复杂度可根据视频帧的预测残差确定,可根据当前视频帧的预测残差确定当前视频帧的复杂度。在一些实施例中,计算机设备可根据当前视频帧的预测残差计算相应的SATD、SSD或SAD,用得到的SATD、SSD或SAD中的至少一种衡量当前视频帧的复杂度。
具体地,在细时间粒度可用码率和粗时间粒度可用码率间进行码率调整时,调整的依据主要是当前视频帧的复杂度与当前视频帧对应的粗时间粒度历史复杂度之间的大小关系,调整的码率大小与当前的细时间粒度可用码率、当前的粗时间粒度可用码率、当前视频帧的复杂度和当前视频帧对应的粗时间粒度历史复杂度有关。在当前视频帧复杂度较低时,表示当前视频帧可以以更小的码率进行视频编码,可减小细时间粒度可用码率,将节省出的码率增加至粗时间粒度可用码率中,这样,后续视频帧在编码时,可根据视频帧的复杂度情况从粗时间粒度可用码率中获取码率;在当前视频帧的复杂度较高时,表示当前视频帧需要用更多的码率进行视频编码,可从粗时间粒度可用码率中获取码率增加至细时间粒度可用码率,提高当前视频帧的视频编码质量。这样,对视频帧序列中各个视频帧依次进行编码,能够保证在粗时间粒度对应的时间范围内的平均码率是符合用户要求的。
S210,根据调整后的细时间粒度可用码率更新初始量化参数,得到当前量化参数。
具体地,得到调整后的细时间粒度可用码率后,可根据调整后的细时间粒度可用码率更新初始量化参数,得到当前量化参数。当前量化参数的取值与在当前视频帧后细时间粒度对应的时间范围内的各个视频帧的累计编码码率、调整后的细时间粒度可用码率有关。对当前视频帧后与细时间粒度对应的时间范围内的各个视频帧预估的累计编码码率越大,则当前量化参数的取值越大,当前视频帧进行视频编码后所占用的实际码率越小;调整后细时间粒度可用码率越大,则当前量化参数的取值越大,当前视频帧进行编码后所占用的实际码率越小。
在一个实施例中,S210,根据调整后的细时间粒度可用码率更新初始量化参数,得到当前量化参数的步骤包括:获取当前视频帧对应的细时间粒度探测窗口中的视频帧序列;从初始量化参数开始逐步增大数值,直到得到当前量化参数,使得基于视频帧序列和当前量化参数预估的累计编码码率与调整后的细时间粒度可用码率之间符合预设码率关系。
其中,细时间粒度探测窗口中的视频帧序列是当前视频帧后与细时间粒度对应的时间范围内的各个视频帧构成序列。具体地,计算机设备可获取对当前视频帧的上一帧进行预测时对应的预测系数,获取细时间粒度探测窗口中各个视频帧的复杂度,根据该预测系数、视频帧序列中各个视频帧的复杂度和初始量化参数计算累计编码码率,当本次得到的累计编码码率与调整后的细时间粒度可用码率之间不符合预设码率关系时,增大初始量化参数,然后基于预测系数、视频帧序列中各个视频帧的复杂度、增大后的量化参数再次计算累计编码码率,直至得到的累计编码码率与调整后的细时间粒度可用码率之间符合预设码率关系时,将当前增大后的量化参数作为当前量化参数。在一个实施例中,累计编码码率与调整后的细时间粒度可用码率之间符合预设码率关系,可以根据实际需要进行设置,比如,累计编码码率可以是调整后的细时间粒度可用码率的一半。
需要说明的是,细时间粒度探测窗口对应的时间范围与细时间粒度码率控制缓存对应的时间范围一致。比如,假定帧率为30帧/秒,细时间粒度码率控制缓存用于对2秒内控制视频帧编码所需要的码率,则细时间粒度探测窗口对应的时间范围为当前视频帧后2秒,计算机设备可获取在这2秒内的60个视频帧构成的视频帧序列,计算这60个视频帧在当前量化参数下预估的累计编码码率。
在一个实施例中,预估的累计编码码率可通过以下公式计算得到:
Figure GDA0003797677140000081
其中,prebits表示对细时间粒度探测窗口中M个视频帧计算的预估的累计编码码率;M的取值与细时间粒度码率控制缓存对应的时间范围和帧率有关;satdj表示当前视频帧后第j个视频帧对应的复杂度;qp是量化参数,qp从初始量化参数起逐步增大数值;coeff、offset、count均为对当前视频帧i的上一帧进行预测时对应的预测系数。
可以理解的是,初始量化参数可以设置一个较小的值,然后从初始量化参数开始逐步增大数值,这样能够提高视频帧的编码质量,又能保证当前实际占用的码率不会太大。
S212,根据当前量化参数对当前视频帧进行编码。
在一个实施例中,根据当前量化参数对当前视频帧进行编码的步骤包括:根据当前量化参数得到当前视频帧对应的当前量化步长;根据当前量化步长对当前视频帧进行编码,得到当前视频帧对应的实际占用码率。
具体地,在根据调整后的细时间粒度可用码率更新初始量化参数,得到当前量化参数后,可根据量化参数与量化步长之间的对应关系,获取当前量化步长,根据当前量化步长对当前视频帧进行编码。例如,一般而言,量化的原理用公式表示如下:FQ=round(y/Qstep)。其中,y为量化之前视频帧对应的预测残差,Qstep为量化步长,FQ为y的量化值。Round(x)函数指将量化后的值进行四舍五入取偶。量化参数与量化步长的对应关系具体可以根据需要进行设置。例如,在目前的视频编码标准中,对于亮度编码而言,量化参数共有52个值,为0至51之间的整数,量化步长随着量化参数的增加而增加,每当量化参数增加6,量化步长就增加一倍。当前量化参数越大,对当前视频帧进行编码所需的码率越少;反之,当前量化参数越小,对当前视频帧进行编码所需的码率越多。
在上述视频编码方法中,粗时间粒度可用码率能够表示在粗时间粒度上的可用码率的情况,将其与细时间粒度可用码率结合,能够实现在粗时间粒度上的码率控制,从而实现在更大时间范围内的码率分配,使得码率分配更均匀,大大地提高编码质量。在编码时,获取当前视频帧对应的粗时间粒度历史复杂度,并在此基础上,根据当前视频帧的复杂度、当前的细时间粒度可用码率和当前的粗时间粒度可用码率来预测当前视频帧在粗时间粒度上的编码复杂度,从而调整细时间粒度可用码率,就可以根据调整后的细时间粒度可用码率确定当前视频帧对应的当前量化参数,最后根据当前量化参数对当前视频帧进行编码。
在一个实施例中,如图3所示,S204,计算当前视频帧对应的粗时间粒度历史复杂度的步骤包括:
S302,确定当前视频帧对应的粗时间粒度历史视频帧序列。
具体地,计算机设备可在视频流中获取当前视频帧前粗时间粒度对应的时间范围内的各个视频帧,由于这些视频帧是在待编码的当前视频帧之前,因此这些视频帧构成的视频帧序列可以称之为粗时间粒度历史视频帧序列。
在对每个视频帧编码时,粗时间粒度对应的时间范围是相同的,粗时间粒度对应的时间范围与粗时间粒度码率控制缓存对应的时间范围一致。比如,粗时间粒度码率控制缓存对应的时间范围是1分钟,则粗时间粒度历史视频帧序列为当前视频帧之后1分钟内的各个视频帧构成的序列,假定帧率为30帧/秒,那么在对当前视频帧i进行视频编码时,可将当前视频帧i前第1800帧至第1帧构成的序列确定为当前视频帧i对应的粗时间粒度历史视频帧序列。
需要说明的是,本申请所使用的“当前视频帧”用于描述视频编码器当前正在处理的视频帧,“当前视频帧”是一个相对于变化的视频帧。比如,在对“当前视频帧”的“下一视频帧”进行处理时,可将“下一视频帧”作为新的当前视频帧,将原来的“当前视频帧”作为新的上一视频帧。由于当前视频帧是一个相对变化的视频帧,则相应的粗时间粒度历史视频帧序列也是相对变化的。
S304,获取粗时间粒度历史视频帧序列中各视频帧的复杂度。
具体地,粗时间粒度历史视频帧序列中各个视频帧在被编码时,已经计算了各个视频帧的复杂度,因此,在对当前视频帧进行编码时,计算机设备可直接获取这些视频帧的复杂度。视频帧的复杂度的计算方式在前文已经提及过,在此不再赘述。
S306,根据各视频帧的复杂度计算当前视频帧对应的粗时间粒度历史复杂度。
具体地,得到粗时间粒度历史视频帧序列中各个视频帧的复杂度后,可根据各个视频帧的复杂度统计当前视频帧对应的粗时间粒度历史复杂度。粗时间粒度历史复杂度包括粗时间粒度历史平均复杂度和粗时间粒度历史复杂度波动程度。
在一个实施例中,如图4所示,步骤S306,根据各视频帧的复杂度计算当前视频帧对应的粗时间粒度历史复杂度包括:
S402,根据各视频帧的复杂度计算粗时间粒度历史平均复杂度。
具体地,得到各个视频帧的复杂度后,可对各个视频帧的复杂度求平均值,将得到的平均值作为粗时间粒度历史平均复杂度。粗时间粒度历史平均复杂度越大,说明在当前视频帧前已编码的视频帧整体的复杂度都很高,当前视频帧只有具有更高的复杂度才会被分配更多的码率用于视频编码。
在一个实施例中,粗时间粒度历史平均复杂度可通过以下公式计算得到:
Figure GDA0003797677140000111
其中,satdavgi表示根据当前视频帧i前N个视频帧计算得到的粗时间粒度历史平均复杂度;satdj表示当前视频帧i前第j个视频帧的复杂度。
S404,根据各视频帧的复杂度计算粗时间粒度历史复杂度波动程度;
具体地,得到各个视频帧的复杂度后,可根据各个视频帧的复杂度计算粗时间粒度对应的时间范围内各个视频帧复杂度的波动,作为粗时间粒度历史复杂度波动,再计算粗时间粒度历史复杂度波动与粗时间粒度历史平均复杂度之间的差异,将得到的差异作为粗时间粒度历史复杂度波动程度粗时间粒度历史复杂度波动程度越大说明复杂度波动越剧烈,越小说明复杂度波动较弱。在粗时间粒度历史复杂度波动程度较大时,当前视频帧只有具有更高的复杂度才会被分配更多的码率用于视频编码。
在一个实施例中,粗时间粒度历史复杂度波动通过以下公式计算得到:
Figure GDA0003797677140000112
其中,satdvari表示根据当前视频帧i前N个视频帧计算得到的粗时间粒度历史复杂度波动;satdj表示当前视频帧i前第j个视频帧的复杂度,则粗时间粒度历史复杂度波动程度可以用satdavgi-satdvari表示。
S406,将粗时间粒度历史平均复杂度和粗时间粒度历史复杂度波动程度融合,得到粗时间粒度历史复杂度。
具体地,可以综合考虑粗时间粒度历史平均复杂度和粗时间粒度历史复杂度波动程度,根据这二者计算得到当前视频帧对应的粗时间粒度历史复杂度。这样,当粗时间粒度对应的时间范围内视频帧的平均复杂度整体较高,且复杂度波动较大时,当前视频帧的复杂度越高才能被分配越多的码率。
在一个实施例中,当前视频帧对应的粗时间粒度历史复杂度通过以下公式计算得到:
Pcplxi=satdavgi+w*(satdvari-satdavgi);
其中,Pcplxi表示当前视频帧i对应的粗时间粒度历史复杂度;w表示预设的波动程度权重系数。
在上述实施例中,通过对当前视频帧前粗时间粒度对应的时间范围内的各个视频帧的复杂度进行统计,用统计得到的粗时间粒度历史复杂度衡量当前视频帧是否需要更多或更少的码率进行视频编码。
如图5所示,在一个实施例中,S208,基于细时间粒度可用码率和粗时间粒度可用码率,并根据当前视频帧的复杂度和粗时间粒度历史复杂度,在细时间粒度可用码率和粗时间粒度可用码率间进行码率调整的步骤包括:
S502,获取当前视频帧的复杂度。
具体地,可根据前文所提及的方式,根据当前视频帧的预测残差确定当前视频帧的复杂度。
S504,确定当前视频帧的复杂度与粗时间粒度历史复杂度之间的大小关系。
具体地,可将当前视频帧的复杂度与粗时间粒度历史复杂度相减,得到当前视频帧的复杂度比历史高出多少的一个值,可根据该值来确定需要更多或更少的码率对当前视频帧进行编码。
在一个实施例中,当前视频帧的复杂度与粗时间粒度历史复杂度之间的大小关系可通过以下公式表示:
AdRation=satdi-Pcplxi=satdi-[satdavgi+w*(satdvari-satdavgi)];其中,satdi
示当前视频帧的复杂度,可以看出,AdRation大于0,代表当前视频帧的复杂度大于粗时间粒度历史复杂度;AdRation小于0,代表当前视频帧的复杂度小于粗时间粒度历史复杂度。
S506,当当前视频帧的复杂度大于粗时间粒度历史复杂度时,则从粗时间粒度可用码率中减少第一码率,将第一码率增加至细时间粒度码可用码率。
具体地,当当前视频帧的复杂度大于粗时间粒度历史复杂度时,说明当前视频帧可被分配更多的码率进行视频编码,则从粗时间粒度可用码率获取第一码率,将获取的第一码率增加至粗时间粒度可用码率中,这样,可得到更小的量化参数对当前视频帧进行视频编码。
S508,当当前视频帧的复杂度小于粗时间粒度历史复杂度时,则从细时间粒度可用码率中减少第二码率,将第二码率增加至粗时间粒度可用码率。
具体地,当当前视频帧的复杂度小于粗时间粒度历史复杂度时,说明当前视频帧可以以更小的码率进行视频编码,则从细时间粒度可用码率中压缩出第二码率,将节省出的第二码率增加至粗时间粒度可用码率,这样,可得到更大的量化参数对当前视频帧进行视频编码。
如图6所示,为一个实施例中粗时间粒度可用码率与细时间粒度码可用码率之间的码率调整的示意图。参照图6,根据当前视频帧对应的AdRation,AdRation大于0时计算第一码率,从粗时间粒度可用码率减少第一码率,将第一码率增加至细时间粒度可用码率;AdRation小于0时计算第二码率,从细时间粒度可用码率减少第二码率,将第二码率增加至粗时间粒度可用码率。
在一个实施例中,第一码率与当前的粗时间粒度可用码率、当前视频帧的复杂度与粗时间粒度历史复杂度之差成正相关。
具体地,从粗时间粒度可用码率中减少多少码率增加至细时间粒度可用码率中,与当前的粗时间粒度可用码率有关,也与当前视频帧的复杂度与粗时间粒度历史复杂度之间差有关。当前的粗时间粒度可用码率越多,从粗时间粒度可用码率中获取的第一码率就越多;当前视频帧帧的复杂度比粗时间粒度历史复杂度高出的越多,则从粗时间粒度可用码率中获取的第一码率就越多。
在一个实施例中,当增加了第一码率后,细时间粒度可用码率超过细时间粒度可用码率对应的最大值时,则将细时间粒度可用码率调整为细时间粒度可用码率对应的最大值。
其中,细时间粒度可用码率对应的最大值根据当前视频帧所属的目标视频帧序列对应的目标码率确定,通常设置为目标码率的1至2倍。目标码率可以是用户根据当前的带宽、网络情况期望的平均码率。
具体地,由于当前视频帧编码时使用的量化参数是根据调整后的细时间粒度可用码率确定的,为避免采用较小的量化参数对当前视频帧进行编码导致实际占用的码率偏高,因此调整后的细时间粒度可用码率不能超过细时间粒度可用码率对应的最大值。
在一个实施例中,第一码率通过以下公式计算得到:
Adm_Bits=Min(α*AdRation*m_buffer,s_buffermax-s_buffer);
其中,Adm_Bits表示从粗时间粒度可用码率中减少的第一码率;AdRation表示当前视频帧的复杂度与粗时间粒度历史复杂度之差;m_buffer表示当前的粗时间粒度可用码率;s_buffer表示当前的细时间粒度可用码率;s_buffermax表示细时间粒度可用码率对应的最大值;α表示预设的均衡调节参数;Min表示最小值函数。α通常设置为编码线程数n的倒数,即为
Figure GDA0003797677140000141
在一个实施例中,第二码率与当前的细时间粒度可用码率、细时间粒度可用码率的充满程度及当前视频帧的复杂度与粗时间粒度历史复杂度之差成正相关。
具体地,从细时间粒度可用码率中减少多少码率增加至粗时间粒度可用码率中,与当前的细时间粒度可用码率有关,也与当前视频帧的复杂度与粗时间粒度历史复杂度之间差有关,还与当前细时间粒度可用码率的充满程度有关。当前的细时间粒度可用码率越多,从细时间粒度可用码率中获取的第二码率就越多;当前视频帧帧的复杂度比粗时间粒度历史复杂度低的越多,则从细时间粒度可用码率中获取的第二码率就越多;细时间粒度可用码率的充满程度是指细时间粒度码率控制缓存的充盈程度,可以用当前的细时间粒度可用码率与细时间粒度可用码率对应的最大值的比例来表示,充满程度越高,则从细时间粒度可用码率中获取的第二码率就越多。
在一个实施例中,当增加了第二码率后,粗时间粒度可用码率超过粗时间粒度可用码率对应的最大值时,则将粗时间粒度可用码率调整为粗时间粒度可用码率对应的最大值。
类似地,粗时间粒度可用码率对应的最大值与当前视频帧所属的目标视频帧序列对应的目标码率有关,目标码率越大,粗时间粒度可用码率对应的最大值也就越大。
具体地,由于在对后续的视频帧进行编码时,若要从粗时间粒度可用码率中获取码率增加至细时间粒度可用码率中,获取多少码率与前次调整后粗时间粒度可用码率的大小成正相关,为避免后续调整后细时间粒度可用码率偏大,导致后续视频帧在编码时实际占用的码率偏高,因此调整后的粗时间粒度可用码率不能超过粗时间粒度可用码率对应的最大值。
在一个实施例中,粗时间粒度可用码率对应的最大值可通过以下公式表示:
m_buffermax=λ*seconds*bitrate;
其中,seconds表示在多少秒内平滑数据,平滑数据是指从开始编码后的多少秒内对应的实际平均码率为目标码率,seconds通常设置为30秒至120秒;bitrate表示目标码率;λ表示粗时间粒度码率控制缓存的强度,可通过λ控制m_buffermax从而调整粗时间粒度码率控制的强度,λ通常设置为0.5。比如,假如λ设置为0.5,seconds设置为100s,则1分钟时间范围内的视频编码码率控制对应的m_buffermax为50*bitrate,2分钟时间范围内的视频编码码率控制对应的m_buffermax为2*50*bitrate。
在一个实施例中,第二码率通过以下公式计算得到:
Figure GDA0003797677140000151
其中,Ads_Bits表示从细时间粒度可用码率中减少的第二码率;AdRation表示当前视频帧的复杂度与粗时间粒度历史复杂度之差;m_buffermax表示粗时间粒度可用码率对应的最大值;
Figure GDA0003797677140000152
表示细时间粒度可用码率的充满程度。
如图7所示,为一个实施例中当前视频帧前各个视频帧被编码时节省的码率添加至粗时间粒度可用码率的示意图。参照图7,目标视频帧序列的帧率为30帧每秒,粗时间粒度对应的时间范围是1分钟,则当前粗时间粒度可用码率中包括当前视频帧以及当前视频帧前1799个视频帧被编码时节省出的码率。这1800个视频帧节省出的码率分别为1022、3521、0、22121、……、22、124,在对当前视频帧编码时,可从当前的粗时间粒度可用码率中获取码率。
在一个实施例中,在S212,根据当前量化参数对当前视频帧进行编码的步骤之后,视频编码方法还包括:获取当前视频帧所属的目标视频帧序列对应的目标码率;根据目标码率、目标视频帧序列的帧率计算平均每帧可分配码率;获取当前视频帧在编码后对应的实际占用码率;根据平均每帧可分配码率、实际占用码率对调整后的细时间粒度可用码率进行更新,得到下一视频帧对应的细时间粒度可用码率。
其中,目标码率是用户设置的期望达到的码率。平均每帧可分配码率指在不考虑视频帧复杂度的理想情况下每帧预期要占用的码率。平均每帧可分配码率可用每帧占用时长与目标码率的乘积表示,每帧占用时长可用帧率的倒数表示。实际占用码率是指当前视频帧根据当前量化参数进行视频编码后实际占用的码率。具体地,在对下一视频帧进行编码时,获取的当前的细时间粒度可用码率即为更新后的细时间粒度可用码率。
在一个实施例中,若更新后的细时间粒度可用码率大于细时间粒度可用码率的最大值,则将细时间粒度可用码率的最大值作为下一视频帧对应的所当前的细时间粒度可用码率。
在一个实施例中,根据平均每帧可分配码率、实际占用码率对调整后的细时间粒度可用码率进行更新的步骤可通过以下公式表示:
s_buffernew=Min(s_bufferadjust-bits+duration*bitrate,s_buffermax);
其中,s_bufferadjust表示细时间粒度可用码率和粗时间粒度可用码率间进行码率调整后得到的细时间粒度可用码率;bits表示当前视频帧编码结束后对应的实际占用码率;duration表示每帧占用时长;bitrate表示目标码率。比如,目标视频帧序列的帧率为30帧/秒,则每帧占用时长duration为
Figure GDA0003797677140000171
(秒),平均每帧可分配码率为
Figure GDA0003797677140000172
如图8所示,为一个实施例中视频编码方法的流程框架图。参照图8,首先,计算当前视频帧i以及细时间粒度探测窗口中n个视频帧的复杂度,n的取值与细时间粒度对应的时间范围相关,复杂度分别即为satdi、satdi+1、satdi+2、...、satdi+n;然后,计算当前视频帧i对应的粗时间粒度历史复杂度,分析当前视频帧i的复杂度satdi与对应的粗时间粒度历史复杂度之间的大小关系,根据大小关系在当前的粗时间粒度可用码率和细时间粒度可用码率间进行码率调整;接着,从初始量化参数开始,根据量化参数、细时间粒度探测窗口中各个视频帧的复杂度计算累计编码码率,判断得到的累计编码码率是否小于调整后的细时间粒度可用码率的一半;若是,则根据更新后得到的当前量化参数对当前视频帧i进行视频编码,若否,则以预设步长逐步增大量化参数,直至根据当前量化参数计算得到的累计编码码率小于调整后的细时间粒度可用码率的一半;接着,根据得到的当前量化参数对当前视频帧进行视频编码,并在编码结束后根据当前视频帧对应的实际占用码率进一步更新细时间粒度可用码率,就可以在更新后的细时间粒度可用码率的基础上对下一帧进行视频编码。
以下以粗时间粒度可用码率为分钟级可用码率、细时间粒度可用码率为秒级可用码率、分钟级可用码率对应的时间范围是1分钟,秒级可用码率对应的时间范围是1秒钟、帧率为30帧/秒、当前视频帧为第1900帧为例,对本实施例提供的视频编码方法进行说明。
1、获取当前的分钟级可用码率和当前的秒级可用码率。
2、根据第1900帧的预测残差计算第1900帧的复杂度,获取第100帧至第1899帧的复杂度,计算第100帧至第1899帧的复杂度平均值和复杂度波动,根据复杂度平均值和复杂度波动统计历史复杂度。
3、若第1900帧的复杂度大于统计的历史复杂度,则根据当前的分钟级可用码率、第1900帧的复杂度与历史复杂度之差计算要从当前的分钟级可用码率中减少的码率,将减少的码率增加至秒级可用码率;若第1900帧的复杂度小于统计的历史复杂度,则根据第1900帧的复杂度与历史复杂度之差绝对值、当前的秒级可用码率和秒级可用码率的充满程度计算要从当前的秒级可用码率减少的码率,将减少的码率增加至分钟级可用码率。
4、根据第1901帧至第1960帧的预测残差计算各帧的复杂度,基于初始量化参数、各帧的复杂度计算累计编码码率;根据累计编码码率和调整后的秒级可用码率确定当前量化参数。
5、根据当前量化参数对第1900帧进行视频编码。
6、编码结束后,根据第1900帧实际占用的码率更新秒级可用码率。
7、基于更新后的秒级可用码率、调整后的分钟级可用码率,按照第1至第6中的步骤对第1901帧进行视频编码。
在一个具体的实施例中,视频编码方法具体包括以下步骤:
获取待编码的当前视频帧及初始量化参数;
确定当前视频帧对应的粗时间粒度历史视频帧序列;
获取粗时间粒度历史视频帧序列中各视频帧的复杂度;
根据各视频帧的复杂度计算粗时间粒度历史平均复杂度;
根据各视频帧的复杂度计算粗时间粒度历史复杂度波动程度;
将粗时间粒度历史平均复杂度和粗时间粒度历史复杂度波动程度融合,得到粗时间粒度历史复杂度;
获取当前的细时间粒度可用码率和当前的粗时间粒度可用码率;
获取当前视频帧的复杂度;
确定当前视频帧的复杂度与粗时间粒度历史复杂度之间的大小关系;
当当前视频帧的复杂度大于粗时间粒度历史复杂度时,则从粗时间粒度可用码率中减少第一码率,将第一码率增加至细时间粒度码可用码率,当增加了第一码率后,细时间粒度可用码率超过细时间粒度可用码率对应的最大值时,则将细时间粒度可用码率调整为细时间粒度可用码率对应的最大值;
当当前视频帧的复杂度小于粗时间粒度历史复杂度时,则从细时间粒度可用码率中减少第二码率,将第二码率增加至粗时间粒度可用码率,当增加了第二码率后,粗时间粒度可用码率超过粗时间粒度可用码率对应的最大值时,则将粗时间粒度可用码率调整为粗时间粒度可用码率对应的最大值。
获取当前视频帧对应的细时间粒度探测窗口中的视频帧序列;
从初始量化参数开始逐步增大数值,直到得到当前量化参数,使得基于视频帧序列和当前量化参数预估的累计编码码率与调整后的细时间粒度可用码率之间符合预设码率关系。
根据当前量化参数得到当前视频帧对应的当前量化步长;
根据当前量化步长对当前视频帧进行编码,得到当前视频帧对应的实际占用码率。
获取当前视频帧所属的目标视频帧序列对应的目标码率;
根据目标码率、目标视频帧序列的帧率计算平均每帧可分配码率;
根据平均每帧可分配码率、实际占用码率对调整后的细时间粒度可用码率进行更新,得到下一视频帧对应的细时间粒度可用码率。
上述视频编码方法,粗时间粒度可用码率能够表示在粗时间粒度上的可用码率的情况,将其与细时间粒度可用码率结合,能够实现在粗时间粒度上的码率控制,从而实现在更大时间范围内的码率分配,使得码率分配更均匀,大大地提高编码质量。在编码时,获取当前视频帧对应的粗时间粒度历史复杂度,并在此基础上,根据当前视频帧的复杂度、当前的细时间粒度可用码率和当前的粗时间粒度可用码率来预测当前视频帧在粗时间粒度上的编码复杂度,从而调整细时间粒度可用码率,就可以根据调整后的细时间粒度可用码率确定当前视频帧对应的当前量化参数,最后根据当前量化参数对当前视频帧进行编码。
应该理解的是,虽然上述实施例中各个步骤按照流程图中箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图9所示,提供了一种视频编码装置900,该装置包括视频帧获取模块902、历史复杂度计算模块904、可用码率获取模块906、码率调整模块908、量化参数更新模块910和编码模块912,其中:
视频帧获取模块902,用于获取待编码的当前视频帧及初始量化参数;
历史复杂度计算模块904,用于计算当前视频帧对应的粗时间粒度历史复杂度;
可用码率获取模块906,用于获取当前的细时间粒度可用码率和当前的粗时间粒度可用码率;
码率调整模块908,用于基于细时间粒度可用码率和粗时间粒度可用码率,并根据当前视频帧的复杂度和粗时间粒度历史复杂度,在细时间粒度可用码率和粗时间粒度可用码率间进行码率调整;
量化参数更新模块910,用于根据调整后的细时间粒度可用码率更新初始量化参数,得到当前量化参数;
编码模块912,用于根据当前量化参数对当前视频帧进行编码。
在一个实施例中,历史复杂度计算模块904还用于确定当前视频帧对应的粗时间粒度历史视频帧序列;获取粗时间粒度历史视频帧序列中各视频帧的复杂度;根据各视频帧的复杂度计算当前视频帧对应的粗时间粒度历史复杂度。
在一个实施例中,历史复杂度计算模块904还用于根据各视频帧的复杂度计算粗时间粒度历史平均复杂度;根据各视频帧的复杂度计算粗时间粒度历史复杂度波动程度;将粗时间粒度历史平均复杂度和粗时间粒度历史复杂度波动程度融合,得到粗时间粒度历史复杂度。
在一个实施例中,当前视频帧对应的粗时间粒度历史复杂度通过以下公式计算得到:
Pcplxi=satdavgi+w*(satdvari-satdavgi);
Figure GDA0003797677140000211
Figure GDA0003797677140000212
其中,Pcplxi表示当前视频帧i对应的粗时间粒度历史复杂度;satdavgi表示根据当前视频帧i前N个视频帧计算得到的粗时间粒度历史平均复杂度;satdvari表示根据当前视频帧i前N个视频帧计算得到的粗时间粒度历史复杂度波动;satdavgi-satdvari表示粗时间粒度历史复杂度波动程度;satdj表示当前视频帧i前第j个视频帧的复杂度;w表示预设的波动程度权重系数。
在一个实施例中,码率调整模块908还用于码率调整模块获取当前视频帧的复杂度;确定当前视频帧的复杂度与粗时间粒度历史复杂度之间的大小关系;当当前视频帧的复杂度大于粗时间粒度历史复杂度时,则从粗时间粒度可用码率中减少第一码率,将第一码率增加至细时间粒度码可用码率;当当前视频帧的复杂度小于粗时间粒度历史复杂度时,则从细时间粒度可用码率中减少第二码率,将第二码率增加至粗时间粒度可用码率。
在一个实施例中,第一码率与当前的粗时间粒度可用码率、当前视频帧的复杂度与粗时间粒度历史复杂度之差成正相关。
在一个实施例中,第二码率与当前的细时间粒度可用码率、细时间粒度可用码率的充满程度及当前视频帧的复杂度与粗时间粒度历史复杂度之差成正相关。
在一个实施例中,码率调整模块908还用于当增加了第一码率后,细时间粒度可用码率超过细时间粒度可用码率对应的最大值时,则将细时间粒度可用码率调整为细时间粒度可用码率对应的最大值;当增加了第二码率后,粗时间粒度可用码率超过粗时间粒度可用码率对应的最大值时,则将粗时间粒度可用码率调整为粗时间粒度可用码率对应的最大值。
在一个实施例中,第一码率、第二码率通过以下公式计算得到:
Adm_Bits=Min(α*AdRation*m_buffer,s_buffermax-s_buffer);
Figure GDA0003797677140000221
其中,Adm_Bits表示从粗时间粒度可用码率中减少的第一码率;Ads_Bits表示从细时间粒度可用码率中减少的第二码率;AdRation表示当前视频帧的复杂度与粗时间粒度历史复杂度之差;m_buffer表示当前的粗时间粒度可用码率;s_buffer表示当前的细时间粒度可用码率;m_buffermax表示粗时间粒度可用码率对应的最大值;s_buffermax表示细时间粒度可用码率对应的最大值;
Figure GDA0003797677140000222
表示细时间粒度可用码率的充满程度;α表示预设的均衡调节参数;Min表示最小值函数。
在一个实施例中,量化参数更新模块910还用于获取当前视频帧对应的细时间粒度探测窗口中的视频帧序列;从初始量化参数开始逐步增大数值,直到得到当前量化参数,使得基于视频帧序列和当前量化参数预估的累计编码码率与调整后的细时间粒度可用码率之间符合预设码率关系。
在一个实施例中,编码模块912还用于根据当前量化参数得到当前视频帧对应的当前量化步长;根据当前量化步长对当前视频帧进行编码,得到当前视频帧对应的实际占用码率。
在一个实施例中,视频编码装置还包括细时间粒度可用码率更新模块,细时间粒度可用码率更新模块用于获取当前视频帧所属的目标视频帧序列对应的目标码率;根据目标码率、目标视频帧序列的帧率计算平均每帧可分配码率;获取当前视频帧在编码后对应的实际占用码率;根据平均每帧可分配码率、实际占用码率对调整后的细时间粒度可用码率进行更新,得到下一视频帧对应的细时间粒度可用码率。
上述视频编码装置900,粗时间粒度可用码率能够表示在粗时间粒度上的可用码率的情况,将其与细时间粒度可用码率结合,能够实现在粗时间粒度上的码率控制,从而实现在更大时间范围内的码率分配,使得码率分配更均匀,大大地提高编码质量。在编码时,获取当前视频帧对应的粗时间粒度历史复杂度,并在此基础上,根据当前视频帧的复杂度、当前的细时间粒度可用码率和当前的粗时间粒度可用码率来预测当前视频帧在粗时间粒度上的编码复杂度,从而调整细时间粒度可用码率,就可以根据调整后的细时间粒度可用码率确定当前视频帧对应的当前量化参数,最后根据当前量化参数对当前视频帧进行编码。
图10示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的视频分发服务器120。如图10所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器、网络接口。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现视频编码方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行视频编码方法。
本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本申请提供的视频编码装置900可以实现为一种计算机程序的形式,计算机程序可在如图10所示的计算机设备上运行。计算机设备的存储器中可存储组成该视频编码装置900的各个程序模块,比如,图9所示的视频帧获取模块902、历史复杂度计算模块904、可用码率获取模块906、码率调整模块908、量化参数更新模块910和编码模块912。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的视频编码方法中的步骤。
例如,图10所示的计算机设备可以通过如图9所示的视频编码装置900中的视频帧获取模块902执行步骤S202。计算机设备可通过历史复杂度计算模块904执行步骤S204。计算机设备可通过可用码率获取模块906执行步骤S206。计算机设备可通过调整模块908执行步骤S208。计算机设备可通过量化参数更新模块910执行步骤S210。计算机设备可通过编码模块912执行步骤S212。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述视频编码方法的步骤。此处视频编码方法的步骤可以是上述各个实施例的视频编码方法中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述视频编码方法的步骤。此处视频编码方法的步骤可以是上述各个实施例的视频编码方法中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (26)

1.一种视频编码方法,包括:
获取待编码的当前视频帧及初始量化参数;
计算所述当前视频帧对应的粗时间粒度历史复杂度;所述粗时间粒度历史复杂度表征在粗时间粒度上统计的当前视频帧对应的历史复杂度信息;
获取当前的细时间粒度可用码率和当前的粗时间粒度可用码率;所述细时间粒度可用码率是指在细时间粒度上进行码率控制的细时间粒度码率控制缓存中的可用码率;所述粗时间粒度可用码率是指在粗时间粒度上进行码率控制的粗时间粒度码率控制缓存中的可用码率;所述粗时间粒度所对应的单位划分时间大于所述细时间粒度的单位划分时间;
确定所述当前视频帧的复杂度与所述粗时间粒度历史复杂度之间的大小关系;
当所述当前视频帧的复杂度大于所述粗时间粒度历史复杂度时,则从所述粗时间粒度可用码率中减少第一码率,将所述第一码率增加至所述细时间粒度码可用码率;
当所述当前视频帧的复杂度小于所述粗时间粒度历史复杂度时,则从所述细时间粒度可用码率中减少第二码率,将所述第二码率增加至所述粗时间粒度可用码率;
根据调整后的细时间粒度可用码率更新所述初始量化参数,得到当前量化参数;
根据所述当前量化参数对所述当前视频帧进行编码。
2.根据权利要求1所述的方法,其特征在于,计算所述当前视频帧对应的粗时间粒度历史复杂度包括:
确定所述当前视频帧对应的粗时间粒度历史视频帧序列;
获取所述粗时间粒度历史视频帧序列中各视频帧的复杂度;
根据各所述视频帧的复杂度计算所述当前视频帧对应的粗时间粒度历史复杂度。
3.根据权利要求2所述的方法,其特征在于,所述根据各所述视频帧的复杂度计算所述当前视频帧对应的粗时间粒度历史复杂度包括:
根据各所述视频帧的复杂度计算粗时间粒度历史平均复杂度;
根据各所述视频帧的复杂度计算粗时间粒度历史复杂度波动程度;
对所述粗时间粒度历史平均复杂度和所述粗时间粒度历史复杂度波动程度进行计算,得到粗时间粒度历史复杂度。
4.根据权利要求3所述的方法,其特征在于,所述当前视频帧对应的所述粗时间粒度历史复杂度通过以下公式计算得到:
Pcplxi=satdavgi+w*(satdvari-satdavgi);
Figure FDA0003788196900000021
Figure FDA0003788196900000022
其中,Pcplxi表示当前视频帧i对应的所述粗时间粒度历史复杂度;satdavgi表示根据当前视频帧i前N个视频帧计算得到的粗时间粒度历史平均复杂度;satdvari表示根据当前视频帧i前N个视频帧计算得到的粗时间粒度历史复杂度波动;satdavgi-satdvari表示粗时间粒度历史复杂度波动程度;satdj表示当前视频帧i前第j个视频帧的复杂度;w表示预设的波动程度权重系数。
5.根据权利要求1所述的方法,其特征在于,在所述确定所述当前视频帧的复杂度与所述粗时间粒度历史复杂度之间的大小关系之前,所述方法还包括:
获取当前视频帧的复杂度。
6.根据权利要求1所述的方法,其特征在于,所述第一码率与所述当前的粗时间粒度可用码率、所述当前视频帧的复杂度与所述粗时间粒度历史复杂度之差成正相关。
7.根据权利要求1所述的方法,其特征在于,所述第二码率与所述当前的细时间粒度可用码率、所述细时间粒度可用码率的充满程度及所述当前视频帧的复杂度与所述粗时间粒度历史复杂度之差成正相关。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当增加了所述第一码率后,所述细时间粒度可用码率超过细时间粒度可用码率对应的最大值时,则将所述细时间粒度可用码率调整为细时间粒度可用码率对应的最大值;
当增加了所述第二码率后,所述粗时间粒度可用码率超过粗时间粒度可用码率对应的最大值时,则将所述粗时间粒度可用码率调整为粗时间粒度可用码率对应的最大值。
9.根据权利要求1所述的方法,其特征在于,所述第一码率、所述第二码率通过以下公式计算得到:
Adm_Bits=Min(α*AdRation*m_buffer,s_buffermax-s_buffer);
Figure FDA0003788196900000031
其中,Adm_Bits表示从粗时间粒度可用码率中减少的所述第一码率;Ads_Bits表示从细时间粒度可用码率中减少的所述第二码率;AdRation表示所述当前视频帧的复杂度与所述粗时间粒度历史复杂度之差;m_buffer表示当前的粗时间粒度可用码率;s_buffer表示当前的细时间粒度可用码率;m_buffermax表示粗时间粒度可用码率对应的最大值;s_buffermax表示细时间粒度可用码率对应的最大值;
Figure FDA0003788196900000032
表示所述细时间粒度可用码率的充满程度;α表示预设的均衡调节参数;Min表示最小值函数。
10.根据权利要求1所述的方法,其特征在于,所述根据调整后细时间粒度可用码率更新所述初始量化参数,得到当前量化参数包括:
获取所述当前视频帧对应的细时间粒度探测窗口中的视频帧序列;
从所述初始量化参数开始逐步增大数值,直到得到当前量化参数,使得基于所述视频帧序列和所述当前量化参数预估的累计编码码率与调整后的细时间粒度可用码率之间符合预设码率关系。
11.根据权利要求1所述的方法,其特征在于,所述根据所述当前量化参数对所述当前视频帧进行编码包括:
根据所述当前量化参数得到所述当前视频帧对应的当前量化步长;
根据所述当前量化步长对所述当前视频帧进行编码,得到所述当前视频帧对应的实际占用码率。
12.根据权利要求1至11任一项所述的方法,其特征在于,所述方法还包括:
获取所述当前视频帧所属的目标视频帧序列对应的目标码率;
根据所述目标码率、所述目标视频帧序列的帧率计算平均每帧可分配码率;
获取所述当前视频帧在编码后对应的实际占用码率;
根据所述平均每帧可分配码率、所述实际占用码率对所述调整后的细时间粒度可用码率进行更新,得到下一视频帧对应的细时间粒度可用码率。
13.一种视频编码装置,其特征在于,所述装置包括:
视频帧获取模块,用于获取待编码的当前视频帧及初始量化参数;
历史复杂度计算模块,用于计算所述当前视频帧对应的粗时间粒度历史复杂度;所述粗时间粒度历史复杂度表征在粗时间粒度上统计的当前视频帧对应的历史复杂度信息;
可用码率获取模块,用于获取当前的细时间粒度可用码率和当前的粗时间粒度可用码率;所述细时间粒度可用码率是指在细时间粒度上进行码率控制的细时间粒度码率控制缓存中的可用码率;所述粗时间粒度可用码率是指在粗时间粒度上进行码率控制的粗时间粒度码率控制缓存中的可用码率;所述粗时间粒度所对应的单位划分时间大于所述细时间粒度的单位划分时间;
码率调整模块,用于确定所述当前视频帧的复杂度与所述粗时间粒度历史复杂度之间的大小关系;当所述当前视频帧的复杂度大于所述粗时间粒度历史复杂度时,则从所述粗时间粒度可用码率中减少第一码率,将所述第一码率增加至所述细时间粒度码可用码率;当所述当前视频帧的复杂度小于所述粗时间粒度历史复杂度时,则从所述细时间粒度可用码率中减少第二码率,将所述第二码率增加至所述粗时间粒度可用码率;量化参数更新模块,用于根据调整后的细时间粒度可用码率更新所述初始量化参数,得到当前量化参数;
编码模块,用于根据所述当前量化参数对所述当前视频帧进行编码。
14.根据权利要求13所述的装置,其特征在于,所述历史复杂度计算模块还用于确定所述当前视频帧对应的粗时间粒度历史视频帧序列;获取所述粗时间粒度历史视频帧序列中各视频帧的复杂度;根据各所述视频帧的复杂度计算所述当前视频帧对应的粗时间粒度历史复杂度。
15.根据权利要求14所述的装置,其特征在于,所述历史复杂度计算模块还用于根据各所述视频帧的复杂度计算粗时间粒度历史平均复杂度;根据各所述视频帧的复杂度计算粗时间粒度历史复杂度波动程度;对所述粗时间粒度历史平均复杂度和所述粗时间粒度历史复杂度波动程度进行计算,得到粗时间粒度历史复杂度。
16.根据权利要求15所述的装置,其特征在于,所述当前视频帧对应的所述粗时间粒度历史复杂度通过以下公式计算得到:
Pcplxi=satdavgi+w*(satdvari-satdavgi);
Figure FDA0003788196900000051
Figure FDA0003788196900000052
其中,Pcplxi表示当前视频帧i对应的所述粗时间粒度历史复杂度;satdavgi表示根据当前视频帧i前N个视频帧计算得到的粗时间粒度历史平均复杂度;satdvari表示根据当前视频帧i前N个视频帧计算得到的粗时间粒度历史复杂度波动;satdavgi-satdvari表示粗时间粒度历史复杂度波动程度;satdj表示当前视频帧i前第j个视频帧的复杂度;w表示预设的波动程度权重系数。
17.根据权利要求13所述的装置,其特征在于,所述码率调整模块还用于获取当前视频帧的复杂度。
18.根据权利要求13所述的装置,其特征在于,所述第一码率与所述当前的粗时间粒度可用码率、所述当前视频帧的复杂度与所述粗时间粒度历史复杂度之差成正相关。
19.根据权利要求13所述的装置,其特征在于,所述第二码率与所述当前的细时间粒度可用码率、所述细时间粒度可用码率的充满程度及所述当前视频帧的复杂度与所述粗时间粒度历史复杂度之差成正相关。
20.根据权利要求13所述的装置,其特征在于,所述码率调整模块还用于当增加了所述第一码率后,所述细时间粒度可用码率超过细时间粒度可用码率对应的最大值时,则将所述细时间粒度可用码率调整为细时间粒度可用码率对应的最大值;当增加了所述第二码率后,所述粗时间粒度可用码率超过粗时间粒度可用码率对应的最大值时,则将所述粗时间粒度可用码率调整为粗时间粒度可用码率对应的最大值。
21.根据权利要求13所述的装置,其特征在于,所述第一码率、所述第二码率通过以下公式计算得到:
Adm_Bits=Min(α*AdRation*m_buffer,s_buffermax-s_buffer);
Figure FDA0003788196900000061
其中,Adm_Bits表示从粗时间粒度可用码率中减少的所述第一码率;Ads_Bits表示从细时间粒度可用码率中减少的所述第二码率;AdRation表示所述当前视频帧的复杂度与所述粗时间粒度历史复杂度之差;m_buffer表示当前的粗时间粒度可用码率;s_buffer表示当前的细时间粒度可用码率;m_buffermax表示粗时间粒度可用码率对应的最大值;s_buffermax表示细时间粒度可用码率对应的最大值;
Figure FDA0003788196900000062
表示所述细时间粒度可用码率的充满程度;α表示预设的均衡调节参数;Min表示最小值函数。
22.根据权利要求13所述的装置,其特征在于,所述量化参数更新模块还用于获取所述当前视频帧对应的细时间粒度探测窗口中的视频帧序列;从所述初始量化参数开始逐步增大数值,直到得到当前量化参数,使得基于所述视频帧序列和所述当前量化参数预估的累计编码码率与调整后的细时间粒度可用码率之间符合预设码率关系。
23.根据权利要求13所述的装置,其特征在于,所述编码模块还用于根据所述当前量化参数得到所述当前视频帧对应的当前量化步长;根据所述当前量化步长对所述当前视频帧进行编码,得到所述当前视频帧对应的实际占用码率。
24.根据权利要求13至23任一项所述的装置,其特征在于,所述视频编码装置还包括细时间粒度可用码率更新模块,所述细时间粒度可用码率更新模块用于获取所述当前视频帧所属的目标视频帧序列对应的目标码率;根据所述目标码率、所述目标视频帧序列的帧率计算平均每帧可分配码率;获取所述当前视频帧在编码后对应的实际占用码率;根据所述平均每帧可分配码率、所述实际占用码率对所述调整后的细时间粒度可用码率进行更新,得到下一视频帧对应的细时间粒度可用码率。
25.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至12中任一项所述方法的步骤。
26.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至12中任一项所述方法的步骤。
CN201811288530.5A 2018-10-31 2018-10-31 视频编码方法、装置、计算机可读存储介质和计算机设备 Active CN110213585B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201811288530.5A CN110213585B (zh) 2018-10-31 2018-10-31 视频编码方法、装置、计算机可读存储介质和计算机设备
EP19880678.8A EP3876535A4 (en) 2018-10-31 2019-10-08 VIDEO ENCODING METHOD AND APPARATUS, AND COMPUTER READABLE STORAGE MEDIA AND COMPUTER DEVICE
PCT/CN2019/109976 WO2020088200A1 (zh) 2018-10-31 2019-10-08 视频编码方法、装置、计算机可读存储介质和计算机设备
JP2020560329A JP7123470B2 (ja) 2018-10-31 2019-10-08 ビデオ符号化方法、装置、コンピュータプログラム及びコンピュータ機器
US17/078,414 US11317097B2 (en) 2018-10-31 2020-10-23 Video encoding method and apparatus, computer-readable storage medium, and computer device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811288530.5A CN110213585B (zh) 2018-10-31 2018-10-31 视频编码方法、装置、计算机可读存储介质和计算机设备

Publications (2)

Publication Number Publication Date
CN110213585A CN110213585A (zh) 2019-09-06
CN110213585B true CN110213585B (zh) 2022-10-28

Family

ID=67779803

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811288530.5A Active CN110213585B (zh) 2018-10-31 2018-10-31 视频编码方法、装置、计算机可读存储介质和计算机设备

Country Status (5)

Country Link
US (1) US11317097B2 (zh)
EP (1) EP3876535A4 (zh)
JP (1) JP7123470B2 (zh)
CN (1) CN110213585B (zh)
WO (1) WO2020088200A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110213585B (zh) 2018-10-31 2022-10-28 腾讯科技(深圳)有限公司 视频编码方法、装置、计算机可读存储介质和计算机设备
CN111836081B (zh) * 2020-07-20 2021-07-27 南京百家云科技有限公司 一种视频传输的方法及装置
EP4156679A4 (en) * 2020-11-30 2023-08-30 BOE Technology Group Co., Ltd. VIDEO PROCESSING METHOD AND APPARATUS, ELECTRONIC DEVICE AND STORAGE MEDIA
CN113301331B (zh) * 2021-05-25 2022-11-04 哈尔滨工业大学 基于通用视频编码标准的帧内预测编码模式快速决策方法
CN113660491B (zh) * 2021-08-10 2024-05-07 杭州网易智企科技有限公司 编码方法、编码装置、存储介质及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6963608B1 (en) * 1998-10-02 2005-11-08 General Instrument Corporation Method and apparatus for providing rate control in a video encoder
CN102647586A (zh) * 2011-02-16 2012-08-22 富士通株式会社 用在视频编码系统中的码率控制方法和装置
CN108235016A (zh) * 2016-12-21 2018-06-29 杭州海康威视数字技术股份有限公司 一种码率控制方法及装置

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04137685A (ja) 1990-09-28 1992-05-12 Toshiba Corp 金属蒸気レーザー装置の起動方法
JP2534914Y2 (ja) * 1991-06-14 1997-05-07 日本電気ホームエレクトロニクス株式会社 画像データの圧縮符号化装置
JP3918208B2 (ja) * 1996-08-30 2007-05-23 ソニー株式会社 映像データ圧縮装置およびその方法
JP3872849B2 (ja) * 1996-11-28 2007-01-24 松下電器産業株式会社 動画像符号化装置
CN1174624C (zh) * 1998-09-29 2004-11-03 松下电器产业株式会社 可变比特率编码装置
JP2000308047A (ja) 1999-04-19 2000-11-02 Matsushita Electric Ind Co Ltd 画像符号化方法、画像符号化装置、及びデータ記憶媒体
JP4273385B2 (ja) 2002-04-05 2009-06-03 ソニー株式会社 符号化装置および符号化方法、プログラム、並びに記録媒体
JP4556844B2 (ja) 2005-11-04 2010-10-06 パナソニック株式会社 符号量制御方法および符号量制御装置
US20080151998A1 (en) * 2006-12-21 2008-06-26 General Instrument Corporation Method and Apparatus for Providing Rate Control for Panel-Based Real Time Video Encoder
KR101033442B1 (ko) * 2008-06-12 2011-05-09 주식회사 몬도시스템즈 영상 처리 시스템에서 비트 레이트를 제어하는 장치 및방법
US20100150168A1 (en) * 2008-11-17 2010-06-17 Chanchal Chatterjee Method and apparatus for multiplexing of digital video
US8879623B2 (en) * 2009-09-02 2014-11-04 Sony Computer Entertainment Inc. Picture-level rate control for video encoding a scene-change I picture
CN102036062B (zh) * 2009-09-29 2012-12-19 华为技术有限公司 视频编码方法、装置及电子设备
CN103096048B (zh) * 2011-11-02 2015-11-11 北京大学 一种可伸缩视频编码量化参数确定方法及装置
CN103634594B (zh) * 2012-08-21 2015-04-29 华为技术有限公司 一种获得视频编码压缩质量的方法及装置
US9621917B2 (en) * 2014-03-10 2017-04-11 Euclid Discoveries, Llc Continuous block tracking for temporal prediction in video encoding
CN104410861A (zh) * 2014-11-24 2015-03-11 华为技术有限公司 视频编码方法及装置
KR102274747B1 (ko) * 2014-11-24 2021-07-07 삼성전자주식회사 코덱과 이를 포함하는 시스템 온 칩, 및 상기 시스템 온 칩을 포함하는 데이터 처리 시스템
US9639935B1 (en) * 2016-05-25 2017-05-02 Gopro, Inc. Apparatus and methods for camera alignment model calibration
CN110213585B (zh) * 2018-10-31 2022-10-28 腾讯科技(深圳)有限公司 视频编码方法、装置、计算机可读存储介质和计算机设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6963608B1 (en) * 1998-10-02 2005-11-08 General Instrument Corporation Method and apparatus for providing rate control in a video encoder
CN102647586A (zh) * 2011-02-16 2012-08-22 富士通株式会社 用在视频编码系统中的码率控制方法和装置
CN108235016A (zh) * 2016-12-21 2018-06-29 杭州海康威视数字技术股份有限公司 一种码率控制方法及装置

Also Published As

Publication number Publication date
US11317097B2 (en) 2022-04-26
JP7123470B2 (ja) 2022-08-23
WO2020088200A1 (zh) 2020-05-07
US20210044805A1 (en) 2021-02-11
JP2021520160A (ja) 2021-08-12
CN110213585A (zh) 2019-09-06
EP3876535A1 (en) 2021-09-08
EP3876535A4 (en) 2022-01-26

Similar Documents

Publication Publication Date Title
CN110213585B (zh) 视频编码方法、装置、计算机可读存储介质和计算机设备
JP4390112B2 (ja) ビデオシーケンスのレートを制御する方法及び装置並びにビデオ符号化装置
JP7012747B2 (ja) ビデオフレーム符号化方法、端末、および記憶媒体
US10735740B2 (en) Bit rate control method and device
US10951905B2 (en) Video transcoding method, computer device, and storage medium
JP2010508769A (ja) パケット化オーバヘッドを削減するための動画像符号化レート適応
KR102263979B1 (ko) 비디오 인코딩 방법, 컴퓨터 장치 및 저장 매체
US20150172680A1 (en) Producing an Output Need Parameter for an Encoder
US20200236372A1 (en) Optimal Multi-Codec ABR Ladder Design
US9167256B2 (en) Method and apparatus for encoding
CN110139168B (zh) 视频编码方法、装置、计算机设备及存储介质
JP5507770B2 (ja) ビデオ符号化の方法、装置、プログラム及び記録媒体
CN112788335B (zh) 一种适用于实时视频传输的h.264帧级码率控制方法
CN117676153A (zh) 一种帧间预测模式的切换方法及相关装置
Barannik et al. A method to control bit rate while compressing predicted frames
Sofke et al. Dynamic quality control for transform domain Wyner-Ziv video coding
US20130243084A1 (en) Bit rate regulation module and method for regulating bit rate
RU2818891C1 (ru) Способ и устройство, вычислительное устройство и носитель данных для кодирования видео
CN115914632A (zh) 视频编码方法、解码方法、视频编解码器及计算机介质
US20230362380A1 (en) Systems and methods for multiple channel video encoding in a shared resource environment
JP2012090039A (ja) データ多重化装置及びデータ多重化方法
Chang et al. A two-layer characteristic-based rate control framework for low delay video transmission
CN116193164A (zh) 紧密集成传输协议和编解码器的视频传输方法及存储介质
CN117956160A (zh) 码率控制方法、码率控制装置以及计算机存储介质
CN116962694A (zh) 视频编码方法、装置、电子设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant