本發(fā)明涉及視頻編碼技術(shù)領(lǐng)域,尤其涉及一種基于H.265的編碼單元所占比特?cái)?shù)的計(jì)算方法及裝置。
背景技術(shù):
在基于H.265的視頻編碼中,塊結(jié)構(gòu)的劃分包括CU(Coding Unit,編碼單元)的劃分、PU(Prediction Unit,預(yù)測單元)的劃分、TU(Transform Unit,變換單元)。其中,CU的劃分基于LCU(Largest Coding Unit,最大編碼單元),根據(jù)編碼圖像的特性以四叉樹結(jié)構(gòu)將每個(gè)LCU劃分為不同大小的CU,CU的大小包括64×64、32×32、16×16、8×8,以靈活匹配圖像內(nèi)容,得到最佳編碼效果。PU的劃分和TU的劃分均是基于CU進(jìn)行的。
在CU、PU、TU劃分過程中,為了得到最佳的塊劃分結(jié)構(gòu),首先需要計(jì)算每個(gè)CU所占比特?cái)?shù)。如圖1所示,現(xiàn)有的當(dāng)前CU所占比特?cái)?shù)的計(jì)算方法為:按照順序串行地計(jì)算當(dāng)前CU中所包括的各個(gè)SE(Syntax Element,語法元素)所占比特?cái)?shù),其中,SE包括CU的分割信息、預(yù)測模式、殘差系數(shù)等可以代表該CU特征的信息;然后將之前得到的各個(gè)SE所占比特?cái)?shù)進(jìn)行累計(jì),從而得到當(dāng)前CU所占比特?cái)?shù)。其中,各個(gè)SE的含義如下:
split:當(dāng)前CU的分割信息;
skip:當(dāng)前CU是否被跳過編碼;
mode:當(dāng)前CU預(yù)測模式;
part:當(dāng)前CU的分割信息;
pred_info:當(dāng)前CU的預(yù)測模式具體信息;
root cbf:當(dāng)前CU的亮度和色度是否含有非零COEFF;
sub div:當(dāng)前TU的分割信息;
cbf u:當(dāng)前CU的色度U是否含有非零COEFF;
cbf v:當(dāng)前CU的色度V是否含有非零COEFF;
cbf y:當(dāng)前CU的亮度Y是否含有非零COEFF;
dqp:當(dāng)前LCU量化參數(shù)與參考量化參數(shù)的差值;
last coeff:當(dāng)前TU內(nèi)最后一個(gè)非零COEFF所在位置;
signcg:當(dāng)前TU內(nèi)每個(gè)block是否含有非零COEFF的標(biāo)志;
sign:通常情況下,對一個(gè)block內(nèi)16個(gè)COEFF進(jìn)行是否非零的計(jì)算,并將所有非零COEFF保存;
m1:在一個(gè)block內(nèi)對非零COEFF進(jìn)行計(jì)算,判斷其絕對值是否大于1,最多計(jì)算8次,將第一個(gè)絕對值大于1的COEFF記錄;
m2:對一個(gè)block內(nèi)第一個(gè)絕對值大于1的COEFF進(jìn)行計(jì)算,判斷是否大于2,最多計(jì)算1次,并且如果沒有絕對值大于1的COEFF,則不進(jìn)行計(jì)算;
hid:符號隱藏計(jì)算,在一個(gè)block內(nèi)根據(jù)第一個(gè)和最后一個(gè)非零COEFF的位置來確定如何計(jì)算方式;
rem:對一個(gè)block內(nèi)所有超出RESI閾值的非零COEFF進(jìn)行計(jì)算。
其中,上述COEFF為殘差系數(shù),block為4x 4大小的圖像塊。
綜上所述,現(xiàn)有的CU所占比特?cái)?shù)的計(jì)算方法的計(jì)算速度較低,進(jìn)行影響視頻的編碼效率。因此,有必要提出一種計(jì)算CU所占比特?cái)?shù)的高效方法,以進(jìn)一步提高視頻編碼效率。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供基于H.265的編碼單元所占比特?cái)?shù)的計(jì)算方法及裝置,能夠減小計(jì)算編碼單元所占比特?cái)?shù)的計(jì)算時(shí)間,從而提高視頻編碼效率。
一方面,本發(fā)明提供基于H.265的編碼單元所占比特?cái)?shù)的計(jì)算方法,包括:
按照編碼單元包含的所有語法元素的分類,并行計(jì)算各類語法元素所占比特?cái)?shù);
將計(jì)算得到的各類語法元素所占比特?cái)?shù)進(jìn)行累加,得到所述編碼單元所占比特?cái)?shù)。
另一方面,本發(fā)明提供一種基于H.265的編碼單元所占比特?cái)?shù)的計(jì)算裝置,所述裝置包括計(jì)算單元和合并單元,其中,
所述計(jì)算單元,用于按照編碼單元包含的所有語法元素的分類,并行計(jì)算 各類語法元素所占比特?cái)?shù);
所述合并單元,用于將計(jì)算得到的各類語法元素所占比特?cái)?shù)進(jìn)行累加,得到所述編碼單元所占比特?cái)?shù)。
本發(fā)明提供的基于H.265的編碼單元所占比特?cái)?shù)的計(jì)算方法及裝置,按照編碼單元包含的所有語法元素的分類,并行計(jì)算各類語法元素所占比特?cái)?shù);將計(jì)算得到的各類語法元素所占比特?cái)?shù)進(jìn)行累加,得到所述編碼單元所占比特?cái)?shù)。與現(xiàn)有技術(shù)相比,其能夠減少計(jì)算編碼單元所占比特?cái)?shù)的計(jì)算時(shí)間,進(jìn)而減少確定最佳塊劃分結(jié)構(gòu)所用的時(shí)間,從而提高視頻編碼效率。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對實(shí)施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其它的附圖。
圖1為現(xiàn)有技術(shù)中基于H.265的編碼單元所占比特?cái)?shù)的計(jì)算方法的流程示意圖;
圖2為本發(fā)明基于H.265的編碼單元所占比特?cái)?shù)的計(jì)算方法一實(shí)施例的流程示意圖;
圖3為上述實(shí)施例中的所述編碼單元中各個(gè)語法元素的分類示意圖;
圖4為基于H.265的編碼單元所占比特?cái)?shù)的計(jì)算裝置一實(shí)施例的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其它實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
如圖2所示,本發(fā)明實(shí)施例提供一種基于H.265的編碼單元所占比特?cái)?shù)的計(jì)算方法,所述方法包括:
S21、按照編碼單元包含的所有語法元素的分類,并行計(jì)算各類語法元素所 占比特?cái)?shù)。
S22、將計(jì)算得到的各類語法元素所占比特?cái)?shù)進(jìn)行累加,得到所述編碼單元所占比特?cái)?shù)。
本發(fā)明提供的基于H.265的編碼單元所占比特?cái)?shù)的計(jì)算方法,按照編碼單元包含的所有語法元素的分類,并行計(jì)算各類語法元素所占比特?cái)?shù);將計(jì)算得到的各類語法元素所占比特?cái)?shù)進(jìn)行累加,得到所述編碼單元所占比特?cái)?shù)。與現(xiàn)有技術(shù)相比,其能夠減少計(jì)算編碼單元所占比特?cái)?shù)的計(jì)算時(shí)間,進(jìn)而減少確定最佳塊劃分結(jié)構(gòu)所用的時(shí)間,從而提高視頻編碼效率。
優(yōu)選地,在上述實(shí)施例中,根據(jù)所述編碼單元中各個(gè)語法元素的狀態(tài)更新無關(guān)聯(lián)原則,所述編碼單元包含的所有語法元素分為五類,分別為SE_INFO、SE_TULV、SE_SIGN、SE_OVER、SE_RESI,如圖3所示;
其中,所述SE_INFO表示除COEFF外的語法元素;
所述SE_TULV表示變換單元級與COEFF有關(guān)的語法元素;
所述SE_SIGN表示COEFF符號相關(guān)的語法元素;
所述SE_OVER表示COEFF數(shù)值是否大于OVER閾值相關(guān)的語法元素;
所述SE_RESI表示COEFF數(shù)值超出RESI閾值和符號隱藏相關(guān)的語法元素;
其中,所述OVER閾值為對已編碼的COEFF設(shè)定的值;RESI閾值為對剩余未編碼或未完全編碼的COEFF設(shè)定的值;其中,所述COEFF為殘差系數(shù)。
其中,所述編碼單元中各個(gè)語法元素的含義如下:
split:當(dāng)前CU的分割信息;
skip:當(dāng)前CU是否被跳過編碼;
mode:當(dāng)前CU預(yù)測模式;
part:當(dāng)前CU的分割信息;
pred_info:當(dāng)前CU的預(yù)測模式具體信息;
root cbf:當(dāng)前CU的亮度和色度是否含有非零COEFF;
sub div:當(dāng)前TU的分割信息;
cbf u:當(dāng)前CU的色度U是否含有非零COEFF;
cbf v:當(dāng)前CU的色度V是否含有非零COEFF;
cbf y:當(dāng)前CU的亮度Y是否含有非零COEFF;
dqp:當(dāng)前LCU量化參數(shù)與參考量化參數(shù)的差值;
last coeff:當(dāng)前TU內(nèi)最后一個(gè)非零COEFF所在位置;
signcg:當(dāng)前TU內(nèi)每個(gè)block是否含有非零COEFF的標(biāo)志;
sign:通常情況下,對一個(gè)block內(nèi)16個(gè)COEFF進(jìn)行是否非零的計(jì)算,并將所有非零COEFF保存;
m1:在一個(gè)block內(nèi)對非零COEFF進(jìn)行計(jì)算,判斷其絕對值是否大于1,最多計(jì)算8次,將第一個(gè)絕對值大于1的COEFF記錄;
m2:對一個(gè)block內(nèi)第一個(gè)絕對值大于1的COEFF進(jìn)行計(jì)算,判斷是否大于2,最多計(jì)算1次,并且如果沒有絕對值大于1的COEFF,則不進(jìn)行計(jì)算;
hid:符號隱藏計(jì)算,在一個(gè)block內(nèi)根據(jù)第一個(gè)和最后一個(gè)非零COEFF的位置來確定如何計(jì)算方式;
rem:對一個(gè)block內(nèi)所有超出RESI閾值的非零COEFF進(jìn)行計(jì)算。
其中,COEFF為殘差系數(shù),block為4x4大小的圖像塊。
進(jìn)一步地,在上述實(shí)施例中,所述并行計(jì)算各類語法元素所占比特?cái)?shù)可以為:采用五路并行、四路并行、三路并行或兩路并行的方式計(jì)算所述編碼單元包含的五類語法元素所占比特?cái)?shù),其中,對于每種并行計(jì)算方式,每路計(jì)算至少一類語法元素所占比特?cái)?shù)。
同時(shí),并行計(jì)算通過多核并行計(jì)算,即多處理器并行計(jì)算來實(shí)現(xiàn)的,具體地,每路計(jì)算采用單獨(dú)的處理器來實(shí)現(xiàn),例如:
五核并行計(jì)算模式:A&B&C&D&E;
四核并行計(jì)算模式:AB&C&D&E;A&BC&D&E等;
三核并行計(jì)算模式:AB&CD&E;AB&CD&E等
兩核并行計(jì)算模式:AB&CDE;AC&BDE;AD&BCE等
其中,A代表SE_INFO、B代表SE_TULV、C代表SE_SIGN、D代表SE_OVER、E代表SE_RESI。
與現(xiàn)有技術(shù)相比,上述各種多核并行計(jì)算方式都能達(dá)到減少編碼單元所占比特?cái)?shù)的計(jì)算時(shí)間,從而提高視頻編碼效率的目的。
如圖4所示,本發(fā)明實(shí)施例提供一種基于H.265的編碼單元所占比特?cái)?shù)的計(jì)算裝置,所述裝置包括計(jì)算單元41和合并單元42,其中
所述計(jì)算單元41,用于按照編碼單元包含的所有語法元素的分類,并行計(jì)算各類語法元素所占比特?cái)?shù)。
所述合并單元42,用于將計(jì)算得到的各類語法元素所占比特?cái)?shù)進(jìn)行累加,得到所述編碼單元所占比特?cái)?shù)。
優(yōu)選地,在上述實(shí)施例中,根據(jù)所述編碼單元中各個(gè)語法元素的狀態(tài)更新無關(guān)聯(lián)原則,所述編碼單元包含的所有語法元素分為五類,分別為SE_INFO、SE_TULV、SE_SIGN、SE_OVER、SE_RESI,如圖3所示;
其中,所述SE_INFO表示除COEFF外的語法元素;
所述SE_TULV表示變換單元級與COEFF有關(guān)的語法元素;
所述SE_SIGN表示COEFF符號相關(guān)的語法元素;
所述SE_OVER表示COEFF數(shù)值是否大于OVER閾值相關(guān)的語法元素;
所述SE_RESI表示COEFF數(shù)值超出RESI閾值和符號隱藏相關(guān)的語法元素;
其中,所述OVER閾值為對已編碼的COEFF設(shè)定的值;RESI閾值為對剩余未編碼或未完全編碼的COEFF設(shè)定的值;其中,所述COEFF為殘差系數(shù)。
其中,所述編碼單元中各個(gè)語法元素的含義如下:
split:當(dāng)前CU的分割信息;
skip:當(dāng)前CU是否被跳過編碼;
mode:當(dāng)前CU預(yù)測模式;
part:當(dāng)前CU的分割信息;
pred_info:當(dāng)前CU的預(yù)測模式具體信息;
root cbf:當(dāng)前CU的亮度和色度是否含有非零COEFF;
sub div:當(dāng)前TU的分割信息;
cbf u:當(dāng)前CU的色度U是否含有非零COEFF;
cbf v:當(dāng)前CU的色度V是否含有非零COEFF;
cbf y:當(dāng)前CU的亮度Y是否含有非零COEFF;
dqp:當(dāng)前LCU量化參數(shù)與參考量化參數(shù)的差值;
last coeff:當(dāng)前TU內(nèi)最后一個(gè)非零COEFF所在位置;
signcg:當(dāng)前TU內(nèi)每個(gè)block是否含有非零COEFF的標(biāo)志;
sign:通常情況下,對一個(gè)block內(nèi)16個(gè)COEFF進(jìn)行是否非零的計(jì)算,并將所有非零COEFF保存;
m1:在一個(gè)block內(nèi)對非零COEFF進(jìn)行計(jì)算,判斷其絕對值是否大于1,最多計(jì)算8次,將第一個(gè)絕對值大于1的COEFF記錄;
m2:對一個(gè)block內(nèi)第一個(gè)絕對值大于1的COEFF進(jìn)行計(jì)算,判斷是否大于2,最多計(jì)算1次,并且如果沒有絕對值大于1的COEFF,則不進(jìn)行計(jì)算;
hid:符號隱藏計(jì)算,在一個(gè)block內(nèi)根據(jù)第一個(gè)和最后一個(gè)非零COEFF的位置來確定如何計(jì)算方式;
rem:對一個(gè)block內(nèi)所有超出RESI閾值的非零COEFF進(jìn)行計(jì)算。
其中,COEFF為殘差系數(shù),block為4x4大小的圖像塊。
進(jìn)一步地,在上述實(shí)施例中,所述并行計(jì)算各類語法元素所占比特?cái)?shù)可以為:采用五路并行、四路并行、三路并行或兩路并行的方式計(jì)算所述編碼單元包含的五類語法元素所占比特?cái)?shù),其中,對于每種并行計(jì)算方式,每路計(jì)算至少一類語法元素所占比特?cái)?shù)。
同時(shí),并行計(jì)算通過多核并行計(jì)算,即多處理器并行計(jì)算來實(shí)現(xiàn)的,具體地,每路計(jì)算采用單獨(dú)的處理器來實(shí)現(xiàn),例如:
五核并行計(jì)算模式:A&B&C&D&E;
四核并行計(jì)算模式:AB&C&D&E;A&BC&D&E等;
三核并行計(jì)算模式:AB&CD&E;AB&CD&E等
兩核并行計(jì)算模式:AB&CDE;AC&BDE;AD&BCE等
其中,A代表SE_INFO、B代表SE_TULV、C代表SE_SIGN、D代表SE_OVER、E代表SE_RESI。
與現(xiàn)有技術(shù)相比,上述各種多核并行計(jì)算方式都能達(dá)到減小編碼單元所占比特?cái)?shù)的計(jì)算時(shí)間,從而提高視頻編碼效率的目的。
本發(fā)明提供的基于H.265的編碼單元所占比特?cái)?shù)的計(jì)算裝置,所述裝置包括所述計(jì)算單元,用于按照編碼單元包含的所有語法元素的分類,并行計(jì)算各 類語法元素所占比特?cái)?shù);所述合并單元,用于將計(jì)算得到的各類語法元素所占比特?cái)?shù)進(jìn)行累加,得到所述編碼單元所占比特?cái)?shù)。與現(xiàn)有技術(shù)相比,其能夠減少計(jì)算編碼單元所占比特?cái)?shù)的計(jì)算時(shí)間,進(jìn)而減少確定最佳塊劃分結(jié)構(gòu)所用的時(shí)間,從而提高視頻編碼效率。
以上所述,僅為本發(fā)明的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求的保護(hù)范圍為準(zhǔn)。