CN116320433A - 一种用于编码器的码率计算方法、装置、设备及介质 - Google Patents
一种用于编码器的码率计算方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN116320433A CN116320433A CN202310344639.0A CN202310344639A CN116320433A CN 116320433 A CN116320433 A CN 116320433A CN 202310344639 A CN202310344639 A CN 202310344639A CN 116320433 A CN116320433 A CN 116320433A
- Authority
- CN
- China
- Prior art keywords
- frame
- code rate
- time
- time stamp
- calculating
- 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
Links
Images
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/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
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/854—Content authoring
- H04N21/8547—Content authoring involving timestamps for synchronizing content
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明涉及视频处理领域,尤其涉及一种用于编码器的码率计算方法、装置、设备及介质。所述方法包括:按照时间先后顺序将编码器接收的动态帧率原始视频数据的各帧依次缓存;将缓存的首帧至倒数第二帧依次作为目标帧,根据目标帧后一帧对应的时间戳、目标帧对应的时间戳、以及各时间戳所属时间段为目标帧计算码率占比因子;根据缓存的尾帧对应的时间戳、以及时间戳所属时间段为尾帧计算码率占比因子;根据各帧对应的码率占比因子计算每帧的最终码率。本发明的方案可以有效反映出前帧对后续视频序列的影响,保证所有帧的码率都较为平滑,使得编码器对于动态帧率视频序列实现恒定码率控制。
Description
技术领域
本发明涉及视频处理领域,尤其涉及一种用于编码器的码率计算方法、装置、设备及介质。
背景技术
流媒体体系主要由五个部分组成:终端编码器、流媒体数据、服务器、传输网络、终端播放器。终端编码器用于音视频采集、压缩和上传;流媒体数据是网络传输过程中压缩后的音视频数据包;服务器用于管理、存储、分发编码器上传的流媒体数据;传输网络包含流媒体传输协议,定义流媒体数据的传输形式,对压缩编码数据的高效传递;终端播放器也叫解码器用于接收、解码和播放服务器分发的流媒体数据。在传输压缩编码视频的时候,必须要考虑两个问题:视频质量和传输带宽,如果带宽大,可以尽可能传输质量更好的视频;如果带宽低,则需要提高压缩比,减小码流;总之,码流与带宽紧密相关。与此同时,我们希望尽可能的得到高清晰的还原图像,所以在能接受的视频质量范围内对视频尽可能的压缩来提高带宽利用率是码率控制的根本。
为了实现更优的码率控制,可以结合可变帧率,丢弃静止画面的帧,将更多字节分配给复杂画面,这样可以提高复杂画面的编码画质;但是在网络传输的过程中,又不希望码率波动过大,就需要在可变帧率(VFR)视频序列编码的时候实现恒定的码率控制。可变帧率(VFR)视频序列恒定码率控制,该方式由于进行过抽帧处理,所以帧率不恒定。在计算每一帧在可辨视频序列中的占比时候,不能按照恒定帧率的计算方案直接计算,需要按照可变帧率视频序列前后帧的时间戳差值计算该帧在视频序列编码时候的码率占比。
目前,传统可变帧率的码率计算方式如图1所示,需要拿第n+1帧的时间戳ptsn+1减去第n帧的时间戳ptsn,计算出第n+1帧的码率占比。然而传统方式存在以下两点问题:第一,首帧只能按照默认参数计算码率占比,不能够准确计算出首帧的码率占比;第二,每一个时间间隔内,码率占比综合波动比较大,导致编码码率波动也比较大。
发明内容
有鉴于此,有必要针对传统可变帧率的码率计算方式存在码率波动较大的问题,本发明提供一种用于编码器的码率计算方法、装置、设备及介质。
根据本发明的第一方面,提供了一种用于编码器的码率计算方法,所述方法包括:
按照时间先后顺序将编码器接收的动态帧率原始视频数据的各帧依次缓存;
将缓存的首帧至倒数第二帧依次作为目标帧,根据目标帧后一帧对应的时间戳、目标帧对应的时间戳、以及各时间戳所属时间段为目标帧计算码率占比因子;
根据缓存的尾帧对应的时间戳、以及时间戳所属时间段为尾帧计算码率占比因子;
根据各帧对应的码率占比因子计算每帧的最终码率。
在一些实施例中,根据目标帧后一帧对应的时间戳、目标帧对应的时间戳、以及各时间戳所属时间段为目标帧计算码率占比因子,包括:
分别计算目标帧对应的时间戳所属时间段、以及目标帧后一帧对应的时间戳所属时间段,并判断计算得到的两个时间段是否相同;
响应于计算得到的两个时间段相同,计算目标帧后一帧对应的时间戳与目标帧对应的时间戳的差值作为目标帧的基础码率占比因子;
响应于计算得到的两个时间段不同,则计算目标帧后一帧所属时间段中最小时间与目标帧对应的时间戳的差值作为目标帧的基础码率占比因子,以及计算目标帧后一帧对应的时间戳与目标帧后一帧所属时间段中最小时间的差值作为目标帧后一帧所属时间段的平抑码率占比因子。
在一些实施例中,根据缓存的尾帧对应的时间戳、以及时间戳所属时间段为尾帧计算码率占比因子,包括:
计算尾帧对应的时间戳所属时间段的下一时间段中的最小时间戳;
计算尾帧所属时间段的下一时间段中的最小时间与尾帧对应的时间戳的差值作为尾帧的基础码率占比因子。
在一些实施例中,根据各帧对应的码率占比因子计算每帧的最终码率,包括:
根据下述公式一得到首帧最终码率:
公式一:basebits1=bitrate*delta1*timebase_num/timebanse_den;
其中,basebits1为首帧最终码率,bitrate为预设常数,timebase_num为时基的分子,timebase_den为时基的分母,delta1为首帧的基础码率占比因子;
根据下述公式二得到第二帧至尾帧的最终码率:
公式二:basebitsn=bitrate*deltan*timebase_num/timebanse_den+ratediffm*deltan*timebase_num/timebanse_den;
其中,basebitsn为第n帧的最终码率,n大于等于2,bitrate为预设常数,deltan为第n帧的基础码率占比因子,timebase_num为时基的分子,timebase_den为时基的分母,ratediffm为第n帧所属时间段m对应的平抑码率占比因子。
在一些实施例中,所述时间段通过将时间戳对1000取整得到。
在一些实施例中,时间段中的最小时间等于时间段与1000的乘积,时间段中的最大时间等于时间段与1000的乘积再加上999。
在一些实施例中,原始视频数据的各帧数据依次缓存到先进先出队列。
根据本发明的第二方面,提供了一种用于编码器的码率计算装置,所述装置包括:
缓存模块,配置用于按照时间先后顺序将编码器接收的动态帧率原始视频数据的各帧依次缓存;
第一码率占比因子计算模块,配置用于将缓存的首帧至倒数第二帧依次作为目标帧,根据目标帧后一帧对应的时间戳、目标帧对应的时间戳、以及各时间戳所属时间段为目标帧计算码率占比因子;
第二码率占比因子计算模块,配置用于根据缓存的尾帧对应的时间戳、以及时间戳所属时间段为尾帧计算码率占比因子;
码率计算模块,配置用于根据各帧对应的码率占比因子计算每帧的最终码率。
根据本发明的第三方面,还提供了一种计算机设备,该计算机设备包括:
至少一个处理器;以及
存储器,存储器存储有可在处理器上运行的计算机程序,处理器执行程序时执行前述的用于编码器的码率计算方法。
根据本发明的第四方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时执行前述的用于编码器的码率计算方法。
上述一种用于编码器的码率计算方法,对传统可变帧率码率计算方式进行改进,通过将各帧进行缓存,首帧至倒数第二帧采用相同方式确定码率占比因子,尾帧采用单独的方式确定码率占比。因此,首帧无需按照默认参数进行计算,可以有效反映出前帧对后续视频序列的影响,保证所有帧的码率都较为平滑,使得编码器对于动态帧率视频序列实现恒定码率控制。
此外,本发明还提供了一种用于编码器的码率计算装置、一种计算机设备和一种计算机可读存储介质,同样能实现上述技术效果,这里不再赘述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为传统可变帧率的码率计算方式示意图;
图2为本发明一个实施例提供的一种用于编码器的码率计算方法的流程图;
图3A为本发明另一个实施例提供的另一种用于编码器的码率计算方法的流程图;
图3B为本发明另一个实施例提供的动态帧率码率重分配示意图;
图3C为本发明另一个实施例提供的动态帧率码率容错示意图;
图4为本发明另一个实施例提供的一种用于编码器的码率计算装置的结构示意图;
图5为本发明另一个实施例中计算机设备的内部结构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
在一个实施例中,请参照图2所示,本发明提供了一种用于编码器的码率计算方法100,具体来说,所述方法包括以下步骤:
步骤101,按照时间先后顺序将编码器接收的动态帧率原始视频数据的各帧依次缓存;
步骤102,将缓存的首帧至倒数第二帧依次作为目标帧,根据目标帧后一帧对应的时间戳、目标帧对应的时间戳、以及各时间戳所属时间段为目标帧计算码率占比因子;
步骤103,根据缓存的尾帧对应的时间戳、以及时间戳所属时间段为尾帧计算码率占比因子;
步骤104,根据各帧对应的码率占比因子计算每帧的最终码率。
上述一种用于编码器的码率计算方法,对传统可变帧率码率计算方式进行改进,通过将各帧进行缓存,首帧至倒数第二帧采用相同方式确定码率占比因子,尾帧采用单独的方式确定码率占比因此,首帧无需按照默认参数进行计算,可以有效反映出前帧对后续视频序列的影响,保证所有帧的码率都较为平滑,使得编码器对于动态帧率视频序列实现恒定码率控制。
在一些实施例中,前述步骤102中的根据目标帧后一帧对应的时间戳、目标帧对应的时间戳、以及各时间戳所属时间段为目标帧计算码率占比因子,包括:
分别计算目标帧对应的时间戳所属时间段、以及目标帧后一帧对应的时间戳所属时间段,并判断计算得到的两个时间段是否相同;
响应于计算得到的两个时间段相同,计算目标帧后一帧对应的时间戳与目标帧对应的时间戳的差值作为目标帧的基础码率占比因子;
响应于计算得到的两个时间段不同,则计算目标帧后一帧所属时间段中最小时间与目标帧对应的时间戳的差值作为目标帧的基础码率占比因子,以及计算目标帧后一帧对应的时间戳与目标帧后一帧所属时间段中最小时间的差值作为目标帧后一帧所属时间段的平抑码率占比因子。
在一些实施例中,前述步骤103根据缓存的尾帧对应的时间戳、以及时间戳所属时间段为尾帧计算码率占比因子,包括:
计算尾帧对应的时间戳所属时间段的下一时间段中的最小时间戳;
计算尾帧所属时间段的下一时间段中的最小时间与尾帧对应的时间戳的差值作为尾帧的基础码率占比因子。
在一些实施例中,前述步骤104根据各帧对应的码率占比因子计算每帧的最终码率,包括:
根据下述公式一得到首帧最终码率:
公式一:basebits1=bitrate*delta1*timebase_num/timebanse_den;
其中,basebits1为首帧最终码率,bitrate为预设常数,timebase_num为时基的分子,timebase_den为时基的分母,delta1为首帧的基础码率占比因子;
根据下述公式二得到第二帧至尾帧的最终码率:
公式二:basebitsn=bitrate*deltan*timebase_num/timebanse_den+ratediffm*deltan*timebase_num/timebanse_den;
其中,basebitsn为第n帧的最终码率,n大于等于2,bitrate为预设常数,deltan为第n帧的基础码率占比因子,timebase_num为时基的分子,timebase_den为时基的分母,ratediffm为第n帧所属时间段m对应的平抑码率占比因子。
在一些实施例中,所述时间段通过将时间戳对1000取整得到。举例来说,假设时间戳是1200ms,对1000取整即时间段等于1,假设时间戳是200ms,对1000取整即时间段等于0。
在一些实施例中,时间段中的最小时间等于时间段与1000的乘积,时间段中的最大时间等于时间段与1000的乘积再加上999。举例来说,时间段0对应的时间范围是0ms-999ms,时间段1对应的时间范围是1000ms-1999ms,后续时间段对应的时间范围计算方式依次类推,在此不再赘述。
在一些实施例中,原始视频数据的各帧数据依次缓存到先进先出队列。在又一个实施例中,为了便于理解的本发明的技术方案,下面以图1示出的包含十一帧的态帧率原始视频数据为例,本实例提供了又一种用于编码器的码率计算方法200,请参数图3A所示,所述方法包括以下步骤:
步骤201,接收当前帧视频数据;即将当前帧视频数据放入先进先出队列,并记录该数据帧的时间戳ptsn。
步骤202,下一帧视频数据到来,计算与当前帧的时间间隔;
第一,初始时间段ptsm为0。
第二,判断下一帧是否为跨秒帧。计算下一帧所在的时间段ptsm+1。计算公式为:ptsm+1=ptsn+1*timebase_num/timebanse_den/1000,即ptsn+1对1000取整。
第三,判断下一帧所在时间段ptsm+1与记录时间段ptsm是否一致,如果一致则没有跨秒,否则跨秒。
第四,如果没有跨秒,计算下一帧时间戳ptsn+1与当前帧时间戳ptsn的时间间隔deltan,计算公式为:deltan=ptsn+1-ptsn。
最后,如果跨秒,需要计算两个时间间隔:
(a)整秒时间间隔:deltan=ptsm+1*1000-ptsn;
(b)跨秒时间间隔:ratediffm=ptsn+1-ptsm+1*1000,并更新ptsm=ptsm+1。
其中,ratediffm为码率误差值,需要在下一个时间段m+1的1000ms之内,分配给剩下的视频数据帧。
步骤203,计算当前帧的码率占比并进行码率平抑;即根据当前帧时间戳与后一帧时间戳的差值,计算当前帧的期望编码码率码targetbitsn。
首先,计算基础码率basebitsn,计算公式为:basebitsn=bitrate*deltan*timebase_num/timebanse_den。
其次,计算溢出码率diffbitsn,计算公式为:diffbitsn=ratediffm*deltan*timebase_num/timebanse_den。
最后,计算期望编码码率码,计算公式为:targetbitsn=basebitsn+diffbitsn。
步骤204,计算剩余所有帧的码率占比;
重复步骤201至步骤203以计算所有帧的码率占比
步骤205,尾帧计算;
视频序列结束,清空步骤201队列。尾帧没有办法使用步骤201、步骤202计算码率占比,则使尾帧占用该秒之内所有码率,具体算法如下:
首先,计算尾帧时间段ptsi+m+1,计算公式为:ptsi+m+1=ptsj+n+1*timebase_num/timebanse_den/1000。
其次,计算尾帧时间间隔,计算公式为:deltaj+n=(ptsi+m+1+1)*1000-ptsj+n。然后重复步骤203计算码率占比。
下面使用上述步骤处理图1示出的包含十一帧的态帧率原始视频数据为例,对于该视频数据其码率计算过程如下:
(1)编码器接收到原始的视频帧数据,首先,将第n帧视频数据放入先进先出的视频帧缓冲队列。用于等待后续帧的到来。其次,第n+1数据到来,追加到先进先出队列尾部,并计算n+1帧与第n帧的时间戳差值deltan=ptsn+1-ptsn。最后,将该差值deltan作为码率占比因子,计算出码率占比deltan*timebase_num/timebase_den/1000,计算第n帧在该帧所在时间段m中的码率占比。
(2)请参考图3B,黑色部分代表视频序列真实存在的视频数据帧,帧顺序从左到右依次递增n、n+1、n+2......,黑色部分代表的视频数据帧对应的时间戳从0到3100ms单调递增,且第i帧对应0ms,第n+1帧对应100ms,第n+2帧对应400ms一次类推。第n帧与第n+1帧间隔100ms,第n+1与第n+2帧间隔300ms,第n+2与第n+3帧间隔300ms等等。帧间隔计算公式为:deltan=ptsn+1-ptsn,计算结果如图3B所示。
(3)经过初步码率占比计算之后,在时间段m中,将会产生码率溢出值ratediffm(包含上溢和下溢),该码率溢出值ratediffm将会在下一个时间间隔m+1内进行平抑操作。具体操作为,将ratediffm经码率溢出值,按照时间段m+1内的帧的占比进行均摊,如此平抑时间段m造成的码率波动。
(4)请参照图3C所示,在时间段m,0ms到999ms内,四个视频帧中间的码率总和为1100bits,大于1000bits。需要平抑该码率增长。将第n+3帧码率占比缩小,并将缩小之后的码率,按照比例分摊给1000ms到1999ms中间的诸帧。第1000ms为0到999ms码率溢出部分,该部分码率将会在1000ms到1999ms之内的三帧分摊。图3C中1000ms对应黑色部分100bits的码率溢出,将按照1000到1999ms之内三帧的占比分摊,每帧占比分别为n+4帧占比(1100-1000)/1000,n+5帧占比(1400-1100)/1000,n+6帧占比(1700-1400)/100,其累加值并非1000/1000,造成的误差需要在下一个时间段中平抑。
(5)重复上述操作,在视频帧序列结束的时候,清空先进先出队列。并将最后一帧时间间隔中的码率剩余,全部分配给尾帧。
本实施例的一种用于编码器的码率计算方法,至少具备以下有益技术效果:第一,通过先进先出队列缓存一帧数据可以解决首帧计算不到的问题;第二,使用第n+1帧时间戳ptsn+1减去第n帧时间戳ptsn的差值计算前帧的码率占比,可以有效反映出前帧对后续视频序列的影响;第三,均摊前一个时间段的码率溢出,可以有效的平抑码率波动;第四,尾帧计算可以在编码结束的时候依然保持码率平滑,可以解决动态帧率视频序列每一帧码率站比波动问题,计算得到的所有帧的码率都较为平滑。
在一些实施例中,请参照图4所示,本发明还提供了一种用于编码器的码率计算装置300,所述装置包括:
缓存模块301,配置用于按照时间先后顺序将编码器接收的动态帧率原始视频数据的各帧依次缓存;
第一码率占比因子计算模块302,配置用于将缓存的首帧至倒数第二帧依次作为目标帧,根据目标帧后一帧对应的时间戳、目标帧对应的时间戳、以及各时间戳所属时间段为目标帧计算码率占比因子;
第二码率占比因子计算模块303,配置用于根据缓存的尾帧对应的时间戳、以及时间戳所属时间段为尾帧计算码率占比因子;
码率计算模块304,配置用于根据各帧对应的码率占比因子计算每帧的最终码率。
上述一种用于编码器的码率计算装置,对传统可变帧率码率计算方式进行改进,通过将各帧进行缓存,首帧至倒数第二帧采用相同方式确定码率占比因子,尾帧采用单独的方式确定码率占比因此,首帧无需按照默认参数进行计算,可以有效反映出前帧对后续视频序列的影响,保证所有帧的码率都较为平滑,使得编码器对于动态帧率视频序列实现恒定码率控制。
在一些实施例中,所述第一码率占比因子计算模块302进一步配置用于:
分别计算目标帧对应的时间戳所属时间段、以及目标帧后一帧对应的时间戳所属时间段,并判断计算得到的两个时间段是否相同;
响应于计算得到的两个时间段相同,计算目标帧后一帧对应的时间戳与目标帧对应的时间戳的差值作为目标帧的基础码率占比因子;
响应于计算得到的两个时间段不同,则计算目标帧后一帧所属时间段中最小时间与目标帧对应的时间戳的差值作为目标帧的基础码率占比因子,以及计算目标帧后一帧对应的时间戳与目标帧后一帧所属时间段中最小时间的差值作为目标帧后一帧所属时间段的平抑码率占比因子。
在一些实施例中,所述第二码率占比因子计算模块303进一步配置用于:
计算尾帧对应的时间戳所属时间段的下一时间段中的最小时间戳;
计算尾帧所属时间段的下一时间段中的最小时间与尾帧对应的时间戳的差值作为尾帧的基础码率占比因子。
在一些实施例中,所述码率计算模块304进一步配置用于:
根据下述公式一得到首帧最终码率:
公式一:basebits1=bitrate*delta1*timebase_num/timebanse_den;
其中,basebits1为首帧最终码率,bitrate为预设常数,timebase_num为时基的分子,timebase_den为时基的分母,delta1为首帧的基础码率占比因子;
根据下述公式二得到第二帧至尾帧的最终码率:
公式二:basebitsn=bitrate*deltan*timebase_num/timebanse_den+ratediffm*deltan*timebase_num/timebanse_den;
其中,basebitsn为第n帧的最终码率,n大于等于2,bitrate为预设常数,deltan为第n帧的基础码率占比因子,timebase_num为时基的分子,timebase_den为时基的分母,ratediffm为第n帧所属时间段m对应的平抑码率占比因子。
在一些实施例中,所述时间段通过将时间戳对1000取整得到。
在一些实施例中,时间段中的最小时间等于时间段与1000的乘积,时间段中的最大时间等于时间段与1000的乘积再加上999。
在一些实施例中,原始视频数据的各帧数据依次缓存到先进先出队列。
需要说明的是,关于用于编码器的码率计算装置的具体限定可以参见上文中对用于编码器的码率计算方法的限定,在此不再赘述。上述用于编码器的码率计算装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
根据本发明的另一方面,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图请参照图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时实现以上所述的用于编码器的码率计算方法,具体来说,所述方法包括以下步骤:
按照时间先后顺序将编码器接收的动态帧率原始视频数据的各帧依次缓存;
将缓存的首帧至倒数第二帧依次作为目标帧,根据目标帧后一帧对应的时间戳、目标帧对应的时间戳、以及各时间戳所属时间段为目标帧计算码率占比因子;
根据缓存的尾帧对应的时间戳、以及时间戳所属时间段为尾帧计算码率占比因子;
根据各帧对应的码率占比因子计算每帧的最终码率。
根据本发明的又一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以上所述的用于编码器的码率计算方法,具体来说,包括执行以下步骤:
按照时间先后顺序将编码器接收的动态帧率原始视频数据的各帧依次缓存;
将缓存的首帧至倒数第二帧依次作为目标帧,根据目标帧后一帧对应的时间戳、目标帧对应的时间戳、以及各时间戳所属时间段为目标帧计算码率占比因子;
根据缓存的尾帧对应的时间戳、以及时间戳所属时间段为尾帧计算码率占比因子;
根据各帧对应的码率占比因子计算每帧的最终码率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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 (10)
1.一种用于编码器的码率计算方法,其特征在于,所述方法包括:
按照时间先后顺序将编码器接收的动态帧率原始视频数据的各帧依次缓存;
将缓存的首帧至倒数第二帧依次作为目标帧,根据目标帧后一帧对应的时间戳、目标帧对应的时间戳、以及各时间戳所属时间段为目标帧计算码率占比因子;
根据缓存的尾帧对应的时间戳、以及时间戳所属时间段为尾帧计算码率占比因子;
根据各帧对应的码率占比因子计算每帧的最终码率。
2.根据权利要求1所述的用于编码器的码率计算方法,其特征在于,根据目标帧后一帧对应的时间戳、目标帧对应的时间戳、以及各时间戳所属时间段为目标帧计算码率占比因子,包括:
分别计算目标帧对应的时间戳所属时间段、以及目标帧后一帧对应的时间戳所属时间段,并判断计算得到的两个时间段是否相同;
响应于计算得到的两个时间段相同,计算目标帧后一帧对应的时间戳与目标帧对应的时间戳的差值作为目标帧的基础码率占比因子;
响应于计算得到的两个时间段不同,则计算目标帧后一帧所属时间段中最小时间与目标帧对应的时间戳的差值作为目标帧的基础码率占比因子,以及计算目标帧后一帧对应的时间戳与目标帧后一帧所属时间段中最小时间的差值作为目标帧后一帧所属时间段的平抑码率占比因子。
3.根据权利要求2所述的用于编码器的码率计算方法,其特征在于,根据缓存的尾帧对应的时间戳、以及时间戳所属时间段为尾帧计算码率占比因子,包括:
计算尾帧对应的时间戳所属时间段的下一时间段中的最小时间戳;
计算尾帧所属时间段的下一时间段中的最小时间与尾帧对应的时间戳的差值作为尾帧的基础码率占比因子。
4.根据权利要求3所述的用于编码器的码率计算方法,其特征在于,根据各帧对应的码率占比因子计算每帧的最终码率,包括:
根据下述公式一得到首帧最终码率:
公式一:basebits1=bitrate*delta1*timebase_num/timebanse_den;
其中,basebits1为首帧最终码率,bitrate为预设常数,timebase_num为时基的分子,timebase_den为时基的分母,delta1为首帧的基础码率占比因子;
根据下述公式二得到第二帧至尾帧的最终码率:
公式二:basebitsn=bitrate*deltan*timebase_num/timebanse_den+ratediffm*deltan*timebase_num/timebanse_den;
其中,basebitsn为第n帧的最终码率,n大于等于2,bitrate为预设常数,deltan为第n帧的基础码率占比因子,timebase_num为时基的分子,timebase_den为时基的分母,ratediffm为第n帧所属时间段m对应的平抑码率占比因子。
5.根据权利要求1所述的用于编码器的码率计算方法,其特征在于,所述时间段通过将时间戳对1000取整得到。
6.根据权利要求5所述的用于编码器的码率计算方法,其特征在于,时间段中的最小时间等于时间段与1000的乘积,时间段中的最大时间等于时间段与1000的乘积再加上999。
7.根据权利要求1所述的用于编码器的码率计算方法,其特征在于,原始视频数据的各帧数据依次缓存到先进先出队列。
8.一种用于编码器的码率计算装置,其特征在于,所述装置包括:
缓存模块,配置用于按照时间先后顺序将编码器接收的动态帧率原始视频数据的各帧依次缓存;
第一码率占比因子计算模块,配置用于将缓存的首帧至倒数第二帧依次作为目标帧,根据目标帧后一帧对应的时间戳、目标帧对应的时间戳、以及各时间戳所属时间段为目标帧计算码率占比因子;
第二码率占比因子计算模块,配置用于根据缓存的尾帧对应的时间戳、以及时间戳所属时间段为尾帧计算码率占比因子;
码率计算模块,配置用于根据各帧对应的码率占比因子计算每帧的最终码率。
9.一种计算机设备,其特征在于,包括:
至少一个处理器;以及
存储器,所述存储器存储有可在所述处理器中运行的计算机程序,所述处理器执行所述程序时执行权利要求1-7任意一项所述的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时执行权利要求1-7任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310344639.0A CN116320433A (zh) | 2023-03-29 | 2023-03-29 | 一种用于编码器的码率计算方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310344639.0A CN116320433A (zh) | 2023-03-29 | 2023-03-29 | 一种用于编码器的码率计算方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116320433A true CN116320433A (zh) | 2023-06-23 |
Family
ID=86785032
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310344639.0A Pending CN116320433A (zh) | 2023-03-29 | 2023-03-29 | 一种用于编码器的码率计算方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116320433A (zh) |
-
2023
- 2023-03-29 CN CN202310344639.0A patent/CN116320433A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10735740B2 (en) | Bit rate control method and device | |
USRE39955E1 (en) | Multiple encoder output buffer apparatus for differential coding of video information | |
US8675728B2 (en) | Transmitting apparatus and method, and receiving apparatus and method | |
CN109951254B (zh) | 一种数据处理方法及装置、计算机可读存储介质 | |
US9860543B2 (en) | Rate control for content transcoding | |
CN114640886B (zh) | 自适应带宽的音视频传输方法、装置、计算机设备及介质 | |
US20110299588A1 (en) | Rate control in video communication via virtual transmission buffer | |
US20020054635A1 (en) | Image transmitting method and apparatus and image receiving method and apparatus | |
CN106412721A (zh) | 估计处理器负荷 | |
CN111726656B (zh) | 一种直播视频的转码方法、装置、服务器和存储介质 | |
TW202416716A (zh) | 使用編碼圖片緩存器的視頻編碼 | |
WO2024120214A1 (zh) | 一种编码控制方法、装置、设备、存储介质及产品 | |
CN113691814A (zh) | 视频编码方法、装置、电子装置和存储介质 | |
CN116320433A (zh) | 一种用于编码器的码率计算方法、装置、设备及介质 | |
JP4447443B2 (ja) | 画像圧縮処理装置 | |
CN108124155B (zh) | 一种码率控制方法、装置及电子设备 | |
KR20230040872A (ko) | 비디오 스트림의 전송을 제어하는 방법들 및 장치들 | |
JP7562485B2 (ja) | ストリーミングサーバ、送信方法及びプログラム | |
US11825088B2 (en) | Adaptively encoding video frames based on complexity | |
JPH1141608A (ja) | 画像伝送装置および画像符号化方法および画像符号化装置 | |
CN116193164B (zh) | 紧密集成传输协议和编解码器的视频传输方法及存储介质 | |
CN117097936B (zh) | 音视频同步的方法、装置、电子设备及存储介质 | |
CN114513664B (zh) | 视频帧编码方法、装置、智能终端及计算机可读存储介质 | |
CN117478958B (zh) | 视频播放方法、装置、电子设备和存储介质 | |
EP3026907B1 (en) | Encoding device, encoding method, and encoding program |
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 |