編碼方法與解碼方法、編解碼系統(tǒng)、編碼器與解碼器的制造方法
【技術(shù)領(lǐng)域】
[0001]本公開涉及一種對編碼單元進行編碼與解碼的編碼方法與解碼方法,以及使用此方法的編解碼系統(tǒng)、編碼器與解碼器。
【背景技術(shù)】
[0002]隨著科技的演進,視頻顯示器的解析、規(guī)格、尺寸越來越高,人們對視頻畫面質(zhì)量與尺寸的要求也隨之不斷上升。為滿足此需求,國際電信聯(lián)盟(ITU-T)下的視頻編碼專家小組VCEG(Video Coding Experts Group)與國際標(biāo)準(zhǔn)化組織IS0/IEC下的動態(tài)畫像專家小組MPEG(Moving Picture Experts Group)共同成立視頻編碼聯(lián)合工作小組JCT-VC(JointCollaborative Team on Video Coding),并開始 H.265/HEVC(High Efficiency VideoCoding)專案,目標(biāo)為提供比H.264/AVC (Advanced Video Coding)視頻壓縮標(biāo)準(zhǔn)更高的編碼效率(在相同主觀質(zhì)量下約可節(jié)省50%的位元率),尤其以高解析度(High Definit1n,HD)、超高解析度(Ultra High Definit1n, Ultra HD)等解析度高的視頻為重。
[0003]此大尺寸與高解析度的視頻應(yīng)用的環(huán)境多以自然視頻圖像為主,并已于2013年完成制訂,目前正在制定的是H.265/HEVC應(yīng)用范圍擴展(Range Extens1ns),其中包含制定針對屏幕分享應(yīng)用服務(wù)所需要的屏幕視頻內(nèi)容編碼(Screen Content Coding,SCC)標(biāo)準(zhǔn)。屏幕分享的視頻內(nèi)容通常會有混合的視頻內(nèi)容素材,例如畫面可能同時包含自然圖像、大量文字圖片、鼠標(biāo)指標(biāo)及各種線條等,由于此屏幕應(yīng)用環(huán)境已不符H.265/HEVC當(dāng)初所設(shè)計的目標(biāo),故JCT-VC近來已將重心轉(zhuǎn)至發(fā)展新的高效能屏幕編碼標(biāo)準(zhǔn)技術(shù)。SCC標(biāo)準(zhǔn)乃基于H.265/HEVC現(xiàn)有的工具下進行開發(fā),例如,單顏色模式(Single color mode)與調(diào)色盤模式(Palette mode)等,便是屬于SCC標(biāo)準(zhǔn)的編碼技術(shù)。
[0004]單顏色模式是藉由搜尋編碼單元(Coding Unit,⑶)區(qū)塊的鄰近像素,并從此些鄰近像素中找到一個顏色來表示編碼單元區(qū)塊內(nèi)的所有像素。之后,編碼端便將對應(yīng)于此一個像素的鄰近像素的索引傳輸?shù)浇獯a端。而調(diào)色盤模式的技術(shù)概念則是搜尋一個或多個顏色來代表現(xiàn)在正在編碼中的編碼單元區(qū)塊內(nèi)的畫面,并利用這些顏色所對應(yīng)到的索引來對編碼單元內(nèi)的每一個像素進行索引編號。編碼端會使用此些顏色所對應(yīng)到的索引來建立出一個索引地圖,并將一個或多個代表顏色以及索引地圖內(nèi)對應(yīng)每個像素的顏色的索引傳送到解碼端。由此可知,在上述調(diào)色盤模式中,若以多個顏色來代表現(xiàn)在正在編碼中的編碼單元區(qū)塊的畫面時,則需傳送多個代表顏色以及對應(yīng)每個像素的顏色的索引,因此,造成編碼效能的降低。據(jù)此,如何能提升編碼的效能,以減少編碼運算中不必要的傳輸與計算,已成為當(dāng)務(wù)之急。
【發(fā)明內(nèi)容】
[0005]本公開提供一種編碼方法與解碼方法以及使用此方法的編解碼系統(tǒng)、編碼器與解碼器,其能夠有效地提升屏幕視頻編碼技術(shù)的編碼效能。
[0006]本公開的一范例實施例提出一種編碼方法,本編碼方法包括:接收一畫面的第一編碼單元,此第一編碼單元具有以LXL矩陣形式的多個像素,且L為正整數(shù)。本編碼方法還包括:在所述畫面中的多個像素中選出兩個像素作為第一索引像素與第二索引像素,其中第一索引像素的顏色不同于第二索引像素的顏色。本編碼方法也包括:對第一編碼單元中的每一像素進行索引編號以產(chǎn)生一索引地圖,其中在索引地圖中第一編碼單元的每一像素的顏色是以對應(yīng)第一索引像素的索引值或?qū)?yīng)第二索引像素的索引值來呈現(xiàn)。本編碼方法還包括:依據(jù)索引地圖產(chǎn)生對應(yīng)第一編碼單元的一編碼值,以及將編碼值傳送至解碼端,其中在索引地圖中僅對應(yīng)第一編碼單元的第1個被掃描像素的索引值被記錄在編碼值中。
[0007]本公開的一范例實施例提出一種解碼方法,本解碼方法包括:接收對應(yīng)第一編碼單元的編碼值,其中第一編碼單元具有以一 LXL矩陣形式排列的多個像素,并且L為正整數(shù)。本解碼方法還包括:根據(jù)此編碼值中的一索引值、至少一復(fù)制模式以及至少一跑字符的值重建對應(yīng)第一編碼單元的索引地圖,其中所接收的編碼值僅針對在索引地圖中的第一編碼單元的第1個被掃描像素的索引值進行解碼。本解碼方法還包括:獲得第一索引像素的顏色與第二索引像素的顏色,以及根據(jù)第一索引像素的顏色、第二索引像素的顏色與索引地圖的多個索引值重建第一編碼單元的多個像素,其中第一索引像素的顏色不同于第二索引像素的顏色。
[0008]本公開的一范例實施例提出一種編碼器,此編碼器包括:編碼模塊、顏色選擇模塊、索引設(shè)定模塊以及索引地圖建立模塊。編碼模塊會接收一畫面的第一編碼單元,此第一編碼單元具有以LXL矩陣形式的多個像素,且L為正整數(shù)。顏色選擇模塊會在第一編碼單元的多個像素中選出兩個像素作為一第一索引像素與一第二索引像素,并且第一索引像素的顏色不同于第二索引像素的顏色。索引地圖建立模塊對第一編碼單元中的每一像素進行索引編號以產(chǎn)生一索引地圖,并且在索引地圖中第一編碼單元的每一像素的顏色是以對應(yīng)第一索引像素的索引值或?qū)?yīng)第二索引像素的索引值來呈現(xiàn)。此外,在索引地圖中僅對應(yīng)第一編碼單元的第1個被掃描像素的索引值被記錄在編碼值中。之后,編碼模塊會將編碼值傳送至解碼器。
[0009]本公開的一范例實施例提出一種解碼器,此解碼器包括:編碼值接收模塊與解碼模塊。編碼值接收模塊接收對應(yīng)第一編碼單元的編碼值,并且第一編碼單元具有以LXL矩陣形式的多個像素,其中L為正整數(shù)。解碼模塊會根據(jù)編碼值中的一索引值、至少一復(fù)制模式以及至少一跑字符的值重建對應(yīng)第一編碼單元的索引地圖,并且所接收的編碼值僅針對索引地圖中的第一編碼單元的第1個被掃描像素的索引值進行解碼。此外,解碼模塊會獲得第一索引像素的顏色與第二索引像素的顏色,并且根據(jù)此第一索引像素的顏色、第二索引像素的顏色與索引地圖的多個索引值重建第一編碼單元的像素,其中第一索引像素的顏色不同于第二索引像素的顏色。
[0010]本公開的一范例實施例提出一種編解碼系統(tǒng),本編解碼系統(tǒng)包括:編碼器與解碼器。編碼器會接收一畫面的第一編碼單元,此第一編碼單元具有以LXL矩陣形式的多個像素,且L為正整數(shù)。接著,編碼器會在所述畫面中的多個像素中選出兩個像素作為一第一索引像素與一第二索引像素,并且第一索引像素的顏色不同于第二索引像素的顏色。此外,編碼器會對第一編碼單元中的每一像素進行索引編號以產(chǎn)生一索引地圖,其中在索引地圖中第一編碼單元的每一像素的顏色是以對應(yīng)第一索引像素的索引值或?qū)?yīng)第二索引像素的索引值來呈現(xiàn)。在索引地圖中僅對應(yīng)第一編碼單元的第1個被掃描像素的索引值被記錄在編碼值中。并且,編碼器會將編碼值傳送至解碼器。
[0011]基于上述,本公開的范例實施例所提出的編碼方法與解碼方法及使用此方法的編解碼系統(tǒng)、編碼器與解碼器能夠藉由僅傳送對應(yīng)編碼單元的像素之中的第1個被掃描像素的索引值而有效地減少編碼運算時的傳輸量,進而大幅減少編碼運算所需要的時間以提升編碼效能。
[0012]為讓本公開的上述特征和優(yōu)點能更明顯易懂,下文特舉實施例,并配合附圖作詳細(xì)說明如下。
【附圖說明】
[0013]圖1A是根據(jù)本公開的第一范例實施例所繪示的編碼器。
[0014]圖1B是根據(jù)本公開的第一范例實施例所繪示的解碼器。
[0015]圖1C是根據(jù)本公開的第一范例實施例所繪示的編解碼芯片。
[0016]圖2A與圖2B是根據(jù)本公開的第一范例實施例所繪示的圖像編碼運作示意圖。
[0017]圖3是根據(jù)本公開的第一范例實施例所繪示的像素對表的一個范例。
[0018]圖4是根據(jù)本公開的第一范例實施例所繪示的設(shè)定索引值的一個范例。
[0019]圖5是根據(jù)本公開的第一范例實施例所繪示的建立索引地圖的一個范例。
[0020]圖6A與圖6B是根據(jù)本公開的第一范例實施例所繪示的產(chǎn)生編碼值的一個范例。
[0021]圖7為根據(jù)本公開第一范例實施例所繪示的編碼方法的流程圖。
[0022]圖8A與圖8B為根據(jù)本公開第一范例實施例所繪示的編解碼的程序代碼。
[0023]圖9A為根據(jù)本公開第一范例實施例所繪示的以向左復(fù)制跑模式為例的對編碼單元進行掃描的程序代碼。
[0024]圖9B為根據(jù)本公開第一范例實施例所繪示的以向上復(fù)制跑模式為例的對編碼單元進行掃描的程序代碼。
[0025]圖10A?圖10G是根據(jù)本公開的第一范例實施例所繪示的根據(jù)編碼值重建索引地圖的一個范例。
[0026]圖11為根據(jù)本公開第一范例實施例所繪示的解碼方法的流程圖。
[0027]圖12是根據(jù)本公開的第二范例實施例所繪示的圖像編碼運作示意圖。
[0028]圖13A與圖13B是根據(jù)本公開的第二范例實施例所繪示的像素分群運作示意圖。
[0029]圖14是根據(jù)本公開的第三范例實施例所繪示的圖像編碼運作示意圖。
[0030]圖15A與圖15B是根據(jù)本公開的第三范例實施例所繪示的像素分群運作示意圖。
[0031]【符號說明】
[0032]100:編解碼芯片
[0033]102、130、150:存儲電路
[0034]104、140、160:處理器電路
[0035]106:緩沖存儲器
[0036]110:編碼器
[0037]120:解碼器
[0038]112:編碼模塊
[0039]114:顏色選擇模塊
[0040]116:索引設(shè)定模塊
[0041]118:索引地圖建立模塊
[0042]122:編碼值接收模塊
[0043]124:解碼模塊
[0044]200:第一編碼單元
[0045]202、204、206、208、210、230、250:像素
[0046]220、1220:至少一第二編碼單元
[0047]1202、1204:第二編碼單元
[0048]300:像素對表
[0049]302:識別值欄位
[0050]304:像素對欄位
[0051]500、900:索引地圖
[0052]600:編碼值
[0053]610、620、640、660、670:向左復(fù)制跑模式
[0054]630、650:向上復(fù)制跑模式
[0055]612:索引地圖的第1行第1列個索引
[0056]616、626、636、646、656、666、676:位移數(shù)
[0057]618:跑字符的值
[0058]60、61、62、63、64、65、66、67、68、69、70、71、72、73、74、75:像素
[0059]1000、1200-1、1200-2:鄰近范圍
[0060]S701、S703、S705、S707:編碼方法的步驟
[0061]S1001、S1003、S1005:解碼方法的步驟
[0062]1102、1104、1106、1108、1112、1114、1116、1302、1304、1306、1308、1310、1312、1314、1316:叢集
[0063]C0、C1、C2、C3、C4、C5、C6:顏色
【具體實施方式】
[0064][第一范例實施例]
[0065]圖1A是根據(jù)本公開的第一范例實施例所繪示的編碼器。
[0066]請參照圖1A,編碼器110包括編碼模塊112、顏色選擇模塊114、索引設(shè)定模塊116、索引地圖建立模塊118、存儲電路130與處理器電路140。
[0067]在本范例實施例中,存儲電路130用以存儲各種數(shù)據(jù)、程序代碼或待處理及處理后的圖像。例如,存儲電路130可以是存儲器(memory)或硬盤(Hard Disk Drive,HDD)等存儲介質(zhì),且不限于此。處理器電路140用以控制編碼器110的整體運作。例如,處理器電路140可以是中央處理器(CPU)、微處理器(micro-processor)或嵌入式控制器(embeddedcontroller),本公開并不加以限制。處理器電路140是耦接至存儲電路130,并且用以控制編碼模塊112、顏色選擇模塊114、索引設(shè)定模塊116與索引地圖建立模塊118來進行編碼操作。
[0068]編碼模塊112用以接收一畫面中的一編碼單元(以下稱為第一編碼單元),并且第一編碼單元具有以一LXL矩陣形式排列的多個像素,其中L為正整數(shù)。具體而言,在Η.265/HEVC的標(biāo)準(zhǔn)下,是以一個編碼樹單元(Coding Tree Unit, CTU)作為編碼單元編碼時的最大處理區(qū)塊,此編碼樹單元的大小通常是設(shè)定為64X64的區(qū)塊。編碼單元則可以是小于或等于編碼樹單元的區(qū)塊大小。舉例而言,編碼單元為一正方矩形并且其大小可以是64X64、32X32、16X16與8X8的區(qū)塊。值得注意的是,在本公開范例實施例中所述的編碼單元及鄰近范圍的大小的單位皆為像素。在本范例實施例中,為了方便說明,以下將假設(shè)第一編碼單元的大小為4X4的區(qū)塊。
[0069]顏色選擇模塊114用以在編碼模塊112所接收的第一編碼單元的多個像素中選出兩個不同顏色的像素作為第一索引像素與第二索引像素。在一實施例中,編碼模塊112會在第一編碼單元200的鄰近范圍內(nèi)的多個像素中選出兩個像素作為第一索引像素與第二索引像素,編碼器110還包括像素對表建立模塊(未繪示),像素對表建立模塊會建立一像素對表以記錄對應(yīng)上述多個像素的識別值與像素對,其中,像素對表建立模塊記錄識別值與像素對的實施例將之后詳細(xì)說明。然而,本公開并不限于此,例如,在另一范例實施例中,編碼模塊112可從畫面中所有像素中選出兩個像素作為第一索引像素與第二索引像素。目前視頻圖像應(yīng)用皆是使用彩色顯示,并且畫面中每個像素皆會由三個編碼構(gòu)成要素組成,舉例來說,每一個像素是藉由YUV顏色編碼方法而被編碼或以RGB顏色模型而被呈現(xiàn)。其中,YUV顏色編碼方法用以編譯顏色空間(color space),其中「Y」表示明亮度(Luminance、Luma),「