專利名稱:實(shí)現(xiàn)高清視頻并行編碼的方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于數(shù)字視頻編解碼技術(shù)領(lǐng)域,涉及一種視頻編碼的實(shí)現(xiàn)方法,尤其涉及一種 H. 264高清視頻編碼實(shí)時(shí)實(shí)現(xiàn)方法及系統(tǒng)。
背景技術(shù):
隨著數(shù)字化進(jìn)程的加速普及,人們對(duì)視頻的需求提出了更高的要求,電視、內(nèi)容、數(shù)字 攝像機(jī)等提供的各種形式視頻正在向高清轉(zhuǎn)變。數(shù)據(jù)量巨大的高清視頻內(nèi)容的存儲(chǔ)、傳輸離 不開視頻壓縮和解壓縮技術(shù)。新一代視頻壓縮標(biāo)準(zhǔn)H.264由于較之傳統(tǒng)標(biāo)準(zhǔn)具有更優(yōu)的性能, 因而在高清視頻領(lǐng)域得到了越來越廣泛的應(yīng)用。但是, 一方面由于需要進(jìn)行壓縮的高清視頻 數(shù)據(jù)量巨大,另一方面,為達(dá)到高效的性能,比264采用了復(fù)雜的壓縮算法,普通處理器難以 實(shí)現(xiàn)對(duì)高清視頻的實(shí)時(shí)編碼壓縮。目前解決該問題的主要途徑是采用專用的硬件編碼芯片或 采用專用數(shù)字信號(hào)處理器(DSP)。采用硬件編碼芯片的方案,如富士通微電子、Ambarella公 司等采用了專用的高清壓縮芯片。采用專用的硬件編碼芯片方案目前己基本成熟,但其由于 編碼算法固化,可配置性和擴(kuò)展性差,無法實(shí)現(xiàn)軟件的靈活應(yīng)用和有效升級(jí)。相反,采用數(shù) 字信號(hào)處理器(DSP)的方案由于采用的是軟件編碼算法,具有很好的靈活性和可擴(kuò)展性,但 其不足在于,由于單個(gè)DSP處理能力有限,難以實(shí)現(xiàn)對(duì)高清視頻的實(shí)時(shí)編碼壓縮。目前,行 業(yè)內(nèi)普遍的解決方案是通過采用多個(gè)DSP并行編碼的方式來實(shí)現(xiàn)對(duì)高清視頻的實(shí)時(shí)編碼壓縮。
由于H.264編碼算法極為復(fù)雜,宏塊編碼預(yù)測(cè)不僅需要參考當(dāng)前幀內(nèi)宏,還需要參考幀 間宏塊,數(shù)據(jù)間具有很強(qiáng)的相關(guān)性,導(dǎo)致并行編碼算法的設(shè)計(jì)難度非常大。基于多DSP核編 碼的并行編碼算法設(shè)計(jì)通常做法(如德州儀器公司提供的多DSP核并行編碼算法)如圖1所 示,所示將對(duì)整幀圖像編碼劃分為預(yù)測(cè)(含幀內(nèi)預(yù)測(cè)、幀間預(yù)測(cè))、變換、量化、熵編碼、反 量化、反變換、圖像重構(gòu)等模塊,并將這些模塊分配到不同的DSP核,通過串行流水的方式, 使各DSP并行執(zhí)行編碼的各不同階段的計(jì)算。這種方法將編碼預(yù)測(cè)置于單獨(dú)的DSP核,避免 了編碼預(yù)測(cè)參考數(shù)據(jù)在多個(gè)DSP間的傳輸拷貝,有效地降低了數(shù)據(jù)的相關(guān)性,可以很好的實(shí) 現(xiàn)模塊的并行運(yùn)算。但是,其存在的問題是,單個(gè)模塊的執(zhí)行耗時(shí)很容易成為整個(gè)并行算法 的性能瓶頸。例如,負(fù)責(zé)預(yù)測(cè)計(jì)算的模塊由于耗時(shí)過大,將往往導(dǎo)致其后續(xù)變換、量化、熵 編碼、反量化、反變換、重構(gòu)等模塊的空閑等待,因而降低了整個(gè)系統(tǒng)的性能。
因此,如何設(shè)計(jì)高效的并行編碼算法,成為本領(lǐng)域技術(shù)人員亟待解決的問題。發(fā)明內(nèi)容本發(fā)明所要解決的技術(shù)問題是提供一種高效的H.264并行編碼實(shí)現(xiàn)方法,可以有效均 衡的將編碼任務(wù)分配至多個(gè)處理器并行編碼壓縮,從而實(shí)現(xiàn)對(duì)1080P的實(shí)時(shí)編碼。 為解決上述技術(shù)問題,本發(fā)明采用如下技術(shù)方案-一種實(shí)現(xiàn)高清視頻并行編碼的方法,包括如下步驟 步驟A、將當(dāng)前圖像分割為若干子圖像;步驟B、提供若干處理器,各處理器獨(dú)立編碼壓縮步驟A中被分割的子圖像,生成子碼流;步驟C、合并步驟B中生成的子碼流,生成輸出當(dāng)前圖像編碼碼流。作為本發(fā)明的一種優(yōu)選方案,所述步驟A中分割子圖像的方法為:將圖像分割為若干子圖像,根據(jù)目標(biāo)處理器處理能力確定子圖像的大小。作為本發(fā)明的一種優(yōu)選方案,從橫向上將圖像分割為若干子圖像。作為本發(fā)明的一種優(yōu)選方案,所述步驟B中的子圖像分別由相應(yīng)的目標(biāo)處理器中設(shè)置的圖像編碼模塊編碼壓縮。作為本發(fā)明的一種優(yōu)選方案,所述目標(biāo)處理器包括至少一主處理器及至少一從處理器。作為本發(fā)明的一種優(yōu)選方案,所述步驟B中獨(dú)立編碼壓縮各子圖像,對(duì)子圖像內(nèi)當(dāng)前宏 塊編碼的具體方法如下判斷子圖像為幀內(nèi)編碼還是幀間編碼, 若子圖像為幀內(nèi)編碼,則進(jìn)行如下步驟Bll)判斷當(dāng)前宏塊是否為所在子圖像第一行宏塊,若是,設(shè)置其幀內(nèi)預(yù)測(cè)可用模式為DC 直流預(yù)測(cè),轉(zhuǎn)步驟B14),否則轉(zhuǎn)步驟B12);B12)判斷當(dāng)前宏塊是否為所在子圖像第一列宏塊,若是,設(shè)置其幀內(nèi)預(yù)測(cè)可用模式為DC 直流預(yù)測(cè)、以及垂直預(yù)測(cè),轉(zhuǎn)步驟B14),否則轉(zhuǎn)步驟B13);B13)設(shè)置其幀內(nèi)預(yù)測(cè)可用模式為DC直流預(yù)測(cè)、水平預(yù)測(cè)、以及垂直預(yù)測(cè);B14)幀內(nèi)宏塊預(yù)測(cè)編碼,分別采用各種幀內(nèi)預(yù)測(cè)可用模式對(duì)宏塊進(jìn)行預(yù)測(cè),并選擇預(yù)測(cè) 誤差最小的預(yù)測(cè)模式完成對(duì)當(dāng)前宏塊的編碼;若子圖像為幀間編碼B21)判斷當(dāng)前宏塊是否為所在子圖像第一行宏塊,若是,設(shè)置運(yùn)動(dòng)矢量垂直搜索范圍最 大值為0像素,轉(zhuǎn)步驟B24),否則轉(zhuǎn)步驟B22);B22)判斷當(dāng)前宏塊是否為所在子圖像最后一行宏塊,若是,設(shè)置運(yùn)動(dòng)矢量垂直搜索范圍 最大值為O像素,轉(zhuǎn)步驟B24),否則轉(zhuǎn)步驟B23);B23)設(shè)置運(yùn)動(dòng)矢量垂直搜索范圍最大值為N像素,其中,N為大于等于零的整數(shù);B24)設(shè)置運(yùn)動(dòng)矢量水平搜索范圍最大值為N像素,其中,N為大于等于零的整數(shù);B25)幀間宏塊預(yù)測(cè)編碼。在運(yùn)動(dòng)矢量垂直搜索范圍內(nèi)計(jì)算最佳運(yùn)動(dòng)矢量,根據(jù)最佳運(yùn)動(dòng) 矢量完成對(duì)當(dāng)前宏塊的編碼。作為本發(fā)明的一種優(yōu)選方案,所述步驟C中合并子碼流的具體方法為分別在各個(gè)子碼 流前添加兩字節(jié)大小的首宏塊地址和兩字節(jié)大小的子圖像編碼類型標(biāo)志,并依次連接生成當(dāng) 前圖像編碼最后應(yīng)該輸出的碼流。一種實(shí)現(xiàn)高清視頻并行編碼的系統(tǒng),該系統(tǒng)包括圖像分割模塊、子碼流合并模塊、存儲(chǔ) 模塊、視頻模數(shù)轉(zhuǎn)換模塊、若干圖像編碼模塊;所述視頻模數(shù)轉(zhuǎn)換模塊至少與一圖像編碼模 塊連接;所述各圖像編碼模塊與圖像分割模塊、及存儲(chǔ)模塊連接;所述圖像分割模塊將當(dāng)前 圖像分割為若干子圖像;圖像編碼模塊獨(dú)立編碼壓縮被分割的子圖像,生成子碼流;而后子 碼流合并模塊合并上述各個(gè)子碼流,生成輸出當(dāng)前圖像編碼碼流。作為本發(fā)明的一種優(yōu)選方案,所述圖像編碼模塊包括至少一主編碼模塊及至少一從編碼 模塊;所述主編碼模塊通過主DSP實(shí)現(xiàn),從編碼模塊通過從DSP實(shí)現(xiàn);所述圖像分割模塊、 子碼流合并模塊通過所述主DSP實(shí)現(xiàn);所述視頻模數(shù)轉(zhuǎn)換模塊與主DSP連接。作為本發(fā)明的一種優(yōu)選方案,所述存儲(chǔ)模塊包括若干存儲(chǔ)單元,每個(gè)圖像編碼模塊至少 連接一存儲(chǔ)單元。作為本發(fā)明的一種優(yōu)選方案,所述圖像分割模塊分割子圖像的方法為將圖像分割為若干子圖像,根據(jù)目標(biāo)處理器處理能力確定子圖像的大小。作為本發(fā)明的一種優(yōu)選方案,從橫向上將圖像分割為若干子圖像。 作為本發(fā)明的一種優(yōu)選方案,所述子圖像分別由相應(yīng)的目標(biāo)處理器中設(shè)置的圖像編碼模塊編碼壓縮。作為本發(fā)明的一種優(yōu)選方案,所述各圖像編碼模塊獨(dú)立編碼壓縮各子圖像,對(duì)子圖像內(nèi)當(dāng)前宏塊編碼的具體方法如下判斷子圖像的編碼類型, 若子圖像為幀內(nèi)編碼,則進(jìn)行如下步驟Bll)判斷當(dāng)前宏塊是否為所在子圖像第一行宏塊,若是,設(shè)置其幀內(nèi)預(yù)測(cè)可用模式為DC 直流預(yù)測(cè),轉(zhuǎn)步驟B14),否則轉(zhuǎn)步驟B12);B12)判斷當(dāng)前宏塊是否為所在子圖像第一列宏塊,若是,設(shè)置其幀內(nèi)預(yù)測(cè)可用模式為DC 直流預(yù)測(cè)、以及垂直預(yù)測(cè),轉(zhuǎn)步驟B14),否則轉(zhuǎn)步驟B13);B13)設(shè)置其幀內(nèi)預(yù)測(cè)可用模式為DC直流預(yù)測(cè)、水平預(yù)測(cè)、以及垂直預(yù)測(cè);B14)幀內(nèi)宏塊預(yù)測(cè)編碼,分別采用各種幀內(nèi)預(yù)測(cè)可用模式對(duì)宏塊進(jìn)行預(yù)測(cè),并選擇預(yù)測(cè) 誤差最小的預(yù)測(cè)模式完成對(duì)當(dāng)前宏塊的編碼; 若子圖像為幀間編碼B21)判斷當(dāng)前宏塊是否為所在子圖像第一行宏塊,若是,設(shè)置運(yùn)動(dòng)矢量垂直搜索范圍最大值為0像素,轉(zhuǎn)步驟B24),否則轉(zhuǎn)步驟B22);B22)判斷當(dāng)前宏塊是否為所在子圖像最后一行宏塊,若是,設(shè)置運(yùn)動(dòng)矢量垂直搜索范圍最大值為0像素,轉(zhuǎn)步驟B24),否則轉(zhuǎn)步驟B23);B23)設(shè)置運(yùn)動(dòng)矢量垂直搜索范圍最大值為N像素,其中,N為大于等于零的整數(shù); B24)設(shè)置運(yùn)動(dòng)矢量水平搜索范圍最大值為N像素,其中,N為大于等于零的整數(shù); B25)幀間宏塊預(yù)測(cè)編碼,在運(yùn)動(dòng)矢量垂直搜索范圍內(nèi)計(jì)算最佳運(yùn)動(dòng)矢量,根據(jù)最佳運(yùn)動(dòng)矢量完成對(duì)當(dāng)前宏塊的編碼。作為本發(fā)明的一種優(yōu)選方案,所述子碼流合并模塊合并子碼流的具體方法為分別在各個(gè)子碼流前添加兩字節(jié)大小的首宏塊地址和兩字節(jié)大小的子圖像編碼類型標(biāo)志,并依次連接生成當(dāng)前圖像編碼最后應(yīng)該輸出的碼流。本發(fā)明的有益效果在于本發(fā)明將編碼圖像劃分為子圖像并行編碼的方法避免了目前基于模塊流水的并行方法由于某個(gè)模塊負(fù)擔(dān)過重而出現(xiàn)流水瓶頸的問題,可以根據(jù)目標(biāo)處理器 處理能力靈活分配大小合適的子圖像,保持多個(gè)處理器的高度并行,從而提升了整個(gè)系統(tǒng)的 性能。
圖1為現(xiàn)有技術(shù)的編碼器并行編碼模塊圖。圖2為實(shí)施例中實(shí)現(xiàn)高清視頻并行編碼的系統(tǒng)的結(jié)構(gòu)框圖。 圖3為基于子圖像劃分的圖像并行編碼流程圖。 圖4為基于子圖像劃分的圖像并行編碼數(shù)據(jù)流圖。 圖5為子圖像劃分示意圖。
具體實(shí)施方式
下面結(jié)合附圖詳細(xì)說明本發(fā)明的優(yōu)選實(shí)施例。本實(shí)施例闡述本發(fā)明提出的H. 264并行編碼方法在四個(gè)DSP處理器上實(shí)時(shí)編碼1080P高 清視頻的具體實(shí)現(xiàn)。請(qǐng)參閱圖2,本發(fā)明揭示了一種實(shí)現(xiàn)高清視頻并行編碼的系統(tǒng),該系統(tǒng)包括圖像分割模塊 3、子碼流合并模塊4、若干存儲(chǔ)模塊IO、 210、 220、 230、視頻模數(shù)轉(zhuǎn)換模塊5、若干圖像編 碼模塊ll、 211、 221、 231。圖像編碼模塊包括一主編碼模塊11及3個(gè)從編碼模塊211、 221、 231,所述主編碼模塊11通過主DSP芯片1實(shí)現(xiàn),3個(gè)從編碼模塊211、 221、 231分別通過從 DSP芯片21、 22、 23實(shí)現(xiàn);所述圖像分割模塊3、子碼流合并模塊4通過所述主DSP芯片1 實(shí)現(xiàn),所述視頻模數(shù)轉(zhuǎn)換模塊5與主DSP芯片l連接。主DSP芯片l連接一主存儲(chǔ)器10, 3 個(gè)從DSP芯片21、 22、 23分別連接從存儲(chǔ)器210、 220、 230。所述圖像分割模塊3將當(dāng)前圖像分割為若干子圖像;各個(gè)圖像編碼模塊ll、 211、 221、 231獨(dú)立編碼壓縮被分割的子圖像,生成子碼流;而后子碼流合并模塊4合并上述各個(gè)子碼流, 生成輸出當(dāng)前圖像編碼碼流。本實(shí)施例中,上述四顆DSP芯片執(zhí)行視頻采集程序和編碼壓縮算法軟件。四顆DSP芯片 均采用德州儀器公司(TI)的TMS320DM642芯片。DM 642是TI公司推出的一款專門針對(duì)多媒 體處理領(lǐng)域應(yīng)用的DSP。其具有豐富的外圍設(shè)備和接口。為了滿足視頻和圖像處理的需要,該 DSP單顆主頻高達(dá)720MHz,并采用了 VelociTI體系結(jié)構(gòu)和高級(jí)超長(zhǎng)指令字結(jié)構(gòu)。以單顆DSP 能夠?qū)崟r(shí)編碼704X576大小Dl圖像的能力計(jì)算,四顆DSP基本能夠達(dá)到實(shí)時(shí)編碼1080P高清 視頻圖像的要求。所述存儲(chǔ)器為SDRAM存儲(chǔ)器,用于存儲(chǔ)數(shù)據(jù)和程序。四片SDRAM芯片均采 用MICRON公司的MT48LC4M32B2TG-6存儲(chǔ)器。視頻數(shù)轉(zhuǎn)換模塊采用ADI公司的AD9880KSTZ-150 芯片。上述硬件配置為本實(shí)施例的優(yōu)選實(shí)施方案,本領(lǐng)域一般技術(shù)人員可以將某個(gè)或者某些器 件替換為具有等同功能或等同性能的其他同類器件。硬件布線設(shè)計(jì)上,主DSP芯片l通過EMIFA接口連接主存儲(chǔ)器IO,從DSP芯片21、 22、 23通過HPI接口連接主存儲(chǔ)器10,另外從DSP芯片21、 22、 23分別通過EMIFA接口連接從 存儲(chǔ)器210、 220、 230。高清視頻源1080P圖像通過高清攝像機(jī)輸入,由視頻采集程序完成對(duì)當(dāng)前圖像的采集, 并將其保存于主存儲(chǔ)器10中,經(jīng)編碼壓縮算法軟件壓縮之后通過主DSP芯片1的PCI接口輸 出。請(qǐng)參閱圖3、圖4,為實(shí)現(xiàn)視頻圖像的在四個(gè)DSP芯片上的并行編碼壓縮,本發(fā)明提供了 利用上述系統(tǒng)實(shí)現(xiàn)高清視頻并行編碼的方法,包括如下步驟步驟A、圖像分割模塊將當(dāng)前圖像分割為若干子圖像,根據(jù)目標(biāo)處理器處理能力確定 子圖像的大小。采集的當(dāng)前圖像位于主存儲(chǔ)器10。參照?qǐng)D5,其具體方法是,從橫向上將當(dāng) 前圖像平均分割為四個(gè)子圖像,分別標(biāo)記為子圖像O、子圖像l、子圖像2、子圖像3,并記 對(duì)應(yīng)圖像數(shù)據(jù)在內(nèi)存中的首地址為Addr0、 Addrl、 Addr2、 Addr3。分別將四個(gè)子圖像的首地 址AddrO、 Addrl、 Addr2、 Addr3送主DSP 1、從DSP 21、從DSP 22、從DSP 23。步驟B、提供若干處理器,各處理器獨(dú)立編碼壓縮步驟A中被分割的子圖像,生成子碼流。分別啟動(dòng)主DSP 1、從DSP 21、從DSP 22、從DSP 23上的圖像編碼模塊11、 211、 221、 231,完成對(duì)所在DSP的子圖像編碼壓縮,生成對(duì)應(yīng)子碼流記BSO、 BS1、 BS2、 BS3,并將子碼 流回送主存儲(chǔ)器IO。其中,四個(gè)DSP上的子圖像編碼程序相同,其對(duì)子圖像內(nèi)當(dāng)前宏塊編碼 的具體方法如下判斷子圖像為幀內(nèi)編碼還是幀間編碼,若子圖像為幀內(nèi)編碼,則進(jìn)行如下步驟Bll)判斷當(dāng)前宏塊是否為所在子圖像第一行宏塊,若是,設(shè)置其幀內(nèi)預(yù)測(cè)可用模式為DC 直流預(yù)測(cè),轉(zhuǎn)步驟B14),否則轉(zhuǎn)步驟B12);B12)判斷當(dāng)前宏塊是否為所在子圖像第一列宏塊,若是,設(shè)置其幀內(nèi)預(yù)測(cè)可用模式為DC 直流預(yù)測(cè)、以及垂直預(yù)測(cè),轉(zhuǎn)步驟B14),否則轉(zhuǎn)步驟B13);B13)設(shè)置其幀內(nèi)預(yù)測(cè)可用模式為DC直流預(yù)測(cè)、水平預(yù)測(cè)、以及垂直預(yù)測(cè);B14)幀內(nèi)宏塊預(yù)測(cè)編碼,分別采用各種幀內(nèi)預(yù)測(cè)可用模式對(duì)宏塊進(jìn)行預(yù)測(cè),并選擇預(yù)測(cè) 誤差最小的預(yù)測(cè)模式完成對(duì)當(dāng)前宏塊的編碼;若子圖像為幀間編碼B21)判斷當(dāng)前宏塊是否為所在子圖像第一行宏塊,若是,設(shè)置運(yùn)動(dòng)矢量垂直搜索范圍最大值為0像素,轉(zhuǎn)步驟B24),否則轉(zhuǎn)步驟B22);B22)判斷當(dāng)前宏塊是否為所在子圖像最后一行宏塊,若是,設(shè)置運(yùn)動(dòng)矢量垂直搜索范圍最大值為0像素,轉(zhuǎn)步驟B24),否則轉(zhuǎn)步驟B23);B23)設(shè)置運(yùn)動(dòng)矢量垂直搜索范圍最大值為N像素,其中,N為大于等于零的整數(shù); B24)設(shè)置運(yùn)動(dòng)矢量水平搜索范圍最大值為N像素,其中,N為大于等于零的整數(shù); B25)幀間宏塊預(yù)測(cè)編碼。在運(yùn)動(dòng)矢量垂直搜索范圍內(nèi)計(jì)算最佳運(yùn)動(dòng)矢量,根據(jù)最佳運(yùn)動(dòng)矢量完成對(duì)當(dāng)前宏塊的編碼。步驟C、合并步驟B中生成的子碼流,生成輸出當(dāng)前圖像編碼碼流,具體方法為分 別在子碼流BS0、 BS1、 BS2、 BS3前添加兩字節(jié)大小的首宏塊地址和兩字節(jié)大小的子圖像編碼 類型標(biāo)志,并依次連接生成當(dāng)前圖像編碼最后應(yīng)該輸出的碼流。以本實(shí)施例1080P圖像(1920 X1080像素大小),當(dāng)前圖像所有子圖像按幀內(nèi)模式編碼為例,基于對(duì)當(dāng)前圖像的平均分割, BSO、 BS1、 BS2、 BS3對(duì)應(yīng)的首宏塊地址分別為0、 2025、 4050、 6075,對(duì)應(yīng)的子圖像編碼類 型標(biāo)志均為2。因此,合并后的碼流十六進(jìn)制表示為00020000 + BSO + 000207E9 + BS1 + 00020FD2 + BS2 + 000217BB + BS3。上述三個(gè)步驟對(duì)應(yīng)的程序,子圖像分割程序存儲(chǔ)于主存儲(chǔ)器10,運(yùn)行于主DSP芯片1; 四子圖像編碼壓縮程序,分別儲(chǔ)于主存儲(chǔ)器10、從存儲(chǔ)器210、 220、 230,運(yùn)行于主DSP芯 片l、從DSP芯片21、 22、 23;子碼流合并程序存儲(chǔ)于主存儲(chǔ)器10,運(yùn)行于主DSP芯片1。值得注意的是,在本實(shí)施例中,為均衡各DSP核的負(fù)載,特別是負(fù)擔(dān)了視頻采集和子圖 像劃分任務(wù)的主DSP芯片1,可以進(jìn)一步將當(dāng)前編碼圖像劃分為大小不等的四個(gè)子圖像,而不 是平均分割?;谇懊嫠龇椒ǎ绢I(lǐng)域一般技術(shù)人員很容易實(shí)現(xiàn)將當(dāng)前編碼圖像劃分為大 小不等的四個(gè)子圖像的并行編碼。以上實(shí)施例僅用以說明而非限制本發(fā)明的技術(shù)方案。如主編碼模塊及從編碼模塊可以為 一個(gè)或多個(gè);存儲(chǔ)模塊也可以為一個(gè)或者個(gè)數(shù)大于DSP的個(gè)數(shù), 一個(gè)DSP可以與若干個(gè)存儲(chǔ) 模塊連接;另外,圖像分割模塊、子碼流合并模塊可以為多個(gè),分別設(shè)置在多個(gè)處理器(DSP) 中。不脫離本發(fā)明精神和范圍的任何修改或局部替換,均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當(dāng) 中。
權(quán)利要求
1. 一種實(shí)現(xiàn)高清視頻并行編碼的方法,其特征在于,包括如下步驟步驟A、將當(dāng)前圖像分割為若干子圖像;步驟B、提供若干處理器,各處理器獨(dú)立編碼壓縮步驟A中被分割的子圖像,生成子碼流;步驟C、合并步驟B中生成的子碼流,生成輸出當(dāng)前圖像編碼碼流。
2、 根據(jù)權(quán)利要求1所述實(shí)現(xiàn)高清視頻并行編碼的方法,其特征在于:所述步驟A中分割子 圖像的方法為將圖像分割為若干子圖像,根據(jù)目標(biāo)處理器處理能力確定子圖像的大小。
3、 根據(jù)權(quán)利要求2所述實(shí)現(xiàn)高清視頻并行編碼的方法,其特征在于從橫向上將圖像分割 為若干子圖像。
4、 根據(jù)權(quán)利要求2所述實(shí)現(xiàn)高清視頻并行編碼的方法,其特征在于所述步驟B中的子圖 像分別由相應(yīng)的目標(biāo)處理器中設(shè)置的圖像編碼模塊編碼壓縮。
5、 根據(jù)權(quán)利要求4所述實(shí)現(xiàn)高清視頻并行編碼的方法,其特征在于所述目標(biāo)處理器包括 至少一主處理器及至少一從處理器。
6、 根據(jù)權(quán)利要求1或2或3或4或5所述實(shí)現(xiàn)高清視頻并行編碼的方法,其特征在于所述步驟B中獨(dú)立編碼壓縮各子圖像,對(duì)子圖像內(nèi)當(dāng)前宏塊編碼的具體方法如下判斷子圖像的編碼類型,若子圖像為幀內(nèi)編碼,則進(jìn)行如下步驟Bll)判斷當(dāng)前宏塊是否為所在子圖像第一行宏塊,若是,設(shè)置其幀內(nèi)預(yù)測(cè)可用模式 為DC直流預(yù)測(cè),轉(zhuǎn)步驟B14),否則轉(zhuǎn)步驟B12);B12)判斷當(dāng)前宏塊是否為所在子圖像第一列宏塊,若是,設(shè)置其幀內(nèi)預(yù)測(cè)可用模式 為DC直流預(yù)測(cè)、以及垂直預(yù)測(cè),轉(zhuǎn)步驟B14),否則轉(zhuǎn)步驟B13);B13)設(shè)置其幀內(nèi)預(yù)測(cè)可用模式為DC直流預(yù)測(cè)、水平預(yù)測(cè)、以及垂直預(yù)測(cè);B14)幀內(nèi)宏塊預(yù)測(cè)編碼,分別采用各種幀內(nèi)預(yù)測(cè)可用模式對(duì)宏塊進(jìn)行預(yù)測(cè),并選擇 預(yù)測(cè)誤差最小的預(yù)測(cè)模式完成對(duì)當(dāng)前宏塊的編碼;若子圖像為幀間編碼B21)判斷當(dāng)前宏塊是否為所在子圖像第一行宏塊,若是,設(shè)置運(yùn)動(dòng)矢量垂直搜索范 圍最大值為0像素,轉(zhuǎn)步驟B24),否則轉(zhuǎn)步驟B22);B22)判斷當(dāng)前宏塊是否為所在子圖像最后一行宏塊,若是,設(shè)置運(yùn)動(dòng)矢量垂直搜索 范圍最大值為0像素,轉(zhuǎn)步驟B24),否則轉(zhuǎn)步驟B23);B23)設(shè)置運(yùn)動(dòng)矢量垂直搜索范圍最大值為N像素,其中,N為大于等于零的整數(shù);B24)設(shè)置運(yùn)動(dòng)矢量水平搜索范圍最大值為N像素,其中,N為大于等于零的整數(shù); B25)幀間宏塊預(yù)測(cè)編碼,在運(yùn)動(dòng)矢量垂直搜索范圍內(nèi)計(jì)算最佳運(yùn)動(dòng)矢量,根據(jù)最佳 運(yùn)動(dòng)矢量完成對(duì)當(dāng)前宏塊的編碼。
7、 根據(jù)權(quán)利要求1或2或3或4或5所述實(shí)現(xiàn)高清視頻并行編碼的方法,其特征在于所 述步驟C中合并子碼流的具體方法為分別在各個(gè)子碼流前添加兩字節(jié)大小的首宏塊地 址和兩字節(jié)大小的子圖像編碼類型標(biāo)志,并依次連接生成當(dāng)前圖像編碼最后應(yīng)該輸出的 碼流。
8、 一種實(shí)現(xiàn)高清視頻并行編碼的系統(tǒng),其特征在于該系統(tǒng)包括圖像分割模塊、子碼流合 并模塊、存儲(chǔ)模塊、視頻模數(shù)轉(zhuǎn)換模塊、若干圖像編碼模塊;所述視頻模數(shù)轉(zhuǎn)換模塊至少與一圖像編碼模塊連接;所述各圖像編碼模塊與圖像分 割模塊、及存儲(chǔ)模塊連接;所述圖像分割模塊將當(dāng)前圖像分割為若干子圖像;圖像編碼模塊獨(dú)立編碼壓縮被分 割的子圖像,生成子碼流;而后子碼流合并模塊合并上述各個(gè)子碼流,生成輸出當(dāng)前圖像編碼碼流。
9、 根據(jù)權(quán)利要求8所述實(shí)現(xiàn)高清視頻并行編碼的系統(tǒng),其特征在于所述圖像編碼模塊包 括至少一主編碼模塊及至少一從編碼模塊;所述主編碼模塊通過主DSP實(shí)現(xiàn),從編碼模 塊通過從DSP實(shí)現(xiàn);所述圖像分割模塊、子碼流合并模塊通過所述主DSP實(shí)現(xiàn),所述視 頻模數(shù)轉(zhuǎn)換模塊與主DSP連接。
10、 根據(jù)權(quán)利要求8或9所述實(shí)現(xiàn)高清視頻并行編碼的系統(tǒng),其特征在于所述存儲(chǔ)模塊包括若干存儲(chǔ)單元,每個(gè)圖像編碼模塊至少連接一存儲(chǔ)單元。
11、 根據(jù)權(quán)利要求8所述實(shí)現(xiàn)高清視頻并行編碼的系統(tǒng),其特征在于所述圖像分割模塊將圖像分割為若干子圖像,根據(jù)目標(biāo)處理器處理能力確定子圖像的大小。
12、 根據(jù)權(quán)利要求11所述實(shí)現(xiàn)高清視頻并行編碼的系統(tǒng),其特征在于從橫向上將圖像分割為若干子圖像。
13、 根據(jù)權(quán)利要求11所述實(shí)現(xiàn)高清視頻并行編碼的系統(tǒng),其特征在于所述子圖像分別由相應(yīng)的目標(biāo)處理器中設(shè)置的圖像編碼模塊編碼壓縮。
14、 根據(jù)權(quán)利要求8所述實(shí)現(xiàn)高清視頻并行編碼的系統(tǒng),其特征在于所述各圖像編碼模塊 獨(dú)立編碼壓縮各子圖像,對(duì)子圖像內(nèi)當(dāng)前宏塊編碼的具體方法如下判斷子圖像的編碼 類型,若子圖像為幀內(nèi)編碼,則進(jìn)行如下步驟-Bll)判斷當(dāng)前宏塊是否為所在子圖像第一行宏塊,若是,設(shè)置其幀內(nèi)預(yù)測(cè)可用模式 為DC直流預(yù)測(cè),轉(zhuǎn)步驟B14),否則轉(zhuǎn)步驟B12);B12)判斷當(dāng)前宏塊是否為所在子圖像第一列宏塊,若是,設(shè)置其幀內(nèi)預(yù)測(cè)可用模式 為DC直流預(yù)測(cè)、以及垂直預(yù)測(cè),轉(zhuǎn)步驟B14),否則轉(zhuǎn)步驟B13);B13)設(shè)置其幀內(nèi)預(yù)測(cè)可用模式為DC直流預(yù)測(cè)、水平預(yù)測(cè)、以及垂直預(yù)測(cè);B14)幀內(nèi)宏塊預(yù)測(cè)編碼,分別采用各種幀內(nèi)預(yù)測(cè)可用模式對(duì)宏塊進(jìn)行預(yù)測(cè),并選擇 預(yù)測(cè)誤差最小的預(yù)測(cè)模式完成對(duì)當(dāng)前宏塊的編碼;若子圖像為幀間編碼B21)判斷當(dāng)前宏塊是否為所在子圖像第一行宏塊,若是,設(shè)置運(yùn)動(dòng)矢量垂直搜索范圍最大值為0像素,轉(zhuǎn)步驟B24),否則轉(zhuǎn)步驟B22);B22)判斷當(dāng)前宏塊是否為所在子圖像最后一行宏塊,若是,設(shè)置運(yùn)動(dòng)矢量垂直搜索范圍最大值為0像素,轉(zhuǎn)步驟B24),否則轉(zhuǎn)步驟B23);B23)設(shè)置運(yùn)動(dòng)矢量垂直搜索范圍最大值為N像素,其中,N為大于等于零的整數(shù); B24)設(shè)置運(yùn)動(dòng)矢量水平搜索范圍最大值為N像素,其中,N為大于等于零的整數(shù); B25)幀間宏塊預(yù)測(cè)編碼,在運(yùn)動(dòng)矢量垂直搜索范圍內(nèi)計(jì)算最佳運(yùn)動(dòng)矢量,根據(jù)最佳運(yùn)動(dòng)矢量完成對(duì)當(dāng)前宏塊的編碼。 15、根據(jù)權(quán)利要求8或9或11或12或13或14所述實(shí)現(xiàn)高清視頻并行編碼的系統(tǒng),其特征在于所述子碼流合并模塊合并子碼流的具體方法為分別在各個(gè)子碼流前添加兩字節(jié)大小的首宏塊地址和兩字節(jié)大小的子圖像編碼類型標(biāo)志,并依次連接生成當(dāng)前圖像編碼最后應(yīng)該輸出的碼流。
全文摘要
本發(fā)明揭示了一種實(shí)現(xiàn)高清視頻并行編碼的系統(tǒng),包括圖像分割模塊、子碼流合并模塊、存儲(chǔ)模塊、視頻模數(shù)轉(zhuǎn)換模塊、若干圖像編碼模塊;所述視頻模數(shù)轉(zhuǎn)換模塊至少與一圖像編碼模塊連接;所述各圖像編碼模塊與圖像分割模塊、及存儲(chǔ)模塊連接;所述圖像分割模塊將當(dāng)前圖像分割為若干子圖像;圖像編碼模塊獨(dú)立編碼壓縮被分割的子圖像,生成子碼流;而后子碼流合并模塊合并上述各個(gè)子碼流,生成輸出當(dāng)前圖像編碼碼流。本發(fā)明將編碼圖像劃分為子圖像并行編碼的方法避免了目前基于模塊流水的并行方法由于某個(gè)模塊負(fù)擔(dān)過重而出現(xiàn)流水瓶頸的問題,可以根據(jù)目標(biāo)處理器處理能力靈活分配大小合適的子圖像,保持多個(gè)處理器的高度并行,從而提升了整個(gè)系統(tǒng)的性能。
文檔編號(hào)H04N7/26GK101282478SQ20081003659
公開日2008年10月8日 申請(qǐng)日期2008年4月24日 優(yōu)先權(quán)日2008年4月24日
發(fā)明者熊模昌, 郭春輝 申請(qǐng)人:上海華平信息技術(shù)股份有限公司