两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

視頻幀壓縮方法及裝置與流程

文檔序號:11844761閱讀:263來源:國知局
視頻幀壓縮方法及裝置與流程

本發(fā)明涉及視頻編碼技術(shù)領(lǐng)域,尤其涉及一種視頻幀壓縮方法及裝置。



背景技術(shù):

現(xiàn)有技術(shù)中,在視頻編解碼過程中需要頻繁地讀取內(nèi)存中的圖像數(shù)據(jù),這一過程需要占用大量的系統(tǒng)帶寬和資源,為了節(jié)省系統(tǒng)帶寬及資源,通常是先利用預(yù)測編碼技術(shù)對待存儲的圖像數(shù)據(jù)進行壓縮,并將壓縮后的圖像數(shù)據(jù)存儲到內(nèi)存中,以便于后續(xù)的使用。

例如,可以利用DPCM(Differential Pulse Code Modulation,差分脈沖編碼調(diào)制)技術(shù)對圖像數(shù)據(jù)進行壓縮,具體為:對于圖像數(shù)據(jù)的像素數(shù)據(jù)塊,首先根據(jù)圖像的空間相關(guān)性,通過周邊位置的像素值對當(dāng)前位置的像素值進行預(yù)測,其中周邊位置的像素值稱為預(yù)測值,當(dāng)前位置的實際像素值與預(yù)測值之間的差值稱為殘差值,然后,采用變長編碼方式對得到的殘差數(shù)據(jù)進行編碼,從而實現(xiàn)對圖像數(shù)據(jù)的壓縮。變長編碼方式是指將數(shù)據(jù)進行分組,并根據(jù)分組中數(shù)據(jù)的大小選用特定長度的bit來表示信息,其中,變長編碼方式包括有符號變長編碼和無符號變長編碼,即對于[-2N,2N-1]之間的有符號數(shù)據(jù)可以用N+1bit來表示,對于[0,2N-1]之間的無符號數(shù)據(jù)可以用N bit來表示。

在實現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下技術(shù)問題:

上述圖像數(shù)據(jù)的壓縮方式是采用固定的預(yù)設(shè)模板對當(dāng)前位置的像素值進行預(yù)測(例如,規(guī)定以左邊的像素值作為當(dāng)前位置像素值的預(yù)測值),但是由于數(shù)據(jù)是隨機的,所以任何預(yù)設(shè)模板都難以很好地匹配所有的情況,可見上述圖像像素值預(yù)測方式的精確性不高,進而會導(dǎo)致殘差數(shù)據(jù)的均值偏離或產(chǎn)生絕對值過大的殘差數(shù)據(jù),即得到的殘差數(shù)據(jù)中的相鄰的像素數(shù)據(jù)間仍存在較強的相關(guān)性,從而限制了圖像數(shù)據(jù)壓縮率的提高。



技術(shù)實現(xiàn)要素:

本發(fā)明提供一種視頻幀壓縮方法及裝置,其能夠為視頻幀中的像素提供更 精確的預(yù)測值,以減小現(xiàn)有壓縮方式中殘差值的絕對值,從而進一步提高視頻幀的壓縮率。

一方面,本發(fā)明提供一種視頻幀壓縮方法,所述方法包括:

對視頻幀進行區(qū)域劃分;

根據(jù)當(dāng)前像素所屬的區(qū)域,確定所述當(dāng)前像素所對應(yīng)的至少一種預(yù)測方式;

根據(jù)所述至少一種預(yù)測方式,確定所述當(dāng)前像素所對應(yīng)的最佳預(yù)測值;

將所述當(dāng)前像素的像素值與所述最佳預(yù)測值進行作差,得到所述當(dāng)前像素對應(yīng)的殘差值,并對所述殘差值進行壓縮處理。

另一方面,本發(fā)明提供一種視頻幀壓縮裝置,所述裝置包括劃分模塊、第一確定模塊、第二確定模塊、預(yù)測模塊以及壓縮模塊,其中,

所述劃分模塊,用于對視頻幀進行區(qū)域劃分;

所述第一確定模塊,用于根據(jù)當(dāng)前像素所屬的區(qū)域,確定所述當(dāng)前像素所對應(yīng)的至少一種預(yù)測方式;

所述第二確定模塊,用于根據(jù)所述至少一種預(yù)測方式,確定所述當(dāng)前像素所對應(yīng)的最佳預(yù)測值;

所述預(yù)測模塊,用于將所述當(dāng)前像素的像素值與所述最佳預(yù)測值進行作差,得到所述當(dāng)前像素對應(yīng)的殘差值;

所述壓縮模塊,用于對所述殘差值進行壓縮處理。

本發(fā)明提供的具有自適應(yīng)特性的視頻幀壓縮方法及裝置,對視頻幀進行區(qū)域劃分;根據(jù)當(dāng)前像素所屬的區(qū)域,確定所述當(dāng)前像素所對應(yīng)的至少一種預(yù)測方式;根據(jù)所述至少一種預(yù)測方式,確定所述當(dāng)前像素所對應(yīng)的最佳預(yù)測值;將所述當(dāng)前像素的像素值與所述最佳預(yù)測值進行作差,得到所述當(dāng)前像素對應(yīng)的殘差值,并對所述殘差值進行壓縮處理。與現(xiàn)有技術(shù)相比,其能夠為所述視頻幀中的像素提供更精確的預(yù)測值,以減小現(xiàn)有壓縮方式中殘差值的絕對值,從而進一步提高視頻幀的壓縮率。

