掌桥专利:专业的专利平台
掌桥专利
首页

一种源码流数据自适应平滑处理方法、系统及存储介质

文献发布时间:2024-04-18 19:58:30


一种源码流数据自适应平滑处理方法、系统及存储介质

技术领域

本申请涉及源码流数据处理的技术领域,特别涉及一种源码流数据自适应平滑处理方法、系统及存储介质。

背景技术

在数字视频领域中,为了解决网络延时导致的码流抖动问题,在设备接收码流时通常会进行缓存平滑操作。这种缓存平滑功能需要保证输出码率略大于输入码率,以避免缓存溢出丢包的情况。

然而,由于对输入码率计算的延迟性,当输入源码流不确定时,即在输入码流的码率波动较大或者是VBR(VariableBit Rate,动态比特率)流时,不能仅根据当前计算的输入码率来判定输出码率,否则可能出现输入码率大于输出码率的情况,导致缓存溢出丢包。当输入源码流不确定时,为了适应不同类型的传输流特性,一般为VBR流和CBR(ConstantsBit Rate,固定码率)流,后端设备需要能够自动判断和识别输入码流的特性,并相应地进行接收处理。

因此,在现有技术中,需要一种装置或算法来实现自动识别输入码流特性的功能。

发明内容

本申请为了解决背景技术中所述的当输入源码流不确定时,后端设备不能够自动判断和识别输入码流的特性,从而导致缓存溢出丢包的技术问题,提供了一种源码流数据自适应平滑处理方法、系统及存储介质。本申请能够正确适配CBR流或VBR流的特性并确保后端能够平滑处理接收的码流。

第一方面,本申请提供了一种源码流数据自适应平滑处理方法,所述方法应用于视频数据处理,所述方法包括:

将源码流数据转换为TS传输流;

根据PCR计算所述TS传输流的第一码率值,根据所述第一码率值识别所述TS传输流的码流特性;

根据不同的所述TS传输流的码流特性计算相应的第二码率值,并监控所述第一码率值和所述第二码率值之间的稳定性,将稳定的码率值存储到第一存储器中;

根据所述第一存储器的码率值读取第二存储器存储预设的标准码率值,完成源码流数据的自适应平滑处理。

在一些优选的实施例中,所述根据PCR计算所述TS传输流的第一码率值,根据所述第一码率值识别所述TS传输流的码流特性的步骤包括:

判断所述TS传输流是否存在PCR;

若无,则判定所述TS传输流为VBR流;

若有,则进一步根据当前PCR和前次PCR来计算第一码率值;

根据当前第一码率值和前次第一码率值来判定所述当前第一码率值是否波动小;

若是,则判定所述TS传输流为CBR流;

若否,则判定所述TS传输流为VBR流。

在一些优选的实施例中,所述计算第一码率值的算法包括:

其中,Rate表示第一码率值;PCR(i)表示当前的PCR值;PCR(i-1)表示前次的PCR值,Pcnt表示当前与前次的PCR之间TS传输包的数目。

在一些优选的实施例中,所述根据当前第一码率值和前次第一码率值来判定所述当前第一码率值是否波动小的步骤包括:

计算当前第一码率值和前次第一码率值之间的变化率,并判定所述变化率是否小于第一阈值;

若否,则第一计数器的值加一,重新计算并判定变化率是否小于第一阈值;

若是,则所述第一计数器的值清零,且判定所述当前第一码率值的波动小;

当所述第一计数器的值大于第二阈值时,判定所述当前第一码率值的波动大。

在一些优选的实施例中,所述变化率的计算算法包括:

其中,ratio表示变化率;Cr为当前码率值;Pr为前次码率值。

在一些优选的实施例中,所述根据不同的所述TS传输流的码流特性计算相应的第二码率值的步骤包括:

当所述TS传输流的码流特性为CBR流时,根据前后的PCR值的差值和在差值范围内的第一TS传输包数目计算第二码率值;

当所述TS传输流的码流特性为VBR流时,根据第三阈值时间间隔和在时间间隔范围内的第二TS传输包数目计算第二码率值。

在一些优选的实施例中,所述监控所述第一码率值和所述第二码率值的稳定性,将稳定的码率值存储到第一存储器中的步骤包括:

当所述TS传输流的码流特性为CBR流时,判定所述第一码率值和所述第二码率值之间的变化率是否小于第四阈值范围;

