两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

多媒體碼流識(shí)別的方法和裝置的制作方法

文檔序號(hào):7744118閱讀:170來(lái)源:國(guó)知局

專利名稱::多媒體碼流識(shí)別的方法和裝置的制作方法
技術(shù)領(lǐng)域
:本發(fā)明涉及多媒體
技術(shù)領(lǐng)域
,更具體地,涉及一種多媒體碼流識(shí)別的方法和裝置。
背景技術(shù)
:經(jīng)過(guò)十年多演變,音視頻編碼技術(shù)本身和產(chǎn)業(yè)應(yīng)用背景都發(fā)生了明顯變化。目前音視頻產(chǎn)業(yè)可以選擇的信源編碼標(biāo)準(zhǔn)主要有三個(gè)MPEG-2、MPEG-4AVC(簡(jiǎn)稱AVC,也稱JVT或H.264)、AVS(AudioVideoCodingStandard)。MPEG-2制定于1994年,由MPEG專家組完成,屬于第一代信源標(biāo)準(zhǔn)。經(jīng)過(guò)十幾年的發(fā)展,MPEG-2已經(jīng)成為目前國(guó)際上最為通行的音視頻標(biāo)準(zhǔn)。H.264標(biāo)準(zhǔn)由IS0/IEC和ITU-T聯(lián)合制定,標(biāo)志著視頻壓縮技術(shù)的最新進(jìn)展H.264視頻編碼新標(biāo)準(zhǔn)采用一系列最新的壓縮技術(shù),大大提高了壓縮率圖像質(zhì)量。AVS標(biāo)準(zhǔn)是《信息技術(shù)先進(jìn)音視頻編碼》系列標(biāo)準(zhǔn)的簡(jiǎn)稱,是由我國(guó)自主提出的第一個(gè)音視頻編碼標(biāo)準(zhǔn),其在壓縮效率上是MPEG2的2.4倍,與H.264相當(dāng)。MPEG-2是目前最為成熟的一種音視頻編碼標(biāo)準(zhǔn),但由于技術(shù)陳舊需要更新及收費(fèi)較高等原因,在將來(lái)退出歷史舞臺(tái)已是大勢(shì)所趨;較高壓縮率和圖像質(zhì)量上的絕對(duì)優(yōu)勢(shì)使H.264在當(dāng)前和未來(lái)的音視頻領(lǐng)域具備了強(qiáng)大的競(jìng)爭(zhēng)力;而AVS是基于中國(guó)創(chuàng)新技術(shù)和部分公開(kāi)技術(shù)的自主標(biāo)準(zhǔn),編碼效率與H.264相當(dāng),技術(shù)方案簡(jiǎn)潔,芯片實(shí)現(xiàn)復(fù)雜度低。目前,MPEG-2、H.264、AVS三種種主流解碼器所采用的系統(tǒng)層如下MPEG-2視頻采用的是MPEG-2的系統(tǒng)層,即13818-1協(xié)議。AVS標(biāo)準(zhǔn)中的系統(tǒng)層部分(即AVS-P1)與MPEG-2系統(tǒng)層相同,因此完全支持13818-1協(xié)議。H.264則在VCL之外通過(guò)NAL完成了對(duì)多種傳輸層的支持。因此,MPEG-2、AVS以及應(yīng)用于廣播服務(wù)的H.264都采用了MPEG-2系統(tǒng)層。在DTV領(lǐng)域MPEG-2、H.264、AVS所采用的系統(tǒng)層協(xié)議也為三種標(biāo)準(zhǔn)的集成帶來(lái)了一定便利。由于網(wǎng)絡(luò)視頻中的媒體格式將采用多種形式,因此支持AVS、H.264、MPEG-2多格式解碼器和高清DTV芯片,將集成了上述三種視頻標(biāo)準(zhǔn)的解碼,具備三種標(biāo)準(zhǔn)的節(jié)目解碼能力。但是,在啟動(dòng)解碼器之前必須首先通過(guò)相應(yīng)的識(shí)別算法有效快速的判斷出視頻節(jié)目的編碼標(biāo)準(zhǔn)并去除碼流中的起始碼,才能正確的向相應(yīng)的解碼器下達(dá)解碼指令。目前,上述的這三種AVS、H.264、和MPEG-2碼流的數(shù)據(jù)的網(wǎng)絡(luò)媒體流還處于分別采用單獨(dú)的解碼芯片解碼,當(dāng)以上三種AVS、H.264、和MPEG-2類型的碼流混合在網(wǎng)絡(luò)媒體流中,無(wú)法對(duì)所獲得的網(wǎng)絡(luò)媒體流的數(shù)據(jù)類型進(jìn)行識(shí)別并解碼。
發(fā)明內(nèi)容本發(fā)明旨在提供一種多媒體碼流識(shí)別的方法和裝置,以解決當(dāng)AVS、H.264、和MPEG-2三種類型的數(shù)據(jù)格式混合在網(wǎng)絡(luò)媒體流中,無(wú)法對(duì)所獲得的網(wǎng)絡(luò)媒體流的數(shù)據(jù)類型進(jìn)行識(shí)別并解碼的問(wèn)題。根據(jù)本發(fā)明的一個(gè)方面,提供一種多媒體碼流識(shí)別的方法,包括檢測(cè)出碼流中的起始碼前綴和與其相鄰的起始碼后綴;按照起始碼后綴判別出碼流的類型,并去除碼流中的起始碼前綴;按照判別出的碼流的類型對(duì)去除了起始碼前綴的碼流進(jìn)行解碼。優(yōu)選地,去除碼流中起始碼前綴的過(guò)程包括將被檢測(cè)的碼流存儲(chǔ)于第一存儲(chǔ)區(qū);在檢測(cè)出碼流中的起始碼前綴和與其相鄰的起始碼后綴之后,將第一存儲(chǔ)區(qū)中的碼流存儲(chǔ)到第二存儲(chǔ)區(qū),并在存儲(chǔ)過(guò)程中,丟棄起始碼前綴。優(yōu)選地,存儲(chǔ)過(guò)程還包括當(dāng)?shù)诙鎯?chǔ)區(qū)中的碼流數(shù)據(jù)量大于閾值時(shí),將第二存儲(chǔ)區(qū)中丟棄了所述起始碼前綴的碼流按照字節(jié)對(duì)齊后保存到第三存儲(chǔ)區(qū)中。優(yōu)選地,按照起始碼后綴判別出碼流的類型的過(guò)程包括以下步驟之一如果起始碼后綴為表示H.264協(xié)議的序列參數(shù)集的標(biāo)識(shí),則判斷出碼流的類型為H.264協(xié)議的類型;如果起始碼后綴為表示AVS協(xié)議的視頻序列起始碼的標(biāo)識(shí),則判斷出所述碼流的類型為AVS協(xié)議的類型;如果當(dāng)前獲得的起始碼后綴為表示AVS協(xié)議的PB幀圖像起始碼的標(biāo)識(shí)、且后續(xù)獲得的起始碼后綴為表示AVS協(xié)議的視頻序列起始碼的標(biāo)識(shí),則判斷出碼流的類型為AVS協(xié)議的類型;如果首次獲得的起始碼后綴為表示MPEG-2協(xié)議的視頻序列起始碼或AVS協(xié)議的I圖像起始碼的標(biāo)識(shí),再次獲得的起始碼后綴為表示MPEG-2協(xié)議的圖像起始碼或AVS的條帶起始碼的標(biāo)識(shí),最后獲得的起始碼后綴為表示AVS的PB圖像起始碼的標(biāo)識(shí),則判斷出碼流的類型為AVS協(xié)議的類型;如果首次獲得的起始碼后綴為表示MPEG-2協(xié)議的視頻序列起始碼或AVS協(xié)議的I圖像起始碼的標(biāo)識(shí),再次獲得的起始碼后綴為表示MPEG-2協(xié)議的圖像起始碼或AVS的條帶起始碼的標(biāo)識(shí),最后獲得的起始碼后綴為表示MPEG-2協(xié)議的圖像起始碼的標(biāo)識(shí),則判斷出碼流的類型為MPEG-2協(xié)議的類型。優(yōu)選地,當(dāng)判別出的碼流為H.264協(xié)議或AVS協(xié)議的碼流時(shí),還包括檢測(cè)出第一存儲(chǔ)區(qū)中的碼流內(nèi)的偽起始碼;在所述存儲(chǔ)過(guò)程中,還包括丟棄偽起始碼中的位插入數(shù)據(jù)。根據(jù)本發(fā)明的另一個(gè)方面,還提供一種多媒體碼流識(shí)別的裝置,包括存儲(chǔ)單元,用于存儲(chǔ)碼流數(shù)據(jù);處理單元,其包括檢測(cè)模塊,用于檢測(cè)碼流中的起始碼前綴和與其相鄰的起始碼后綴;識(shí)別模塊,用于通過(guò)檢測(cè)模塊檢測(cè)出的起始碼后綴,識(shí)別出碼流的類型;起始碼消除模塊,用于去除碼流中檢測(cè)出的起始碼前綴;傳輸單元,用于將獲得碼流數(shù)據(jù)存儲(chǔ)在存儲(chǔ)單元,在處理單元對(duì)碼流數(shù)據(jù)處理后,按照識(shí)別出的碼流類型輸出。優(yōu)選地,該裝置還包括解碼器,用于接收來(lái)自傳輸單元的碼流數(shù)據(jù)并解碼。優(yōu)選地,存儲(chǔ)單元包括第一寄存器,用于存儲(chǔ)被檢測(cè)的碼流;第二寄存器,用于存儲(chǔ)經(jīng)過(guò)處理單元處理后的碼流;傳輸單元用于將獲得碼流數(shù)據(jù)存儲(chǔ)在第一寄存器,將處理單元處理后的碼流存儲(chǔ)在第二級(jí)寄存器。優(yōu)選地,存儲(chǔ)單元還包括第三寄存器,用于當(dāng)?shù)诙?jí)寄存器中的碼流數(shù)據(jù)量大于閾值時(shí),存儲(chǔ)第二級(jí)寄存器中的按照字節(jié)對(duì)齊后的碼流。優(yōu)選地,識(shí)別模塊包括第一子模塊,用于在識(shí)別出所述起始碼后綴為表示H.264協(xié)議的序列參數(shù)集的標(biāo)識(shí)時(shí),判斷碼流的類型為H.264協(xié)議的類型;第二子模塊,用于在識(shí)別出所述起始碼后綴為表示AVS協(xié)議的視頻序列起始碼的標(biāo)識(shí)時(shí),判斷碼流的類型為AVS協(xié)議的類型;第三子模塊,用于在識(shí)別出當(dāng)前獲得的起始碼后綴為表示AVS協(xié)議的PB幀圖像起始碼的標(biāo)識(shí)、且后續(xù)獲得的起始碼后綴為表示AVS協(xié)議的視頻序列起始碼的標(biāo)識(shí)時(shí),判斷碼流的類型為AVS協(xié)議的類型;第四子模塊,用于在識(shí)別出首次獲得的起始碼后綴為表示MPEG-2協(xié)議的視頻序列起始碼或AVS協(xié)議的I圖像起始碼的標(biāo)識(shí),再次獲得的起始碼后綴為表示MPEG-2協(xié)議的圖像起始碼或AVS的條帶起始碼的標(biāo)識(shí),最后獲得的起始碼后綴為表示AVS的PB圖像起始碼的標(biāo)識(shí)時(shí),判斷碼流的類型為AVS協(xié)議的類型;第五子模塊,用于在識(shí)別出首次獲得的起始碼后綴為表示MPEG-2協(xié)議的視頻序列起始碼或AVS協(xié)議的I圖像起始碼的標(biāo)識(shí),再次獲得的起始碼后綴為表示MPEG-2協(xié)議的圖像起始碼或AVS的條帶起始碼的標(biāo)識(shí),最后獲得的起始碼后綴為表示MPEG-2協(xié)議的圖像起始碼的標(biāo)識(shí)時(shí),判斷碼流的類型為MPEG-2協(xié)議的類型。優(yōu)選地,所述處理單元還包括偽起始碼處理模塊,用于在識(shí)別模塊識(shí)別出的起始碼類型為H.264協(xié)議或AVS協(xié)議的碼流時(shí),檢測(cè)并去除所述第一寄存器中碼流數(shù)據(jù)內(nèi)的偽起始碼。本發(fā)明通過(guò)起始碼后綴的識(shí)別,可快速檢測(cè)出碼流的類型,并按照檢測(cè)出的碼流類型選擇相應(yīng)的解碼器進(jìn)行解碼,可處理混合有多種類型的碼流的網(wǎng)絡(luò)媒體流數(shù)據(jù);對(duì)于識(shí)別出的碼流類型,如果碼流中具有偽起始碼,則按照不同碼流的類型刪除碼流中所插入的相應(yīng)長(zhǎng)度的偽起始碼;在去除碼流中起始碼前綴和偽起始碼的過(guò)程中,采用分級(jí)傳輸?shù)姆绞?,在碼流數(shù)據(jù)向另一級(jí)寄存器傳輸時(shí),丟棄起始碼前綴和偽起始碼,從而實(shí)現(xiàn)有效的去除,處理簡(jiǎn)便,易于實(shí)現(xiàn);在傳輸過(guò)程中,如果寄存器中的數(shù)據(jù)已滿,采用緩存的方式存儲(chǔ)數(shù)據(jù),從而避免數(shù)據(jù)溢出。附圖用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本發(fā)明的示意性實(shí)施例及其說(shuō)明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中圖1示出了本發(fā)明方法的原理示意圖;圖2示出了本發(fā)明方法實(shí)施例中三級(jí)寄存器的結(jié)構(gòu)圖;圖3示出了本發(fā)明方法實(shí)施例的流程圖;圖4示出了本發(fā)明方法實(shí)施例中識(shí)別碼流類型的流程圖;圖5示出了本發(fā)明裝置實(shí)施例的示意圖;以及圖6示出了應(yīng)用本發(fā)明裝置的設(shè)備示意圖。具體實(shí)施例方式為清楚說(shuō)明本發(fā)明的方法和裝置,下面給出優(yōu)選的實(shí)施例并結(jié)合附圖詳細(xì)說(shuō)明。本發(fā)明的實(shí)施例中,通過(guò)對(duì)各種格式碼流內(nèi)的各個(gè)標(biāo)識(shí)進(jìn)行識(shí)別,并在識(shí)別之后去除此標(biāo)識(shí),將識(shí)別出的碼流進(jìn)行解碼。在闡述本發(fā)明實(shí)施例之前,需要首先說(shuō)明實(shí)施例中所涉及技術(shù)點(diǎn)的定義及概念,以便于理解本發(fā)明的實(shí)施例中的內(nèi)容。序列層(videosequence)是AVS、H.264、MPEG-2視頻層的最高層,該層中包含整個(gè)視頻節(jié)目序列的高層語(yǔ)法信息。該層語(yǔ)法信息如果不能獲取并正確解析將造成整個(gè)視頻序列無(wú)法正確解碼。因此,每一個(gè)節(jié)目的搜索和切換都必須首先找到新的節(jié)目的序列信息,并從此開(kāi)始一個(gè)新的節(jié)目?jī)?nèi)容的解碼和顯示。在搜索到新的節(jié)目的序列信息前將不能顯示新的節(jié)目的視頻畫(huà)面。期間,解碼器將丟失該序列之前的所有視頻信息。對(duì)于這三種格式的媒體流,每種媒體流中均存在各種作為標(biāo)識(shí)的起始碼值,不同的媒體流的某些起始碼值可能相同。因此,在識(shí)別過(guò)程中,對(duì)于有些首次檢測(cè)出的起始碼值,可直接識(shí)別出碼流的類型,即媒體流的格式,如H.264或AVS等,對(duì)于有些起始碼值,則需要進(jìn)一步依據(jù)識(shí)別出其它的起始碼值,才能確定出此碼流的類型。對(duì)于各個(gè)碼流的類型,可分別參見(jiàn)以下的MPEG-2起始碼類型值定義的表1、AVS基準(zhǔn)檔起始碼類型值定義的表2和H.264起始碼類型值定義的表3。表1<table>tableseeoriginaldocumentpage7</column></row><table>表2<table>tableseeoriginaldocumentpage7</column></row><table><table>tableseeoriginaldocumentpage8</column></row><table>表3<table>tableseeoriginaldocumentpage8</column></row><table>填充數(shù)據(jù)(filler_data)OC序列參數(shù)集擴(kuò)展(seqparametersetextension)0D未分割輔助編碼圖像編碼條帶(siice—layer—without—partitioning)13由表1至表3可知AVS、H.264、MPEG-2的起始碼值既有相似性又有差異性。其中,H.264的起始碼值與AVS、MPEG-2差異較大,而AVS與MPEG-2則基本采用了相同的起始碼值,只是在兩個(gè)視頻編碼標(biāo)準(zhǔn)中的含義不盡相同。所以模式識(shí)別及碼流預(yù)處理模塊的首要任務(wù)就是通過(guò)AVS、H.264、MPEG-2各自的起始碼的差異,盡可能快的識(shí)別出當(dāng)前視頻節(jié)目碼流的編碼標(biāo)準(zhǔn)類型,進(jìn)而通過(guò)CPU向相應(yīng)的解碼器下達(dá)正確的解碼指令。在模式識(shí)別之后還要找到并刪除當(dāng)前視頻節(jié)目碼流中起始碼前綴,同時(shí)標(biāo)識(shí)出碼流單元類型。以AVS為例,一個(gè)原始的AVS碼流如表4所示表4000001B0aa.aa000001B3bb...bb00000100cc..cc00000152dd..dd000001B6序列頭I幀頭第一個(gè)I幀條帶第一個(gè)I幀條帶P幀頭其中,000001B0為起始碼,000001為起始碼前綴,B0為起始碼后綴,也就是起始碼值,aa...aa序列頭數(shù)據(jù)。經(jīng)過(guò)碼識(shí)別并處理后,輸出到碼流FIFO里面的結(jié)果如表5內(nèi)的AVS碼流所示表5<table>tableseeoriginaldocumentpage9</column></row><table>Start_Code_Flag等于“1”表示當(dāng)前字節(jié)是碼流單元類型,每一個(gè)碼流FIFO字節(jié)都有這個(gè)標(biāo)志位。因?yàn)榇a流起始碼是字節(jié)對(duì)齊的,因此碼流單元類型字節(jié)也是按照相對(duì)應(yīng)字節(jié)碼流,實(shí)現(xiàn)字節(jié)對(duì)齊的。如前面所述,AVS碼流都由一個(gè)特殊的起始碼前綴“0x000001”開(kāi)始,為了防止碼流內(nèi)部正常圖像內(nèi)容與起始碼前綴相同,在編碼時(shí)將正常圖像內(nèi)容中連續(xù)的22個(gè)“0”比特后面需要加入兩個(gè)填充比特“10”。因此AVS解碼時(shí)每讀入一個(gè)字節(jié)時(shí),就檢測(cè)當(dāng)前字節(jié)和前面兩個(gè)字節(jié)是否構(gòu)成“0x000002”的特殊24比特圖樣,如果是則丟棄當(dāng)前字節(jié)最低兩位“10”。所以碼流處理過(guò)程的第二個(gè)功能就是查找并刪除特殊24比特圖樣最低兩位的“10”比特。以下為幾種24比特樣圖的示例…00000205十六進(jìn)制二進(jìn)制...00000000000000000000001000000101例如原始的AVS碼流是...xx00000193...xx...0000020532...;其中,“000001”是起始碼,“000002”是一個(gè)特殊的24比特圖樣。碼流處理過(guò)程中將刪除“000002”的最低2比特。在國(guó)際標(biāo)準(zhǔn)H.264中,為防止偽起始碼添加了一個(gè)偽字節(jié),在碼流中16個(gè)長(zhǎng)連零后插入8bit的偽字節(jié)“00000011”,AVS標(biāo)準(zhǔn)是在22個(gè)長(zhǎng)連零后添加了2個(gè)偽比特,在編碼效率上有所提高,但是在處理上增加了一些難度,偽比特后面的下一個(gè)起始碼開(kāi)始前的所有字節(jié)都需要進(jìn)行左移操作。由以上分析可知,AVS和H.264在碼流中插入偽起始碼的機(jī)制完全不同,一個(gè)是2比特的偽比特,一個(gè)是8比特的偽字節(jié)。因此,在刪除各自的偽起始碼時(shí)要充分考慮各自特點(diǎn),并盡可能復(fù)用相應(yīng)功能。基于上述對(duì)各種碼流類型的媒體數(shù)據(jù)的起始碼和偽起始碼分析,可充分利用起始碼類型的特點(diǎn),在識(shí)別出起始碼前綴后,通過(guò)判別起始碼的后綴,即起始碼的類型值,從而識(shí)別出碼流的類型是H.264、MPEG-2和AVS中的哪一種,并去除碼流中的偽起始碼。本發(fā)明原理流程的示意圖可參見(jiàn)圖1,包括變長(zhǎng)解碼過(guò)程中,隨時(shí)接收CPU發(fā)出的節(jié)目搜索或節(jié)目切換指令,該指令采用精簡(jiǎn)指令集RISC中的指令。該指令表明用戶需要更換正在播出的電視節(jié)目,重新對(duì)用戶選擇的節(jié)目的視頻編解碼模式進(jìn)行識(shí)別及碼流預(yù)處理;即采用DMA方式讀取碼流并經(jīng)過(guò)數(shù)據(jù)緩存后,進(jìn)行模式識(shí)別碼流預(yù)處理,根據(jù)識(shí)別出的碼流類型,在此基礎(chǔ)上啟動(dòng)相應(yīng)的視頻解碼器decoder進(jìn)行正常解碼。模式識(shí)別及碼流預(yù)處理的過(guò)程主要包括模式識(shí)別、起始碼識(shí)別、和偽起始碼的去00110010二進(jìn)制1100lOxx十六進(jìn)制Ci00000000000000000000000000010100特殊24比特圖樣填充比特除;過(guò)程如下1、接收到CPU發(fā)出的節(jié)目搜索或節(jié)目切換的開(kāi)始(start)指令后,啟動(dòng)模式識(shí)別、碼流預(yù)處理功能。通過(guò)寄存器對(duì)起始碼前綴“Ox000001”的搜索。2、在每次搜索到起始碼前綴“Ox000001”后,在下一個(gè)字節(jié)即數(shù)據(jù)起始碼后綴(即代表起始碼類型的起始碼值)到來(lái)時(shí),啟動(dòng)用于碼流類型識(shí)別的三級(jí)濾波器。首先啟動(dòng)第一級(jí)濾波器;并根據(jù)第一級(jí)濾波器搜索的結(jié)果順序啟動(dòng)第二級(jí)和第三級(jí)濾波器,通過(guò)第一步到第三步完成模式識(shí)別;或者通過(guò)第一級(jí)濾波器直接完成模式識(shí)別工作,從而最終確定碼流的類型。3、在模式識(shí)別之后,根據(jù)不同的模式確定碼流中的偽起始碼,通過(guò)寄存器去除碼流中的偽起始碼。基于上述各個(gè)表中起始碼后綴之間的關(guān)系和本發(fā)明原理的闡述,通過(guò)本發(fā)明的方法實(shí)施例,詳細(xì)說(shuō)明對(duì)碼流進(jìn)行識(shí)別并處理的過(guò)程。在該實(shí)施例中,詳細(xì)說(shuō)明了對(duì)碼流中起始碼和偽起始碼的識(shí)別、碼流類型識(shí)別和起始碼及偽起始碼的去除過(guò)程。參見(jiàn)圖2所示的三級(jí)寄存器結(jié)構(gòu)圖,采用移位寄存器B和移位寄存器R對(duì)起始碼進(jìn)行識(shí)別并去除偽起始碼;首先通過(guò)寄存器R0、寄存器R1和寄存器R2識(shí)別出起始碼前綴,同時(shí)啟動(dòng)濾波器進(jìn)行模式識(shí)別,即碼流類型的識(shí)別;通過(guò)寄存器R2、寄存器R3和寄存器R4實(shí)現(xiàn)偽起始碼的識(shí)別,并與移位寄存器B—起去除偽起始碼,將去除偽起始碼的數(shù)據(jù)緩存至第三級(jí)寄存器FIFO中。在此實(shí)施例中,首先說(shuō)明三級(jí)寄存器結(jié)構(gòu)關(guān)系及功能。圖2所示的移位寄存器R,即第一級(jí)寄存器,采用5個(gè)8bit(字節(jié)對(duì)齊)寬度的寄存器組,分別為寄存器R0、Rl、R2、R3、R4。碼流類型的識(shí)別和起始碼及偽起始碼去除過(guò)程中,碼流以字節(jié)為單位輸入到寄存器R0中,每次輸入碼流時(shí)寄存器R0對(duì)R1賦值、寄存器R1對(duì)R2賦值、寄存器R2對(duì)R3賦值依次類推,以字節(jié)為單位向左側(cè)傳遞。檢測(cè)起始碼是通過(guò)檢測(cè)R2、R1和R0寄存器是否是起始碼的前綴“Ox000001”,如果是前綴則正要輸入寄存器R0的8比特碼流就是起始碼的后綴,即代表起始碼類型的起始碼值,對(duì)AVS、H.264、MPEG-2視頻標(biāo)準(zhǔn)都是如此。因此,當(dāng)R2、R1和R0寄存器檢測(cè)到起始碼前綴時(shí),下一個(gè)數(shù)據(jù)到來(lái)時(shí)即可啟動(dòng)三種濾波器進(jìn)行各視頻編碼標(biāo)準(zhǔn)的起始碼后綴、即起始碼類型值進(jìn)行識(shí)別。在三種濾波器對(duì)起始碼類型值識(shí)別出以后,確定出媒體流的數(shù)據(jù)模式,即碼流類型,再由寄存器R4、R3和R2檢測(cè)偽起始碼,在模式識(shí)別后由于已經(jīng)正確識(shí)別出了視頻編解碼標(biāo)準(zhǔn),如果當(dāng)前解碼的為MPEG-2的視頻節(jié)目流,則只需將起始碼前綴去除后把有效視頻數(shù)據(jù)送入第二級(jí)寄存器(即移位寄存器B);如果為AVS或者H.264的視頻節(jié)目流則不僅需要去除起始碼前綴,還需檢測(cè)各自的偽起始碼并將其去掉,再把有效數(shù)據(jù)送入第二級(jí)寄存器中。對(duì)于解碼的為AVS標(biāo)準(zhǔn)的視頻節(jié)目流時(shí),如果{R4,R3,R2}寄存器的值為“Ox000002”,則此處為偽起始碼,需要去除偽起始碼中的位插入數(shù)據(jù),去除寄存器R2中最后2比特,將寄存器R2的高6位移入到寄存器B中;對(duì)于解碼的為H.264視頻節(jié)目流時(shí),如果{R4,R3,R2}寄存器的值為“0x000003”,則此處為位插入,需要去除寄存器R2中的8比特,8位都不移入到第二級(jí)寄存器B中。第二級(jí)寄存器的寬度由緩存FIFO的寬度而定,緩存FIFO可以采用各種存儲(chǔ)器,當(dāng)11采用寄存器時(shí),即為文中所述的第三級(jí)寄存器,F(xiàn)IFO的寬度選擇原則為NByte+lbit。其中的lbit為起始碼標(biāo)志位。標(biāo)志位為“1”表示該組數(shù)據(jù)中包含起始碼類型值信息;標(biāo)志位為“0”表示是普通的碼流數(shù)據(jù)。比如N=2,緩存FIFO有效數(shù)據(jù)寬度為2Byte,則FIFO的寬度為2Byte+lbit,即17bit。在確定了FIFO的寬度后,第二級(jí)寄存器的寬度為(N+l)Byte,即24bit;由于第二級(jí)寄存器中有一個(gè)字節(jié)用于存儲(chǔ)來(lái)自第一級(jí)寄存器中的數(shù)據(jù),如起始碼后綴,因此第二級(jí)寄存器的寬度比FIFO的寬度多(lByte-lbit)寬度,以便于在第一級(jí)寄存器向第二級(jí)寄存器存儲(chǔ)數(shù)據(jù)時(shí),不影響將第二級(jí)寄存器的數(shù)據(jù)寫(xiě)入到緩存FIFO中。在去除起始碼和偽起始碼時(shí),將數(shù)據(jù)通過(guò)寄存器R2移入第二級(jí)寄存器B0中,并通過(guò)寄存器B0傳輸至寄存器B1,寄存器B1中的數(shù)據(jù)傳至寄存器B2。在寄存器R2的數(shù)據(jù)移入到第二級(jí)寄存器B的同時(shí),第二級(jí)寄存器B中的數(shù)據(jù)同時(shí)由低位向高位移動(dòng)相同的位數(shù),以實(shí)現(xiàn)按照字節(jié)對(duì)齊,當(dāng)?shù)诙?jí)寄存器B內(nèi)的數(shù)據(jù)大于或者等于NByte時(shí),將寄存器B1、寄存器B2的內(nèi)容與起始碼標(biāo)志位一起寫(xiě)入緩存FIFO。緩存FIFO中的數(shù)據(jù)及標(biāo)志位由連接的解碼模塊讀取。以上這三級(jí)移位寄存器的存儲(chǔ)空間可以是同一個(gè)寄存器上的三個(gè)存儲(chǔ)區(qū),也可以分別為三個(gè)獨(dú)立的寄存器,將每個(gè)寄存器作為每一級(jí)寄存器;當(dāng)然,采用其它類型存儲(chǔ)器也可以實(shí)現(xiàn),但處理速度不如寄存器處理速度快。上面詳細(xì)介紹了寄存器的結(jié)構(gòu)以及功能,下面說(shuō)明碼流的起始碼、模式識(shí)別以及偽起始碼的去除過(guò)程。參見(jiàn)圖3和圖6,圖3是本發(fā)明方法實(shí)施例的流程圖,圖6所示的應(yīng)用本發(fā)明的設(shè)備示意圖。本發(fā)明的多媒體碼流處理過(guò)程由圖6所示的多媒體處理芯片62執(zhí)行以下步驟,包括S31去除讀入的數(shù)據(jù)流中的起始碼前綴。來(lái)自電視網(wǎng)絡(luò)或計(jì)算機(jī)網(wǎng)絡(luò)中的數(shù)據(jù)碼流通過(guò)設(shè)備的通信接口63傳輸?shù)蕉嗝襟w處理芯片內(nèi)。碼流以字節(jié)為單位輸入到多媒體處理芯片62的寄存器R0中,每次碼流輸入時(shí),均為寄存器R0對(duì)R1賦值、寄存器R1對(duì)R2賦值、寄存器R2對(duì)R3賦值依次類推,以字節(jié)為單位向左側(cè)傳遞。多媒體處理芯片62檢測(cè)起始碼是通過(guò)檢測(cè)寄存器R2、R1和R0中的數(shù)據(jù)是否為起始碼的前綴“Ox000001”,從而識(shí)別出起始碼前綴。當(dāng)寄存器R2、R1和R0中的數(shù)據(jù)是起始碼前綴時(shí),則正要輸入R0的8比特碼流就是起始碼的后綴,即代表起始碼類型的起始碼值,待起始碼前綴后的第一個(gè)數(shù)據(jù)即起始碼后綴左移到R2處時(shí),起始碼后綴送入第二級(jí)寄存器B的同時(shí),將第二級(jí)寄存器B中之前剩余的數(shù)據(jù)寫(xiě)入第三級(jí)寄存器FIFO中。這樣就完成了起始碼的去除工作。S32通過(guò)起始碼后綴識(shí)別碼流類型。在從寄存器R2到R0獲得起始碼前綴“Ox000001”后,在起始碼后綴(即起始碼類型值)到來(lái)時(shí),多媒體處理芯片62啟動(dòng)其內(nèi)部的用于模式識(shí)別的三級(jí)濾波器,從而實(shí)現(xiàn)對(duì)碼流模式的識(shí)別,并在模式識(shí)別之后,多媒體處理芯片62啟動(dòng)相應(yīng)的解碼器,如圖中的H.264解碼器64、MPEG-2解碼器65或AVS解碼器66。由于各個(gè)不同碼流類型下的相同起始碼值代表的含義各不相同或完全相同。因此,在闡述識(shí)別碼流類型流程的過(guò)程中,首先分析各個(gè)碼流模式下起始碼值與起始碼類型之間的對(duì)應(yīng)關(guān)系。對(duì)于模式的識(shí)別過(guò)程,通過(guò)表1至表3可以得出,不同的視頻編解碼標(biāo)準(zhǔn)中序列層的起始值有所重合。如H.264的序列參數(shù)集的起始碼及起始碼值為“Ox00000107”,其中,“Ox000001”為起始碼前綴,“07”為起始碼值,即起始碼后綴。當(dāng)模式識(shí)別過(guò)程中搜索到該起始碼前綴及起始碼值,即可馬上確定該視頻節(jié)目序列的編碼模式的類型,進(jìn)而立即啟動(dòng)H.264解碼器64(decoder)進(jìn)行工作。同理,AVS的序列參數(shù)的起始碼為“Ox000001B0”,當(dāng)模式識(shí)別過(guò)程中搜索到該起始碼前綴即可馬上確定該視頻節(jié)目序列的編碼模式,進(jìn)而立即啟動(dòng)AVS解碼器66進(jìn)行工作。MPEG-2的序列參數(shù)的起始碼為“Ox000001B3”,而該參數(shù)序列同時(shí)也為AVS視頻編碼標(biāo)準(zhǔn)中的I幀圖像起始碼。因此,當(dāng)搜索到“Ox000001B3”時(shí)只能初步判定該視頻節(jié)目序列為MPEG-2或AVS視頻編解碼標(biāo)準(zhǔn)中的一種,不能由此確定最終的編解碼模式,因此還要根據(jù)MPEG-2、AVS各自的起始碼值的特點(diǎn)進(jìn)行二次甚至三次搜索才能最終確定編碼模式。同理,當(dāng)模式識(shí)別模塊第一次搜索到“Ox000001B6”時(shí),多媒體處理芯片62可立即判別出該視頻節(jié)目序列為AVS視頻編解碼標(biāo)準(zhǔn),因?yàn)樵撔蛄惺茿VS協(xié)議中的PB幀起始碼,在H.264編解碼標(biāo)準(zhǔn)中未曾用到,而在MPEG-2編解碼標(biāo)準(zhǔn)中也被保留。但這一階段只能判別是AVS視頻節(jié)目流,而要正確解碼還必須繼續(xù)搜索到其第一個(gè)序列層起始碼?;谏鲜龅募夹g(shù)點(diǎn),針對(duì)起始碼24bit數(shù)據(jù)采用三級(jí)濾波結(jié)構(gòu),從而實(shí)現(xiàn)快速的碼流模式識(shí)別的目的。第一級(jí)濾波器支持4路起始碼的濾波,分別是“Ox00000107”、“0x0000B0”、“0x000001B6”、“0x000001B3”,基于這4個(gè)起始碼值與起始碼類型的對(duì)應(yīng)關(guān)系,4路濾波器分別對(duì)應(yīng)識(shí)別出H.264序列起始碼、AVS序列起始碼、AVS的PB幀起始碼、MPEG-2的序列起始碼或AVS的I幀起始碼。在第一級(jí)濾波器的基礎(chǔ)上進(jìn)一步設(shè)置第二級(jí)濾波器,同時(shí)支持2路起始碼的濾波,分別是“Ox000001B0”、“0x00000100”,基于這2個(gè)起始碼與起始碼類型的對(duì)應(yīng)關(guān)系,2路濾波器識(shí)別AVS序列起始碼、MPEG-2的圖像起始碼或AVS的第一條帶起始碼。在第二級(jí)濾波器的基礎(chǔ)上進(jìn)一步設(shè)置第三級(jí)濾波器,同時(shí)支持2路起始碼的濾波,分別是“Ox00000100”、“0x000001B6”,基于這2個(gè)起始碼值與起始碼類型的對(duì)應(yīng)關(guān)系,2路濾波器識(shí)別AVS序列起始碼、MPEG-2的圖像起始碼或AVS的PB幀起始碼。由于節(jié)目搜索或節(jié)目切換時(shí)碼流的獲取具有完全的隨機(jī)性,因此模式識(shí)別的流程和時(shí)間也不盡相同。某些情況下在第一級(jí)濾波器中就能順利完成視頻編解碼模式的識(shí)別;但在某些情況下要連續(xù)進(jìn)行到第三級(jí)濾波才能順利完成視頻編解碼模式的識(shí)別。參見(jiàn)圖4所示的示例碼流類型的流程圖,識(shí)別過(guò)程包括以下三個(gè)步驟第一步第一級(jí)濾波器啟動(dòng)后,4路起始碼“Ox00000107”、“0x000001B0,,、“0x000001B6,,和“Ox000001B3”的濾波同時(shí)進(jìn)行工作。在搜索濾波過(guò)程中根據(jù)首先搜索到的內(nèi)容不同,模式識(shí)別工作將分別進(jìn)入到以下四個(gè)階段或狀態(tài)1)若首先搜索到“Ox00000107”,則多媒體處理芯片62可以判別出該視頻節(jié)目流的類型為H.264格式,即可向CPU發(fā)出準(zhǔn)備完成(ready)信號(hào),模式識(shí)別結(jié)束,無(wú)需進(jìn)行第二步和第三步。2)若首先搜索到“Ox000001B0”,則多媒體處理芯片62可以判別出該視頻節(jié)目流的類型為AVS格式,即可向CPU發(fā)出ready信號(hào),模式識(shí)別結(jié)束,無(wú)需進(jìn)行第二步和第三步。3)若首先搜索到“Ox000001B6”,則多媒體處理芯片62可以判別出該視頻節(jié)目流的類型為AVS格式,但還需繼續(xù)搜索AVS的序列起始碼才能保證AVS解碼器正常啟動(dòng)解碼功能。因此,這時(shí)需要將AVS的標(biāo)志位flag拉高,并進(jìn)入第二步。4)若首先搜索到“Ox000001B3”,多媒體處理芯片62則可以判別出該視頻節(jié)目流的類型為AVS格式或者M(jìn)PEG-2格式,因此,這時(shí)需要將AVS和MPEG-2的標(biāo)志位flag同時(shí)拉高,并進(jìn)入第二步進(jìn)行進(jìn)一步識(shí)別。標(biāo)志位是用于標(biāo)識(shí)是否需要進(jìn)一步判別的標(biāo)識(shí),僅在執(zhí)行濾波處理時(shí)使用,上述中將標(biāo)志位拉高,即將標(biāo)志位置1或置0,通常置為1;這樣,在進(jìn)行下一步判別時(shí),通過(guò)所置的標(biāo)志位即可判別出是否需要進(jìn)一步判別以及所判別的內(nèi)容。第二步由于第一級(jí)濾波器未能完成最終的模式識(shí)別工作,因此,必需啟動(dòng)第二級(jí)濾波器,并根據(jù)第一步中第一級(jí)濾波器的結(jié)果啟動(dòng)相應(yīng)的第二級(jí)濾波器,具體如下1)若此時(shí)只有AVS的標(biāo)志位flag被拉高,說(shuō)明在第一步中第一級(jí)濾波器已經(jīng)識(shí)別出了起始碼值為B6,該視頻節(jié)目流為AVS格式,則多媒體處理芯片62只需啟動(dòng)第二級(jí)濾波器識(shí)別碼流中是否還存在起始碼“Ox000001B0”即可,待該起始碼搜索完成后,多媒體處理芯片62即可向CPTO1發(fā)出ready信號(hào),模式識(shí)別結(jié)束,無(wú)需進(jìn)行第三步;如果沒(méi)有搜索到,模式識(shí)別結(jié)束,無(wú)需進(jìn)行第三步。2)若此時(shí)AVS的標(biāo)志位flag和MPEG-2的標(biāo)志位flag被拉高,說(shuō)明在第一步中第一級(jí)濾波器的識(shí)別結(jié)果為該視頻節(jié)目流為AVS格式或者M(jìn)PEG-2格式中的一種,即識(shí)別出起始碼值為B3。則多媒體處理芯片62需要啟動(dòng)第二級(jí)濾波器,識(shí)別碼流中是否還存在“Ox00000100”,為進(jìn)一步識(shí)別AVS和MPEG-2做準(zhǔn)備。搜索完成后進(jìn)入第三步。第三步由于第二級(jí)濾波器在第一級(jí)濾波器的基礎(chǔ)上已經(jīng)搜索到了起始碼“Ox00000100”,所以此時(shí)需要同時(shí)啟動(dòng)第三級(jí)濾波器,多媒體處理芯片62進(jìn)一步識(shí)別碼流中是否存在“Ox000001B6”或“Ox00000100”,具體如下1)若首先搜索到“Ox000001B6”,則可以判定該視頻節(jié)目流的類型為AVS格式,即可向CPU發(fā)出ready信號(hào),模式識(shí)別結(jié)束。2)若首先搜索到“Ox00000100”,則可以判定該視頻節(jié)目流的類型為MPEG-2格式,即可向CPU發(fā)出ready信號(hào),模式識(shí)別結(jié)束。對(duì)于在第二步和第三步中的起始碼值的識(shí)別過(guò)程之前,也同樣需要先執(zhí)行識(shí)別起始碼并去除的步驟。無(wú)論在哪個(gè)步驟識(shí)別出碼流模式,都會(huì)啟動(dòng)相應(yīng)的解碼器進(jìn)行解碼。步驟S33按照碼流的類型判斷是否存在偽起始碼。由于不同的碼流類型的編碼結(jié)構(gòu)不同,對(duì)應(yīng)MPEG-2的碼流中沒(méi)有偽起始碼,而AVS和H.264類型的碼流中具有偽起始碼。因此,多媒體處理芯片62需要按照碼流的類型判斷出碼流中是否具有偽起始碼,如果識(shí)別出正在解碼的視頻節(jié)目流為MPEG-2,則沒(méi)有偽起始碼,無(wú)需進(jìn)行偽起始碼的去除工作。可直接啟動(dòng)MPEG-2的解碼器對(duì)碼流執(zhí)行步驟S35進(jìn)行解碼。當(dāng)然,MPEG-2的數(shù)據(jù)類型只是本發(fā)明的實(shí)施例中的一個(gè)舉例,還存在多種沒(méi)有偽起始碼類型的碼流,可在去除起始碼之后,直接進(jìn)行解碼,在此不一一贅述;如果有,則執(zhí)行步驟S34。步驟S34去除碼流中的偽起始碼。多媒體處理芯片62若識(shí)別出當(dāng)前正在解碼的視頻節(jié)目流為AVS、或H.264格式,多媒體處理芯片62在去除起始碼的同時(shí)還需要去除碼流中可能含有的偽起始碼。多媒體處理芯片62內(nèi)的寄存器R4、R3和R2則用于檢測(cè)偽起始碼,對(duì)于當(dāng)前解碼的模式為AVS標(biāo)準(zhǔn)的視頻節(jié)目流時(shí),如果寄存器{R4,R3,R2}的數(shù)據(jù)值為“Ox000002”,則此處為位插入,需要去除寄存器R2中最后2比特,即將寄存器R2中的高6位移入到移位寄存器B中;對(duì)于解碼的模式為H.264視頻節(jié)目流時(shí),如果寄存器{R4,R3,R2}的數(shù)據(jù)值為"Ox000003”,則此處為位插入,需要去除R2寄存器中的8比特,此時(shí)寄存器R2中的8個(gè)比特位都不移入移位寄存器B中。步驟S35解碼器按照碼流類型對(duì)碼流進(jìn)行解碼。通過(guò)上述的步驟,實(shí)現(xiàn)去除了偽起始碼后,按照識(shí)別出碼流類型,將去除偽起始碼后的碼流選擇相應(yīng)的解碼器進(jìn)行解碼,如圖6中的H.264解碼器64、MPEG-2解碼器65、AVS解碼器66。在本發(fā)明的方法實(shí)施例中,在解碼的同時(shí)也執(zhí)行對(duì)碼流類型的判別。當(dāng)然,還可以在每次接收到用戶切換電視節(jié)目信號(hào)時(shí),執(zhí)行一次判別碼流類型的操作,在解碼過(guò)程中,不再執(zhí)行對(duì)碼流的判別操作。上面說(shuō)明了本發(fā)明方法實(shí)施例的工作流程,下面給出本發(fā)明的裝置實(shí)施例,詳細(xì)說(shuō)明本發(fā)明的裝置實(shí)施例,參見(jiàn)圖5所示的裝置實(shí)施例的結(jié)構(gòu)圖,包括存儲(chǔ)單元51,用于存儲(chǔ)碼流數(shù)據(jù);處理單元52,包括檢測(cè)模塊521,用于檢測(cè)出所述碼流中的起始碼前綴和與其相鄰的起始碼后綴;識(shí)別模塊522,用于通過(guò)所述檢測(cè)模塊檢測(cè)出的起始碼后綴,識(shí)別出所述碼流的類型;起始碼消除模塊523,用于去除所述碼流中檢測(cè)出的起始碼前綴;傳輸單元53,用于將獲得所述碼流數(shù)據(jù)存儲(chǔ)在所述存儲(chǔ)單元51,在所述處理單元52對(duì)所述碼流數(shù)據(jù)處理后,按照識(shí)別出的所述碼流類型,將所述碼流數(shù)據(jù)輸出至相應(yīng)的解碼器。優(yōu)選地,所述存儲(chǔ)單元51包括第一級(jí)寄存器511,用于存儲(chǔ)所述被檢測(cè)的碼流;第二級(jí)寄存器512,用于存儲(chǔ)經(jīng)過(guò)所述處理單元52處理后的碼流;所述傳輸單元53,用于將獲得所述碼流數(shù)據(jù)存儲(chǔ)在所述第一級(jí)寄存器511,將所述處理單元52處理后的碼流存儲(chǔ)在所述第二級(jí)寄存器512。優(yōu)選地,所述存儲(chǔ)單元51還包括第三級(jí)寄存器513,用于當(dāng)所述第二級(jí)寄存器512中的碼流數(shù)據(jù)量大于閾值時(shí),存儲(chǔ)所述第二級(jí)寄存器512中的碼流數(shù)據(jù)。優(yōu)選地,所述識(shí)別模塊522包括第一子模塊5221,用于在識(shí)別出所述起始碼后綴為表示H.264協(xié)議的序列參數(shù)集的標(biāo)識(shí)時(shí),判斷出所述碼流的類型為H.264協(xié)議的類型;第二子模塊5222,用于在識(shí)別出所述起始碼后綴為表示AVS協(xié)議的視頻序列起始碼的標(biāo)識(shí)時(shí),判斷出所述碼流的類型為AVS協(xié)議的類型。第三子模塊5223,用于在識(shí)別出當(dāng)前獲得的起始碼后綴為表示AVS協(xié)議的PB幀圖像起始碼的標(biāo)識(shí)、且后續(xù)獲得的起始碼后綴為表示AVS協(xié)議的視頻序列起始碼的標(biāo)識(shí)時(shí),判斷出所述碼流的類型為AVS協(xié)議的類型;第四子模塊5224,用于在識(shí)別出首次獲得的起始碼后綴為表示MPEG-2協(xié)議的視頻序列起始碼或AVS協(xié)議的I圖像起始碼的標(biāo)識(shí),再次獲得的起始碼后綴為表示MPEG-2協(xié)議的圖像起始碼或AVS的條帶起始碼的標(biāo)識(shí),最后獲得的起始碼后綴為表示AVS的PB圖像起始碼的標(biāo)識(shí)時(shí),判斷出所述碼流的類型為AVS協(xié)議的類型;第五子模塊5225,用于在識(shí)別出首次獲得的起始碼后綴為表示MPEG-2協(xié)議的視頻序列起始碼或AVS協(xié)議的I圖像起始碼的標(biāo)識(shí),再次獲得的起始碼后綴為表示MPEG-2協(xié)議的圖像起始碼或AVS的條帶起始碼的標(biāo)識(shí),最后獲得的起始碼后綴為表示MPEG-2協(xié)議的圖像起始碼的標(biāo)識(shí)時(shí),判斷出所述碼流的類型為MPEG-2協(xié)議的類型。優(yōu)選地,所述處理單元52還包括偽起始碼處理模塊524,用于在所述識(shí)別模塊識(shí)別出的起始碼類型為H.264協(xié)議或AVS協(xié)議的碼流時(shí),檢測(cè)并去除所述第一級(jí)寄存器中碼流數(shù)據(jù)內(nèi)的偽起始碼。上面說(shuō)明了本發(fā)明裝置實(shí)施例的結(jié)構(gòu)圖,當(dāng)該裝置應(yīng)用在電視設(shè)備或計(jì)算機(jī)設(shè)備內(nèi)時(shí),可將該裝置集成在具有多媒體處理功能的芯片62內(nèi),如圖6所示的應(yīng)用本發(fā)明裝置的設(shè)備示意圖,多媒體處理芯片62內(nèi)的裝置接收到CPU61發(fā)出的切換節(jié)目的信號(hào)后,重新對(duì)來(lái)自通信接口63的碼流進(jìn)行識(shí)別。通信接口63可以采用有線電視的網(wǎng)絡(luò)接口或RJ45計(jì)算機(jī)網(wǎng)絡(luò)接口等網(wǎng)絡(luò)接口,經(jīng)過(guò)多媒體處理芯片62內(nèi)的裝置處理后,按照碼流類型輸出。由于不同的碼流類型有不同的解碼器,如H.264解碼器64、MPEG-2解碼器65、AVS解碼器66等,這些解碼器接收到碼流進(jìn)行解碼處理。解碼器可以集成在本發(fā)明的裝置內(nèi),也可采用獨(dú)立的解碼芯片進(jìn)行解碼。本發(fā)明的實(shí)施例,通過(guò)起始碼后綴的識(shí)別,可快速檢測(cè)出碼流的類型,并按照檢測(cè)出的碼流類型選擇相應(yīng)的解碼器進(jìn)行解碼,可處理混合有多種類型的碼流的網(wǎng)絡(luò)媒體流數(shù)據(jù);對(duì)于識(shí)別出的碼流類型,如果碼流中具有偽起始碼,則按照不同碼流的類型刪除碼流中所插入的相應(yīng)長(zhǎng)度的偽起始碼;在去除碼流中起始碼前綴和偽起始碼的過(guò)程中,采用分級(jí)傳輸?shù)姆绞?,在碼流數(shù)據(jù)向另一級(jí)寄存器傳輸時(shí),丟棄起始碼前綴和偽起始碼,從而實(shí)現(xiàn)有效的去除,由于將去除起始碼前綴和偽起始碼的過(guò)程同時(shí)進(jìn)行,提高了處理效率;在傳輸過(guò)程中,如果寄存器中的數(shù)據(jù)已滿,采用緩存的方式存儲(chǔ)數(shù)據(jù),從而避免數(shù)據(jù)溢出。顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計(jì)算裝置來(lái)實(shí)現(xiàn),它們可以集中在單個(gè)的計(jì)算裝置上,或者分布在多個(gè)計(jì)算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計(jì)算裝置可執(zhí)行的程序代碼來(lái)實(shí)現(xiàn),從而可以將它們存儲(chǔ)在存儲(chǔ)裝置中由計(jì)算裝置來(lái)執(zhí)行,或者將它們分別制作成各個(gè)集成電路模塊,或者將它們中的多個(gè)模塊或步驟制作成單個(gè)集成電路模塊來(lái)實(shí)現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說(shuō),本發(fā)明可以有各種更改和變化。幾在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。權(quán)利要求一種多媒體碼流識(shí)別的方法,其特征在于包括檢測(cè)所述碼流的起始碼前綴和與所述起始碼前綴相鄰的起始碼后綴;按照所述起始碼后綴判別所述碼流的類型并去除所述起始碼前綴;以及按照所述判別出的碼流的類型對(duì)所述被去除了起始碼前綴的碼流進(jìn)行解碼。2.根據(jù)權(quán)利要求1所述的方法,其特征在于所述去除碼流的起始碼前綴的步驟包括將所述被檢測(cè)的碼流存儲(chǔ)于第一存儲(chǔ)區(qū);以及在所述檢測(cè)出碼流起始碼前綴和所述相鄰的起始碼后綴之后,將所述第一存儲(chǔ)區(qū)中的碼流存儲(chǔ)到第二存儲(chǔ)區(qū),并在存儲(chǔ)過(guò)程中,丟棄所述起始碼前綴。3.根據(jù)權(quán)利要求2所述的方法,其特征在于所述存儲(chǔ)步驟還包括當(dāng)所述第二存儲(chǔ)區(qū)中的碼流數(shù)據(jù)量大于一個(gè)確定的閾值時(shí),將所述第二存儲(chǔ)區(qū)中丟棄了所述起始碼前綴的碼流按照字節(jié)對(duì)齊后保存到第三存儲(chǔ)區(qū)中。4.根據(jù)權(quán)利要求2所述的方法,其特征在于按照所述起始碼后綴判別出所述碼流的類型的步驟包括以下步驟之一如果所述起始碼后綴為表示H.264協(xié)議的序列參數(shù)集的標(biāo)識(shí),則判斷出所述碼流的類型為H.264協(xié)議的類型;如果所述起始碼后綴為表示AVS協(xié)議的視頻序列起始碼的標(biāo)識(shí),則判斷出所述碼流的類型為AVS協(xié)議的類型;如果當(dāng)前獲得的起始碼后綴為表示AVS協(xié)議的PB幀圖像起始碼的標(biāo)識(shí)、且后續(xù)獲得的起始碼后綴為表示AVS協(xié)議的視頻序列起始碼的標(biāo)識(shí),則判斷出所述碼流的類型為AVS協(xié)議的類型;如果首次獲得的起始碼后綴為表示MPEG-2協(xié)議的視頻序列起始碼或AVS協(xié)議的I圖像起始碼的標(biāo)識(shí),再次獲得的起始碼后綴為表示MPEG-2協(xié)議的圖像起始碼或AVS的條帶起始碼的標(biāo)識(shí),最后獲得的起始碼后綴為表示AVS的PB圖像起始碼的標(biāo)識(shí),則判斷出所述碼流的類型為AVS協(xié)議的類型;以及如果首次獲得的起始碼后綴為表示MPEG-2協(xié)議的視頻序列起始碼或AVS協(xié)議的I圖像起始碼的標(biāo)識(shí),再次獲得的起始碼后綴為表示MPEG-2協(xié)議的圖像起始碼或AVS的條帶起始碼的標(biāo)識(shí),最后獲得的起始碼后綴為表示MPEG-2協(xié)議的圖像起始碼的標(biāo)識(shí),則判斷出所述碼流的類型為MPEG-2協(xié)議的類型。5.根據(jù)權(quán)利要求4所述的方法,其特征在于當(dāng)判別出的所述碼流為H.264協(xié)議或AVS協(xié)議的碼流時(shí),還包括以下步驟檢測(cè)出所述第一存儲(chǔ)區(qū)中的碼流內(nèi)的偽起始碼;以及在所述存儲(chǔ)過(guò)程中,丟棄所述偽起始碼中的位插入數(shù)據(jù)。6.根據(jù)權(quán)利要求2至5中任一項(xiàng)所述的方法,其特征在于所述第一存儲(chǔ)區(qū)、第二存儲(chǔ)區(qū)、和第三存儲(chǔ)區(qū)在寄存器中。7.一種多媒體碼流識(shí)別的裝置,其特征在于包括存儲(chǔ)單元,用于存儲(chǔ)碼流數(shù)據(jù);處理單元,包括檢測(cè)模塊,用于檢測(cè)所述碼流中的起始碼前綴和與所述起始碼前綴相鄰的起始碼后識(shí)別模塊,用于響應(yīng)所述檢測(cè)模塊檢測(cè)出的起始碼后綴,識(shí)別所述碼流的類型;起始碼消除模塊,用于去除所述碼流中檢測(cè)出的起始碼前綴;以及傳輸單元,用于將獲得所述碼流數(shù)據(jù)存儲(chǔ)在所述存儲(chǔ)單元,并響應(yīng)所述處理單元對(duì)所述碼流數(shù)據(jù)的處理,按照識(shí)別出的所述碼流類型輸出。8.根據(jù)權(quán)利要求7所述的裝置,其特征在于還包括解碼器,用于接收來(lái)自所述傳輸單元的所述碼流數(shù)據(jù)并解碼。9.根據(jù)權(quán)利要求7所述的裝置,其特征在于所述存儲(chǔ)單元包括第一寄存器,用于存儲(chǔ)所述被檢測(cè)的碼流以及來(lái)自所述傳輸單元的所述碼流數(shù)據(jù);以及第二寄存器,用于存儲(chǔ)經(jīng)過(guò)所述處理單元處理后的碼流以及來(lái)自所述處理單元的碼流。10.根據(jù)權(quán)利要求9所述的裝置,其特征在于所述存儲(chǔ)單元還包括第三寄存器,用于當(dāng)所述第二寄存器中的碼流數(shù)據(jù)量大于一個(gè)確定閾值時(shí),存儲(chǔ)所述第二級(jí)寄存器中的按照字節(jié)對(duì)齊后的碼流。11.根據(jù)權(quán)利要求9所述的裝置,其特征在于所述識(shí)別模塊包括第一子模塊,用于在識(shí)別出所述起始碼后綴為表示H.264協(xié)議的序列參數(shù)集的標(biāo)識(shí)時(shí),判斷所述碼流的類型為H.264協(xié)議的類型;第二子模塊,用于在識(shí)別出所述起始碼后綴為表示AVS協(xié)議的視頻序列起始碼的標(biāo)識(shí)時(shí),判斷所述碼流的類型為AVS協(xié)議的類型;第三子模塊,用于在識(shí)別出當(dāng)前獲得的起始碼后綴為表示AVS協(xié)議的PB幀圖像起始碼的標(biāo)識(shí)、且后續(xù)獲得的起始碼后綴為表示AVS協(xié)議的視頻序列起始碼的標(biāo)識(shí)時(shí),判斷所述碼流的類型為AVS協(xié)議的類型;第四子模塊,用于在識(shí)別出首次獲得的起始碼后綴為表示MPEG-2協(xié)議的視頻序列起始碼或AVS協(xié)議的I圖像起始碼的標(biāo)識(shí),再次獲得的起始碼后綴為表示MPEG-2協(xié)議的圖像起始碼或AVS的條帶起始碼的標(biāo)識(shí),最后獲得的起始碼后綴為表示AVS的PB圖像起始碼的標(biāo)識(shí)時(shí),判斷所述碼流的類型為AVS協(xié)議的類型;以及第五子模塊,用于在識(shí)別出首次獲得的起始碼后綴為表示MPEG-2協(xié)議的視頻序列起始碼或AVS協(xié)議的I圖像起始碼的標(biāo)識(shí),再次獲得的起始碼后綴為表示MPEG-2協(xié)議的圖像起始碼或AVS的條帶起始碼的標(biāo)識(shí),最后獲得的起始碼后綴為表示MPEG-2協(xié)議的圖像起始碼的標(biāo)識(shí)時(shí),判斷所述碼流的類型為MPEG-2協(xié)議的類型。12.根據(jù)權(quán)利要求11所述的裝置,其特征在于所述處理單元還包括偽起始碼處理模塊,用于在所述識(shí)別模塊識(shí)別出的起始碼類型為H.264協(xié)議或AVS協(xié)議的碼流時(shí),檢測(cè)并去除所述第一寄存器中碼流數(shù)據(jù)內(nèi)的偽起始碼。全文摘要本發(fā)明提供一種多媒體碼流識(shí)別的方法和裝置,能夠解決由于多種類型的數(shù)據(jù)格式碼流混合在網(wǎng)絡(luò)媒體流中,從而無(wú)法對(duì)所獲得的網(wǎng)絡(luò)媒體流的數(shù)據(jù)類型進(jìn)行識(shí)別并解碼的問(wèn)題。本發(fā)明的方法包括檢測(cè)出碼流中的起始碼前綴和與其相鄰的起始碼后綴;按照起始碼后綴判別出碼流的類型并去除碼流中的起始碼前綴;以及按照判別出的碼流的類型對(duì)去除了起始碼前綴的碼流進(jìn)行解碼。本發(fā)明通過(guò)對(duì)起始碼后綴的識(shí)別,可快速檢測(cè)出碼流的類型,并按照檢測(cè)出的碼流類型選擇相應(yīng)的解碼器進(jìn)行解碼,可處理混合有多種類型的碼流的網(wǎng)絡(luò)媒體流數(shù)據(jù);在一次處理過(guò)程中,可同時(shí)去除碼流中的起始碼前綴和偽起始碼,提高了處理效率。文檔編號(hào)H04N7/24GK101800892SQ20101012906公開(kāi)日2010年8月11日申請(qǐng)日期2010年3月4日優(yōu)先權(quán)日2010年3月4日發(fā)明者何云鵬,劉立莊,劉西富,張騁申請(qǐng)人:青島海信信芯科技有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
甘德县| 衡阳市| 龙江县| 盘山县| 澎湖县| 偃师市| 阿鲁科尔沁旗| 汨罗市| 五原县| 富平县| 宝坻区| 咸宁市| 麻栗坡县| 伊春市| 石台县| 罗定市| 海安县| 弋阳县| 韶关市| 临江市| 罗平县| 蒲城县| 双江| 施秉县| 清水河县| 肥东县| 东宁县| 墨竹工卡县| 育儿| 应用必备| 深水埗区| 景洪市| 公安县| 金华市| 天镇县| 威宁| 扎兰屯市| 乌拉特前旗| 马公市| 鸡西市| 清涧县|