附圖說明

為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明 的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其它的附圖。

圖1為本發(fā)明視頻幀壓縮方法一實施例的流程示意圖;

圖2為本發(fā)明視頻幀壓縮方法另一實施例的流程示意圖;

圖3為以4×4大小的視頻幀為例,闡述上述實施例中所述視頻幀的區(qū)域劃分示意圖;

圖4為本發(fā)明視頻幀壓縮裝置一實施例的結(jié)構(gòu)示意圖;

圖5為本發(fā)明視頻幀壓縮裝置另一實施例的結(jié)構(gòu)示意圖。

具體實施方式

下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本發(fā)明保護的范圍。

如圖1所示,本發(fā)明實施例提供一種視頻幀壓縮方法,所述方法包括:

S11、對視頻幀進行區(qū)域劃分。

S12、根據(jù)當(dāng)前像素所屬的區(qū)域,確定所述當(dāng)前像素所對應(yīng)的至少一種預(yù)測方式。

S13、根據(jù)所述至少一種預(yù)測方式,確定所述當(dāng)前像素所對應(yīng)的最佳預(yù)測值。

S14、將所述當(dāng)前像素的像素值與所述最佳預(yù)測值進行作差,得到所述當(dāng)前像素對應(yīng)的殘差值,并對所述殘差值進行壓縮處理。

本發(fā)明實施例提供的視頻幀壓縮方法,對視頻幀進行區(qū)域劃分;根據(jù)當(dāng)前像素所屬的區(qū)域,確定所述當(dāng)前像素所對應(yīng)的至少一種預(yù)測方式;根據(jù)所述至少一種預(yù)測方式,確定所述當(dāng)前像素所對應(yīng)的最佳預(yù)測值;將所述當(dāng)前像素的像素值與所述最佳預(yù)測值進行作差,得到所述當(dāng)前像素對應(yīng)的殘差值,并對所述殘差值進行壓縮處理。與現(xiàn)有技術(shù)相比,其能夠為所述視頻幀中的像素提供更精確的預(yù)測值,以減小現(xiàn)有壓縮方式中殘差值的絕對值,從而進一步提高視頻幀的壓縮率。

如圖2所示,本發(fā)明實施例提供一種視頻幀壓縮方法,所述方法包括:

S21、對視頻幀進行區(qū)域劃分;

區(qū)域劃分的具體方法為:根據(jù)所述視頻幀的各個像素是否具有左相鄰像素和/或上相鄰像素,將所述視頻幀劃分為第一區(qū)域、第二區(qū)域、第三區(qū)域和第四區(qū)域。

這里,以4×4大小的視頻幀為例,具體的劃分方式如圖3所示,由圖3可知,所述第一區(qū)域B1內(nèi)的像素不具有左相鄰像素和上相鄰像素,所述第二區(qū)域B2內(nèi)的像素不具有左相鄰像素,所述第三區(qū)域B3內(nèi)的像素不具有上相鄰像素,所述第四區(qū)域B4內(nèi)的像素具有左相鄰像素和上相鄰像素。

S22、確定當(dāng)前像素的至少一個預(yù)測方式;

具體地,根據(jù)當(dāng)前像素所屬的區(qū)域,確定所述當(dāng)前像素所對應(yīng)的至少一種預(yù)測方式。

例如,當(dāng)所述視頻幀由M×N個像素構(gòu)成,所述像素的像素值為A[i][j](i和j分別表示列和行,且i=0、1、…、M-1,j=0、1、…、N-1)時,

若所述當(dāng)前像素屬于所述第一區(qū)域,則對所述當(dāng)前像素不進行預(yù)測,并保留所述當(dāng)前像素的像素值A(chǔ)[0][0];

若所述當(dāng)前像素屬于所述第二區(qū)域且所述當(dāng)前像素與所述第一區(qū)域內(nèi)的像素相鄰,則確定所述當(dāng)前像素具有一種預(yù)測方式,所述預(yù)測方式對應(yīng)的預(yù)測值為A[0][0];

若所述當(dāng)前像素屬于所述第二區(qū)域且所述當(dāng)前像素與所述第一區(qū)域內(nèi)的像素不相鄰,則確定所述當(dāng)前像素具有兩種預(yù)測方式,所述兩種預(yù)測方式對應(yīng)的預(yù)測值分別為A[0][j-1]和2*A[0][j-1]-A[0][j-2];

若所述當(dāng)前像素屬于所述第三區(qū)域且所述當(dāng)前像素與所述第一區(qū)域內(nèi)的像素相鄰,則確定所述當(dāng)前像素具有兩種預(yù)測方式,所述兩種預(yù)測方式對應(yīng)的預(yù)測值分別為A[0][0]和A[0][1];

