一种DVB-S系统TS流的PCR校正算法及系统的制作方法

文档序号:25742902发布日期:2021-07-06 18:54阅读:265来源:国知局
一种DVB-S系统TS流的PCR校正算法及系统的制作方法

本发明涉及无线通信领域,具体涉及一种dvb-s系统ts流的pcr校正算法及系统。



背景技术:

在数字卫星广播系统(dvb-s)标准公布后,几乎所有的卫星广播数字系统均采用该标准,我国也选用了该标准,它是为了满足卫星转发器的带宽及卫星信号的传输特点而设计的。该标准以卫星作为传输介质,将视频、音频以及资料放入固定长度打包的一传输流中(ts流,transportstream),信号在传输过程中有很强的抗干扰能力,该数据流采用四相相移键控调制方式,音视频常采用mpeg-2标准协议进行传输。

若dvb-s系统中的编码器按其时钟clock1编码,而解码器按其时钟clock2解码,当clock1>clock2,则解码器的缓冲区就会溢出;当clock1<clock2,则解码器的缓冲区就会空,这两种情况都会导致dvb-s通信系统在传输ts流时出错,所以解码器必须恢复编码器的时钟,使编码器和解码器的时钟同步才能准确译码,因此引入了pcr(programclockreference节目时钟基准),其主要作用是每隔一定的传输时间,在经过选择的ts包的适应头中,传送编码器时钟27mhz的一个抽样值给接收机解码器,作为解码器的时钟信号,使得收发两端时钟同步。

在mpeg-2标准中,假设传输中所有参量的延迟都是一样的,编码器和解码器之间的延迟也是固定的,则解码器利用接收到的pcr值,通过锁相环pll锁定本地系统时钟,使解码器服从于编码器,从而产生解码与播放的同步信号。但是在实际中,如果由于时钟的突然变化、复用时对pcr的修改、传输码率的变化或传输网络抖动等原因,改变了固定的延迟,就有可能引起已有的pcr值与实际接收到的pcr值之间的差异,这就是pcr的抖动。pcr抖动错误将影响接收端系统时钟的正确恢复,解码时会出现马赛克现象,严重时不能正常显示图像。

基于上述现有技术,存在如下技术问题:

由于外界因素的干扰,导致发送的pcr值与实际接收到的pcr值之间存在差异,即pcr的抖动,pcr的抖动会引起在解码时出现马赛克现象,严重时不能正常显示图像。



技术实现要素:

本发明提供一种dvb-s系统ts流的pcr校正算法及系统,旨在解决pcr的抖动引起的图像显示问题。

为实现上述目的,本发明提供以下技术方案:

一种dvb-s系统ts流的pcr校正算法,所述方法包括:

s1:划分pcr,计算输入的ts流的pcr值;

s2:获得pcr的固定延迟和pcr的实际延迟,通过计算pcr的实际延迟与pcr的固定延迟的差值得到pcr校正值;

s3:pcr校正值与输入的ts流的pcr值相叠加,得到目标pcr值。

进一步的,所述s1中pcr的组成具体为:

pcr_base,以系统时钟频率的1/300为单位;pcr_ext,以系统时钟频率为单位。

进一步的,所述pcr_base在带有pcr的ts包中第7字节至第11字节,用33bit表示;所述pcr_ext在带有pcr的ts包中第11字节至第12字节,用9bit表示。

进一步的,所述s1中,pcr的计算方式具体为:根据划分后的pcr,分别计算pcr_base的值与pcr_ext的值,最后将所述pcr_base的计算值与pcr_ext的计算值进行几何计算,得到输入的ts流的pcr值,其计算方法如公式(1)所示:

其中,fsys为系统时钟频率,t(i)为发送端时间,pcr(i)为编码在第i个字节的时间,i表示包含pcr_base字段的最后一个位置的字节。

进一步的,所述系统时钟频率为27mhz。

进一步的,所述s2具体为:

所述s2中pcr校正值由基准计数器计得:

当pcr进入存储器时,该计数器的值记为pcrin;

当pcr离开存储器时,该计数器的值记为pcrout;

所述pcr的校正值由公式(2)计算可得;

(2)δpcr=pcrout-pcrin,

其中,pcrout表示pcr的实际延迟;pcrin表示pcr的固定延迟,δpcr表示pcr的校正值。

进一步的,所述基准计数器以27mhz时钟计数。

进一步的,所述s3中目标pcr值由pcr算法实现结构获取,具体为公式(3)所示:

(3)pcrnew=pcrold+δpcr,

其中,pcrold表示输入的ts流的pcr的值;pcrnew表示目标pcr值。

进一步的,所述pcr算法实现结构为:

l1:提取输入的ts流中的pcr值;

l2:初始化本地计算器,并计算δpcr值;

