本發(fā)明屬于圖像處理技術(shù)領(lǐng)域,尤其涉及一種網(wǎng)絡(luò)圖像丟失數(shù)據(jù)恢復(fù)方法、裝置、芯片及存儲(chǔ)裝置。
背景技術(shù):
jpeg圖像壓縮算法能夠在提供良好的壓縮性能的同時(shí),具有比較好的重建質(zhì)量,被廣泛應(yīng)用于圖像、視頻處理領(lǐng)域。jpeg圖像有多個(gè)rstn數(shù)據(jù)塊組成。
現(xiàn)有的視頻播放器對(duì)jpeg視頻圖像的處理中,如果某一幀的圖像數(shù)據(jù)有所缺失,會(huì)將整幀數(shù)據(jù)丟棄,而在網(wǎng)絡(luò)視頻傳輸?shù)倪^程中,如果網(wǎng)絡(luò)并非特別好,經(jīng)常會(huì)出現(xiàn)數(shù)據(jù)包缺失的情況時(shí),導(dǎo)致視頻圖像丟幀,在處理這類jpeg圖像時(shí)會(huì)出現(xiàn)明顯的卡頓感,導(dǎo)致視頻圖像質(zhì)量不佳,如果丟幀情況嚴(yán)重,甚至無(wú)法再度正常傳輸圖像。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供了一種網(wǎng)絡(luò)圖像丟失數(shù)據(jù)恢復(fù)方法、裝置、芯片及存儲(chǔ)裝置,旨在解決現(xiàn)有的問題。
在本發(fā)明實(shí)施例中,提供一種網(wǎng)絡(luò)圖像丟失數(shù)據(jù)恢復(fù)方法,所述方法包括:
視頻圖像接收步驟:接收組成jpeg圖像幀的多個(gè)網(wǎng)絡(luò)數(shù)據(jù)包,所述jpeg圖像幀由多個(gè)rstn數(shù)據(jù)塊組成;
圖像幀完整性判斷步驟:判斷當(dāng)前圖像幀中的rstn數(shù)據(jù)塊是否丟失,并找出丟失的rstn數(shù)據(jù)塊的位置;
圖像幀修復(fù)步驟:采用上一個(gè)完整的圖像幀中對(duì)應(yīng)位置的rstn數(shù)據(jù)塊來(lái)填補(bǔ)當(dāng)前圖像幀中丟失的rstn數(shù)據(jù)塊。
在本發(fā)明實(shí)施例中,所述圖像幀修復(fù)步驟之后,還包括視頻解碼步驟,對(duì)修復(fù)后的視頻圖像進(jìn)行解碼。
在本發(fā)明實(shí)施例中,所述圖像幀完整性判斷步驟中,根據(jù)所述rstn數(shù)據(jù)塊的標(biāo)志字節(jié)和數(shù)據(jù)結(jié)構(gòu)來(lái)檢測(cè)所述圖像幀中是否有rstn數(shù)據(jù)塊丟失。
在本發(fā)明實(shí)施例中,所述視頻圖像接收步驟中,所述網(wǎng)絡(luò)數(shù)據(jù)包為不可靠網(wǎng)絡(luò)協(xié)議的數(shù)據(jù)包。
在本發(fā)明實(shí)施例中,還提供一種網(wǎng)絡(luò)圖像丟失數(shù)據(jù)的恢復(fù)裝置,所述裝置包括:
視頻圖像接收單元,用于接收組成jpeg圖像幀的多個(gè)網(wǎng)絡(luò)數(shù)據(jù)包,所述jpeg圖像幀由多個(gè)rstn數(shù)據(jù)塊組成;
圖像幀完整性判斷單元,用于判斷當(dāng)前圖像幀中的rstn數(shù)據(jù)塊是否丟失,并找出丟失的rstn數(shù)據(jù)塊的位置;
圖像幀修復(fù)單元,用于采用上一個(gè)完整的圖像幀中對(duì)應(yīng)位置的rstn數(shù)據(jù)塊來(lái)填補(bǔ)當(dāng)前圖像幀中丟失的rstn數(shù)據(jù)塊。
在本發(fā)明實(shí)施例中,所述裝置還包括視頻解碼單元,所述視頻解碼單元用于對(duì)修復(fù)后的視頻圖像進(jìn)行解碼。
在本發(fā)明實(shí)施例中,所述圖像幀完整性判斷單元根據(jù)所述rstn數(shù)據(jù)塊的標(biāo)志字節(jié)和數(shù)據(jù)結(jié)構(gòu)來(lái)檢測(cè)所述圖像幀中是否有rstn數(shù)據(jù)塊丟失。
在本發(fā)明實(shí)施例中,所述視頻圖像接收單元接收的網(wǎng)絡(luò)數(shù)據(jù)包為不可靠網(wǎng)絡(luò)協(xié)議的數(shù)據(jù)包。
在本發(fā)明實(shí)施例中,還提供了一種圖像處理芯片,所述圖像處理芯片包括至少一處理器、存儲(chǔ)器及接口,所述至少一處理器、存儲(chǔ)器及接口均通過總線連接;
所述存儲(chǔ)器存儲(chǔ)計(jì)算機(jī)執(zhí)行指令;
所述至少一個(gè)處理器執(zhí)行所述存儲(chǔ)器存儲(chǔ)的計(jì)算機(jī)執(zhí)行指令,使得所述圖像處理芯片執(zhí)行上述網(wǎng)絡(luò)圖像丟失數(shù)據(jù)恢復(fù)方法。
在本發(fā)明實(shí)施例中,還提供了一種存儲(chǔ)裝置,所述存儲(chǔ)裝置上存儲(chǔ)有指令,所述指令被處理器執(zhí)行時(shí)實(shí)現(xiàn)上述網(wǎng)絡(luò)圖像丟失數(shù)據(jù)恢復(fù)方法的步驟。
與現(xiàn)有技術(shù)相比較,采用上述網(wǎng)絡(luò)圖像丟失數(shù)據(jù)恢復(fù)方法、裝置、圖像處理芯片及存儲(chǔ)裝置,用相鄰幀進(jìn)行修復(fù)而非丟棄的方式,對(duì)可修復(fù)的jpeg圖像幀進(jìn)行數(shù)據(jù)還原,極大的增加了網(wǎng)絡(luò)非通暢情況下的視頻播放的流暢性,并加大了網(wǎng)絡(luò)傳輸圖像的傳輸距離。
附圖說明
圖1是本發(fā)明實(shí)施例一提供的網(wǎng)絡(luò)圖像丟失數(shù)據(jù)恢復(fù)方法的實(shí)現(xiàn)流程圖;
圖2是本發(fā)明實(shí)施例二提供的網(wǎng)絡(luò)圖像丟失數(shù)據(jù)的恢復(fù)裝置的結(jié)構(gòu)圖;
圖3是本發(fā)明實(shí)施例三提供的圖像處理芯片的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
以下結(jié)合具體實(shí)施例對(duì)本發(fā)明的實(shí)現(xiàn)進(jìn)行詳細(xì)描述:
實(shí)施例一
圖1示出了本發(fā)明實(shí)施例一提供的網(wǎng)絡(luò)圖像丟失數(shù)據(jù)恢復(fù)方法的實(shí)現(xiàn)流程,所述方法包括步驟s1至步驟s4,下面分別進(jìn)行詳細(xì)說明。
步驟s1、視頻圖像接收步驟:接收組成jpeg圖像幀的多個(gè)網(wǎng)絡(luò)數(shù)據(jù)包,所述jpeg圖像幀由多個(gè)rstn數(shù)據(jù)塊組成。
通常,在網(wǎng)絡(luò)傳輸視頻圖像時(shí),為了加快傳輸速度而采用不可靠網(wǎng)絡(luò)協(xié)議的數(shù)據(jù)包(比如udp數(shù)據(jù)包)進(jìn)行傳輸,因?yàn)椴豢煽烤W(wǎng)絡(luò)協(xié)議的數(shù)據(jù)包的負(fù)載少,傳輸效率高。因此,在傳輸?shù)倪^程中,會(huì)出現(xiàn)組成圖像幀的多個(gè)數(shù)據(jù)包丟失的情況。
步驟s2、圖像幀完整性判斷步驟:判斷當(dāng)前圖像幀中的rstn數(shù)據(jù)塊是否丟失,并找出丟失的rstn數(shù)據(jù)塊的位置。
需要說明的是,由于在傳輸?shù)倪^程中會(huì)出現(xiàn)丟包的情況出現(xiàn),當(dāng)前圖像幀的所有數(shù)據(jù)包已被接收后,在對(duì)視頻圖像進(jìn)行解碼前,需要判斷當(dāng)前幀的圖像是否是完整的。
步驟s2中,根據(jù)所述rstn數(shù)據(jù)塊的標(biāo)志字節(jié)和數(shù)據(jù)結(jié)構(gòu)來(lái)檢測(cè)所述圖像幀中是否有rstn數(shù)據(jù)塊丟失。在jpeg編碼中,0xff是一個(gè)標(biāo)志字節(jié),0xff的出現(xiàn)表示接下來(lái)的數(shù)據(jù)有對(duì)應(yīng)的數(shù)據(jù)描述,如:0xff+0xda表示數(shù)據(jù)開始,而rstn數(shù)據(jù)塊的描述是以0xff+0xd0~0xd7作為標(biāo)志,即rstn數(shù)據(jù)塊的順序?yàn)椋?xff+0xd0-->0xff+0xd1-->0xff+0xd2-->...-->0xff+0xd7-->0xff+0xd0-->0xff+0xd1-->0xff+0xd2...。并且圖像的總rstn數(shù)據(jù)塊的數(shù)量是固定的,并且在jpeg編碼的數(shù)據(jù)頭中有描述,所以對(duì)rstn數(shù)據(jù)塊檢查的時(shí)候也是通過獲取的rstn數(shù)據(jù)塊的數(shù)量,順序等來(lái)判斷是否存在rstn數(shù)據(jù)塊丟失及丟失的位置。
步驟s3、圖像幀修復(fù)步驟:采用上一個(gè)完整的圖像幀中對(duì)應(yīng)位置的rstn數(shù)據(jù)塊來(lái)填補(bǔ)當(dāng)前圖像幀中丟失的rstn數(shù)據(jù)塊。
需要說明的是,當(dāng)檢測(cè)到當(dāng)前圖像幀的rstn數(shù)據(jù)塊出現(xiàn)缺失,則從上一幀完整的jpeg數(shù)據(jù)幀中提取相應(yīng)位置的rstn數(shù)據(jù)塊,進(jìn)行數(shù)據(jù)填補(bǔ)。當(dāng)傳輸?shù)膸食渥?,?duì)于相鄰的圖像幀而言,圖像的景色不會(huì)存在特別大的差異,對(duì)于圖像只是缺失部分內(nèi)容,因此,修復(fù)后的圖像幀幾乎不會(huì)出現(xiàn)失真的情況,能與上一個(gè)圖像幀和下一個(gè)圖像幀完美的銜接。
步驟s4、視頻解碼步驟,對(duì)修復(fù)后的視頻圖像進(jìn)行解碼。
經(jīng)過修復(fù)后,jpeg視頻圖像不會(huì)存在丟幀的情況,因此,進(jìn)行視頻解碼播放時(shí),視頻播放流暢。
經(jīng)過上述圖像處理過程后,即可完成對(duì)網(wǎng)絡(luò)傳輸中丟失的圖像數(shù)據(jù)的修復(fù),用相鄰幀進(jìn)行修復(fù)而非丟棄的方式,可對(duì)修復(fù)的jpeg圖像幀進(jìn)行數(shù)據(jù)還原,極大的增加了網(wǎng)絡(luò)非通暢情況下的視頻播放的流暢性,并加大了網(wǎng)絡(luò)傳輸圖像的傳輸距離。
實(shí)施例二
圖2示出了本發(fā)明實(shí)施例二提供的網(wǎng)絡(luò)圖像丟失數(shù)據(jù)的恢復(fù)裝置,其包括視頻圖像接收單元21、圖像幀完整性判斷單元22、圖像幀修復(fù)單元23和視頻解碼單元24。下面詳細(xì)進(jìn)行說明。
所述視頻圖像接收單元21,用于接收組成jpeg圖像幀的多個(gè)網(wǎng)絡(luò)數(shù)據(jù)包,所述jpeg圖像幀由多個(gè)rstn數(shù)據(jù)塊組成。
需要說明的是,在網(wǎng)絡(luò)傳輸視頻圖像時(shí),為了加快傳輸速度而采用不可靠網(wǎng)絡(luò)協(xié)議的數(shù)據(jù)包進(jìn)行傳輸,因?yàn)椴豢煽烤W(wǎng)絡(luò)協(xié)議的數(shù)據(jù)包的負(fù)載少,傳輸效率高。因此,在傳輸?shù)倪^程中,會(huì)出現(xiàn)組成圖像幀的多個(gè)數(shù)據(jù)包丟失的情況。
圖像幀完整性判斷單元22,用于判斷當(dāng)前圖像幀中的rstn數(shù)據(jù)塊是否丟失,并找出丟失的rstn數(shù)據(jù)塊的位置。
需要說明的是,jpeg圖像的格式中,圖像數(shù)據(jù)是有固定數(shù)量的多個(gè)rstn數(shù)據(jù)塊組成,所述多個(gè)rstn數(shù)據(jù)塊通過標(biāo)志字節(jié)區(qū)分開。所述圖像幀完整性判斷單元22根據(jù)所述rstn數(shù)據(jù)塊的標(biāo)志字節(jié)和數(shù)據(jù)結(jié)構(gòu)來(lái)檢測(cè)所述圖像幀中是否有rstn數(shù)據(jù)塊丟失。
圖像幀修復(fù)單元23,用于采用上一個(gè)完整的圖像幀中對(duì)應(yīng)位置的rstn數(shù)據(jù)塊來(lái)填補(bǔ)當(dāng)前圖像幀中丟失的rstn數(shù)據(jù)塊。
需要說明的是,所述圖像幀修復(fù)單元23進(jìn)行圖像幀修復(fù)時(shí),直接從上一幀完整的jpeg數(shù)據(jù)幀中提取相應(yīng)位置的rstn數(shù)據(jù)塊,進(jìn)行數(shù)據(jù)填補(bǔ)。當(dāng)傳輸?shù)膸食渥悖瑢?duì)于相鄰的圖像幀而言,圖像的景色不會(huì)存在特別大的差異,對(duì)于圖像只是缺失部分內(nèi)容,因此,修復(fù)后的圖像幀幾乎不會(huì)出現(xiàn)失真的情況,能與上一個(gè)圖像幀和下一個(gè)圖像幀完美的銜接。
所述視頻解碼單元24,用于對(duì)修復(fù)后的視頻圖像進(jìn)行解碼。
經(jīng)過修復(fù)后,jpeg視頻圖像不會(huì)存在丟幀的情況,因此,所述視頻解碼單元24對(duì)修復(fù)后的jpeg圖像進(jìn)行解碼后,播放時(shí),視頻播放流暢。
實(shí)施例三
如圖3所示,本發(fā)明實(shí)施例三提供在本發(fā)明實(shí)施例中,提供一種圖像處理芯片,其包括至少一處理器310、存儲(chǔ)器320及接口330,所述至少一處理器310、存儲(chǔ)器320及接口330均通過總線連接;
所述存儲(chǔ)器320存儲(chǔ)計(jì)算機(jī)執(zhí)行指令;
所述至少一個(gè)處理器310執(zhí)行所述存儲(chǔ)器320存儲(chǔ)的計(jì)算機(jī)執(zhí)行指令,使得所述圖像處理芯片執(zhí)行實(shí)施例一所述的網(wǎng)絡(luò)圖像丟失數(shù)據(jù)恢復(fù)方法。
本發(fā)明實(shí)施例還提供一種存儲(chǔ)裝置,所述存儲(chǔ)裝置上存儲(chǔ)有指令,所述指令被處理器執(zhí)行時(shí)實(shí)現(xiàn)實(shí)施例一所述的網(wǎng)絡(luò)圖像丟失數(shù)據(jù)恢復(fù)方法的步驟。
綜上所述,采用上述網(wǎng)絡(luò)圖像丟失數(shù)據(jù)恢復(fù)方法、裝置、圖像處理芯片及存儲(chǔ)裝置,用相鄰幀進(jìn)行修復(fù)而非丟棄的方式,對(duì)可修復(fù)的jpeg圖像幀進(jìn)行數(shù)據(jù)還原,極大的增加了網(wǎng)絡(luò)非通暢情況下的視頻播放的流暢性,并加大了網(wǎng)絡(luò)傳輸圖像的傳輸距離。
值得注意的是,本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述方法實(shí)施例的步驟或部分步驟可以通過程序指令相關(guān)的硬件來(lái)完成,前述的程序可以存儲(chǔ)于計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟,而前述的存儲(chǔ)介質(zhì)包括:rom、ram、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。