一种基于ip的传输流抖动去除方法及装置的制造方法

文档序号:9914825阅读:457来源:国知局
一种基于ip的传输流抖动去除方法及装置的制造方法
【技术领域】
[0001] 本发明涉及数据通信技术领域,尤其涉及一种基于ip的传输流抖动去除方法及装 置。
【背景技术】
[0002] 目前,随着视听内容的日益丰富,人们对于视听需求的个性化也越来越突出,IP (Internet Protocol,网络互连协议)技术的发展使其可以提供更高的传输带宽和更方便 的组网方式来满足用户和广电运营商的需求,因此TS over IP技术在广播电视应用领域的 使用越来越广泛。其中,TS(Transport Stream)是MPEG-2协议所定义的一种数据传输流,其 以数据包的形式存在;IP则为计算机网络相互连接而设计的协议;则TS over IP技术是将 TS数据流在以太网上传输,并遵循一定的IP协议。
[0003] 而在TS over IP的应用中,难以避免会有网络抖动和其他抖动的出现,而抖动的 存在会对TS传输流中PCR(Program Clock Reference,节目时钟基准)等指标造成影响所以 需要在IP流接收的过程中去除各种抖动。在目前广电前端IP接收设备中,部分IP接收设备 只能实现较少通道或较小带宽基于IP的传输流抖动去除处理,而有部分IP接收设备并不支 持所有模式,例如VBR(Variable Bit Rate,动态比特率)模式的输入传输流;而其他IP接收 设备则以架构复杂、成本过高的硬件资源为代价来实现较多的通道或较大带宽的传输流去 抖动。因此,现有的IP接收设备未能实现有效的多通道的传输流抖动去除。

【发明内容】

