專利名稱:具有環(huán)狀緩沖器的音頻譯碼系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及音頻譯碼系統(tǒng)及方法,特別是涉及一種具有環(huán)狀緩沖器的音頻譯碼系統(tǒng)及方法。
背景技術(shù):
圖1為一DVD播放裝置100的方框圖,其包含一用戶界面28、一控制模塊29、一主控單元21、一多路解碼器22、一音頻譯碼器231、一視頻譯碼器232、一音頻后段處理單元24、一音頻輸出單元25、一視頻后段處理單元26及一視頻輸出單元27。DVD播放裝置100通過光學(xué)讀取裝置(未圖示)而讀取記錄在一光盤片(未圖示)上的數(shù)據(jù),而主控單元21將讀取進(jìn)來的視頻音頻流交給多路解碼器22分為視頻數(shù)據(jù)流(video stream)跟音頻數(shù)據(jù)流(audio stream),并分別將音頻數(shù)據(jù)流跟視頻數(shù)據(jù)流輸出至音頻譯碼器231及視頻譯碼器232。視頻數(shù)據(jù)流經(jīng)過視頻譯碼器232譯碼后,通過視頻后段處理單元26進(jìn)行后處理(post-processing),再經(jīng)過視頻輸出單元27顯示影像畫面在一顯示屏幕(未圖示)上。音頻數(shù)據(jù)流經(jīng)過音頻譯碼器231譯碼后,通過音頻后段處理單元24進(jìn)行后處理(post-processing),再由音頻輸出單元25通過一揚(yáng)聲器(未圖示)播放出聲音,或音頻輸出單元25將聲音信息傳送到外部的譯碼器。而用戶可以通過用戶界面28來控制DVD播放裝置100的各種功能。
一般公知的音頻譯碼器231可針對AC3、MPEG Audio或線性脈沖編碼調(diào)制(Linear Pulse Code Modulation,LPCM)格式進(jìn)行譯碼。AC3、MPEG Audio或線性脈沖編碼調(diào)制等音頻數(shù)據(jù)流由音頻數(shù)據(jù)包(audiopack)所組成,圖2為顯示一包含有LPCM音頻數(shù)據(jù)包的數(shù)據(jù)包格式,該數(shù)據(jù)包包含一個數(shù)據(jù)包報頭210及一個LPCM音頻數(shù)據(jù)包220。LPCM音頻數(shù)據(jù)包220分為音頻數(shù)據(jù)包報頭221、LPCM相關(guān)信息222及LPCM音頻數(shù)據(jù)223等三部分。LPCM相關(guān)信息222如圖3所示,其包含了LPCM音頻數(shù)據(jù)包的相關(guān)信息,其中,Number_of_frame_headers(幀報頭數(shù))字段是8個位,其表示有多少個音頻幀的第一字節(jié)在這個LPCM音頻數(shù)據(jù)包220中。First_access_unit_pointer(第一存取單元指針)字段是16個位,其表示在這個LPCM音頻數(shù)據(jù)包220中第一個音頻幀的位置。
LPCM音頻數(shù)據(jù)223如圖4所示由音頻幀群(Group of audioframes,GOF)所組成。一個音頻幀群包含20個音頻幀,每個音頻幀包含了1/600秒的音頻取樣數(shù)據(jù)(在48kHz取樣頻率時有80個取樣數(shù)據(jù),在96kHz取樣頻率時有160個取樣數(shù)據(jù))。音頻取樣數(shù)據(jù)的排列方式如圖5所示,在同一個取樣時間點(diǎn)時,依據(jù)取樣的順序及信道的次序排列,有3種不同的模式16位、20位、24位三種模式。
由圖5可看出,LPCM數(shù)據(jù)流沒有幀報頭(frame header),所以沒有辦法像AC3或MPEG Audio數(shù)據(jù)流可以通過找尋幀報頭以及CRC的正確性來確保數(shù)據(jù)流的同步。由于LPCM音頻取樣數(shù)據(jù)在LPCM音頻數(shù)據(jù)流中的排列方式,若沒有適當(dāng)?shù)耐綑C(jī)制,當(dāng)數(shù)據(jù)流發(fā)生錯誤或損壞而導(dǎo)致數(shù)據(jù)有所增減時,會致使音頻取樣數(shù)據(jù)的對齊產(chǎn)生錯誤,而導(dǎo)致完全錯誤的譯碼。
針對上述問題,在美國專利第USP6334026號專利案中,在每個LPCM音頻數(shù)據(jù)包(audio pack)之前插入一個4至10位的同步字(synchronization word),如此一音頻譯碼裝置會先找尋到正確的同步字后,才進(jìn)行動作,其利用插入同步字的方法,而讓音頻譯碼裝置能與LPCM數(shù)據(jù)流維持同步。
然而,利用插入同步字的方法,雖可以有效維持與LPCM數(shù)據(jù)流之間同步,但是卻會增加數(shù)據(jù)流的數(shù)據(jù)量及傳輸時所花費(fèi)的傳輸頻寬,而且同步失敗時還會導(dǎo)致音頻譯碼裝置的譯碼錯誤。對于簡單的LPCM音頻譯碼裝置而言,此方法也較無效率。故公知的LPCM音頻譯碼裝置及方法仍有改善的空間。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種可變長度的環(huán)狀緩沖器控制方法及系統(tǒng),以能維持一音頻譯碼裝置與音頻數(shù)據(jù)流之間同步。
依據(jù)本發(fā)明的一方面,提出一種具有環(huán)狀緩沖器的音頻譯碼系統(tǒng),其接收并維持一音頻數(shù)據(jù)流的同步,該音頻數(shù)據(jù)流中包含多個最小譯碼單元,該系統(tǒng)包含一環(huán)狀緩沖器、一解析裝置及一譯碼裝置。該環(huán)狀緩沖器用以儲存多個最小譯碼單元;該解析裝置用以解析該音頻數(shù)據(jù)流以產(chǎn)生多個連續(xù)的最小譯碼單元,且逐一將所產(chǎn)生的最小譯碼單元寫至該環(huán)狀緩沖器中,并使得該環(huán)狀緩沖器中的第一個最小譯碼單元對齊該環(huán)狀緩沖器的起始位置,且動態(tài)調(diào)整環(huán)狀緩沖器的結(jié)束位置,使得該環(huán)狀緩沖器的長度為最小譯碼單元數(shù)據(jù)長度的倍數(shù),并輸出該環(huán)狀緩沖器的結(jié)束位置至譯碼裝置;該譯碼裝置依據(jù)該解析裝置輸出的該環(huán)狀緩沖器的結(jié)束位置,以由該環(huán)狀緩沖器的起始處連續(xù)讀取最小譯碼單元直至該環(huán)狀緩沖器的結(jié)束位置處,并對讀取的每一最小譯碼單元進(jìn)行譯碼。
依據(jù)本發(fā)明的另一方面,提供一種音頻譯碼方法,其接收并維持一音頻數(shù)據(jù)流的同步,該音頻數(shù)據(jù)流中包含多個最小譯碼單元,使用一環(huán)狀緩沖器以暫存該最小譯碼單元,該方法包含一解析步驟,用以解析該音頻數(shù)據(jù)流以產(chǎn)生多個連續(xù)的最小譯碼單元,且逐一將所產(chǎn)生的最小譯碼單元寫至一環(huán)狀緩沖器中,并使得該環(huán)狀緩沖器中的第一個最小譯碼單元對齊該環(huán)狀緩沖器的起始位置,且動態(tài)調(diào)整環(huán)狀緩沖器的結(jié)束位置,使得該環(huán)狀緩沖器的長度為最小譯碼單元數(shù)據(jù)長度的倍數(shù),并輸出該環(huán)狀緩沖器的結(jié)束位置至譯碼裝置;一譯碼步驟,依據(jù)該解析步驟輸出該環(huán)狀緩沖器的結(jié)束位置,以由該環(huán)狀緩沖器的起始處連續(xù)讀取最小譯碼單元直至該環(huán)狀緩沖器的結(jié)束位置處,并對讀取的每一最小譯碼單元進(jìn)行譯碼。
圖1為公知DVD播放裝置的方框圖。
圖2為一LPCM音頻數(shù)據(jù)包的數(shù)據(jù)包格式的示意圖。
圖3為一LPCM相關(guān)信息字段的示意圖。
圖4為一LPCM音頻幀群所組成(GOP)的示意圖。
圖5為一音頻取樣數(shù)據(jù)的排列方式的示意圖。
圖6為本發(fā)明的具有環(huán)狀緩沖器的音頻譯碼系統(tǒng)的方框圖。
圖7為本發(fā)明的具有環(huán)狀緩沖器的音頻譯碼系統(tǒng)的運(yùn)作示意圖。
圖8為本發(fā)明的音頻譯碼方法的流程圖。
圖9為一WAVE文件格式相關(guān)信息字段的示意圖。
具體實施例方式
圖6為本發(fā)明的一種具有環(huán)狀緩沖器的音頻譯碼系統(tǒng)的方框圖,其接收并維持一音頻數(shù)據(jù)流的同步,該音頻數(shù)據(jù)流包含多個音頻幀,并以音頻幀作為一個最小譯碼單元,其中,該音頻數(shù)據(jù)流為線性脈沖編碼調(diào)制格式,且由多個音頻數(shù)據(jù)包所接續(xù)而成,每一音頻數(shù)據(jù)包含有多個完整或部分的音頻幀。該音頻譯碼系統(tǒng)包含一環(huán)狀緩沖器520(ring buffer)、一解析裝置510及一譯碼裝置530。
并請參照圖7所示本發(fā)明的具有環(huán)狀緩沖器的音頻譯碼系統(tǒng)的運(yùn)作示意圖。該環(huán)狀緩沖器520用以儲存多個音頻幀,其利用一BTS_STR_ADDR信號記錄所儲存多個音頻幀的起始位置,并利用一BTS_END_ADDR信號記錄所儲存多個音頻幀的結(jié)束位置,利用一BTS_MAX_LEN信號記錄該環(huán)狀緩沖器520最大長度。
該解析裝置510用以接收音頻數(shù)據(jù)流并解析該音頻數(shù)據(jù)流中包含的LPCM相關(guān)信息222以產(chǎn)生多個連續(xù)的音頻幀。解析裝置510將相關(guān)的譯碼參數(shù)(量化字長度(quantization_word_length),音頻取樣頻率(audio_sampling_frequency),音頻信道數(shù)(number_of_audio_channels),…)設(shè)定至譯碼裝置530,且逐一將所產(chǎn)生的音頻幀寫至該環(huán)狀緩沖器520中,其中第一個音頻幀(i-1)由BTS_STR_ADDR信號所記錄的位置處開始填入,且第一個音頻幀(i-1)的起始位置將會對齊環(huán)狀緩沖器520的起始位置BTS_STR_ADDR。
下一個音頻幀(i)將再接續(xù)前一個音頻幀(i-1)的結(jié)束位置處開始填入,同時比較目前填入環(huán)狀緩沖器520的音頻幀總長度是否大于BTS_MAX_LEN信號,若否,表示該環(huán)狀緩沖器520仍有空間可儲存該音頻幀,故將該音頻幀(i)寫入至該環(huán)狀緩沖器520中,并再依序?qū)ο乱粋€音頻幀(i+1)重復(fù)做此一檢查。若是,則表示無法再完整填入一個音頻幀至該環(huán)狀緩沖器520,此時以已經(jīng)填入該環(huán)狀緩沖器520中的最后一個音頻幀的結(jié)束位置作為該環(huán)狀緩沖器520的結(jié)束位置(BTS_END_ADDR),并將該環(huán)狀緩沖器520的結(jié)束位置(BTS_END_ADDR)輸出至該譯碼裝置530,而下一個要填入環(huán)狀緩沖器520的音頻幀(i+1)將重新回到該環(huán)狀緩沖器520的起始位置BTS_STR_ADDR處再開始填入。
該譯碼裝置530依據(jù)該解析裝置輸出的該環(huán)狀緩沖器520的結(jié)束位置(BTS_END_ADDR),以由該環(huán)狀緩沖器520的起始處(BTS_STR_ADDR)連續(xù)讀取音頻幀直至該環(huán)狀緩沖器520的結(jié)束位置處(BTS_END_ADDR),并對讀取的每一音頻幀進(jìn)行譯碼,以產(chǎn)生PCM格式的音頻數(shù)據(jù)。當(dāng)連續(xù)讀取至BTS_END_ADDR處,重回到BTS_STR_ADDR。
圖8進(jìn)一步顯示本發(fā)明的音頻譯碼方法的流程圖。首先,在步驟S710中,該解析裝置510讀取該音頻數(shù)據(jù)流,并解析該音頻數(shù)據(jù)流以產(chǎn)生音頻幀。在步驟S712中,將所產(chǎn)生的第一個音頻幀寫至該環(huán)狀緩沖器520的起始處中,該環(huán)狀緩沖器520的起始處以一BTS_STR_ADDR信號表示,并用一BTS_END_ADDR信號記錄所儲存多個音頻幀的結(jié)束位置及一BTS_MAX_LEN信號記錄該環(huán)狀緩沖器520最大長度。
在步驟S714中,判斷下一個音頻幀是否超出該環(huán)狀緩沖器520的長度BTS_MAX_LEN,若沒有,表示該環(huán)狀緩沖器520仍有空間可儲存該音頻幀,故將該音頻幀寫入至該環(huán)狀緩沖器520中(步驟S716)并再執(zhí)行步驟S714。若是,則表示無法完整填入一個音頻幀至該環(huán)狀緩沖器520,此時執(zhí)行步驟S718,以設(shè)定環(huán)狀緩沖器520的結(jié)尾處,其以已經(jīng)填入該環(huán)狀緩沖器520中的最后一個音頻幀的結(jié)束位置作為該環(huán)狀緩沖器520的結(jié)束位置(BTS_END_ADDR)。
該譯碼裝置530在步驟S720中,由該環(huán)狀緩沖器520的起始處(BTS_STR_ADDR)開始讀取音頻幀,并對讀取的音頻幀進(jìn)行譯碼,以產(chǎn)生PCM格式的音頻數(shù)據(jù)。在步驟S722中,依據(jù)解析裝置510輸出的環(huán)狀緩沖器520的結(jié)束位置(BTS_END_ADDR),判斷下一個獲取的音頻幀是否超出該環(huán)狀緩沖器520的結(jié)束位置處,若是,則重回步驟S720,若不是,則執(zhí)行步驟S724。在步驟S724中,該譯碼裝置530由該環(huán)狀緩沖器520讀取下一個音頻幀,并重回步驟S722。
圖9為一WAVE文件格式的文件報頭的格式塊(format chunk)中所包含的相關(guān)信息,其中,nBlockAlign字段代表音頻數(shù)據(jù)在數(shù)據(jù)塊(datachunk)中的塊對齊(block alignment)。以此塊大小作為一個最小譯碼單元。本發(fā)明的解析裝置510接收并解析一WAVE文件數(shù)據(jù)流以產(chǎn)生多個最小譯碼單元,并逐一寫至環(huán)狀緩沖器520中。譯碼裝置530由環(huán)狀緩沖器中讀取最小譯碼單元并進(jìn)行譯碼,以產(chǎn)生PCM格式的音頻數(shù)據(jù)。其過程一如圖8的流程圖所示。
由上述說明可知,在本發(fā)明中解析裝置510及譯碼裝置530之間存在一環(huán)狀緩沖器520,通過解析音頻數(shù)據(jù)流中的相關(guān)信息(如LPCM相關(guān)信息222)并利用環(huán)狀緩沖器520的起始位置(BTS_STR_ADDR)所隱含的同步機(jī)制,譯碼裝置530每次重回BTS_STR_ADDR位置處,由于解析裝置510一定填入一個完整音頻幀,故譯碼裝置530能對完整音頻幀進(jìn)行譯碼。故利用本發(fā)明的技術(shù),不僅能維持一LPCM音頻譯碼裝置與LPCM數(shù)據(jù)流之間同步,同時可避免公知技術(shù)所產(chǎn)生數(shù)據(jù)流的數(shù)據(jù)量及傳輸頻寬增加的問題。
上述實施例僅為了方便說明而舉例而已,本發(fā)明所主張的權(quán)利范圍自應(yīng)以所附權(quán)利要求為準(zhǔn),而非僅限于上述實施例。
權(quán)利要求
1.一種具有環(huán)狀緩沖器的音頻譯碼系統(tǒng),其接收并維持一音頻數(shù)據(jù)流的同步,該音頻數(shù)據(jù)流中包含多個最小譯碼單元,該系統(tǒng)包含一環(huán)狀緩沖器,用以儲存多個最小譯碼單元;一解析裝置,用以解析該音頻數(shù)據(jù)流以產(chǎn)生多個連續(xù)的最小譯碼單元,且逐一將所產(chǎn)生的最小譯碼單元寫至該環(huán)狀緩沖器中,并使得該環(huán)狀緩沖器中的第一個最小譯碼單元的起始位置對齊該環(huán)狀緩沖器的起始位置,且動態(tài)調(diào)整該環(huán)狀緩沖器的結(jié)束位置,使得該環(huán)狀緩沖器的長度為最小譯碼單元數(shù)據(jù)長度的倍數(shù),并輸出該環(huán)狀緩沖器的結(jié)束位置至譯碼裝置;以及一譯碼裝置,依據(jù)該解析裝置輸出的該環(huán)狀緩沖器的結(jié)束位置,以由該環(huán)狀緩沖器的起始處連續(xù)讀取最小譯碼單元直至該環(huán)狀緩沖器的結(jié)束位置處,并同時進(jìn)行音效譯碼。
2.如權(quán)利要求1所述的音頻譯碼系統(tǒng),其中,該音頻數(shù)據(jù)流為線性脈沖編碼調(diào)制格式。
3.如權(quán)利要求2所述的音頻譯碼系統(tǒng),其中,該最小譯碼單元為一個音頻幀群、或為一個音頻幀、或為一組完整的音頻取樣數(shù)據(jù)。
4.如權(quán)利要求1所述的音頻譯碼系統(tǒng),其中,該音頻數(shù)據(jù)流為WAVE文件格式。
5.如權(quán)利要求4所述的音頻譯碼系統(tǒng),其中,該最小譯碼單元的單位為WAVE文件格式的文件報頭中nBlockAlign字段中所定義的大小。
6.一種音頻譯碼方法,其接收并維持一音頻數(shù)據(jù)流的同步,該音頻數(shù)據(jù)流中包含多個最小譯碼單元,使用一環(huán)狀緩沖器以暫存最小譯碼單元,該方法包含一解析步驟,用以解析該音頻數(shù)據(jù)流以產(chǎn)生多個連續(xù)的最小譯碼單元,且逐一將所產(chǎn)生的最小譯碼單元寫至一環(huán)狀緩沖器中,并使得該環(huán)狀緩沖器中的第一個最小譯碼單元的起始位置對齊該環(huán)狀緩沖器的起始位置,且動態(tài)調(diào)整該環(huán)狀緩沖器的結(jié)束位置,使得該環(huán)狀緩沖器的長度為最小譯碼單元數(shù)據(jù)長度的倍數(shù),并輸出該環(huán)狀緩沖器的結(jié)束位置至譯碼裝置;以及一譯碼步驟,依據(jù)該解析步驟輸出該環(huán)狀緩沖器的結(jié)束位置,以由該環(huán)狀緩沖器的起始處連續(xù)讀取最小譯碼單元直至該環(huán)狀緩沖器的結(jié)束位置處,并同時進(jìn)行音效譯碼。
7.如權(quán)利要求6所述的音頻譯碼方法,其中,該音頻數(shù)據(jù)流為線性脈沖編碼調(diào)制格式。
8.如權(quán)利要求7所述的音頻譯碼方法,其中,該最小譯碼單元為一個音頻幀群、或為一個音頻幀、或為一組完整的音頻取樣數(shù)據(jù)。
9.如權(quán)利要求6所述的音頻譯碼方法,其中,該音頻數(shù)據(jù)流為WAVE文件格式。
10.如權(quán)利要求9所述的音頻譯碼方法,其中,該最小譯碼單元的單位為WAVE文件格式的文件報頭中nBlockAlign字段中所定義的大小。
全文摘要
本發(fā)明涉及一種具有環(huán)狀緩沖器的音頻譯碼系統(tǒng)及方法,其接收并維持一音頻數(shù)據(jù)流的同步,該音頻數(shù)據(jù)流中包含多個最小譯碼單元,該系統(tǒng)包含一環(huán)狀緩沖器、一解析裝置及一譯碼裝置。解析裝置通過音頻數(shù)據(jù)流的特性及環(huán)狀緩沖器的起始位置所隱含的同步機(jī)制,可使得音頻數(shù)據(jù)流中的最小譯碼單元與環(huán)狀緩沖器的起始位置對齊,當(dāng)音頻數(shù)據(jù)流在傳輸上因錯誤而導(dǎo)致數(shù)據(jù)有所增減時,則可達(dá)到自動同步的效果。
文檔編號G10L19/08GK1773607SQ200410090719
公開日2006年5月17日 申請日期2004年11月8日 優(yōu)先權(quán)日2004年11月8日
發(fā)明者陳昱志, 黃景明 申請人:凌陽科技股份有限公司