若是,则将第二码率值存储到第一存储器中;

若否,则第二计数器的值加一,当所述第二计数器的值大于第五阈值时重新判定所述TS传输流的码流特性;

当所述TS传输流的码流特性为VBR流时,判定所述第二码率值是否大于所述第一码率值;

若是,则将第二码率值存储到第一存储器中;

若否,则第三计数器的值加一,当所述第三计数器的值大于第六阈值时重新判定所述TS传输流的码流特性。

在一些优选的实施例中,所述根据所述第一存储器的码率值读取第二存储器存储预设的标准码率值的算法包括:

Ro=(1+A)Ri(A大于0);

其中,Ro为所述第二存储器读取输出的码率值;Ri为第一存储器输入到所述第二存储器的码率值。

第二方面,本申请提供了一种源码流数据自适应平滑处理系统,包括:

转码器,用于将接收的源码流数据转换为TS传输流;

码流特性识别模块,用于接收所述转码器传输的TS传输流,并对所述TS传输流进行码流特性识别;

码率计算模块,用于计算所述TS传输流的码流值;

码流平滑处理模块,设置有第一存储器和第二存储器,用于根据所述第一存储器中的码率值读取所述第二存储器存储的标准码流值;

处理器,用于执行如第一方面所述源码流数据自适应平滑处理方法的步骤。

第三方面,本申请提供一种计算机可读存储介质,其存储有可由处理器执行的计算机程序,当所述程序在所述处理器上运行时,使得所述处理器执行如第一方面所述的源码流数据自适应平滑处理方法的步骤。

本申请的有益效果在于:

1.本申请采用在设备接收码流时进行识别源码流数据的码流特性,来实现自动识别输入码流特性的功能。通过将源码流数据转换为TS传输流并计算TS传输流的第一码率值,根据第一码率值识别TS传输流的码流特性,以确保能够正确适配CBR流或VBR流的特性。

2.本申请采用计算并重新调整输入码流的码率值,以确保后端能够平滑处理接收的码流。通过监控第一码率值和所述第二码率值之间的稳定性,将稳定的第一码率值或第二码率值存储到第一存储器中以作为读取第二存储器中标准码率值的依据,防止缓存溢出丢包,防止出现输入码率大于输出码率的情况。

3.本申请通过识别源码流数据的码流特性,适配不确定的源码流数据平滑处理,提高了对源码流数据平滑处理系统的兼容性和码流平滑处理的可用性。

附图说明

图1为本申请实施例提供的一种源码流数据自适应平滑处理方法的步骤流程图。

图2为本申请实施例提供的码流特性识别的步骤流程图。

图3为本申请实施例提供的码流特性识别的判定流程图。

图4为本申请实施例提供的CBR流的判定流程图。

图5为本申请实施例提供的VBR流的判定流程图。

图6为本申请实施例提供的一种源码流数据自适应平滑处理系统的结构示意图。

其中:10-处理器、20-转码器、30-码流特性识别模块、40-码率计算模块、50-码流平滑处理模块;

a-源码流数据自适应平滑处理系统。

具体实施方式

下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。

实施例一

请参阅图1,图1示出了本申请实施例提供的一种源码流数据自适应平滑处理方法的步骤流程图。

该方法应用于视频数据处理,其步骤包括:

步骤101、将源码流数据转换为TS(Transport Stream,一种高清视频格式)传输流。

步骤102、根据PCR(Program Clock Reference,是指数字视频传输中的一个关键时间参考点)。计算所述TS传输流的第一码率值,根据所述第一码率值识别所述TS传输流的码流特性。

步骤103、根据不同的所述TS传输流的码流特性计算相应的第二码率值,并监控所述第一码率值和所述第二码率值之间的稳定性,将稳定的码率值存储到第一存储器中。

步骤104、根据所述第一存储器的码率值读取第二存储器存储预设的标准码率值,完成源码流数据的自适应平滑处理。

在步骤101中,首先,处理器需要通过转码器将源码流数据转换为TS传输流数据,后续才能进一步的识别传输的数据的码流特性。

