新闻中心

EEPW首页 > 消费电子 > 设计应用 > 手机电视(DVB-H)软件接收器

手机电视(DVB-H)软件接收器

作者:时间:2012-06-05来源:网络收藏

图6 MPE-FEC框架交织编码方式

本文引用地址://www.cghlg.com/article/165496.htm

4、 系统设计

的详细架构如图7所呈现,主要由传输串流分派器(TransportStreamDispatcher)、子译码器(SubDecoder)组件、控制器(Controller)对象与MPE-FEC运算单元(MPE-FECOperationUnit)所组成。

图7架构

4.1传输串流分派器

传输串流分派器主要负责将DVB-H传输串流中各种类型的封包转递给不同的子译码器进行处理并从封包中过滤使用者所欲观看的节目传递给DVB-H终端装置。若在Burst传输期间,封包数据因噪声干扰而损毁,或者传送端于传送时为符合服务的传输位率而添加一些填塞封包,因此为减少封包的处理时间,故在传输串流分派器取得封包之后,便先检查此流封包是否发生错误与是否为填塞封包,若发生错误,则将封包丢弃,而整个执行程序将进入到错误分类机制(ErrorCategorizationmechanism)中,若为填塞封包则即早丢弃,避免填塞封包送入子译码器中花费不必要的处理时间。为简化子译码器的复杂度,传输串流分派器系使用分派表方式来注册欲译码的封包子译码器类型,并藉此分离各个子译码器之间的相依关系。分派表系采用杂凑表(Hashtable)的一种应用,使用杂凑表的优点在于不论注册数量的多寡,查询时间花费永远固定为常数值,因此将可广泛支持未来规范中新增的窗体或台所自订的私有窗体。而整个传输串流分派器的分派处理动作则如表1的虚拟程序代码(Pseudocode)所示。

表1 传输串流分派器之虚拟程序代码

If System Start then

Set Buffer to receive TS packet

If ErrorIndicator is equal to 1

Drop this TS packet

Start Error Categorization mechanism

else if PID is equal to 8191

Drop this TS packet

else if PayloadUnitStartIndicator is equal to 1

If ContinueSection is not equal to Null

Call the sub-decoder to continue decode

else

If sub-decoder is not found

Drop this unknown TS packet

else

Call the sub-decoder to decode

else

If ContinueSection is not equal to Null

Call the sub-decoder to continue decode

else

Drop this TS packet

4.2子译码器组件

于初始化时期,子译码器必须向传输串流分派器注册封包类型,以便从传输串流分派器中得到相对应的封包。

表2子译码器共通虚拟程序代码

Function:DecodeFunction

从传输串流分派器中取得section中的第一个封包并译码。

Set PayloadBuffer to receive the section data

Set PaylaodLength equal to PacketPayloadLength

If SectionHeaderLength is equal to 12

Decode the section header

If section payload is not equal to Null

Output section payload to

SectionPayloadCottectionUnit

else

Set ReceiveLength equal to PayloadLength

Set ContinueSection to this sub-decoder

Function:ContinueFunction

从传输串流分派器中取得接续的section封包资料。

Set PayloadBuffer to receive the section data

Set PayloadLength equal to PayloadLength add

ReceiveSectionPayloadLength

If SectionHeaderLength is equal to 12

Decode the section header

If section payload is not equal to Null

Output section payload to

SectionPayloadCottectionUnit

If PayloadLength is equal to SectionLength

Set ContinueSection to Null

else

Set ContinueSection to this sub-decoder

子译码器共通的虚拟程序代码如表2所示,传输串流分派器则根据分派表中已经注册的子译码器信息来递送封包给特定子译码器,子译码器则根据封包中所传达的数据将讯息或组态释出,并传递给控制器对象。当子译码器藉由解读section的长度字段得知该section数据长度超过一个封包所能承载的数量时,会将接续片段指针对象设定指向自己。此后,当传输串流分派器接收到封包后,将会检视接续片段指针对象是否为空对象,若为空对象则从分派表中寻找负责解a此封包的子译码器。若非空对象,则将封包传送给欲接续接收的子译码器,直到整个section数据接收完成之后,子译码器才会将接续片段指针对象重设为空对象,而从下一个封包开始,将以正常程序寻找封包子译码器。

4.3控制器对象

控制器对象为DVB-H软件接收器与使用者互动的接口。控制器的主要功能除了撷取使用者的输入讯息之外,也实作讯息输出接口。在控制行为部分,控制器仅与子译码器互动,在讯息输出方面,则是与整个DVB-H软件接收器中的所有组件连结在一起。另外,在实作设计上则不同于传统将控制接口嵌入于播放器的作法,藉由此方式达到DVB-H软件接收器与播放装置各别独立的能力。

4.4MPE-FEC运算单元

MPE-FEC运算单元主要负责进行整个MPE-FEC机制的运作,如图8而其又可分为三个运作单元,分别为:MPEsection数据收集单元、FECsection数据收集单元与所罗门译码单元(RSDecodingUnit)。

其中MPE与FECsection数据收集单元主要负责收集从子译码器解读取出的section数据,当完成section数据收集后即填入位于所罗门译码单元中的MPE-FEC框架中,直到整个框架的所有section数据均已收集完成,则立即进行每列的所罗门纠错译码,藉此来修复于传输时因噪声干扰所造成的数据错误。



评论


相关推荐

技术专区

关闭