CN112689148A - 一种云会议中多层视频传输去峰值方法、系统和存储介质 - Google Patents
一种云会议中多层视频传输去峰值方法、系统和存储介质 Download PDFInfo
- Publication number
- CN112689148A CN112689148A CN202110289934.1A CN202110289934A CN112689148A CN 112689148 A CN112689148 A CN 112689148A CN 202110289934 A CN202110289934 A CN 202110289934A CN 112689148 A CN112689148 A CN 112689148A
- Authority
- CN
- China
- Prior art keywords
- layer
- frame
- interval
- layernum
- current layer
- 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.)
- Granted
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明提供一种云会议中多层视频传输去峰值方法、系统和存储介质,通过对多层视频进行初始化,依据每层设定码率及初始化错帧参数,对每层编码帧进行合理控制,均匀错开每层视频中数据量最大的IDR帧,同时,采用了动态调整错帧间隔的方法,可以保证视频质量不下降,视频延时不增加,视频连续性不降低的情况下,在多层视频编码端降低并消除码率峰值出现的可能,简化了与后端传输的交互,并结合传输层流量控制算法,实现了多层视频流的平稳传输,提升了广域互联网络视频通信的可靠性和用户体验。
Description
技术领域
本发明涉及视频传输技术领域,尤其涉及一种云会议中多层视频传输去峰值方法、系统和存储介质。
背景技术
随着视频会议的需求趋于普及化、多元化,解决方案也从传统视频会议发展到现在的云视频会议。为了同时支持多种设备,且保证不同设备上质量最大化,孕育出多层视频的需求。为了多层视频同步,将同时发送多层视频,在WIFI、4G/5G、卫星等无线信道中传输,而码率峰值会影响视频质量,所以需要降低并去除多层视频传输中码率峰值。
目前现有的码率控制方案,大致有两种。一种方案是依赖于控制视频的码率参数、GOP值、场景切换参数等,在编码阶段进行控制视频码率峰值。另一种方案是通过在传输阶段根据设定的传输策略,来解决信道传输中视频码率峰值问题。基于上述传统的码率峰值控制方案,其中前一种方案是通过调控多层视频编码参数,在相同视频编码码率下,可以降低峰值出现概率,但并没有消除峰值出现的可能。后一种方案是通过优化传输策略来解决,这样会增加视频延时及其不连续性。
发明内容
为了解决上述至少一个技术问题,本发明提出了一种云会议中多层视频传输去峰值方法、系统和存储介质。
为了实现上述目的,本发明第一方面提出了一种云会议中多层视频传输去峰值方法,所述方法包括:
步骤1,设置多层视频中每层的媒体信息码率InitBitrate,初始化错帧间隔InitInterval、总编码帧数FrameNum均为0;
步骤2,初始化多层视频起始位置,重置IDR帧标记Idr_Flag为0;
步骤3,根据当前层的错帧间隔InitInterval,及帧序号统计值,IDR帧标记Idr_Flag计算出当前层的编码精准帧类型FrameType;
步骤4,统计当前层编码后的码率,并做后处理下采样作为下一层编码的输入参数;
步骤5,对每层视频执行上述步骤2-4后,统计当前总编码帧数FrameNum,并将每层的实时码率RealBitrate与初始码率InitBitrate进行比较,动态调整每层的错帧间隔InitInterval。
本方案中,上述步骤1,具体包括:
步骤1-1,根据分辨率对多层进行从大到小排序并编号,同时获取多层中码率最大层的编号LayerMax以及对应的GOP值GopInit;
步骤1-2,比较码率最大层的GOP值与默认最大间隔,并取最大值作为码率最大层的错帧间隔Interval[LayerMax];
步骤1-3,根据多层中最大码率BitrateMax与多层总码率BitrateAll的占比比例,计算出非最大其余层错帧间隔总和IntervalOther= Interval[LayerMax]*(( BitrateAll-BitrateMax) / BitrateAll);
步骤1-4,分别根据非最大层码率的比例,计算出其余层的错帧间隔。
本方案中,上述步骤2,具体包括:
步骤2-1,根据层编号LayerNum及Interval[LayerMax],设定多层中的起始序号StartNum;
步骤2-2,重置IDR帧标记Idr_Flag为0,并根据处理当前层ID及总编码帧数FrameNum,判断当前是否需要执行多层编码;如果满足条件,则执行步骤3,如果不满足条件,则针对下一层执行步骤2。
本方案中,上述步骤3,具体包括:
步骤3-1,先对IDR帧标记Idr_Flag进行判断,如果Idr_Flag为“1”,则直接设置编码精准帧类型FrameType=TYPE_AUTO;否则,进行如下步骤3-2处理;
步骤3-2,根据总编码帧数FrameNum与当前层起始序号位置StartNum[LayerNum],计算得到当前层总差值Delta=FrameNum-StartNum[LayerNum];
步骤3-3,基于当前层总差值进行判断得到当前层的编码精准帧类型FrameType;
步骤3-4,根据获取到的编码精准帧类型FrameType,设置给当前层当前编码器需要编码的帧类型,并按照精准帧类型获得编码后的数据。
本方案中,上述步骤3-3,具体包括:
如果当前层总差值Delta能整除当前层的错帧间隔IntervalNum[LayerNum],则当前层的编码精准帧类型FrameType=TYPE_IDR;否则,当前层的编码精准帧类型FrameType=TYPE_AUTO。
6.根据权利要求1所述的一种云会议中多层视频传输去峰值方法,其特征在于,上述步骤4,具体包括:
步骤4-1,统计当前层的码率值,RealBitrate[LayerNum] += Bitrate,以用于进行后续的动态调整处理;
步骤4-2,按照各层的分辨率从高到低依次进行下采样,作为下一层编码的输入参数。
本方案中,上述步骤5,具体包括:
步骤5-1,当所有层循环处理完毕后,先对总编码帧数FrameNum进行递增,然后获取定时器,判断是否达到预设时间,如果达到进行错帧间隔动态调整;
步骤5-2,循环遍历多层,获取当前层的实时码率与初始码率的比率Ratio=RealBitrate[LayerNum]/ InitBitrate[LayerNum]*100%,根据所述比率Ratio进行调整当前层的错帧间隔值Interval[LayerNum];
步骤5-3,获取错帧间隔比例系数Coef;
如果Ratio>=125%,当前层的错帧间隔值Interval [LayerNum] += 5*Coef[LayerNum];
如果Ratio>=120%,当前层的错帧间隔值Interval [LayerNum] += 4*Coef[LayerNum];
如果Ratio>=115%,当前层的错帧间隔值Interval [LayerNum] += 3*Coef[LayerNum];
如果Ratio>=110%,当前层的错帧间隔值Interval [LayerNum] += 2*Coef[LayerNum];
如果Ratio>=105%,当前层的错帧间隔值Interval [LayerNum] += 1*Coef[LayerNum];
如果Ratio<=95, 当前层的错帧间隔值Interval [LayerNum] = InitInterval[LayerNum];
步骤5-4,初始化定时器,初始化实时码率RealBitrate。
本发明第二方面还提出一种云会议中多层视频传输去峰值系统,所述云会议中多层视频传输去峰值系统包括:存储器及处理器,所述存储器中包括一种云会议中多层视频传输去峰值方法程序,所述云会议中多层视频传输去峰值方法程序被所述处理器执行时实现如下步骤:
初始化设备,设置多层视频中每层的媒体信息码率InitBitrate、GOP参数,初始化错帧间隔InitInterval、总编码帧数FrameNum均为0;
初始化多层起始位置,重置IDR帧标记Idr_Flag为0,并采用一入多出的方式,循环遍历每个视频编码器,依次进行相同的处理;
根据初始化中当前层的错帧间隔InitInterval,及帧序号统计值,IDR帧标记Idr_Flag计算出当前层的编码精准帧类型FrameType;
统计当前层编码后的码率,并做后处理下采样作为下一层编码的输入参数;
基于上述步骤对多层进行循环,待循环结束后,统计当前总编码帧数FrameNum,并针对每层的实时码率RealBitrate与初始码率InitBitrate进行比较,动态调整每层的错帧间隔值Interval。
本方案中,根据初始化中当前层的错帧间隔InitInterval,及帧序号统计值,IDR帧标记Idr_Flag计算出当前层的编码精准帧类型FrameType,具体包括:
先对IDR帧标记Idr_Flag进行判断,如果Idr_Flag为“1”,则直接设置编码精准帧类型FrameType=TYPE_AUTO;
如果Idr_Flag不为“1”,根据总编码帧数FrameNum与当前层起始序号位置StartNum[LayerNum],计算得到当前层总差值Delta=FrameNum-StartNum[LayerNum];
基于当前层总差值进行判断得到当前层的编码精准帧类型FrameType;如果当前层总差值Delta能整除当前层的错帧间隔IntervalNum[LayerNum],则当前层的编码精准帧类型FrameType=TYPE_IDR;否则,当前层的编码精准帧类型FrameType=TYPE_AUTO;
根据获取到的编码精准帧类型FrameType,设置给当前层当前编码器需要编码的帧类型,并按照精准帧类型获得编码后的数据。
本发明第三方面还提出一种计算机可读存储介质,所述计算机可读存储介质中包括一种云会议中多层视频传输去峰值方法程序,所述云会议中多层视频传输去峰值方法程序被处理器执行时,实现如上述的一种云会议中多层视频传输去峰值方法的步骤。
本发明在多层视频编码阶段设计了一套码率峰值控制策略,对多层视频编码帧进行合理控制,避免多层视频在编码中同时出现大数据量帧,给传输层带来压力,导致多层视频在网络传输中抖动突增,引发比如视频卡顿、视频马赛克等问题。
同时,本发明的云会议中多层视频传输去峰值方法和系统能够精准控制多层视频编码帧并动态实时调整,不但可以保证视频质量,还能保证视频的传输延时及连续性。从而有效的解决了多层视频在互联网络中平稳、可靠的传输。
传统的去峰值方法一般使用多层视频编码参数,比如降低码率是会减小峰值,但是同时视频质量也相应降低。如果视频码率不变,优化多层视频码率控制参数,也仅仅是降低了峰值出现的概率,并没有消除峰值出现的可能。还有一些方法是通过传输策略来实现,比如设定大的发送缓存区,这样会增加观看端的视频延时。或者通过回馈降帧策略来降低峰值码率,这样会降低视频的连续性。本发明相较于传统的方法,可以保证视频质量不下降,视频延时不增加,视频连续性不降低的情况下,在多层视频编码端降低并消除码率峰值出现的可能,保障了多层视频在互联网络中平稳可靠传输,提高用户体验。
本发明的附加方面和优点将在下面的描述部分中给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
图1示出了本发明一种云会议中多层视频传输去峰值方法的流程图;
图2示出了本发明一种云会议中多层视频传输去峰值系统的框图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
图1示出了本发明一种云会议中多层视频传输去峰值方法的流程图。
如图1所示,本发明第一方面提出一种云会议中多层视频传输去峰值方法,所述方法包括:
步骤1,初始化设备,设置多层视频中每层的媒体信息码率InitBitrate、GOP参数,初始化错帧间隔InitInterval、总编码帧数FrameNum均为0;
步骤2,初始化多层起始位置,重置IDR帧标记Idr_Flag为0,并采用一入多出的方式,循环遍历每个视频编码器,依次进行相同的处理;
步骤3,根据初始化中当前层的错帧间隔InitInterval,及帧序号统计值,IDR帧标记Idr_Flag计算出当前层的编码精准帧类型FrameType;
步骤4,统计当前层编码后的码率,并做后处理下采样作为下一层编码的输入参数;
步骤5,基于上述步骤对多层进行循环,待循环结束后,统计当前总编码帧数FrameNum,并针对每层的实时码率RealBitrate与初始码率InitBitrate进行比较,动态调整每层的错帧间隔值Interval。
需要说明的是,本发明的设备可以为手机、PAD、PC、智能手表、车载终端等通信设备。
根据本发明的实施例,上述步骤1,具体包括:
步骤1-1,根据分辨率对多层进行从大到小排序并编号,同时获取多层中码率最大层的编号LayerMax以及对应的GOP值GopInit;
步骤1-2,比较码率最大层的GOP值与默认最大间隔,并取最大值作为码率最大层的错帧间隔Interval[LayerMax];
步骤1-3,根据多层中最大码率BitrateMax与多层总码率BitrateAll的占比比例,计算出非最大其余层错帧间隔总和IntervalOther= Interval[LayerMax]*(( BitrateAll-BitrateMax) / BitrateAll);
步骤1-4,分别根据非最大层码率的比例,计算出其余层的错帧间隔。
根据本发明的具体实施例,在上述步骤1-2中,可以设定默认最大间隔为50,取二者最大值作为码率最大层的错帧间隔Interval[LayerMax]=MAX(GopInit, 50),在其他实施例中,也可以设定默认最大间隔为30、40、60等,但不限于此。
根据本发明的具体实施例,在上述步骤1-4中,多层一共包括3层,已知最大层的编号LayerMax为0,非最大层剩余两层,即层编号1和层编号2,令层编号1的码率为Birate[1],错帧间隔为Interval[1];层编号2的码率为Birate[2],错帧间隔为Interval[2]。则根据如下两个公式即可计算出层编号1和层编号2的错帧间隔:
Birate[1]:Bitrate[1]=Interval[1]:Interval[2]
SUM(Interval[1],Interval[2])= IntervalOther。
可以理解,在计算出其余层的错帧间隔后,至此,完成本发明中的全局初始化过程。
根据本发明的实施例,上述步骤2,具体包括:
步骤2-1,判断是否初始化起始序号,如果否,则根据层编号LayerNum及Interval[LayerMax],设定多层中的起始序号StartNum;
步骤2-2,重置IDR帧标记Idr_Flag为0,并根据处理当前层ID及总编码帧数FrameNum,判断当前是否需要执行多层编码;如果满足条件,则执行多层编码,如果不满足条件,则跳过去执行下一层的处理。
根据本发明的具体实施例中,对于三层视频传输应用场景中,其中,StartNum[0]=0,StartNum[1]= Interval[LayerMax]/LayerNum,StartNum[2]= StartNum[1]/2,设置起始序号初始化完成。至此,完成本发明中的局部初始化及判断过程。
根据本发明的实施例,上述步骤3,具体包括:
步骤3-1,先对IDR帧标记Idr_Flag进行判断,如果Idr_Flag为“1”,则直接设置编码精准帧类型FrameType=TYPE_AUTO,保证多层编码中IDR帧唯一性;否则,进行如下步骤3-2处理;
步骤3-2,根据总编码帧数FrameNum与当前层起始序号位置StartNum[LayerNum],计算得到当前层总差值Delta=FrameNum-StartNum[LayerNum];
步骤3-3,基于当前层总差值进行判断得到当前层的编码精准帧类型FrameType;
步骤3-4,根据获取到的编码精准帧类型FrameType,设置给当前层当前编码器需要编码的帧类型,并按照精准帧类型获得编码后的数据。至此,完成本发明中的获取当前层精准帧类型。
进一步的,上述步骤3-3,具体包括:
如果当前层总差值Delta能整除当前层的错帧间隔IntervalNum[LayerNum],则当前层的编码精准帧类型FrameType=TYPE_IDR;否则,当前层的编码精准帧类型FrameType=TYPE_AUTO。
根据本发明的实施例,上述步骤4,具体包括:
步骤4-1,统计当前层的码率值,RealBitrate[LayerNum] += Bitrate,以用于进行后续的动态调整处理;
步骤4-2,按照各层的分辨率从高到低依次进行下采样,作为下一层编码的输入参数。至此,完成本发明中的实时码率统计及后处理过程。
根据本发明的实施例,上述步骤5,具体包括:
步骤5-1,当所有层循环处理完毕后,先对总编码帧数FrameNum进行递增,然后获取定时器,判断是否达到预设秒,如果达到进行错帧间隔动态调整;优选的,预设秒的取值可以为5秒,但不限于此。
步骤5-2,循环遍历多层,获取当前层的实时码率与初始码率的比率Ratio=RealBitrate[LayerNum]/ InitBitrate[LayerNum]*100%,根据所述比率Ratio进行调整当前层的错帧间隔值Interval[LayerNum];
步骤5-3,获取错帧间隔比例系数Coef,在三层视频传输应用中,错帧间隔的比例系数Coef可以表示为Interval[0]: Interval[1]: Interval[2],例如:比例系数Coef为4:2:1;
如果Ratio>=125%,当前层的错帧间隔值Interval [LayerNum] += 5*Coef[LayerNum];
如果Ratio>=120%,当前层的错帧间隔值Interval [LayerNum] += 4*Coef[LayerNum];
如果Ratio>=115%,当前层的错帧间隔值Interval [LayerNum] += 3*Coef[LayerNum];
如果Ratio>=110%,当前层的错帧间隔值Interval [LayerNum] += 2*Coef[LayerNum];
如果Ratio>=105%,当前层的错帧间隔值Interval [LayerNum] += 1*Coef[LayerNum];
如果Ratio<=95, 当前层的错帧间隔值Interval [LayerNum] = InitInterval[LayerNum];即当前层的比率低于95%的时候,使用初始的错帧间隔。
步骤5-4,初始化定时器,初始化实时码率RealBitrate。至此,完成本发明中的根据实时码率动态调整错帧间隔的过程。本发明的实时动态调整是根据各层实时编码码率,去调整错帧间隔从而能获得编码精准帧类型FrameType,避免了编码码率控制不稳定而引入的多层码率峰值的问题。进一步的,在云会议中多层视频传输去峰值处理完成后,释放设备的资源。
图2示出了本发明一种云会议中多层视频传输去峰值系统的框图。
如图2所示,本发明第二方面还提出一种云会议中多层视频传输去峰值系统2,所述云会议中多层视频传输去峰值系统2包括:存储器21及处理器22,所述存储器中包括一种云会议中多层视频传输去峰值方法程序,所述云会议中多层视频传输去峰值方法程序被所述处理器执行时实现如下步骤:
初始化设备,设置多层视频中每层的媒体信息码率InitBitrate、GOP参数,初始化错帧间隔InitInterval、总编码帧数FrameNum均为0;
初始化多层起始位置,重置IDR帧标记Idr_Flag为0,并采用一入多出的方式,循环遍历每个视频编码器,依次进行相同的处理;
根据初始化中当前层的错帧间隔InitInterval,及帧序号统计值,IDR帧标记Idr_Flag计算出当前层的编码精准帧类型FrameType;
统计当前层编码后的码率,并做后处理下采样作为下一层编码的输入参数;
基于上述步骤对多层进行循环,待循环结束后,统计当前总编码帧数FrameNum,并针对每层的实时码率RealBitrate与初始码率InitBitrate进行比较,动态调整每层的错帧间隔值Interval。
需要说明的是,本发明的系统可以在手机、PAD、PC、智能手表、车载终端等通信设备中进行运行。
需要说明的是,所述处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
进一步的,根据初始化中当前层的错帧间隔InitInterval,及帧序号统计值,IDR帧标记Idr_Flag计算出当前层的编码精准帧类型FrameType,具体包括:
先对IDR帧标记Idr_Flag进行判断,如果Idr_Flag为“1”,则直接设置编码精准帧类型FrameType=TYPE_AUTO;
如果Idr_Flag不为“1”,根据总编码帧数FrameNum与当前层起始序号位置StartNum[LayerNum],计算得到当前层总差值Delta=FrameNum-StartNum[LayerNum];
基于当前层总差值进行判断得到当前层的编码精准帧类型FrameType;如果当前层总差值Delta能整除当前层的错帧间隔IntervalNum[LayerNum],则当前层的编码精准帧类型FrameType=TYPE_IDR;否则,当前层的编码精准帧类型FrameType=TYPE_AUTO;
根据获取到的编码精准帧类型FrameType,设置给当前层当前编码器需要编码的帧类型,并按照精准帧类型获得编码后的数据。
本发明第三方面还提出一种计算机可读存储介质,所述计算机可读存储介质中包括一种云会议中多层视频传输去峰值方法程序,所述云会议中多层视频传输去峰值方法程序被处理器执行时,实现如上述的一种云会议中多层视频传输去峰值方法的步骤。
本发明在多层视频编码阶段设计了一套码率峰值控制策略,对多层视频编码帧进行合理控制,避免多层视频在编码中同时出现大数据量帧,给传输层带来压力,导致多层视频在网络传输中抖动突增,引发比如视频卡顿、视频马赛克等问题。
同时,本发明的云会议中多层视频传输去峰值方法和系统能够精准控制多层视频编码帧并动态实时调整,不但可以保证视频质量,还能保证视频的传输延时及连续性。从而有效的解决了多层视频在互联网络中平稳、可靠的传输。
传统的去峰值方法一般使用多层视频编码参数,比如降低码率是会减小峰值,但是同时视频质量也相应降低。如果视频码率不变,优化多层视频码率控制参数,也仅仅是降低了峰值出现的概率,并没有消除峰值出现的可能。还有一些方法是通过传输策略来实现,比如设定大的发送缓存区,这样会增加观看端的视频延时。或者通过回馈降帧策略来降低峰值码率,这样会降低视频的连续性。本发明相较于传统的方法,可以保证视频质量不下降,视频延时不增加,视频连续性不降低的情况下,在多层视频编码端降低并消除码率峰值出现的可能,保障了多层视频在互联网络中平稳可靠传输,提高用户体验。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种云会议中多层视频传输去峰值方法,其特征在于,所述方法包括:
步骤1,设置多层视频中每层的媒体信息码率InitBitrate,初始化错帧间隔InitInterval、总编码帧数FrameNum均为0;
步骤2,初始化多层视频起始位置,重置IDR帧标记Idr_Flag为0;
步骤3,根据当前层的错帧间隔InitInterval,及帧序号统计值,IDR帧标记Idr_Flag计算出当前层的编码精准帧类型FrameType;
步骤4,统计当前层编码后的码率,并做后处理下采样作为下一层编码的输入参数;
步骤5,对每层视频执行上述步骤2-4后,统计当前总编码帧数FrameNum,并将每层的实时码率RealBitrate与初始码率InitBitrate进行比较,动态调整每层的错帧间隔InitInterval。
2.根据权利要求1所述的一种云会议中多层视频传输去峰值方法,其特征在于,上述步骤1,具体包括:
步骤1-1,根据分辨率对多层进行从大到小排序并编号,同时获取多层中码率最大层的编号LayerMax以及对应的GOP值GopInit;
步骤1-2,比较码率最大层的GOP值与默认最大间隔,并取最大值作为码率最大层的错帧间隔Interval[LayerMax];
步骤1-3,根据多层中最大码率BitrateMax与多层总码率BitrateAll的占比比例,计算出非最大其余层错帧间隔总和IntervalOther= Interval[LayerMax]*(( BitrateAll -BitrateMax) / BitrateAll);
步骤1-4,分别根据非最大层码率的比例,计算出其余层的错帧间隔。
3.根据权利要求1所述的一种云会议中多层视频传输去峰值方法,其特征在于,上述步骤2,具体包括:
步骤2-1,根据层编号LayerNum及Interval[LayerMax],设定多层中的起始序号StartNum;
步骤2-2,重置IDR帧标记Idr_Flag为0,并根据处理当前层ID及总编码帧数FrameNum,判断当前是否需要执行多层编码;如果满足条件,则执行步骤3,如果不满足条件,则针对下一层执行步骤2。
4.根据权利要求1所述的一种云会议中多层视频传输去峰值方法,其特征在于,上述步骤3,具体包括:
步骤3-1,先对IDR帧标记Idr_Flag进行判断,如果Idr_Flag为“1”,则直接设置编码精准帧类型FrameType=TYPE_AUTO;否则,进行如下步骤3-2处理;
步骤3-2,根据总编码帧数FrameNum与当前层起始序号位置StartNum[LayerNum],计算得到当前层总差值Delta=FrameNum-StartNum[LayerNum];
步骤3-3,基于当前层总差值进行判断得到当前层的编码精准帧类型FrameType;
步骤3-4,根据获取到的编码精准帧类型FrameType,设置给当前层当前编码器需要编码的帧类型,并按照精准帧类型获得编码后的数据。
5.根据权利要求4所述的一种云会议中多层视频传输去峰值方法,其特征在于,上述步骤3-3,具体包括:
如果当前层总差值Delta能整除当前层的错帧间隔IntervalNum[LayerNum],则当前层的编码精准帧类型FrameType=TYPE_IDR;否则,当前层的编码精准帧类型FrameType=TYPE_AUTO。
6.根据权利要求1所述的一种云会议中多层视频传输去峰值方法,其特征在于,上述步骤4,具体包括:
步骤4-1,统计当前层的码率值,RealBitrate[LayerNum] += Bitrate,以用于进行后续的动态调整处理;
步骤4-2,按照各层的分辨率从高到低依次进行下采样,作为下一层编码的输入参数。
7.根据权利要求1所述的一种云会议中多层视频传输去峰值方法,其特征在于,上述步骤5,具体包括:
步骤5-1,当所有层循环处理完毕后,先对总编码帧数FrameNum进行递增,然后获取定时器,判断是否达到预设时间,如果达到进行错帧间隔动态调整;
步骤5-2,循环遍历多层,获取当前层的实时码率与初始码率的比率Ratio=RealBitrate[LayerNum]/ InitBitrate[LayerNum]*100%,根据所述比率Ratio进行调整当前层的错帧间隔值Interval[LayerNum];
步骤5-3,获取错帧间隔比例系数Coef;
如果Ratio>=125%,当前层的错帧间隔值Interval [LayerNum] += 5*Coef[LayerNum];
如果Ratio>=120%,当前层的错帧间隔值Interval [LayerNum] += 4*Coef[LayerNum];
如果Ratio>=115%,当前层的错帧间隔值Interval [LayerNum] += 3*Coef[LayerNum];
如果Ratio>=110%,当前层的错帧间隔值Interval [LayerNum] += 2*Coef[LayerNum];
如果Ratio>=105%,当前层的错帧间隔值Interval [LayerNum] += 1*Coef[LayerNum];
如果Ratio<=95, 当前层的错帧间隔值Interval [LayerNum] = InitInterval[LayerNum];
步骤5-4,初始化定时器,初始化实时码率RealBitrate。
8.一种云会议中多层视频传输去峰值系统,其特征在于,所述云会议中多层视频传输去峰值系统包括:存储器及处理器,所述存储器中包括一种云会议中多层视频传输去峰值方法程序,所述云会议中多层视频传输去峰值方法程序被所述处理器执行时实现如下步骤:
初始化设备,设置多层视频中每层的媒体信息码率InitBitrate、GOP参数,初始化错帧间隔InitInterval、总编码帧数FrameNum均为0;
初始化多层起始位置,重置IDR帧标记Idr_Flag为0,并采用一入多出的方式,循环遍历每个视频编码器,依次进行相同的处理;
根据初始化中当前层的错帧间隔InitInterval,及帧序号统计值,IDR帧标记Idr_Flag计算出当前层的编码精准帧类型FrameType;
统计当前层编码后的码率,并做后处理下采样作为下一层编码的输入参数;
基于上述步骤对多层进行循环,待循环结束后,统计当前总编码帧数FrameNum,并针对每层的实时码率RealBitrate与初始码率InitBitrate进行比较,动态调整每层的错帧间隔值Interval。
9.根据权利要求8所述的一种云会议中多层视频传输去峰值系统,其特征在于,根据初始化中当前层的错帧间隔InitInterval,及帧序号统计值,IDR帧标记Idr_Flag计算出当前层的编码精准帧类型FrameType,具体包括:
先对IDR帧标记Idr_Flag进行判断,如果Idr_Flag为“1”,则直接设置编码精准帧类型FrameType=TYPE_AUTO;
如果Idr_Flag不为“1”,根据总编码帧数FrameNum与当前层起始序号位置StartNum[LayerNum],计算得到当前层总差值Delta=FrameNum-StartNum[LayerNum];
基于当前层总差值进行判断得到当前层的编码精准帧类型FrameType;如果当前层总差值Delta能整除当前层的错帧间隔IntervalNum[LayerNum],则当前层的编码精准帧类型FrameType=TYPE_IDR;否则,当前层的编码精准帧类型FrameType=TYPE_AUTO;
根据获取到的编码精准帧类型FrameType,设置给当前层当前编码器需要编码的帧类型,并按照精准帧类型获得编码后的数据。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中包括一种云会议中多层视频传输去峰值方法程序,所述云会议中多层视频传输去峰值方法程序被处理器执行时,实现如权利要求1至7中任一项所述的一种云会议中多层视频传输去峰值方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110289934.1A CN112689148B (zh) | 2021-03-18 | 2021-03-18 | 一种云会议中多层视频传输去峰值方法、系统和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110289934.1A CN112689148B (zh) | 2021-03-18 | 2021-03-18 | 一种云会议中多层视频传输去峰值方法、系统和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112689148A true CN112689148A (zh) | 2021-04-20 |
CN112689148B CN112689148B (zh) | 2021-06-01 |
Family
ID=75455720
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110289934.1A Active CN112689148B (zh) | 2021-03-18 | 2021-03-18 | 一种云会议中多层视频传输去峰值方法、系统和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112689148B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113259668A (zh) * | 2021-07-12 | 2021-08-13 | 全时云商务服务股份有限公司 | 云会议共享桌面动态编码方法、装置、设备及存储介质 |
CN113286149A (zh) * | 2021-07-21 | 2021-08-20 | 全时云商务服务股份有限公司 | 一种云会议自适应多层视频编码方法、系统和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140169454A1 (en) * | 2010-07-01 | 2014-06-19 | Broadcom Corporation | Method and system for multi-layer rate control for a multi-codec system |
US20140192870A1 (en) * | 2006-03-03 | 2014-07-10 | Vidyo, Inc. | System And Method For Providing Error Resilience, Random Access And Rate Control In Scalable Video Communications |
CN104661112A (zh) * | 2013-11-18 | 2015-05-27 | 南京中兴力维软件有限公司 | 基于可伸缩选择窗口的视频流文件传输方法及装置 |
CN112235606A (zh) * | 2020-12-11 | 2021-01-15 | 全时云商务服务股份有限公司 | 一种多层视频处理方法、系统和可读存储介质 |
-
2021
- 2021-03-18 CN CN202110289934.1A patent/CN112689148B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140192870A1 (en) * | 2006-03-03 | 2014-07-10 | Vidyo, Inc. | System And Method For Providing Error Resilience, Random Access And Rate Control In Scalable Video Communications |
US20140169454A1 (en) * | 2010-07-01 | 2014-06-19 | Broadcom Corporation | Method and system for multi-layer rate control for a multi-codec system |
CN104661112A (zh) * | 2013-11-18 | 2015-05-27 | 南京中兴力维软件有限公司 | 基于可伸缩选择窗口的视频流文件传输方法及装置 |
CN112235606A (zh) * | 2020-12-11 | 2021-01-15 | 全时云商务服务股份有限公司 | 一种多层视频处理方法、系统和可读存储介质 |
Non-Patent Citations (1)
Title |
---|
SACHIN DESHPANDE: "AHG9: A Summary of Proposals Related to HRD", 《JOINT VIDEO EXPERTS TEAM (JVET)OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11 19TH MEETING: BY TELECONFERENCE, 22 JUNE – 1 JULY 2020 》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113259668A (zh) * | 2021-07-12 | 2021-08-13 | 全时云商务服务股份有限公司 | 云会议共享桌面动态编码方法、装置、设备及存储介质 |
CN113259668B (zh) * | 2021-07-12 | 2021-10-08 | 全时云商务服务股份有限公司 | 云会议共享桌面动态编码方法、装置、设备及存储介质 |
CN113286149A (zh) * | 2021-07-21 | 2021-08-20 | 全时云商务服务股份有限公司 | 一种云会议自适应多层视频编码方法、系统和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112689148B (zh) | 2021-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6873654B1 (en) | Method and system for predictive control for live streaming video/audio media | |
US10264271B2 (en) | Coded-block-flag coding and derivation | |
CN112689148B (zh) | 一种云会议中多层视频传输去峰值方法、系统和存储介质 | |
CN109413427B (zh) | 一种视频帧编码方法及终端 | |
CN112040233B (zh) | 视频编码、视频解码方法和装置、电子设备及存储介质 | |
EP2096870A2 (en) | Systems and methods for processing multiple projections of video data in a single video file | |
CN109660879A (zh) | 直播丢帧方法、系统、计算机设备和存储介质 | |
CN112333448B (zh) | 视频编码、解码方法和装置、电子设备和存储介质 | |
CN112351285B (zh) | 视频编码、解码方法和装置、电子设备和存储介质 | |
CN107872669A (zh) | 视频码率处理方法和装置 | |
US9596462B2 (en) | Image processing apparatus, method, and medium with feedback control and quantization search | |
CN112165620A (zh) | 视频的编码方法及装置、存储介质、电子设备 | |
CN111617466B (zh) | 编码格式的确定方法、装置及云游戏的实现方法 | |
CN111263153A (zh) | 视频编码方法、装置、设备及存储介质 | |
CN110446045B (zh) | 视频编码方法、装置、网络设备及存储介质 | |
CN114245196B (zh) | 一种录屏推流方法、装置、电子设备及存储介质 | |
US8681860B2 (en) | Moving picture compression apparatus and method of controlling operation of same | |
CN109218722B (zh) | 一种视频编码方法、装置及设备 | |
CN110800297B (zh) | 视频编码方法及装置、计算机可读存储介质 | |
WO2016140883A1 (en) | Content-adaptive b-picture pattern video encoding | |
CN115460458B (zh) | 视频丢帧方法和设备 | |
CN116962613A (zh) | 数据传输方法及装置、计算机设备、存储介质 | |
CN112351284B (zh) | 视频编码、解码方法和装置、电子设备和存储介质 | |
CN110677728A (zh) | 播放视频的方法、装置、设备及存储介质 | |
US10531096B2 (en) | Decoder, method and system for decoding multimedia streams |
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 |