一種傳輸流復用中的音頻打包基本碼流的打包方法
2023-04-23 10:53:46
專利名稱:一種傳輸流復用中的音頻打包基本碼流的打包方法
技術領域:
本發明涉及信號處理中的音視頻編解碼技術領域,尤其涉及一種傳輸流復 用中的音頻打包基本碼流的打包方法。
背景技術:
現在已經成熟應用的數字音視頻編解碼標準,如MPEG-2,以及近年出現的一 批具有代表性的國際標準,如MPEG-4、 H. 264/MPEG-4 AVC、我國自主制定的標 準AVS等,這些標準中都有一部分稱為系統部分,這部分主要討論了如何將單路 或多路基本音頻和視頻流以及其他數據組合成適合於存儲和傳輸的單路和多路 複合流。傳輸流就是系統部分定義的一種數據流,它是由一個一個的傳輸流包組 成的,每個傳輸流包的大小為188位元組或者204位元組,而傳輸流包的有效負載是 一見頻PES ( Packet ized Elementary Stream即打包基本碼流)包,音頻PES包以 及私有數據PES包等,因此好的PES包的打包方式對有效的復用非常關鍵。因為 不管是MPEG-2標準還是MPEG-4、 AVS標準中,對於傳輸流的定義也僅僅只限於 其語法的規定,並沒有規定復用器的體系結構以及如何將一路或者多路視頻和音 頻基本流復用成傳輸流的具體實現方法,因此,對於傳輸流復用器的設計,對 PES打包的設計等,設計人員有相當大的自由度。
在現有的復用方法中,音頻的PES包打包的方法, 一般有兩種, 一種是一 幀音頻數據打一個PES包,另一種就是與視頻一幀的播放時間對應的音頻數據, 例如,對於PAL制式,視頻是25幀/秒,也就是一幀的播放持續時間是40ms, 這樣對於音頻數據,就根據其採樣率和比特率,計算出其40ms的數據量,然後 將40ms的數據打包成一個PES包。目前的復用算法中, 一般PCR (Program Clock Reference)包含在視頻TS包或者專門的PCR信息包中,而不包含在音頻的TS 包中,這樣,音頻TS包的開銷除了音頻ES (Elementary Stream即基本碼流) 外,主要包含以下幾個部分TS包的包頭,PES包的包頭,以及當PES分組的
悽t據不足以填充整個TS包的有效負載字節時,在自適應域(adaptation_field ) 中填入的填充字節。當傳輸流的碼率本身不大時,我們發現按照上述兩種方法 打包音頻PES,在復用出的傳輸流中,音頻TS包中的填充字節浪費了不少帶寬。 因此,需要提供一種有效的音頻打包基本碼流的打包方法,以減少填充字
節
發明內容
本發明所要解決的技術問題是提供一種傳輸流復用中的音頻打包基本碼流 的打包方法,應用該方法復用得到的傳輸流中,音頻TS包中沒有自適應域中的 填充字節,以節省帶寬。
為了解決上述技術問題,本發明是這樣實現的 一種傳輸流復用中的音頻 打包基本碼流的打包方法,該種音頻打包基本碼流具有打包基本碼流的包頭及 音頻基本碼流數據,其中
當音頻打包基本碼流包中既不包含顯示時間標籤,也不包含解碼時間標籤 時,每個打包基本碼流包中的音頻數據大小等於184*N-9;
當音頻打包基本碼流包中僅包含顯示時間標籤時,每個打包基本碼流包中 的音頻數據大小等於184*N-15;
當音頻打包基本碼流包中既包含顯示時間標籤,又包含解碼時間標籤時, 每個打包基本碼流包中的音頻數據大小等於184*N-19;其中N為整數並且 1<N<365。
本發明由於採用了上述的技術方案,使之與現有技術相比,具有以下的優 點和積極效果
PES分組的數據足以填充整個TS包的有效負載字節時,在自適應域中不用 填入填充字節即當傳輸流的碼率本身夠大從而可節約帶寬。
具體實施例方式
以下將對本發明的實現方法作進一步的詳細描述。
在本算法中,音頻TS包中都不包含PCR信息,同時,音頻PES包包頭中的一 些標誌位為0 , 這些標誌為包括ESCR—flag , ES —rate — flag , DSM—trick—mode—flag ,additional—copy—info—flag ,PES—CRC—flag 和 PES —ex tens ion —flag。
4安照音頻PES包是否包含顯示時間標籤PTS (presentation time stamp),解 碼時間標籤DTS (decoding time stamp)將音頻PES包分為3類,第一,音頻PES包 中既不包含PTS信息,也不包含DTS,即PES包頭中的PTS—DTS —flags標誌等於OOB; 第二,音頻PES包中僅包含PTS信息,即PES包頭中的PTS-DTS — flags標誌等於 10B;第三,音頻PES包中既包含PTS信息也包含DTS信息,即PES包頭中的 PTS-DTS — flags標誌等於llB。
下面就按照這三類具體說明本發明的算法。
因為每個TS包都有4位元組大小的包頭,因此每個TS包最多有效負載的字節數
等於188減去4為184個字節。由於對於音頻TS包而言,它的有效負載就是音頻PES
包,因此,包含PES包包頭的TS包中,除了TS包的包頭的4位元組的開銷外,還有
PES包的包頭的開銷。
當PTS-DTS-flags為OOB時,音頻打包基本碼流包的打包方法如下 此時,PES包頭有9個字節,即packet — start-code—pref ix( 3個字節),stream—id
(l個字節),PES—packet —length (2個字節),optional PES Header (2個字 節)和?£3_1^&(161"_(1&1&_ Length ( l個字節)。這樣,當每個PES包中的音頻ES數 據的大小等於184頌-9 (N為整數且1〈N〈356 )時,音頻的TS包中就沒有自適應域
(adaptation—field)中填入的填充字節,N之所以要小於356是因為在音頻PES 包的包頭中有2位元組的PES-packet-length用來說明其後的PES數據的長度,該值 的最大值等於65535,因為PES包頭中的3個字節是要計入PES —packet-length的, 因此PES —packet-length = 184*N-9+3,這樣184求N-9+3〈65535,,由此可以4侏 出,N<=356。
當PTS-DTS-flags為10B時,音頻打包基本碼流包的打包方法如下 此時,PES包頭有14個字節,即packet —start — code —prefix ( 3個字節), stream—id ( l個字節),PES —packet — length ( 2個字節),optional PES Header (2個字節),PES—header — data —length ( l個字節)和PTS信息(5個字節)。這樣, 當每個PES包中的音頻ES數據的大小等於18"N-15 (N為整數且KK356 )時,音 頻的TS包中就沒有自適應域(adaptation-field)中填入的填充字節。 當PTS-DTS —flags-llB時,音頻打包基本碼流包的打包方法如下
此時,PES包頭有19個字節,即packet —start_code_prefix ( 3個字節), stream—id ( l個字節),PES_packet —length ( 2個字節),optional PES Header (2個字節),PES—header—data —length ( l個字節),PTS信息(5個字節)和DTS 信息(5個字節)。這樣,當每個PES包中的音頻ES數據的大小等於18"N-19 (N 為整數且1〈N〈356 )時,音頻的TS包中就沒有自適應域(adaptation-field)中 填入的填充字節。
當PTS-DTS-f lags為10B或11B時,需要在音頻PES包中填入PTS或者DTS, 因為音頻ES流的碼率是嚴格恆定的,因此根據音頻ES的比特率就可以計算出 ES流中第P個字節的PTS,假定ES流的第一個字節的播放時間為T, audio_bitrate為該音頻ES流的碼率,此時具體的計算方法為PTSP = (P * 8) / audio —bitrate + T。因為音頻的解碼時間和顯示時間是一致的,因此DTS的 計算方法與PTS —樣。
權利要求
1、一種傳輸流復用中的音頻打包基本碼流的打包方法,該種音頻打包基本碼流具有打包基本碼流的包頭及音頻基本碼流數據,其特徵在於當音頻打包基本碼流包中既不包含顯示時間標籤,也不包含解碼時間標籤時,每個打包基本碼流包中的音頻基本碼流數據大小等於184*N-9;當音頻打包基本碼流包中僅包含顯示時間標籤時,每個打包基本碼流包中的音頻基本碼流數據大小等於184*N-15;當音頻打包基本碼流包中既包含顯示時間標籤,又包含解碼時間標籤時,每個打包基本碼流包中的音頻基本碼流數據大小等於184*N-19;其中N為整數並且1<N<365。
2、 如權利要求1所述的傳輸流復用中的音頻打包基本碼流打包方法,其特 徵在於當音頻打包基本碼流包中僅包含顯示時間標籤時,基本碼流中第P個 字節的顯示時間標籤的計算方法即PTSp = (P * 8) / audio—bitrate + T ,其 中基本碼流的第一個字節的播放時間為T, audio-bitrate為該音頻基本碼流的 碼率。
3、 如權利要求1所述的傳輸流復用中的音頻打包基本碼流打包方法,其特 徵在於基本碼流中第P個字節的解碼時間標籤的計算方法即DTSp = (P * 8) / audio-bitrate + T,其中基本碼流的第一個字節的播放時間為T, audio-bitrate 為該音頻基本碼流的碼率。
全文摘要
本發明提出了一種傳輸流復用中的音頻打包基本碼流的打包方法。在音頻打包基本碼流包中,當PTS_DTS_flags=0B時,每個PES包中的音頻數據大小等於184*N-9;當PTS_DTS_flags=10B時,每個PES包中的音頻數據大小等於184*N-15;及當PTS_DTS_flags=11B時,每個PES包中的音頻數據大小等於184*N-19;其中N為整數且1<N<365。應用該方法復用得到的傳輸流中,音頻TS包中沒有自適應域中的填充字節,以節省帶寬。
文檔編號H04L1/00GK101170379SQ200710047238
公開日2008年4月30日 申請日期2007年10月19日 優先權日2007年10月19日
發明者萍 李, 李國平 申請人:上海廣電(集團)有限公司中央研究院