l3:叠加输入的ts流的pcr的值与δpcr值,得到目标pcr值。

一种dvb-s系统ts流的pcr校正系统,所述系统包括:

pcr输入值计算模块:用于划分pcr,并计算输入的ts流的pcr值;

pcr校正值计算模块:获取pcr的实际延迟和pcr的固定延迟,通过计算pcr的实际延迟与pcr的固定延迟的差值得到pcr校正值;

校正后pcr输出模块:根据pcr算法实现结构,由上述得到的pcr校正值与输入的ts流的pcr值相叠加,得到目标pcr值。

本发明提供了一种dvb-s系统ts流的pcr校正算法及系统,具有如下有益技术效果:

通过上述pcr校正算法的实现结构,即可获得准确的pcr值,传统的pcr校正实现方法通常需要使用多个计数器以及复杂的逻辑判定,这样将消耗大量的fpga资源,同时会增加系统的不可靠性。本发明提出的基于dvb-s系统ts流的pcr校正算法仅使用一个计数器和一个存储器,大大降低了资源消耗,减少了资源浪费,同时实现简单,应用于dvb-s系统接收端的速率匹配模块时,能够较好的完成收发时钟同步。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。

图1为dvb-s系统ts流的pcr校正算法流程图;

图2为dvb-s系统ts流的pcr校正系统流程图

图3为ts流包结构图;

图4为pcr字段表;

图5为pcr校正流程图;

图6为速率匹配流程图。

具体实施方式

为使得本发明的目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

在本发明的描述中,需要理解的是,当一个组件被认为是“连接”另一个组件,它可以是直接连接到另一个组件或者可能同时存在居中设置的组件。当一个组件被认为是“设置在”另一个组件,它可以是直接设置在另一个组件上或者可能同时存在居中设置的组件。

此外,术语“长”“短”“内”“外”等指示方位或位置关系为基于附图所展示的方位或者位置关系,仅是为了便于描述本发明,而不是指示或暗示所指的装置或原件必须具有此特定的方位、以特定的方位构造进行操作,以此不能理解为本发明的限制。

下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。

如图1、图3和图4所示,ts流固定为188个字节,其包头由8bit的同步字节、1bit传送差错指示、1bit负荷单元开始指示、1bit传送优先级、13bit包标识(pid)、2bit传送加扰控制、2bit自适应字段控制和4bit连续计数器组成。

其中,负荷单元开始指示表示打包的原始流pes数据包字头或包含与节目有关的pes信息的起始端,是否出现在该ts包的负荷中。自适应字段控制表示在包头后面是否有自适应字段或有效负荷。连续计数器中的数值对于具有相同pid值的有效负荷而言,从0-15连续循环,用来在解码端检测是否有丢失的ts包。在ts包中,用不同的pid来区分不同的ts流所携带的内容,ts流所携带的内容包括pat、pmt、pcr和音频、视频、附加数据信息等。

根据mpeg-2标准,ts流中的pcr字段长度为48bit,其中包括42个有效位加6个保留位;ts流中的pcr由两部分组成:一部分以系统时钟(27mhz)的1/300(90khz)为单位,称为pcr_base,在带有pcr的ts包中第7字节至第11字节用33bit表示;另一部分称为pcr_ext,是以系统时钟(27mhz)为单位,在带有pcr的ts包中第11字节至第12字节用9bit表示,中间有6bit的保留位。

pcr值的计算方式具体为:

pcr_base(i)=[fsys*t(i)/300]%233

pcr_ext(i)=fsys*t(i)%300

pcr(i)=pcr_base(i)*300+pcr_ext(i)

其中,fsys为系统时钟频率,t(i)为发送端时间,pcr(i)为编码在第i个字节的时间,i表示包含pcr_base字段的最后一个位置的字节。

将输入的ts流的pcr的值记为pcrold,记i表示包含pcr_base字段的最后一个位置的字节,根据划分后的pcr,分别计算pcr_base的值与pcr_ext的值,最后将所述pcr_base的计算值与pcr_ext的计算值相叠加,得到pcr值,其计算方法如公式(1)所示:

pcr_base(i)=[fsys*t(i)/300]%233

pcr_ext(i)=fsys*t(i)%300

(1)pcrold(i)=pcr_base(i)*300+pcr_ext(i)

由于pcr抖动、接收端速率不匹配和接收端处理延迟等原因,使得进入dvb-s基带处理模块时的pcr值不可靠,因此还需要在系统速率匹配模块进行pcr校正,而pcr的校正实际是通过在pcr上加一个修正值来实现,修正值的获取方式具体为:

在本地有一个基准计数器以27mhz时钟计数,若输入ts流中的某一pcr进入接口fifo时该计数器的值则记为pcrin;当该pcr离开接口fifo时,此时计数器的值记为pcrout;则修正值由公式(2)计算所得:

(2)δpcr=pcrout-pcrin。

如图4所示,由于dvb-s系统接收端中的ts流数据输入速率与输出速率不一致,ts流包在系统中停留的时间非恒定延时,因此需要对其中的pcr进行校正。由pcr算法实现结构可知,pcr校正的过程是:在输入的ts流的pcr值基础上叠加ts包在本系统的延时计数值;

即把输入的ts流的pcr的值记为pcrold,把输出ts流的pcr值记为pcrnew,则由公式(3)得到校正后的pcr值:

(3)pcrnew=pcrold+δpcr;

pcr在离开fifo与进入fifo之间的计数差值实质上就是由于系统所引入的非恒定延时所需要校正补偿的值;在这过程中进行速率匹配的过滤空包和插入空包等操作引起的时间变化均体现在该时间差上,这样就间接地实现了pcr校正,而系统中在后级的译码解映射等引入的ts流延时为恒定延时,无需校正。

为理解本发明的工作原理,本发明以pcr校正在速率匹配有模块实现中的应用实现为例进行说明:pcr的使用是为保证接收端时钟与发送端时钟同步,为了保证同步得以实现,mpeg提出了一个信道恒定延时的模型,即所有编码器输出后的数据流经过恒定延时时间到达解码器。pcr在ts流中的插入过程为:在形成ts流时,每隔一段时间在编码后的数据中插入本地基准时钟计数值,而当编码数据还未准备好时,在ts流中插入空包,此时的本地基准时钟计数器继续计数。

在接收端为了使ts流速率和基带处理时钟同步,往往需要进行速率匹配处理,这包括去除输入ts流信号的空包、进行pcr校正、自动插入空包三个过程,其流程图如图5所示。

输入ts流信号,对包类型进行检测,如果检测ts流信号为空包,则丢弃该包,如果检测ts流信号不为空包,则进入下一步检测,即检测ts流信号中是否包含pcr字段,如果包含pcr字段,则将数据存入fifo,并记录pcr值(即为pcrold),若ts流信号不包括pcr字段,仅将数据存入fifo;此时查询fifo存储器是否半满,查询结果如果为否,则发送空包,查询结果如果为是,则进入下一阶段查询,即查询fifo存储器中存储的ts流信号是否包含pcr字段,如果查询结果为否,则直接将ts信号包写入fifo存储器中;如果查询结果为是,则与pcr修正值相叠加,pcr修正值记为δpcr,即叠加方式为:

pcrnew=pcrold+δpcr,将pcrnew存储至ts流信号中,并写入至fifo存储器。

一种dvb-s系统ts流的pcr校正系统,所述系统包括:

pcr输入值计算模块:用于划分pcr,并计算输入的ts流的pcr值;

pcr校正值计算模块:获取pcr的实际延迟和pcr的固定延迟,通过计算pcr的实际延迟与pcr的固定延迟的差值得到pcr校正值;

校正后pcr输出模块:根据pcr算法实现结构,由上述得到的pcr校正值与输入的ts流的pcr值相叠加,得到目标pcr值。

由于dvb-s系统ts流的pcr校正系统的工作方式已经在上述dvb-s系统ts流的pcr校正算法中详述,在此不做赘述。

至此,以说明和描述的目的提供上述实施例的描述。不意指穷举或者限制本公开。特定的实施例的单独元件或者特征通常不受到特定的实施例的限制,但是在适用时,即使没有具体地示出或者描述,其可以互换和用于选定的实施例。在许多方面,相同的元件或者特征也可以改变。这种变化不被认为是偏离本公开,并且所有的这种修改意指为包括在本公开的范围内。

提供示例实施例,从而本公开将变得透彻,并且将会完全地将该范围传达至本领域内技术人员。为了透彻理解本公开的实施例,阐明了众多细节,诸如特定零件、装置和方法的示例。显然,对于本领域内技术人员,不需要使用特定的细节,示例实施例可以以许多不同的形式实施,而且两者都不应当解释为限制本公开的范围。在某些示例实施例中,不对公知的工序、公知的装置结构和公知的技术进行详细地描述。

在此,仅为了描述特定的示例实施例的目的使用专业词汇,并且不是意指为限制的目的。除非上下文清楚地作出相反的表示,在此使用的单数形式“一个”和“该”可以意指为也包括复数形式。术语“包括”和“具有”是包括在内的意思,并且因此指定存在所声明的特征、整体、步骤、操作、元件和/或组件,但是不排除存在或额外地具有一个或以上的其他特征、整体、步骤、操作、元件、组件和/或其组合。除非明确地指示了执行的次序,在此描述的该方法步骤、处理和操作不解释为一定需要按照所论述和示出的特定的次序执行。还应当理解的是,可以采用附加的或可选择的步骤。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1