在步骤102中,处理器通过码流特性识别模块进行识别功能。处理器需要根据PCR判断识别TS传输流的码流特性。首先,处理器需要识别码流是否含有PCR包,在一定时间内如果识别到无PCR包时,则判断该码流为VBR(VariableBit Rate,动态比特率)流;若识别到PCR包时,则根据PCR包的特性计算第一码率值。然后,根据多次计算的第一码率值判定波动是否大,若波动较大,则判定该码流为VBR流,若波动较小,则判定该码流为CBR(ConstantsBit Rate,固定码率)流。

在步骤103中,处理器通过码率计算模块进行码率值计算。在识别了TS传输流的码流特性后,由于VBR流和CBR流的码流特性不同,处理器需要根据各自的特性计算第二码率值,然后再将第一码率值和第二码率值作比较,若为VBR流,则比较第一码率值和第二码率值的大小,将较大的码率值存储到第一存储器中;若为CBR流,则判定第一码率值和第二码率值的波动大小,波动小,则将第二码率值存储到第一存储器中。通过步骤103可以计算并重新调整输入码流的码率值。

在步骤104中,处理器通过码流平滑处理模块进行平滑处理。处理器以第一存储器中存储的码率值作为输入码流来读取第二存储器内存储的标准码流值,进而平滑处理输出码流值。

在本实施例中,第一存储器可以为RAM存储器(Random Access Memory,一种计算机临时存储器),第二存储器可以为DDR存储器(Double Data Rate,双倍速率同步动态随机存储器)。其实际依赖于DDR存储器传输数据的等效频率是工作频率的两倍的特性,实现对TS传输流的平滑处理功能。

通过上述的步骤原理,可以很好的实现识别码流特性和及时计算输入码流的码率值,结合后级的码率值缓存到码流平滑处理模块中可以更好的适配对于输入源的不确定性做对应的输出平滑,避免由于输入源突发抖动大、码流非标准等原因出现码流平滑处理模块出包不及时导致的丢包问题。

实施例二

在上一实施例的基础上,本实施例的不同点在于:

请参考图2和图3。图2示出了本申请实施例提供的码流特性识别的步骤流程图。

图3示出了本申请实施例提供的码流特性识别的判定流程图。

在本实施例中,步骤102包括:

步骤201、判断所述TS传输流是否存在PCR。

步骤202、若无,则判定所述TS传输流为VBR流。

步骤203、若有,则进一步根据当前PCR和前次PCR来计算第一码率值。

步骤204、根据当前第一码率值和前次第一码率值来判定所述当前第一码率值是否波动小。

步骤205、若是,则判定所述TS传输流为CBR流。

步骤206、若否,则判定所述TS传输流为VBR流。

在步骤201~203中,首先,处理器通过码流特性识别模块识别TS传输流是否存在PCR,如果在一定时间内识别到无PCR包时判断该流为VBR流,如果存在PCR,则根据PCR的特性进一步计算第一码率值。

在本实施例中,计算第一码率值的算法可以为:

其中,Rate表示第一码率值;PCR(i)表示当前的PCR值;PCR(i-1)表示前次的PCR值,Pcnt表示当前与前次的PCR之间TS传输包的数目。

在步骤204~206中,处理器需要计算当前第一码率值和前次第一码率值之间的变化率,并判定变化率是否小于第一阈值。当变化率不小于第一阈值时,则第一计数器的值加一,随后返回重新计算并判定变化率是否小于第一阈值。当第一计数器的数目累积到一定值时,即大于第二阈值,则认为当前第一码率值的波动大,判定该TS传输流为VBR流。

在本实施例中,计算变化率的算法包括:

其中,ratio表示变化率;Cr为当前码率值;Pr为前次码率值。

当变化率小于第一阈值时,则第一计数器的值清零,且认为当前第一码率值的波动小,判定该TS传输流为CBR流。

如图4所示,图4示出了本申请实施例提供的CBR流的判定流程图。

在步骤103中,当TS传输流的码流特性为CBR流时,处理器需要根据前后的PCR值的差值和在差值范围内的第一TS传输包数目计算第二码率值。进一步的,判定第一码率值和第二码率值之间的变化率是否小于第四阈值范围。若是,则将第二码率值存储到第一存储器中。若否,则第二计数器的值加一,当第二计数器的值大于第五阈值时重新判定TS传输流的码流特性。

