專利名稱:編碼數據流接合設備和方法及編碼數據流生成設備和方法
技術領域:
本發明涉及用在數字廣播系統中的編碼數據流接合設備(splicingdevice)、編碼數據流接合方法、編碼數據流生成設備和編碼數據流生成方法。尤其涉及用于通過接合一個數據流級別(a stream level)的兩個編碼數據流而生成無縫接合的數據流(seamless spliced stream)的編碼數據流接合設備、編碼數據流接合方法、編碼數據流生成設備和編碼數據流生成方法。
背景技術:
圖1描述了當前的電視廣播系統。在當前的電視廣播系統中,將電視節目分配給各個家庭的廣播電臺包括制作全國性規模的電視節目的關鍵電臺(或主電臺)Sk,及許多附屬于關鍵電臺用以制作獨特的地方電視節目的地方電臺(分支)SA、SB和SC。關鍵電臺SK用于制作通用全國的電視節目和將制作的電視節目發送給地方電臺。地方電臺是用于向本地區域的家庭分配從關鍵電臺通過電臺間的發送而送來的原始電視節目和通過將原始電視節目的一部分編輯成獨特的地方形式而制作成的電視節目的廣播電臺。例如,如圖1所示,地方電臺SA是用于制作要發送給廣播區域EA的家庭的電視節目的電臺。地方電臺SB是用于制作要發送給廣播區域EB的家庭的電視節目的電臺。地方電臺SC是用于制作要發送給廣播區域EC的家庭的電視節目的電臺。例如,在每個地方電臺執行的編輯過程是將獨特的地方天氣預報節目插入到從關鍵電臺發來的新聞節目中的過程,或將地方商業廣告插入到諸如電影或戲劇的節目中的過程。
圖2A到2C描述了在每個地方電臺的編輯過程。圖2A表示在關鍵電臺制作的原始電視節目PGOLD。圖2B表示在地方電臺制作的用于地方觀眾的替代電視節目PGNEW。圖2C表示在地方電臺編輯的電視節目PGEDIT。在圖2A到2C中所示的編輯過程的是用在地方電臺制作的用于地方觀眾的商業廣告CM1’、節目3’和商業廣告CM3’來替代從關鍵電臺發來的原始電視節目的商業廣告CM1、節目3和商業廣告CM3的例子。這種在地方電臺的編輯過程的結果是制作成適合于地方觀眾的電視節目,其中在關鍵電臺制作的電視節目(即,節目1、節目2、CM2和節目4)和在地方電臺制作的電視節目(即,商業廣告CM1’、節目3’和CM3’)共存。
因為當前電視廣播系統使用模擬廣播將模擬基帶電視信號分配給每個家庭,近年來開始嘗試用下一代使用數字技術的廣播系統來替代模擬廣播系統。數字廣播系統是通過使用諸如MPEG2(Moving Picture Experts Group Phase2,運動畫面專家組第二階段)的壓縮編碼技術來壓縮編碼視頻和音頻數據以及通過地面波或衛星波將編碼數據流發送到每個家庭和其它電臺的系統。具體講,從作為數字廣播系統提出的廣播技術中,歐洲提出的作為下一廣播系統的DVB(數字視頻廣播)標準是最具影響力的技術。該DVB標準已成為事實上的標準。
參照圖3,現將描述通過使用MPEG標準從發送端系統將含有視頻數據和音頻數據的節目發送到接收端系統的典型的數字發送系統。
在該典型的數字發送系統中,發送端系統10有MPEG視頻編碼器11、MPEG音頻編碼器12和多路復用器(MUX)13。接收端系統20有多路分解器(DMUX)21、MPEG視頻解碼器22和MPEG音頻解碼器23。
MPEG視頻編碼器11基于MPEG標準對基帶源視頻數據V編碼,并將編碼數據流作為視頻單元流ES輸出。MPEG音頻編碼器基于MPEG標準對基帶原始音頻數據A編碼,并將編碼數據流作為音頻單元流ES輸出。多路復用器13接收來自MPEG視頻編碼器11的視頻單元流和來自MPEG音頻編碼器12的音頻單元流。然后,多路復用器13將該數據流轉換成傳輸數據流分組的形式,這樣就生成了含有視頻單元流的傳輸數據流分組和含有音頻單元流的傳輸數據流分組。多路復用器13對傳輸數據流多路復用以便使含有視頻單元數據流的傳輸數據流分組和含有音頻數據流的傳輸數據流共存,從而生成要發送給接收系統20的傳輸數據流。
多路分解器21接收通過傳輸線發送的傳輸數據流,并且將傳輸數據流多路分解成含有視頻單元流的傳輸數據流分組和含有音頻單元流的傳輸數據流分組。然后,多路分解器21從含有視頻單元流的傳輸數據流分組中生成視頻單元流,并且從含有音頻單元流的傳輸數據流分組中生成音頻單元流。MPEG視頻解碼器22接收來自多路分解器21的視頻單元流,然后基于MPEG標準對該視頻單元流解碼,從而生成基帶視頻數據V。MPEG音頻解碼器23接收來自多路分解器21的音頻單元流,并且基于MPEG標準對該音頻單元流解碼,從而生成基帶音頻數據A。
在傳統的模擬廣播系統即將由使用這種數字發送系統的數據廣播系統替代的情況下,從關鍵電臺發送到地方電臺的電視節目的視頻數據是基于MPEG2標準進行壓縮編碼的編碼數據流。因此,為了在地方電臺執行將關鍵電臺發送來的原始編碼數據流的一部分代之以地方電臺制作的編碼數據流的編輯過程,編碼數據流必須在編輯過程執行前被解碼以恢復基帶視頻數據。這是基于以下原因。即,因為按照MPEG標準包含在編碼數據流中的每個畫面的預測方向與前一畫面和后一畫面的預測方向有關,編碼數據流并不能連接在數據流上的任意位置。如果兩個編碼數據流強行連接,編碼數據流的接合處的數據就會不連續且不能正確解碼。
因此,要實現參照圖2A到2C所描述的編輯過程,必須執行解碼過程,以一次解碼從關鍵電臺提供的原始編碼數據流和為地方觀眾制作的編碼數據流,從而恢復基帶視頻信號;還必須執行編輯過程,以編輯兩個基帶視頻數據,從而生成為廣播編輯的視頻數據;并且還必須執行編碼處理,以再次對編輯后的視頻數據編碼,從而生成編碼視頻數據流。然而,因為基于MPEG標準的編碼/解碼過程并非100%可逆的編碼/解碼過程,所以會出現由于重復解碼過程和編碼過程而導致的畫面質量惡化的問題。
因此,近年來要求有一種在不需對提供的編碼數據流解碼的情況下就能在編碼數據流狀態中進行編輯的技術。該技術在編碼比特流的級別上連接兩個不同的編碼比特流,以便生成連接的比特流,這種技術稱之為“接合(splicing)”。總之,接合意味著在編碼數據流的狀態編輯和連接多個數據流。
然而,實現這種接合過程有以下兩個問題。
現在將描述第一個問題。
按照用于以上描述的MPEG視頻解碼器11和MPEG音頻解碼器22的MPEG標準,雙向預測編碼系統將用作編碼系統。在這個雙向預測編碼系統中,執行三種類型的編碼,即幀內編碼、幀間前向預測編碼和雙向預測編碼。各個類型的編碼所得到的畫面被稱為I-畫面(幀內編碼畫面)、P-畫面(預測編碼畫面)以及B-畫面(雙向預測編碼畫面)。I-、P-和B-畫面適當組合形成GOP(畫面組),作為隨機存取的單元。通常,I-畫面具有最大量的生成代碼,而P-畫面具有第二大量的生成代碼。B-畫面則具有最小量的生成代碼。
在為每一畫面生成的比特量隨MPEG的標準而變化的編碼方法中,,為了準確地由視頻解碼器22對獲得的編碼比特流(以下簡稱為數據流)解碼以便得到畫面,在視頻解碼器22的輸入緩沖器中的數據占有量必須被視頻編碼器11所掌握。因此,按照MPEG標準,稱為“VBV(視頻緩沖檢驗器)緩沖器”的虛擬緩沖器,被假定為對應于視頻解碼器22的輸入緩沖器的緩沖器,并且規定視頻編碼器11執行編碼過程,以便不造成VBV緩沖器的故障,即,下溢或上溢。例如,VBV緩沖器的容量是按照要發送的信號的標準來決定的。在主要輪廓和主要級別(main profile and main level,錯誤!未找到引用源。的標準視頻信號的情況下,VBV緩沖器容量為1.75M位。視頻編碼器11控制每個畫面生成的比特量以便不會造成VBV緩沖器的上溢或下溢。
現在將參照圖4A到4C描述VBV緩沖器。
圖4A表示通過由視頻編碼器對含有在關鍵電臺制作的節目1和商業廣告CM1的原始電視節目進行編碼,得到的原始數據流STOLD,以及對應于原始數據流STOLD的VBV緩沖器中的數據占有量的軌跡。圖4B表示由地方電臺的視頻編碼器通過對為地方觀眾制作的用以替代原始電視節目中的商業廣告CM1的一部分的商業廣告CM1’進行編碼而得到的替代數據流STNEW,以及對應于替代數據流STNEW的VBV緩沖器中的數據占有量的軌跡。在以下的描述中,因為通過對從關鍵電臺發送到地方電臺的原始電視節目進行編碼而得到的數據流的一部分被新的數據流所替代,通過對原始電視節目進行編碼而得到的原始數據流表示為“STOLD”,意思是舊的數據流,而重新替代原始數據流STOLD的一部分的替代數據流表示為“STNEW”。圖4C表示通過在接合點SP接合相對于原始數據流STOLD的替代數據流STNEW而得到的接合數據流STSPL,以及對應于接合數據流STSPL的VBV緩沖器中的數據占有量的軌跡。
在圖4A到4C中,VBV緩沖器中的數據占有量的軌跡的右上方部分(斜坡部分)表示發送比特率,而垂直向下部分表示視頻解碼器從解碼器緩沖器中導出的比特量,用于復制每個畫面。視頻解碼器從解碼器緩沖器導出比特的時序是按照稱為解碼時間標記(decoding time stamp,DTS)的信息來指定的。在圖4A到4C中,I、P和B分別代表I-畫面、P-畫面和B-畫面。
原始編碼數據流STOLD是由關鍵電臺的視頻編碼器編碼的數據流,替代數據流STNEW是由地方電臺的視頻編碼器編碼的數據流。原始編碼數據流STOLD和替代數據流STNEW分別被它們各自的視頻編碼器所編碼。因而,由于地方電臺的視頻編碼器是在根本不知道關鍵電臺的視頻編碼器的VBV緩沖器中的數據占有量的軌跡的情況下執行用于獨特地生成替代數據流STNEW的編碼過程,所以在接合點的VBV緩沖器中的原始數據流STOLD的數據占有量VBVOLD和在接合點的VBV緩沖器中的替代數據流STNEW的數據占有量VBVNFW互相不同。
總之,為了防止接合數據流STSPL的接合點SP周圍的VBV緩沖器中的數據占有量的軌跡出現不連續性,VBV緩沖器中的接合數據流STSPL的替代數據流STNEW的數據占有量的開始級別必須是VBV緩沖器中的數據占有量VBVOLD的級別。因此,如圖4A到4C所示,如果VBV緩沖器中的替代數據流STNEW的數據占有量VBVNEW的值小于VBV緩沖器中的原始數據流STOLD的數據占有量VBVOLD的值,則VBV緩沖器在接合數據流STSPL的替代數據流STNEW部分產生上溢。相反,如果VBV緩沖器中的替代數據流STNEW的數據占有量VBVNEW的值大于VBV緩沖器中的原始數據流STOLD的數據占有量VBVOLD的值,則VBV緩沖器在接合數據流STSPL的替代數據流STNEW的部分產生下溢。
現在將描述第二個問題。
在基于MPEG標準編碼的數據流的標題中,描述了各種表示編碼信息的數據單元和標志。編碼數據流是通過使用這些數據單元和標志來解碼的。
組成圖2A到2C中所示的原始電視節目的主要部分的節目1、2、3和4并非一定由通過攝像機等所記錄的、具有29.97Hz(大約30Hz)的幀速率的NTSC系統的電視信號所組成,而可以是由從具有24Hz(每秒24幀)的幀速率的電影材料轉變的電視信號所組成。通常,將24Hz的電影材料轉變成29.97Hz的電視信號的處理過程稱為“2∶3下拉處理過程”(2∶3 pull-downprocessing),它包括以預定的順序將兩場的原始材料轉變成三場的過程。
圖5描述了這個2∶3下拉處理過程。在圖5中,T1到T8表示具有24Hz幀頻的電影材料的頂場,B1到B8表示具有24Hz的幀頻的電影材料的底場。圖5中的橢圓和三角形表示由頂場和底場所組成的幀結構。
具體講,在這個2∶3下拉處理過程中,執行將四個重復場插入到具有24Hz的幀頻的電影材料(8個頂場T1到T8和8個底場B1到B8)中的過程。這四個重復場包括由重復底場B2而生成的重復場B2’,由重復頂場T4而生成的重復場T4’,由重復底場B6而生成的重復場B6’,以及由重復頂場T8而生成的重復場T8’。因此,通過這種2∶3下拉處理過程,具有29.97Hz的幀頻的電視信號由具有24Hz的幀頻的電影材料生成。
在MPEG編碼器中,由2∶3下拉處理過程所得到的電視信號不直接由視頻編碼器所編碼,而是在重復場被2∶3下拉處理的電視信號所除掉后被編碼。在圖5所示的例子中,重復場B2’、T4’、B6’和T8’被2∶3下拉處理的電視信號所除掉。在編碼過程前除掉重復場的原因是重復場是在2∶3下拉處理時插入的冗余場,即便當它們被刪掉以提高壓縮編碼效率時也不會造成任何畫面質量的降低。
而且,根據MPEG標準,規定了標志“repeat_first_field”,表示是否應該通過重復組成一個幀的任何兩個場而生成重復場,該標志是在對編碼數據流的解碼中描述的。具體講,在對編碼數據流的解碼過程中,如果編碼數據流中的標志“repeat_first_field”是“1”,MPEG解碼器生成重復場。如果編碼數據流中的標志“repeat_first_field”是“0”,MPEG解碼器就不生成重復場。
在圖5所示的例子中,通過對由頂場T1和底場B1所組成的幀編碼所得到的數據流的“repeat_first_field”是“0”,而通過對由頂場T2和底場B2組成的幀編碼所得到的數據流的“repeat_first_field”是“1”。通過對由頂場T3和底場B3組成的幀編碼所得到的數據流的標志“repeat_first_field”是“0”,而通過對由頂場T4和底場B4所組成的幀編碼所得到的數據流的“repeat_first_field”是“1”。因此,在對由頂場T2和底場B2組成的幀的數據流解碼過程中,生成了重復場B2’。在對由頂幀T4和底幀B4組成的幀的數據流解碼過程中,生成了重復場B4’。
另外,按照MPEG標準,規定了標志“top_field_first”,表示組成幀的兩場的第一場是頂場還是底場,該標志描述在編碼數據流中。具體講,如果“top_field_first”是“1”,表示頂場暫時超前底場的幀結構。如果“top_field_first”是“0”,表示頂場暫時落后底場的幀結構。
在圖5的例子中,由頂場T1和底場B1組成的幀的編碼數據流的“top_field_first”是“0”,并且由頂場T2和底場B2組成的幀的編碼數據流的“top_field_first”是“0”。由頂場T3和底場B3組成的幀的編碼數據流的標志“top_field_first”是“1”,并且由頂場T4和底場B4組成的幀的編碼數據流的“top_field_first”是“1”。
參照圖6A到6C,現將描述當編碼數據流接合時,關于按照MPEG標準定義的諸如“top_field_first”和“repeat_first_field”的標志所產生的問題。
圖6A示出了通過對關鍵電臺制作的原始電視節目編碼而得到的原始數據流STOLD的幀結構。圖6B示出了通過對地方電臺為地方觀眾制作的商業廣告CM’編碼而得到的替代數據流STNEW的幀結構。圖6C示出了通過接合處理過程得到的接合數據流STSPL的幀結構。
在原始數據流STOLD中的節目1和節目2是通過2∶3下拉處理過程得到的編碼數據流,主要部分的商業廣告CM1的每個幀是具有“top_field_first”為“0”的幀結構的編碼數據流。圖6B所示的地方商業廣告CM1’是要替代原始電視節目中的商業廣告CM1的編碼數據流,且具有“top_field_first”為“1”的幀結構。圖6C所示的接合數據流STSPL是通過將替代數據流STNEW接合到節目1所表示的原始數據流STOLD后,然后將節目2所表示的原始數據流STOLD接合到替代數據流STNEW后所生成的數據流。總之,接合數據流STSPL是通過插入地方商業廣告CM1’以替代原始數據流STOLD的主商業廣告CM1而得到的數據流。
圖6所示的在關鍵電臺制作的商業廣告CM1是其每個幀都具有“top_field_first”為“0”的幀結構的編碼數據流。在地方電臺制作的商業廣告CM1’是具有“top_field_first”為“1”的幀結構的編碼數據流。
如圖6A到6B所示,在商業廣告CM1的幀結構和要替代商業廣告CM1的替代商業廣告CM1’的幀結構互相不同的情況下,如果在原始數據流STOLD中的接合點SP1將商業廣告CM1’數據流接合到節目1的數據流后,則在接合數據流STSPL中生成場隙。場隙意味著底場B6在接合點SP1從接合數據流STSPL漏掉,這就造成了圖6C所示的頂場和底場的重復圖形中的不連續。
如此在其中生成場隙從而在場圖形中造成不連續的編碼數據流是與MPEG標準不相稱并且不能被普通MPEG解碼器所解碼的編碼數據流。
另一方面,如圖6A和6B所示,如果節目2的數據流在原始數據流STOLD中的接合點被接合到商業廣告CM1’后,在接合數據流STSPL中生成場的副本。如圖6C所示,場的副本意味著在接合點SP2底場b12和底場B12在相同的顯示時間存在。
如此在其中生成場副本從而在場圖形中造成不連續的編碼數據流是與MPEG標準不相稱并且不能被普通MPEG解碼器所解碼的編碼數據流。
總之,如果接合過程是被簡單地執行,則場圖形或幀圖形就會變得不連續并且不能生成符合MPEG標準的接合數據流。
本發明的公開本發明的一個目的是提供一種編碼數據流接合設備,用以實現無縫接合處理過程,該過程生成在VBV緩沖器中的接合數據流的數據占有量的連續軌跡并且在VBV緩沖器不產生中斷。本發明的另一個目的是提供一種編碼數據流接合設備,用以實現無縫接合過程,該過程防止在接合點周圍的編碼數據流的數據流結構中的中斷。
按照本發明的編碼數據流接合設備和編碼數據流生成設備包括數據流分析裝置,用于分析第一編碼數據流的語法,從而提取第一編碼數據流中的編碼參數;以及接合裝置,用于根據由數據流分析裝置所得到的第一編碼數據流的編碼參數,改變第二編碼數據流的編碼參數,以使第一編碼數據流和第二編碼數據流能夠在接合點無縫連接,然后將第一編碼數據流和帶有改變后的編碼參數的第二編碼數據流接合。這樣,就能實現在VBV緩沖器中生成接合數據流的數據占有量的連續軌跡并且不產生VBV緩沖器的中斷的無縫接合過程。而且,按照本發明,可以實現能夠生成具有一致性的無縫數據流,以使接合點周圍的編碼數據流的數據流結構不中斷的接合過程。
按照本發明的編碼數據流接合方法和編碼數據流生成方法包括數據流分析步驟,分析第一編碼數據流的語法,從而提取第一編碼數據流的編碼參數;以及接合步驟,用于根據在數據流分析步驟所得到的第一編碼數據流的編碼參數,改變第二編碼數據流的編碼參數,從而第一編碼數據流和第二編碼數據流能夠在接合點無縫連接,然后將第一編碼數據流和帶有改變后的編碼參數的第二編碼數據流接合。這樣,就能實現生成VBV緩沖器中的接合數據流的數據占有量的連續軌跡,并且不產生VBV緩沖器的中斷的無縫接合過程。而且,按照本發明,能夠實現能生成具有一致性的無縫數據流,以使接合點周圍的編碼數據流的數據流結構不中斷的無縫接合。
附圖的簡要描述圖1描述了典型的電視廣播系統。
圖2A到2C描述了在地方電臺編輯電視節目的過程。
圖3描述了使用MPEG標準的典型數字發送系統。
圖4A到4C描述了對VBV緩沖器的控制。
圖5描述了2∶3下拉處理過程。
圖6A到6C描述了在接合編碼數據流中產生的問題。
圖7是表示按照本發明的實施例的包括編碼數據流接合設備的數字廣播系統的整體結構的方框圖。
圖8是詳細解釋關鍵電臺30的MPEG編碼器塊35和地方電臺40的編碼器塊的結構的方框圖。
圖9A到9D描述了從數據流轉換電路中的基本數據流生成傳輸數據流的過程。
圖10描述了MPEG視頻基本數據流的指令序列的語法。
圖11描述了序列標題的語法(sequence_header)。
圖12描述了序列擴展的語法(sequence_extension)。
圖13描述了擴展和用戶數據的語法(extension_and_user_data)。
圖14描述了畫面組標題的語法(group_of_icture_header)。
圖15描述了畫面標題的語法(picture_header)。
圖16描述了畫面編碼擴展的語法(picture_coding_extension)。
圖17描述了畫面數據的語法(picture_data)。
圖18描述了傳輸數據流分組的語法。
圖19描述了適配場的語法(adaption_field)。
圖20是用以解釋地方電臺的簡單結構和數據流接合器的結構的方框圖。
圖21A到21C描述了關于數據流接合器的VBV緩沖器的處理過程。
圖22A到22C描述了關于數據流接合器的“top_field_first”和“repeat_first_field”的第一次處理過程的例子。
圖23A到23C描述了關于數據流接合器的“top_field_first”和“repeat_first_field”的第二次處理過程的例子。
實現本發明的最好模式圖7描述了按照本發明的實施例的包括編碼數據流接合設備的數字廣播系統的結構。
如圖7所示,數字廣播系統一般包括關鍵電臺30和附屬于該關鍵電臺的地方電臺40。
關鍵電臺30是用于生成普通的電視節目并將其發送到附屬地方電臺的廣播電臺。關鍵電臺30包括廣播系統控制器31、材料服務器32、CM服務器33、矩陣轉換塊34、MPEG編碼器塊35、多路復用器36和調制電路37。
廣播系統控制器31是用于綜合管理和控制所有在廣播電臺提供的諸如材料服務器32、CM服務器33、矩陣轉換塊34、MPEG編碼器塊35、多路復用器36和調制電路37等的單元和電路的系統。在該廣播系統控制器31中,登記一節目編輯表,用以管理所有諸如節目提供公司提供的節目材料以及關鍵電臺本身制作的CM材料的所有材料的廣播時間。按照節目編輯表,廣播系統控制器31控制以上描述的單元和電路。例如,節目編輯表由事件信息文件和操作信息文件等組成,在該事件信息文件中記錄每小時或每天的廣播節目時間表,而在該操作信息文件中記錄每15秒的廣播節目的時間表。
材料服務器32是用以存儲要作為電視節目的主要部分播出的電影節目、體育節目、娛樂節目和新聞節目的視頻數據和音頻數據,并且由廣播系統控制器31在與節目編輯表上的時間表一致的定時處輸出指定的節目的服務器。電影節目包括通過如前所述的2∶3下拉處理過程將具有24Hz的幀頻的電影材料轉換成具有30Hz幀頻的電視信號所得到的視頻數據。作為節目的主要部分從材料服務器32輸出的視頻數據和音頻數據提供到矩陣轉換塊34。在圖2A到2C所示的例子中,節目1、節目2、節目3和節目4記錄在這個材料服務器32中。存儲在材料服務器32中的視頻數據和音頻數據是沒有壓縮編碼的基帶視頻數據和音頻數據。
CM服務器33是用以存儲要在從材料服務器32復制的主要部分節目之間插入的商業廣告,并且在與節目編輯表上的時間表一致的定時處輸出由廣播系統控制器31指定的商業廣告的服務器。作為商業廣告從CM服務器33中輸出的視頻數據和音頻數據提供給矩陣轉換塊34。在圖2A到2C所示的例子中,商業廣告CM1、商業廣告CM2和商業廣告CM3記錄在CM服務器33中。存儲在CM服務器33中的視頻數據和音頻數據是沒有壓縮編碼的基帶視頻數據和音頻數據。
矩陣轉換塊34有用于路由如實況體育廣播和新聞節目等的實況節目、從材料服務器32輸出的主要節目以及從CM服務器33輸出的商業廣告節目的矩陣電路。該矩陣轉換塊34還有一切換電路,用于在與廣播系統控制器所決定的節目編輯表上的時間表一致的定時處,連接和切換從材料服務器32供給的主要節目和從CM服務器33供給的商業廣告節目。通過使用這樣的切換電路來切換主要節目和CM節目,可生成圖2A中所示的傳輸節目PGOLD。
MPEG編碼器塊35是用于根據MPEG2標準對從矩陣轉換塊所輸出的基帶視頻數據和音頻數據編碼的塊,并且有多個視頻編碼器和音頻編碼器。
多路復用器36對從MPEG編碼器塊35輸出的傳輸數據流的九條通道進行多路復用,從而生成一個多路傳輸數據流。因此,在多路傳輸數據流中,包括九個通道的編碼的視頻基本數據流的傳輸數據流分組和包括九個通道的編碼的音頻基本數據流的傳輸數據流分組以一種混合的方式共存。
調制電路37執行傳輸數據流的QPSK調制,并且通過傳輸線將調制數據發送到地方電臺40和家庭61。
現將參照圖7描述地方電臺40的全面結構。
地方電臺40是用以為地方觀眾編輯從關鍵電臺發送來的普通電視節目的廣播電臺,并將為地方觀眾編輯的電視節目播送給每個家庭。地方電臺40包括廣播系統控制器41、解調電路42、多路分解器43、數據流轉換電路44、材料服務器46、CM服務器47、編碼器塊48、數據流服務器49、數據流接合器50、數據流處理器51、多路復用器52和調制電路53。
廣播系統控制器41是用以綜合管理和控制在地方電臺提供的諸如解調電路42、多路分解器43、數據流轉換電路44、材料服務器46、CM服務器47、編碼器塊48、數據流服務器49、數據流接合器50、數據流處理器51、多路復用器52和調制電路53等的所有單元和電路的系統,類似于關鍵電臺30的廣播系統控制器31。在類似于關鍵電臺30的廣播系統控制器31的廣播系統控制器41中,登記一節目編輯表,用以管理通過將在地方電臺制作的節目和CM插入到從關鍵電臺30提供的傳輸節目中而得到的編輯好的電視節目的播出時間。按照這個節目編輯表,廣播系統控制器41控制以上所描述的單元和電路。
解調電路42通過傳輸線執行從關鍵電臺30發送的傳輸節目的QPSK解調,從而生成傳輸數據流。
多路分解器43對從解調電路42輸出的傳輸數據流進行多路分解以便生成九條通道的傳輸數據流,并且將每個通道的傳輸數據流輸出到數據流轉換電路44。總之,多路分解器43執行關鍵電臺30的多路復用器36所執行處理過程的相反過程。
數據流轉換電路44是用以將從多路分解器43提供的傳輸數據流轉換成基本數據流的形式的電路。
材料服務器46是存儲作為電視節目為地方觀眾廣播的娛樂節目、新聞節目等的視頻數據和音頻數據的服務器。CM服務器47是用以存儲要插入到由關鍵電臺30提供的主要節目之間的地方商業廣告的視頻數據和音頻數據的服務器。存儲在材料服務器46和CM服務器47中的視頻數據和音頻數據是壓縮編碼后的基帶視頻數據和音頻數據。
編碼器塊48是用以將材料服務器46和CM服務器47提供的多個通道的視頻數據和多個通道的音頻數據進行編碼的塊,并且具有對應于多個通道的多個視頻編碼器和多個音頻編碼器。編碼器塊48和關鍵電臺的MPEG編碼器塊之間的不同之處是,地方電臺40的編碼器塊48輸出基本數據流,而關鍵電臺30的MPEG編碼器塊35輸出傳輸數據流。然而,編碼器塊48的實際功能和處理過程類似于關鍵電臺30的MPEG編碼器塊35的功能和處理過程。從編碼器塊48輸出的多個通道的基本數據流中,三個通道的基本數據流供給數據流服務器49,剩余通道的基本數據流供給數據流接合器50。
數據流服務器49接收編碼器塊提供的三個通道的基本數據流。然后數據流服務器49將處于數據流狀態的基本數據流記錄到可任意讀取的記錄媒體上,然后在廣播系統控制器41的控制下從可任意讀取的記錄媒體復制基本數據流。
數據流接合器50是用于路由編碼器塊48和數據流服務器49所提供的多個基本數據流,然后將路由后的基本數據流輸出到預定的輸出線,并且在數據流的級別將關鍵電臺30提供的基本數據流和在地方電臺40制作的基本數據流接合的塊。接下來將詳細描述數據流接合器50的處理過程。
數據流轉換電路51是用以接收從數據流接合器50輸出的作為接合數據流的基本數據流,并且將該基本數據流轉換成傳輸數據流的電路。
類似于關鍵電臺30的多路復用器36,多路復用器52對從數據流轉換電路輸出的九個通道的傳輸數據流進行多路復用,從而生成一個多路傳輸數據流。
調制電路53執行傳輸數據流的QPSK調制,并且通過傳輸線將調制好的數據分配給每個家庭62。
圖8是用于詳細解釋關鍵電臺30的MPEG編碼器塊35和地方電臺40的編碼器塊48的結構的方框圖。因為關鍵電臺30的MPEG編碼器塊35和地方電臺40的編碼器塊48基本上具有相同的結構,將作為一個典型例子來描述關鍵電臺30的MPEG編碼器35的結構和功能。
MPEG編碼器塊35具有編碼器控制器350,用于以集中方式控制MPEG編碼器塊35的所有電路;多個MPEG視頻編碼器351-1V到351-9V,用于對提供的多個通道的視頻數據進行編碼;以及MPEG音頻編碼器351-1A到351-9A,用于根據MPEG2標準對對應于所述視頻數據的多個音頻數據進行解碼。
MPEG編碼器塊35還具有數據轉換電路352-1V到352-9V,用于將從視頻編碼器351-1V到351-9V輸出的編碼基本數據流(ES)轉換成傳輸數據流;以及數據轉換電路352-1A到352-9A,用于將音頻編碼器351-1A到351-9A輸出的編碼基本數據流(ES)轉換成傳輸數據流。MPEG編碼器塊35還具有多路復用器353-1,用于對包括用于每個傳輸數據流分組的第一通道(1ch)的視頻基本數據流的傳輸數據流和包括第一通道(1ch)的音頻基本數據流的傳輸數據流進行多路復用;多路復用器353-2,用于多路復用包括用于每個傳輸數據流分組的第二通道(2ch)的視頻基本數據流的傳輸數據流和包括第二通道(2ch)的音頻基本數據流的傳輸數據流;…;以及多路復用器353-9,對包括用于每個傳輸數據流分組的第九通道(9ch)的視頻基本數據流的傳輸數據流和包括第九通道(9ch)的音頻基本數據流的傳輸數據流進行多路復用。
圖8所示的MPEG編碼器塊35有用于對九個通道的傳輸節目進行編碼的結構。然而,通道的數據當然不限于九個而且可以更多。
MPEG編碼器塊35執行統計多路復用器的控制,以便按照要被編碼的視頻數據圖形動態地改變每個通道的傳輸節目的傳輸速率。根據這項統計多路復用技術,在一個通道的傳輸節目的畫面圖形相對簡單且僅需要少量的比特來編碼,而另一個節目的畫面圖形相對復雜且需要大量的比特來編碼的情況下,對一個通道的畫面進行編碼的比特被分配給對另一個通道的畫面進行編碼的比特中,從而實現了傳輸線的有效傳輸速率。用于動態改變每個視頻編碼器的編碼速率的方法將在下文中簡單描述。
視頻編碼器351-1V到351-9V首先從在編碼過程前作為運動補償結果所得到的諸如運動補償殘余(motion compensation residual)和AC內(intra-AC)的統計量中,生成難度數據(D1到D9),每一個難度數據指示對作為編碼目標的畫面進行編碼所要求的比特量。難度數據是表示編碼難度的信息。大的難度值表示作為編碼目標的畫面的圖形是復雜的,而小的難度值表示作為編碼目標的畫面的圖形是簡單的。該難度數據可以基于諸如在由視頻編碼器執行編碼處理時使用的AC內和運動補償殘余(ME residual)等的統計量來大體估計出。
編碼器控制器350接收分別從視頻編碼器351-1V到351-9V輸出的難度數據D1到D9,并且基于難度數據D1到D9分別計算用于視頻編碼器351-1V到351-9V的目標比特率R1到R9。具體講,編碼器控制器350能通過使用難度數據D1到D9按比例分配傳輸線的總的傳輸率Total_Rate而得到目標比特率R1到R9,如以下公式(1)所示Ri=(Di/∑DK)×Total_Rate…(1)在公式(1)中,“Ri”代表通道“i”的傳輸節目的目標比特率,而“Di”代表用于對通道“i”的傳輸節目進行編碼的難度數據。“∑”代表K=1到9通道的難度數據的總和。
編碼器控制器350將基于公式(1)計算的目標比特率R1到R9提供給相應的視頻編碼器351-1V到351-9V。目標比特率R1到R9可以為每個畫面或為每個GOP來計算。
視頻編碼器351-1V到351-9V接收從編碼器控制器350提供的目標比特率R1到R9,并且執行對應于目標比特率R1到R9的編碼過程。通過這種根據表示要被編碼的畫面的編碼難度的難度數據而動態地改變從每一個視頻編碼器輸出的編碼數據流的比特率,可以根據相對于要編碼的畫面的編碼難度來進行分配最佳的比特量,并且防止從視頻編碼器輸出的比特率的總量上溢于傳輸線的總的傳輸率Total_Rate。
數據流轉換電路352-1V到352-9V以及數據流轉換電路352-1A到352-9A都是用于將基本數據流轉換成傳輸數據流的電路。
參照圖9A到9D,將通過一個例子描述從視頻基本數據流生成傳輸數據流的過程,在該例子中,供給的源視頻數據通過視頻編碼器351-1V來編碼以便生成視頻基本數據流,然后被數據流轉換電路352-1V轉換成傳輸數據流。
圖9A顯示了供給視頻編碼器351-V的源視頻數據,而圖9B顯示了從視頻編碼器351-1V輸出的視頻基本數據流(ES)。圖9C顯示了分組的基本數據流(PES),而圖9D顯示了傳輸數據流(TS)。
按照MPEG2標準編碼的基本數據流的數據量,比如圖9B中顯示的數據流V1、V2、V3和V4,取決于視頻幀(I-畫面、P-畫面或B-畫面)的畫面類型和運動補償的存在/不存在。圖9C所示的分組的基本數據流(PES)是通過將多個基本數據流分組并在其前端增加了PES標題而生成的。例如,PES標題包括24位分組開始代碼,表示PES分組的開始;8位流ID,表示放置在PES分組的實際數據部分的數據流數據類型(例如,視頻和音頻類型);16位分組長度,表示隨后的數據長度;表示值“10”的代碼數據;標志控制部分,其中存儲有各種標志信息;8位PES標題長度,表示條件編碼部分的數據長度;以及可變長度的條件編碼部分,其中存儲稱為PTS(Presentation TimeStamp,出現時間標記)的復制輸出時間信息和稱為DTS(Decoding Time Stamp,解碼時間標記)的解碼時的時間管理信息,或存儲用以調節數據量的填充字節。
傳輸數據流(TS)是傳輸數據流分組的數據列陣,每一個傳輸數據流由4字節的TS標題和存儲有184字節的實際數據的有效載荷部分所組成。為生成傳輸數據流分組(TS分組),首先,為每個184字節確定一個PES分組的數據流,并且將這184個字節的實際數據插入到TS分組的有效載荷中。然后,4個字節的TS標題加入到這184字節的有效載荷數據中,這樣就形成了傳輸數據流分組。
在下文中,將參照圖10到17描述基本數據流的語法和結構,并將參照圖18和19詳細描述傳輸數據流的語法和結構。
圖10顯示了MPEG視頻基本數據流的語法。視頻編碼器塊35中的視頻編碼器351-1V到351-9V按照圖10所示的語法生成編碼基本數據流。在下文中描述的語法中,函數和條件語句用常規類型表示,而數據單元用粗體類型來表示。數據項描述為名稱、比特長度和表示類型和傳輸序列的助記符。
首先,將描述圖10中所示的語法中用到的函數。實際上,圖10中所示的語法是用于從視頻解碼器一端的傳輸編碼數據流提取預定意義的數據。用于視頻編碼器一端的語法是從圖10中的語法中省略if-子句和while-子句而得到的語法。
在video sequence()中的第一步描述的next start code()函數,是用于搜索比特流中描述的開始代碼的函數。按照圖10中所示語法生成的編碼數據流,首先描述了由sequence_header()函數和sequence_extension()函數定義的數據單元。sequence_header()函數是用以定義MPEG比特流的序列層的標題數據的函數。Sequence_extension()函數是用以定義MPEG比特流的序列層的擴展數據的函數。
Do{}while語句,安排在sequence_extension()函數之后,Do{}while語句表示基于do-子句的函數in{}所描述的數據單元是在while-子句為真時所確定的條件下在編碼數據流中描述的。在while-子句中用到的nextbits()函數用于將比特流中描述的比特或比特陣列與參考數據單元進行比較。在圖10中顯示的語法的例子中,nextbits()函數將比特流中的比特陣列與表示視頻序列的末端的sequence_end_code進行比較。當比特流中的比特陣列和sequence_end_code并不互相一致時,while-子句的條件變為真。因此,安排在sequence_extension()函數之后的do{}while語句,表示在do-子句中的函數所定義的數據單元是當表示視頻序列的末端的sequence_end_code沒有在比特流中出現時在編碼比特流中描述的。
在編碼比特流中,由sequence_extension()函數定義的每個數據單元后面是由extension_and_user_data(0)定義的數據單元。extension_and_user_data(0)函數是用于以MPEG比特流的序列層定義擴展數據和用戶數據的函數。
安排在extension_and_user_data(0)函數之后的Do{}while語句,Do{}while語句函數表示基于do-子句的函數in{}而描述的數據單元是在比特流中描述的。在while-子句中使用的nextbits()函數是用以確定比特流中出現的比特或比特陣列與picture_start_code或group_start_code之間的一致性的函數。如果出現在比特流中的比特或比特陣列與picture_start_code或group_start_code互相一致,則由while-子句定義的條件變為真。因此,這個do{}while語句表示如果picture_start_code或,oup_start_code出現在編碼比特流中,則在do-子句中的函數定義的數據單元的代碼描述在開始代碼之后。
在這個do-子句的第一步描述的if-子句表示這樣的條件,如,group_start_code出現在編碼比特流中。如果if-子句的條件為真,則由group_of_picture_header()函數和extension_and_user_data(1)函數定義的數據單元依次描述在編碼比特流中的group_start_code之后。
這個group_of_picture_header()函數是用于定義MPEG編碼比特流的GOP層的標題數據的函數。Extension_and_user_data(1)函數是用于定義MPEG編碼比特流的GOP層的擴展數據和用戶數據的函數。
而且,在該編碼比特流中,由group_of_picture_header()函數和extension_and_user_data(1)函數定義的數據單元后面緊跟著由picture_header()函數和picture_coding_extension()函數定義的數據單元。當然,如果以上描述的if-子句的條件不是真,則將描述由group_of_picture_header()函數和extension_and_user_data(1)函數定義的數據單元。因此,緊接著由extension_and_user_data(0)函數定義的數據單元,描述了由picture_header()函數、picture_coding_extension()函數和extension_and_user_data(2)函數定義的數據單元。
這個picture_header()函數是用于定義MPEG編碼比特流的畫面層的標題數據的函數。picture_coding_extension()函數是用于定義MPEG編碼比特流的畫面層的第一擴展數據的函數。Extension_and_user_data(2)函數是用于定義MPEG編碼比特流的畫面層的擴展數據和用戶數據的函數。由extension_and_user_data(2)函數定義的用戶數據是在畫面層中描述的數據并且可為每個畫面描述。因此,在本發明中,時間代碼信息被描述為由extension_and_user_data(2)函數定義的用戶數據。
在編碼比特流中,畫面層的用戶數據后面緊接著由picture_data()函數定義的數據單元。Picture_data()函數是用于描述關于限波層(slice layer)和宏塊層的數據單元的函數。
緊接著picture_data()函數描述的while-子句是用于決定在while-子句為真時所描述的條件下的下一個if-子句的條件。用在while-子句中的nextbits()函數是用于決定picture_start_code或group_start_code是否描述在編碼比特流中的函數。如果picture_start_code或group_start_code是在比特流中描述的,則這個while-子句所定義的條件變為真。
下一個if-子句是用于決定sequence_end_code是否是在編碼比特流中描述的條件句。它表示如果沒有描述sequence_end_code,則描述由sequence_header()函數和sequence_extension()函數所定義的數據單元。因為sequence_end_code是表示編碼視頻數據流的序列的末端的編碼,所以只要編碼數據流沒有結束,就將描述sequence_header()函數和sequence_extension()函數所定義的數據單元。
由sequence_header()函數和sequence_extension()函數所定義的數據單元與視頻數據流序列的開端描述的sequence_header()函數和sequence_extension()函數所定義的數據單元是完全相同的。在數據流中這樣描述相同數據是由于以下原因。即,如果比特流接收裝置在數據流的中間點(例如,對應于畫面層的比特流部分)開始接收,就不會接收到序列層的數據而且不會對數據流進行解碼。描述相同數據的原因是為了防止這種情況。
緊接著由最后一個sequence_header()函數和sequence_extension()函數所定義的數據單元,即在數據流的最后部分,描述了表示序列末端的32-位sequence_end_code。
現在將詳細描述sequence_header()函數、sequence_extension()函數、extension_and_user_data(0)函數、group_of_picture_header()函數和extension_and_user_data(1)函數。
圖11描述了sequence_header()函數的語法。由sequence_header()函數所定義的數據單元包括sequence_header_code、sequence_header_present_flag、horizontal_size_value、vertical_size_value、aspect_ratio_information、frame_rate_code、bit_rate_value、marker_bit、vbv buffer size_value、constrained_parameter_flag、load_intra_quantizer_matrix、intra_quantizer_matrix、load_non_intra_quantizer_matrix和non_intra_quantizer_matrix。
Sequence_header_code是表示序列層的開始同步代碼的數據。Sequence_header_present_flag是表示sequence_header中的數據是合法還是非法的數據。Horizontal_size_value是由畫面的水平像素數的低12位組成的數據。Vertical_size_value是由畫面的垂直線數的低12位組成的數據。Aspect_ratio_information是表示像素的縱橫比或顯示屏的縱橫比的數據。Frame_rate_code是表示畫面的顯示周期的數據。Bit_rate_value是限制生成的比特量的比特率的低18位(大約每秒400bps)的數據。Marker_bit是為防止開始代碼模擬(emulation)而要插入的數據。Vbv_buffer_size_value是決定用以控制生成的代碼量的虛擬緩沖器(視頻緩沖器檢驗器)的大小的值的低10位數據。Constrained_parameter_flag是表示每個參數都在其限制內的數據。Load_intra_quantizer_matrix是表示存在用于MB內(intra MB)的量化矩陣數據的數據。Intra_quantizer_matrix是表示用于MB內的量化矩陣數據值的數據。Load_non_intra_quantizer_matrix是表示存在用于非MB內(non-intra MB)的量化矩陣數據的數據。Non_intra_quantizer_matrix是表示用于非MB內的量化矩陣值的數據。
圖12描述了sequence_extension()函數的語法。由sequence_extension()函數所定義的數據單元包括extension_start_code、extension_start_code_identifier、sequence_extension_present_flag、profile_and_level_indication、progressive_sequence、chroma_format、horizontal_size_extension、vertical_size_extension、bit_rate_extension、vbv_buffer_size_extension、low_delay、frame_rate_extension_n和frame_rate_extension d。
Extension_start_code是表示擴展數據的開始同步代碼的數據。Extension_start_code_identifier是表示要被發送的擴展數據的數據。Sequence_extension_present_flag是表示序列擴展中的數據是合法還是非法的數據。Profile_and_level_indication是用于指定輪廓和視頻數據的級別的數據。Progressive_sequence是表示視頻數據是依次掃描的數據的數據。Chroma_format是指定視頻數據的色差格式的數據。Horizontal_size_extension是要加入到序列標題的horizontal_size_value中的高2位數據。Vertical_size_extension是要加入到序列標題的vertical_size_value中的高2位數據。Bit_rate_extension是要加入到序列標題的bit_rate_value中的高12位數據。Vbv_buffer_size_extension是要加入到序列標題的vbv_buffer_size_value中的高8位數據。Low_delay是表示不含有B-畫面的數據。Frame_rate_extension_n是用于得到與序列標題的frame_rate_code結合的幀頻的數據。Frame_rate_extension_d是用于得到與序列標題的frame_rate_code結合的幀頻的數據。
圖13描述了extension_and_user_data(i)函數的語法。如果extension_and_user_data(i)的“i”不是2,則僅描述由user_data()函數定義的數據單元,而不描述由extension_data()函數定義的數據單元。因此,extension_and_user_data(0)函數僅描述由user_data()函數定義的數據單元。
圖14描述了group_of_picture_header()函數的語法。由group_of_picture_header()函數定義的數據單元包括group_start_code、group_of_picture_header_present_flag、time_code、closed_gop和broken_link。
Group_start_code是表示GOP層的開始同步代碼的數據。Group_of_picture_header_present_flag是表示group_of_picture_header中的數據單元是合法還是非法的數據。Time_code是表示GOP的引導畫面的序列的引導端時間的時間編碼。Closed_gop是表示GOP中的畫面能獨立于其它GOP而復制的標志數據。Broken_link是表示GOP中的引導B-畫面不能準確地復制用于編輯和作其它類似工作的標志數據。
Extension_and_user_data(1)函數是僅描述由user_data()函數定義的數據單元的函數,類似于extension_and_user_data(0)函數。
參照圖15到17,現將描述用于描述關于編碼數據流的畫面層的數據單元的picture_header()函數、picture_coding_extension()函數、extension_and_user_data(2)函數和picture_data()函數。
圖15描述了picture_header()函數的語法。由picture_header()函數定義的數據單元包括picture_start_code、temporal_reference、picture_coding_type、vbv_delay、full_pel_forward_vector、forward_f_code、full_pel_backward_vector、backwark_f_code、extra_bit_picture和extra_information_picture。
具體講,picture_start_code是表示畫面層的開始同步代碼的數據。Temporal_reference是在GOP的引導端重置的數據,帶有表示畫面顯示順序的數字。Picture_coding_type是表示畫面類型的數據。
Vbv_delay是表示VBV緩沖器的開始狀態的數據,并且為每個畫面設置。從發送端系統發送到接收端系統的編碼基本數據流的畫面是由接收端系統中提供的VBV緩沖器來緩沖的。畫面是從VBV緩沖器導出(讀出)的并且在由DTS(解碼時間標記)指定的時間提供給解碼器。由vbv_delay定義的時間是解碼目標的畫面開始從VBV緩沖器導出直到編碼目標的畫面從VBV緩沖器中導出的時間,即,直到由DTS指定的時間。在本發明的編碼數據流接合設備中,無縫接合,諸如VBV緩沖器中數據占有量不再中斷,是通過使用存儲在畫面標題中的vbv_dalay來實現的。接下來將詳細描述這種特征。
Full_pel_forward_vector是表示前向運動矢量的精確度是基于整數單元還是半像素單元的數據。Forward_f_code是表示前向運動矢量搜索范圍的數據。Full_pel_backward_vector是表示后向運動矢量的精確度是基于整數單元還是半像素單元的數據。Backward_f_code是表示后向運動矢量搜索范圍的數據。Extra_bit_picture是表示隨后的附加信息存在的標志。如果extra_bit_picture是“1”,則緊接著為extra_information_picture。如果extra_bit_picture是“0”,則沒有數據跟隨。Extra_information_picture是按照標準儲備的信息。
圖16描述了picture_coding_extension()函數的語法。由picture_coding_extensin()函數定義的數據單元包括extension_start_code、extension_start_code_identifier、f_code
、f_code
[1]、f_code[1]
、f_code[1]
、f_code[1][1]、intra_de_precision、picture_structure、top_field_first、frame_predictive_fiame_dct、concealment_motion_vectors、q_scale_type、intra_vlc_format、alternate_scan、repeat_first_field、chroma_420_type、progressive_fiame、composite_display_flag、v_axis、field_sequence、sub_carrier、burst_amplitude及sub_carrier_phase。extension_start_code是表示畫面層的擴展數據的開始的開始代碼。Extension_start_code_identifier是表示要被發送的擴展數據的編碼。F_code
是表示前向水平運動矢量的搜索范圍的數據。F_code
[1]是表示前向垂直運動矢量的搜索范圍的數據。F_code[1]
是表示后向水平運動矢量的搜索范圍的數據。F_code[1][1]是表示后向垂直運動矢量的搜索范圍的數據。Intra_dc_precision是表示DC系數的準確性的數據。Picture_structure是表示畫面結構是幀結構還是場結構的數據。在場結構的情況下,它也表示該場是較高場還是較低場。Top_field_first是表示在幀結構情況下第一場是頂場還是底場的標志。Frame_predictive_framedct是表示幀模式DCT的預測值僅僅是幀結構情況下的幀模式的數據。Concealment_motion_vectors是表示用于隱藏傳輸差錯的運動矢量是在宏塊內提供的數據。Q_scale_type是表示使用線性量化器標準還是非線性量化器標準的數據。Intra_vlc_format是表示是否將另一個二維VLC用于宏塊內的數據。Alternate_scan是指示選擇之形描述還是交替描述的數據。
Repeat_first_field是表示是否在解碼時生成重復場的標志。在解碼過程中,如果repeat_first_field為“1”,就生成重復場。如果repeat_first_field為“0”,就不生成重復場。Chroma 420 type是表示在信號格式為4∶2∶0時與下一個progressive_frame相同值的數據,而在信號格式不是4∶2∶0時表示0。Progressive_frame是表示該畫面是否被序列掃描的數據。Composite_display_flag是表示源信號是否為復合信號的數據。V_axis是當源信號為PAL系統的情況下使用的數據。Field_sequence是源信號為PAL系統的情況下使用的數據。Sub_carrier是源信號為PAL系統的情況下使用的數據。Burst_amplitude是源信號為PAL系統的情況下使用的數據。Sub_carrier_phase是源信號為PAL系統的情況下使用的數據。
Extension_and_user_data(2)函數描述當編碼比特流中存在擴展開始代碼(extension_start_code)時extension_data()函數所定義的數據單元,如圖13所示。然而,如果在比特流中不存在擴展開始代碼,在比特流中將不描述由extension_data()函數定義的數據單元。如果在比特流中存在用戶數據開始代碼(user_data_start_code),對user_data()函數定義的數據單元將緊接著entension_data()函數定義的數據單元進行描述。
圖17描述了picture_data()函數的語法。Picture_data()函數定義的數據單元是由slice()函數所定義的數據單元。然而,如果在比特流中不存在表示slice()函數的開始代碼的slice_start_code,比特流中將不描述由slice()函數定義的數據單元。
Slice()函數是描述關于分層的數據單元的函數。具體講,該函數據描述諸如slice_start_code、slice_quantiser_scale_code、intra_slice_flag、intra_slice、reserved_bits、extra_bit_slice、extra_information_slice和extra_bit_slice以及macroblock()函數定義的數據單元。
Slice_start_code是表示slice()函數定義的數據單元的開始的開始代碼。Slice_quantiser_code是表示為分層中存在的宏塊設置的量化步長的數據。然而,如果為每個宏塊設置quantiser_scale_code,將優選使用為每個宏塊設置的macroblock_quantiser_scale_coder的數據。Intra_slice_flag是表示在比特流中是否存在intra_slice和reserved_bits的標志。Intra_slice是表示在分層中是否存在非宏塊內的數據。如果分層中的任何一個宏塊都是非宏塊內,intra_slice是“0”。如果分層中的所有宏塊都是非宏塊內,intra_slice是“1”。Reserved_bits是7位數據且值為“0”。Extra_bit_slice是表示附加信息作為編碼數據流存在的標志。如果extra_information_slice存在于extra_bit_slice之后,該標志設置為“1”。如果不存在附加信息,標志設置為“0”。
Macroblock()函數是用于描述關于宏塊層的數據單元的函數。具體講,它是用于描述諸如macroblock_escape、macroblock_address_increment、及macroblock_quantiser_scale_code的數據單元,以及由macroblock_mode()函數和macroblock_vectors(s)函數定義的數據單元。
Macroblock_escape是表示參考宏塊與前一宏塊間的水平差值是否不小于34的固定比特陣列。如果參考宏塊與前一宏塊間的水平差值不小于34,在macroblock_address_increment的值上加33。Maeroblock_address_increment是表示參考宏塊與前一宏塊之間的水平差值的數據。如果在這個macro_address_increment之前存在一個macroblock_escape,macroblock_address_increment的值上增加33所得到的值變為表示參考宏塊與前一宏塊之間的實際水平差值的數據。Macroblock_quantiser_scale_code表示為每個宏塊設置的量化步長。在每個分層中,slice_quantiser_scale_code表示設置的分層的量化步長。然而,如果macroblock_quantiser_scale_code是為參考宏塊設置的,則選擇這個量化步長。
參照圖18和19,將詳細描述傳輸數據流分組的結構和傳輸數據流分組的語法。
傳輸數據流分組由4字節的標題、用于存儲各種數據和數據單元的184字節的有效載荷部分組成。
傳輸數據流分組的標題包括各種字段,比如sync_byte、transport_error_indicator、payload_unit_start_indicator、transport_priority、PID、transport_scrambling_control、adaptation_field_control、continuity_counter和adaptation_field。
Sync_byte是用于從比特流檢測同步圖形的固定8比特段。其值由固定值“01000111”(0x47)所定義。通過檢測數據流中的這個同步圖形,能夠檢測同步。
Transprot_error_indicator是1比特標志。如果該標志設為“1”,則表示在傳輸數據流分組中至少存在一位的不可校正比特差錯。
Payload_unit_start_indicator是1比特標志。它是具有用于諸如視頻/音頻數據或用以發送節目規范信息(PSI)的傳輸數據流分組的基本數據的規定意義的數據。如果傳輸數據流分組的有效載荷包括基本數據,payload_unit_start_indicator具有以下意思。如果payload_unit_start_indicator為“1”,它表示基本數據插入在傳輸數據流分組的有效載荷的開端。如果payload_unit_start_indicator為“0”,基本數據不是插入到傳輸數據流分組的有效載荷的開端。如果payload_unit_start_indicator設置為“1”,它表示僅僅一個PES分組以任意傳輸數據流分組開始。另一方面,如果傳輸數據流的有效載荷包括PSI數據,payload_unit_start_indicator具有以下意思。如果傳輸分組發送PSI部分的第一字節,payload_unit_start_indicator變為“1”。如果傳輸數據流分組不發送PSI部分的第一字節,payload_unit_start_indicator變為“0”。而且,如果傳輸數據流分組是一個零分組,payload_unit_start_indicator變為“0”。
Transport_priotity是1比特標識符,表示傳輸分組的優先權。如果transport_priority設為“1”,它表示該傳輸分組具有優先于具有相同分組標識符PID并且transport_priority不是“1”的分組的優選權。例如,通過設定transport_priority的這個分組標識符,優先權可以給于一個基本數據流中的任意分組。
Transport_scrambling_control是表示傳輸數據流分組的加優模式的2比特數據。加擾模式是表示存儲在有效載荷部分中的數據是否被加擾以及加擾類型的模式。傳輸數據流分組標題與適應字段都是標準化的,不由加擾鍵Ks加擾。因此,通過transport_scrambling_control,它能決定存儲在傳輸數據流分組中的有效載荷部分中的數據是否被量化。
Adaptation_field_control是表示適應字段和/或有效載荷排列在傳輸數據流分組的分組標題中的2比特數據。具體講,如果在分組標題中排列的只有有效載荷數據,adaptauon_field_control變為“01”。如果在分組標題中排列的只有適應字段,adaptation_field_control變為“10”。如果適應字段和有效載都排列在分組標題中,adaptation_field_control變為“11”。
Continuity_counter是表示具有被連續發送的相同的PID的分組的一部分是否丟失或轉儲(dump)的數據。具體講,continuity_counter是為每個具有相同PID的傳輸數據流分組增加的4比特字段。然而,當continuity_counter計數時,適應字段安排在分組標題中。
Adaptation_field()是用于作為選擇將與單獨數據流或填充字節有關的附加信息插入的字段。通過適應字段,所有關于單獨數據流狀態的動態變化的信息能與數據一起進行發送。
圖19描述了adaptation_field()的語法。這個adtaton_field()包括各種字段,諸如adaptation_field_length、discontinuity_counter、random_access_indicator、elementary_stream_priority_indicator、OPCR_flag、splicing_point_flag、transport_private_data_flag、adaptation_field_extension_flag、program_clock_reference(PCR)、original_program_clock_reference(OPCR)、splice_countdown、transport_private_data_length、private_data、adaptation_field_extension_length、ltw_flag(legal_time_window_flag)、piecewise_rate_flag和seamless_splice_flag。
Adaptation_field_length是表示在adaptation_field_length之后的適應字段的字節數的數據。如果adaptation_field_control為“11”,adaptation_field_length為0到182比特。如果adaptation_field_control為“10”,adaptation_field_length為183比特。同時,如果不存在足以填充傳輸數據流的有效載荷的基本數據流,則需要用于填充比特的緩沖過程。
Discontinuity_counter是表示系統時鐘基準(SCR)是否在具有相同PID的多個分組的中間部分復位并因此變得不連續的數據。如果系統時鐘基準不連續,則discontinuity_counter為“1”。如果系統時鐘基準連續,則discontinuity_counter為“0”。系統時鐘基準是基準信息,用于在對視頻和音頻數據進行解碼的MPEG解碼器中,在編碼器端想要的定時處,設定解碼器端的系統時鐘值。
Random_access_indicator是表示視頻序列標題或音頻幀的開始的數據。總之,random_access_indicator是表示在執行對數據單元的隨機存取過程中的視頻或音頻存取點(幀的開始)的數據。
Elementary_stream_priority_indicator是表示相對于具有相同PID的分組,要在傳輸數據流分組的有效載荷中發送的基本數據流數據的優先權的數據。例如,如果基本數據流含有內編碼的視頻數據,則elementary_stream_priority_indicator設置為“1”。否則,elementary_stream_priority_indicator設置為“0”。
PCR_flag是表示適應字段中是否存在PCR(program_clock_reference)數據的數據。如果在適應字段中存在PCR數據,PCR_flag設置為“1”。如果適應字段中不存在PCR數據,PCR_flag設置為“0”。這個PCR數據是用于獲取接收裝置的解碼器中發送數據的解碼過程的定時的數據。
OPCR_flag是表示適應字段中是否存在OPCR(original_program_clock_reference)數據的數據。如果在適應字段中存在OPCR數據,OPCR_flag設置為“1”。如果在適應字段中不存在OPCR數據,OPCR_flag設置為“0”。OPCR數據是用于通過接合過程從多個原始傳輸數據流重構一個傳輸數據流時使用的數據。OPCR數據是表示確定的原始傳輸數據流的PCR數據的數據。
Splicing_Point_flag是表示在適應字段中是否存在用于表示傳輸級別的編輯點(接合點)的splice_countdown的數據。如果在適應字段中存在splice_countdown,則splice_point_flag為“1”。如果在適應字段中不存在splice_countdown,則splice_point flag為“0”。
Transport_private_data_flag是表示在適應字段中是否存在描述隨機用戶數據的私有數據的數據。如果在適應字段中存在私有數據,則transport_private_data_flag設置為“1”。如果在適應字段中不存在私有數據,則transport_private_data_flag設置為“0”。
Adaptation_field_extension_flag是表示在適應字段中是否存在擴展字段的數據。如果在適應字段中存在擴展字段,則adaptation_field_extension_flag設置為“1”。如果在適應字段中不存在擴展字段,則adaptation_field_extension_flag設置為“0”。
Program_clock_reference(PCR)是指用于使接收端的時鐘狀態與發送端的時鐘狀態同步的基準時鐘。PCR數據存儲生成傳輸分組的時間。PCR數據由33比特的program_clock_reference_base和9比特的program_clock_reference_extension所組成,即,總共42比特。系統時鐘由program_clock_reference_extension從0到299計數,通過載波從299到0重置將1比特加到program_clock_reference_base。這樣就能夠進行24小時計數。
Original_program_clock_reference(OPCR)是從確定的傳輸數據流重構單個節目的傳輸數據流的數據。如果單個節目傳輸數據流被完全重構,original_program_clock_reference被復制到program_clock_reference。
Splice_countdown是表示分組的數目上升到編輯(接合過程)可在相對于具有相同PID的傳輸數據流分組的傳輸數據流分組級別上執行的點的數據。因此,在編輯可執行的接合點的傳輸數據流分組中,splice_countdown為“0”。在具有splice_countdown為“0”的傳輸分組中,接合過程可通過使傳輸數據流分組有效載荷的最后字節成為編碼畫面的最后字節來執行。
接合過程是用于接合在傳輸級別的兩個不同的基本數據流,從而生成一個新的傳輸數據流的過程。接合過程可被分為不生成代碼中斷的無縫接合和生成代碼中斷的非無縫接合。“不生成代碼中斷”意味著在最新連接的后續數據流的存取單元的解碼時間與接合前舊的數據流的存取單元的解碼時間之間不存在矛盾。“生成代碼中斷”意味著在最新連接的后續數據流的存取單元的解碼時間與接合前舊的數據流的存取單元的解碼時間之間產生矛盾。
Transport_private_data_length是表示適應字段中的私有數據的字節數的數據。
Private_data字段不是特別由標準規定,并且可以描述適應字段中的任意用戶數據。
Adaptation_field_extension_length是表示適應字段中的適應字段擴展的數據長度的數據。
Ltw_flag(legal_time_window_flag)是表示在適應字段中是否存在表示顯示窗口補償值的ltw_offset的數據。
Piecewise_rate_flag是表示在適應字段中是否存在piecewise_rate的數據。
Seamless_slice_flag是表示接合點是正常接合點還是無縫接合點的數據。如果seamless_splice_flag為“0”,它表示接合點為正常接合點。如果seamless_splice_flag為“1”,它表示接合點為無縫接合點。正常接合點位于PES分組的末端。緊接在該接合點之前的接合分組以一訪問存取結束,并且具有相同PID的傳輸分組開始于PES分組的標題。相反,無縫接合點存在于PES分組的中間點。為防止在最新接合的后續數據流的存取單元的解碼時間與接合前舊的數據流的存取單元的解碼時間之間出現矛盾,一部分舊的數據流的特征用作新的數據流的特征。
下面將參照圖20至23描述接合處理過程,該過程用于接合從關鍵電臺30發送來的數據流STOLD和在地方電臺40產生的數據流STNEW。
在圖20中,為了閘明圖7描述的地方電臺40的控制,僅顯示了多個通道中的一個通道而別的通道都被省略。在本發明中,提供了接合過程的三個實施例。現在將依次描述接合過程的第一、第二和第三實施例。
在接合過程的第一實施例中,接合過程是在這樣的情況下進行的在發送節目的編碼數據流STOLD從關鍵電臺30發送之前,要被最新插入的商業廣告CM’的編碼數據流STNEW已經生成。也就是說,提前編碼的商業廣告CM1’的數據流被插入到發送節目的商業廣告CM的編碼數據流STOLD中。通常,商業廣告重復廣播一定的時間。因此,每次廣播時都對商業廣告的視頻數據進行編碼是沒有效率的。這樣,地方商業廣告CM1’的視頻數據被編碼,而其編碼數據流STNEW存儲在數據流服務器49中。然后,當要被替代的商業廣告CM1的編碼數據流STOLD從關鍵電臺30傳來時,地方商業廣告CM1’的編碼數據流STNEW從數據流服務器49中復制,從而省略了大量時間重復對相同商業廣告進行編碼的過程。在這種情況下,接合過程將按下文中的詳細描述來執行。
首先,將描述在地方電臺40的初使化過程,該過程用于對地方商業廣告CM1’進行編碼,以便替代傳輸節目的商業廣告CM1,以及將編碼數據流STNEW存儲到數據流服務器49中。廣播系統控制器41控制CM服務器47,以再現商業廣告CM1’的視頻數據,以替代傳輸節目的商業廣告CM1。然后,編碼器481接收從CM服務器47復制的基帶視頻數據,并且將該視頻數據的每個畫面的編碼難度Di提供給編碼器控制器480。編碼器控制器480,類似于圖8中描述的編碼器控制器350,給編碼器481提供目標比特率,以使編碼器481生成適當的編碼位。編碼器481基于編碼器控制器480提供的目標比特率Ri執行編碼過程,然后生成最佳比特率的編碼基本數據流STNEW。從編碼器481輸出的編碼基本數據流STNEW提供給數據流服務器49。數據流服務器49將數據流狀態下的編碼基本數據流記錄到隨機存取記錄媒體。這樣就完成了將編碼數據流STNEW存儲到數據流服務器49的初使化過程。
然后,將描述接合處理過程,該過程用于接合從關鍵電臺發送的傳輸節目的編碼數據流STOLD和通過以上描述的初使化過程存儲在數據流服務器49中的編碼數據流STNEW。
從關鍵電臺30發送的編碼數據流STOLD由數據流轉換電路44從傳輸數據流形式轉換成基本數據流形式。轉換成基本數據流形式的編碼數據流STOLD提供給數據流接合器50。
如圖20所示,數據流接合器50包括接合控制器500、切換電路501、數據流分析電路502、數據流處理器503以及接合電路504。
在接合過程的第一實施例中,接合控制器500將切換電路501的輸入端切換到“a”,以便將數據流服務器49提供的基本數據流STNEW提供給數據流分析電路502。
數據流分析電路502是用于對編碼數據流STOLD和編碼數據流STNEW的語法進行語法分析和解析的電路。具體講,數據流分析電路502搜索編碼數據流STOLD中描述的32比特的picture_start_code,以便了解在數據流中描述有關畫面標題的信息的位置,如從圖10和15所示的編碼數據流的語法中所理解的。然后,數據流分析電路502查找3比特的picture_coding_type,它開始于picture_start_code后的11比特,以便了解畫面類型。此外,數據流分析電路502從緊接著3比特的picture_coding_type所描述的16比特的vbv_delay中了解編碼畫面的vbv_delay。
此外,數據流分析電路502搜索在編碼數據流STOLD和編碼數據流STNEW中描述的32比特的extension_start_code,以便了解在數據流中描述有關畫面編碼擴展的信息的位置,如從圖10和15所示的編碼數據流的語法中所理解的。然后,數據流分析電路502搜索1比特的top_field_first和repeat_first_field,以便了解編碼畫面的幀結構,所述top_field_first描述在picture_start_first之后的25比特,而所述repeat_first_field描述在top_field_first之后的6比特。例如,如果編碼畫面的“top_field_first”為“1”,它表示頂場暫時超前底場的幀結構。如果“top_field_first”為“0”,它表示頂場暫時落后底場的幀結構。如果編碼數據流中的標志“top_field_first”為“1”并且“repeat_first_field”為“1”,它表示可因此在解碼時從頂場生成重復場的畫面結構。如果編碼數據流中的標志“top_field_first”為“0”并且“repeat_first_field”為“1”,它表示可因此在解碼時從底場生成重復場的畫面結構。
上述的picture_coding_type、vbv_delay、top_field_first、以及repeat_first_field都是從用于每個畫面的編碼數據流提取的,并且提供給接合控制器500。提供給數據流分析電路502的基本數據流STOLD和基本數據流STNEW直接作為基本數據流STOLD和基本數據流STNEW提供給數據流處理器503。
另外,數據流分析電路502具有用于計算所提供的數據流STOLD和數據流STNEW的比特數的計數器。基于計數值和每個畫面的生成比特量,數據流分析電路502模擬分析關于每個畫面的VBV緩沖器中的數據剩余量。由數據流分析電路502計算的關于每個畫面的VBV緩沖器中的數據剩余量也提供給接合控制器500。
數據流處理器503是用于改變數據流結構、數據流STOLD和數據流STNEW的數據單元和標志的電路,以使由數據流STOLD和數據流STSPL接合生成的接合數據流STSPL變為無縫數據流。現在將參照圖21A到21B描述由數據流處理器503執行的特定處理過程。
圖21A顯示了從關鍵電臺30提供的原始數據流STOLD,和VBV緩沖器中的數據流STOLD的數據占有量的軌跡。圖21B顯示了存儲在數據流服務器49中的替代數據流STNEW,和VBV緩沖器中的數據流STNEW的數據占有量的軌跡。圖21C顯示了通過接合接合點SP1和SP2的數據流STOLD和數據流STNEW所得到的接合數據流STSPL,以及VBV緩沖器中的接合數據流STSPL的數據占有量的軌跡。在圖21A中,示出了DTS(解碼時間標記)。SP1vbv表示在VBV緩沖器中的數據占有量的軌跡上的第一接合點。SP2vbv表示在VBV緩沖器中的數據占有量的軌跡上的第二接合點。VO(I6)表示當畫面B5從VBV緩沖器中導出時在VBV緩沖器上緩沖的畫面I6的數據量。GB(I6)表示畫面I6的生成的比特量。VD(I6)表示畫面I6的vbv_delay的值。VO(B7)表示當畫面I6從VBV緩沖器中導出時在VBV緩沖器上緩沖的畫面B7的數據量。GB(B11)表示畫面B11的生成的比特量。VD(I12)表示畫面I12的vbv_delay的值。VO(I12)表示當B11從VBV緩沖器中導出時在VBV緩沖器中緩沖的畫面I12的數據量。在圖21B中,GB(I6’)表示畫面I6’的生成的比特量。VD(I6’)表示畫面I6’的vbv_delay的值。VO(I6’)表示在VBV緩沖器中的第一接合點SP1vbv在VBV緩沖器上緩沖的畫面I6’的數據量。GB(B11’)表示畫面B11’的生成的比特量。VO(I12’)表示在VBV緩沖器中的第二接合點SP2vbv在VBV緩沖器上緩沖的畫面B12’的數據量。在圖21C中,GB(I6”)表示畫面I6”的生成的比特量,對它進行處理可使接合數據流STSPL變為無縫數據流。VD(I6”)表示畫面I6”的vbv_delay的值。GB(B11”)表示畫面B11”的生成的比特量,對它進行處理可使接合數據流STSPL變為無縫數據流。
原始數據流STOLD是在關鍵電臺30編碼的數據流,而替代數據流STNEW是在地方電臺40編碼的數據流。因此,數據流STOLD和數據流STNEW是通過它們各自的視頻編碼器分別編碼的。也就是說,數據流STOLD中的第一畫面I6的vbv_delay的值VD(I6)與數據流STNEW中的第一數據流I6’的vbv_delay的值VD(I6’)并不相同。在這種情況下,在VBV緩沖器中的數據流接合點SP1vbv的時刻,VBV緩沖器中的原始數據流STOLD的數據占有量VO(I6)與VBV緩沖器中的替代數據流STNEW的數據占有量VO(I6’)互不相同。
如本發明的背景技術中所描述的,如果數據流STOLD和數據流STNEW在接合點SP1簡單接合,則VBV緩沖器中的簡單接合的數據流的數據占有量變得不再連續或生成上溢/下溢。
因此,在數據流接合器50中,數據流處理器503根據由數據流分析電路502從數據流STOLD和數據流STNEW提取的數據單元,對于提供的數據流STOLD和數據流STNEW的數據流結構執行數據流處理,以使接合數據流STSPL在接合點變得無縫。這個過程將在下文中描述。
接合控制器500從數據流分析電路502接收信息,諸如每個畫面的picture_coding_type、vbv_delay、top_field_first和repeat_first_field,每個畫面中生成的比特量以及關于每個畫面的VBV緩沖器中的數據占有量,并將它們作為關于數據流STOLD的數據單元。在圖21A到21C中,畫面I6的vbv_delay的值表示為VD(I6),而畫面I6生成的比特量表示為GB(I6)。VBV緩沖器中的畫面I6的數據占有量表示為VO(I6)。
接下來,將描述由接合控制器500和數據流處理器503在接合點SP1關于VBV緩沖器執行的處理過程。
首先,如果接合控制器500已確定在接合點SP1的原始數據流STOLD的畫面I6的vbv_delay的值VD(I6)和替代數據流STNEW的畫面I6’的vbv_delay的值VD(I6’)互不相同,接合控制器500指示數據流處理器503將替代數據流STNEW中描述的畫面I6’的vbv_delay的值從VD(I6’)寫入VD(I6)。
按照來自接合控制器500的命令,數據流處理器503將替代數據流STNEW的畫面標題中描述的I6比特的vbv_delay的值從VD(I6’)重寫到VD(I6)。
在這種情況下,如果替代數據流STNEW中的vbv_delay的值簡單地從VD(I6’)重寫入VD(I6),以便按照重寫的vbv_delay從VBV緩沖器導出比特流,則畫面I6’生成的比特量不足,從而造成VBV緩沖器的下溢。這樣,接合控制器500執行將填充字節插入替代數據流STNEW的畫面I6’中的過程,以使替代數據流STNEW的畫面I6’生成的比特量GB(I6’)變為無縫接合數據流STSPL的畫面I6”生成的比特量GB(I6”)。填充字節是由虛比特“0”組成的。
為執行插入填充字節的過程,接合控制器500使用作為與數據流STOLD中的畫面I6和畫面B7有關的信息接收的VBV緩沖器中的生成的比特量GB(I6)和數據占有量VO(I6)、作為與數據流STNEW中的畫面I6’有關的信息接收的VBV緩沖器中的生成的比特量GB(I6’)和數據占有量VO(I6’),來計算要插入的填充字節的數據量。具體講,填充字節SB1[字節]是基于以下等式(2)來計算的。
SB1[比特]={GB(I6”)-GB(I6’)}/8={GB(I6)-GB(I6’)+VO(B7)-VO(B7’)}/8…(2)接合控制器500控制數據流處理器503將按照公式(2)計算的填充字節SB1插入到數據流STNEW中。
按照來自接合控制器500的命令,數據流處理器503描述插入數據流STNEW的填充字節SB1。作為填充字節應在數據流中描述的位置,最理想的位置是在編碼數據流STNEW中的畫面I6的畫面標題的開始代碼之前,但是,也可使用另一個開始代碼之前的位置。
以上描述的控制過程是由接合控制器500和數據流處理器503在接合點SP1關于VBV緩沖器執行的。
接下來,將描述由接合控制器500和數據流處理器503在接合點SP2關于VBV緩沖器執行的控制。
如果數據流STNEW和數據流STOLD是在接合點SP2簡單接合,則數據流STNEW的最后一個畫面I11’生成的比特量GB(B11’)不足,因而與數據流STNEW的第一畫面I12的VBV緩沖器中的數據占有量的軌跡不連續。結果,產生了VBV緩沖器的下溢或上溢。
因此,接合控制器500執行將填充字節插入數據流STNEW中的過程,因而數據流STNEW的最后畫面I11’生成的比特量GB(I11’)變為圖21中畫面I11”生成的比特量GB(I11”),從而實現了在VBV緩沖器中的接合點SP2vbv的VBV緩沖器的連續軌跡。
為執行插入填充字節的過程,接合控制器500使用作為與數據流STOLD中的畫面I12有關的信息接收的VO(I12)、數據流STNEW的最后畫面B11’的生成比特量GB(B11’)以及關于數據流STNEW的畫面I12’的VBV緩沖器中的數據占有量VO(I12’),來計算要插入的填充字節的數據量。具體講,填充字節SB2[字節]基于以下等式(3)來計算。
SB2[字節]={GB(B11”)-GB(B11’)}/8={VO(I12’)-VO(I12)}/8…(3)換句話說,數據占有量VO(I12’)是在最后畫面B11’從VBV緩沖器中導出之后與數據流STNEW有關的VBV緩沖器中的數據占有量。數據占有量VO(I12’)能容易地由數據流分析電路502檢測,數據流分析電路502通過計算數據流STNEW的比特數來掌握VBV的軌跡。
接合控制器500控制數據流處理器503將按照公式(3)計算的填充字節SB2插入到數據流STNEW中。
按照來自接合控制器500的命令,數據流處理器503將填充字節SB2描述為關于數據流STNEW的畫面B11’的信息。作為填充字節應被描述在數據流中的位置,最理想的位置是在編碼數據流STNEW中的畫面B11’的畫面標題的開始代碼之前。
以上描述的處理過程的控制是由接合控制器500和數據流處理器503在接合點SP2相對于VBV緩沖器執行的。
參照圖22A到22C,現在將描述由接合控制器500和數據流處理器503在接合點SP1相對于諸如top_field_first和repeat_first_field等的標志執行的處理的第一個例子。
圖22A顯示了由在關鍵電臺30制作的節目1、商業廣告CM1和節目2所組成的電視節目PGOLD的幀結構,以及通過對該電視節目PGOLD編碼得到的編碼數據流STOLD。圖22B顯示了在地方電臺40制作的替代商業廣告CM1’的幀結構,以及通過對該替代商業廣告CM1’編碼而得到的編碼數據流STNEW。圖22C顯示了通過接合原始數據流STOLD和替代數據流STNEW而生成的接合數據流STSPL,以及對該接合數據流STSPL解碼而得到的幀結構。
接合控制器500將數據流分析電路502提供的數據流STOLD中的商業廣告CM1的每個畫面的top_field_first與替代數據流STNEW中的商業廣告CM1’的top_field_first作比較。如果數據流STOLD的top_field_first與替代數據流STNEW的top_field_first相同,則使用相同的字段結構,因此不再需要對于諸如top_field_first和repeat_first_field的標志的處理過程。然而,如圖22A到22C所示,如果原始商業廣告CM1的top_field_first為“0”而替代商業廣告CM1’的top_field_first為“1”,則將發生圖6中所描述的場的中斷和復制問題。
因此,本發明的數據流接合器50對接近接合點的畫面的top_field_first和repeat_first_field進行重寫,以使不產生由接合過程生成的場的漏失和重疊的不符合MPEG標準的數據流。
在圖22A到22C所示的例子中,接合控制器500控制數據流處理器503從0到1重寫畫面P3的repeat_first_field,畫面P3具有由頂場T4和底場B4組成的幀。另外,接合控制器500控制數據流處理器503從0到1重寫畫面P9’的repeat_first_field,畫面P9’具有由頂場t10和底場b11組成的幀,從而在接合點SP2生成無縫數據流。此外,因為商業廣告CM1’通過重寫畫面P9’的repeat_first_field而從原始商業廣告CM1移位一個幀的時間,所以接合控制器500控制數據流處理器503從數據流STOLD刪除節目2的所有畫面中首先顯示在顯示器上的畫面B13。
按照來自接合控制器500的指令,數據流處理器503在原始數據流STOLD中搜索關于畫面P3的picture_coding_extension的開始代碼,然后從0到1重寫其中的repeat_first_field的值。這樣,因為重復場B4’是通過對具有重寫的repeat_first_field值的畫面P3進行解碼而生成的,因而場在接合點SP1變得連續。同樣,數據流處理器503在替代數據流STOLD中搜索關于畫面P9’的picture_coding_extension的開始代碼,并且從0到1重寫其中的repeat_first_field的值。這樣,因為重復場t10’是通過對具有重寫的repeat_first_field值的畫面P9’進行解碼而生成的,因而場在接合點SP2變得連續。同樣,數據流處理器503刪除原始數據流STOLD中的一部分,在該部分描述與畫面B13有關的數據單元,或者用空數據替代該部分。
圖23A到23C顯示了圖22A到22C中所描述的對于諸如top_field_first和repeat_first_field等標志進行處理的另一個示例。參照圖23A到23C,將描述由接合控制器500和數據流處理器503在接合點SP1和SP2對諸如top_field_first和repeat_first_field等標志進行處理的第二個例子。
在圖23A到23C所示的例子中,接合控制器500控制數據流處理器503從1到0重寫由頂場t5和底場b6組成的畫面B7’的top_field_first,并且從0到1重寫畫面B7’的repeat_first_field,以使在接合點SP1的節目1和商業廣告CM1’之間的銜接口的場變為連續。另外,接合控制器500控制數據流處理器503從1到0重寫由頂場T11和底場B11組成的畫面B13的top_field_first,以使接合點SP2的商業廣告CM1’和節目2之間的銜接口的場變得連續。而且,接合控制器500控制數據流處理器503從1到0重寫由頂場T12和底場B12所組成的畫面B14的top_field_first,并且從1到0重寫repeat_first_field。
在接合控制器500的控制下,數據流處理器503在替代數據流STNEW中搜索關于畫面B7’的picture_coding_extension的開始代碼。然后數據流處理器503從1到0重寫數據流中的top_field_first并且從0到1重寫repeat_first_field。這樣,通過對具有重寫的top_field_field和repeat_first_field的值的畫面B7’進行解碼,底場b6的顯示時間移位了一個幀,并且生成重復場b6’。因而場在接合點SP1變為連續。同樣,數據流處理器503在原始數據流STOLD中搜索關于畫面B13的picture_coding_extension的開始代碼,并且從1到0重寫其中的top_field_first。另外,數據流處理器503從1到0重寫關于原始數據流STOLD中的畫面B14的top_field_first,并且從1到0重寫repeat_first_field。這樣,因為通過對具有重寫的top_field_first和repeat_first_field的值的畫面B13和B14進行解碼,使底場B11和B12的顯示時間移位一個幀,所以場在接合點SP2變得連續。
比較一下圖22A到22C所示的處理的第一個例子和圖23A到23C所示的處理的第二個例子。從圖22C可知,因為在替代商業廣告CM1’的開端顯示的畫面B7從在原始商業廣告CM1的開端顯示的畫面B7移位了一個場,所以替代商業廣告CM1’的顯示時間延遲了一個場。一個場的顯示延遲很難用肉眼看出。然而,因為廣播電臺通過廣播客戶公司的商業廣告而獲得利潤,所以可能會要求廣播電臺在沒有任何延遲的情況下精確地廣播商業廣告,而不是廣播諸如節目1的主要節目。在這種精確要求顯示時間的情況下,圖23A到23C所示的處理的第二個例子是有效的。如同圖23A到23C所示的處理的第二個例子,通過重寫畫面B7’的top_field_first和repeat_first_field的值,替代商業廣告CM1’的第一畫面B7’能精確地顯示,而沒有任何從原始商業廣告CM1的第一個顯示畫面的延遲。
總之,從數據流處理器503輸出的數據流STNEW的VBV緩沖器中的數據占有量的軌跡與VBV緩沖器中的數據流STOLD的數據流占有量的軌跡是一致的,并且具有相對于場圖形/幀圖形的一致性。因此,通過基于來自接合控制器500的控制信號對接合電路504的切換操作進行控制,通過連接接合點SP1的數據流STOLD之后的數據流STNEW和連接接合點SP2的數據流STNEW之后的數據流STOLD生成了接合數據流STSPL。在接合數據流STSPL中的接合點SP1和SP2,VBV緩沖器中的數據占有量的軌跡是連續的并且場圖形/幀圖形也是連續的。
現在將描述接合過程的第二個實施例。接合過程的第二個實施例是關于在下列情況下執行的接合過程當傳輸節目的編碼數據流STOLD從關鍵電臺30發送時,要被最新插入的商業廣告CM1’被編碼生成編碼數據流STNEW。即,分析從關鍵電臺30發送的傳輸節目的編碼數據流STOLD,并且基于分析結果對最新插入的商業廣告CM1’進行編碼。
首先,從關鍵電臺30發送的編碼數據流STOLD由數據流轉換電路44從傳輸數據流形式轉換成基本數據流換形式。轉換成基本數據流形式的編碼數據流STOLD提供給數據流接合器50的數據流分析電路502。
數據流接合器50的數據流分析電路502是用于分析編碼數據流STOLD的數據流語法的電路。在接合過程的第二個實施例中,數據流分析電路502僅分析編碼數據流STOLD的語法而不分析替代數據流STNEW的語法。
具體講,數據流分析電路502搜索原始數據流STOLD中描述的32比特的picture_start_code,以便了解與畫面標題有關的信息在數據流中描述的位置,如從圖10和15中所示的編碼數據流的語法中所理解的。然后,數據流分析電路502搜索開始于picture_start_code之后的11比特的3比特的picture_coding_type,以便了解畫面類型。而且,數據流分析電路502從緊接著3比特的picture_coding_type所描述的16比特的vbv_delay中,了解編碼畫面的vbv_delay。
另外,數據流分析電路502搜索編碼數據流STOLD中描述的32比特的extension_start_code,以便了解數據流中與畫面編碼擴展有關的信息的描述位置,如從圖10和15中所示的編碼數據流的語法中所理解的。然后,數據流分析電路502搜索在picture_start_code之后25比特描述的1比特的top_field_first,和在top_field_first之后6比特描述的repeat_first_field,以便了解編碼畫面的幀結構。
數據流分析電路502通過接合控制器500給廣播系統控制器41提供數據單元,諸如從原始數據流STOLD為每個畫面提取的picture_coding_type、vbv_delay、top_field_first以及repeat_first_field。沒有必要發送原始數據流STOLD的所有畫面的數據單元。僅發送諸如對應于發送節目的商業廣告CM1的畫面的picture_coding_type、vbv_delay、top_field_first以及repeat_first_field就足夠了。
廣播系統控制器41控制CM服務器47,以再現CM1’的視頻數據,從而取代傳輸節目的商業廣告CM。另外,廣播系統控制器41給編碼器塊48的編碼控制器480提供從原始數據流STOLD提取的picture_coding_type、vbv_delay、top_field_first以及repeat_first_field。
編碼器控制器480控制編碼器481利用從廣播系統控制器41提供的picture_coding_type、vbv_delay、top_field_first和repeat_first_field對替代商業廣告CM1’的基帶視頻數據進行編碼。也就是說,對替代商業廣告CM1’進行編碼,以使原始商業廣告CM1的編碼數據流STOLD的picture_coding_type、vbv_delay、top_field_first和repeat_first_field與通過對替代商業廣告CM1’進行編碼得到的數據流STNEW的picture_coding_type、vbv_delav、top_field_first和repeat_first_field變得彼此完全相同。結果,生成了具有與原始商業廣告CM1的編碼數據流STOLD的picture_coding_type、vbv_delay、top_field_first和repeat_first_field完全相同的picture_coding_type、vbv_ delav、top_field_first和repeat_first_field的編碼數據流STNEW。
接合控制器500將切換電路501的輸入端切換到“b”,以便將從編碼器481輸出的基本數據流STNEW提供給數據流分析電路502。在接合過程的第二個實施例中,因為數據流分析電路502僅分析編碼數據流STOLD的語法而不分析替代數據流STNEW的語法,數據流STNEW在沒有由數據流分析電路502進行分析的情況下原樣輸出。
在接合過程的第二個實施例中,因為不需要用于改變從數據流分析電路502輸出的數據流STOLD和數據流STNEW中的數據單元的數據流處理,數據流處理器503僅執行用于實現數據流STOLD和數據流STNEW之間的幀同步的同步過程(或幀同步)。具體講,數據流處理器503有用于若干幀的FIFO緩沖器,并且將數據流STOLD緩沖到FIFO緩沖器中,直到替代數據流STNEW從編碼器481輸出。因而能實現數據流STOLD和數據流STNEW之間的幀同步。被處理用于幀同步的數據流STOLD和數據流STNEW提供給接合電路504。
接合控制器500控制接合電路504的切換,以便使數據流STNEW在接合點SP1連接到數據流STOLD之后,并且使數據流STOLD在接合點SP2連接到數據流STNEW之后。結果,從接合電路504輸出接合數據流STSPL。
盡管數據流STOLD和數據流STNEW是由接合電路504簡單切換的,VBV緩沖器中的接合數據流的數據占有量的軌跡是連續的而且接合點的幀圖形也是連續的。其原因如下。即,因為數據流STNEW是基于對原始數據流STOLD的語法分析結果被編碼的,所以生成了同原始數據流STOLD一致的數據流STNEW。因此,VBV緩沖器中的接合數據流STSPL的軌跡與VBV緩沖器中的原始數據流的數據占有量的軌跡完全相同,而且生成的接合數據流STSPL的幀結構與原始數據流STOLD的幀結構相同完全。
因此,在第二個實例中,對從關鍵電臺發送的原始編碼數據流STOLD的語法進行分析,并且根據分析結果對替代商業廣告CM1’進行編碼,使其具有與編碼數據流STOLD相同的數據流結構和編碼參數。因此,在接合分別生成的編碼數據流STOLD和編碼數據流STNEW的過程中,能容易地實現編碼數據流STOLD和編碼數據流STNEW之間的一致性。結果,能生成符合MPEG標準的無縫接合的數據流STSPL。
現在將描述接合過程的第三個實施例。在接合過程的第三個實施例中,用于對原始商業廣告CM1的編碼數據流和替代商業廣告CM1’的編碼數據流進行編碼的編碼參數,是在生成原始商業廣告CM1的編碼數據流STOLD和替代商業廣告CM1’的編碼數據流STNEW之前提前決定的,并且原始商業廣告CM1和替代商業廣告CM1’是基于預定的編碼參數進行編碼的。例如,編碼參數是由已經描述的picture_coding_type、vbv_delay、top_field_first、repeat_first_field和生成的比特量所表示的信息。
首先,就用于對原始商業廣告CM1進行編碼的編碼參數來說,picture_coding_type、vbv_delay、top_field_first和repeat_first_field是在關鍵電臺30決定的。關鍵電臺30的廣播系統控制器31將編碼參數提供給MPEG編碼器塊35的編碼器控制器350,也將編碼參數通過通信線路提供給每個地方電臺40的廣播系統控制器41。
編碼控制器350控制視頻編碼器351-1V通過使用從廣播系統控制器31提供的諸如picture_coding_type、vbv_delay、top_field_first和repeat_first_field等的編碼參數對原始商業廣告CM1的視頻數據進行編碼。也就是說,從視頻編碼器351-1V輸出的編碼數據流STOLD是基于諸如picture_coding_type、vbv_delay、top_field_first和repeat_furst_field等的編碼參數的數據流。
從視頻編碼器351-1V輸出的編碼數據流STOLD通過多路復用器36和調制電路37提供給地方電臺40。
另一方面,地方電臺40將諸如從關鍵電臺30的廣播系統控制器31提供的picture_coding_type、vbv_delay、top_field_first和repeat_first_field等的編碼參數提供給編碼器塊48的編碼器控制器480。
編碼控制器480控制編碼器481使用從廣播系統控制器41提供的picture_coding_type、vbv_delay、top_field_first和repeat_first_field等的編碼參數對替代商業廣告CM’的基帶視頻數據進行編碼。也就是說,生成具有與原始商業廣告CM的編碼數據流STOLD的picture_coding_type、vbv_delay、top_field_first和repeat_first_field完全相同的picture_coding_type、vbv_delay、top_field_first和repeat_first_field的數據流STNEW。
接合控制器500將切換電路501的輸入端切換到“b”,以便將從編碼器481輸出的基本數據流STNEW提供給數據流分析電路502中。在接合過程的第三個實施例中,數據流分析電路502并不執行對編碼數據流STOLD和編碼數據流STNEW的語法分析。
在接合過程的第三個實施例中,因為不需要用于改變從數據流分析電路502輸出的數據流STOLD和數據流STNEW中的數據單元的數據流處理,所以數據流處理器503僅執行用于實現數據流STOLD和數據流STNEW之間的幀同步的同步過程(或幀同步)。具體講,數據流處理器503具有用于多個幀的FIFO緩沖器,并且緩沖FIFO緩沖器中的數據流STOLD直到替代數據流STNEW從編碼器481中輸出。因此,能實現數據流STOLD和數據流STNEW之間的幀同步。被處理用于幀同步的數據流STOLD和數據流STNEW提供給接合電路504。
接合控制器500控制接合電路504的切換,以便使數據流STNEW連接在接合點SP1的數據流STOLD之后,并且數據流STOLD連接在接合點SP2的數據流STNEW之后。因此,從接合電路504輸出接合數據流STSPL。
盡管數據流STOLD和數據流STNEW是由接合電路504簡單切換的,VBV緩沖器中的接合數據流STSPL的數據占有量的軌跡是連續的且接合點的幀圖形也是連續的。這是因為原始商業廣告CM1和替代商業廣告CM1’是通過使用諸如ptcture_coding_type、vbv_delay、top_field_first和repeat_first_field等的編碼參數來編碼的,這些編碼參數是由關鍵電臺30的廣播系統控制器31提前決定的。
因此,在第三個實施例中,編碼參數是在關鍵電臺和地方電臺之間預定的。然后,在關鍵電臺基于預定的編碼參數生成原始商業廣告CM1的編碼數據流STOLD,并在關鍵電臺基于預定的編碼參數生成替代商業廣告CM1’的編碼數據流STNEW。因此,在接合分別生成的編碼數據流STOLD和編碼數據流STNEW的過程中,能容易地實現編碼數據流STOLD和編碼數據流STNEW之間的一致性。因而能生成符合MPEG標準的無縫接合的數據流STSPL。
權利要求
1.一種編碼數據流接合設備,用以在接合點接合第一編碼數據流和第二編碼數據流,該設備包括數據流分析裝置,用于分析所述第一編碼數據流的語法,從而提取所述第一編碼數據流的編碼參數;及接合裝置,用于根據由所述數據流分析裝置得到的所述第一編碼數據流的編碼參數來改變所述第二編碼數據流的編碼參數,以便使所述第一編碼數據流和所述第二編碼數據流在所述接合點無縫連接,然后接合所述第一編碼數據流和帶有改變后的編碼參數的所述第二編碼數據流。
2.如權利要求1所述的編碼數據流接合設備,其中由所述數據流分析裝置所提取的所述編碼參數是表示VBV緩沖器的初使狀態的數據vbv_delay。
3.如權利要求2所述的編碼數據流接合設備,其中所述接合裝置將所述第二編碼數據流中的接合點之后的第一個畫面的vbv_delay值重寫成所述第一編碼數據流中的接合點之后的第一個畫面的vbv_delay值。
4.如權利要求3所述的編碼數據流接合設備,其中所述接合裝置將填充字節插入所述第二編碼數據流中,以便使所述第二編碼數據流中的所述接合點之后的第一個畫面的生成比特量變為對應于重寫的vbv_delay值的比特量。
5.如權利要求4所述的編碼數據流接合設備,其中所述接合裝置根據所述第一編碼數據流中的接合點之后的第一個畫面的生成比特量,和所述第二編碼數據流中的接合點之后的第一個畫面的生成比特量,計算所述填充字節的數據量。
6.如權利要求5所述的編碼數據流接合設備,其中所述接合裝置根據所述第一編碼數據流的接合點的VBV緩沖器的數據占有量和所述第二編碼數據流的接合點的VBV緩沖器的數據占有量,計算所述填充字節的數據量。
7.如權利要求1所述的編碼數據流接合設備,其中由所述數據流分析裝置提取的所述編碼參數是表示在解碼時是否生成重復場的標志repeat_first_field。
8.如權利要求7所述的編碼數據流接合設備,其中所述接合裝置改變所述第一編碼數據流中的接合點之前的畫面的repeat_first_field值,或改變所述第二編碼數據流中的接合點之前的畫面的repeat_first_field值,以便使所述第一編碼數據流中的接合點之前的畫面的幀結構和所述第二編碼數據流中的接合點之前的畫面的幀結構變得相互一致。
9.如權利要求1所述的編碼數據流接合設備,其中由所述數據流分析裝置提取的所述編碼參數是表示第一場是頂場還是底場的標志top_field_first。
10.如權利要求9所述的編碼數據流接合設備,其中所述接合裝置改變所述第一編碼數據流中的接合點之前的畫面的top_field_first值,或改變所述第二編碼數據流中的接合點之前的畫面的top_field_first值,以便使所述第一編碼數據流的接合點之前的畫面的幀結構和所述第二編碼數據流的接合點之前的畫面的幀結構變得相互一致。
11.一種編碼數據流接合方法,用于在接合點接合第一編碼數據流和第二編碼數據流,該方法包括數據流分析步驟,用于分析所述第一編碼數據流的語法,從而提取所述第一編碼數據流的編碼參數;以及接合步驟,用于根據在所述數據流分析步驟得到的所述第一編碼數據流的編碼參數來改變所述第二編碼數據流的編碼參數,以便使所述第一編碼數據流和所述第二編碼數據流在所述接合點無縫連接,然后接合所述第一編碼數據流和帶有改變后的編碼參數的所述第二編碼數據流。
12.如權利要求11所述的編碼數據流接合方法,其中在所述數據流分析步驟提取的所述編碼參數是表示VBV緩沖器的初使狀態的數據vbv_delay。
13.如權利要求12所述的編碼數據流接合方法,其中在所述接合步驟,將所述第二編碼數據流中的接合點之后的第一個畫面的vbv_delay值重寫成所述第一編碼數據流中的接合點之后的第一個畫面的vbv_delay值。
14.如權利要求13所述的編碼數據流接合方法,其中在所述接合步驟,將填充字節插入所述第二編碼數據流中,以便使所述第二編碼數據流中的所述接合點之后的第一個畫面的生成比特量變為對應于重寫的vbv_delay值的比特量。
15.如權利要求14所述的編碼數據流接合方法,其中在所述接合步驟,根據所述第一編碼數據流中的接合點之后的第一個畫面的生成比特量,和所述第二編碼數據流中的接合點之后的第一個畫面的生成比特量,計算所述填充字節的數據量。
16.如權利要求15所述的編碼數據流接合方法,其中在所述接合步驟,根據所述第一編碼數據流的接合點的VBV緩沖器的數據占有量和所述第二編碼數據流的接合點的VBV緩沖器的數據占有量,計算所述填充字節的數據量。
17.如權利要求11所述的編碼數據流接合方法,其中在所述數據流分析步驟提取的所述編碼參數是表示在解碼時是否生成重復場的標志repeat_first_field。
18.如權利要求17所述的編碼數據流接合方法,其中在所述接合步驟,改變所述第一編碼數據流中的接合點之前的畫面的repeat_first_field值,或改變所述第二編碼數據流中的接合點之前的畫面的repeat_first_field值,以便使所述第一編碼數據流中的接合點之前的畫面的幀結構和所述第二編碼數據流中的接合點之前的畫面的幀結構變得相互一致。
19.如權利要求11所述的編碼數據流接合方法,其中在所述數據流分析步驟提取的所述編碼參數是表示第一場是頂場還是底場的標志top_field_first。
20.如權利要求19所述的編碼數據流接合方法,其中在所述接合步驟,改變所述第一編碼數據流中的接合點之前的畫面的top_field_first值,或改變所述第二編碼數據流中的接合點之前的畫面的top_field_first值,以便使所述第一編碼數據流的接合點之前的畫面的幀結構和所述第二編碼數據流的接合點之前的畫面的幀結構變得相互一致。
21.一種編碼數據流生成設備,用以通過接合第一編碼數據流和第二編碼數據流在接合點生成接合的編碼數據流,該設備包括數據流分析裝置,用以分析所述第一編碼數據流的語法,從而提取所述第一編碼數據流的編碼參數;及接合裝置,用以根據所述數據流分析裝置得到的所述第一編碼數據流的編碼參數來改變所述第二編碼數據流的編碼參數,以便使所述第一編碼數據流和所述第二編碼數據流在所述接合點無縫接合,然后接合所述第一編碼數據流和帶有改變后的編碼參數的所述第二編碼數據流。
22.一種編碼數據流生成方法,用以在接合點通過接合第一編碼數據流和第二編碼數據流生成接合的編碼數據流,該方法包括數據流分析步驟,用以分析所述第一編碼數據流的語法,從而提取所述第一編碼數據流的編碼參數;及接合步驟,用以根據在所述數據流分析步驟得到的所述第一編碼數據流的編碼參數來改變所述第二編碼數據流的編碼參數,以便使所述第一編碼數據流和所述第二編碼數據流在所述接合點無縫連接,然后接合所述第一編碼數據流和帶有改變后的編碼參數的所述第二編碼數據流。
全文摘要
一種數據流轉換電路,將從主電臺發送的原始編碼數據流的數據流類型轉換成基本數據流。轉換后的原始編碼數據流提供給數據流接合器的數據流分析電路。數據流分析電路分析所接收的原始編碼數據流的語法,以從該原始編碼流中提取數據單元,如表示VBC緩沖器的初始狀態的數據“vbv-delay”、表示在解碼是否時生成重復場的標志“repeat-first-field”以及表示第一場是頂場還是底場的標志“top-field-first”,然后將這些數據單元提供給接合控制器,接合控制器又將這些數據單元提供給數據流處理器,數據流處理器根據該數據單元重寫替代編碼數據流的數據單元。
文檔編號H04J3/00GK1244325SQ9880191
公開日2000年2月9日 申請日期1998年10月5日 優先權日1997年10月3日
發明者田原勝己, 安田干太, 根岸慎治 申請人:索尼公司