APP下载

一种基于XML的隐藏字幕数据交换格式

2014-09-18张鑫垚李绍彬

电视技术 2014年14期
关键词:缓冲区字幕命令

徐 品,邓 琪,张鑫垚,李绍彬

(中国传媒大学 信息工程学院,北京 100024)

隐藏字幕(Closed Caption)[1]技术是针对B类字幕[2]提出的字幕与节目视频分离的技术。电视节目中的字幕分为直播型和后期制作型两种。后期字幕制作流程通常是在节目视频完成以后再将字幕拍入。在目前电视节目的制作中,字幕是直接合成到画面中,合成后的字幕是不可更改的。如果采用隐藏字幕技术,字幕不再直接合成到画面中,而是以一种数据或文件形式与其宿主视频同时存在,它与宿主视频具有相同的生命期,其内容和属性依据时码与宿主视频保持同步;在播出时,隐藏字幕是作为视频帧的附加数据与视频流同步传送;在接收端,观众可以根据自己的喜好选择显示或隐藏这些字幕,这也就是隐藏字幕名称的由来。

隐藏字幕的制作形式在美国早已有研究与应用[3-5],但在数字电视条件下,如何在台内实现数字隐藏字幕宿主视频的实时伴随传输,以及将其按某种格式与宿主视频同步保存下来,是目前隐藏字幕在我国推广中的一个亟待解决的应用课题。

隐藏字幕在电视台制作域中的存在形式有两种:一种是嵌入到HD/SD-SDI码流中;另一种是以文件的形式伴随宿主视频文件,可将其摆放到非编的故事板中占据一条或多条字幕轨。编辑人员可根据需要对字幕出入点、属性和内容进行添加和修改。

本文的研究就是希望利用XML语言设计一种便于描述隐藏字幕的XML文件格式,以作为视频文件的伴随文件供台内非编或媒体数据交换及存储之用。经过实验,该XML文件可以嵌入到MXF音视频媒体交换格式中,可以在视频播放的同时同步显示字幕信息。

1 隐藏字幕结构分析

由于B类字幕主要用于节目或视频中人物对白、声音来源、唱词等,是作为视频画面中语音或其他音频的注释性文字,所以隐藏字幕不需要过多的装饰。其作用也并非想取代非编或字幕机中对图文字幕的包装,因此没有那么丰富的静态效果和动态特技,但作为电视画面的辅助性字幕其效果已经足够了。

以下根据《数字电视隐藏字幕系统规范》[6](简称《字幕规范》),对隐藏字幕的上层结构进行分析。

1.1 隐藏字幕的业务

隐藏字幕的中心问题是解决字幕业务的传输与呈现。隐藏字幕的业务是指语言及数据服务,同时可以有63个业务。业务分为基准业务和扩展业务两类。《字幕规范》中规定基准业务一共有6种,其中编号为1的用作节目主语言的字幕,编号为2的为第二语言字幕;其余编号3~6也应作为节目语言的字幕使用,以便支持节目的多语言字幕。扩展业务内容可由厂家自行定义,可以传送图片或其他数据,当然,这种定义必须取得机顶盒厂商的认可。

1.2 隐藏字幕业务的呈现效果与命令

每个隐藏字幕业务可以对应一个或多个字幕窗口。字幕呈现的效果有如下特点:

1)每个业务可在屏幕同时开辟最多8个字幕窗口;

2)每个窗口的背景色有8种颜色可选,并有4种透明效果;

3)窗口的边界有6种描述方式,还有边框的突出、凹进、平面或投影等效果;

4)对文字的排版方式有4种对齐方式、4种打印方式;

5)字幕的动态效果有滚动、弹出、划像、淡入淡出效果;

6)对字符的描述有6种字体、64种颜色,还有字符大小设置等。

数字电视隐藏字幕在终端呈现时有5个主要元素,分别为字幕屏幕、字幕窗口、字幕笔、字幕文本和字幕同步。