若所述當(dāng)前像素屬于所述第三區(qū)域且所述當(dāng)前像素與所述第一區(qū)域內(nèi)的像素不相鄰,則確定所述當(dāng)前像素具有三種預(yù)測方式,所述三種預(yù)測方式對應(yīng)的預(yù)測值分別為A[i-1][0]、A[i-1][1]和2*A[i-1][0]-A[i-2][0];

若所述當(dāng)前像素屬于所述第四區(qū)域,則確定所述當(dāng)前像素具有三種預(yù)測方 式,所述三種預(yù)測方式對應(yīng)的預(yù)測值分別為A[i-1][j]、A[i][j-1]和(A[i-1][j]+A[i][j-1]+1)/2。

上述列舉了設(shè)置多種預(yù)測方式的一種情況,但是為當(dāng)前像素提供多種預(yù)測方式的方法不僅僅限于此。

S23、得到當(dāng)前像素的至少一個預(yù)測值;

具體地,根據(jù)所述至少一種預(yù)測方式,得到所述當(dāng)前像素對應(yīng)的至少一個預(yù)測值。

S24、確定當(dāng)前像素的最佳預(yù)測值;

具體地,將所述當(dāng)前像素的像素值分別與所述至少一個預(yù)測值進行比較,以確定所述當(dāng)前像素所對應(yīng)的最佳預(yù)測值,其中,所述最佳預(yù)測值為所述至少一個預(yù)測值中與所述當(dāng)前像素的像素值最接近的一個預(yù)測值。

S25、得到當(dāng)前像素的殘差值;

具體地,將所述當(dāng)前像素的像素值與所述最佳預(yù)測值進行作差,得到所述當(dāng)前像素對應(yīng)的殘差值。

S26、對所述殘差值進行壓縮處理。

具體地,所述對所述殘差值進行壓縮處理為對所述第一區(qū)域內(nèi)像素的像素值以及所述第一區(qū)域以外的各個像素對應(yīng)的殘差值進行變長壓縮編碼。

其中,變長壓縮編碼是指將待進行壓縮編碼數(shù)據(jù)進行分組,并根據(jù)分組中數(shù)據(jù)的大小選用特定長度的bit來表示信息,其中,所述變長壓縮編碼包括有符號變長壓縮編碼和無符號變長壓縮編碼,即對于[-2N,2N-1]之間的有符號數(shù)據(jù)可以用N+1bit來表示,對于[0,2N-1]之間的無符號數(shù)據(jù)可以用N bit來表示。

較佳地,在步驟S25與步驟S26之間還可包括步驟:標(biāo)記當(dāng)前像素的實際預(yù)測方式;

具體地,按照以下標(biāo)記方式對所述當(dāng)前像素的實際預(yù)測方式進行標(biāo)記:

若所述當(dāng)前像素有一種預(yù)測方式,則不標(biāo)記所述當(dāng)前像素的實際預(yù)測方式;

若所述當(dāng)前像素有兩種預(yù)測方式,則使用1個比特標(biāo)記所述當(dāng)前像素的實際預(yù)測方式;

若所述當(dāng)前像素有三種預(yù)測方式,則使用1或2個比特標(biāo)記所述當(dāng)前像素 的實際預(yù)測方式,其中,當(dāng)所述當(dāng)前像素的實際預(yù)測方式與其左相鄰像素的實際預(yù)測方式相同時使用1個比特標(biāo)記所述當(dāng)前像素的實際預(yù)測方式;當(dāng)所述當(dāng)前像素的實際預(yù)測方式與其左相鄰像素的實際預(yù)測方式不相同時使用2個比特標(biāo)記所述當(dāng)前像素的實際預(yù)測方式。

由此可見,與現(xiàn)有技術(shù)相比,由于在對所述當(dāng)前像素的實際預(yù)測方式進行標(biāo)記時,采用的是自適應(yīng)的標(biāo)記方式,即當(dāng)所述當(dāng)前像素的實際預(yù)測方式與其左相鄰像素的實際預(yù)測方式相同時僅使用1個比特標(biāo)記所述當(dāng)前像素的實際預(yù)測方式,以實現(xiàn)使用盡量少的比特來標(biāo)記預(yù)測方式,從而進一步提高視頻幀的壓縮率。

但是,對所述當(dāng)前像素的實際預(yù)測方式進行標(biāo)記的方式不僅僅限于此。

其中,所述視頻幀的各個像素按照自左向右、自上而下地順序進行預(yù)測。

下面將以4×4大小的視頻幀為例,闡述上述視頻幀壓縮方法。

如圖3所示,為所述4×4大小的視頻幀的分區(qū)示意圖,其中所述視頻幀的各個像素及其像素值為Aij和A[i][j](i為列坐標(biāo),取值為0、1、2、3,j為行坐標(biāo),取值為0、1、2、3),根據(jù)所述各個像素的相鄰像素情況,即是否具有左相鄰像素或上相鄰像素,將所述視頻幀劃分為第一區(qū)域B1、第二區(qū)域B2、第三區(qū)域B3和第四區(qū)域B4。

