執(zhí)行具有限制的編碼模式以及/或者量化參數(shù)選擇的波前并行編碼程序的方法以及裝置的制造方法
【專(zhuān)利摘要】一種編碼方法,包含以下步驟:針對(duì)幀分區(qū)的編碼像素執(zhí)行波前并行編碼程序,其中該幀分區(qū)包含多個(gè)區(qū)塊行,該多個(gè)區(qū)塊行中每一個(gè)包含多個(gè)區(qū)塊,并且該多個(gè)區(qū)塊中的每一個(gè)包含多個(gè)像素;以及在第一區(qū)塊行的第一區(qū)塊的編碼模式選擇上施加限制。
【專(zhuān)利說(shuō)明】執(zhí)行具有限制的編碼模式以及/或者量化參數(shù)選擇的波前并行編碼程序的方法以及裝置
[0001 ] 優(yōu)先權(quán)聲明
[0002]本申請(qǐng)請(qǐng)求2014年7月8日提交的申請(qǐng)?zhí)枮?2/021,786的美國(guó)臨時(shí)專(zhuān)利申請(qǐng)的優(yōu)先權(quán)。相關(guān)的專(zhuān)利申請(qǐng)的全文被本申請(qǐng)引用。
技術(shù)領(lǐng)域
[0003]本發(fā)明與視頻編碼有關(guān),更具體來(lái)說(shuō),有關(guān)于一種執(zhí)行具有限制的編碼模式以及/或者量化參數(shù)選擇的波前并行編碼(wave-front parallel encoding)程序的方法與裝置。
【背景技術(shù)】
[0004]傳統(tǒng)的視頻編碼標(biāo)準(zhǔn)通常使用基于區(qū)塊的編碼技術(shù)來(lái)利用空間以及時(shí)間冗余。舉例來(lái)說(shuō),基本的方法是將整個(gè)來(lái)源幀分為多個(gè)區(qū)塊,在每一區(qū)塊執(zhí)行預(yù)測(cè)、使用離散系數(shù)變換來(lái)轉(zhuǎn)換每一個(gè)區(qū)塊的冗余、以及執(zhí)行量化以及熵編碼。此外,在一個(gè)編碼循環(huán)中產(chǎn)生一個(gè)重建幀,為了編碼后續(xù)的區(qū)塊提供參考像素?cái)?shù)據(jù)。對(duì)于某些視頻編碼標(biāo)準(zhǔn)來(lái)說(shuō),環(huán)內(nèi)濾波器可用來(lái)增強(qiáng)重建幀的圖像質(zhì)量。舉例來(lái)說(shuō),在H.264編碼循環(huán)中,包含一個(gè)去區(qū)塊濾波器(de-blocking filter)。
[0005]關(guān)于傳統(tǒng)的視頻編碼,在相同幀中的多個(gè)區(qū)塊的處理順序是光柵掃描順序(raster scan order)。因此,在相同行中的多個(gè)區(qū)塊是按照順序地從左至右來(lái)處理,并且在相同的幀中的區(qū)塊行是按照次序地從上至下處理。然而,在當(dāng)前編碼區(qū)塊與其相鄰編碼區(qū)塊之間存在依賴(lài)。舉例來(lái)說(shuō),當(dāng)前編碼區(qū)塊的運(yùn)動(dòng)向量、編碼模式、量化參數(shù)以及/或者熵編碼的穩(wěn)定/概率可依據(jù)從相鄰編碼區(qū)塊給出的信息來(lái)決定。為了達(dá)到在一個(gè)幀中并行編碼的目的,每一當(dāng)前編碼區(qū)塊與其相鄰編碼區(qū)塊之間的依賴(lài)必須被考量。波前并行編碼可被使用,因此使得多個(gè)處理核心來(lái)同時(shí)編碼多個(gè)區(qū)塊。在H.264中,熵編碼功能在波前并行編碼中沒(méi)有被考慮。因此,為了與傳統(tǒng)的H.264編碼器設(shè)計(jì)兼容,對(duì)于H.264熵編碼,沒(méi)有執(zhí)行并行程序。因此,對(duì)于熵編碼而言,更多的處理器核心并不代表較高的編碼速度。
【發(fā)明內(nèi)容】
[0006]依據(jù)本發(fā)明的示例,執(zhí)行具有限制的編碼模式以及/或者量化參數(shù)選擇的波前并行編碼程序的方法以及裝置被提出,以解決上述問(wèn)題。
[0007]依據(jù)本發(fā)明的第一方面,提供一種示例性的編碼方法。該示例性的編碼方法包含:針對(duì)幀分區(qū)的編碼像素執(zhí)行波前并行編碼程序,其中該幀分區(qū)包含多個(gè)區(qū)塊行,該多個(gè)區(qū)塊行中每一個(gè)包含多個(gè)區(qū)塊,并且該多個(gè)區(qū)塊中的每一個(gè)包含多個(gè)像素;以及在第一區(qū)塊行的第一區(qū)塊的編碼模式選擇上施加限制,其中該第一區(qū)塊行的第一區(qū)塊的編碼模式是從至少一第一候選編碼模式中選擇。
[0008]依據(jù)本發(fā)明的第二方面,提供一種示例性的編碼方法。該示例性編碼方法包含:針對(duì)幀分區(qū)的編碼像素執(zhí)行波前并行編碼程序,其中該幀分區(qū)包含多個(gè)區(qū)塊行,該多個(gè)區(qū)塊行中每一個(gè)包含多個(gè)區(qū)塊,并且該多個(gè)區(qū)塊中的每一個(gè)包含多個(gè)像素;以及在編碼第二區(qū)塊行的第二區(qū)塊之前決定第一區(qū)塊行的第一區(qū)塊的量化參數(shù)。
[0009]依據(jù)本發(fā)明的第三方面,提供一種示例性的編碼器。該示例性編碼器包含編碼電路與控制電路。編碼電路配置為針對(duì)幀分區(qū)的編碼像素執(zhí)行波前并行編碼程序,其中該幀分區(qū)包含多個(gè)區(qū)塊行,該多個(gè)區(qū)塊行中每一個(gè)包含多個(gè)區(qū)塊,并且該多個(gè)區(qū)塊中的每一個(gè)包含多個(gè)像素??刂齐娐?,配置為在第一區(qū)塊行的第一區(qū)塊的編碼模式選擇上施加限制,其中該第一區(qū)塊行的第一區(qū)塊的編碼模式是從至少一第一候選編碼模式中選擇。
[0010]依據(jù)本發(fā)明的第四方面,提供一種示例性的編碼器。該示例性編碼器包含編碼電路與控制電路。編碼電路配置為針對(duì)幀分區(qū)的編碼像素執(zhí)行波前并行編碼程序,其中該幀分區(qū)包含多個(gè)區(qū)塊行,該多個(gè)區(qū)塊行中每一個(gè)包含多個(gè)區(qū)塊,并且該多個(gè)區(qū)塊中的每一個(gè)包含多個(gè)像素。控制電路,配置為在編碼第二區(qū)塊行的第二區(qū)塊之前決定第一區(qū)塊行的第一區(qū)塊的量化參數(shù)。
[0011]在本領(lǐng)域的技術(shù)人員閱讀了如下的本發(fā)明的細(xì)節(jié)說(shuō)明與附圖之后,可了解本發(fā)明的其他目的。
【附圖說(shuō)明】
[0012]圖1是依據(jù)本發(fā)明的一實(shí)施例的視頻編碼器的示意圖。
[0013]圖2是依據(jù)本發(fā)明的一實(shí)施例的波前并行編碼程序的示意圖。
[0014]圖3是依據(jù)本發(fā)明的一實(shí)施例的幀分區(qū)的不同設(shè)置的示意圖。
[0015]圖4是依據(jù)本發(fā)明的一實(shí)施例的另一視頻編碼器的區(qū)塊示意圖。
[0016]圖5是依據(jù)本發(fā)明的一實(shí)施例的另一波前并行編碼程序的示意圖。
[0017]圖6是依據(jù)本發(fā)明的一實(shí)施例的再一波前并行編碼程序的示意圖。
【具體實(shí)施方式】
[0018]整個(gè)說(shuō)明書(shū)和權(quán)利要求書(shū)采用確定的術(shù)語(yǔ)來(lái)指代特定的部件。正如本領(lǐng)域的技術(shù)人員將理解的是,制造商可以使用不同的名稱(chēng)來(lái)指代某一部件。本文件無(wú)意于區(qū)分那些名稱(chēng)不同但功能相同的部件。在下面的說(shuō)明書(shū)和權(quán)利要求書(shū)中,用開(kāi)放式方式使用術(shù)語(yǔ)“包含”和“包括”,因此應(yīng)當(dāng)被解釋為“包含,但是不限于……”。同樣地,術(shù)語(yǔ)“親合”既可以表示間接電氣連接也可以表示直接電氣連接。因此,如果一個(gè)設(shè)備與另一個(gè)設(shè)備耦合,其連接可以是通過(guò)直接電氣連接或者是通過(guò)其他設(shè)備和連接件的間接電氣連接。
[0019]本發(fā)明的主要內(nèi)容在于在幀分區(qū)編碼中,使能波前并行編碼機(jī)制來(lái)執(zhí)行熵編碼功能。舉例來(lái)說(shuō),所提出的具有熵編碼的波前并行程序可通過(guò)H.264編碼器來(lái)實(shí)現(xiàn),因此使得在不同的區(qū)塊行中的多個(gè)區(qū)塊的熵編碼可以一個(gè)并行的方式來(lái)執(zhí)行。除了熵編碼程序,其他的編碼工具也可以包含在所提出的波前并行程序中。因此,每一編碼工具能夠從波前并行編碼機(jī)制中獲益。當(dāng)具有碼率控制的熵編碼是使用波前并行編碼機(jī)制來(lái)執(zhí)行時(shí),通過(guò)使用更多的處理器核心,熵編碼的編碼速度加快。具體來(lái)說(shuō),無(wú)論碼率控制是在區(qū)塊層級(jí)(level)來(lái)執(zhí)行還是在幀層級(jí)來(lái)執(zhí)行,所提出的波前并行編碼程序可被使用來(lái)提高熵編碼的編碼速度。所提出的波前并行編碼機(jī)制適用于不同的編碼工具(包含熵編碼功能)的進(jìn)一步細(xì)節(jié),在以下段落中詳述。
[0020]圖1是依據(jù)本發(fā)明的實(shí)施例的視頻編碼器的區(qū)塊示意圖。視頻編碼器100包含編碼電路102以及控制電路104。需注意僅僅與本發(fā)明相關(guān)的內(nèi)容在圖1中被顯示出來(lái)。具體來(lái)說(shuō),視頻編碼器100允許包含額外的元件來(lái)實(shí)現(xiàn)其他的功能。編碼電路102被安排來(lái)執(zhí)行波前并行編碼程序來(lái)編碼幀分區(qū)Fp的像素?cái)?shù)據(jù)。圖2是依據(jù)本發(fā)明的實(shí)施例的波前并行編碼程序的不意圖。在這個(gè)例子中,幀分區(qū)Fp包含多個(gè)區(qū)塊行BKrqw1-BKrot5,每一區(qū)塊行BKrqw1-BKrciw包含多個(gè)區(qū)塊201,并且每一區(qū)塊201包含多個(gè)像素。每一斜線(xiàn)陰影區(qū)塊代表一個(gè)已編碼的區(qū)塊,并且每一空白的區(qū)塊代表一個(gè)尚未編碼的區(qū)塊。由于使用了波前并行編碼程序,在相同的幀分區(qū)Fp中具有多于一個(gè)的當(dāng)前編碼區(qū)塊。在一個(gè)當(dāng)前編碼區(qū)塊以及其相鄰編碼區(qū)塊之間存在依賴(lài),舉例來(lái)說(shuō),當(dāng)前編碼區(qū)塊(例如BKcur)的編碼需要左相鄰已編碼區(qū)塊(例如BKl)、上相鄰已編碼區(qū)塊(例如BKt)以及上右相鄰已編碼區(qū)塊(例如BK?)的已編碼的信息。因此,相鄰區(qū)塊行的兩個(gè)當(dāng)前編碼區(qū)塊之間的水平距離應(yīng)該被控制為大于I,來(lái)滿(mǎn)足兩個(gè)當(dāng)前編碼區(qū)塊的并行編碼能夠成功地操作。在這個(gè)例子中,相鄰區(qū)塊行BKrotI與BKRQW2的兩個(gè)當(dāng)前編碼區(qū)塊之間的水平距離D12等于2;相鄰區(qū)塊行BKRQW2與BKrot3的兩個(gè)當(dāng)前編碼區(qū)塊的水平距離D23等于2;相鄰區(qū)塊行BKRQW3與BKRQW4的兩個(gè)當(dāng)前編碼區(qū)塊的水平距離D34等于2;并且相鄰區(qū)塊行BKRQW4與BKRQW5的兩個(gè)當(dāng)前編碼區(qū)塊的水平距離D45等于2。以這樣的方式,波前并行編碼程序能夠通過(guò)使用多個(gè)處理器核心來(lái)執(zhí)行,以加快幀分區(qū)Fp的編碼速度。舉例來(lái)說(shuō),多個(gè)處理器核心用來(lái)同時(shí)處理多個(gè)當(dāng)前編碼區(qū)塊的編碼。
[0021]使用所提出的具有限制的編碼模式選擇的波前并行編碼程序的編碼電路102待處理/編碼的幀分區(qū)Fp可以是如圖3的子圖(A)所示的幀301、圖3的子圖(B)所示的一個(gè)切片(slice),或者如圖3的子圖圖(C)所示的一個(gè)方塊(tile)。需注意的是,圖3中所示的切片與方塊的數(shù)量以及尺寸僅僅用來(lái)舉例說(shuō)明,而并非是本發(fā)明的限制。
[0022]相比較于傳統(tǒng)的、在每一個(gè)區(qū)塊的編碼模式選擇上沒(méi)有任何限制的波前并行編碼程序,本發(fā)明所提出的的波前并行編碼程序設(shè)置為在幀分區(qū)Fp的某些區(qū)塊的編碼模式選擇上具有限制,以使能應(yīng)用于不同的區(qū)塊行中的多個(gè)區(qū)塊的熵編碼的并行編碼。在這個(gè)實(shí)施例中,視頻編碼器100具有控制電路104,控制電路104設(shè)計(jì)為在每一區(qū)塊行的一個(gè)特定的區(qū)塊的編碼模式選擇上提供限制,其中區(qū)塊行的特定區(qū)塊的一個(gè)編碼模式是從至少一第一候選編碼模式中選擇的。關(guān)于H.264編碼腳本,該至少一第一候選編碼模式包含那些能夠預(yù)測(cè)在下一區(qū)塊行的開(kāi)始區(qū)塊的熵編碼狀態(tài)的編碼模式。舉例來(lái)說(shuō),上述至少一第一候選編碼模式包含具有冗余的幀間模式(inter mode with residue)、具有冗余的幀內(nèi)模式(intramode with residue)、以及幀內(nèi)16x16模式中的至少一個(gè)。換言之,該區(qū)塊行的特定區(qū)塊的編碼模式可以是具有冗余的幀間模式、具有冗余的幀內(nèi)模式或者幀內(nèi)16x16模式。
[0023]對(duì)于該區(qū)塊行的特定區(qū)塊可用的候選編碼模式是有限的,從而下一區(qū)塊行的開(kāi)始區(qū)塊的熵編碼狀態(tài)是可預(yù)測(cè)的。舉例來(lái)說(shuō),區(qū)塊行以該特定區(qū)塊結(jié)束。即該特定區(qū)塊是該區(qū)塊行的最后一個(gè)區(qū)塊。由于該區(qū)塊行的最后一個(gè)區(qū)塊的候選編碼模式是適當(dāng)?shù)乇幌拗频模谝粋€(gè)區(qū)塊行的最后一個(gè)區(qū)塊與下一區(qū)塊行的開(kāi)始區(qū)塊之間的熵編碼依賴(lài)狀態(tài)是可預(yù)測(cè)的,并且因此熵編碼可包含于波前并行編碼程序。在這個(gè)例子中,區(qū)塊行BKrotI的最后一個(gè)區(qū)塊BK1 ’限制為具有冗余的幀間模式、具有冗余的幀內(nèi)模式、以及幀內(nèi)16x16模式中的一個(gè);并且區(qū)塊行BKRQW2的最后一個(gè)區(qū)塊BK2’的編碼模式選擇是限制為具有冗余的幀間模式、具有冗余的幀內(nèi)模式、以及幀內(nèi)16x16模式中的一個(gè);并且區(qū)塊行BKrqw3的最后一個(gè)區(qū)塊BK3’的編碼模式選擇是限制為具有冗余的幀間模式、具有冗余的幀內(nèi)模式、以及幀內(nèi)16x16模式中的一個(gè);并且區(qū)塊行BKROT4的最后一個(gè)區(qū)塊BK4’的編碼模式選擇是限制為具有冗余的幀間模式、具有冗余的幀內(nèi)模式、以及幀內(nèi)16x16模式中的一個(gè)。
[0024]控制電路104包含碼率控制器(rate controller) 106,用來(lái)決定應(yīng)用于幀分區(qū)Fp的每一區(qū)塊的量化功能所使用的量化參數(shù),其中量化功能可以是包含在波前并行編碼程序中的一個(gè)編碼工具。當(dāng)碼率控制在幀分區(qū)層級(jí)來(lái)執(zhí)行時(shí),碼率控制器106是安排來(lái)在編碼電路102開(kāi)始編碼幀分區(qū)Fp之前,靜止地決定幀分區(qū)Fp中包含的每一區(qū)塊的量化參數(shù)。舉例來(lái)說(shuō),依據(jù)分配給幀分區(qū)Fp的目標(biāo)比特預(yù)算,碼率控制器106指派給幀分區(qū)Fp中包含的每一區(qū)塊201相同的量化參數(shù)。
[0025]在另一個(gè)例子中,碼率控制是在區(qū)塊層級(jí)被執(zhí)行的,這意味著在一個(gè)幀分區(qū)中的不同的區(qū)塊可能具有不同的量化參數(shù)。舉例來(lái)說(shuō),碼率控制器106被安排來(lái)在幀分區(qū)Fp的編碼過(guò)程中動(dòng)態(tài)決定幀分區(qū)Fp中包含的每一區(qū)塊的量化參數(shù)。依據(jù)分配給幀分區(qū)Fp的目標(biāo)比特預(yù)算,碼率控制器106可設(shè)定不同的量化參數(shù)給幀分區(qū)Fp中包含的區(qū)塊201。具體來(lái)說(shuō),量化參數(shù)(QP)調(diào)整保留多少圖像細(xì)節(jié)。當(dāng)量化參數(shù)比較小時(shí),幾乎所有的圖像細(xì)節(jié)都被保留。當(dāng)量化參數(shù)增加時(shí),有一些圖像細(xì)節(jié)變得模糊,從而以失真增加以及質(zhì)量損失為代價(jià)使得比特率下降。因此,使用適應(yīng)性碼率控制機(jī)制可增加編碼質(zhì)量。
[0026]舉例來(lái)說(shuō),可使用一個(gè)不同的編碼機(jī)制來(lái)編碼區(qū)塊201的量化參數(shù)。由于在光柵掃描順序中兩個(gè)連續(xù)的區(qū)塊201之間的量化參數(shù)的差是通過(guò)熵編碼來(lái)編碼的,某些區(qū)塊的量化參數(shù)能夠被適當(dāng)?shù)乜刂苼?lái)保證不同的區(qū)塊行的多個(gè)區(qū)塊(例如一個(gè)區(qū)塊行的最后一個(gè)區(qū)塊以及下一區(qū)塊行的第一個(gè)區(qū)塊)的熵編碼的依賴(lài)狀態(tài)可以被預(yù)測(cè),并且因此熵編碼可以包含在波前并行編碼程序中。在這個(gè)實(shí)施例中,碼率控制器106更進(jìn)一步配置為在一個(gè)第二區(qū)塊的編碼開(kāi)始之前,決定一個(gè)第一區(qū)塊的量化參數(shù),其中第一區(qū)塊的編碼比第二區(qū)塊的編碼晚。舉例來(lái)說(shuō),第一區(qū)塊位于第一區(qū)塊行,第二區(qū)塊位于與第一區(qū)塊行不同的第二區(qū)塊行。第二區(qū)塊行是第一區(qū)塊行的相鄰區(qū)塊行,其中第一區(qū)塊行以第一區(qū)塊結(jié)尾,并且第二區(qū)塊行以第二區(qū)塊開(kāi)始。
[0027]請(qǐng)?jiān)俅螀⒖紙D2,區(qū)塊行BKrqw2以區(qū)塊BK21開(kāi)始,區(qū)塊行BKrqw3以區(qū)塊BK31開(kāi)始,并且區(qū)塊行BKrqw4以區(qū)塊BK4I開(kāi)始,并且區(qū)塊行BKrqw5以區(qū)塊BK51開(kāi)始。熵編碼可編碼位于相鄰區(qū)塊行BKrciwI與BKrot2的區(qū)塊ΒΚι’與BK21的量化參數(shù)的差。然而,依據(jù)波前并行編碼程序,區(qū)塊BK1Y其是區(qū)塊行BKrqwI的最后一個(gè)區(qū)塊)的編碼比區(qū)塊BK21(其是區(qū)塊行BKrotI之后的區(qū)塊行BKRQW2的開(kāi)始區(qū)塊)的編碼晚。因此,在編碼電路102開(kāi)始編碼區(qū)塊BK21之前,控制電路104需要決定區(qū)塊BKi,的量化參數(shù),來(lái)保證區(qū)塊BK21與BKi ’之間的量化參數(shù)的差的熵編碼能夠在區(qū)塊冊(cè)21的編碼過(guò)程中成功執(zhí)行,其中區(qū)塊BK21的編碼在區(qū)塊BK1’的編碼之前開(kāi)始。
[0028]相似地,依據(jù)波前并行編碼程序,區(qū)塊BK2’(其是區(qū)塊行BKRQW2的最后一個(gè)區(qū)塊)的編碼晚于區(qū)塊BK31 (其是在區(qū)塊行BKRQW2之后區(qū)塊行BKRQW3的開(kāi)始區(qū)塊)的編碼,區(qū)塊BK3,(其是區(qū)塊行BKrot3的最后一個(gè)區(qū)塊)的編碼晚于區(qū)塊BK41 (其是在區(qū)塊行BKrot3之后區(qū)塊行BKrow4的開(kāi)始區(qū)塊)的編碼,以及區(qū)塊BK4 ’(其是區(qū)塊行BKRQW4的最后一個(gè)區(qū)塊)的編碼晚于區(qū)塊BK5i(其是在區(qū)塊行BKrcw4之后區(qū)塊行BKr<w5的開(kāi)始區(qū)塊)的編碼。在編碼電路102開(kāi)始編碼區(qū)塊BK31之前,控制電路104需要決定區(qū)塊BK2 ’的量化參數(shù),來(lái)保證區(qū)塊服31與服2 ’的量化參數(shù)之間的差的熵編碼能夠在區(qū)塊狀31的編碼過(guò)程中成功執(zhí)行,其中區(qū)塊BK31的編碼比區(qū)塊BK2 ’的編碼早。在編碼電路102開(kāi)始編碼區(qū)塊BK41之前,控制電路104需要決定區(qū)塊BK3 ’的量化參數(shù),來(lái)保證區(qū)塊冊(cè)41與冊(cè)3’的量化參數(shù)之間的差的熵編碼能夠在區(qū)塊BK41的編碼過(guò)程中成功執(zhí)行,其中區(qū)塊BK41的編碼比區(qū)塊BK3’的編碼早。在編碼電路102開(kāi)始編碼區(qū)塊冊(cè)51之前,控制電路104需要決定區(qū)塊BK4,的量化參數(shù),來(lái)保證區(qū)塊BK51與服4,的量化參數(shù)之間的差的熵編碼能夠在區(qū)塊冊(cè)51的編碼過(guò)程中成功執(zhí)行,其中區(qū)塊BK51的編碼比區(qū)塊BK4’的編碼早。
[0029]與文本自適應(yīng)二進(jìn)制算術(shù)編碼(CABAC)熵編碼相比較,基于文本自適應(yīng)可變長(zhǎng)度編碼(CAVLC)熵編碼具有更少的復(fù)雜度以及數(shù)據(jù)依賴(lài)。因此,CAVLC熵編碼更適用于所提出的具有限制的編碼模式選擇的波前并行編碼程序。在一個(gè)示例設(shè)計(jì)中,編碼電路102是配置來(lái)執(zhí)行包含CAVLC熵編碼的波前并行編碼程序。
[°03°] 關(guān)于如圖2所不的幀分區(qū)Fp,每一區(qū)塊行BKrqw1-BKrqw5是由多個(gè)位于顯不邊界內(nèi)的可顯示的區(qū)塊組成。在這個(gè)實(shí)施例中,在一個(gè)區(qū)塊行中的每一區(qū)塊的至少一像素是在顯示邊界內(nèi)。舉例來(lái)說(shuō),幀分區(qū)Fp是從一個(gè)視頻源(例如一個(gè)相機(jī)、一個(gè)網(wǎng)絡(luò)或者一個(gè)存儲(chǔ)介質(zhì))完全接收的,從而幀分區(qū)Fp內(nèi)的所有區(qū)塊是在視頻編碼器100產(chǎn)生的比特流在視頻解碼器(圖示中未顯示)解碼后顯示在顯示裝置上的輸入?yún)^(qū)塊。如上所述,最后的區(qū)塊BKi’-BIU’(其是輸入?yún)^(qū)塊)的編碼模式被控制電路104限制。因此,一個(gè)區(qū)塊行的最后的區(qū)塊選擇的編碼模式可不具有最優(yōu)的編碼模式設(shè)定。更進(jìn)一步,當(dāng)使用區(qū)塊層級(jí)的碼率控制機(jī)制時(shí),最后的區(qū)塊BK1,-BK4’的量化參數(shù)是在最后的區(qū)塊BK1,-BK4’實(shí)際編碼之前被控制電路104決定的。因此,指派給一個(gè)區(qū)塊行的最后一個(gè)區(qū)塊的量化參數(shù)可不具有最優(yōu)的量化參數(shù)設(shè)定。從而,當(dāng)最后的區(qū)塊被顯示時(shí),圖像質(zhì)量下降將會(huì)在最后的區(qū)塊或者在最后的區(qū)塊附近發(fā)生。
[0031]為了避免在顯示裝置上顯示的區(qū)塊的圖像質(zhì)量下降,所提出的波前并行編碼程序可應(yīng)用至一個(gè)幀分區(qū),該幀分區(qū)配置為在每一區(qū)塊行具有額外的區(qū)塊/填充區(qū)塊,或者該幀分區(qū)配置為具有較小的顯示邊界。以另一種方式來(lái)說(shuō),在顯示裝置上顯示的區(qū)塊的圖像質(zhì)量可通過(guò)使用所提出的波前并行編碼程序來(lái)編碼從視頻源接收的每一區(qū)塊行的多個(gè)輸入?yún)^(qū)塊串聯(lián)的額外區(qū)塊/填充區(qū)塊來(lái)保證,或者通過(guò)收縮從視頻源接收的每一區(qū)塊行的多個(gè)輸入?yún)^(qū)塊的顯示邊界來(lái)保證。
[0032]圖4是依據(jù)本發(fā)明的實(shí)施例的另一視頻編碼器的區(qū)塊示意圖。視頻編碼器400與視頻編碼器100之間的主要差別在于幀分區(qū)格式或者顯示邊界設(shè)置。與編碼電路102(其針對(duì)從完全自視頻源接收的完全在顯示邊界內(nèi)部的幀分區(qū)Fp執(zhí)行所提出的波前并行編碼程序)相比較,編碼電路402被配置為針對(duì)幀分區(qū)FP’執(zhí)行所提出的波前并行編碼程序,其中幀分區(qū)FP’是通過(guò)增加額外的區(qū)塊至從視頻源接收的幀分區(qū)獲得的。舉例來(lái)說(shuō),幀分區(qū)FP’的第一分區(qū)包含從視頻源接收的輸入?yún)^(qū)塊,并且?guī)謪^(qū)FP’的第二分區(qū)包含在編碼電路402中插入的額外區(qū)塊/填充區(qū)塊。在另一個(gè)舉例說(shuō)明中,幀分區(qū)FP’被控制為具有收縮的顯示邊界,從而幀分區(qū)FP’的第一分區(qū)包含從視頻源接收的輸入?yún)^(qū)塊并且歸類(lèi)為位于收縮的顯示邊界內(nèi)部的區(qū)塊,并且?guī)謪^(qū)FP’的第二分區(qū)包含從視頻源接收到的區(qū)塊并且歸類(lèi)為位于收縮的顯示邊界外部的區(qū)塊。
[0033]圖5是依據(jù)本發(fā)明的實(shí)施例的另一波前并行編碼程序的示意圖。在這個(gè)例子中,幀分區(qū)Fp’包含多個(gè)區(qū)塊行BKrot1-BKrqw5,每一區(qū)塊行BKrot1-BKrot5包含多個(gè)區(qū)塊501,并且每一區(qū)塊501包含多個(gè)像素。關(guān)于每一區(qū)塊行BKr?1-BKr?5,至少一個(gè)額外的區(qū)塊是包含其中的。因此,圖5所示的每一區(qū)塊行BKRQW1-BKR?5包含在顯示邊界內(nèi)的可顯示的區(qū)塊(即從視頻源接收到的輸入?yún)^(qū)塊)以及在顯示邊界外部的至少一個(gè)不可顯示區(qū)塊(例如編碼電路402嵌入的(多個(gè))額外區(qū)塊)。舉例來(lái)說(shuō),每一額外區(qū)塊可通過(guò)一個(gè)預(yù)先定義的區(qū)塊設(shè)定,該預(yù)先定義的區(qū)塊包含具有預(yù)定像素值的像素。對(duì)于另一例子來(lái)說(shuō),每一額外區(qū)塊可以是一個(gè)填充區(qū)塊,該填充區(qū)塊是相同的區(qū)塊行中的最后一個(gè)輸入?yún)^(qū)塊的復(fù)制。然而,這僅僅用于舉例說(shuō)明,而并非是本發(fā)明的限制。
[0034]從視頻源接收的輸入?yún)^(qū)塊以及在編碼電路402中嵌入的額外區(qū)塊是由編碼電路402實(shí)際編碼的區(qū)塊(標(biāo)識(shí)為“編碼的區(qū)塊”)。需注意的是,如圖5所示,編碼的區(qū)塊的區(qū)塊行邊界并沒(méi)有對(duì)準(zhǔn)顯示邊界(例如從視頻源接收的輸入?yún)^(qū)塊的區(qū)塊行邊界)。
[0035]如圖5所不,區(qū)塊彳丁BKrot1_BKrqw4的最后的區(qū)塊BKi,-BK4’是額外的區(qū)塊,其在從視頻編碼器400產(chǎn)生的比特流被視頻解碼器(圖中未顯示)解碼之后顯示裝置上不會(huì)顯示。當(dāng)所提出的波前并行編碼程序應(yīng)用至幀分區(qū)FP’,基于相同的如上所述的應(yīng)用至最后的區(qū)塊的編碼模式選擇規(guī)則以及/或者量化參數(shù)決定規(guī)則,熵編碼可包含在波前并行編碼程序中,而并沒(méi)有伴隨區(qū)塊行BKR?l-BKRQW5的最后可顯示區(qū)塊的圖像質(zhì)量下降。具體來(lái)說(shuō),最后的區(qū)塊BKi ’ -BK4 ’的編碼模式是被控制電路104限制,其中最后的區(qū)塊區(qū)塊BKi ’ -BK4 ’中的每一個(gè)是一個(gè)位于顯示邊界之外的非顯示的區(qū)塊。盡管一個(gè)區(qū)塊行的最后的區(qū)塊選擇的編碼模式可能不具有最優(yōu)的編碼模式設(shè)定,在相同的區(qū)塊行的最后顯示區(qū)塊的圖像質(zhì)量并沒(méi)有被波前并行編碼程序影響。更進(jìn)一步,當(dāng)使用一個(gè)區(qū)塊層級(jí)的碼率控制機(jī)制時(shí),最后的區(qū)塊BKi ’ -BK4’的量化參數(shù)是在最后的區(qū)塊BK1 ’ -BK4’的編碼實(shí)際開(kāi)始之前被控制電路104決定,其中最后的區(qū)塊BKi’-BKZ中的每一個(gè)是一個(gè)超出顯示邊界的非顯示的區(qū)塊。盡管一個(gè)區(qū)塊行的最后的區(qū)塊的決定的量化參數(shù)可能不具有最優(yōu)的量化參數(shù),在相同的區(qū)塊行的最后可顯示區(qū)塊的圖像質(zhì)量并沒(méi)有被所提出的波前并行編碼程序影響。
[0036]圖6是基于本發(fā)明的實(shí)施例的另一波前并行編碼程序的示意圖。在這個(gè)例子中,幀分區(qū)Fp’包含多個(gè)區(qū)塊行BKrot1-BKrqw5,每一區(qū)塊行BKrot1-BKrot5包含多個(gè)區(qū)塊601,并且每一區(qū)塊601包含多個(gè)像素。假設(shè)初始的顯示邊界對(duì)準(zhǔn)多個(gè)由編碼電路402編碼的區(qū)塊(標(biāo)示為編碼的區(qū)塊)的區(qū)塊行邊界。在這里實(shí)施例中,圖6所示的顯示邊界被控制左移,因此使得收縮的顯示邊界并沒(méi)有對(duì)準(zhǔn)編碼的區(qū)塊的區(qū)塊行邊界。舉例來(lái)說(shuō),編碼的區(qū)塊包含從視頻源接收的輸入?yún)^(qū)塊。另舉一例來(lái)說(shuō),編碼的區(qū)塊包含從視頻源接收的輸入?yún)^(qū)塊以及在編碼電路402中嵌入的額外區(qū)塊。
[0037]關(guān)于區(qū)塊行BKRot1-BKRot5中的每一個(gè),至少一個(gè)編碼的區(qū)塊被當(dāng)做一個(gè)超出收縮顯示邊界的非顯示區(qū)塊。因此,如圖6所示的區(qū)塊行BKrot1-BKrqw5中的每一個(gè)包含可顯示的多個(gè)區(qū)塊(即全部或者部分地位于收縮的顯示邊界內(nèi)的已編碼區(qū)塊)以及至少一個(gè)非顯示區(qū)塊(例如全部位于收縮的顯示邊界之外的已編碼(多個(gè))區(qū)塊)。
[0038]如圖6所不,區(qū)塊彳丁BK_1_BK_4的最后的區(qū)塊BKi,-BK4’是編碼的區(qū)塊,其在從視頻編碼器400產(chǎn)生的比特流被視頻解碼器(圖中未顯示)解碼之后顯示裝置上不會(huì)顯示。當(dāng)所提出的波前并行編碼程序應(yīng)用至如圖6所示的幀分區(qū)FP’,基于相同的如上所述的應(yīng)用至最后的區(qū)塊的編碼模式選擇規(guī)則以及/或者量化參數(shù)決定規(guī)則,熵編碼可包含在波前并行編碼程序中,而并沒(méi)有伴隨區(qū)塊行BKR?l-BKRQW5的最后可顯示區(qū)塊的圖像質(zhì)量下降。具體來(lái)說(shuō),最后的區(qū)塊BK1,-BK4,的編碼模式是被控制電路104限制,其中最后的區(qū)塊區(qū)塊BK1,-BK4’中的每一個(gè)是位于收縮的顯示邊界之外的非顯示的區(qū)塊。盡管一個(gè)區(qū)塊行的最后的區(qū)塊選擇的編碼模式可能不具有最優(yōu)的編碼模式設(shè)定,在相同的區(qū)塊行的最后顯示區(qū)塊的圖像質(zhì)量并沒(méi)有被波前并行編碼程序影響,其中該最后可顯示區(qū)塊是全部或者部分位于收縮的顯示邊界之內(nèi)的,這依據(jù)收縮的顯示邊界的實(shí)際設(shè)定。更進(jìn)一步,當(dāng)使用一個(gè)區(qū)塊層級(jí)的碼率控制機(jī)制時(shí),最后的區(qū)塊BKi,-BK4’的量化參數(shù)是在最后的區(qū)塊BKi,-BK4’的編碼實(shí)際開(kāi)始之前被控制電路104決定,其中最后的區(qū)塊BKi’-BIU’中的每一個(gè)是一個(gè)超出收縮的顯示邊界的非顯示的區(qū)塊。盡管一個(gè)區(qū)塊行的最后的區(qū)塊的決定的量化參數(shù)可能不具有最優(yōu)的量化參數(shù),在相同的區(qū)塊行的最后可顯示區(qū)塊(其中該最后可顯示區(qū)塊是全部或者部分位于收縮的顯示邊界之內(nèi)的,這依據(jù)收縮的顯示邊界的實(shí)際設(shè)定)的圖像質(zhì)量并沒(méi)有被所提出的波前并行編碼程序影響。
[0039]本發(fā)明應(yīng)理解為涵蓋本領(lǐng)域技術(shù)人員可了解的多種變型的實(shí)施方式與相似的安排。因此,本發(fā)明的權(quán)利要求書(shū)應(yīng)該理解為涵蓋本領(lǐng)域技術(shù)人員可了解的多種變型的實(shí)施方式與相似的安排的較廣范圍。
【主權(quán)項(xiàng)】
1.一種編碼方法,包含: 針對(duì)幀分區(qū)的編碼像素執(zhí)行波前并行編碼程序,其中該幀分區(qū)包含多個(gè)區(qū)塊行,該多個(gè)區(qū)塊行中每一個(gè)包含多個(gè)區(qū)塊,并且該多個(gè)區(qū)塊中的每一個(gè)包含多個(gè)像素;以及 在第一區(qū)塊行的第一區(qū)塊的編碼模式選擇上施加限制,其中該第一區(qū)塊行的第一區(qū)塊的編碼模式是從至少一第一候選編碼模式中選擇。2.根據(jù)權(quán)利要求1所述的編碼方法,其特征在于,該第一區(qū)塊行以該第一區(qū)塊結(jié)束。3.根據(jù)權(quán)利要求2所述的編碼方法,其特征在于,其中該第一區(qū)塊行的每一區(qū)塊的至少一個(gè)像素在顯示邊界之內(nèi)。4.根據(jù)權(quán)利要求2所述的編碼方法,其特征在于,其中該第一區(qū)塊行是由在顯示邊界內(nèi)的多個(gè)可顯示區(qū)塊以及在該顯示邊界外的至少一非顯示區(qū)塊組成,其中該至少一非顯示區(qū)塊包含該第一區(qū)塊。5.根據(jù)權(quán)利要求1所述的編碼方法,其特征在于,進(jìn)一步包含: 在編碼第二區(qū)塊之前,決定該第一區(qū)塊的量化參數(shù); 其中該第一區(qū)塊的編碼晚于該第二區(qū)塊的編碼。6.根據(jù)權(quán)利要求5所述的編碼方法,其特征在于,其中該第二區(qū)塊位于與該第一區(qū)塊行不同的第二區(qū)塊行。7.根據(jù)權(quán)利要求6所述的編碼方法,其特征在于,其中該第二區(qū)塊行以該第二區(qū)塊開(kāi)始。8.根據(jù)權(quán)利要求7所述的編碼方法,其特征在于,其中該第一區(qū)塊行以該第一區(qū)塊結(jié)束。9.根據(jù)權(quán)利要求5所述的編碼方法,其特征在于,其中該第一區(qū)塊行是該第二區(qū)塊行的相鄰區(qū)塊行。10.根據(jù)權(quán)利要求1所述的編碼方法,其特征在于,其中該第一候選編碼模式包含能夠預(yù)測(cè)位于第二區(qū)塊行的第二區(qū)塊的熵編碼狀態(tài)的編碼模式。11.根據(jù)權(quán)利要求10所述的編碼方法,其特征在于, 該第一區(qū)塊行是該第二區(qū)塊行的相鄰區(qū)塊行; 該第二區(qū)塊行以該第二區(qū)塊開(kāi)始;以及 該第一區(qū)塊行以該第一區(qū)塊結(jié)束。12.根據(jù)權(quán)利要求10所述的編碼方法,其特征在于,該第二區(qū)塊是在該第一區(qū)塊熵編碼之前熵編碼的。13.根據(jù)權(quán)利要求1所述的編碼方法,其特征在于,其中該波前并行編碼程序包含基于文本自適應(yīng)可變長(zhǎng)度熵編碼。14.根據(jù)權(quán)利要求1所述的編碼方法,其特征在于,其中該幀分區(qū)是幀、該幀中的切片、或者該幀中的方塊。15.—種編碼器,包含: 編碼電路,配置為針對(duì)幀分區(qū)的編碼像素執(zhí)行波前并行編碼程序,其中該幀分區(qū)包含多個(gè)區(qū)塊行,該多個(gè)區(qū)塊行中每一個(gè)包含多個(gè)區(qū)塊,并且該多個(gè)區(qū)塊中的每一個(gè)包含多個(gè)像素;以及 控制電路,配置為在第一區(qū)塊行的第一區(qū)塊的編碼模式選擇上施加限制,其中該第一區(qū)塊行的第一區(qū)塊的編碼模式是從至少一第一候選編碼模式中選擇。16.根據(jù)權(quán)利要求15所述的編碼器,其特征在于,該第一區(qū)塊行以該第一區(qū)塊結(jié)束。17.根據(jù)權(quán)利要求16所述的編碼器,其特征在于,其中該第一區(qū)塊行的每一區(qū)塊的至少一個(gè)像素在顯示邊界之內(nèi)。18.根據(jù)權(quán)利要求16所述的編碼器,其特征在于,其中該第一區(qū)塊行是由在顯示邊界內(nèi)的多個(gè)可顯示區(qū)塊以及在該顯示邊界外的至少一非顯示區(qū)塊組成,其中該至少一非顯示區(qū)塊包含該第一區(qū)塊。19.根據(jù)權(quán)利要求15所述的編碼器,其特征在于,該控制電路包含碼率控制器,配置為在編碼第二區(qū)塊之前,決定該第一區(qū)塊的量化參數(shù);并且其中該第一區(qū)塊的編碼晚于該第二區(qū)塊的編碼。20.根據(jù)權(quán)利要求19所述的編碼器,其特征在于,其中該第二區(qū)塊位于與該第一區(qū)塊行不同的第二區(qū)塊行。21.根據(jù)權(quán)利要求20所述的編碼器,其特征在于,其中該第二區(qū)塊行以該第二區(qū)塊開(kāi)始。22.根據(jù)權(quán)利要求21所述的編碼器,其特征在于,其中該第一區(qū)塊行以該第一區(qū)塊結(jié)束。23.根據(jù)權(quán)利要求19所述的編碼器,其特征在于,其中該第一區(qū)塊行是該第二區(qū)塊行的相鄰區(qū)塊行。24.根據(jù)權(quán)利要求15所述的編碼器,其特征在于,該第一候選編碼模式包含能夠預(yù)測(cè)位于第二區(qū)塊行的第二區(qū)塊的熵編碼狀態(tài)的編碼模式。25.根據(jù)權(quán)利要求24所述的編碼方法,其特征在于, 該第一區(qū)塊行是該第二區(qū)塊行的相鄰區(qū)塊行; 該第二區(qū)塊行以該第二區(qū)塊開(kāi)始;以及 該第一區(qū)塊行以該第一區(qū)塊結(jié)束。26.根據(jù)權(quán)利要求24所述的編碼方法,其特征在于,該第二區(qū)塊是在該第一區(qū)塊熵編碼之前熵編碼的。27.根據(jù)權(quán)利要求15所述的編碼器,其特征在于,其中該波前并行編碼程序包含基于文本自適應(yīng)可變長(zhǎng)度熵編碼。28.根據(jù)權(quán)利要求15所述的編碼器,其特征在于,其中該幀分區(qū)是幀、該幀中的切片、或者該幀中的方塊。
【文檔編號(hào)】H04N19/96GK105934950SQ201580005495
【公開(kāi)日】2016年9月7日
【申請(qǐng)日】2015年7月8日
【發(fā)明人】吳東興, 周漢良, 李坤儐
【申請(qǐng)人】聯(lián)發(fā)科技股份有限公司