System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及一种数字视频编码技术,特别是涉及一种视频编码过程中为满足hrd(hypothetical reference decoder,假定参考解码器)要求而进行的视频码率控制方法。
技术介绍
1、视频或动态图像是由一组静止图像组成的,其中的每一幅静止图像称作一个视频帧或图像帧。由图像采集设备(如摄像头)采集后形成的原始视频含有较多的冗余,一般文件较大,会占用较大的存储空间和传输带宽。为减少视频文件的大小,并尽量保留有效信息,视频编码过程中会去除视频中的冗余信息和人眼不敏感的信息。根据不同编码类型,编码后的视频帧一般分为i帧、p帧和b帧。其中i帧去除了视频中的空间冗余和统计冗余,其解码过程不依赖其他的帧,可独立解码,压缩率较低。p帧和b帧去除了视频中的空间冗余、时间冗余和统计冗余,其解码过程依赖于其他的帧,不可独立解码,压缩率较高。而b帧通常由于参考了更多的相邻帧信息,压缩率比p帧更高。在一个编码后的视频序列中,i帧、p帧、b帧通常为穿插排放,并根据不同的应用场景,其各自数量及顺序都有所不同。
2、在编码后的视频序列中,不同编码类型的视频帧(即i帧、p帧、b帧)有着不同的压缩率。并且由于每一视频帧的内容不同,其各自包含的冗余不同,即便相同类型的视频帧之间压缩率也各不相同。这就造成在一个视频序列中,每一视频帧的大小各不相同。
3、视频在采集和播放过程中,通常每一视频帧占用相同的播放时间,相邻视频帧之间的不同的帧大小就造成了视频的瞬时码率上下波动。为解决这个问题,通常在发送方和接收方设置一定容量的缓冲区(缓存
4、常见的视频编码的码率控制方法以码率分配和码率控制为基本过程,其中码率分配又分为按gop(group of pictures,图像组)分配、按视频帧分配、按图像块分配三个过程,但都没有参考hrd模型进行,故不能保证与hrd模型的一致性。码率控制分为视频帧级码率控制和图像块级码率控制两个级别。视频帧级码率控制只在每个视频帧编码完成后根据实际输出比特数调整码率控制参数并应用到下一视频帧。图像块级码率控制(即视频帧内码率控制)是在视频帧级码率控制的基础上,每完成视频帧内一部分区域编码(如一个或几个图像块),即根据实际输出比特率调整码率控制参数并应用到该视频帧的后续区域的编码中,反馈时间更短,调节更及时。
技术实现思路
1、本申请所要解决的技术问题是如何使视频编码过程中的码率控制方法符合hrd要求。
2、为解决上述技术问题,本申请提出了一种基于hrd模型的cpb状态的分段控制方法,包括如下步骤。步骤s1:设置假定参考解码器hrd模型的输入参数,实时记录编码图像缓冲区cpb状态。步骤s2:在每一视频帧开始编码前,根据当前的cpb状态,计算出避免cpb缓冲区发生上下溢的该视频帧的编码尺寸的取值范围的下限值f_min_size和上限值f_max_size。步骤s3:根据当前cpb状态确定当前视频帧的拉格朗日乘数的调节因子,所述当前拉格朗日乘数的调节因子对码率控制算法中当前视频帧的拉格朗日乘数进行调整,以使码率控制模块对当前视频帧的实际编码比特数落在当前视频帧的编码尺寸的避免cpb缓冲区发生上下溢的取值范围[f_min_size,f_max_size]内。
3、进一步地,所述步骤s1中,所述hrd模型的输入参数包括:视频的目标码率bitrate、视频的帧率fps、cpb缓冲区的容量cpb_capacity、cpb缓冲区中的初始数据量initial_cpb_size。
4、进一步地,所述步骤s1中,根据cpb缓冲区中的实际数据量与cpb缓冲区的容量的比值,将cpb缓冲区的使用情况划分为n个区段,n为≥3的整数,cpb缓冲区的每个区段就是一个cpb状态;将cpb状态为中间值称为cpb正常状态,将cpb状态小于中间值称为cpb偏低状态,将cpb状态大于中间值称为cpb偏高状态,将cpb状态为最小值称为cpb最低状态,将cpb状态为最大值称为cpb最高状态。
5、进一步地,所述步骤s2中,第n视频帧的编码尺寸f(n)是指第n视频帧图像编码后所占用的目标编码比特数;第n视频帧的编码尺寸f(n)避免cpb缓冲区发生上下溢的取值范围[f_min_size,f_max_size]要保证第n视频帧数据从cpb缓冲区中被取走前cpb缓冲区中的数据量缓冲区的容量cpb_capacity,即cpb缓冲区不发生上溢;同时还要保证第n视频帧数据从cpb缓冲区中被取走后cpb缓冲区中的数据量即cpb缓冲区不发生下溢。
6、进一步地,所述步骤s2中,其中max[]函数表示取最大值;
7、可替换地,所述步骤s2中,其中a是一个控制余量,0≤a≤1;
8、进一步地,所述步骤s3中,如果当前cpb状态为cpb正常状态,则当前视频帧的拉格朗日乘数的调节因子为1。如果当前cpb状态为cpb偏高状态,则当前视频帧的拉格朗日乘数的调节因子小于1且大于0;并且当前cpb偏高状态越严重,当前视频帧的拉格朗日乘数的调节因子越小;当前cpb偏高状态越轻微,当前视频帧的拉格朗日乘数的调节因子越大。如果当前cpb状态为cpb偏低状态,则当前视频帧的拉格朗日乘数的调节因子大于1;并且当前cpb偏低状态越严重,当前视频帧的拉格朗日乘数的调节因子越大;当前cpb偏低状态越轻微,当前视频帧的拉格朗日乘数的调节因子越小。
9、进一步地,所述步骤s3中,将当前视频帧的拉格朗日乘数与当前视频帧的拉格朗日乘数的调节因子相乘后,作为当前视频帧的拉格朗日乘数的新取值。
10、进一步地,所述步骤s3中,如果当前cpb状态为cpb正常状态,当前视频帧的拉格朗日乘数的调节因子不起作用。如果当前cpb状态为cpb偏低状态,当前视频帧的拉格朗日乘数的调节因子使当前视频帧的拉格朗日乘数的新取值变大,这样就使编码后的该视频帧的实际编码比特数变小,也就使得cpb缓冲区中的实际数据量移除速度变慢,即产生从cpb偏低状态向cpb正常状态的变化趋势;并且当前cpb偏低状态越严重,当本文档来自技高网...
【技术保护点】
1.一种基于HRD模型的CPB状态的分段控制方法,其特征是,包括如下步骤;
2.根据权利要求1所述的基于HRD模型的CPB状态的分段控制方法,其特征是,所述步骤S1中,所述HRD模型的输入参数包括:视频的目标码率bitrate、视频的帧率fps、CPB缓冲区的容量cpb_capacity、CPB缓冲区中的初始数据量initial_cpb_size。
3.根据权利要求1所述的基于HRD模型的CPB状态的分段控制方法,其特征是,所述步骤S1中,根据CPB缓冲区中的实际数据量与CPB缓冲区的容量的比值,将CPB缓冲区的使用情况划分为N个区段,N为≥3的整数,CPB缓冲区的每个区段就是一个CPB状态;将CPB状态为中间值称为CPB正常状态,将CPB状态小于中间值称为CPB偏低状态,将CPB状态大于中间值称为CPB偏高状态,将CPB状态为最小值称为CPB最低状态,将CPB状态为最大值称为CPB最高状态。
4.根据权利要求2所述的基于HRD模型的CPB状态的分段控制方法,其特征是,所述步骤S2中,第n视频帧的编码尺寸f(n)是指第n视频帧图像编码后所占用的
5.根据权利要求4所述的基于HRD模型的CPB状态的分段控制方法,其特征是,所述步骤S2中,其中MAX[]函数表示取最大值;
6.根据权利要求4所述的基于HRD模型的CPB状态的分段控制方法,其特征是,所述步骤S2中,其中a是一个控制余量,0≤a≤1;
7.根据权利要求3所述的基于HRD模型的CPB状态的分段控制方法,其特征是,所述步骤S3中,如果当前CPB状态为CPB正常状态,则当前视频帧的拉格朗日乘数的调节因子为1;
8.根据权利要求7所述的基于HRD模型的CPB状态的分段控制方法,其特征是,所述步骤S3中,将当前视频帧的拉格朗日乘数与当前视频帧的拉格朗日乘数的调节因子相乘后,作为当前视频帧的拉格朗日乘数的新取值。
9.根据权利要求1所述的基于HRD模型的CPB状态的分段控制方法,其特征是,所述步骤S3中,如果当前CPB状态为CPB正常状态,当前视频帧的拉格朗日乘数的调节因子不起作用;
10.根据权利要求1所述的基于HRD模型的CPB状态的分段控制方法,其特征是,对视频的最开头的一个或多个视频帧编码时省略步骤S2,并且将步骤S3改为根据CPB缓冲区中的初始数据量initial_cpb_size和CPB缓冲区的容量cpb_capacity的比值将所述视频的最开头的一个或多个视频帧的拉格朗日乘数的调节因子设置为固定值。
11.根据权利要求1所述的基于HRD模型的CPB状态的分段控制方法,其特征是,所述步骤S3中,如果当前CPB状态为CPB最低状态,则当前视频帧的拉格朗日乘数的调节因子为最大值,从而使当前视频帧的拉格朗日乘数的新取值最大化,进而使得CPB缓冲区中的实际数据量以最快速度增加;
12.根据权利要求1所述的基于HRD模型的CPB状态的分段控制方法,其特征是,所述步骤S3中,计算当前编码的视频帧与下一个I帧的距离,若距离下一个I帧小于5帧且当前CPB状态为CPB偏低状态,则应用更低档的CPB控制策略;如果当前CPB为最低状态则保持不变。
13.根据权利要求1所述的基于HRD模型的CPB状态的分段控制方法,其特征是,所述步骤S3中,当整个视频帧编码完成后,若整个视频帧的实际编码比特数仍小于当前视频帧的目标编码比特数的取值范围的最小值f_min_size,则视频编码器插入相应的填充数据,使当前视频帧在填充后的最终实际编码比特数≥f_min_size。
14.根据权利要求1所述的基于HRD模型的CPB状态的分段控制方法,其特征是,将拉格朗日乘数改为量化步长Q,将当前视频帧的量化步长与当前视频帧的量化步长的调节因子相加后,作为当前视频帧的量化步长的新取值。
15.一种基于HRD模型的CPB状态的分段控制装置,其特征是,包括初始化模块、计算模块、调整模块;
...【技术特征摘要】
1.一种基于hrd模型的cpb状态的分段控制方法,其特征是,包括如下步骤;
2.根据权利要求1所述的基于hrd模型的cpb状态的分段控制方法,其特征是,所述步骤s1中,所述hrd模型的输入参数包括:视频的目标码率bitrate、视频的帧率fps、cpb缓冲区的容量cpb_capacity、cpb缓冲区中的初始数据量initial_cpb_size。
3.根据权利要求1所述的基于hrd模型的cpb状态的分段控制方法,其特征是,所述步骤s1中,根据cpb缓冲区中的实际数据量与cpb缓冲区的容量的比值,将cpb缓冲区的使用情况划分为n个区段,n为≥3的整数,cpb缓冲区的每个区段就是一个cpb状态;将cpb状态为中间值称为cpb正常状态,将cpb状态小于中间值称为cpb偏低状态,将cpb状态大于中间值称为cpb偏高状态,将cpb状态为最小值称为cpb最低状态,将cpb状态为最大值称为cpb最高状态。
4.根据权利要求2所述的基于hrd模型的cpb状态的分段控制方法,其特征是,所述步骤s2中,第n视频帧的编码尺寸f(n)是指第n视频帧图像编码后所占用的目标编码比特数;第n视频帧的编码尺寸f(n)避免cpb缓冲区发生上下溢的取值范围[f_min_size,f_max_size]要保证第n视频帧数据从cpb缓冲区中被取走前cpb缓冲区中的数据量缓冲区的容量cpb_capacity,即cpb缓冲区不发生上溢;同时还要保证第n视频帧数据从cpb缓冲区中被取走后cpb缓冲区中的数据量即cpb缓冲区不发生下溢。
5.根据权利要求4所述的基于hrd模型的cpb状态的分段控制方法,其特征是,所述步骤s2中,其中max[]函数表示取最大值;
6.根据权利要求4所述的基于hrd模型的cpb状态的分段控制方法,其特征是,所述步骤s2中,其中a是一个控制余量,0≤a≤1;
7.根据权利要求3所述的基于hrd模型的cpb状态的分段控制方法,其特征是,所述步骤s3中,如果当前cpb状态为cpb正常状态,则当前视频帧的拉格朗日乘数的调节因子为1;
8.根据权利要求7所述的基于hrd模型的cpb状态的分段控制方法...
【专利技术属性】
技术研发人员:刘国正,
申请(专利权)人:翱捷科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。