在本实施例中,具体的,当码流特性判断为CBR流时,其第二码率值为前级码率特性判断时,通过PCR特性得到的码率值。这种码率计算方式对比于一般统计固定时间T内统计包数从而计算码率的方式更加适配CBR码流的特性且精确,可以更大程度上平滑因为IP等网络环境因素导致的突发抖动。同时为了应对输入TS传输流出现变化的情况,在其判定为CBR流时仍然需要通过对比其计算码率的大小变化情况,通过比较前后计算的码率数值是否在固定范围的码率波动,其错误时第二计数器累加并继续计算其码率波动情况,当该码流PCR计算码率连续波动时。即通过计算变化率进行判断,其错误计数值加1并继续计算其码率波动情况,在错误计数累计到X次前其码率对比只要有一次波动小于这个数值,则清空该错误计数值。该方式是为了识别该码流的偶然性错误及中途出现换流的情况,需要自适应动态的重新识别其码流特性。

如图5所示,图5示出了本申请实施例提供的VBR流的判定流程图。

在步骤103中,当TS传输流的码流特性为VBR流时,处理器需要根据第三阈值时间间隔和在时间间隔范围内的第二TS传输包数目计算第二码率值,以判定第二码率值是否大于第一码率值。若是,则将第二码率值存储到第一存储器中。若否,则第三计数器的值加一,并重新计算第二码率值。当第三计数器的值大于第六阈值时重新判定TS传输流的码流特性。

在本实施例中,具体的,当TS传输流的码流特性判断为VBR流时,第二码率值的计算为该码流在时间t内统计的包数除于时间,根据一定时间窗t的统计可以有效平滑在该时间内的码流突发,时间窗t值的大小决定平滑VBR流的宽度限制,取值越大其码率平滑的效果越好,所需要的缓存VBR流的空间越大;取值越小其码率平滑的效果越差,所需要的缓存VBR流的空间越小。将每次统计计算的第二码率值与锁定的第一码率值的大小做比对,取其较大的码率数值锁定作为新的输出码率,即将较大的码率数值存储到第一存储器中。

这种方式可以很好的适配输入码流突发抖动较大的情况和对非标准码流的平滑,对其输入码流起到一定平滑作用的缓存输出方式。同时为了实现对输入源发生变化时自动适应对输入源的动态重判定功能,其后会有一个计数器累计,当每次重计算码率值,其存储最大码率值不再变化时,计数器会累加计数,当累加计数达到N值时,将会重新判断码流特性,计数值N的取值影响重判断码流特性的时间响应,N值越大对源码流动态判断的时长越长。

在本实施例中,在设置的时间窗t为0.4s可以做到较好的平滑效果,且其缓存大小只需要存储0.4s内的码流,但是其对于大于0.4s时间窗的码率平滑效果则较差。设置的时间窗t越短,则其可以在更小的时间范围内做到码率上的平滑,所需要的缓存空间也越少,从而在整体上实现码率的平滑。同时由于计算时间窗的值越小,在长时间内的平均码率与其的差值可能越大,这时就会导致其在长时间范围内的码率平滑效果表现越差。

在步骤106中,根据第一存储器的码率值读取第二存储器存储预设的标准码率值的算法包括:

Ro=(1+A)Ri(A大于0);

其中,Ro为所述第二存储器读取输出的码率值;Ri为第一存储器输入到所述第二存储器的码率值。其A的取值需要在码率输出平滑效果和缓存空间大小做权衡,A一般取值范围在(0.001,0.03)之间,其取值越大,平滑效果越差,所需缓存空间越小;取值越小,平滑效果越好,但所需缓存空间越大,在实现缓存平滑码流的同时避免出现溢出丢包的情况,根据流特性识别读出的存储在第一存储器的码率数值作为其读出第二存储器中存储码流的读出码率,以达到最终平滑TS传输流的目的。

实施例三

如图6所示,本申请提供一种源码流数据自适应平滑处理系统a,包括处理器10、转码器20、码流特性识别模块30、码率计算模块40和码流平滑处理模块50。

其中,转码器20主要用于将接收的源码流数据转换为TS传输流。码流特性识别模块30主要用于接收转码器20传输的TS传输流,并对TS传输流进行码流特性识别。码率计算模块40主要用于计算TS传输流的码流值。码流平滑处理模块50设置有第一存储器和第二存储器,码流平滑处理模块50主要用于根据第一存储器中的码率值读取第二存储器存储的标准码流值。处理器10主要用于控制转码器20、码流特性识别模块30、码率计算模块40和码流平滑处理模块50执行如第一实施例或第二实施例的源码流数据自适应平滑处理方法的步骤。

