顏明登,湯志敏
(偉樂視訊科技股份有限公司,廣東 惠州 516025)
ATSC 3.0 是由高級電視系統委員會(Advanced Television Systems Committee,ATSC)推出的下一代電視標準。該標準于2018 年在拉斯維加斯舉辦的國際消費電子展(CES)上正式對外發布。該標準代表了現階段地面數字電視傳輸技術領域最前沿的技術發展水平。在美國和韓國等國家,越來越多的廣播公司和內容提供商選擇和部署了地面ATSC 3.0傳輸服務。
隱藏式字幕(Closed Caption,CC)是電視節目中為有特殊情況或需要的觀眾準備的字幕,例如某些觀眾在聽力上有障礙,需要在無音條件下觀看節目。隱藏式字幕是一種解釋性語言,用來描述節目內容,比如節目中出現了背景音樂,字幕就會提示聽力障礙人士,當前正在播放背景音樂。美國明確要求了電視節目提供商提供隱藏式字幕。因此,ATSC 3.0 需要提供傳輸隱藏式字幕數據的標準,ATSC 3.0 使用SMPTE-TT(SMPTE Timed Text)作為隱藏式字幕的協議[1]。
對于接收方,在接收ATSC 3.0 節目信號后,需要對節目信號做處理和轉換,將ATSC 3.0 中的SMPTE-TT 字幕提取并轉換為CEA-608(NTSC 模擬電視標準)和CEA-708(DTV 數字電視)字幕格式,以兼容原有的設備。
ATSC 3.0 是全新設計的下一代地面廣播系統,旨在通過更高的音頻和視頻質量、更高的壓縮效率、用于固定和移動設備接收的穩健傳輸以及更多的可訪問性、個性化和交互性,來改善電視觀看體驗[2]。ATSC 3.0 標準是基于20 多個國際標準和建議方法來定義的。ATSC 3.0 主要有以下特性:
(1)與當前主流的流媒體平臺一樣,都是基于IP 互聯網協議建立;
(2)將傳統的OTA(Over-The-Air)地面廣播電視和最新流行的OTT(Over-The-Top)流媒體電視技術結合在一起;
(3)為觀眾提供更好的視頻質量和沉浸式的音頻;
(4)提供先進的緊急警報和通知功能;
(5)對未來技術發展有很高適應性。
ATSC 3.0 采用分層協議,包括物理層協議、鏈路層協議、IP/UDP 層協議、傳輸層協議(MMTP 或者ROUTE 協議)以及業務管理層協議(SLT Service List Table 協議、SLS Service Layer Signaling 協議)[3]。SLT 協議的作用是讓接收方快速建立一個基本的服務(節目)列表和信息。SLS 協議的作用是讓接收方發現和獲取服務(節目)及其內容。MMTP 中的SLS被攜帶在MMTP 信令中,ROUTE 的SLS 被攜帶在ROUTE 的一個頻道中。
ATSC 3.0 協議棧如圖1 所示。ATSC 3.0 使用的傳輸層協議是MMTP、ROUTE 或者HTTP 其中之一。以ROUTE 傳輸層協議為例,首先,從UDP數據中解析到SLT 協議數據,獲取到業務列表和信息。其次,將該業務列表和信息傳遞給ROUTE 的解析器。ROUTE 解析器會根據得到的業務列表和信息,對數據進行分離,區分不同業務的元數據。業務數據(包括音視頻數據和SMPTE-TT 數據)被封裝在Bmff(ISO base media file format標準)容器中。最后,將不同業務(節目)分發到不同的Bmff 解析器中解析,再由Bmff 解析器解析出媒體數據類型,包括視頻、音頻及SMPTE-TT 數據[4]。

