国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      并行視頻編碼的方法及裝置的制作方法

      文檔序號:7966898閱讀:284來源:國知局

      專利名稱::并行視頻編碼的方法及裝置的制作方法
      技術(shù)領(lǐng)域
      :本發(fā)明涉及視頻編碼
      技術(shù)領(lǐng)域
      ,尤其涉及一種并行視頻編碼技術(shù)。技術(shù)背景視頻編碼技術(shù)是將數(shù)字視頻信息壓縮,以便實現(xiàn)更有效地被傳送和存儲。視頻編碼是多媒體數(shù)據(jù)處理的核心技術(shù)。目前,視頻壓縮編碼標(biāo)準(zhǔn)主要包括國際電信聯(lián)盟標(biāo)準(zhǔn)化部(ITU-T)視頻編碼專家組(VCEG)制定的活動圖像編碼標(biāo)準(zhǔn)H.261、H.263;IS0/IEC聯(lián)合的活動圖像專家組(MPEG)制定的視頻編碼標(biāo)準(zhǔn)MPEG1、MPEG4-Part2;ITU-T視頻編碼專家組(VCEG)和ISO/IECMPEG聯(lián)合專家組(JVT)共同制定的視頻編碼標(biāo)準(zhǔn)MPEG2/H.262、H.264/AVC(MPEG4-PartlO);另外還有VC—1(前身是WMV—9)和音視頻標(biāo)準(zhǔn)組(AVS)制定的視頻編碼標(biāo)準(zhǔn)AVSl.0-P2等。MPEG(活動圖像專家組)、JVT(MPEG聯(lián)合專家組)及VCEG(視頻編碼專家組)系列視頻編碼標(biāo)準(zhǔn)基本框架如圖l所示,采用基于塊的運動補償和變換編碼的混合編碼架構(gòu),包括幀內(nèi)預(yù)測、幀間預(yù)測、變換、量化和熵編碼等。其中,幀間預(yù)測是使用基于塊的運動矢量來消除圖像間的冗余;幀內(nèi)預(yù)測是使用空間預(yù)測模式來消除圖像內(nèi)的冗余。再通過對預(yù)測殘差進行變換和量化消除圖像內(nèi)的視覺冗余。最后,運動矢量、預(yù)測模式、量化參數(shù)和變換系數(shù)用熵編碼進行壓縮。視頻解碼過程的基本處理單元是宏塊,且一個宏塊通常包括一個16xl6的亮度樣值塊和對應(yīng)的色度樣值塊。不同的標(biāo)準(zhǔn)的所使用工具的有一定差別。對于新一代標(biāo)準(zhǔn)H.264/AVC(MPEG4-PartlO)、VC—1、AVS1.0-P2而言,去塊濾波器是必須的模塊,被稱為環(huán)路濾波;而在MPEG2、H.263、MPEG4-Part2標(biāo)準(zhǔn)中,去塊濾波器僅是解碼器中可選的一個后處理環(huán)節(jié)。實時視頻編碼器的輸入為高清視頻信號,實時完成視頻壓縮編碼,輸出碼流。實時視頻編碼器是數(shù)字電視頭端(Headend)系統(tǒng)的基本設(shè)備,也廣泛用于視頻會議、數(shù)字?jǐn)z像、可錄的DVD播放機等設(shè)備中。H.264/AVC(MPEG4-PartlO)、VC—1、AVS1.0-P2被稱為新一代視頻壓縮編碼標(biāo)準(zhǔn),同以MPEG2為代表的上一代標(biāo)準(zhǔn)相比,新一代標(biāo)準(zhǔn)的壓縮率提供一倍以上,但復(fù)雜度也增加2倍以上,實現(xiàn)的難度大大增加。高清電視(HDTV)通常是指每幀掃描行數(shù)為逐行720線或隔行1080線及其以上的活動圖像。目前常見的高清格式有720p(分辨率1280X720,幀頻為24、30、60),1080i(隔行掃描,每幀分辨率1920X1088,場頻為60),1080p(分辨率1920X1088,幀頻為24、30)。未來更高分辨率的視頻也會獲得應(yīng)用。高清視頻能提供更高的視頻質(zhì)量,同時,高清視頻壓縮編碼的實現(xiàn)更為困難。以新一代標(biāo)準(zhǔn)H.264/AVC為例,由于引入了多參考幀運動補償、最小為4X4的可變塊尺寸預(yù)測、豐富的幀內(nèi)預(yù)測模式、環(huán)路濾波、上下文自適應(yīng)的變長編碼(CAVLC)或上下文自適應(yīng)的算術(shù)編碼(CABAC)等工具,使得編碼器復(fù)雜度大大增加,據(jù)評估,在采用全搜索運動估計的情況下,H.264/AVCHDTV720p編碼器的計算復(fù)雜度約為3600giga-instructionspersecond(GIPS)、Memory訪問流量約5570giga-bytespersecond(GBytes/s)。1080i和1080p情況下更為巨大。由于高清視頻編碼器巨大的計算復(fù)雜性,通常采用單個處理器難于實現(xiàn)實時編碼。尤其是在頭端(Headend)等應(yīng)用場合,需要支持多通道、多種視頻格式和壓縮編碼標(biāo)準(zhǔn)以及轉(zhuǎn)碼等應(yīng)用環(huán)境中,采用單個編碼器實現(xiàn)編碼的難度更為突出。因此,高清編碼器常常需要采用多芯片(即多個編碼器)并行進行編碼處理實現(xiàn)。然而,目前業(yè)界還沒有一種并行視頻編碼處理方案能很好滿足H.264/AVC(MPEG4-PartlO)、VC—1、AVS1.0-P2等新一代視頻壓縮編碼標(biāo)準(zhǔn)頭端等應(yīng)用的高性能實時高清編碼要求。
      發(fā)明內(nèi)容本發(fā)明的目的是提供一種并行視頻編碼的方法及裝置,從而提供一種高效的并行視頻編碼實現(xiàn),滿足高性能實時高清視頻編碼。本發(fā)明的目的是通過以下技術(shù)方案實現(xiàn)的本發(fā)明提供了一種并行視頻編碼的方法,該方法包括將視頻序列中的當(dāng)前幀分割成宏塊,按預(yù)定規(guī)則將所有宏塊分配給一個或多個條帶組;依據(jù)光柵掃描的順序?qū)⑺鰲l帶組分別劃分為一個或多個子條帶組,獲得當(dāng)前幀包含的多個條帶組,每個宏塊被分配到同一個子條帶組;將子條帶組根據(jù)其對應(yīng)的處理負(fù)荷均衡地對應(yīng)至各個編碼器,每一個子條帶組對應(yīng)同一個編碼器,每個編碼器對應(yīng)一個或多個子條帶組;按子條帶組和編碼器對應(yīng)關(guān)系,將當(dāng)前幀所有子條帶組和編碼配置參數(shù)傳送給多個編碼器;當(dāng)當(dāng)前幀為I幀時,各編碼器丟棄所有重建子條帶組數(shù)據(jù);當(dāng)當(dāng)前幀不為I幀時,每個編碼器從其它編碼器重建子條帶組獲取所屬子條帶組運動估計所需的參考數(shù)據(jù);由所述的多個編碼器對當(dāng)前幀的子條帶組并行進行編碼處理,在編碼過程中將每個子條帶組按光柵掃描的順序劃分為一個或多個條帶,完成對所述子條帶組中所有宏塊的編碼,產(chǎn)生重建子條帶組,輸出編碼碼流和參數(shù);將各編碼器輸出的碼流及參數(shù)匯聚,完成條帶組、幀和序列的編碼,輸出整個序列碼流。當(dāng)當(dāng)前幀不為I幀時,所述的方法包括根據(jù)各編碼器當(dāng)前幀子條帶組和重建幀子條帶組的圖像區(qū)、存儲區(qū)交疊關(guān)系,以及當(dāng)前幀子條帶組中運動估計的最大搜索區(qū)、多參考幀屬性,確定編碼器之間交換的最少的參考數(shù)據(jù),各編碼器之間通過交換操作獲得所述參考數(shù)據(jù),并利用所述參考數(shù)據(jù)更新各編碼器中緩存的每個子條帶組運動估計搜索區(qū)參考數(shù)據(jù)。所述的預(yù)定規(guī)則包括交錯掃描模式、散亂掃描模式、前景和背景掃描模式、打開的盒子B0X—0Ut掃描模式、光柵掃描掃描模式、手絹掃描模式、以及需要采用編號指明每一個宏塊所屬的條帶組的顯式掃描模式,或者,將當(dāng)前幀劃分為一個條帶組。所述的子條帶組為寬度等于幀寬度的一個或多個連續(xù)的整宏塊行。所述的將子條帶組根據(jù)其對應(yīng)的處理負(fù)荷均衡地對應(yīng)至各個編碼器的處理包括-根據(jù)各個編碼器處理能力,以及參考數(shù)據(jù)傳送代價,將當(dāng)前幀包含的各子條帶對應(yīng)至各個編碼器,令多個編碼器同時完成所分配子條帶組的編碼處理。在圖像組編碼過程中,所述的劃分成多個子條帶組的處理包括-對于I幀,按照宏塊數(shù)預(yù)測編碼處理負(fù)荷,并根據(jù)編碼器的處理能力及所述編碼處理負(fù)荷將子條帶組對應(yīng)至各個編碼器,令多個編碼器同時完成所分配子條帶組的編碼處理;對于第一個非I幀,當(dāng)條帶組劃分不變時,采用I幀的子條帶組劃分方式進行子條帶組的劃分;對于第2個非I幀,根據(jù)實際統(tǒng)計得到的第1個非I幀的各子條帶組編碼處理量預(yù)測所述第2個非I幀各子條帶組的編碼處理負(fù)荷,并根據(jù)參考數(shù)據(jù)載入代價,調(diào)整所述第2個非I幀子條帶組的劃分,令并行編碼所述第2個非I幀時多個編碼器處理時間一致;對子第2個非I幀以后的住一非I幀,根據(jù)該幀前一幀或前幾幀各子條帶組編碼處理量預(yù)測所述非I幀各子條帶組的編碼處理負(fù)荷,并根據(jù)考幀數(shù)據(jù)載入代價,調(diào)整所述非I幀子條帶組的劃分,令并行編碼所述非I幀時多個編碼器處理時間一致。所述條帶為寬度等于幀寬度的一個或多個連續(xù)的整宏塊行。所述條帶是在對子條帶組編碼過程中按照編碼碼流的長度截分。所述的每個編碼器對子條帶組中的每個宏塊進行的編碼處理過程包括運動估計,運動補償;幀內(nèi)預(yù)測選擇,幀內(nèi)預(yù)測,幀內(nèi)/幀間選擇,求殘差;碼率控制;變換、量化;重排序,熵編碼;反量化,反變換;重建。所述的每個編碼器對子條帶組中的每個宏塊進行的編碼處理過程包括運動估計,運動補償,使用多個后向或前向參考幀;幀內(nèi)預(yù)測選擇,幀內(nèi)預(yù)測,當(dāng)前宏塊幀內(nèi)預(yù)測時使用同一條帶已重建尚未環(huán)路濾波的左邊宏塊和上邊宏塊數(shù)據(jù);幀內(nèi)/幀間選擇,求殘差;碼率控制;整數(shù)變換、量化;重排序,熵編碼,熵編碼是上下文基于自適應(yīng)的變長編碼或基于上下文的自適應(yīng)二進制算術(shù)編碼;反量化,反變換;重建;環(huán)路濾波。所述的每個編碼器對子條帶組中的每個宏塊進行的編碼處理過程還包括設(shè)置選擇當(dāng)前幀所有條帶的邊界環(huán)路濾波模式為不濾波,各編碼器各自獨立完成每個條帶環(huán)路濾波處理,且各所述的環(huán)路濾波包括條帶的環(huán)路濾波在該條帶第一個宏塊重建完成后啟動,或者,條帶的環(huán)路濾波在該條帶重建全部完成后開始。本發(fā)明還提供了一種并行視頻編碼的裝置,包括主處理器和多個編碼器,主處理器用于將待編碼的當(dāng)前幀劃分為子條帶組,并分別傳遞給多個編碼器,多個編碼器并行編碼各子條帶組,輸出各自編碼碼流給主處理器,由主處理器生成序列碼流;所述的主處理器包括條帶組確定單元、子條帶組確定單元及頂層編碼單元,其中條帶組確定單元,用于將視頻幀序列中的當(dāng)前幀固定分割成宏塊,按預(yù)定規(guī)則將所有宏塊分配給一個或多個條帶組;子條帶組確定單元,用于對當(dāng)前幀的所有條帶組,依據(jù)光柵掃描的順序?qū)⑺鰲l帶組分別劃分為一個或多個子條帶組,且每個宏塊必須并且只能分配到一個子條帶組,獲得當(dāng)前幀包含的多個條帶組,每個編碼器對應(yīng)一個或多個子條帶組,每一個子條帶組對應(yīng)個編碼器;子條帶組數(shù)據(jù)傳遞單元,按子條帶組和編碼器對應(yīng)關(guān)系將當(dāng)前幀所有子條帶組和編碼配置參數(shù)傳送給多個編碼器;頂層編碼單元將各編碼器輸出的碼流及參數(shù)匯聚,完成條帶組、幀和序列的編碼,輸出整個序列碼流。所述的編碼器包括子條帶組接收單元、參考數(shù)據(jù)輸入輸出單元及編碼單元,其中子條帶組接收單元,用于接收子條帶組和編碼配置參數(shù);參考數(shù)據(jù)輸入輸出單元,用于在各編碼器之間交換參考數(shù)據(jù),當(dāng)當(dāng)前幀不為I幀時,控制編碼器之間交換已重建的參考幀子條帶組數(shù)據(jù),更新各編碼器中緩存的每個子條帶組運動估計搜索區(qū)參考數(shù)據(jù);編碼單元,用于所分配子條帶組進行編碼處理,在編碼過程中將每個子條帶組按光柵掃描的順序劃分為一個或多個條帶,完成對所分配子條帶組中所有宏塊的編碼,產(chǎn)生重建子條帶組,輸出編碼碼流和參數(shù)。所述的主處理器的處理包括將整個幀劃分為一個條帶組,并進一步劃分為多個子條帶組,且所有子條帶組為寬度等于幀寬度的一個或多個連續(xù)的整宏塊行。所述的多個編碼器中的每個編碼器還包括數(shù)據(jù)存儲單元,用于緩存當(dāng)前和重建的子條帶組數(shù)據(jù)。所述的條帶為寬度等于幀寬度的一個或多個連續(xù)的整宏塊行,而且,所述的同一個宏塊僅能被劃分到同一條帶中。所述的裝置主處理器還包括控制單元,用于初始化、配置及控制主處理器和多個編碼器完成整個視頻序列編碼。所述的多個編碼器中的每個編碼器在進行編碼過程中還包括將當(dāng)前幀所有條帶的邊界環(huán)路濾波模式設(shè)置為不濾波,各編碼器各自獨立完成每個條帶環(huán)路濾波處理,各編碼器、各條帶之間不交換信息,且條帶的環(huán)路濾波在該條帶第一個宏塊重建完成后啟動,或者,條帶的環(huán)路濾波在該條帶重建全部完成后開始。所述的多個編碼器僅完成宏塊級熵編碼輸出宏塊碼流和參數(shù),主處理器頂層編碼模塊完成條帶級熵編碼。由上述本發(fā)明提供的技術(shù)方案可以看出,本發(fā)明提供了一種并行視頻編碼處理方案,從而可以在視頻編碼過程中選擇并行的視頻編碼方式,使得本發(fā)明還可以很好地滿足高性能實時高清視頻編碼所需的處理能力。同時,本發(fā)明中,由于采用負(fù)載均衡的原則將粒度適中的待編碼數(shù)據(jù)提供給多個編碼器,并由多個編碼器并行對視頻數(shù)據(jù)進行編碼處理,從而使得各處理器之間盡可能地減少相互等待的時間,并可以盡量減少編碼器之間交互的開銷盡量減少,因此,本發(fā)明提供的并行視頻編碼處理方案還具有較高的視頻編碼效率。圖1為現(xiàn)有技術(shù)中的視頻編碼框架示意圖;圖2為本發(fā)明所述的方法的具體實現(xiàn)過程示意圖;圖3為本發(fā)明所述的裝置的具體實現(xiàn)結(jié)構(gòu)示意圖。具體實施方式本發(fā)明主要是在視頻編碼過程,將條帶組進一步劃分為多個子條帶組,每個子條帶組包括一個或多個條帶,基于所述的子條帶組利用多個編碼器進行并行編碼。為便于對本發(fā)明中涉及的現(xiàn)有編碼實現(xiàn)方案中技術(shù)概念的理解,首先對現(xiàn)有編碼方案中的部分概念進行說明。H.264按時間、空間由高到低分成序列、圖像組、圖像(即幀)、場、條帶組、條帶、宏塊、子宏塊等不同層次。(1)場、幀、圖像視頻的一場或一幀可以用來產(chǎn)生一個編碼圖像。通常,視頻幀可以分成兩種類型連續(xù)或隔行視頻。隔行視頻情況下,兩場(分別稱為頂場和底場)組成一個幀;當(dāng)前幀正在編碼的幀;重建幀編碼器經(jīng)過本地解碼重建輸出的幀;參考圖像(幀)為了提高預(yù)測精度,H264編碼可從一組前向或后向己編碼重建圖像中選出一個或多個與當(dāng)前最匹配的圖像作為幀間編碼的參考圖像。H.264中最多可從16個參考圖像中進行選擇,選出最佳的匹配圖像。(2)宏塊(Macroblock,MB)和子宏塊一個編碼圖像通常劃分成若干個宏塊,一個宏塊可以由一個16X16亮度象素和附加的一個8X8Cb和一個8X8Cr彩色象素塊組成。宏塊是視頻編碼的基本尺寸單位。一個宏塊可進--步分割為塊即可分成16X8,8X16或8X8亮度象素塊(以及附帶的彩色象素);對8X8的子宏塊,則可再分割成各種子宏塊8X4,4X8或4X4亮度象素塊(以及附帶的彩色象素)。一個隔行掃描幀的頂場和底場的兩個對應(yīng)宏塊組成宏塊對。根據(jù)所采用的預(yù)測模式是幀內(nèi)還是幀間,將宏塊分為幀內(nèi)預(yù)測塊(I宏塊)和幀間預(yù)測塊(P宏塊),I宏塊利用從當(dāng)前條帶中已解碼的象素作為參考進行幀內(nèi)預(yù)測。P宏塊利用前面已編碼的圖像作為參考圖像進行幀內(nèi)預(yù)測。(3)條帶(Slice)每個圖像中,若干宏塊被排列成條帶的形式。幀內(nèi)編碼條帶(I條帶)只包含I宏塊,幀間編碼條帶(P條帶)可包含P和I宏塊。條帶的編碼是相互獨立的,某條帶的幀內(nèi)預(yù)測不能以其他條帶中的宏塊為參考圖像。全部由I條帶組成的幀成為I幀;不全由I條帶構(gòu)成的幀稱為非I幀。(4)條帶組在H.264標(biāo)準(zhǔn)中的圖象宏塊可以靈活的宏塊組織順序(FM0)劃分為多個條帶組(slicegro叩);條帶組是一個編碼圖像中若干MB的一個子集,它可包含一個或若干個條帶。通過條帶組(slicegro叩)的使用,F(xiàn)MO改變了圖像劃分為條帶和宏塊的方式,可以進一步提高條帶的差錯恢復(fù)能力。宏塊到條帶組的映射定義了宏塊屬于哪一個條帶組。利用FM0技術(shù),H.264定義了7種宏塊掃描模式,所述的七種掃描模式包括交錯、散亂、前景和背景、打開的盒子(Box—out)、光柵掃描、手絹及顯式(用編號指明每一個宏塊所屬的條帶組)。不同的標(biāo)準(zhǔn)及檔次(Profile)對FMO的支持不同。H.264基本檔次(BaselineProfile)和擴展檔次支持FMO7種掃描模式。H.264主檔次(MainProfile)、VC—1、AVS1.0-P2不支持FMO模式,僅有"光柵掃描"一種掃描模式;只有一個條帶組,它的尺寸等于幀。(5)圖像組(GOP)多個連續(xù)的圖像(幀),起始幀就是I幀。(6)序列視頻序列(sequence),編碼比特流的最高層語法結(jié)構(gòu),包括一個或多個連續(xù)的編碼圖像。在編碼處理過程中,檔次是規(guī)定的語法、語義及算法的子集。符合某個檔次規(guī)定的解碼器必須完全支持該檔次定義的子集。比264〃¥(:標(biāo)準(zhǔn)分為3個檔次(Profile)和4種高保真擴展(HighExtended)。1、基本檔次(BaselineProfile):利用I條帶和P條帶支持幀內(nèi)和幀間編碼,支持基于上下文的自適應(yīng)的變長編碼進行的熵編碼(CAVLC)。主要應(yīng)用于可視電話、會議電視、無線通信等實時視頻通信。2、主檔次(MainProfile):支持隔行視頻,采用B條帶的幀間編碼和采用加權(quán)預(yù)測的幀內(nèi)編碼;支持利用基于上下文的自適應(yīng)的算術(shù)編碼(CABAC)。主要用于數(shù)字廣播電視與數(shù)字視頻存儲。3、擴展檔次(ExtendedProfile):支持碼流之間有效的切換(SP和SI條帶)、改進誤碼性能(數(shù)據(jù)分割),但不支持隔行視頻和CABAC,主要應(yīng)用于流媒體。在具體的編碼處理過程中,為方便適配各種網(wǎng)絡(luò)標(biāo)準(zhǔn)協(xié)議,化264/八¥(:的功能分為兩層,即視頻編碼層(VCL)和網(wǎng)絡(luò)提取層(NAL,NetworkAbstractionLayer)。VCL數(shù)據(jù)即編碼處理后的輸出,它表示被壓縮編碼后的視頻數(shù)據(jù)序列。在VCL數(shù)據(jù)傳輸或存儲之前,這些編碼的VCL數(shù)據(jù),先被映射或封裝進NAL單元中。H.264/AVC(MPEG4-Part10)視頻編碼標(biāo)準(zhǔn)的視頻編碼層采用變換和預(yù)測混合編碼方法,相應(yīng)的框圖仍如圖l所示。如果采用幀內(nèi)預(yù)測編碼,其預(yù)測值PRED(圖中用P表示)是由當(dāng)前條帶中已編碼的參考圖像經(jīng)運動補償(MC)后得出的,其中,參考圖像用F'n—l表示。為了提高預(yù)測精度,從而提高壓縮比,實際的參考圖像可在過去或未來(指顯示次序上)已編碼解碼重建和濾波的幀中進行選擇。預(yù)測值PRED和當(dāng)前塊相減后,產(chǎn)生一個殘差塊Dn,經(jīng)塊變換、量化后產(chǎn)生一組量化后的變換系數(shù)X,再經(jīng)熵編碼,與解碼所需的一些邊信息(如預(yù)測模式量化參數(shù)、運動矢量等)一起組成一個壓縮后的碼流,經(jīng)NAL(網(wǎng)絡(luò)自適應(yīng)層)供傳輸和存儲用。正如上述,為了提供進一歩預(yù)測用的參考圖像,編碼器必須有重建圖像的功能。因此必須使殘差圖像經(jīng)反量化、反變換后得到的D'n與預(yù)測值P相加,得到uF'n(未經(jīng)濾波的幀)。為了去除編碼解碼環(huán)路中產(chǎn)生的噪聲,提高參考幀的圖像質(zhì)量,從而提高壓縮圖像性能,設(shè)置了一個環(huán)路濾波器,濾波后的輸出即為重建圖像,可用作參考圖像。運動估計占編碼器運算量的50%以上,是編碼器實現(xiàn)的瓶頸。所謂運動估計是對于當(dāng)前幀中的每一塊(亮度宏塊及其子宏塊)到前一幀或后一幀某給定搜索范圍內(nèi)根據(jù)一定的匹配準(zhǔn)則找出與當(dāng)前塊最相似的塊,即匹配塊,由匹配塊與當(dāng)前塊的相對位移計算出運動矢量(MotionVector)。這里常用的準(zhǔn)則為絕對誤差和(SAD)最小。運動估計的越準(zhǔn)確,補償?shù)臍埐罹驮叫?,編碼效率就越高,編碼出來的圖像質(zhì)量也就越好。為了塊運動估計,需要讀入該塊對應(yīng)搜索窗的參考幀數(shù)據(jù)(也稱參考數(shù)據(jù))。對于一個16X16宏塊,如果運動估計搜索位置范圍水平[-64,+63]/豎直[-32,十31],那么,需要讀入?yún)⒖紨?shù)據(jù)為參考幀中對應(yīng)于本宏塊及其周圍的位置圖像區(qū)域,大小為(64+16+64)X(32+16+32)=144X80。在多參考幀情況下,可能需要讀入多個參考幀搜索窗數(shù)據(jù)。由于每幀宏塊數(shù)很大,上述存儲訪問量巨大,成為視頻編碼實現(xiàn)的瓶頸。為此,需要通過相鄰宏塊間重用參考幀搜索窗數(shù)據(jù),這樣可使得讀入的參考幀數(shù)據(jù)量大大下降,當(dāng)很多相鄰宏塊在一個單元中進行運動估計時,所需讀入的參考數(shù)據(jù)僅比這些宏塊區(qū)域略大。H.264/MPEG-4AVC標(biāo)準(zhǔn)定義了一個對16X16宏塊和4X4塊邊界的解塊過濾過程。在宏塊這種情況下,過濾的目的是消除由于相鄰宏塊有不同的幀內(nèi)、幀間預(yù)測或者不同的量化參數(shù)導(dǎo)致的人工方塊效應(yīng)。在塊邊界這種情況下,過濾的目的是消除可能由于變換/量化和來自于相鄰塊運動矢量的差別引起的人工痕跡。環(huán)路濾波通過一個內(nèi)容自適應(yīng)的非線性算法修改在宏塊/塊邊界的同一邊的兩個像素。其它新一代視頻編碼標(biāo)準(zhǔn),即VC—1、AVS1.0-P2,與H.264/AVC具有相同的編碼框架,僅部分模塊細(xì)節(jié)不同;如環(huán)路濾波H.264/AVC可以選擇對條帶的邊界濾波或者不濾波,VC—1、AVSL0-P2的條帶邊界總是不濾波,具體的濾波算法也有差別。同樣,上一代視頻編碼標(biāo)準(zhǔn),包括MPEG4、H.263、MPEG4—Part2,與H.264/AVC、VC—1、AVS1.0-P2具有類似的編碼框架,僅部分模塊不同,如MPEG4、H.263、MPEG4—Part2編碼器沒有環(huán)路濾波,運動估計參考幀也只有一個。為便于對本發(fā)明的理解,下面將對本發(fā)明的具體實現(xiàn)過程進行說明。本發(fā)明的具體實現(xiàn)過程如圖2所示,具體包括步驟21:將當(dāng)前幀劃分至少一個條帶組;具體為將視頻幀序列中的當(dāng)前幀分割成宏塊,按預(yù)定規(guī)則將所有宏塊分配給一個或多個條帶組;在該歩驟中,可以將視頻幀劃分為條帶組具體可以按靈活的宏塊組織順序(FMO)的各種掃描方式劃分,所述的各種掃描模式包括交錯掃描模式、散亂掃描模式、前景和背景掃描模式、打開的盒子(Box—out)掃描模式、光柵掃描掃描模式、手絹掃描模式和顯式掃描模式,其中,在顯式掃描模式中,需要采用編號指明每一個宏塊所屬的條帶組;若編碼器不支持FMO時,則可以將一幀所有宏塊劃分到一個條帶組。而且,在所述的光柵掃描掃描模式中,所述的條帶組可以選擇為在圖像中大小和位置固定、寬度等于幀寬度的一個或多個連續(xù)的整宏塊行;在所述的顯式掃描模式中,所述的條帶組的形狀可以均選擇為矩形。步驟22:基于所述的條帶組將當(dāng)前幀劃分為多個子條帶組;在H.264編碼方案中,分成序列、圖像組(GOP)、圖像(幀)、條帶組、條帶、宏塊、子宏塊等不同層次;本發(fā)明中,為了用多個編碼器并行編碼,需要選擇一種恰當(dāng)?shù)牧6葘⒄麄€一個序列的編碼任務(wù)劃分為多個子任務(wù)(模塊),即將所述的條帶組進一歩劃分為一個或多個子條帶組,或當(dāng)前幀只有一個條帶組,則需要將該條帶組劃分為多個子條帶組,以便于后續(xù)可以基于當(dāng)前幀的多個子條帶組進行負(fù)荷均衡的并行編碼處理。在該歩驟中,對當(dāng)前幀的所有條帶組分別進一歩劃分為多個子條帶組,具體是按歸光柵掃描的順序劃分為一個或多個子條帶組;其中,所有子條帶組可以為寬度等于幀寬度的一個或多個連續(xù)的整宏塊行。需要說明的是,在劃分子條帶組過程中,每個宏塊必須并且只能分配到一個子條帶組,將每個編碼器對應(yīng)一個或多個子條帶組,每一個子條帶組僅能對應(yīng)一個編碼器,但每個編碼器可以對應(yīng)一個或多個子條帶組,即可以用于對一個或多個子條帶組進行編碼;另外,在該歩驟中,一個編碼器還可以對應(yīng)多個子條帶組,例如,某種條帶組和子條帶組劃分方案導(dǎo)致部分子條帶組尺寸偏小時,可將若干個小的子條帶組分給一個編碼器。多個編碼器之間處理負(fù)荷均衡的原則具體為按與多個編碼器處理能力匹配的原則來劃分子條帶組,在劃分過程中結(jié)合參考數(shù)據(jù)傳送代價,令多個編碼器同時完成所分配子條帶組的編碼處理。在該歩驟中,在對一個圖像組(GOP)進行編碼的過程中,具體的子條帶組劃分處理方案包括如下處理方式對于I幀,按照宏塊數(shù)預(yù)測編碼處理負(fù)荷,按與多編碼器處理能力匹配的原則來劃分子條帶組,令多個編碼器同時完成所分配子條帶組的編碼處理;對于第一個非I幀,當(dāng)條帶組劃分不變時,采用I幀的子條帶組劃分方式進行子條帶組的劃分;對于第2個非I幀,根據(jù)實際統(tǒng)計得到的第1個非I幀的各子條帶組編碼處理量預(yù)測所述第2個非I幀各子條帶組的編碼處理負(fù)荷,并根據(jù)參考數(shù)據(jù)載入代價,調(diào)整所述第2個非I幀子條帶組的劃分,令并行編碼所述第2個非I幀時多個編碼器處理時間一致;對于第2個非I幀以后的任一非I幀,根據(jù)該幀前一幀或前幾幀各子條帶組編碼處理量預(yù)測所述非I幀各子條帶組的編碼處理負(fù)荷,并根據(jù)考幀數(shù)據(jù)載入代價,調(diào)整所述非I幀子條帶組的劃分,令并行編碼所述非I幀時多個編碼器處理時間一致。步驟23:將劃分為子條帶組后的待編碼數(shù)據(jù)分發(fā)給各個編碼器;具體的分發(fā)方式按步驟22中描述的子條帶組和編碼器對應(yīng)關(guān)系進行,具體的分發(fā)內(nèi)容不僅包括當(dāng)前幀所有子條帶組,還包括相關(guān)的編碼配置參數(shù)信息,這些信息包括條帶的描述信息,如位置、宏塊數(shù)等;所述的編碼配置參數(shù)信息具體包括但不限于編碼標(biāo)準(zhǔn)信息(標(biāo)準(zhǔn)、檔次),F(xiàn)M0及掃描模式,參考幀數(shù),運動估計搜索范圍,碼率控制要求,以及環(huán)路濾波模式等。歩驟24:各編碼器之間執(zhí)行交換參考數(shù)據(jù)的操作;具體的交換參考數(shù)據(jù)的處理過程可以為當(dāng)當(dāng)前幀不為I幀時,編碼器之間交換已重建的參考幀子條帶組數(shù)據(jù),更新各編碼器中緩存的每個子條帶組運動估計搜索區(qū)參考數(shù)據(jù);進一歩講,所述的交換參考數(shù)據(jù)的處理為當(dāng)當(dāng)前幀不為I幀時,編碼器進行幀間預(yù)測,其中最核心的處理是運動估計;在所述運動估計前,編碼器需要獲得搜索區(qū)參考數(shù)據(jù);參考數(shù)據(jù)來源于前面己重建的參考幀,這個參考幀由各編碼器輸出的各重建子條帶組合成;參考數(shù)據(jù)的讀入是視頻編碼存儲訪問量中最大的部分,對編碼性能影響很大;為此需要最大限度地減少參考數(shù)據(jù)的讀入量,這需要采用各種參考數(shù)據(jù)重用策略。即在該歩驟中,若當(dāng)前幀不為I幀,則根據(jù)各編碼器當(dāng)前幀子條帶組和重建幀子條帶組的圖像區(qū)、存儲區(qū)交疊關(guān)系,以及當(dāng)前幀子條帶組中運動估計最大搜索區(qū)、參考幀,確定編碼器之間交換的最少的參考數(shù)據(jù),并利用所述交換的參考數(shù)據(jù)更新各編碼器中緩存的每個子條帶組運動估計搜索區(qū)參考數(shù)據(jù)。也就是說,本發(fā)明中,一個編碼器編碼過程中產(chǎn)生的重建子條帶組存儲在本編碼器本地存儲器中,當(dāng)下一幀同一個子條帶組位置大小不變時,這個重建子條帶組的數(shù)據(jù)能夠全部作為下幀運動估計的參考數(shù)據(jù),但超出本編碼器所分配子條帶組區(qū)域以外的搜索區(qū)部分參考數(shù)據(jù)是由其它編碼器產(chǎn)生的,必須從其它編碼器獲得。例如,在運動估計過程中采用大小固定的搜索窗,一個參考幀,根據(jù)搜索窗的尺寸確定編碼器之間交換的最小參考數(shù)據(jù),并在編碼器之間交換獲得相應(yīng)的參考數(shù)據(jù),以便于用來更新各編碼器中緩存的每個子條帶組的運動估計搜索區(qū)參考數(shù)據(jù)。歩驟25:由各個編碼器并行將待編碼的當(dāng)前幀所有子條帶組包含的宏塊進行編碼處理;對當(dāng)前幀所有子條帶組用多個編碼器并行編碼的處理具體可以為每個編碼器完成所分配子條帶組的編碼,在編碼過程中,將每個子條帶組按光柵掃描的順序劃分為一個或多個條帶,每個宏塊必須并且只能分配到一個條帶;每個編碼器完成所分配子條帶組中所有宏塊的編碼,產(chǎn)生重建子條帶組,輸出編碼碼流和參數(shù)。在該歩驟中,每個編碼器對子條帶組中所有宏塊的編碼過程具體可以包括運動估計,運動補償;幀內(nèi)預(yù)測選擇,幀內(nèi)預(yù)測,幀內(nèi)/幀間選擇,求殘差;碼率控制;變換、量化;重排序,熵編碼;反量化,反變換;以及重建。若根據(jù)H.264、VC—1、AVS1.0—P2標(biāo)準(zhǔn),則每個編碼器對子條帶組中所有宏塊的的編碼過程具體可以包括以下歩驟(1)使用多個后向或前向參考幀進行運動估計,及運動補償;(2)幀內(nèi)預(yù)測選擇,即當(dāng)前宏塊幀內(nèi)預(yù)測時,使用同一條帶己重建尚未環(huán)路濾波的左邊宏塊和上邊宏塊數(shù)據(jù);幀內(nèi)/幀間選擇,求殘差;(3)碼率控制處理;(4)整數(shù)變換、量化處理;(5)重排序,熵編碼,熵編碼是上下文基于自適應(yīng)的變長編碼或基于上下文的自適應(yīng)二進制算術(shù)編碼;(6)反量化,及反變換處理;(7)重建處理;(8)環(huán)路濾波處理?;贖.264標(biāo)準(zhǔn),環(huán)路濾波是編碼過程產(chǎn)生重建幀必須的環(huán)節(jié)。H.264每條帶的邊界是否進行環(huán)路濾波可以通過"條帶邊界環(huán)路濾波模式"設(shè)置選擇,本發(fā)明優(yōu)選將當(dāng)前幀所有條帶"邊界環(huán)路濾波模式"設(shè)置為"不濾波"。當(dāng)前幀所有條帶"邊界環(huán)路濾波模式"設(shè)置為"不濾波"時,各編碼器各自獨立完成每個條帶環(huán)路濾波處理,各編碼器、各條帶之間不交換數(shù)據(jù)。山于各條帶的環(huán)路濾波是獨立的,為節(jié)省環(huán)路濾波的處理時間,本發(fā)明中針對一個條帶包含的宏塊的環(huán)路濾波在該條帶第一個宏塊重建完成后啟動,宏塊的重建和環(huán)路濾波構(gòu)成宏塊級流水線,為了降低環(huán)路濾波處理對主存儲器的訪問頻度,可以在片上緩存上存儲上邊一整行宏塊中的最下邊4行象素值及塊信息和左邊宏塊最右4列的象素值及塊信息,環(huán)路濾波處理時僅需要訪問這塊片上緩存器。當(dāng)然,一個條帶的環(huán)路濾波也可以在該條帶重建全部完成后開始,同樣,各編碼器對各條帶的環(huán)路濾波各自獨立進行,各編碼器、各條帶之間不需要交換數(shù)據(jù)。歩驟26:對編碼器編碼后的輸出碼流及參數(shù)進行匯聚處理和頂層編碼,產(chǎn)生輸出序列碼流;具體為主處理器匯集各編碼器輸出的碼流及相關(guān)參數(shù),生成條帶組、幀碼流,合并處理生成序列碼流后輸出;例如,對于H.264,需要完成包括NAL在內(nèi)的所有編碼處理。經(jīng)過上述步驟21至步驟26的處理,便可以實現(xiàn)針對視頻數(shù)據(jù)的并行編碼處理,而且,在針對視頻數(shù)據(jù)進行編碼處理過程中需要重復(fù)執(zhí)行所述的步驟21至步驟26,以便于重復(fù)進行下一幀編碼處理,直到編碼過程結(jié)束。本發(fā)明在具體實現(xiàn)過程中,劃分子帶分組的處理過程為本發(fā)明實現(xiàn)的關(guān)鍵,下面將結(jié)合具體的應(yīng)用實例對劃分子帶分組的處理過程進行說明。本發(fā)明中,為了通過并行處理獲得更大編碼處理能力,滿足實時高清視頻編碼的要求,需要采用多個編碼器并行進行編碼處理,所述的多個編碼器的架構(gòu)和編碼處理能力可以不相同,但其編碼器總的處理能力應(yīng)大于所要求的編碼處理,并有一定余量應(yīng)付并行編碼處理器的附加開銷。以高清視頻720p(1280X720,30fps)H.264實時編碼為例。編碼器架構(gòu)設(shè)計考慮支持I或2個參考幀,運動估計搜索范圍水平[-64,+63]/豎直[-32,+31]。單個編碼器采用VLIWDSP或FPGA實現(xiàn),根據(jù)預(yù)先的評估,大約需要5個所述的編碼器累計起來能夠達到720p總的編碼處理能力并有一定余量,所述的編碼器編號為編碼器15。本發(fā)明中,為了獲得最佳的并行處理性能,主要考慮以下兩方面(1)各編碼器之間負(fù)荷均衡,相互等待盡量少;(2)各編碼器之間通信等開銷盡量小。本發(fā)明的方法正是通過靈活的子條帶組劃分,使并行視頻編碼系統(tǒng)中多個處理器(即編碼器)滿足上述兩方面處理,以達到整個并行視頻編碼系統(tǒng)的性能最佳。為達到上述(1)所述的需求,需要使預(yù)計的子條帶組的編碼處理負(fù)荷與所分配的編碼器的處理能力匹配。子條帶組的編碼處理負(fù)荷與該子條帶組大小(即包含的宏塊數(shù)數(shù))、圖像內(nèi)容特征、編碼配置參數(shù)(幀內(nèi)預(yù)測、幀間預(yù)測、參考幀數(shù)量、最小塊、量化等級、熵編碼方式等)密切相關(guān),通常,宏塊數(shù)越多,編碼處理負(fù)荷越大,因此可以通過調(diào)整子條帶組的宏塊數(shù)和對應(yīng)編碼器處理能力相匹配。對于上述(2)所述的需求,多編碼器并行處理的通信開銷主要是參考數(shù)據(jù)的交換,若運動估計參數(shù)(參考幀數(shù)、搜索范圍等)固定,當(dāng)子條帶組劃分不變時,通信開銷不變,如果當(dāng)前幀子條帶組劃分發(fā)生改變,則參考數(shù)據(jù)交換的通信開銷明顯增大。故子條帶組劃分的調(diào)整需要計算參考數(shù)據(jù)通信開銷增大的代價影響。具體以高清視頻720p(1280X720)為例,對本發(fā)明提供的條帶組、子條帶組的劃分方式進行說明。即如表1所示,表3中是720p—幀的宏塊劃分,共有3600個16X16宏塊,分為45個宏塊行(表中最右邊一列是宏塊行的編號,MBR145),每個宏塊行有80個宏塊,每個小格中的數(shù)字是宏塊編號,按光柵掃描(從左向右,從上到下)遞增;表l<table>tableseeoriginaldocumentpage19</column></row><table><table>tableseeoriginaldocumentpage20</column></row><table>針對表l所示的一幀,以按前景和后景劃分條帶組為例。假設(shè),僅有一個前景條帶組,共216個宏塊(8宏塊列、27個宏塊行)。剩余宏塊其余屬于背景條帶組。在實際應(yīng)用中,如會議電視中,常把視場中的人(或人臉)視為最關(guān)心的部分,將這部分劃分為前景條帶組單獨進行編碼。對兩個條帶組又進一步劃分為總共6個子條帶組,其中背景條帶組分為5個子條帶組,前景條帶組分為一個子條帶組。如表2所示,相應(yīng)的劃分后的子條帶組具體可以為如下劃分結(jié)果子條帶組l:為最下方5個整宏塊行,共400個宏塊(80宏塊列、5個宏塊行),宏塊編號0719;子條帶組2:宏塊編號7201439,前景部分(帶雙下劃線的黑體字區(qū))除外;子條帶組3:宏塊編號14002159,前景部分(帶雙下劃線的黑體字區(qū))除外;子條帶組4:宏塊編號21602879,前景部分(帶雙下劃線的黑體字區(qū))除外;子條帶組5:為最下方5個整宏塊行,共400個宏塊(80宏塊列、5個宏塊行),宏塊編號28803599;子條帶組6:前景條帶組(帶雙下劃線的黑體字區(qū))所有216個宏塊。這種子條帶組的劃分方式適用于H.264基本檔次和擴展檔次支持FMO的情形。表2<table>tableseeoriginaldocumentpage21</column></row><table>仍以對表l所示的幀為例,且按顯式劃分條帶組的實現(xiàn)方式如表3所示,一幀劃分成4個條帶組,又進一步劃分為總共5個子條帶組。條帶組l為左上角的斜體字區(qū),共1600個宏塊(40宏塊列、40個宏塊行);該條帶組進一歩上下等劃分成兩個子條帶組(子條帶組l、2),每個子條帶組共800個宏塊(40宏塊列、20個宏塊行)。條帶組2為右上角的帶下劃線的黑體字區(qū),共1600個宏塊(40宏塊列、40個宏塊行);該條帶組進一步上下等劃分成兩個子條帶組(子條帶組3、4),每個子條帶組共800個宏塊(40宏塊列、20個宏塊行)。條帶組3為下方5個整宏塊行,共400個宏塊(80宏塊列、5個宏塊行);該條帶組整個劃分成一個子條帶組(子條帶組5)。這種劃分適用于H.264基本檔次和擴展檔次支持FMO的情形。表3<table>tableseeoriginaldocumentpage22</column></row><table>再以按光柵掃描劃分條帶組為例,相應(yīng)的劃分結(jié)果如表4所示,一幀劃分成l個條帶組,又進一步等分為總共5個子條帶組,每個子條帶組9個整宏塊行,共720個宏塊。子條帶組l:宏塊編號0719;子條帶組2:宏塊編號7201439;子條帶組3:宏塊編號14002159;子條帶組4:宏塊編號21602879;子條帶組5:宏塊編號28803599;這種劃分方案適用于H.264、VC—1、AVS1.0-P2、H.263、MPEG2、MPEG4—Part2標(biāo)準(zhǔn)及其各檔次。表4<table>tableseeoriginaldocumentpage23</column></row><table>這里對本發(fā)明中步驟24所述的交換參考數(shù)據(jù)舉例說明如下以表4所示的子帶分組劃分方式為例,以720p、運動估計搜索范圍水平[-64,+63]/豎直[_32,+31]為例,假設(shè)編碼器3對應(yīng)子條帶組3,需要的參考數(shù)據(jù)區(qū)為對應(yīng)宏塊編號為12802319的前一個或多個參考幀圖像區(qū)域。對于一個參考幀的運動估計情況下,若在編碼器3的當(dāng)前幀與上一幀所編碼子條帶組劃分不變,即同為宏塊編號為14402159區(qū)域,由于所需參考幀區(qū)域中宏塊編號為14402159區(qū)域是本編碼器上一幀重建的子條帶組,故需要從編碼器3外部讀入的參考數(shù)據(jù)僅為以下兩塊宏塊編號為12801439,來自于(編碼器2輸出的)重建子條帶組2;禾口,宏塊編號為21602319,來自于(編碼器4輸出的)重建子條帶組4。同樣,對于一個參考幀的運動估計情況下,若在編碼器2的當(dāng)前幀與上一幀所編碼子條帶組劃分不變,即同為宏塊編號為7201439區(qū)域,由于所需參考幀區(qū)域中宏塊編號為7201439區(qū)域是本編碼器上一幀重建的子條帶組,故需要從編碼器3外部讀入的參考數(shù)據(jù)僅為以下兩塊宏塊編號為14401559,來自于(編碼器3輸出的)重建子條帶組3;禾口,宏塊編號為560719,,來自于(編碼器l輸出的)重建子條帶組l。在此,當(dāng)前編碼子條帶組相鄰的兩個編碼器2和3相互將重建子條帶組數(shù)據(jù)傳給對方作為參考數(shù)據(jù),用于進行編碼操作。若使用多參考幀運動估計,則需要從其它編碼器載入所需的多個重建子條帶組數(shù)據(jù)部分。本發(fā)明提供的方法可以適用于各種視頻格式,包括高清視頻或標(biāo)清視頻,而且,可以是逐行也可以為隔行掃描;其中,對于隔行掃描視頻,一個隔行掃描幀的頂場和底場的兩個對應(yīng)宏塊組成宏塊對,需要將一個宏塊對分配給同一個條帶組、子條帶組、條帶編碼。基于前面的條帶組及子條帶組劃分的實例,下面對針對子條帶組編碼過程中的條帶的劃分的應(yīng)用實例進行描述應(yīng)用實例一將子條帶組劃分為條帶分割的一個例子如表5所示。在表5中,子條帶組l在編碼過程中分成7個條帶,按光柵掃描順序編號為條帶17,條帶l、2各為兩個宏塊行,條帶37各為一個宏塊行;表5<table>tableseeoriginaldocumentpage24</column></row><table><table>tableseeoriginaldocumentpage25</column></row><table>應(yīng)用實例二第二個條帶分割的例子如表6所示,在表2中,子條帶組1在編碼過程中分成5個條帶,按光柵掃描順序編號為條帶15,各條帶包含的宏塊如下條帶l:宏塊編碼0123;條帶2:宏塊編碼124237;條帶5:宏塊編碼238319;條帶3:宏塊編碼320521;條帶4:宏塊編碼522719;表6<table>tableseeoriginaldocumentpage25</column></row><table>本發(fā)明還包括一種并行視頻編碼的裝置,該裝置的具體實現(xiàn)結(jié)構(gòu)如圖3所示,包括主處理器和多個編碼器,主處理器用于將待編碼的當(dāng)前幀劃分為子條帶組,并分別傳遞給多個編碼器,多個編碼器并行編碼各子條帶組,輸出各自編碼碼流給主處理器,由主處理器生成序列碼流并輸出。(一)主處理器所述的主處理器進一步包括條帶組確定單元、子條帶組確定單元、子條帶組數(shù)據(jù)傳遞單元及頂層編碼單元,各單元具體為-條帶組確定單元,用于從數(shù)據(jù)傳送單元接收數(shù)字視頻序列數(shù)據(jù),將視頻幀序列中的當(dāng)前幀固定分割成宏塊,按預(yù)定規(guī)則將所有宏塊分配給一個或多個條帶組;子條帶組確定單元,用于對當(dāng)前幀的所有條帶組,按照光柵掃描的順序劃分為一個或多個子條帶組,每個宏塊必須并且只能分配到一個子條帶組;子條帶組數(shù)據(jù)傳遞單元,用于根據(jù)子條帶組和編碼器的對應(yīng)關(guān)系配置控制多個編碼器讀入所述的子條帶組數(shù)據(jù),且每個編碼器讀入一個或多個子條帶組,每一個子條帶組包含的待編碼數(shù)據(jù)均傳遞到同一個編碼器;在子條帶組數(shù)據(jù)傳遞過程中可以使用的總線信號格式包括但不限于并行接口、高速串行接口、BT656或CCIR601數(shù)字視頻信號格式、HD-SDI信號、AMBA總線規(guī)范中的AHB或AXI總線或以太網(wǎng)接口對應(yīng)的信號格式;頂層編碼單元用于匯集各編碼器輸出的碼流及相關(guān)參數(shù),生成條帶組、幀碼流,合并處理生成序列碼流后輸出;在主處理器中具體可以將整個幀為一個條帶組,劃分為多個子條帶組,且所有子條帶組為在圖像中大小和位置固定、寬度等于幀寬度的一個或多個連續(xù)的整宏塊行。另外,在主處理器中還完成預(yù)先對接收到當(dāng)前幀進行圖像預(yù)處理,包括二維去噪處理,和或,縮放處理,和/或,數(shù)字視頻4:4:4到4:2:2格式變換處理,和/或,數(shù)字視頻4:2:2到4:2:O的格式變換處理等。而且,本發(fā)明所述主處理器具體中可以是一個計算機系統(tǒng),包括CPU、存儲器、與數(shù)據(jù)傳送單元的接口(與數(shù)據(jù)傳送單元的接口和外部通信網(wǎng)絡(luò)輸入接口),以及輸出接口,用于輸出已編碼碼流,和,配置控制信息接口,用于接受外部配置控制信息。(二)編碼器,所述的編碼器的結(jié)構(gòu)具體可以包括(1)子條帶組接收單元,用于接收子條帶組和編碼配置參數(shù);(2)參考數(shù)據(jù)輸入輸出單元,用于在各編碼器之間交換參考數(shù)據(jù),具體為當(dāng)當(dāng)前幀不為I幀時,每個編碼器通過數(shù)據(jù)傳送單元中設(shè)置的交換參考數(shù)據(jù)單元,交換從其它編碼器獲取所需的參考數(shù)據(jù),即控制編碼器之間交換已重建的參考幀子條帶組數(shù)據(jù),更新各編碼器中緩存的每個子條帶組運動估計搜索區(qū)參考數(shù)據(jù)。(3)編碼單元,用于并行對當(dāng)前幀所有子條帶組編碼每個編碼器完成所分配子條帶組的編碼,在編碼過程中將每個子條帶組按光柵掃描的順序劃分為一個或多個條帶,每個宏塊必須并且只能分配到一個條帶;每個編碼器完成所分配子條帶組中所有宏塊的編碼,產(chǎn)生重建子條帶組,產(chǎn)生并輸出碼流和相關(guān)參數(shù);而且,所述條帶優(yōu)選為寬度等于幀寬度的一個或多個連續(xù)的整宏塊行;本發(fā)明所述多個編碼器中每個編碼器可以為-通用處理器,包括超標(biāo)量結(jié)構(gòu)的處理器、超長指令字信號處理器(VLIWDSP);或現(xiàn)場可編程大規(guī)模陣列芯片(FPGA);或定制的超大規(guī)模集成電路芯片(VLSI);或指令集可配置處理器。每個編碼器還配置數(shù)據(jù)隨機訪問存儲器(RAM),即存儲單元,用于緩存當(dāng)前和重建的子條帶組數(shù)據(jù)等信息。數(shù)據(jù)RAM容量不大時可以使用芯片內(nèi)大容量RAM,所需容量較大時可以配置使用片外的同步靜態(tài)隨機訪問存儲器(SSRAM)或同步動態(tài)隨機訪問存儲器(SDRAM)。進一步地,為獲得更好的并行處理,用于H.264、VC_1、AVS1.0—P2標(biāo)準(zhǔn)編碼時,所述編碼器編碼中的環(huán)路濾波方式為設(shè)置選擇當(dāng)前幀所有條帶的邊界環(huán)路濾波模式為不濾波,各編碼器各自獨立完成環(huán)路濾波處理,各編碼器、各條帶之間不交換數(shù)據(jù);具體為一個條帶的環(huán)路濾波在該條帶第一個宏塊重建完成后啟動,宏塊的重建和環(huán)路濾波構(gòu)成宏塊級流水線;或者,一個條帶的環(huán)路濾波在該條帶重建全部完成后開始,各編碼器對各條帶的環(huán)路濾波各自獨立進行,各編碼器、各條帶之間不需要交換數(shù)據(jù)。所述的編碼器在編碼過程中,相應(yīng)的參考數(shù)據(jù)交換過程為當(dāng)當(dāng)前幀不為I幀時,編碼器之間交換參考幀子條帶組數(shù)據(jù),根據(jù)各編碼器當(dāng)前幀子條帶組和重建幀子條帶組的圖像區(qū)、存儲區(qū)交疊關(guān)系,并考慮當(dāng)前幀子條帶組中運動估計最大搜索區(qū)、參考幀,確定編碼器之間交換的最少的參考數(shù)據(jù),更新各編碼器中緩存的每個子條帶組運動估計搜索區(qū)參考數(shù)據(jù);其中,運動估計可以采用大小固定的搜索窗,一個參考幀,根據(jù)搜索窗尺寸確定編碼器之間交換的最少的參考數(shù)據(jù),更新各編碼器中緩存的每個子條帶組運動估計搜索區(qū)參考數(shù)據(jù)。需要說明的是,在編碼器執(zhí)行編碼操作過程中,通常還需要對當(dāng)前幀進行視頻編碼前還需要預(yù)處理,包括二維去噪,縮放和格式變換,格式變換指將輸入數(shù)字視頻格式轉(zhuǎn)為編碼器要求的格式等處理;常見的編碼數(shù)字視頻格式為4:2:0,常見的輸入的數(shù)字視頻格式為BT656或CCIR601規(guī)定的4:2:2。H.264高保真擴展編碼支持4:2:2和4:4:4,此時輸入數(shù)字視頻為4:2:2和4:4:4。高清視頻物理接口常為HD—SDI。而且,多個編碼器所需的當(dāng)前幀數(shù)據(jù)預(yù)處理可采用以下兩種形式之一1、主處理器接收當(dāng)前幀,集中預(yù)處理并緩存后發(fā)再轉(zhuǎn)發(fā)給多個編碼器這種方案需要主處理器處理能力較強,數(shù)據(jù)幀存儲容量較大;2、多個編碼器各自預(yù)處理處理所分配的子條帶組。本發(fā)明所述的裝置主處理器中還可以設(shè)置有控制單元,用于初始化、配置及控制主處理器中其它處理單元和多個編碼器完成整個視頻序列編碼。本發(fā)明所述的裝置中,為了簡化每個編碼器的啟動、配置電路,降低成本,所述的編碼器的啟動、配置程序或數(shù)據(jù)可以來自主處理器;對于編碼器為FPGA的情況,可以由主處理器通過并行或串行配置接口配置FPGA;對于編碼器為通用處理器的情形,可選擇并口或串口啟動(Boot),啟動過程中應(yīng)用的BootROM程序來自主處理器。本發(fā)明所述的裝置典型地是由一個或多個電路板構(gòu)成的一個嵌入式計算機系統(tǒng);或者,也可以是個人計算機或服務(wù)器通過通信網(wǎng)絡(luò)連接在一起的系統(tǒng),其中編碼器可以是PC或服務(wù)器。本發(fā)明所述的方法及裝置適用多種編碼標(biāo)準(zhǔn)及其各檔次。本發(fā)明提供的裝置適用于各種視頻格式,包括高清視頻或標(biāo)清視頻,可以是逐行也可以為隔行掃描,對于隔行掃描視頻,一個隔行掃描幀的頂場和底場的兩個對應(yīng)宏塊組成宏塊對,需要將一個宏塊對分配給同一個條帶組、子條帶組、條帶編碼。以上所述,僅為本發(fā)明較佳的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本
      技術(shù)領(lǐng)域
      的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)該以權(quán)利要求的保護范圍為準(zhǔn)。權(quán)利要求1、一種并行視頻編碼的方法,其特征在于,包括將視頻序列中的當(dāng)前幀分割成宏塊,按預(yù)定規(guī)則將所有宏塊分配給一個或多個條帶組;依據(jù)光柵掃描的順序?qū)⑺鰲l帶組分別劃分為一個或多個子條帶組,獲得當(dāng)前幀包含的多個條帶組,每個宏塊被分配到同一個子條帶組;將子條帶組根據(jù)其對應(yīng)的處理負(fù)荷均衡地對應(yīng)至各個編碼器,每一個子條帶組對應(yīng)同一個編碼器,每個編碼器對應(yīng)一個或多個子條帶組;按子條帶組和編碼器對應(yīng)關(guān)系,將當(dāng)前幀所有子條帶組和編碼配置參數(shù)傳送給多個編碼器;當(dāng)當(dāng)前幀為I幀時,各編碼器丟棄所有重建子條帶組數(shù)據(jù);當(dāng)當(dāng)前幀不為I幀時,每個編碼器從其它編碼器重建子條帶組獲取所屬子條帶組運動估計所需的參考數(shù)據(jù);由所述的多個編碼器對當(dāng)前幀的子條帶組并行進行編碼處理,在編碼過程中將每個子條帶組按光柵掃描的順序劃分為一個或多個條帶,完成對所述子條帶組中所有宏塊的編碼,產(chǎn)生重建子條帶組,輸出編碼碼流和參數(shù);將各編碼器輸出的碼流及參數(shù)匯聚,完成條帶組、幀和序列的編碼,輸出整個序列碼流。2、根據(jù)權(quán)利要求l所述的方法,其特征在于,當(dāng)當(dāng)前幀不為I幀時,所述的方法包括根據(jù)各編碼器當(dāng)前幀子條帶組和重建幀子條帶組的圖像區(qū)、存儲區(qū)交疊關(guān)系,以及當(dāng)前幀子條帶組中運動估計的最大搜索區(qū)、多參考幀屬性,確定編碼器之間交換的最少的參考數(shù)據(jù),各編碼器之間通過交換操作獲得所述參考數(shù)據(jù),并利用所述參考數(shù)據(jù)更新各編碼器中緩存的每個子條帶組運動估計搜索區(qū)參考數(shù)據(jù)。3、根據(jù)權(quán)利要求l所述的方法,其特征在于,所述的預(yù)定規(guī)則包括交錯掃描模式、散亂掃描模式、前景和背景掃描模式、打開的盒子Box—out掃描模式、光柵掃描掃描模式、手絹掃描模式、以及需要采用編號指明每一個宏塊所屬的條帶組的顯式掃描模式,或者,將當(dāng)前幀劃分為一個條帶組。4、根據(jù)權(quán)利要求l所述的方法,其特征在于,所述的子條帶組為寬度等于幀寬度的一個或多個連續(xù)的整宏塊行。5、根據(jù)權(quán)利要求1至4任一項所述的方法,其特征在于,所述的將子條帶組根據(jù)其對應(yīng)的處理負(fù)荷均衡地對應(yīng)至各個編碼器的處理包括根據(jù)各個編碼器處理能力,以及參考數(shù)據(jù)傳送代價,將當(dāng)前幀包含的各子條帶對應(yīng)至各個編碼器,令多個編碼器同時完成所分配子條帶組的編碼處理。6、根據(jù)權(quán)利要求l所述的方法,其特征在于,在圖像組編碼過程中,所述的劃分成多個子條帶組的處理包括對于I幀,按照宏塊數(shù)預(yù)測編碼處理負(fù)荷,并根據(jù)編碼器的處理能力及所述編碼處理負(fù)荷將子條帶組對應(yīng)至各個編碼器,令多個編碼器同時完成所分配子條帶組的編碼處理;對于第一個非I幀,當(dāng)條帶組劃分不變時,采用I幀的子條帶組劃分方式進行子條帶組的劃分;對于第2個非I幀,根據(jù)實際統(tǒng)計得到的第1個非I幀的各子條帶組編碼處理量預(yù)測所述第2個非I幀各子條帶組的編碼處理負(fù)荷,并根據(jù)參考數(shù)據(jù)載入代價,調(diào)整所述第2個非I幀子條帶組的劃分,令并行編碼所述第2個非I幀時多個編碼器處理時間一致;對于第2個非I幀以后的任一非I幀,根據(jù)該幀前一幀或前幾幀各子條帶組編碼處理量預(yù)測所述非I幀各子條帶組的編碼處理負(fù)荷,并根據(jù)考幀數(shù)據(jù)載入代價,調(diào)整所述非I幀子條帶組的劃分,令并行編碼所述非I幀時多個編碼器處理時間一致。7、根據(jù)權(quán)利要求l所述的方法,其特征在于,所述條帶為寬度等于幀寬度的一個或多個連續(xù)的整宏塊行。'8、根據(jù)權(quán)利要求l所述的方法,其特征在于,所述條帶是在對子條帶組編碼過程中按照編碼碼流的長度截分。9、根據(jù)權(quán)利要求l所述的方法,其特征在于,所述的每個編碼器對子條帶組中的每個宏塊進行的編碼處理過程包括.運動估計,運動補償;幀內(nèi)預(yù)測選擇,幀內(nèi)預(yù)測,幀內(nèi)/幀間選擇,求殘差;碼率控制;變換、量化重排序,熵編碼;反量化,反變換;重建。10、根據(jù)權(quán)利要求l所述的方法,其特征在于,所述的每個編碼器對子條帶組中的每個宏塊進行的編碼處理過程包括運動估計,運動補償,使用多個后向或前向參考幀;幀內(nèi)預(yù)測選擇,幀內(nèi)預(yù)測,當(dāng)前宏塊幀內(nèi)預(yù)測時使用同一條帶己重建尚未環(huán)路濾波的左邊宏塊和上邊宏塊數(shù)據(jù);幀內(nèi)/幀間選擇,求殘差;碼率控制;整數(shù)變換、量化;重排序,熵編碼,熵編碼是上下文基于自適應(yīng)的變長編碼或基于上下文的自適應(yīng)二進制算術(shù)編碼;反量化,反變換;重建;環(huán)路濾波。11、根據(jù)權(quán)利要求8所述的方法,其特征在于,所述的每個編碼器對子條帶組中的每個宏塊進行的編碼處理過程還包括-設(shè)置選擇當(dāng)前幀所有條帶的邊界環(huán)路濾波模式為不濾波,各編碼器各自獨立完成每個條帶環(huán)路濾波處理,且各編碼器、各條帶之間不交換信息。12、根據(jù)權(quán)利要求ll所述的方法,其特征在于,所述的環(huán)路濾波包括條帶的環(huán)路濾波在該條帶第一個宏塊重建完成后啟動,或者,條帶的環(huán)路濾波在該條帶重建全部完成后開始。13、一種并行視頻編碼的裝置,其特征在于,包括主處理器和多個編碼器,主處理器用于將待編碼的當(dāng)前幀劃分為子條帶組,并分別傳遞給多個編碼器,多個編碼器并行編碼各子條帶組,輸出各自編碼碼流給主處理器,由主處理器生成序列碼流并輸出;所述的主處理器包括條帶組確定單元、子條帶組確定單元及頂層編碼單元,其中條帶組確定單元,用于將視頻幀序列中的當(dāng)前幀固定分割成宏塊,按預(yù)定規(guī)則將所有宏塊分配給一個或多個條帶組;子條帶組確定單元,用于對當(dāng)前幀的所有條帶組,依據(jù)光柵掃描的順序?qū)⑺鰲l帶組分別劃分為一個或多個子條帶組,且每個宏塊必須并且只能分配到一個子條帶組,獲得當(dāng)前幀包含的多個條帶組,每個編碼器對應(yīng)一個或多個子條帶組,每一個子條帶組對應(yīng)個編碼器;子條帶組數(shù)據(jù)傳遞單元,按子條帶組和編碼器對應(yīng)關(guān)系將當(dāng)前幀所有子條帶組和編碼配置參數(shù)傳送給多個編碼器;頂層編碼單元將各編碼器輸出的碼流及參數(shù)匯聚,完成條帶組、幀和序列的編碼,輸出整個序列碼流。所述的編碼器包括子條帶組接收單元、參考數(shù)據(jù)輸入輸出單元及編碼單元,其中子條帶組接收單元,用于接收子條帶組和編碼配置參數(shù);參考數(shù)據(jù)輸入輸出單元,用于在各編碼器之間交換參考數(shù)據(jù),當(dāng)當(dāng)前幀不為I幀時,控制編碼器之間交換已重建的參考幀子條帶組數(shù)據(jù),更新各編碼器中緩存的每個子條帶組運動估計搜索區(qū)參考數(shù)據(jù);編碼單元,用于所分配子條帶組進行編碼處理,在編碼過程中將每個子條帶組按光柵掃描的順序劃分為一個或多個條帶,完成對所分配子條帶組中所有宏塊的編碼,產(chǎn)生重建子條帶組,輸出編碼碼流和參數(shù)。14、根據(jù)權(quán)利要求13所述的裝置,其特征在于,所述的主處理器的處理包括將整個幀劃分為一個條帶組,并進一步劃分為多個子條帶組,且所有子條帶組為寬度等于幀寬度的一個或多個連續(xù)的整宏塊行。15、根據(jù)權(quán)利要求13所述的裝置,其特征在于,所述的多個編碼器中的每個編碼器還包括數(shù)據(jù)存儲單元,用于緩存當(dāng)前和重建的子條帶組數(shù)據(jù)。16、根據(jù)權(quán)利要求13所述的裝置,其特征在于,所述的條帶為寬度等于幀寬度的一個或多個連續(xù)的整宏塊行,而且,所述的同一個宏塊僅能被劃分到同一條帶中。17、根據(jù)權(quán)利要求13所述的裝置,其特征在于,所述的裝置主處理器還包括控制單元,用于初始化、配置及控制主處理器和多個編碼器完成整個視頻序列編碼。18、根據(jù)權(quán)利要求13至16任一項所述的裝置,其特征在于,所述的多個編碼器中的每個編碼器在進行編碼過程中還包括將當(dāng)前幀所有條帶的邊界環(huán)路濾波模式設(shè)置為不濾波,各編碼器各自獨立完成每個條帶環(huán)路濾波處理,各編碼器、各條帶之間不交換信息,且條帶的環(huán)路濾波在該條帶第一個宏塊重建完成后啟動,或者,條帶的環(huán)路濾波在該條帶重建全部完成后開始。19、根據(jù)權(quán)利要求13至16任一項所述的裝置,其特征在于,所述的多個編碼器僅完成宏塊級熵編碼輸出宏塊碼流和參數(shù),主處理器頂層編碼模塊完成條帶級熵編碼。全文摘要本發(fā)明涉及一種并行視頻編碼的方法及裝置。本發(fā)明主要包括主處理器及多個編碼器,所述的主處理器用于將視頻序列中的當(dāng)前幀固定分割成宏塊,按預(yù)定規(guī)則將所有宏塊分配給一個或多個條帶組;以及將當(dāng)前幀的條帶組按使多個編碼器之間處理負(fù)荷均衡原則,并依據(jù)光柵掃描的順序劃分為一個或多個子條帶組;并將劃分確定的當(dāng)前幀所有子條帶組和編碼配置參數(shù)分別傳送給多個編碼器,之后,由所述的多個編碼器對當(dāng)前幀的子條帶組并行進行編碼處理,分別輸出碼流及參數(shù);最后,將各編碼器輸出的碼流及參數(shù)匯聚,進一步完成條帶組、幀和序列的編碼,輸出整個序列碼流。因此,本發(fā)明的方法和裝置適用于實時高清視頻編碼。文檔編號H04N7/26GK101150719SQ20061011325公開日2008年3月26日申請日期2006年9月20日優(yōu)先權(quán)日2006年9月20日發(fā)明者孟新建申請人:華為技術(shù)有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1