專利名稱:多格式碼流的解析方法、多格式碼流的解析裝置和顯示裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及視頻編解碼技術(shù)領(lǐng)域,具體而言,涉及ー種多格式碼流解析方法、ー種多格式碼流解析裝置和一種顯示裝置。
背景技術(shù):
在數(shù)字電視片上系統(tǒng)的開發(fā)過程中,視頻編解碼是其要實(shí)現(xiàn)的重要的功能,如果解碼過程處理不佳,視頻播放時(shí)就會(huì)出現(xiàn)花屏、播放不流暢等現(xiàn)象,從而影響電視觀眾的用戶體驗(yàn)。因此,開發(fā)過程中,做好視頻碼流的解析工作非常重要。目前,音視頻產(chǎn)業(yè)可以選擇的信源編碼標(biāo)準(zhǔn)主要有四個(gè)MPEG_2、MPEG-4,MPEG-4AVC (簡(jiǎn)稱AVC、H. 264)和AVS。而用戶要觀看的視頻的類型不只ー種,這就要求研發(fā)數(shù)字電視片上系統(tǒng)時(shí),能夠支持至少上述各種視頻格式的碼流解析。但在相關(guān)技術(shù)中,只能對(duì)ー種格式的碼流解碼。因此,需要一種新的多格式碼流解析技木,能夠支持對(duì)多種格式的碼流的解析,以滿足用戶對(duì)于數(shù)字電視的功能需求。
發(fā)明內(nèi)容
為了解決上述技術(shù)問題至少之一,本發(fā)明提供了ー種多格式碼流解析技術(shù),能夠支持對(duì)多種格式的碼流的解析,以滿足用戶對(duì)于數(shù)字電視的功能需求。有鑒于此,本發(fā)明提供了ー種多格式碼流解析方法,包括步驟102,解析待解碼的碼流的頭部,以獲取所述碼流的配置信息;步驟104,從預(yù)存儲(chǔ)所有格式的碼流的解碼固件中,獲取與所述配置信息相匹配的解碼固件;步驟106,利用所述相匹配的解碼固件對(duì)所述碼流進(jìn)行解碼。在該技術(shù)方案中,采用解碼固件對(duì)相應(yīng)的解碼裝置進(jìn)行控制,以實(shí)現(xiàn)對(duì)視頻碼流進(jìn)行解碼。不同格式的碼流需要使用不同格式的解碼固件,因此,可以事先將所有格式的碼流的解碼固件進(jìn)行集中存儲(chǔ),然后通過對(duì)視頻碼流的頭部的解析,獲取碼流的配置信息(碼流格式,每幀圖像的寬、高等關(guān)于該碼流的所有信息均可以作為該配置信息進(jìn)行獲取,或者也可以僅對(duì)其中有助于碼流格式的確定的信息進(jìn)行獲取,以便選擇相應(yīng)的解碼固件進(jìn)行碼流的解碼),從而選擇對(duì)應(yīng)的解碼固件進(jìn)行解碼。此外,當(dāng)出現(xiàn)新的碼流格式以及相應(yīng)的解碼固件時(shí),顯然也可以將該新的解碼固件與之前的其他解碼固件進(jìn)行一同存儲(chǔ),以實(shí)現(xiàn)對(duì)該格式的碼流的解析。根據(jù)本發(fā)明的另一方面,還提出了ー種多格式碼流的解析裝置,包括碼流頭解析単元,用于解析待解碼的碼流的頭部,以獲取所述碼流的配置信息;固件存儲(chǔ)單元,用于存儲(chǔ)所有格式的碼流的解碼固件;固件匹配単元,用于根據(jù)所述碼流頭解析單元獲取的所述配置信息,從所述固件存儲(chǔ)單元中獲取與所述配置信息相匹配的解碼固件;解碼單元,用于利用所述相匹配的解碼固件對(duì)所述碼流進(jìn)行解碼。
在該技術(shù)方案中,采用解碼固件對(duì)相應(yīng)的解碼裝置進(jìn)行控制,以實(shí)現(xiàn)對(duì)視頻的碼流進(jìn)行解碼。不同格式的碼流需要使用不同格式的解碼固件,因此,可以事先將所有格式的碼流的解碼固件進(jìn)行集中存儲(chǔ),然后通過對(duì)視頻碼流的頭部的解析,獲取碼流的配置信息(碼流格式,每幀圖像的寬、高等關(guān)于該碼流的所有信息均可以作為該配置信息進(jìn)行獲取,或者也可以僅對(duì)其中有助于碼流格式的確定的信息進(jìn)行獲取,以便選擇相應(yīng)的解碼固件進(jìn)行碼流的解碼),從而選擇對(duì)應(yīng)的解碼固件進(jìn)行解碼。此外,當(dāng)出現(xiàn)新的碼流格式以及相應(yīng)的解碼固件時(shí),顯然也可以將該新的解碼固件與之前的其他解碼固件進(jìn)行一同存儲(chǔ),以實(shí)現(xiàn)對(duì)該格式的碼流的解析。根據(jù)本發(fā)明的又一方面,還提出了一種顯示裝置,包括上述任一技術(shù)方案中所述的多格式碼流的解析裝置。在該技術(shù)方案中,通過應(yīng)用上述任一技術(shù)方案中的多格式碼流的解析裝置的顯示裝置,可以實(shí)現(xiàn)對(duì)多格式視頻碼流解碼播放。該顯示裝置可以為電視機(jī)、電腦等。
圖I示出了根據(jù)本發(fā)明的實(shí)施例的多格式碼流的解析方法的流程圖;圖2示出了根據(jù)本發(fā)明的實(shí)施例的多格式碼流的解析裝置的框圖;圖3示出了根據(jù)本發(fā)明的實(shí)施例的顯示裝置的框圖;圖4示出了通過本發(fā)明的實(shí)施例的多格式碼流的解析方法解析視頻的具體流程圖;圖5示出了根據(jù)本發(fā)明的實(shí)施例的編碼固件的搬移過程的示意圖。
具體實(shí)施例方式為了能夠更清楚地理解本發(fā)明的上述目的、特征和優(yōu)點(diǎn),下面結(jié)合附圖和具體實(shí)施方式
對(duì)本發(fā)明進(jìn)行進(jìn)一歩的詳細(xì)描述。在下面的描述中闡述了很多具體細(xì)節(jié)以便于充分理解本發(fā)明,但是,本發(fā)明還可以采用其他不同于在此描述的其他方式來實(shí)施,因此,本發(fā)明的保護(hù)范圍并不受到下面公開的具體實(shí)施例的限制。圖I示出了根據(jù)本發(fā)明的實(shí)施例的多格式碼流的解析方法的流程圖。如圖I所示,根據(jù)本發(fā)明的實(shí)施例的多格式碼流的解析方法,包括步驟102,解析待解碼的碼流的頭部,以獲取碼流的配置信息;步驟104,從預(yù)存儲(chǔ)所有格式的碼流的解碼固件中,獲取與配置信息相匹配的解碼固件;步驟106,利用相匹配的解碼固件對(duì)碼流進(jìn)行解碼。在該技術(shù)方案中,采用解碼固件對(duì)相應(yīng)的解碼裝置進(jìn)行控制,以實(shí)現(xiàn)對(duì)視頻的碼流進(jìn)行解碼。不同格式的碼流需要使用不同格式的解碼固件,因此,可以事先將所有格式的碼流的解碼固件進(jìn)行集中存儲(chǔ),然后通過對(duì)視頻碼流的頭部的解析,獲取碼流的配置信息(碼流格式,每幀圖像的寬、高等關(guān)于該碼流的所有信息均可以作為該配置信息進(jìn)行獲取,或者也可以僅對(duì)其中有助于碼流格式的確定的信息進(jìn)行獲取,以便選擇相應(yīng)的解碼固件進(jìn) 行碼流的解碼),從而選擇對(duì)應(yīng)的解碼固件進(jìn)行解碼。此外,當(dāng)出現(xiàn)新的碼流格式以及相應(yīng)的解碼固件時(shí),顯然也可以將該新的解碼固件與之前的其他解碼固件進(jìn)行一同存儲(chǔ),以實(shí)現(xiàn)對(duì)該格式的碼流的解析。在上述技術(shù)方案中,在步驟102之前,還可以包括判斷碼流的格式,若碼流為傳送流,則從傳送流中提取出相應(yīng)的基本碼流。在該技術(shù)方案中,為了提高碼流的傳輸速度和傳輸效率,通常需要將基本碼流(ES, Elementary Stream)轉(zhuǎn)換為傳輸流(TS, Transport Stream)之后,再對(duì)傳輸流進(jìn)行直接傳輸。但在進(jìn)行碼流的解析吋,需要直接對(duì)基本碼流進(jìn)行解碼操作,因此當(dāng)視頻碼流為傳送流時(shí),需要提取出相應(yīng)的基本碼流,然后進(jìn)行解碼操作。在上述任一技術(shù)方案中,步驟102還包括獲取存儲(chǔ)碼流的碼流緩沖區(qū)的可用空間,并判斷待解碼的碼流大小是否大于可用空間的大?。蝗襞袛嘟Y(jié)果為是,以可用空間的大小為標(biāo)準(zhǔn)長(zhǎng)度,將待解碼的碼流分為多個(gè)子碼流,其中,每個(gè)子碼流的大小小于或等于標(biāo)準(zhǔn)長(zhǎng)度,以及若判斷結(jié)果為否,將待解碼的碼流作為子碼流;按子碼流之間的順序關(guān)系,依次將每個(gè)子碼流存儲(chǔ)至碼流緩沖區(qū)中,以對(duì)每個(gè)子碼流進(jìn)行解析。
在該技術(shù)方案中,需要將視頻碼流讀取到內(nèi)存中的對(duì)應(yīng)區(qū)域(即碼流緩沖區(qū)),然后對(duì)該區(qū)域中的碼流進(jìn)行解碼操作。但碼流緩沖區(qū)的空間容量有限,當(dāng)視頻較大時(shí),往往無法將整個(gè)視頻的碼流存儲(chǔ)至碼流緩沖區(qū)中進(jìn)行解碼,此時(shí)需要根據(jù)碼流緩沖區(qū)的大小,將碼流分成多個(gè)子碼流,且子碼流的大小小于或等于碼流緩沖區(qū)的大小,可以實(shí)現(xiàn)對(duì)碼流緩沖區(qū)的溢出控制,起到防止碼流緩沖區(qū)溢出的作用。而通過對(duì)整個(gè)碼流的頭部的解析,從而選用適當(dāng)?shù)拇a流固件,以實(shí)現(xiàn)對(duì)每個(gè)添加至碼流緩沖區(qū)中的子碼流分別、依次進(jìn)行解碼。另外,在對(duì)該碼流緩沖區(qū)的可用空間進(jìn)行獲取時(shí),可以根據(jù)定義讀指針、寫指針以及該碼流緩沖區(qū)的總空間大小,從而計(jì)算出剰余的可用空間大小。這里的碼流緩沖區(qū)可以為環(huán)形緩沖區(qū)。在上述任一技術(shù)方案中,該待解碼的碼流的頭部包含有至少ー個(gè)標(biāo)志位,則步驟102還包括獲取所述碼流的頭部的當(dāng)前標(biāo)志位信息,并將當(dāng)前標(biāo)志位信息與預(yù)設(shè)的標(biāo)準(zhǔn)標(biāo)志位信息進(jìn)行比較,其中,若相匹配,則判定該碼流無誤,并依次對(duì)碼流緩沖區(qū)中的子碼流進(jìn)行解析,否則判定該碼流存在錯(cuò)誤,停止對(duì)該碼流的解析。在該技術(shù)方案中,可以實(shí)現(xiàn)對(duì)碼流是否存在錯(cuò)誤進(jìn)行檢測(cè),并進(jìn)行相應(yīng)的處理。具體地,可以通過對(duì)碼流的頭部的標(biāo)志位信息進(jìn)行比較。當(dāng)檢測(cè)到碼流存在錯(cuò)誤時(shí),將錯(cuò)誤的子碼流從碼流緩沖區(qū)中清除,并停止對(duì)整個(gè)碼流的解碼,以開始對(duì)其他碼流的解析,這樣可以避免對(duì)錯(cuò)誤信息的解析,提高解析速度,降低錯(cuò)誤對(duì)其他視頻解碼的影響。在上述任一技術(shù)方案中,優(yōu)選地,配置信息中包含待解碼的碼流的格式,則在對(duì)待解碼的碼流進(jìn)行解碼之前,還包括根據(jù)待解碼的碼流的格式,預(yù)留對(duì)應(yīng)數(shù)目的幀緩沖區(qū);以及在對(duì)待解碼的碼流進(jìn)行解碼的過程中,在毎次預(yù)留的所有的幀緩沖區(qū)被填滿后,利用所有的幀緩沖區(qū)中的數(shù)據(jù)構(gòu)成相應(yīng)的ー幀圖像。在該技術(shù)方案中,解碼操作進(jìn)行過程中以幀為単位對(duì)視頻碼流進(jìn)行解碼,每幀解碼后的圖像對(duì)應(yīng)多個(gè)幀緩沖區(qū)(通常為61個(gè)),即由多個(gè)幀緩沖區(qū)中的數(shù)據(jù)共同構(gòu)成ー幀圖像;而對(duì)于幀緩沖區(qū)的數(shù)目,則跟待解碼的碼流的格式有夫,即對(duì)于不同格式的碼流,其構(gòu)成ー幀圖像時(shí),如對(duì)于H. 264格式,需要8個(gè)幀緩沖區(qū),而其他格式則為其他數(shù)目。在上述任一技術(shù)方案中,優(yōu)選地,還包括實(shí)時(shí)播放解碼單元解碼得到的圖像文件和/或待解碼的碼流的參數(shù)信息;和/或?qū)⒔獯a単元解碼得到的圖像文件生成為指定格式的視頻文件,并存儲(chǔ)視頻文件。在該技術(shù)方案中,不僅可以對(duì)解碼的視頻實(shí)時(shí)播放,還可以顯示正在解碼的視頻碼流參數(shù)信息,可以方便研發(fā)人員對(duì)視頻碼流的參數(shù)信息進(jìn)行查看和分析。還可以將解碼得到的圖像文件生成為視頻文件后進(jìn)行存儲(chǔ),可以滿足解碼后的碼流實(shí)時(shí)回放的需求。這里生成的視頻文件可以采用顯示裝置自身直接播放、無需解碼的格式,比如YUV格式。在上述任一技術(shù)方案中,步驟106中,還包括在對(duì)待解碼的碼流進(jìn)行解析的過程中,設(shè)置對(duì)應(yīng)的解析狀態(tài);以及通過查詢解析狀態(tài),判斷對(duì)待解碼的碼流進(jìn)行解析的過程的完成情況。在該技術(shù)方案中,可能需要對(duì)當(dāng)前的碼流解析過程進(jìn)行查詢,則可以設(shè)置相應(yīng)的解析狀態(tài),比如通過ー相應(yīng)的寄存器進(jìn)行設(shè)置,若設(shè)置為“1”,則說明正在解析,若設(shè)置為“0”,則說明已經(jīng)解析完畢,則通過查詢?cè)摻馕鰻顟B(tài),即可判斷解碼操作是否完成。
在上述任一技術(shù)方案中,步驟106中,還包括在完成對(duì)待解碼的碼流的解析后,向后續(xù)的處理裝置發(fā)送完成信號(hào)。在該技術(shù)方案中,除了主動(dòng)查詢,還可以由進(jìn)行解碼操作的部件在解碼操作完成后,通過發(fā)送完成信號(hào)通知解碼操作已結(jié)束,方便進(jìn)行后續(xù)處理。下面結(jié)合圖2對(duì)用于本發(fā)明的實(shí)施例的多格式碼流的解析方法的多格式碼流的解析裝置進(jìn)行說明。圖2示出了根據(jù)本發(fā)明的實(shí)施例的多格式碼流的解析裝置的框圖。如圖2所示,根據(jù)本發(fā)明的實(shí)施例的多格式碼流的解析裝置200包括碼流頭解析単元202,用于解析待解碼的碼流的頭部,以獲取碼流的配置信息;固件存儲(chǔ)單元204,用于存儲(chǔ)所有格式的碼流的解碼固件;固件匹配単元206,用于根據(jù)碼流頭解析単元202獲取的配置信息,從固件存儲(chǔ)單元204中獲取與配置信息相匹配的解碼固件;解碼單元208,用于利用相匹配的解碼固件對(duì)碼流進(jìn)行解碼。在該技術(shù)方案中,采用解碼固件對(duì)相應(yīng)的解碼裝置進(jìn)行控制,以實(shí)現(xiàn)對(duì)視頻的碼流進(jìn)行解碼。不同格式的碼流需要使用不同格式的解碼固件,因此,可以事先將所有格式的碼流的解碼固件進(jìn)行集中存儲(chǔ),然后通過對(duì)視頻碼流的頭部的解析,獲取碼流的配置信息(碼流格式,每幀圖像的寬、高等關(guān)于該碼流的所有信息均可以作為該配置信息進(jìn)行獲取,或者也可以僅對(duì)其中有助于碼流格式的確定的信息進(jìn)行獲取,以便選擇相應(yīng)的解碼固件進(jìn)行碼流的解碼),從而選擇對(duì)應(yīng)的解碼固件進(jìn)行解碼。此外,當(dāng)出現(xiàn)新的碼流格式以及相應(yīng)的解碼固件時(shí),顯然也可以將該新的解碼固件與之前的其他解碼固件進(jìn)行一同存儲(chǔ),以實(shí)現(xiàn)對(duì)該格式的碼流的解析。在上述技術(shù)方案中,還包括格式判斷単元210,用于判斷碼流是否為傳送流或基本碼流;提取單元212,用于在格式判斷単元210的判斷結(jié)果為碼流為傳送流的情況下,從傳送流中提取出相應(yīng)的基本碼流,以對(duì)基本碼流進(jìn)行解析。在該技術(shù)方案中,為了提高碼流的傳輸速度和傳輸效率,通常需要將基本碼流(ES, Elementary Stream)轉(zhuǎn)換為傳輸流(TS, Transport Stream)之后,再對(duì)傳輸流進(jìn)行直接傳輸。但在進(jìn)行碼流的解析吋,需要直接對(duì)基本碼流進(jìn)行解碼操作,因此當(dāng)視頻碼流為傳送流時(shí),需要提取出相應(yīng)的基本碼流,然后進(jìn)行解碼操作。在上述任一技術(shù)方案中,解碼單元208具體包括緩存空間獲取子単元2020,用于獲取存儲(chǔ)碼流的碼流緩沖區(qū)的可用空間;判斷子単元2022,用于判斷待解碼的碼流大小是否大于可用空間的大小;分組處理子単元2024,用于在判斷子単元2022的判斷結(jié)果為是的情況下,以可用空間的大小為標(biāo)準(zhǔn)長(zhǎng)度,將待解碼的碼流分為多個(gè)子碼流,其中,每個(gè)子碼流的大小小于或等于標(biāo)準(zhǔn)長(zhǎng)度,以及在判斷子単元的判斷結(jié)果為否的情況下,將待解碼的碼流作為子碼流;存儲(chǔ)子単元2026,用于按照子碼流之間的順序關(guān)系,依次將每個(gè)子碼流存儲(chǔ)至碼流緩沖區(qū)中;以及處理子單元2028,用于依次對(duì)每個(gè)存儲(chǔ)至碼流緩沖區(qū)中的子碼流進(jìn)行解析。在該技術(shù)方案中,需要將視頻碼流讀取到內(nèi)存中的對(duì)應(yīng)區(qū)域(即碼流緩沖區(qū)),然后對(duì)該區(qū)域中的碼流進(jìn)行解碼操作。但碼流緩沖區(qū)的空間容量有限,當(dāng)視頻較大時(shí),往往無法將整個(gè)視頻的碼流存儲(chǔ)至碼流緩沖區(qū)中進(jìn)行解碼,此時(shí)需要根據(jù)碼流緩沖區(qū)的大小,將碼流分成多個(gè)子碼流,且子碼流的大小小于或等于碼流緩沖區(qū)的大小,可以實(shí)現(xiàn)對(duì)碼流緩沖區(qū)的溢出控制,起到防止碼流緩沖區(qū)溢出的作用。而通過對(duì)整個(gè)碼流的頭部的解析,從而選用適當(dāng)?shù)拇a流固件,以實(shí)現(xiàn)對(duì)每個(gè)添加至碼流緩沖 區(qū)中的子碼流分別、依次進(jìn)行解碼。另外,在對(duì)該碼流緩沖區(qū)的可用空間進(jìn)行獲取時(shí),可以根據(jù)定義讀指針、寫指針以及該碼流緩沖區(qū)的總空間大小,從而計(jì)算出剰余的可用空間大小。這里的碼流緩沖區(qū)可以為環(huán)形緩沖區(qū)。在上述任一技術(shù)方案中,該待解碼的碼流的頭部包含有至少ー個(gè)標(biāo)志位,則解析裝置還包括錯(cuò)誤檢驗(yàn)單元214,用于獲取該碼流的頭部的當(dāng)前標(biāo)志位信息,并將當(dāng)前標(biāo)志位信息與預(yù)設(shè)的標(biāo)準(zhǔn)標(biāo)志位信息進(jìn)行比較,若相匹配,則判定該碼流無誤,否則判定該碼流存在錯(cuò)誤;錯(cuò)誤處理單元216,用于在碼流無誤時(shí),依次對(duì)碼流緩沖區(qū)中的子碼流進(jìn)行解祈,以及在子碼流存在錯(cuò)誤時(shí),停止對(duì)該碼流的解析。在該技術(shù)方案中,可以實(shí)現(xiàn)對(duì)碼流是否存在錯(cuò)誤進(jìn)行檢測(cè),并進(jìn)行相應(yīng)的處理。具體地,可以通過對(duì)碼流的頭部的標(biāo)志位信息進(jìn)行比較。當(dāng)檢測(cè)到碼流存在錯(cuò)誤時(shí),將錯(cuò)誤的子碼流從碼流緩沖區(qū)中清除,并停止對(duì)整個(gè)碼流的解碼,以開始對(duì)其他碼流的解析,這樣可以避免對(duì)錯(cuò)誤信息的解析,提高解析速度,降低錯(cuò)誤對(duì)其他視頻解碼的影響。在上述任一技術(shù)方案中,配置信息中包含待解碼的碼流的格式,則解析裝置還包括存儲(chǔ)空間預(yù)留単元220,用于根據(jù)待解碼的碼流的格式,預(yù)留對(duì)應(yīng)數(shù)目的幀緩沖區(qū),其中,在對(duì)待解碼的碼流進(jìn)行解碼的過程中,在毎次預(yù)留的所有的幀緩沖區(qū)被填滿后,利用所有的幀緩沖區(qū)中的數(shù)據(jù)構(gòu)成相應(yīng)的ー幀圖像。在該技術(shù)方案中,解碼操作進(jìn)行過程中以幀為単位對(duì)視頻碼流進(jìn)行解碼,每幀解碼后的圖像對(duì)應(yīng)多個(gè)幀緩沖區(qū)(通常為61個(gè)),即由多個(gè)幀緩沖區(qū)中的數(shù)據(jù)共同構(gòu)成ー幀圖像;而對(duì)于幀緩沖區(qū)的數(shù)目,則跟待解碼的碼流的格式有夫,即對(duì)于不同格式的碼流,其構(gòu)成ー幀圖像時(shí),如對(duì)于H. 264格式,需要8個(gè)幀緩沖區(qū),而其他格式則為其他數(shù)目。在上述任一技術(shù)方案中,還包括實(shí)時(shí)播放単元222,用于實(shí)時(shí)播放解碼單元解碼得到的圖像文件和/或待解碼的碼流的參數(shù)信息;和/或視頻存儲(chǔ)控制単元224,用于將解碼單元解碼得到的圖像文件生成為指定格式的視頻文件,并存儲(chǔ)視頻文件。在該技術(shù)方案中,不僅可以對(duì)解碼的視頻實(shí)時(shí)播放,還可以顯示正在解碼的視頻碼流參數(shù)信息,可以方便研發(fā)人員對(duì)視頻碼流的參數(shù)信息進(jìn)行查看和分析。還可以將解碼得到的圖像文件生成為視頻文件后進(jìn)行存儲(chǔ),可以滿足解碼后的碼流實(shí)時(shí)回放的需求。這里生成的視頻文件可以采用顯示裝置自身直接播放、無需解碼的格式,比如YUV格式。圖3示出了根據(jù)本發(fā)明的實(shí)施例的顯示裝置的框圖。如圖3所示,為根據(jù)本發(fā)明的實(shí)施例的顯示裝置300,包括如圖2所示的多格式碼流的解析裝置200。在上述技術(shù)方案中,解析裝置200還包括狀態(tài)設(shè)置単元226,用于根據(jù)待解碼的碼流的完成情況,設(shè)置對(duì)應(yīng)的解析狀態(tài);以及顯示裝置300還包括狀態(tài)查詢単元302,用于對(duì)解析狀態(tài)進(jìn)行查詢,以判斷解析裝置200是否已完成對(duì)待解碼的碼流的解析。 在該技術(shù)方案中,可能需要對(duì)當(dāng)前的碼流解析過程進(jìn)行查詢,則可以設(shè)置相應(yīng)的解析狀態(tài),比如通過ー相應(yīng)的寄存器進(jìn)行設(shè)置,若設(shè)置為“1”,則說明正在解析,若設(shè)置為“0”,則說明已經(jīng)解析完畢,則通過查詢?cè)摻馕鰻顟B(tài),即可判斷解碼操作是否完成。在上述任一技術(shù)方案中,解析裝置200還包括狀態(tài)報(bào)告單元228,用于在解析裝置200完成了對(duì)所述待解碼的碼流的解析后,向顯示裝置300中相應(yīng)的控制裝置發(fā)送完成信號(hào)。在該技術(shù)方案中,除了主動(dòng)查詢,還可以由進(jìn)行解碼操作的部件在解碼操作完成后,通過發(fā)送完成信號(hào)通知解碼操作已結(jié)束,方便顯示裝置進(jìn)行后續(xù)處理或關(guān)閉解析裝置。圖4示出了通過本發(fā)明的實(shí)施例的多格式碼流的解析方法解析視頻的具體流程圖。如圖4所示,通過本發(fā)明的實(shí)施例的多格式碼流的解析方法解析視頻的具體流程如下步驟402,加載視頻,該視頻的碼流可能為基本碼流或傳送流。步驟404,判斷步驟402中已加載的碼流的格式,若為基本碼流,則可以直接進(jìn)行步驟408,若為傳送流,則需要進(jìn)入步驟406進(jìn)行處理。步驟406,當(dāng)碼流為傳送流時(shí),需要首先從該傳送流中提取出基本碼流,然后再對(duì)該基本碼流進(jìn)行解析操作,具體地,“提取”過程可以采用解復(fù)用的方式完成。步驟408,針對(duì)待解碼的基本碼流,首先創(chuàng)建ー個(gè)解碼實(shí)例。步驟410,將碼流填充至碼流緩沖區(qū)。在對(duì)碼流進(jìn)行解析時(shí),需要首先將該碼流讀取至內(nèi)存中的預(yù)定區(qū)域,即該碼流緩沖區(qū)。但碼流緩沖區(qū)的空間有限,而碼流的大小不定,可能超出碼流緩沖區(qū)而導(dǎo)致溢出現(xiàn)象。因此,這里首先需要對(duì)碼流緩沖區(qū)的可用空間進(jìn)行獲取,具體地,比如可以通過定義讀指針、寫指針以及碼流緩沖區(qū)的總大小,從而進(jìn)行可用空間的獲取。然后,對(duì)于該碼流的大小,若小于或等于該碼流緩沖區(qū)的可用空間,則可以直接進(jìn)行填充,否則需要對(duì)碼流進(jìn)行切分,得到多個(gè)子碼流,每個(gè)子碼流的大小小于或等于該碼流緩沖區(qū)的可用空間,然后按順序依次對(duì)每個(gè)子碼流進(jìn)行填充。這里的碼流緩沖區(qū)可以采用環(huán)形緩沖區(qū)。步驟412,解析碼流的頭部。具體地,是對(duì)填充至碼流緩沖區(qū)中的碼流的頭部進(jìn)行解析,從而獲取該碼流的配置信息,比如碼流的格式、每幀圖片的寬、高等信息等。步驟414,判斷碼流緩沖區(qū)中的這段碼流是否有錯(cuò)誤,有錯(cuò)誤時(shí),停止對(duì)當(dāng)前碼流的解析,并回到步驟410,重新填充其他碼流,否則進(jìn)入步驟416。對(duì)于碼流的錯(cuò)誤檢測(cè),可以通過在碼流的頭部設(shè)置至少ー個(gè)標(biāo)志位,這樣,通過將該碼流的頭部實(shí)時(shí)獲取的標(biāo)志位與預(yù)設(shè)的標(biāo)準(zhǔn)標(biāo)志位進(jìn)行比較,即可得知該碼流是否發(fā)生錯(cuò)誤。對(duì)于發(fā)生錯(cuò)誤的碼流,不再進(jìn)行解析,直接從碼流緩沖區(qū)中清除,然后對(duì)下一段碼流進(jìn)行錯(cuò)誤判斷和解析。步驟416,解析碼流。通過對(duì)碼流的頭部的配置信息的獲取,并根據(jù)配置信息,獲取對(duì)應(yīng)于該碼流的解碼固件,以完成對(duì)該碼流的解析,從而實(shí)現(xiàn)了對(duì)多種格式的碼流的解析的支持。這里在進(jìn)行圖像解碼之前,還需要通過配置信息確定碼流的格式,并在解析碼流之前,預(yù)設(shè)置對(duì)應(yīng)數(shù)目的幀緩沖區(qū),比如對(duì)于H. 264格式,需要的幀緩沖區(qū)為8個(gè)。步驟418,判斷是否完成一幀圖像的解碼,完成則進(jìn)入步驟420,否則繼續(xù)解碼。當(dāng)然,對(duì)于解析得到的數(shù)據(jù),首先應(yīng)放置到對(duì)應(yīng)的幀緩沖區(qū)中,并在每次所有的幀緩沖區(qū)都被填滿后,利用此時(shí)所有的幀緩沖區(qū)中的數(shù)據(jù)合成相應(yīng)的ー幀圖片。步驟420,將解碼的圖像實(shí)時(shí)顯示,或以YUV格式存儲(chǔ)。這里可以對(duì)解析得到的圖像進(jìn)行解碼,還可以對(duì)相關(guān)的配置信息進(jìn)行顯示,便于滿足不同用戶或工作人員內(nèi)的需求。此外,通過以YUV等格式將解碼得到的圖像生成為視頻文件進(jìn)行存儲(chǔ),便于之后不再需要進(jìn)行解碼,以實(shí)現(xiàn)對(duì)視頻的反復(fù)播放。 步驟422,判斷碼流是否結(jié)束,是則結(jié)束進(jìn)程,否則回到步驟416,繼續(xù)解碼下ー幀圖像。對(duì)于碼流的解析過程是否結(jié)束,可以采用多種方式,比如一種情況下,可以通過設(shè)置ー個(gè)狀態(tài)寄存器,比如該寄存器置“I”時(shí),說明正在解碼,該寄存器置“O”時(shí),說明解碼完成,從而通過查詢?cè)摷拇嫫鞯臓顟B(tài),即可了解到當(dāng)前的解碼進(jìn)度;另一種情況下,可以在解碼過程完成后,由相關(guān)部件向下一歩操作的執(zhí)行部件發(fā)送完成信號(hào),則該執(zhí)行部件可以通過是否接收到該完成信號(hào)來判斷解碼過程是否已經(jīng)完成。圖5示出了根據(jù)本發(fā)明的實(shí)施例的解碼固件的搬移過程的示意圖。如圖5所示,根據(jù)本發(fā)明的實(shí)施例的解碼固件的搬移過程如下當(dāng)用戶需要在電視機(jī)500上進(jìn)行視頻播放時(shí),需要由該電視機(jī)500中的解碼裝置501對(duì)該視頻進(jìn)行解碼。Firmware(固件)ー開始存儲(chǔ)在硬盤502上,在解碼之前要先由電視機(jī) 500 的處通器將其全部拷貝到 SDRAM504( Synchronous Dynamic Random Access Memory,同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器)中。解析完視頻的碼流的頭部后,根據(jù)獲得的圖像類型,處理器將負(fù)責(zé)解碼相應(yīng)類型圖像的那部分Firmware下載到電視機(jī)500的編程內(nèi)存506中,從而進(jìn)行解碼該格式的碼流圖像。例如,在對(duì)碼流的頭部進(jìn)行解析時(shí),發(fā)現(xiàn)要解碼的圖像類型為AVS,處理器就會(huì)將駐存在SDRAM504中的解碼AVS格式的那部分Firmware拷貝到上述解碼裝置501的編程內(nèi)存506中,然后電視機(jī)500就可以根據(jù)該Firmware控制AVS圖像的解碼。以上結(jié)合附圖詳細(xì)說明了本發(fā)明的技術(shù)方案,考慮到在相關(guān)技術(shù)中,只能對(duì)ー種格式的碼流解碼,并且未能對(duì)碼流進(jìn)行分析、錯(cuò)誤處理和保存解碼后的視頻,本發(fā)明提供了一種視頻解析技術(shù),能夠支持音視頻產(chǎn)業(yè)常用的信源編碼的碼流的解析并保存解碼后的視頻,以滿足數(shù)字電視功能需求;同時(shí)可以實(shí)現(xiàn)碼流分析和實(shí)時(shí)顯示,滿足研發(fā)人員研發(fā)需要。以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種多格式碼流的解析方法,其特征在于,包括 步驟102,解析待解碼的碼流的頭部,以獲取所述碼流的配置信息; 步驟104,從預(yù)存儲(chǔ)的所有格式的碼流的解碼固件中,獲取與所述配置信息相匹配的解碼固件; 步驟106,利用所述相匹配的解碼固件對(duì)所述碼流進(jìn)行解碼。
2.根據(jù)權(quán)利要求I所述的多格式碼流的解析方法,其特征在于,在所述步驟102之前,還包括 判斷所述碼流的格式,若所述碼流為傳送流,則從所述傳送流中提取出相應(yīng)的基本碼流。
3.根據(jù)權(quán)利要求I所述的多格式碼流的解析方法,其特征在于,所述步驟102還包括 獲取存儲(chǔ)所述碼流的碼流緩沖區(qū)的可用空間,并判斷所述待解碼的碼流大小是否大于所述可用空間的大??; 若判斷結(jié)果為是,以所述可用空間的大小為標(biāo)準(zhǔn)長(zhǎng)度,將所述待解碼的碼流分為多個(gè)子碼流,其中,每個(gè)所述子碼流的大小小于或等于所述標(biāo)準(zhǔn)長(zhǎng)度,以及若所述判斷結(jié)果為否,將所述待解碼的碼流作為所述子碼流; 按所述子碼流之間的順序關(guān)系,依次將每個(gè)所述子碼流存儲(chǔ)至所述碼流緩沖區(qū)中,以對(duì)每個(gè)所述子碼流進(jìn)行解析。
4.根據(jù)權(quán)利要求I所述的多格式碼流的解析方法,其特征在于,所述待解碼的碼流的頭部包含有至少一個(gè)標(biāo)志位,則所述步驟102還包括 獲取所述碼流的頭部的當(dāng)前標(biāo)志位信息,并將所述當(dāng)前標(biāo)志位信息與預(yù)設(shè)的標(biāo)準(zhǔn)標(biāo)志位信息進(jìn)行比較,其中, 若相匹配,則判定所述碼流無誤,并依次對(duì)所述碼流緩沖區(qū)中的子碼流進(jìn)行解析,否則判定所述碼流存在錯(cuò)誤,停止對(duì)所述碼流的解析。
5.根據(jù)權(quán)利要求I至4中任一項(xiàng)所述的多格式碼流的解析方法,其特征在于,所述配置信息中包含所述待解碼的碼流的格式,則在對(duì)所述待解碼的碼流進(jìn)行解碼之前,還包括 根據(jù)所述待解碼的碼流的格式,預(yù)留對(duì)應(yīng)數(shù)目的幀緩沖區(qū);以及在對(duì)所述待解碼的碼流進(jìn)行解碼的過程中,在每次預(yù)留的所有的幀緩沖區(qū)被填滿后,利用所述所有的幀緩沖區(qū)中的數(shù)據(jù)構(gòu)成相應(yīng)的一幀圖像。
6.根據(jù)權(quán)利要求I至4中任一項(xiàng)所述的多格式碼流的解析方法,其特征在于,還包括 實(shí)時(shí)播放所述解碼單元解碼得到的圖像文件和/或所述待解碼的碼流的參數(shù)信息;和/或 將所述解碼單元解碼得到的圖像文件生成為指定格式的視頻文件,并存儲(chǔ)所述視頻文件。
7.根據(jù)權(quán)利要求I至4中任一項(xiàng)所述的多格式碼流的解析方法,其特征在于,所述步驟106中,還包括 在對(duì)所述待解碼的碼流進(jìn)行解析的過程中,設(shè)置對(duì)應(yīng)的解析狀態(tài);以及 通過查詢所述解析狀態(tài),判斷所述對(duì)所述待解碼的碼流進(jìn)行解析的過程的完成情況。
8.根據(jù)權(quán)利要求I至4中任一項(xiàng)所述的多格式碼流的解析方法,其特征在于,所述步驟106中,還包括在完成對(duì)所述待解碼的碼流的解析后,向后續(xù)的處理裝置發(fā)送完成信號(hào)。
9.一種多格式碼流的解析裝置,其特征在于,包括 碼流頭解析單元,用于解析待解碼的碼流的頭部,以獲取所述碼流的配置信息; 固件存儲(chǔ)單元,用于存儲(chǔ)所有格式的碼流的解碼固件; 固件匹配單元,用于根據(jù)所述碼流頭解析單元獲取的所述配置信息,從所述固件存儲(chǔ)單元中獲取與所述配置信息相匹配的解碼固件; 解碼單元,用于利用所述相匹配的解碼固件對(duì)所述碼流進(jìn)行解碼。
10.根據(jù)權(quán)利要求9所述的多格式碼流的解析裝置,其特征在于,還包括 格式判斷單元,用于判斷所述碼流是否為傳送流或基本碼流; 提取單元,用于在所述格式判斷單元的判斷結(jié)果為所述碼流為傳送流的情況下,從所述傳送流中提取出相應(yīng)的基本碼流,以對(duì)所述基本碼流進(jìn)行解析。
11.根據(jù)權(quán)利要求9所述的多格式碼流的解析裝置,其特征在于,所述解碼單元具體包括 緩存空間獲取子單元,用于獲取存儲(chǔ)所述碼流的碼流緩沖區(qū)的可用空間; 判斷子單元,用于判斷所述待解碼的碼流大小是否大于所述可用空間的大??; 分組處理子單元,用于在所述判斷子單元的判斷結(jié)果為是的情況下,以所述可用空間的大小為標(biāo)準(zhǔn)長(zhǎng)度,將所述待解碼的碼流分為多個(gè)子碼流,其中,每個(gè)所述子碼流的大小小于或等于所述標(biāo)準(zhǔn)長(zhǎng)度,以及在所述判斷子單元的判斷結(jié)果為否的情況下,將所述待解碼的碼流作為所述子碼流; 存儲(chǔ)子單元,用于按照所述子碼流之間的順序關(guān)系,依次將每個(gè)所述子碼流存儲(chǔ)至所述碼流緩沖區(qū)中;以及 處理子單元,用于對(duì)每個(gè)存儲(chǔ)至所述碼流緩沖區(qū)中的子碼流進(jìn)行解析。
12.根據(jù)權(quán)利要求9所述的多格式碼流的解析裝置,其特征在于,所述待解碼的碼流的頭部包含有至少一個(gè)標(biāo)志位,則所述解析裝置還包括 錯(cuò)誤檢驗(yàn)單元,用于獲取所述碼流的頭部的當(dāng)前標(biāo)志位信息,并將所述當(dāng)前標(biāo)志位信息與預(yù)設(shè)的標(biāo)準(zhǔn)標(biāo)志位信息進(jìn)行比較,若相匹配,則判定所述碼流無誤,否則判定所述碼流存在錯(cuò)誤; 錯(cuò)誤處理單元,用于在所述碼流無誤時(shí),依次對(duì)所述碼流緩沖區(qū)中的子碼流進(jìn)行解析,以及在所述碼流存在錯(cuò)誤時(shí),停止對(duì)所述碼流的解析。
13.根據(jù)權(quán)利要求9至12中任一項(xiàng)所述的多格式碼流的解析裝置,其特征在于,所述配置信息中包含所述待解碼的碼流的格式,則所述解析裝置還包括 存儲(chǔ)空間預(yù)留單元,用于根據(jù)所述待解碼的碼流的格式,預(yù)留對(duì)應(yīng)數(shù)目的幀緩沖區(qū),其中,在對(duì)所述待解碼的碼流進(jìn)行解碼的過程中,在每次預(yù)留的所有的幀緩沖區(qū)被填滿后,利用所述所有的幀緩沖區(qū)中的數(shù)據(jù)構(gòu)成相應(yīng)的一幀圖像。
14.根據(jù)權(quán)利要求9至12中任一項(xiàng)所述的多格式碼流的解析裝置,其特征在于,還包括 實(shí)時(shí)播放單元,用于實(shí)時(shí)播放所述解碼單元解碼得到的圖像文件和/或所述待解碼的碼流的參數(shù)信息;和/或 視頻存儲(chǔ)控制單元,用于將所述解碼單元解碼得到的圖像文件生成為指定格式的視頻文件,并存儲(chǔ)所述視頻文件。
15.一種顯示裝置,其特征在于,包括如權(quán)利要求9至14中任一項(xiàng)所述的多格式碼流的解析裝置。
16.根據(jù)權(quán)利要求15所述的顯示裝置,其特征在于, 所述解析裝置還包括 狀態(tài)設(shè)置單元,用于根據(jù)所述待解碼的碼流的完成情況,設(shè)置對(duì)應(yīng)的解析狀態(tài);以及 所述顯示裝置還包括 狀態(tài)查詢單元,用于對(duì)所述解析狀態(tài)進(jìn)行查詢,以判斷所述解析裝置是否已完成對(duì)所述待解碼的碼流的解析。
17.根據(jù)權(quán)利要求15所述的顯示裝置,其特征在于,所述解析裝置還包括 狀態(tài)報(bào)告單元,用于在所述解析裝置完成了對(duì)所述待解碼的碼流的解析后,向所述顯示裝置中相應(yīng)的控制裝置發(fā)送完成信號(hào)。
全文摘要
本發(fā)明提供了一種多格式碼流的解析方法,包括步驟102,解析待解碼的碼流的頭部,以獲取所述碼流的配置信息;步驟104,從預(yù)存儲(chǔ)所有格式的碼流的解碼固件中,獲取與所述配置信息相匹配的解碼固件;步驟106,利用所述相匹配的解碼固件對(duì)所述碼流進(jìn)行解碼。相應(yīng)地,本發(fā)明還提出了一種多格式碼流的解析裝置和一種顯示裝置。通過本發(fā)明的技術(shù)方案,能夠支持對(duì)多種格式的碼流的解析,以滿足用戶對(duì)于數(shù)字電視的功能需求。
文檔編號(hào)H04N7/50GK102665081SQ20121014757
公開日2012年9月12日 申請(qǐng)日期2012年5月14日 優(yōu)先權(quán)日2012年5月14日
發(fā)明者徐濤, 魯忠輝 申請(qǐng)人:青島海信信芯科技有限公司