该方法的步骤包括:

步骤101、将源码流数据转换为TS传输流。

步骤102、根据PCR计算所述TS传输流的第一码率值,根据所述第一码率值识别所述TS传输流的码流特性。

步骤103、根据不同的所述TS传输流的码流特性计算相应的第二码率值,并监控所述第一码率值和所述第二码率值之间的稳定性,将稳定的码率值存储到第一存储器中。

步骤104、根据所述第一存储器的码率值读取第二存储器存储预设的标准码率值,完成源码流数据的自适应平滑处理。

在步骤101中,首先,处理器10需要通过转码器20将源码流数据转换为TS传输流数据,后续才能进一步的识别传输的数据的码流特性。

在步骤102中,处理器10通过码流特性识别模块30进行识别功能。处理器10需要根据PCRPCR判断识别TS传输流的码流特性。首先,处理器10需要识别码流是否含有PCR包,在一定时间内如果识别到无PCR包时,则判断该码流为VBR流;若识别到PCR包时,则根据PCR包的特性计算第一码率值。然后,根据多次计算的第一码率值判定波动是否大,若波动较大,则判定该码流为VBR流,若波动较小,则判定该码流为CBR流。

在步骤103中,处理器10通过码率计算模块40进行码率值计算。在识别了TS传输流的码流特性后,由于VBR流和CBR流的码流特性不同,处理器10需要根据各自的特性计算第二码率值,然后再将第一码率值和第二码率值作比较,若为VBR流,则比较第一码率值和第二码率值的大小,将较大的码率值存储到第一存储器中;若为CBR流,则判定第一码率值和第二码率值的波动大小,波动小,则将第二码率值存储到第一存储器中。通过步骤103可以计算并重新调整输入码流的码率值。

在步骤104中,处理器10通过码流平滑处理模块50进行平滑处理。处理器10以第一存储器中存储的码率值作为输入码流来读取第二存储器内存储的标准码流值,进而平滑处理输出码流值。

在本实施例中,第一存储器可以为RAM存储器,第二存储器可以为DDR存储器。其实际依赖于DDR存储器传输数据的等效频率是工作频率的两倍的特性,实现对TS传输流的平滑处理功能。

通过上述的结构连接,本申请实施例的工作原理可以为:首先,转码器20将源码流数据转换为TS传输流,再通过码流特性识别模块30识别TS传输流的码流特性。在识别出TS传输流的码流特性后,码率计算模块40可以自适应地根据TS传输流的码流特性计算出相应的码率流值,即第一码率值和第二码率值,然后再从第一码率值和第二码率值之间比较优选出用于读取的输入码率值,将该输入码率值存储在码流平滑处理模块50的第一存储器中。最后,码流平滑处理模块50根据第一存储器存储的码率值读取第二存储器的标准码率值。

值得说明的是,第二存储器读取输出的码率值需要略大于输入码率,这样,才能在实现缓存平滑码流的同时避免出现溢出丢包的情况。

本申请实施例能够识别出输入的源码流数据的码流特性,进而自适应的对源码流数据进行平滑处理,防止溢出丢包的情况。

实施例四

本申请提供一种计算机可读存储介质,其存储有可由处理器执行的计算机程序,当所述程序在所述处理器上运行时,使得所述处理器执行如第一实施例或第二实施例所述的源码流数据自适应平滑处理方法的步骤。

在此提供的算法或显示不与任何特定计算机、虚拟系统或者其它设备固有相关。此外,本发明实施例也不针对任何特定编程语言。

在此处所提供的说明书中,说明了大量具体细节。然而能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。类似地,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。其中,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。上述实施例中的步骤,除有特殊说明外,不应理解为对执行顺序的限定。

相关技术
  • 一种虚拟现实数据处理方法、装置、系统及存储介质
  • 一种数据处理方法、装置、系统、服务器及存储介质
  • 一种商品数据的处理方法、系统、服务器和存储介质
  • 一种数据处理方法、系统、装置及可读存储介质
  • 一种流数据处理方法、系统、装置及计算机可读存储介质
  • 一种多源异构数据采集自适应识别方法、系统及存储介质
  • 多个源系统数据的处理方法、装置、系统及可读存储介质
技术分类

06120116501336