字幕的呈现效果是通过字幕命令来完成的,按照《字幕规范》,字幕命令分成3种类型,共14个命令:

1)窗口类型

(1)SetCurrentWindow:指定当前窗口。

(2)DefineWindow:创建窗口,设置初始值。

(3)ClearWindows:清除一组窗口中的文本。

(4)DeleteWindows:删除一组窗口。

(5)DisplayWindows:使一组窗口变成可见。

(6)HideWindows:使一组窗口变成不可见。

(7)ToggleWindows:窗口显示/隐藏状态切换。

(8)SetWindowAttributes:为当前窗口指定窗口样式。

2)画笔类型

(1)SetPenAttributes:为当前窗口设置画笔样式属性。

(2)SetPenColor:指定画笔的颜色。

(3)SetPenLocation:指定窗口内画笔光标的位置。

3)同步类型

(1)Delay:延迟服务数据的解析。

(2)DelayCancel:取消一个正在执行的延迟命令。

(3)Reset:复位字幕通道业务。

1.3 字幕语句

在字幕通道中,每个业务由一系列业务块组成,一系列命令、属性和文本可以组成一个业务块。《字幕规范》中并没有对业务块的组成方式给出具体的规定,通过研究发现,如果这些命令组成的不恰当,会给字幕呈现造成混乱。为了便于业务块的编辑保存和解析运行,引进了一个“字幕语句”的概念,并对字幕语句做出如下定义与描述:将一个或多个句法单元构成的可以良好地在终端上呈现的一个业务块称为一个隐藏字幕的一条字幕语句(简称为语句)。认为业务块可由一条或多条字幕语句所组成。每条语句由合适的命令、属性和文本组成,对它们进行分类并规定其语法,以避免在实际传输中有可能生成无效的或者无法解析的语句。

根据每条语句的组成方式,将字幕语句分为如下三种类型:关于业务缓冲区的语句,关于窗口状态的语句,关于字幕文本的语句。

1)关于业务缓冲区的语句

这类语句有三个命令:Reset,Delay和DelayCancel,它们对业务缓冲区有影响,所以称为缓冲区控制命令。

Reset和DelayCancel是针对业务缓冲区处理的命令,不需要任何参数,也不能与别的命令或字幕文本一起构成语句。所以,这种独立命令可以构成一个语句,并需要单独处理。

Delay命令也是针对业务缓冲区的,有参数,其作用可使业务缓冲区延迟解析,但缓冲区输入并没有停止。可以使用它使后继的字幕命令延时执行,比如,Delay后跟随ClearWindows,意味着某些窗口在延时一段时间后被自动清除。因此,Delay可以单独成为一个语句,也可成为其他语句的前导。

必须注意,由于Delay是针对业务缓冲区的,后面如果有非延迟命令,一定要等到延时期限以后,或者调用DelayCancel取消延时或Reset重置缓冲区。

2)关于窗口状态的语句

(1)ClearWindows:清除一组窗口中的文本。

(2)DeleteWindows:删除一组窗口的定义。

(3)DisplayWindows:使一组窗口变成可见。

(4)HideWindows:使一组窗口变成不可见。

(5)ToggleWindows:窗口显示/隐藏状态切换。

这些窗口状态控制命令,构成语句时不需要字幕文本,但需要加上一组窗口编号。

3)关于字幕文本的语句

将DefineWindow和SetCurrentWindow称为窗口起始命令,因为它们创建或选择了某一个窗口。对于字幕文本来说,如果没有窗口起始命令,很可能这些文本无法对应到一个合适的窗口中,或者对应到一个不正确的窗口中。所以不建议让字幕文本单独成为一个字幕语句。

DefineWindow是创建窗口命令,它将创建一个字幕窗口。在该命令中,有预先定制好的窗口属性和画笔属性,但很可能还需要调用属性命令来修正。其后可以跟字幕文本。

