TWI575937B - Image prediction and decoding method and encoding / decoder - Google Patents
Image prediction and decoding method and encoding / decoder Download PDFInfo
- Publication number
- TWI575937B TWI575937B TW104124025A TW104124025A TWI575937B TW I575937 B TWI575937 B TW I575937B TW 104124025 A TW104124025 A TW 104124025A TW 104124025 A TW104124025 A TW 104124025A TW I575937 B TWI575937 B TW I575937B
- Authority
- TW
- Taiwan
- Prior art keywords
- pixel
- sub
- pixels
- flatness
- value
- Prior art date
Links
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
本發明是關於一種影像編解碼,尤其是關於影像編解碼之預測畫素之值的預測方法。
現今科技蓬勃發展,為符合各種電子裝置需求,影像處理技術也隨之提升。一般民眾普遍期望影像之品質越高越好,惟影像品質越高,檔案越大,佔用電子裝置之儲存容量亦越大,且電子裝置處理影像資料時,容易產生傳輸速度緩慢以及耗電量過大之問題。因此,為解決此類問題,用於影像處理之壓縮技術即格外重要。
資料壓縮可分為無失真壓縮及失真壓縮,無失真壓縮可經過重建回復原始資料,而失真壓縮則在重建過程中會遺失部分資訊,然失真壓縮的壓縮效能卻比無失真壓縮之壓縮效能高很多。目前壓縮方法很多,例如預測畫素之值,進而計算出預測值與畫素之實際值之差值,再對此差值進行編碼,採用此種壓縮方式之編碼方法包含有差分脈衝編碼調變(Differential pulse-code modulation,下稱DPCM)。DPCM主要包含預測器,預測器之預測方法為DPCM之核心機制,預測方法的準確度關係著編碼長度,也就是預測方法之準確度會影響編碼資料的長度。
習知運用預測方式進行編碼之編碼電路會使用許多預測方法,並
透過運算選出當下最好的一種預測方法,以預測畫素之值,再計算出預測值與畫素之實際值的差值,再對此差值進行編碼而產生編碼資料,如此即對影像資料進行編碼。編碼資料會提供至解碼電路,解碼電路對編碼資料進行解碼,以得到解碼資料,進而傳輸解碼資料給影像顯示裝置,以顯示影像。習用編碼電路於提供編碼資料至解碼電路時,習用編碼電路會將預測方法之選擇結果提供至解碼電路,以供解碼電路依據此選擇結果進行解碼。若使用越多之預測方法則預測會越準確,惟此方法需要更多位元紀錄所選擇之結果,如此解碼電路提供的資料越多;若只使用一種預測方式,就毋須額外紀錄所使用之預測方法,但只用一種預測方法時,其預測效能不佳。目前發展出一種低複雜度預測方法(Low Complexity Lossless Compression for Images,下稱LOCO-I),LOCO-I只使用一種預測方法,但其包含了三種預測選擇。LOCO-I雖然改善了習知之預測方法,但其效能仍然有限。
綜上所述,習知影像編碼之預測方法,尚有需要進一步改良之需求,除了讓編碼電路不需提供額外資訊至解碼電路表示編碼電路所使用之預測方式之外,更提高預測的精確度,以提高編碼電路之編碼效能。
本發明之主要目的在於提供一種影像編解碼之預測方法,編碼電路運用此預測方法對畫素進行預測後,不需要提供額外資訊給解碼電路告知預測選擇,解碼電路依照此預測方法可得知編碼電路之預測選擇,如此降低編碼電路提供給解碼電路的資料量,且也降低資料儲存於儲存單元所佔用之空間。
本發明之另一目的在於提供一種影像編解碼之預測方法,其包含多種預測選擇,以提高預測之精確度。
本發明之又一目的在於提供一種影像編解碼之預測方法,其會依據先前畫素的資料對目前預測之畫素進行預測,如此提高預測的精確度。
本發明係揭露一種影像編解碼之預測方法,其用於預測一影像資料之複數畫素之每一子畫素之值,以預測每一畫素之值,以進行該影像編解碼,該些畫素用於顯示一影像,預測方法先判斷畫素是否位於影像之起始邊緣,當畫素位於影像之起始邊緣時,進行一邊緣預測模式,而決定畫素之子畫素之一預測值;當畫素並非位於影像之起始邊緣時,依據複數參考畫素之值計算子畫素之複數方向平坦度,每一方向平坦度分別對應一方向,該些參考畫素為已預測過之複數畫素之複數子畫素,每一方向平坦度分別對應一預測選擇,每一預測選擇分別對應一相鄰子畫素,每一相鄰子畫素相鄰於目前預測之子畫素並位於不同方向;依據該些方向平坦度與該些相鄰子畫素之至少一而決定目前預測之子畫素之預測值。
此外,本發明更揭露當目前預測之畫素為影像資料之一條水平行畫素資料的一第N個畫素下,且第N個畫素並非位於影像之起始邊緣時,計算第N個畫素之子畫素之該些方向平坦度,計算Q個畫素之每一個畫素之子畫素之複數方向平坦度,該些Q個畫素位於該條水平行畫素資料,且並非位於影像之起始邊緣並位於第N個畫素之前,對第N個畫素之子畫素之該些方向平坦度與該些Q個畫素之每一個畫素之子畫素之該些方向平坦度之對應相同方向者進行
加總,而計算出複數方向平坦度總合,該些方向平坦度總合分別對應該些預測選擇,依據該些方向平坦度總合選擇該些預測選擇之一,以所選擇之預測選擇所對應之相鄰子畫素之值為第N個畫素之子畫素之預測值。
10‧‧‧壓縮電路
11‧‧‧預測器
12‧‧‧第一運算器
13‧‧‧量化器
14‧‧‧編碼器
15‧‧‧反量化器
16‧‧‧第二運算器
17‧‧‧緩衝器
18‧‧‧計數器
20‧‧‧解碼電路
21‧‧‧解碼器
22‧‧‧反量化器
23‧‧‧預測器
24‧‧‧緩衝器
25‧‧‧運算器
26‧‧‧計數器
30‧‧‧儲存單元
a‧‧‧子畫素
b‧‧‧子畫素
c‧‧‧子畫素
Cnx1‧‧‧第一計數訊號
Cnx2‧‧‧第一計數訊號
Cny1‧‧‧第二計數訊號
Cny2‧‧‧第二計數訊號
d‧‧‧子畫素
dn‧‧‧差值
dn_dq‧‧‧反量化值
dn_q‧‧‧量化值
e‧‧‧子畫素
f‧‧‧子畫素
Pn‧‧‧預測值
RST1‧‧‧重置訊號
RST2‧‧‧重置訊號
Sn‧‧‧編碼資料
x‧‧‧子畫素
Xn‧‧‧畫素值
Xn_q‧‧‧解碼資料
第一圖:其為本發明之編碼電路與解碼電路之一實施例的方塊圖;第二圖:其為本發明之預測方法之一實施例的流程圖;第三圖:其為本發明之影像資料之一實施例的示意圖;第四圖:其為位於第二條垂直欄畫素資料之子畫素的示意圖;第五圖:其為位於第二條垂直欄畫素資料後且並非位於最後一條垂直欄畫素資料之子畫素的示意圖;第六圖:其為位於最後一條垂直欄畫素資料之子畫素的示意圖;第七圖:其為本發明之預測方法之另一實施例的流程圖;以及第八圖:其為本發明之預測方法之又一實施例的流程圖。
在說明書及後續的申請專利範圍當中使用了某些詞彙來指稱特定的元件。所屬領域中具有通常知識者應可理解,硬體製造商可能會用不同的名詞來稱呼同一個元件。本說明書及後續的申請專利範圍並不以名稱的差異來作為區分元件的方式,而是以元件在功能上的差異來作為區分的準則。在通篇說明書及後續的請求項當中所提及的「包含」係為一開放式的用語,故應解釋成「包含但不限定於」。以外,「耦接」一詞在此係包含任何直接及間接的電氣連接手段。因此,若文中描述一第一裝置耦接於一第二裝置
,則代表該第一裝置可直接電氣連接於該第二裝置,或透過其他裝置或連接手段間接地電氣連接至該第二裝置。
為使 貴審查委員對本發明之特徵及所達成之功效有更進一步之瞭解與認識,謹佐以較佳之實施例及配合詳細之說明,說明如後:請參照第一圖,其為本發明之編碼電路與解碼電路之一實施例的方塊圖。於此實施例中,編碼電路10與解碼電路20為差分脈衝編碼調變(Differential pulse-code modulation,DPCM)架構。如圖所示,編碼電路10包含有一預測器11、一第一運算器12、一量化器13(quantizer)、一編碼器14、一反量化器15(de-quantizer)、一第二運算器16、一緩衝器17與一計數器18。一解碼電路20包含有一解碼器21、一反量化器22、一預測器23、一緩衝器24、一運算器25與一計數器26。
編碼電路10依序接收一影像資料之複數畫素之畫素值Xn,以對影像資料進行編碼,而產生一編碼資料Sn。上述之影像資料之該些畫素值Xn用於顯示影像。編碼電路10耦接一儲存單元30,並傳送編碼資料Sn至儲存單元30,編碼資料Sn儲存於儲存單元30。解碼電路20耦接儲存單元30,以讀取編碼資料Sn,並對編碼資料Sn進行解碼,以產生一解碼資料Xn_q。解碼電路20傳送解碼資料Xn_q至一影像顯示裝置(圖未示),以顯示影像。於本發明之一實施例中,影像顯示裝置為行動電話。
編碼電路10之預測器11用於預測影像資料之每一畫素之值,而依序輸出一預測值Pn。預測值Pn與畫素值Xn傳輸至第一運算器12,
而計算出預測值Pn與畫素值Xn的差值dn。量化器13耦接第一運算器12,而接收差值dn,並對差值dn進行量化處理,以產生一量化值dn_q。編碼器14耦接量化器13,而接收量化值dn_q,並對量化值dn_q進行編碼,以產生編碼資料Sn。於本發明之一實施例中,編碼器14為一熵編碼器(entropy encoder)。編碼器14耦接儲存單元30,以傳送編碼資料Sn至儲存單元30。反量化器15耦接量化器13,而接收量化值dn_q,並對量化值dn_q進行反量化處理,以產生一反量化值dn_dq。
第二運算器16耦接反量化器15與預測器11,以接收反量化值dn_dq與預測值Pn,而加總反量化值dn_dq與預測值Pn,以輸出一總合值,此總合值為一畫素輸出值且同於解碼電路20解碼編碼資料Sn所產生之解碼資料Xn_q。第二運算器16傳送畫素輸出值至預測器11,以儲放畫素輸出值至預測器11內之緩衝器17。預測器11依據緩衝器17所儲存之畫素輸出值預測下一個畫素之值,而輸出預測值Pn。由於第二運算器16之畫素輸出值相同於解碼電路20解碼編碼資料Sn所產生之解碼資料Xn_q,其表示預測器11依據先前畫素之解碼資料預測下一個畫素之值,而緩衝器17所儲存之畫素輸出值(解碼資料)即為參考畫素值。
計數器18接收該些畫素值Xn,而計數畫素,並產生一第一計數訊號Cnx1與一第二計數訊號Cny1至預測器11。計數器18接收一重置訊號RST1,重置訊號RST1用於重置計數器18。預測器11依據計數訊號Cnx1與Cny1即可得知目前預測之畫素位於影像之位置,進而依據畫素所在位置預測畫素之值。預測器11之預測方式將會於後詳細說明。
解碼電路20之解碼器21耦接儲存單元30,而讀取編碼資料Sn,並對編碼資料Sn進行解碼,解碼器21所產生之資料會相同於編碼器14編碼前的量化值dn_q。於本發明之一實施例中,解碼器21為一熵解碼器(entropy decoder)。反量化器22耦接解碼器21,而接收解碼器21輸出之量化值dn_q,並對量化值dn_q進行反量化,反量化器22之架構與編碼電路10之反量化器15之架構相同,所以反量化器22所產生之值相同於反量化器15所產生之反量化值dn_dq。
預測器23用於預測解碼電路20目前解碼之畫素之值,預測器23之預測方法同於編碼電路10之預測器11的預測方法,所以就同一畫素而言,預測器23預測之值會同於編碼電路10之預測器11之預測值Pn,因此編碼電路10不需要提供額外資訊給解碼電路20告知預測選擇,如此降低編碼電路10提供給解碼電路20的資料量,相對編碼電路10傳輸給儲存單元30之資料量也會降低,如此降低資料儲存於儲存單元30所佔用之空間。預測器23輸出之預測值Pn與反量化器22輸出之反量化值dn_dq傳輸至運算器25,運算器25加總反量化值dn_dq與預測器23之預測值Pn,而輸出一總合值,此總合值為解碼資料Xn_q。運算器25傳送解碼資料Xn_q至預測器23,以儲放解碼資料Xn_q至預測器23內之緩衝器24。預測器23依據緩衝器24所儲存之解碼資料Xn_q預測下一個畫素之值,而輸出預測值Pn。
計數器26耦接解碼器21,而接收該些量化值dn_q,而計數該些量化值dn_q,即計數解碼電路20目前解碼之畫素,並產生一第一計數訊號Cnx2與一第二計數訊號Cny2至預測器23,預測器23依據計
數訊號Cnx2與Cny2得知解碼電路20目前解碼之畫素位於影像之位置,進而依據畫素所在位置預測畫素之值。計數器26之架構同於編碼電路10之計數器18之架構,計數器26接收一重置訊號RST2,重置訊號RST2用於重置計數器26。於本發明之另一實施例中,計數器26耦接反量化器22,而接收該些反量化值dn_dq,而計數該些反量化值dn_dq,並產生第一計數訊號Cnx2與第二計數訊號Cny2至預測器23,如此也可以計數解碼電路20目前解碼之畫素,而得知解碼電路20目前解碼之畫素位於影像之位置。
一般而言,影像資料包含複數條水平行畫素資料,主機(圖未示)傳送影像資料至編碼電路10時,其通常是依序傳送水平行畫素資料。每一條水平行畫素資料即表示顯示於影像顯示裝置之每一條水平行影像。舉例來說,若顯示解析度為1280*720,其表示一幅影像包含有1280條水平行畫素資料(參閱第三圖,H=1280,Y=0~1279),每一條水平行畫素資料包含有720個畫素點的資料(參閱第三圖,W=720,X=0~719)。此外,影像資料也可以表示為複數條垂直欄畫素資料,每一條垂直欄畫素資料即表示顯示於影像顯示裝置之每一條垂直欄影像。顯示解析度為1280*720即表示影像資料包含有720條垂直欄畫素資料(參閱第三圖,W=720,X=0~719),每一條垂直欄畫素資料包含有1280個畫素點的資料(參閱第三圖,H=1280,Y=0~1279)。
計數器18接收重置訊號RST1,重置訊號RST1重置計數器18,驅使計數器18重新計數。當解碼電路10開始運作而接收影像資料時,重置訊號RST1即會重置計數器18。於此實施例中,編碼電路10、儲存單元30與解碼電路20設置於驅動晶片內,驅動晶片用於驅動
影像顯示裝置,例如行動電話的顯示驅動晶片。此外,主機可為基頻晶片(baseband IC),例如行動電話的基頻晶片。上述之重置訊號RST1可由顯示驅動晶片所產生。於此實施例中,計數器18進行兩個計數而產生計數訊號Cnx1與Cny1,第一計數訊號Cnx1是表示目前畫素為水平行畫素資料的第幾個畫素,第二計數訊號Cny1是表示水平行畫素資料的條數。以下舉例說明,計數器18之計數方式。
於此實施例中,計數器18之第一計數與第二計數從0開始計數,所以計數訊號Cnx1與Cny1的初始值皆為0。若顯示解析度為1280*720,計數器18之第一計數從0開始計數編碼電路10接收之第一條水平行畫素資料之畫素值Xn的個數,計數器18之第一計數之計數值到達719時,即表示編碼電路10已接收第一條水平行畫素資料之所有畫素值Xn。
接續,計數器18再計數下一個畫素值Xn時(第二條水平行畫素資料之第一個畫素值Xn),第一計數之計數值會回復為0,而第二計數之計數值即會加1而為1,如此第一計數訊號Cnx1與第二計數訊號Cny1分別為0與1,其表示解碼電路10目前所接收之畫素值Xn為第二條水平行畫素資料之第一個畫素值。由上述說明可知,預測器11依據第一計數訊號Cnx1與第二計數訊號Cny1即可得知目前預測之畫素於影像的所在位置。解碼電路20之計數器26之計數方式同於編碼電路10之計數器18,所以於此不再詳述。
請參閱第二圖,其為本發明之預測方法之一實施例的流程圖。本發明之預測方法係依序預測影像資料之每一條水平行畫素資料的複數畫素,每一畫素包含三個子畫素,其分別為紅(R)、綠(G
)與藍(B)子畫素,即每一個畫素值Xn包含三個子畫素之值。於本發明之一實施例中,本發明之預測方法預測畫素之值時,係預測畫素之每一個子畫素之值,所以預測值Pn會包含三個子畫素之預測值。第一圖之編碼電路10之預測器11預測畫素之值時,其會接收計數器18之第一計數訊號Cnx1與第二計數訊號Cny1,以得知目前預測之畫素位於影像資料之位置。下述之預測方法係對畫素之一個子畫素進行預測,預測器11同時運用此預測方法對同一畫素之其餘兩個子畫素進行預測,如此即預測一個畫素中的三個子畫素之值,並輸出此三個子畫素之預測值而為第一圖所示之預測值Pn,其表示預測器11所輸出之一個畫素的預測值Pn即包含畫素之三個子畫素之預測值。
本發明之預測方法起初如步驟S11所示,判斷畫素是否為影像資料之第一個畫素,即判斷第一計數訊號Cnx1與第二計數訊號Cny1是否皆為0,若計數訊號Cnx1與Cny1皆為0(如第三圖所示,X=0,Y=0),即表示目前預測之畫素為影像資料之第一個畫素,也就表示目前預測之子畫素為影像資料之第一個畫素的子畫素,而位於影像之起始邊緣。此時,如步驟S12所示,以一預定值為目前子畫素的預測值。於本發明之一實施例中,預定值為子畫素之最大值的一半,例如當一個子畫素之解析度為8位元時,預定值則為128,如此預測器11以預定值作為目前子畫素之預測值。同理,此第一個畫素之其餘兩個子畫素的預測值同為此預定值。如此,預測器11所輸出之預測值Pn會包含有目前畫素之三個子畫素之預測值,而包含有24個位元。上述實施例僅為本發明之一實施例,預定值並非僅能為子畫素之解析度的一半。
承接上述,若畫素並非為影像資料之第一個畫素時,則進行步驟S13,判斷畫素是否位於影像資料之第一條水平行畫素資料,於此實施例中判斷第二計數訊號Cny1是否為0,即如第三圖所示,Y=0即表示第一條水平行畫素資料。若畫素位於影像資料之第一條水平行畫素資料,即表示畫素位於影像之第一條水平邊緣,也就是目前預測之子畫素位於影像之第一條水平邊緣,而位於影像之起始邊緣,如此即進行步驟S14,以前一個畫素之子畫素之值(儲放於預測器11之緩衝器17之輸出值)為目前子畫素之預測值,例如目前子畫素為紅色子畫素時,則以前一個畫素之紅色子畫素之值為目前子畫素之預測值。同理,目前預測之畫素之其餘兩個子畫素的預測值為前一個畫素的另外兩個子畫素之值。
接續,若畫素並非位於影像資料之第一條水平行畫素資料時,則進行步驟S15,判斷畫素是否位於影像資料之第一條垂直欄畫素資料,於此實施例中判斷第一計數訊號Cnx1是否為0,即如第三圖所示,X=0即表示第一條垂直欄畫素資料。若畫素位於影像資料之第一條垂直欄畫素資料,即表示畫素位於影像之第一條垂直邊緣,也就是目前預測之子畫素位於影像之第一條垂直邊緣,而位於影像之起始邊緣,如此即進行步驟S16,以位於畫素上方之畫素之子畫素之值(儲放於預測器11之緩衝器17之輸出值)為目前子畫素之預測值。舉例來說,若目前預測之子畫素為第二條水平行畫素資料之第一個畫素(如第三圖所示,X=0,Y=1)的紅色子畫素時,則以第一條水平行畫素資料之第一個畫素(如第三圖所示,X=0,Y=0)之紅色子畫素之值,而作為目前預測之子畫素的預測值。同理,目前預測畫素之其餘兩個子畫素的預測值為位
於目前預測畫素之上方之畫素的另外兩個子畫素之值。
接續,若畫素並非位於影像資料之第一條垂直欄畫素資料時,則進行步驟S17,判斷畫素是否位於影像資料之第二條垂直欄畫素資料,其判斷第一計數訊號Cnx1是否為1,即如第三圖所示,X=1即表示第二條垂直欄畫素資料。若畫素位於影像資料之第二條垂直欄畫素資料,也就表示目前預測之子畫素位於影像資料之第二條垂直欄畫素資料,而相鄰於影像之第一條垂直邊緣,即進行步驟S18,計算對應於目前預測之子畫素的水平、垂直與負對角線方向平坦度。計算水平、垂直與負對角線方向平坦度之詳細說明如後。
請參閱第四圖,其為位於第二條垂直欄畫素資料之子畫素的示意圖。圖中所示之子畫素x表示目前預測之子畫素,其位於第二條垂直欄畫素資料。子畫素a為子畫素x相對應之前一個子畫素,例如子畫素x為紅色子畫素,則子畫素a為位於子畫素x之前一個畫素的紅色子畫素,所以子畫素a與子畫素x位於同一條水平行畫素資料且相鄰,子畫素c、b與d為前一條水平行畫素資料之畫素的子畫素,子畫素b位於子畫素x之上方,子畫素c與d分別為子畫素b相對應之前一個子畫素與後一個子畫素。由上述說明可知,子畫素a、b、c與d分別相鄰於子畫素x而為參考畫素。水平方向平坦度為子畫素b與子畫素c之差值的絕對值;垂直方向平坦度為子畫素a與子畫素c之差值的絕對值;負對角線方向平坦度為子畫素a與子畫素b之差值的絕對值。上述子畫素a、b、c與d皆相對應,例如子畫素a、b、c與d皆為紅色子畫素。若目前預測之子畫素x為綠色子畫素,則上述子畫素a、b、c與d為對應於子畫素x之相
鄰綠色子畫素,即子畫素a、b、c與d為相鄰於子畫素x之畫素的綠色子畫素。
由上述可知,水平方向平坦度為水平方向相鄰之兩畫素之兩相對應子畫素之差值的絕對值,垂直方向平坦度為垂直方向相鄰之兩畫素之兩相對應子畫素之差值的絕對值,負對角線方向平坦度為負對角線方向相鄰之兩畫素之兩相對應子畫素之差值的絕對值,負對角線方向是指兩畫素之相對方向關係是右上與左下關係。上述之方向平坦度也可稱為方向相似度或者方向差異度,上述之各方向相鄰之兩子畫素之差值的絕對值越小,即表示兩子畫素之相似度高、差異度小及平坦度高,所以於此實施例中,以水平、垂直與負對角線方向平坦度之最小者為依據,而預測子畫素x之值。
於本發明之一實施例中,水平、垂直與負對角線方向平坦度分別對應一預測選擇,水平、垂直與負對角線方向平坦度之預測選擇分別對應於子畫素x之水平、垂直與負對角線方向的相鄰子畫素。於此實施例中,水平、垂直與負對角線方向平坦度之預測選擇所對應之子畫素分別為相鄰於子畫素x之子畫素a(水平方向)、子畫素b(垂直方向)與子畫素d(負對角線方向)。
承接上述,若畫素位於影像資料之第二條垂直欄畫素資料時,即目前預測之子畫素x位於影像資料之第二條垂直欄畫素資料時,計算對應於目前預測之子畫素x的水平、垂直與負對角線方向平坦度,比較該些方向平坦度,以該些方向平坦度之最小者為依據,而選擇最小方向平坦度所對應之預測選擇,並以最小方向平坦度對應之預測選擇所對應之相鄰子畫素的值(儲放於預測器11之
緩衝器17)為子畫素x的預測值。若水平方向平坦度最小時,則以子畫素a之值為子畫素x之預測值;若垂直方向平坦度最小時,則以子畫素b之值為子畫素x之預測值;若負對角線方向平坦度最小時,則以子畫素d之值為子畫素x之預測值。此外,若水平、垂直與負對角線方向平坦度之任兩者相同且為最小時,於本發明之一實施例中,選擇預測選擇之優先順序為水平方向平坦度>垂直方向平坦度>負對角線方向平坦度。
綜合上述,若目前預測之子畫素並非位於影像之第一條水平行畫素資料(第一條水平邊緣)或者第一條垂直欄畫素資料(第一條垂直邊緣),而位於影像資料之第二條垂直欄畫素資料時,本發明之預測方法依據該些方向平坦度與該些相鄰子畫素而決定目前預測之子畫素之預測值。上述步驟S18是對位於影像資料之第二條垂直欄畫素資料之畫素的一子畫素進行預測,而其餘兩子畫素之預測值同於步驟S18而可得知,即分別計算其餘兩個子畫素之水平方向平坦度、垂直方向平坦度與負對角線方向平坦度,並以最小方向平坦度對應之預測選擇所對應之相鄰子畫素的值為子畫素的預測值。由此可知,同一畫素之三個子畫素之最小方向平坦度所對應之方向可能相同或者不同,例如紅色子畫素、綠色子畫素與藍色子畫素的最小方向平坦度分別為水平方向平坦度、垂直方向平坦度與水平方向平坦度,如此紅色子畫素即以水平方向平坦度對應之相鄰子畫素為預設值、綠色子畫素與藍色子畫素分別以垂直方向平坦度與水平方向平坦度對應之相鄰子畫素為預設值,也就表示,目前預測之畫素的預測值Pn(如第一圖所示)包含不同方向之相鄰子畫素之值。
上述之子畫素a、b、c與d之值為第一圖所示之編碼電路10之第二運算器16所產生之畫素輸出值之子畫素之值,其係儲放於預測器11之緩衝器17。於本發明之一實施例中,緩衝器17會儲放目前進行預測之水平行畫素資料(已預測過之畫素)的畫素輸出值與前一條水平行畫素資料之畫素輸出值。
若上述進行步驟S17,判斷畫素並非位於影像資料之第二條垂直欄畫素資料時,則接續進行步驟S19,判斷畫素是否位於影像資料之最後一條垂直欄畫素資料,此步驟係判斷畫素是否為水平行畫素資料之最後一個畫素。若畫素並非位於最後一條垂直欄畫素資料,即表示目前預測之子畫素並非位於最後一條垂直欄畫素資料,則進行步驟S20,計算子畫素之水平方向平坦度總合、垂直方向平坦度總合、正對角線方向平坦度總合與負對角線方向平坦度總合。計算水平方向平坦度總合、垂直方向平坦度總合、正對角線方向平坦度總合與負對角線方向平坦度總合之詳細說明如後。
計算水平方向平坦度總合、垂直方向平坦度總合、正對角線方向平坦度總合與負對角線方向平坦度總合時,先計算出水平、垂直、正對角線與負對角線方向平坦度。請參閱第五圖,其為位於第二條垂直欄畫素資料後且並非位於最後一條垂直欄畫素資料之子畫素的示意圖,例如子畫素位於第三條垂直欄畫素資料。如圖所示,第五圖相似於第四圖,第五圖更包含子畫素e與子畫素f,子畫素e與子畫素f對應於子畫素x,而為相同顏色子畫素,子畫素a、b、c、d、e與f皆為參考畫素。子畫素f為子畫素a之前一個畫素之子畫素,所以子畫素f、a與x位於同一條水平行畫素資料。
子畫素e位於子畫素c之前,而為子畫素c之前一個畫素之子畫素,所以子畫素e、c、b與d位於同一條水平行畫素資料。
於此實施例中,計算方向平坦度之方式係以目前預測之子畫素x的前一個子畫素a作為一基礎畫素,而計算出子畫素a分別與相鄰之子畫素f、c、e與b之差值的絕對值,如此即可求得水平、垂直、正對角線與負對角線方向平坦度,正對角線方向相反於負對角線方向。上述相鄰於子畫素a且分別位於不同方向之子畫素f、c、e與b稱為方向畫素。方向平坦度可表示為如下:diff0=abs(a-f)-------------------(1)
diff1=abs(a-c)-------------------(2)
diff2=abs(a-e)-------------------(3)
diff3=abs(a-b)-------------------(4)
其中,diff0、diff1、diff2與diff3分別表示水平、垂直、正對角線與負對角線方向平坦度;abs表示取絕對值;a、b、c、d、e與f分別表示子畫素a、b、c、d、e與f之值(儲放於預測器11之緩衝器17)。由上述方程式可知,水平方向平坦度為子畫素a與子畫素f之差值的絕對值;垂直方向平坦度為子畫素a與子畫素c之差值的絕對值;正對角線方向平坦度為子畫素a與子畫素e之差值的絕對值;負對角線方向平坦度為子畫素a與子畫素b之差值的絕對值。
於本發明之一實施例中,水平、垂直、正對角線與負對角線方向平坦度分別對應一預測選擇。於此實施例中,水平、垂直、正對角線與負對角線方向平坦度之預測選擇所對應之子畫素分別為相鄰於子畫素x之子畫素a(水平方向)、子畫素b(垂直方向)、
子畫素c(正對角線方向)與子畫素d(負對角線方向)。
本發明之方向平坦度總合是同一方向之方向平坦度之累計,也就是位於同一方向之每兩子畫素間之差值之絕對值的總合(sum of absolute difference;SAD),其可表示為如下:sad0=pre-sad0+diff0-----------------(5)
sad1=pre-sad1+diff1-----------------(6)
sad2=pre-sad2+diff2-----------------(7)
sad3=pre-sad3+diff3-----------------(8)
其中,sad0、sad1、sad2與sad3分別表示水平方向平坦度總合、垂直方向平坦度總合、正對角線方向平坦度總合與負對角線方向平坦度總合;pre-sad0、pre-sad1、pre-sad2與pre-sad3分別表示前一個之水平方向平坦度總合、垂直方向平坦度總合、正對角線方向平坦度總合與負對角線方向平坦度總合。以下係舉例說明。
由於上述進行步驟S17,判斷畫素並非位於影像資料之第二條垂直欄畫素資料,所以目前預測之畫素必定位於影像資料之第二條垂直欄畫素資料之後,也就是目前預測之畫素位於水平行畫素資料之第二個畫素之後。若目前預測之畫素為第N個畫素,且此第N個畫素是位於第三條垂直欄畫素資料,而為水平行畫素資料之第三個畫素,其表示目前預測之畫素是第一個進行步驟S20之畫素,因為畫素有三個顏色子畫素,所以此三個子畫素會分別進行步驟S20,其表示此三個不同顏色子畫素是分別第一次進行步驟S20,所以並沒有前一個方向平坦度總合,因此目前預測之子畫素的水平、垂直、正對角線與負對角線方向平坦度總合可表示為如下
:
sad0=diff0=abs(a-f)-----------------(9)
sad1=diff1=abs(a-c)-----------------(10)
sad2=diff2=abs(a-e)-----------------(11)
sad3=diff3=abs(a-b)-----------------(12)
若目前預測之第N個畫素是位於第四條垂直欄畫素資料,而為水平行畫素資料之第四個畫素(下簡稱第四個畫素),其表示目前預測之畫素是第二個進行步驟S20之畫素,也就是目前預測之第四個畫素的三個子畫素是不同顏色子畫素分別進行第二次步驟S20,因此目前預測之子畫素(第四個畫素的子畫素)的各方向平坦度總合如上述方程式(5)~(8)所示,目前預測之子畫素之各方向平坦度各別加總前一個子畫素(前一個畫素的相同顏色子畫素)之各方向平坦度總合。由於前一個畫素為水平行畫素資料之第三個畫素(下簡稱第三個畫素),第三個畫素之子畫素之各方向平坦度總合即為本身之各方向平坦度,所以第四個畫素之子畫素之各方向平坦度總和為第三個畫素之子畫素之各方向平坦度各別加總第四個畫素之子畫素之各方向平坦度。
舉例說明,第四個畫素之紅色子畫素的水平方向平坦度總合是第三個畫素之紅色子畫素的水平方向平坦度加上第四個畫素之紅色子畫素的水平方向平坦度。同理,第四個畫素之綠色子畫素的水平方向平坦度總合是第三個畫素之綠色子畫素的水平方向平坦度加上第四個畫素之綠色子畫素的水平方向平坦度。
接續,若目前預測之第N個畫素是位於第五條垂直欄畫素資料,而為水平行畫素資料之第五個畫素(下簡稱第五個畫素),則其
子畫素之各方向平坦度總合為第四個畫素之子畫素之各方向平坦度總和各別加總第五個畫素之子畫素之各方向平坦度,而第四個畫素之子畫素之各方向平坦度總和分別為第三個畫素之子畫素之各方向平坦度各別與第四個畫素之子畫素之各方向平坦度的總和,所以第五個畫素之子畫素之各方向平坦度總合即分別為第三個畫素之子畫素、第四個畫素之子畫素與第五個畫素之子畫素之各方向平坦度之總和。
由上述說明可知,前一個方向平坦度總合(pre-sad0、pre-sad1、pre-sad2、pre-sad3)係表示同一條水平行畫素資料之先前已預測畫素(畫素並非位於影像之起始邊緣)之子畫素之方向平坦度的總合(同一方向之方向平坦度的總合)。水平、垂直、正對角線與負對角線方向平坦度總合同樣分別對應一預測選擇。水平、垂直、正對角線與負對角線方向平坦度總合之預測選擇同於前述之水平、垂直、正對角線與負對角線方向平坦度之預測選擇,該些方向平坦度總合分別對應於子畫素x之水平、垂直、正對角線與負對角線方向。於此實施例中,請參閱第五圖,水平、垂直、正對角線與負對角線方向平坦度總合之預測選擇所對應之子畫素分別為相鄰於子畫素x之子畫素a(水平方向)、子畫素b(垂直方向)、子畫素c(正對角線方向)與子畫素d(負對角線方向)。
於步驟S20中,計算出目前預測畫素之子畫素之各方向平坦度總合之後,比較該些方向平坦度總合,以該些方向平坦度總合之最小者為依據,而選擇最小方向平坦度總合所對應之預測選擇(水平方向、垂直方向、正對角線方向或者負對角線方向),並以最
小方向平坦度總合對應之預測選擇所對應之相鄰子畫素的值為預測值。若水平方向平坦度總合最小時,則以子畫素a之值為子畫素x之預測值;若垂直方向平坦度總合最小時,則以子畫素b之值為子畫素x之預測值;若正對角線方向平坦度總合最小時,則以子畫素c之值為子畫素x之預測值;若負對角線方向平坦度總合最小時,則以子畫素d之值為子畫素x之預測值。
此外,若該些方向平坦度總合之任兩者相同且為最小時,於本發明一實施例中,預測選擇之優先順序為水平方向平坦度總合>垂直方向平坦度總合>正對角線方向平坦度總合>負對角線方向平坦度總合。綜合上述,本發明之預測方法是依據該些方向平坦度與該些相鄰子畫素而決定目前預測之子畫素之預測值。
由上述步驟S20之說明可知,若目前預測之畫素為水平行畫素資料的第N個畫素,且並非位於影像之起始邊緣時,計算出第N個畫素之子畫素之各方向平坦度總合。計算方向平坦度總合之前,計算第N個畫素之子畫素之各方向平坦度以及Q個畫素之每一個畫素之子畫素之各方向平坦度,該些Q個畫素與第N個畫素位於同一條水平行畫素資料,且該些Q個畫素位於第N個畫素之前且同樣並非位於影像之起始邊緣(影像之第一條水平邊緣與第一條垂直邊緣)。之後,對第N個畫素之子畫素之該些方向平坦度與該些Q個畫素之子畫素(對應於第N個畫素之子畫素的相同顏色子畫素)之該些方向平坦度之對應相同方向者進行加總,而計算出該些方向平坦度總合,每一個方向平坦度總合各別對應一預測選擇,依據該些方向平坦度總合選擇該些預測選擇之一,並且以所選擇之預測選擇所對應之相鄰子畫素之值為第N個畫素之子畫素之預測值
。於本發明之一實施例中,上述位於水平行畫素資料的第N個畫素並非位於影像之起始邊緣,其N為大於等於三,且為整數。
復參閱第二圖,若步驟S19判斷目前預測之畫素是位於影像資料之最後一條垂直欄畫素資料,也就是目前預測之畫素為水平行畫素資料之最後一個畫素時,則進行步驟S22,計算子畫素之水平、垂直與正對角線方向平坦度總合,並以最小方向平坦度總合對應之預測選擇所對應之相鄰子畫素之值為預測值。雖然,目前預測之畫素是水平行畫素資料之最後一個畫素而位於影像之垂直邊緣,但由於目前預測之畫素並非位於影像資料之第一條水平行畫素資料與第一條垂直欄畫素資料,也就是並非位於影像之起始邊緣(影像之第一條水平邊緣與第一條垂直邊緣),且水平行畫素資料之最後一個畫素的前方具有許多畫素可作為預測之參考,所以進行步驟S22而求得預測值。請參閱第六圖,由於目前預測之子畫素x是水平行畫素資料(並非第一條水平行畫素資料)之最後一個畫素的子畫素,所以沒有如第五圖所示之子畫素d,因此不計算負對角線方向平坦度總合。如步驟S22所示,得到水平、垂直與正對角線方向平坦度總合後,比較水平、垂直與正對角線方向平坦度總合,以選擇最小平坦度總合所對應之預測選擇,而以所選擇之預測選擇所對應之相鄰子畫素之畫素輸出值(解碼資料)為預測值。
復參閱第二圖,若進行完步驟S12、S14、S16、S18、S20或者S22而輸出預測值後,即如步驟S25所示完成一個子畫素的預測。如此可知,藉由上述預測方法同時對一個畫素之三個子畫素進行預測,以決定此畫素的預測值。之後,就接續上述預測方式而預測
下一個畫素之三個子畫素之值。此外,若之後判斷目前預測之畫素為水平行畫素資料之第一個畫素時,則將各方向平坦度總合重置而歸0,例如於步驟S11判斷目前預測之畫素為影像之第一個畫素,或者於步驟S15判斷目前預測之畫素位於第一條垂直欄畫素資料(水平行畫素資料之第一個畫素)。
上述之步驟S11、S13、S15與S17是判斷目前預測之畫素是否位於影像之起始邊緣(影像之第一條水平邊緣與第一條垂直邊緣)或者鄰近起始邊緣(目前預測之畫素位於第二條垂直欄畫素資料),當目前預測之畫素位於影像之起始邊緣或者鄰近起始邊緣時,則進行邊緣預測模式,即進行步驟S12、S14、S16或S18,以決定預測值。若目前預測之畫素並非位於影像之起始邊緣或者並非鄰近起始邊緣時,則進行步驟S20或者S22,計算該些方向平坦度,以計算出該些方向平坦度總合,以決定預測值。由於方向平坦度總合是相同方向之方向平坦度的總合,也就是依據先前方向平坦度對目前預測之子畫素進行預測,如此提高預測的精確度。另外,由於本發明之預測方法有水平、垂直、正對角線與負對角線四種預測選擇,所以可提高預測之精確性。
請參閱第七圖,其為本發明之預測方法之另一實施例的流程圖。此實施例與上一實施例之不同處在於步驟S21與S24,其餘步驟皆同於上一實施例。此實施例之步驟S21與S24於計算子畫素之各方向平坦度總合時,係會依據一衰減因子進行計算,此實施例之各方向平坦度總合可表示為如下:sad0=ρ * pre-sad0+diff0-----------------(13)
sad1=ρ * pre-sad1+diff1-----------------(14)
sad2=ρ * pre-sad2+diff2-----------------(15)
sad3=ρ * pre-sad3+diff3-----------------(16)
其中,ρ表示衰減因子。於一實施例中,ρ大於0且小於1。由上述方程式可知,前一個方向平坦度總合乘上衰減因子ρ,如此可衰減而稀釋先前方向平坦度總合。
承接上述,由於前一個方向平坦度總合乘以衰減因子,所以前一個方向平坦度總合之值會變小。由先前說明可知,前一個方向平坦度總合相當於相同方向者之先前方向平坦度的總合,所以前一個方向平坦度總合乘以衰減因子相當於同一方向之所有先前方向平坦度皆乘以衰減因子。
舉例來說,若目前預測之畫素為第N個畫素,且此第N個畫素是水平行畫素資料之第三個畫素,而其子畫素是第一個進行計算方向平坦度總合之子畫素,由於沒有前一個方向平坦度總合,因此如方程式(9)~(12)所示,其方向平坦度總合即為本身之方向平坦度。接續,目前預測之第N個畫素是水平行畫素資料之第四個畫素,就對同一顏色之子畫素而言,第四個畫素之子畫素是第二個進行計算方向平坦度總合之子畫素,其前一個方向平坦度總合即為第三個畫素之子畫素之方向平坦度。依據上述方程式(13)~(16)計算第四個畫素之子畫素之方向平坦度總合,將第三個畫素之子畫素之方向平坦度總合(第三個畫素之子畫素之方向平坦度)乘上衰減因子,再加總經衰減後之方向平坦度總合與第四個畫素之子畫素(對應於第三個畫素之子畫素的相同顏色子畫素)之方向平坦度。
接續,目前預測之第N個畫素是水平行畫素資料之第五個畫素,
就對同一顏色之子畫素而言,第五個畫素之子畫素是第三個進行計算方向平坦度總合之子畫素,其前一個方向平坦度總合即為第三個畫素之子畫素之經衰減的方向平坦度與第四個畫素之子畫素(對應於第三個畫素之子畫素的相同顏色子畫素)之方向平坦度的總合。依據上述方程式(13)~(16)計算第五個畫素之子畫素之方向平坦度總合時,將第四個畫素之方向平坦度總合(第三個畫素之子畫素之經衰減的方向平坦度與第四個畫素之子畫素之方向平坦度的總合)乘上衰減因子,再加總此經衰減後之方向平坦度總合與第五個畫素之子畫素之方向平坦度。
由上述可知,計算第五個畫素之子畫素之方向平坦度總合時,第三個畫素之子畫素之經衰減的方向平坦度會再乘上衰減因子,其表示第三個畫素之子畫素之方向平坦度會乘上兩次衰減因子,而衰減因子是小於1,而使得第三個畫素之子畫素之方向平坦度在第五個畫素之子畫素之方向平坦度總合的比重降低。相較之下,由於第四個畫素之子畫素之方向平坦度僅乘上一次衰減因子,所以第四個畫素之子畫素之方向平坦度在第五個畫素之子畫素之方向平坦度總合的比重較重。因此,對於第五個畫素之子畫素之方向平坦度總合而言,第三個畫素之子畫素之方向平坦度是乘上兩次方的衰減因子,而第四個畫素之子畫素之方向平坦度是乘上一次方的衰減因子,所以對於第五個畫素之子畫素之方向平坦度總合而言,對應於第三個畫素之子畫素之衰減值與對應於第四個畫素之子畫素之衰減值是不相同。綜合上述可知,離目前預測之子畫素較遠之先前子畫素的方向平坦度會漸漸被衰減而稀釋,而離目前預測之子畫素較近之先前子畫素的方向平坦度的比重較重,
如此可提高預測之準確度。
請參閱第八圖,其為本發明之預測方法之又一實施例的流程圖。
此實施例與第二圖實施例之不同處在於步驟S26~S29,此實施例之其餘步驟皆同於第二圖實施例。此實施例之步驟S19判斷畫素不是位於影像資料之最後一條垂直欄畫素資料時,則進行步驟S26,計算目前預測之子畫素的水平、垂直、正對角線與負對角線方向平坦度,以及計算目前預測之子畫素的水平方向平坦度總合、垂直方向平坦度總合、正對角線方向平坦度總合與負對角線方向平坦度總合。
接續,進行步驟S27,分別將目前預測之子畫素的水平、垂直、正對角線與負對角線方向平坦度比較一門檻,若所有方向平坦度皆小於門檻時,則接著進行步驟S28,計算水平、垂直、正對角線與負對角線方向平坦度對應之預測選擇所對應之相鄰子畫素的平均值。請參閱第五圖,步驟S28即加總子畫素a(水平方向)、子畫素b(垂直方向)、子畫素c(正對角線方向)與子畫素d(負對角線方向)之值,並取總合值之平均,以計算出平均值,並以此平均值作為目前預測之子畫素的預測值。
復參閱第八圖,若步驟S27比較目前預測之子畫素的所有方向平坦度並未皆小於門檻時,則接著進行步驟S29,比較目前預測之子畫素的水平方向平坦度總合、垂直方向平坦度總合、正對角線方向平坦度總合與負對角線方向平坦度總合,並選擇該些方向平坦度總合之最小者所對應之預測選擇,且以最小方向平坦度總合對應之預測選擇所對應之相鄰子畫素為目前預測之子畫素的預測值。
綜上所述,本發明揭露之影像編解碼之預測方法係判斷目前預測之子畫素是否位於影像之起始邊緣,若子畫素位於影像之起始邊緣時,則進行邊緣預測模式,而決定目前預測之子畫素的預測值。若子畫素並非位於影像之起始邊緣時,計算複數方向平坦度,每一方向平坦度分別對應一預測選擇,每一預測選擇分別對應一相鄰子畫素,每一相鄰子畫素相鄰於目前預測之子畫素並位於不同方向。之後,依據該些方向平坦度與該些相鄰子畫素之至少一而決定目前預測之子畫素的預測值。
由於本發明之預測方法運用於編碼電路與解碼電路,所以解碼電路依照此預測方法可預測出編碼電路之預測選擇,因而編碼電路無須要提供預測選擇給解碼電路,如此降低編碼電路提供給解碼電路的資料量。此外,本發明之預測方法包含多種預測選擇,所以可提高預測之精確度。另外,本發明之預測方法依據先前畫素之子畫素的資料對目前預測之子畫素進行預測,如此提高預測的精確度。
故本發明實為一具有新穎性、進步性及可供產業上利用者,應符合我國專利法專利申請要件無疑,爰依法提出發明專利申請,祈鈞局早日賜准專利,至感為禱。
惟以上所述者,僅為本發明一實施例而已,並非用來限定本發明實施之範圍,故舉凡依本發明申請專利範圍所述之形狀、構造、特徵及精神所為之均等變化與修飾,均應包括於本發明之申請專利範圍內。
Claims (15)
- 一種影像編解碼之預測方法,用於預測一影像資料之複數畫素中至少一子畫素,該預測方法包含下列步驟:判斷該畫素是否位於該影像之起始邊緣,當該畫素位於該影像之起始邊緣時,進行一邊緣預測模式,而決定該畫素之該至少一子畫素之一預測值;當該畫素並非位於該影像之起始邊緣時,依據複數參考畫素之值計算該至少一子畫素之複數方向平坦度,每一該方向平坦度分別對應一方向,該些參考畫素為已預測過之複數畫素的複數子畫素,每一該方向平坦度分別對應一預測選擇,每一該預測選擇分別對應一相鄰子畫素,每一該相鄰子畫素相鄰於目前預測之該子畫素並位於不同方向;以及依據該些方向平坦度與該些相鄰子畫素之至少一而決定目前預測之該畫素之該至少一子畫素之該預測值。
- 如申請專利範圍第1項所述之預測方法,其中決定目前預測之該畫素之該子畫素之該預測值的步驟,比較每一該方向平坦度與一門檻,每一該方向平坦度皆小於該門檻時,計算出該些相鄰子畫素之一平均值,該平均值作為該預測值。
- 如申請專利範圍第1項所述之預測方法,其中該些方向平坦度包含一水平方向平坦度、一垂直方向平坦度、一正對角線方向平坦度以及一負對角線方向平坦度。
- 如申請專利範圍第1項所述之預測方法,其中目前預測之該畫素 為該影像資料之一條水平行畫素資料的最後一個畫素時,該些方向平坦度包含一水平方向平坦度、一垂直方向平坦度以及一正對角線方向平坦度。
- 如申請專利範圍第1項所述之預測方法,其中計算複數方向平坦度之步驟中,計算一基礎畫素分別與複數方向畫素的差值,且分別取該差值的絕對值,以計算出該些方向平坦度,該基礎畫素為目前預測之該畫素的前一個畫素的一子畫素,該些方向畫素為相鄰於該基礎畫素的該些參考畫素,該些方向畫素位於不同方向,該基礎畫素、該些方向畫素與目前預測之該子畫素是相同顏色的子畫素。
- 如申請專利範圍第1項所述之預測方法,其中目前預測之該畫素為該影像資料之一條水平行畫素資料的一第N個畫素,且該第N個畫素並非位於該影像之起始邊緣時,計算該第N個畫素之該子畫素之該些方向平坦度,計算Q個畫素之每一個畫素之一子畫素之複數方向平坦度,該些Q個畫素位於該條水平行畫素資料,且並非位於該影像之起始邊緣並位於該第N個畫素之前,對該第N個畫素之該子畫素之該些方向平坦度與該些Q個畫素之該子畫素之該些方向平坦度之對應相同方向者進行加總,而計算出複數方向平坦度總合,該些方向平坦度總合分別對應該些預測選擇,依據該些方向平坦度總合選擇該些預測選擇之一,以所選擇之該預測選擇所對應之該相鄰子畫素之值為該第N個畫素之該子畫素之該預測值。
- 如申請專利範圍第6項所述之預測方法,更包含比較該些方向平坦度總合,選擇該些方向平坦度總合之最小者所對應之該預測選擇,以所選擇之該預測選擇所對應之該相鄰子畫素之值為該預測 值。
- 如申請專利範圍第1項所述之預測方法,其中目前預測之該畫素為該影像資料之一條水平行畫素資料的一第N個畫素,且該第N個畫素並非位於該影像之起始邊緣時,計算該第N個畫素之該子畫素之該些方向平坦度,計算Q個畫素之每一個畫素之該子畫素之複數方向平坦度,該些Q個畫素之每一該畫素分別對應一衰減值,該些Q個畫素之每一該畫素之該子畫素之該些方向平坦度分別乘上各自對應之該衰減值,該衰減值大於0且小於1,對該第N個畫素之該子畫素之該些方向平坦度與該些Q個畫素之該子畫素之經衰減的該些方向平坦度之對應相同方向者進行加總,而計算出複數方向平坦度總合,該些方向平坦度總合分別對應該些預測選擇,依據該些方向平坦度總合選擇該些預測選擇之一,以所選擇之該預測選擇所對應之該相鄰子畫素之值為該第N個畫素之該子畫素之該預測值,該些Q個畫素位於該條水平行畫素資料,且並非位於該影像之起始邊緣並位於該第N個畫素之前。
- 如申請專利範圍6或8項所述之預測方法,其中計算該些Q個畫素之每一該畫素之該子畫素之該些方向平坦度係包含:計算一基礎畫素分別與複數方向畫素的差值,且分別取該差值的絕對值,以計算出該些方向平坦度,該基礎畫素為該些Q個畫素之每一該畫素的前一個畫素的一子畫素,該些方向畫素為相鄰於該基礎畫素的該些參考畫素,該些方向畫素位於不同方向,該基礎畫素、該些方向畫素與目前進行計算之該些Q個畫素之該子畫素是相同顏色的子畫素。
- 如申請專利範圍第1項所述之預測方法,其中目前預測之該畫素為一第N個畫素,且該第N個畫素並非位於該影像之起始邊緣時, 依據該第N個畫素之該子畫素之該些方向平坦度與該些相鄰子畫素之至少一而決定該第N個畫素之該子畫素之該預測值,接續預測下一個第N+1個畫素之該子畫素,計算該第N+1個畫素之該子畫素之複數方向平坦度,該第N+1個畫素之該子畫素之該些方向平坦度是該第N個畫素之該子畫素分別與其各方向相鄰之該些參考畫素的差值並取絕對值,對該第N個畫素之該子畫素之該些方向平坦度與該第N+1個畫素之該子畫素之該些方向平坦度之對應相同方向者進行加總,而計算出複數方向平坦度總合,該些方向平坦度總合分別對應該些預測選擇,依據該些方向平坦度總合選擇該些預測選擇之一,以所選擇之該預測選擇所對應之該相鄰子畫素之值為該第N+1個畫素之該子畫素之該預測值。
- 如申請專利範圍第1項所述之預測方法,其中該預測方法係依序預測該影像資料之每一條水平行畫素資料的複數畫素的每一該子畫素,該預測方法更包含儲存目前進行預測之水平行畫素資料之複數畫素輸出值以及前一條水平行畫素資料之複數畫素輸出值而作為該些參考畫素。
- 如申請專利範圍第1項所述之預測方法,其中並非位於該影像之起始邊緣之該畫素是該影像資料之一條水平行畫素資料的第N個畫素,N為整數且大於等於三。
- 如申請專利範圍第1項所述之預測方法,其中進行一邊緣預測模式,而決定該畫素之該子畫素之一預測值之步驟,更包含:判斷該畫素是否為該影像資料之第一個畫素,當該畫素為該影像資料之該第一個畫素時,以一預定值為該第一個畫素之該子畫素之該預測值;判斷該畫素是否位於該影像資料之一第一條水平行畫素資料,當 該畫素位於該第一條水平行畫素資料時,以該畫素之前一個畫素之一子畫素之值而為目前預測之該子畫素之該預測值;判斷該畫素是否位於該影像資料之一第一條垂直欄畫素資料,當該畫素位於該第一條垂直欄畫素資料時,以位於該畫素上方之一參考畫素之值而為目前預測之該子畫素之該預測值;以及判斷該畫素是否位於該影像資料之一第二條垂直欄畫素資料,當該畫素位於該第二條垂直欄畫素資料時,計算該畫素之該子畫素之該些方向平坦度,依據該些方向平坦度與該些相鄰子畫素之至少一而決定目前預測之該子畫素之該預測值。
- 如申請專利範圍第13項所述之預測方法,其中依據該些方向平坦度與該些相鄰子畫素之至少一而決定目前預測之該子畫素之該預測值的步驟,比較該些方向平坦度,選擇該些方向平坦度之最小者所對應之該預測選擇,以所選擇之該預測選擇所對應之該相鄰子畫素之值為該預測值。
- 一種編碼/解碼器,適於將一影像資料進行編碼/解碼,該影像資料具有複數畫素,而該編碼/解碼器包括:一預測器,依據該些畫素的畫素值,計算出每一該些畫素的一預測值;以及一運算器,耦接該預測器,並計算該些畫素的畫素值與該預測值之間的一差值,以對該影像資料進行編碼/解碼,其中該預測器確定目前的畫素不位於該影像之起始邊緣時,依據複數參考畫素之值計算該些畫素之至少一子畫素之複數方向平坦度,每一該方向平坦度分別對應一方向,該些參考畫素為已預測過之複數畫素的複數子畫素,每一該方向平坦度分別對應一預測選擇,每一該預測選擇分別對應一相鄰子畫素,每一該相鄰子畫 素相鄰於目前預測之該子畫素並位於不同方向,以及該預測器依據該些方向平坦度與該些相鄰子畫素其中至少之一而決定目前預測之該至少一子畫素之該預測值,以決定目前預測之該畫素的預測值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104124025A TWI575937B (zh) | 2015-07-24 | 2015-07-24 | Image prediction and decoding method and encoding / decoder |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104124025A TWI575937B (zh) | 2015-07-24 | 2015-07-24 | Image prediction and decoding method and encoding / decoder |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201705761A TW201705761A (zh) | 2017-02-01 |
TWI575937B true TWI575937B (zh) | 2017-03-21 |
Family
ID=58609083
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104124025A TWI575937B (zh) | 2015-07-24 | 2015-07-24 | Image prediction and decoding method and encoding / decoder |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI575937B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI841467B (zh) * | 2023-08-04 | 2024-05-01 | 大陸商北京集創北方科技股份有限公司 | 平坦度判斷模塊、顯示流壓縮編碼器及資訊處理裝置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7286704B2 (en) * | 2000-03-09 | 2007-10-23 | Robert Bosch Gmbh | Imaging fire detector |
US7613345B2 (en) * | 2004-05-07 | 2009-11-03 | Canon Kabushiki Kaisha | Image coding apparatus and image decoding apparatus and their control methods, and computer program and computer-readable storage medium |
EP2288163A2 (en) * | 2008-05-07 | 2011-02-23 | Lg Electronics Inc. | Method and apparatus for decoding video signal |
US20130128986A1 (en) * | 2011-11-23 | 2013-05-23 | Mediatek Inc. | Method and Apparatus of Slice Boundary Padding for Loop Filtering |
CN103621095A (zh) * | 2011-06-13 | 2014-03-05 | 高通股份有限公司 | 用于视频译码中的帧内预测的边界像素填补 |
TW201448569A (zh) * | 2009-07-31 | 2014-12-16 | Sony Corp | 圖像編碼裝置、方法及程式 |
-
2015
- 2015-07-24 TW TW104124025A patent/TWI575937B/zh active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7286704B2 (en) * | 2000-03-09 | 2007-10-23 | Robert Bosch Gmbh | Imaging fire detector |
US7613345B2 (en) * | 2004-05-07 | 2009-11-03 | Canon Kabushiki Kaisha | Image coding apparatus and image decoding apparatus and their control methods, and computer program and computer-readable storage medium |
EP2288163A2 (en) * | 2008-05-07 | 2011-02-23 | Lg Electronics Inc. | Method and apparatus for decoding video signal |
TW201448569A (zh) * | 2009-07-31 | 2014-12-16 | Sony Corp | 圖像編碼裝置、方法及程式 |
CN103621095A (zh) * | 2011-06-13 | 2014-03-05 | 高通股份有限公司 | 用于视频译码中的帧内预测的边界像素填补 |
US20130128986A1 (en) * | 2011-11-23 | 2013-05-23 | Mediatek Inc. | Method and Apparatus of Slice Boundary Padding for Loop Filtering |
Also Published As
Publication number | Publication date |
---|---|
TW201705761A (zh) | 2017-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10212452B2 (en) | Method and apparatus for encoding and decoding image through intra prediction | |
US10382778B2 (en) | Method for motion vector storage in video coding and apparatus thereof | |
US11451808B2 (en) | Image coding method, image decoding method, image coding apparatus, and image decoding apparatus | |
US11979578B2 (en) | Method and apparatus for encoding or decoding video data in FRUC mode with reduced memory accesses | |
US10567803B2 (en) | Midpoint prediction error diffusion for display stream compression | |
US20110292247A1 (en) | Image compression method with random access capability | |
US8634668B2 (en) | Method of compression of digital images using a fixed number of bits per block | |
US7860323B2 (en) | Method, apparatus, medium, and display driving circuit for image encoding and decoding | |
TWI387314B (zh) | Image processing apparatus and method thereof | |
US20230107125A1 (en) | Method of intra predicting a block of a picture | |
KR20160145050A (ko) | 디스플레이 스트림 압축 (dsc) 을 위한 라그랑지안 파라미터 계산을 위한 시스템 및 방법 | |
WO2014166338A1 (en) | Method and apparatus for prediction value derivation in intra coding | |
US20130235231A1 (en) | Vector embedded graphics coding | |
WO2021061018A1 (en) | Method and apparatus of combined intra-inter prediction | |
TWI575937B (zh) | Image prediction and decoding method and encoding / decoder | |
US20200162739A1 (en) | Embedded codec circuitry for visual quality based allocation of refinement bits | |
US20170070747A1 (en) | Image processing device for adjusting computational complexity of interpolation filter, image interpolation method, and image encoding method | |
KR20170095047A (ko) | 동적 프레임 삭제 장치 및 방법 | |
CN112135130B (zh) | 视频编译码方法及其图像处理装置 | |
CN117676143A (zh) | 一种编解码方法及装置 | |
TWI451749B (zh) | Image processing device |