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