SetWindowAttributes,SetPenAttributes,SetPenColor和SetPenLocation是设置窗口和画笔属性的命令,统称为属性命令。它们不应独立构成语句,不然无法知道这些属性设置是针对哪个窗口的。

选择窗口命令SetCurrentWindow是选择已经创建的窗口,其用法与创建命令相同,两者不能同时使用。为了保证频道切换时能获得完整的窗口信息,建议每隔一个时间间隔调用一次创建命令,一直到该窗口被删除。例如可以设置这个时间间隔为1 s。

这两个命令在构成一个语句时可以带上属性命令和字幕文本。

关于窗口状态的语句和关于字幕文本的语句前面可以加Delay作为前导命令。

将缓冲区控制命令、窗口状态控制命令和窗口起始命令称为主要命令,则字幕语句的组成如图1所示。

图1 字幕语句的组成

2 CCDXF的文件结构

为了实现隐藏字幕在台内的数据交换,借助XML设计了隐藏字幕数据交换格式,简称CCDXF。

2.1 隐藏字幕的多语言业务

隐藏字幕是以业务为中心,每种业务代表了一种语言的字幕服务。因此,字幕文件可以提供多种语言的字幕业务。

字幕文本支持单字节和双字节字符编码方式。汉字和少数民族文字属于双字节字符,汉字编码标准有GB2312,GB13000(GBK)和 GB18030。其中 GB18030包括了我国主要的少数民族文字,如藏、蒙古、傣、彝、朝鲜、维吾尔文等[7]。使隐藏字幕在多语言支持方面成为可能。

隐藏字幕可以通过多业务方式支持多语言字幕的呈现。多语言显示时可以同时呈现,也可以让终端用户二选一或多选一。

隐藏字幕的优点之一是可以在视频完成之后修改已有的字幕业务,还可以添加新的字幕业务。由于在最小功能建议中要求只需有两路字幕业务可被同时解出,所以,有时要通过调整字幕业务编号来保证该字幕业务一定能被解码。

2.2 隐藏字幕的XML文件结构

在非编的时间线上,一种字幕业务就会占据一个字幕轨,所以也应该对应一个隐藏字幕文件。

在一个字幕业务中,需要描述其宿主视频。如果不止一个视频流,则应该以最早播放的视频为准,因为字幕的时码是相对于该宿主视频的。接下来就需要考虑的是隐藏字幕出现的时间,就是时码。还需要考虑字幕所使用的字符集和语言,时码每秒的帧数。

将这个结构写成XML形式如下:

各字段解释如下:

1)CAPTION_SERVICE:字幕业务ID,可对应多种语言业务。

2)HOST_VIDEO:宿主视频文件名。以宿主视频文件为同步源,如果宿主视频文件为多个视频,则以其中第一个视频为准。

3)LANGUAGE:使用标准中对语言的定义,用文字描述。

4)CHARSET:标准中支持的字符集,写出标准编号。

5)FRAMERATE:电视制式所定义的帧率,用数字表示。

3 几种常用的字幕呈现方式

3.1 从右到左底拉

1)创建一个空的窗口,其窗口属性设置:(1)justify:右对齐。

(2)print direction:从左到右。

(3)scroll direction:从右到左。

(4)wordwrap:禁用自动换行。

2)待播出的字符逐字播出,需要计算每个字符间隔出字的时间。

(3)scroll direction:从右到左。

(4)wordwrap:启用自动换行。

2)待播出的字符逐字播出,需要计算每个字符间隔出字的时间。

4 CCDXF在MXF格式中的应用

MXF是电视台内用于节目传输的素材交换格式[8],广泛使用在非编及播出设备的素材交换中。隐藏字幕经过CCDXF封装以后可以在MXF中传输并解析。

MXF文件包含文件头、文件体和文件尾三个部分,如图2所示。

图2 MXF文件结构

3.2 上滚

1)创建一个空的窗口,其窗口属性设置:

(1)justify:右对齐。

