数字电视中的编解码器同步机制 (数字电视中的编码怎么看)
整理分享数字电视中的编解码器同步机制 (数字电视中的编码怎么看),希望有所帮助,仅作参考,欢迎阅读内容。
内容相关其他词:数字电视中的编码怎么看,数字电视编码器,数字电视编码,数字电视中的编码怎么看,数字电视的编号怎么查,数字电视编码方式,数字电视中的编号是什么,数字电视中的编号是什么,内容如对您有帮助,希望把内容链接给更多的朋友!
在数字电视*中,模拟视音频信号按照MPEG-2的标准,经过抽样、量化及压缩编码形成基本码流ES,基本码流ES是不分段的连续码流。把基本码流分割成段,并加上相应的头文件打包形成的打包基本码流PES(如图1所示),PES包和包之间可以是不连续的。在传输时将PES包再分段打成有固定长度B的传送码流TS或可变长度的节目流包(PS包)。PES只是PS转换为TS或TS转换为PS的中间步骤或桥梁,时MPEG-2数据流互换的逻辑结构。TS和PS这两种码流分别适应于不同的场合应用,节目流PS适合在相对出错较少的环境下使用,其长度是变化的,而传送流TS能够把多个节目在基于一个或多个时间标识的基础上构成一个流,传送流适合于出错较多的场合下使用。用数据包传输的优点是:网络中信息可占用不同的连接线路和简单暂存。通过数据包交织把多个数据流复用成一个新的数据流。便于*按照相应顺序对数据包进行灵活的整理,从而,为数据流同步和复用奠定了基础。MPEG-2的结构可分为压缩层和*层,其中ES属于压缩层,PES和TS/PS属于*层。在PES层,主要是在PES包头信息中加入PTS(显示时间标签)和DTS(*时间标签)用于*、音频同步。而在TS流中,TS包头加入了PCR(节目时钟参考),用于*的*时钟恢复。在节目流PS包头中加入SCR,它的作用与PCR域相似。ES是编码*数据流或音频数据流,每个ES都由若干个存取单元(AU)组成,每个*AU或音频AU都是由头部和编码数据两部分组成,1个AU相当于编码的1幅*图像或1个音频帧,也可以说,每个AU实际上是编码数据流的显示单元,即相当于*的1幅*图像或1个音频帧的取样。我们知道,MPEG-2对*的压缩产生I帧、P帧、B帧。把帧顺序I1帧-P4帧-B2帧-B3帧-P7帧-B5帧-B6帧的编码ES,通过打包并在每个帧中*PTS/DTS标志,变成PES。在*PTS/DTS标志时,由于在B帧PTS和DTS是相等的,所以无须在B帧多*DTS(参见图1)。而对于I帧和P帧,由于经过复用后数据包的顺序会发生变化,显示前一定要存储于**的从新排序缓存器中,经过从新排序后再显示,所以一定要同时*PTS和DTS作为从新排序的依据。例如,*输入的图像帧顺序为I1-P4-B2-B3-P7-B5-B6,但显示时P4一定要在B2、B3之后,在PST和DTS的指引下,经过缓存器从新排序,以从建*帧顺序为:I1-B2-B3-P4-P7-B5-B6。将PES包再打成更小的具固定长度的TS包时在其包头位置加入了PCR和PID(包标识)。PID的值是由用户确定的,*根据PID把TS(多节目传输流)上不同节目的TS包区分出来,以重建原来的ES。另外,TS的包头包含一个4bit的连续计数器,连续计数器可对PID包传送顺序计数,据计数器读数,接收端可判断是否有包丢失及包传送顺序错误。所以TS的包头具有同步、识别、检错等功能。2、时间模型在MPEG-2*层时间模型中,它的端到端延迟——从信号进入编码器到信号从*输出是一个常数,信号总共经过编码器、编码缓冲器、多路复用器、传输或存储、解复用器、*缓冲器以及*等器件的延迟。如图2所示。所有的*和音频经过采样(A/D变换)进入编码器后,经一恒定的延迟,在*分别输出显示,采样后的码率在编码器和*中应严格相等。在MPEG-2中,所有的时序被定义成一个共同的*时钟(STC),故编码器、*的*时钟必须同步。*的*时钟应由编码器的*时钟经恒定延迟后恢复出来,以服从于编码器。对于PS(节目流)而言,这个时钟可以与*或音频采样时钟之间有一个严格的特定比率,或者稍有区别,但仍足以提供精确的端到端的时序和时钟恢复。而在TS(传输流)中,此*时钟频率与*或音频的采样时钟之间任何时候都必须有严格的比率关系,其目的是为了在*中恢复视音频采样后的码率。[Page]3、时间标签定义及同步机制编码器中有一个*时钟(其频率是MHz),此时钟用来产生指示音*的正确显示和*的时间标签,同时可用来指示在采样过程中*时钟本身的瞬时值。指示音*显示时间的时间标签称为显示时间标签(PTS),指示音*的*时间标签称为*时间标签(DTS),指示*时钟本身的瞬时值的时间标签称为节目参考时钟标签(PCR)。*通过VBV_delay(*流延时值,在*时利用*流缓冲区把*流缓存到相应的vbv_delay时间后,再启动**、显示、实现音*的同步。vbv_delay存在于*ES的头部,长度为bit)的数值来确定*的开始,用*时间标签(DTS)和显示时间标签(PTS)来确定*和显示的次序,用PCR来获得*时钟的同步。*中的*时钟及其同步就是依靠这些时间标签来进行恢复和修正的。PCR、PTS、DTS具体构成如下:PCR的*必须在PCR字段的最后离开复用器的那一时刻,同时把MHz*时钟的采样瞬时值作为PCR字段*到相应的PCR域。MHz时钟经波形整理后分两路,一路是由MHz脉冲直接触发计数器生成扩展域PCR_ext,长度为9bits。另一路经一个分频器后的kHz脉冲送入一个位计数器生成KHZ基值,列入PCR_base(基值域),长度bits,用于和PTS/DTS比较,产生*和显示所需要的同步信号。这两部分被置入PCR域,共同组成了位的PCR。PTS域为bits,编码成为3个*的字段,表示此分组中第一个访问单元在*目标*中的预定显示时间。DTS域也为bits,编码成为3个*的字段,表示此分组中第一个访问单元在*目标*中的预定*时间。*在*时,首先利用PCR重建和编码器同步的MHz*时钟,恢复MHz*时钟后,再利用PES流中的DTS,PTS进行音频与*间的同步,同时利用VBV_Delay设置*的缓冲时长,后启动初始*。*同步算法如下:(1)*从输入码流的包头中解出时间信息PCR送入到*时间时钟恢复电路;*时间时钟恢复电路在接收到每一个新的PCR时,进行本地*时间时钟恢复和锁相。(2)解复用器后,从PES包头中解出显示时间标签PTS和*时间标签DTS,并送入到基本流*中。(3)基本流*在接收到新的PTS/DTS后,存入对应的FIFO(先进先处存储器)中进行管理;对于没有PTS/DTS的显示单元,需要对其时间标签进行插值,并送入到FIFO中管理。(4)每一显示单元开始*前,用其对应的DTS与STC进行比较,当STC与DTS相等时开始*;(5)每一显示单元开始显示前,用其对应的PTS与STC进行比较,当STC与PTS相等时开始显示。在理想情况下,PTS和DTS的值应该是相同的,但由于实际*在*时需要一定的时间,所以PTS和DTS的值是不同的。如果在PES包头中只出现了PTS,我们就认为DTS=PTS。4、*时钟(STC)恢复在*中,STC的恢复是同步的关键。如果*中的时钟频率和编码器的时钟频率严格匹配,那么*和音频的*和显示将自动和编码器保持相同的速率,此时,端到端的延迟是一个常数。在实际中,是利用接收到的PCR的值来使*时钟服从于编码器的*时钟,其典型方法是通过锁相环(PLL)。当一个新节目的PCR到达*时,就需要更新时间基点,STC要设置为PCR中的当前值。通常第一个从解复用器中解出的PCR被直接装入到STC的计数器,PCR的值作为锁相环的参考频率,用来和STC的当前值比较,产生的差值e,经过脉宽调制后输入到低通滤波器并经放大,成为控制信号f用来控制振荡器(VCO)的瞬时频率,VCO输出的频率是在MHz左右振荡信号,它作为*的*时钟。如图3所示。[Page]5、DTS/PTS的管理在PCR域的bits中的kHz部分(即PCR-Base域)用于与PTS和DTS作比较,当二者相同时,相应的单元被显示或者*。但按照MPEG-2标准的规定,PTS/DTS位于PES包的包头中,而解复用器所解出的PES包头的字节不被送入到任何基本流*的输入缓冲区,仅用于控制各*工作。每当解复用器解到一个PTS/DTS时,PTS/DTS就作为其后送入各个基本流*的输入缓冲器中的数据的显示/*时间,但此时送入信道缓冲器中的基本流并不一定立即被*,因此基本流*必须记录当前这个PTS/DTS及所对应的码流位置,以利于后面的*和显示同步。针对以上分析,我们采用如下方法来达到*与显示的同步:在每一个基本流*中建立一个bits的PTS/DTS先入先出存储器(FIFO),用以存放PTS/DTS值,同时在解复用器中加入一个检测电路,每当码流开始新的一帧图像时,则产生一个信号,用来通知基本流*,并将该帧图像的PTS/DTS写入到FIFO中。每当*解到一帧图像时,就从FIFO中读出相应的PTS/DTS,此PTS/DTS与STC进行比较,当两者相等时,当前图像就开始显示/*。在MPEG-2标准中,并非每一个PES包或每一帧图像均有PTS和DTS,一般PS流中每两个PTS之间的间隔是0.7s,而TS流中每两个PTS之间的间隔是0.1s,所以在没有PTS和DTS的一帧图像出现时,我们可以在前一PTS/DTS的基础上加一增量得到对应该帧图像的PTS/DTS,并将计算出来的新的PTS/DTS*到存放PTS/DTS的FIFO中去,即:PTSn=PTSn-1+ΔPTS(n为第n帧图像)。6、PTS/DTS同步实现和失步处理MHz*时钟经过分频后,得到本地的bitsPCR_Base,该时钟与寄存器中当前图像的PTS/DTS进行比较,*软件根据比较结果做出相应的处理:(1)若当前的PTS/DTS比PCR计数器的值小于半帧以上,即PTS_Base≤-ΔPTS/2,此时说明**过慢,*处于失步状态,应根据该帧的结构做出相应的同步调整;(2)若当前的PTS/DTS比PCR计数器的值在半帧时间以内,我们认为此时**正常,立即显示/*当前帧;(3)若当前的PTS/DTS大于PCR计数器的值,则此时*稍快,在这种情况下,只需等到PCR与PTS/DTS相等时,就可显示/*。