1)所述第一區(qū)域B1內(nèi)的像素A00

由于所述第一區(qū)域B1內(nèi)的像素A00不具有左相鄰像素和上相鄰像素,故對于所述像素A00不進行預(yù)測,而是直接保留其原像素值A(chǔ)[0][0]。

2)所述第二區(qū)域B2內(nèi)的像素A01、A02和A03

像素A01具有一種預(yù)測方式,所述像素A01采用所述預(yù)測方式得到的預(yù)測值為A[0][0],此時,由于只具有一種預(yù)測方式,所以不需要額外的比特對像素A01的實際預(yù)測方式進行標(biāo)記;

像素A02具有兩種預(yù)測方式,所述像素A02采用所述兩種預(yù)測方式得到的兩個預(yù)測值分別為A[0][1]和2*A[0][1]-A[0][0],并將所述像素A02的像素值A(chǔ)[0][2]分別與上述兩個預(yù)測值進行比較,并將與A[0][2]最接近的一個預(yù)測值作為最佳預(yù)測值,而且使用1個比特標(biāo)記所述像素A02的實際預(yù)測方式,例如,可以使用 1B表示確定A[0][1]作為A02最佳預(yù)測值,0B表示確定2*A[0][1]-A[0][0]作為A02的最佳預(yù)測值;

像素A03具有兩種預(yù)測方式,所述像素A03采用所述兩種預(yù)測方式得到的兩個預(yù)測值分別為A[0][2]和2*A[0][2]-A[0][1],并將所述像素A03的像素值A(chǔ)[0][3]分別與上述兩個預(yù)測值進行比較,并將與A[0][3]最接近的一個預(yù)測值作為最佳預(yù)測值,而且使用1個比特標(biāo)記所述像素A03的實際預(yù)測方式,例如,可以使用1B表示確定A[0][2]作為A03的最佳預(yù)測值,0B表示確定2*A[0][2]-A[0][1]作為A03的最佳預(yù)測值。

3)所述第三區(qū)域B3內(nèi)的像素A10、A20和A30

像素A10具有兩種預(yù)測方式,所述像素A10采用所述兩種預(yù)測方式得到的兩個預(yù)測值分別為A[0][0]和A[0][1],并將所述像素A10的像素值A(chǔ)[1][0]分別與上述兩個預(yù)測值進行比較,并將與A[1][0]最接近的一個預(yù)測值作為最佳預(yù)測值,而且使用1個比特標(biāo)記所述像素A10的實際預(yù)測方式,例如,可以使用1B表示確定A[0][0]作為A10最佳預(yù)測值,0B表示確定A[0][1]作為A10的最佳預(yù)測值;

像素A20具有三種預(yù)測方式,所述像素A20采用所述三種預(yù)測方式得到的三個預(yù)測值分別為A[1][0]、A[1][1]和2*A[1][0]-A[0][0],并將所述像素A20的像素值A(chǔ)[2][0]分別與上述三個預(yù)測值進行比較,并將與A[2][0]最接近的一個預(yù)測值作為最佳預(yù)測值,由于A20具有三種預(yù)測方式,當(dāng)采用二進制來標(biāo)記上述三種預(yù)測方式時,很容易想到可以使用2個比特來標(biāo)記A20的實際預(yù)測方式,為了進一步提供視頻幀的壓縮率,這里還提供了另一種標(biāo)記方式,即自適應(yīng)的標(biāo)記方式:可以使用1個或2個比特標(biāo)記A20的實際預(yù)測方式,具體地,當(dāng)所述當(dāng)前像素的實際預(yù)測方式與其左相鄰像素的實際預(yù)測方式相同時使用1個比特標(biāo)記所述當(dāng)前像素值的實際預(yù)測方式;當(dāng)所述當(dāng)前像素的實際預(yù)測方式與其左相鄰像素的實際預(yù)測方式不相同時使用2個比特標(biāo)記所述當(dāng)前像素的實際預(yù)測方式。

例如,假設(shè)11B表示采用左相鄰像素值作為當(dāng)前像素的最佳預(yù)測值,10B表示采用左下相鄰像素值作為當(dāng)前像素的最佳預(yù)測值。

情形一、像素A10采用其左相鄰像素值A(chǔ)[0][0]作為最佳預(yù)測值:

若像素A20采用其左相鄰像素值A(chǔ)[1][0]作為最佳預(yù)測值,根據(jù)上述假設(shè)是 應(yīng)該使用11B表示確定A[1][0]作為像素A20的最佳預(yù)測值,這里注意到A20的實際預(yù)測方式與其左相鄰像素A10的實際預(yù)測方式相同,即均是采用左相鄰像素值作為當(dāng)前像素的最佳預(yù)測值,這里可以使用0B代替11B來表示確定A[1][0]作為像素A20的最佳預(yù)測值;

若像素A20采用其左下相鄰像素值A(chǔ)[1][1]作為最佳預(yù)測值,根據(jù)上述假設(shè)是應(yīng)該使用10B表示確定A[1][1]作為像素A20的最佳預(yù)測值;

