CN114501135B - 一种两级平滑实现码流去抖动的方法和装置 - Google Patents

一种两级平滑实现码流去抖动的方法和装置 Download PDF

Info

Publication number
CN114501135B
CN114501135B CN202210009990.XA CN202210009990A CN114501135B CN 114501135 B CN114501135 B CN 114501135B CN 202210009990 A CN202210009990 A CN 202210009990A CN 114501135 B CN114501135 B CN 114501135B
Authority
CN
China
Prior art keywords
stream
ram
packets
code rate
processed
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
Application number
CN202210009990.XA
Other languages
English (en)
Other versions
CN114501135A (zh
Inventor
黄化吉
刁学斌
江锐
袁金保
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
WELLAV TECHNOLOGIES Ltd
Original Assignee
WELLAV TECHNOLOGIES Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by WELLAV TECHNOLOGIES Ltd filed Critical WELLAV TECHNOLOGIES Ltd
Priority to CN202210009990.XA priority Critical patent/CN114501135B/zh
Publication of CN114501135A publication Critical patent/CN114501135A/zh
Application granted granted Critical
Publication of CN114501135B publication Critical patent/CN114501135B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440263Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by altering the spatial resolution, e.g. for displaying on a connected PDA

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明针对现有技术的局限性,提出了一种两级平滑实现码流去抖动的方法和装置,通过两级平滑,粗平滑加细平滑的方式,实现了TS码流恢复CBR码流均匀特性,对DDR缓存的空间及带宽占用较少,对RAM缓存也占用较少,以消耗了非常少的硬件资源实现了精准恢复TS码流的均匀间隔特性,具有非常高的现实利用价值;可应用于如在IP网络传输TS流,S/S2卫星网络传输TS流及其他的会对TS流传输带来突发和抖动场合的传输网络接收后对突发和抖动的TS码流进行平滑去抖动,恢复出CBR码流均匀包间隔的特性,在后续码流处理输出情况下可有更广泛应用,可应用于数字视频领域及广电前端设备。

Description

一种两级平滑实现码流去抖动的方法和装置
技术领域
本发明涉及数字视频流技术领域,具体地,涉及一种两级平滑实现码流去抖动的方法和装置。
背景技术
实现IP网络传输数字视频流,利用IP网络更方便传输交互的同时,网络波动的产生对传输流带来很大的突发抖动,如果不对其做平滑处理消除抖动,在后续的传输处理中很容易带来PCR指标性的错误甚至丢包的后果,往往是致使视频播放出现各种错误的重要问题所在。而且在对TS流做格式转换、编解码、PCR校正等处理时,需要平滑的码流输入输出才能做好相应的处理,这对码流的平滑程度具有更高的要求。
在某些特殊的应用中,需要对因传输原因所产生抖动的CBR码流恢复出严格的TS包均匀间隔特性,否则将会影响后续的码流处理。比如某些码流从IP网络传输,接收后需要直通从ASI接口输出,且要保证ASI输出时PCR指标是完全不受影响的,这种应用就需要在ASI输出之前完全恢复CBR码流的均匀间隔特性,其对码流平滑程度要求的精度非常之高,一般的码流平滑方式是没有办法达到此种精度要求的。
如公告日为2019.12.27的中国发明专利:一种码率控制方法和装置所示,现有技术中,为了实现码流的平滑而使用多级DDR存储,占用非常大的缓存存储空间,以及使用非常高的读写带宽,占用了非常大的硬件资源,其对应的设计成本也相对较高,实现的码流平滑程度相对也不够高。
发明内容
针对现有技术的局限,本发明提出一种两级平滑实现码流去抖动的方法和装置,本发明采用的技术方案是:
一种两级平滑实现码流去抖动的方法,包括以下步骤:
S1,获取待处理TS流;
S2,以DDR作为缓存,对所述待处理TS流进行TS码流粗平滑处理;
S3,以RAM作为缓存,对经过所述步骤S2处理的TS流进行TS码流细平滑处理。
相较于现有技术,本发明通过两级平滑,粗平滑加细平滑的方式,实现了TS码流恢复CBR码流均匀特性,对DDR缓存的空间及带宽占用较少,对RAM缓存也占用较少,以消耗了非常少的硬件资源实现了精准恢复TS码流的均匀间隔特性,具有非常高的现实利用价值;可应用于如在IP网络传输TS流,S/S2卫星网络传输TS流及其他的会对TS流传输带来突发和抖动场合的传输网络接收后对突发和抖动的TS码流进行平滑去抖动,恢复出CBR码流均匀包间隔的特性,在后续码流处理输出情况下可有更广泛应用,可应用于数字视频领域及广电前端设备。
作为一种优选方案,在所述步骤S2中,包括以下过程:
S21,对所述待处理TS流进行码率统计,获得所述待处理TS流的码率;
S22,将所述待处理TS流写入DDR,统计在DDR中缓存的包数;
S23,根据所述待处理TS流的码率以及在DDR缓存的包数,对所述待处理TS流进行TS码流粗平滑处理。
进一步的,在所述步骤S21中,通过计算预设的定时长度内所述待处理TS流的包数获得所述待处理TS流的码率,或通过以下方式获得所述待处理TS流的码率:
对所述待处理TS流中的两个相邻PCR包的PCR值进行解析;计算这两个相邻PCR包之间的包数;根据得到的PCR值以及这两个相邻PCR包之间的包数,推导出所述待处理TS流的码率。
更进一步的,在所述步骤S23中,通过以下公式控制DDR的输出码率Ro,实现所述TS码流粗平滑处理:
Ro=R+A*Δ;
其中,R为所述待处理TS流的码率;A为预设的比例控制系数;Δ为所述待处理TS流在DDR缓存的包数与DDR可缓存包数的一半之间的差值。
作为一种优选方案,在所述步骤S3中,包括以下过程:
S31,对经过所述步骤S2处理的TS流中的两个相邻PCR包的PCR值进行解析;计算这两个相邻PCR包之间的包数;根据得到的PCR值以及这两个相邻PCR包之间的包数,推导出经过所述步骤S2处理的TS流的码率;
S32,将经过所述步骤S2处理的TS流写入RAM,统计在RAM缓存的包数;
S33,根据经过所述步骤S2处理的TS流的码率以及在RAM缓存的包数,对经过所述步骤S2处理的TS流进行TS码流细平滑处理。
进一步的,在所述步骤S33中,通过以下方式控制RAM的输出码率Ro,实现所述TS码流细平滑处理:
对于可缓存包数为B的的RAM,在RAM的半满位置B/2的上下分别设置缓冲区ΔB;执行以下过程:
在RAM中逐步累积TS包,当TS包的位置线第一次到达B/2,即在RAM缓存的包数D(0)=B/2时,启动RAM读出控制以及一个定时时间为T的周期定时器,以所述步骤S31推导出的码率作为RAM的输出码率;
RAM读出控制启动后第i次到达周期定时器的定时时间T时,读取此时在RAM缓存的包数D(i),根据包数D(i)判决RAM的输出码率是否需要调整及确定调整方向:如果{B/2-ΔB≤D(i)≤B/2+ΔB}或{B/2+ΔB<D(i)≤B且D(i-1)>D(i)}或{0≤D(i)<B/2-ΔB且D(i-1)≤D(i)},则使RAM的输出码率保持不变R(i)=R(i-1),i=1,2,3,…;如果{B/2+ΔB<D(i)≤B且D(i-1)≤D(i)},则使RAM的输出码率R(i)=R(i-1)+ΔR;如果{0≤D(i)<B/2-ΔB且D(i-1)>D(i)},则使RAM的输出码率R(i)=R(i-1)-ΔR。
更进一步的,所述步骤S31推导出的码率呈现为TS包之间的均匀出包间隔G(R),表现为以下存在小数的形式:
G(R)=X.Y′;
通过以下方式对G(R)进行调整:
通过以一个16位位宽的数对小数部分Y′进行归一化,即Y=floor(Y′*2^16),将小数部分的Y′转化为包含Y的分数形式,则:
在所述步骤S33中,将对RAM的输出码率R(i)的调整ΔR表征为对Y的调整ΔY。
更进一步的,第i次到达周期定时器的定时时间T时,X和Y表现形式如下:
Xi=X0+MYi,i=1,2,3,…;
{MYi,Yi}={MYi-1,Yi-1}+di-1*ΔY,di-1∈[-1,0,1],i=1,2,3,…;
其中,X0为X的初始值,Y0为Y的初始值;MYi为Yi借位/进位参数,用于对X进行调整补偿;d表示根据在RAM缓存的包数D(i)判决RAM的输出码率是否需要调整及确定调整方向的结果,d的范围为[-1,0,1]。
更进一步的,运用计数器CntX和CntY对X和Y进行调整,其中CntY为一个16位位宽的计数器;每次当CntX计数到Xi的时候进行使能递增,增量为Yi;当CntY值大于或等于65536时则产生一个进位信号Carry同时其值减去65536之后的余数进行下一次累积递增运算;CntX为每个时钟递增计数,计数范围为[~Carry,Xi],CntX每次计数至Xi需要进行返回,CntX返回的值则由CntY的进位信号Carry控制,如果需要进位,则返回值为0,否则返回值为1,以此控制作为分数形式的Y对计数精度的补偿:
CntXj=CntXj-1+1,CntX∈[~Carryk,Xi];
[Carryk,CntYk]=[Carryk-1,CntYk-1]+Yi
其中,i表示定时计数器T的定时次数,j为时钟节拍,k则表示当(CntXj=Xi)条件成立时的时钟节拍。
本发明还提供以下内容:
一种两级平滑实现码流去抖动的装置,包括DDR以及RAM,还包括接收模块、粗平滑处理模块以及细平滑模块;所述接收模块连接所述粗平滑处理模块,所述粗平滑处理模块连接所述DDR以及细平滑模块,所述细平滑模块连接所述RAM;其中:
所述接收模块用于获取待处理TS流;
所述粗平滑处理模块用于以DDR作为缓存,对所述待处理TS流进行TS码流粗平滑处理;
所述细平滑模块用于以RAM作为缓存,对经过所述步骤S2处理的TS流进行TS码流细平滑处理。
附图说明
图1为本发明提供的两级平滑实现码流去抖动的方法的流程示意图;
图2为本发明TS码流粗平滑处理的原理示意图;
图3为本发明步骤S21码率获取的原理示意图;
图4为本发明TS码流细平滑处理的原理示意图;
图5为本发明运用PCR推导码率的原理示意图;
图6为本发明在根据RAM空间TS包数量变化对输出码率控制的原理示意图;
图7为本发明提供的两级平滑实现码流去抖动的装置示意图。
具体实施方式
附图仅用于示例性说明,不能理解为对本专利的限制;
应当明确,所描述的实施例仅仅是本申请实施例一部分实施例,而不是全部的实施例。基于本申请实施例中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本申请实施例保护的范围。
在本申请实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请实施例。在本申请实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。在本申请的描述中,需要理解的是,术语“第一”、“第二”、“第三”等仅用于区别类似的对象,而不必用于描述特定的顺序或先后次序,也不能理解为指示或暗示相对重要性。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。
此外,在本申请的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。以下结合附图和实施例对本发明做进一步的阐述。
为了解决现有技术的局限性,本实施例提供了一种技术方案,下面结合附图和实施例对本发明的技术方案做进一步的说明。
实施例1
请参考图1,一种两级平滑实现码流去抖动的方法,包括以下步骤:
S1,获取待处理TS流;
S2,以DDR作为缓存,对所述待处理TS流进行TS码流粗平滑处理;
S3,以RAM作为缓存,对经过所述步骤S2处理的TS流进行TS码流细平滑处理。
经过上述处理后,即可通过TS码流输出接口输出经过去抖动的TS流。
相较于现有技术,本发明通过两级平滑,粗平滑加细平滑的方式,实现了TS码流恢复CBR码流均匀特性,对DDR缓存的空间及带宽占用较少,对RAM缓存也占用较少,以消耗了非常少的硬件资源实现了精准恢复TS码流的均匀间隔特性,具有非常高的现实利用价值;可应用于如在IP网络传输TS流,S/S2卫星网络传输TS流及其他的会对TS流传输带来突发和抖动场合的传输网络接收后对突发和抖动的TS码流进行平滑去抖动,恢复出CBR码流均匀包间隔的特性,在后续码流处理输出情况下可有更广泛应用,可应用于数字视频领域及广电前端设备。
具体的,本实施例所提供的方案,采用了两级平滑的方式:第一级是粗平滑,使用DDR作为TS包的缓存,主要是抗较大码率抖动和突发,相应需要较大的缓存空间;第二级是细平滑,使用RAM来作为TS包的缓存,更具体的,可以使用FPGA片内的RAM来作为缓存,只需要较小的缓存空间即可实现精准平滑输出。
实施例2
本实施例可以视为实施例1基础上改进得到的一种优选实施例,请参阅图2至5,一种两级平滑实现码流去抖动的方法,包括以下步骤:
S1,获取待处理TS流;
S2,以DDR作为缓存,对所述待处理TS流进行TS码流粗平滑处理;
S3,以RAM作为缓存,对经过所述步骤S2处理的TS流进行TS码流细平滑处理;
具体的,两级平滑除了存储方式上不同之外,其控制方式也不同,粗和细也反映了其控制方式的精细程度。以下分别介绍两级平滑的实现:
在所述步骤S2中,请参阅图2,包括以下过程:
S21,对所述待处理TS流进行码率统计,获得所述待处理TS流的码率;
S22,将所述待处理TS流写入DDR,统计在DDR中缓存的包数;
S23,根据所述待处理TS流的码率以及在DDR缓存的包数,对所述待处理TS流进行TS码流粗平滑处理;
具体的,在所述步骤S2中,输入的TS流先写入DDR存储空间,同时统计输入码流的码率,通过统计得到的输入码流码率及DDR缓存空间的深度进行平滑控制,并根据平滑控制的结果从DDR读出TS包。
请参阅图3,在所述步骤S21中,可以通过计算预设的定时长度内所述待处理TS流的包数获得所述待处理TS流的码率,也可以通过以下方式获得所述待处理TS流的码率:
对所述待处理TS流中的两个相邻PCR包的PCR值进行解析;计算这两个相邻PCR包之间的包数;根据得到的PCR值以及这两个相邻PCR包之间的包数,推导出所述待处理TS流的码率;
具体的,上述两种方式中,第一种实现比较简单,计算结果精度较低;第二种实现稍为复杂,计算结果精度较高。
在所述步骤S23中,通过以下公式控制DDR的输出码率Ro,实现所述TS码流粗平滑处理:
Ro=R+A*Δ;
其中,R为所述待处理TS流的码率;A为预设的比例控制系数;Δ为所述待处理TS流在DDR缓存的包数与DDR可缓存包数的一半之间的差值;
具体的,当DDR缓存中包数刚好为DDR可缓存包数的一半时,DDR的输出码率等于所述待处理TS流的码率;当DDR缓存中包数大于或者小于DDR可缓存包数的一半时,计算当前DDR缓存中包数与DDR可缓存包数的一半之间的差值Δ,大于时Δ为正,否则为负。
比例控制系数可以根据实际情况进行调整,A的值如果设置较小,则平滑去抖的效果较好,相应的TS码流突发和抖动就主要靠DDR缓存空间来吸收,因此DDR缓存的承压就较大,需要较大的DDR缓存空间。A的值如果设置较大,则会在一定程度上将输入的抖动分担到输出,平滑去抖动的效果较弱,相应的对DDR缓存空间的压力较小,所需的DDR缓存空间较少。
请参阅图4,在所述步骤S3中,包括以下过程:
S31,对经过所述步骤S2处理的TS流中的两个相邻PCR包的PCR值进行解析;计算这两个相邻PCR包之间的包数;根据得到的PCR值以及这两个相邻PCR包之间的包数,推导出经过所述步骤S2处理的TS流的码率;
S32,将经过所述步骤S2处理的TS流写入RAM,统计在RAM缓存的包数;
S33,根据经过所述步骤S2处理的TS流的码率以及在RAM缓存的包数,对经过所述步骤S2处理的TS流进行TS码流细平滑处理;
具体的,细平滑处理输出的TS包需要非常均匀,其对码率的调整是非常缓慢的,这是为了保证在码流直通的场景下PCR_DR指标能够满足测试要求。由于其码率调整的速度非常缓慢,则要求初始输出码率需要足够精确,因为如果初始码率即有一定的偏差,则要将此偏差调整到与真实码率足够接近需要较长的时间,在此较长的时间内由于码率偏差对时间的积分则表现为TS包数的累积或流失,其结果反馈到实际应用场景则是需要更多的RAM存储空间。
在所述步骤S21或者S31中,请参阅图5,假设前后两个PCR包中的PCR值分别记为T_PCR(i-1)和T_PCR(i),两个PCR包之间的TS包数目为M(i),因为PCR值表示的是27MHz时钟的计数,则TS流码率可以推算如下:
由于现行标准中允许PCR精度存在+/-500ns的抖动,因此通过PCR推算的码率也是存在一个小范围的精度误差,为了尽量减少这个精度误差给平滑功能带来的影响,需要对计算得到的码率R(i)进行N次求平均的结果作为最终的结果,N可以根据实际情况再进行设定:
对于可缓存包数为B的的RAM,在RAM的半满位置B/2的上下分别设置缓冲区ΔB,那么[B/2-ΔB,B/2+ΔB]的位置可以视为一个TS包数位置线合理区间;在所述步骤S33中,通过以下方式控制RAM的输出码率Ro,实现所述TS码流细平滑处理:
在RAM中逐步累积TS包,当TS包的位置线第一次到达B/2,即在RAM缓存的包数D(0)=B/2时,启动RAM读出控制以及一个定时时间为T的周期定时器,以所述步骤S31推导出的码率作为RAM的输出码率;
RAM读出控制启动后第i次到达周期定时器的定时时间T时,读取此时在RAM缓存的包数D(i),根据包数D(i)判决RAM的输出码率是否需要调整及确定调整方向:如果{B/2-ΔB≤D(i)≤B/2+ΔB}或{B/2+ΔB<D(i)≤B且D(i-1)>D(i)}或{0≤D(i)<B/2-ΔB且D(i-1)≤D(i)},则使RAM的输出码率保持不变R(i)=R(i-1),i=1,2,3,…;如果{B/2+ΔB<D(i)≤B且D(i-1)≤D(i)},则使RAM的输出码率R(i)=R(i-1)+ΔR;如果{0≤D(i)<B/2-ΔB且D(i-1)>D(i)},则使RAM的输出码率R(i)=R(i-1)-ΔR;
具体的,合理置信缓冲区间ΔB是码率在递增和递减之间进行过度的变化缓冲窗口,可根据实际的经验调节以使算法的平滑过度。
定时长度T是可以进行经验设定的调节量,其值越小则细平滑算法对TS输出码率的调节越灵敏,对RAM空间的压力越小,平滑效果越差;其值越大则对码率的调节越缓慢,对RAM空间的压力越大,对平滑效果越好。
码率的调节量ΔR的调节作用与T的作用类似,其值越大则越灵敏,效果越差;越小则越缓慢,平滑效果越好。所不同的是其所代表单次调节的码率变化量,是不宜设置过大的,否则对PCR_DR指标有伤害。
TS包数的变化采用了微分形式作为判决条件,实际控制的输出码率变化对TS包位置线的作用是一种积分的方式。
对所述步骤S33中的过程进行分步描述,请参阅图6,过程如下:
a.系统上电启动运行,RAM中逐步累积TS包,在TS包位置线未到达B/2之前,RAM的读出使能关闭,RAM读出启动的条件是TS包位置线第一次达到B/2。
b.当TS包的位置线第一次到达B/2时,设RAM缓存深度为D,即D(0)=B/2,启动RAM读出控制,初始读出TS包的码率R(0)设置为前述PCR反推的码流码率R。
c.启动RAM读出控制的同时,启动一个周期定时器,定时时长T,T可根据实际情况进行设置。定时时间到达后触发算法读取此时的RAM缓存深度D(i),如果B/2≤D(i)≤B/2+ΔB,则RAM输出码率保持不变R(i)=R(i-1),i=1,2,3,…为正整数,下同。
d.此后,如果出现B/2+ΔB<D(i)≤B且D(i-1)≤D(i),即TS包位置线在B/2+ΔB之上且其趋势是上涨的,则R(i)=R(i-1)+ΔR,表示输出码率应朝码率增加的方向变化,以平抑缓存递增的趋势。
e.当输出码率逐步微调递增到一定程度后,码率的调节量已经足够平抑缓存递增的趋势,TS包的位置线将会出现回调,此时的情况是B/2+ΔB<D(i)≤B且D(i-1)>D(i),表示虽然TS包的位置在B/2+ΔB之上但其趋势是回落的,则码率的控制算法是R(i)=R(i-1),即码率保持不变。
f.当TS包位置线继续回落至B/2-ΔB≤D(i)≤B/2+ΔB,这个区间是TS包位置合理区间,因此输出码率保持不变R(i)=R(i-1)。
g.TS包位置线回落的趋势不变,终会回落至B/2-ΔB以下,此时0≤D(i)<B/2-ΔB且D(i-1)>D(i),即TS包位置线在B/2-ΔB以下且其趋势是继续回落,则R(i)=R(i-1)-ΔR,表示输出码率应朝码率减小的方向变化,以抵消缓存递减的趋势。
h.当TS码率微调递减到一定程度,TS包位置回落的趋势见底反转,此时0≤D(i)<B/2-ΔB且D(i-1)≤D(i),即TS包位置线在B/2-ΔB以下但其变化趋势是上涨的,此时输出码率保持不变R(i)=R(i-1)。
i.当TS包位置线上涨趋势继续且位于B/2-ΔB≤D(i)≤B/2+ΔB,这个区间是TS包位置合理区间,因此输出码率保持不变R(i)=R(i-1)。
j.当TS包位置先上涨至B/2+ΔB之上,即回到步骤d重新开始循环。
在实际的平滑控制算法应用中,需要将码率R转换为当前时钟频率下计数一定时钟数目G(R)输出一个TS包的形式,G(R)即表示为调整均匀后两个TS包之间的时钟数目的个数。
所述步骤S31推导出的码率呈现为TS包之间的均匀出包间隔G(R),表现为以下存在小数的形式:
G(R)=X.Y′;
由于实际实现时时钟数目最小单位为1,不可能有小数的情况,因此小数位Y′需要进行处理。如果是简单的四舍五入处理,对实际的码率影响是较大的,为了降低其对码率精度的影响,需要保留足够精度的Y′值结果。
通过以下方式对G(R)进行调整:
通过以一个16位位宽的数对小数部分Y′进行归一化,即Y=floor(Y′*2^16),将小数部分的Y′转化为包含Y的分数形式,则:
在所述步骤S33中,将对RAM的输出码率R(i)的调整ΔR表征为对Y的调整ΔY;
第i次到达周期定时器的定时时间T时,X和Y表现形式如下:
Xi=X0+MYi,i=1,2,3,…;
{MYi,Yi}={MYi-1,Yi-1}+di-1*ΔY,di-1∈[-1,0,1],i=1,2,3,…;
其中,X0为X的初始值,Y0为Y的初始值;MYi为Yi借位/进位参数,用于对X进行调整补偿;d表示根据在RAM缓存的包数D(i)判决RAM的输出码率是否需要调整及确定调整方向的结果,d的范围为[-1,0,1];
运用计数器CntX和CntY对X和Y进行调整,其中CntY为一个16位位宽的计数器;每次当CntX计数到Xi的时候进行使能递增,增量为Yi;当CntY值大于或等于65536时则产生一个进位信号Carry同时其值减去65536之后的余数进行下一次累积递增运算;CntX为每个时钟递增计数,计数范围为[~Carry,Xi],CntX每次计数至Xi需要进行返回,CntX返回的值则由CntY的进位信号Carry控制,如果需要进位,则返回值为0,否则返回值为1,以此控制作为分数形式的Y对计数精度的补偿:
CntXj=CntXj-1+1,CntX∈[~Carryk,Xi];
[Carryk,CntYk]=[Carryk-1,CntYk-1]+Yi
其中,i表示定时计数器T的定时次数,j为时钟节拍,k则表示当(CbtXj=Xi)条件成立时的时钟节拍。
通过以上所描述的细平滑的实现形式,最终将TS码流按其源流CBR的均匀特性严格精准的恢复出来,达到需要精准恢复码率CBR间隔所需的要求。
实施例3
一种两级平滑实现码流去抖动的装置,请参阅图2,包括DDR以及RAM,还包括接收模块1、粗平滑处理模块2以及细平滑模块3;所述接收模块1连接所述粗平滑处理模块2,所述粗平滑处理模块2连接所述DDR以及细平滑模块3,所述细平滑模块3连接所述RAM;其中:
所述接收模块1用于获取待处理TS流;
所述粗平滑处理模块2用于以DDR作为缓存,对所述待处理TS流进行TS码流粗平滑处理;
所述细平滑模块3用于以RAM作为缓存,对经过所述步骤S2处理的TS流进行TS码流细平滑处理。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。

Claims (8)

1.一种两级平滑实现码流去抖动的方法,其特征在于,包括以下步骤:
S1,获取待处理TS流;
S2,以DDR作为缓存,对所述待处理TS流进行TS码流粗平滑处理;
S3,以RAM作为缓存,对经过所述步骤S2处理的TS流进行TS码流细平滑处理;
在所述步骤S3中,包括以下过程:
S31,对经过所述步骤S2处理的TS流中的两个相邻PCR包的PCR值进行解析;计算这两个相邻PCR包之间的包数;根据得到的PCR值以及这两个相邻PCR包之间的包数,推导出经过所述步骤S2处理的TS流的码率;
S32,将经过所述步骤S2处理的TS流写入RAM,统计在RAM缓存的包数;
S33,根据经过所述步骤S2处理的TS流的码率以及在RAM缓存的包数,对经过所述步骤S2处理的TS流进行TS码流细平滑处理;
所述步骤S31推导出的码率呈现为TS包之间的均匀出包间隔G(R),表现为以下存在小数的形式:
G(R)=.Y
通过以下方式对G(R)进行调整:
通过以一个16位位宽的数对小数部分Y进行归一化,即Y=floor(Y*2^16),将小数部分的Y转化为包含Y的分数形式,则:
在所述步骤S33中,将对RAM的输出码率R(i)的调整ΔR表征为对Y的调整ΔY。
2.根据权利要求1所述的两级平滑实现码流去抖动的方法,其特征在于,在所述步骤S2中,包括以下过程:
S21,对所述待处理TS流进行码率统计,获得所述待处理TS流的码率;
S22,将所述待处理TS流写入DDR,统计在DDR中缓存的包数;
S23,根据所述待处理TS流的码率以及在DDR缓存的包数,对所述待处理TS流进行TS码流粗平滑处理。
3.根据权利要求2所述的两级平滑实现码流去抖动的方法,其特征在于,在所述步骤S21中,通过计算预设的定时长度内所述待处理TS流的包数获得所述待处理TS流的码率,或通过以下方式获得所述待处理TS流的码率:
对所述待处理TS流中的两个相邻PCR包的PCR值进行解析;计算这两个相邻PCR包之间的包数;根据得到的PCR值以及这两个相邻PCR包之间的包数,推导出所述待处理TS流的码率。
4.根据权利要求2或3所述的两级平滑实现码流去抖动的方法,其特征在于,在所述步骤S23中,通过以下公式控制DDR的输出码率Ro,实现所述TS码流粗平滑处理:
Ro=+A*Δ;
其中,R为所述待处理TS流的码率;A为预设的比例控制系数;Δ为所述待处理TS流在DDR缓存的包数与DDR可缓存包数的一半之间的差值。
5.根据权利要求1所述的两级平滑实现码流去抖动的方法,其特征在于,在所述步骤S33中,通过以下方式控制RAM的输出码率Ro,实现所述TS码流细平滑处理:
对于可缓存包数为B的的RAM,在RAM的半满位置B/2的上下分别设置缓冲区ΔB;执行以下过程:
在RAM中逐步累积TS包,当TS包的位置线第一次到达B/2,即在RAM缓存的包数D(0)=B/2时,启动RAM读出控制以及一个定时时间为T的周期定时器,以所述步骤S31推导出的码率作为RAM的输出码率;
RAM读出控制启动后第i次到达周期定时器的定时时间T时,读取此时在RAM缓存的包数D(i),根据包数D(i)判决RAM的输出码率是否需要调整及确定调整方向:如果{B/2-ΔB≤D(i)≤B/2+ΔB}或{B/2+ΔB<D(i)≤B且D(i-1)>D(i)}或{0≤D(i)<B/2-ΔB且D(i-1)≤D(i)},则使RAM的输出码率保持不变R(i)=R(i-1),i=1,2,3,…;如果{B/2+ΔB<D(i)≤B且D(i-1)≤D(i)},则使RAM的输出码率R(i)=R(i-1)+ΔR;如果{0≤D(i)<B/2-ΔB且D(i-1)>D(i)},则使RAM的输出码率R(i)=R(i-1)-ΔR。
6.根据权利要求5所述的两级平滑实现码流去抖动的方法,其特征在于,第i次到达周期定时器的定时时间T时,X和Y表现形式如下:
Xi=X0+MYi,i=1,2,3,…;
{MYi,Yi}={MYi-1,Yi-1}+di-1*ΔY,di-1∈[-1,0,1],i=1,2,3,…;
其中,X0为X的初始值,Y0为Y的初始值;MYi为Yi借位/进位参数,用于对X进行调整补偿;d表示根据在RAM缓存的包数D(i)判决RAM的输出码率是否需要调整及确定调整方向的结果,d的范围为[-1,0,1]。
7.根据权利要求6所述的两级平滑实现码流去抖动的方法,其特征在于,运用计数器CntX和CntY对X和Y进行调整,其中CntY为一个16位位宽的计数器;每次当CntX计数到Xi的时候进行使能递增,增量为Yi;当CntY值大于或等于65536时则产生一个进位信号Carry同时其值减去65536之后的余数进行下一次累积递增运算;CntX为每个时钟递增计数,计数范围为[~Carry,Xi],CntX每次计数至Xi需要进行返回,CntX返回的值则由CntY的进位信号Carry控制,如果需要进位,则返回值为0,否则返回值为1,以此控制作为分数形式的Y对计数精度的补偿:
CntXj=CntXj-1+1,CntX∈[~Carryk,Xi];
[Carryk,CntYk]=[Carryk-1,CntYk-1]+Yi
其中,i表示定时计数器T的定时次数,j为时钟节拍,k则表示当(CntXj=Xi)条件成立时的时钟节拍。
8.一种两级平滑实现码流去抖动的装置,其特征在于,包括DDR以及RAM,还包括接收模块(1)、粗平滑处理模块(2)以及细平滑模块(3);所述接收模块(1)连接所述粗平滑处理模块(2),所述粗平滑处理模块(2)连接所述DDR以及细平滑模块(3),所述细平滑模块(3)连接所述RAM;其中:
所述接收模块(1)用于获取待处理TS流;
所述粗平滑处理模块(2)用于以DDR作为缓存,对所述待处理TS流进行TS码流粗平滑处理;
所述细平滑模块(3)用于以RAM作为缓存,对经过所述步骤S2处理的TS流进行TS码流细平滑处理;
所述细平滑模块(3)具体用于:
S31,对经过所述步骤S2处理的TS流中的两个相邻PCR包的PCR值进行解析;计算这两个相邻PCR包之间的包数;根据得到的PCR值以及这两个相邻PCR包之间的包数,推导出经过所述步骤S2处理的TS流的码率;
S32,将经过所述步骤S2处理的TS流写入RAM,统计在RAM缓存的包数;
S33,根据经过所述步骤S2处理的TS流的码率以及在RAM缓存的包数,对经过所述步骤S2处理的TS流进行TS码流细平滑处理;
所述步骤S31推导出的码率呈现为TS包之间的均匀出包间隔G(R),表现为以下存在小数的形式:
G(R)=.Y
通过以下方式对G(R)进行调整:
通过以一个16位位宽的数对小数部分Y进行归一化,即Y=floor(Y*2^16),将小数部分的Y转化为包含Y的分数形式,则:
细平滑模块(3)还用于将对RAM的输出码率R(i)的调整ΔR表征为对Y的调整ΔY。
CN202210009990.XA 2022-01-05 2022-01-05 一种两级平滑实现码流去抖动的方法和装置 Active CN114501135B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210009990.XA CN114501135B (zh) 2022-01-05 2022-01-05 一种两级平滑实现码流去抖动的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210009990.XA CN114501135B (zh) 2022-01-05 2022-01-05 一种两级平滑实现码流去抖动的方法和装置

Publications (2)

Publication Number Publication Date
CN114501135A CN114501135A (zh) 2022-05-13
CN114501135B true CN114501135B (zh) 2023-09-12

Family

ID=81509876

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210009990.XA Active CN114501135B (zh) 2022-01-05 2022-01-05 一种两级平滑实现码流去抖动的方法和装置

Country Status (1)

Country Link
CN (1) CN114501135B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115426315B (zh) * 2022-11-07 2023-01-31 北京数盾信息科技有限公司 一种信息处理方法、装置及设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101521807A (zh) * 2008-12-30 2009-09-02 深圳市同洲电子股份有限公司 一种传输流平滑处理的方法、系统及数字电视前端设备
CN102355577A (zh) * 2011-09-23 2012-02-15 上海交通大学 一种多视视频码流的网络传输码率平滑方法
CN107615756A (zh) * 2015-07-10 2018-01-19 华为技术有限公司 实现快速平滑视点切换的多视点视频流媒体
CN114257700A (zh) * 2021-12-21 2022-03-29 伟乐视讯科技股份有限公司 一种基于时间戳方式平台内同步的pcr校正方法和系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7397822B2 (en) * 2002-08-26 2008-07-08 Bigband Network Inc. Method and system for compensating for timing violations of a multiplex of at least two media packet streams
US10951390B2 (en) * 2018-02-05 2021-03-16 Arris Enterprises Llc Two-stage IP de-jitter algorithm in a multiplexer for a group of statistically multiplexed single program transport streams

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101521807A (zh) * 2008-12-30 2009-09-02 深圳市同洲电子股份有限公司 一种传输流平滑处理的方法、系统及数字电视前端设备
CN102355577A (zh) * 2011-09-23 2012-02-15 上海交通大学 一种多视视频码流的网络传输码率平滑方法
CN107615756A (zh) * 2015-07-10 2018-01-19 华为技术有限公司 实现快速平滑视点切换的多视点视频流媒体
CN114257700A (zh) * 2021-12-21 2022-03-29 伟乐视讯科技股份有限公司 一种基于时间戳方式平台内同步的pcr校正方法和系统

Also Published As

Publication number Publication date
CN114501135A (zh) 2022-05-13

Similar Documents

Publication Publication Date Title
EP3022884B1 (en) Quality optimization with buffer and horizon constraints in adaptive streaming
JP3655249B2 (ja) データ受信再生方法およびデータ通信装置
US8346959B2 (en) Client-controlled adaptive streaming
US6910079B2 (en) Multi-threshold smoothing
US8578436B2 (en) Method for two time-scales video stream transmission control
US7733919B2 (en) Method and apparatus for processing transport stream packets to compensate for jitter
CN114501135B (zh) 一种两级平滑实现码流去抖动的方法和装置
CN107529097A (zh) 一种自适应调整视频缓冲大小的方法及装置
EP2589223A1 (en) Video streaming
CN103795755A (zh) 流媒体发送速率控制方法、系统和流媒体服务器
US6704329B2 (en) Minimizing the effect of jitter upon the quality of service operation of networked gateway devices
CN114257700B (zh) 一种基于时间戳方式平台内同步的pcr校正方法和系统
US6412013B1 (en) System for controlling data output to a network
US8854964B2 (en) Method and apparatus for determining a transport bit rate for a Multiprogram transport stream
CN117615166B (zh) 一种网络码流恢复方法、系统、介质及fpga芯片
EP2393294B1 (en) Delivery system, delivery method, server device, program and client device
US9584240B2 (en) Flow control in a network device
US9729598B2 (en) Method and a device for signalling transmission time and/or a system clock
WO2004012402A1 (ja) 情報処理装置および方法、記録媒体、並びにプログラム
JP2005286749A (ja) 映像復号化装置およびそれを用いた映像伝送システム
CN114071142A (zh) 一种基于硬件编码器的码率控制方法及设备
WO2021213781A1 (en) A method for estimating bandwidth between a video server and a video client
JP2007295491A (ja) ストリーミングデータ受信装置及びジッタ除去回路
JPH11355230A (ja) 符号化装置
KR102409915B1 (ko) 실시간 데이터 스트리밍 수신 장치 및 방법, 실시간 데이터 데이터 스트리밍 송수신 시스템, 컴퓨터 판독 가능한 기록 매체 및 컴퓨터 프로그램

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