CN105323578B - 统计复用方法及装置 - Google Patents
统计复用方法及装置 Download PDFInfo
- Publication number
- CN105323578B CN105323578B CN201410303048.XA CN201410303048A CN105323578B CN 105323578 B CN105323578 B CN 105323578B CN 201410303048 A CN201410303048 A CN 201410303048A CN 105323578 B CN105323578 B CN 105323578B
- Authority
- CN
- China
- Prior art keywords
- frame
- coding
- per
- bit number
- image complexity
- 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
Abstract
本发明公开了一种统计复用方法及装置,其中统计复用方法包括:对多路视频流中各路视频流编码,得到对应的多路ES,其中,多路ES的总码率等于TS码率;将多路ES缓存到缓存区;当缓存区中待输出ES流的总码率等于TS码率时,对待输出ES进行统计复用,得到码率恒定的TS。通过本发明,实现了在不填充空包的情况下得到码率恒定的TS,提高了视频编码带宽利用的效率。
Description
技术领域
本发明涉及视频处理领域,具体而言,涉及一种统计复用方法及装置。
背景技术
统计复用技术是指在固定带宽的信道中进行多路信号传输时,利用对各路信号的特性进行分析,动态地为各路信号分配所能使用的带宽,达到充分利用信道资源的目的。
数字电视信号在传输过程中也通常使用固定带宽的信道,目前国内数字电视网络主要采用64QAM调制的38Mbps带宽信道进行传输,其带宽中由一个传输流(TransportStream,简称为TS或TS流)占用,这个TS流中包含多路节目,TS流的码率主要被多路视频流占用,其他的多路音频流等占较少比例。在保证传输视频流的质量的前提下,可以尽量地降低视频码率能提高相同带宽下传输的节目流路数,但是较低的视频码率将不能保证视频图像有良好的广播级质量。
单路独立的视频流会有一定的码率波动,多路独立的视频流复用到同一个传输流中时可能会造成更大的码率波动,导致传输流码率波动或解码时间戳(DTS)指标变差。MPEG等音频是恒定码率(CBR)的,被复用在TS流中时不会造成码率波动,但AC-3等音频格式是可变码率(VBR)的,在TS流中会造成码率波动。
另外,不同的视频内容会导致相同编码质量下压缩率的不同,比如剧烈运动的场景需要较高的码率才能编得清晰,而静止的简单画面仅需要较低的码率即可以达到较高的质量。因此,当一个恒定码率(CBR)的TS流中包含多路视频时,若每路视频都采用相同的码率进行编码,其中较为静止的视频内容将编得质量过高,而人眼对达到一定的质量水平之上的视频间的质量差异并不敏感,这就造成了带宽的浪费,同时较为复杂、剧烈运动的视频内容将达不到预期的质量,造成观看感受的下降。
因此,统计复用通过准确地分配码率给各路视频流,在使各路视频流之间的质量水平保持近似,不会出现质量明显较差的个别路视频流;同时,通过统筹各音视频流的瞬时码率,使瞬时总有效码率保持平稳,能够避免TS流系统码率溢出、优化DTS指标、降低TS流空包率。
统计复用方法主要分为开环和闭环两种。开环统计复用器中,复用模块会实时根据各路视频流的平均码率和顺是码率来寻求最佳的复用带宽分配,但其分配结果不会反馈给视频编码器,即统计复用器只能被动地接收视频流进行复用处理。开环统计复用器又分直接统计复用和再编码的统计复用,其中直接统计复用是对编码器输出的视频流直接进行复用,当输出视频流的瞬时码率特性不能满足复用要求时则只能采取降低其他方面指标的方法进行弥补;再编码的统计复用器接收到编码器输出的视频流后会对这些视频流重新进行一次解码和编码,以使得视频码率能更加符合统计复用的要求,这样虽然复用指标得到了保证,但视频内容因为经过一次额外的转码而被引入了额外的质量损失。闭环统计复用器是根据统计复用器的统计信息对各路视频编码器进行反馈控制,从而实时地调整各路编码器的输出码率,使各路编码器输出的视频流直接符合统计复用的要求,这就可以保证在不引入额外的编码质量损失的情况下达到合理地实时分配码率的目的。闭环统计复用器可以达到比开环的更高的视频质量,但开环的统计复用器一般可以作为独立设备存在,而闭环的统计复用器必须与编码设备共同设计、紧密结合使用。
相关技术中,为了形成恒定码率的TS,需要进行空包填充,从而浪费传输带宽。另外,相关技术中,也不能根据视频流的内容特性动态分配编码参数。
发明内容
针对相关技术中统计复用时进行空包填充浪费带宽的问题,本发明提供了一种统计复用方法及装置,以至少解决上述问题。
根据本发明的一个方面,提供了一种统计复用方法,包括:对多路视频流中各路视频流编码,得到对应的多路基本流ES,其中,所述多路ES的总码率等于传输流TS码率;将所述多路ES缓存到缓存区;当所述缓存区中待输出ES流的总码率等于所述TS码率时,对所述待输出ES进行统计复用,得到码率恒定的TS。
优选地,将所述多路ES缓存到缓存区,包括:按照先进先出方式将所述多路ES缓存到所述缓存区。
优选地,以一帧为单位对所述多路视频源编码,对每帧编码包括:分析所述多路视频流中包含当前帧在内的多个帧,得到所述多个帧中每帧的图像复杂度;根据所述每帧的图像复杂度和所述TS码率,为所述当前帧分配编码参数;根据所述编码参数对所述当前帧进行编码。
优选地,上述方法还包括:统计所述缓存区的缓存状态;根据所述缓存状态调整所述编码参数,以使所述缓存区的使用量保持在预定范围。
优选地,上述方法还包括:统计所述统计复用所产生的每个所述ES的输出延迟;根据所述输出延迟调整编码参数,以使所述输出延迟低于预定水平。
优选地,所述编码参数包括以下至少之一:每帧编码的码率、每帧编码的比特数、量化参数QP值。
优选地,对多路视频流中各路视频流编码,包括:将所述多路视频流待编码的帧分为多个预定帧组,其中,每个预定帧组包含每路视频流的帧;根据每个预定帧组内的各帧的图像复杂度和所述TS码率,确定对应预定帧组内各帧的编码参数;根据所述各帧的编码参数进行编码。
优选地,所述编码参数包括编码的码率;其中,一个预定帧组内一路视频流对应一个码率,一个预定帧组内各路视频流的总码率等于所述TS码率。
优选地,每路视频流在预定帧组内的图像复杂度越大,对应在预定帧组内的码率越大。
优选地,所述编码参数包括每帧编码的比特数;每帧在预定帧组内的图像复杂度越大,对应的每帧编码的比特数越大。
优选地,上述方法还包括:根据所述缓存区的缓存状态调整每帧编码的比特数,其中,当所述缓存区的填充量超过第一预定范围时,降低每帧编码的比特数;当所述填充量低于或等于第二预定范围时,提高每帧编码的比特数。
优选地,上述方法还包括:根据所述每路ES流的传输延迟调整每帧编码的比特数,其中,当所述传输延迟大于第一预定值时,提高每帧编码的比特数;当所述传输延迟小于第二预定值时,降低每帧编码的比特数。
优选地,所述编码参数包括QP值;根据各个预定帧组内的各帧的图像复杂度和所述TS码率,确定各个预定帧组内对应各帧的QP值,包括:根据所述各帧的图像复杂度确定每帧编码的缩放系数,其中每帧编码的缩放系数,与对应预定帧组的图像复杂度成正比;根据缩放系数与QP值的对应关系确定每帧编码的QP值。
优选地,上述方法还包括:根据前一帧编码的目标比特数和所述前一帧编码的实际比特数调整当前帧编码的缩放系数,其中,当所述目标比特数和所述实际比特数之比增大时,提高所述当前帧的缩放系数;当所述目标比特数和所述实际比特数之比降低时,降低所述当前帧的缩放系数;其中,所述实际比特数由对所述目标比特数调整所得。
优选地,分析所述多路视频流中包含当前帧在内的多个帧,得到所述多个帧中每帧数据的图像复杂度,包括:确定所述多个帧中每帧的帧类型;根据所述多个帧中每帧的帧类型确定对应帧的图像复杂度。16.根据权利要求15所述的方法,其特征在于,所述帧类型包括:I帧、P帧和B帧;根据所述多个帧中每帧的帧类型确定对应帧的图像复杂度,包括以下至少之一:
如果当前帧为I帧,进行与编码相同的帧内预测,累加当前帧所有块的第一绝对差值和SAD,将累加得到的SAD作为当前帧的图像复杂度;
如果当前帧为P帧,以当前帧的前向帧中最近的非B帧为参考帧进行运动搜索,累加当前帧所有块的SAD,将累加得到的SAD作为当前帧的图像复杂度;
如果当前帧为B帧,在当前帧后续输入的帧为P帧或B帧时,以所述后续输入的帧为后向参考帧,前向最邻近的非B帧为前向参考帧,进行双向运动搜索,累加当前帧所有块的SAD,将累加得到的SAD作为当前帧的图像复杂度。
根据本发明的另一个方面,提供了一种统计复用装置,包括:编码模块,用于对多路视频流中各路视频流编码,得到对应的多路基本流ES,其中,所述多路ES的总码率等于传输流TS码率;缓存模块,用于将所述多路ES缓存到缓存区;复用模块,用于当所述缓存区中待输出ES流的总码率等于所述TS码率时,对所述待输出ES进行统计复用,得到码率恒定的TS。
优选地,所述缓存模块,用于按照先进先出方式将所述多路ES缓存到所述缓存区。
优选地,所述编码模块,用于以一帧为单位对所述多路视频源编码,所述编码模块包括:分析单元,用于分析所述多路视频流中包含当前帧在内的多个帧,得到所述多个帧中每帧的图像复杂度;分配单元,用于根据所述每帧的图像复杂度和所述TS码率,为所述当前帧分配编码参数;编码单元,用于根据所述编码参数对所述当前帧进行编码。
优选地,所述编码模块还包括:第一统计单元,用于统计所述缓存区的缓存状态;第一调整单元,用于根据所述缓存状态调整所述编码参数,以使所述缓存区的使用量保持在预定范围。
优选地,所述编码模块还包括:第二统计单元,用于统计所述统计复用所产生的每个所述ES的输出延迟;第二调整单元,用于根据所述输出延迟调整编码参数,以使所述输出延迟低于预定水平。
优选地,所述编码模块包括:分组单元,用于将所述多路视频流待编码的帧分为多个预定帧组,其中,每个预定帧组包含每路视频流的帧;确定单元,用于根据每个预定帧组内的各帧的图像复杂度和所述TS码率,确定对应预定帧组内各帧的编码参数;编码单元,用于根据所述各帧的编码参数进行编码。
优选地,所述编码参数包括编码的码率;其中,一个预定帧组内一路视频流对应一个码率,一个预定帧组内各路视频流的总码率等于所述TS码率。
优选地,每路视频流在预定帧组内的图像复杂度越大,对应在预定帧组内的码率越大。
优选地,所述编码参数包括每帧编码的比特数;每帧在预定帧组内的图像复杂度越大,对应的每帧编码的比特数越大。
优选地,所述编码模块还包括:第三调整单元,用于根据所述缓存区的缓存状态调整每帧编码的比特数,其中,当所述缓存区的填充量超过第一预定范围时,降低每帧编码的比特数;当所述填充量低于或等于第二预定范围时,提高每帧编码的比特数。
优选地,所述编码模块还包括:第四调整单元,用于根据所述每路ES流的传输延迟调整每帧编码的比特数,其中,当所述传输延迟大于第一预定值时,提高每帧编码的比特数;当所述传输延迟小于第二预定值时,降低每帧编码的比特数。
优选地,所述编码参数包括QP值;所述确定单元,用于根据所述各帧的图像复杂度确定每帧编码的缩放系数,其中每帧编码的缩放系数,与对应预定帧组的图像复杂度成正比;根据缩放系数与QP值的对应关系确定每帧编码的QP值。
优选地,所述编码模块,还包括:第五调整单元,用于根据前一帧编码的目标比特数和所述前一帧编码的实际比特数调整当前帧编码的缩放系数,其中,当所述目标比特数和所述实际比特数之比增大时,提高所述当前帧的缩放系数;当所述目标比特数和所述实际比特数之比降低时,降低所述当前帧的缩放系数;其中,所述实际比特数由对所述目标比特数调整所得。
优选地,所述分析单元,用于确定所述多个帧中每帧的帧类型;根据所述多个帧中每帧的帧类型确定对应帧的图像复杂度。
通过本发明,将多路视频流编码成码率为TS码率的多路ES,将该多路ES流进行缓存,在待输出的ES流的总码率等于TS码率时,进行统计复用得到码率恒定的TS,实现了在不填充空包的情况下得到码率恒定的TS,提高了视频编码带宽利用的效率。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的统计复用方法的流程图;
图2是根据本发明实施例的统计复用装置的结构框图;
图3是根据本发明实施例优选的带闭环反馈的多路音视频编码系统的示意图;以及
图4是根据本发明实施例优选的TS流的总缓冲区的示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
在以下实施例中,下述的方法可以在一个设备中完成,也可以由多个设备协同完成。以下实施例中的装置、模块及单元,可以通过计算机程序实现,其可以在一台设备中,也可以分布于多个设备中,执行本发明实施例的方法。
本发明实施例中的设备,包括各种类型的设备,例如服务器等。该设备可以包括一个或多个处理器、存储介质,存储介质可以存储实现本发明实例的方法的计算机程序单元,处理器可以执行该计算机程序单元。
图1是根据本发明实施例的统计复用方法的流程图,如图1所示,该方法包括步骤S102至步骤S106。
步骤S102,对多路视频流中各路视频流编码,得到对应的多路基本流(ElementaryStreams,简称为ES),其中,上述多路ES的总码率等于TS码率。
TS码率统计复用的总码率,该码率为一个设置的恒定值。
步骤S104,将上述多路ES缓存到缓存区。
步骤S106,当缓存区中待输出ES流的总码率等于TS码率时,对该待输出ES进行统计复用,得到码率恒定的TS。
各路ES流在时间上的先后顺序,导致在一个时刻上ES流不完整,从而其总码率不等于TS码率,如果直接对ES流进行统计复用,为了保证TS码率恒定,则需要填充空包。在本发明实施例中,将多路ES缓存到缓存区中,当缓存区中当前待输出的ES流的总码率等于TS码率时,进行统计复用,从而不用填充空包。
通过本发明实施例,将多路视频流编码成码率为TS码率的多路ES,将该多路ES流进行缓存,在待输出的ES流的总码率等于TS码率时,进行统计复用得到码率恒定的TS,实现了在不填充空包的情况下得到码率恒定的TS,提高了视频编码带宽利用的效率。
在本发明实施例的一个实施方式中,可以按照先进先出方式将上述多路ES缓存到缓存区,但是不限于此。该缓存区可以是一个先进先出的队列,各路视频流对应的ES分别进入到一个队列。
每路视频流或每路ES的各个帧存在时间上的先后顺序,统计复用时,按照每路ES流中各帧的时间先后顺序,时间在前的先进行统计复用,一个TS中包含各路视频流的时间在前的一个帧。
相关技术中,无法根据各路视频流的视频内容特性,动态分配视频编码参数,从而无法保证同一路视频的质量的一致性。在本发明实施例的一个实施方式中,可以依据各路视频流的内容特性,动态分配视频编码参数。
在本发明实施例的一个优选实施方式中,可以以一帧为单位对多路视频源编码,对每帧编码可以包括步骤A至步骤C。
步骤A,分析多路视频流中包含当前帧在内的多个帧,得到多个帧中每帧的图像复杂度。
步骤B,根据上述每帧的图像复杂度和TS码率,为当前帧分配编码参数。
在本发明实施例的一个实施方式中,不同路视频流中,在时间上处于相同出现顺序的帧的总码率等于TS码率,时间上处于不同出现顺序的帧的码率可以不同。在这里,相当于以帧为单位动态分配码率。当然,也可以在多个帧内,同一路视频流的帧的码率相同。
优选地,对于图像复杂度越高的帧,对应的码率越大。或者,在一定范围内一路视频的帧的图像复杂度越高,对应在该范围内该路视频流的码率越大。同时,总码率等于TS码率。
步骤C,根据上述编码参数对当前帧进行编码。
通过该优选实施方式,根据待编码的多个帧的视频内容特性分配编码参数,可以准确地分配各路视频的编码参数,使各路视频流的质量保持导致相同。
在本发明实施例的一个实施方式中,还可以统计缓存区的缓存状态,根据缓存状态调整上述编码参数,以使缓存区的使用量保持在预定范围。例如,当缓存区较满时,可以降低每帧编码的比特数,当缓存区较空时,可以提高每帧编码的比特数。
因为ES流的变码率特性与定码率传输之间的矛盾,每一帧数据的ES流从进入缓冲区到发送的延迟时间是持续变化的,成为发送延迟。在解码中,为了保持连续稳定地显示解码图像,需要缓存一定时间的码流之后再进行解码和显示,其缓存的时间要大于发送端发送延迟的最大值。因此,约束每个ES流的发送延迟始终小于一个预设的最大值,对于解码来说是必要的。
在本发明实施例的一个实施方式中,还可以统计上述统计复用所产生的每个ES的输出延迟,根据该输出延迟调整编码参数,以使输出延迟低于预定水平。例如,当输出延迟较大时,可以提高每帧编码的比特数,当输出延迟较小时,可以降低每帧编码的比特数。
上述编码参数可以包括但不限于以下至少之一:每帧编码的码率、每帧编码的比特数、量化参数(Quantization Parameter,简称为QP)值。
QP值可以代表编码中在量化时使用的量化步长,对应一定的量化误差水平及编码质量损失水平,因此可以用QP值的大小粗略地代表编码质量。
在本发明实施例的一个优选实施方式中,可以根据各个预定帧组内的各帧的图像复杂度和TS码率,确定各个预定帧组内对应各帧的QP值。优选地,根据各帧的图像复杂度确定每帧编码的缩放系数,其中每帧编码的缩放系数,与对应预定帧组的图像复杂度成正比;根据缩放系数与QP值的对应关系确定每帧编码的QP值。
优选地,还可以根据前一帧编码的目标比特数和前一帧编码的实际比特数调整当前帧编码的缩放系数,其中,当前一帧编码的目标比特数和前一帧编码的实际比特数之比增大时,可以提高当前帧的缩放系数;当前一帧编码的目标比特数和前一帧编码的实际比特数之比降低时,可以降低当前帧的缩放系数。上述的实际比特数由对目标比特数调整所得,目标比特数为根据图像复杂度确定的每帧编码的比特数,实际比特数为根据上述方法调整后每帧编码的比特数。
在本发明实施例的一个实施方式中,对多路视频流中各路视频流编码可以包括步骤a至步骤c。
步骤a,将多路视频流待编码的帧分为多个预定帧组,其中,每个预定帧组包含每路视频流的帧。
各路视频流按照先后顺序进入,可以按照进入的时间先后顺序分组。例如,可以按照一定周期,在周期内待编码的各路视频流的帧作为一个分组,下一周期内的各路视频流作为一个分组,依此类推。
步骤b,根据每个预定帧组内的各帧的图像复杂度和TS码率,确定对应预定帧组内各帧的编码参数。
步骤c,根据上述各帧的编码参数进行编码。
在本发明实施例的一个优选实施方式中,上述编码参数包括编码的码率,其中,一个预定帧组内一路视频流对应一个码率,一个预定帧组内各路视频流的总码率等于TS码率。对一个预定组而言,该预定组内的同一路视频流的各帧的码率相同。但是,并不限于此。
在本发明实施例中,还可以以帧为单位分配码率,例如,对于每路视频流当前处理的帧,对于各个帧分配码率,使各帧的总码率为TS码率。
在本发明实施例的一个优选实施方式中,每路视频流在预定帧组内的图像复杂度越大,对应在预定帧组内的码率越大。通过该优选实施方式,对于在一个预定帧组内图像复杂度大的视频流,分配大的码率,可以保证图像的清晰度,对于图像复杂度小的视频流,分配小的码率,可以不影响视觉效果,同时节约带宽资源。
并且,通过本发明实施例的上述优选实施方式,以待编码的帧的图像复杂度对码率进行分配,可以结合各路视频源的动态变化,更为准确地动态分配码率,保证同一路视频流的质量的一致性。
在本发明实施例的一个优选实施方式中,编码参数包括每帧编码的比特数,每帧在预定帧组内的图像复杂度越大,对应的每帧编码的比特数越大。通过该优选实施方式,为图像复杂度大的帧分配较大的比特数,可以保证视频质量,不影响视频画面的清晰度。对于图像复杂度较小的帧分配较小的比特数,比特数较小的编码也不会产生人眼可以识别的清晰度差别,可以在不影响清晰度的情况下,节约编码资源。
在本发明实施例的一个优选实施方式中,还可以根据缓存区的缓存状态调整每帧编码的比特数,其中,当缓存区的填充量超过第一预定范围时,可以降低每帧编码的比特数;当填充量低于或等于第二预定范围时,可以提高每帧编码的比特数。
在本发明实施例的一个优选实施方式中,还可以根据每路ES流的传输延迟调整每帧编码的比特数,其中,当传输延迟大于第一预定值时,可以提高每帧编码的比特数;当传输延迟小于第二预定值时,可以降低每帧编码的比特数。
上述优选实施方式可以结合,同时根据传输延迟和缓存状态调整每帧编码的比特数,达到既不影响缓存区填充量又不影响传输延迟的效果。
通过上述优选实施方式,对缓存区的缓存状态、每路ES的传输延迟进行统计和反馈,有效地调整编码参数,可以提高编码的准确度。
在本发明实施例的一个实施方式中,编码参数包括QP值;根据各个预定帧组内的各帧的图像复杂度和TS码率,确定各个预定帧组内对应各帧的QP值,可以包括:根据各帧的图像复杂度确定每帧编码的缩放系数,其中每帧编码的缩放系数,与对应预定帧组的图像复杂度成正比;根据缩放系数与QP值的对应关系确定每帧编码的QP值。
优选地,还可以根据前一帧编码的目标比特数和前一帧编码的实际比特数调整当前帧编码的缩放系数,其中,当前一帧编码的目标比特数和前一帧编码的实际比特数之比增大时,可以提高当前帧的缩放系数;当前一帧编码的目标比特数和前一帧编码的实际比特数之比降低时,可以降低当前帧的缩放系数。上述的实际比特数由对目标比特数调整所得,目标比特数为根据图像复杂度确定的每帧编码的比特数,实际比特数为根据上述方法调整后每帧编码的比特数。
上述的图像复杂度,可以反应视频画面的显示粒度,例如对于运动较大的图像,可以高的显示粒度,而对于运动较小的图像,不需要大的显示粒度,显示粒度大人眼也无法识别。但是,并不限于此。
在本发明实施例的一个实施方式中,可以根据每帧的帧类型确定每帧的图像复杂度,可以包括:确定多个帧中每帧的帧类型;根据多个帧中每帧的帧类型确定对应帧的图像复杂度。
优选地,帧类型包括:I帧、P帧和B帧。I帧为关键帧,其他帧的解码依赖于I帧,I帧的图像数据也最为重要,更加关键,因此可以提高I帧的编码质量。B帧的重要程度最低,可以降低B帧的编码质量,同时不影响视频显示效果。
根据多个帧中每帧的帧类型确定对应帧的图像复杂度,包括以下至少之一:
(1)如果当前帧为I帧,进行与编码相同的帧内预测,累加当前帧所有块的第一绝对差值和SAD,将累加得到的绝对差值和(Sum of Absolute Difference,SAD)作为当前帧的图像复杂度。
(2)如果当前帧为P帧,以当前帧的前向帧中最近的非B帧为参考帧进行运动搜索,累加当前帧所有块的SAD,将累加得到的SAD作为当前帧的图像复杂度。
(3)如果当前帧为B帧,在当前帧后续输入的帧为P帧或B帧时,以后续输入的帧为后向参考帧,前向最邻近的非B帧为前向参考帧,进行双向运动搜索,累加当前帧所有块的SAD,将累加得到的SAD作为当前帧的图像复杂度。
图2是根据本发明实施例的统计复用装置的结构框图,如图2所示,该装置包括:编码模块10、缓存模块20和复用模块30。其中,编码模块10,用于对多路视频流中各路视频流编码,得到对应的多路ES,其中,多路ES的总码率等于TS码率;缓存模块20,用于将上述多路ES缓存到缓存区;复用模块30,用于当缓存区中待输出ES流的总码率等于TS码率时,对该待输出ES进行统计复用,得到码率恒定的TS。
各路ES流在时间上的先后顺序,导致在一个时刻上ES流不完整,从而其总码率不等于TS码率,如果直接对ES流进行统计复用,为了保证TS码率恒定,则需要填充空包。在本发明实施例中,将多路ES缓存到缓存区中,当缓存区中当前待输出的ES流的总码率等于TS码率时,进行统计复用,从而不用填充空包。
通过本发明实施例,将多路视频流编码成码率为TS码率的多路ES,将该多路ES流进行缓存,在待输出的ES流的总码率等于TS码率时,进行统计复用得到码率恒定的TS,实现了在不填充空包的情况下得到码率恒定的TS,提高了视频编码带宽利用的效率。
在本发明实施例的一个实施方式中,缓存模块20,可以用于按照先进先出方式将上述多路ES缓存到缓存区。
每路视频流或每路ES的各个帧存在时间上的先后顺序,统计复用时,按照每路ES流中各帧的时间先后顺序,时间在前的先进行统计复用,一个TS中包含各路视频流的时间在前的一个帧。
相关技术中,无法根据各路视频流的视频内容特性,动态分配视频编码参数,从而无法保证同一路视频的质量的一致性。在本发明实施例的一个实施方式中,可以依据各路视频流的内容特性,动态分配视频编码参数。
在本发明实施例的一个优选实施方式中,编码模块10,可以用于以一帧为单位对多路视频源编码,该编码模块10包括:
(1)分析单元,用于分析多路视频流中包含当前帧在内的多个帧,得到多个帧中每帧的图像复杂度。
(2)分配单元,用于根据每帧的图像复杂度和TS码率,为当前帧分配编码参数。
在本发明实施例中,不同路视频流中,在时间上处于相同出现顺序的帧的总码率等于TS码率,时间上处于不同出现顺序的帧的码率可以不同。在这里,相当于以帧为单位动态分配码率。当然,也可以在多个帧内,同一路视频流的帧的码率相同。
优选地,对于图像复杂度越高的帧,对应的码率越大。或者,在一定范围内一路视频的帧的图像复杂度越高,对应在该范围内该路视频流的码率越大。同时,总码率等于TS码率。
(3)编码单元,用于根据上述编码参数对当前帧进行编码。
通过该优选实施方式,根据待编码的多个帧的视频内容特性分配编码参数,可以准确地分配各路视频的编码参数,使各路视频流的质量保持导致相同。
在本发明实施例的一个优选实施方式中,编码模块10还包括:
第一统计单元,用于统计缓存区的缓存状态。
第一调整单元,用于根据缓存状态调整上述编码参数,以使缓存区的使用量保持在预定范围。
在本发明实施例的一个优选实施方式中,编码模块10还包括:
第二统计单元,用于统计上述统计复用所产生的每个ES的输出延迟。
第二调整单元,用于根据上述输出延迟调整编码参数,以使输出延迟低于预定水平。
上述优选实施方式可以结合使用,同时根据缓存状态和输出延迟调整编码参数,达到既保证缓存区使用量又降低输出延迟的目的。
在本发明实施例的一个优选实施方式中,上述编码模块10可以包括:
(1)分组单元,用于将多路视频流待编码的帧分为多个预定帧组,其中,每个预定帧组包含每路视频流的帧。
各路视频流按照先后顺序进入,可以按照进入的时间先后顺序分组。例如,可以按照一定周期,在周期内待编码的各路视频流的帧作为一个分组,下一周期内的各路视频流作为一个分组,依此类推。
(2)确定单元,用于根据每个预定帧组内的各帧的图像复杂度和TS码率,确定对应预定帧组内各帧的编码参数。
(3)编码单元,用于根据各帧的编码参数进行编码。
通过该优选实施方式,对于一定范围内的多路视频流,以该范围内的帧的图像复杂度确定该范围内各路、各帧的编码参数,实现了根据视频流的内容特性动态分配编码参数。
在本发明实施例的一个实施方式中,上述编码参数可以包括编码的码率;其中,一个预定帧组内一路视频流对应一个码率,一个预定帧组内各路视频流的总码率等于所述TS码率。
在本发明实施例的一个优选实施方式中,每路视频流在预定帧组内的图像复杂度越大,对应在预定帧组内的码率越大。其中,每路视频流在预定帧组内的图像复杂度,为该路视频流在预定帧组内各帧的图像复杂度的总和,当然并不限于简单的直接相加。
通过上述优选实施方式,对于一定范围内图像复杂度高的视频流,分配较大的码率,可以保证视频图像的质量,不影响视觉效果,对于该范围内图像复杂度低的视频流,分配较小的码率,可以不影响视频图像的视觉效果,同时提高带宽利用率。
并且,可以通过灵活设置预定帧组的各路视频流的帧的数量,调节动态分配编码参数的精度。上述优选实施方式根据待处理的帧的图像复杂度确定编码参数,与相关技术中通过预测方式确定编码参数相比,更加准确。
在本发明实施例的一个优选实施方式中,上述编码参数可以包括每帧编码的比特数。优选地,每帧在预定帧组内的图像复杂度越大,对应的每帧编码的比特数越大。通过该优选实施方式,
在本发明实施例的一个实施方式中,上述编码模块10还可以包括:第三调整单元,用于根据缓存区的缓存状态调整每帧编码的比特数。优选地,当缓存区的填充量超过第一预定范围时,可以降低每帧编码的比特数;当填充量低于或等于第二预定范围时,可以提高每帧编码的比特数。
在本发明实施例的一个实施方式中,上述编码模块10还可以包括:第四调整单元,用于根据每路ES流的传输延迟调整每帧编码的比特数,其中,当传输延迟大于第一预定值时,可以提高每帧编码的比特数;当传输延迟小于第二预定值时,可以降低每帧编码的比特数。
在本发明实施例中,上述两种实施方式可以结合,同时根据缓存状态和传输延迟调整每帧编码的比特数,达到缓存状态和传输延迟的平衡。
在本发明实施例的一个实施方式中,上述编码参数可以包括QP值;上述确定单元,还用于根据各帧的图像复杂度确定每帧编码的缩放系数,根据缩放系数与QP值的对应关系确定每帧编码的QP值。优选地,每帧编码的缩放系数与对应预定帧组的图像复杂度成正比。
在本发明实施例的一个优选实施方式中,上述编码模块10还可以包括:第五调整单元,用于根据前一帧编码的目标比特数和前一帧编码的实际比特数调整当前帧编码的缩放系数。优选地,当前一帧的目标比特数和前一帧的实际比特数之比增大时,可以提高当前帧的缩放系数;当前一帧的目标比特数和前一帧的实际比特数之比降低时,可以降低当前帧的缩放系数。其中,前一帧的实际比特数由对前一帧的目标比特数调整所得,目标比特数为根据图像复杂度确定的每帧编码的比特数,实际比特数为根据上述方法调整后每帧编码的比特数。
优选地,上述分析单元,可以用于确定多个帧中每帧的帧类型;根据多个帧中每帧的帧类型确定对应帧的图像复杂度。
优选地,帧类型包括:I帧、P帧和B帧。I帧为关键帧,其他帧的解码依赖于I帧,I帧的图像数据也最为重要,更加关键,因此可以提高I帧的编码质量。B帧的重要程度最低,可以降低B帧的编码质量,同时不影响视频显示效果。
根据多个帧中每帧的帧类型确定对应帧的图像复杂度,包括以下至少之一:
(1)如果当前帧为I帧,进行与编码相同的帧内预测,累加当前帧所有块的第一绝对差值和SAD,将累加得到的SAD作为当前帧的图像复杂度。
(2)如果当前帧为P帧,以当前帧的前向帧中最近的非B帧为参考帧进行运动搜索,累加当前帧所有块的SAD,将累加得到的SAD作为当前帧的图像复杂度。
(3)如果当前帧为B帧,在当前帧后续输入的帧为P帧或B帧时,以后续输入的帧为后向参考帧,前向最邻近的非B帧为前向参考帧,进行双向运动搜索,累加当前帧所有块的SAD,将累加得到的SAD作为当前帧的图像复杂度。
本发明实例中的上述装置的模块、单元,可以位于一个设备中,也可以分布在不同的功能设备上,本发明实施例对此不做限定。对于各个模块或单元分布于不同设备的情况,本领域技术人员可以根据实际情况设置各个设备之间的通信方式,在此不赘述。
下面对本发明的一个优选实施例进行描述。
图3是根据本发明实施例优选的带闭环反馈的多路音视频编码系统的示意图,如图3所示,该系统包括预分析器1至n、码率分配器、视频编码器1至n、音频编码器1至n和统计复用器。
其中,预分析器相当于本发明实施例上述的分析单元,可以分析多个帧的图像复杂度。码率分配器,相当于本发明实施例上述的分配单元,可以根据图像复杂度分配编码参数。视频编码器相当于本发明实施例上述的编码单元,可以根据编码参数进行编码。统计复用器相当于缓存模块和复用模块,用于缓存ES流并对ES流进行统计复用。
在该优选实施例中,可以以一帧数据为单位对各路视频进行处理。首先进行预分析,将每一路视频源的分析结果传给码率分配器,由码率分配器确定每一路视频编码器的码率及每一帧编码时的量化参数值等编码参数。各路视频编码器输出的ES及各路音频编码器输出的ES流由统计复用器复用成一路TS,并可以将实时的总缓冲区状态及各路ES流的输出延时情况反馈给码率分配器。
预分析器可以进行粗编码,得到每一帧视频的编码特性的同时,为每一帧确定帧类型,并估算编码比特数与量化参数的关系。预分析器可以提前于视频编码器多分析若干帧数据并将分析结果存储在码率分配器中。
码率分配器可以输出各路视频编码器中每一帧的QP值。因为QP值代表了编码器在量化时使用的量化步长,对应一定的量化误差水平及编码质量损失水平,因此可以用QP值的大小粗略地代表编码质量。
码率分配器可以通过分配码率将各路视频流的编码质量调至基本相同,即是使各路视频编码器的QP基本相同。
码率分配器以各路视频的预分析结果为基础,经过实时缓冲区状态及各路ES流输出延时情况进行微调,分配每一路视频的码率、每一帧的目标比特数、以及每一帧的QP。
统计复用器可以实时将各路音视频ES流接收后进行打包,然后存入一个先进先出型的输出缓冲区,将此输出缓冲区中的数据以恒定的码率输出,形成CBR的TS流进入传输信道。在每完成一小段时间(如40毫秒)的输出后,将实时的总缓冲区填充程度反馈给码率分配器以保证接下来接收到的ES流不会导致总缓冲区上溢或下溢,同时将每一路ES流的输出延时也反馈给码率分配器,以保证不会出现某一路视频的输出延迟过大,同时每一帧ES流的编码比特数也被反馈给码率分配器以提高码率分配的准确度。
下面对上述系统中各个功能模块进行描述。
(1)预分析器
在该优选实施例汇总,预分析流程可以分为三步,分别为图像下采样、帧类型选择、编码复杂度估计。
a,进行图像下采样。
可以将需要被编码的X*Y分辨率的未压缩YUV(“Y”表示明亮度、“U”和“V”表示色度)图像的宽和高各缩小为原来的1/4。这种方式下,可以将输入YUV图像中的4x4的正方形中16个像素变为1个像素,下采样像素的亮度值p为:
其中,p_orgi为输入原始YUV图像中16个像素的亮度值。
b,进行帧类型选择。
帧类型选择可以基于以宽、高各被缩小为输入图像的1/4的图像上进行运动估计,以输入顺序与当前帧相连的之前1帧和之后1帧作为前、后向参考帧,参考帧也使用宽、高各被缩小为输入图像的1/4的图像。然后以8x8块为单位分别进行以前向参考帧为参考帧的运动估计和以后向参考帧为参考帧的运动估计,每个块搜索得到的SAD值最小的位置为运动估计得到的最佳预测位置,然后累加每个块搜索得到最小的SAD,分别得到基于前向参考帧的整帧SAD和及基于后向参考帧的整帧SAD和。其中的计算公式分别为:
其中,SADblock为每个8x8块的SAD值,为当前帧中的下采样亮度,为参考帧中的下采样亮度,为基于前向参考帧时的全帧SAD,为基于后向参考帧时的全帧SAD。
基于此结果选择本帧的帧类型。视频编码中帧类型分为I、P、B三种,其中,I帧中可以全为帧内预测,P帧可以使用前向参考帧进行预测,B帧可以使用前、后向参考帧进行预测。
首先,统计当前帧之前上一个I帧出现的帧序号与当前帧序号的差,若其等于编码器设置的GOP长度,则当前帧为I帧。
否则,若远大于且大于thscene×x×y,其中thscene为场景变换阈值,x、y为输入图像宽、高,说明当前帧与后向参考帧之间不是连续的视频场景,下一帧为I帧,当前帧为P帧。
否则,若远大于且大于thscene×x×y,其中thscene为场景变换阈值,x、y为输入图像宽、高,说明前向参考帧与当前帧之间不是连续的视频场景,下一帧为I帧,当前帧为P帧。
否则,统计当前帧之前的连续出现B帧的帧数n,若n等于编码器允许的最大连续B帧数N,当前帧为P帧。
否则,若小于thb×x×y且小于thb×x×y,当前帧为B帧,否则当前帧为P帧。
c,进行各帧的编码复杂度估计,可以通过基于下采样帧的运动估计和帧内预测完成。
在当前帧为I帧时,可以以8x8块为单位进行与编码器内方式相同的帧内预测,然后累加整帧所有块的SAD值作为本帧的复杂度C。
在当前帧为P帧时,可以以前向帧中最近的非B帧为参考帧,以8x8块为单位进行运动搜索,然后累加整帧所有块的SAD值作为本帧的复杂度C。
在当前帧为B帧时,可以暂不处理直到后续输入的帧被选为P帧或I帧,然后以该帧为后向参考帧,前向最邻近的非B帧为前向参考帧,进行双向的运动搜索,然后累加整帧所有块的SAD值作为本帧的复杂度C。
(2)统计复用器
统计复用器中,除了TS流复用器的PES打包、TS打包、加入PMT表、打PCR、PTS、DTS时间戳等之外,还可以对总缓冲区状态、各路流的输出延迟以及每帧编码比特数进行统计并反馈。
图4是根据本发明实施例优选的TS流的总缓冲区的示意图,如图4所示,各路ES从缓存区进入然后经过统计复用成为码率恒定的TS。
在固定带宽的信道中传输TS流时,TS流的总码率必须是恒定的以匹配信道带宽,即TS流必须是CBR的。各路音视频ES流的瞬时码率是波动的,复用器若总是将收到的ES直接打包成TS输出,则除了加入大量空包进行填充之外不可能保持TS总码率稳定,而这会要求TS总码率应等于各路ES的总码率的瞬间最大值,这是对带宽的极大浪费。
因此,在该优选实施例中,在各路ES流输入和TS流输出之间设置一个缓冲区,该缓冲区足够大,大小可以相当于1~2秒的TS流数据量。各ES流以变码率进入缓冲区,只要保证各ES的总平均码率约等于TS流总码率且总缓冲区足够大,就总可以保证总缓冲区既不出现上溢也不出现下溢。通过这种方式对ES流的波动进行平滑,充分利用TS流的总码率。
当总缓冲区较满时,可以使编码器后续编得ES流偏小,当总缓冲区较空时,可以使编码器后续编得ES流偏大。因此,可以将总缓冲区的实时填充比特数反馈给码率分配器。
除了总缓冲区状态之外,还可以关注每个ES流的发送延迟。因为ES流的变码率特性与定码率传输之间的矛盾,每一帧数据的ES流从进入复用器缓冲区到发送的延迟时间是持续变化的,成为发送延迟。在解码器中,为了保持连续稳定地显示解码图像,解码器需要缓存一定时间的码流之后再进行解码和显示,其缓存的时间要大于发送端发送延迟的最大值。因此,约束每个ES流的发送延迟始终小于一个预设的最大值,对于解码器来说是必要的。因此,每个ES流的发送延迟时间也可以反馈给码率分配器进行控制。
另外,每一路每一帧ES数据的编码比特长度也可以反馈给码率分配器,用于提高码率分配的准确度。
(3)码率分配器
码率分配器可以通过为每一帧设定QP,一方面使各路编码输出的码流质量大致相同,另一方面使实时码率符合复用器输出总缓冲区的要求,在不使用填充空包的情况下充分利用TS流的总码率。
首先对每一路的码率进行分配,
其中,bitratei为第i路的分配码率,bitrateTS为TS流总码率,fwd_len为预分析器已提前分析好的帧数,为第i路视频源中提前分析好并存储与码率分配器中的第j帧的复杂度,n为视频源路数。
然后计算每一路中待编码的当前帧所应分配的比特数,当前帧为存储于码率分配器中已完成预分析但尚未进入编码器的第一帧,其帧序号为0,其初始化目标比特数为:
其中fpsi为第i路视频的帧率,为当前帧的复杂度。
然后,预测当本帧视频的ES流传入总缓冲区之后,总缓冲区的填充比特数:
其中fillnext为本帧视频ES流传入总缓冲区之后的总缓冲区填充状态,fillcur为统计复用器反馈的当前总缓冲区填充状态。
然后,根据fillnext对进行修正,方法如下:
若fillnext>0.9×sizebuf,其中sizebuf为总缓冲区的总比特数,则修正每帧的目标比特数为:
否则,若fillnext<0.1×sizebuf,则修正每帧的目标比特数为:
否则,
然后,设定每路视频ES流的发送延迟的最大值为smax秒,smax的典型值为0.2~2.0,当前第i路的ES流的传输延迟为则预测当前帧的ES流的发送延迟为:
然后,根据的值对进行修正,得到最终使用的每路视频的当前帧目标比特数framebitsi,方法如下:
若则
否则,若则
否则,
最后,根据framebitsi得出每路当前帧对应的缩放系数scalei,
其中,αi为比例修正系数,比例修正系数利用每一帧完成编码后根据实际编码比特数和目标比特数framebitsi之间的差异进行迭代更新,用于对缩放系数的值进行校准,计算方法是:
其中为第i路的上一帧在确定缩放系数时使用的比例修正系数,为第i路的上一帧ES数据实际编码比特数,为第i路的上一帧目标比特数。
最后,利用符合视频编码标准(如MPEG-2,H.264,H.265,AVS等)的缩放系数与QP值的映射关系,得到每一路视频当前帧所应使用的QP值。不同标准中有不同的QP与缩放系数的映射关系,例如MPEG-2中可选两种直接映射表,H.264和AVS中QP与缩放系数之间呈指数关系等等。
以这种方式进行码率分配、比特估计和QP设定之后,可以保证n路视频编码器的每一帧ES流进入TS输出总缓冲区后不会造成缓冲区上溢或下溢,保证TS流能够以持续CBR方式打包输出,而且每一路视频流的最大发送延迟被约束在设定的水平之下。
从以上的描述中,可以看出,本发明实现了如下技术效果:
本发明实施例,一方面提出了基于预分析的闭环统计复用总体架构,二是多路视频流间进行码率分配的方法,三是利用复用器反馈信息对输出总缓冲区及单路传输延迟进行保护的机制。
与目前最好的统计复用技术相比,一方面通过基于预分析的统计复用算法对视频实现了准确的各路间比特分配及瞬时码率控制,充分且合理地利用了带宽,使各路视频流的质量保持大致相同;另一方面闭环的统计复用直接控制编码器的方式并避免了二次压缩的质量损失;再一方面将通过反馈输出总缓冲区填充程度的方式将音频流码率加入统计复用控制的范畴内,降低了复用后传输流的空包率,提高了传输有效码率。这三方面都使视频质量得到显著提高,也即当维持不变的视频质量时可以降低码率,提高一定带宽下的传输路数。
另外,利用统计复用器的反馈机制对单路视频流传输延迟进行约束,提高了复用流的通用性,降低了解码设备的指标要求,使得通用的机顶盒不会因延时指标问题而不兼容此统计复用后的TS流。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (28)
1.一种统计复用方法,其特征在于,包括:
对多路视频流中各路视频流编码,得到对应的多路基本流ES,其中,所述多路ES的总码率等于传输流TS码率,其中,以一帧为单位对所述多路视频源编码,对每帧编码包括:分析所述多路视频流中包含当前帧在内的多个帧,得到所述多个帧中每帧的图像复杂度;根据所述每帧的图像复杂度和所述TS码率,为所述当前帧分配编码参数;根据所述编码参数对所述当前帧进行编码;
将所述多路ES缓存到缓存区;
当所述缓存区中待输出ES流的总码率等于所述TS码率时,对所述待输出ES进行统计复用,得到码率恒定的TS;
其中,该方法还包括:统计所述统计复用所产生的每个所述ES的输出延迟;根据所述输出延迟调整编码参数,以使所述输出延迟低于预定水平。
2.根据权利要求1所述的方法,其特征在于,将所述多路ES缓存到缓存区,包括:
按照先进先出方式将所述多路ES缓存到所述缓存区。
3.根据权利要求1所述的方法,其特征在于,还包括:
统计所述缓存区的缓存状态;
根据所述缓存状态调整所述编码参数,以使所述缓存区的使用量保持在预定范围。
4.根据权利要求1所述的方法,其特征在于,所述编码参数包括以下至少之一:每帧编码的码率、每帧编码的比特数、量化参数QP值。
5.根据权利要求1所述的方法,其特征在于,对多路视频流中各路视频流编码,包括:
将所述多路视频流待编码的帧分为多个预定帧组,其中,每个预定帧组包含每路视频流的帧;
根据每个预定帧组内的各帧的图像复杂度和所述TS码率,确定对应预定帧组内各帧的编码参数;
根据所述各帧的编码参数进行编码。
6.根据权利要求5所述的方法,其特征在于,所述编码参数包括编码的码率;其中,一个预定帧组内一路视频流对应一个码率,一个预定帧组内各路视频流的总码率等于所述TS码率。
7.根据权利要求6所述的方法,其特征在于,每路视频流在预定帧组内的图像复杂度越大,对应在预定帧组内的码率越大。
8.根据权利要求5所述的方法,其特征在于,所述编码参数包括每帧编码的比特数;每帧在预定帧组内的图像复杂度越大,对应的每帧编码的比特数越大。
9.根据权利要求8所述的方法,其特征在于,还包括:根据所述缓存区的缓存状态调整每帧编码的比特数,其中,
当所述缓存区的填充量超过第一预定范围时,降低每帧编码的比特数;
当所述填充量低于或等于第二预定范围时,提高每帧编码的比特数。
10.根据权利要求8或9所述的方法,其特征在于,还包括:根据所述每路ES流的传输延迟调整每帧编码的比特数,其中,
当所述传输延迟大于第一预定值时,提高每帧编码的比特数;
当所述传输延迟小于第二预定值时,降低每帧编码的比特数。
11.根据权利要求10所述的方法,其特征在于,所述编码参数包括QP值;根据各个预定帧组内的各帧的图像复杂度和所述TS码率,确定各个预定帧组内对应各帧的QP值,包括:
根据所述各帧的图像复杂度确定每帧编码的缩放系数,其中每帧编码的缩放系数,与对应预定帧组的图像复杂度成正比;
根据缩放系数与QP值的对应关系确定每帧编码的QP值。
12.根据权利要求5至9中任一项所述的方法,其特征在于,所述编码参数包括QP值;根据各个预定帧组内的各帧的图像复杂度和所述TS码率,确定各个预定帧组内对应各帧的QP值,包括:
根据所述各帧的图像复杂度确定每帧编码的缩放系数,其中每帧编码的缩放系数,与对应预定帧组的图像复杂度成正比;
根据缩放系数与QP值的对应关系确定每帧编码的QP值。
13.根据权利要求12所述的方法,其特征在于,还包括:根据前一帧编码的目标比特数和所述前一帧编码的实际比特数调整当前帧编码的缩放系数,其中,
当所述目标比特数和所述实际比特数之比增大时,提高所述当前帧的缩放系数;
当所述目标比特数和所述实际比特数之比降低时,降低所述当前帧的缩放系数;
其中,所述实际比特数由对所述目标比特数调整所得。
14.根据权利要求1或5所述的方法,其特征在于,分析所述多路视频流中包含当前帧在内的多个帧,得到所述多个帧中每帧数据的图像复杂度,包括:
确定所述多个帧中每帧的帧类型;
根据所述多个帧中每帧的帧类型确定对应帧的图像复杂度。
15.根据权利要求14所述的方法,其特征在于,所述帧类型包括:I帧、P帧和B帧;根据所述多个帧中每帧的帧类型确定对应帧的图像复杂度,包括以下至少之一:
如果当前帧为I帧,进行与编码相同的帧内预测,累加当前帧所有块的第一绝对差值和SAD,将累加得到的SAD作为当前帧的图像复杂度;
如果当前帧为P帧,以当前帧的前向帧中最近的非B帧为参考帧进行运动搜索,累加当前帧所有块的SAD,将累加得到的SAD作为当前帧的图像复杂度;
如果当前帧为B帧,在当前帧后续输入的帧为P帧或B帧时,以所述后续输入的帧为后向参考帧,前向最邻近的非B帧为前向参考帧,进行双向运动搜索,累加当前帧所有块的SAD,将累加得到的SAD作为当前帧的图像复杂度。
16.一种统计复用装置,其特征在于,包括:
编码模块,用于对多路视频流中各路视频流编码,得到对应的多路基本流ES,其中,所述多路ES的总码率等于传输流TS码率;
缓存模块,用于将所述多路ES缓存到缓存区;
复用模块,用于当所述缓存区中待输出ES流的总码率等于所述TS码率时,对所述待输出ES进行统计复用,得到码率恒定的TS;
其中,所述编码模块,用于以一帧为单位对所述多路视频源编码,所述编码模块包括:分析单元,用于分析所述多路视频流中包含当前帧在内的多个帧,得到所述多个帧中每帧的图像复杂度;分配单元,用于根据所述每帧的图像复杂度和所述TS码率,为所述当前帧分配编码参数;编码单元,用于根据所述编码参数对所述当前帧进行编码;
其中,所述编码模块还包括:第二统计单元,用于统计所述统计复用所产生的每个所述ES的输出延迟;第二调整单元,用于根据所述输出延迟调整编码参数,以使所述输出延迟低于预定水平。
17.根据权利要求16所述的装置,其特征在于,所述缓存模块,用于按照先进先出方式将所述多路ES缓存到所述缓存区。
18.根据权利要求16所述的装置,其特征在于,所述编码模块还包括:
第一统计单元,用于统计所述缓存区的缓存状态;
第一调整单元,用于根据所述缓存状态调整所述编码参数,以使所述缓存区的使用量保持在预定范围。
19.根据权利要求16所述的装置,其特征在于,所述编码模块包括:
分组单元,用于将所述多路视频流待编码的帧分为多个预定帧组,其中,每个预定帧组包含每路视频流的帧;
确定单元,用于根据每个预定帧组内的各帧的图像复杂度和所述TS码率,确定对应预定帧组内各帧的编码参数;
编码单元,用于根据所述各帧的编码参数进行编码。
20.根据权利要求19所述的装置,其特征在于,所述编码参数包括编码的码率;其中,一个预定帧组内一路视频流对应一个码率,一个预定帧组内各路视频流的总码率等于所述TS码率。
21.根据权利要求20所述的装置,其特征在于,每路视频流在预定帧组内的图像复杂度越大,对应在预定帧组内的码率越大。
22.根据权利要求19所述的装置,其特征在于,所述编码参数包括每帧编码的比特数;每帧在预定帧组内的图像复杂度越大,对应的每帧编码的比特数越大。
23.根据权利要求22所述的装置,其特征在于,所述编码模块还包括:
第三调整单元,用于根据所述缓存区的缓存状态调整每帧编码的比特数,其中,当所述缓存区的填充量超过第一预定范围时,降低每帧编码的比特数;当所述填充量低于或等于第二预定范围时,提高每帧编码的比特数。
24.根据权利要求22或23所述的装置,其特征在于,所述编码模块还包括:
第四调整单元,用于根据所述每路ES流的传输延迟调整每帧编码的比特数,其中,当所述传输延迟大于第一预定值时,提高每帧编码的比特数;当所述传输延迟小于第二预定值时,降低每帧编码的比特数。
25.根据权利要求24所述的装置,其特征在于,所述编码参数包括QP值;
所述确定单元,用于根据所述各帧的图像复杂度确定每帧编码的缩放系数,其中每帧编码的缩放系数,与对应预定帧组的图像复杂度成正比;根据缩放系数与QP值的对应关系确定每帧编码的QP值。
26.根据权利要求19至23中任一项所述的装置,其特征在于,所述编码参数包括QP值;
所述确定单元,用于根据所述各帧的图像复杂度确定每帧编码的缩放系数,其中每帧编码的缩放系数,与对应预定帧组的图像复杂度成正比;根据缩放系数与QP值的对应关系确定每帧编码的QP值。
27.根据权利要求26所述的装置,其特征在于,所述编码模块,还包括:第五调整单元,用于根据前一帧编码的目标比特数和所述前一帧编码的实际比特数调整当前帧编码的缩放系数,其中,
当所述目标比特数和所述实际比特数之比增大时,提高所述当前帧的缩放系数;
当所述目标比特数和所述实际比特数之比降低时,降低所述当前帧的缩放系数;
其中,所述实际比特数由对所述目标比特数调整所得。
28.根据权利要求16所述的装置,其特征在于,所述分析单元,用于确定所述多个帧中每帧的帧类型;根据所述多个帧中每帧的帧类型确定对应帧的图像复杂度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410303048.XA CN105323578B (zh) | 2014-06-27 | 2014-06-27 | 统计复用方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410303048.XA CN105323578B (zh) | 2014-06-27 | 2014-06-27 | 统计复用方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105323578A CN105323578A (zh) | 2016-02-10 |
CN105323578B true CN105323578B (zh) | 2018-05-08 |
Family
ID=55250051
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410303048.XA Active CN105323578B (zh) | 2014-06-27 | 2014-06-27 | 统计复用方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105323578B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111770364B (zh) * | 2020-07-17 | 2023-02-14 | 上海国茂数字技术有限公司 | 一种视频码率平滑方法及装置 |
CN111988556B (zh) * | 2020-08-28 | 2022-04-26 | 深圳市融讯视通科技有限公司 | 动态音视频编码传输方法、系统、装置及存储介质 |
CN112565606B (zh) * | 2020-12-02 | 2022-04-01 | 鹏城实验室 | 全景视频智能传输方法、设备及计算机存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101646075A (zh) * | 2008-08-06 | 2010-02-10 | 中兴通讯股份有限公司 | 一种多媒体码流的码率调整装置及方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999001987A1 (en) * | 1997-07-01 | 1999-01-14 | Sony Corporation | Device and method for controlling image encoding, encoding system, transmission system and broadcast system |
CN100499821C (zh) * | 2006-08-01 | 2009-06-10 | 上海广电(集团)有限公司中央研究院 | 一种统计复用传输流的方法 |
CN101340590B (zh) * | 2008-08-14 | 2010-07-07 | 北京创毅视讯科技有限公司 | 复用装置和复用方法 |
US8340140B2 (en) * | 2010-01-15 | 2012-12-25 | General Instrument Corporation | Statistical multiplexing using a plurality of encoders |
US8588294B2 (en) * | 2010-01-15 | 2013-11-19 | General Instrument Corporation | Statistical multiplexing using a plurality of two-pass encoders |
CN102724491A (zh) * | 2012-06-15 | 2012-10-10 | 北京博雅华录视听技术研究院有限公司 | 基于并行编码的统计复用方法 |
-
2014
- 2014-06-27 CN CN201410303048.XA patent/CN105323578B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101646075A (zh) * | 2008-08-06 | 2010-02-10 | 中兴通讯股份有限公司 | 一种多媒体码流的码率调整装置及方法 |
Non-Patent Citations (1)
Title |
---|
Statistical multiplexing using MPEG-2 video encoders;L. Boroczky .et al;<IBM Journal of Research and Development>;19990731;正文部分第2页第2栏第2节,附图1 * |
Also Published As
Publication number | Publication date |
---|---|
CN105323578A (zh) | 2016-02-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101185337B (zh) | 具有预见的准恒定质量速率控制 | |
CN106537923B (zh) | 自适应视频流的技术 | |
US6516002B1 (en) | Apparatus for using a receiver model to multiplex variable-rate bit streams having timing constraints | |
US9313529B2 (en) | Video streaming | |
JP3756346B2 (ja) | ビデオ・フレームの多重ストリームを処理する方法及びシステム | |
CA2422131C (en) | Method and apparatus for determining a transmission bit rate in a statistical multiplexer | |
US7843824B2 (en) | Method and apparatus for statistically multiplexing services | |
Yuan et al. | Spatial and temporal consistency-aware dynamic adaptive streaming for 360-degree videos | |
CN100425077C (zh) | 采用帧目标比特数不平均分配的视频压缩码率控制方法 | |
CN108810545B (zh) | 用于视频编码的方法、装置、计算机可读介质及电子设备 | |
CN103004190B (zh) | 视频流传送 | |
Wang et al. | Bit allocation and constraints for joint coding of multiple video programs | |
KR100841268B1 (ko) | 비디오 데이터의 품질을 모니터링하기 위한 방법 및 디바이스, 및 비디오 데이터의 코딩용 시스템 | |
CN105323578B (zh) | 统计复用方法及装置 | |
Perkins et al. | Statistical multiplexing of multiple MPEG-2 video programs in a single channel | |
CN103339934B (zh) | 视频编码 | |
CN104967871B (zh) | 一种视频编码码流的统计复用系统及方法 | |
CN101984667B (zh) | 码率控制方法及码率控制器 | |
JP2004096309A (ja) | 画像伝送装置、画像伝送方法及びソフトウェアプログラム | |
CN108924555A (zh) | 一种适用于视频切片的码率控制比特分配方法 | |
Changuel et al. | Joint encoder and buffer control for statistical multiplexing of multimedia contents | |
CN100486335C (zh) | 比特率自动调整装置 | |
EP3123730B1 (en) | Enhanced distortion signaling for mmt assets and isobmff with improved mmt qos descriptor having multiple qoe operating points | |
Changuel et al. | Predictive encoder and buffer control for statistical multiplexing of multimedia contents | |
JP6231046B2 (ja) | 動画データ配信管理装置、動画データ配信管理方法、プログラム |
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 |