亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

用于對(duì)圖像編碼的設(shè)備和方法與流程

文檔序號(hào):12891345閱讀:163來源:國知局
用于對(duì)圖像編碼的設(shè)備和方法與流程
用于對(duì)圖像編碼的設(shè)備和方法本案是分案申請,其母案為于2011年4月22日申請的申請?zhí)枮?01180031338.8的題為“用于對(duì)圖像編碼的設(shè)備和方法”的專利申請。技術(shù)領(lǐng)域本發(fā)明涉及一種圖像處理設(shè)備和方法,更具體而言,涉及用于減少圖像的殘余信號(hào)量并對(duì)殘余信號(hào)進(jìn)行熵編碼的設(shè)備。

背景技術(shù):
為了有效率地在低數(shù)據(jù)速率下傳輸活動(dòng)圖畫信號(hào)同時(shí)保持高的圖像質(zhì)量,已經(jīng)提出了各種數(shù)字活動(dòng)圖畫壓縮技術(shù)。這些活動(dòng)圖畫壓縮技術(shù)包括H.261、活動(dòng)圖畫專家組(MPEG)-2/H.262、H.263、MPEG-4、高級(jí)視頻編碼(AVC)/H.264等。壓縮技術(shù)包括離散余弦變換(DCT)方案、運(yùn)動(dòng)補(bǔ)償(MC)方案、量化方案、熵編碼方案等。為了進(jìn)行圖像編碼,將每幅圖畫劃分成多個(gè)切片,將每個(gè)切片劃分成預(yù)定大小的多個(gè)編碼塊。由于高清晰度(HD)等級(jí)或更高級(jí)別的圖像具有很多平坦區(qū)域,所以可以通過用大于宏塊(MB)的編碼塊對(duì)圖像編碼來改善圖像壓縮。因此,在編碼單元的大小增大時(shí),需要新的預(yù)測技術(shù),并需要在變換編碼、熵編碼、幀內(nèi)預(yù)測和幀間預(yù)測中的改變,以提高圖像壓縮比而不增加圖像壓縮的復(fù)雜性。