若像素A20采用2*A[1][0]-A[0][0]作為最佳預(yù)測值,由于已經(jīng)采用0B來表示確定A[1][0]作為像素A20的最佳預(yù)測值,即11B未被占用,因而可以使用11B表示確定2*A[1][0]-A[0][0]作為像素A20的最佳預(yù)測值。

情形二、像素A10采用其左下相鄰像素值A(chǔ)[0][1]作為最佳預(yù)測值:

若像素A20采用其左相鄰像素值A(chǔ)[1][0]作為最佳預(yù)測值,根據(jù)上述假設(shè)是應(yīng)該使用11B表示確定A[1][0]作為像素A20的最佳預(yù)測值;

若像素A20采用其左下相鄰像素值A(chǔ)[1][1]作為最佳預(yù)測值,根據(jù)上述假設(shè)是應(yīng)該采用10B表示確定A[1][1]作為像素A20的最佳預(yù)測值,這里注意到A20的實際預(yù)測方式與其左相鄰像素A10的實際預(yù)測方式相同,即均是采用左下相鄰像素值作為當(dāng)前像素的最佳預(yù)測值,這里可以使用0B代替10B來表示確定A[1][1]作為像素A20的最佳預(yù)測值;

若像素A20采用2*A[1][0]-A[0][0]作為最佳預(yù)測值,由于已經(jīng)采用0B來表示確定A[1][1]作為像素A20的最佳預(yù)測值,即10B未被占用,因而可以使用10B表示確定2*A[1][0]-A[0][0]作為像素A20的最佳預(yù)測值。

類似地,所述像素A30具有三種預(yù)測方式,所述像素A30采用所述三種預(yù)測方式得到的三個預(yù)測值分別為A[2][0]、A[2][1]和2*A[2][0]-A[1][0],并將所述像素A30的像素值A(chǔ)[3][0]分別與上述三個預(yù)測值進行比較,并將與A[3][0]最接近的一個預(yù)測值作為最佳預(yù)測值。

例如,假設(shè)11B表示采用左相鄰像素值作為當(dāng)前像素的最佳預(yù)測值,10B表示采用左下相鄰像素值作為當(dāng)前像素的最佳預(yù)測值。

情形一、像素A20采用其左相鄰像素值A(chǔ)[1][0]作為最佳預(yù)測值:

若像素A30采用其左相鄰像素值A(chǔ)[2][0]作為最佳預(yù)測值,根據(jù)上述假設(shè)是 應(yīng)該使用11B表示確定A[2][0]作為像素A30的最佳預(yù)測值,這里注意到A30的實際預(yù)測方式與其左相鄰像素A20的實際預(yù)測方式相同,即均是采用左相鄰像素值作為當(dāng)前像素的最佳預(yù)測值,這里可以使用0B代替11B來表示確定A[2][0]作為像素A30的最佳預(yù)測值;

若像素A30采用其左下相鄰像素值A(chǔ)[2][1]作為最佳預(yù)測值,根據(jù)上述假設(shè)是應(yīng)該使用10B表示確定A[2][1]作為像素A30的最佳預(yù)測值;

若像素A30采用2*A[2][0]-A[1][0]作為最佳預(yù)測值,由于已經(jīng)采用0B來表示確定A[2][0]作為像素A30的最佳預(yù)測值,即11B未被占用,因而可以使用11B表示確定2*A[2][0]-A[1][0]作為像素A30的最佳預(yù)測值。

情形二、像素A20采用其左下相鄰像素值A(chǔ)[1][1]作為最佳預(yù)測值:

若像素A30采用其左相鄰像素值A(chǔ)[2][0]作為最佳預(yù)測值,根據(jù)上述假設(shè)是應(yīng)該使用11B表示確定A[2][0]作為像素A30的最佳預(yù)測值;

若像素A30采用其左下相鄰像素值A(chǔ)[2][1]作為最佳預(yù)測值,根據(jù)上述假設(shè)是應(yīng)該使用10B表示確定A[2][1]作為像素A30最佳預(yù)測值,這里注意到A30的實際預(yù)測方式與其左相鄰像素A20的實際預(yù)測方式相同,即均是采用左下相鄰像素值作為當(dāng)前像素的最佳預(yù)測值,這里可以使用0B代替10B來表示確定A[2][1]作為像素A30的最佳預(yù)測值;

若像素A30采用2*A[2][0]-A[1][0]作為最佳預(yù)測值,由于已經(jīng)采用0B來表示確定A[2][1]作為像素A30最佳預(yù)測值,即10B未被占用,因而可以使用10B表示確定2*A[2][0]-A[1][0]作為像素A30的最佳預(yù)測值。

情形三、像素A20采用2*A[1][0]-A[0][0]作為最佳預(yù)測值:

若像素A30采用其左相鄰像素值A(chǔ)[3][0]作為最佳預(yù)測值,根據(jù)上述假設(shè)是應(yīng)該使用11B表示確定A[2][0]作為像素A30的最佳預(yù)測值;

