一種編解碼中的預測方法和預測器的制造方法
【技術領域】
[0001]本發(fā)明涉及視頻編解碼技術,特別涉及編解碼中的像素預測方法。
【背景技術】
[0002]視頻編碼壓縮的基本原理是,利用空域、時域和碼字之間的相關性,盡可能去除冗余。目前流行的做法是采用基于塊的混合視頻編碼框架,通過預測、變換、量化、熵編碼等步驟來實現視頻編碼壓縮。這一編碼框架,顯示了很強的生命力,從最早的MPEG-1到現在最新的視頻編碼標準H.264/AVC,甚至JCTVC工作組(MPEG和VECG成立的聯合工作組)正在制定的下一代視頻編碼壓縮標準HEVC,仍然沿用這種基于塊的混合視頻編碼框架。
[0003]在視頻編解碼中一般都采用基于塊的空域預測編碼技術,基本原理是利用相鄰塊之間的相關性去除空域冗余。即利用相鄰塊作為參考塊,對當前塊進行預測。目前視頻圖像編碼中普遍采用raster-scan的掃描方式。一般地,處理順序從圖像或slice的左上角開始,按照從上到下從左到右的順序進行。當前塊的參考塊主要包括左邊塊、上邊塊和左上塊等。
[0004]顯然,對邊界塊進行空域預測處理時,必然會涉及如何處理不可用的參考塊的問題。也就是說,在相鄰塊不可用的情況下如何獲得相應的參考象素問題。一般來說,所謂的“不可用”一般包括如下幾種情況:
[0005]第一種是參考塊實際不存在?,F在一般規(guī)定一個編碼圖像的大小單位是64X64。假如當前圖像沒有滿足這一尺寸規(guī)格,那就需要在圖像的邊界上補充相應的部分來將圖像的尺寸放大到64X64的規(guī)格。而這時候,本來處于圖像邊界的圖像塊就會具有“本不應存在”的相鄰塊(參考塊)。而如果根據這些“本不應存在的”相鄰塊來預測當前圖像塊的像素值,顯然就會出現極大的偏差。
[0006]第二種情況是參考塊存在,但參考塊和當前圖像塊處于不同的條帶(slice)中。比如處于slice邊界的當前塊,其相鄰塊就有可能處于其他slice中,這時候它們之間就不能夠互相參考。
[0007]第三種情況是該相鄰塊還沒有進行處理(解碼或重構),還不能被當作參考塊。
[0008]當左邊塊、上邊塊和左上塊中的任意一個滿足上述不可用的情況時,現有技術的做法均是直接為參考塊的像素點賦固定的參考像素值,比如128,而當前塊則依照這一固定值進行預測。很顯然,為不可用的參考塊賦固定值與圖像塊像素的多變性相矛盾,預測結果很難滿足實際需求。
[0009]請參照圖1,現有技術中還提出了一種UDI預測技術,其在圖像預測中,會在33個預測方向中選擇一個方向,當前圖像塊中的所有像素點的預測均以該預測方向指向的參考塊進行,極大地提高了預測的靈活度。但是,33個預測方向也同樣使得在預測過程中可能要面對大量的“不可用”的參考塊。如果全部填充成固定值,則就會極大地影響預測的準度。
【發(fā)明內容】
[0010]本發(fā)明提供一種圖像塊編解碼中的預測方法,包括:獲得當前圖像塊的參考塊的可用性信息,并根據所述可用性信息判斷所述參考塊是否可用,其中,所述當前圖像塊的參考塊包括所述當前圖像塊的左邊塊、上邊塊、以及左上塊;如果所述參考塊中有至少一個可用以及至少一個不可用,則將所述可用的參考塊中的像素值填充到不可用的參考塊中,以作為所述當前圖像塊的參考像素值;根據所述參考像素值對所述當前圖像塊進行預測。
[0011]本發(fā)明還相應的提供了應用上述預測方法的預測器,其包括:可用性判斷模塊,用于獲得當前圖像塊的參考塊的可用性信息,并根據所述可用性信息判斷所述參考塊是否可用,其中,所述當前圖像塊的參考塊包括所述當前圖像塊的左邊塊、上邊塊、以及左上塊;像素值填充模塊,用于在所述參考塊中有至少一個可用以及至少一個不可用時,將所述可用的參考塊中的像素值填充到不可用的參考塊中,以作為所述當前圖像塊的參考像素值;預測模塊,用于根據所述參考像素值對所述當前圖像塊進行預測。
[0012]本發(fā)明還提供一種預測方法,其包括:獲得預測方向;如果所述預測方向指向所述當前圖像塊的右上塊,且所述右上塊不可用,而所述當前圖像塊的左邊塊可用,則將所述當前圖像塊的左邊塊的像素值填充到所述當前圖像塊的下邊塊中,并且獲得所述預測方向反向延伸所指向的下邊塊的填充后的像素值;根據所述預測方向反向延伸所指向的下邊塊的填充后的像素值以及所述預測方向對所述當前圖像塊的像素值進行預測。
[0013]本發(fā)明也相應提供了應用上述預測方法的預測器,其包括:預測方向獲得模塊,用于獲得預測方向;
[0014]像素值填充模塊,用于在所述預測方向指向所述當前圖像塊的右上塊,且所述右上塊不可用,而所述當前圖像塊的左邊塊可用時,將所述當前圖像塊的左邊塊的像素值填充到所述當前圖像塊的下邊塊中,并且獲得所述預測方向反向延伸所指向的下邊塊的填充后的像素值;
[0015]預測模塊,用于根據所述預測方向反向延伸所指向的下邊塊的填充后的像素值以及所述預測方向對所述當前圖像塊的像素值進行預測。
[0016]采用本發(fā)明提供的預測方法和預測器,通過可用參考塊的像素值來填充不可用的像素塊,使得像素預測中可以始終依照與當前塊相鄰的參考塊的像素值進行,提高了預測的準度。
【附圖說明】
[0017]圖1為H.264標準提供的UDI預測方法的應用示圖。
[0018]圖2為圖像預測中的圖像塊的排布示意圖。
[0019]圖3為本發(fā)明實施例提供的預測方法的示意圖。
[0020]圖4為本發(fā)明實施例提供的預測方法的應用示圖。
[0021]圖5為本發(fā)明又一實施例提供的預測方法的示意圖。
[0022]圖6為本發(fā)明又一實施例提供的預測方法的應用示圖。
[0023]圖7為本發(fā)明實施例提供的預測器的示意圖。
[0024]圖8為本發(fā)明又一實施例提供的預測器的示意圖。
【具體實施方式】
[0025]圖2所示為圖像塊的排列示意圖。其中,E塊為當前圖像塊、A塊為所述當前圖像塊的左邊塊,B塊為所述當前圖像塊的上邊塊,D塊為所述當前圖像塊的左上塊,C塊為所述當前圖像塊的右上塊。本發(fā)明實施例所提供的預測方法提供了一種當所述A、B、D塊中的任一一個參考塊不可用時的解決方法。請參照圖3,本發(fā)明實施例所提供的預測方法,包括:
[0026]步驟101:獲得當前圖像塊的參考塊的可用性信息,并根據所述可用性信息判斷所述參考塊是否可用,其中,所述當前圖像塊的參考塊包括所述當前圖像塊的左邊塊、上邊塊、以及左上塊;
[0027]在本發(fā)明實施例中,所述可用性信息包括:參考塊是否處于所述當前圖像塊所處的圖象的邊界內;參考塊是否與所述當前圖像塊處于同一條帶中;以及參考塊是否已經被編碼或已解碼。如果參考塊滿足以上3個條件,則所述參考塊可用,否則參考塊不可用。其中,所述參考塊是否出于所述當前圖像塊所處的圖像的邊界內,從另一角度來說,就是判斷所述參考塊是否是處于圖像邊界上的額外補足的圖像塊。由于編解碼的圖像規(guī)格是64X64,但是圖像也有可能沒有達到這一規(guī)格要求,這時候在圖像的邊界之外就會“存在”一些虛擬的、并不存在的圖像塊。很明顯,這些并不存在的圖像塊并不能用來預測當前圖像塊的像素值。
[0028]步驟102:如果所述參考塊中有至少一個可用以及至少一個不可用,則將所述可用的參考塊中的像素值填充到不可用的參考塊中,以作為所述當前圖像塊的參考像素值;以及
[0029]步驟103:根據所述