一種實時數(shù)字圖像壓縮預(yù)測方法與系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于半導(dǎo)體顯示與圖像處理領(lǐng)域,具體涉及一種基于預(yù)測的實時數(shù)字圖像壓縮預(yù)測方法。
【背景技術(shù)】
[0002]隨著集成電路設(shè)計與制造技術(shù)和半導(dǎo)體顯示技術(shù)的發(fā)展,顯示器的分辨率越來越高,如今支持4Kx2K分辨率的顯示屏已經(jīng)在市場上普遍出現(xiàn),支持8Κχ4Κ分辨率的顯示屏也已問世,未來支持更高分辨率的顯示屏也會出現(xiàn)。在保證顯示器刷新率不變的情況下,顯示器驅(qū)動芯片、時序控制芯片以及圖像處理單元所需要支持的帶寬越來越高。隨之帶來的問題是:現(xiàn)有技術(shù)中,芯片接口工作速率已無法滿足芯片帶寬的要求;芯片整體功耗增加,設(shè)計更為復(fù)雜,芯片及系統(tǒng)設(shè)計成本增加。
[0003]在基于預(yù)測的圖像壓縮方法中,預(yù)測方法的實現(xiàn)是最重要的一步,預(yù)測的準(zhǔn)確性直接決定了最終的壓縮比。如今在計算機圖像壓縮領(lǐng)域中廣泛使用的JPEGLSCJointPhotographic Experts Group-Lossless Standard)標(biāo)準(zhǔn)就是一種成熟的基于預(yù)測的圖像壓縮方法,該標(biāo)準(zhǔn)采用的MAP (Median Adaptive Predict1n)預(yù)測方法。但是MAP預(yù)測方法的運算過程中每個Pixel (像素)的預(yù)測均依賴于前一個像素,故對像素時鐘的時鐘長度存在要求,無法通過在數(shù)字電路中實現(xiàn)像素時鐘域下的流水線操作這種方式來抵消對像素時鐘長度的需求。而該參數(shù)值會隨著圖像分辨率增加而線性減小,當(dāng)圖像分辨率越來越高時,像素時鐘長度越來越短,當(dāng)縮短到一定程度時,基于MAP的預(yù)測方法將因為電路實現(xiàn)的時序無法滿足要求而極大地增加芯片設(shè)計的難度。另外,VESA聯(lián)盟于2014年最新推出的壓縮標(biāo)準(zhǔn) DSC (Display Stream Compress1n Standard)標(biāo)準(zhǔn)米用了改進(jìn)型的 MMAP (ModifiedMedian Adaptive Predict1n)預(yù)測方法,該方法引入了像素群(Group,每3個連續(xù)的像素是一個Group)的概念,其與MAP方法類似,即,MAP是在像素時鐘域的每個時鐘周期預(yù)測一個像素,而MMAP是在每個像素時鐘域的每個時鐘周期預(yù)測三個像素。但是,無論是MAP還是MMAP方法,在數(shù)字電路實現(xiàn)的時候,都存在無法采用在像素時鐘域或者像素群時鐘域下以流水線的方式來優(yōu)化時序,即,MAP預(yù)測方法必須在一個像素時鐘周期之內(nèi)計算完畢,而MMAP預(yù)測方法必須在一個像素群時鐘周期之內(nèi)計算完畢。當(dāng)圖像分辨率達(dá)到一定程度的時候,基于MAP或者M(jìn)MAP的預(yù)測方法將因為數(shù)字電路實現(xiàn)的時序無法滿足要求而極大地增加芯片設(shè)計的難度和復(fù)雜度。
【發(fā)明內(nèi)容】
[0004]本發(fā)明目的在于提供一種便于電路實現(xiàn)以及可時序優(yōu)化的基于預(yù)測的實時數(shù)字圖像壓縮之預(yù)測方法。
[0005]本發(fā)明的技術(shù)方案是:
[0006]—種可時序優(yōu)化的基于預(yù)測的實時數(shù)字圖像壓縮之預(yù)測方法。
[0007]根據(jù)本發(fā)明的像素預(yù)測方法,其數(shù)字電路實現(xiàn)的時序不完全地依賴于像素時鐘,也即不完全地依賴于圖像分辨率,可以隨著圖像分辨率的提高做調(diào)整,從而大大減小了數(shù)字電路實現(xiàn)時對時序的要求,方便電路設(shè)計和實現(xiàn),并支持極高分辨率的圖像壓縮。為便于闡述,本發(fā)明引入兩個參數(shù):一、單元(Unit,其單位為Pixel,表示對一行連續(xù)的像素序列進(jìn)行劃分,每一個劃分為一個Unit) ;二、預(yù)測間隔(Predictor Interval,其單位為Unit,表示每次計算當(dāng)前Unit中的像素的預(yù)測值時所選取的參考單元的位置)。
[0008]—種可時序優(yōu)化的基于預(yù)測的實時數(shù)字圖像壓縮方法的像素預(yù)測方法,其步驟包括:
[0009]I)根據(jù)圖像或者視頻流中每幀圖像分辨率的大小、數(shù)字電路實現(xiàn)的難度、以及壓縮效率的折中,選取一組Unit和Predictor Interval的數(shù)值。一般的原則是,圖像或者視頻流中每幀圖像分辨率越高,數(shù)字電路實現(xiàn)對時序的需求越高,此時,為了降低預(yù)測方法的電路實現(xiàn)過程中對時序的需求,可以適當(dāng)增加Unit的數(shù)值和Predictor Interval的數(shù)值;
[0010]2)根據(jù)選取的Unit和Predictor Interval的取值,對當(dāng)前像素位置依據(jù)本發(fā)明提供的預(yù)測方法進(jìn)行計算得到當(dāng)前像素位置的像素預(yù)測值(在【具體實施方式】中將對本發(fā)明提供的預(yù)測方法進(jìn)行詳細(xì)的闡述);
[0011]3)求得當(dāng)前像素位置的實際像素值與預(yù)測值之間的誤差,對誤差做量化處理,編碼處理,編碼之后的碼字即為壓縮得到的數(shù)據(jù)。
[0012]本發(fā)明的優(yōu)點:
[0013]在實時視頻流的壓縮、解壓縮編解碼方法的電路實現(xiàn)中,由于方法本身的電路實現(xiàn)需要大量的計算過程,也即電路實現(xiàn)需要大量的硬件資源,所以時序就成為方法的電路實現(xiàn)中最關(guān)鍵的一環(huán)。為了滿足電路對時序的要求,一種可彳丁的方案是將視頻流中的每一幀圖像割裂為左、右半幀圖像,分別同時對左、右半幀圖像進(jìn)行壓縮,在解壓縮之后再將恢復(fù)的左、右半幀圖像拼接為完整的一幀圖像。采用這種方案雖然可以將電路對時序的要求降低一半,但是,由此帶來的代價是增加一倍的硬件資源,也即編解碼部分的電路面積,功耗和成本增加一倍。采用本發(fā)明提供的預(yù)測方法,能夠在實時地計算得到較準(zhǔn)確的預(yù)測值從而提高壓縮比的同時,便于將預(yù)測方法以流水線的方式實現(xiàn),降低數(shù)字電路對時序的需求;對于某種特定分辨率的實時圖像或者實時視頻流,能夠提供合適的Unit和PredictorInterval的值,增加預(yù)測方法的流水線實現(xiàn)方式的流水線級數(shù),從而滿足數(shù)字電路對時序的需求。本發(fā)明有助于降低硬件設(shè)計復(fù)雜度。
【附圖說明】
[0014]圖1為采用本發(fā)明提供的預(yù)測方法實施例實現(xiàn)的一種壓縮系統(tǒng)的框圖;
[0015]圖2為采用本發(fā)明提供的預(yù)測方法實施例實現(xiàn)的一種解壓縮系統(tǒng)的框圖;
[0016]圖3(a)所示為本發(fā)明實施例所提供的一種預(yù)測方法的執(zhí)行流程圖。
[0017]圖3(b)所示為圖3(a)實施例對應(yīng)流程圖中,選取Unit和Predictor Interval的十進(jìn)制數(shù)值步驟。
[0018]圖4(a)所示為本發(fā)明提供的預(yù)測方法實施例系統(tǒng)框圖與操作流圖。
[0019]圖4(b)所示為本發(fā)明提供的預(yù)測方法實施例的一種時序圖。
[0020]上述圖中:1_本發(fā)明提出的一種預(yù)測器;2_減法器;3_量化器;4_編碼器;5-行存儲器;6_反量化器;7_解碼器;8_加法器;9_緩存。預(yù)測器、減法器、量化器、反量化器、編碼器、解碼器、加法器、行存儲器、緩存。預(yù)測器用于預(yù)測當(dāng)前像素位置,獲得當(dāng)前像素的預(yù)測值;減法器用于獲得當(dāng)前像素位置的像素的實際值與預(yù)測值的誤差;量化器用于對當(dāng)前像素位置的誤差進(jìn)行量化;反量化器用于將量化之后得到的誤差量化值進(jìn)行反量化得到反量化之后的誤差值;編碼器用于對量化器輸出的誤差量化值進(jìn)行編碼;解碼器用于解碼得到誤差量化值;加法器用于將量化之后的誤差值與所述方法步驟四所得預(yù)測值相加求得得壓縮并解壓縮恢復(fù)得到的像素值;行存儲器用于存儲上一行經(jīng)過壓縮并解壓縮恢復(fù)得到的像素值;緩存用于存儲當(dāng)前行的經(jīng)過壓縮并解壓縮恢復(fù)得到的像素值。
【具體實施方式】
[0021]下面結(jié)合說明書附圖,通過實例對本發(fā)明做進(jìn)一步說明。
[0022]采用本發(fā)明提供的預(yù)測方法實現(xiàn)的一種壓縮系統(tǒng),如圖1所示。該壓縮系統(tǒng)的工作流程為:首先求得預(yù)測所得到的預(yù)測值與真實的像素值之間的誤差值,然后對差值進(jìn)行有損或者無損的量化,然后對量化得到的值進(jìn)行編碼,編碼產(chǎn)生的碼流通過某種通信接口協(xié)議,比如 HDMI (High Definit1n Multimedia Interface,高清多媒體接口)、DP(DisplayPort接口)、MIPI (Mobile Industry Processor Interface,移動產(chǎn)業(yè)處理器接口)等,送入解壓縮系統(tǒng);由于該預(yù)測方法在預(yù)測某一像素時需要依賴上一行的相關(guān)位置的像素值,存儲器5即用來緩存上一行的像素值。與之對應(yīng)的采用本發(fā)明提供的預(yù)測方法實現(xiàn)的一種解壓縮系統(tǒng),如圖2所示。該解壓縮系統(tǒng)的工作流程為:首先將輸入的碼流解碼,將解碼后的數(shù)據(jù)反量化得到誤差,然后將誤差與預(yù)測值相加得到實際的像素值并輸出,用來驅(qū)動顯示屏或者其它中轉(zhuǎn)設(shè)備;由于該預(yù)測方法在預(yù)測某一像素時需要依賴上一行的相關(guān)位置的像素值,存儲器5即用來緩存上一行的像素值。
[0023]本發(fā)明提供的預(yù)測方法一個實施例由圖3(a)、圖3(b)所示,包括以下步驟:
[0024]圖3(a)所示為本發(fā)明所提供的一種預(yù)測方法的執(zhí)行流程圖。該預(yù)測方法以Unit作為計算單元:對于每個Unit單元內(nèi)部的第一個像素,在計算其預(yù)測值的過程中所選取的參考像素來自于與當(dāng)前Unit間隔為Predictor Interval的長度的左側(cè)的那個Unit的最后一個像素;對于Unit單元內(nèi)部的非第一個像素,在計算其預(yù)測值的過程中所選取的參考像素來自于當(dāng)前Unit內(nèi)部的與當(dāng)前像素緊鄰的左側(cè)的那個像素。圖3(b)所示為在選取Unit 和 Predictor Interval 的十進(jìn)制數(shù)值:Unit = 4,Predictor Interval = I 的情況下的圖像的第i行和第i+Ι行,其中,第i行的q0?ql6為經(jīng)過壓縮和解壓縮之后的像素的值(即,存儲在圖1中的“5行存儲器”中);第i+Ι行的QO?Q16為經(jīng)過壓縮和解壓縮之后的像素的值(即,存儲在圖1中的“9緩存”中)。用s0?sl6表示第i+Ι行實際輸入的像素值;用PO?pl6表示第i+Ι行像素預(yù)測值。由于Unit = 4,如圖3(b)將每一行的像素劃分為長度為4的一個Unit。第i行中,q0、ql、q2、q3為一個Unit ;q4、q5、q6、q7為一個 Unit ;依次類推。第 i+Ι 行中,Q0、QU Q2、Q3 為一個 Unit ;Q4、Q5、Q6、Q7 為一個 Unit ;依次類推。
[0025]下面以計算Unit (p8,p9,plO,pll)為例:
[0026]QO = p0+反量化(量化(s0-p0)) ; (I)
[0027]Ql = pi+反量化(量化(sl-pl)) ; (2)
[0028]Q2 = p2+ 反量化(量化(s2_p2)) ; (3)
[0029]Q3 = p3+ 反量化(量化(s3_p3)) ; (4)
[00