若像素A30采用其左下相鄰像素值A(chǔ)[2][1]作為最佳預(yù)測值,根據(jù)上述假設(shè)是應(yīng)該10B表示確定A[2][1]作為像素A30的最佳預(yù)測值;

若像素A30采用2*A[2][0]-A[1][0]作為最佳預(yù)測值,這里注意到A30的實際預(yù)測方式與其左相鄰像素A20的實際預(yù)測方式相同,因而可以采用0B來表示確定2*A[2][0]-A[1][0]作為像素A30的最佳預(yù)測值。

4)所述第四區(qū)域B4內(nèi)的像素A11和A21

對于所述第四區(qū)域B4內(nèi)的像素值,其中各個像素均具有左相鄰像素值且具有上相鄰像素值,這里以像素A11和A21為例進行說明。

像素A11具有三種預(yù)測方式,所述像素A11采用所述三種預(yù)測方式得到的三個預(yù)測值分別為A[0][1]、A[1][0]和(A[0][1]+A[1][0]+1)/2,并將所述像素A11的像素值A(chǔ)[1][1]分別與上述三個預(yù)測值進行比較,并將與A[1][1]最接近的一個預(yù)測值作為最佳預(yù)測值。

例如,假設(shè)11B表示采用左相鄰像素值作為當(dāng)前像素的最佳預(yù)測值,10B表示采用上相鄰像素值作為當(dāng)前像素的最佳預(yù)測值。

考慮到像素A01只能采用A[0][0]作為最佳像素值。

若像素A11采用其左相鄰像素值A(chǔ)[0][1]作為最佳預(yù)測值,根據(jù)上述假設(shè)是應(yīng)該使用11B表示確定A[0][1]作為像素A11的最佳預(yù)測值;

若像素A11采用其上相鄰像素值A(chǔ)[1][0]作為最佳預(yù)測值,根據(jù)上述假設(shè)是應(yīng)該使用10B表示確定A[1][0]作為像素A11的最佳預(yù)測值,這里注意到A11的實際預(yù)測方式與其左相鄰像素A01的實際預(yù)測方式相同,即均是采用上相鄰像素值作為當(dāng)前像素的最佳預(yù)測值,這里可以使用0B代替10B來表示確定A[1][0]作為像素A11的最佳預(yù)測值;

若像素A11采用(A[0][1]+A[1][0]+1)/2作為最佳預(yù)測值,由于已經(jīng)采用0B來表示確定A[1][0]作為像素A11的最佳預(yù)測值,即10B未被占用,因而可以使用10B表示確定(A[0][1]+A[1][0]+1)/2作為像素A11的最佳預(yù)測值。

像素A21具有三種預(yù)測方式,所述像素A21采用所述三種預(yù)測方式得到的三個預(yù)測值分別為A[1][1]、A[2][0]和(A[1][1]+A[2][0]+1)/2,并將所述像素A21的像素值A(chǔ)[2][1]分別與上述三個預(yù)測值進行比較,并將與A[2][1]最接近的一個預(yù)測值作為最佳預(yù)測值。

例如,假設(shè)11B表示采用左相鄰像素值作為當(dāng)前像素的最佳預(yù)測值,10B表示采用上相鄰像素值作為當(dāng)前像素的最佳預(yù)測值。

情形一、像素A11采用其左相鄰像素值A(chǔ)[0][1]作為最佳預(yù)測值:

若像素A21采用其左相鄰像素值A(chǔ)[1][1]作為最佳預(yù)測值,根據(jù)上述假設(shè)是 應(yīng)該11B表示確定A[1][1]作為像素A21的最佳預(yù)測值,這里注意到A21的實際預(yù)測方式與其左相鄰像素A11的實際預(yù)測方式相同,即均是采用左相鄰像素值作為當(dāng)前像素的最佳預(yù)測值,這里可以使用0B代替11B來表示確定A[1][1]作為像素A21的最佳預(yù)測值;

若像素A21采用其上相鄰像素值A(chǔ)[2][0]作為最佳預(yù)測值,根據(jù)上述假設(shè)是應(yīng)該使用10B表示確定A[2][0]作為像素A21的最佳預(yù)測值;

若像素A21采用(A[1][1]+A[2][0]+1)/2作為最佳預(yù)測值,由于已經(jīng)采用0B來表示確定A[1][1]作為像素A21的最佳預(yù)測值,即11B未被占用,因而可以使用11B表示確定(A[0][1]+A[1][0]+1)/2作為像素A21的最佳預(yù)測值。

情形二、像素A11采用其上相鄰像素值A(chǔ)[1][0]作為最佳預(yù)測值:

若像素A21采用其左相鄰像素值A(chǔ)[1][1]作為最佳預(yù)測值,根據(jù)上述假設(shè)是應(yīng)該11B表示確定A[1][1]作為像素A21的最佳預(yù)測值;

若像素A21采用其上相鄰像素值A(chǔ)[2][0]作為最佳預(yù)測值,根據(jù)上述假設(shè)是應(yīng)該使用10B表示確定A[2][0]作為像素A21的最佳預(yù)測值,這里注意到A21的實際預(yù)測方式與其左相鄰像素A11的實際預(yù)測方式相同,即均是采用上相鄰像素值作為當(dāng)前像素的最佳預(yù)測值,這里可以使用0B代替10B來表示確定A[2][0]作為像素A21的最佳預(yù)測值;

