專利名稱:視頻信號(hào)的分層編解碼方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信號(hào)處理中的一種視頻編、解碼方法,尤其涉及將字幕、電視臺(tái)標(biāo)志、廣告文字和其他附加視頻信息插入編碼的數(shù)字視頻信號(hào)的處理方法。
背景技術(shù):
傳統(tǒng)的視頻編碼標(biāo)準(zhǔn)如ITU制定的H.261,H.263,H.263+,H.264標(biāo)準(zhǔn)以及ISO的MPEG組織制定的MPEG-1,MPEG-2等都是把視頻信號(hào)作為攝像機(jī)拍攝得到的逐行或者隔行信號(hào)進(jìn)行編碼,沒有考慮到視頻信息在呈現(xiàn)給觀眾之前還需要進(jìn)行很多的編輯和修飾,因此采用這些標(biāo)準(zhǔn)編碼的視頻信息編輯起來不是很方便,往往需要以下步驟a)對(duì)編碼視頻信號(hào)進(jìn)行解壓縮;b)在還原的視頻信號(hào)上進(jìn)行編輯;c)重新壓縮編輯后的視頻信號(hào)。這樣做有以下缺點(diǎn)1)要求編輯設(shè)備具有編碼和解碼已壓縮的視頻信號(hào)的能力,使編輯設(shè)備成本較高;2)編輯后,原始視頻信號(hào)受到破壞,無法恢復(fù)到編輯前的狀態(tài)。3)當(dāng)發(fā)現(xiàn)編輯錯(cuò)誤需要修改時(shí),必須在原始視頻信號(hào)上重新編輯,造成編輯的效率不高。
MPEG-4標(biāo)準(zhǔn)考慮了場(chǎng)景的結(jié)構(gòu),把視頻信號(hào)分解為背景和若干物體進(jìn)行編碼,以此提高壓縮效率和編碼視頻信息的可編輯性。但是MPEG-4的初衷是將視頻信號(hào)中的背景和物體分析出來,然后分別編碼,這就需要非常復(fù)雜的場(chǎng)景分析算法。雖然場(chǎng)景分析算法不作為MPEG-4標(biāo)準(zhǔn)的一部分,但是由于目前場(chǎng)景分析算法在實(shí)時(shí)性和準(zhǔn)確性上根本達(dá)不到實(shí)用的要求,使得MPEG-4倡導(dǎo)的所謂面向?qū)ο蟮囊曨l壓縮方法無法在實(shí)際中使用。同時(shí),MPEG-4對(duì)視頻節(jié)目后期制作和演播的各種需求沒有給予特別的關(guān)注和在算法上進(jìn)行特別的支持,使得對(duì)MPEG-4壓縮的視頻信號(hào)進(jìn)行編輯的軟件和設(shè)備都很復(fù)雜。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是提供一種視頻信號(hào)編、解碼方法,通過把視頻信號(hào)分成主視頻層和若干附加視頻層進(jìn)行編碼,使附加視頻信號(hào)的插入和刪除不會(huì)影響主視頻信號(hào)的內(nèi)容,且不需要解碼主視頻信號(hào)。
為了解決上述技術(shù)問題,本發(fā)明采用如下技術(shù)方案提供一種視頻信號(hào)的分層編碼方法,包括以下步驟a.把視頻信號(hào)分成主視頻信號(hào)和附加視頻信號(hào);本發(fā)明所說的視頻信號(hào)是指最終顯示在顯示屏幕上的信息,也就是觀眾實(shí)際看到的全部視頻信息。
本發(fā)明所說的編碼視頻信號(hào)是指經(jīng)過編碼以后的視頻信號(hào)。
本發(fā)明所說的主視頻信號(hào)是指視頻信號(hào)的主要內(nèi)容,例如用攝像機(jī)拍攝的電影電視的畫面,或者用其他方法合成的畫面等等。
本發(fā)明所說的附加視頻信號(hào)包括顯示在屏幕上的電視臺(tái)標(biāo)志、電影電視節(jié)目中的字幕(對(duì)白、歌詞、說明等等)、各種節(jié)目中的說明文字、各種節(jié)目的演職員表、電視臺(tái)定時(shí)播放的時(shí)間信息、文字廣告、圖標(biāo)廣告、電視臺(tái)節(jié)目欄目標(biāo)志以及插播的其他視頻信號(hào)等等。
主視頻信號(hào)和附加視頻信號(hào)的劃分不是絕對(duì)的,可以根據(jù)實(shí)際需要指定。
本發(fā)明所說的附加視頻對(duì)象是指某一個(gè)具體的附加視頻信號(hào),如一個(gè)電視臺(tái)臺(tái)標(biāo)、一行對(duì)白字幕、一個(gè)圖標(biāo)廣告等等。
本發(fā)明所說的主視頻畫面是指主視頻信息的一幀或者一場(chǎng)。
本發(fā)明認(rèn)為顯示在屏幕上的畫面是由主視頻畫面和若干附加視頻對(duì)象按照一定的次序疊加而成的。
b.編碼主視頻信號(hào);主視頻信號(hào)的編碼可以采用現(xiàn)有的或者未來的視頻信號(hào)編碼方法,例如MPEG-1、MPEG-2、MPEG-4、H.261、H.263、H.263+、H.264等。但是需要在每一個(gè)編碼畫面(幀或場(chǎng))的數(shù)據(jù)頭當(dāng)中設(shè)一個(gè)標(biāo)志位,以表明本畫面是否有附加視頻信號(hào)需要顯示。在沒有附加視頻信號(hào)時(shí),這些標(biāo)志全部置為0。
c.編碼附加視頻信號(hào),包括以下步驟c1.附加視頻信號(hào)的分類;本發(fā)明根據(jù)各種附加視頻信號(hào)的特點(diǎn)定義了9種附加視頻對(duì)象,見表1,以后還可以根據(jù)需要定義新的附加視頻對(duì)象類型。最多可以定義255種附加視頻對(duì)象類型。
表1各種附加視頻對(duì)象的名稱和編號(hào)
c2.附加視頻對(duì)象的描述;根據(jù)各種附加視頻對(duì)象的特點(diǎn)用不同的參數(shù)來描述它們,例如編號(hào)、所在層、透明度、形狀、大小、位置、顏色、所屬語言等等。表2~表5詳細(xì)說明了每一種附加視頻對(duì)象的描述方法。當(dāng)附加視頻對(duì)象第一次在編碼數(shù)據(jù)流中出現(xiàn)或者數(shù)據(jù)需要刷新時(shí),應(yīng)使用表2~表5所述的結(jié)構(gòu)進(jìn)行描述。表6定義了一個(gè)附加視頻對(duì)象在當(dāng)前畫面和前一畫面的差別的描述方法。當(dāng)附加視頻對(duì)象不是第一次在編碼數(shù)據(jù)流中出現(xiàn)而且數(shù)據(jù)不需要刷新時(shí),應(yīng)使用表6所述的結(jié)構(gòu)進(jìn)行描述。
表2附加視頻對(duì)象數(shù)據(jù)結(jié)構(gòu)
表3形狀矩陣結(jié)構(gòu)
表4顏色表結(jié)構(gòu)
表5顏色索引矩陣結(jié)構(gòu)
表6視頻對(duì)象差別結(jié)構(gòu)
其中u(1)、u(2)、u(8)、u(16)等表示對(duì)應(yīng)的參數(shù)是一個(gè)無符號(hào)整數(shù),用1、2、8、或16個(gè)二進(jìn)制位來表示。s(16)表示對(duì)應(yīng)的參數(shù)是一個(gè)有符號(hào)整數(shù),用16個(gè)二進(jìn)制位來表示,第一位是符號(hào)位。u(v)表示對(duì)應(yīng)的參數(shù)是一個(gè)無符號(hào)整數(shù),用來表示它的二進(jìn)制位數(shù)由其他參數(shù)確定。例如,當(dāng)一個(gè)附加視頻對(duì)象使用了4種顏色時(shí),表示顏色索引就只需2個(gè)二進(jìn)制位。
表2~表6中各個(gè)參數(shù)的意義如下level指出附加視頻對(duì)象所在的層。本發(fā)明規(guī)定主視頻信號(hào)為0層,視頻信號(hào)最多包含256層,因此附加視頻對(duì)象的這個(gè)參數(shù)取值1~255。
target_object_id指出附加視頻對(duì)象將疊加到哪一個(gè)附加視頻對(duì)象上,取值0~255。一個(gè)附加視頻對(duì)象不能疊加到層號(hào)大于等于其所在層層號(hào)的附加視頻對(duì)象上。取值為0表示該附加視頻對(duì)象直接疊加到主視頻畫面上。
superpose_order指出附加視頻對(duì)象之間相互疊加的順序,取值0~255。此參數(shù)值大的附加視頻對(duì)象應(yīng)該先疊加到其目標(biāo)對(duì)象上,然后作為一個(gè)對(duì)象疊加到其他視頻對(duì)象上。
type指出附加視頻對(duì)象的類型,取值1~255,每一個(gè)值的含義參見表1。
display_window_x0 display_window_y0 display_window_x1display_window_yl指出顯示該附加視頻對(duì)象的窗口的位置,(display_window_x0,display_window_y0)指出窗口的左上角相對(duì)于主視頻左上角的坐標(biāo),(display_window_x1,display_window_y1)指出窗口的右下角相對(duì)于主視頻左上角的坐標(biāo)。
transparency_quotiety指出附加視頻對(duì)象的透明度,取值0~255。
color_number指出附加視頻對(duì)象使用的顏色數(shù)量,取值1~255。
language_code指出附加視頻對(duì)象屬于的語言,可以采用國(guó)際標(biāo)準(zhǔn)的語言代碼,也可以采用自定義的語言代碼,本發(fā)明不做規(guī)定。當(dāng)存在多種語言的字幕時(shí),用戶可以根據(jù)需要選擇自己想看的字幕。節(jié)目制作者也可以利用這個(gè)參數(shù)在一個(gè)節(jié)目中提供多種語言的字幕。
width_height指出附加視頻對(duì)象的寬度和高度,以主視頻信號(hào)的象素為單位,取值范圍由主視頻信號(hào)的水平分辨率和垂直分辨率決定。當(dāng)附加視頻對(duì)象的大小與顯示窗口相同時(shí),其寬度和高度由顯示窗口的左上角坐標(biāo)和右下角坐標(biāo)相減得到。
offset_x_offset_y指出附加視頻對(duì)象左上角象素的坐標(biāo)在初始時(shí)相對(duì)于顯示窗口左上角坐標(biāo)的偏移。
move_direct指出滾動(dòng)字幕類型的附加視頻對(duì)象的滾動(dòng)方向,取值0~3。0表示自下向上,1表示自上向下,2表示自左向右,3表示自右向左。
move_pixels_per_pic指出滾動(dòng)字幕類型的附加視頻對(duì)象的滾動(dòng)速度,單位是象素/畫面。其中象素是主視頻信號(hào)的象素。
fade_in_mode fade_out_mode指出淡入淡出類型的附加視頻對(duì)象的淡入和淡出方式,取值0~255。本發(fā)明沒有規(guī)定每一個(gè)值的含義,只規(guī)定了最多可以有256種淡入和淡出方式,淡入方式和淡出方式可以不同。
still_pic_num指出淡入淡出類型的附加視頻對(duì)象完全顯示在屏幕上的時(shí)間,以主視頻信號(hào)的畫面為單位,取值0~255。
start_at指出淡入淡出類型的附加視頻對(duì)象的開始狀態(tài)。在淡入淡出類型的附加視頻對(duì)象的顯示過程中,為了提供隨機(jī)訪問的功能,可能需要刷新數(shù)據(jù)。這就造成對(duì)象的完整數(shù)據(jù)到來后,并不一定從最初的淡入開始顯示,而是從中間某一個(gè)狀態(tài)開始顯示。因此需要指出對(duì)象所處的淡入淡出過程的狀態(tài)。
start_x_offset start_y_offset指出移入移出類型的附加視頻對(duì)象在開始時(shí)顯示窗口相對(duì)于坐標(biāo)(display_window_x0,display_window_y0)的偏移。
color_change_position指出卡拉OK字幕類型的附加視頻對(duì)象的變色線的位置,距離顯示窗口左側(cè)邊的象素?cái)?shù)。
marker_bit值為0時(shí)表示點(diǎn)(j,i)不屬于該附加視頻對(duì)象,值為1時(shí)表示點(diǎn)(j,i)屬于該附加視頻對(duì)象。(j,i)為相對(duì)于該附加視頻對(duì)象左上角象素的坐標(biāo)。
value_y value_u value v指出一個(gè)顏色的Y,U,V分量的值。
color_idx指出該附加視頻對(duì)象在(j,i)處的顏色的索引。
current_x_offset_current_y_offset指出移入移出類型的附加視頻對(duì)象在當(dāng)前畫面顯示窗口左上角坐標(biāo)相對(duì)于坐標(biāo)(display_window_x0,display_window_y0)的偏移。
current_color_change_position指出卡拉OK字幕類型的附加視頻對(duì)象在當(dāng)前畫面的變色線的位置,距離顯示窗口左側(cè)邊的象素?cái)?shù)。
CodedFrameData()結(jié)構(gòu)封裝了視頻的一個(gè)畫面的編碼數(shù)據(jù),編碼方法與主視頻的編碼方法一樣。定義這種類型的附加視頻對(duì)象是為了支持復(fù)雜的附加視頻對(duì)象,例如不斷變化的廣告圖標(biāo),新聞節(jié)目插播的小尺寸的短暫的視頻序列等等。
c3.為每一個(gè)附加視頻對(duì)象選擇所在的層、相互的疊加關(guān)系和疊加順序假設(shè)對(duì)象A疊加到對(duì)象B上,應(yīng)當(dāng)保證A的每一個(gè)象素在B中都可以找到與之對(duì)應(yīng)的象素。
c4.為每一個(gè)附加視頻對(duì)象選擇開始和結(jié)束時(shí)間,可以用主視頻信號(hào)的畫面的序號(hào)來表示d.把編碼的附加視頻對(duì)象插入已編碼的主視頻信號(hào)中,包括以下步驟d1.確定隨機(jī)訪問點(diǎn)。
本發(fā)明所說的隨機(jī)訪問點(diǎn)是指解碼器可以開始正確解碼的碼流位置。隨機(jī)訪問點(diǎn)首先受到主視頻信號(hào)的每一畫面的編碼方式的影響。只有采用幀內(nèi)模式編碼的畫面才有可能作為隨機(jī)訪問點(diǎn)。但是不要求每一個(gè)采用幀內(nèi)模式編碼的畫面都作為隨機(jī)訪問點(diǎn)。本發(fā)明不規(guī)定隨機(jī)訪問點(diǎn)的具體設(shè)置方法。
在每一個(gè)隨機(jī)訪問點(diǎn)畫面,必須提供每一個(gè)附加視頻對(duì)象的完整描述信息,即VideoObjectData()(附加視頻對(duì)象數(shù)據(jù))結(jié)構(gòu)。
d2.根據(jù)每一個(gè)附加視頻對(duì)象的開始和結(jié)束時(shí)間確定它們?cè)诿恳粋€(gè)主視頻畫面的數(shù)據(jù)結(jié)構(gòu)。在每一個(gè)附加視頻對(duì)象開始顯示的第一個(gè)畫面,也必須提供完整描述信息,即VideoObjectData()結(jié)構(gòu)。除了開始顯示的第一個(gè)畫面和隨機(jī)訪問點(diǎn)外,在一個(gè)附加視頻對(duì)象需要顯示的其他畫面提供VideoObjectDifference()(附加視頻對(duì)象差別)結(jié)構(gòu)來描述視頻對(duì)象的參數(shù)變化。
d3.為主視頻信號(hào)的每一個(gè)需要顯示附加視頻信號(hào)的畫面生成附加視頻信息,即FuJiaVideoInfo()(附加視頻信息)結(jié)構(gòu),見表7。附加視頻信息的生成包括以下步驟表7附加視頻信號(hào)結(jié)構(gòu)
表8視頻對(duì)象結(jié)構(gòu)
d31.統(tǒng)計(jì)每個(gè)畫面附加視頻對(duì)象的個(gè)數(shù),得到video_object_number(附加視頻對(duì)象數(shù)量)。
d32.為每一個(gè)用VideoObjectData()結(jié)構(gòu)描述的附加視頻對(duì)象分配一個(gè)號(hào)碼video_object_id(附加視頻對(duì)象號(hào)碼)。video_object_id在兩次數(shù)據(jù)刷新之間是唯一的,在兩次數(shù)據(jù)刷新期間用video_object_id來唯一標(biāo)識(shí)一個(gè)附加視頻對(duì)象。在數(shù)據(jù)刷新時(shí),可以為附加視頻對(duì)象重新分配video_object_id。用VideoObjectDifference()結(jié)構(gòu)來描述的附加視頻對(duì)象需要用video_object_id來指出它所描述的是哪一個(gè)視頻對(duì)象。video_object_id的值為0~255,但是0固定用來表示主視頻畫面。
d33.把video_object_id和VideoObjectData()或VideoObjectDifference()結(jié)構(gòu)組織成VideoObject()(附加視頻對(duì)象)結(jié)構(gòu)。
d34.把每個(gè)畫面的所有VideoObject()結(jié)構(gòu)順序排列,統(tǒng)計(jì)它們占據(jù)的二進(jìn)制位數(shù),再加32,作為fujia_video_info_length_in_bit(附加視頻信息長(zhǎng)度)的值。最后形成表7和表8所示的FuJiaVideoInfo()(附加視頻信息)結(jié)構(gòu)。
d4.把FuJiaVideoInfo()結(jié)構(gòu)插入對(duì)應(yīng)的主視頻畫面,具體方法是將對(duì)應(yīng)的主視頻畫面的編碼數(shù)據(jù)的頭部信息中的附加視頻信號(hào)標(biāo)志置為1,然后把FuJiaVideoInfo()結(jié)構(gòu)插入在此標(biāo)志的后面,主視頻信號(hào)的其他編碼數(shù)據(jù)整體向后移動(dòng)。
一種視頻信號(hào)的分層解碼方法,包括以下步驟a.解碼主視頻信號(hào)的每一個(gè)畫面。主視頻信號(hào)的編解碼方法不在本發(fā)明的范圍之內(nèi)。
b.如果主視頻信號(hào)的一個(gè)畫面的附加視頻信號(hào)標(biāo)志置為1,則解碼附加視頻信號(hào)。包括以下步驟b1.讀取fujia_video_info_length_in_bit的值。根據(jù)fujia_video_info_length_in_bit的值繼續(xù)讀fujia_video_info_length_in_bit個(gè)二進(jìn)制位。
b2.讀取video_object_number的值。
b3.解碼video_object_number個(gè)附加視頻對(duì)象。包括以下步驟b31.根據(jù)每一個(gè)附加視頻對(duì)象的描述信息,獲得它們的參數(shù)。
b32.根據(jù)每一個(gè)附加視頻對(duì)象的參數(shù),獲得屬于他們的每一個(gè)象素的顏色。
c.按照superpose_order指出的順序依次把每一個(gè)附加視頻對(duì)象疊加到其目標(biāo)對(duì)象上。superpose_order的值相等的附加視頻對(duì)象應(yīng)當(dāng)先把層號(hào)低的疊加到其目標(biāo)對(duì)象上。
疊加算法如下對(duì)于本視頻對(duì)象的每一個(gè)象素,設(shè)其顏色的某一個(gè)分量的值為v1,目標(biāo)對(duì)象對(duì)應(yīng)位置的象素的對(duì)應(yīng)的顏色分量的值為v2,本視頻對(duì)象的透明度系數(shù)(transparency_quotiety)為t,則疊加后該象素的該顏色分量的值為v=(v2*t+v1*(256-t))/256插入一個(gè)附加視頻對(duì)象的方法,包括以下步驟a.確定其類別、參數(shù)、所在層和與其他已存在的附加視頻對(duì)象的疊加關(guān)系和疊加順序。
b.確定其顯示的開始時(shí)間和結(jié)束時(shí)間。
c.根據(jù)隨機(jī)訪問點(diǎn)和開始時(shí)間準(zhǔn)備VideoObjectData()和VideoObjectDifference()結(jié)構(gòu)。
d.把VideoObjectData()和VideoObjectDifference()結(jié)構(gòu)插入到對(duì)應(yīng)畫面的FuJiaVideoInfo()結(jié)構(gòu)中。并修改相應(yīng)的fujia_video_info_length_in_bit和video_object_number的值。如果該畫面原來沒有FuJiaVideoInfo()結(jié)構(gòu),則按照上述的“一種視頻信號(hào)的分層編碼方法”的步驟d來產(chǎn)生FuJiaVideoInfo()結(jié)構(gòu)并將其插入對(duì)應(yīng)畫面的編碼數(shù)據(jù)當(dāng)中。
刪除一個(gè)附加視頻對(duì)象的方法,包括以下步驟a.在編碼視頻信號(hào)的數(shù)據(jù)流中找到相應(yīng)的畫面的FuJiaVideoInfo()結(jié)構(gòu)。
b.將FuJiaVideoInfo()結(jié)構(gòu)中屬于該附加視頻對(duì)象的VideoObjectData()和VideoObjectDifference()結(jié)構(gòu)刪除,同時(shí)刪除以此對(duì)象為直接或間接疊加對(duì)象的所有對(duì)象。
c.修改FuJiaVideoInfo()結(jié)構(gòu)中fujia_video_info_length_in_bit和video_object_number的值。如果video_object_number的值為0,則在該畫面的數(shù)據(jù)中刪除整個(gè)FuJiaVideoInfo()結(jié)構(gòu),并將附加視頻信號(hào)存在標(biāo)志置為0。
修改一個(gè)附加視頻對(duì)象的方法,包括以下步驟a.在編碼視頻信號(hào)的數(shù)據(jù)流中找到相應(yīng)的畫面的FuJiaVideoInfo()結(jié)構(gòu)。
b.找到FuJiaVideoInfo()結(jié)構(gòu)中對(duì)應(yīng)該附加視頻對(duì)象的VideoObjectData()和VideoObjectDifference()結(jié)構(gòu)刪除。
c.修改VideoObjectData()和VideoObjectDifference()結(jié)構(gòu)中的參數(shù)。如果影響到附加視頻對(duì)象之間的疊加關(guān)系則需要修改相關(guān)附加視頻對(duì)象的VideoObjectData()和VideoObjectDifference()結(jié)構(gòu)中的相關(guān)參數(shù)。如果改變了該視頻對(duì)象的VideoObjectData()和VideoObjectDifference()結(jié)構(gòu)的長(zhǎng)度,還需要修改FuJiaVideoInfo()結(jié)構(gòu)中的fujia_video_info_length_in_bit的值。
由于采用了上述分層編、解碼方法,在編碼視頻信號(hào)中插入、刪除和修改附加視頻信息變得非常簡(jiǎn)單,編輯設(shè)備根本不需要解碼主視頻信號(hào)就可以完成附加視頻信號(hào)的編輯,這樣編輯編碼視頻信號(hào)的設(shè)備可不需要具有編碼和解碼主視頻信號(hào)的能力。本發(fā)明的另外一個(gè)優(yōu)點(diǎn)是附加視頻信號(hào)的插入不會(huì)破壞主視頻信號(hào)的內(nèi)容。
圖1是本發(fā)明的視頻信號(hào)分層編碼方法的一個(gè)實(shí)施例的流程圖;圖2是本發(fā)明的視頻信號(hào)分層解碼方法的一個(gè)實(shí)施例的流程圖;圖3是本發(fā)明的視頻信號(hào)分層編解碼方法的一個(gè)實(shí)施例的流程圖;圖4是本發(fā)明的視頻信號(hào)分層編碼方法的編碼視頻信號(hào)數(shù)據(jù)結(jié)構(gòu)的示意圖。
具體實(shí)施例方式
下面結(jié)合附圖和實(shí)施例來進(jìn)一步說明本發(fā)明的技術(shù)方案。
圖1是本發(fā)明的視頻信號(hào)分層編碼方法的一個(gè)實(shí)施例的流程圖。如圖1所示,該實(shí)施例包括以下步驟a.把視頻信號(hào)分成主視頻信號(hào)和附加視頻信號(hào);主視頻信號(hào)是指視頻信號(hào)的主要內(nèi)容,例如用攝像機(jī)拍攝的電影電視的畫面,或者用其他方法合成的畫面等等。附加視頻信號(hào)包括顯示在屏幕上的電視臺(tái)標(biāo)志、電影電視節(jié)目中的字幕(對(duì)白、歌詞、說明等等)、各種節(jié)目中的說明文字、各種節(jié)目的演職員表、電視臺(tái)定時(shí)播放的時(shí)間信息、文字廣告、圖標(biāo)廣告、電視臺(tái)節(jié)目欄目標(biāo)志以及插播的其他視頻信號(hào)等等。主視頻信號(hào)和附加視頻信號(hào)的劃分不是絕對(duì)的,可以根據(jù)實(shí)際需要指定。
b.編碼主視頻信號(hào);主視頻信號(hào)的編碼可以采用現(xiàn)有的或者未來的視頻信號(hào)編碼方法,例如MPEG-1、MPEG-2、MPEG-4、H.261、H.263、H.263+、H.264等。但是需要在每一個(gè)編碼畫面(幀或場(chǎng))的數(shù)據(jù)頭當(dāng)中設(shè)一個(gè)標(biāo)志位,以表明本畫面是否有附加視頻信號(hào)需要顯示。在沒有附加視頻信號(hào)時(shí),這些標(biāo)志全部置為0。
c.將附加視頻信號(hào)分解為一些附加視頻對(duì)象,例如電視臺(tái)標(biāo)志、電影電視節(jié)目中的字幕、各種節(jié)目中的說明文字、各種節(jié)目的演職員表、電視臺(tái)定時(shí)播放的時(shí)間信息、文字廣告、圖標(biāo)廣告、電視臺(tái)節(jié)目欄目標(biāo)志以及插播的其他視頻信號(hào)等等。根據(jù)各種附加視頻對(duì)象的特點(diǎn)將其歸入表1所述的某一類。
d.確定每一個(gè)附加視頻對(duì)象的開始和結(jié)束時(shí)間,可以用主視頻信號(hào)的畫面的序號(hào)來表示e.確定隨機(jī)訪問點(diǎn)。根據(jù)主視頻信號(hào)的每一個(gè)畫面的編碼方式和隨機(jī)訪問的要求確定隨機(jī)訪問點(diǎn)。只有采用幀內(nèi)模式編碼的畫面才能作為隨機(jī)訪問點(diǎn),但是不要求每一個(gè)采用幀內(nèi)模式編碼的畫面都作為隨機(jī)訪問點(diǎn)。
f.根據(jù)每一個(gè)附加視頻對(duì)象的開始和結(jié)束時(shí)間以及隨機(jī)訪問點(diǎn)確定它們?cè)诿恳粋€(gè)主視頻畫面的數(shù)據(jù)結(jié)構(gòu)。當(dāng)附加視頻對(duì)象第一次在編碼數(shù)據(jù)流中出現(xiàn)或者在隨機(jī)訪問點(diǎn)出現(xiàn)時(shí),應(yīng)使用表2~表5所述的結(jié)構(gòu)進(jìn)行描述。當(dāng)附加視頻對(duì)象不是第一次在編碼數(shù)據(jù)流中出現(xiàn)而且不在隨機(jī)訪問點(diǎn)出現(xiàn)時(shí),應(yīng)使用表6所述的結(jié)構(gòu)進(jìn)行描述。
g.為每一個(gè)附加視頻對(duì)象要顯示的每一個(gè)畫面準(zhǔn)備相應(yīng)的描述結(jié)構(gòu),VideoObjectData()結(jié)構(gòu)或者VideoObjectDifference()結(jié)構(gòu)。
h.統(tǒng)計(jì)每個(gè)畫面需要顯示的附加視頻對(duì)象的個(gè)數(shù),得到video_object_number。
i.為每一個(gè)用VideoObjectData()結(jié)構(gòu)描述的附加視頻對(duì)象分配一個(gè)號(hào)碼video_object_id。并用這個(gè)號(hào)碼指明每一個(gè)VideoObjectDifference()結(jié)構(gòu)描述的附加視頻對(duì)象。形成VideoObject()結(jié)構(gòu)。
j.確定每一個(gè)附加視頻對(duì)象所處的層和相互間的疊加關(guān)系。
k.把每個(gè)畫面的所有VideoObject()結(jié)構(gòu)順序排列,統(tǒng)計(jì)它們占據(jù)的二進(jìn)制位數(shù),再加32,作為fujia_video_info_length_in_bit的值。最后形成表7和表8所示的FuJiaVideoInfo()結(jié)構(gòu)。
1.把FuJiaVideoInfo()結(jié)構(gòu)插入對(duì)應(yīng)的主視頻畫面,具體方法是將對(duì)應(yīng)的主視頻畫面的編碼數(shù)據(jù)的頭部信息中的附加視頻信號(hào)標(biāo)志置為1,然后把FuJiaVideoInfo()結(jié)構(gòu)插入在此標(biāo)志的后面,主視頻信號(hào)的其他編碼數(shù)據(jù)整體向后移動(dòng)。
圖2是本發(fā)明的視頻信號(hào)分層解碼方法的一個(gè)實(shí)施例的流程圖,如圖2所示,該實(shí)施例中包括a′.解碼主視頻信號(hào)的每一個(gè)畫面。
b′.如果主視頻信號(hào)的一個(gè)畫面的附加視頻信號(hào)標(biāo)志置為1,則讀取一個(gè)FuJiaVideoInfo()結(jié)構(gòu)。
c′.解析fujia_video_info_length_in_bit和video_object_number的值和每一個(gè)附加視頻對(duì)象的描述信息,獲得它們的參數(shù)。
d′.根據(jù)每一個(gè)附加視頻對(duì)象的參數(shù),獲得屬于他們的每一個(gè)象素的顏色。
e′.按照superpose_order指出的順序依次把每一個(gè)附加視頻對(duì)象疊加到其目標(biāo)對(duì)象上。superpose_order的值相等的附加視頻對(duì)象應(yīng)當(dāng)先把層號(hào)低的疊加到其目標(biāo)對(duì)象上。疊加算法如下對(duì)于本視頻對(duì)象的每一個(gè)象素,設(shè)其顏色的某一個(gè)分量的值為v1,目標(biāo)對(duì)象對(duì)應(yīng)位置的象素的對(duì)應(yīng)的顏色分量的值為v2,本視頻對(duì)象的透明度系數(shù)(transparency_quotiety)為t,則疊加后該象素的該顏色分量的值為v=(v2*t+v1*(256-t))/256f.輸出疊加后的畫面到顯示設(shè)備。
圖3是本發(fā)明的視頻信號(hào)分層編解碼方法的一個(gè)實(shí)施例的流程圖,如圖3所示,該實(shí)施例包括以下步驟a″.編碼主視頻信號(hào)。
b″.在已編碼的主視頻信號(hào)的基礎(chǔ)上編輯附加視頻信號(hào),包括插入、刪除和修改附加視頻對(duì)象。
c″.利用傳輸通道傳送編碼視頻信號(hào),或者利用存儲(chǔ)設(shè)備存儲(chǔ)編碼視頻信號(hào)。
d″.解碼器獲得編碼的視頻信號(hào)。
e″.解碼主視頻信號(hào)。
f″.解碼附加視頻信號(hào)。
g″.把附加視頻信號(hào)疊加到主視頻信號(hào)上。
h″.顯示輸出。
圖4所示的是本發(fā)明的視頻信號(hào)分層編碼方法的編碼視頻信號(hào)數(shù)據(jù)結(jié)構(gòu),如圖所示一個(gè)視頻序列包括若干個(gè)畫面,其中每一個(gè)畫面均包括畫面開始碼、畫面數(shù)據(jù)頭、畫面編碼數(shù)據(jù),其中畫面數(shù)據(jù)頭包括若干個(gè)語法元素、附加視頻標(biāo)志、附加視頻信息,其中附加視頻信息包括附加視頻信息長(zhǎng)度、附加視頻對(duì)象數(shù)量、若干個(gè)附加視頻對(duì)象。
權(quán)利要求
1.一種視頻信號(hào)的分層編解碼方法,其特征在于,包括如下步驟a、將視頻信號(hào)分為主視頻信號(hào)及附加視頻信號(hào);b、編碼主視頻信號(hào);c、在已編碼的主視頻信號(hào)的基礎(chǔ)上編輯附加視頻信號(hào),包括插入、刪除和修改附加視頻對(duì)象;d、利用傳輸通道傳送編碼視頻信號(hào),或者利用存儲(chǔ)設(shè)備存儲(chǔ)編碼視頻信號(hào);e、解碼器獲得編碼的視頻信號(hào);f、解碼主視頻信號(hào);g、解碼附加視頻信號(hào);h、把附加視頻信號(hào)疊加到主視頻信號(hào)上;i、顯示輸出。
2.根據(jù)權(quán)利要求1所述視頻信號(hào)的分層編解碼方法,其特征在于,所述的插入附加視頻對(duì)象的方法包括如下步驟a、確定其類別、參數(shù)、所在層和與其他已存在的附加視頻對(duì)象的疊加關(guān)系和疊加順序;b、確定其顯示的開始時(shí)間和結(jié)束時(shí)間;c、根據(jù)隨機(jī)訪問點(diǎn)和開始時(shí)間準(zhǔn)備附加視頻對(duì)象數(shù)據(jù)結(jié)構(gòu)和附加視頻對(duì)象差別結(jié)構(gòu);d、確定該畫面是否有附加視頻信息結(jié)構(gòu),若沒有則產(chǎn)生附加視頻信息結(jié)構(gòu)并將其插入對(duì)應(yīng)畫面的編碼數(shù)據(jù)當(dāng)中;e、把附加視頻對(duì)象數(shù)據(jù)結(jié)構(gòu)和附加視頻對(duì)象差別結(jié)構(gòu)插入到對(duì)應(yīng)畫面的附加視頻信息結(jié)構(gòu)中,并修改相應(yīng)的附加視頻信息長(zhǎng)度和附加視頻對(duì)象數(shù)量的值。
3.根據(jù)權(quán)利要求1所述的視頻信號(hào)的分層編解碼方法,其特征在于,所述的刪除附加視頻對(duì)象的方法包括以下步驟a、在編碼視頻信號(hào)的數(shù)據(jù)流中找到相應(yīng)的畫面的附加視頻信息結(jié)構(gòu);b、將附加視頻信息結(jié)構(gòu)中屬于該附加視頻對(duì)象的附加視頻對(duì)象數(shù)據(jù)結(jié)構(gòu)和附加視頻對(duì)象差別結(jié)構(gòu)刪除,同時(shí)刪除以此對(duì)象為直接或間接疊加對(duì)象的所有對(duì)象;c、修改附加視頻信息結(jié)構(gòu)中附加視頻信息長(zhǎng)度和附加視頻對(duì)象數(shù)量的值。如果附加視頻對(duì)象數(shù)量的值為0,則在該畫面的數(shù)據(jù)中刪除整個(gè)附加視頻信息結(jié)構(gòu),并將附加視頻信號(hào)存在標(biāo)志置為0;
4.根據(jù)權(quán)利要求1所述的視頻信號(hào)的分層編解碼方法,其特征在于,所述的修改附加視頻對(duì)象的方法包括以下步驟a、在編碼視頻信號(hào)的數(shù)據(jù)流中找到相應(yīng)的畫面的附加視頻信息結(jié)構(gòu);b、找到附加視頻信息結(jié)構(gòu)中對(duì)應(yīng)該附加視頻對(duì)象的附加視頻對(duì)象數(shù)據(jù)結(jié)構(gòu)和附加視頻對(duì)象差別結(jié)構(gòu)刪除;c、修改附加視頻對(duì)象數(shù)據(jù)結(jié)構(gòu)和附加視頻對(duì)象差別結(jié)構(gòu)中的參數(shù)。如果影響到附加視頻對(duì)象之間的疊加關(guān)系則需要修改相關(guān)附加視頻對(duì)象的附加視頻對(duì)象數(shù)據(jù)結(jié)構(gòu)和附加視頻對(duì)象差別結(jié)構(gòu)中的相關(guān)參數(shù);如果改變了該視頻對(duì)象的附加視頻對(duì)象數(shù)據(jù)結(jié)構(gòu)和附加視頻對(duì)象差別結(jié)構(gòu)的長(zhǎng)度,還需要修改附加視頻信息結(jié)構(gòu)中的附加視頻信息長(zhǎng)度的值;
5.根據(jù)權(quán)利要求1或2或3或4所述的視頻信號(hào)的分層編解碼方法,其特征在于,所述的一個(gè)視頻序列的數(shù)據(jù)結(jié)構(gòu)包括若干個(gè)畫面,其中每一個(gè)畫面均包括畫面開始碼、畫面數(shù)據(jù)頭、畫面編碼數(shù)據(jù),其中畫面數(shù)據(jù)頭包括若干個(gè)語法元素、附加視頻標(biāo)志、附加視頻信息,其中附加視頻信息包括附加視頻信息長(zhǎng)度、附加視頻對(duì)象數(shù)量、若干個(gè)附加視頻對(duì)象。
全文摘要
本發(fā)明提供一種視頻信號(hào)的分層編解碼方法,包括如下步驟a.將視頻信號(hào)分為主視頻信號(hào)及附加視頻信號(hào);b.編碼主視頻信號(hào);c.在已編碼的主視頻信號(hào)的基礎(chǔ)上編輯附加視頻信號(hào),包括插入、刪除和修改附加視頻對(duì)象;d.利用傳輸通道傳送編碼視頻信號(hào),或者利用存儲(chǔ)設(shè)備存儲(chǔ)編碼視頻信號(hào);e.解碼器獲得編碼的視頻信號(hào);f.解碼主視頻信號(hào);g.解碼附加視頻信號(hào);h.把附加視頻信號(hào)疊加到主視頻信號(hào)上;i.顯示輸出。利用本發(fā)明方法在編碼視頻信號(hào)中插入、刪除和修改附加視頻信息變得非常簡(jiǎn)單,編輯設(shè)備根本不需要解碼主視頻信號(hào)就可以完成附加視頻信號(hào)的編輯,這樣編輯編碼視頻信號(hào)的設(shè)備可不需要具有編碼和解碼主視頻信號(hào)的能力。
文檔編號(hào)H04N7/52GK1529514SQ03151248
公開日2004年9月15日 申請(qǐng)日期2003年9月26日 優(yōu)先權(quán)日2003年9月26日
發(fā)明者趙海武, 陳勇, 宋利, 諸維佳, 王國(guó)中, 李國(guó)平, 徐建峰, 何蕓 申請(qǐng)人:上海廣電(集團(tuán))有限公司中央研究院