附加字幕的传输系统 【发明领域】
本发明涉及对于限定在活动的视频区内的具有矩形区域形状的图形图象的编码数据进行发送的方法。本发明也涉及接收所述图形图象地方法,以及用来实行所述方法的发射机和接收机。
【发明背景】
现有技术的发送图形图象的方法是通常称之为“Teletext”(图文电视)的方法。世界系统图文电视标准已在许多国家被采用来以传统的模拟电视信号同时发送正文和图形信息。图文电视系统特别被用来发送与电视节目有关的附加字幕。
同时,MPEG2(ISO/IEC13818)数字电视标准将在世界范围内被应用来通过卫星、电缆、陆地网络以及通过如磁带或光盘那样的包装的媒体(packaged media)把数字电视节目广播到最终用户。大批用于MPEG2解压缩和多路信号分离的集成电路正在上市,并将被应用到接收机译码器中,以用来接收和译码广播电视节目或译码被包装的(多)媒体。
MPEG2压缩和多路传送技术将使最终用户能对节目有非常大的选择余地(典型地是几百的量级),这将需要一个容易使用的“人-机接口”。可以预期,最终用户将把“数字”和高质量联系在一起。因此,高质量必须在将被提供的服务的所有方面都表现出来。典型的卫星广播具有很宽广的接收区域,通常它包括多种语言的地区。因此,许多被广播的电视节目也将对准多种语言的地区,这将需要多语言的附加字幕的能力。附加字幕的吸引性和可读性对于最终用户乐意观看以不是他们的本国语言讲述的电视节目有重大影响。
现有技术的图文电视系统在质量和性能方面是很有限的。这是一种基于字符的传输系统,其中编码数据被发送来决定哪些字符要被显示。附加字幕的显现(通过字符字型,间隔,图形能力,颜色等)在硬件上是固定的。而且,现在的图文电视系统不能支持复合字符组,例如在中华人民共和国和日本所使用的那样的字符组。基于字符的系统将需要非常昂贵的和复杂的字符产生器,以便支持多个字符组或单个的但非常复杂的字符组。这样,现有技术的图文电视系统只提供了对多语言附加字幕的基本解决方法。
本发明的目的和概要
本发明的一个目的是克服上述的现有技术系统的缺点。另一个目的是提供用于多语言附加字幕、特别是对于MPEG2环境下的通用解决方法。
按照本发明的方法的特征在于,构成所述区域的象素是由编码数据单独地限定的,所述区域的尺寸和位置被包括在编码数据中。本方法使得程序提供器能控制以象素形式的图形图象的显现。“基于区域的图形”系统提供比特对应的而不是字符编码的区域,以覆盖视频信号。它对于字符尺寸和字符字型没有限制,并且有能力覆盖除了文本还有图形,例如,程序提供器的标识。
在一个实施例中,编码数据还包括表示所述区域要被显示的时间的时间印记。这允许多语言的附加字幕预先被发送,而后和视频信号正好同步地被显示。在现有技术的图文电视系统中,以所选择的语言表示的附加字幕在接收到时立即被显示。或多或少地精确同步只有在限定的时间间隔内发送以多种语言表示的所有附加字幕的情况下才有可能。
对于给定区域的随后的编码数据可包括一个能使所述区域不被显示的可见度代码。这就允许有效地擦掉图形区域。
在本发明的另一个实施例中,区域的象素被作为颜色查对表的项目进行编码。一些对照表可被提供来把n比特的象素代码对应到一个具有大于2n项的颜色查对表。
在特别有利的实施例中,编码数据被容纳在按照MPEG2或类似标准的专用输送数据流中。把编码数据打包到MPEG2专用输送数据流的PES信息包中,将会具有容易把比特图同步到相关的MPEG视频数据流的优点。
附图简介
图1-3显示了包含一个或多个图形图象区的显示屏幕的例子。
图4显示一个带有其有关的尺寸和位置参量的区域。
图5显示按照本发明的适合于同时发送视频信号和图形图象的发射机的示意图。
图6显示按照本发明的用于同时接收视频信号和图形图象的接收机的示意图。
图7和8显示了图6所示接收机彩色产生电路的实施例。
实施例的描述
现在首先将通过发送格式来描述本发明。如此后描述的句法类似于在MPEG2(ISO/IEC13818)标准中所使用的句法。该句法的{and}符号已被省略,因为它们对于可读性并不重要。对于本发明来说并不重要的、或仅仅用于字节对准的数据单元也被省略。
决定图形图象的编码数据被打包到PES(打包的基本数据流)信息包,并被包容在MPEG2输送数据流中。如MPEG2标准所建议的,PES信息包包含数据头和负载。
数据头包括多个数据单元,其中以下部分和本发明有关。
*单元stream_id被设置为’1011 1101”,以表示图形图象被当作为private_data_stream_1输送。
*单元PES_packet_length被设置为这样的值,以使每个PES信息包都和MPEG2输送信息包对准。
*单元data_alignment_indicator被设置为’1’,表示数据区(fields)和PES信息包对准。
*PTS(显示图象的时间印记)表示包含在PES信息包中的每个(与区域有关的)数据的显示时间的开始。在一个复页内的各区域的PTS的差异将大于40毫秒。
决定图形图象的PES信息包的负载被表示为PES_data_field()。表I显不了此数据区的句法。
表I PES_data_field() data_identifier 8uimsbf RbG_stream_id 16bslbf stream_level_of_compatibility 3bslbf single_page_display_flag 1bslbf for(i=O;N;i++) region_id 8uimsbf region_level_of_compatibility 3bslbf region_data_length 16uimsbf region_data_field()以下的语义的定义可被加到此表所示的数据单元:*data_identifier-基于区域的图形(RbG)数据借助data_identifier区的值0x20-0x2F进行识别
*RbG-stream_id-识别RbG(基于区域的图形)数据流,数据从该数据流存储到该PES信息包中。
*stream_level_of_compatibility-表示为对该数据流的区域进行译码所需要的最小的颜色查对表(CLUT)。数值0x01指的是2-比特CLUT,数值0x02指的是4-比特CLUT,以及数值0x03指的是8-比特CLUT。
*single_page_display_flag-如果设置为’1’,表示该RbG数据流只包含一个显示页。
*region_id-识别包含在紧接着的以下的region_data_field()中的数据的区域。
*region_level_of_compatibility-表示为对该区域进行译码所需要的最小CLUT。使用以上所定义的数值。
*region_data_length-指定在紧接着的以后的region_data_field()中的字节数,其句法在表II中给出。
表II显示了region_data_field()的句法。
表II region_data_field() region_data_type 4bslbf visibility_flag 1bslbf horizontal_address_flag 1bslbf vertical_address_flag 1bslbf number_of_pixels_flag 1bslbf number_of_lines_flag 1bslbf if(horizontal_address_flag==’1’) region_horizontal_address 16uimsbf if(vertical_address_flag==’1’) region_vertical_address 16uimsbf if(number_of_pixels_flag==’1’) number_of_pixels 16uimsbf if(number_of_lines_flag==’1’) number_of_lines 16uimsbf number_of_subregions 4uimsbf for(i=O;i<number_of_sub_regions;i++) sub_region_id 4bslbf number_of_sub_region_lines_tlag 1bslbf clut_flag 1bslbf attribute_extension_flag 1bslbf coded_data_flag 1bslbf coded_data_extension_flag 1bslbf if(number_of_sub_region_lines_flag==’1’ number_of_sub_region_lines 16uimsbf if(clut_flag==’1’) colour_look_up_table_data() it(attribute_extension_tlag== ’1’) attribute_extension-length 8uimsbf for(i=1;i<attribute_extension_length;i++) reserved 8bslbf if(coded_data_flag==’1’) coded_sub_region_data() if(coded_data_extension_flag==’1’) coded_data_extension_length 8uimsbf for(i=O;i<coded_data_extension_length;i++) reserved 8bslbf
以下的语义的定义可被加到此表所示的数据单元:
*region_data_type-识别区域数据的类型。数据0x10指的是内部区域(I-区),数值0x11指的是区域属性(A-区),数值0xFF表示要被删除的区域。
*visibility_flag-如果设置为’1’,则指定该区域将按照编码数据为该区域所限定的那样被显示。如果设置为’0’,则该区域将是透明的。
*horizontal_address_flag-表示存在region_horizontal_address区。在I-区,此标志将是’1’。
*vertical_address_flag-表示存在region_vertical_address区。在I-区,此标志将是’1’。
*number_of_pixels_flag-表示存在number_of_pixels区。在I-区,此标志将是’1’。
*number_of_lines_flag-表示存在number_of_lines区。在I-区,此标志将是’1’。
*region_horizontal_address-指定该区域的左上方象素的水平地址。在720×576象素的帧内,只有偶数象素将被寻址。720个象素的最左边的象素的下标为零,且象素地址从左到右逐渐增加。水平地址将是这样的,以使区域的每个象素在活动的720个象素以内。
*region_vertical_address-指定该区域的顶部线的垂直地址。720×576的帧的顶部线是第0线,且线的下标号在帧内从顶部到底部以增量1逐渐增加。垂直地址将是这样的,以使区域的每条线在576条活动的线之内。
*nnmber_of_pixels-指定该区域的水平象素个数。数值零是被禁止的。
*number_of_lines-指定该区域的垂直线的数目。数值零是被禁止的。
*number_of_sub_regions-指定该区域内的子区域的个数。数值零是被禁止的。
*sub_region_id-识别子区域。
*number_of_sub_region_lines_fag-表示存在number_of_sub_region_lines区。
*clut_flag-表示存在colour_look_up_data_field()区,其句法在表III中给出。
*attribute_extension_flag-如果设置为’1’,则表示存在attribute_extension_length区及相关的保留区。
*coded_data_flag-表示存在coded_sub_region_data()区,它将在表IV中被定义。
*coded_data_extension_flag-如果设置为’1’,则表示存在coded_data_extension_length区及相关的保留区。
*number_of_sub_region_lines-指定在子区中的线的数目。在区域内的所有子区中的线的总数将等于该区域中的线的数目。
*attribute_extension_length-指定紧接着的以下的保留字节的数目。
*coded_data_extension_Iength_指定紧接着的以下的保留字节的数目。
表III显示了colour_look_up_data_field()的句法。
表III colour_look_up_table_data() number_of_entries 9uimsbf for(i-1;j<number of entries;i++) 2_bit_ciut_daestination flag 1bslbf 4_bit_clut_destination_flag 1bslbf 8_bit_ciut_destination_flag 1bslbf full_range_flag 1bslbf Antry_value 8uimsbf if(full_range_flag==’1’) Y_value 8bslbf U_value 8bsibf V_value 8bslbf T_value 8bsibf else Y_value 4bslbf U_value 4bslbf V_value 4bslbf T_value 4bslbf
以下的语义的定义适用于此表所示的数据单元:
*number_of_clut_updates-指定要进行的更新周期的数目。
*number_of_entries-指定被更新的CLUT项的数目。
*2_bit_clut_destination_flag-如果设置为’1’,则表示该项被打算用于2-比特的CLUT。
*4_bit_clut_destination_flag-如果设置为’1’,则表示该项被打算用于4-比特的CLUT。
*8_bit_clut_destination_flag-如果设置为’1’,则表示该项被打算用于8-比特的CLUT。
*full_range_flag-如果设置为’1’,则表Y-值,U-值,V-值和T-值的区具有完全的8-比特分辨度。如果设置为“0”,则这些区只包含4个最高有效位。
*entry_value-指定CLUT的项目值。CLUT的第一项的项目值为零。
*Y_Value-该项目的CLUT的亮度输出值。
*U_value-该项目的CLUT的第一色度输出值。
*V_value-该项目的CLUT的第二色度输出值。
*T_value-该项目的CLUT的透明度的输出值。
零值表示不透明。值225表示完全透明。对于所有其它的值,透明程度是以线性插值确定的。
表IV显示了coded_sub_region_data()的句法。
表IV coded_sub_region_data() data_block_length 16uimsbf for(i=1;i<data_block_length;i++) coding_mote 2bslbf if(coding_model=’00’) pixels_in_mode 6bslbf if(coding_mode==’01’) for(i=1;i<(pixels_in_mode+3)/4;i++) for(i=1;i<pixels_in_mode;i++) 2_bit_code 2bslbf fori+1;i<(4*((pixels_in_modle+3)/4)-pixels_in_mode);i++) 2_stuff_bits 2bslbf if(coding_mode==’10’) for(i=1;i<(pixels_in_mode+1)/2;i++) for(i=1;i<pixels_in_mode;i++) 4_bit_code 4bslbf for(i= 1;i<(2*((pixels_in_mode+1)/2-pixels_in_mode);i++) 4_stuff_bits 4bslbf if(coding_mode==’11’) for(1=1;i<pixels_in_mode;i++) 8_bit_code 8bslbf else mode_extension 2bslbf if(mode_extensionl=’00’) if(mode_extension==’01’) 10_bit_run 10uimsbf 2_bit_cods 2bslbf if(mode_extension==’10’) 8_bit_run 8uimsbf 4_bit_code 4bslbf if(mode_extension==’11’) 4_bit_run 4uimsbf 8_bit_code 8bslbf else command_length 4uimsbf if(command_length==15) long_length 16uimsbf command_id 8bslbf if(command_id==load_map_table) map_table_data() else if(command_lengthl=15) for(i=1;i<command_length;i++) reserved 8bslbf else for(i=1;i<long_length;i++) reserved 8bslbf
以下的语义的定义适用于此表所显示的数据单元:
*data_block_length-指定紧接着跟在该区后的coded_sub_regiondata区的字节的个数。
*coding_mode-指定所应用的编码模式。如果设置为’00’,则表示存在mode_extension区。
*pixels_in_mode-指定由coding_mode区所指定的2,4或8比特代码所编码的象素的个数。
*2_bit_code-指定象素颜色的2比特的代码。
*2_stuff_bits-以’11’编码的两个填充比特。
*4_bit_code-指定象素颜色的4比特的代码。
*4_stuff_bits-以’1111’编码的4个填充比特。
*8_bit_code-指定象素颜色的8比特的代码。
*mode_extension-识别所应用的扩展模式。如果设置为’00’,则表示存在着命令。如果设置为其它值,则表示应用了扫描宽度(runlength)编码。
*10_bit_run-指定带有由紧接着的以下的2_bit_code区识别的颜色的随后的象素的个数。
*8_bit_run-指定带有由紧接着的以下的4_bit_code区识别的颜色的随后的象素的个数。
*4_bit_run-指定带有由紧接着的以下的8_bit_code区识别的颜色的随后的象素的个数。
*command_length-指定紧接着跟在command_length区后的该coded_sub_region_data()区中的字节的个数。如果设置为值15,则此数不被command_length区指定。
*long_length-指定紧接着跟在long_length区后的该codea_sub_region_data()区中的字节的个数。
*command_id-识别命令的类型。数值0x10表示装载对照表(LoadMap Table)。该命令后跟有map_table_data()区,它将表V中被定义。数值0x11表示线的末尾端。
表V显示了map_table_data()的句法
表Vmap_table_data() number_of_entries 8uimsbf for(i=1;i<number_of_entries;i++) 2_to_4_map_table_flag 1bslbf 2_to_8_map_table_flag 1bslbf 4_to_8_map_table_flag 1bslbf entry_value 4uimsbf map_table_output_value 8uimsbf
以下的语义的定义可适用于此表所显示的数据单元:
*number_of_entries-指定被装载的对照表项目的个数。
*2_to_4_map_table_flag-如果设置为’1’,则表示该项目被装载到“2到4对照表”。
*2_to_8_map_table_flag-如果设置为’1’,则表示该项目被装载到“2到8对照表”。
*4_to_8_map_table_flag-如果设置为’1’,则表示该项目被装载到“4到8对照表”。
*map_table_type-识别被装载的对照表的类型。数值’01’表示“2到4对照表”,数值’10’表示“2到8对照表”,数值’11’表示“4到8对照表”。
*entry_value-指定对照表的项目。对照表的第一项的项目值为零。
*map_table_output_value-指定对于该项的对照表的输出值。
现在将以较通用的语言阐述以上的句法和语义。PES_data_field()(表I)至少指定包含一个或多个区域的一“页”。图1-3显示了包含一个或多个区域的活动的图象区的几个例子。图1显示了程序提供器的标识A和当前的附加字幕B。图2显示了为听觉受损伤的观众而设的补充的附加字幕C(听觉受损伤的观众常常需要附加的说明字幕,例如“观众欢呼”,“渐增强的音乐”)。图3显示了标识A和附加字幕Bi,下标i表示从多种语言中可选择的一种语言。
各个区域的数据被包容在region_data_field()中(表II)。该数据指定各个区域的尺寸和位置。参照图4,一个区域的位置被表示为(x,y),x由region_horizontal_address指定,以及y由region_vertical_address指定。这些位置参量通过重新发送对于给定区域的编码数据(由它的region_id指定)而不用重新发送象素代码和颜色查对表数据,可被及时地改变,它允许进行滚动。区域的尺寸是Pxn,P和n分别由Number_of_pixels和number_of_lines指定。每个区域包括多达16个子区域。在图4中,显示了两个子区域,其分别包含n1和n2条线。region_data_field()指定颜色查对表数据和/或每个子区域的象素数据。
不是所有的上述参量和数据都是强制性的。它们的存在由各个标记表示。这允许已定义的区域和/或子区域藉分别参照它们的region_id和/或sub_region_id被更新或修正。例如,区域的位置可被修正(这允许滚动);_已被显示的区域可被变成不可见的;或子区域也可被另一个区域所引用,这样就可在屏幕上到处显示而不用重新发送所有的图象数据。
颜色查对表被colour_look_up_data()区(表III)装载或更新。该数据区指定哪些亮度、色度和透明度输出值要被存储在CLUT的哪些项目中。透明度限定了图象的和图形的象素在屏幕上被混合的程度。
子区域的象素数据(或对于整个区域来说,子区域数目为1)被包容在coded_sub_region_data()区(表IV)。象素被规定为颜色查对表的项目。象素值可被限定在2, 4或8比特。有三种编码模式可提供使用。在第一种编码模式中(coding_mode为’01’,’10’,’11’),相继的象素被单独指定。这样发送的象素个数由pixels_in_mode决定。在第二种编码模式(coding_mode为’00’,coding_mode_extension为’01’,’10’,’11’)中,相继的单独象素的扫描是编码的扫描宽度。第一种和第二种编码模式在一个区域内可以混合。为了使译码复杂性最小化,务必使扫描宽度编码数据按字节对准。每个扫描宽度代码包含两个字节:2比特为编码模式,2比特为编码模式扩展以及12比特为扫描宽度代码。后者限定2-比特象素的10-比特扫描,4-比特象素的8-比特扫描,或8-比特象素的4-比特扫描,正如由编码模式扩展所指明的那样。第三种编码模式(coding_mode为’00’,coding_mode_extension为’00’)指明了诸如对照表和线末端指示符那样的命令,它们作用在扫描宽度的译码的数据上。对照表的概念在下面将更详细地加以描述。
可以预料,现成的屏幕显示用芯片可被用来显示图象。这些芯片中的一些允许用于每个象素2比特,另一些用于每个象素4比特或每个象素8比特。如果在一个区域内的象素藉使用不同于颜色查对表的输入宽度的、每个象素的多个比特进行编码,则会引起潜在的问题。为了解决这个问题,就引入了对照表的概念。对照表也提高了编码效率。它们允许象素以比颜色查对表的项目宽度少的每个象素的比特来进行编码。现在将以实例阐明这些方面。假定出一个(子)区域,其中只使用四种不同的颜色。各个颜色按其亮度和色度而被存储在CLUT的四个项目中。所述区域的象素数据以每象素2比特被进行编码。然而,译码器可以有4-比特的CLUT,因而需要每象素4比特。这样,对照表就提供所发送的每象素2比特的代码到4-比特的CLUT项目的对应关系。因此,对照表通知译码器:16个项中哪4项要被使用。关于每象素2-比特的编码是否确实改善效率,则取决于用以改变编码模式或对照表的总开销。这样,对照表被提供来把n比特/每象素的编码对应到m-比特的CLUT,这里,n和m是不同的数字。鉴于对照表概念的这种说明,map_table_data()区(表V)不再需要解释。对于对照表的每个项目的值,输出值被加以限定。
图5显示了按照本发明的发射机的示意图。发射机适合于同时发送视频信号和图形图象。发射机以YUV格式接收基带视频信号和相关的音频信号,发射机包括MPEG2视频编码器101和MPEG2音频编码器102,用于把所述视频和音频信号分别编码成打包的基本数据流PSV和PSA。发射机还包括编辑端子103,用于编辑附加字幕和/或其它图形图象,例如程序提供器的标识。编辑端子被连接到处理和存储装置104。与适当的电视节目有关的多个附加字幕,可能是以多种语言表示的,假定是被提前存储在处理和存储装置中。视频信号也被加到定时发生器105,它把时间t加到处理和存储装置104。时间t可以是从适当的电视节目的起始所经过的一段时间,或者可以是和存储在与电视信号同样的磁带上的节目有关的时间代码。在MPEG系统中,时间t将和MPEG系统时钟基准SCR相一致。处理和存储装置把时间t和有关每个存储的附加字幕的时间印记进行比较。当附加字幕正是要被显示时,适当的数据被加到编码和打包装置106,后者构成按照此前所讨论的传输格式限定编码数据的打包的基本数据流PSG。打包的基本数据流PSV、PSA和PSG由MPEG多路转接器107进行多路转接,以构成输送数据流TS。输送数据流通过传送媒体或存储媒体(图上未示出)被发送到接收机。
图6显示了按照本发明的接收机的示意图。接收机包括MPEG2多路信号分离器201,后者接收MPEG2输送数据流TS,选择打包的音频数据流PSA、视频数据流PSV和编码的图形数据PSG,一起构成所选择的电视节目。音频数据流由MPEG2音频译码器202译码。被译码的音频信号AUD加到扬声器203,以重现声音。视频数据流由MPEG2视频译码器204译码,以得到具有YUV格式的译码的视频信号,用于在显示屏幕205上进行显示。编码的图形数据流被加到数据解析器206。该电路解析了包容于PES信息包PSG中的数据,并提供以下的输出信号:
—包含在PES数据头中的显示时间印记PTS,表示要被显示的区域的时间;
—visibility_flag的数值(表II),被表示为VF;
—编码象素数据,正如表IV中的n_bit_code区(n=2,4,8)所限定的那样;8-比特的象素代码被表示为PX8,4-比特的象素代码被表示为PX4,2-比特的象素被表示为PX2;
—当前所接收的区域的位置(x,y)和尺寸(p,n),正如分别由region_horizontal_address区,region_vertical_address区,number_of_pixels和number_of_lines(表II,图4)所限定的那样;
—由map_table_data()区(表V)限定的对照表数据,并表示为MTD,(此信号在本实施例中未被使用);
—由region_level_of_compatibility区(表I)得出的信号,被表示为LoC,以及
—由colour_look_up_table_data()区(表III)限定的颜色查对表数据,被表示为CTD。
从解析器206接收到的象素数据PXn(n=2,4,8)(当扫描宽度通过扫描宽度译码器207被编码时)被存储在象素存储器208,适当的存储器位置被从解析器接收到的位置(x,y)和尺寸(p,n)所确定。象素存储器208被显示定时信号(图上未示出)读出。象素PX2,PX4或PX8(一个区域可以包括2-比特,4-比特和8-比特象素,但其中只有一种是在象素的持续时间内是活动的)以和所接收到的视频信号相同步的方式被加到彩色产生电路209。
彩色产生电路209包括颜色查对表2092。在本实施例中,所述CLUT被假定为只具有四个项目,即它的输入是2比特宽度。对于每个项目,CLUT通过8-比特的宽度值Y和8-比特的色度值U和V、以及8-比特的透明度值T而保持有一个输出信号,它被表示为OSC。适当的YUV和T值,响应于从解析器接收到的颜色查对表数据CTD而被存储在CLUT中。
由于颜色查对表2092具有一个2-比特的输入端,2-比特的象素PX2被直接加到它上面。4-比特象素PX4和8-比特象素PX8分别通过4到2比特缩减电路2093(reduction circuit)和8到2比特缩减电路2094被加到CLUT。在一个简单的实施例中,所述的缩减电路仅仅丢弃最低有效输入比特。在另一个实施例中,最高有效比特不作改变地得出第一输出比特(或某些最高有效比特被进行“或”运算),而最低有效输入比特被进行“或”运算,以得出第二输出比特。
缩减电路2093和2094允许较高级别的CLUT数据(>2比特)由较低的级别的CLUT数据(2输入比特)进行相容性地译码。然而,程序提供器可阻止由4种以上的颜色所限定的区域被2-比特的CLUT数据进行译码。这是藉由从解析器接收到的信号LoC、也就是region_level_of_compatibility区(见表I)所控制的开关2091来达到的。如果开关是在被表示为4或8的位置(也就是,程序提供器分别需要至少一个4-比特CLUT或8-比特CLUT),则该区域将不被显示。只有在开关处于被表示为2的位置时,(也就是,程序提供器接受:象素只以四种颜色显示),象素数据确实被加到CLUT。
响应于2-比特的象素代码,CLUT2092提供显示输出信号OSD和透明度信号T。输入信号OSD被加到混合级210,在其中它和视频信号YUV按一个象素一个象素的原则被混合。透明度信号T确定图形象素的总的透明度。如果T的值为0,则视频信号被完全无效,图形象素不受影响。如果T的值为225(即,100%),那么相关的图形象素完全透明。对于其它的T值,透明度大小是线性插值的。这就允许视频图象信号通过图形图象保持可见的。
这样,组合后的信号被显示在显示屏幕205上。然而,图象是否显示取决于由显示使能电路213控制的开关212。该电路接收来自解析器的显示时间印记PTS和可见度标记VF、以及(未示出)由MPEG系统时钟基准给出的当前时间t。显示使能电路213适合于只要t>PTS就使图形区域能显示、以及当有关区域的visibility_flag被设置为“0”时就使它不能显示。
图7显示了接收机的彩色产生电路209的另一个实施例。在该实施例中,接收机的CLUT具有一个4-比特输入端,也就是CLUT包括16个项目。这样,4-比特象素PX4被直接加到开关2091,而8-比特象素通过一个8到4比特缩减电路2096,该电路例如可丢弃四个最低有效输入比特。2-比特象素通过2-到4比特对照表2095,这事实上就是一个具有四个4-比特位置的存储器。对照表2095把2-比特象素对应到4-比特CLUT项目,正如从解析器接收到的对照表数据MTD所指定的那样。对照表的概念在前面已被阐述。如果开关2091处于被表示为8的位置(即程序提供器至少需要一个8-比特CLUT),该区域将不被显示。如果开关处于被表示为2或4的位置(即程序提供器接受:8-比特象素仅以16种颜色包被显示),则象素数据确实被加到CLUT。
图8显示彩色产生电路209的一个实施例,其中CLUT2092具有一个8-比特输入端,即CLUT包括256个项。这样,8-比特象素PX8被直接加到开关2091,而2-比特象素PX2和4-比特象素PX4分别通过2到8比特对照表2097和4到8比特对照表2098。对照表2097把2-比特象素对应到8-比特CLUT项目,正如从解析器接收到的对照表数据MTD所指定的那样。对照表2098对于4-比特象素进行同样的操作。严格地讲,开关2091在本实施例中是冗余的,正如本接收机处理所有的传输而不管所发送的CLUT要求。
如以上所说明的,缩减电路(2093,2094,2096)允许较高级别的CLUT数据能被较低级别的CLUT兼容地进行译码,而对照表(2095,2097,2098)允许较低级别的CLUT数据被动态地对应到较高级别的CLUT。表VI总结了各种不同的可选项,并指出各种不同的性能级别。
表VI2-比特CLUT00-0- -4-比特CLUT0++++++ -8-比特CLUT0++++++++++++LoC=2 LoC=2 LoC=4 LoC=2 LoC=4 LoC=82-比特数据4-比特数据 8-比特数据
表VI显示了:三行表示分别具有2-比特、4-比特和8-比特的CLUT的接收机的性能。三列表示一个区域分别包括2-比特、4-比特或8-比特象素。LoC表示包括在编码数据中兼容性程度。
如果一个区域只被限定为2-比特/每象素,则可以显示四种颜色(性能被表示为0),而不管CLUT输入端是2,4或8比特的宽度。这就使程序提供器对于这样的区域要求优于2比特的CLUT成为无意义。这是由各个列中的LoC=2来表示的。
如果一个区域包括4-比特象素,则程序提供器可允许这样的区域藉使用2-比特的CLUT(LoC=2)来显示。所述2-比特接收机以四种颜色(性能被表示为0)显示该区域,而4-比特和8-比特的接收机可显示16种颜色(性能被表示为+)。然而,程序提供器也可要求接收机具有4-比特的CLUT(LoC=4)。在那种情况下,2-比特的接收机不能显示该区域(性能被表示为-)而4-比特和8-比特的接收机将显示16种颜色(性能被表示为++)。
如果一个区域包括8-比特象素,则程序提供器可允许这样的区域藉使用2-比特的CLUT(LoC=2)来显示。在那种情况下,2-比特的接收机显示4种颜色(性能被表示为0),4-比特的接收机显示16种颜色(性能被表示为+),以及8-比特的接收机表示全部颜色的调色板(性能被表示为++)。程序提供器也可要求接收机至少具有4-比特的CLUT(LoC=4)。在那种情况下,2-比特的接收机不能显示此有关区域(性能被表示为-),4-比特的接收机显示16种颜色(性能被表示为++),以及8-比特的接收机显示全部颜色的调色板(性能被表示为+++)。如果程序提供器要求接收机具有8-比特的CLUT,则不论2-比特的或4-比特的接收机都不能显示此有关区域(性能被表示为-),而8-比特的接收机具有最佳性能(被表示为++++)。后者的性能是最佳的,因为程序提供器不需要考虑较低级别的接收机。
总结本发明,揭示了一种同时发送视频信号和代表图形图象的编码数据的方法。本发明特别能应用于发送结合视频节目的多语言附加字幕。图形图象是在正在工作的图象区内的矩形区域。它们以比特图的形式被发送。本发明不仅允许任何字符字型或字符尺寸被显示,而且还允许例如程序提供器的标识的定义。编码数据包括时间印记,以说明附加字幕要被显示的时间。本发明的优选实施例包括发送颜色查对表(CLUT)数据和表示对所述颜色查对表的项目所需要的最小数量的兼容性代码。对于具有比必须的项多的CLUT的接收机,发送一个对照表用来把象素数据宽度对应到有关的CLUT的输入宽度。本方法对于直接视频广播系统来说是能应用的,其中视频信号是MPEG2编码的,且图形图象被包容在MPEG2输送数据流的专用数据流中。