圖1 ATSC 3.0 協議棧
ATSC 3.0 使 用SMPTE-TT(SMPTE Timed Text)作為隱藏式字幕的載體。獲取字幕數據前,需要先通過Bmff 解析器獲取到SMPTE-TT 數據。根據ISO base media file format 協議(參考ISO_IEC_14496-12_2015),Bmff數據由一個一個的不同類型的Mdat(media data box)組成。在對Bmff 數據進行解析時,需要找到并解析出一個一個的media data box。接下來在不同Box 中區分出視頻數據、音頻數據和SMPTE-TT 數據,找到存放SMPTE-TT 數據的Box。
SMPTE-TT 數據有明顯不同于音視頻數據的內容和格式。SMPTE-TT 是XML 語言,XML 頭部以及SMPTE-TT 標記的,都可以作為分辨SMPTE-TT 數據的特性。以這個特性為標準,可以區分和獲取到存放SMPTE-TT 數據的box,得到SMPTE-TT 數據[5]。
SMPTE-TT 是由電影電視工程師協會(Society of Motion Picture and Television Engineers,SMPTE)創建的XML 字幕和副標題標準。它主要基于TTML,但也包括一些TTML 不支持的附加特性,比如對位圖圖像、二進制有效載荷的支持、以多種方式呈現字幕的能力。
SMPTE-TT提供的主要字幕信息包括Styling(風格)、Region(區域)、Body 三部分。Styling 提供字幕的樣式,如字體,顏色等;Region 提供字幕的坐標、長度等;Body 提供字幕的具體文字內容、PTS(present time stamp)、顯示時長等。三部分的關系如圖2 所示。

圖2 Styling、Region、Body 的關系
Body 內容是承載字幕文字的主體,但是并未明確如何顯示文字,不過包含了Region 和Style 的索引,可以分別引導在哪個區域顯示字幕以及如何顯示字幕[6]。
如圖2 所示,Body 表格中有3 行數據需要顯示。
第1行中,Region的ID是Region1,找到Region表中的Region1,第1行字幕“Good morning!”將在屏幕坐標20% 70%處顯示,即橫坐標在屏幕的20%處,縱坐標在屏幕的70%處。Style 的ID 是Styling 1,找到Styling 表中的Styling 1,該字幕的字體為無襯線體,顏色為黑色。同時,PTS 為439175,表示在系統時間439175 時顯示。
第2 行和第3 行與第1 行相同,都需要找到表中的Region 和Styling 進行顯示。需要注意的是,第2 行和第3 行的PTS 一樣,都是439176,表示這兩行是同時顯示,在屏幕中的坐標分別是Region1 和Region2 中的坐標。
隱藏字幕的標準主要有CEA-608(NTSC 字幕數據標準)和CEA-708(DTVCC 字幕數據標準)。CEA-608 是用于模擬電視的標準,CEA-708 是用于數字電視的標準(主要用于美國和加拿大)。在美國,聯邦通信委員會(FCC)要求所有13 英寸以上的數字電視都必須支持CEA-708 解碼。
CEA-708 為DTVCC 字幕數據通道建立了正式的數據通信通道協議。同時,為了兼容NTSC 字幕數據,CEA-708 數據通道中也傳輸CEA-608 數據,同時規定了將嵌入CEA-708 信號中的CEA-608數據流放入NTSC 信號中正確位置和字段的方法。CEA-608 規定了CEA-608 數據流的進一步處理。
DTVCC 數據框架有DTVCC 傳輸層、DTVCC數據包層、DTVCC 服務層、DTVCC 編碼層以及DTVCC 解釋層共5 層,如圖3 所示。
字幕頻道分組數據的處理從DTVCC 服務層開始。字幕頻道分組被分成封裝的數據子塊,以路由到解碼器內的一個或多個單獨字幕服務處理例程。使用多個服務,電視觀眾可以選擇一次查看一個或多個DTVCC 服務的處理數據。例如,字幕頻道可能包含英語服務和西班牙語服務。
CEA-608、CEA-708 數據會最終被放在cc_data 結構中(參考CEA-708 DTV cc_data 結構體)。該結構中,無論是CEA-608 還是CEA-708,都將以兩個字節為一對來進行發送。所以,為了同時支持CEA-608 和CEA-708 協議,設計兩個字節的CC_Pair 作為基本容器,分離DTC CC 和NTSC CC 數據的處理。由DTV-CC 生成器和NTSC-CC 生成器分別生成CEA-708 協議數據和CEA-608 協議數據,如圖4 所示。CEA-708 字幕數據會封裝在不同服務塊和數據頻道中,并最終切分為一對一對的CC數據進行打包。而CEA-608 字幕數據則相對簡單,直接切分為一對一對的CC 數據進行打包。

