徐 品,鄧 琪,張鑫垚,李紹彬
(中國傳媒大學(xué) 信息工程學(xué)院,北京 100024)
隱藏字幕(Closed Caption)[1]技術(shù)是針對B類字幕[2]提出的字幕與節(jié)目視頻分離的技術(shù)。電視節(jié)目中的字幕分為直播型和后期制作型兩種。后期字幕制作流程通常是在節(jié)目視頻完成以后再將字幕拍入。在目前電視節(jié)目的制作中,字幕是直接合成到畫面中,合成后的字幕是不可更改的。如果采用隱藏字幕技術(shù),字幕不再直接合成到畫面中,而是以一種數(shù)據(jù)或文件形式與其宿主視頻同時(shí)存在,它與宿主視頻具有相同的生命期,其內(nèi)容和屬性依據(jù)時(shí)碼與宿主視頻保持同步;在播出時(shí),隱藏字幕是作為視頻幀的附加數(shù)據(jù)與視頻流同步傳送;在接收端,觀眾可以根據(jù)自己的喜好選擇顯示或隱藏這些字幕,這也就是隱藏字幕名稱的由來。
隱藏字幕的制作形式在美國早已有研究與應(yīng)用[3-5],但在數(shù)字電視條件下,如何在臺內(nèi)實(shí)現(xiàn)數(shù)字隱藏字幕宿主視頻的實(shí)時(shí)伴隨傳輸,以及將其按某種格式與宿主視頻同步保存下來,是目前隱藏字幕在我國推廣中的一個(gè)亟待解決的應(yīng)用課題。
隱藏字幕在電視臺制作域中的存在形式有兩種:一種是嵌入到HD/SD-SDI碼流中;另一種是以文件的形式伴隨宿主視頻文件,可將其擺放到非編的故事板中占據(jù)一條或多條字幕軌。編輯人員可根據(jù)需要對字幕出入點(diǎn)、屬性和內(nèi)容進(jìn)行添加和修改。
本文的研究就是希望利用XML語言設(shè)計(jì)一種便于描述隱藏字幕的XML文件格式,以作為視頻文件的伴隨文件供臺內(nèi)非編或媒體數(shù)據(jù)交換及存儲之用。經(jīng)過實(shí)驗(yàn),該XML文件可以嵌入到MXF音視頻媒體交換格式中,可以在視頻播放的同時(shí)同步顯示字幕信息。
由于B類字幕主要用于節(jié)目或視頻中人物對白、聲音來源、唱詞等,是作為視頻畫面中語音或其他音頻的注釋性文字,所以隱藏字幕不需要過多的裝飾。其作用也并非想取代非編或字幕機(jī)中對圖文字幕的包裝,因此沒有那么豐富的靜態(tài)效果和動(dòng)態(tài)特技,但作為電視畫面的輔助性字幕其效果已經(jīng)足夠了。
以下根據(jù)《數(shù)字電視隱藏字幕系統(tǒng)規(guī)范》[6](簡稱《字幕規(guī)范》),對隱藏字幕的上層結(jié)構(gòu)進(jìn)行分析。
隱藏字幕的中心問題是解決字幕業(yè)務(wù)的傳輸與呈現(xiàn)。隱藏字幕的業(yè)務(wù)是指語言及數(shù)據(jù)服務(wù),同時(shí)可以有63個(gè)業(yè)務(wù)。業(yè)務(wù)分為基準(zhǔn)業(yè)務(wù)和擴(kuò)展業(yè)務(wù)兩類?!蹲帜灰?guī)范》中規(guī)定基準(zhǔn)業(yè)務(wù)一共有6種,其中編號為1的用作節(jié)目主語言的字幕,編號為2的為第二語言字幕;其余編號3~6也應(yīng)作為節(jié)目語言的字幕使用,以便支持節(jié)目的多語言字幕。擴(kuò)展業(yè)務(wù)內(nèi)容可由廠家自行定義,可以傳送圖片或其他數(shù)據(jù),當(dāng)然,這種定義必須取得機(jī)頂盒廠商的認(rèn)可。
每個(gè)隱藏字幕業(yè)務(wù)可以對應(yīng)一個(gè)或多個(gè)字幕窗口。字幕呈現(xiàn)的效果有如下特點(diǎn):
1)每個(gè)業(yè)務(wù)可在屏幕同時(shí)開辟最多8個(gè)字幕窗口;
2)每個(gè)窗口的背景色有8種顏色可選,并有4種透明效果;
3)窗口的邊界有6種描述方式,還有邊框的突出、凹進(jìn)、平面或投影等效果;
4)對文字的排版方式有4種對齊方式、4種打印方式;
5)字幕的動(dòng)態(tài)效果有滾動(dòng)、彈出、劃像、淡入淡出效果;
6)對字符的描述有6種字體、64種顏色,還有字符大小設(shè)置等。
數(shù)字電視隱藏字幕在終端呈現(xiàn)時(shí)有5個(gè)主要元素,分別為字幕屏幕、字幕窗口、字幕筆、字幕文本和字幕同步。
字幕的呈現(xiàn)效果是通過字幕命令來完成的,按照《字幕規(guī)范》,字幕命令分成3種類型,共14個(gè)命令:
1)窗口類型
(1)SetCurrentWindow:指定當(dāng)前窗口。
(2)DefineWindow:創(chuàng)建窗口,設(shè)置初始值。
(3)ClearWindows:清除一組窗口中的文本。
(4)DeleteWindows:刪除一組窗口。
(5)DisplayWindows:使一組窗口變成可見。
(6)HideWindows:使一組窗口變成不可見。
(7)ToggleWindows:窗口顯示/隱藏狀態(tài)切換。
(8)SetWindowAttributes:為當(dāng)前窗口指定窗口樣式。
2)畫筆類型
(1)SetPenAttributes:為當(dāng)前窗口設(shè)置畫筆樣式屬性。
(2)SetPenColor:指定畫筆的顏色。
(3)SetPenLocation:指定窗口內(nèi)畫筆光標(biāo)的位置。
3)同步類型
(1)Delay:延遲服務(wù)數(shù)據(jù)的解析。
(2)DelayCancel:取消一個(gè)正在執(zhí)行的延遲命令。
(3)Reset:復(fù)位字幕通道業(yè)務(wù)。
在字幕通道中,每個(gè)業(yè)務(wù)由一系列業(yè)務(wù)塊組成,一系列命令、屬性和文本可以組成一個(gè)業(yè)務(wù)塊?!蹲帜灰?guī)范》中并沒有對業(yè)務(wù)塊的組成方式給出具體的規(guī)定,通過研究發(fā)現(xiàn),如果這些命令組成的不恰當(dāng),會(huì)給字幕呈現(xiàn)造成混亂。為了便于業(yè)務(wù)塊的編輯保存和解析運(yùn)行,引進(jìn)了一個(gè)“字幕語句”的概念,并對字幕語句做出如下定義與描述:將一個(gè)或多個(gè)句法單元構(gòu)成的可以良好地在終端上呈現(xiàn)的一個(gè)業(yè)務(wù)塊稱為一個(gè)隱藏字幕的一條字幕語句(簡稱為語句)。認(rèn)為業(yè)務(wù)塊可由一條或多條字幕語句所組成。每條語句由合適的命令、屬性和文本組成,對它們進(jìn)行分類并規(guī)定其語法,以避免在實(shí)際傳輸中有可能生成無效的或者無法解析的語句。
根據(jù)每條語句的組成方式,將字幕語句分為如下三種類型:關(guān)于業(yè)務(wù)緩沖區(qū)的語句,關(guān)于窗口狀態(tài)的語句,關(guān)于字幕文本的語句。
1)關(guān)于業(yè)務(wù)緩沖區(qū)的語句
這類語句有三個(gè)命令:Reset,Delay和DelayCancel,它們對業(yè)務(wù)緩沖區(qū)有影響,所以稱為緩沖區(qū)控制命令。
Reset和DelayCancel是針對業(yè)務(wù)緩沖區(qū)處理的命令,不需要任何參數(shù),也不能與別的命令或字幕文本一起構(gòu)成語句。所以,這種獨(dú)立命令可以構(gòu)成一個(gè)語句,并需要單獨(dú)處理。
Delay命令也是針對業(yè)務(wù)緩沖區(qū)的,有參數(shù),其作用可使業(yè)務(wù)緩沖區(qū)延遲解析,但緩沖區(qū)輸入并沒有停止??梢允褂盟购罄^的字幕命令延時(shí)執(zhí)行,比如,Delay后跟隨ClearWindows,意味著某些窗口在延時(shí)一段時(shí)間后被自動(dòng)清除。因此,Delay可以單獨(dú)成為一個(gè)語句,也可成為其他語句的前導(dǎo)。
必須注意,由于Delay是針對業(yè)務(wù)緩沖區(qū)的,后面如果有非延遲命令,一定要等到延時(shí)期限以后,或者調(diào)用DelayCancel取消延時(shí)或Reset重置緩沖區(qū)。
2)關(guān)于窗口狀態(tài)的語句
(1)ClearWindows:清除一組窗口中的文本。
(2)DeleteWindows:刪除一組窗口的定義。
(3)DisplayWindows:使一組窗口變成可見。
(4)HideWindows:使一組窗口變成不可見。
(5)ToggleWindows:窗口顯示/隱藏狀態(tài)切換。
這些窗口狀態(tài)控制命令,構(gòu)成語句時(shí)不需要字幕文本,但需要加上一組窗口編號。
3)關(guān)于字幕文本的語句
將DefineWindow和SetCurrentWindow稱為窗口起始命令,因?yàn)樗鼈儎?chuàng)建或選擇了某一個(gè)窗口。對于字幕文本來說,如果沒有窗口起始命令,很可能這些文本無法對應(yīng)到一個(gè)合適的窗口中,或者對應(yīng)到一個(gè)不正確的窗口中。所以不建議讓字幕文本單獨(dú)成為一個(gè)字幕語句。
DefineWindow是創(chuàng)建窗口命令,它將創(chuàng)建一個(gè)字幕窗口。在該命令中,有預(yù)先定制好的窗口屬性和畫筆屬性,但很可能還需要調(diào)用屬性命令來修正。其后可以跟字幕文本。
SetWindowAttributes,SetPenAttributes,SetPenColor和SetPenLocation是設(shè)置窗口和畫筆屬性的命令,統(tǒng)稱為屬性命令。它們不應(yīng)獨(dú)立構(gòu)成語句,不然無法知道這些屬性設(shè)置是針對哪個(gè)窗口的。
選擇窗口命令SetCurrentWindow是選擇已經(jīng)創(chuàng)建的窗口,其用法與創(chuàng)建命令相同,兩者不能同時(shí)使用。為了保證頻道切換時(shí)能獲得完整的窗口信息,建議每隔一個(gè)時(shí)間間隔調(diào)用一次創(chuàng)建命令,一直到該窗口被刪除。例如可以設(shè)置這個(gè)時(shí)間間隔為1 s。
這兩個(gè)命令在構(gòu)成一個(gè)語句時(shí)可以帶上屬性命令和字幕文本。
關(guān)于窗口狀態(tài)的語句和關(guān)于字幕文本的語句前面可以加Delay作為前導(dǎo)命令。
將緩沖區(qū)控制命令、窗口狀態(tài)控制命令和窗口起始命令稱為主要命令,則字幕語句的組成如圖1所示。
圖1 字幕語句的組成
為了實(shí)現(xiàn)隱藏字幕在臺內(nèi)的數(shù)據(jù)交換,借助XML設(shè)計(jì)了隱藏字幕數(shù)據(jù)交換格式,簡稱CCDXF。
隱藏字幕是以業(yè)務(wù)為中心,每種業(yè)務(wù)代表了一種語言的字幕服務(wù)。因此,字幕文件可以提供多種語言的字幕業(yè)務(wù)。
字幕文本支持單字節(jié)和雙字節(jié)字符編碼方式。漢字和少數(shù)民族文字屬于雙字節(jié)字符,漢字編碼標(biāo)準(zhǔn)有GB2312,GB13000(GBK)和 GB18030。其中 GB18030包括了我國主要的少數(shù)民族文字,如藏、蒙古、傣、彝、朝鮮、維吾爾文等[7]。使隱藏字幕在多語言支持方面成為可能。
隱藏字幕可以通過多業(yè)務(wù)方式支持多語言字幕的呈現(xiàn)。多語言顯示時(shí)可以同時(shí)呈現(xiàn),也可以讓終端用戶二選一或多選一。
隱藏字幕的優(yōu)點(diǎn)之一是可以在視頻完成之后修改已有的字幕業(yè)務(wù),還可以添加新的字幕業(yè)務(wù)。由于在最小功能建議中要求只需有兩路字幕業(yè)務(wù)可被同時(shí)解出,所以,有時(shí)要通過調(diào)整字幕業(yè)務(wù)編號來保證該字幕業(yè)務(wù)一定能被解碼。
在非編的時(shí)間線上,一種字幕業(yè)務(wù)就會(huì)占據(jù)一個(gè)字幕軌,所以也應(yīng)該對應(yīng)一個(gè)隱藏字幕文件。
在一個(gè)字幕業(yè)務(wù)中,需要描述其宿主視頻。如果不止一個(gè)視頻流,則應(yīng)該以最早播放的視頻為準(zhǔn),因?yàn)樽帜坏臅r(shí)碼是相對于該宿主視頻的。接下來就需要考慮的是隱藏字幕出現(xiàn)的時(shí)間,就是時(shí)碼。還需要考慮字幕所使用的字符集和語言,時(shí)碼每秒的幀數(shù)。
將這個(gè)結(jié)構(gòu)寫成XML形式如下:
各字段解釋如下:
1)CAPTION_SERVICE:字幕業(yè)務(wù)ID,可對應(yīng)多種語言業(yè)務(wù)。
2)HOST_VIDEO:宿主視頻文件名。以宿主視頻文件為同步源,如果宿主視頻文件為多個(gè)視頻,則以其中第一個(gè)視頻為準(zhǔn)。
3)LANGUAGE:使用標(biāo)準(zhǔn)中對語言的定義,用文字描述。
4)CHARSET:標(biāo)準(zhǔn)中支持的字符集,寫出標(biāo)準(zhǔn)編號。
5)FRAMERATE:電視制式所定義的幀率,用數(shù)字表示。
1)創(chuàng)建一個(gè)空的窗口,其窗口屬性設(shè)置:(1)justify:右對齊。
(2)print direction:從左到右。
(3)scroll direction:從右到左。
(4)wordwrap:禁用自動(dòng)換行。
2)待播出的字符逐字播出,需要計(jì)算每個(gè)字符間隔出字的時(shí)間。
(3)scroll direction:從右到左。
(4)wordwrap:啟用自動(dòng)換行。
2)待播出的字符逐字播出,需要計(jì)算每個(gè)字符間隔出字的時(shí)間。
MXF是電視臺內(nèi)用于節(jié)目傳輸?shù)乃夭慕粨Q格式[8],廣泛使用在非編及播出設(shè)備的素材交換中。隱藏字幕經(jīng)過CCDXF封裝以后可以在MXF中傳輸并解析。
MXF文件包含文件頭、文件體和文件尾三個(gè)部分,如圖2所示。
圖2 MXF文件結(jié)構(gòu)
1)創(chuàng)建一個(gè)空的窗口,其窗口屬性設(shè)置:
(1)justify:右對齊。
(2)print direction:從左到右。
(3)scroll direction:從下到上。
(4)wordwrap:禁用自動(dòng)換行。
2)待播出的字符逐字播出,需要計(jì)算每個(gè)字符間隔出字的時(shí)間。
1)創(chuàng)建一個(gè)空的窗口,其窗口屬性設(shè)置:
(1)justify:右對齊。
(2)print direction:從左到右。
(3)scroll direction:從右到左。
(4)colour:從(0,0,0)到(255,255,255)之間循環(huán)變化。
2)待播出的字符逐字播出,需要計(jì)算每個(gè)字符間隔出字的時(shí)間,同時(shí)需要設(shè)定字幕顏色漸變時(shí)間。
1)創(chuàng)建一個(gè)空的窗口,其窗口屬性設(shè)置:
(1)justify:右對齊。
(2)print direction:從左到右。
其中,素材容器是一個(gè)外部文件,可插入到MXF文件體中,每個(gè)文件體中至少應(yīng)當(dāng)包含一個(gè)素材容器。MXF素材容器可以包含圖片、聲音、基本數(shù)據(jù)以及相關(guān)的元數(shù)據(jù)?;诖耍珻CDXF文件可以編碼成一個(gè)素材容器封裝在MXF的一個(gè)文件體分區(qū)中進(jìn)行傳輸。
圖3給出了包含索引表與不包含索引表兩種情況下,素材容器在MXF文件中的插入方式。其中,CBR為不含有索引表的情況,VBR為含有索引表的情況,用于填充每一個(gè)流的表格排列。BodyOffset指定了在該分區(qū)中素材容器段相對于以BodySID作為開始標(biāo)識的素材容器的按字節(jié)抵消。
由圖2與圖3可知,MXF的文件體包含若干個(gè)文件體分區(qū),每個(gè)文件體分區(qū)由文件體分區(qū)包和素材容器構(gòu)成。在素材容器中,數(shù)據(jù)被包含在一個(gè)內(nèi)容包(Cp)序列中。每一個(gè)內(nèi)容包包含系統(tǒng)項(xiàng)目、圖片項(xiàng)目、聲音項(xiàng)目、數(shù)據(jù)項(xiàng)目以及復(fù)合項(xiàng)目等5個(gè)項(xiàng)目類型。
CCDXF可作為數(shù)據(jù)元素存放于數(shù)據(jù)項(xiàng)目中。首先,將CCDXF文件編碼為一個(gè)數(shù)據(jù)元素,并且令該元素獨(dú)立成為一個(gè)素材容器;其次,編碼一個(gè)文件體分區(qū)包,并將上一步中得到的素材容器插入其后,組成一個(gè)文件體分區(qū);最后,將該文件體分區(qū)作為該MXF文件的最后一個(gè)文件體分區(qū)封裝其中。
通過實(shí)驗(yàn),將CCDXF文件嵌入到MXF文件中,并完成了解析工作。對于另外一種媒體交換格式AAF,其做法基本相同。作為數(shù)據(jù)交換格式,還需要各種非編系統(tǒng)、有關(guān)媒資系統(tǒng)和播出系統(tǒng)支持這種格式,以便臺內(nèi)隱藏字幕數(shù)據(jù)的交換與存儲。
圖3 素材容器的插入[9]
:
[1]張蓉暉.數(shù)字電視隱藏字幕技術(shù)系統(tǒng)及應(yīng)用前景[J].廣播與電視技術(shù),2013(11):87-91.
[2]田莉莉,張穎.字幕與圖像分離制作同步播出模式適應(yīng)電視產(chǎn)業(yè)的發(fā)展[J].現(xiàn)代電視技術(shù),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,數(shù)字電視隱藏字幕系統(tǒng)規(guī)范[S].2013.
[7]趙生輝.中國少數(shù)民族語言電子文件的信息編碼標(biāo)準(zhǔn)研究[J].云南檔案,2011(9):25-27.
[8]曹鋼,田軍.MXF的技術(shù)構(gòu)成及應(yīng)用[J].電視技術(shù),2005,29(5):63-65.
[9]SMPTE 377M,Proposed SMPTE STANDARD for television Mate?rial Exchange Format(MXF)file format specification(standard)[S].2004.