一種快速離散余弦反變換的方法和終端的制作方法
【專利摘要】本發(fā)明實(shí)施例公開了一種快速離散余弦反變換的方法和終端,用于利用非零像素點(diǎn)的排列特點(diǎn)進(jìn)行優(yōu)化,顯著減少IDCT變換的乘法和加法次數(shù),提升運(yùn)算性能。本發(fā)明實(shí)施例方法包括:終端先檢測(cè)出表示宏塊中非零像素的排列特點(diǎn)的宏塊類別,再匹配該宏塊類別對(duì)應(yīng)的優(yōu)化算法,該優(yōu)化算法刪除了宏塊類別對(duì)應(yīng)的零像素點(diǎn)進(jìn)行的運(yùn)算,然后終端按照該對(duì)應(yīng)的優(yōu)化算法對(duì)該宏塊進(jìn)行IDCT變換。
【專利說明】一種快速離散余弦反變換的方法和終端
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及編解碼領(lǐng)域,尤其涉及一種快速離散余弦反變換的方法和終端。
【背景技術(shù)】
[0002]變換編碼是現(xiàn)代混合視頻編碼技術(shù)的一個(gè)重要環(huán)節(jié),在編碼端采用離散余弦變換DCT將圖像宏塊從空間域轉(zhuǎn)換到變換域,在解碼端通過離散余弦反變換IDCT將圖像宏塊從變換域還原到空間域,以此起到變換編碼的壓縮和解壓縮作用。這種變換、反變換的技術(shù)已經(jīng)應(yīng)用在未來主流編解碼方案H.265中。由于DCT/IDCT計(jì)算復(fù)雜,在編解碼的過程中往往會(huì)消耗大量的計(jì)算性能。因?yàn)榻獯a端計(jì)算性能往往要弱與編碼端,因此IDCT變換的優(yōu)化就具有更大的意義。特別是在當(dāng)前移動(dòng)互聯(lián)網(wǎng)迅速發(fā)展的前提下,手機(jī)終端往往需要承擔(dān)視頻解碼的任務(wù)。IDCT作為視頻解碼的關(guān)鍵技術(shù)之一,性能的提升直接影響到了用戶體驗(yàn)。
[0003]現(xiàn)代編解碼方案中廣泛應(yīng)用的IDCT快速算法是蝶形算法,在H.265的官方參考模型以及ffmpeg開源框架的H.265解碼器中,使用的都是這種算法。
[0004]由于H.265編解碼技術(shù)的特點(diǎn),在解碼端做IDCT變換的宏塊包含大量的零像素點(diǎn),現(xiàn)有的蝶形算法中,即使宏塊只有一個(gè)非零像素點(diǎn),也需要對(duì)整個(gè)塊進(jìn)行計(jì)算,這樣使得很多零像素點(diǎn)做了冗余的乘法和加法運(yùn)算,導(dǎo)致運(yùn)算性能的浪費(fèi)。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實(shí)施例提供了一種快速離散余弦反變換的方法和終端,用于利用非零像素點(diǎn)的排列特點(diǎn)進(jìn)行優(yōu)化,顯著減少IDCT變換的乘法和加法次數(shù),提升運(yùn)算性能。
[0006]本發(fā)明實(shí)施例第一方面提供了一種快速離散余弦反變換的方法,包括:
[0007]終端檢測(cè)接收到的宏塊,得到宏塊類別,所述宏塊類別用于表示所述宏塊中非零像素的排列特點(diǎn);
[0008]所述終端匹配所述宏塊類別對(duì)應(yīng)的優(yōu)化算法,所述優(yōu)化算法刪除了所述宏塊類別對(duì)應(yīng)的零像素點(diǎn)進(jìn)行的運(yùn)算;
[0009]所述終端按照所述對(duì)應(yīng)的優(yōu)化算法對(duì)所述宏塊進(jìn)行離散余弦反變換。
[0010]結(jié)合本發(fā)明實(shí)施例的第一方面,本發(fā)明實(shí)施例的第一方面的第一種實(shí)現(xiàn)方式中,所述終端檢測(cè)接收到的宏塊,得到宏塊類別包括:
[0011]所述終端獲取所述宏塊中各非零像素點(diǎn)相對(duì)于所述宏塊的左上角的相對(duì)坐標(biāo)和宏塊尺寸;
[0012]所述終端比較所述各非零像素點(diǎn)的所述相對(duì)坐標(biāo),得到所述相對(duì)坐標(biāo)的橫縱坐標(biāo)值中的最大數(shù)值;
[0013]所述終端根據(jù)所述宏塊尺寸和所述最大數(shù)值確定所述宏塊類別。
[0014]結(jié)合本發(fā)明實(shí)施例的第一方面,本發(fā)明實(shí)施例的第一方面的第二種實(shí)現(xiàn)方式中,所述優(yōu)化算法為刪除蝶形算法中各宏塊類別對(duì)應(yīng)的零像素點(diǎn)進(jìn)行的運(yùn)算,得到的各宏塊類別對(duì)應(yīng)的優(yōu)化算法。[0015]結(jié)合本發(fā)明實(shí)施例的第一方面至第一方面的第二種實(shí)現(xiàn)方式中的任一種實(shí)現(xiàn)方式,本發(fā)明實(shí)施例的第一方面的第三種實(shí)現(xiàn)方式中,所述終端匹配所述宏塊類別對(duì)應(yīng)的優(yōu)化算法的步驟之前還包括:
[0016]所述終端存儲(chǔ)預(yù)置配置信息,所述預(yù)置配置信息包括各宏塊類別與各優(yōu)化算法的對(duì)應(yīng)關(guān)系;
[0017]所述終端匹配所述宏塊類別對(duì)應(yīng)的優(yōu)化算法包括:
[0018]所述終端查找所述預(yù)置配置信息,匹配到所述宏塊類別對(duì)應(yīng)的優(yōu)化算法。
[0019]本發(fā)明實(shí)施例第二方面提供了一種終端,包括:
[0020]檢測(cè)模塊,用于檢測(cè)接收到的宏塊,得到宏塊類別,所述宏塊類別用于表示所述宏塊中非零像素的排列特點(diǎn);
[0021]匹配模塊,用于匹配所述檢測(cè)模塊檢測(cè)到的宏塊類別對(duì)應(yīng)的優(yōu)化算法,所述優(yōu)化算法刪除了所述宏塊類別對(duì)應(yīng)的零像素點(diǎn)進(jìn)行的運(yùn)算;
[0022]計(jì)算模塊,用于按照所述匹配模塊匹配出的對(duì)應(yīng)的優(yōu)化算法對(duì)所述宏塊進(jìn)行離散余弦反變換。
[0023]結(jié)合本發(fā)明實(shí)施例的第二方面,本發(fā)明實(shí)施例的第二方面的第一種實(shí)現(xiàn)方式中,所述檢測(cè)模塊具體包括:
[0024]獲取單元,用于獲取所述宏塊中各非零像素點(diǎn)相對(duì)于所述宏塊的左上角的相對(duì)坐標(biāo)和宏塊尺寸;
[0025]比較單元,用于比較所述各非零像素點(diǎn)的所述相對(duì)坐標(biāo),得到所述相對(duì)坐標(biāo)的橫縱坐標(biāo)值中的最大數(shù)值;
[0026]確定單元,用于根據(jù)所述宏塊尺寸和所述最大數(shù)值確定所述宏塊類別。
[0027]結(jié)合本發(fā)明實(shí)施例的第二方面或第二方面的第一種實(shí)現(xiàn)方式,本發(fā)明實(shí)施例的第二方面的第二種實(shí)現(xiàn)方式中,所述終端還包括:
[0028]存儲(chǔ)模塊,用于存儲(chǔ)預(yù)置配置信息,所述預(yù)置配置信息包括各宏塊類別與各優(yōu)化算法的對(duì)應(yīng)關(guān)系;
[0029]所述匹配模塊具體用于,查找所述存儲(chǔ)模塊存儲(chǔ)的預(yù)置配置信息,匹配到所述宏塊類別對(duì)應(yīng)的優(yōu)化算法。
[0030]從以上技術(shù)方案可以看出,本發(fā)明實(shí)施例具有以下優(yōu)點(diǎn):本發(fā)明實(shí)施例中,終端先檢測(cè)出表示宏塊中非零像素的排列特點(diǎn)的宏塊類別,再匹配該宏塊類別對(duì)應(yīng)的優(yōu)化算法,該優(yōu)化算法刪除了宏塊類別對(duì)應(yīng)的零像素點(diǎn)進(jìn)行的運(yùn)算,然后終端按照該對(duì)應(yīng)的優(yōu)化算法對(duì)該宏塊進(jìn)行IDCT變換,由于使用的優(yōu)化算法根據(jù)宏塊類別,刪除了現(xiàn)有算法中宏塊類別對(duì)應(yīng)的零像素點(diǎn)進(jìn)行的運(yùn)算,顯著減少了 IDCT變換的乘法和加法次數(shù),比現(xiàn)有算法具有更少的運(yùn)算量,提升了運(yùn)算性能。
【專利附圖】
【附圖說明】
[0031]圖1為本發(fā)明實(shí)施例中快速離散余弦反變換的方法一個(gè)流程示意圖;
[0032]圖2為本發(fā)明實(shí)施例中快速離散余弦反變換的方法另一個(gè)流程示意圖;
[0033]圖3為本發(fā)明實(shí)施例中快速離散余弦反變換的方法另一個(gè)流程示意圖;
[0034]圖4為本發(fā)明實(shí)施例中宏塊檢測(cè)的一個(gè)實(shí)例示意圖;[0035]圖5為本發(fā)明實(shí)施例中終端的一個(gè)結(jié)構(gòu)示意圖;
[0036]圖6為本發(fā)明實(shí)施例中終端的另一個(gè)結(jié)構(gòu)示意圖;
[0037]圖7為本發(fā)明實(shí)施例中終端的另一個(gè)結(jié)構(gòu)示意圖;
[0038]圖8為本發(fā)明實(shí)施例中終端的另一個(gè)結(jié)構(gòu)示意圖;
[0039]圖9為本發(fā)明實(shí)施例中終端的另一個(gè)結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0040]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0041]請(qǐng)參閱圖1,本發(fā)明實(shí)施例中快速離散余弦反變換的方法一個(gè)實(shí)施例包括:
[0042]101、終端檢測(cè)接收到的宏塊,得到宏塊類別;
[0043]終端接收經(jīng)過DCT變換得到的宏塊后,檢測(cè)該宏塊,得到宏塊類別,該宏塊類別用于表示宏塊中非零像素的排列特點(diǎn);
[0044]102、終端匹配該宏塊類別對(duì)應(yīng)的優(yōu)化算法;
[0045]終端得到宏塊類別后,匹配該宏塊類別對(duì)應(yīng)的優(yōu)化算法,該優(yōu)化算法刪除了該宏塊類別對(duì)應(yīng)的零像素點(diǎn)進(jìn)行的運(yùn)算;
[0046]103、終端按照該對(duì)應(yīng)的優(yōu)化算法對(duì)該宏塊進(jìn)行離散余弦反變換。
[0047]終端匹配到該宏塊類別對(duì)應(yīng)的優(yōu)化算法后,按照該對(duì)應(yīng)的優(yōu)化算法對(duì)該宏塊進(jìn)行離散余弦反變換。
[0048]本發(fā)明實(shí)施例中,終端先檢測(cè)出表示宏塊中非零像素的排列特點(diǎn)的宏塊類別,再匹配該宏塊類別對(duì)應(yīng)的優(yōu)化算法,該優(yōu)化算法刪除了宏塊類別對(duì)應(yīng)的零像素點(diǎn)進(jìn)行的運(yùn)算,然后終端按照該對(duì)應(yīng)的優(yōu)化算法對(duì)該宏塊進(jìn)行IDCT變換,由于使用的優(yōu)化算法根據(jù)宏塊類別,刪除了現(xiàn)有算法中宏塊類別對(duì)應(yīng)的零像素點(diǎn)進(jìn)行的運(yùn)算,顯著減少了 IDCT變換的乘法和加法次數(shù),比現(xiàn)有算法具有更少的運(yùn)算量,提升了運(yùn)算性能。
[0049]上面實(shí)施例中,終端檢測(cè)接收到的宏塊,得到宏塊類別,在實(shí)際應(yīng)用中,終端可以通過比較宏塊中非零像素點(diǎn)的相對(duì)坐標(biāo)來確定宏塊類別,下面對(duì)本發(fā)明實(shí)施例中的快速離散余弦反變換的方法進(jìn)行具體描述,請(qǐng)參閱圖2,本發(fā)明實(shí)施例中快速離散余弦反變換的方法另一個(gè)實(shí)施例包括:
[0050]201、終端獲取接收到的宏塊中各非零像素點(diǎn)相對(duì)于該宏塊的左上角的相對(duì)坐標(biāo)和宏塊尺寸;
[0051]終端接收經(jīng)過DCT變換得到的宏塊后,獲取該宏塊中各非零像素點(diǎn)相對(duì)于該宏塊的左上角的相對(duì)坐標(biāo)(x,y)和該宏塊的宏塊尺寸。
[0052]可以理解的是,宏塊中左上角的像素點(diǎn)的相對(duì)坐標(biāo)為(0,0)。
[0053]需要說明的是,由于H.265編解碼技術(shù)的特點(diǎn),在解碼端做IDCT變換的宏塊包含大量的零像素點(diǎn),而非零像素點(diǎn)則往往集中分布在宏塊的左上角。
[0054]202、終端比較各非零像素點(diǎn)的相對(duì)坐標(biāo),得到相對(duì)坐標(biāo)的橫縱坐標(biāo)值中的最大數(shù)值;[0055]終端獲得各非零像素點(diǎn)的相對(duì)坐標(biāo)后,比較各相對(duì)坐標(biāo),得到相對(duì)坐標(biāo)的橫縱坐標(biāo)值中的最大數(shù)值。
[0056]例如如果非零像素點(diǎn)的相對(duì)坐標(biāo)分別為(2,3),(3,5), (4,I),則可以得到最大數(shù)值為5。
[0057]203、終端根據(jù)宏塊尺寸和最大數(shù)值確定宏塊類別;
[0058]終端得到宏塊尺寸和相對(duì)坐標(biāo)的橫縱坐標(biāo)值中的最大數(shù)值后,可以根據(jù)宏塊尺寸和該最大數(shù)值確定宏塊類別。
[0059]宏塊類別的分類可以有很多種方式,例如可以將不同宏塊尺寸下每個(gè)不同的最大數(shù)值都設(shè)定為一個(gè)宏塊類別,也可以設(shè)定為某個(gè)范圍的最大數(shù)值對(duì)應(yīng)一個(gè)宏塊類別,此處不作限定。
[0060]在實(shí)際應(yīng)用中,一般可以使用如下表1所示的宏塊尺寸,最大數(shù)值與宏塊類別的對(duì)應(yīng)關(guān)系:
[0061]表1
[0062]
【權(quán)利要求】
1.一種快速離散余弦反變換的方法,其特征在于,包括: 終端檢測(cè)接收到的宏塊,得到宏塊類別,所述宏塊類別用于表示所述宏塊中非零像素的排列特點(diǎn); 所述終端匹配所述宏塊類別對(duì)應(yīng)的優(yōu)化算法,所述優(yōu)化算法刪除了所述宏塊類別對(duì)應(yīng)的零像素點(diǎn)進(jìn)行的運(yùn)算; 所述終端按照所述對(duì)應(yīng)的優(yōu)化算法對(duì)所述宏塊進(jìn)行離散余弦反變換。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述終端檢測(cè)接收到的宏塊,得到宏塊類別包括: 所述終端獲取所述宏塊中各非零像素點(diǎn)相對(duì)于所述宏塊的左上角的相對(duì)坐標(biāo)和宏塊尺寸; 所述終端比較所述各非零像素點(diǎn)的所述相對(duì)坐標(biāo),得到所述相對(duì)坐標(biāo)的橫縱坐標(biāo)值中的最大數(shù)值; 所述終端根據(jù)所述宏塊尺寸和所述最大數(shù)值確定所述宏塊類別。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述優(yōu)化算法為刪除蝶形算法中各宏塊類別對(duì)應(yīng)的零像素點(diǎn)進(jìn)行的運(yùn)算,得到的各宏塊類別對(duì)應(yīng)的優(yōu)化算法。
4.根據(jù)權(quán)利要求1至3中任一項(xiàng)所述的方法,其特征在于,所述終端匹配所述宏塊類別對(duì)應(yīng)的優(yōu)化算法的步驟之前還包括: 所述終端存儲(chǔ)預(yù)置配置信息,所述預(yù)置配置信息包括各宏塊類別與各優(yōu)化算法的對(duì)應(yīng)關(guān)系; 所述終端匹配所述宏塊類別對(duì)應(yīng)的優(yōu)化算法包括: 所述終端查找所述預(yù)置配置信息,匹配到所述宏塊類別對(duì)應(yīng)的優(yōu)化算法。
5.一種終端,其特征在于,包括: 檢測(cè)模塊,用于檢測(cè)接收到的宏塊,得到宏塊類別,所述宏塊類別用于表示所述宏塊中非零像素的排列特點(diǎn); 匹配模塊,用于匹配所述檢測(cè)模塊檢測(cè)到的宏塊類別對(duì)應(yīng)的優(yōu)化算法,所述優(yōu)化算法刪除了所述宏塊類別對(duì)應(yīng)的零像素點(diǎn)進(jìn)行的運(yùn)算; 計(jì)算模塊,用于按照所述匹配模塊匹配出的對(duì)應(yīng)的優(yōu)化算法對(duì)所述宏塊進(jìn)行離散余弦反變換。
6.根據(jù)權(quán)利要求5所示的終端,其特征在于,所述檢測(cè)模塊具體包括: 獲取單元,用于獲取所述宏塊中各非零像素點(diǎn)相對(duì)于所述宏塊的左上角的相對(duì)坐標(biāo)和宏塊尺寸; 比較單元,用于比較所述各非零像素點(diǎn)的所述相對(duì)坐標(biāo),得到所述相對(duì)坐標(biāo)的橫縱坐標(biāo)值中的最大數(shù)值; 確定單元,用于根據(jù)所述宏塊尺寸和所述最大數(shù)值確定所述宏塊類別。
7.根據(jù)權(quán)利要求5或6所述的終端,其特征在于,所述終端還包括: 存儲(chǔ)模塊,用于存儲(chǔ)預(yù)置配置信息,所述預(yù)置配置信息包括各宏塊類別與各優(yōu)化算法的對(duì)應(yīng)關(guān)系; 所述匹配模塊具體用于,查找所述存儲(chǔ)模塊存儲(chǔ)的預(yù)置配置信息,匹配到所述宏塊類別對(duì)應(yīng)的優(yōu)化算法。
【文檔編號(hào)】H04N19/625GK103826136SQ201410055922
【公開日】2014年5月28日 申請(qǐng)日期:2014年2月19日 優(yōu)先權(quán)日:2014年2月19日
【發(fā)明者】黃鵬 申請(qǐng)人:華為軟件技術(shù)有限公司