用于視頻編碼的多編碼點(diǎn)混編流水方法及其裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及視頻編解碼領(lǐng)域,具體而言,涉及一種用于視頻編碼的多編碼點(diǎn)混編流水方法及其裝置。
【背景技術(shù)】
[0002]目前電子信息技術(shù)飛速發(fā)展,視頻的應(yīng)用非常廣泛,隨著圖像傳感器和集成電路技術(shù)的發(fā)展,視頻拍攝也由專業(yè)開(kāi)始向大眾快速擴(kuò)散,包括網(wǎng)絡(luò)視頻、網(wǎng)絡(luò)電視、有線數(shù)字電視、手機(jī)攝像等。在對(duì)這些視頻數(shù)據(jù)的處理過(guò)程中,視頻編解碼是不可或缺的重要步驟。目前主流的視頻編解碼標(biāo)準(zhǔn)是MPEG4-part2和H.264,以及2013年制定完成的H.265,這些標(biāo)準(zhǔn)都是基于塊的混合編碼框架。
[0003]已知地,視頻編碼的計(jì)算量非常大,普通的處理器由于計(jì)算能力和功耗的因素,并不適合用于視頻編碼。由于視頻編碼是基于塊的混合編碼,存在大量簡(jiǎn)單重復(fù)的操作,因此較為適合 DSP (Digital Signal Processor,數(shù)字信號(hào)處理器)和 ASIC (Applicat1nSpecific Integrated Circuit,專用集成電路)的并行執(zhí)行。
[0004]在視頻編碼中,圖像通常被分成連續(xù)的視頻編碼基本單元,如在MPEG4_part2和H.264及之前的視頻編碼標(biāo)準(zhǔn)中通常以宏塊作為編碼基本單元,在H.265視頻編碼標(biāo)準(zhǔn)中以CU(Coding Unit)為編碼基本單元。每個(gè)編碼基本單元均存在幀內(nèi)預(yù)測(cè)、幀間預(yù)測(cè)、運(yùn)動(dòng)預(yù)測(cè)、變換、量化、反量化、反變換、熵編碼,去塊濾波等子模塊,部分子模塊之間在執(zhí)行上存在依賴關(guān)系,需要順序執(zhí)行。
[0005]對(duì)于視頻編碼,目前大都采用流水技術(shù)。處理器的流水技術(shù)借鑒了工廠生產(chǎn)的流水線思想,把一項(xiàng)工作分成多個(gè)連續(xù)的工序,每一段只負(fù)責(zé)自己的工序,完成之后傳到下一個(gè)工序,例如在同一時(shí)間片內(nèi)則具有多個(gè)產(chǎn)品在不同的工序進(jìn)行加工。流水處理即把要處理的功能模塊分成可連續(xù)執(zhí)行的且消耗時(shí)間大體一致的子功能模塊,從而最大程度地利用硬件資源。
[0006]以目前的H.264視頻編解碼標(biāo)準(zhǔn)為例介紹下目前基于ASIC進(jìn)行視頻編碼的流水技術(shù)。由于宏塊編碼有模式判別模塊(幀間模式判別和幀內(nèi)模式判別),運(yùn)動(dòng)預(yù)測(cè)模塊、變換量化模塊(包含幀內(nèi)預(yù)測(cè)、變換、量化、反量化、反變換模塊、以及完成編碼重建)、熵編碼模塊,以及去塊濾波模塊,其宏塊編碼的具體編碼流程如圖1所示,其中,并行執(zhí)行的模塊表示兩個(gè)模塊在操作處理時(shí)可以不分先后。
[0007]可見(jiàn),宏塊編碼通常被分為如圖1所示的4個(gè)順序步驟,參考圖2所示,如果不采用流水技術(shù),則同一個(gè)時(shí)間片內(nèi)只有一個(gè)模塊在工作,以致編碼一個(gè)宏塊需要4個(gè)單位時(shí)間。相反地,如果采用流水技術(shù),則在同一時(shí)間片內(nèi)4個(gè)模塊都在工作,以致編碼一個(gè)宏塊只需要I個(gè)單位時(shí)間,從而可以提高宏塊編碼效率。例如專利文獻(xiàn)CN200810062856.6即公開(kāi)了一種用于視頻編碼的混合流水線裝置,其技術(shù)方案中,在同一個(gè)時(shí)間片內(nèi),預(yù)取數(shù)據(jù)器、模式選擇器、重建環(huán)路器和熵編碼器處理四個(gè)不同的宏塊的數(shù)據(jù),以此實(shí)現(xiàn)宏塊編碼的流水操作。
[0008]因此,對(duì)于目前基于ASIC的視頻編碼,大多采用流水的方式以提高編碼速度和效率。
[0009]在視頻編碼時(shí),視頻壓縮主要利用圖像的空域相關(guān)性、時(shí)域相關(guān)性和熵編碼,通常會(huì)造成當(dāng)前宏塊對(duì)已編碼相鄰宏塊存在依賴關(guān)系,譬如幀內(nèi)預(yù)測(cè)需用到相鄰宏塊的重建圖像,預(yù)測(cè)運(yùn)動(dòng)矢量需由相鄰宏塊來(lái)計(jì)算獲取。發(fā)明人發(fā)現(xiàn),由于當(dāng)前宏塊和已編碼宏塊之間存在依賴關(guān)系,以致當(dāng)前宏塊所需的信息需要依賴于前一個(gè)宏塊是否完成,這樣影響了宏塊編碼的流水速度,存在宏塊編碼的流水等待問(wèn)題。
[0010]為了解決宏塊依賴引起的流水等待問(wèn)題,目前的解決方法大都采用近似模擬的替代方法,譬如宏塊進(jìn)行幀內(nèi)模式判別需要用到相鄰宏塊以重建圖像,為了避免依賴,可以采用周?chē)陦K的原始像素來(lái)代替。由此可見(jiàn),目前解決因編碼塊依賴而引起的流水等待問(wèn)題大多采用近似計(jì)算來(lái)實(shí)現(xiàn),等真正生成碼流的時(shí)候再按照標(biāo)準(zhǔn)實(shí)現(xiàn),這樣帶來(lái)的問(wèn)題就是模式判別和運(yùn)動(dòng)搜索的準(zhǔn)確度降低,影響實(shí)際的壓縮效率。
【發(fā)明內(nèi)容】
[0011]為了解決現(xiàn)有技術(shù)中存在的宏塊依賴引起的流水等待問(wèn)題,提高編碼模式判別的準(zhǔn)確度,在同等碼率下提高視頻編碼的圖像質(zhì)量,本發(fā)明實(shí)施例的目的在于提供一種用于視頻編碼的多編碼點(diǎn)混編流水方法及其裝置。
[0012]本發(fā)明實(shí)施例采用以下技術(shù)方案實(shí)現(xiàn):
[0013]一種用于視頻編碼的多編碼點(diǎn)混編流水方法,包括:
[0014]將圖像劃分成至少兩個(gè)可并行編碼的子圖像;
[0015]對(duì)所述子圖像依據(jù)配置的流水編碼順序執(zhí)行圖像編碼基本單元的編碼,其中,所述流水編碼順序被配置為循環(huán)地依次從每個(gè)子圖像中提取一個(gè)未編碼圖像編碼基本單元。
[0016]優(yōu)選地,對(duì)所述子圖像依據(jù)配置的流水編碼順序執(zhí)行圖像編碼基本單元的編碼的策略是:
[0017]依次地對(duì)提取的第I個(gè)子圖像的第I個(gè)圖像編碼基本單元、第2個(gè)子圖像的第I個(gè)圖像編碼基本單元、第3個(gè)子圖像的第I個(gè)圖像編碼基本單元、…第η個(gè)子圖像的第I個(gè)圖像編碼基本單元執(zhí)行編碼;
[0018]依次地對(duì)提取的第I個(gè)子圖像的第2個(gè)圖像編碼基本單元、第2個(gè)子圖像的第2個(gè)圖像編碼基本單元、第3個(gè)子圖像的第2個(gè)圖像編碼基本單元、…第η個(gè)子圖像的第2個(gè)圖像編碼基本單元執(zhí)行編碼;
[0019]依此類(lèi)推,依次地對(duì)提取的第η個(gè)子圖像的第k個(gè)圖像編碼基本單元執(zhí)行編碼直至整幀圖像編碼完成;
[0020]其中,所述η和k均為大于或等于2的正整數(shù)。
[0021]一種用于視頻編碼的多編碼點(diǎn)混編流水裝置,包括:
[0022]劃分模塊,用于將圖像劃分成至少兩個(gè)可并行編碼的子圖像;
[0023]混編流水模塊,用于對(duì)所述子圖像依據(jù)配置的流水編碼順序執(zhí)行圖像編碼基本單元的編碼,其中,所述流水編碼順序被配置為循環(huán)地依次從每個(gè)子圖像中提取一個(gè)未編碼圖像編碼基本單元。
[0024]優(yōu)選地,混編流水模塊對(duì)所述子圖像依據(jù)配置的流水編碼順序執(zhí)行圖像編碼基本單兀的編碼的策略是:
[0025]依次地對(duì)提取的第I個(gè)子圖像的第I個(gè)圖像編碼基本單元、第2個(gè)子圖像的第I個(gè)圖像編碼基本單元、第3個(gè)子圖像的第I個(gè)圖像編碼基本單元、…第η個(gè)子圖像的第I個(gè)圖像編碼基本單元執(zhí)行編碼;
[0026]依次地對(duì)提取的第I個(gè)子圖像的第2個(gè)圖像編碼基本單元、第2個(gè)子圖像的第2個(gè)圖像編碼基本單元、第3個(gè)子圖像的第2個(gè)圖像編碼基本單元、…第η個(gè)子圖像的第2個(gè)圖像編碼基本單元執(zhí)行編碼;
[0027]依此類(lèi)推,依次地對(duì)提取的第η個(gè)子圖像的第k個(gè)圖像編碼基本單元執(zhí)行編碼直至整幀圖像編碼完成;
[0028]其中,所述η和k均為大于或等于2的正整數(shù)。
[0029]一種用于視頻編碼的多編碼點(diǎn)混編流水方法,包括:
[0030]將圖像劃分成至少兩個(gè)可并行編碼的子圖像;
[0031]將所述子圖像分組之后傳入至少兩個(gè)編碼塊容器;
[0032]對(duì)當(dāng)前編碼塊容器中的每個(gè)子圖像依據(jù)配置的流水編碼順序執(zhí)行圖像編碼基本單元的編碼,并在完成該當(dāng)前編碼塊容器的子圖像編碼處理之后,執(zhí)行對(duì)下一編碼塊容