一种传输流解复用硬件结构和实现方法

文档序号:7665452阅读:231来源:国知局

专利名称::一种传输流解复用硬件结构和实现方法
技术领域
:本发明是一种遵循DVB标准的传输流进行解复用的硬件结构,主要应用于数字电视解码芯片及数字电视机顶盒芯片领域。
背景技术
:视频图像和声音经过编码压縮后生成了各自的基本流(ES,ElementaryStream),这些ES流以及辅助数据必须复合在一起才能构成一路实际的电视节目传送信息流。MPEG-2标准的第一部分(IS0/IEC13818-1)详细规定了多路节目的复用和解复用方式,视频、音频的ES流和辅助数据按所需频带被分配到复接的高速二元数字比特流的各传输时隙中,构成一路TS流进行传输,从时间上看TS流中各路ES流是分时轮流传输的。多路节目的TS流也以同样方式复用构成更高速率的传输流。在多路数字信号间实现分时轮流传输的过程称为数字复用或复接,逆过程被称之为数字解复接或解复用。为了使接收端的解复用器能够正确地从复接信息流中解复用出各路信息,以便进行相应的解码处理,要求发送端的复接器按照规定的结构对复接信息流进行打包,即将顺序连续传输的复接信息流按一定的时隙长度分段,每段前加入规定的同步比特信息以及描述段内信息类型和用户类型的标志比特信息,构成具有特定结构和时隙长度的传输单元,称之为包,然后将这些包按照先后顺序组成一个连续的包序列,实际在媒体中进行传输的信息流(即TS流)就是这种包序列。在一个包中,同步及标志信息称为包头(Header),后面跟随的传送给用户的信息称为净荷或负载(Payload),TS流的包序列如图2所示。DVB(DigitalVideoBroadcasting)是欧洲有200个组织参加的一个项目,它包括了卫星、有线电视、地面电视广播、SMATV和MVDS的普通电视和高清晰电视的广播与传输,DVB规定了其系统流能够灵活传送MPEG-2视频、音频和其他数据信号,使用统一的MPEG-2传送比特流复用,使用统一的服务信息系统(SI)提供广播节目的细节等信息,使用统一的加扰系统。与MPEG-2传输流相比较,符合DVB标准的传输流增加了SI信息等,该传输流的数据结构如图3所示。在TS流的负载数据中,数据内容按照两种方式进行组织,一种是PES分组包方式,音频ES、视频ES和数据ES均按照PES分组包方式进行打包;另外一种按照区段(Section)方式进行组织,一些辅助信息如PSI(ProgramSpecificInformation)和SI数据按照这种方式进行组织。另外,还有部分解码和播放的关键信息例如PCR(ProgramClockReference)、PTS(PresentationTimeStamp)和DTS(DecodeTimeStamps)等都以不同的方式包含于TS流中。TS流解复用的目的就是将各种混和传输的音视频流从TS流中分离出来,目前通常的解复用方法包括软件解复用、硬件解复用和软硬件解复用三种方法,软件解复用速度受限于CPU的性能,同时对CPU的占有率较大,不利于充分发挥CPU的性能;硬件解复用能够解决解复用速度限制,但很难做到灵活应对未来的发展需要。只有软硬件协调工作的解复用方法能够满足解复用速度和灵活应对各种自定义数据的以及将来扩展的需求。本发明中所描述的用于传输流(TS流)解复用的硬件电路结构就是配合主CPU对这两种方式的数据进行解码,CPU通过提前访问硬件内部寄存器,对硬件解复用方式进行配置,并完成硬件难以处理的部分协议解析工作。硬件根据配置寄存器的内容,接收和过滤所需要的包,并将这些数据从复用流中提取出来并在主存储器中重新组织,便于音频和视频解码器进行解码和播放。本发明经过实现后能够稳定工作于150MHz,完全满足高清解码的需求。
发明内容本发明提出了一种传输流解复用电路实现方法,如图1所示,包括输入部分、包处理部分、输出部分以及系统总线接口部分。其中输入部分采用SPI接口,并具有两个188字节的Buffer构成乒乓结构,当第一个buffer收到一个TS流包后通知包处理部分进行处理,同时将第二个TS流包数据放到第二个Buffer中等待处理,当第一个包处理完成后,包处理部分立即处理第二个buffer中的数据,继续接收到的新的数据包放置到第一个Buffer,以此循环;包处理部分由PID过滤、PES分组包解包、Section解包、硬件解扰、时钟恢复组成,PID过滤根据CPU配置的PID寄存器进行,过滤后的包分别由PES分组包和Section解包电路进行处理,其中音频、视频和数据包由PES分组包解包处理;PSI(ProgramSpecificInformation)和SI(SpecificInformation)由Section解包处理,时钟恢复通过接收PCR并与内部寄存器比较的差值进行时钟恢复;解扰电路对采用DVB通用加扰算法加扰后的TS流包进行解扰。输出部分由解码FIFO写入控制、视频FIF0、音频FIF0、数据FIFO和FIFO输出控制电路构成,视频FIF0、音频FIF0、数据FIFO分别对音频、视频和各种SI、PSI及私有数据进行暂存,并通过FIFO输出控制电路进行输出;系统总线接口用于CPU控制硬件电路以及硬件电路进行数据输出该电路结构具有以下特点(1)传输流输入接口采用同步并行接口(SPI,SynchronousParallelInterfaced(2)输入部分具有两个缓冲器,每个缓冲器接收一个TS流包,两个缓冲器组成一种乒乓结构。(3)包处理部分采用两级解码,一级是PID过滤电路,一级是PES分组包解包处理和区段(Section)解包处理。(4)包处理部分含硬件解扰逻辑。(5)输出部分采用视频FIFO、音频FIF0、数据FIF0,用于暂存解复用后数据。(6)采用总线接口模块作为主控CPU与硬件逻辑进行数据交换和控制通道,包括Slave总线接口和Master总线接口。图1传输流解复用硬件电路总体结构图2传输流打包方式图3传输流各数据结构关系和组织方式图4188字节模式TS流包SPI时序图5204字节模式TS流包SPI时序图6包过滤模块结构框图图7包处理流程图8FIFO输出控制图9时钟恢复电路具体实施例方式如图1所示,TS流解复用全流程描述如下-(1)CPU通过总线接口配置硬件内部寄存器,规定硬件部分工作方式,由图1中101实现;(2)SPI接口电路接收TS流信号,如图1中102,并将接收到的TS流写入到两个片内Buffer中去,如图1中103;(3)包处理模块选取当前需要处理的Buffer,如图1中104(4)PID过滤模块从选定的Buffer中读取包数据,如图1中105,并进行过滤(5)过滤完成后被选中的包根据其类型被送入到相应处理单元进行处理,如图1中106(6)需要解扰的数据进入解扰模块解扰后,送入到PES解包,如图中107(7)PES解扰后的数据经FIFO控制模块送入到音频、视频和字幕FIFO,如图中108(8)Section解扰后的数据经FIFO控制模块送入到数据FIFO,如图中109(9)FIFO输出控制模块将FIFO中的数据送到总线接口模块,准备输出,如图中110(10)总线接口模块发起对主存储器的写操作,将数据写入到主存储器,完成解复用,如图中111各模块具体实施方式如下-TS流信号通过SPI接口进入硬件处理电路,在输入部分内部有输入处理逻辑,该逻辑按照SPI接口时序将TS流包接收到Buffer1中,SPI接口支持两种模式的输入,一种是188字节的TS流包输入,一种是204字节的TS流包输入,输入时序分别如图4和图5所示。两种模式的区别是第一种模式一个包只有188个字节,DVALID信号始终为高电平;第二种模式除了188个字节的数据外,还有16个字节的填充字节,DVALID信号在前188个字节为高电平,在16个填充字节期间为低电平。输入处理逻辑每次接收到一个TS流包后通知包处理部分开始进行包处理。当包处理部分在进行第一个包处理时,输入处理逻辑可以接收第二个TS流包并放置到输入部分的Buffer2中,当第一个包处理完成后,包处理部分立即处理buffer2中的TS流包,并且输入部分将继续接收到的新的数据包放置到Bufferl中,依此循环。包处理过程如图7所示,包处理部分采用两级处理机制,第一级处理完成包过滤。主控CPU预先设置PID过滤器内的PID寄存器,设定需要处理的TS包的PID值。选择模块判断哪一个接收Buffer中有未处理的TS包,如果有则从接收Buffer中取出数据送入到PID过滤器。如果TS包在传输过程中有错误,也就是包头中有TRANSPORT—ERROR—INDICATORS,就丢弃这个包;如果没有,则检査PID过滤器内PID寄存器的数据,PID过滤器分析输入的传输包,检査它们的PID值,如果在寄存器中有这个PID值,那么就将这个TS包进行处理;否则就丢弃这个包。包过滤模块内部有三个子模块构成,一个是PID寄存器模块,用于CPU设置PID过滤条件;另外一个是比较器模块,含有多路比较器,用于将当前PID值与预先设定PID值进行比较,如果相等则送至相应后续处理模块,如果不相等则不进行处理;第三个是包过滤器控制模块,是整个包过滤器模块中的核心控制模块。该模块要产生Buffer读取信号和读地址,从前面的Buffer中读取等待处理数据。经过过滤后的数据按照当前数据类型分别送到后续处理模块,模块框图如图6所示。整个过程由状态机进行控制。读取信号根据TS流不同类型的包的特点产生,读地址根据当前状态和包类型产生,在读取PID时,读地址为0;在读取自适应区长度时,读地址为l;读取区段指针时的地址有两种情况,如果该段不含有自适应数据,则区段指针的地址为1,否则应该将当前地址加上自适应长度作为区段指针的地址;读取section信息的地址应该是当前地址加上区段指针。由于自适应数据长度和区段指针的存在,导致section有效数据或者PES有效数据的起始点可能不是32位对齐,因此需要一个4bit的标志来表示当前32位中哪些字节是有效字节。发送过程是否结束由发送的数据长度来确定,而发送的数据长度由包的总长度减去自适应数据长度和区段指针来确定。在发送控制部分有一个发送计数器,当计数值达到发送长度后,状态机回到IDLE状态,表明当前数据包发送到包处理部分结束,等待下一个包。第二级处理由PES解析,区段处理,发送控制构成,如图7所示。区段处理用于处理包过滤模块发送的区段(Section)数据,在将区段数据输出至数据发送控制电路的同时,提取区段table—id及section_length存放于输出寄存器中。PES解析模块用于解析PID过滤模块发送的PES数据,从收到的数据中提取stream」d,PTS—DTS—flags,PTS/DTS及ES数据,按stream—id,PTS—DTS一flags,PTS/DTS,ES的顺序输出至数据发送控制电路,同时将stream—id存放于输出寄存器中。在输出PES数据的同时,启动计数器以记录解析出的PES数据长度。在PES数据包处理结束时,将计数器记录的数值发送到数据发送电路。数据发送电路按字节(8bit)接收区段数据及PES数据,组成输出数据字(64bit)发送给输出控制电路,同时通过输出寄存器表明发送的数据字类型。在包处理部分模块中还有硬件解扰电路,硬件解扰电路按照DVB通用解扰算法对需要解扰的TS流包进行解扰,在解扰之前需接收CPU发送回来的64位控制字(CW)作为解扰密钥。输出部分如图8所示,输出部分40通过系统总线和CPU及外部SDRAM相连,通过LOCALBUS和TSP模块相连,接收TSP发送的数据。复位后CPU通过系统总线写控制寄存器41。配置工作完成后,系统开始工作。输出部分通过数据线DataBus接收数据,通过控制线ControlSignal接收TSP发送的控制信号。为了减小系统总线的负担,输出部分内部采用5个独立的FIF0缓冲数据,分别是视频FIFO,音频FIF0,表FIFO,字幕FIFO和DvrFIF0。工作时输出部分40接收处理模块发送的数据和控制信号,并根据控制信号将接收到的数据分发到不同FIF0中,一旦FIFO中的数据满就通过系统总线将数据写到SDRAM中,同时产生中断,通知CPU。由于表的使用比较特殊,可能多个表交叉传输,所以需要通过表队列管理电路对表数据进行管理。表队列管理电路根据TABLEID区分不同的表,当接收到一个表后就在队列中搜索,一旦发现队列中存在该表,就更新相关信息,如果队列中没有该表,就将该新表的相关信息存储下来,通过这种方式就可以交织接收不同的表,如果一个表被完整接收下来,表队列管理电路就控制FIFO将数据传输到SDRAM中并产生中断通知CPU。时钟恢复电路如图9所示,其处理过程为TS流11输入到PCR提取到时钟恢复中,时钟恢复电路根据PCR—PID提取TS流中的PCR数据并放到PCR寄存器21中,如果该PCR是一个节目的第一个PCR,同时将该PCR读到STC计数器22中。然后将PCR寄存器和STC计数器的值相减,第一次相减的结果为0,将0值送到PWM信号产生电路24中,生成P丽脉冲信号,生成27MHZ的本地时钟。STC计数器根据本地时钟进行计数。当下一个PCR—PID到来后,PCR的值被锁存到PCR寄存器中,然后将该值和STC计数器的值相减,将其差值的16位送到P丽信号产生电路中。PWM信号产生方法为P丽信号以256个TIMESLOT为一个周期,每个TIMESLOT由256个PULSE组成,将PCR和STC产生的差值的高8位和128相加,其结果用来控制每个TIMESLOT中的PULSE个数,即生成连续高电平的时间,如果PCR和STC的差值为0,则每个TIMESLOT中高电平个数为128,即P麵脉冲的占空比为0,5,这一步产生粗调结果;PCR和STC差值的低8位只产生一个PULSE,但是这个PULSE出现在不同的TMESLOT中,例如值0x01只在第128TIMESLOT产生一个PULSE;0x02则在64,192这两个TIMESLOT中产生PULSE;值0x03是0x01和0x02的叠加,共产生3个PULSE,以此类推,值0x00则不产生PULSE。这样16位PCR和STC的差值高8位粗调P丽信号,低8位细调PWM信号。将生成的信号经过低通滤波器控制VCO电路,产生本地时钟。系统总线接口是硬件电路与CPU和主存储器进行数据交互和控制的通道,其中Slave接口主要用于CPU读写硬件电路内部寄存器,CPU通过访问内部寄存器进行控制并及时得悉内部状态。Master接口主要是硬件电路在数据输出时发出总线请求,在获得总线控制权后向主存储器写入重新整理后的数据结构。发明中所描述的用于传输流(TS流)解复用的硬件电路结构配合主CPU对数据进行解码,CPU通过提前访问硬件内部寄存器,对硬件解复用方式进行配置,并完成硬件难以处理的部分协议解析工作。硬件根据配置寄存器的内容,接收和过滤所需要的包,并将这些数据从复用流中提取出来并在主存储器中重新组织,便于音频和视频解码器进行解码和播放。经过实现后能够稳定工作于150MHz,完全满足高清解码的需求。权利要求1.一种传输流解复用硬件结构和实现方法,用于与主CPU协同工作对传输流进行解复用,其特征在于包括输入部分、包处理部分、输出部分以及系统总线接口部分。2.根据权利要求1所述的传输流解复用硬件结构和实现方法,其特征在于所述输入部分采用SPI接口,并具有两个188字节的Buffer构成乒乓结构,当第一个buffer收到一个TS流包后通知包处理部分进行处理,同时将第二个TS流包数据放到第二个Buffer中等待处理,当第一个包处理完成后,包处理部分立即处理第二个buffer中的数据,继续接收到的新的数据包放置到第一个Buffer,以此循环。3.根据权利要求1所述的传输流解复用硬件结构和实现方法,其特征在于所述包处理部分由PID过滤、PES分组包解包、Section解包、硬件解扰、时钟恢复组成,PID过滤根据CPU配置的PID寄存器进行,过滤后的包分别由PES分组包解包和Section解包进行处理,其中音频、视频和数据包由PES分组包解包处理;PSI(ProgramSpecificInformation)和SI(SpecificInformation)由Section解包处理,时钟恢复通过接收PCR并与内部寄存器比较的差值进行时钟恢复;解扰电路对采用DVB通用加扰算法加扰后的TS流包进行解扰。4.根据权利要求1所述的传输流解复用硬件结构和实现方法,其特征在于所述输出部分由解码FIFO输入控制、视频FIF0、音频FIF0、数据FIF0、和FIFO输出控制电路构成,视频FIFO、音频FIF0、数据FIFO分别对音频、视频和各种SI、PSI及私有数据进行暂存,并通过FIFO输出控制电路进行输出。5.根据权利要求1所述的传输流解复用硬件结构和实现方法,其特征在于所述系统总线接口用于CPU控制硬件电路以及硬件电路进行数据输出。全文摘要本发明描述了一种用于传输流(TS流)解复用的硬件结构和实现方法,该电路具有软件接口控制寄存器,便于采用软硬件协同工作的方式,对符合DVB标准的TS流进行解复用。由硬件电路将TS流中各种类型数据分别提取并存储于主存储器中,然后通知主控CPU以便于其做下一步的解码控制。本发明主要提出硬件电路的结构及实现方法,以满足集成于机顶盒或数字电视接收SOC芯片的需求。电路结构主要包括输入部分、包处理部分、输出部分和总线接口部分。文档编号H04N7/26GK101453641SQ20071017829公开日2009年6月10日申请日期2007年11月29日优先权日2007年11月29日发明者邹明洪,陈波涛,马依迪,魏春峰申请人:北京中电华大电子设计有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1