若像素A21采用(A[1][1]+A[2][0]+1)/2作為最佳預(yù)測值,由于已經(jīng)采用0B來表示確定A[2][0]作為像素A21的最佳預(yù)測值,即10B未被占用,因而可以使用10B表示確定(A[1][1]+A[2][0]+1)/2作為像素A21的最佳預(yù)測值。

情形三、像素A11采用(A[0][1]+A[1][0]+1)/2作為最佳預(yù)測值:

若像素A21采用其左相鄰像素值A(chǔ)[1][1]作為最佳預(yù)測值,根據(jù)上述假設(shè)是應(yīng)該使用11B表示確定A[1][1]作為像素A21的最佳預(yù)測值;

若像素A21采用其上相鄰像素值A(chǔ)[2][0]作為最佳預(yù)測值,根據(jù)上述假設(shè)是應(yīng)該使用10B表示確定A[2][0]作為像素A21的最佳預(yù)測值;

若像素A21采用(A[1][1]+A[2][0]+1)/2作為最佳預(yù)測值,這里注意到A21的實際預(yù)測方式與其左相鄰像素A11的實際預(yù)測方式相同,因而可以采用0B來表示確定(A[1][1]+A[2][0]+1)/2作為像素A21的最佳預(yù)測值。

同理,得到所述第四區(qū)域B4的其他像素的最佳預(yù)測值。

進而獲得所述第一區(qū)域B1以外的其他像素對應(yīng)的殘差值,并對所述像素A00和其他像素對應(yīng)的殘差值進行變長壓縮編碼。

本發(fā)明實施例提供的視頻幀壓縮方法,與現(xiàn)有技術(shù)相比,一方面,其能夠為所述視頻幀中的像素提供更精確的預(yù)測值,以減小現(xiàn)有壓縮方式中殘差值的絕對值,從而進一步提高視頻幀的壓縮率;另一方面,由于在對所述當(dāng)前像素的實際預(yù)測方式進行標(biāo)記時,采用的是自適應(yīng)的標(biāo)記方式,即當(dāng)所述當(dāng)前像素值的實際預(yù)測方式與其左相鄰像素的實際預(yù)測方式相同時僅使用1個比特標(biāo)記所述當(dāng)前像素的實際預(yù)測方式,以實現(xiàn)使用盡量少的比特來標(biāo)記預(yù)測方式,從而進一步提高視頻幀的壓縮率。

如圖4所示,本發(fā)明實施例提供一種視頻幀壓縮裝置,所述裝置包括所述裝置包括劃分模塊41、第一確定模塊42、第二確定模塊43、預(yù)測模塊44以及壓縮模塊45,其中,

所述劃分模塊41,用于對視頻幀進行區(qū)域劃分;

具體地,所述劃分模塊41,用于根據(jù)所述視頻幀的各個像素是否具有左相鄰像素或上相鄰像素,將所述視頻幀劃分為第一區(qū)域、第二區(qū)域、第三區(qū)域和第四區(qū)域。

所述第一確定模塊42,用于根據(jù)當(dāng)前像素所屬的區(qū)域,確定所述當(dāng)前像素所對應(yīng)的至少一種預(yù)測方式;

具體地,當(dāng)所述視頻幀由M×N個像素構(gòu)成,所述像素的像素值為A[i][j](i和j分別表示列和行,且i=0、1、…、M-1,j=0、1、…、N-1)時,所述第一確定模塊,用于當(dāng)所述當(dāng)前像素屬于所述第一區(qū)域時,對所述當(dāng)前像素不進行預(yù)測,并保留所述當(dāng)前像素的像素值A(chǔ)[0][0];

當(dāng)所述當(dāng)前像素屬于所述第二區(qū)域且所述當(dāng)前像素與所述第一區(qū)域內(nèi)的像素相鄰時,確定所述當(dāng)前像素具有一種預(yù)測方式,所述預(yù)測方式對應(yīng)的預(yù)測值為A[0][0];

當(dāng)所述當(dāng)前像素屬于所述第二區(qū)域且所述當(dāng)前像素與所述第一區(qū)域內(nèi)的像素不相鄰時,確定所述當(dāng)前像素具有兩種預(yù)測方式,所述兩種預(yù)測方式對應(yīng)的 預(yù)測值分別為A[0][j-1]和2*A[0][j-1]-A[0][j-2];

當(dāng)所述當(dāng)前像素屬于所述第三區(qū)域且所述當(dāng)前像素與所述第一區(qū)域內(nèi)的像素相鄰時,確定所述當(dāng)前像素具有兩種預(yù)測方式,所述兩種預(yù)測方式對應(yīng)的預(yù)測值分別為A[0][0]和A[0][1];

