用于對(duì)圖像編碼的設(shè)備和方法本案是分案申請(qǐng),其母案為于2011年4月22日申請(qǐng)的申請(qǐng)?zhí)枮?01180031338.8的題為“用于對(duì)圖像編碼的設(shè)備和方法”的專利申請(qǐng)。技術(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ū)域,所以可以通過(guò)用大于宏塊(MB)的編碼塊對(duì)圖像編碼來(lái)改善圖像壓縮。因此,在編碼單元的大小增大時(shí),需要新的預(yù)測(cè)技術(shù),并需要在變換編碼、熵編碼、幀內(nèi)預(yù)測(cè)和幀間預(yù)測(cè)中的改變,以提高圖像壓縮比而不增加圖像壓縮的復(fù)雜性。
技術(shù)實(shí)現(xiàn)要素:技術(shù)問(wèn)題本發(fā)明涉及一種對(duì)活動(dòng)圖像編碼的設(shè)備,更具體而言,涉及一種對(duì)預(yù)定大小或更大的活動(dòng)圖像的已變換殘余信號(hào)進(jìn)行有效編碼的設(shè)備。技術(shù)方案本發(fā)明的一個(gè)方面提供了一種為活動(dòng)圖畫進(jìn)行編碼的設(shè)備,包括:編碼模式判決器,被配置成將輸入圖像劃分成編碼單元并確定所述編碼單元的預(yù)測(cè)模式和所述編碼單元的預(yù)測(cè)編碼塊的大??;變換/量化單元,被配置成對(duì)所述預(yù)測(cè)編碼塊和通過(guò)幀內(nèi)預(yù)測(cè)或幀間預(yù)測(cè)產(chǎn)生的預(yù)測(cè)塊之間的殘余塊進(jìn)行變換和量化;逆量化/變換單元,被配置成將所量化的變換塊逆量化和逆變換到頻域中;去塊濾波器,被配置成向從所述逆量化/變換解碼單元接收到的圖像數(shù)據(jù)應(yīng)用去塊濾波過(guò)程;預(yù)測(cè)塊發(fā)生器,被配置成產(chǎn)生所述預(yù)測(cè)編碼塊;以及熵編碼器,被配置成對(duì)來(lái)自變換編碼/量化單元的量化變換系數(shù)進(jìn)行編碼,其中,在變換塊的大小等于或大于預(yù)定大小時(shí),所述熵編碼器將量化變換系數(shù)劃分成多個(gè)子集,并對(duì)所述每個(gè)子集的非零量化變換系數(shù)進(jìn)行掃描和熵編碼。有益效果本發(fā)明能夠通過(guò)減少要進(jìn)行編碼塊的殘余信號(hào)量來(lái)提高編碼效率。而且,通過(guò)在熵編碼期間有效地掃描不為0的量化變換系數(shù),使熵編碼所需的比特?cái)?shù)量最小化,從而可以提高編碼效率。附圖說(shuō)明圖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í)施例。不過(guò),本發(fā)明不限于下文公開(kāi)的示范性實(shí)施例,而是可以通過(guò)各種方式實(shí)施。因此,本發(fā)明很多其他修改和變化都是可能的,要理解的是,在所公開(kāi)的概念范圍之內(nèi),可以通過(guò)與具體所述不同的方式實(shí)踐本發(fā)明。為了進(jìn)行圖像編碼,將每幅圖畫劃分成多個(gè)切片,將每個(gè)切片劃分成預(yù)定大小的多個(gè)編碼單元。由于高清晰度(HD)等級(jí)或更高級(jí)別的圖像具有很多平坦區(qū)域,所以可以通過(guò)用大于16×16大小的宏塊(MB)的編碼單元對(duì)圖像進(jìn)行編碼來(lái)改善圖像壓縮比。根據(jù)本發(fā)明的編碼單元可以是大小為32×32的塊或大小為64×64的塊或大小為16×16的MB。而且,大小為8×8或更小的塊可以是編碼單元。為了方便起見(jiàn),將最大的編碼單元稱為超級(jí)宏塊(SMB)??梢愿鶕?jù)表示最小編碼單元的大小的信息和深度信息來(lái)確定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ù)測(cè)編碼塊的大小信息和表示編碼單元已經(jīng)以幀內(nèi)預(yù)測(cè)模式或幀間預(yù)測(cè)模式進(jìn)行了編碼的預(yù)測(cè)模式信息。為此,應(yīng)當(dāng)在編碼單元的比特流中包括預(yù)測(cè)模式信息和表示預(yù)測(cè)編碼塊大小的信息。預(yù)測(cè)模式根據(jù)切片的類型而改變。當(dāng)切片類型是幀內(nèi)(I)時(shí),切片中的所有預(yù)測(cè)編碼塊都是幀內(nèi)預(yù)測(cè)的,并且可以根據(jù)預(yù)測(cè)編碼塊的大小確定預(yù)測(cè)編碼塊的預(yù)測(cè)類型。不過(guò),在切片類型是單向預(yù)測(cè)(P)或雙向預(yù)測(cè)(B)時(shí),可以根據(jù)預(yù)測(cè)模式信息和預(yù)測(cè)編碼塊的大小來(lái)確定預(yù)測(cè)編碼塊的預(yù)測(cè)類型。于是,優(yōu)選基于切片類型、預(yù)測(cè)模式信息和表示預(yù)測(cè)編碼塊大小的信息來(lái)產(chǎn)生預(yù)測(cè)編碼塊的預(yù)測(cè)類型,并將所產(chǎn)生的預(yù)測(cè)類型插入編碼單元的報(bào)頭中。當(dāng)預(yù)測(cè)編碼塊是幀內(nèi)編碼時(shí),需要向解碼器傳送用于幀內(nèi)預(yù)測(cè)的幀內(nèi)預(yù)測(cè)模式信息以及預(yù)測(cè)類型。當(dāng)預(yù)測(cè)編碼塊是幀間編碼時(shí),通過(guò)單向預(yù)測(cè)和雙向預(yù)測(cè)的任一種對(duì)預(yù)測(cè)編碼塊進(jìn)行編碼。在單向預(yù)測(cè)的情形中,比特流應(yīng)當(dāng)包括關(guān)于參考圖畫的信息和用于預(yù)測(cè)的運(yùn)動(dòng)矢量以及用于單向預(yù)測(cè)的預(yù)測(cè)編碼塊的預(yù)測(cè)類型。在雙向預(yù)測(cè)的情形中,預(yù)測(cè)編碼塊的報(bào)頭應(yīng)當(dāng)包括關(guān)于兩個(gè)參考圖畫的信息和用于雙向預(yù)測(cè)的運(yùn)動(dòng)矢量信息以及用于雙向預(yù)測(cè)的塊的預(yù)測(cè)類型。運(yùn)動(dòng)矢量信息可以包括表示殘余運(yùn)動(dòng)矢量和運(yùn)動(dòng)矢量預(yù)測(cè)器的信息。圖1示出了層次劃分結(jié)構(gòu),表示根據(jù)本發(fā)明示范性實(shí)施例用于64×64大小的SMB的允許預(yù)測(cè)編碼塊。在將SMB用作編碼單元時(shí),優(yōu)選具有如圖1所示的四個(gè)子塊劃分步驟,但塊的劃分不限于四個(gè)子塊劃分步驟。在有四個(gè)子塊劃分步驟時(shí),可以定義總共13個(gè)預(yù)測(cè)性塊類型(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ù)測(cè)編碼塊,可能沒(méi)有要傳送的數(shù)據(jù)。于是,優(yōu)選在預(yù)測(cè)編碼塊的大小為64×64時(shí)新增加MB64_SKIP模式,在預(yù)測(cè)編碼塊的大小為32×32時(shí),增加MB32_SKIP模式。為了向解碼器傳送模式信息,可以使用MB64_SKIP_flag或MB32_SKIP_flag。在這些標(biāo)志(flag)的值是1時(shí),沒(méi)有對(duì)應(yīng)預(yù)測(cè)編碼塊的傳送數(shù)據(jù)。同時(shí),在多個(gè)連續(xù)SMB未編碼時(shí),可以僅在第一個(gè)SMB中插入MB64_SKIP_flag,可以在后續(xù)SMB中省略。在這種情況下,可以向切片或第一個(gè)SMB添加連續(xù)跳過(guò)的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ù)測(cè)編碼塊。在幀間預(yù)測(cè)模式中,編碼單元的預(yù)測(cè)類型(Mb32_type)可以在預(yù)測(cè)類型為0時(shí)表示32×32分割,在預(yù)測(cè)類型為1時(shí)表示32×16分割,在預(yù)測(cè)類型為2時(shí)表示16×32分割,在預(yù)測(cè)類型為3時(shí)表示16×16分割。在將編碼單元?jiǎng)澐殖伤膫€(gè)子編碼單元時(shí),對(duì)所述四個(gè)子編碼單元進(jìn)行編碼并按照光柵掃描次序傳送。在這種情況下,可以針對(duì)每個(gè)編碼單元傳送量化參數(shù),并且在將同一量化參數(shù)應(yīng)用于所有子編碼單元時(shí),可以僅在超級(jí)編碼單元的報(bào)頭中傳送一次。不過(guò),當(dāng)需要在子編碼單元中改變量化參數(shù)時(shí),可以僅傳送與上層編碼單元或同一層級(jí)的前面編碼單元的量化參數(shù)不同的值??梢岳盟牟鏄?shù)方法劃分每個(gè)子編碼單元,也可以利用四叉樹(shù)方法傳送經(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í),編碼器判斷是否能夠跳過(guò)64×64塊,并在能夠跳過(guò)64×64塊時(shí)將跳過(guò)(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塊中沒(méi)有要進(jìn)行編碼的數(shù)據(jù)時(shí),將SKIP模式確定為32×32塊模式,將mb32_skip_flag傳送到解碼器。不過(guò),當(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塊中沒(méi)有要進(jìn)行編碼的數(shù)據(jù)時(shí),將SKIP模式確定為16×16塊模式,并且將mb16_skip_flag傳送到解碼器。另一方面,當(dāng)在對(duì)應(yīng)的16×16塊中有要...