架構
高階視頻編碼的幀內編碼是藉由前一個解碼視頻區塊且基於空間上的樣本來推斷,而高效率視頻編碼也沿用此準則,但是更進一步擴展至能夠有效呈現更大範圍的圖像材質及結構的信息。高效率視頻編碼的幀內編碼設計基於下列考量:
可支持的編碼區塊大小(Coding block sizes)範圍:高階視頻編碼只支持到16×16像素,不夠有效呈現高階定義的圖像。
方向性結構預測:高階視頻編碼支持8種方向的幀內預測模式,當使用更大的區塊大小時,此數量不足以精確呈現視頻和圖像的內容。
同質區域(Homogeneous Regions)預測:高階視頻編碼的平面模式用來編碼同質的視頻區域,但是此種模式不保證區塊邊界的連續性,因此需要有一種模式可以保證在取樣平面的預測為連續性。
跨區塊大小的一致性:高階視頻編碼根據區塊大小使用不同的方法來預測區塊。在高效率視頻編碼支持更大範圍的區塊大小情況下,需要一個更一致性的設計。
幀內編碼的轉換:對於每一區塊大小,高階視頻編碼採用固定的離散餘弦轉換(Discrete Cosine Transform),這樣的設計沒有考慮到統計不同水平和垂直方向的預測錯誤。
幀內模式編碼(Intra Mode Coding):高效率視頻編碼大幅增加編碼模式,因此需要更有效率的編碼技術。
幀內編碼使用的編碼結構遵循邊高效率視頻編碼的
編解碼器架構,圖像會由
編碼樹單元分區為數個(或不分區)編碼單元、預測單元、轉換單元,因為高效率視頻編碼包含上列提及的數種改善幀內編碼的方式,因此可逐漸改變取樣值使得不同方向的結構和區域更精準,而且藉由引用樣本的自適應平滑性和使直流(DC)、垂直、水平模式產生的預測邊界樣本平滑,可避免分區塊編碼所造成的邊緣效應。
所有預測模式皆使用相同集合的引用樣本(Reference Samples),而這些引用樣本位於視頻區塊的左側及上側,在此定義引用樣本為Rx,y,預測樣本(Predicted samples)為Px,y,如圖一所示。
位於圖片或片(Slice)的邊界或是被限制的編碼單元邊界,附近的引用樣本可能無法使用,此時左邊界的遺漏引用樣本會由最近下面的引用樣本產生,若是下邊沒有引用樣本則使用上邊的引用樣本;相同地,上邊界的遺漏引用樣本會由最近左邊的引用樣本產生;若是沒有任何引用樣本可以使用,則所有樣本被指定為比特深度的平均值。高效率視頻編支持35種幀內預測模式,包含平面、直流、以及角度,幀內預測模式0為平面幀內預測,模式1為直流預測,模式2至34為角度預測模式。
角度幀內預測(Angular Intra Prediction)
高效率視頻編碼的角度幀內預測被設計成可以有效支持多種不同的方向結構,特別是針對視頻及圖片內容,會選擇特定的幀內預測模式數量以及角度是為了在編碼複雜度和編碼效率中獲取平衡,因此樣本的預測程式會被設計成匹配低運算量以及維持跨區塊大小間及預測方向的一致性,也就是說可以最小化硬體實現上的晶片面積或是軟體實踐上的代碼數量,以及更容易在不同環境下最佳化成高效率及高處理能力(Throughput)。在高效率視頻編碼中,共有4種有效的幀內預測區塊大小-4×4至32×32,以及33種角度幀內預測模式,因此解碼器必須支持132種區塊大小和預測方向的組合。
角度定義(Angle Definitions)
對一般圖片而言,垂直和水平的圖形發生的頻率會比其他方向的圖形更高,這33種預測角度是根據觀察而定義出最最佳化精準度的集合,四分圓包含8個預測角度,如圖二所示。對於垂直和水平的方向,有著小偏移參數可以提供垂直和水平圖形更精確的預測,越靠近對角線,預測方向的偏移係數越大,對於使用頻率較小的圖形可以有效減少預測模式的密度。
引用像素處理(Reference Pixel Handling)
高效率視頻編碼的幀內樣本預測過程是由重建的引用樣本以及固定方向推斷,為了簡化過程,根據選定的預測模式,在一個預測區塊內的所有樣本會被投影至單一的引用行或列,預測模式2至17會採用左邊的引用行,預測模式18至34則會使用上方引用列。在一些情況下,被投影的像素位於負的座標軸上,此時引用的行或列會藉由投影左邊引用行至上方引用列或投影上方引用列至左邊引用行來擴展,這樣的方法只會造成壓縮表現一點可被忽略的影響。圖三描述擴展左邊引用行至上方引用列。
任意數量方向的樣本預測
假設每一預測樣本
由引用列投影而來,以及使用差值法得到1/32像素精準度,如下
為兩引用樣本
和
的權重,
代表比特向右位移,引用樣本索引
和
藉由投影位移
、選擇的預測方向計算,而投影位移
範圍是-32至32,&代表對每比特作按位與(AND)計算。
公式(1)和(2)定義在預測模式18至34如何獲得預測樣本值,而在預測模式2至17也是相同的推導方式,只要替換公式中的
和
。
平面預測(Planar Prediction)
當邊緣出現時,雖然提供一有效的預測很重要,不是所有的圖像內容會匹配邊緣模型(Edge Model),因此提供直流預測(DC Prediction)此一替換的模式,此模式致力於保持區塊邊界的連續性,其值為兩線性預測的平均,如下:
引用樣本平滑濾波
高階視頻編碼對於8×8的預測亮度區塊採用三階平滑濾波器(Three-tap Smoothing Filter),而高效率視頻編碼對於8×8及更大的預測亮度區塊也採用相同的濾波器,第一個引用樣本R0,2N和R2N,0不被過濾;對於32×32大小的區塊,除了垂直和水平的所有角度模式皆使用一個過濾引用;在16×16大小的區塊,這些不使用一個過濾引用的模式增加至4個模式(9、11、25、27),包含很接近水平和垂直的模式;此外,平滑濾波也使用在平面模式。根據選擇的區塊大小及預測方向採用引用樣本平滑濾波,可以減少編碼造成的邊緣輪廓。