當(dāng)所述當(dāng)前像素屬于所述第三區(qū)域且所述當(dāng)前像素與所述第一區(qū)域內(nèi)的像素不相鄰時,確定所述當(dāng)前像素具有三種預(yù)測方式,所述三種預(yù)測方式對應(yīng)的預(yù)測值分別為A[i-1][0]、A[i-1][1]和2*A[i-1][0]-A[i-2][0];

當(dāng)所述當(dāng)前像素屬于所述第四區(qū)域時,確定所述當(dāng)前像素具有三種預(yù)測方式,所述三種預(yù)測方式對應(yīng)的預(yù)測值分別為A[i-1][j]、A[i][j-1]和(A[i-1][j]+A[i][j-1]+1)/2。

所述第二確定模塊43,用于根據(jù)所述至少一種預(yù)測方式,確定所述當(dāng)前像素所對應(yīng)的最佳預(yù)測值;

所述預(yù)測模塊44,用于將所述當(dāng)前像素的像素值與所述最佳預(yù)測值進行作差,得到所述當(dāng)前像素對應(yīng)的殘差值;

所述壓縮模塊45,用于對所述殘差值進行壓縮處理。

具體地,所述壓縮模塊45,用于對所述第一區(qū)域內(nèi)像素的像素值以及所述第一區(qū)域以外的各個像素對應(yīng)的殘差值進行變長壓縮編碼。

其中,變長壓縮編碼是指將待進行壓縮編碼數(shù)據(jù)進行分組,并根據(jù)分組中數(shù)據(jù)的大小選用特定長度的bit來表示信息,其中,所述變長壓縮編碼包括有符號變長壓縮編碼和無符號變長壓縮編碼,即對于[-2N,2N-1]之間的有符號數(shù)據(jù)可以用N+1bit來表示,對于[0,2N-1]之間的無符號數(shù)據(jù)可以用N bit來表示。

本發(fā)明實施例提供的具有自適應(yīng)特性的視頻幀壓縮裝置,對視頻幀進行區(qū)域劃分;根據(jù)當(dāng)前像素所屬的區(qū)域,確定所述當(dāng)前像素所對應(yīng)的至少一種預(yù)測方式;根據(jù)所述至少一種預(yù)測方式,確定所述當(dāng)前像素所對應(yīng)的最佳預(yù)測值;將所述當(dāng)前像素的像素值與所述最佳預(yù)測值進行作差,得到所述當(dāng)前像素對應(yīng)的殘差值,并對所述殘差值進行壓縮處理。與現(xiàn)有技術(shù)相比,其能夠為所述視頻幀中的像素提供更精確的預(yù)測值,以減小現(xiàn)有壓縮方式中殘差值的絕對值,從而進一步提高視頻幀的壓縮率。

進一步地,如圖5所示,所述裝置還包括標(biāo)記模塊46,其中,

所述標(biāo)記模塊46,用于按照以下方式對所述當(dāng)前像素的實際預(yù)測方式進行標(biāo)記:當(dāng)所述當(dāng)前像素有一種預(yù)測方式時不標(biāo)記所述當(dāng)前像素的實際預(yù)測方式;當(dāng)所述當(dāng)前像素有兩種預(yù)測方式時使用1個比特標(biāo)記所述當(dāng)前像素的實際預(yù)測方式;當(dāng)所述當(dāng)前像素有三種預(yù)測方式時使用1或2個比特標(biāo)記所述當(dāng)前像素的實際預(yù)測方式,其中,當(dāng)所述當(dāng)前像素的實際預(yù)測方式與其左相鄰像素的實際預(yù)測方式相同時使用1個比特標(biāo)記所述當(dāng)前像素的實際預(yù)測方式;當(dāng)所述當(dāng)前像素的實際預(yù)測方式與其左相鄰像素的實際預(yù)測方式不相同時使用2個比特標(biāo)記所述當(dāng)前像素的實際預(yù)測方式。

由此可見,與現(xiàn)有技術(shù)相比,由于在對所述當(dāng)前像素的實際預(yù)測方式進行標(biāo)記時,采用的是自適應(yīng)的標(biāo)記方式,即當(dāng)所述當(dāng)前像素值的實際預(yù)測方式與其左相鄰像素的實際預(yù)測方式相同時僅使用1個比特標(biāo)記所述當(dāng)前像素值的實際預(yù)測方式,以實現(xiàn)使用盡量少的比特來標(biāo)記預(yù)測方式,從而進一步提高視頻幀的壓縮率。

本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關(guān)的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory,ROM)或隨機存儲記憶體(Random Access Memory,RAM)等。

以上所述,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)該以權(quán)利要求的保護范圍為準。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
梧州市| 图们市| 桑植县| 宣恩县| 宁波市| 美姑县| 澜沧| 剑河县| 荔浦县| 隆昌县| 措美县| 娄烦县| 多伦县| 岳西县| 交城县| 晋州市| 青河县| 淄博市| 岐山县| 连云港市| 新民市| 屏边| 孟村| 牡丹江市| 阜新| 泽普县| 杭州市| 衡东县| 集贤县| 望江县| 云梦县| 电白县| 黑河市| 眉山市| 峨眉山市| 中方县| 新河县| 繁昌县| 揭西县| 奉化市| 津市市|