基于多方式邊界填充的全景視頻編碼、解碼方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本申請涉及數(shù)字視頻編解碼技術(shù)領(lǐng)域,具體涉及一種基于多方式邊界填充的全景視頻編碼、解碼方法和裝置。
【背景技術(shù)】
[0002]目前,虛擬現(xiàn)實技術(shù)和相關(guān)應(yīng)用正在快速發(fā)展。在虛擬現(xiàn)實技術(shù)中,全景圖像和全景視頻是一個重要的組成部分。由于全景視頻記錄了360度視角的全部畫面,具有極高的數(shù)據(jù)量,因此全景視頻的壓縮是虛擬現(xiàn)實應(yīng)用中的一個關(guān)鍵技術(shù)。全景視頻作為一種新興的媒體,和傳統(tǒng)的視頻相比,具有視野大,分辨率高,數(shù)據(jù)量大等特點。利用全景視頻,觀察者視點不變,改變觀察方向能夠觀察到周圍的全部場景,而普通的二維視頻只反應(yīng)了全景視頻的某個局部。
[0003]柱面全景視頻是一種常見的全景視頻,它相當于一個虛擬的攝像機,把空間中的三維物體投影到柱面上。柱面全景視頻的生成可以利用多攝像頭或者單攝像頭采集系統(tǒng)采集而成。
[0004]由于全景視頻的視野范圍是普通視頻的5?6倍,在給用戶提供相同的視覺質(zhì)量的情況下,全景視頻的數(shù)據(jù)量是普通視頻的5?6倍。如果按照傳統(tǒng)的視頻傳輸方案,全景視頻在網(wǎng)絡(luò)環(huán)境下的使用變得困難重重。但是,由于在同一時刻,用戶所需要看到的內(nèi)容只是全景視頻的某一部分,所以分塊編碼與傳輸成為了全景視頻網(wǎng)絡(luò)傳輸?shù)某R姺桨浮?br>[0005]請參考圖1,柱面全景視頻的傳輸方法主要包括下面步驟:
[0006]對全景圖像進行分塊,并對每個圖像塊的序列獨立進行編碼。
[0007]之后選擇所需要的編碼后的數(shù)據(jù)進行傳輸。在此可以根據(jù)用戶當前的視角選擇數(shù)據(jù)。傳輸媒介可以是因特網(wǎng)、無線網(wǎng)絡(luò)、局域網(wǎng)、光學(xué)網(wǎng)絡(luò)、其它合適的傳輸媒介、或者這些傳輸媒介的適當組合。
[0008]最后解碼端接收到數(shù)據(jù)之后,對這些塊序列進行獨立的解碼和投影變換,得到所需圖像。
[0009]在全景視頻的分塊編碼中,分塊的尺寸對于全景視頻的編碼效率以及傳輸區(qū)域有著重要的影響,而這兩項因素直接決定著需要傳輸?shù)臄?shù)據(jù)量。如果編碼塊尺寸小,則傳輸區(qū)域較小,但是編碼效率會較低;如果編碼塊尺寸大,則編碼效率較高,但是傳輸區(qū)域也較大。所以在相同的視覺質(zhì)量下,不同的編碼塊尺寸,需要傳輸?shù)臄?shù)據(jù)量是不一樣的。
[0010]由于全景視頻相對普通視頻具有一定的特殊性,例如全景視頻具有循環(huán)性,畫面存在較大畸變等,需要使用一個特殊的編碼技術(shù)以提高全景視頻的壓縮效率,而如何提高全景視頻的壓縮效率是本領(lǐng)域常年研究的一個問題。
【發(fā)明內(nèi)容】
[0011]本申請?zhí)峁┮环N基于多方式邊界填充的全景視頻編碼、解碼方法和裝置,可以提高全景視頻的壓縮效率。
[0012]根據(jù)本申請的第一方面,本申請?zhí)峁┝艘环N基于多方式邊界填充的全景視頻編碼方法包括:
[0013]將當前圖像劃分為若干圖像塊;
[0014]通過幀間預(yù)測得到當前圖像塊的預(yù)測圖像塊;所述幀間預(yù)測包括邊界填充步驟,所述邊界填充步驟為:當前圖像塊中像素的參考樣本在相應(yīng)的參考圖像的邊界之外時,根據(jù)參考樣本的坐標自適應(yīng)選擇邊界填充方式,以求得參考樣本的樣本值;
[0015]將當前圖像塊與預(yù)測圖像塊相減,得到殘差塊;
[0016]對殘差塊進行變換、量化和熵編碼,以得到編碼碼流;所述編碼碼流的序列頭或圖像頭中寫入有邊界填充步驟中所選擇的邊界填充方式。
[0017]優(yōu)選的,當前圖像塊中像素的參考樣本在相應(yīng)的參考圖像的邊界之外時,根據(jù)參考樣本的坐標自適應(yīng)選擇邊界填充方式步驟,包括:當參考樣本的縱坐標位于參考圖像上邊界和下邊界以內(nèi),且參考樣本的橫坐標位于參考圖像左邊界和右邊界之外時,選擇橫向圖像邊界填充方式求得參考樣本的樣本值;當參考樣本的縱坐標位于參考圖像上邊界和下邊界之外時,選擇縱向圖像邊界填充方式求得參考樣本的樣本值。
[0018]在一實施例中,當參考樣本的縱坐標位于參考圖像上邊界和下邊界以內(nèi),且參考樣本的橫坐標位于參考圖像左邊界和右邊界之外時,橫向圖像邊界填充方式采用循環(huán)填充方式;當參考樣本的縱坐標位于參考圖像上邊界和下邊界之外時,縱向圖像邊界填充方式采用循環(huán)填充方式。
[0019]在另一實施例中,當參考樣本的縱坐標位于參考圖像上邊界和下邊界以內(nèi),且參考樣本的橫坐標位于參考圖像左邊界和右邊界之外時,橫向圖像邊界填充方式采用循環(huán)填充方式;當參考樣本的縱坐標位于參考圖像上邊界和下邊界之外時,縱向圖像邊界填充方式采用重復(fù)填充方式。
[0020]根據(jù)本申請的第二方面,本申請還提供了一種基于多方式邊界填充的全景視頻編碼裝置,包括:
[0021]圖像劃分模塊,用于將當前圖像劃分為若干圖像塊;
[0022]幀間預(yù)測模塊,用于通過幀間預(yù)測得到當前圖像塊的預(yù)測圖像塊;所述幀間預(yù)測模塊包括邊界填充單元,用于在當前圖像塊中像素的參考樣本在相應(yīng)的參考圖像的邊界之外時,根據(jù)參考樣本的坐標自適應(yīng)選擇邊界填充方式,以求得參考樣本的樣本值;
[0023]計算模塊,用于將當前圖像塊與預(yù)測圖像塊相減,得到殘差塊;
[0024]碼流生成模塊,用于對殘差塊進行變換、量化和熵編碼,以得到編碼碼流;所述編碼碼流的序列頭或圖像頭中寫入有邊界填充單元所選擇的邊界填充方式。
[0025]優(yōu)選的,邊界填充單元用于在當前圖像塊中像素的參考樣本在相應(yīng)的參考圖像的邊界之外時,根據(jù)參考樣本的坐標自適應(yīng)選擇邊界填充方式,以求得參考樣本的樣本值,具體為:邊界填充單元用于在當參考樣本的縱坐標位于參考圖像上邊界和下邊界以內(nèi),且參考樣本的橫坐標位于參考圖像左邊界和右邊界之外時,選擇橫向圖像邊界填充方式求得參考樣本的樣本值;在當參考樣本的縱坐標位于參考圖像上邊界和下邊界之外時,選擇縱向圖像邊界填充方式求得參考樣本的樣本值。
[0026]在一實施例中,邊界填充單元用于在當參考樣本的縱坐標位于參考圖像上邊界和下邊界以內(nèi),且參考樣本的橫坐標位于參考圖像左邊界和右邊界之外時,橫向圖像邊界填充方式采用循環(huán)填充方式;在當參考樣本的縱坐標位于參考圖像上邊界和下邊界之外時,縱向圖像邊界填充方式采用循環(huán)填充方式。
[0027]在另一實施例中,邊界填充單元用于在當參考樣本的縱坐標位于參考圖像上邊界和下邊界以內(nèi),且參考樣本的橫坐標位于參考圖像左邊界和右邊界之外時,橫向圖像邊界填充方式采用循環(huán)填充方式;在當參考樣本的縱坐標位于參考圖像上邊界和下邊界之外時,縱向圖像邊界填充方式采用重復(fù)填充方式。
[0028]根據(jù)本申請的第三方面,本申請還提供了一種基于多方式邊界填充的全景視頻解碼方法,包括:
[0029]對編碼碼流進行熵解碼、反量化和反變換,以得到重建的殘差塊;
[0030]通過幀間預(yù)測得到當前圖像塊的預(yù)測圖像塊;所述幀間預(yù)測包括邊界填充步驟,所述邊界填充步驟為:采用編碼碼流的序列頭或圖像頭中記錄的邊界填充方式,以求得參考樣本的樣本值;
[0031]將預(yù)測圖像塊和重建的殘差塊相加,得到重建的圖像塊。
[0032]在一實施例中,當所述邊界填充方式記錄在編碼碼流的序列頭中時,編碼碼流的所有序