技術(shù)實(shí)現(xiàn)要素:
技術(shù)問題本發(fā)明涉及一種對(duì)活動(dòng)圖像編碼的設(shè)備,更具體而言,涉及一種對(duì)預(yù)定大小或更大的活動(dòng)圖像的已變換殘余信號(hào)進(jìn)行有效編碼的設(shè)備。技術(shù)方案本發(fā)明的一個(gè)方面提供了一種為活動(dòng)圖畫進(jìn)行編碼的設(shè)備,包括:編碼模式判決器,被配置成將輸入圖像劃分成編碼單元并確定所述編碼單元的預(yù)測模式和所述編碼單元的預(yù)測編碼塊的大?。蛔儞Q/量化單元,被配置成對(duì)所述預(yù)測編碼塊和通過幀內(nèi)預(yù)測或幀間預(yù)測產(chǎn)生的預(yù)測塊之間的殘余塊進(jìn)行變換和量化;逆量化/變換單元,被配置成將所量化的變換塊逆量化和逆變換到頻域中;去塊濾波器,被配置成向從所述逆量化/變換解碼單元接收到的圖像數(shù)據(jù)應(yīng)用去塊濾波過程;預(yù)測塊發(fā)生器,被配置成產(chǎn)生所述預(yù)測編碼塊;以及熵編碼器,被配置成對(duì)來自變換編碼/量化單元的量化變換系數(shù)進(jìn)行編碼,其中,在變換塊的大小等于或大于預(yù)定大小時(shí),所述熵編碼器將量化變換系數(shù)劃分成多個(gè)子集,并對(duì)所述每個(gè)子集的非零量化變換系數(shù)進(jìn)行掃描和熵編碼。有益效果本發(fā)明能夠通過減少要進(jìn)行編碼塊的殘余信號(hào)量來提高編碼效率。而且,通過在熵編碼期間有效地掃描不為0的量化變換系數(shù),使熵編碼所需的比特?cái)?shù)量最小化,從而可以提高編碼效率。附圖說明圖1示出了根據(jù)本發(fā)明示范性實(shí)施例的塊劃分結(jié)構(gòu)。圖2示出了根據(jù)本發(fā)明的確定編碼模式的方法。圖3示出了根據(jù)本發(fā)明的用于對(duì)活動(dòng)圖畫進(jìn)行編碼的設(shè)備。圖4到6是示出了根據(jù)本發(fā)明的自適應(yīng)塊劃分方法的示意圖。圖7是示出了對(duì)殘余信號(hào)進(jìn)行編碼的方法的示意圖。具體實(shí)施方式在下文中,將參考附圖詳細(xì)描述本發(fā)明的各實(shí)施例。不過,本發(fā)明不限于下文公開的示范性實(shí)施例,而是可以通過各種方式實(shí)施。因此,本發(fā)明很多其他修改和變化都是可能的,要理解的是,在所公開的概念范圍之內(nèi),可以通過與具體所述不同的方式實(shí)踐本發(fā)明。為了進(jìn)行圖像編碼,將每幅圖畫劃分成多個(gè)切片,將每個(gè)切片劃分成預(yù)定大小的多個(gè)編碼單元。由于高清晰度(HD)等級(jí)或更高級(jí)別的圖像具有很多平坦區(qū)域,所以可以通過用大于16×16大小的宏塊(MB)的編碼單元對(duì)圖像進(jìn)行編碼來改善圖像壓縮比。根據(jù)本發(fā)明的編碼單元可以是大小為32×32的塊或大小為64×64的塊或大小為16×16的MB。而且,大小為8×8或更小的塊可以是編碼單元。為了方便起見,將最大的編碼單元稱為超級(jí)宏塊(SMB)??梢愿鶕?jù)表示最小編碼單元的大小的信息和深度信息來確定SMB的大小。深度信息表示SMB的大小和最小編碼單元大小之間的差異。于是,用于對(duì)圖像序列的所有圖畫進(jìn)行編碼的編碼單元可以是SMB或SMB的子塊??梢阅J(rèn)或在序列報(bào)頭中指定編碼單元的允許大小。當(dāng)在序列報(bào)頭中指定編碼單元的允許大小時(shí),根據(jù)最小編碼單元的大小和深度信息指定編碼單元的允許大小。將每幅圖畫或切片劃分成多個(gè)SMB單元。每個(gè)SMB或SMB的子塊可以是幀內(nèi)編碼或幀間編碼和解碼的。為了使得編碼單元(即SMB或SMB的子塊)能夠被正確地解碼,編碼器應(yīng)當(dāng)向比特流中添加關(guān)于編碼單元的預(yù)測編碼塊的大小信息和表示編碼單元已經(jīng)以幀內(nèi)預(yù)測模式或幀間預(yù)測模式進(jìn)行了編碼的預(yù)測模式信息。為此,應(yīng)當(dāng)在編碼單元的比特流中包括預(yù)測模式信息和表示預(yù)測編碼塊大小的信息。預(yù)測模式根據(jù)切片的類型而改變。當(dāng)切片類型是幀內(nèi)(I)時(shí),切片中的所有預(yù)測編碼塊都是幀內(nèi)預(yù)測的,并且可以根據(jù)預(yù)測編碼塊的大小確定預(yù)測編碼塊的預(yù)測類型。不過,在切片類型是單向預(yù)測(P)或雙向預(yù)測(B)時(shí),可以根據(jù)預(yù)測模式信息和預(yù)測編碼塊的大小來確定預(yù)測編碼塊的預(yù)測類型。于是,優(yōu)選基于切片類型、預(yù)測模式信息和表示預(yù)測編碼塊大小的信息來產(chǎn)生預(yù)測編碼塊的預(yù)測類型,并將所產(chǎn)生的預(yù)測類型插入編碼單元的報(bào)頭中。當(dāng)預(yù)測編碼塊是幀內(nèi)編碼時(shí),需要向解碼器傳送用于幀內(nèi)預(yù)測的幀內(nèi)預(yù)測模式信息以及預(yù)測類型。當(dāng)預(yù)測編碼塊是幀間編碼時(shí),通過單向預(yù)測和雙向預(yù)測的任一種對(duì)預(yù)測編碼塊進(jìn)行編碼。在單向預(yù)測的情形中,比特流應(yīng)當(dāng)包括關(guān)于參考圖畫的信息和用于預(yù)測的運(yùn)動(dòng)矢量以及用于單向預(yù)測的預(yù)測編碼塊的預(yù)測類型。在雙向預(yù)測的情形中,預(yù)測編碼塊的報(bào)頭應(yīng)當(dāng)包括關(guān)于兩個(gè)參考圖畫的信息和用于雙向預(yù)測的運(yùn)動(dòng)矢量信息以及用于雙向預(yù)測的塊的預(yù)測類型。運(yùn)動(dòng)矢量信息可以包括表示殘余運(yùn)動(dòng)矢量和運(yùn)動(dòng)矢量預(yù)測器的信息。圖1示出了層次劃分結(jié)構(gòu),表示根據(jù)本發(fā)明示范性實(shí)施例用于64×64大小的SMB的允許預(yù)測編碼塊。在將SMB用作編碼單元時(shí),優(yōu)選具有如圖1所示的四個(gè)子塊劃分步驟,但塊的劃分不限于四個(gè)子塊劃分步驟。在有四個(gè)子塊劃分步驟時(shí),可以定義總共13個(gè)預(yù)測性塊類型(64×64、64×32、32×64、32×32、32×16、16×32、16×16、16×8、8×16、8×8、8×4、4×8和4×4)。在這里,對(duì)于大小比MB更大的幀間預(yù)測編碼塊,可能沒有要傳送的數(shù)據(jù)。于是,優(yōu)選在預(yù)測編碼塊的大小為64×64時(shí)新增加MB64_SKIP模式,在預(yù)測編碼塊的大小為32×32時(shí),增加MB32_SKIP模式。為了向解碼器傳送模式信息,可以使用MB64_SKIP_flag或MB32_SKIP_flag。在這些標(biāo)志(flag)的值是1時(shí),沒有對(duì)應(yīng)預(yù)測編碼塊的傳送數(shù)據(jù)。同時(shí),在多個(gè)連續(xù)SMB未編碼時(shí),可以僅在第一個(gè)SMB中插入MB64_SKIP_flag,可以在后續(xù)SMB中省略。在這種情況下,可以向切片或第一個(gè)SMB添加連續(xù)跳過的SMB的數(shù)量。具體而言,在多個(gè)連續(xù)的SMB未編碼時(shí),將第一個(gè)SMB的SMB_SKIP_flag設(shè)置為1,也可以共同地應(yīng)用到幾個(gè)連續(xù)SMB。在這種情況下,可以向切片添加與未被連續(xù)編碼的SMB的數(shù)量(例如SMB_SKIP_number)對(duì)應(yīng)的信息。在編碼單元的大小為32×32時(shí),除了現(xiàn)有的大小為16×16、16×8、8×16、8×8、8×4、4×8或4×4的塊之外,還可以將大小為32×32、32×16或16×32的塊用作預(yù)測編碼塊。在幀間預(yù)測模式中,編碼單元的預(yù)測類型(Mb32_type)可以在預(yù)測類型為0時(shí)表示32×32分割,在預(yù)測類型為1時(shí)表示32×16分割,在預(yù)測類型為2時(shí)表示16×32分割,在預(yù)測類型為3時(shí)表示16×16分割。在將編碼單元?jiǎng)澐殖伤膫€(gè)子編碼單元時(shí),對(duì)所述四個(gè)子編碼單元進(jìn)行編碼并按照光柵掃描次序傳送。在這種情況下,可以針對(duì)每個(gè)編碼單元傳送量化參數(shù),并且在將同一量化參數(shù)應(yīng)用于所有子編碼單元時(shí),可以僅在超級(jí)編碼單元的報(bào)頭中傳送一次。不過,當(dāng)需要在子編碼單元中改變量化參數(shù)時(shí),可以僅傳送與上層編碼單元或同一層級(jí)的前面編碼單元的量化參數(shù)不同的值??梢岳盟牟鏄浞椒▌澐置總€(gè)子編碼單元,也可以利用四叉樹方法傳送經(jīng)編碼后的塊圖案(cbp)和殘余系數(shù)。在使用1比特cbp時(shí),cbp的值1可以表示編碼單元具有至少一個(gè)不為0的系數(shù),cbp的值0可以表示所有系數(shù)都是0。圖2示出了根據(jù)本發(fā)明的在SMB大小為64×64時(shí)確定編碼模式的方法。如圖2所示,在SMB是64×64塊時(shí),編碼器判斷是否能夠跳過64×64塊,并在能夠跳過64×64塊時(shí)將跳過(SKIP)模式確定為編碼模式。此時(shí),應(yīng)當(dāng)向解碼器傳送mb64_skip_flag。在64×64塊有要進(jìn)行編碼的數(shù)據(jù)但未劃分成32×32塊時(shí),在SMB報(bào)頭中插入SMB的編碼大小(該編碼大小是64×64、64×32和32×64之一)以及關(guān)于SMB是幀內(nèi)編碼還是幀間編碼的信息,并且利用經(jīng)編碼的數(shù)據(jù)產(chǎn)生SMB數(shù)據(jù)塊。當(dāng)在64×64塊有要進(jìn)行編碼的數(shù)據(jù)且被劃分成32×32塊時(shí),同樣判斷在對(duì)應(yīng)的32×32塊中是否有要進(jìn)行編碼的數(shù)據(jù)。當(dāng)在對(duì)應(yīng)的32×32塊中沒有要進(jìn)行編碼的數(shù)據(jù)時(shí),將SKIP模式確定為32×32塊模式,將mb32_skip_flag傳送到解碼器。不過,當(dāng)32×32塊有要進(jìn)行編碼的數(shù)據(jù)但未被劃分成16×16塊時(shí),在32×32塊的報(bào)頭中插入32×32塊的編碼大小(該編碼大小是32×32、32×16和16×32之一)以及關(guān)于32×32塊是幀內(nèi)編碼還是幀間編碼的信息,并且利用經(jīng)編碼的數(shù)據(jù)產(chǎn)生數(shù)據(jù)塊。當(dāng)32×32塊有要進(jìn)行編碼的數(shù)據(jù)且被劃分成16×16塊時(shí),判斷在對(duì)應(yīng)的16×16塊中是否有要進(jìn)行編碼的數(shù)據(jù)。當(dāng)在對(duì)應(yīng)的16×16塊中沒有要進(jìn)行編碼的數(shù)據(jù)時(shí),將SKIP模式確定為16×16塊模式,并且將mb16_skip_flag傳送到解碼器。另一方面,當(dāng)在對(duì)應(yīng)的16×16塊中有要進(jìn)行編碼的數(shù)據(jù)時(shí),在16×16塊的報(bào)頭中插入16×16塊的編碼大小(該編碼大小是16×16、16×8和8×16之一)以及關(guān)于16×16塊是幀內(nèi)編碼還是幀間編碼的信息,并且利用經(jīng)編碼的數(shù)據(jù)產(chǎn)生數(shù)據(jù)塊。在使用具有這樣不同大小的塊時(shí),塊大小信息可以根據(jù)每個(gè)序列層次、圖畫層次、切片層次、SMB或SMB的子編碼單元而改變。圖3示出了根據(jù)本發(fā)明的用于對(duì)活動(dòng)圖畫進(jìn)行編碼的設(shè)備。參考圖3,根據(jù)本發(fā)明的對(duì)活動(dòng)圖畫進(jìn)行編碼的設(shè)備包括編碼模式判決器110、變換/量化單元120、熵編碼器130、幀內(nèi)預(yù)測器140、運(yùn)動(dòng)補(bǔ)償器150、運(yùn)動(dòng)估算器155、逆量化/變換單元160、去塊濾波器170、圖畫存儲(chǔ)器180、加法器和減法器。編碼模式判決器110分析輸入的視頻信號(hào)以將圖畫劃分成編碼單元,并針對(duì)每個(gè)編碼單元確定預(yù)測編碼塊的大小和預(yù)測模式。而且,編碼模式判決器110向減法器發(fā)送與所確定大小對(duì)應(yīng)的預(yù)測編碼塊。變換/量化單元120確定變換塊的大小以變換從減法器接收到的殘余信號(hào)。變換塊的大小可以等于或小于預(yù)測編碼塊的大小,但可以在幀間模式中進(jìn)行不同設(shè)置。換言之,在幀間模式中,變換塊的大小可以大于預(yù)測編碼塊的大小。在這種情況下,變換/量化單元120從減法器接收多個(gè)殘余塊并產(chǎn)生由多個(gè)殘余塊構(gòu)成的一個(gè)變換塊。變換塊的大小等于或小于編碼單元的大小。變換/量化單元120對(duì)變換塊執(zhí)行二維(2D)離散余弦變換(DCT)以產(chǎn)生變換系數(shù)。DCT可以是整數(shù)DCT。而且,變換/量化單元120確定用于量化變換系數(shù)的量化步長大小,利用根據(jù)所確定的量化步長和編碼模式而確定的量化矩陣來量化變換系數(shù)。逆量化/變換單元160對(duì)變換編碼/量化單元120所量化的量化系數(shù)進(jìn)行逆量化和逆變換,由此從變換到頻域中的殘余塊來恢復(fù)空間域中的殘余塊。去塊濾波器170從逆量化/變換單元160接收經(jīng)過逆量化和逆變換的圖像數(shù)據(jù)并執(zhí)行濾波過程以消除塊效應(yīng)(blockingeffect)。可以將去塊濾波過程應(yīng)用于預(yù)測編碼塊間和變換塊之間的邊界。邊界是具有預(yù)定大小或更大的網(wǎng)格邊緣,預(yù)定大小可以是8×8。去塊濾波過程包括確定要進(jìn)行濾波的邊界的步驟,確定要應(yīng)用于該邊界的邊界濾波強(qiáng)度的步驟,判斷是否應(yīng)用去塊濾波器的步驟,以及在確定要應(yīng)用去塊濾波器時(shí)選擇要應(yīng)用于該邊界的濾波器的步驟。根據(jù)i)邊界濾波強(qiáng)度是否大于0以及ii)表示P塊和Q塊的邊界像素之間差異的值是否小于根據(jù)量化參數(shù)確定的第一參考值,判斷是否應(yīng)用去塊濾波器。可以有兩個(gè)或更多濾波器。當(dāng)與塊邊界相鄰的兩個(gè)像素之間的差異的絕對(duì)值等于或大于第二參考值時(shí),選擇弱濾波器。第二參考值是通過量化參數(shù)和邊界濾波強(qiáng)度確定的。圖畫存儲(chǔ)器180從去塊濾波器170接收已濾波的圖像并在圖畫單元中存儲(chǔ)該圖像。圖畫可以是幀的圖像或場的圖像。圖畫存儲(chǔ)器180具有能夠存儲(chǔ)多個(gè)圖畫的緩存(未示出)。運(yùn)動(dòng)估算器155利用圖畫存儲(chǔ)器180中存儲(chǔ)的至少一個(gè)參考圖畫進(jìn)行運(yùn)動(dòng)估計(jì),并輸出表示參考圖畫的參考圖畫索引和運(yùn)動(dòng)矢量。運(yùn)動(dòng)補(bǔ)償器150根據(jù)從運(yùn)動(dòng)估算器155輸入的參考圖畫索引和運(yùn)動(dòng)矢量,從存儲(chǔ)在圖畫存儲(chǔ)器180中的多個(gè)參考圖畫中的用于運(yùn)動(dòng)估計(jì)的參考圖畫中提取與要進(jìn)行編碼的塊相對(duì)應(yīng)的預(yù)測塊,并輸出所提取的預(yù)測塊。幀內(nèi)預(yù)測器140在同一圖畫中利用重構(gòu)的像素值執(zhí)行幀內(nèi)預(yù)測。幀內(nèi)預(yù)測器140接收要預(yù)測編碼的當(dāng)前塊,根據(jù)當(dāng)前塊的大小選擇預(yù)定數(shù)量的幀內(nèi)預(yù)測模式中的一種并執(zhí)行幀內(nèi)預(yù)測。熵編碼器130對(duì)變換/量化單元120所量化的量化系數(shù)、由運(yùn)動(dòng)估算器155產(chǎn)生的運(yùn)動(dòng)信息等進(jìn)行熵編碼。通過預(yù)定的掃描方法將所量化的變換系數(shù)轉(zhuǎn)換成一維(1D)量化變換信息并進(jìn)行熵編碼。下面將參考圖3描述幀內(nèi)預(yù)測過程。首先,幀內(nèi)預(yù)測器140從編碼模式判決器110接收關(guān)于要進(jìn)行編碼的編碼塊的位置和大小信息。接下來,幀內(nèi)預(yù)測器140從圖畫存儲(chǔ)器180接收有效的參考像素,用于確定當(dāng)前預(yù)測編碼塊的幀內(nèi)預(yù)測模式。參考像素已經(jīng)被編碼并恢復(fù),并與當(dāng)前預(yù)測編碼塊(下文稱為當(dāng)前塊)相鄰。在當(dāng)前塊位于當(dāng)前圖畫的上邊界時(shí),不定義與當(dāng)前塊上側(cè)相鄰的像素。在當(dāng)前塊位于當(dāng)前圖畫的左邊界時(shí),不定義與當(dāng)前塊左側(cè)相鄰的像素。而且,在當(dāng)前塊位于切片上邊界或左邊界時(shí),不定義與上側(cè)或左側(cè)相鄰的像素。在沒有與當(dāng)前塊左側(cè)或上側(cè)相鄰的像素或沒有如上所述先前已經(jīng)進(jìn)行編碼并恢復(fù)的像素時(shí),可以僅利用有效像素確定當(dāng)前塊的幀內(nèi)預(yù)測模式。不過,可以利用與當(dāng)前塊相鄰的像素或可用像素產(chǎn)生無效參考像素。例如,在上側(cè)塊的像素?zé)o效時(shí),可以利用左側(cè)的一個(gè)或多個(gè)可用參考像素產(chǎn)生上側(cè)的像素。同時(shí),即使在當(dāng)前塊的上側(cè)或左側(cè)有像素時(shí),也可以根據(jù)像素所屬的塊的編碼模式將像素確定為無效像素。例如,在與當(dāng)前塊上側(cè)相鄰的像素所屬的塊已經(jīng)被幀間編碼并恢復(fù),可以將所述像素確定為無效像素。在這種情況下,可以利用具有幀內(nèi)模式的塊的參考像素產(chǎn)生參考像素。接下來,幀內(nèi)預(yù)測器140利用參考像素確定當(dāng)前塊的幀內(nèi)預(yù)測模式。幀內(nèi)預(yù)測模式的數(shù)量取決于塊的大小。根據(jù)塊的大小,允許33、16或2個(gè)方向性模式和至少一個(gè)非方向性模式。非方向性模式可以是直流(DC)模式或平面模式。可以將不同數(shù)量的幀內(nèi)預(yù)測模式分配給具有相同大小的塊。為了表明允許不同數(shù)量的幀內(nèi)預(yù)測模式,可以在序列報(bào)頭、圖畫報(bào)頭、切片報(bào)頭和編碼單元報(bào)頭中的至少一個(gè)中插入表示幀內(nèi)預(yù)測模式數(shù)量的信息。優(yōu)選在序列報(bào)頭或圖畫報(bào)頭中插入所述信息。接下來,在確定當(dāng)前塊的幀內(nèi)預(yù)測模式時(shí),產(chǎn)生當(dāng)前塊的預(yù)測塊?;诋?dāng)前塊的幀內(nèi)預(yù)測模式,利用包括所產(chǎn)生像素的參考像素或利用參考像素的線性組合產(chǎn)生預(yù)測塊。例如,在特定方向的方向性模式中,可以利用當(dāng)前塊上側(cè)和當(dāng)前塊左側(cè)的參考像素產(chǎn)生預(yù)測模式。用于產(chǎn)生預(yù)測塊的有效參考像素可以是經(jīng)濾波的參考像素。應(yīng)用于有效參考像素的濾波器數(shù)量可以是多個(gè)。而且,可以根據(jù)當(dāng)前塊的大小和幀內(nèi)預(yù)測模式自適應(yīng)地應(yīng)用多個(gè)濾波器。接下來,由變換/量化單元120和熵編碼器130對(duì)利用當(dāng)前塊和幀內(nèi)預(yù)測器140產(chǎn)生的預(yù)測塊獲得的殘余塊進(jìn)行編碼。同時(shí),單獨(dú)對(duì)當(dāng)前塊的幀內(nèi)預(yù)測模式進(jìn)行編碼。可以由幀內(nèi)預(yù)測器140、單獨(dú)的幀內(nèi)預(yù)測模式編碼器(未示出)或熵編碼器130對(duì)幀內(nèi)預(yù)測模式進(jìn)行編碼。利用當(dāng)前塊的上側(cè)塊和左側(cè)塊的幀內(nèi)預(yù)測模式對(duì)當(dāng)前塊的幀內(nèi)預(yù)測模式進(jìn)行編碼。首先,得到當(dāng)前塊的左側(cè)塊和上側(cè)塊的幀內(nèi)預(yù)測模式。當(dāng)上側(cè)塊的數(shù)量是多個(gè)時(shí),將最左邊的上側(cè)塊或具有最低模式數(shù)量的塊設(shè)置為當(dāng)前塊的上側(cè)塊。而且,當(dāng)左側(cè)塊的數(shù)量是多個(gè)時(shí),將最上邊的左側(cè)塊或具有最低模式數(shù)量的塊設(shè)置為當(dāng)前塊的左側(cè)塊。在上側(cè)塊或左側(cè)塊不是以幀內(nèi)預(yù)測模式進(jìn)行編碼時(shí),可以將DC模式(模式數(shù)2)設(shè)置為上側(cè)塊或左側(cè)塊的幀內(nèi)預(yù)測模式。接下來,在上側(cè)塊或左側(cè)塊的幀內(nèi)預(yù)測模式數(shù)量等于或大于當(dāng)前塊的允許幀內(nèi)預(yù)測模式的數(shù)量時(shí),將上側(cè)塊或左側(cè)塊的幀內(nèi)預(yù)測模式轉(zhuǎn)換成當(dāng)前塊允許的幀內(nèi)預(yù)測模式之一。接下來,在當(dāng)前塊的幀內(nèi)預(yù)測模式等于左側(cè)塊的幀內(nèi)預(yù)測模式和上側(cè)塊的幀內(nèi)預(yù)測模式之一時(shí),傳送表示當(dāng)前塊的幀內(nèi)預(yù)測模式等于左側(cè)塊的幀內(nèi)預(yù)測模式和上側(cè)塊的幀內(nèi)預(yù)測模式之一的標(biāo)志以及表示上側(cè)塊和左側(cè)塊的幀內(nèi)預(yù)測模式之一的標(biāo)志。在這種情況下,在當(dāng)前塊的左側(cè)塊和上側(cè)塊具有相同幀內(nèi)預(yù)測模式時(shí),可以僅傳送表示當(dāng)前塊的幀內(nèi)預(yù)測模式等于左側(cè)塊的幀內(nèi)預(yù)測模式和上側(cè)塊的幀內(nèi)預(yù)測模式之一的標(biāo)志。類似地,在上側(cè)塊和左側(cè)塊的幀內(nèi)預(yù)測模式中僅有一個(gè)有效且等于當(dāng)前塊的幀內(nèi)預(yù)測模式時(shí),可以僅傳送表示當(dāng)前塊的幀內(nèi)預(yù)測模式等于左側(cè)塊的幀內(nèi)預(yù)測模式和上側(cè)塊的幀內(nèi)預(yù)測模式中之一的標(biāo)志。不過,在當(dāng)前塊的幀內(nèi)預(yù)測模式與左側(cè)塊和上側(cè)塊的幀內(nèi)預(yù)測模式不同時(shí),判斷當(dāng)前塊的幀內(nèi)預(yù)測模式數(shù)量是否小于左側(cè)塊和上側(cè)塊的幀內(nèi)預(yù)測模式。在判定當(dāng)前塊的左側(cè)塊和上側(cè)塊的幀內(nèi)預(yù)測模式數(shù)量都大于當(dāng)前塊的幀內(nèi)預(yù)測模式數(shù)量時(shí),將當(dāng)前塊的幀內(nèi)預(yù)測模式確定為最終幀內(nèi)預(yù)測模式。不過,在當(dāng)前塊的左側(cè)塊和上側(cè)塊的幀內(nèi)預(yù)測模式數(shù)量中僅有一個(gè)不大于當(dāng)前塊的幀內(nèi)預(yù)測模式數(shù)量時(shí),將具有從當(dāng)前塊的幀內(nèi)預(yù)測模式數(shù)量減1得到的模式數(shù)的幀內(nèi)預(yù)測模式確定為當(dāng)前塊的最終幀內(nèi)預(yù)測模式。而且,在當(dāng)前塊的左側(cè)塊和上側(cè)塊的幀內(nèi)預(yù)測模式數(shù)量中的任一個(gè)都不大于當(dāng)前塊的幀內(nèi)預(yù)測模式數(shù)量時(shí),將具有從當(dāng)前塊的幀內(nèi)預(yù)測模式數(shù)量減2得到的模式數(shù)的幀內(nèi)預(yù)測模式確定為當(dāng)前塊的最終幀內(nèi)預(yù)測模式。接下來,對(duì)當(dāng)前塊的最終幀內(nèi)預(yù)測模式進(jìn)行編碼。根據(jù)當(dāng)前塊的上側(cè)塊是否與當(dāng)前塊的左側(cè)塊具有相同幀內(nèi)預(yù)測模式,利用不同的編碼表,對(duì)當(dāng)前塊的最終幀內(nèi)預(yù)測模式進(jìn)行編碼。當(dāng)前塊的上側(cè)塊或左側(cè)塊的幀內(nèi)預(yù)測模式可以是修改的幀內(nèi)預(yù)測模式。換言之,當(dāng)前塊的上側(cè)塊或左側(cè)塊的幀內(nèi)預(yù)測模式可以是通過表格修改的,該表格用于將上側(cè)塊和左側(cè)塊可允許的幀內(nèi)預(yù)測模式映射到預(yù)定數(shù)量的幀內(nèi)預(yù)測模式。預(yù)定數(shù)量可以是9或3。下文將描述圖3的熵編碼器130的量化變換系數(shù)編碼過程。利用語境自適應(yīng)可變長度編碼(CAVLC)或語境自適應(yīng)二進(jìn)制算術(shù)編碼(CABAC)對(duì)量化的變換系數(shù)進(jìn)行熵編碼。在變換塊的大小變大時(shí),有很大可能性將需要掃描大量比特并對(duì)不為0的系數(shù)進(jìn)行熵編碼。于是,優(yōu)選引入新的掃描方法,用于針對(duì)大小等于或大于預(yù)定大小的變換塊減少比特?cái)?shù)量。首先,判斷是否將量化的變換系數(shù)劃分成多個(gè)子集。這取決于變換塊的大小。換言之,在變換塊的大小等于或大于預(yù)定大小時(shí),將量化的變換系數(shù)劃分成多個(gè)子集。預(yù)定大小可以是8×8或16×16。多個(gè)子集由一個(gè)主要子集和一個(gè)或多個(gè)殘余子集構(gòu)成。主要子集位于包括DC系數(shù)的左上側(cè),一個(gè)或多個(gè)殘余子集覆蓋除主要子集覆蓋區(qū)域之外的區(qū)域。接下來,在變換塊的大小等于或大于預(yù)定大小時(shí),將量化的變換系數(shù)劃分成主要子集和一個(gè)或多個(gè)殘余子集,并對(duì)每個(gè)子集中包括的量化變換系數(shù)進(jìn)行掃描和編碼。可以利用多個(gè)掃描模式之一來掃描子集中的量化變換系數(shù)。可以根據(jù)子集中量化變換系數(shù)的非零像素的分布來選擇要編碼的比特?cái)?shù)量變?yōu)樽钚〉膾呙枘J?。多個(gè)掃描模式可以包括鋸齒形掃描、垂直掃描和水平掃描。而且,可以包括活動(dòng)圖畫專家組(MPEG)-4的垂直掃描或水平掃描。在針對(duì)每個(gè)子集傳送掃描模式時(shí),需要大量比特。因此,可以向多個(gè)子集應(yīng)用一種掃描模式。同時(shí),可以根據(jù)預(yù)測模式和幀內(nèi)預(yù)測方向自適應(yīng)地選擇掃描模式。例如,在幀間預(yù)測模式中,可以僅應(yīng)用一種預(yù)定掃描模式(例如鋸齒形掃描)或多種掃描模式之一。在前一種情況下,不需要向解碼器傳送掃描模式信息,但在后一種情況下,需要向解碼器傳送掃描模式信息。在幀內(nèi)預(yù)測模式中,可以根據(jù)幀內(nèi)預(yù)測方向選擇掃描模式。例如,可以在垂直幀內(nèi)預(yù)測模式中應(yīng)用水平掃描,可以在水平幀內(nèi)預(yù)測模式中應(yīng)用垂直掃描,可以在DC模式中應(yīng)用鋸齒形掃描。要應(yīng)用于主要子集的掃描模式和一個(gè)或多個(gè)殘余子集可以是預(yù)定模式。預(yù)定模式可以是鋸齒形掃描。除了鋸齒形掃描之外,可以向子集應(yīng)用水平掃描或垂直掃描。也可以根據(jù)預(yù)測模式和幀內(nèi)預(yù)測方向自適應(yīng)地確定應(yīng)用于子集的掃描模式。換言之,在幀間預(yù)測模式中,可以向子集應(yīng)用預(yù)定的掃描模式。在幀內(nèi)預(yù)測中,可以向子集應(yīng)用幀內(nèi)預(yù)測方向所選擇的掃描模式。沿相反方向掃描子集中的量化變換系數(shù)可以是有效的。換言之,可以根據(jù)掃描模式沿相反方向從子集的最后非零系數(shù)掃描量化的變換系數(shù)。同樣地,沿相反方向從包括變換塊的最后非零系數(shù)的子集向主要子集掃描多個(gè)子集。同時(shí),為了解碼器進(jìn)行正確熵解碼,編碼器對(duì)能夠表示變換塊中最后非零系數(shù)的位置的信息和能夠表示每個(gè)子集中最后非零系數(shù)位置的信息進(jìn)行編碼并向解碼器傳送編碼的信息。該信息可以表示每個(gè)子集中最后非零系數(shù)的位置。而且,該信息可以是地圖信息,由表示每個(gè)變換系數(shù)是否為0的標(biāo)志以及表示非零系數(shù)是否是變換塊中最后非零系數(shù)的標(biāo)志構(gòu)成。用于產(chǎn)生地圖信息的掃描模式可以與子集中的掃描模式相同。在另一個(gè)范例中,為了掃描變換塊的量化變換系數(shù),可以利用交織方法重新布置變換塊的量化變換系數(shù),并轉(zhuǎn)換成多個(gè)子塊,可以對(duì)每個(gè)子塊進(jìn)行掃描和編碼。同時(shí),在圖像具有特定方向的邊界并使用等價(jià)預(yù)測模式時(shí),為運(yùn)動(dòng)邊界部分的類似數(shù)據(jù)使用不同子塊,并且可能發(fā)生不必要的開銷。在這種情況下,可能更有效的是根據(jù)圖像的邊界部分形狀沿特定方向劃分編碼單元并對(duì)每個(gè)所劃分的區(qū)域執(zhí)行運(yùn)動(dòng)估計(jì)。參考圖4到6,將描述一種考慮圖像特性以方向自適應(yīng)方式來劃分塊的方法。在圖4、5和6中,將描述32×32的編碼單元作為范例。不過,編碼單元的大小不限于32×32,也可以將該方法應(yīng)用于64×64塊或16×16塊。在最簡單自適應(yīng)模式的一個(gè)范例中,通過直線將編碼單元分成兩個(gè)塊,以便提取局部拓?fù)渖项A(yù)測區(qū)域的統(tǒng)計(jì)學(xué)相關(guān)性。換言之,將圖像的邊界部分匹配到直線并進(jìn)行劃分。如圖所示,在存在橫貫32×32塊的圖像的邊界時(shí),應(yīng)當(dāng)將橫貫圖像的邊界部分劃分成小塊,以根據(jù)常規(guī)圖像劃分方法有效率地壓縮圖像。于是,如圖4中所示,應(yīng)當(dāng)將一個(gè)32×32塊劃分成至少10個(gè)塊并編碼。因此,應(yīng)當(dāng)將10個(gè)運(yùn)動(dòng)矢量與表示圖像劃分的信息一起傳送到解碼器,從而需要除圖像信息之外的更多額外信息。同時(shí),如圖5或6所示,在有橫貫32×32塊的圖像的邊界時(shí),可以通過將圖像邊界與表示圖像邊界的至少一條直線進(jìn)行匹配來顯著減少要傳送到解碼器的額外信息的條數(shù)。例如,在將橫貫32×32塊的圖像的邊界匹配到圖5所示的兩條直線時(shí),將32×32塊劃分成四個(gè)16×16塊,并且可以獲得將第一和第四16×16塊各自匹配到塊邊界的直線。在這種情況下,需要六個(gè)劃分區(qū)域,并且可以將要傳送到解碼器的運(yùn)動(dòng)矢量減少到六個(gè)。同樣地,在將橫貫塊的邊界匹配到圖6所示的一條直線時(shí),將32×32塊劃分成兩個(gè)塊,僅需要向解碼器傳送一條塊模式信息和兩個(gè)運(yùn)動(dòng)矢量。同時(shí),在利用直線劃分塊時(shí),應(yīng)當(dāng)額外向解碼器傳送所用直線的信息。下文將描述要傳送的直線信息??梢岳酶鞣N方法傳送要傳送的直線信息。第一范例是利用相對(duì)于預(yù)定位置的距離和角度來表達(dá)直線的信息。在這種情況下,預(yù)定位置可以是塊左上角或中心的像素。所述距離可以是整數(shù)或量化值。所述角度可以是0到180,也可以是量化值。第二范例是向解碼器傳送橫貫塊的直線兩端的位置值??梢詫⒃撐恢弥当磉_(dá)為表示從左上角開始沿順時(shí)針方向繞塊的邊界行進(jìn),同時(shí)所述兩端距離塊的左上角處的像素有多遠(yuǎn)的值。在這種情況下,可以將任一端表達(dá)為順時(shí)針方向繞邊界行進(jìn)時(shí)距離像素的位置,可以將另一端表達(dá)為逆時(shí)針方向繞邊界行進(jìn)時(shí)距離像素的位置,從而可以表示直線信息。在這種情況下,可以利用少量的比特表達(dá)關(guān)于接近更多不同形狀的直線信息。在有已經(jīng)被方向自適應(yīng)地劃分并被編碼的相鄰塊時(shí),有效的做法是傳送當(dāng)前塊的直線信息與從相鄰塊中選擇的一個(gè)塊的直線信息之間的差異信息。更優(yōu)選地是利用沿與當(dāng)前塊相同方向劃分的塊的方向信息對(duì)差異信息進(jìn)行編碼。可以將關(guān)于當(dāng)前塊的直線信息或差異信息表達(dá)為一個(gè)對(duì)應(yīng)的索引,其可以是可變長度編碼并傳送的。同時(shí),可以根據(jù)預(yù)測編碼塊的大小確定是否應(yīng)用方向自適應(yīng)劃分法。由于應(yīng)用于過小編碼塊的方向自適應(yīng)劃分法可能增大要傳送的信息量和復(fù)雜性,優(yōu)選不應(yīng)用該方法。如圖7所示,可以僅向限于預(yù)定數(shù)量的特定方向應(yīng)用根據(jù)圖像的邊界部分的形狀來劃分預(yù)測編碼塊的方法。例如,可以將劃分塊的方法限于四個(gè)方向,即水平方向、垂直方向、向上對(duì)角線方向和向下對(duì)角線方向,或兩個(gè)方向,即水平方向和垂直方向。沿特定方向劃分塊的情形的數(shù)量可以隨著預(yù)測編碼塊大小而變化。例如,可以利用七種方法沿特定方向(例如水平方向)劃分大小為32×32的預(yù)測編碼塊,可以利用三種方法劃分大小為16×16的預(yù)測編碼塊。而且,不論預(yù)測編碼塊大小如何,都可以利用相同數(shù)量的方法劃分預(yù)測編碼塊。根據(jù)色度,也可以將預(yù)測編碼塊劃分成相同的分割,也可以將以下所有方法應(yīng)用于該劃分。具有各自劃分區(qū)域的預(yù)測編碼塊應(yīng)當(dāng)在報(bào)頭中包括表示存在劃分塊的標(biāo)志、表示如何完成劃分的信息以及根據(jù)各自劃分區(qū)域指稱的經(jīng)編碼的參考圖畫索引。當(dāng)一個(gè)塊是方向自適應(yīng)地預(yù)測的時(shí),應(yīng)當(dāng)在兩個(gè)已劃分區(qū)域的每個(gè)上進(jìn)行運(yùn)動(dòng)估計(jì)和運(yùn)動(dòng)補(bǔ)償。于是,應(yīng)當(dāng)從每個(gè)被劃分區(qū)域得出運(yùn)動(dòng)矢量,并且應(yīng)當(dāng)?shù)贸霾?duì)每個(gè)被劃分區(qū)域與基于該運(yùn)動(dòng)矢量獲得的參考區(qū)域之間的殘余信號(hào)進(jìn)行編碼??梢岳靡韵路椒ǖ娜我环N對(duì)殘余信號(hào)進(jìn)行編碼。首先,可以從一個(gè)預(yù)測編碼塊所劃分的兩個(gè)區(qū)域中的每個(gè)得出殘余信號(hào),然后可以添加所述兩個(gè)殘余信號(hào)以形成一個(gè)塊的殘余信號(hào)并進(jìn)行變換編碼。在這種情況下,在沿邊界劃分的各自區(qū)域中的殘余信號(hào)的總體分布之間非??赡艽嬖诓町悾瑥亩鴥?yōu)選向邊界應(yīng)用濾波器。在另一種方法中,可以通過向每個(gè)被劃分區(qū)域應(yīng)用形狀自適應(yīng)變換來進(jìn)行編碼。如圖7中所示,在將一個(gè)塊劃分成兩個(gè)區(qū)域時(shí),按照原樣對(duì)左上塊進(jìn)行水平1D變換,然后進(jìn)行垂直1D變換,對(duì)右下塊如圖所示地進(jìn)行重新布置或旋轉(zhuǎn)180度,并進(jìn)行1D變換,然后進(jìn)行垂直1D變換。在這種情況下,可以將根據(jù)各自劃分區(qū)獨(dú)立進(jìn)行編碼的殘余系數(shù)傳送到解碼器或者可以對(duì)其進(jìn)行組合并傳送。在又一種方法中,可以根據(jù)各自的被劃分區(qū)域進(jìn)行補(bǔ)白(padding)以產(chǎn)生塊并對(duì)塊進(jìn)行編碼。換言之,在對(duì)當(dāng)前劃分區(qū)域進(jìn)行編碼時(shí),為構(gòu)成該塊的其他劃分區(qū)域補(bǔ)上當(dāng)前劃分區(qū)域的值,以構(gòu)成一個(gè)塊,然后進(jìn)行2D變換編碼。補(bǔ)白可以是水平補(bǔ)白(從已定義區(qū)域水平地拷貝未定義區(qū)域)和垂直補(bǔ)白(從已定義區(qū)域垂直拷貝未定義區(qū)域)。在這種情況下,優(yōu)選執(zhí)行水平補(bǔ)白,然后進(jìn)行垂直補(bǔ)白。而且,可以通過所定義像素的線性組合填補(bǔ)與一個(gè)或多個(gè)所定義像素相鄰的未定義像素。而且,可以根據(jù)劃分方向給出方向性,使得可以首先執(zhí)行水平補(bǔ)白和垂直補(bǔ)白的任一種。接下來將描述運(yùn)動(dòng)矢量估計(jì)。當(dāng)利用直線將一個(gè)塊劃分成兩個(gè)區(qū)域時(shí),利用已經(jīng)編碼的運(yùn)動(dòng)矢量對(duì)每個(gè)劃分區(qū)域的運(yùn)動(dòng)矢量進(jìn)行差異編碼。在第一種方法中,被劃分區(qū)域的第一區(qū)域可以選擇相鄰塊的運(yùn)動(dòng)矢量之一作為運(yùn)動(dòng)矢量預(yù)測器,第二區(qū)域可以選擇除第一區(qū)域之外的相鄰塊的運(yùn)動(dòng)矢量之一作為運(yùn)動(dòng)矢量預(yù)測器。在第二種方法中,被劃分區(qū)域的第一區(qū)域可以選擇相鄰塊的運(yùn)動(dòng)矢量之一作為運(yùn)動(dòng)矢量預(yù)測器,第二區(qū)域可以選擇第一區(qū)域的運(yùn)動(dòng)矢量作為運(yùn)動(dòng)矢量預(yù)測器。在第三種方法中,在與當(dāng)前塊相鄰的塊中有方向自適應(yīng)地劃分的塊時(shí),考慮到所劃分塊的方向性,將方向自適應(yīng)地劃分的塊的運(yùn)動(dòng)矢量用作參考運(yùn)動(dòng)矢量。于是,在有多個(gè)方向自適應(yīng)地劃分的塊時(shí),可以將預(yù)定序列中的運(yùn)動(dòng)矢量或具有類似劃分方向的塊的運(yùn)動(dòng)矢量用作參考運(yùn)動(dòng)矢量。在第四種方法中,被劃分區(qū)域的第一區(qū)域可以將與第一區(qū)域相鄰的一個(gè)塊的運(yùn)動(dòng)矢量設(shè)置為第一區(qū)域的運(yùn)動(dòng)矢量預(yù)測器,第二區(qū)域可以選擇與第二區(qū)域相鄰的塊的運(yùn)動(dòng)矢量以及處于先前圖畫中同一位置的塊或劃分區(qū)域的運(yùn)動(dòng)矢量中的任一個(gè)作為運(yùn)動(dòng)矢量預(yù)測器,并對(duì)差異運(yùn)動(dòng)矢量進(jìn)行編碼。在這里,使用一條直線進(jìn)行塊劃分。不過,也可以利用由至少兩條直線構(gòu)成的信息將一個(gè)塊劃分成至少兩個(gè)劃分區(qū)域,并可以如上所述執(zhí)行所劃分區(qū)域的編碼。盡管已經(jīng)參考其某些示范性實(shí)施例示出并描述了本發(fā)明,但本領(lǐng)域的技術(shù)人員將理解,可以在其中做出各種形式和細(xì)節(jié)的改變而不脫離如所附權(quán)利要求界定的本發(fā)明精神和范圍。
當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1