音頻數據的解碼方法和裝置以及應用其的片上系統的制作方法
【技術領域】
[0001] 本發明涉及計算機領域,具體涉及一種音頻數據的解碼方法和裝置以及應用其的 片上系統。
【背景技術】
[0002] 在S0C(System on Chip,芯片級系統)電路中,解碼器可以有軟解碼和硬解碼兩 種,硬解碼也就是使用硬件來解碼,當集成電路設計完成之后,解碼能力也就確定了,無法 修改,所以硬解碼器一般都會存在某些格式的兼容問題,比如存在硬解碼器無法播放WMA 多負載(WM Multiple Payload)音頻文件的問題,但能夠播放WM單負載(WM Single Payload)歌曲,當遇到這樣的問題時,軟件上傳統的做法是跳過不能播放的歌曲,不去解 碼,這樣就會降低解碼能力。
[0003] 如果能夠在不修改硬解碼器的情況下,也有辦法播放WM多負載音頻文件,就能 夠提高SOC的解碼能力,也可以不用修改硬解碼核,節省成本,降低損失。
【發明內容】
[0004] 有鑒于此,本發明提供一種音頻數據的解碼方法和裝置以及應用其的片上系統, 在音頻數據經過硬解碼器之前增加格式轉換單元,以解決上述問題。
[0005] 在本發明的一方面,本發明提供一種音頻數據的解碼方法,包括:獲取第一音頻數 據;判斷所述第一音頻數據是否具有第一數據格式;將有第一數據格式的第一音頻數據轉 換為第二音頻數據,所述第二音頻數據具有第二數據格式;控制硬解碼器解碼所述第二音 頻數據。
[0006] 優選地,還包括:在所述第一音頻數據具有第二數據格式時,控制硬解碼器解碼具 有所述第二數據格式的所述第一音頻數據。
[0007] 優選地,所述第一數據格式為WMA多負載WMA Multiple Payload格式,所述第二 數據格式為WMA單負載WMA Single Payload格式。
[0008] 優選地,根據所述第一音頻數據的數據包的信息解析段的第一字段判斷所述第一 音頻數據是否是WMA多負載WMA Multiple Payload格式。
[0009] 優選地,所述將所述具有第一數據格式的第一音頻數據轉換為第二音頻數據包 括:根據WM多負載WMA Multiple Payload格式解析所述第一音頻數據,提取文件頭和數 據包的誤差校正數據段,信息解析段,有效數據段和補位段;從有效數據段中提取第一個到 第η個子包包頭和子包數據,其中η為大于等于1的整數;修改所述文件頭、信息解析段和 每個子包包頭,并將修改后的文件頭、誤差校正數據段、修改后的信息解析段、補位段以及 修改后的η個子包包頭和子包數據組織起來生成具有η個包數據的第二音頻數據。
[0010] 優選地,所述解碼方法應用于音頻解碼片上系統(SOC),所述音頻解碼片上系統 包括微控制器、所述硬解碼器和解碼器緩存;所述控制解碼器解碼所述第二音頻數據包括: 所述微控制器獲取所述第二音頻數據并保存在所述解碼器緩存中,所述硬解碼器從所述解 碼器緩存中獲取所述第二音頻數據進行解碼。
[0011] 優選地,所述將所述具有第一數據格式的第一音頻數據轉換為第二音頻數據包 括:根據WM多負載WMA Multiple Payload格式解析所述第一音頻數據,提取文件頭、誤差 校正數據段、信息解析段、有效數據段、補位段以及一個子包包頭;將所述第一音頻數據在 解碼器緩存的存儲位置作為解碼器緩存的第二位置,獲取第一個以及η個子包數據在第二 位置的起始地址和長度;將誤差校正數據段、修改后的信息解析段、修改后的子包包頭順序 存儲到所述解碼器緩存的第一位置,以及將補位段存儲到解碼器緩存的第三位置。
[0012] 優選地,所述解碼方法應用于音頻解碼片上系統(SOC),所述音頻解碼片上系統包 括微控制器和所述硬解碼器;所述控制硬解碼器解碼所述第二音頻數據包括:先控制硬解 碼器解碼第一位置的公共數據,再控制硬解碼器解碼第二位置的第η個子包數據,最后解 碼第三位置的補位段,其中η是大于等于1的整數;按上述步驟順序解碼第二位置的每個子 包數據。
[0013] 在本發明的另一方面,本發明提供一種音頻解碼裝置,包括:獲取單元,用于獲取 第一音頻數據;判斷單元,用于判斷所述第一音頻數據是否具有第一數據格式;格式轉換 單元,用于將所述具有第一數據格式的第一音頻數據轉換為第二音頻數據,所述第二音頻 數據具有第二數據格式;解碼單元,用于控制硬解碼器解碼所述第二音頻數據。
[0014] 優選地,所述解碼單元還用于解碼具有所述第二數據格式的第一音頻數據。
[0015] 優選地,所述第一數據格式為WMA多負載WMA Multiple Payload,所述第二數據格 式為 WMA 單負載 WMA Single Payload。
[0016] 優選地,根據所述第一音頻數據的數據包的信息解析段的第一字段判斷所述第一 音頻數據是否是WMA多負載WMA Multiple Payload格式。
[0017] 優選地,所述格式轉換單元包括:解析模塊,用于根據WMA多負載WMA Multiple Payload格式解析所述第一音頻數據,提取文件頭和數據包的誤差校正數據段,信息解析 段,有效數據段和補位段,從有效數據段中提取第一個到第η個子包包頭和子包數據,其中 η為大于等于1的整數,根據WMA單負載WMA Single Payload格式修改所述文件頭、信息解 析段和每個子包包頭;創建模塊,用于將修改后的文件頭、誤差校正數據段、修改后的信息 解析段、補位段以及修改后的η個子包包頭和子包數據組織起來生成具有η個包數據的第 二音頻數據。
[0018] 優選地,所述解碼單元應用于音頻解碼片上系統(SOC),所述音頻解碼片上系統包 括微控制器、所述硬解碼器和解碼器緩存;所述解碼單元用于控制所述微控制器獲取所述 第二音頻數據并保存在所述解碼器緩存中,并控制所述硬解碼器從所述解碼器緩存中獲取 所述第二音頻數據進行解碼。
[0019] 優選地,所述格式轉換單元包括:提取模塊,用于根據WMA多負載WMA Multiple Payload格式解析所述第一音頻數據,提取文件頭、誤差校正數據段,信息解析段,有效數據 段和補位段以及一個子包包頭;尋址模塊,用于將所述第一音頻數據在解碼器緩存的存儲 位置作為解碼器緩存的第二位置,獲取第一個以及η個子包數據在第二位置的起始地址和 長度;存儲模塊,用于將誤差校正數據段、修改后的信息解析段、修改后的子包包頭順序存 儲到所述解碼器緩存的第一位置,以及將補位段存儲到解碼器緩存的第三位置。
[0020] 優選地,所述解碼單元控制所述硬解碼器先解碼第一位置的公共數據,再控制硬 解碼器解碼第二位置的第η個子包數據,最后解碼第三位置的補位段,其中η是大于等于I 的整數;以及按上述步驟順序解碼第二位置的每個子包數據。
[0021] 第三方面,本發明還提供一種片上系統,包括微處理器、硬解碼器和解碼緩存,所 述微處理器被配置為適于執行如上所述的方法。
[0022] 本發明提供一種音頻數據的解碼方法,通過將第一音頻數據轉換成第二音頻數 據,在不修改硬解碼器的條件下,實現硬解碼器對具有第一數據格式的音頻數據的解碼,更 具體地,通過WM單負載的硬解碼器實現WM多負載的音頻數據的解碼。本發明同時提供 應用上述解碼方法的音頻解碼裝置。本發明提供的方法適用于解決SOC電路在解碼格式上 存在的兼容性問題,通過將WM多負載格式轉換成SOC電路能夠支持的WM單負載格式,提 高了 SOC電路的適應性,節約了產品研發成本。
【附圖說明】
[0023] 通過參照以下附圖對本發明實施例的描述,本發明的上述以及其它目的、特征和 優點將更為清楚,在附圖中:
[0024] 圖1是本發明實施例的音頻數據的解碼方法的流程圖;
[0025] 圖2a_2b是WM多負載格式轉成WM單負載格式的兩個實施例的流程圖;
[0026] 圖3a_3d是WM多負載格式轉成WM單負載格式各個步驟的數據結構圖;
[0027] 圖4是本發