專利名稱:流媒體文件的解碼處理方法與裝置、播放設備的制作方法
技術領域:
本發明涉及多媒體技術,尤其是流媒體文件的解碼處理方法與裝置、播放設備。
背景技術:
現有技術中,通常通過如下方式制作流媒體文件通過視頻編碼器對視頻數據與字幕進行壓縮編碼,形成視頻的連續碼流,也稱為視頻基本碼流(Elementary Stream,以下簡稱ES),同時,通過音頻編碼器對音頻數據進行壓縮編碼,形成音頻的連續碼流,也稱為音頻ES ;通過打包器,分別根據需要將音、視頻ES分成長度不等的數據段,并加上包頭后按照一定的格式進行打包封裝,形成音、視頻打包基本碼流(Packet Elementary Stream,以下簡稱PES),每個PES包頭攜帶了流標識(Stream Identifiers,以下簡稱SID)、顯示時間戮(presentation time stamp,以下簡稱PTS)與解碼時間戮(Decode Time Stamp,以下簡稱DTS);通過復用器,將音頻PES與視頻PES復用在一起,按照預設規則進行排序并建立索引,再加上系統時鐘后打包形成流媒體文件的封裝碼流,具體的封裝格式包括RealNetworks公司開發的流媒體視頻文件格式(Real Media,以下簡稱RM)、音頻視頻交錯格式(Audio Video Interleaved,以下簡稱AVI)、Apple公司開發的一種音頻和視頻文件格式(QuickTime)影片格式(MOV)、動態圖像專家組(Moving Pictures Experts Group,以下簡稱MPG或MPEG)等。如圖1所示,為現有技術流媒體文件的一個制作流程示意圖。圖2為現有技術流媒體文件的一個播放流程示意圖。如圖2所示,通過如下方式對通過圖1所示流程制作的多媒體文件進行播放通過文件讀取單元獲取流媒體文件的封裝碼流;通過解復用單元根據封裝碼流包頭中的索引信息對封裝碼流進行解復用,分離出音頻PES與視頻PES,分別根據PES包頭對音頻PES與視頻PES進行拆包、解封裝,產生獨立的音頻ES與視頻ES,并按照幀順序分別送往音頻解碼器與視頻解碼器;音頻解碼器與視頻解碼器分別對音頻ES與視頻ES進行解碼,還原成原始的音頻數據與視頻數據后輸出,以便播放單元進行播放。 在實現本發明的過程中,發明人發現,上述現有技術流媒體文件的制作與播放方法至少存在以下問題對于只包含音頻或視頻的連續碼流,通常不進行打包封裝操作,而是以ES的形式形成流媒體文件后直接提供給接收端,例如,動態影像專家壓縮標準音頻層面3 (MovingPicture Experts Group Audio Layer-3,以下簡稱MP3)、音頻數據傳輸流(Audio DataTransport Stream,以下簡稱ADTS)、高級音頻編碼(Advanced Audio Coding,以下簡稱AAC)等格式的流媒體文件。由于未經過打包封裝,在接收端,便無法通過解復用單元提供的碼流信息,包括封裝碼流包頭與PES包頭中的相關信息,對ES進行索引播放,因此,在封裝碼流的播放設備中無法實現對以ES形式形成的流媒體文件的播放。
發明內容
本發明實施例所要解決的一個技術問題是提供一種流媒體文件的解碼處理方法與裝置、播放設備,以在封裝碼流的播放設備中,實現對以ES形式形成的流媒體文件播放。為解決上述技術問題,根據本發明實施例的一個方面,提供一種流媒體文件的解碼處理方法,包括讀取流媒體文件碼流,并識別讀取到的流媒體文件碼流為基本碼流或封裝碼流,所述流媒體文件碼流包括音頻文件碼流和/或視頻文件碼流;響應于流媒體文件碼流為基本碼流,基于當前幀的相關信息而非解復用單元提供的碼流信息,對當前幀數據進行解碼,得到流媒體數據,所述流媒體數據包括音頻數據或者視頻數據。根據本發明實施例的另一個方面,提供一種流媒體文件的解碼處理裝置,包括文件讀取單元,用于讀取流媒體文件碼流,并識別讀取到流媒體文件碼流為基本碼流或封裝碼流,所述流媒體文件碼流包括音頻文件碼流和/或視頻文件碼流;幀檢測單元,用于響應于流媒體文件碼流為基本碼流,從基本碼流中檢測當前幀的相關信息,并基于當前幀的相關信息確定當前幀數據;幀解碼單元,用于對幀檢測單元確定的當前幀數據進行解碼,得到流媒體數據,所述流媒體數據包括音頻數據或者視頻數據。根據本發明實施例的又一個方面,提供一種播放設備,包括外部存儲單元與文件存儲單元,還包括本發明上述實施例的流媒體文件的解碼處理裝置,以及播放單元; 所述解碼處理裝置中的控制單元,還用于響應于幀解碼單元發送的解碼結果消息,向播放單元發送播放命令;所述播放單元,用于根據所述播放命令,對外部存儲單元的緩沖區中的流媒體數據進行輸出播放,或者對外部存儲單元的緩沖區中的音頻數據與視頻數據進行輸出播放。根據本發明實施例的再一個方面,提供另一種播放設備,包括外部存儲單元與文件存儲單元,還包括本發明上述實施例的流媒體文件的解碼處理裝置,以及播放單元;所述解碼處理裝置中的控制單元,還用于響應于幀解碼單元發送的解碼結果消息,將交互存儲單元中的流媒體數據,或者交互存儲單元中的音頻數據與視頻數據,搬移到外部存儲單元的緩沖區中,并向播放單元發送播放命令;所述播放單元,用于根據所述播放命令,對所述緩沖區中的流媒體數據,或者所述緩沖區中的音頻數據與視頻數據,進行輸出播放。基于本發明上述實施例提供的流媒體文件的解碼處理方法與裝置、播放設備,可以識別當前讀取到的流媒體文件碼流為基本碼流或封裝碼流,若流媒體文件碼流為基本碼流,基于當前幀的相關信息代替解復用單元提供的碼流信息,對當前幀數據進行解碼,以得到用于輸出播放的流媒體數據,從而使在封裝碼流的播放設備中可以實現對基本碼流的解碼、播放,與現有技術相比,在同一個播放設備中實現了,采用同一個播放系統來播放封裝碼流與以ES形式形成的流媒體文件。下面通過附圖和實施例,對本發明的技術方案做進一步的詳細描述。
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。圖1為現有技術流媒體文件的一個制作流程示意圖。圖2為現有技術流媒體文件的一個播放流程示意圖。圖3為本發明流媒體文件的解碼處理方法一個實施例的流程圖。圖4為本發明流媒體文件的解碼處理方法另一個實施例的流程圖。圖5為MPEG音頻ES的一個幀結構示意圖。圖6為本發明流媒體文件的解碼處理方法又一個實施例的流程圖。圖7為本發明流媒體文件的解碼處理方法再一個實施例的流程圖。圖8為本發明流媒體文件的解碼處理裝置一個實施例的結構示意圖。圖9為本發明流媒體文件的解碼處理裝置另一個實施例的結構示意圖。圖10為本發明流媒體文件的解碼處理裝置又一個實施例的結構示意圖。圖11為本發明流媒體文件的解碼處理裝置再一個實施例的結構示意圖。圖12為本發明流媒體文件的解碼處理裝置還一個實施例的結構示意圖。
圖13為本發明播放設備一個實施例的結構示意圖。圖14為本發明播放設備另一個實施例的結構示意圖。
具體實施例方式下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。圖3為本發明流媒體文件的解碼處理方法一個實施例的流程圖。如圖3所示,該實施例的解碼處理方法包括101,讀取流媒體文件碼流,并識別讀取到流媒體文件碼流為ES或封裝碼流。其中的流媒體文件碼流具體可以是音頻文件碼流,也可以是視頻文件碼流,還可以同時包括音頻文件碼流與視頻文件碼流。示例性地,可以通過流媒體文件碼流的擴展名來識別流媒體文件碼流為ES或封裝碼流。102,響應于流媒體文件碼流為ES,基于當前幀的相關信息而非解復用單元提供的碼流信息,對當前幀數據進行解碼,得到流媒體數據。對應于流媒體文件碼流為音頻ES或者視頻ES,得到的流媒體數據具體可以是音頻數據或者視頻數據,也稱為脈沖編碼調制(Pulse Code Modulation,以下簡稱PCM)數據。本發明上述實施例提供的流媒體文件的解碼處理方法中,可以識別當前讀取到的流媒體文件碼流為ES或封裝碼流,若流媒體文件碼流為ES,基于當前幀的相關信息代替解復用單元提供的碼流信息,對當前幀數據進行解碼,以得到用于輸出播放的流媒體數據,從而使在封裝碼流的播放設備中可以實現對ES的解碼、播放,ES在同一個播放設備中實現了,采用同一個播放系統來播放封裝碼流與以ES形式形成的流媒體文件。根據本發明的一個具體實施例,在圖3所示的實施例中,響應于讀取到的流流媒體文件碼流為封裝碼流,可以對封裝碼流進行解復用,分離出音頻PES與視頻PES,分別對音頻PES與視頻PES進行拆包、解封裝,得到音頻幀與視頻幀,并提取音頻幀與視頻幀的特征信息;然后分別根據音頻幀與視頻幀的特征信息,對音頻幀與視頻幀進行解碼,得到音頻數據與視頻數據。根據本發明的另一個具體實施例,在圖3所示實施例的102中,可以從ES中檢測當前幀的相關信息,例如,當前幀的同步頭起始位置、幀長與特征信息,并基于當前幀的相關信息確定當前幀數據,對當前幀數據進行解碼,得到流媒體數據。如果現有技術要在同一個播放設備中實現對封裝碼流與以ES形式形成的流媒體文件的播放,便需要在同一個播放設備中設置兩套相互獨立的播放系統,通過兩種不同的、相互獨立的播放流程來分別播放封裝碼流與以ES形式形成的流媒體文件,這就增加了播放系統的設計難度,導致播放設備的結構復雜。本發明實施例中,若讀取到的流媒體文件碼流為封裝碼流,可以對封裝碼流進行解復用、解碼;若讀取到的流媒體文件碼流為ES,從ES中檢測當前幀的相關信息,包括當前幀的同步頭起始位置、幀長與特征信息,并基于當前幀的相關信息確定當前幀數據,再對當前幀數據進行解碼,從而實現ES的解碼,使得以ES形式形成的流媒體文件的播放流程與封裝碼流的播放流程一致,這樣,在同一個播放設備中,采用同一個播放系統便可以播放封裝碼流與以ES形式形成的流媒體文件,與在現有技術的基礎上實現在同一個播放設備中播放封裝碼流與以ES形式形成的流媒體文件相比,大大簡化了播放系統的設計難度與播放設備的結構復雜性。根據本發明解碼處理方法的一個示例而非限制,具體可以利用幀檢測單元,通過如下方式,從ES中檢測當前幀的相關信息從ES的當前位置進行同 步頭檢測,獲取當前幀在比特流中的同步頭起始位置;由同步頭起始位置確定當前幀的幀頭并進行解析,獲取當前幀的特征信息;基于當前幀的特征信息對當前幀進行合法性檢測;響應于當前幀通過合法性檢測,根據當前幀的特征信息確定當前幀的幀長。根據本發明解碼處理方法的一個示例而非限制,從ES中檢測當前幀的相關信息之后,還可以利用幀檢測單元,執行如下操作基于當前幀與下一幀的特征信息對當前幀進行完整性檢測;響應于當前幀通過完整性檢測,基于當前幀的相關信息確定當前幀數據。根據本發明的又一個具體實施例,從ES中檢測當前幀的相關信息之后,還可以將幀檢測單元確定的當前幀數據,與檢測得到的當前幀的相關信息或相關信息中的同步頭起始位置信息發送給幀解碼單元。根據本發明解碼處理方法的一個示例而非限制,具體可以利用幀解碼單元,通過如下方式,對當前幀數據進行解碼接收當前幀的特征信息;根據當前巾貞的特征信息中的循環冗余碼校驗(Cyclic Redundancy Check,以下簡稱CRC)標識,對當前幀數據進行錯誤校驗;分別根據音頻幀與視頻幀的特征信息對當前幀數據進行解碼。另外,作為本發明解碼處理方法的另一個示例而非限制,也可以利用幀解碼單元,通過如下方式,對當前幀數據進行解碼接收當前幀的同步頭起始位置信息;根據當前幀的同步頭起始位置檢測當前幀的特征信息;根據當前幀的特征信息中的CRC標識,對當前幀數據進行錯誤校驗;分別根據音頻幀與視頻幀的特征信息對當前幀數據進行解碼。圖4為本發明流媒體文件的解碼處理方法另一個實施例的流程圖,該實施例適用于ES為音頻ES或視頻ES的情況,尤其適用于ES為音頻ES的情況。如圖4所示,該實施例的解碼處理方法包括201,讀取流媒體文件碼流,并識別讀取到流媒體文件碼流為ES或封裝碼流。響應于流媒體文件碼流為ES,執行202。響應于讀取到的流媒體文件碼流為封裝碼流,執行211。示例性地,該操作可以通過文件讀取單元執行。其中的流媒體文件碼流可以是音頻文件碼流,也可以是視頻文件碼流,還可以同時包括音頻文件碼流與視頻文件碼流。202,從ES的當前位置進行同步頭檢測,獲取同步頭在比特流中的起始位置,也即幀頭在比特流中的位置。從ES的當前位置獲取到的第一個幀頭即為當前幀的幀頭,其包括同步頭與特征信息,同步頭檢測即是,從ES中查找構成同步頭的同步字。例如,根據ISO1172-3標準規定,MPEGl 幀的同步頭為12比特的同步字OxFFE,同步頭檢測為從ES的當前位置開始搜索12比特的同步字“1111 1111 1111”。如圖5所示,為MPEG音頻ES的一個幀結構示意圖。203,由檢測到的同步頭確定當前幀的幀頭并進行解析,獲取當前幀的特征信息,例如,采樣率、聲道、比特率、是否采用填充位、是否受保護等。204,基于當前幀的特征信息對當前幀進行合法性檢測。具體地,在相應的音頻或視頻壓縮標準中,對各特征信息都規定了特定的取值范圍,例如,規定MP3格式幀采樣率的取值范圍是8khz 48khz,可以檢測當前幀的特征信息中采樣率的值是否位于Skhz 48khz范圍內,若當前幀的特征信息中采樣率的值位于8khz 48khz范圍內,則采樣率合法。在當前巾貞的各項特征信息均合法時,當前巾貞通過合法性檢測。205,響應于當前幀通過合法性檢測,根據當前幀的特征信息確定當前幀的幀長。當前幀的幀長即為當前幀與相鄰下一幀幀頭之間的間隔字節數。例如,可以通過特征信息中的比特率與采樣率參數來計算MPEGl幀的幀長,計算公式為N= [1+]144 *比特率/采樣率。根據特征信息中的采用填充位標識信息,如果未采用填充位,則當前幀的幀長為N= 144 *比特率/采樣率;否則,如果采用了填充位,則當前幀的幀長為N= 1+144*比特率/采樣率。根據本發明的另一個實施例,205的操作也可以先于204的操作執行,該實施例中,根據當前幀的特征信息確定當前幀的幀長,然后再對當前幀進行合法性檢測,響應于當前幀通過合法性檢測,執行206,即基于當前幀與下一幀的特征信息對當前幀進行完整性檢測。示例性地,若當前幀未通過合法性檢測,不執行本實施例的后續流程,可以丟棄當前幀,將流媒體文件碼流下移一個字節,返回執行201的操作,以處理流媒體文件碼流的下一幀。
206,基于當前幀與下一幀的特征信息對當前幀進行完整性檢測。示例性地,可以通過如下方式對當前幀進行完整性檢測通過當前幀的幀頭與幀長即可獲知下一幀的幀頭位置,確認下一幀的幀頭位置是否存在相應的同步頭,例如,對于MPEGl幀,確認下一幀的幀頭位置是否存在12比特的同步字OxFFE ;若下一幀的幀頭位置存在相應的同步頭,基于下一幀的特征信息對下一幀進行合法性檢測;并在下一幀通過合法性檢測后,比較下一幀的特征信息與當前幀的特征信息是否一致,例如,下一幀與當前幀的采樣率是否一致。若下一幀的特征信息與當前幀的特征信息一致,則當前幀通過完整性檢測。207,響應于當前幀通過完整性檢測,基于當前幀的相關信息確定當前幀數據。示例性地,若當前幀未通過完整性檢測,不執行本實施例的后續流程,可以丟棄當前幀,將流媒體文件碼流下移一個字節,返回執行201的操作,以處理流媒體文件碼流的下
一中貞。208,將當前幀數據,與當前幀的相關信息或相關信息中的同步頭起始位置信息發送給幀解碼單元。示例性地,202 208的操作可以通過幀檢測單元執行。209,根據當前幀的特征信息中的CRC標識,對當前幀數據進行錯誤校驗。若208中發送的是當前幀的相關信息,則209中,直接根據相關信息中特征信息中的CRC標識,對當前幀數據進行錯誤校驗。若208中發送的是相關信息中的同步頭起始位置信息,則209中,先根據當前幀的同步頭起始位置檢測當前幀的特征信息,然后再根據當前幀的特征信息中的CRC標識,對當前幀數據進行錯誤校驗。210,對當前幀數據進行解碼,得到流媒體數據,該流媒體數據具體可以是音頻數據或者視頻數據。示例性地,209 210的操作可以通過幀解碼單元執行。具體地,該幀解碼單元可以包括音頻解碼單元與視頻解碼單元,若當前幀為音頻幀,則由音頻解碼單元執行209 210的操作,相應得到音頻數據;若當前幀為視頻幀,則由視頻解碼單元執行209 210的操作,相應得到視頻數據。之后,不再執行本實施例的后續流程。211,對封裝碼流進行解復用,分離出音頻PES與視頻PES,分別對音頻PES與視頻PES進行拆包、解封裝,得到音頻幀與視頻幀,并提取音頻幀與視頻幀的特征信息。示例性地,該211的操作可以通過解復用單元執行。212,分別根據音頻幀與視頻幀的特征信息對音頻幀與視頻幀進行解碼,得到音頻數據與視頻數據。 示例性地,該212的操作可以通過幀解碼單元執行。另外,212中,也可以先根據音頻幀與視頻幀的特征信息中的CRC標識,對音頻幀與視頻幀進行錯誤校驗,然后再對經過錯誤校驗的音頻幀與視頻幀進行解碼。具體地,該幀解碼單元可以包括音頻解碼單元與視頻解碼單元,相應對音頻幀與視頻幀進行錯誤校驗、解碼,相應得到音頻數據與視頻數據。圖6為本發明流媒體文件的解碼處理方法又一個實施例的流程圖,該實施例適用于ES為音頻ES或視頻ES的情況,尤其適用于ES為音頻ES的情況。如圖6所示,該實施例的解碼處理方法包括
301,響應于控制單元的讀取控制命令,對外部存儲單元的輸入空間進行監控。302,響應于外部存儲單元的輸入空間有空余,從文件存儲單元讀取流媒體文件碼流并存儲在外部存儲單元的輸入空間內。具體地,該302的操作為條件觸發操作,只要滿足外部存儲單元的輸入空間有空余這一觸發條件,便從文件存儲單元讀取流媒體文件碼流并存儲在外部存儲單元的輸入空間內,而不受其它操作的執行順序限制。303,識別讀取到流媒體文件碼流為ES或封裝碼流,并向控制單元返回識別結果消息。示例性地,301 303的操作可以通過文件讀取單元執行。304,識別結果消息,響應于流媒體文件碼流為ES,執行305。否則,響應于流媒體文件碼流為封裝碼流,執行314。305,向幀檢測單元發送檢測命令。示例性地,304 305的操作可以通過控制單元執行。306,根據檢測命令,從ES中檢測當前幀的相關信息。示例性地,可以通過圖4所示實施例中202 205的操作,從ES中檢測當前幀的
相關信息。307,基于當前幀的相關信息確定當前幀數據。示例性地,也可以基于當前幀與下一幀的特征信息對當前幀進行完整性檢測,響應于當前幀通過完整性檢測,執行307的操作。308,將當前幀數據,與當前幀的相關信息或相關信息中的同步頭起始位置信息發送給控制單元。示例性地,306 308的操作可以通過幀檢測單元執行。309,向幀解碼單元發送解碼命令與當前幀數據,解碼命令中包括當前幀的相關信息或相關信息中的同步字起始位置信息。示例性地,該309的操作可以通過控制單元執行。310,根據解碼命令,對當前幀數據進行解碼,得到流媒體數據,該流媒體數據具體可以是音頻數據或者視頻數據。示例性地,也可以響應于解碼命令,根據當前幀的特征信息中的CRC標識,對當前幀數據進行錯誤校驗,之后再對經過錯誤校驗的當前幀數據進行解碼。若309中解碼命令包括的是當前幀的相關信息,則310中直接根據相關信息中特征信息中的CRC標識,對當前幀數據進行錯誤校驗。若309中解碼命令包括的是相關信息中的同步頭起始位置信息,則310中先根據當前幀的同步頭起始位置檢測當前幀的特征信息,然后再根據當前幀的特征信息中的CRC標識,對當前幀數據進行錯誤校驗。311,將解碼得到的流媒體數據存儲在外部存儲單元的緩沖區中,并向控制單元返回正確解碼的解碼結果消息。示例性地,310 311的操作可以通過幀解碼單元執行。具體地,該幀解碼單元可以包括音頻解碼單元與視頻解碼單元,若當前幀為音頻幀,則由音頻解碼單元執行310 311的操作,對應解碼得到的是音頻數據;若當前幀為視頻幀,則由視頻解碼單元執行310 311的操作,對應解碼得到的是視頻數據。
312,響應于解碼結果消息,向播放單元發送播放命令。示例性地,該312的操作可以通過控制單元執行。其中的播放命令中可以包括播放控制信息,例如,聲道信息,該播放控制信息具體可以從當前幀的相關信息中獲取得到,針對同一個流媒體文件碼流獲取一次即可。313,根據播放命令,對外部存儲單元的緩沖區中的流媒體數據進行輸出播放。示例性地,該313的操作可以通過播放單元執行。具體地,該播放單元可以包括音頻播放單元與視頻播放單元,相應對音頻數據、視頻數據進行播放。之后,不再執行本實施例的后續流程。314,向解復用單元發送解復用命令。示例性地,該314的操作可以通過控制單元執行。315,根據解復用命令對封裝碼流進行解復用,分離出音頻PES與視頻PES,分別對音頻PES與視頻PES進行拆包、解封裝,得到音頻幀與視頻幀,提取音頻幀與視頻幀的特征信息,并將音頻幀與視頻幀及其特征信息發送給控制單元。示例性地,該315的操作可以通過解復用單元執行。316,向幀解碼單元發送解碼命令、音頻幀與視頻幀,解碼命令中包括音頻幀與視頻幀的特征信息。示例性地,該316的操作可以通過控制單元執行。
317,根據解碼命令對音頻幀與視頻幀進行解碼,得到音頻數據與視頻數據并存儲在外部存儲單元的緩沖區中,向控制單元返回正確解碼的解碼結果消息。示例性地,該317的操作可以通過幀解碼單元執行。另外,317中,也可以先根據音頻幀與視頻幀的特征信息中的CRC標識,對音頻幀與視頻幀進行錯誤校驗,然后再對經過錯誤校驗的音頻幀與視頻幀進行解碼。具體地,該幀解碼單元可以包括音頻解碼單元與視頻解碼單元,相應對音頻幀與視頻幀進行錯誤校驗、解碼,相應得到音頻數據與視頻數據。318,響應于解碼結果消息,向播放單元發送播放命令。示例性地,該318的操作具體可以通過控制單元執行。其中的播放命令中可以包括播放控制信息,例如,聲道信息,該播放控制信息具體可以從音頻幀與視頻幀的特征信息中獲取得到,針對同一個流媒體文件碼流獲取一次即可。319,根據播放命令,對外部存儲單元的緩沖區中的音頻數據與視頻數據進行輸出播放。示例性地,該319的操作可以通過播放單元執行。具體地,該播放單元可以包括音頻播放單元與視頻播放單元,相應對音頻數據、視頻數據進行播放。圖7為本發明流媒體文件的解碼處理方法再一個實施例的流程圖,該實施例適用于ES為音頻ES或視頻ES的情況,尤其適用于ES為音頻ES的情況。如圖7所示,該實施例的解碼處理方法包括401,響應于控制單元的讀取控制命令,對外部存儲單元的輸入空間進行監控。402,響應于外部存儲單元的輸入空間有空余,從文件存儲單元讀取流媒體文件碼流并存儲在外部存儲單元的輸入空間內。403,識別讀取到流媒體文件碼流為ES或封裝碼流,并向控制單元返回識別結果消息。
示例性地,401 403的操作可以通過文件讀取單元執行。404,根據識別結果消息,響應于流媒體文件碼流為ES,執行405。否則,響應于流媒體文件碼流為封裝碼流,執行414。405,向幀檢測單元發送檢測命令。示例性地,404 405的操作可以通過控制單元執行。406,根據檢測命令,從ES中檢測當前幀的相關信息。示例性地,可以通過圖4所示實施例中202 205的操作,從ES中檢測當前幀的
相關信息。407,基于當前幀的相關信息確定當前幀數據。示例性地,也可以基于當前幀與下一幀的特征信息對當前幀進行完整性檢測,響應于當前幀通過完整性檢測,執行407的操作。408,將當前幀數據存儲在交互存儲單元中,并向控制單元發送檢測完成消息,該檢測完成消息中包括當前幀的相關信息或相關信息中的同步頭起始位置信息。示例性地,406 408的操作可以通過幀檢測單元執行。409,響應于檢測完成消息,向幀解碼單元發送解碼命令,該解碼命令中包括當前幀的相關信息或相關信息中的同步頭起始位置信息。
示例性地,該409的操作可以通過控制單元執行。410,根據解碼命令,對交互存儲單元中的當前幀數據進行解碼,得到流媒體數據,該流媒體數據具體可以是音頻數據或者視頻數據。示例性地,也可以響應于解碼命令,根據當前幀的特征信息中的CRC標識,對當前幀數據進行錯誤校驗,之后再對經過錯誤校驗的當前幀數據進行解碼。若409中發送的是當前幀的相關信息,則410中,直接根據相關信息中特征信息中的CRC標識,對當前幀數據進行錯誤校驗。若409中發送的是相關信息中的同步頭起始位置信息,則410中,先根據當前幀的同步頭起始位置檢測當前幀的特征信息,然后再根據當前幀的特征信息中的CRC標識,對當前幀數據進行錯誤校驗。411,將解碼得到的流媒體數據存儲在交互存儲單元中,并向控制單元返回正確解碼的解碼結果消息。示例性地,410 411的操作可以通過幀解碼單元執行。具體地,該幀解碼單元可以包括音頻解碼單元與視頻解碼單元,若當前幀為音頻幀,則由音頻解碼單元執行410 411的操作,對應解碼得到的是音頻數據;若當前幀為視頻幀,則由視頻解碼單元執行410 411的操作,對應解碼得到的是視頻數據。412,響應于解碼結果消息,將交互存儲單元中的流媒體數據搬移到外部存儲單元的緩沖區中,并向播放單元發送播放命令。示例性地,該412的操作可以通過控制單元執行。具體地,控制單元可以直接將交互存儲單元中的流媒體數據搬移到外部存儲單元的緩沖區中,也可以通過直接存儲器存取(Direct Memory Access,以下簡稱DMA)單元,將交互存儲單元中的流媒體數據搬移到外部存儲單元的緩沖區中。其中的播放命令中可以包括播放控制信息,例如,聲道信息,該播放控制信息具體可以從當前幀的相關信息中獲取得到,針對同一個流媒體文件碼流獲取一次即可。
413,根據播放命令,對外部存儲單元的緩沖區中的流媒體數據進行輸出播放。示例性地,該413的操作可以通過播放單元執行。具體地,該播放單元可以包括音頻播放單元與視頻播放單元,相應對音頻數據、視頻數據進行播放。之后,不再執行本實施例的后續流程。414,向解復用單元發送解復用命令。示例性地,該414的操作可以通過控制單元執行。415,根據解復用命令對封裝碼流進行解復用,分離出音頻PES與視頻PES,分別對音頻PES與視頻PES進行拆包、解封裝,得到音頻幀與視頻幀并存儲在交互存儲單元中,提取音頻幀與視頻幀的特征信息。416,向控制單元發送解復用完成消息,該解復用完成消息中包括音頻幀與視頻幀的特征信息。示例性地,415 416的操作可以通過解復用單元執行。417,向幀解碼單元發送解碼命令,該解碼命令中包括音頻幀與視頻幀的特征信
肩、O示例性地,該417的操作可以通過控制單元執行。418,根據解碼命令,對交互存儲單元中的音頻幀與視頻幀進行解碼,得到音頻數據與視頻數據并存儲在交互存儲單元中,向控制單元返回正確解碼的解碼結果消息。示例性地,該418的操作可以通過幀解碼單元執行。另外,418中,也可以先根據音頻幀與視頻幀的特征信息中的CRC標識,對音頻幀與視頻幀進行錯誤校驗,然后再對經過錯誤校驗的音頻幀與視頻幀進行解碼。具體地,該幀解碼單元可以包括音頻解碼單元與視頻解碼單元,相應對音頻幀與視頻幀進行錯誤校驗、解碼,相應得到音頻數據與視頻數據。419,響應于解碼結果消息,將交互存儲單元中的音頻數據與視頻數據搬移到外部存儲單元的緩沖區中,并向播放單元發送播放命令。示例性地,該419的操作具體可以通過控制單元執行。具體地,控制單元可以直接將交互存儲單元中的音頻數據與視頻數據搬移到外部存儲單元的緩沖區中,也可以通過DMA單元,將交互存儲單元中的音頻數據與視頻數據搬移到外部存儲單元的緩沖區中。其中的播放命令中可以包括播放控制信息,例如,聲道信息,該播放控制信息具體可以從當前幀的相關信息中獲取得到,針對同一個流媒體文件碼流獲取一次即可。420,根據播放命令,對外部存儲單元的緩沖區中的音頻數據與視頻數據進行輸出播放。示例性地,該420的操作可以通過播放單元執行。具體地,該播放單元可以包括音頻播放單元與視頻播放單元,相應對音頻數據、視頻數據進行播放。現有技術中,專用的多媒體播放器,例如,MP3音頻播放器、MP4視頻播放器等,均采用單一處理器對相應的音頻、視頻等多媒體文件進行解碼、播放。但是,隨著通信技術的迅速發展,現有的專用多媒體播放器之外的電子產品,例如通信產品,大多支持對音頻、視頻等多媒體文件的解碼與播放。在這類電子產品中,多媒體文件的解碼、播放功能附加在其它功能之上實現,例如,在移動終端中,音頻文件的解碼、播放功能附加在通信、視頻、圖像處理功能之上實現。在這類電子產品中,通常包含多個處理器單元,例如,高級精簡指令集機器(Advanced RISC Machines,以下簡稱ARM)處理器單元與數字信號處理器(DigitalSignal Processor,以下簡稱DSP)單元。不同處理器單元具有不同的處理特點,根據分工不同負責完成不同任務。例如,移動終端中的DSP單元主要負責完成通信系統的核心算法,而ARM處理器單元主要負責完成控制及文件操作。在具有多個處理器單元的多處理器系統中,通常需要實現的功能多且復雜,而系統資源有限,這就需要對系統資源進行優化配置及復用,以達到對有限資源的最優配置,最大程度的降低產品成本。例如,由于ARM處理器單元中的ARM7系列處理器單元具有較靈活的存儲訪問功能及較豐富的流程控制指令,但缺乏強大的數據運算能力,使用ARM7系列處理器單元進行控制操作;由于DSP單元具有較強大的數據處理能力,但其流程控制及存儲訪問功能受限,如無法訪問外部存儲空間,因此DSP單元會有部分專屬內部存儲器,使用DSP單元實現需要大量運算的運算功能。多處理器系統中,仍然使用單一處理器單元,例如,僅使用ARM處理器單元或DSP單元,來對多媒體文件進行解碼、播放,由于各處理器單元在不同功能方面的性能優劣不同,僅使用單一處理器單元對多媒體文件進行解碼、播放,影響了多媒體文件的播放效果;并且,由于未充分利用多個處理器單元,無法充分發揮多個處理器單元的性能優勢,造成多個處理器單元的性能損失與系統資源浪費。上述圖7所示實施例的流媒體文件的解碼處理方法具體可以通過一個解碼處理裝置來實現,該解碼處理裝置具有多處理器系統,包括第一處理器單元與第二處理器單元。其中,控制單元、幀檢測單元、解復用單元與播放單元設置在第一處理器單元中,幀解碼單元設置在第二處理器單元中。示例性地,可以利用具有較靈活的存儲訪問功能及較豐富的流程控制指令的處理器,如ARM處理器單元,作為第一處理器單元;利用具有較強大的數據處理能力的處理器,如DSP單元,作為第二處理器單元,來實現解碼流程中的算術運算及解碼流程。由于多處理器系統中的每個處理器單元在不同功能方面的性能優劣不同,本發明實施例利用具有多處理器系統的解碼處理裝置對流媒體文件進行解碼處理時,充分發揮每個處理器單元的性能優勢,利用多個處理器單元配合實現對流媒體文件碼流的解碼、播放流程,例如,可以利用具有較靈活的存儲訪問功能及較豐富的流程控制指令的處理器單元,如ARM7系列處理器單元,作為第一處理器單元,從外部存儲單元的輸入空間讀取流媒體文件碼流并進行解復用或者幀 檢測,并將得到的音頻幀與視頻幀、或者當前幀數據存儲在第二處理器單元可訪問的交互存儲單元中,利用具有較強大的數據處理能力的處理器,如DSP單元,作為第二處理器單元,對交互存儲單元中的音頻幀與視頻幀、或者當前幀數據進行解碼,并將解碼得到的音頻數據或者視頻數據存儲在可訪問的交互存儲單元中,然后由第一處理器單元進行播放,充分發揮了第一處理器單元的靈活存儲訪問功能及豐富流程控制指令功能與第二處理器單元的強大數據處理能力,提高了流媒體文件的播放效果;充分發揮了多個處理器單元的性能優勢,充分利用了多處理器系統的系統資源,實現了對系統資源的優化配置及復用,達到對有限資源的最優配置,最大程度的降低產品成本,且提高了多處理器系統的工作性能。另外,解碼處理裝置還可以包括作為解碼加速單元的第三處理器單元,幀解碼單元在對交互存儲單元中的音頻數據與視頻數據進行解碼的過程中,還可以進一步調用第三處理器單元進行加速,以提高解碼速度,實現更高的解碼性能。圖8為本發明流媒體文件的解碼處理裝置一個實施例的結構示意圖。該實施例的解碼處理裝置可用于執行本發明上述各解碼處理方法流程的相應操作。如圖8所示,其包括文件讀取單元501、幀檢測單元502與幀解碼單元503。其中,文件讀取單元501,用于讀取流媒體文件碼流,并識別讀取到流媒體文件碼流為ES或封裝碼流,其中的流媒體文件碼流具體可以是音頻文件碼流,也可以是視頻文件碼流,還可以同時包括音頻文件碼流與視頻文件碼流。幀檢測單元502,用于根據文件讀取單元501的識別結果,響應于流媒體文件碼流為ES,從ES中檢測當前幀的相關信息,并基于當前幀的相關信息確定當前幀數據。幀解碼單元503,用于對幀檢測單元502確定的當前幀數據進行解碼,得到流媒體數據,該流媒體數據具體可以包括音頻數據或者視頻數據。具體地,該幀解碼單元503可以包括音頻解碼單元與視頻解碼單元,若當前幀為音頻幀,則由音頻解碼單元對當前幀數據進行解碼,得到音頻數據;若當前幀為視頻幀,則由視頻解碼單元對當前幀數據進行解碼,得到視頻數據。本發明上述實施例提供的流媒體文件的解碼處理裝置中,可以通過文件讀取單元識別讀取到的流媒體文件碼流為ES或封裝碼流,若流媒體文件碼流為ES,可以由檢測單元從ES中檢測當前幀的相關信息,并基于當前幀的相關信息確定當前幀數據,而無需使用解復用單元提供的碼流信息,對當前 幀數據進行解碼,從而實現基本碼流的解碼,以得到用于輸出播放的流媒體數據,從而使在封裝碼流的播放設備中可以實現對ES的解碼、播放,在同一個播放設備中實現了,采用同一個播放系統來播放封裝碼流與以ES形式形成的流媒體文件。圖9為本發明流媒體文件的解碼處理裝置另一個實施例的結構示意圖。該實施例的解碼處理裝置可用于執行本發明圖4所示解碼處理方法流程的相應操作,與圖8所示的實施例相比,該實施例的解碼處理裝置還包括解復用單元504,用于根據文件讀取單元501的識別結果,響應于流媒體文件碼流為封裝碼流,對封裝碼流進行解復用,分離出音頻打包PES與視頻PES,分別對音頻PES與視頻PES進行拆包、解封裝,得到音頻幀與視頻幀,并提取音頻幀與視頻的特征信息。相應的,幀解碼單元503,還用于分別根據音頻幀與視頻幀的特征信息,對解復用單元504得到的音頻幀與視頻幀進行解碼,具體分別通過音頻解碼單元與視頻解碼單元分別對音頻幀與視頻幀進行解碼,相應得到音頻數據與視頻數據。另外,作為解碼處理裝置的又一個實施例,當前幀的相關信息可以包括當前幀的同步頭起始位置、幀長與特征信息。與本發明解碼處理方法實施例相應的,圖9所示實施例中,幀檢測單元502,還可用于基于當前幀與下一幀的特征信息對當前幀進行完整性檢測,以及響應于當前幀通過完整性檢測,基于當前幀的相關信息確定當前幀數據。本發明實施例中,若讀取到的流媒體文件碼流為封裝碼流,可以由解復用單元、幀解碼單元分別對封裝碼流進行解復用、解碼;若讀取到的流媒體文件碼流為ES,由幀檢測單元從ES中檢測當前幀的相關信息,包括當前幀的同步頭起始位置、幀長與特征信息,并基于當前幀的相關信息確定當前幀數據,再通過幀解碼單元對當前幀數據進行解碼,從而實現ES的解碼,使得以ES形式形成的流媒體文件的播放流程與封裝碼流的播放流程一致,這樣,在同一個播放設備中,采用同一個播放系統便可以播放封裝碼流與以ES形式形成的流媒體文件,與在現有技術的基礎上實現在同一個播放設備中播放封裝碼流與以ES形式形成的流媒體文件相比,大大簡化了播放系統的設計難度與播放設備的結構復雜性。
作為本發明解碼處理裝置的一個示例而非限制,本發明上述實施例的解碼處理裝置中,幀解碼單元503,還可用于接收當前幀的特征信息,或者接收當前幀的同步頭起始位置信息,并根據當前幀的同步頭起始位置檢測當前幀的特征信息;根據當前幀的特征信息中的CRC標識,對當前幀數據進行錯誤校驗;對當前幀數據進行解碼時,具體對經過錯誤校驗的當前幀進行解碼。作為本發明解碼處理裝置的一個示例而非限制,本發明上述實施例的解碼處理裝置中,幀檢測單元502,還可用于將當前幀數據,與當前幀的相關信息或相關信息中的同步頭起始位置信息發送給幀解碼單元。圖10為本發明流媒體文件的解碼處理裝置又一個實施例的結構示意圖。該實施例的解碼處理裝置可用于執行本發明圖6所示解碼處理方法流程的相應操作。與本發明上述各實施例的解碼處理裝置相比,該實施例的解碼處理裝置還包括控制單元505,用于向文件讀取單元501發送讀取控制命令;根據文件讀取單元501返回的識別結果消息,響應于文件讀取單元501讀取到的流媒體文件碼流為ES,向幀檢測單元502發送檢測命令;接收幀檢測單元502返回的當前幀數據,與當前幀的相關信息或相關信息中的同步頭起始位置信息,并向幀解碼單元503發送解碼命令與當前幀數據,其中的解碼命令包括當前幀的相關信息或相關信息中的同步頭起始位置信息。由于當前幀可以是音頻幀或視頻幀,控制單元505根據ES為音頻ES或者視頻ES,分別向音頻解碼單元或視頻解碼單元發送解碼命令,后續相應由音頻解碼單元或視頻解碼單元進行解碼處理操作,本發明后續各實施例中的幀解碼單元503均指對應解碼音頻、視頻幀的音頻解碼單元或視頻解碼單元,不再特別說明。相應的,文件讀取單元501具體響應于控制單元505的讀取控制命令,對外部存儲單元的輸入空間進行監控,響應于外部存儲單元的輸入空間有空余,從文件存儲單元讀取流媒體文件碼流并存儲在外部存儲單元的輸入空間內,識別讀取到流媒體文件碼流為ES或封裝碼流,并向控制單元505返回識別結果消息。幀檢測單元502具體根據控制單元505發送的檢測命令,從外部存儲單元的輸入空間內的ES中檢測當前幀的相關信息,并基于當前幀的相關信息確定當 前幀數據,將當前幀數據,與當前幀的相關信息或相關信息中的同步頭起始位置信息發送給控制單元505。幀解碼單元503具體根據解碼命令對當前幀數據進行解碼。作為圖10所示解碼處理裝置實施例的一個示例而非限制,幀解碼單元503,還可用于將解碼得到的流媒體數據存儲在外部存儲單元的緩沖區中,并向控制單元505返回正確解碼的解碼結果消息。作為圖10所示解碼處理裝置實施例的另一個示例而非限制,控制單元505,還可用于根據文件讀取單元501返回的識別結果消息,響應于流媒體文件碼流為封裝碼流,向解復用單元504發送解復用命令;以及接收解復用單元504返回的音頻幀與視頻幀及其特征信息,并向幀解碼單元503發送解碼命令、音頻幀與視頻幀,該解碼命令中包括音頻幀與視頻幀的特征信息。相應的,解復用單元504具體根據控制單元505發送的解復用命令,對封裝碼流進行解復用,分離出音頻PES與視頻PES,分別對音頻PES與視頻PES進行拆包、解封裝,得到音頻幀與視頻幀,提取音頻幀與視頻幀的特征信息;并將音頻幀與視頻幀及其特征信息發送給控制單元505。幀解碼單元503具體根據控制單元505發送的解碼命令,對音頻幀與視頻幀進行解碼,得到音頻數據與視頻數據。
進一步示例性地,幀解碼單元503,還可用于將解碼得到的音頻數據與視頻數據存儲在外部存儲單元的緩沖區中,并向控制單元505返回正確解碼的解碼結果消息。圖11為本發明流媒體文件的解碼處理裝置再一個實施例的結構示意圖。該實施例的解碼處理裝置可用于執行本發明圖7所示解碼處理方法流程的相應操作。與本發明圖8及圖9所示各實施例的解碼處理裝置相比,該實施例的解碼處理裝置還包括控制單元601與交互存儲單元602。其中,控制單元601,用于向文件讀取單元501發送讀取控制命令;根據文件讀取單元501返回的識別結果消息,響應于流媒體文件碼流為ES,向幀檢測單元502發送檢測命令;接收幀檢測單元502返回的檢測完成消息,該檢測完成消息中包括當前幀的相關信息或相關信息中的同步頭起始位置信息,并向幀解碼單元503發送解碼命令,其中的解碼命令包括當前幀的相關信息或相關信息中的同步頭起始位置信息。交互存儲單元602,用于存儲由幀檢測單元502確定的當前幀數據。相應的,文件讀取單元501,具體響應于控制單元601的讀取控制命令,對外部存儲單元的輸入空間進行監控,響應于外部存儲單元的輸入空間有空余,從文件存儲單元讀取流媒體文件碼流并存儲在外部存儲單元的輸入空間內,識別讀取到流媒體文件碼流為ES或封裝碼流,并向控制單元601返回識別結果消息。幀檢測單元502,具體根據控制單元601發送的檢測命令,從外部存儲單元的輸入空間中的ES中檢測當前幀的相關信息,并基于當前幀的相關信息確定當前幀數據,將當前幀數據存儲在交互存儲單元602中,并向控制單元601發送檢測完成消息,該檢測完成消息中包括當前幀的相關信息或相關信息中的同步頭起始位置信息。幀解碼單元503,具體根據控制單元601發送的解碼命令對交互存儲單元602中的當前幀數據進行解碼。根據圖11所示解碼處理裝置實施例的一個示例而非限制,幀解碼單元503,還可用于將解碼得到的流媒體數據存儲在交互存儲單元602中,并向控制單元601返回正確解碼的解碼結果消息。相應的 ,交互存儲單元602,還可用于存儲幀解碼單元503解碼得到的流媒體數據。 根據圖11所示解碼處理裝置實施例的另一個示例而非限制,控制單元601,還可用于根據文件讀取單元501返回的識別結果消息,響應于流媒體文件碼流為封裝碼流,向解復用單元504發送解復用命令;以及接收解復用單元504返回的解復用完成消息,該解復用完成消息中包括音頻幀與視頻幀的特征信息,并向幀解碼單元503發送解碼命令,其中的解碼命令包括音頻幀與視頻幀的特征信息。相應的,解復用單元504具體根據控制單元601發送的解復用命令,對封裝碼流進行解復用,分離出音頻PES與視頻PES,分別對音頻PES與視頻PES進行拆包、解封裝,得到音頻幀與視頻幀并存儲在交互存儲單元602中,提取音頻幀與視頻幀的特征信息,并向控制單元601發送解復用完成消息。幀解碼單元503,具體根據解碼命令,對交互存儲單元602中的音頻幀與視頻幀進行解碼,得到音頻數據與視頻數據。進一步示例性地,幀解碼單元503,還可用于將解碼得到的音頻數據與視頻數據存儲在交互存儲單元602中,并向控制單元601返回正確解碼的解碼結果消息。相應的,交互存儲單元602,還可用于存儲幀解碼單元503解碼得到的音頻數據與視頻數據。另外,再參見圖11,作為本發明的解碼處理裝置的又一個實施例,還可以包括DMA單元603,用于根據控制單元601的搬移命令,將交互存儲單元602中的音頻數據和/或視頻數據搬移到外部存儲單元的緩沖區中。相應的,控制單元601還用于響應于接收到正確解碼的解碼結果消息,向DMA單元603發送搬移命令。作為本發明解碼處理裝置的還一個實施例,圖11所示各實施例提供的解碼處理裝置具有多處理器系統,其包括第一處理器單元與第二處理器單元。其中,控制單元505、幀檢測單元502 與解復用單元504設置在第一處理器單元中,幀解碼單元503設置在第二處理器單元中。如圖12所示,為本發明流媒體文件的解碼處理裝置還一個實施例的結構示意圖。示例性地,可以利用具有較靈活的存儲訪問功能及較豐富的流程控制指令的處理器,如ARM處理器單元,作為第一處理器單元;利用具有較強大的數據處理能力的處理器,如DSP單元,作為第二處理器單元,來實現解碼流程中的算術運算及解碼流程。由于具有較靈活的存儲訪問功能及豐富的流程控制指令,采用ARM處理器單元作為第一處理器單元,可以提高多處理器系統的工作性能;由于DSP單元具有較強大的數據處理能力,采用DSP單元作為第二處理器單元,可以提高解碼速度與效率,提高解碼正確率。本發明實施例利用具有多處理器系統的解碼處理裝置對流媒體文件進行解碼處理時,充分發揮每個處理器單元的性能優勢,利用多個處理器單元配合實現對流媒體文件碼流的解碼、播放流程,例如,可以利用具有較靈活的存儲訪問功能及較豐富的流程控制指令的處理器單元,如ARM7系列處理器單元,作為第一處理器單元,從外部存儲單元的輸入空間讀取流媒體文件碼流并進行解復用或者幀檢測,并將得到的音頻幀與視頻幀、或者當前幀數據存儲在第二處理器單元可訪問的交互存儲單元中,利用具有較強大的數據處理能力的處理器,如DSP單元,作為第二處理器單元,對交互存儲單元中的音頻幀與視頻幀、或者當前幀數據進行解碼,并將解碼得到的音頻數據或者視頻數據存儲在可訪問的交互存儲單元中,然后由第一處理器單元進行播放,充分發揮了第一處理器單元的靈活存儲訪問功能及豐富流程控制指令功能與第二處理器單元的強大數據處理能力,提高了流媒體文件的播放效果;充分發揮了多個處理器單元的性能優勢,充分利用了多處理器系統的系統資源,實現了對系統資源的優化配置及復用,達到對有限資源的最優配置,最大程度的降低產品成本,且提高了多處理器系統的工作性能。進一步地,再參見圖12,作為本發明解碼處理裝置的另一個具體實施例,還包括第三處理器單元604,用于作為解碼加速單元,對幀解碼單元503的解碼進行加速,以提高解碼速度,實現更高的解碼性能。相應的,該實施例中,幀解碼單元503,還用于在對交互存儲單元中的音頻數據與視頻數據進行解碼的過程中,調用第三處理器單元604進行加速。圖13為本發明播放設備一個實施例的結構示意圖。該實施例的播放設備可用于實現本發明圖6所示各實施例的解碼處理方法流程。如圖13所示,該實施例的播放設備包括外部存儲單元I與文件存儲單元2,還包括圖10所示各實施例的解碼處理裝置,以及播放單元3。其中,外部存儲單元I包括輸入空間與緩沖區,輸入空間可以用于存儲流媒體文件碼流,緩沖區可以用于存儲音頻數據與視頻數據。文件存儲單元2用于存儲流媒體文件碼流。解碼處理裝置中的控制單元505,還用于響應于幀解碼單元503發送的解碼結果消息,向播放單元3發送播放命令。相應的,播放單元3,用于根據控制單元505發送的播放命令,對外部存儲單元I的緩沖區中的流媒體數據進行輸出播放,或者對外部存儲單元I的緩沖區中的音頻數據與視頻數據進行輸出播放。具體地,該播放單元3可以包括音頻播放單元與視頻播放單元,分別對應播放音頻數據與視頻數據。本發明上述實施例提供的播放設備包括了上述實施例的流媒體文件的解碼處理裝置中,可以通過文件讀取單元識別讀取到的流媒體文件碼流為ES或封裝碼流,若流媒體文件碼流為ES,可以由檢測單元從ES中檢測當前幀的相關信息,并基于當前幀的相關信息確定當前幀數據,而無需使用解復用單元提供的碼流信息,對當前幀數據進行解碼,從而實現基本碼流的解碼,以得到用于輸出播放的流媒體數據,從而使在封裝碼流的播放設備中可以實現對ES的解碼、播放,在同一個播放設備中實現了,采用同一個播放系統來播放封裝碼流與以ES形式形成的流媒體文件。根據本發明實施例提供的另一種播放設備,可用于實現本發明圖7所示各實施例的解碼處理方法流程。該實施例的播放設備包括外部存儲單元I與文件存儲單元2,還包括圖11或圖12所示各實施例的解碼處理裝置,以及播放單元3。其中,外部存儲單元I包括輸入空間與緩沖區,輸入空間可以用于存儲流媒體文件碼流,緩沖區可以用于存儲音頻數據與視頻數據。文件存儲單元2用于存儲流媒體文件碼流。解碼處理裝置中的控制單元601,還用于響應于幀解碼單元503發送的解碼結果消息,將交互存儲單元602中的流媒體數據,或者交互存儲單元602中的音頻數據與視頻數據,搬移到外部存儲單元I的緩沖區中,并向播放單元3發送播放命令。相應的,播放單元3,用于根據控制單元601發送的播放命令,對外部存儲單元I的緩沖區中的流媒體數據進行輸出播放,或者對外部存儲 單元I的緩沖區中的音頻數據與視頻數據進行輸出播放。具體地,該播放單元3可以包括音頻播放單元與視頻播放單元,分別對應播放音頻數據與視頻數據。根據播放設備的一個示例而非限制,播放單元3具體可以設置在第一處理器中。如圖14所示,為本發明播放設備另一實施例的結構示意圖,該圖14作為一個具體示例,僅示出了包括圖12所示實施例的解碼處理裝置的結構。對于播放設備包括圖11所示各實施例的解碼處理裝置的情況,各單元的功能及其之間的連接關系與圖14相同,不再贅述。本發明上述實施例提供的播放設備包括了上述實施例的流媒體文件的解碼處理裝置,可以通過文件讀取單元識別讀取到的流媒體文件碼流為ES或封裝碼流,若流媒體文件碼流為ES,可以由檢測單元從ES中檢測當前幀的相關信息,并基于當前幀的相關信息確定當前幀數據,而無需使用解復用單元提供的碼流信息,對當前幀數據進行解碼,從而實現基本碼流的解碼,以得到用于輸出播放的流媒體數據,從而使在封裝碼流的播放設備中可以實現對ES的解碼、播放,在同一個播放設備中實現了,采用同一個播放系統來播放封裝碼流與以ES形式形成的流媒體文件。另外,本發明上述實施例提供的播放設備,具有多處理器系統,充分發揮每個處理器單元的性能優勢,利用多個處理器單元配合實現對流媒體文件碼流的解碼、播放流程,充分發揮了第一處理器單元的靈活存儲訪問功能及豐富流程控制指令功能與第二處理器單元的強大數據處理能力,提高了流媒體文件的播放效果;充分發揮了多個處理器單元的性能優勢,充分利用了系統資源,提高了多處理器系統的工作性能。本領域普通技術人員可以理解本發明上述各實施例本發明上述各實施例解碼處理裝置與播放設備的各構成單元可以通過軟件實現,也可以通過硬件實現。并且,本發明上述各實施例解碼處理裝置與播放設備的構成單元并不一定是實現本發明實施例所必須或僅限的,例如,播放設備還可以根據實際需求設置顯示器、鍵盤與其它外設等。另外,解碼處理裝置的構成單元還可以根據實際需求分布于播放設備的其它構成單元中,解碼處理裝置的構成單元中,可以多個構成單元合并為一個單元實現,也可以一個構成單元拆分為多個子單元實現。另外,解碼處理裝置的構成單元之間、以及解碼處理裝置的構成單元與播放設備的其它構成單元之間的連接關系,僅表示基于本發明的一個信息流向關系示例,不限制為物理連接關系,并且也不一定是實現本發明實施例所必須或僅限的。本說明書中各個實施例均采用遞進的方式描述,每個實施例重點說明的都是與其它實施例的不同之處,各個實施例之間相同或相似的部分相互參見即可。對于解碼處理裝置、播放設備實施例而言,由于其與方法實施例相應,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。本領域普通技術人員可以理解實現上述方法實施例的全部或部分步驟可以通過程序指令相關的硬件來完成,前述的程序可以存儲于一計算機可讀取存儲介質中,該程序在執行時,執行包括上述方法實施例的步驟;而前述的存儲介質包括RoM、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質。本發明實施例在封裝碼流的播放設備中可以實現對基本碼流的解碼、播放,在同一個播放設備中實現了,采用同一個播放系統來播放封裝碼流與以ES形式形成的流媒體文件;可以理利用多處理器系統中的多個處理器單元配合實現對流媒體文件碼流的解碼、播放流程,提高了流媒體文件的播放效果;充分發揮了多個處理器單元的性能優勢,充分利用了多處理器系統的系統資源,實現了對系統資源的優化配置及復用,達到對有限資源的最優配置,最大程度的降低產品成本,且提高了多處理器系統的工作性能。 本發明的描述是為了示例和描述起見而給出的,而并不是無遺漏的或者將本發明限于所公開的形式。很多修改和變化對于本領域的普通技術人員而言是顯然的。選擇和描述實施例是為了更好說明本發明的原理和實際應用,并且使本領域的普通技術人員能夠理解本發明從而設計適于特定用途的帶有各種修改的各種實施例。
權利要求
1.一種流媒體文件的解碼處理方法,其特征在于,包括 讀取流媒體文件碼流,并識別讀取到的流媒體文件碼流為基本碼流或封裝碼流,所述流媒體文件碼流包括音頻文件碼流和/或視頻文件碼流; 響應于流媒體文件碼流為基本碼流,基于當前幀的相關信息而非解復用單元提供的碼流信息,對當前幀數據進行解碼,得到流媒體數據,所述流媒體數據包括音頻數據或者視頻數據。
2.根據權利要求1所述的方法,其特征在于,響應于流媒體文件碼流為封裝碼流,對封裝碼流進行解復用,分離出音頻打包基本碼流PES與視頻PES,分別對音頻PES與視頻PES進行拆包、解封裝,得到音頻幀與視頻幀,并提取音頻幀與視頻幀的特征信息; 分別根據音頻幀與視頻幀的特征信息對音頻幀與視頻幀進行解碼,得到音頻數據與視頻數據。
3.根據權利要求2所述的方法,其特征在于,基于當前幀的相關信息而非解復用單元提供的碼流信息,對當前幀數據進行解碼包括 從基本碼流中檢測當前幀的相關信息,并基于當前幀的相關信息確定當前幀數據; 對當前幀數據進行解碼。
4.根據權利要求3所述的方法,其特征在于,當前幀的相關信息包括當前幀的同步頭起始位置、幀長與特征信息; 從基本碼流中檢測當如巾貞的相關彳目息包括 利用幀檢測單元,從基本碼流的當前位置進行同步頭檢測,獲取當前幀的同步頭在比特流中的起始位置; 由所述同步頭起始位置確定當前幀的幀頭并進行解析,獲取當前幀的特征信息; 基于當前幀的特征信息對當前幀進行合法性檢測; 響應于當前幀通過合法性檢測,根據當前幀的特征信息確定當前幀的幀長。
5.根據權利要求3所述的方法,其特征在于,從基本碼流中檢測當前幀的相關信息之后,還包括 利用幀檢測單元,基于當前幀與下一幀的特征信息對當前幀進行完整性檢測; 響應于當前幀通過完整性檢測,基于當前幀的相關信息確定當前幀數據。
6.根據權利要求4所述的方法,其特征在于,對當前幀數據進行解碼包括 利用幀解碼單元,接收當前幀的特征信息; 根據當前幀的特征信息中的循環冗余碼校驗CRC標識,對當前幀數據進行錯誤校驗; 對當前幀數據進行解碼。
7.根據權利要求4所述的方法,其特征在于,對當前幀數據進行解碼包括 利用幀解碼單元,接收當前幀的同步頭起始位置信息; 根據當前幀的同步頭起始位置檢測當前幀的特征信息; 根據當前幀的特征信息中的CRC標識,對當前幀數據進行錯誤校驗; 對當前幀數據進行解碼。
8.根據權利要求6或7所述的方法,其特征在于,基于當前幀的相關信息確定當前幀數據之后,還包括 將幀檢測單元確定的當前幀數據,與檢測得到的當前幀的相關信息或相關信息中的同步頭起始位置信息發送給幀解碼單元。
9.根據權利要求1至7任意一項所述的方法,其特征在于,讀取流媒體文件碼流,并識別讀取到流媒體文件碼流為基本碼流或封裝碼流包括 利用文件讀取單元,響應于控制單元的讀取控制命令,對外部存儲單元的輸入空間進行監控,響應于外部存儲單元的輸入空間有空余,從文件存儲單元讀取流媒體文件碼流并存儲在外部存儲單元的輸入空間內,識別讀取到流媒體文件碼流為基本碼流或封裝碼流,并向控制單元返回識別結果消息; 利用控制單元,根據所述識別結果消息,響應于流媒體文件碼流為基本碼流,向幀檢測單元發送檢測命令; 具體利用幀檢測單元,根據所述檢測命令從基本碼流中檢測當前幀的相關信息,并基于當前幀的相關信息確定當前幀數據。
10.根據權利要求9所述的方法,其特征在于,利用控制單元,根據所述識別結果消息,響應于流媒體文件碼流為封裝碼流,向解復用單元發送解復用命令; 具體利用解復用單元,根據所述解復用命令對封裝碼流進行解復用,分離出音頻PES與視頻PES,分別對音頻PES與視頻PES進行拆包、解封裝,得到音頻幀與視頻幀,并提取音頻幀與視頻幀的特征信息;將音頻幀與視頻幀及其特征信息發送給控制單元; 利用控制單元,向幀解碼單元發送解碼命令、音頻幀與視頻幀,所述解碼命令中包括音頻幀與視頻幀的特征信息; 具體利用幀解碼單元,根據解碼命令對音頻幀與視頻幀進行解碼,得到音頻數據與視頻數據。
11.根據權利要求10所述的方法,其特征在于,還包括 利用幀解碼單元,將解碼得到的音頻數據與視頻數據存儲在外部存儲單元的緩沖區中,并向控制單元返回正確解碼的解碼結果消息; 利用控制單元,響應于所述解碼結果消息,向播放單元發送播放命令; 利用播放單元,根據所述播放命令,對緩沖區中的音頻數據與視頻數據進行輸出播放。
12.根據權利要求9所述的方法,其特征在于,基于當前幀的相關信息確定當前幀數據之后,還包括 利用幀檢測單元,將確定的當前幀數據,與檢測得到的當前幀的相關信息或相關信息中的同步頭起始位置信息發送給控制單元; 利用控制單元,向幀解碼單元發送解碼命令與當前幀數據,所述解碼命令包括當前幀的相關信息或相關信息中的同步頭起始位置信息; 具體利用幀解碼單元,根據解碼命令對當前幀數據進行解碼。
13.根據權利要求12所述的方法,其特征在于,還包括 利用幀解碼單元,將解碼得到的流媒體數據存儲在外部存儲單元的緩沖區中,并向控制單元返回正確解碼的解碼結果消息; 利用控制單元,響應于解碼結果消息,向播放單元發送播放命令; 利用播放單元,根據所述播放命令,對緩沖區中的流媒體數據進行輸出播放。
14.根據權利要求9所述的方法,其特征在于,基于當前幀的相關信息確定當前幀數據之后,還包括利用幀檢測單元,將當前幀數據存儲在交互存儲單元中,并向控制單元發送檢測完成消息,所述檢測完成消息中包括當前幀的相關信息或相關信息中的同步頭起始位置信息;利用控制單元,響應于檢測完成消息,向幀解碼單元發送解碼命令,所述解碼命令中包括當前幀的相關信息或相關信息中的同步頭起始位置信息; 具體利用幀解碼單元,根據解碼命令,對交互存儲單元中的當前幀數據進行解碼。
15.根據權利要求14所述的方法,其特征在于,還包括 利用幀解碼單元,將解碼得到的流媒體數據存儲在所述交互存儲單元中,并向控制單元返回正確解碼的解碼結果消息; 利用控制單元,響應于解碼結果消息,將交互存儲單元中的流媒體數據搬移到所述外部存儲單元的緩沖區中,并向播放單元發送播放命令; 利用播放單元,根據所述播放命令,對緩沖區中的流媒體數據進行輸出播放。
16.根據權利要求14所述的方法,其特征在于,利用控制單元,根據所述識別結果消息,響應于流媒體文件碼流為封裝碼流,向解復用單元發送解復用命令; 具體利用解復用單元,根據所述解復用命令對封裝碼流進行解復用,分離出音頻PES與視頻PES,分別對音頻PES與視頻PES進行拆包、解封裝,得到音頻幀與視頻幀并存儲在交互存儲單元中,并提取音頻幀與視頻幀的特征信息;向控制單元發送解復用完成消息,所述解復用完成消息中包括音頻幀與視頻幀的特征信息; 利用控制單元,向幀解碼單元發送解碼命令,所述解碼命令中包括音頻幀與視頻幀的特征信息; 具體利用幀解碼單元,根據解碼命令,對交互存儲單元中的音頻幀與視頻幀進行解碼,得到音頻數據與視頻數據。
17.根據權利要求16所述的方法,其特征在于,還包括 利用幀解碼單元,將音頻數據與視頻數據存儲在所述交互存儲單元中,并向控制單元返回正確解碼的解碼結果消息; 利用控制單元,響應于所述解碼結果消息,將交互存儲單元中的音頻數據與視頻數據搬移到所述外部存儲單元的緩沖區中,并向播放單元發送播放命令; 利用播放單元,根據所述播放命令,對緩沖區中的音頻數據與視頻數據進行輸出播放。
18.一種流媒體文件的解碼處理裝置,其特征在于,包括 文件讀取單元,用于讀取流媒體文件碼流,并識別讀取到流媒體文件碼流為基本碼流或封裝碼流,所述流媒體文件碼流包括音頻文件碼流和/或視頻文件碼流; 幀檢測單元,用于響應于流媒體文件碼流為基本碼流,從基本碼流中檢測當前幀的相關信息,并基于當前幀的相關信息確定當前幀數據; 幀解碼單元,用于對幀檢測單元確定的當前幀數據進行解碼,得到流媒體數據,所述流媒體數據包括音頻數據或者視頻數據。
19.根據權利要求18所述的裝置,其特征在于,還包括 解復用單元,用于響應于流媒體文件碼流為封裝碼流,對封裝碼流進行解復用,分離出音頻打包PES與視頻PES,分別對音頻PES與視頻PES進行拆包、解封裝,得到音頻幀與視頻幀,并提取音頻幀與視頻的特征信息; 幀解碼單元,還用于分別根據音頻幀與視頻幀的特征信息,對解復用單元得到的音頻幀與視頻幀進行解碼,得到音頻數據與視頻數據。
20.根據權利要求19所述的裝置,其特征在于,當前幀的相關信息包括當前幀的同步頭起始位置、幀長與特征信息; 所述幀檢測單元,還用于基于當前幀與下一幀的特征信息對當前幀進行完整性檢測;以及響應于當前幀通過完整性檢測,基于當前幀的相關信息確定當前幀數據。
21.根據權利要求20所述的裝置,其特征在于,所述幀解碼單元,還用于接收當前幀的特征信息,或者接收當前幀的同步頭起始位置信息,并根據當前幀的同步頭起始位置檢測當前幀的特征信息;根據當前幀的特征信息中的CRC標識,對當前幀數據進行錯誤校驗;具體對經過錯誤校驗的當前幀進行解碼。
22.根據權利要求21所述的解碼處理裝置,其特征在于,所述幀檢測單元,還用于將當前幀數據,與當前幀的相關信息或相關信息中的同步頭起始位置信息發送給幀解碼單元。
23.根據權利要求19至21任意一項所述的裝置,其特征在于,還包括 控制單元,用于向文件讀取單元發送讀取控制命令;根據文件讀取單元返回的識別結果消息,響應于流媒體文件碼流為基本碼流,向幀檢測單元發送檢測命令;接收幀檢測單元返回的當前幀數據,與當前幀的相關信息或相關信息中的同步頭起始位置信息,并向幀解碼單元發送解碼命令與當前幀數據,所述解碼命令包括當前幀的相關信息或相關信息中的同步頭起始位置信息; 所述文件讀取單元,具體響應于控制單元的讀取控制命令,對外部存儲單元的輸入空間進行監控,響應于外部存儲單元的輸入空間有空余,從文件存儲單元讀取流媒體文件碼流并存儲在外部存儲單元的輸入空間內,識別讀取到流媒體文件碼流為基本碼流或封裝碼流,并向控制單元返回識別結果消息; 所述幀檢測單元,具體根據所述檢測命令從基本碼流中檢測當前幀的相關信息,并基于當前幀的相關信息確定當前幀數據,將當前幀數據,與當前幀的相關信息或相關信息中的同步頭起始位置信息發送給控制單元; 所述幀解碼單元,具體根據解碼命令對當前幀數據進行解碼。
24.根據權利要求23所述的裝置,其特征在于,所述幀解碼單元,還用于將解碼得到的流媒體數據存儲在外部存儲單元的緩沖區中,并向控制單元返回正確解碼的解碼結果消息
25.根據權利要求23所述的裝置,其特征在于,所述控制單元,還用于根據所述識別結果消息,響應于流媒體文件碼流為封裝碼流,向解復用單元發送解復用命令;以及接收解復用單元返回的音頻幀與視頻幀及其特征信息,并向幀解碼單元發送解碼命令、音頻幀與視頻幀,所述解碼命令包括音頻幀與視頻幀的特征信息; 所述解復用單元,具體根據所述解復用命令對封裝碼流進行解復用,分離出音頻PES與視頻PES,分別對音頻PES與視頻PES進行拆包、解封裝,得到音頻幀與視頻幀,提取音頻幀與視頻幀的特征信息;并將音頻幀與視頻幀及其特征信息發送給控制單元; 所述幀解碼單元,具體根據解碼命令對音頻幀與視頻幀進行解碼,得到音頻數據與視頻數據。
26.根據權利要求25所述的裝置,其特征在于,所述幀解碼單元,還用于將解碼得到的音頻數據與視頻數據存儲在外部存儲單元的緩沖區中,并向控制單元返回正確解碼的解碼結果消息。
27.根據權利要求19至21任意一項所述的裝置,其特征在于,還包括 控制單元,用于向文件讀取單元發送讀取控制命令;根據文件讀取單元返回的識別結果消息,響應于流媒體文件碼流為基本碼流,向幀檢測單元發送檢測命令;接收幀檢測單元返回的檢測完成消息,所述檢測完成消息中包括當前幀的相關信息或相關信息中的同步頭起始位置信息,并向解碼處理裝置中的幀解碼單元發送解碼命令,所述解碼命令包括當前幀的相關信息或相關信息中的同步頭起始位置信息; 交互存儲單元,用于存儲幀檢測單元確定的當前幀數據; 所述文件讀取單元,具體響應于控制單元的讀取控制命令,對外部存儲單元的輸入空間進行監控,響應于外部存儲單元的輸入空間有空余,從文件存儲單元讀取流媒體文件碼流并存儲在外部存儲單元的輸入空間內,識別讀取到流媒體文件碼流為基本碼流或封裝碼流,并向控制單元返回識別結果消息; 所述幀檢測單元,具體根據所述檢測命令從基本碼流中檢測當前幀的相關信息,并基于當前幀的相關信息確定當前幀數據,將當前幀數據存儲在交互存儲單元中,并向控制單元發送檢測完成消息,所述檢測完成消息中包括當前幀的相關信息或相關信息中的同步頭起始位置信息; 所述幀解碼單元,具體根據解碼命令對交互存儲單元中的當前幀數據進行解碼。
28.根據權利要求27所述的裝置,其特征在于,所述幀解碼單元,還用于將解碼得到的流媒體數據存儲在所述交互存儲單元中,并向控制單元返回正確解碼的解碼結果消息; 所述交互存儲單元,還用于存儲幀解碼單元解碼得到的流媒體數據。
29.根據權利要求28所述的裝置,其特征在于,所述控制單元,還用于根據所述識別結果消息,響應于流媒體文件碼流為封裝碼流,向解復用單元發送解復用命令;以及接收解復用單元返回的解復用完成消息,所述解復用完成消息中包括音頻幀與視頻幀的特征信息,并向幀解碼單元發送解碼命令,所述解碼命令包括音頻幀與視頻幀的特征信息; 所述解復用單元,具體根據所述解復用命令對封裝碼流進行解復用,分離出音頻PES與視頻PES,分別對音頻PES與視頻PES進行拆包、解封裝,得到音頻幀與視頻幀并存儲在交互存儲單元中,提取音頻幀與視頻幀的特征信息,并向控制單元發送所述解復用完成消息; 所述幀解碼單元,具體根據解碼命令,對交互存儲單元中的音頻幀與視頻幀進行解碼,得到音頻數據與視頻數據。
30.根據權利要求29所述的裝置,其特征在于,所述幀解碼單元,還用于將解碼得到的音頻數據與視頻數據存儲在所述交互存儲單元中,并向控制單元返回正確解碼的解碼結果消息; 所述交互存儲單元,還用于存儲幀解碼單元解碼得到的音頻數據與視頻數據。
31.根據權利要求30所述的裝置,其特征在于,所述解碼處理裝置包括第一處理器單元與第二處理器單元; 控制單元、幀檢測單元與解復用單元設置在第一處理器單元中; 幀解碼單元設置在第二處理器單元中。
32.根據權利要求31所述的裝置,其特征在于,還包括第三處理器單元,用于作為解碼加速單元,對所述幀解碼單元的解碼進行加速; 所述幀解碼單元,還用于在對交互存儲單元中的音頻數據與視頻數據進行解碼的過程中,調用第三處理器單元進行加速。
33.一種播放設備,包括外部存儲單元與文件存儲單元,其特征在于,還包括權利要求23至26任意一項所述的流媒體文件的解碼處理裝置,以及播放單元; 所述解碼處理裝置中的控制單元,還用于響應于幀解碼單元發送的解碼結果消息,向播放單元發送播放命令; 所述播放單元,用于根據所述播放命令,對外部存儲單元的緩沖區中的音頻數據與視頻數據進行輸出播放。
34.一種播放設備,包括外部存儲單元與文件存儲單元,其特征在于,還包括權利要求27至32任意一項所述的流媒體文件的解碼處理裝置,以及播放單元; 所述解碼處理裝置中的控制單元,還用于響應于幀解碼單元發送的解碼結果消息,將交互存儲單元中的音頻數據與視頻數據,搬移到外部存儲單元的緩沖區中,并向播放單元發送播放命令; 所述播放單元,用于根據所述播放命令,對外部存儲單元的緩沖區中的音頻數據與視頻數據,進行輸出播放。
35.根據權利要求34所述的播放設備,其特征在于,所述播放單元設置在第一處理器中。
全文摘要
本發明實施例公開了一種流媒體文件的解碼處理方法與裝置、播放設備,其中,方法包括讀取流媒體文件碼流,并識別讀取到的流媒體文件碼流為ES或封裝碼流,所述流媒體文件碼流包括音頻文件碼流和/或視頻文件碼流;響應于流媒體文件碼流為ES,基于當前幀的相關信息而非解復用單元提供的碼流信息,對當前幀數據進行解碼,得到流媒體數據,所述流媒體數據包括音頻數據或者視頻數據。本發明實施例使在封裝碼流的播放設備中可以實現對ES的解碼、播放,在同一個播放設備中實現了,采用同一個播放系統來播放封裝碼流與以ES形式形成的流媒體文件。
文檔編號H04N7/26GK103037211SQ20111030116
公開日2013年4月10日 申請日期2011年9月29日 優先權日2011年9月29日
發明者李曇, 張本好, 徐晶明, 吳晟, 林福輝 申請人:展訊通信(上海)有限公司