技術領域
本發(fā)明涉及一種幀內預測模式中的運動圖片的解碼方法,更特別的是,涉及一種恢復幀內預測模式、生成非常類似于原始塊的預測塊、解碼剩余塊以及利用預測塊和剩余塊生成重建塊的方法。
背景技術:
在諸如運動圖像專家組(MPEG)-1、MPEG-2、MPEG-4和H.264/MPEG-4高級視頻編碼(AVC)的圖像壓縮方法中,將一張圖片分成多個宏塊以編碼圖像。然后,利用幀間預測或幀內預測對各個宏塊進行編碼。
在幀內預測中,使用與當前塊空間上相鄰的重建后的像素的值,而不使用參考圖片來對圖片的當前塊進行編碼。通過將使用相鄰像素值生成的預測塊與原始宏塊進行比較來選擇畸變很小的幀內預測模式。然后,使用選定的幀內預測模式和相鄰的像素值,計算當前塊的預測值。計算預測值與原始的當前塊的像素值之差,然后通過變換編碼、量化和熵編碼來對該差值進行編碼。還對幀內預測模式進行編碼。
在4×4的常規(guī)幀內預測中,存在九種模式:垂直模式、水平模式、DC模式、對角線左下模式、對角線右下模式、垂直右模式、垂直左模式、水平上模式和水平下模式。
根據(jù)H.264標準,在上述九種模式中選定一種模式來生成當前塊的預測塊。根據(jù)正在研發(fā)的HEVC標準,存在17或34種幀內預測模式。
然而,當與當前塊相鄰的像素的某些或全部值不存在或未被編碼時,不可能對當前塊應用這些或全部幀內預測模式。在這種情況下,如果通過從可用幀內預測模式中選擇一種幀內預測模式來實施幀內預測,則預測塊與原始塊之間的畸變會變大。因此,降低編碼效率。
而且,隨著幀內預測模式數(shù)量增多,需要一種比常規(guī)方法更加有效的幀內預測模式編碼新方法,以及一種更加有效的解碼幀內預測模式并生成重建塊的方法。
技術實現(xiàn)要素:
本發(fā)明涉及一種恢復幀內預測模式、生成非常類似于原始塊的預測塊、解碼剩余塊并且利用預測塊和剩余塊生成重建塊的方法。
本發(fā)明的一個方面提供了一種幀內預測模式中的運動圖片的解碼方法,包括:解復用比特流以提取幀內預測信息和剩余信號,利用幀內預測信息和與當前預測單元相鄰的預測單元的幀內預測模式,恢復當前預測單元的幀內預測模式,如果在預測單元中存在不可用參考像素,則利用一個或多個可用參考像素生成參考像素,根據(jù)恢復后的幀內預測模式適應性地過濾參考像素,利用恢復后的幀內預測模式和參考像素生成預測塊,解碼剩余信號以生成剩余塊,以及利用預測塊和剩余塊生成重建塊。
根據(jù)本發(fā)明的方法恢復當前預測單元的幀內預測模式,并且根據(jù)恢復后的幀內預測模式適應性過濾參考像素,以便生成使預測塊與原始塊之間的差別最小的預測塊。通過根據(jù)幀內預測模式適應性解碼剩余信號來生成剩余塊。因此,通過生成非常類似于原始塊的預測塊,解碼剩余塊所需的比特量被最小化。并且,通過使用多個備選編碼當前塊的幀內預測模式,提高了幀內預測模式的編碼效率。
附圖說明
圖1是根據(jù)本發(fā)明的運動圖片編碼裝置的方框圖。
圖2是根據(jù)本發(fā)明的運動圖片編碼裝置的幀內預測單元的方框圖。
圖3是示出根據(jù)本發(fā)明的用于幀內預測的參考像素位置的概念圖。
圖4是表示根據(jù)本發(fā)明的方向性幀內預測模式的概念圖。
圖5是根據(jù)本發(fā)明的運動圖片解碼裝置的方框圖。
圖6是根據(jù)本發(fā)明的運動圖片解碼裝置的幀內預測單元的方框圖。
圖7是表示根據(jù)本發(fā)明的幀內預測模式下解碼步驟的流程圖。
圖8是表示根據(jù)本發(fā)明的恢復幀內預測模式的步驟的流程圖。
圖9是表示根據(jù)本發(fā)明的恢復幀內預測模式的另一步驟的流程圖。
具體實施方式
下文中,將參照附圖具體描述本發(fā)明的各個實施例。然而,本發(fā)明不限于下述示例性實施例,而是可以以不同類型實現(xiàn)。因此,對本發(fā)明的許多其他修改和變型也是可能的,并且應當理解,在所公開的原理的范圍內,可以通過不同于具體描述的方式來實現(xiàn)本發(fā)明。
圖1是根據(jù)本發(fā)明的運動圖片編碼裝置的方框圖。
參照圖1,根據(jù)本發(fā)明的運動圖片編碼裝置100包括圖片分割單元110、轉換單元120、量化單元130、掃描單元131、熵編碼單元140、幀內預測單元150、幀間預測單元160、反量化單元135、反轉換單元125、后處理單元170、圖片存儲單元180、減法器190和加法器195。
該圖片分割單元110分析輸入視頻信號,以將圖片的每個LCU分割成具有預定大小的一個或多個編碼單元,確定每個編碼單元的預測模式并且確定每個編碼單元的預測單元的大小。該圖片分割單元110根據(jù)預測模式將所要編碼的預測單元傳送到幀內預測單元150或者幀間預測單元160。而且,該圖片分割單元110將所要編碼的預測單元傳送到減法器190。
該轉換單元120轉換預測單元的原始塊與幀內預測單元150或幀間預測單元160生成的預測塊之間的剩余塊。剩余塊可以具有編碼單元的大小。該剩余塊可被分成最優(yōu)轉換單元并被轉換??梢愿鶕?jù)預測模式和幀內預測模式適應性確定轉換矩陣類型??梢酝ㄟ^水平和垂直一維(1D)轉換矩陣來轉換剩余信號的該轉換單元。在幀間預測中,應用一種預定的轉換矩陣類型。在幀內預測中,當當前預測單元的幀內預測模式為水平時,剩余信號極有可能具有垂直方向性。因此,將基于離散余弦變換(DCT)的整數(shù)矩陣用于垂直方向,并且將基于離散正弦變換(DST)或者卡洛南-洛伊變換(KLT)的整數(shù)矩陣用于水平方向。當幀內預測模式為垂直時,將基于DST或KLT的整數(shù)矩陣用于垂直方向,并且將基于DCT的整數(shù)矩陣用于水平方向。而且,在幀內預測中,可以根據(jù)轉換單元的大小適應性確定轉換矩陣。
該量化單元130為每個編碼單元確定用于量化剩余塊的轉換系數(shù)的量化步距。為等于或大于預定大小的每個編碼單元確定量化步距。預定大小可以是8×8或者16×16。使用所確定的量化步距和根據(jù)預測模式確定的量化矩陣,對轉換系數(shù)進行量化。該量化單元130使用與當前編碼單元相鄰的一個或多個編碼單元的量化步距來生成當前編碼單元的量化步距預測值。
該量化單元130按照以下掃描順序連續(xù)檢索編碼單元:1)當前編碼單元的左編碼單元,2)當前編碼單元的上編碼單元,以及3)當前編碼單元的左上編碼單元。并且量化單元使用一個或兩個有效量化步距生成當前編碼單元的量化步距預測值。例如,可以將該掃描順序中遇到的第一有效量化步距確定為量化步距預測值。當兩個或更多個量化步距為有效時,可以將該掃描順序中檢索到的最先的兩個有效量化步距的平均值確定為量化步距預測值,并且當僅有一個量化步距為有效時,將這個有效量化步距確定為量化步距預測值。當確定了量化步距預測值時,將量化步距與量化步距預測值之差傳送到熵編碼單元140。
當前編碼單元可以不存在左編碼單元、上編碼單元和左上編碼單元。另一方面,在編碼順序中,當前編碼單元可能具有前一編碼單元。因此,與當前編碼單元相鄰的編碼單元和前一編碼單元可以作為備選。在這種情況下,以上的掃描順序可以變?yōu)槿缦聮呙桧樞颍?)當前編碼單元的左編碼單元,2)當前編碼單元的上編碼單元,3)當前編碼單元的左上編碼單元以及4)當前編碼單元的前一編碼單元。掃描順序可以改變,或者可以在掃描順序中省略左上編碼單元。將量化后的轉換塊提供給反量化單元135和掃描單元131。
該掃描單元131掃描量化后轉換塊的量化后轉換系數(shù),從而將該量化后轉換系數(shù)變?yōu)?D量化后轉換系數(shù)。因為量化后轉換系數(shù)的分布依賴于幀內預測模式,所以根據(jù)幀內預測模式來確定掃描方式。還可以根據(jù)轉換單元的大小來確定掃描方式??梢愿鶕?jù)方向性幀內預測模式來確定掃描方式。沿相反方向掃描量化后轉換系數(shù)。
當量化后轉換系數(shù)被分成多個子集時,將相同的掃描方式應用于每個子集。該多個子集由一個主子集和一個或多個剩余子集構成。該主子集位于左上側并且包括DC系數(shù)。該一個或多個剩余子集覆蓋了不同于主子集的區(qū)域。
可以采用折線掃描來掃描子集。掃描子集可以按正向從主子集開始到剩余子集,或者能夠按反向掃描??梢詫呙枳蛹膾呙璺绞皆O定成與掃描子集中的量化后轉換系數(shù)的掃描方式相同。在這種情況下,根據(jù)幀內預測模式來確定掃描子集的掃描方式。運動圖片編碼裝置100將能夠表示轉換單元最后一個非零量化后系數(shù)的位置的信息傳送給解碼器。運動圖片編碼裝置100還將能夠表示每個子集的最后一個非零量化后系數(shù)位置的信息傳送給解碼器。
反量化單元135反量化該量化后轉換系數(shù)。反轉換單元125由反量化后轉換系數(shù)恢復空間域的剩余信號。加法器195通過將反轉換單元125重建的剩余塊與來自幀內預測單元150或幀間預測單元160的預測塊相加生成重建塊。
后處理單元170實施解塊過濾工序,以去除重建圖片中生成的塊效應;實施適應性偏移施加工序,以補償重建圖片與原始圖像的每個像素的差別;以及實施適應性環(huán)路過濾工序,以在編碼單元中補償重建圖片與原始圖像的差別。
可以將解塊過濾工序應用于具有預定大小或更大的預測單元之間以及轉換單元之間的邊界。預定大小可以是8×8。該解塊過濾工序包括確定要過濾的邊界的步驟、確定所要應用到該邊界的邊界過濾強度的步驟、確定是否應用解塊過濾的步驟以及當確定應用解塊過濾時選擇應用到該邊界的過濾器的步驟。
根據(jù)以下內容來確定是否應用解塊過濾:i)邊界過濾強度是否大于0,以及ii)表示與所要過濾的邊界相鄰的P塊和Q塊的邊界像素之差的值是否小于根據(jù)量化參數(shù)確定的第一參考值。
可以存在兩個或更多個過濾器。當與塊邊界相鄰的兩個像素之差的絕對值等于或大于第二參考值時,選擇弱過濾器。該第二基準值是由量化參數(shù)和邊界過濾強度來確定的。
適應性偏移施加工序意在減少受到解塊過濾的像素與原始像素之間的差別(畸變)。能夠確定在圖片或切片的單元中是否實施適應性偏移施加工序??梢詫D片或切片分成多個偏移區(qū)域,并且可以確定每個偏移區(qū)域的偏移模式。具有四邊偏移模式、兩帶偏移模式和偏移不應用模式。可能存在預定數(shù)量的邊緣偏移模式(例如四邊偏移模式)、兩帶偏移模式。在邊緣偏移模式的情況下,確定每個像素所屬的邊緣模式并且施加對應于所確定的邊緣模式的偏移。根據(jù)與當前像素相鄰的兩個像素的像素值的分布來確定邊緣模式。
根據(jù)比較原始圖像與應用了解塊過濾工序或自適應偏移施加工序的重建圖像所獲得的值,可以實施適應性環(huán)路過濾工序。所確定的ALF可以應用于4×4塊或8×8塊中包含的全部像素??梢詾槊總€編碼單元確定是否應用ALF。環(huán)路過濾器的大小和系數(shù)可以隨每個編碼單元變化。表示是否對每個編碼單元應用ALF的信息可以包含在切片頭中并傳送到解碼器。在色度信號的情況下,可以為每個圖片單元確定是否應用ALF。與亮度不同,環(huán)路過濾器可以具有矩形形狀。
根據(jù)切片實施適應性環(huán)路過濾工序。因此,表示是否將適應性環(huán)路過濾工序應用于當前切片的信息包含在切片頭或者圖片頭中。如果將適應性環(huán)路過濾工序應用于當前切片,則切片頭或者圖片包括表示適應性環(huán)路過濾工序中使用的亮度成分的水平過濾長度和/或垂直過濾長度的信息。如果使用預測方法,則切片頭或者圖片包括預測過濾系數(shù)。
還可以適應性地過濾色度成分。切片頭或者圖片頭可以包括是否過濾每種色度成分的信息。為了減少比特量,可以共同編碼表示是否過濾Cr成分的信息和表示是否過濾Cb成分的信息。將最小索引分配給Cr成分和Cb成分均未被過濾的情況,這是因為使Cr和Cb成分均不被過濾以便減小復雜性的可能性很高,并且實施熵編碼。將最大索引分配給Cr成分和Cb成分均被過濾的情況。
圖片存儲單元180從后處理單元170接收后處理過的圖像,并且將恢復后的圖像存儲在圖片單元中。圖片可以是幀或場形式的圖像。圖片存儲單元180具有能夠存儲多幅圖片的緩存(未示出)。
幀間預測單元160利用存儲在該圖片存儲單元180中的一個或多個參考圖片實施運動估計,并且確定表示參考圖片的一個或多個參考圖片索引和一個或多個運動矢量。根據(jù)參考圖片索引和運動矢量,幀間預測單元160從圖片存儲單元180中存儲的多幅參考圖片中選擇的參考圖片,提取對應于所要編碼的預測單元的預測塊,并且輸出提取出的預測塊。
幀內預測單元150利用包含當前預測單元的圖片中的重建參考像素實施幀內預測。幀內預測單元150接收所要預測編碼的當前預測單元,選擇預定數(shù)量的幀內預測模式之一,并且實施幀內預測。幀內預測模式的預定數(shù)量取決于當前預測單元的大小。該幀內預測單元150適應性地過濾參考像素以生成幀內預測塊。當某些參考像素不可用時,可以利用可用參考像素在不可用位置處生成參考像素。
熵編碼單元140對經量化單元130量化的量化后轉換系數(shù)、從幀內預測單元150接收到的幀內預測信息、從幀間預測單元160接收到的運動信息等進行熵編碼。
圖2是根據(jù)本發(fā)明的運動圖片編碼單元100的幀內預測單元150的方框圖。
參照圖2,該幀內預測單元150包括參考像素生成單元151、參考像素過濾單元152、預測塊生成單元153、預測模式確定單元154和預測模式編碼單元155。
參考像素生成單元151確定必須生成用于幀內預測的參考像素,并且如果必須生成參考像素則生成參考像素。
圖3是示出根據(jù)本發(fā)明的用于幀內預測的參考像素位置的概念圖。如圖3所示,當前預測的參考像素是由上參考像素、左參考像素和角落參考像素構成的。當前預測單元的上參考像素是當前預測單元寬度兩倍的像素(區(qū)域C和D),當前預測單元的左參考像素是當前預測單元長度兩倍的像素(區(qū)域A和B)。角落參考像素位于(x=-1,y=-1)處。
參考像素生成單元151確定參考像素是否可用。如果一個或多個參考像素是不可用的,則參考像素生成單元151利用可用參考像素在不可用位置處生成參考像素。
當當前預測單元位于圖片或切片的上邊界處時,當前預測單元的上參考像素(區(qū)域C和D)和角落參考像素不存在。當當前預測單元位于圖片或切片的左邊界處時,左參考像素(區(qū)域A和B)和角落參考像素不存在。在這些情況下,通過復制與不可用像素最接近的可用像素的值,生成參考像素。也就是說,當當前預測單元位于圖片或切片的上邊界處時,通過復制最上部的左參考像素(即位于區(qū)域A的最上部位置的參考像素),能夠生成上參考像素。當當前預測單元位于圖片或切片的左邊界處時,通過復制最左側的上參考像素(即位于區(qū)域C的最左側位置的參考像素),能夠生成左參考像素。
首先,將描述可用參考像素相對于不可用參考像素僅存在于一個方向上的情況。
可能的情況是與當前預測單元(區(qū)域C)的上邊界相鄰的參考像素是可用的,但是右上參考像素(D)可能是不可用的。當當前預測單元位于切片或LCU的右邊界時,區(qū)域D中的參考像素是不可用的。在這種情況下,利用一個或多個可用的上參考像素生成參考像素(D)。通過復制上部最右的像素或者利用兩個或多個可用的上參考像素來生成右上參考像素。
當與當前預測單元的左側相鄰的參考像素(區(qū)域A)可用時,但左下參考像素(區(qū)域B)可能不可用。當當前預測單元位于切片或LCU的下邊界時,區(qū)域B中的參考像素不可用。在這種情況下,利用一個或多個可用左參考像素生成左下參考像素(區(qū)域B)。通過復制左側最下的像素或者使用兩個或多個可用左參考像素來生成左下參考像素。
如上所述,如果可用參考像素相對于不可用像素僅存在于一個方向上,則通過復制與不可用像素最接近的可用像素的值來生成參考像素??蛇x的是,可以利用與不可用像素最接近的兩個或多個可用像素來生成參考像素。
接著,將描述可用參考像素相對于不可用參考像素存在于兩個方向上的情況。
例如,當當前預測單元位于切片的上邊界并且當前預測單元的右上預測單元可用時,對應于當前預測單元的區(qū)域C的參考像素是不可用的,但是位于區(qū)域A和D的參考像素是可用的。在存在于兩個方向上的參考像素可用的情況下,通過選擇最靠近每個方向的可用參考像素并且利用它們(即區(qū)域A中最上的參考像素和區(qū)域D中最左的參考像素)來生成參考像素。
通過把上述參考像素(即最靠近每個方向的像素)的平均值四舍五入來生成參考像素。但是,可以使用線性內插法來生成參考像素,這是因為上述參考像素值之差很大。具體而言,可以通過考慮相對于兩個可用參考像素的位置來生成當前位置的不可用參考像素。
參考像素過濾單元152適應性過濾當前預測單元的參考像素。
參照圖4,描述參考像素過濾單元152的工作。圖4是表示根據(jù)本發(fā)明的方向性幀內預測模式的概念圖。
參考像素過濾單元152根據(jù)幀內預測模式和參考像素位置適應性過濾參考像素。
在垂直模式(模式0)、水平模式(模式1)和DC模式(模式2)中,不過濾參考像素。但是,在不同于模式0、1和2的方向性幀內預測模式中,適應性過濾參考像素。位于(x=2N-1,y=-1)處的上參考像素的最右像素和位于(x=-1,y=2N-1)處的左參考像素的最下像素未被過濾。利用兩個相鄰的參考像素過濾其他參考像素。
低通濾波器用于使相鄰參考像素之差變得平滑。該低通濾波器可以是3分濾波器[1,2,1]或者5分濾波器[1,2,4,2,1]。
由當前預測單元的大小和幀內預測模式來確定低通濾波器的應用。
根據(jù)預測單元的大小,將濾波器適應性用于關于水平或垂直方向具有45度方向的方向性幀內預測模式3、6和9中的參考像素。如果預測單元的大小小于預定大小,則應用第一濾波器。如果預測單元的大小等于或大于預定大小,則可以應用比第一濾波器更強的濾波器。該預定大小可以是16×16。
在存在于幀內預測模式3、6或9與水平或垂直幀內預測模式之間的方向性幀內預測模式中,能夠根據(jù)預測單元大小將濾波器適應性應用于參考像素。在與模式3、6或9最接近的預定數(shù)量的幀內預測模式中可以應用濾波器。對于具有相同數(shù)量的方向性幀內預測模式的預測單元而言,該預定數(shù)量可以隨著預測塊大小的增加而增加。例如,對于8×8塊,將濾波器應用于與模式3、6或9最接近的第一數(shù)量幀內預測模式,對于16×16塊,將濾波器應用于與模式3、6或9最接近的第二數(shù)量幀內預測模式,對于32×32塊,將濾波器應用于與模式3、6或9最接近的第三數(shù)量幀內預測模式。第一數(shù)量等于或小于第二數(shù)量,并且第二數(shù)量等于或小于第三數(shù)量。
預測塊生成單元153生成對應于幀內預測模式的預測塊。
在DC模式中,預測塊由參考像素的平均值構成,并且在與參考像素相鄰的預測塊中的像素之間會出現(xiàn)步差。因此,利用參考像素過濾與參考像素相鄰的上線和左線的預測像素。由3分濾波器來過濾與兩個參考像素(上參考像素和左參考像素)相鄰的左上預測像素。由2分濾波器過濾與一個參考像素相鄰的其他預測像素(預測塊中上線的像素和左線的像素)。
在平面模式中,利用角落參考像素、左參考像素和上參考像素生成預測像素。利用位于(x=-1,y=-1)處的角落參考像素、位于(x=a,y=-1)處的上參考像素以及位于(x=-1,y=b)處的左參考像素生成位于(a,b)處的預測像素。在平面模式中,預測像素未被參考像素過濾。
當通過復制垂直模式(模式0)中相應的上參考像素生成預測像素時,預測塊中的左參考像素和與該左參考像素相鄰的預測像素之間的相關性隨著預測像素位置向下而降低。當通過復制水平模式(模式1)中相應的左參考像素生成預測像素時,預測塊中的上參考像素和與該上參考像素相鄰的預測像素之間的相關性隨著預測像素位置向右而降低。出于這個原因,在垂直模式中,預測塊與原始預測單元之間的差別隨著預測像素的位置向下而增大。
因此,在垂直模式中,可以利用生成預測塊時未使用的左參考像素來過濾預測塊中的左像素,以便降低上述差別。在水平模式中,可以利用生成預測塊時未使用的上參考像素來過濾預測塊中的上像素。
在存在于模式0與模式6之間的方向性幀內預測模式(模式編號22、12、23、5、24、13和25)以及模式6中,當僅利用當前預測單元的上參考像素生成預測塊時,參考像素與位于所生成的預測塊的左線中并且與參考像素相鄰的像素之間的差別隨著預測像素的位置向下而增大。
在存在于模式1與模式9之間的方向性幀內預測模式(模式編號30、16、31、8、32、17、33)以及模式9中,當僅利用當前預測單元的左參考像素生成預測塊時,參考像素與位于所生成的預測塊的上線中并且與參考像素相鄰的像素之間的差別隨著預測像素的位置向右而增大。
因此,對于除DC模式之外的方向性幀內預測模式而言,可以適應性過濾預測塊的某些像素,以便抵消上述差別。另外,為了抵消上述差別,可以利用上參考像素和左參考像素來生成預測塊。
首先,描述用于過濾預測塊的某些像素的方法。
在模式6中,利用上參考像素生成預測塊并且過濾與參考像素相鄰的左預測像素。所要過濾的預測塊中的像素區(qū)域可以隨著預測單元大小而改變。也就是說,所要過濾的線的數(shù)量和線中的像素比例可以隨著預測單元大小改變。隨著預測單元大小增大,線的數(shù)量可以增加或保持不變,或者比例可以降低。并且,過濾強度可以隨著相對于參考像素的距離增加而降低。
例如,針對4×4預測單元過濾所生成的預測塊中的第一左線(x=0,y=0,…,3)的像素。針對8×8預測單元過濾第一左線的全部預測像素以及第二線的某些預測像素。某些預測像素可以位于(x=1,y=4,…,7)處。針對16×16預測單元過濾第一左線的全部預測像素、第二線的第一數(shù)量的預測像素以及第三線的第二數(shù)量的預測像素。第一數(shù)量的預測像素可以位于(x=1,y=4,…,7)處,第二數(shù)量的預測像素可以位于(x=2,y=8,…,15)處。針對32×32預測單元,過濾第一左線的全部預測像素、第二線的第一數(shù)量的預測像素、第三線的第二數(shù)量的預測像素以及第四線的第三數(shù)量的預測像素。第三數(shù)量的預測像素可以位于(x=3,y=16,…,31)處。
在最接近模式6并且存在于模式0與模式6之間的第一數(shù)量的幀內預測模式中,可以利用與模式6中相同的方法來過濾預測像素。所要過濾的預測像素數(shù)量可以隨著幀內預測模式的方向遠離模式6的方向而降低或保持不變。在最接近模式0并且存在于模式0與模式6之間的第二數(shù)量的幀內預測模式中,可以利用與模式0中相同的方法過濾預測像素。
在模式9中,可以利用與模式6中相同的方法來過濾預測像素。在存在于模式1與模式9之間的幀內預測模式中,可以利用與存在于模式0與模式6之間的幀內預測模式中相同的方法過濾預測像素。
同時,在模式6和與模式6相鄰的預定數(shù)量的幀內預測模式中,能夠利用全部上參考像素和左參考像素,而不利用上述過濾預測塊中某些像素的方法來生成預測塊。在模式9和與模式9相鄰的預定數(shù)量的幀內預測模式中,應用相同方法。
幀內預測模式確定單元154使用參考像素確定當前預測單元的幀內預測模式。該幀內預測模式確定單元154選擇一種其中對于每種幀內預測模式使剩余塊的編碼比特量最小化的幀內預測模式,作為當前預測單元的幀內預測模式。
幀內預測模式編碼單元155將幀內預測模式確定單元154確定的當前預測單元的幀內預測模式編碼??梢詫瑑阮A測模式編碼單元155集成到幀內預測單元150中或者熵編碼單元140中。
幀內預測模式編碼單元155利用與當前預測單元相鄰的預測單元的幀內預測模式將當前預測單元的幀內預測模式編碼。幀內預測模式編碼單元155將幀內預測模式分類成多個幀內預測模式組,將表示包括當前預測單元的幀內預測模式的幀內預測模式組的信息以及對應于幀內預測模式組中的當前編碼單元的幀內預測模式的模式索引進行編碼。優(yōu)選的是,幀內預測模式組的數(shù)量為2個或3個。
當幀內預測模式組的數(shù)量為2個時,幀內預測模式編碼單元155的操作如下。
首先,獲得與當前預測單元相鄰的預測單元的幀內預測模式。預測單元可以是左預測單元和上預測單元。當當前預測單元存在多個上預測單元時,沿著預定方向(例如從右到左)掃描該多個上預測單元,以確定第一可用預測單元的幀內預測模式作為上幀內預測模式。同樣,當當前預測單元存在多個左預測單元時,沿著預定方向(例如從下到上)掃描該多個左預測單元,以確定第一可用預測單元的幀內預測模式作為左幀內預測模式??蛇x的是,在多個可用預測單元中,可以將具有最低幀內預測模式編號的可用預測單元的幀內預測模式設定為上幀內預測模式。
接著,當所獲得的幀內預測模式編號等于或大于當前預測單元可允許的幀內預測模式編號時,可以將所獲得的幀內預測模式轉變?yōu)楫斍邦A測單元可允許的模式之一。
接著,利用所獲得的或者經轉變的幀內預測模式構建第一幀內預測模式組。
所獲得的或經轉變的幀內預測模式以及利用該所獲得的或者經轉變的幀內預測模式按照預定順序確定的一個或多個幀內預測模式備選用于構建第一幀內預測模式組。當所獲得的或經轉變的幀內預測模式是方向性模式時,該幀內預測模式備選可以是與該所獲得的或經轉變的幀內預測模式最接近的一個或多個方向性幀內預測模式。
接著,確定當前預測單元的幀內預測模式是否屬于第一幀內預測模式組。
當當前預測單元的幀內預測模式屬于第一幀內預測模式組時,將表示第一幀內預測模式組的信息以及該第一幀內預測模式組中對應于當前預測單元的幀內預測模式的索引編碼。
但是,當當前預測單元的幀內預測模式不屬于第一幀內預測模式組時,將表示第二幀內預測模式組的信息以及該第二幀內預測模式組中對應于當前編碼單元的幀內預測模式的索引進行編碼。該第二幀內預測模式組包括與屬于第一幀內預測模式組的幀內預測模式不同的幀內預測模式。
當上幀內預測模式和左幀內預測模式當中沒有一個可用時,將一個或多個幀內預測模式添加到第一幀內預測模式組中。例如,當添加了一個幀內預測模式時可以添加DC模式或者平面模式。當添加兩個幀內預測模式時可以添加DC模式和平面或垂直模式。當添加三個幀內預測模式時可以添加DC模式、平面模式和垂直模式與水平模式之一。
當上幀內預測模式和左幀內預測模式之一可用時,或者當上幀內預測模式和左幀內預測模式相同時,可以將一個或兩個幀內預測模式添加到第一幀內預測模式組中。例如,當添加一個幀內預測模式時可以添加DC模式或者平面模式。當添加兩個幀內預測模式時,所要添加的幀內預測模式根據(jù)可用幀內預測模式是否為方向性幀內預測模式改變。如果可用幀內預測模式是非方向性幀內預測模式(即DC模式和平面模式)之一,則可以添加垂直模式和水平模式,或者可以添加其他方向性幀內預測模式和垂直模式。如果可用幀內預測模式是方向性幀內預測模式,則可以添加兩側最接近方向性幀內預測模式的兩個幀內預測模式。但是,如果僅在可用幀內預測模式的一側(即可用幀內預測模式是模式6或模式9)存在相鄰幀內預測模式,則可以添加這個相鄰的幀內預測模式(模式25或模式33)以及DC模式和平面模式之一。
當當前預測單元的幀內預測模式屬于第二幀內預測模式組時,該索引對應于第二幀內預測模式組中當前編碼單元的幀內預測模式的重排編號。在這種情況下,可以使用一個VLC表。
幀內預測模式組的數(shù)量可以為3。當幀內預測模式組的數(shù)量為3時,如果當前預測單元的幀內預測模式不屬于第一幀內預測模式組,則確定當前預測單元的幀內預測模式是否屬于第二幀內預測模式組。如果當前預測單元的幀內預測模式屬于第二幀內預測模式組,則將表示第二幀內預測模式組的信息以及對應于第二幀內預測模式組中當前編碼單元的幀內預測模式的索引進行編碼。如果當前預測單元的幀內預測模式不屬于第二幀內預測模式組,則將表示第三幀內預測模式組的信息以及對應于第三幀內預測模式組中當前編碼單元的幀內預測模式的索引進行編碼。根據(jù)當前預測單元的左預測單元和上預測單元的幀內預測模式生成第二幀內預測模式組。
可選的是,當前預測模式的幀內預測模式可以按照以下方式編碼。首先,確定當前預測單元的幀內預測模式是否等于前面的幀內預測單元的幀內預測模式之一。如果當前預測單元的幀內預測模式等于前面的幀內預測單元的幀內預測模式之一,則將表示這種情況的信標(pred_flag)設定為1,并且利用可用的左幀內預測模式或上幀內預測模式將當前預測單元的幀內預測模式編碼。另外,將信標(pred_flag)設定為0,并且將表示當前編碼單元的幀內預測模式當中不同于左幀內預測模式和上幀內預測模式的有序編號的幀內預測模式的索引編碼。
同時,色度成分的幀內預測模式可以包括使用亮度成分的相應幀內預測模式的模式。表示使用亮度成分的相應幀內預測模式的模式是否使用的信標可以包含在順序參數(shù)集(SPS)、圖片參數(shù)集(PPS)或切片頭中。色度成分的幀內預測模式數(shù)量可以隨預測單元大小變化??梢允褂孟噜弶K的幀內預測模式將色度成分的幀內預測模式編碼。在這種情況下,編碼方法與上述相同。另外,可以不使用相鄰塊的幀內預測模式信息來編碼色度成分的幀內預測模式。在這種情況下,能夠使用VLC表。
預測塊傳送單元156將使用幀內預測模式生成的預測塊傳送給減法器190。
圖5是根據(jù)本發(fā)明的運動圖片解碼裝置的方框圖。
根據(jù)本發(fā)明的運動圖片解碼裝置包括熵解碼單元210、反掃描單元220、反量化單元230、反轉換單元240、幀內預測單元250、幀間預測單元260、后處理單元270、圖片存儲單元280、加法器290和幀內/幀間改變開關295。
熵解碼單元210從接收到的比特流中提取幀內預測信息、幀間預測信息和量化系數(shù)信息。該熵解碼單元210將幀間預測信息傳送給幀間預測單元260,將幀內預測信息傳送給幀內預測單元250,以及將量化系數(shù)信息傳送給反掃描單元220。
反掃描單元220將量化系數(shù)信息轉變?yōu)槎S量化轉換塊。在多個反掃描方式中選擇一種供轉變。根據(jù)幀內預測模式選擇反掃描方式。如果所要解碼的轉換單元大小大于預定參考尺寸,則每個子集的量化轉換系數(shù)根據(jù)所選擇的反掃描方式被反掃描,以生成多個子集,并且使用多個子集生成具有轉換單元的大小的量化轉換塊。如果所要解碼的轉換單元的大小等于預定參考尺寸,則量化轉換塊的量化轉換系數(shù)根據(jù)所選擇的反掃描方式被反掃描,以生成具有轉換單元的大小的量化轉換塊。。該多個子集是由一個主子集和一個或多個剩余子集構成的。主子集位于左上側,并且包括DC系數(shù),一個或多個剩余子集覆蓋不同于主子集的區(qū)域。
應用于子集的掃描方式可以是折線掃描。可以沿著正向從主子集開始到剩余子集反掃描子集,或者能夠沿著相反的方向掃描??梢詫呙枳蛹姆磼呙璺绞皆O定為與掃描量化轉換系數(shù)的反掃描方式相同。反掃描單元220利用表示轉換單元的最后一個非零量化系數(shù)位置的信息實施反掃描程序。
反量化單元230確定當前編碼單元的量化步距預測值。確定量化步距預測值的操作與圖1的量化單元130的程序相同。反量化單元添加確定后的量化步距預測值以及接收到的剩余量化步距,以生成當前編碼單元的量化步距。反量化單元230使用由量化步距確定的量化矩陣恢復反量化后的系數(shù)。該量化矩陣根據(jù)所要恢復的當前塊的尺寸變化??梢愿鶕?jù)當前塊的預測模式和幀內預測模式中的至少一個為具有相同尺寸的塊選擇量化矩陣。
反轉換單元240反轉換該反量化后的塊,以恢復剩余塊。根據(jù)預測模式(以及幀內預測模式,適應性地確定將要用于反量化后的塊的反轉換矩陣。反轉換矩陣的確定程序與圖1的轉換單元120中的程序相同。
加法器290將反轉換單元240恢復的恢復后剩余塊和幀內預測單元250或幀間預測單元260生成的預測塊相加,以生成重建的圖像塊。
幀內預測單元250根據(jù)從熵解碼單元210接收到的幀內預測信息恢復當前塊的幀內預測模式,并且根據(jù)恢復后的幀內預測模式生成預測塊。
幀間預測單元260根據(jù)從熵解碼單元210接收到的幀間預測信息恢復參考圖片索引和運動矢量,并且使用該參考圖片索引和運動矢量生成預測塊。當應用具有部分精度的運動補償時,利用內插濾波器生成預測塊。
后處理單元270與圖3的后處理單元160的工作方式相同。
圖片存儲單元280存儲經后處理單元270后處理后的重建圖像。
圖6是根據(jù)本發(fā)明的運動圖片解碼裝置200的幀內預測單元250的方框圖。
參照圖6,根據(jù)本發(fā)明的幀內預測單元250包括幀內預測模式解碼單元251、參考像素生成單元252、參考像素過濾單元253、預測塊生成單元254以及預測塊傳送單元255。
該幀內預測模式解碼單元251從熵解碼單元210接收幀內預測信息,并且使用幀內預測信息恢復當前預測單元的幀內預測模式。幀內預測信息包括表示所要解碼的當前預測單元所屬的幀內預測模式組的信息以及幀內預測模式索引。
該幀內預測模式解碼單元251獲得與當前預測單元相鄰的預測單元的幀內預測模式。該幀內預測模式可以是當前預測單元的左幀內預測單元和上幀內預測單元的幀內預測模式。當當前預測單元存在多個上預測單元時,沿著預定方向(例如從右到左)掃描該多個上預測單元,以確定第一可用預測單元的幀內預測模式作為上幀內預測模式。同樣,當當前預測單元存在多個左預測單元時,沿著預定方向(例如從下到上)掃描該多個左預測單元,以確定第一可用預測單元的幀內預測模式作為左幀內預測模式??蛇x的是,在多個可用預測單元當中,可以將具有最低幀內預測模式編號的可用預測單元的幀內預測模式設定為上幀內預測模式。
當上幀內預測模式編號或左幀內預測模式編號等于或大于當前預測單元可允許的幀內預測模式編號時,將該上幀內預測模式或左幀內預測模式轉變?yōu)榭稍试S模式之一。
利用所獲得的或經轉變的幀內預測模式構建第一幀內預測模式組。該所獲得的或經轉變的幀內預測模式以及由該所獲得的或經轉變的幀內預測模式按照預定順序確定的一個或多個幀內預測模式備選可以包含在該第一幀內預測模式組中。當所獲得的或經轉變的幀內預測模式是方向性模式時,該一個或多個幀內預測模式備選可以是與所獲得的或經轉變的幀內預測模式最接近的至少一個方向性幀內預測模式。
該幀內預測模式解碼單元251確定表示幀內預測模式組的信息是否表示第一幀內預測模式組。
如果表示幀內預測模式組的信息表示第一幀內預測模式組,則從第一幀內預測模式組中選擇對應于接收到的幀內預測模式索引的幀內預測模式,并且將選擇的幀內預測模式設定為當前預測單元的幀內預測模式。
如果表示幀內預測模式組的信息表示第二幀內預測模式組,則從第二幀內預測模式組中選擇對應于接收到的幀內預測模式索引的幀內預測模式,并且將選擇的幀內預測模式設定為當前預測單元的幀內預測模式。第二幀內預測模式組包括不同于屬于第一幀內預測模式組的幀內預測模式的幀內預測模式??梢詤⒖紟瑑阮A測模式索引重排編號第二幀內預測模式的幀內預測模式??梢曰趲瑑阮A測模式索引和左和上幀內預測模式來重排編號第二幀內預測模式的當前幀內預測模式。
當上幀內預測模式和左幀內預測模式均不可用時,將一個或多個幀內預測模式添加到第一幀內預測模式組中。例如,當添加一個幀內預測模式時可以添加DC模式或平面模式。當添加兩個幀內預測模式時可以添加DC模式和平面或垂直模式。當添加三個幀內預測模式時可以添加DC模式、平面模式以及垂直模式和水平模式之一。
當上幀內預測模式和左幀內預測模式之一可用時,或者當上幀內預測模式和左幀內預測模式相同時,可以將一個或兩個幀內預測模式添加到第一幀內預測模式組。例如,當添加一個幀內預測模式時可以添加DC模式或者平面模式。當添加兩個幀內預測模式時,所添加的幀內預測模式根據(jù)可用幀內預測模式是否為方向性幀內預測模式而變化。如果該可用幀內預測模式是非方向性幀內預測模式之一(即DC模式或平面模式),則可以添加垂直模式和水平模式,或者可以添加其他非方向性幀內預測模式(即平面模式或DC模式)和垂直模式。如果可用幀內預測模式是方向性幀內預測模式,則可以添加在兩側最接近可用幀內預測模式的兩個幀內預測模式。但是,如果僅在可用幀內預測模式(即模式6或者模式9)的一側具有相鄰幀內預測模式,可以添加相鄰的幀內預測模式(模式25或模式33)以及DC模式和平面模式之一。
可選的是,預測模式解碼單元251可以如下解碼當前預測模式的幀內預測模式。首先,解析出表示當前預測單元的幀內預測模式是否等于在先幀內預測單元(例如上預測單元和左預測單元)的幀內預測模式之一的信標(pred_flag)。如果該信標(pred_flag)為1,則利用可用的左幀內預測模式和可用的上幀內預測模式確定當前預測單元的幀內預測模式。如果信標(pred_flag)為0,則利用剩余預測模式信息(rem_pred_mode)確定當前預測單元的幀內預測模式。該剩余預測模式信息(rem_pred_mode)表示當前幀內預測單元的可用幀內預測模式當中不同于可用左幀內預測模式和可用上幀內預測模式的幀內預測模式的順序。
參考像素生成單元252利用與編碼裝置100的參考像素生成單元151所述相同的方法生成參考像素。但是,參考像素生成單元252可以僅在用于生成預測塊和由幀內預測模式確定的參考像素不可用時,根據(jù)恢復后的幀內預測模式適應性地生成參考像素。
該參考像素過濾單元253根據(jù)恢復后的幀內預測模式和預測塊的大小適應性地過濾參考像素。過濾條件和方法與編碼裝置100的參考像素過濾單元152的相同。
預測塊生成單元254根據(jù)恢復后的幀內預測模式,利用參考像素生成預測塊。用于生成預測塊的方法與編碼裝置100的預測塊生成單元154中使用的方法相同。
預測塊傳送單元255將從預測塊生成單元254接收到的預測塊傳送到加法器290。
圖7是表示根據(jù)本發(fā)明的幀內預測模式中的解碼程序的流程圖。
首先,在步驟S100中,從接收到的比特流中解復用幀內預測信息和剩余信號。在編碼單元的單元中實施步驟S100。從編碼單元中的預測單元語法中提取幀內預測信息。從編碼單元中的轉換單元語法中提取剩余信號。
在步驟S110中,利用幀內預測信息恢復當前預測單元的幀內預測模式。如果該幀內預測信息不包括幀內預測模式索引,則將幀內預測信息設為0。該幀內預測模式組標識符表示當前預測單元的幀內預測模式所屬的幀內預測模式組。如果幀內預測模式組的數(shù)量為2,則幀內預測模式組標識符(pred_mode)可以是1比特的信標。幀內預測模式組的數(shù)量可以是2個或3個。
圖8是表示根據(jù)本發(fā)明的恢復幀內預測模式的程序的流程圖。屬于第一幀內預測模式組的幀內預測模式的數(shù)量變化。將描述幀內預測模式組的數(shù)量為2的情況。
首先,在步驟S111中,利用與當前預測單元相鄰的預測單元的幀內預測模式構建第一幀內預測模式組。
例如,該第一幀內預測模式組是由當前預測單元的上幀內預測單元和左幀內預測單元的可用幀內預測模式構成的。如果上和左幀內預測單元的幀內預測模式均是不可用的,則可以將DC模式或平面模式添加到第一幀內預測模式組。第一幀內預測模式組可以包括至少一個附加的幀內預測模式,其為恢復當前預測單元的右上幀內預測模式、左下幀內預測模式、左上幀內預測模式時遇到的第一可用幀內預測模式。
當當前預測單元存在多個上預測單元時,沿著預定方向(例如從左到右)掃描該多個上預測單元,以確定第一可用預測單元的幀內預測模式作為上幀內預測模式。同樣,當當前預測單元存在多個左預測單元時,沿著預定方向(例如從上到下)掃描該多個左預測單元,以確定第一可用預測單元的幀內預測模式作為左幀內預測模式。
如果可用幀內預測模式不等于當前預測單元可允許的幀內預測模式之一,則將該可用幀內預測模式轉變?yōu)楫斍邦A測單元可允許的幀內預測模式之一。
在步驟S112中,根據(jù)幀內預測模式組標識符確定當前預測單元的幀內預測模式是否屬于第一幀內預測模式組。
如果當前預測單元的幀內預測模式屬于第一幀內預測模式組,則在步驟S113中,確定幀內預測模式索引是否存在。
如果幀內預測模式索引存在,則在步驟S114中,將第一幀內預測模式組中對應于該幀內預測模式索引的幀內預測模式確定為當前預測單元的幀內預測模式。
如果幀內預測模式索引不存在,則在步驟S115中,將幀內預測模式索引設定為0,并且將第一幀內預測模式組中對應于幀內預測模式索引0的幀內預測模式確定為當前預測單元的幀內預測模式。也就是說,如果幀內預測模式索引不存在,則在第一幀內預測模式組中僅包括一種幀內預測模式。
如果當前預測單元的幀內預測模式不屬于第一幀內預測模式組,則在步驟S116中,將第二幀內預測模式組中對應于幀內預測模式索引的幀內預測模式確定為當前預測單元的幀內預測模式。該第二幀內預測模式組包括不同于屬于第一幀內預測模式組的幀內預測模式的全部幀內預測模式??梢园凑盏诙瑑阮A測模式組的幀內預測模式的模式編號的順序分配幀內預測模式索引。
圖9是表示根據(jù)本發(fā)明的用于恢復幀內預測模式的另一程序的流程圖。屬于第一幀內預測模式的幀內預測模式數(shù)量是固定的。
首先,在步驟S211中,利用與當前預測單元相鄰的預測單元的幀內預測模式構建第一幀內預測模式組。
當?shù)谝粠瑑阮A測模式組包括兩種幀內預測模式時,如下構建第一幀內預測模式組。
確定當前預測單元的上和左幀內預測單元的幀內預測模式是否可用。如果可用的幀內預測模式不是當前預測單元可允許的幀內預測模式之一,則將可用幀內預測模式轉變?yōu)榭稍试S的幀內預測模式之一。當上和左幀內預測單元的幀內預測模式均可用并且不相同時,該第一幀內預測模式組是由上和左幀內預測單元的幀內預測模式構成的。當上和左幀內預測單元僅有一種幀內預測模式可用,或者當上和左幀內預測單元的幀內預測模式相同時,第一幀內預測模式組是由可用幀內預測模式和一種附加幀內預測模式構成的。如果可用幀內預測模式不是DC模式,則附加幀內預測模式可以是DC模式。如果可用幀內預測模式是DC模式,則附加幀內預測模式可以是平面模式或垂直模式。
當?shù)谝粠瑑阮A測模式組包括三種幀內預測模式時,如下構建第一幀內預測模式組。
確定當前預測單元的上和左幀內預測單元的幀內預測模式是否可用。如果可用幀內預測模式不是當前預測單元可允許的幀內預測模式之一,則可將該可用幀內預測模式轉變?yōu)榭稍试S的幀內預測模式之一。
當上和左幀內預測單元的幀內預測模式均可用并且相互不同時,第一幀內預測模式組是由兩個可用幀內預測模式和一個附加幀內預測模式構成的。該附加的幀內預測模式與兩個可用的幀內預測模式不同,并且是垂直模式、水平模式和DC模式之一。該附加的幀內預測模式是能夠添加到DC模式、垂直模式和水平模式的順序中的第一幀內預測模式。
當上和左幀內預測單元僅有一個幀內預測模式可用時,或者當上和左幀內預測單元的幀內預測模式相同時,第一幀內預測模式組是由一個可用幀內預測模式和兩個附加的幀內預測模式構成的。根據(jù)可用幀內預測模式和預測單元的大小適應性地確定兩個附加的幀內預測模式。如果幀內預測單元的大小等于或小于預定尺寸,并且可用幀內預測模式是方向性模式時,選擇方向最接近可用幀內預測模式方向的兩個幀內預測模式作為兩個附加的幀內預測模式。但是,如果僅存在一個幀內預測模式具有與可用幀內預測模式的方向最接近的方向(即可用幀內預測模式是模式6或9),則選擇模式6或9作為其他附加的幀內預測模式。如果可用幀內預測模式是非方向性幀內預測模式,則兩個附加的幀內預測模式是垂直模式和水平模式,或者其他非方向性幀內預測模式和垂直模式。
當上和左幀內預測單元的全部幀內預測模式可用時,第一幀內預測模式組是由三個附加幀內預測模式構成的。該三個附加的幀內預測模式可以是DC模式、垂直模式和水平模式,或者DC模式、平面模式和垂直模式。
當當前預測單元存在多個上預測單元時,沿著預定方向(例如從左到右)掃描該多個上預測單元,以確定第一可用預測單元的幀內預測模式作為上幀內預測模式。同樣,當當前預測單元存在多個左預測單元時,沿著預定方向(例如從上到下)掃描該多個左預測單元,以確定第一可用預測單元的幀內預測模式作為左幀內預測模式。
接著,在步驟S212中,根據(jù)幀內預測模式組標識符確定當前預測單元的幀內預測模式是否屬于第一幀內預測模式組。
如果當前預測單元的幀內預測模式屬于第一幀內預測模式組,則在步驟S213中,將第一幀內預測模式組對應于幀內預測模式索引的幀內預測模式確定為當前預測單元的幀內預測模式。
如果當前預測單元的幀內預測模式不屬于第一幀內預測模式組,則在步驟S214中,將第二幀內預測模式組對應于幀內預測模式索引的幀內預測模式確定為當前預測單元的幀內預測模式。該第二幀內預測模式組包括不同于屬于第一幀內預測模式組的幀內預測模式的全部幀內預測模式。
按照第二幀內預測模式組的幀內預測模式的模式編號的順序分配幀內預測模式的索引。
接著,在步驟S120中,根據(jù)當前預測單元恢復后的幀內預測模式適應性地生成參考像素。
當僅在不可用參考像素位置的一側存在可用參考像素時,通過復制最接近不可用像素的可用像素的值生成參考像素。可選的是,利用最接近不可用像素的兩個可用像素生成參考像素。當可用像素之間存在不可用參考像素時,利用兩側最接近不可用像素的兩個可用參考像素生成參考像素。所生成的參考像素的值可以是兩側最接近不可用像素的兩個可用參考像素的平均值。當兩個可用參考像素之差很大時,可以使用線性內插法來生成參考像素。
接著,根據(jù)恢復后的幀內預測模式適應性地過濾參考像素(S130)。當恢復后的幀內預測模式是垂直模式(模式0)、水平模式(模式1)或者DC模式(模式2)時,不過濾參考像素。在不同于垂直模式和水平模式的方向性幀內預測模式中,適應性地過濾參考像素。不過濾位于(x=2N-1,y=-1)的上參考像素的最右參考像素以及位于(x=-1,y=2N-1)的左參考像素的最下參考像素。利用兩個相鄰參考像素過濾剩余的參考像素。
低通濾波器用于使相鄰參考像素之差變得平滑。該低通濾波器可以是3分過濾器[1,2,1]或者5分過濾器[1,2,4,2,1]。
在水平或垂直模式與相對于水平或垂直方向成45°的幀內預測模式之間存在的方向性幀內預測模式下,根據(jù)預測塊的大小將濾波器適應性地應用于參考像素。根據(jù)預測塊的大小,可以將濾波器適應性地應用于水平模式與相對于水平模式成45°的模式之間存在的模式,或者垂直模式與相對于垂直模式成45°的模式之間存在的模式。預定的數(shù)量會隨著預測塊尺寸增大而增大。例如,針對8×8預測塊,將濾波器應用于最接近模式3、6、9的第一數(shù)量的幀內預測模式;針對16×16預測塊,將濾波器應用于最接近模式3、6、9的第二數(shù)量的幀內預測模式;針對32×32預測塊,將濾波器應用于最接近模式3、6、9的第三數(shù)量的幀內預測模式,第一數(shù)量等于或小于第二數(shù)量,第二數(shù)量等于或小于第三數(shù)量。
接著,在步驟S140中,根據(jù)恢復后的幀內預測模式利用參考像素生成預測塊。生成預測塊的方法與圖6的幀內預測模塊生成單元254的方法相同。
在步驟S150中,熵解碼剩余信號。
在步驟S160中,反掃描剩余信號。即,將剩余信號轉變?yōu)槎S量化后轉換塊。在多個反掃描方式中選擇用于上述轉變的一種反掃描方式。根據(jù)當前預測單元的幀內預測模式確定該反掃描方式。如果轉換單元的大小比預定尺寸大,則在子集單元中反掃描剩余信號并且使用多個子集生成量化后的轉換塊。如果轉換單元的大小等于預定尺寸,則在轉換單元的單元中反掃描該剩余信號并且生成量化后的轉換單元。
在步驟S170中,反量化二維量化后轉換塊。為反量化確定當前編碼單元的量化步距預測值。利用與圖5的反量化單元230相同的方法確定量化步距預測值。將所確定的量化步距預測值和接收到的剩余量化步距相加以生成將要應用于轉換塊的量化步距。利用量化步距確定的量化矩陣恢復轉換系數(shù)。
在步驟S180中反轉換經反量化的塊。根據(jù)恢復后的幀內預測模式可以適應性地確定反轉換矩陣??梢杂伤胶痛怪币痪S(1D)轉換矩陣來反轉換該轉換塊的剩余信號。在幀內預測中,當當前預測單元的幀內預測模式為水平時,則剩余信號很有可能具有垂直方向性。因此,將基于DCT的整數(shù)矩陣應用于垂直方向,并且將基于DST或者KLT的整數(shù)矩陣應用于水平方向。當幀內預測模式為垂直時,將基于反DST或KLT的整數(shù)矩陣應用于垂直方向,并且將基于反DCT的整數(shù)矩陣應用于水平方向。當幀內預測模式為DC模式時,在兩個方向上均應用基于反DCT的整數(shù)矩陣。
將預測塊和反轉換后的塊相加以生成重建圖像(S190)??梢栽诰幋a單元的單元中將恢復后的剩余信號和恢復后的預測信號相加。
盡管參照本發(fā)明的某些示例性實施例示出并描述了本發(fā)明,但是本領域技術人員可以理解,可以在不背離所附權利要求限定的本發(fā)明精神和范圍的情況下對本發(fā)明中的形式和細節(jié)進行各種改變。