您的位置:首页 > 编程语言 > VB

DVB业务信息PSI/SI综述---Mosaic业务介绍

2012-08-07 14:26 162 查看



马赛克业务是数字电视一个导航业务,它可起着节目推介的作用。马赛克在DVB中作是一个service,它的产生如图13所示。其核心是马赛克服务器,马赛克服务器主要功能是从多个TS中按需要提取节目视频,然后根据设置参数进行压缩、定位等处理,然后把它们合成一个节目流,同时生成相应的SI信息表,再把这个马赛克业务流与相应的SI信息经过复用器后形成一个完整的马赛克业务节目流。

马赛克业务的表现形式如图14所示,在PAL制式下,一祯电视画面大小一般为:720×576,称为电视屏幕,但马赛克业务通常不会占满整个电视屏幕,它只占整个电视屏幕的一个区域,我们称显示马赛克业务的区域为马赛克屏幕。马赛克屏幕里面显示节目图像的最小单位称为基本单元,而每一个基本单元可作为一个逻辑单元,也可由多个基本单元组成一个逻辑单元来显示较大的节目画面。





在DVB标准中,支持马赛克业务的描述符是mosaic_descriptor结构如下:

mosaic_descriptor( ){

descriptor_tag 8bit

descriptor_length 8bit

mosaic_entry_point 1bit 马赛克业务入口点

number_of_horizontal_elementary_cells 3bit 水平方向基本单元数

reserved_future_use 1bit

number_of_vertical_elementary_cells 3bit 垂直方向基本单元数

for ( i = 0; i< N; i++){

logical_cell_id 6bit 逻辑单元ID

reserved_future_use 7bit

logical_cell_presentation_info 3bit 逻辑单元表达信息

elementary_cell_field_length 8bit

for(i= 0;i<elementary_cell_field_length;i++){ 基本单元字段长度

reserved_future_use 2bit

elementary_cell_id 6bit

}

cell_linkage_info 8bit 单元连接信息

if ( cell_linkage_info == 0x01) { 与业务群相关

bouquet_id 16bit

}

if ( cell_linkage_info == 0x02) { 与业务相关

original_network_id 16bit

transport_stream_id 16bit

service_id 16

}

if ( cell_linkage_info == 0x03) { 与其他马赛克业务相关

original_network_id 16bit

transport_stream_id 16bit

service_id 16bit

}

if ( cell_linkage_info == 0x04) { 与事件相关

original_network_id 16bit

transport_stream_id 16bit

service_id 16bit

event_id 16bit

}

}

}

从马赛克描述符中,我们可看到,描述符对马赛克中的基本单元快数作了定义,对逻辑单元也作了定义,且每个逻辑单元所连接的信息及类型也作了定义,但对马赛克屏幕的大小及当存在多个马赛克页面时,如何进行页面间的切换没有做定义和描述,因此必须要对标准中没有的这些部分进行补充(作私有定义)。

⑴、私有定义一:马赛克屏幕的定义。

马赛克屏幕可把其定义为逻辑屏幕,引入一个logical_screen_descriptor (逻辑屏幕描述符)来描述逻辑屏幕的位置与大小,如下:

logical_screen_descriptor(){

descripyor_tag 8bit

descriptor_length 8bit

screen_left 16bit 屏幕水平坐标位置

screen_top 16bit 屏幕垂直坐标位置

(以上这两个参数定义料逻辑屏幕左上角的坐标,如图14的x0,y0)

screen_right 16bit

screen_bottom 16bit

(以上这两个参数定义了逻辑屏幕的右下角的坐标,如图13的x1,y1)

}

上面的逻辑屏幕描述符可以在PMT表中携带,也可以在SDT表中携带。由于它是一个私有描述符,因此,当它由SDT表携带时,根据DVB标准,必须要通过一个私有数据说明描述符加以说明,该描述符在DVB标准有定义,如下:

private_data_specifier_descriptor(){

descriptor_tag

descriptor_length

private_data_specifier

}

其中的private_data_specifier值是用于标识逻辑屏幕描述符是哪个厂家的私有描述符。

⑵、私有定义二:在马赛克业务所在流的PMT表中,由于一个马赛克业务存在多个逻辑单元和多个音频流与视频流,那么这些音频流、视频流属于哪个逻辑单元的?必须要进行标识。所以每一个音频流和视频流后都跟着一个stream_identifier_descriptor(流标识描述符),主要用于描述该音频流及视频流和逻辑单元之间的对应关系,其中的componene_tag(组件标签)是与马赛克视频对应逻辑单元的logical_cell_id (逻辑单元ID) 相等的,这个流标识描述符结构如下:

stream_identifier_descriptor(){

descriptor_tag

descriptor_length

component_tag

}

⑶、私有定义三:当存在多个马赛克页面时,为了能够使用户在几个页面之间进行切换,需要引入马赛克链接描述,其定义如下:

linkage_descriptor(){

descriptor_tag

descriptor_length

transport_stream_id

original_network_id

service_id

linkage_type

for(I=0;I<n;I++){

privste_data_byte

}

}

其中linkage_type可取0X82和0X83两个值,0X82代表向上链接,0X83表示向下链接。linkage_descriptor可由SDT表携带,每一个马赛克业务可携带两个linkage_descriptor,分别链接到上一个马赛克页面和下一个马赛克页面。同样,由于linkage_descriptor是私有描述符,所以要用一个private_data_specifier_descriptor加以说明。

图2是一个马赛克业务的实际画面,其mosaic_descriptor如图15所示。



机顶盒实现马赛克的流程:

机顶盒首先查找SDT表,看是否存在马赛克业务,如果存在,根据业务的TS_id 找到该流,并处理该流的PAT表和PMT表,在屏幕显示马赛克业务画面。

当用户对某一逻辑单元的内容感兴趣时,有下列几种情况:

①、 如果该逻辑单元是与业务群相关的,那么机顶盒将根据bouquet_id显示BAT表的信息。

②、 如果该逻辑单元与业务相关的,那么机顶盒将根据original_network_id、transport_stream_id、service_id找到业务所在的流并且通过处理PAT表和PMT表显示选中的业务内容。

③、 如果该逻辑单元与事件相关,那么显示EIT表信息,并根据original_network_id、transport_stream_id、service_id、event_id找到该事件所在的流,且通过处理PAT表和PMT表显示选中的事件内容。

④、 如果该逻辑单元与马赛克业务相关,那么机顶盒根据original_network_id、transport_stream_id、service_id找到该马赛克业务所在的流,且通过处理PAT表和PMT表显示选中的马赛克业务内容。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: