一種視頻解碼的方法和視頻解碼器的制造方法
【專利摘要】本發(fā)明實(shí)施例公開了一種視頻解碼的方法,包括:將對視頻壓縮碼流進(jìn)行解碼后得到的變換單元和預(yù)測單元分別轉(zhuǎn)換成M×M的殘差塊和M×M的預(yù)測塊,其中,M=16、8或4,所述視頻壓縮碼流包括HEVC碼流、VP9碼流和AVS2.0碼流中的任意一種;根據(jù)所述殘差塊和所述預(yù)測塊得到重建圖像塊;對所述重建圖像塊進(jìn)行濾波得到解碼重建圖像。本發(fā)明實(shí)施例還公開了一種視頻解碼器。采用本發(fā)明,減少多協(xié)議視頻解碼器的模塊開發(fā),降低視頻解碼器的面積和功耗。
【專利說明】一種視頻解碼的方法和視頻解碼器
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及圖像處理領(lǐng)域,尤其涉及一種視頻解碼的方法和視頻解碼器。
【背景技術(shù)】
[0002]視頻壓縮技術(shù)廣泛應(yīng)用于互聯(lián)網(wǎng)、電視廣播、存儲(chǔ)媒體和通信等領(lǐng)域。自從1993年MPEG (Motion Pictures Experts Group,動(dòng)態(tài)圖像專家組)標(biāo)準(zhǔn)開始,經(jīng)過多年的繼承與發(fā)展,多種視頻壓縮格式大量并存。到目前為止,一個(gè)商用的視頻解碼器至少需要支持十多種視頻壓縮格式,例如 MPEG-1、MPEG-2、MPEG-4、H.263、H.264、H.265、Real8、Real9、VCl、AVSP2、VP8、VP9和DIVX等。這給視頻解碼器帶來了嚴(yán)重的挑戰(zhàn),尤其智能設(shè)備的興起,更是對硬件視頻解碼器的面積和功耗提出了苛刻的要求。
[0003]在2013 年以前的協(xié)議,如(MPEG-1、MPEG-2、MPEG-4、H.263、H.264、Real8、Real9、VCU AVSP2、VP8、VP9和DIVX等),都采用16X 16的宏塊作為基本像素單元對視頻圖像進(jìn)行分割與壓縮,宏塊內(nèi)部的分割與壓縮的方法在各個(gè)協(xié)議中不一樣。
[0004]但是2013年以后,出現(xiàn)了新的視頻壓縮協(xié)議,例如HEVC(High Efficiency VideoCoding,高效率視頻編碼)、VP9、AVS (Audio Video coding Standard,音視頻編碼標(biāo)準(zhǔn))2.0等,提出了新的圖像分割格式,其基本像素單元上出現(xiàn)了超過宏塊的大塊,也出現(xiàn)了小于宏塊的小塊,由此使設(shè)計(jì)視頻解碼器的復(fù)雜度和難度的增加。目前,對這種視頻解碼器通常會(huì)單獨(dú)設(shè)計(jì)多個(gè)支持新協(xié)議的解碼核心來解決問題,但是這種含多個(gè)獨(dú)立解碼核心的視頻解碼器的面積和功耗卻成倍增加,并延長了開發(fā)周期。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實(shí)施例所要解決的技術(shù)問題在于,提供一種視頻解碼的方法和視頻解碼器??山鉀Q現(xiàn)有技術(shù)中多協(xié)議視頻解碼器開發(fā)開發(fā)周期長以及芯片面積與功耗大的不足。
[0006]為了解決上述技術(shù)問題,本發(fā)明實(shí)施例第一方面提供了一種視頻解碼的方法,包括:
[0007]將對視頻壓縮碼流進(jìn)行解碼后得到的變換單元和預(yù)測單元分別轉(zhuǎn)換成MXM的殘差塊和MXM的預(yù)測塊,其中,M = 16、8或4,所述視頻壓縮碼流包括HEVC碼流、VP9碼流和AVS2.0碼流中的任意一種;
[0008]根據(jù)所述殘差塊和所述預(yù)測塊得到重建圖像塊;
[0009]對所述重建圖像塊進(jìn)行濾波得到解碼重建圖像
[0010]結(jié)合第一方面,在第一種可能的實(shí)現(xiàn)方式中,所述將對視頻壓縮碼流進(jìn)行解碼后得到的變換單元和預(yù)測單元分別轉(zhuǎn)換成MXM的殘差塊和MXM的預(yù)測塊的步驟之前,還包括:
[0011]將所述視頻壓縮碼流進(jìn)行熵解碼,解析出包括運(yùn)動(dòng)矢量和變換系數(shù)的語法元素;
[0012]對所述變換系數(shù)進(jìn)行反掃描、反量化和反變換后得到變換單元;
[0013]根據(jù)所述運(yùn)動(dòng)矢量和參考圖像進(jìn)行幀間運(yùn)動(dòng)補(bǔ)償或者根據(jù)幀內(nèi)預(yù)測圖像進(jìn)行幀內(nèi)運(yùn)動(dòng)補(bǔ)償后得到預(yù)測單元。
[0014]結(jié)合第一方面或第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,M = 16,所述將對視頻壓縮碼流進(jìn)行解碼后得到的變換單元和預(yù)測單元分別轉(zhuǎn)換成MXM的殘差塊和MXM的預(yù)測塊具體包括:
[0015]獲取待解碼的編碼樹塊中多個(gè)編碼單元,每個(gè)編碼單元的尺寸為2nX8X8,N = O、2、4或8 ;每個(gè)編碼單元包括至少一個(gè)預(yù)測單元或至少一個(gè)變換單元;
[0016]SN = 0,將所述編碼樹塊中的4個(gè)編碼單元組合成I個(gè)預(yù)測塊或殘差塊;
[0017]或
[0018]若N = 2,將所述編碼樹塊中每個(gè)編碼單元直接作為I個(gè)預(yù)測塊或殘差塊;
[0019]或
[0020]若N = 4,將所述編碼樹塊中每個(gè)編碼單元分割為4個(gè)預(yù)測塊或殘差塊;或
[0021]SN = 8,將所述編碼樹塊中每個(gè)編碼單元分割為16個(gè)預(yù)測塊或殘差塊。
[0022]結(jié)合第一方面的第二種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,所述將對視頻壓縮碼流進(jìn)行解碼后得到的變換單元和預(yù)測單元分別轉(zhuǎn)換成MXM的殘差塊和MXM的預(yù)測塊之后,還包括:
[0023]對所述預(yù)測塊進(jìn)行像素插值處理。
[0024]結(jié)合第一方面至第三種可能的實(shí)現(xiàn)方式中的任意一種,在第四種可能的實(shí)現(xiàn)方式中,所述對所述重建圖像塊進(jìn)行濾波得到解碼重建圖像具體包括:
[0025]對所述重建圖像塊進(jìn)行去方塊濾波得到解碼重建圖像。
[0026]相應(yīng)地,本發(fā)明實(shí)施例第二方面還提供了一種視頻解碼器,包括:
[0027]轉(zhuǎn)換模塊,用于將對視頻壓縮碼流進(jìn)行解碼后得到的變換單元和預(yù)測單元分別轉(zhuǎn)換成MXM的殘差塊和MXM的預(yù)測塊,其中M = 16、8或4,所述視頻壓縮碼流包括HEVC碼流、VP9碼流和AVS2.0碼流中的任意一種;
[0028]重構(gòu)模塊,用于根據(jù)所述殘差塊塊和所述預(yù)測塊得到重建圖像塊;
[0029]濾波模塊,用于對所述重建圖像塊進(jìn)行去方塊濾波得到解碼重建圖像。
[0030]結(jié)合第二方面,在第一種可能的實(shí)現(xiàn)方式中,還包括:
[0031]碼流解析模塊,用于將所述視頻壓縮碼流進(jìn)行熵解碼,解析出包括運(yùn)動(dòng)矢量和變換系數(shù)的語法元素;
[0032]反變換模塊,用于對所述變換系數(shù)進(jìn)行反掃描、反量化和反變換后得到變換單元;
[0033]預(yù)測模塊,用于根據(jù)所述運(yùn)動(dòng)矢量和參考圖像進(jìn)行幀間運(yùn)動(dòng)補(bǔ)償或者根據(jù)幀內(nèi)預(yù)測圖像進(jìn)行幀內(nèi)運(yùn)動(dòng)補(bǔ)償后得到預(yù)測單元。
[0034]結(jié)合第二方面或第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,M = 16,所述轉(zhuǎn)換模塊具體用于獲取待解碼的編碼樹塊中每個(gè)編碼單元的尺寸為2nX8X8,N = 0、2、4或8 ;每個(gè)編碼單元包括至少一個(gè)預(yù)測單元或至少一個(gè)變換單元;
[0035]SN = 0,將所述編碼樹塊中的4個(gè)編碼單元組合成I個(gè)預(yù)測塊或殘差塊;
[0036]或
[0037]若N = 2,將所述編碼樹塊中每個(gè)編碼單元直接作為I個(gè)預(yù)測塊或殘差塊;
[0038]或[0039]若N = 4,將所述編碼樹塊中每個(gè)編碼單元分割為4個(gè)預(yù)測塊或殘差塊;或
[0040]SN = 8,將所述編碼樹塊中每個(gè)編碼單元分割為16個(gè)預(yù)測塊或殘差塊。
[0041]結(jié)合第二方面至第三種可能的實(shí)現(xiàn)方式中的任意一種,在第四種可能的實(shí)現(xiàn)方式中,所述濾波模塊具體用于對所述重建圖像塊進(jìn)行去方塊濾波得到解碼重建圖像。
[0042]實(shí)施本發(fā)明實(shí)施例,具有如下有益效果:
[0043]通過對不同尺寸的預(yù)測單元和變換單元轉(zhuǎn)換為16X16、8X8或4X4的粒度,使得支持HEVC協(xié)議、VP9協(xié)議或AVS2.0協(xié)議的解碼核心的流水線粒度等于基于宏塊的解碼核心的流水線粒度,利用視頻解碼過程的共性,HEVC協(xié)議、VP9協(xié)議或AVS2.0的解碼核心能復(fù)用上一代解碼核心的部分模塊,減少了新的解碼核心的模塊開發(fā),有效降低了支持HEVC協(xié)議、VP9協(xié)議或AVS2.0協(xié)議的多協(xié)議視頻解碼器面積與功耗。
【專利附圖】
【附圖說明】
[0044]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0045]圖1是本發(fā)明第一實(shí)施例的一種視頻解碼的方法的流程示意圖;
[0046]圖2是圖1中一種對變換單元進(jìn)行轉(zhuǎn)換的示意圖;
[0047]圖3是圖1中另一種對變換單元進(jìn)行轉(zhuǎn)換的示意圖;
[0048]圖4是圖1中又一種對變換單元進(jìn)行轉(zhuǎn)換的示意圖;
[0049]圖5是圖1中一種對預(yù)測單元進(jìn)行轉(zhuǎn)換的示意圖;
[0050]圖6是圖1中另一種對預(yù)測單元進(jìn)行轉(zhuǎn)換的示意圖;
[0051]圖7是本發(fā)明第二實(shí)施例的一種視頻解碼的方法的流程示意圖;
[0052]圖8是本發(fā)明第一實(shí)施例的一種視頻解碼器的結(jié)構(gòu)示意圖;
[0053]圖9是本發(fā)明第二實(shí)施例的一種視頻解碼器的結(jié)構(gòu)示意圖;
[0054]圖10是本發(fā)明第三實(shí)施例的一種視頻解碼器的結(jié)構(gòu)示意圖;
[0055]圖11是本發(fā)明第四實(shí)施例的一種視頻解碼器的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0056]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0057]參見圖1,為本發(fā)明實(shí)施例的一種視頻解碼的方法,在本實(shí)施例中,所述方法包括:
[0058]S101、將對視頻壓縮碼流進(jìn)行解碼后得到的變換單元和預(yù)測單元分別轉(zhuǎn)換成MXM的殘差塊和MXM的預(yù)測塊,其中,M = 16、8或4。
[0059]具體的,在視頻編碼器側(cè),視頻編碼器對視頻進(jìn)行HEVC協(xié)議、VP9協(xié)議或AVS2.0協(xié)議的壓縮處理時(shí)是以CTB(Code Tree Block,編碼樹塊)為基本分割單元,CTB為四叉樹結(jié)構(gòu),每個(gè)CTB中包含I個(gè)或4個(gè)⑶(Code Unit,編碼單元),⑶劃分的大小不固定,每個(gè)⑶中有O個(gè)、I個(gè)或4個(gè)PU (Prediction Unit,預(yù)測單元)或者每個(gè)⑶中有一個(gè)或4個(gè)TU(Transform Unit,變換單元)。CU 的尺寸為 8X8、16X 16、32X32 和 64X64 四種形式。CU、PU和TU的更多定義可以參照現(xiàn)有視頻編碼技術(shù)協(xié)議的描述,本實(shí)施例對此不作贅述。
[0060]視頻解碼器從NAL (Network Abstraction Layer,網(wǎng)絡(luò)抽象層)接收視頻壓縮碼流并對視頻壓縮碼流進(jìn)行解析后分別得到預(yù)測單元和/或變換單元,視頻壓縮碼流包括視頻壓縮碼流、VP9碼流和AVS2.0碼流中的任意一種。視頻解碼器包括兩條并行的處理通道,一條為變換通道,另一條為預(yù)測通道,變換單元中包括殘差信息,預(yù)測單元中包括預(yù)測信息,解析得到的變換單元在變換通道上進(jìn)行處理,預(yù)測單元在預(yù)測通道上進(jìn)行處理。利用視頻壓縮碼流中CTB的尺寸,視頻解碼器在變換通道上對變換單元進(jìn)行拆分和組合操作,分別將變換通道上的變換單元轉(zhuǎn)換為MXM大小的殘差塊,預(yù)測通道上的預(yù)測單元轉(zhuǎn)換為MXM大小的預(yù)測塊。
[0061]下面以M = 16為示來說明視頻解碼器如何在變換通道和預(yù)測通道上對變換單元及預(yù)測單元進(jìn)行變換。
[0062]圖2顯示了一個(gè)在變換通道上對⑶進(jìn)行重組的示例。視頻解碼器解析視頻壓縮碼流得到待解碼的CTB中CU的尺寸為8X8,從緩存中讀出待解碼的CTB包含的4個(gè)CU進(jìn)行轉(zhuǎn)換,4個(gè)⑶分別標(biāo)識(shí)為⑶O、⑶1、⑶2和⑶3,由4個(gè)8 X 8的⑶組成一個(gè)16 X 16的殘差塊ΜΒ0。其中CUO中包含4個(gè)TU,分別為TU00、TU01、TU02和TU03 ;CU1中包括I個(gè)TU單元,該TU標(biāo)識(shí)為TUlO ;CU2中包括I個(gè)TU,該TU標(biāo)識(shí)為TU20 ;CU3中包括4個(gè)TU,4個(gè)TU分別標(biāo)識(shí)為 TU30、TU31、TU32 和 TU33。
[0063]圖3顯示了 一個(gè)在變換通道上對⑶拆分的示例。視頻解碼器解析視頻壓縮碼流得到待解碼CTB中⑶的尺寸為32 X 32,其中⑶包括I個(gè)TU,該TU標(biāo)識(shí)為TU0,將32 X 32的CU拆分為4個(gè)16X 16的殘差塊,分別為ΜΒ0、MBU MB2和MB3。經(jīng)過拆分后,MBO由TUO的1/4部分TU00組成,MBl由TUO的1/4部分TUOl組成,MB2由TUO的1/4部分TU02組成,MB3由TUO的1/4部分TU03組成。
[0064]圖4顯示一個(gè)在變換通道上對⑶進(jìn)行拆分的示例。視頻解碼器解析視頻壓縮碼流得到待解碼CTB中CU的尺寸為32 X 32,其中CU包括31個(gè)TU,分別標(biāo)識(shí)為:TU00_TU09、TUlO-TUl 15、TU20-TU22 和 TU30jf 32X32 的 CU 拆分為 4 個(gè) 16 X 16 的殘差塊,分別為 ΜΒ0、MBU MB2 和 MB3。經(jīng)過拆分后,MBO 由 TU00-TU09 組成,MBl 由 TU10-TU115 組成,MB2 由TU20-TU22 組成,MB3 由 TU30 組成。
[0065]圖5顯示一個(gè)在預(yù)測通道上對⑶重組的示例。視頻解碼器解析視頻壓縮碼流得到待解碼的CTB中⑶的尺寸為8X8,從緩存中讀出待解碼的CTB包含的4個(gè)⑶進(jìn)行轉(zhuǎn)換,4個(gè)CU分別標(biāo)識(shí)為CU0、CUl、CU2和CU3,由4個(gè)8 X 8的CU組成一個(gè)16 X 16的預(yù)測塊MBO,其中⑶O包括2個(gè)PU,標(biāo)識(shí)為I3UOO和PUOl KUl包括I個(gè)PU單元,標(biāo)識(shí)為I3UlO ;OT2包括I個(gè)I3U,標(biāo)識(shí)為ro20 ;CU3包括2個(gè)PU,標(biāo)識(shí)為ro30和PU31。
[0066]圖6顯示了 一個(gè)在預(yù)測通道上對⑶拆分的示例。視頻解碼器解析視頻壓縮碼流得到待解碼CTB中⑶的尺寸為32X32,其中⑶包括2個(gè)PU,分別標(biāo)識(shí)為PUO和PUlJf32 X 32的CU拆分為4個(gè)16 X 16的預(yù)測塊,分別為MBO、MBl、MB2和MB3。經(jīng)過拆分后,MBO由PUO的1/3部分PU00組成;MB1由PUO的1/6部分PUOl和PUl的1/2部分PUlO組成;MB2由PUO的1/3部分PU02組成;MB3由PUO的1/6部分PU03和PUl的1/2部分PUll組成。
[0067]可以理解的是,若M = 8或4時(shí),視頻解碼器可以采用上述的拆分或重組的方法可以將編碼單元或預(yù)測單元轉(zhuǎn)換成MXM的粒度。
[0068]通過對不同尺寸的預(yù)測單元和變換單元轉(zhuǎn)換為16X16、8X8或4X4的粒度,使得支持HEVC協(xié)議、VP9協(xié)議或AVS2.0協(xié)議的解碼核心的流水線粒度等于基于宏塊的解碼核心的流水線粒度,利用視頻解碼過程的共性,HEVC協(xié)議、VP9協(xié)議或AVS2.0的解碼核心能復(fù)用上一代解碼核心的部分模塊,減少了新的解碼核心的模塊開發(fā),有效降低了支持HEVC協(xié)議、VP9協(xié)議或AVS2.0協(xié)議的多協(xié)議視頻解碼器面積與功耗。
[0069]S102、根據(jù)所述殘差塊和所述預(yù)測塊得到重建圖像塊。
[0070]具體的,將殘差塊和預(yù)測塊加權(quán)后得到重建圖像塊。
[0071]S103、對所述重建圖像塊進(jìn)行濾波得到解碼重建圖像。
[0072]具體的,對重建圖像塊進(jìn)行去方塊濾波或自適應(yīng)濾波等濾波處理后得到解碼重建圖像。
[0073]參見圖7,為本發(fā)明實(shí)施例的一種視頻解碼的方法的另一流程示意圖,在本實(shí)施例中,所述方法包括:
[0074]S201、將視頻壓縮碼流進(jìn)行熵解碼,解析出包括運(yùn)動(dòng)矢量和變換系數(shù)的語法元素。
[0075]具體的,視頻解碼器從NAL中接收視頻壓縮碼流,解析出序列參數(shù)集、圖像參數(shù)集等參數(shù)集和壓縮圖像數(shù)據(jù),然后進(jìn)行熵解碼后得到運(yùn)動(dòng)矢量和變換系數(shù)等語法元素。
[0076]S202、對所述變換系數(shù)進(jìn)行反掃描、反量化和反變換后得到變換單元。
[0077]具體的,經(jīng)過S201得到的變換系數(shù)為一維數(shù)據(jù),視頻解碼器通過反掃描、反量化和反變換處理將一維數(shù)據(jù)(變換系數(shù))轉(zhuǎn)換成二維數(shù)組或矩陣,即變換單元,變換單元中包括對應(yīng)塊的亮度和/或色度殘差信息。
[0078]S203、根據(jù)所述運(yùn)動(dòng)矢量和參考圖像進(jìn)行幀間運(yùn)動(dòng)補(bǔ)償或者根據(jù)幀內(nèi)預(yù)測圖像進(jìn)行幀內(nèi)運(yùn)動(dòng)補(bǔ)償后得到預(yù)測單元。
[0079]具體的,根據(jù)運(yùn)動(dòng)矢量從相應(yīng)的參考圖像中得到預(yù)測單元,此時(shí)預(yù)測單元中包括幀間預(yù)測信息,或者根據(jù)幀內(nèi)預(yù)測圖像進(jìn)行幀內(nèi)運(yùn)動(dòng)補(bǔ)償后得到預(yù)測單元,此時(shí)預(yù)測單元中包括幀內(nèi)預(yù)測信息。
[0080]S204、將對視頻壓縮碼流進(jìn)行解碼后得到的變換單元和預(yù)測單元分別轉(zhuǎn)換成MXM的殘差塊和MXM的預(yù)測塊,其中M = 16、8或4。
[0081]具體的,在HEVC協(xié)議中,編碼單元的尺寸規(guī)定有4種,表示為2NX8X8,其中,N =
0、2、4或8 ;每個(gè)編碼單元包括至少一個(gè)預(yù)測單元或至少一個(gè)變換單元。下面分別以M =16、8和4為例對編碼單元中的變換單元或預(yù)測單元進(jìn)行轉(zhuǎn)換來說明:
[0082]以M = 16為例進(jìn)行轉(zhuǎn)換,若N = 0,將所述編碼樹塊中的4個(gè)編碼單元組合成I個(gè)預(yù)測塊或殘差塊;或若N = 2,將所述編碼樹塊中每個(gè)編碼單元直接作為I個(gè)預(yù)測塊或殘差塊;或若N = 4,將所述編碼樹塊中每個(gè)編碼單元分割為4個(gè)預(yù)測塊或殘差塊;或若N = 8,將所述編碼樹塊中每個(gè)編碼單元分割為16個(gè)預(yù)測塊或殘差塊。
[0083]&Μ = 8為例進(jìn)行轉(zhuǎn)換,若N = 0,將所述編碼樹塊中的每個(gè)編碼單元直接作為I個(gè)預(yù)測塊或殘差塊;或若N = 2,將所述編碼樹塊中每個(gè)編碼單元分割為4個(gè)預(yù)測塊或殘差塊;或若N = 4,將所述編碼樹塊中每個(gè)編碼單元分割為16個(gè)預(yù)測塊或殘差塊;或若N = 8,將所述編碼樹塊中每個(gè)編碼單元分割為64個(gè)預(yù)測塊或殘差塊。
[0084]以M = 4為例進(jìn)行轉(zhuǎn)換,若N = 0,將所述編碼樹塊中的每個(gè)編碼單元分割為4個(gè)預(yù)測塊或殘差塊;若N = 2,將所述編碼樹塊中每個(gè)編碼單元分割為8個(gè)預(yù)測塊或殘差塊;若N = 4,將所述編碼樹塊中每個(gè)編碼單元分割為64個(gè)預(yù)測塊或殘差塊;若N = 8,將所述編碼樹塊中每個(gè)編碼單元分割為256個(gè)預(yù)測塊或殘差塊。
[0085]S205、對預(yù)測塊進(jìn)行像素插值處理。
[0086]具體的,插值點(diǎn)由相鄰像素點(diǎn)來決定,根據(jù)協(xié)議標(biāo)準(zhǔn)用濾波器來完成插值。
[0087]S206、根據(jù)殘差塊和預(yù)測塊得到重建圖像塊。
[0088]具體的,對包括殘差信息的殘差塊和包括預(yù)測信息的預(yù)測塊進(jìn)行加權(quán)處理得到重建圖像塊。
[0089]S207、對重建圖像塊進(jìn)行濾波(例如去塊效應(yīng)濾波或自適應(yīng)補(bǔ)償濾波等)得到解
碼重建塊。
[0090]通過對不同尺寸的預(yù)測單元和變換單元轉(zhuǎn)換為16X16、8X8或4X4的粒度,使得支持HEVC協(xié)議、VP9協(xié)議或AVS2.0協(xié)議的解碼核心的流水線粒度等于基于宏塊的解碼核心的流水線粒度,利用視頻解碼過程的共性,HEVC協(xié)議、VP9協(xié)議或AVS2.0的解碼核心能復(fù)用基于宏塊的解碼核心的部分模塊,減少了新的解碼核心的模塊開發(fā),有效降低了支持HEVC協(xié)議、VP9協(xié)議或AVS2.0協(xié)議的多協(xié)議視頻解碼器面積與功耗。
[0091]參見圖8,為本發(fā)明實(shí)施例的一種視頻解碼器的結(jié)構(gòu)示意圖,在本實(shí)施例中,所述視頻解碼器包括轉(zhuǎn)換模塊10、重構(gòu)模塊11和濾波模塊12。
[0092]轉(zhuǎn)換模塊10,用于將對視頻壓縮碼流進(jìn)行解碼后得到的變換單元和預(yù)測單元分別轉(zhuǎn)換成MXM的殘差塊和MXM的預(yù)測塊,其中,M = 16、8或4。
[0093]具體的,在視頻編碼器側(cè),視頻編碼器對視頻進(jìn)行HEVC壓縮處理是以CTB (CodeTree Block,編碼樹塊)為基本分割單元,CTB為四叉樹結(jié)構(gòu),每個(gè)CTB中包含I個(gè)或4個(gè)⑶(Code Unit,編碼單元),⑶劃分的大小不固定,每個(gè)⑶中有O個(gè)、I個(gè)或4個(gè)PU (Prediction Unit,預(yù)測單兀)或每個(gè)CU中有一個(gè)或4個(gè)TU (Transform Unit,變換單元)。CU的尺寸為8X8、16X16、32X32和64X64四種形式。
[0094]視頻解碼器從NAL接收視頻壓縮碼流并對視頻壓縮碼流進(jìn)行解析后分別得到變換單元和預(yù)測單元,視頻解碼器包括兩條并行的處理通道,一條為變換通道,另一條為預(yù)測通道,變換單元中包括殘差信息,預(yù)測單元中包括預(yù)測信息,解析得到的變換單元在變換通道上進(jìn)行處理,預(yù)測單元在預(yù)測通道上進(jìn)行處理。利用視頻壓縮碼流中CTB的尺寸,轉(zhuǎn)換模塊10在變換通道上對變換單元進(jìn)行拆分和組合操作,分別將變換通道上的變換單元轉(zhuǎn)換為MXM大小的殘差塊,預(yù)測單元上的預(yù)測單元轉(zhuǎn)換為MXM大小的預(yù)測塊。
[0095]重構(gòu)模塊11,用于根據(jù)所述殘差塊塊和所述預(yù)測塊得到重建圖像塊。
[0096]濾波模塊12,用于對所述重建圖像塊進(jìn)行濾波(去塊效應(yīng)濾波、自適應(yīng)補(bǔ)償?shù)?得到解碼重建圖像。
[0097]本發(fā)明實(shí)施例和方法實(shí)施例一屬于同一構(gòu)思,具體過程請參照方法實(shí)施例一的描述,此處不再贅述。
[0098]進(jìn)一步的,參見圖9,為本發(fā)明實(shí)施例的一種視頻解碼器的結(jié)構(gòu)示意圖,在本實(shí)施例中,所述視頻解碼器除包括轉(zhuǎn)換模塊10、重構(gòu)模塊11和濾波模塊12之外,還包括碼流解析模塊13、反變換模塊14、預(yù)測模塊15和插值模塊16。
[0099]碼流解析模塊13,用于將視頻壓縮碼流進(jìn)行熵解碼,解析出包括模式信息、運(yùn)動(dòng)矢量和變換系數(shù)等語法元素。
[0100]反變換模塊14,用于對所述變換系數(shù)進(jìn)行反掃描、反量化和反變換后得到變換單元;
[0101]預(yù)測模塊15,用于根據(jù)所述運(yùn)動(dòng)矢量和參考圖像進(jìn)行幀間運(yùn)動(dòng)補(bǔ)償或者根據(jù)幀內(nèi)預(yù)測圖像進(jìn)行幀內(nèi)運(yùn)動(dòng)補(bǔ)償后得到預(yù)測單元。
[0102]插值模塊16,用于對所述預(yù)測塊進(jìn)行插值處理,并將插值處理后的預(yù)測塊傳送至所述重構(gòu)模塊。
[0103]可選的,M = 16,轉(zhuǎn)換模塊用于獲取待解碼的編碼樹塊中每個(gè)編碼單元的尺寸為2nX8X8, N = 0、2、4或8 ;每個(gè)編碼單元包括至少一個(gè)預(yù)測單元或至少一個(gè)變換單元;
[0104]若N = 0,將所述編碼樹塊中的4個(gè)編碼單元組合成I個(gè)預(yù)測塊或殘差塊;
[0105]或
[0106]若N = 2,將所述編碼樹塊中每個(gè)編碼單元直接作為I個(gè)預(yù)測塊或殘差塊;
[0107]或
[0108]若N = 4,將所述編碼樹塊中每個(gè)編碼單元分割為4個(gè)預(yù)測塊或殘差塊;或
[0109]SN = 8,將所述編碼樹塊中每個(gè)編碼單元分割為16個(gè)預(yù)測塊或殘差塊。
[0110]本發(fā)明實(shí)施例和方法實(shí)施例二屬于同一構(gòu)思,具體過程請參照方法實(shí)施例一的描述,此處不再贅述。
[0111]參見圖10,為本發(fā)明實(shí)施例的一種多協(xié)議視頻解碼器的結(jié)構(gòu)示意圖,在本實(shí)施例中,所述視頻解碼器支持HEVC協(xié)議和H.264協(xié)議,該多協(xié)議視頻解碼器包括兩個(gè)解碼核心,
H.264解碼核心和HEVC解碼核心,H.264解碼核心包括碼流解析模塊23、反變換模塊24、預(yù)測模塊25、插值模塊26、重構(gòu)模塊21和濾波模塊22,HEVC解碼核心包括碼流解析模塊33、反變換模塊34、預(yù)測模塊35、轉(zhuǎn)換模塊30、插值模塊26、重構(gòu)模塊21和濾波模塊22,頂層解析模塊37識(shí)別視頻壓縮碼流的格式,若為H.264碼流,則送入H.264解碼核心進(jìn)行視頻解碼,H.264解碼核心中分別在變換通道和預(yù)測通道以H.264協(xié)議中的方法進(jìn)行預(yù)測和變換處理,預(yù)測或變換處理后得到16 X 16的宏塊。若為HEVC碼流,則送入HEVC解碼核心進(jìn)行解碼,HEVC解碼核心在預(yù)測通道上將得到的預(yù)測單元轉(zhuǎn)換成MXM的預(yù)測塊,同時(shí)在變換通道上將得到的變換單元轉(zhuǎn)換成MXM的殘差塊,經(jīng)過上述流水線粒度的轉(zhuǎn)換后,HEVC解碼核心可復(fù)用H.264解碼核心的插值模塊26、重構(gòu)模塊21和濾波模塊22。同樣的,VP9解碼核心和AVS2.0解碼核心也可以復(fù)用H.264解碼核心的插值模塊26、重構(gòu)模塊21和濾波模塊22,這樣在多協(xié)議視頻解碼器中減少部分模塊的開發(fā),降低了多協(xié)議視頻解碼器的芯片面積與功耗,減少了開發(fā)周期。
[0112]上述視頻解碼器可以用集成電路制作工藝集成在一個(gè)集成電路襯底上。
[0113]相應(yīng)地,參見圖11,本發(fā)明第四實(shí)施還提供一種視頻解碼器,在本實(shí)施中,硬盤管理裝置I包括處理器61、存儲(chǔ)器62和通信接口 63,通信接口 63用于與外部設(shè)備進(jìn)行通信,解碼器I中的處理器61的數(shù)量可以是一個(gè)或多個(gè),圖11以一個(gè)處理器為例。本發(fā)明的一些實(shí)施例中,處理器61、存儲(chǔ)器62和通信接口 63可通過總線或其他方式連接,圖11中以總線連接為例。
[0114]其中,存儲(chǔ)器62中存儲(chǔ)一組程序代碼,且處理器61用于調(diào)用存儲(chǔ)器62中存儲(chǔ)的程序代碼,用于執(zhí)行以下操作:
[0115]將對視頻壓縮碼流進(jìn)行解碼后得到的變換單元和預(yù)測單元分別轉(zhuǎn)換成MXM的殘差塊和MXM的預(yù)測塊,其中,M = 16、8或4,所述視頻壓縮碼流包括高效率視頻編碼HEVC碼流、VP9碼流和音視頻編碼標(biāo)準(zhǔn)AVS2.0碼流中的任意一種;
[0116]根據(jù)所述殘差塊和所述預(yù)測塊得到重建圖像塊;
[0117]對所述重建圖像塊進(jìn)行濾波得到解碼重建圖像。
[0118]在本發(fā)明的實(shí)施例中,所述處理器61還用于執(zhí)行:將所述視頻壓縮碼流進(jìn)行熵解碼,解析出包括運(yùn)動(dòng)矢量和變換系數(shù)的語法元素;
[0119]對所述變換系數(shù)進(jìn)行反掃描、反量化和反變換后得到變換單元;
[0120]根據(jù)所述運(yùn)動(dòng)矢量和參考圖像進(jìn)行幀間運(yùn)動(dòng)補(bǔ)償或者根據(jù)幀內(nèi)預(yù)測圖像進(jìn)行幀內(nèi)運(yùn)動(dòng)補(bǔ)償后得到預(yù)測單元。
[0121]在本發(fā)明的一些實(shí)施例中,M = 16,所述處理器61執(zhí)行所述將對視頻壓縮碼流進(jìn)行解碼后得到的變換單元和預(yù)測單元分別轉(zhuǎn)換成MXM的殘差塊和MXM的預(yù)測塊具體包括:
[0122]獲取待解碼的編碼樹塊中多個(gè)編碼單元,每個(gè)編碼單元的尺寸為2nX8X8,N = O、
2、4或8 ;每個(gè)編碼單元包括至少一個(gè)預(yù)測單元或至少一個(gè)變換單元;
[0123]若N = 0,將所述編碼樹塊中的4個(gè)編碼單元組合成I個(gè)所述預(yù)測塊或所述殘差塊;或
[0124]若N = 2,將所述編碼樹塊中每個(gè)編碼單元直接作為I個(gè)所述預(yù)測塊或所述殘差塊;或
[0125]若N = 4,將所述編碼樹塊中每個(gè)編碼單元分割為4個(gè)所述預(yù)測塊或所述殘差塊;或
[0126]若N = 8,將所述編碼樹塊中每個(gè)編碼單元分割為16個(gè)所述預(yù)測塊或所述殘差塊。
[0127]在本發(fā)明的一些實(shí)施例中,處理器61還用于執(zhí)行:對所述預(yù)測塊進(jìn)行像素插值處理。
[0128]在本發(fā)明的一些實(shí)施例中,處理器61執(zhí)行所述對所述重建圖像塊進(jìn)行濾波得到解碼重建圖像具體包括:
[0129]對所述重建圖像塊進(jìn)行去方塊濾波得到解碼重建圖像。
[0130]實(shí)施本發(fā)明的實(shí)施例,通過對不同尺寸的預(yù)測單元和變換單元轉(zhuǎn)換為16X16、8 X 8或4 X 4的粒度,使得支持HEVC協(xié)議、VP9協(xié)議或AVS2.0協(xié)議的解碼核心的流水線粒度等于基于宏塊的解碼核心的流水線粒度,利用視頻解碼過程的共性,HEVC協(xié)議、VP9協(xié)議或AVS2.0的解碼核心能復(fù)用基于宏塊的解碼核心的部分模塊,減少了新的解碼核心的模塊開發(fā),有效降低了支持HEVC協(xié)議、VP9協(xié)議或AVS2.0協(xié)議的多協(xié)議視頻解碼器面積與功耗。
[0131]本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以通過計(jì)算機(jī)程序來指令相關(guān)的硬件來完成,所述的程序可存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲(chǔ)介質(zhì)可為磁碟、光盤、只讀存儲(chǔ)記憶體(Read-Only Memory, ROM)或隨機(jī)存儲(chǔ)記憶體(RandomAccessMemory, RAM)等。
[0132] 以上所揭露的僅為本發(fā)明一種較佳實(shí)施例而已,當(dāng)然不能以此來限定本發(fā)明之權(quán)利范圍,本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例的全部或部分流程,并依本發(fā)明權(quán)利要求所作的等同變化,仍屬于發(fā)明所涵蓋的范圍。
【權(quán)利要求】
1.一種視頻解碼的方法,其特征在于,包括: 將對視頻壓縮碼流進(jìn)行解碼后得到的變換單元和預(yù)測單元分別轉(zhuǎn)換成MXM的殘差塊和MXM的預(yù)測塊,其中,M = 16、8或4,所述視頻壓縮碼流包括高效率視頻編碼HEVC碼流、VP9碼流和音視頻編碼標(biāo)準(zhǔn)AVS2.0碼流中的任意一種; 根據(jù)所述殘差塊和所述預(yù)測塊得到重建圖像塊; 對所述重建圖像塊進(jìn)行濾波得到解碼重建圖像。
2.如權(quán)利要求1所述的方法,其特征在于,所述將對視頻壓縮碼流進(jìn)行解碼后得到的變換單元和預(yù)測單元分別轉(zhuǎn)換成MXM的殘差塊和MXM的預(yù)測塊的步驟之前,還包括: 將所述視頻壓縮碼流進(jìn)行熵解碼,解析出包括運(yùn)動(dòng)矢量和變換系數(shù)的語法元素; 對所述變換系數(shù)進(jìn)行反掃描、反量化和反變換后得到變換單元; 根據(jù)所述運(yùn)動(dòng)矢量和參考圖像進(jìn)行幀間運(yùn)動(dòng)補(bǔ)償或者根據(jù)幀內(nèi)預(yù)測圖像進(jìn)行幀內(nèi)運(yùn)動(dòng)補(bǔ)償后得到預(yù)測單元。
3.如權(quán)利要求1或2所述的方法,其特征在于,M= 16,所述將對視頻壓縮碼流進(jìn)行解碼后得到的變換單元和預(yù)測單元分別轉(zhuǎn)換成MXM的殘差塊和MXM的預(yù)測塊具體包括: 獲取待解碼的編碼樹塊中多個(gè)編碼單元,每個(gè)編碼單元的尺寸為2nX8X8,N = 0、2、4或8 ;每個(gè)編碼單元包括至少一個(gè)預(yù)測單元或至少一個(gè)變換單元; SN = O,將所述編碼樹塊中的4個(gè)編碼單元組合成I個(gè)所述預(yù)測塊或所述殘差塊;或 若N = 2,將所述編碼樹塊中每個(gè)編碼單元直接作為I個(gè)所述預(yù)測塊或所述殘差塊;或 若N = 4,將所述編碼樹塊中每個(gè)編碼單元分割為4個(gè)所述預(yù)測塊或所述殘差塊;或 若N = 8,將所述編碼樹塊中每個(gè)編碼單元分割為16個(gè)所述預(yù)測塊或所述殘差塊。
4.如權(quán)利要求3所述的方法,其特征在于,所述將對視頻壓縮碼流進(jìn)行解碼后得到的變換單元和預(yù)測單元分別轉(zhuǎn)換成MXM的殘差塊和MXM的預(yù)測塊之后,還包括: 對所述預(yù)測塊進(jìn)行像素插值處理。
5.如權(quán)利要求1-4任意一項(xiàng)所述的方法,其特征在于,所述對所述重建圖像塊進(jìn)行濾波得到解碼重建圖像具體包括: 對所述重建圖像塊進(jìn)行去方塊濾波得到解碼重建圖像。
6.一種視頻解碼器,其特征在于,包括: 轉(zhuǎn)換模塊,用于將對視頻壓縮碼流進(jìn)行解碼后得到的變換單元和預(yù)測單元分別轉(zhuǎn)換成MXM的殘差塊和MXM的預(yù)測塊,其中M = 16、8或4,所述視頻壓縮碼流包括HEVC碼流、VP9碼流和AVS2.0碼流中的任意一種; 重構(gòu)模塊,用于根據(jù)所述殘差塊塊和所述預(yù)測塊得到重建圖像塊; 濾波模塊,用于對所述重建圖像塊進(jìn)行去方塊濾波得到解碼重建圖像。
7.如權(quán)利要求6所述的視頻解碼器,其特征在于,還包括: 碼流解析模塊,用于將所述視頻壓縮碼流進(jìn)行熵解碼,解析出包括運(yùn)動(dòng)矢量和變換系數(shù)的語法元素; 反變換模塊,用于對所述變換系數(shù)進(jìn)行反掃描、反量化和反變換后得到變換單元; 預(yù)測模塊,用于根據(jù)所述運(yùn)動(dòng)矢量和參考圖像進(jìn)行幀間運(yùn)動(dòng)補(bǔ)償或者根據(jù)幀內(nèi)預(yù)測圖像進(jìn)行幀內(nèi)運(yùn)動(dòng)補(bǔ)償后得到預(yù)測單元。
8.如權(quán)利要求6或7所述的視頻解碼器,其特征在于,M= 16,所述轉(zhuǎn)換模塊具體用于獲取待解碼的編碼樹塊中多個(gè)編碼單元,每個(gè)編碼單元的尺寸為2nX8X8,N = 0、2、4或8 ;每個(gè)編碼單元包括至少一個(gè)預(yù)測單元或至少一個(gè)變換單元; SN = O,將所述編碼樹塊中的4個(gè)編碼單元組合成I個(gè)所述預(yù)測塊或所述殘差塊;或 若N = 2,將所述編碼樹塊中每個(gè)編碼單元直接作為I個(gè)所述預(yù)測塊或所述殘差塊;或 若N = 4,將所述編碼樹塊中每個(gè)編碼單元分割為4個(gè)所述預(yù)測塊或所述殘差塊;或 若N = 8,將所述編碼樹塊中每個(gè)編碼單元分割為16個(gè)所述預(yù)測塊或所述殘差塊。
9.如權(quán)利要求8所述的視頻解碼器,其特征在于,還包括: 插值模塊,用于對所述預(yù)測塊進(jìn)行像素插值處理,并將插值處理后的預(yù)測塊傳送至所述重構(gòu)模塊。
10.如權(quán)利要 求6-9任意一項(xiàng)所述的視頻解碼器,其特征在于,所述濾波模塊用于對所述重建圖像塊進(jìn)行去方塊濾波得到解碼重建圖像。
【文檔編號】H04N19/176GK103997650SQ201410240979
【公開日】2014年8月20日 申請日期:2014年5月30日 優(yōu)先權(quán)日:2014年5月30日
【發(fā)明者】張志明, 禹志祥, 趙日洋 申請人:華為技術(shù)有限公司