(2)print direction:从左到右。

(3)scroll direction:从下到上。

(4)wordwrap:禁用自动换行。

2)待播出的字符逐字播出,需要计算每个字符间隔出字的时间。

3.3 字符闪烁

1)创建一个空的窗口,其窗口属性设置:

(1)justify:右对齐。

(2)print direction:从左到右。

(3)scroll direction:从右到左。

(4)colour:从(0,0,0)到(255,255,255)之间循环变化。

2)待播出的字符逐字播出,需要计算每个字符间隔出字的时间,同时需要设定字幕颜色渐变时间。

3.4 逐字出字

1)创建一个空的窗口,其窗口属性设置:

(1)justify:右对齐。

(2)print direction:从左到右。

其中,素材容器是一个外部文件,可插入到MXF文件体中,每个文件体中至少应当包含一个素材容器。MXF素材容器可以包含图片、声音、基本数据以及相关的元数据。基于此,CCDXF文件可以编码成一个素材容器封装在MXF的一个文件体分区中进行传输。

图3给出了包含索引表与不包含索引表两种情况下,素材容器在MXF文件中的插入方式。其中,CBR为不含有索引表的情况,VBR为含有索引表的情况,用于填充每一个流的表格排列。BodyOffset指定了在该分区中素材容器段相对于以BodySID作为开始标识的素材容器的按字节抵消。

由图2与图3可知,MXF的文件体包含若干个文件体分区,每个文件体分区由文件体分区包和素材容器构成。在素材容器中,数据被包含在一个内容包(Cp)序列中。每一个内容包包含系统项目、图片项目、声音项目、数据项目以及复合项目等5个项目类型。

CCDXF可作为数据元素存放于数据项目中。首先,将CCDXF文件编码为一个数据元素,并且令该元素独立成为一个素材容器;其次,编码一个文件体分区包,并将上一步中得到的素材容器插入其后,组成一个文件体分区;最后,将该文件体分区作为该MXF文件的最后一个文件体分区封装其中。

5 结束语

通过实验,将CCDXF文件嵌入到MXF文件中,并完成了解析工作。对于另外一种媒体交换格式AAF,其做法基本相同。作为数据交换格式,还需要各种非编系统、有关媒资系统和播出系统支持这种格式,以便台内隐藏字幕数据的交换与存储。

图3 素材容器的插入[9]

[1]张蓉晖.数字电视隐藏字幕技术系统及应用前景[J].广播与电视技术,2013(11):87-91.

[2]田莉莉,张颖.字幕与图像分离制作同步播出模式适应电视产业的发展[J].现代电视技术,2006(10):120-123.

[3]EIA-708-B,Digital television(DTV)closed captioning[S].1999.

[4]ATSC Standard A/53B with Amendment 1:ATSC Digital Televi⁃sion Standard[S].2001.

[5]BLANCHARD R N.EIA-708-B digital closed captioning imple⁃mentation[J].IEEE Trans.Consumer Electronics,2003,49(3):59-65.

[6]GY/T270—2013,数字电视隐藏字幕系统规范[S].2013.

[7]赵生辉.中国少数民族语言电子文件的信息编码标准研究[J].云南档案,2011(9):25-27.

[8]曹钢,田军.MXF的技术构成及应用[J].电视技术,2005,29(5):63-65.

[9]SMPTE 377M,Proposed SMPTE STANDARD for television Mate⁃rial Exchange Format(MXF)file format specification(standard)[S].2004.

猜你喜欢

缓冲区字幕命令
嵌入式系统环形缓冲区快速读写方法的设计与实现
Word和Excel联手字幕添加更高效
只听主人的命令
移防命令下达后
整合适应选择度下的动画电影字幕翻译——以《冰河世纪》的字幕汉译为例
这是人民的命令
论纪录片的字幕翻译策略
关键链技术缓冲区的确定方法研究
蓝色命令
地理信息系统绘图缓冲区技术设计与实现