還原字幕屬性的方法和裝置製造方法
2023-12-02 05:42:11 4
還原字幕屬性的方法和裝置製造方法
【專利摘要】提供一種還原字幕屬性的方法和裝置,所述方法包括:獲取所述多媒體文件的字幕文件;對所述字幕文件的頭部數據進行解析,得到所述字幕文件的全局屬性;獲取當前字幕行數據並對當前字幕行數據進行解析,得到當前字幕行數據的行屬性和當前字幕行數據的行內字符串屬性;將所述當前字幕行數據劃分為至少一個文本區域,每個文本區域中包括一個合併屬性;將所述合併屬性中包括的每一種屬性類型創建為對應的一個屬性項;將所述當前字幕行數據中包括的所有屬性項創建為所述當前字幕行數據的數據語法結構;根據所述當前字幕行數據的數據語法結構對當前字幕行數據進行還原。所述方法和裝置針對字幕行數據創建數據語法結構,有效減少內存空間的佔用。
【專利說明】還原字幕屬性的方法和裝置
【技術領域】
[0001] 本發明總體來說涉及對字幕屬性的解析和還原,更具體地講,涉及一種還原字幕 屬性的方法和裝置。
【背景技術】
[0002] 字幕指以文字形式顯示電視、電影、舞臺作品裡面的對話等非影像內容,也泛指影 視作品後期加工的文字。隨著多媒體技術的發展,在製作字幕文件時會為字幕文件添加多 種類型的字幕屬性,以豐富字幕的播放效果。
[0003] 現有的還原字幕屬性的方法為:首先通過對多媒體文件的字幕文件(例如,內嵌 字幕或外掛字幕)進行解析,得到字幕文本及字幕屬性,然後利用字幕模板對字幕屬性進 行還原。採用上述方法對字幕屬性進行還原時,當字幕文件更新時,新的字幕文本替換字幕 模板中舊的字幕文本,而保持字幕屬性不變。這是目前最為常用的字幕替換模式,簡單快 捷。
[0004] 如果字幕文件中存在多種類型的字幕屬性,則在經過字幕模板對字幕屬性進行還 原後,還原出的字幕文件將變為統一的字幕屬性,因此,現有的還原字幕屬性的方法無法對 字幕文件中存在的多種類型的字幕屬性進行很好的還原。此外,如果要將字幕文件中存在 的多種類型的字幕屬性都進行還原,則需製作與整個字幕文件中存在的多種類型的字幕屬 性對應的多個字幕模板,這樣會過多佔用內存空間。
【發明內容】
[0005] 本發明示例性實施例的目的在於針對上述問題,提出了一種還原字幕屬性的方法 和裝置,以實時讀取、還原字幕行數據的字幕屬性,放棄對字幕模板的使用。
[0006] 本發明示例性實施例的一方面提供一種還原字幕屬性的方法,所述方法包括:從 多媒體文件中獲取所述多媒體文件的字幕文件;對所述字幕文件的頭部數據進行解析,得 到所述字幕文件的全局屬性;獲取當前字幕行數據並對當前字幕行數據進行解析,得到當 前字幕行數據的行屬性和當前字幕行數據的行內字符串屬性;將所述當前字幕行數據劃分 為至少一個文本區域,其中,每個文本區域中包括一個合併屬性,所述合併屬性為所述全局 屬性、所述行屬性、所述行內字符串屬性的疊加;將所述合併屬性中包括的每一種屬性類型 創建為對應的一個屬性項;將所述當前字幕行數據中包括的所有屬性項創建為所述當前字 幕行數據的數據語法結構;根據所述當前字幕行數據的數據語法結構對當前字幕行數據進 行還原。
[0007] 可選地,將所述當前字幕行數據劃分為所述至少一個文本區域的步驟可包括:檢 測所述當前字幕行數據中是否包含特定標識符;當所述當前字幕行數據中不包含特定標識 符時,將所述當前字幕行數據確定為一個文本區域;當所述當前字幕行數據中包含特定標 識符時,將所述特定標識符作為劃分文本區域的分割符,以將所述當前字幕行數據劃分為 多個文本區域,其中,所述特定標識符為在所述當前字幕行數據的相鄰兩個字符之間標記 相鄰兩個字符具有不同行內字符串屬性的符號。
[0008] 可選地,所述屬性項可包括所述文本區域中包括的一種屬性類型、所述文本區域 的起始字符位置以及結束字符位置、所述一種屬性類型的屬性值。
[0009] 可選地,所述數據語法結構可包括所述字幕文件的格式、所述當前字幕行數據中 包括的所有屬性項的個數、所述當前字幕行數據中包括的所有屬性項。
[0010] 可選地,任意一個文本區域中包括的合併屬性可通過以下步驟被獲得:對所述全 局屬性和所述行屬性進行合併,得到所述文本區域的初始屬性;對所述初始屬性和所述行 內字符串屬性進行合併,得到所述文本區域的合併屬性。
[0011] 可選地,對所述全局屬性和所述行屬性進行合併,得到所述文本區域的初始屬性 的步驟可包括:檢測所述全局屬性的屬性類型中是否存在行屬性的屬性類型;當所述全局 屬性的屬性類型中存在行屬性的屬性類型時,則用所述行屬性的屬性類型的屬性值來更新 所述全局屬性的屬性類型中的屬性值,將更新屬性值後的全局屬性作為初始屬性;當所述 全局屬性的屬性類型中不存在行屬性的屬性類型時,則將所述行屬性的屬性類型和所述行 屬性的屬性類型的屬性值添加到全局屬性中,將添加後的全局屬性作為初始屬性。
[0012] 可選地,對所述初始屬性和所述行內字符串屬性進行合併,得到所述文本區域的 合併屬性的步驟可包括:檢測所述初始屬性的屬性類型中是否存在所述行內字符串屬性的 屬性類型;當所述初始屬性的屬性類型中存在所述行內字符串屬性的屬性類型時,則用所 述行內字符串屬性的屬性類型的屬性值來更新所述初始屬性的屬性類型中的屬性值,將更 新屬性值後的初始屬性作為所述合併屬性;當所述初始屬性的屬性類型中不存在所述行內 字符串屬性的屬性類型時,則將所述行內字符串屬性的屬性類型和所述行內字符串屬性的 屬性類型的屬性值添加到初始屬性中,將添加後的初始屬性作為所述合併屬性。
[0013] 可選地,根據所述當前字幕行數據的數據語法結構對當前字幕行數據進行還原 的步驟可包括:(a)獲取所述當前字幕行數據的數據語法結構中包括的第i個屬性項, 1 < i < m,i的初值為1,m為所述當前字幕行數據中包括的所有屬性項的個數,m為大於 零的自然數;(b)基於第i個屬性項中包括的屬性類型、所述屬性類型的屬性值對第i個屬 性項中包括的起始字符位置與結束字符位置中包括的字符進行還原;(c)檢測i是否等於 m,當i尹m時,使得i = i+Ι,並返回執行步驟(a),當i = m時,結束對當前字幕行數據進 行還原的步驟。
[0014] 本發明示例性實施例的另一方面提供一種還原字幕屬性的裝置,所述裝置包括: 字幕文件獲取單元,從多媒體文件中獲取所述多媒體文件的字幕文件;第一解析單元,對所 述字幕文件的頭部數據進行解析,得到所述字幕文件的全局屬性;第二解析單元,獲取當前 字幕行數據並對當前字幕行數據進行解析,得到當前字幕行數據的行屬性和當前字幕行數 據的行內字符串屬性;劃分單元,將所述當前字幕行數據中劃分為至少一個文本區域,其 中,每個文本區域中包括一個合併屬性,所述合併屬性為所述全局屬性、所述行屬性、所述 行內字符串屬性的疊加;屬性項創建單元,將所述合併屬性中包括的每一種屬性類型創建 為對應的一個屬性項;數據語法結構創建單元,將所述當前字幕行數據中包括的所有屬性 項創建為所述當前字幕行數據的數據語法結構;字幕屬性還原單元,根據所述當前字幕行 數據的數據語法結構對當前字幕行數據進行還原。
[0015] 可選地,劃分單元可包括:檢測單元,檢測所述當前字幕行數據中是否包含特定標 識符;文本區域確定單元,當所述當前字幕行數據中不包含特定標識符時,將所述當前字幕 行數據確定為一個文本區域,當所述當前字幕行數據中包含特定標識符時,將所述特定標 識符作為劃分文本區域的分割符,以將所述當前字幕行數據劃分為多個文本區域,其中,所 述特定標識符為在所述當前字幕行數據的相鄰兩個字符之間標記相鄰兩個字符具有不同 行內字符串屬性的符號。
[0016] 可選地,所述屬性項可包括所述文本區域中包括的一種屬性類型、所述一種屬性 類型的屬性值、所述文本區域的起始字符位置以及結束字符位置。
[0017] 可選地,所述數據語法結構可包括所述字幕文件的格式、所述當前字幕行數據中 包括的所有屬性項的個數、所述當前字幕行數據中包括的所有屬性項。
[0018] 可選地,劃分單元可還包括:初始屬性確定單元,對所述全局屬性和所述行屬性進 行合併,得到所述文本區域的初始屬性;合併屬性確定單元,對所述初始屬性和所述行內字 符串屬性進行合併,得到所述文本區域的合併屬性。
[0019] 可選地,初始屬性確定單元可檢測所述全局屬性的屬性類型中是否存在行屬性的 屬性類型,當所述全局屬性的屬性類型中存在行屬性的屬性類型時,則用所述行屬性的屬 性類型的屬性值來更新所述全局屬性的屬性類型中的屬性值,將更新屬性值後的全局屬性 作為初始屬性,當所述全局屬性的屬性類型中不存在行屬性的屬性類型時,則將所述行屬 性的屬性類型和所述行屬性的屬性類型的屬性值添加到全局屬性中,將添加後的全局屬性 作為初始屬性。
[0020] 可選地,合併屬性確定單元可檢測所述初始屬性的屬性類型中是否存在所述行內 字符串屬性的屬性類型,當所述初始屬性的屬性類型中存在所述行內字符串屬性的屬性類 型時,則用所述行內字符串屬性的屬性類型的屬性值來更新所述初始屬性的屬性類型中的 屬性值,將更新屬性值後的初始屬性作為所述合併屬性,當所述初始屬性的屬性類型中不 存在所述行內字符串屬性的屬性類型時,則將所述行內字符串屬性的屬性類型和所述行內 字符串屬性的屬性類型的屬性值添加到初始屬性中,將添加後的初始屬性作為所述合併屬 性。
[0021] 可選地,字幕屬性還原單元可獲取所述當前字幕行數據的數據語法結構中包括的 第i個屬性項,1 < i < m,i的初值為1,m為所述當前字幕行數據中包括的所有屬性項的 個數,m為大於零的自然數,基於第i個屬性項中包括的屬性類型、所述屬性類型的屬性值 對第i個屬性項中包括的起始字符位置與結束字符位置中包括的字符進行還原,檢測i是 否等於m,當i尹m時,使得i = i+1,並獲取所述當前字幕行數據的數據語法結構中包括的 第i個屬性項,當i = m時,結束對當前字幕行數據進行還原。
[0022] 採用本發明示例性實施例的還原字幕屬性的方法和裝置,通過將字幕行數據創建 為一個數據語法結構,並根據所述數據語法結構對字幕行數據進行還原,可有效降低對內 存空間的佔用,提高對字幕屬性還原的實時性。
【專利附圖】
【附圖說明】
[0023] 通過下面結合附圖進行的詳細描述,本發明示例性實施例的上述和其它目的、特 點和優點將會變得更加清楚,其中:
[0024] 圖1是示出根據本發明示例性實施例的還原字幕屬性的方法的流程圖;
[0025] 圖2是示出根據本發明示例性實施例的對當前字幕行數據進行還原的步驟的流 程圖;
[0026] 圖3是示出根據本發明示例性實施例的還原字幕屬性的裝置的框圖。
【具體實施方式】
[0027] 現在對本發明實施例進行詳細的描述,其示例表示在附圖中,其中,相同的標號始 終表示相同部件。下面通過參照附圖對實施例進行描述以解釋本發明。
[0028] 圖1是示出根據本發明示例性實施例的還原字幕屬性的方法的流程圖。
[0029] 參照圖1,在步驟S10中,從多媒體文件中獲取所述多媒體文件的字幕文件。這裡, 作為示例,字幕文件可以是多媒體文件的內嵌字幕或外掛字幕。這裡,可利用現有的解碼方 法對多媒體文件進行解析,得到多媒體文件的字幕文件。
[0030] 在步驟S20中,對所述字幕文件的頭部數據進行解析,得到所述字幕文件的全局 屬性。一般在製作字幕文件時,字幕製作人員會在字幕文件的頭部數據中預先定義好字幕 文件的全局屬性(例如,全局屬性1,全局屬性2,……,全局屬性N)。通過對字幕文件的頭 部數據進行解析,即可得到字幕文件的全局屬性,這裡,可利用現有的解析方法來從字幕文 件的頭部數據中解析出字幕文件的全局屬性。
[0031] 可選地,字幕文件的字幕屬性可包括文本屬性、渲染屬性、特效屬性。例如,文本屬 性可包括字體、字號、字體顏色、背景顏色等屬性類型;渲染屬性可包括字幕區域背景顏色、 字符邊緣銳化、內外邊距等屬性類型;特效屬性可包括進入、擦除、馬賽克等屬性類型。這 裡,每個全局屬性中可包括上述屬性類型中的至少一個。
[0032] 在步驟S30中,獲取當前字幕行數據並對所述當前字幕行數據進行解析,得到當 前字幕行數據的行屬性和當前字幕行數據的行內字符串屬性。可選地,行屬性的作用域為 字幕行數據中包含的所有字符,行內字符串屬性的作用域為所述行內字符串屬性的起始字 符位置和結束字符位置中包含的字符。這裡,字幕行數據是指設定時間段對應的字幕數據, 而並不是指最終顯示出的一行字幕。
[0033] 在一個示例中,字幕文件可包括如下內容:
[0034] 頭部數據:
[0035] 全局屬性1 :
[0036] 全局屬性2 :
[0037] ......
[0038] 全局屬性N :
[0039] 時間段1 :全局屬性1 :行屬性:〈行內字符串屬性1,起始字符位置〉字符串1〈結 束字符位置X行內字符串屬性2,起始字符位置〉字符串2〈結束字符位置〉
[0040] ......
[0041] 時間段N :全局屬性N :行屬性:〈行內字符串屬性1,起始字符位置〉字符串1〈結 束字符位置〉……〈行內字符串屬性M,起始字符位置〉字符串Μ〈結束字符位置〉
[0042] 在上述示例中,時間段1?時間段Ν表示設定的Ν個時間段,與時間段1對應的字 幕數據:全局屬性1 ;行屬性;〈行內字符串屬性1,起始字符位置〉字符串1〈結束字符位置 >〈行內字符串屬性2,起始字符位置〉字符串2〈結束字符位置〉,即為一個字幕行數據(以 下,稱為第一字幕行數據)。
[0043] 基於上述格式,以第一字幕行數據最終顯示為:三星中國電子為例。假設全局 屬性1為字體屬性類型(例如,楷體),第一字幕行數據的行屬性為字號屬性類型(例如,四 號字),行內字符串屬性1為字體格式屬性類型(例如,斜體),行內字符串屬性2為字體格 式屬性類型(例如,下劃線),則字幕文件中的時間段1對應的第一字幕行數據可包括如下 的內容:
[0044] 00:10?00:40 :字體屬性類型:字號屬性類型:〈字體格式屬性類型,1>三星〈2>〈 字體格式屬性類型,3>中國電子〈6>。
[0045] 在步驟S30中對第一字幕行數據進行解析後,可得到第一字幕行數據的行屬性為 字號屬性類型(例如,四號字),並得到當前字幕行數據的兩個行內字符串屬性,行內字符 串屬性1是字體格式屬性(例如,斜體),起始字符位置為行內的第1個字符,結束字符位置 為行內的第2個字符;行內字符串屬性2是字體格式屬性(例如,下劃線),起始字符位置 為行內的第3個字符,結束字符位置為行內的第6個字符。
[0046] 在步驟S40中,將所述當前字幕行數據劃分為至少一個文本區域。可選地,每個文 本區域中可包括一個合併屬性,所述合併屬性可為字幕文件的全局屬性、當前字幕行數據 的行屬性、當前字幕行數據的行內字符串屬性的疊加。
[0047] 可選地,將所述當前字幕行數據劃分為所述至少一個文本區域的步驟可包括:檢 測所述當前字幕行數據中是否包含特定標識符;當所述當前字幕行數據中不包含特定標識 符時,將所述當前字幕行數據確定為一個文本區域;當所述當前字幕行數據中包含特定標 識符時,將所述特定標識符作為劃分文本區域的分割符,以將所述當前字幕行數據劃分為 多個文本區域。這裡,特定標識符可為在所述當前字幕行數據的相鄰兩個字符之間標記所 述相鄰兩個字符具有不同行內字符串屬性的符號。
[0048] 在一個示例中,以步驟S30中的以第一字幕行數據最終顯示為:三星中國電子 的示例為例。具體說來,第一字幕行數據中包含兩個行內字符串屬性,則可在每個行內字符 串屬性的起始字符位置之前設置特定標識符,當檢測到第一字幕行數據中包含特定標識符 時,會將特定標識符作為劃分文本區域的分割符,以對第一字幕行數據進行劃分。
[0049] 具體說來,第一字幕行數據中的兩個行內字符串屬性的起始字符位置分別為第1 字符和第3字符,則在第1字符處和第3字符處分別設置有兩個特定標識符,當檢測到第1 字符之前包含特定標識符時,則將第1字符以及第1字符以後的字符劃分為一個文本區域, 當檢測到第3字符之前包含特定標識符時,則將第3字符以及第3字符以後的字符劃分為 另一個文本區域。基於上述劃分方式可將第一字幕行數據劃分為兩個文本區域,第一文本 區域的起始字符位置為行內的第1個字符,結束字符位置為行內的第2個字符,第二文本區 域的起始字符位置為行內的第3個字符,結束字符位置為行內的第6個字符。
[0050] 可選地,任意一個文本區域中包括的合併屬性可通過以下步驟被獲得:對字幕文 件的全局屬性和當前字幕行數據的行屬性進行合併,得到所述文本區域的初始屬性;對所 述初始屬性和當前字幕行數據的行內字符串屬性進行合併,得到所述文本區域的合併屬 性。
[0051] 例如,對字幕文件的全局屬性和當前字幕行數據的行屬性進行合併,得到所述文 本區域的初始屬性的步驟可包括:檢測所述全局屬性的屬性類型中是否存在行屬性的屬性 類型;當所述全局屬性的屬性類型中存在行屬性的屬性類型時,則用所述行屬性的屬性類 型的屬性值來更新所述全局屬性的屬性類型中的屬性值,將更新屬性值後的全局屬性作為 初始屬性;當所述全局屬性的屬性類型中不存在行屬性的屬性類型時,則將所述行屬性的 屬性類型和所述行屬性的屬性類型的屬性值添加到全局屬性中,將添加後的全局屬性作為 初始屬性。
[0052] 例如,對所述初始屬性和當前字幕行數據的行內字符串屬性進行合併,得到所述 文本區域的合併屬性的步驟可包括:檢測所述初始屬性的屬性類型中是否存在所述行內字 符串屬性的屬性類型;當所述初始屬性的屬性類型中存在所述行內字符串屬性的屬性類 型時,則用所述行內字符串屬性的屬性類型的屬性值來更新所述初始屬性的屬性類型中的 屬性值,將更新屬性值後的初始屬性作為所述合併屬性;當所述初始屬性的屬性類型中不 存在所述行內字符串屬性的屬性類型時,則將所述行內字符串屬性的屬性類型和所述行內 字符串屬性的屬性類型的屬性值添加到初始屬性中,將添加後的初始屬性作為所述合併屬 性。
[0053] 在一個示例中,以步驟S30中的以第一字幕行數據最終顯示為:三星中國電子 的示例為例。具體說來,在執行完步驟S20後,可得到示例中的字幕文件的全局屬性1為字 體屬性類型(例如,楷體)。執行完步驟S30後,可得到第一字幕行數據的行屬性為字號屬 性類型(例如,四號字),第一字幕行數據的兩個行內字符串屬性,行內字符串屬性1為字體 格式屬性類型(例如,斜體)、行內字符串屬性2為字體格式屬性類型(例如,下劃線),並 且第一字幕行數據被劃分為兩個文本區域,相應地第一字幕行數據具有兩個合併屬性。
[0054] 這裡,以確定第一文本區域的合併屬性為例,來介紹獲得任意一個文本區域中包 括的合併屬性的步驟。具體說來,由於全局屬性1為字體屬性類型(例如,楷體),而第一字 幕行數據的行屬性為字號屬性類型(例如,四號字),則表明全局屬性1的屬性類型中不存 在第一字幕行數據的行屬性的屬性類型,則將字號屬性類型和字號屬性類型的屬性值添加 到全局屬性1中,將添加了字號屬性類型和字號屬性類型的屬性值的全局屬性1作為初始 屬性。在此情況下,初始屬性中包括字體屬性類型(例如,楷體)和字號屬性類型(例如, 四號字)。
[0055] 然後,由於初始屬性中包括字體屬性類型(例如,楷體)和字號屬性類型(例如, 四號字),而行內字符串屬性1為字體格式屬性類型(例如,斜體),則表明初始屬性中不存 在行內字符串屬性1,則將字體格式屬性類型和字體格式屬性類型的屬性值添加到初始屬 性中,將添加了字體格式屬性類型和字體格式屬性類型的屬性值的初始屬性作為第一文本 區域的合併屬性。
[0056] 由上述示例可知,第一文本區域的合併屬性的起始字符位置為行內的第1個字 符,結束字符位置為行內的第2個字符,第一文本區域的合併屬性的屬性類型包括字體屬 性類型、字號屬性類型、字體格式屬性類型,即,第一字幕行數據中的"三星"兩個字符的合 並屬性是楷體、四號、斜體。同樣地,第二文本區域的合併屬性的屬性類型包括字體屬性類 型、字號屬性類型、字體格式屬性類型,即,第一字幕行數據中的"中國電子"四個字符的 合併屬性是楷體、四號、加下劃線。
[0057] 在步驟S50中,將所述合併屬性中包括的每一種屬性類型創建為對應的一個屬性 項。可選地,所述屬性項可包括所述文本區域中包括的一種屬性類型、所述一種屬性類型的 屬性值、所述文本區域的起始字符位置以及結束字符位置。
[0058] 在一個示例中,以步驟S30中的以第一字幕行數據最終顯示為:三星中國電子 的示例為例,將第一文本區域的合併屬性中包括的字體格式屬性類型創建為屬性項,該屬 性項包括:字體格式屬性類型,第一文本區域的起始字符位置(即,行內的第1個字符)、結 束字符位置(即,行內的第2個字符),字體格式屬性類型的屬性值。
[0059] 在步驟S60中,將所述當前字幕行數據中包括的所有屬性項創建為所述當前字幕 行數據的數據語法結構。可選地,所述數據語法結構可包括所述字幕文件的格式、所述當前 字幕行數據中包括的所有屬性項的個數、所述當前字幕行數據中包括的所有屬性項。
[0060] 在一個示例中,以步驟S30中的以第一字幕行數據最終顯示為:三星中國電子 的示例為例,將當前字幕行數據中包括的所有屬性項創建為當前字幕行數據的數據語法結 構。具體說來,當前字幕行數據的數據語法結構可包括:字幕文件的格式(例如,ssa)、屬性 項的個數6、每個屬性項包括的內容。
[0061] 具體來說,第一屬性項包括:字體格式屬性類型,行內的第1個字符、行內的第2個 字符,字體格式屬性類型的屬性值;第二屬性項包括:字號屬性類型,行內的第1個字符、行 內的第2個字符,字號屬性類型的屬性值;第三屬性項包括:字體屬性類型,行內的第1個 字符、行內的第2個字符,字體屬性類型的屬性值;第四屬性項包括:字體屬性類型,行內的 第3個字符、行內的第6個字符,字體屬性類型的屬性值;第五屬性項包括:字號屬性類型, 行內的第3個字符、行內的第6個字符,字號屬性類型的屬性值;第六屬性項包括:字體格 式屬性類型,行內的第3個字符、行內的第6個字符,字體格式屬性類型的屬性值。
[0062] 在步驟S70中,根據所述當前字幕行數據的數據語法結構對所述當前字幕行數據 進行還原。
[0063] 圖2是示出根據本發明示例性實施例的對當前字幕行數據進行還原的步驟的流 程圖。
[0064] 參照圖2,在步驟S701中,獲取所述當前字幕行數據的數據語法結構中包括的第i 個屬性項。這裡,1 < i < m,i的初值為1,m為所述當前字幕行數據中包括的所有屬性項 的個數,m為大於零的自然數。
[0065] 在步驟S702中,基於第i個屬性項中包括的屬性類型、所述屬性類型的屬性值對 第i個屬性項中包括的起始字符位置與結束字符位置中包括的字符進行還原。例如,可將 第i個屬性項中包括的屬性類型應用到第i個屬性項中包括的起始字符位置與結束字符位 置中包括的字符上,並將該屬性類型的屬性值更新為第i個屬性項中包括的屬性值。
[0066] 在步驟S703中,檢測i是否等於m。當i尹m時,使得i = i+1,並返回執行步驟 S701。本發明示例性實施例的還原字幕屬性的方法是逐個字幕行數據進行還原,當i = m 時,則結束對當前字幕行數據進行還原的步驟,並返回執行步驟S30獲取下一字幕行數據。
[0067]在一個示例中,以步驟S30中的以第一字幕行數據最終顯示為:三國電子 的示例為例。具體說來,由於第一字幕行數據的數據語法結構中共包括6個屬性項,則可先 獲取當前字幕行數據的數據語法結構中的第一個屬性項,並利用第一個屬性項中包括的字 體格式屬性類型、字體格式屬性類型的屬性值對行內的第1個字符和行內的第2個字符進 行還原,然後檢測i是否等於m,由於這裡i = 1且m = 6,則i關m,使得i = i+Ι,即i = 2繼續獲取第一字幕行數據的數據語法結構中的第二個屬性項,直至i = m = 6時,對第一 字幕行數據的還原結束,則繼續獲取下一字幕行數據,並重複執行本發明示例性實施例的 還原字幕屬性的步驟S30?步驟S70,直至全部字幕數據還原完畢。
[0068] 此外,應該理解,上述根據本發明示例性實施例的還原字幕屬性的方法可被實現 為計算機可讀記錄介質中的計算機代碼。本領域技術人員可以根據對上述方法的描述來實 現所述計算機代碼。當所述計算機代碼在計算機中被執行時實現本發明示例性實施例的上 述方法。
[0069] 圖3是示出根據本發明示例性實施例的還原字幕屬性的裝置的框圖。
[0070] 如圖3所示,根據本發明示例性實施例的還原字幕屬性的裝置包括:字幕文件獲 取單元10、第一解析單元20、第二解析單元30、劃分單元40、屬性項創建單元50、數據語法 結構創建單元60、字幕屬性還原單元70。這些單元可由數位訊號處理器、現場可編程門陣 列等通用硬體處理器來實現,也可通過專用晶片等專用硬體處理器來實現,還可完全通過 電腦程式來以軟體方式實現。
[0071] 具體來說,字幕文件獲取單元10從多媒體文件中獲取所述多媒體文件的字幕文 件。這裡,作為示例,所述字幕文件可以是多媒體文件的內嵌字幕或外掛字幕。這裡,字幕 文件獲取單元10可為現有的解碼器,來實現對多媒體文件進行解析,得到多媒體文件的字 幕文件。
[0072] 第一解析單元20對所述字幕文件的頭部數據進行解析,得到所述字幕文件的全 局屬性。一般在製作字幕文件時,字幕製作人員會在字幕文件的頭部數據中預先定義好字 幕文件的全局屬性(例如,全局屬性1,全局屬性2,……,全局屬性N)。通過對字幕文件的 頭部數據進行解析,即可得到字幕文件的全局屬性,這裡,第一解析單元20可利用現有的 解析方法來從字幕文件的頭部數據中解析出字幕文件的全局屬性。
[0073] 可選地,所述字幕文件的字幕屬性可包括文本屬性、渲染屬性、特效屬性。例如, 文本屬性可包括字體、字號、字體顏色、背景顏色等屬性類型;渲染屬性可包括字幕區域背 景顏色、字符邊緣銳化、內外邊距等屬性類型;特效屬性可包括進入、擦除、馬賽克等屬性類 型。這裡,每個全局屬性中可包括上述屬性類型中的至少一個。
[0074] 第二解析單元30獲取當前字幕行數據並對當前字幕行數據進行解析,得到當前 字幕行數據的行屬性和當前字幕行數據的行內字符串屬性。這裡,字幕行數據是指設定時 間段對應的字幕數據,而並不是指最終顯示的一行字幕。可選地,行屬性的作用域為字幕行 數據中包含的所有字符,行內字符串屬性的作用域為所述行內字符串屬性的起始字符位置 和結束字符位置中包含的字符。
[0075] 由於已經在圖1中的步驟S30中對第二解析單元30的功能進行了詳細描述,在此 不再贅述。
[0076] 劃分單元40將所述當前字幕行數據劃分為至少一個文本區域。可選地,每個文本 區域中可包括一個合併屬性,所述合併屬性可為字幕文件的全局屬性、當前字幕行數據的 行屬性、當前字幕行數據的行內字符串屬性的疊加。
[0077] 可選地,劃分單元40可包括:檢測單元和文本區域確定單元。
[0078] 例如,檢測單元可檢測所述當前字幕行數據中是否包含特定標識符。這裡,所述特 定標識符為在所述當前字幕行數據的相鄰兩個字符之間標記所述相鄰兩個字符具有不同 行內字符串屬性的符號。
[0079] 當所述當前字幕行數據中不包含特定標識符時,文本區域確定單元將所述當前字 幕行數據確定為一個文本區域;當所述當前字幕行數據中包含特定標識符時,文本區域確 定單元將所述特定標識符作為劃分文本區域的分割符,以將所述當前字幕行數據劃分為多 個文本區域。
[0080] 由於已經在圖1中的步驟S40中對劃分單元40中的檢測單元和文本區域確定單 元的功能進行了詳細描述,在此不再贅述。
[0081] 可選地,劃分單元40除包括檢測單元和文本區域確定單元之外,可還包括初始屬 性確定單元和合併屬性確定單元。
[0082] 初始屬性確定單元對字幕文件的全局屬性和當前字幕行數據的行屬性進行合併, 得到所述文本區域的初始屬性。
[0083] 例如,初始屬性確定單元檢測所述全局屬性的屬性類型中是否存在所述行屬性的 屬性類型,當所述全局屬性的屬性類型中存在行屬性的屬性類型時,則用所述行屬性的屬 性類型的屬性值來更新所述全局屬性的屬性類型中的屬性值,將更新屬性值後的全局屬性 作為初始屬性,當所述全局屬性的屬性類型中不存在行屬性的屬性類型時,則將所述行屬 性的屬性類型和所述行屬性的屬性類型的屬性值添加到全局屬性中,將添加後的全局屬性 作為初始屬性。
[0084] 合併屬性確定單元對所述初始屬性和當前字幕行數據的行內字符串屬性進行合 並,得到所述文本區域的合併屬性。
[0085] 例如,合併屬性確定單元檢測所述初始屬性的屬性類型中是否存在所述行內字符 串屬性的屬性類型,當所述初始屬性的屬性類型中存在所述行內字符串屬性的屬性類型 時,則用所述行內字符串屬性的屬性類型的屬性值來更新所述初始屬性的屬性類型中的屬 性值,將更新屬性值後的初始屬性作為所述合併屬性,當所述初始屬性的屬性類型中不存 在所述行內字符串屬性的屬性類型時,則將所述行內字符串屬性的屬性類型和所述行內字 符串屬性的屬性類型的屬性值添加到初始屬性中,將添加後的初始屬性作為所述合併屬 性。
[0086] 由於已經在圖1中的步驟S40中對劃分單元40中的初始屬性確定單元和合併屬 性確定單元的功能進行了詳細描述,在此不再贅述。
[0087] 屬性項創建單元50將所述合併屬性中包括的每一種屬性類型創建為對應的一個 屬性項。可選地,所述屬性項可包括所述文本區域中包括的一種屬性類型、所述一種屬性類 型的屬性值、所述文本區域的起始字符位置以及結束字符位置。
[0088] 由於已經在圖1中的步驟S50中對屬性項創建單元50的功能進行了詳細描述,在 此不再贅述。
[0089] 數據語法結構創建單元60將所述當前字幕行數據中包括的所有屬性項創建為所 述當前字幕行數據的數據語法結構。可選地,所述數據語法結構可包括所述字幕文件的格 式、所述當前字幕行數據中包括的所有屬性項的個數、所述當前字幕行數據中包括的所有 屬性項。
[0090] 由於已經在圖1中的步驟S60中對屬性項創建單元60的功能進行了詳細描述,在 此不再贅述。
[0091] 字幕屬性還原單元70根據所述當前字幕行數據的數據語法結構對所述當前字幕 行數據進行還原。
[0092] 具體說來,字幕屬性還原單元70首先獲取所述當前字幕行數據的數據語法結構 中包括的第i個屬性項,這裡,1 < i < m,i的初值為l,m為所述當前字幕行數據中包括的 所有屬性項的個數,m為大於零的自然數,再基於第i個屬性項中包括的屬性類型、所述屬 性類型的屬性值對第i個屬性項中包括的起始字符位置與結束字符位置中包括的字符進 行還原,然後檢測i是否等於m,當i尹m時,使得i = i+Ι,並獲取所述當前字幕行數據的數 據語法結構中包括的第i個屬性項,當i = m時,結束對當前字幕行數據進行還原。這裡, 字幕屬性還原單元70是逐個字幕行數據進行還原,當i = m時,則結束對當前字幕行數據 進行還原的步驟,並由第二解析單元30繼續獲取下一字幕行數據,直至全部字幕數據還原 完畢。
[0093] 採用本發明示例性實施例的還原字幕屬性的方法和裝置,可針對字幕文件中的字 幕行數據逐個創建數據語法結構,並逐行進行還原,使對字幕行數據的還原具有實時性。此 夕卜,由於是對字幕行數據創建數據語法結構,可有效減少對內存空間的佔用。
[〇〇94] 儘管已經參照其示例性實施例具體顯示和描述了本發明,但是本領域的技術人員 應該理解,在不脫離權利要求所限定的本發明的精神和範圍的情況下,可以對其進行形式 和細節上的各種改變。
【權利要求】
1. 一種還原字幕屬性的方法,所述方法包括: 從多媒體文件中獲取所述多媒體文件的字幕文件; 對所述字幕文件的頭部數據進行解析,得到所述字幕文件的全局屬性; 獲取當前字幕行數據並對所述當前字幕行數據進行解析,得到當前字幕行數據的行屬 性和當前字幕行數據的行內字符串屬性; 將所述當前字幕行數據劃分為至少一個文本區域,其中,每個文本區域中包括一個合 並屬性,所述合併屬性為所述全局屬性、所述行屬性、所述行內字符串屬性的疊加; 將所述合併屬性中包括的每一種屬性類型創建為對應的一個屬性項; 將所述當前字幕行數據中包括的所有屬性項創建為所述當前字幕行數據的數據語法 結構; 根據所述當前字幕行數據的數據語法結構對所述當前字幕行數據進行還原。
2. 根據權利要求1所述的方法,其中,將所述當前字幕行數據劃分為所述至少一個文 本區域的步驟包括: 檢測所述當前字幕行數據中是否包含特定標識符; 當所述當前字幕行數據中不包含特定標識符時,將所述當前字幕行數據確定為一個文 本區域; 當所述當前字幕行數據中包含特定標識符時,將所述特定標識符作為劃分文本區域的 分割符,以將所述當前字幕行數據劃分為多個文本區域, 其中,所述特定標識符為在所述當前字幕行數據的相鄰兩個字符之間標記所述相鄰兩 個字符具有不同行內字符串屬性的符號。
3. 根據權利要求1所述的方法,其中,所述屬性項包括所述文本區域中包括的一種屬 性類型、所述一種屬性類型的屬性值、所述文本區域的起始字符位置以及結束字符位置。
4. 根據權利要求1所述的方法,其中,所述數據語法結構包括所述字幕文件的格式、 所述當前字幕行數據中包括的所有屬性項的個數、所述當前字幕行數據中包括的所有屬性 項。
5. 根據權利要求1所述的方法,其中,任意一個文本區域中包括的合併屬性通過以下 步驟被獲得: 對所述全局屬性和所述行屬性進行合併,得到所述文本區域的初始屬性; 對所述初始屬性和所述行內字符串屬性進行合併,得到所述文本區域的合併屬性。
6. 根據權利要求5所述的方法,其中,對所述全局屬性和所述行屬性進行合併,得到所 述文本區域的初始屬性的步驟包括: 檢測所述全局屬性的屬性類型中是否存在行屬性的屬性類型; 當所述全局屬性的屬性類型中存在行屬性的屬性類型時,則用所述行屬性的屬性類型 的屬性值來更新所述全局屬性的屬性類型中的屬性值,將更新屬性值後的全局屬性作為初 始屬性; 當所述全局屬性的屬性類型中不存在行屬性的屬性類型時,則將所述行屬性的屬性類 型和所述行屬性的屬性類型的屬性值添加到全局屬性中,將添加後的全局屬性作為初始屬 性。
7. 根據權利要求5所述的方法,其中,對所述初始屬性和所述行內字符串屬性進行合 並,得到所述文本區域的合併屬性的步驟包括: 檢測所述初始屬性的屬性類型中是否存在所述行內字符串屬性的屬性類型; 當所述初始屬性的屬性類型中存在所述行內字符串屬性的屬性類型時,則用所述行內 字符串屬性的屬性類型的屬性值來更新所述初始屬性的屬性類型中的屬性值,將更新屬性 值後的初始屬性作為所述合併屬性; 當所述初始屬性的屬性類型中不存在所述行內字符串屬性的屬性類型時,則將所述行 內字符串屬性的屬性類型和所述行內字符串屬性的屬性類型的屬性值添加到初始屬性中, 將添加後的初始屬性作為所述合併屬性。
8. 根據權利要求3所述的方法,其中,根據所述當前字幕行數據的數據語法結構對當 前字幕行數據進行還原的步驟包括: (a) 獲取所述當前字幕行數據的數據語法結構中包括的第i個屬性項,1 < i < m,i的 初值為1,m為所述當前字幕行數據中包括的所有屬性項的個數,m為大於零的自然數; (b) 基於第i個屬性項中包括的屬性類型、所述屬性類型的屬性值對第i個屬性項中包 括的起始字符位置與結束字符位置中包括的字符進行還原; (c) 檢測i是否等於m,當i尹m時,使得i = i+1,並返回執行步驟(a),當i = m時, 結束對當前字幕行數據進行還原的步驟。
9. 一種還原字幕屬性的裝置,所述裝置包括: 字幕文件獲取單元,從多媒體文件中獲取所述多媒體文件的字幕文件; 第一解析單元,對所述字幕文件的頭部數據進行解析,得到所述字幕文件的全局屬 性; 第二解析單元,獲取當前字幕行數據並對當前字幕行數據進行解析,得到當前字幕行 數據的行屬性和當前字幕行數據的行內字符串屬性; 劃分單元,將所述當前字幕行數據劃分為至少一個文本區域,其中,每個文本區域中 包括一個合併屬性,所述合併屬性為所述全局屬性、所述行屬性、所述行內字符串屬性的疊 加; 屬性項創建單元,將所述合併屬性中包括的每一種屬性類型創建為對應的一個屬性 項; 數據語法結構創建單元,將所述當前字幕行數據中包括的所有屬性項創建為所述當前 字幕行數據的數據語法結構; 字幕屬性還原單元,根據所述當前字幕行數據的數據語法結構對當前字幕行數據進行 還原。
10. 根據權利要求9所述的裝置,其中,劃分單元包括: 檢測單元,檢測所述當前字幕行數據中是否包含特定標識符; 文本區域確定單元,當所述當前字幕行數據中不包含特定標識符時,將所述當前字幕 行數據確定為一個文本區域,當所述當前字幕行數據中包含特定標識符時,將所述特定標 識符作為劃分文本區域的分割符,以將所述當前字幕行數據劃分為多個文本區域, 其中,所述特定標識符為在所述當前字幕行數據的相鄰兩個字符之間標記所述相鄰兩 個字符具有不同行內字符串屬性的符號。
11. 根據權利要求9所述的裝置,其中,所述屬性項包括所述文本區域中包括的一種屬 性類型、所述一種屬性類型的屬性值、所述文本區域的起始字符位置以及結束字符位置。
12. 根據權利要求9所述的裝置,其中,所述數據語法結構包括所述字幕文件的格式、 所述當前字幕行數據中包括的所有屬性項的個數、所述當前字幕行數據中包括的所有屬性 項。
13. 根據權利要求9所述的裝置,其中,劃分單元還包括: 初始屬性確定單元,對所述全局屬性和所述行屬性進行合併,得到所述文本區域的初 始屬性; 合併屬性確定單元,對所述初始屬性和所述行內字符串屬性進行合併,得到所述文本 區域的合併屬性。
14. 根據權利要求13所述的裝置,其中,初始屬性確定單元檢測所述全局屬性的屬性 類型中是否存在行屬性的屬性類型,當所述全局屬性的屬性類型中存在行屬性的屬性類型 時,則用所述行屬性的屬性類型的屬性值來更新所述全局屬性的屬性類型中的屬性值,將 更新屬性值後的全局屬性作為初始屬性,當所述全局屬性的屬性類型中不存在行屬性的屬 性類型時,則將所述行屬性的屬性類型和所述行屬性的屬性類型的屬性值添加到全局屬性 中,將添加後的全局屬性作為初始屬性。
15. 根據權利要求13所述的裝置,其中,合併屬性確定單元檢測所述初始屬性的屬性 類型中是否存在所述行內字符串屬性的屬性類型,當所述初始屬性的屬性類型中存在所述 行內字符串屬性的屬性類型時,則用所述行內字符串屬性的屬性類型的屬性值來更新所述 初始屬性的屬性類型中的屬性值,將更新屬性值後的初始屬性作為所述合併屬性,當所述 初始屬性的屬性類型中不存在所述行內字符串屬性的屬性類型時,則將所述行內字符串屬 性的屬性類型和所述行內字符串屬性的屬性類型的屬性值添加到初始屬性中,將添加後的 初始屬性作為所述合併屬性。
16. 根據權利要求9所述的裝置,其中,字幕屬性還原單元獲取所述當前字幕行數據的 數據語法結構中包括的第i個屬性項,1 < i < m,i的初值為1,m為所述當前字幕行數據 中包括的所有屬性項的個數,m為大於零的自然數,基於第i個屬性項中包括的屬性類型、 所述屬性類型的屬性值對第i個屬性項中包括的起始字符位置與結束字符位置中包括的 字符進行還原,檢測i是否等於m,當i尹m時,使得i = i+Ι,並獲取所述當前字幕行數據 的數據語法結構中包括的第i個屬性項,當i = m時,結束對當前字幕行數據進行還原。
【文檔編號】H04N21/435GK104093063SQ201410346247
【公開日】2014年10月8日 申請日期:2014年7月18日 優先權日:2014年7月18日
【發明者】鄧豔芳, 孫春紅, 吳進鋒 申請人:三星電子(中國)研發中心, 三星電子株式會社