[0004] 本发明所要解决的技术问题是,提供一种基于IP的传输流抖动去除技术方案,实 现有效的多通道的传输流抖动去除,节省大量硬件资源和兼容多种模式的输出传输流,降 低成本。
[0005] 为解决以上技术问题,一方面,本发明实施例提供一种基于IP的传输流抖动去除 方法,包括:
[0006] 接收包含多通道传输流的输入流,形成TS数据包;
[0007] 计算出各通道的平均读包间隔;
[0008] 将所述TS数据包和所述平均读包间隔按通道缓存到一级存储器;
[0009] 根据一级缓存数据读请求,将所述一级存储器中相应通道上的TS数据包按通道缓 存至二级存储器;
[0010] 产生二级缓存数据读请求并计算当前数据包的时间戳,读取所述二级存储器相应 通道上的TS数据包;
[0011] 将所述时间戳和在所述二级存储器中读取的TS数据包按通道缓存到各通道独立 的三级存储器Ci内(其中,i = 0,l,2,…,p-l,P为通道总数),并统计各通道码率;
[0012] 读取所述三级存储器Q的数据,对各通道的PCR值进行校正,输出TS数据包。
[0013] 在一种可实现的方式中,所述计算出各通道的平均读包间隔,包括:
[0014] 利用输入流中当前处理通道具有选定PID的相邻两个PCR包的PCR值,计算出所述 相邻两个PCR包之间的原始时间间隔和所述两个PCR包之间的所述通道TS数据包个数;将所 述原始时间间隔除以所述TS数据包个数,计算获得所述通道相邻两个PCR包之间对应通道 的TS数据包的平均读包间隔。
[0015] 优选地,所述根据一级缓存数据读请求,将所述一级存储器中相应通道上的TS数 据包按通道缓存至二级存储器,包括:
[0016] 当所述一级存储器中一个或多个通道缓存的TS数据包数目首次到达相应通道预 设值时;或者,当所述一级存储器中一个或多个通道的读取次数为非零值,且小于所述二级 存储器中对应通道可缓存的最大包数时;或者,当所述二级存储器中一个或多个通道有TS 数据包输出时,则:
[0017] 产生对所述一级存储器中的相应通道的数据读请求;
[0018] 并将所述一级存储器同一端口的数据读请求加入一个公共队列,逐一执行所述数 据读请求。
[0019] 进一步地,所述产生二级缓存数据读请求并计算当前数据包的时间戳,读取所述 二级存储器相应通道上的TS数据包,包括:
[0020] 当所述二级存储器中一个或多个通道的缓存的TS数据包数目首次达到最大可存 包数;或者,当所述二级存储器中一个或多个通道已读出过数据包且当前时间距离本通道 上次读包请求时间的时间间隔大于或等于当前读包间隔,则:
[0021] 产生对所述二级存储器中的相应通道的数据读请求,并以当前系统时间作为当前 数据包的时间戳;
[0022] 并将所述二级存储器同一端口的数据读请求加入一个公共队列,逐一执行所述数 据读请求;
[0023] 各个TS数据包的当前读包间隔61是利用所述平均读包间隔G和计算平均读包间隔 产生的余数REM得到的,计算公式为:
[0025]其中,参数REM_DECi,表示每个包的读包间隔得到后,以余数REM为初值的减法器的 输出值,计算公式为:
[0027]参数ACCUM^示每个包的读包间隔得到后,以0为初值的累加器输出值,计算公式 为:
[0029]参数NC0为所述累加器的增量,计算公式为:
[0031]上述各方程式的参数G为所述平均读包间隔;N为TS数据包数目;Μ为N的二进制数 据位宽。
[0032]优选地,所述读取所述三级存储器Ci的数据,对各通道的PCR值进行校正,输出TS 数据包,包括:
[0033]根据各通道码率检测出各个通道TS数据包的码率模式;
[0034]当所述码率模式为CBR模式时,读取TS数据包,并在所述三级缓存器读空时输出空 包;
[0035]当所述码率模式为VBR模式时,在所述三级缓存器有包时读取TS数据包后输出;
[0036] 利用所述系统时间的当前数值与PCR包的时间戳的差值,对PCR值做相应的增加。
[0037] 另一方面,本发明实施例还提供了一种基于IP的传输流抖动去除装置,包括:接收 模块,一级存储器,一级缓存读请求模块,二级存储器,二级缓存读请求模块,三级存储器和 输出模块;
[0038] 所述接收模块,用于接收包含多通道传输流的输入流,形成TS数据包和计算出各 通道的平均读包间隔;并将所述TS数据包和所述平均读包间隔按通道缓存到所述一级存储 器;
[0039]所述一级缓存读请求模块,用于发起读取所述一级存储器中的TS数据包的一级缓 存数据读请求;
[0040] 所述二级存储器,用于根据所述一级缓存数据读请求,将所述一级存储器中相应 通道上的TS数据包按通道进行缓存;
[0041] 所述二级缓存读请求模块,用于发起读取所述二级存储器中的TS数据包的二级缓 存数据读请求,并计算出所述数据包的时间戳;
[0042] 所述二级存储器,还用于根据二级缓存数据读请求,读取所述二级存储器相应通 道上的TS数据包,将所述数据包和对应时间戳输出至所述输出模块;
[0043] 所述输出模块,用于将所述时间戳和在所述二级存储器中读取的TS数据包按通道 缓存到各通道独立的三级存储器匕内(其中,i=0,l,2,…,P_1,P为通道总数),并统计各通 道码率;对各通道的PCR值进行校正,读取和输出所述三级存储器Cj^TS数据包。
[0044] 进一步地,所述接收模块还用于:
[0045] 利用输入流中当前处理通道具有选定PID的相邻两个PCR包的PCR值,计算出所述 相邻两个PCR包之间的原始时间间隔和所述两个PCR包之间的所述通道TS数据包个数;将所 述原始时间间隔除以所述TS数据包个数,计算获得所述通道相邻两个PCR包之间对应通道 的TS数据包的平均读包间隔。
[0046] 优选地,所述一级缓存读请求模块,包括:
[0047]第一读请求产生模块,用于当所述一级存储器中一个或多个通道缓存的TS数据包 数目首次到达相应通道预设值时;或者,当所述一级存储器中一个或多个通道的读取次数 为非零值,且小于所述二级存储器中对应通道可缓存的最大包数时;或者,当所述二级存储 器中一个或多个通道有TS数据包输出时,产生对所述一级存储器中的相应通道的数据读请 求;
[0048] 第一读请求执行模块,用于将所述一级存储器同一端口的数据读请求加入一个公 共队列,逐一执行所述数据读请求。
[0049] 进一步地,所述二级缓存读请求模块,包括:
[0050] 第
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1