本案是分案申請,其母案為于2011年7月29日申請的申請?zhí)枮?01180042109.6的題為“預測塊產(chǎn)生設(shè)備”的專利申請。
本發(fā)明涉及一種產(chǎn)生預測塊的裝置,尤其涉及一種產(chǎn)生能最小化殘差塊的編碼比特數(shù)的預測塊的裝置。
背景技術(shù):
在如運動圖像專家組(mpeg)-1、mpeg-2、mpeg-4以及h.264/mpeg-4高級視頻編碼(avc)的圖像壓縮方法中,將一個圖片分割成多個宏塊(mb),以對圖像進行編碼。接著,使用幀間預測或幀內(nèi)預測對各個mb進行編碼。
在幀內(nèi)預測中,不使用參考圖片,而是使用與當前塊在空間上相鄰的像素的值來對當前圖片的當前塊進行編碼。通過比較通過使用相鄰像素值產(chǎn)生的預測塊和原始mb,來選取失真小的幀內(nèi)預測模式。接著,使用所選取的幀內(nèi)預測模式和相鄰像素值來計算當前塊的預測值。計算預測值和原始當前塊的像素值之間的差,并接著通過變換編碼、量化和熵編碼進行編碼。也對幀內(nèi)預測模式進行編碼。
幀內(nèi)預測模式一般分為用于亮度分量的4×4幀內(nèi)預測模式、8×8幀內(nèi)預測模式、16×16幀內(nèi)預測模式,和用于色度分量的幀內(nèi)預測模式。
在根據(jù)現(xiàn)有技術(shù)的16×16幀內(nèi)預測模式中,有四種模式:垂直模式、水平模式、直流(dc)模式以及平面模式。
在根據(jù)現(xiàn)有技術(shù)的4×4幀內(nèi)預測模式中,有九種模式:垂直模式、水平模式、dc模式、對角線左下模式、對角線右下模式、垂直向右模式、垂直向左模式、水平向上模式、以及水平向下模式。
根據(jù)各個模式的使用頻率來索引每種預測模式。垂直模式的模式編號0顯示出它最可能是最頻繁用于對目標塊執(zhí)行幀內(nèi)預測的模式,并且水平向上模式的模式編號8顯示出它最可能是使用最不頻繁的。
根據(jù)h.264標準,總共使用13種模式對當前塊進行編碼,即,4×4幀內(nèi)預測的4種模式和16×16幀內(nèi)預測的9種模式。根據(jù)這些模式中的優(yōu)選模式產(chǎn)生當前塊的比特流。
然而,在與當前塊相鄰的像素的某些或所有值不存在或尚未編碼時,無法將某些或所有幀內(nèi)預測模式應用到當前塊。并且,在相鄰參考像素之間具有大的差異時,預測塊與原始塊之間的差異變大。因而,編碼效率變差。
技術(shù)實現(xiàn)要素:
技術(shù)問題
本發(fā)明涉及一種產(chǎn)生類似于原始塊的預測塊的裝置。
技術(shù)方案
本發(fā)明的一個方面提供了一種裝置,包括:幀內(nèi)預測模式解碼單元,被配置為使用在所接收的附加信息載體中包括的附加信息和當前預測單元的可用幀內(nèi)預測模式候選信息,復原當前預測單元的幀內(nèi)預測模式;參考像素產(chǎn)生單元,被配置為使用可用參考像素產(chǎn)生參考像素;參考像素濾波單元,被配置為基于當前預測單元的復原的幀內(nèi)預測模式和當前預測單元的大小來對參考像素適應性地濾波;以及預測塊產(chǎn)生單元,被配置為使用與復原的幀內(nèi)預測模式對應的參考像素產(chǎn)生當前預測單元的預測塊。
技術(shù)效果
根據(jù)本發(fā)明的裝置產(chǎn)生參考像素并對該參考像素適應性地濾波,以產(chǎn)生將預測塊與原始塊之間的差最小化的預測塊。而且,通過使用不用于產(chǎn)生預測塊的參考像素產(chǎn)生或修改預測塊,可以重構(gòu)與原始塊類似的預測塊,并且可以提高圖像壓縮。
附圖說明
圖1是示出根據(jù)本發(fā)明的運動圖片編碼裝置的框圖。
圖2是示出根據(jù)本發(fā)明的掃描單元的操作的流程圖。
圖3是示出根據(jù)本發(fā)明的運動圖片解碼裝置的框圖。
圖4是示出根據(jù)本發(fā)明的幀內(nèi)預測單元的框圖。
圖5是示出根據(jù)本發(fā)明的用于幀內(nèi)預測的參考像素的位置的原理圖。
圖6是示出根據(jù)本發(fā)明的產(chǎn)生參考像素的過程的流程圖。
圖7是示出根據(jù)本發(fā)明的運動圖片解碼裝置的幀內(nèi)預測單元的框圖。
具體實施方式
在下文中,將參考附圖詳細描述本發(fā)明的各個實施例。然而,本發(fā)明不限于下面公開的示例性實施例,而是可以用各種形式實現(xiàn)。因而,本發(fā)明可能有許多其它修改和變化,并且應該明白的是,在所公開的原理的范圍內(nèi),可以用除了如同已被明確描述的方式之外的方式實現(xiàn)本發(fā)明。
對于圖像編碼,每個圖片包括一個或多個切片(slice),且每個切片包括多個編碼單元。因為高清晰(hd)級別或更高級別的圖像具有許多平滑區(qū)域,所以可以用各種大小的編碼單元對圖像進行編碼,以提高圖像的壓縮。
根據(jù)本發(fā)明的編碼單元的大小可以是16×16、32×32或64×64。編碼單元的大小也可以是8×8或更小。具有最大大小的編碼單元稱為超級宏塊(smb)。smb的大小用編碼單元的最小大小和深度信息表示。深度信息表示smb的大小與編碼單元的最小大小之間的差值。
因此,用于對圖片進行編碼的編碼單元的大小可以是smb或smb的子塊的大小。將編碼單元的大小設(shè)定為缺省值或用序列頭表示。
smb包括一個或多個編碼單元。smb具有遞歸編碼樹的形式,以包括編碼單元和編碼單元的分割結(jié)構(gòu)。在沒有將smb分割為4個子編碼單元時,編碼樹可以包括表示該smb沒被分割的信息和一個編碼單元。在將smb分割為4個子編碼單元時,編碼樹可以包括表示該smb被分割的信息和四個子編碼樹。同樣,每個子編碼樹具有與smb相同的結(jié)構(gòu)。然而,最小編碼單元(scu)大小的編碼單元不再分割為子編碼單元。
同時,在編碼單元自身或子分割物的多個單元中,對編碼樹中的每個編碼單元進行幀間預測或幀內(nèi)預測。將執(zhí)行了幀間預測或幀內(nèi)預測的單元稱作預測單元。用于幀內(nèi)預測的預測單元的大小可以是2n×2n或n×n。用于幀間預測的預測單元的大小可以是2n×2n、2n×n、n×2n或n×n。這里,2n表示編碼單元的水平和垂直長度。
編碼單元包括預測單元的預測模式和在預測單元上的大小信息。為提高編碼效率,可以將預測模式和大小信息組合并聯(lián)合編碼。在這種情況下,每個編碼單元包括聯(lián)合編碼預測類型。
編碼單元包括一個或多個附加信息載體。每個附加信息載體包含產(chǎn)生每個預測單元的預測塊所需的附加信息。在幀內(nèi)預測中,附加信息包括被編碼的幀內(nèi)預測信息。在幀間預測中,附加信息包括被編碼的運動信息。運動信息包括運動向量和參考圖片索引。
編碼單元也包括用于容納編碼單元的被編碼殘差信號的殘差信號載體。殘差信號載體包含一個變換樹、一個亮度殘差信號載體以及兩個色度殘差信號載體。變換樹表示了表示用于編碼單元中所包括的殘差信號的變換單元的分割結(jié)構(gòu)的信息。并且,變換樹包括表示每個變換單元的殘差信號是否為0的信息。殘差信號載體具有遞歸編碼樹的形式。如果沒有將編碼單元分割成4個子編碼單元,那么殘差信號載體包含量化信息和被編碼的殘差信號。如果將編碼單元分割成4個子編碼單元,那么殘差信號載體包含量化信息和子層的4個殘差信號載體。每個殘差信號子載體都具有與編碼單元的殘差信號載體相同的結(jié)構(gòu),但不包含量化信息。
可以不均勻地分割預測單元。根據(jù)圖像的邊界在特定方向上不均勻地分割圖像信號并執(zhí)行幀內(nèi)或幀間預測壓縮殘余信號可能會更有效率。
最簡單的方法是使用直線將編碼單元分割為兩塊,以在局部上提取預測區(qū)域的統(tǒng)計相關(guān)性。圖像的邊界與直線匹配并進行分割。在這種情況下,可分割方向可能會限于預定的數(shù)量。例如,可以將分割塊的方法限于水平、垂直、向上對角線以及向下對角線4個方向。并且,也可以僅將分割限于水平和垂直方向??煞指罘较虻臄?shù)量可以是3、5、7等??梢愿鶕?jù)編碼塊的大小改變可分割方向的數(shù)量。例如,對大尺寸的編碼單元,可以相對增加可分割方向的數(shù)量。
在幀間預測中,當為了更多的適應性預測而將一個編碼單元分割為兩個預測單元時,應該對每個預測單元執(zhí)行運動估計和運動補償。推導出每個預測單元的運動信息,并對原始塊與從每個預測單元的運動信息中推導出的預測塊之間的殘差信號進行編碼。
在獲得從一個編碼單元分割的各自兩個預測塊的殘差信號后,可以將這兩個殘差信號相加,以產(chǎn)生一個編碼單元的一個殘差信號。將一個編碼單元的殘差信號變換并進行編碼。在這種情況下,具有邊界中心的各自兩個預測塊的殘差信號的整體分布之間很可能具有差別,并因此可以通過將任意一個區(qū)域的值乘以預定的值來產(chǎn)生一個編碼單元的殘差信號。此外,也可以使得兩個殘差信號的邊界區(qū)域交疊,并且可以在交疊邊界區(qū)域上執(zhí)行平滑以產(chǎn)生一個殘差信號。
在另外一個方法中,通過根據(jù)塊的各個分割區(qū)域執(zhí)行填充可以產(chǎn)生塊,并進行編碼。換言之,在對兩個分割區(qū)域中的當前分割區(qū)域進行編碼時,可以通過用當前分割區(qū)域的值填充構(gòu)成該塊的另外一個分割區(qū)域來配置一個塊,并且接著執(zhí)行二維(2d)變換編碼。
圖1是示出根據(jù)本發(fā)明的運動圖片編碼裝置的框圖。
參考圖1,根據(jù)本發(fā)明的運動圖片編碼裝置100包括圖片分割單元110、變換單元120、量化單元130、掃描單元131、熵編碼單元140、幀內(nèi)預測單元150、幀間預測單元160、逆向量化單元135、逆向變換單元125、后處理單元170、圖片存儲單元180、減法器190以及加法器195。
圖片分割單元110分析輸入的視頻信號,以將圖片的每個最大編碼單元(lcu)分割為每個都有預定大小的一個或多個編碼單元,確定每個編碼單元的預測模式,并確定每個編碼單元的預測單元的大小。圖片分割單元110根據(jù)預測模式,將被編碼的預測單元發(fā)送到幀內(nèi)預測單元150或幀間預測單元160。此外,圖片分割單元110將被編碼的預測單元發(fā)送到減法器190。
變換單元120變換輸入預測單元的原始塊與幀內(nèi)預測單元150或幀間預測單元160產(chǎn)生的預測塊之間的殘差信號。殘差塊可以具有編碼單元的大小??梢詫埐顗K分割為優(yōu)化的變換單元并進行變換。可以根據(jù)預測模式(幀內(nèi)或幀間)適應性地確定變換矩陣的類型。殘差信號的變換單元可以用水平和垂直的一維(1d)變換矩陣做變換。在幀間預測中,施加一個預定的變換矩陣類型。在幀內(nèi)預測中,在當前預測塊的幀內(nèi)預測模式水平時,殘差信號很可能是垂直方向。因而,在垂直方向上應用基于離散余弦變換(dct)的整數(shù)矩陣,并且,在水平方向上應用基于離散正弦變換(dst)或k-l(karhunen-loeve)變換(klt)的整數(shù)矩陣。當幀內(nèi)預測模式垂直時,在垂直方向上應用基于dst或klt的整數(shù)矩陣,并且在水平方向上應用基于dct的整數(shù)矩陣。此外,在幀內(nèi)預測中,可以根據(jù)變換單元的大小來適應性地確定變換矩陣。
量化單元130確定用于量化殘差塊的變換系數(shù)的量化步長。對具有一個或多個預定大小的每個編碼單元確定量化步長。預定大小可以是8×8或16×16。使用所確定的量化步長和預測模式所確定的量化矩陣,將變換系數(shù)量化。量化單元130使用一個或多個相鄰編碼單元的量化步長,以產(chǎn)生當前編碼單元的量化步長預測器。量化單元130用以下掃描順序逐一搜索編碼單元:1)當前編碼單元的左編碼單元、2)當前編碼單元的上編碼單元以及3)當前編碼單元的左上編碼單元。接下來,量化單元130使用一個或兩個有效的量化步長來產(chǎn)生當前編碼單元的量化步長預測器。例如,可以將在掃描順序中遇到的第一個有效量化步長確定為量化步長預測器。當兩個或更多個量化步長有效時,可以將在掃描順序中搜索的前兩個量化步長的平均值確定為量化步長預測器,并且在僅有一個量化步長有效時,可以將一個有效量化步長確定為量化步長預測器。在確定了量化步長預測器時,將量化步長和量化步長預測器的差傳送到熵編碼單元140。
在將切片分割為編碼單元時,當前編碼單元可能沒有左編碼單元、上編碼單元以及左上編碼單元。但是,在最大編碼單元的編碼順序中,當前編碼單元可以有前置編碼單元。因而,可以將與當前編碼單元相鄰的編碼單元和在前置編碼單元作為候選。在這種情況下,上述掃描順序可以變?yōu)橄率鰭呙桧樞颍?)當前編碼單元的左編碼單元,2)當前編碼單元的上編碼單元,3)當前編碼單元的左上編碼單元,以及4)當前編碼單元的前置編碼單元??梢愿淖儝呙桧樞颍蛟趻呙桧樞蛑锌梢允÷宰笊暇幋a單元。
將量化的變換塊提供給逆向量化單元135和掃描單元131。
掃描單元131掃描量化變換塊的量化變換系數(shù),因而將該量化變換系數(shù)轉(zhuǎn)化為1d量化變換系數(shù)。由于量化后變換塊的系數(shù)的分布可能依賴于幀內(nèi)預測模式,所以根據(jù)幀內(nèi)預測模式確定系數(shù)掃描方式。也可以根據(jù)變換單元的大小來確定系數(shù)掃描方式。
逆向量化單元135將已量化的變換系數(shù)逆向量化。逆向變換單元125從逆向量化的變換系數(shù)復原到空間域的殘差塊。加法器195通過將逆向變換單元125重構(gòu)的殘差塊和來自幀內(nèi)預測單元150或幀間預測單元160的預測塊相加,來產(chǎn)生重構(gòu)塊。
后處理單元170執(zhí)行:去塊濾波過程,以移除在重構(gòu)的圖片中產(chǎn)生的塊效應;適應性偏移施加過程,以補償重構(gòu)的圖片和原始圖像的每個像素之間的差;以及適應性環(huán)路濾波過程,以在編碼單元中補償重構(gòu)的圖片和原始圖像之間的差。
去塊濾波過程可以應用到具有一個或多個預定大小的多個預測單元之間的邊界和多個變換單元之間的邊界。預定的大小可以是8×8。去塊濾波過程包括:確定被濾波的邊界的步驟;確定被應用到邊界的邊界濾波強度的步驟;確定是否應用去塊濾波器的步驟;以及在確定了應用去塊濾波器后,選取被應用到邊界的濾波器的步驟。
確定是否應用去塊濾波的根據(jù)是i)邊界濾波強度是否大于0;ii)表示p塊與q塊的邊界像素之間的差的值是否小于根據(jù)量化參數(shù)確定的第一參考值。
可以存在兩個或更多個濾波器。當兩個與塊邊界相鄰的像素之間的差的絕對值等于或大于第二參考值時,選取弱濾波器。通過量化參數(shù)和邊界濾波強度確定第二參考值。
適應性偏移施加過程意圖減小經(jīng)過去塊濾波器的像素與原始像素之間的差(失真)。可以根據(jù)圖片或切片來確定是否執(zhí)行適應性偏移施加過程??梢詫⒁粋€圖片或切片分割為多個偏移區(qū)域,并且可以對每個偏移區(qū)域確定偏移模式??梢杂兴姆N邊偏移模式和兩種帶偏移模式。在邊偏移類型中,確定每個像素屬于的邊類型并應用與邊類型相應的偏移。基于與當前像素相鄰的像素的兩個值的分布來確定邊的類型。
可以基于比較原始圖像和應用了去塊濾波過程或適應性偏移施加過程的重構(gòu)圖像所得到的值,來執(zhí)行適應性環(huán)路濾波過程。基于4×4塊通過一個拉普拉斯算子活性值來檢測適應性環(huán)路濾波器(alf)。所確定的alf可以應用到4×4塊或8×8塊包括的所有像素??梢愿鶕?jù)編碼單元確定是否應用alf。環(huán)路濾波器的大小和系數(shù)可以根據(jù)每個編碼單元而變化。切片頭可以包括表示是否對每個編碼單元應用alf的信息、濾波器系數(shù)信息、以及濾波器形狀信息等等。在色度成分的情況下,可以在圖片單元中確定是否應用alf。與亮度不同,環(huán)路濾波器可以具有矩形形狀。
圖片存儲單元180從后處理單元170接收后處理圖像數(shù)據(jù),并將圖像存儲到圖片單元中。圖片可以是以幀(frame)或場(field)為單位的圖像。圖片存儲單元180具有能存儲多個圖片的緩沖區(qū)(未示出)。
幀間預測單元160使用存儲在圖片存儲單元180中的一個或多個參考圖片來執(zhí)行運動估計,并確定表示參考圖片和運動向量的參考圖片索引。根據(jù)參考圖片索引和運動向量,幀間預測單元160從圖片存儲單元180中存儲的多個參考圖片中選取的一個參考圖片提取與被編碼的預測單元對應的預測塊,并輸出所提取的預測塊。
幀內(nèi)預測單元150使用當前圖片中的重構(gòu)的參考像素值執(zhí)行幀內(nèi)預測。幀內(nèi)預測單元150接收被預測編碼的當前預測單元,選取預定數(shù)量的幀內(nèi)預測模式之一,并執(zhí)行幀內(nèi)預測。幀內(nèi)預測模式的預定數(shù)量可以依賴于當前預測單元的大小。幀內(nèi)預測單元150對參考像素適應性地濾波,以產(chǎn)生幀內(nèi)預測塊。當某些參考像素不可用時,可以使用一個或多個可用參考像素在不可用位置處產(chǎn)生參考像素。
熵編碼單元140將由量化單元130量化變換系數(shù)、從幀內(nèi)預測單元150接收的幀內(nèi)預測信息以及從幀間預測單元160接收的運動信息等進行熵編碼。
圖2是示出根據(jù)本發(fā)明的掃描單元131的操作的流程圖。
確定是否將量化變換塊分割成多個子集(s110)。這一確定基于量化變換塊的大小,即當前變換單元的大小。如果當前變換單元的大小比第一參考大小要大,那么將量化變換塊的量化變換系數(shù)分割為多個子集。第一參考大小可以是4×4或8×8。通過圖片頭或切片頭可以將第一參考大小傳送到解碼器。
在沒有將量化變換塊分割為多個子集時,確定應用到量化變換塊的掃描方式(s120)。步驟s120可以先于步驟s110執(zhí)行或不關(guān)心步驟s110。
根據(jù)所確定的掃描方式掃描量化變換塊的量化系數(shù)(s130)。根據(jù)預測模式和幀內(nèi)預測模式適應性地確定掃描方式。在幀間預測模式中,僅可以應用一種預定的掃描方式(例如,鋸齒掃描(zigzagscan))。并且,可以選取預定數(shù)量的掃描方式之一來掃描所述系數(shù),并且可以將掃描方式信息傳送到解碼器。在幀內(nèi)預測模式中,可以應用根據(jù)幀內(nèi)預測模式來確定的掃描模式。例如,將水平掃描應用到垂直幀內(nèi)預測模式和與垂直預測模式相鄰的預定數(shù)量的幀內(nèi)預測模式。將垂直掃描應用到水平幀內(nèi)預測模式和與水平幀內(nèi)預測模式相鄰的預定數(shù)量的幀內(nèi)預測模式。所述預定數(shù)量根據(jù)預測單元允許的幀內(nèi)預測模式的數(shù)量(或定向幀內(nèi)預測模式的數(shù)量)或預測塊的大小而變化。例如,如果在當前預測單元上允許的定向幀內(nèi)預測模式的數(shù)量是16個,那么基于水平或垂直幀內(nèi)預測模式的兩個方向的每個方向上的預定數(shù)量可以是兩個。如果允許定向幀內(nèi)預測模式的數(shù)量是33個,那么基于水平或垂直幀內(nèi)預測模式的兩個方向的每個方向上的預定數(shù)量可以是四個。同時,將鋸齒掃描應用于無向幀內(nèi)預測模式。無向模式可以是直流(dc)模式或平面模式。
如果確定將量化變換塊分割為多個子集,那么將量化變換塊分割成多個子集(s140)。多個子集包括一個主子集和一個或多個剩余子集。主子集位于左上方并覆蓋dc系數(shù),并且一個或多個剩余子集覆蓋主子集之外的區(qū)域。
確定應用到子集的掃描方式(s150)。將所確定的掃描方式應用到所有的子集。依據(jù)預測模式和幀內(nèi)預測模式適應性地確定掃描方式。步驟s150可以先于步驟s110執(zhí)行或不關(guān)心步驟s110。
如果量化變換塊的大小(即,變換單元的大小)大于第二參考大小,那么可以對量化變換塊應用預定的掃描方式(鋸齒掃描)。例如,第二參考大小是8×8。因而,在第一參考大小小于第二參考大小時執(zhí)行步驟s150。
在幀間預測模式中,對每個子集僅能應用一種預定的掃描方式(例如,鋸齒掃描)。在幀內(nèi)預測模式中,用與步驟s130相同的方式適應性地確定掃描方式。
下一步,根據(jù)掃描方式掃描每個子集的量化變換系數(shù)(s160)。在反方向上掃描每個子集中的量化變換系數(shù)。即,根據(jù)掃描方式從最后一個非零系數(shù)到其他非零系數(shù)掃描量化的變換系數(shù),并進行熵編碼。
可以應用鋸齒掃描對子集進行掃描??梢栽谇跋蚍较蛏蠌闹髯蛹_始到剩余子集掃描子集,或可以在反向方向上掃描子集??梢詫⒂糜趻呙枳蛹膾呙璺绞皆O(shè)定為與用于掃描子集中的量化變換系數(shù)的掃描方式相同。
根據(jù)本發(fā)明的運動圖片編碼裝置100將能表示變換單元的最后一個非零量化系數(shù)的位置的信息傳送到解碼器。運動圖片編碼裝置100也將能表示每個子集中的最后一個非零量化系數(shù)的位置的信息傳送到解碼器。
圖3是示出根據(jù)本發(fā)明的運動圖片解碼裝置的框圖。
根據(jù)本發(fā)明的運動圖片解碼裝置包括熵解碼單元210、逆向掃描單元220、逆向量化單元230、逆向變換單元240、幀內(nèi)預測單元250、幀間預測單元260、后處理單元270、圖片存儲單元280、加法器290以及開關(guān)295。
熵解碼單元210從接收的比特流中提取幀內(nèi)預測信息、幀間預測信息以及量化系數(shù)信息。熵解碼單元210將幀間預測信息傳送到幀間預測單元260,將幀內(nèi)預測信息傳送到幀內(nèi)預測單元250,并且將量化系數(shù)信息傳送到逆向掃描單元220。
逆向掃描單元220將量化系數(shù)信息轉(zhuǎn)換為二維的量化變換塊。在多個逆向掃描方式中選取一個逆向掃描方式用于轉(zhuǎn)換?;陬A測模式和幀內(nèi)預測模式的至少一個選取逆向掃描方式。逆向掃描單元220的操作與圖1中掃描單元131的逆向操作相同。例如,如果被解碼的變換單元的大小大于第一參考大小,那么根據(jù)所選取的逆向掃描逆向掃描每個子集的量化變換系數(shù),并且使用多個子集產(chǎn)生具有變換單元大小的量化變換塊。
逆向量化單元230確定當前編碼單元的量化步長預測器。用于確定量化步長預測器的操作與圖1中量化單元130的步驟相同。逆向量化單元將所確定的量化步長預測器和接收的殘差量化步長相加,以產(chǎn)生當前編碼單元的量化步長。逆向量化單元230使用量化步長確定的量化矩陣復原逆向量化系數(shù)。量化矩陣根據(jù)當前塊的大小而變化。基于當前塊的預測模式和幀內(nèi)預測模式的至少一個,可以對具有相同大小的塊選用該量化矩陣。
逆向變換單元240將逆向量化塊逆向變換,以復原殘差塊。根據(jù)預測模式和幀內(nèi)預測模式適應性地確定被應用到逆向量化塊的逆向變換矩陣。逆向變換矩陣的確定步驟與圖1的變換單元120中的步驟相同。
加法器290將由逆向變換單元240復原的復原殘差塊和由幀內(nèi)預測單元250或幀間預測單元260產(chǎn)生的預測塊相加,以產(chǎn)生重構(gòu)的圖像塊。
幀內(nèi)預測單元250基于從熵解碼單元210接收的幀內(nèi)預測信息復原當前塊的幀內(nèi)預測模式,并根據(jù)復原的幀內(nèi)預測模式產(chǎn)生預測塊。
幀間預測單元260基于從熵解碼單元210接收的幀間預測信息復原參考圖片索引和運動向量,并使用參考圖片索引和運動向量產(chǎn)生預測塊。當應用具有小數(shù)精度的運動補償時,使用內(nèi)插濾波器產(chǎn)生預測塊。
后處理單元270的操作和圖1的后處理單元160的操作相同。
圖片存儲單元280存儲通過后處理單元270后處理的重構(gòu)圖像。
圖4是示出根據(jù)本發(fā)明的運動圖片編碼單元100的幀內(nèi)預測單元150的框圖。
參考圖4,幀內(nèi)預測單元150包括參考像素產(chǎn)生單元151、參考像素濾波單元152、預測塊產(chǎn)生單元153、預測塊濾波單元154、預測模式確定單元155、預測模式編碼單元156以及預測塊傳送單元157。
參考像素產(chǎn)生單元151確定是否需要為幀內(nèi)預測產(chǎn)生參考像素,并在需要產(chǎn)生參考像素時產(chǎn)生參考像素。
圖5是示出根據(jù)本發(fā)明的用于幀內(nèi)預測的參考像素的位置的原理圖。如圖5所示,用于幀內(nèi)預測的當前預測單元的參考像素包括上參考像素、左參考像素和角參考像素。上參考像素覆蓋區(qū)域c和d位于(x=0,...,2l-1,y=-1)處,并且左參考像素覆蓋區(qū)域a和b位于(x=-1,y=0,...,and2m-1)處。這里,l是當前預測塊的寬度,并且m是當前預測塊的高度。
參考像素產(chǎn)生單元151確定參考像素是否可用。如果一個或多個參考像素不可用,則參考像素產(chǎn)生單元151使用可用參考像素在不可用位置處產(chǎn)生參考像素。
首先,將描述被編碼的當前預測單元的上區(qū)域和左區(qū)域的任何一個中的所有參考像素都不可用的情況。
例如,在當前預測單元位于圖片或切片的上邊界處時,當前預測單元的上參考像素(區(qū)域c和d)和角參考像素不存在。在當前預測單元位于圖片或切片的左邊界處時,左參考像素(區(qū)域a和b)和角參考像素不存在。在這些情況下,通過拷貝最接近不可用像素的可用像素的值產(chǎn)生參考像素。即,在當前預測單元位于圖片或切片的上邊界處時,可以通過拷貝最上方的左參考像素(即,位于區(qū)域a的最上方位置中的參考像素)產(chǎn)生上參考像素。在當前預測單元位于圖片或切片的左邊界處時,可以通過拷貝最左方的上參考像素(即,位于區(qū)域c的最左方位置中的參考像素)產(chǎn)生左參考像素。缺省應用上面提到的方法,但在必要時,該方法可以隨每個序列、圖片或切片而改變。
當左參考像素或上參考像素的某些像素不可用時,如下產(chǎn)生參考像素。
如果僅在從可用像素起的一個方向上存在不可用參考像素,則通過拷貝最接近不可用像素的可用像素的值來產(chǎn)生參考像素。例如,在當前塊位于位于圖片、切片或lcu的下邊界處時,參考像素覆蓋區(qū)域b不可用。使用最接近不可用像素的兩個或更多個可用像素來產(chǎn)生參考像素。
如果在可用像素之間存在不可用參考像素,則使用在兩個方向上最接近不可用像素的兩個可用參考像素來產(chǎn)生參考像素。例如,在當前塊位于切片的上邊界處并且當前塊的左上塊可用時,參考像素覆蓋區(qū)域c不可用,但參考像素覆蓋區(qū)域a和d可用。通過對兩個可用參考像素求平均值,來產(chǎn)生參考像素。但是,當由不可用參考像素覆蓋的區(qū)域較大時,線性插值可用于產(chǎn)生參考。
在所有參考像素都不可用時,通過使用位于預測單元內(nèi)部的兩個或更多個像素來產(chǎn)生參考像素。例如,在當前塊位于圖片或切片的左上邊界處時,所有的參考像素均不可用。
圖6是示出根據(jù)本發(fā)明的產(chǎn)生參考像素的過程的流程圖。
參考圖6,使用兩個像素產(chǎn)生參考像素的過程如下??墒褂卯斍邦A測單元的左上像素○、右上像素□、左下像素δ以及右下像素
使用三個像素產(chǎn)生參考像素的過程如下。可使用當前預測單元的左上像素○、右上像素□、左下像素δ。拷貝像素,以產(chǎn)生與像素對應的參考像素。用與上面的描述相同的方式產(chǎn)生剩余的參考像素。
同時,將用于產(chǎn)生參考像素的像素的值傳送到解碼器。為最小化被傳送的比特數(shù),左上像素○的值、左上像素○的值與其他像素的值的差。左上像素的值可以是量化的值或被熵編碼。
在切片類型是幀內(nèi)(i)時,使用兩個或更多個像素產(chǎn)生參考像素更有效。
將描述另外一種在被編碼的當前預測單元的上方和左方的所有參考像素都不可用時產(chǎn)生參考像素的方法。該方法在切片類型不是幀內(nèi)(i)時也有效。
首先,確定在與預先編碼為當前塊的參考圖片中的當前預測單元的參考像素的相同位置處是否存在像素。當存在像素時,拷貝在參考圖片中的像素以產(chǎn)生當前預測單元的參考像素。
在不存在像素時,確定在與當前預測單元的參考像素的最近位置處(1個像素的距離)是否存在像素。當存在像素時,拷貝該像素并將其用作當前預測的參考像素。
參考像素濾波單元152對當前預測單元的參考像素適應性地濾波。應用低通濾波器來平滑相鄰像素間差異。該低通濾波器可以是3抽頭濾波器[1,2,1]或5抽頭濾波器[1,2,4,2,1]。
可以根據(jù)當前塊的大小適應性地應用濾波器。如果當前塊的大小等于或小于預定大小,可以不應用所述濾波器。該預定大小可以是4×4。
也可以根據(jù)當前塊的大小和幀內(nèi)預測模式適應性地應用濾波器。
如果幀內(nèi)預測模式是水平模式或垂直模式,那么使用一個參考像素產(chǎn)生一個預測像素。因而,在水平模式和垂直模式中不應用濾波器。在dc模式中,用參考像素的平均值產(chǎn)生預測像素。因此,由于預測像素不受參考像素之間的差的影響,所以在dc模式中不應用濾波器。
在方向與水平或垂直方向成45°的幀內(nèi)預測模式3、6或9中,無論預測單元的大小是多少都會應用濾波器,并在當前塊比最小預測單元大時也會應用濾波器。可以對小于預定大小的預測單元應用第一濾波器,并且可以對大小等于或大于預定大小的預測單元應用比第一濾波器更強的第二濾波器。預定大小可以是16×16。
在除了垂直模式、水平模式、dc模式以及幀內(nèi)預測模式3、6和9之外的幀內(nèi)預測模式中,可以根據(jù)當前預測單元的大小和幀內(nèi)預測模式適應性地應用濾波器。然而,在平面模式中,可以執(zhí)行參考像素的濾波。
預測塊產(chǎn)生單元153產(chǎn)生與幀內(nèi)預測模式對應的預測塊?;趲瑑?nèi)預測模式,使用參考像素或參考像素的線性組合產(chǎn)生預測塊。用于產(chǎn)生預測塊的參考像素可以被參考像素濾波單元152濾波。
根據(jù)幀內(nèi)預測模式,預測塊濾波單元154適應性地將所產(chǎn)生的預測塊濾波,使得預測塊與被編碼的當前塊之間的殘差信號最小。參考像素和與參考像素相鄰的預測像素間的差隨著幀內(nèi)預測模式而變化。因而,對與參考像素相鄰的預測像素進行濾波使該差變小。
在dc模式中,由于預測像素是參考像素的平均值,從而該差可能會較大。因而,使用參考像素對與參考像素相鄰的上邊線和左邊線的預測像素進行濾波。使用3抽頭濾波器對與兩個參考像素(上參考像素和左參考像素)相鄰的左上預測像素進行濾波。使用2抽頭濾波器對與一個參考像素相鄰的其它預測像素(在預測塊中的上邊線的像素和左邊線的像素)進行濾波。
在垂直模式(模式0)、對角線左下模式(模式6)、以及在模式0和模式6之間的幀內(nèi)預測模式(模式22、12、23、5、24、13、25)中,僅使用預測單元的上參考像素產(chǎn)生預測塊。因而,參考像素和與參考像素相鄰的、預測塊中的上邊線的預測像素之間的差可以隨著預測像素位置向下而變大。
并且,在水平模式(模式1)、對角線右下模式(模式9)、以及在模式1和模式9之間的幀內(nèi)預測模式(模式30、16、31、8、32、17、33)中,僅使用左參考像素產(chǎn)生預測塊。因而,參考像素和與參考像素相鄰的預測像素之間的差可以隨著預測像素位置向右而變大。
據(jù)此,可以對預測塊的某些預測像素濾波,以補償在除了dc模式之外的定向幀內(nèi)預測模式中的差。
在模式6中,對與左參考像素相鄰的、預測塊中的左邊線的所有或某些預測像素進行濾波。例如,左邊線的像素可以是在左邊線下部中的n/2個像素。這里的n是當前預測單元的高度。
在模式9中,對與上參考像素相鄰的、預測塊中的上邊線的所有或某些預測像素進行濾波。例如,上邊線的像素可以是在上邊線右部中的m/2個像素。這里的m是當前預測單元的寬度。
在接近模式6并在模式0與模式6之間存在的預定數(shù)量的定向幀內(nèi)預測模式中,能使用與模式6相同的濾波方法。在這種情況下,一個模式與模式編碼6越遠,被濾波的像素的數(shù)量可能會越少或相同。
在模式1和模式9之間的定向幀內(nèi)預測模式中,可以使用相同的濾波方法。
同時,根據(jù)當前預測單元的大小適應性地應用濾波器。例如,根據(jù)幀內(nèi)預測模式,對等于或小于預定大小的預測單元不應用濾波器。
預測塊濾波單元154可以集成到預測塊產(chǎn)生單元153中?;蛘撸ㄟ^使用產(chǎn)生操作和濾波操作的組合產(chǎn)生預測塊。
使用參考像素,幀內(nèi)預測模式確定單元155確定當前預測單元的幀內(nèi)預測模式。幀內(nèi)預測模式確定單元155選擇一種將殘差塊的編碼比特數(shù)最小化的幀內(nèi)預測模式作為當前預測單元的幀內(nèi)預測模式。可以使用經(jīng)過參考像素濾波單元152濾波后的參考像素產(chǎn)生預測塊,或預測塊可以是經(jīng)過預測塊濾波單元154濾波后的塊。
預測塊傳送單元157將基于幀內(nèi)預測模式由預測模式確定單元155產(chǎn)生的預測塊傳送到減法器190。
預測模式編碼單元156對幀內(nèi)預測模式確定單元155確定的當前預測單元的幀內(nèi)預測模式進行編碼。幀內(nèi)預測模式編碼單元156可以集成到幀內(nèi)預測單元150或熵編碼單元140。
預測模式編碼單元156使用當前預測單元的上幀內(nèi)預測模式和當前預測單元的左幀內(nèi)預測模式,對當前預測單元的幀內(nèi)預測模式進行編碼。
首先,推導出當前預測單元的上幀內(nèi)預測模式和左幀內(nèi)預測模式。在當前預測單元存在多個上預測單元時,在預定的方向上(例如,從右到左)掃描多個上預測單元,以確定第一個可用預測單元的幀內(nèi)預測模式作為上幀內(nèi)預測模式。并且,在當前預測單元存在多個左預測單元時,在預定的方向上(例如,從下到上)掃描多個左預測單元,以確定第一個可用預測單元的幀內(nèi)預測模式作為左幀內(nèi)預測模式??蛇x地,在多個可用預測單元中,可以將具有最小幀內(nèi)預測模式數(shù)量的可用預測單元的幀內(nèi)預測模式設(shè)定為上幀內(nèi)預測模式。
在上幀內(nèi)預測模式或左幀內(nèi)預測模式不可用時,可以將dc模式(模式2)設(shè)定為上幀內(nèi)預測模式或左幀內(nèi)預測模式。在不存在對應的預測單元時,將上幀內(nèi)預測模式或左幀內(nèi)預測模式看作不可用。
下一步,在上幀內(nèi)預測模式數(shù)量或左幀內(nèi)預測模式數(shù)量等于或大于當前預測單元的允許幀內(nèi)預測模式數(shù)量時,將上幀內(nèi)預測模式或左幀內(nèi)預測模式轉(zhuǎn)換為當前預測單元的允許模式之一。例如,在當前預測單元大小是4×4時,將幀內(nèi)預測模式轉(zhuǎn)換為九個模式(模式0到模式8)中的一個,并且,在當前預測單元大小是64×64時,將幀內(nèi)預測模式轉(zhuǎn)換到為三個模式(模式0到模式2)中的一個。幀內(nèi)預測模式可以轉(zhuǎn)換為當前預測單元允許的幀內(nèi)預測模式之一。
下一步,如果當前預測單元的幀內(nèi)預測模式與上幀內(nèi)預測模式和左幀內(nèi)預測模式中的任何一個相同,那么表示當前預測單元的幀內(nèi)預測模式的一個標志與上幀內(nèi)預測模式和左幀內(nèi)預測模式的任何一個相同,并且,將表示上幀內(nèi)預測模式和左幀內(nèi)預測模式中的一個的標志傳送到解碼器。在這種情況下,如果上幀內(nèi)預測模式和左幀內(nèi)預測模式相同,那么可以省略表示上幀內(nèi)預測模式和左幀內(nèi)預測模式中的一個的標志。并且,如果上幀內(nèi)預測模式和左幀內(nèi)預測模式的僅一個可用并且可用幀內(nèi)預測模式與當前預測塊的幀內(nèi)預測模式相同,則可以省略表示上幀內(nèi)預測模式和左幀內(nèi)預測模式中的一個的標志。
但是,如果當前預測單元的幀內(nèi)預測模式與上幀內(nèi)預測模式和左幀內(nèi)預測模式中的任何一個都不相同,那么將當前預測單元的幀內(nèi)預測模式數(shù)量與上幀內(nèi)預測模式數(shù)量和左幀內(nèi)預測模式數(shù)量相比較。對模式改變值進行計數(shù)。模式改變值是具有不大于當前預測單元的幀內(nèi)預測模式數(shù)量的幀內(nèi)預測模式的數(shù)量。接著,使用模式改變值來改變當前預測單元的幀內(nèi)預測模式。確定改變的幀內(nèi)預測模式,作為被傳送的最終幀內(nèi)預測模式信息。
根據(jù)上幀內(nèi)預測模式與左幀內(nèi)預測模式是否相同,選擇用于對最終幀內(nèi)預測模式進行編碼的表。
圖7是示出根據(jù)本發(fā)明的運動圖片解碼裝置200的幀內(nèi)預測單元250的框圖。
根據(jù)本發(fā)明的幀內(nèi)預測單元250包括預測模式解碼單元251、參考像素產(chǎn)生單元252、參考像素濾波單元253、預測塊產(chǎn)生單元254、預測塊濾波單元255以及預測塊傳送單元256。
預測模式解碼單元251按如下方式復原當前預測單元的幀內(nèi)預測模式。
首先,幀內(nèi)預測模式解碼單元251接收在附加信息載體中包括的用于產(chǎn)生預測塊的附加信息。附加信息包括預測標志和剩余的預測信息。預測標志表示當前預測單元的預測模式是否與相鄰預測單元的預測模式的一個相同。剩余的預測信息包括以預測標志確定的信息。如果預測標志是1,那么剩余的預測信息可以包括幀內(nèi)預測模式候選的索引。幀內(nèi)預測模式的索引指明幀內(nèi)預測模式候選。如果預測標志是0,那么剩余的信息可以包括剩余的幀內(nèi)預測模式數(shù)量。
推導出當前預測單元的幀內(nèi)預測模式候選。使用相鄰預測單元的幀內(nèi)預測模式推導出幀內(nèi)預測模式候選。例如,相鄰預測單元是上預測單元和左預測單元。在有多個上預測單元或多個左預測單元時,將上預測單元或左預測單元的幀內(nèi)預測模式確定為操作與在編碼裝置100的幀內(nèi)預測編碼單元156中描述的操作相同。并且,在可用的幀內(nèi)預測模式候選的模式數(shù)量等于或大于當前預測單元允許的幀內(nèi)預測模式數(shù)量時,如同在幀內(nèi)預測編碼模塊156中描述的,將可用的幀內(nèi)預測模式候選的模式轉(zhuǎn)換為當前預測單元允許的一個模式。
下一步,如果接收的預測標志表示當前預測單元的幀內(nèi)預測模式與幀內(nèi)預測候選之一相同并且存在幀內(nèi)預測模式候選的索引,那么將該索引表示的幀內(nèi)預測模式設(shè)定為當前預測單元的幀內(nèi)預測模式。
如果接收的預測標志表示當前預測單元的幀內(nèi)預測模式與幀內(nèi)預測候選之一相同并且不存在幀內(nèi)預測模式候選的索引,那么將那個可用幀內(nèi)預測模式設(shè)定為當前預測單元的幀內(nèi)預測模式。
如果接收的預測標志表示當前預測單元的幀內(nèi)預測模式與任何一個幀內(nèi)預測候選均不相同,通過比較殘余幀內(nèi)預測模式數(shù)量和可用幀內(nèi)預測模式候選的模式數(shù)量來復原當前預測單元的幀內(nèi)預測模式。
參考像素產(chǎn)生單元252使用與在編碼裝置100的參考像素產(chǎn)生單元151中描述方法相同的方法產(chǎn)生參考像素。但是,僅在用于產(chǎn)生預測塊和由幀內(nèi)預測模式確定時的參考像素不可用時,參考像素產(chǎn)生單元252可以產(chǎn)生參考像素。
基于由預測解碼單元251復原的幀內(nèi)預測模式和預測塊的大小,參考像素濾波單元253對參考像素適應性地濾波。濾波條件和方法與編碼裝置100的參考像素濾波單元152的濾波條件和方法相同。
預測塊產(chǎn)生單元254根據(jù)由預測模式解碼單元251復原的幀內(nèi)預測模式,使用參考像素產(chǎn)生預測塊。
預測塊濾波單元255根據(jù)由預測模式解碼單元251復原的復原幀內(nèi)預測模式,對預測塊適應性地濾波。濾波操作與編碼裝置100的預測塊濾波單元154的濾波操作相同。
預測塊傳送單元256將從預測塊產(chǎn)生器254或預測塊濾波單元255接收的預測塊傳送到加法器290。