圖4 字幕數據容器設計
由于SMPTE-TT 與CEA-608、CEA-708 采取了不同的方式來表達和展現字幕,因此,在大多數情況下,并不存在唯一的正確轉換,而是有多種可能的解釋和轉換方法,并最終呈現出效果相似的字幕效果。本節的目的是提取SMPTE-TT 與CEA-608、CEA-708 的共性,獲取不同的協議的一致接口和模式。至于不同協議之間如何轉換,可根據不同使用場景和需求來進行處理。
3.2.1 字幕數據與窗口
從圖4 可看到,CC 數據需要從SMPTE-TT數據轉換而來。提取出SMPTE-TT、DTV-CC 和NTSC-CC 之間的共性特點,則可以精簡轉換過程。
對應這3 種字幕協議,都需要在屏幕上的某塊區域中顯示一行或者多行的字幕,這塊區域可稱為一個窗口(Window)。對于這3 種類型的字幕,都可以將字幕數據組織為一個一個的窗口,在屏幕上顯示。獲取SMPTE-TT 數據后,SMPTE-TT 數據本身也具有多種模式,比如彈出式(Pop-on)顯示模式、翻滾式(Roll-up)顯示模式等。但是,無論何種顯示模式,最終都可以通過算法將字幕數據組織為窗口。將得到的窗口傳遞到DTV-CC 和NTSC-CC生成器,并由生成器編碼成各自的協議數據,轉換過程如圖5 所示。

圖5 字幕窗口設計
3.2.2 協議映射
不同協議間對于如何顯示字幕有不同的表達方法。下面以字體大小和字體風格為例,展示如何在不同協議間進行映射。
對于字體大小的轉換,SMPTE-TT 的字體以百分比來表示,從0%到100%甚至200%。而CEA-708 則只有3 種字體大小即SMALL、STANDARD、LARGE。基本的轉換可以參考表1。對于SMPTETT 中的其他字體大小,比如60%、70%、80%等,可根據實際情況進行映射,比如70%可映射為SMALL 或者STANDARD。

表1 字體大小映射
不同協議也定義了各自的字體風格,但不一定能一一對應。部分字體風格的轉換可參考表2。對于無法轉換的字體風格,可選擇默認字體風格。

表2 字體風格映射
音視頻數據攜帶有PTS(Presentation Time Stamp)數據。PTS 是一個時間戳,用于告訴解碼器在什么時候顯示數據。從SMPTE-TT 中解析出來的CC 數據也帶有PTS。但是CEA-608、CEA-708 字幕數據里面并沒有PTS,而是依賴于將字幕數據插入到具體的某一幀的視頻數據來確定該字幕的具體播放時間。將SMPTE-TT 字幕轉換為CEA-608、CEA-708 字幕數據后,需要使用視頻的PTS 和SMPTETT 中CC 數據的PTS 來進行字幕數據同步。
對于字幕數據和視頻數據的同步,主要需要處理兩個問題。一是防止字幕數據堆積,需要將已經被延遲了的字幕數據丟棄,不然會導致后面的字幕數據一直延遲;二是確保字幕數據在與音視頻數據同步的時間播出。圖6 所示為供參考的同步算法,使用轉換后CC Packet 帶的PTS,與視頻數據中帶的PTS 進行同步的對比和處理。

圖6 字幕與音視頻同步算法
ATSC 3.0 是全新設計的下一代地面廣播系統,技術更為先進,推廣范圍逐漸擴大。然而,對于ATSC 3.0 信號接收方,仍有大量上一代廣播系統的處理設備可能無法處理ATSC 3.0 的數據,且替換成本高。將ATSC 3.0 的內容數據轉換為可被原有設備處理的數據,能夠較大地降低升級成本。ATSC 3.0 隱藏字幕數據解析和轉換方法有效地解決了SMPTE-TT 與CEA-608、CEA-708 的兼容轉換,在推廣ATSC3.0 標準的同時能有效地兼容原有的設備環境。